jostlebot Claude Opus 4.5 commited on
Commit
0c0c388
·
1 Parent(s): ec391a4

Context-aware SOMA + Update README to show ARI = TEND toolkit

Browse files

SOMA now pulls body/sensation words from user input:
- "it makes me sick" → "Where do you feel this 'sick' in your body?"
- Scans for 40+ body terms (tight, numb, chest, etc.)
- Falls back to generic check-in if no body words found

README updated:
- Title: "Tend & Send - The ARI Toolkit"
- Clarifies ARI is the suite built around TEND
- Tools listed in rainbow order
- Added WISDOM, removed LISTEN

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Files changed (2) hide show
  1. README.md +13 -16
  2. static/index.html +34 -1
README.md CHANGED
@@ -1,35 +1,32 @@
1
  ---
2
- title: Tend & Send ARI Prototype
3
  emoji: 💜
4
- colorFrom: indigo
5
- colorTo: green
6
  sdk: docker
7
  pinned: false
8
  license: mit
9
  ---
10
 
11
- # Tend & Send - ARI Prototype
12
 
13
- Assistive Relational Intelligence tools for human-to-human connection.
14
 
15
- **These tools exist to support YOUR relationship. ARI never becomes the relationship - it augments human-to-human connection.**
16
 
17
- ## What This Tool Does
18
 
19
- Practice difficult conversations with a simulated partner while using ARI tools to build relational capacity.
20
-
21
- ### The ARI Toolkit
22
-
23
- - **TEND** - Transform messages with NVC clarity and warmth
24
- - **NVC** - Guided I-statement builder
25
  - **FEEL** - Identify feelings in the conversation
26
  - **NEED** - Extract underlying needs
27
- - **LISTEN** - Receive mode: hear them before reacting
28
  - **REPAIR** - Craft genuine repair after ruptures
29
- - **SOMA** - Body check-in before responding
30
  - **LOVE** - Slow down, breathe, return to presence
31
 
32
- ### Practice Conversations
33
 
34
  - Choose attachment style: Anxious, Avoidant, Disorganized, Secure
35
  - Set difficulty level: Gentle to Crisis
 
1
  ---
2
+ title: Tend & Send - The ARI Toolkit
3
  emoji: 💜
4
+ colorFrom: red
5
+ colorTo: purple
6
  sdk: docker
7
  pinned: false
8
  license: mit
9
  ---
10
 
11
+ # Tend & Send - The ARI Toolkit
12
 
13
+ **ARI (Assistive Relational Intelligence)** is a suite of tools built around TEND - designed to help you show up more fully in difficult conversations.
14
 
15
+ *These tools exist to support YOUR relationship. ARI never becomes the relationship - it augments human-to-human connection.*
16
 
17
+ ## The ARI Toolkit
18
 
19
+ - **SEND** - Send your message to your partner
20
+ - **TEND** - Transform your message with clarity and warmth
21
+ - **SOMA** - Body check-in. What does your body know?
 
 
 
22
  - **FEEL** - Identify feelings in the conversation
23
  - **NEED** - Extract underlying needs
24
+ - **PRACTICE NVC** - Guided I-statement builder
25
  - **REPAIR** - Craft genuine repair after ruptures
26
+ - **WISDOM** - Draw from sacred texts and grounded wisdom
27
  - **LOVE** - Slow down, breathe, return to presence
28
 
29
+ ## Practice Conversations
30
 
31
  - Choose attachment style: Anxious, Avoidant, Disorganized, Secure
32
  - Set difficulty level: Gentle to Crisis
static/index.html CHANGED
@@ -1413,7 +1413,15 @@ Real grief, real limits. 1-2 sentences.`
1413
  inputText = userInput || 'Help me craft a genuine repair.';
1414
  break;
1415
  case 'soma':
1416
- inputText = 'Guide me through a body check-in.';
 
 
 
 
 
 
 
 
1417
  break;
1418
  }
1419
 
@@ -1751,6 +1759,31 @@ Based on the themes in this conversation (conflict, connection, fear, love, boun
1751
  }
1752
 
1753
  // ============================================================================
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1754
  // UI HELPERS
1755
  // ============================================================================
1756
  function addMessage(type, content, label = null, isTend = false) {
 
1413
  inputText = userInput || 'Help me craft a genuine repair.';
1414
  break;
1415
  case 'soma':
1416
+ // Check for body/sensation words in user's text
1417
+ const bodyWords = extractBodyWords(userInput);
1418
+ if (bodyWords.length > 0) {
1419
+ inputText = `The person wrote: "${userInput}"\n\nThey used the word(s): ${bodyWords.join(', ')}. Lead with this - ask where they feel "${bodyWords[0]}" in their body right now. Be specific and curious about the physical sensation.`;
1420
+ } else if (userInput) {
1421
+ inputText = `The person wrote: "${userInput}"\n\nGuide them to notice what's happening in their body as they think about this. Where is there tension, heaviness, or activation?`;
1422
+ } else {
1423
+ inputText = 'Guide me through a body check-in. Help me notice what sensations are present.';
1424
+ }
1425
  break;
1426
  }
1427
 
 
1759
  }
1760
 
1761
  // ============================================================================
1762
+ // SOMATIC WORD EXTRACTION
1763
+ // ============================================================================
1764
+ function extractBodyWords(text) {
1765
+ if (!text) return [];
1766
+ const bodyTerms = [
1767
+ // Sensations
1768
+ 'sick', 'nauseous', 'queasy', 'tight', 'tense', 'heavy', 'light',
1769
+ 'hot', 'cold', 'numb', 'tingling', 'buzzing', 'shaky', 'trembling',
1770
+ 'frozen', 'stuck', 'blocked', 'constricted', 'pressure', 'pain',
1771
+ 'ache', 'burning', 'churning', 'knotted', 'clenched', 'gripping',
1772
+ // Body parts as sensations
1773
+ 'stomach', 'gut', 'chest', 'heart', 'throat', 'shoulders', 'neck', 'jaw',
1774
+ // Breath/energy
1775
+ 'can\'t breathe', 'breathless', 'suffocating', 'exhausted', 'drained',
1776
+ 'wired', 'jittery', 'restless', 'agitated',
1777
+ // Emotional-somatic
1778
+ 'overwhelmed', 'flooded', 'shutting down', 'dissociating', 'disconnected',
1779
+ 'on edge', 'wound up', 'keyed up'
1780
+ ];
1781
+
1782
+ const lowerText = text.toLowerCase();
1783
+ const found = bodyTerms.filter(term => lowerText.includes(term));
1784
+ return found;
1785
+ }
1786
+
1787
  // UI HELPERS
1788
  // ============================================================================
1789
  function addMessage(type, content, label = null, isTend = false) {