digital-brain 0.1.7 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +20 -2
  2. package/bin/digital-brain.js +137 -21
  3. package/docs/INTEGRATIONS.md +72 -0
  4. package/docs/PRIVACY.md +3 -1
  5. package/docs/SETUP.md +33 -1
  6. package/examples/sample-vault/{04 People/Interpreted Relationships/Close Friend.md → 06 AI Memory/Generated Relationship Drafts/Close Friend (WhatsApp).md } +4 -3
  7. package/examples/sample-vault/{04 People/Interpreted Relationships/Mom.md → 06 AI Memory/Generated Relationship Drafts/Mom (WhatsApp).md } +4 -3
  8. package/examples/sample-vault/{08 Sources/WhatsApp/Analysis/Interpreted/Project Team.md → 06 AI Memory/Generated Relationship Drafts/Project Team (WhatsApp).md } +4 -3
  9. package/examples/sample-vault/06 AI Memory/Interpreted Relationship Memory.md +3 -3
  10. package/examples/sample-vault/06 AI Memory/Person Context Index.md +26 -0
  11. package/examples/sample-vault/06 AI Memory/Person Reply Context.md +26 -0
  12. package/examples/sample-vault/08 Sources/{WhatsApp/Analysis/Interpreted/Close Friend.md → Analysis/Interpreted/Close Friend (WhatsApp).md } +4 -3
  13. package/examples/sample-vault/08 Sources/{WhatsApp/Analysis/Interpreted/Mom.md → Analysis/Interpreted/Mom (WhatsApp).md } +4 -3
  14. package/examples/sample-vault/{04 People/Interpreted Relationships/Project Team.md → 08 Sources/Analysis/Interpreted/Project Team (WhatsApp).md } +4 -3
  15. package/examples/sample-vault/08 Sources/Analysis/Relationship Map.md +38 -0
  16. package/examples/sample-vault/08 Sources/Analysis/interpreted_relationship_models.json +175 -0
  17. package/examples/sample-vault/08 Sources/Analysis/person_identity_map.json +78 -0
  18. package/examples/sample-vault/08 Sources/Analysis/relationship_profiles.json +122 -0
  19. package/examples/sample-vault/08 Sources/WhatsApp/Analysis/Interpreted/Close Friend (WhatsApp).md +44 -0
  20. package/examples/sample-vault/08 Sources/WhatsApp/Analysis/Interpreted/Mom (WhatsApp).md +45 -0
  21. package/examples/sample-vault/08 Sources/WhatsApp/Analysis/Interpreted/Project Team (WhatsApp).md +45 -0
  22. package/examples/sample-vault/08 Sources/WhatsApp/Analysis/Relationship Map.md +9 -3
  23. package/examples/sample-vault/08 Sources/WhatsApp/Analysis/interpreted_relationship_models.json +18 -0
  24. package/examples/sample-vault/08 Sources/WhatsApp/Analysis/person_identity_map.json +78 -0
  25. package/examples/sample-vault/08 Sources/WhatsApp/Analysis/relationship_profiles.json +18 -0
  26. package/examples/sample-vault/08 Sources/WhatsApp/Raw/2026-01-01.jsonl +6 -6
  27. package/lib/fs.js +7 -1
  28. package/package.json +2 -1
  29. package/scripts/digital_brain_imessage_sync.py +175 -0
  30. package/scripts/digital_brain_linkedin_export_import.py +214 -0
  31. package/scripts/digital_brain_relationship_extractor.py +189 -12
  32. package/scripts/digital_brain_relationship_interpreter.py +104 -15
  33. package/scripts/digital_brain_slack_export_import.py +181 -0
  34. package/scripts/digital_brain_whatsapp_mac_sync.py +37 -8
  35. package/templates/vault/00 Home/How AI Should Use This Vault.md +1 -1
  36. package/templates/vault/00 Home/Start Here.md +2 -1
  37. package/templates/vault/04 People/Relationship Overrides.md +2 -1
  38. package/templates/vault/06 AI Memory/Generated Relationship Drafts/README.md +5 -0
  39. package/templates/vault/06 AI Memory/Interpreted Relationship Memory.md +1 -2
  40. package/templates/vault/06 AI Memory/Person Context Index.md +4 -0
  41. package/templates/vault/06 AI Memory/Person Reply Context.md +4 -0
  42. package/templates/vault/08 Sources/README.md +5 -0
  43. package/templates/vault/08 Sources/WhatsApp/Outbound/README.md +2 -2
  44. package/templates/vault/AGENTS.md +5 -1
  45. package/templates/vault/CLAUDE.md +3 -0
  46. package/templates/vault/GEMINI.md +4 -0
  47. package/whatsapp-web/send.mjs +32 -5
@@ -1,13 +1,14 @@
1
- # Mom
1
+ # Mom (WhatsApp)
2
2
 
3
- Generated: 2026-06-09T22:26:26.131148+00:00
3
+ Generated: 2026-06-09T23:15:09.587707+00:00
4
+ Source: WhatsApp
4
5
  Role: mother
5
6
  Role confidence: high
6
7
  Closeness: medium
7
8
  Conversation difficulty: low
8
9
  Typing style: very short
9
10
 
10
- These are private working notes. Edit them where wrong.
11
+ Generated draft, not truth. These are private working notes. Edit them where wrong.
11
12
 
12
13
  ## Role / Relationship Label
13
14
  - mother (high confidence).
@@ -1,13 +1,14 @@
1
- # Project Team
1
+ # Project Team (WhatsApp)
2
2
 
3
- Generated: 2026-06-09T22:26:26.131626+00:00
3
+ Generated: 2026-06-09T23:15:09.588601+00:00
4
+ Source: WhatsApp
4
5
  Role: work collaborator
5
6
  Role confidence: medium
6
7
  Closeness: low/unclear
7
8
  Conversation difficulty: practical/low-emotional
8
9
  Typing style: short
9
10
 
10
- These are private working notes. Edit them where wrong.
11
+ Generated draft, not truth. These are private working notes. Edit them where wrong.
11
12
 
12
13
  ## Role / Relationship Label
13
14
  - work collaborator (medium confidence).
@@ -0,0 +1,38 @@
1
+ # Relationship Map
2
+
3
+ Window: last 365 days
4
+
5
+ Generated signals. Treat as editable working notes.
6
+
7
+ ## Mom (WhatsApp)
8
+
9
+ - Source: WhatsApp
10
+ - Canonical person: Mom (person::mom)
11
+ - Guess: warm personal relationship
12
+ - Messages: 2 (1 inbound, 1 outbound)
13
+ - Dates: 2026-01-01 to 2026-01-01
14
+ - Scores: sentiment 0.159, warmth 0.5, friction 0.0, operational 1.5
15
+ - Tags: direct-chat, light, warm, logistics-heavy
16
+ - Typing style: very short; avg 4.0 words; lowercase 0.0; emoji 0.0; slang none
17
+
18
+ ## Project Team (WhatsApp)
19
+
20
+ - Source: WhatsApp
21
+ - Canonical person: Project Team (group::whatsapp::project team)
22
+ - Guess: group, likely social or mixed context
23
+ - Messages: 2 (1 inbound, 1 outbound)
24
+ - Dates: 2026-01-01 to 2026-01-01
25
+ - Scores: sentiment 0, warmth 0.0, friction 0.0, operational 3.0
26
+ - Tags: group-chat, light, logistics-heavy, question-heavy
27
+ - Typing style: short; avg 6.0 words; lowercase 0.0; emoji 0.0; slang none
28
+
29
+ ## Close Friend (WhatsApp)
30
+
31
+ - Source: WhatsApp
32
+ - Canonical person: Close Friend (person::close friend)
33
+ - Guess: warm personal relationship
34
+ - Messages: 2 (1 inbound, 1 outbound)
35
+ - Dates: 2026-01-01 to 2026-01-01
36
+ - Scores: sentiment 0.159, warmth 1.0, friction 0.0, operational 0.5
37
+ - Tags: direct-chat, light, warm, logistics-heavy
38
+ - Typing style: short; avg 5.0 words; lowercase 0.0; emoji 0.0; slang none
@@ -0,0 +1,175 @@
1
+ [
2
+ {
3
+ "chatName": "Mom",
4
+ "sourceSystem": "WhatsApp",
5
+ "displayName": "Mom (WhatsApp)",
6
+ "identityName": "Mom",
7
+ "canonicalPersonKey": "person::mom",
8
+ "identityConfidence": "medium",
9
+ "identityEvidence": "WhatsApp direct chat identity",
10
+ "messageCount": 2,
11
+ "inbound": 1,
12
+ "outbound": 1,
13
+ "outboundShare": 0.5,
14
+ "firstSeen": "2026-01-01",
15
+ "lastSeen": "2026-01-01",
16
+ "isGroup": false,
17
+ "sentimentScore": 0.159,
18
+ "warmthScore": 0.5,
19
+ "frictionScore": 0.0,
20
+ "operationalScore": 1.5,
21
+ "questionCount": 0,
22
+ "relationshipGuess": "warm personal relationship",
23
+ "tags": [
24
+ "direct-chat",
25
+ "light",
26
+ "warm",
27
+ "logistics-heavy"
28
+ ],
29
+ "typingStyle": {
30
+ "sampleSize": 1,
31
+ "avgChars": 24.0,
32
+ "avgWords": 4.0,
33
+ "lowercaseShare": 0.0,
34
+ "uppercaseShare": 0.0,
35
+ "questionShare": 0.0,
36
+ "exclamationShare": 0.0,
37
+ "emojiShare": 0.0,
38
+ "slang": [],
39
+ "signature": "very short"
40
+ },
41
+ "role": "mother",
42
+ "roleConfidence": "high",
43
+ "roleReason": "manual override",
44
+ "closeness": "medium",
45
+ "conversationDifficulty": "low",
46
+ "reciprocity": "balanced",
47
+ "howToContinue": [
48
+ "Use warmer language than a work chat.",
49
+ "Do not make the interaction purely transactional.",
50
+ "Track open loops, plans, dates, and commitments."
51
+ ],
52
+ "boundaries": [
53
+ "Do not expose private summaries unless asked."
54
+ ],
55
+ "replyStyle": [
56
+ "Keep replies very short unless context demands detail.",
57
+ "Match style without exaggerating or parodying the person."
58
+ ]
59
+ },
60
+ {
61
+ "chatName": "Project Team",
62
+ "sourceSystem": "WhatsApp",
63
+ "displayName": "Project Team (WhatsApp)",
64
+ "identityName": "Project Team",
65
+ "canonicalPersonKey": "group::whatsapp::project team",
66
+ "identityConfidence": "medium",
67
+ "identityEvidence": "group chat kept source-specific",
68
+ "messageCount": 2,
69
+ "inbound": 1,
70
+ "outbound": 1,
71
+ "outboundShare": 0.5,
72
+ "firstSeen": "2026-01-01",
73
+ "lastSeen": "2026-01-01",
74
+ "isGroup": true,
75
+ "sentimentScore": 0,
76
+ "warmthScore": 0.0,
77
+ "frictionScore": 0.0,
78
+ "operationalScore": 3.0,
79
+ "questionCount": 1,
80
+ "relationshipGuess": "group, likely social or mixed context",
81
+ "tags": [
82
+ "group-chat",
83
+ "light",
84
+ "logistics-heavy",
85
+ "question-heavy"
86
+ ],
87
+ "typingStyle": {
88
+ "sampleSize": 1,
89
+ "avgChars": 33.0,
90
+ "avgWords": 6.0,
91
+ "lowercaseShare": 0.0,
92
+ "uppercaseShare": 0.0,
93
+ "questionShare": 0.0,
94
+ "exclamationShare": 0.0,
95
+ "emojiShare": 0.0,
96
+ "slang": [],
97
+ "signature": "short"
98
+ },
99
+ "role": "work collaborator",
100
+ "roleConfidence": "medium",
101
+ "roleReason": "matched chat name",
102
+ "closeness": "low/unclear",
103
+ "conversationDifficulty": "practical/low-emotional",
104
+ "reciprocity": "balanced",
105
+ "howToContinue": [
106
+ "Lead with context, next steps, and clear asks.",
107
+ "Keep emotional interpretation light.",
108
+ "Track open loops, plans, dates, and commitments."
109
+ ],
110
+ "boundaries": [
111
+ "Do not expose private summaries unless asked."
112
+ ],
113
+ "replyStyle": [
114
+ "Use concise replies with one clear point.",
115
+ "Match style without exaggerating or parodying the person."
116
+ ]
117
+ },
118
+ {
119
+ "chatName": "Close Friend",
120
+ "sourceSystem": "WhatsApp",
121
+ "displayName": "Close Friend (WhatsApp)",
122
+ "identityName": "Close Friend",
123
+ "canonicalPersonKey": "person::close friend",
124
+ "identityConfidence": "medium",
125
+ "identityEvidence": "WhatsApp direct chat identity",
126
+ "messageCount": 2,
127
+ "inbound": 1,
128
+ "outbound": 1,
129
+ "outboundShare": 0.5,
130
+ "firstSeen": "2026-01-01",
131
+ "lastSeen": "2026-01-01",
132
+ "isGroup": false,
133
+ "sentimentScore": 0.159,
134
+ "warmthScore": 1.0,
135
+ "frictionScore": 0.0,
136
+ "operationalScore": 0.5,
137
+ "questionCount": 0,
138
+ "relationshipGuess": "warm personal relationship",
139
+ "tags": [
140
+ "direct-chat",
141
+ "light",
142
+ "warm",
143
+ "logistics-heavy"
144
+ ],
145
+ "typingStyle": {
146
+ "sampleSize": 1,
147
+ "avgChars": 30.0,
148
+ "avgWords": 5.0,
149
+ "lowercaseShare": 0.0,
150
+ "uppercaseShare": 0.0,
151
+ "questionShare": 0.0,
152
+ "exclamationShare": 0.0,
153
+ "emojiShare": 0.0,
154
+ "slang": [],
155
+ "signature": "short"
156
+ },
157
+ "role": "operational contact",
158
+ "roleConfidence": "low",
159
+ "roleReason": "logistics-heavy communication",
160
+ "closeness": "medium",
161
+ "conversationDifficulty": "low",
162
+ "reciprocity": "balanced",
163
+ "howToContinue": [
164
+ "Keep tone neutral until the user labels this relationship.",
165
+ "Track open loops, plans, dates, and commitments."
166
+ ],
167
+ "boundaries": [
168
+ "Do not expose private summaries unless asked."
169
+ ],
170
+ "replyStyle": [
171
+ "Keep replies very short unless context demands detail.",
172
+ "Match style without exaggerating or parodying the person."
173
+ ]
174
+ }
175
+ ]
@@ -0,0 +1,78 @@
1
+ [
2
+ {
3
+ "canonicalPersonKey": "person::mom",
4
+ "displayName": "Mom",
5
+ "aliases": [
6
+ "Mom"
7
+ ],
8
+ "sources": [
9
+ "WhatsApp"
10
+ ],
11
+ "sourceProfiles": [
12
+ {
13
+ "sourceSystem": "WhatsApp",
14
+ "chatName": "Mom",
15
+ "displayName": "Mom (WhatsApp)",
16
+ "messageCount": 2,
17
+ "firstSeen": "2026-01-01",
18
+ "lastSeen": "2026-01-01",
19
+ "relationshipGuess": "warm personal relationship",
20
+ "typingStyle": {
21
+ "sampleSize": 1,
22
+ "avgChars": 24.0,
23
+ "avgWords": 4.0,
24
+ "lowercaseShare": 0.0,
25
+ "uppercaseShare": 0.0,
26
+ "questionShare": 0.0,
27
+ "exclamationShare": 0.0,
28
+ "emojiShare": 0.0,
29
+ "slang": [],
30
+ "signature": "very short"
31
+ },
32
+ "identityConfidence": "medium",
33
+ "identityEvidence": "WhatsApp direct chat identity"
34
+ }
35
+ ],
36
+ "totalMessages": 2,
37
+ "firstSeen": "2026-01-01",
38
+ "lastSeen": "2026-01-01"
39
+ },
40
+ {
41
+ "canonicalPersonKey": "person::close friend",
42
+ "displayName": "Close Friend",
43
+ "aliases": [
44
+ "Close Friend"
45
+ ],
46
+ "sources": [
47
+ "WhatsApp"
48
+ ],
49
+ "sourceProfiles": [
50
+ {
51
+ "sourceSystem": "WhatsApp",
52
+ "chatName": "Close Friend",
53
+ "displayName": "Close Friend (WhatsApp)",
54
+ "messageCount": 2,
55
+ "firstSeen": "2026-01-01",
56
+ "lastSeen": "2026-01-01",
57
+ "relationshipGuess": "warm personal relationship",
58
+ "typingStyle": {
59
+ "sampleSize": 1,
60
+ "avgChars": 30.0,
61
+ "avgWords": 5.0,
62
+ "lowercaseShare": 0.0,
63
+ "uppercaseShare": 0.0,
64
+ "questionShare": 0.0,
65
+ "exclamationShare": 0.0,
66
+ "emojiShare": 0.0,
67
+ "slang": [],
68
+ "signature": "short"
69
+ },
70
+ "identityConfidence": "medium",
71
+ "identityEvidence": "WhatsApp direct chat identity"
72
+ }
73
+ ],
74
+ "totalMessages": 2,
75
+ "firstSeen": "2026-01-01",
76
+ "lastSeen": "2026-01-01"
77
+ }
78
+ ]
@@ -0,0 +1,122 @@
1
+ [
2
+ {
3
+ "chatName": "Mom",
4
+ "sourceSystem": "WhatsApp",
5
+ "displayName": "Mom (WhatsApp)",
6
+ "identityName": "Mom",
7
+ "canonicalPersonKey": "person::mom",
8
+ "identityConfidence": "medium",
9
+ "identityEvidence": "WhatsApp direct chat identity",
10
+ "messageCount": 2,
11
+ "inbound": 1,
12
+ "outbound": 1,
13
+ "outboundShare": 0.5,
14
+ "firstSeen": "2026-01-01",
15
+ "lastSeen": "2026-01-01",
16
+ "isGroup": false,
17
+ "sentimentScore": 0.159,
18
+ "warmthScore": 0.5,
19
+ "frictionScore": 0.0,
20
+ "operationalScore": 1.5,
21
+ "questionCount": 0,
22
+ "relationshipGuess": "warm personal relationship",
23
+ "tags": [
24
+ "direct-chat",
25
+ "light",
26
+ "warm",
27
+ "logistics-heavy"
28
+ ],
29
+ "typingStyle": {
30
+ "sampleSize": 1,
31
+ "avgChars": 24.0,
32
+ "avgWords": 4.0,
33
+ "lowercaseShare": 0.0,
34
+ "uppercaseShare": 0.0,
35
+ "questionShare": 0.0,
36
+ "exclamationShare": 0.0,
37
+ "emojiShare": 0.0,
38
+ "slang": [],
39
+ "signature": "very short"
40
+ }
41
+ },
42
+ {
43
+ "chatName": "Project Team",
44
+ "sourceSystem": "WhatsApp",
45
+ "displayName": "Project Team (WhatsApp)",
46
+ "identityName": "Project Team",
47
+ "canonicalPersonKey": "group::whatsapp::project team",
48
+ "identityConfidence": "medium",
49
+ "identityEvidence": "group chat kept source-specific",
50
+ "messageCount": 2,
51
+ "inbound": 1,
52
+ "outbound": 1,
53
+ "outboundShare": 0.5,
54
+ "firstSeen": "2026-01-01",
55
+ "lastSeen": "2026-01-01",
56
+ "isGroup": true,
57
+ "sentimentScore": 0,
58
+ "warmthScore": 0.0,
59
+ "frictionScore": 0.0,
60
+ "operationalScore": 3.0,
61
+ "questionCount": 1,
62
+ "relationshipGuess": "group, likely social or mixed context",
63
+ "tags": [
64
+ "group-chat",
65
+ "light",
66
+ "logistics-heavy",
67
+ "question-heavy"
68
+ ],
69
+ "typingStyle": {
70
+ "sampleSize": 1,
71
+ "avgChars": 33.0,
72
+ "avgWords": 6.0,
73
+ "lowercaseShare": 0.0,
74
+ "uppercaseShare": 0.0,
75
+ "questionShare": 0.0,
76
+ "exclamationShare": 0.0,
77
+ "emojiShare": 0.0,
78
+ "slang": [],
79
+ "signature": "short"
80
+ }
81
+ },
82
+ {
83
+ "chatName": "Close Friend",
84
+ "sourceSystem": "WhatsApp",
85
+ "displayName": "Close Friend (WhatsApp)",
86
+ "identityName": "Close Friend",
87
+ "canonicalPersonKey": "person::close friend",
88
+ "identityConfidence": "medium",
89
+ "identityEvidence": "WhatsApp direct chat identity",
90
+ "messageCount": 2,
91
+ "inbound": 1,
92
+ "outbound": 1,
93
+ "outboundShare": 0.5,
94
+ "firstSeen": "2026-01-01",
95
+ "lastSeen": "2026-01-01",
96
+ "isGroup": false,
97
+ "sentimentScore": 0.159,
98
+ "warmthScore": 1.0,
99
+ "frictionScore": 0.0,
100
+ "operationalScore": 0.5,
101
+ "questionCount": 0,
102
+ "relationshipGuess": "warm personal relationship",
103
+ "tags": [
104
+ "direct-chat",
105
+ "light",
106
+ "warm",
107
+ "logistics-heavy"
108
+ ],
109
+ "typingStyle": {
110
+ "sampleSize": 1,
111
+ "avgChars": 30.0,
112
+ "avgWords": 5.0,
113
+ "lowercaseShare": 0.0,
114
+ "uppercaseShare": 0.0,
115
+ "questionShare": 0.0,
116
+ "exclamationShare": 0.0,
117
+ "emojiShare": 0.0,
118
+ "slang": [],
119
+ "signature": "short"
120
+ }
121
+ }
122
+ ]
@@ -0,0 +1,44 @@
1
+ # Close Friend (WhatsApp)
2
+
3
+ Generated: 2026-06-09T23:15:09.589124+00:00
4
+ Source: WhatsApp
5
+ Role: operational contact
6
+ Role confidence: low
7
+ Closeness: medium
8
+ Conversation difficulty: low
9
+ Typing style: short
10
+
11
+ Generated draft, not truth. These are private working notes. Edit them where wrong.
12
+
13
+ ## Role / Relationship Label
14
+ - operational contact (low confidence).
15
+ - Reason: logistics-heavy communication.
16
+
17
+ ## Closeness And Importance
18
+ - Closeness: medium.
19
+ - Reciprocity: balanced.
20
+ - Conversation difficulty: low.
21
+
22
+ ## Communication Pattern
23
+ - Messages: 2 (1 inbound, 1 outbound).
24
+ - Tags: direct-chat, light, warm, logistics-heavy.
25
+
26
+ ## Typing Style To Match
27
+ - Signature: short.
28
+ - Average length: 5.0 words / 30.0 chars.
29
+ - Lowercase share: 0.0.
30
+ - Question share: 0.0.
31
+ - Exclamation share: 0.0.
32
+ - Emoji share: 0.0.
33
+ - Slang: none detected.
34
+
35
+ ## How To Continue This Relationship
36
+ - Keep tone neutral until the user labels this relationship.
37
+ - Track open loops, plans, dates, and commitments.
38
+
39
+ ## Reply Guidance
40
+ - Keep replies very short unless context demands detail.
41
+ - Match style without exaggerating or parodying the person.
42
+
43
+ ## What Not To Assume
44
+ - Do not expose private summaries unless asked.
@@ -0,0 +1,45 @@
1
+ # Mom (WhatsApp)
2
+
3
+ Generated: 2026-06-09T23:15:09.587707+00:00
4
+ Source: WhatsApp
5
+ Role: mother
6
+ Role confidence: high
7
+ Closeness: medium
8
+ Conversation difficulty: low
9
+ Typing style: very short
10
+
11
+ Generated draft, not truth. These are private working notes. Edit them where wrong.
12
+
13
+ ## Role / Relationship Label
14
+ - mother (high confidence).
15
+ - Reason: manual override.
16
+
17
+ ## Closeness And Importance
18
+ - Closeness: medium.
19
+ - Reciprocity: balanced.
20
+ - Conversation difficulty: low.
21
+
22
+ ## Communication Pattern
23
+ - Messages: 2 (1 inbound, 1 outbound).
24
+ - Tags: direct-chat, light, warm, logistics-heavy.
25
+
26
+ ## Typing Style To Match
27
+ - Signature: very short.
28
+ - Average length: 4.0 words / 24.0 chars.
29
+ - Lowercase share: 0.0.
30
+ - Question share: 0.0.
31
+ - Exclamation share: 0.0.
32
+ - Emoji share: 0.0.
33
+ - Slang: none detected.
34
+
35
+ ## How To Continue This Relationship
36
+ - Use warmer language than a work chat.
37
+ - Do not make the interaction purely transactional.
38
+ - Track open loops, plans, dates, and commitments.
39
+
40
+ ## Reply Guidance
41
+ - Keep replies very short unless context demands detail.
42
+ - Match style without exaggerating or parodying the person.
43
+
44
+ ## What Not To Assume
45
+ - Do not expose private summaries unless asked.
@@ -0,0 +1,45 @@
1
+ # Project Team (WhatsApp)
2
+
3
+ Generated: 2026-06-09T23:15:09.588601+00:00
4
+ Source: WhatsApp
5
+ Role: work collaborator
6
+ Role confidence: medium
7
+ Closeness: low/unclear
8
+ Conversation difficulty: practical/low-emotional
9
+ Typing style: short
10
+
11
+ Generated draft, not truth. These are private working notes. Edit them where wrong.
12
+
13
+ ## Role / Relationship Label
14
+ - work collaborator (medium confidence).
15
+ - Reason: matched chat name.
16
+
17
+ ## Closeness And Importance
18
+ - Closeness: low/unclear.
19
+ - Reciprocity: balanced.
20
+ - Conversation difficulty: practical/low-emotional.
21
+
22
+ ## Communication Pattern
23
+ - Messages: 2 (1 inbound, 1 outbound).
24
+ - Tags: group-chat, light, logistics-heavy, question-heavy.
25
+
26
+ ## Typing Style To Match
27
+ - Signature: short.
28
+ - Average length: 6.0 words / 33.0 chars.
29
+ - Lowercase share: 0.0.
30
+ - Question share: 0.0.
31
+ - Exclamation share: 0.0.
32
+ - Emoji share: 0.0.
33
+ - Slang: none detected.
34
+
35
+ ## How To Continue This Relationship
36
+ - Lead with context, next steps, and clear asks.
37
+ - Keep emotional interpretation light.
38
+ - Track open loops, plans, dates, and commitments.
39
+
40
+ ## Reply Guidance
41
+ - Use concise replies with one clear point.
42
+ - Match style without exaggerating or parodying the person.
43
+
44
+ ## What Not To Assume
45
+ - Do not expose private summaries unless asked.
@@ -4,8 +4,10 @@ Window: last 365 days
4
4
 
5
5
  Generated signals. Treat as editable working notes.
6
6
 
7
- ## Mom
7
+ ## Mom (WhatsApp)
8
8
 
9
+ - Source: WhatsApp
10
+ - Canonical person: Mom (person::mom)
9
11
  - Guess: warm personal relationship
10
12
  - Messages: 2 (1 inbound, 1 outbound)
11
13
  - Dates: 2026-01-01 to 2026-01-01
@@ -13,8 +15,10 @@ Generated signals. Treat as editable working notes.
13
15
  - Tags: direct-chat, light, warm, logistics-heavy
14
16
  - Typing style: very short; avg 4.0 words; lowercase 0.0; emoji 0.0; slang none
15
17
 
16
- ## Project Team
18
+ ## Project Team (WhatsApp)
17
19
 
20
+ - Source: WhatsApp
21
+ - Canonical person: Project Team (group::whatsapp::project team)
18
22
  - Guess: group, likely social or mixed context
19
23
  - Messages: 2 (1 inbound, 1 outbound)
20
24
  - Dates: 2026-01-01 to 2026-01-01
@@ -22,8 +26,10 @@ Generated signals. Treat as editable working notes.
22
26
  - Tags: group-chat, light, logistics-heavy, question-heavy
23
27
  - Typing style: short; avg 6.0 words; lowercase 0.0; emoji 0.0; slang none
24
28
 
25
- ## Close Friend
29
+ ## Close Friend (WhatsApp)
26
30
 
31
+ - Source: WhatsApp
32
+ - Canonical person: Close Friend (person::close friend)
27
33
  - Guess: warm personal relationship
28
34
  - Messages: 2 (1 inbound, 1 outbound)
29
35
  - Dates: 2026-01-01 to 2026-01-01
@@ -1,6 +1,12 @@
1
1
  [
2
2
  {
3
3
  "chatName": "Mom",
4
+ "sourceSystem": "WhatsApp",
5
+ "displayName": "Mom (WhatsApp)",
6
+ "identityName": "Mom",
7
+ "canonicalPersonKey": "person::mom",
8
+ "identityConfidence": "medium",
9
+ "identityEvidence": "WhatsApp direct chat identity",
4
10
  "messageCount": 2,
5
11
  "inbound": 1,
6
12
  "outbound": 1,
@@ -53,6 +59,12 @@
53
59
  },
54
60
  {
55
61
  "chatName": "Project Team",
62
+ "sourceSystem": "WhatsApp",
63
+ "displayName": "Project Team (WhatsApp)",
64
+ "identityName": "Project Team",
65
+ "canonicalPersonKey": "group::whatsapp::project team",
66
+ "identityConfidence": "medium",
67
+ "identityEvidence": "group chat kept source-specific",
56
68
  "messageCount": 2,
57
69
  "inbound": 1,
58
70
  "outbound": 1,
@@ -105,6 +117,12 @@
105
117
  },
106
118
  {
107
119
  "chatName": "Close Friend",
120
+ "sourceSystem": "WhatsApp",
121
+ "displayName": "Close Friend (WhatsApp)",
122
+ "identityName": "Close Friend",
123
+ "canonicalPersonKey": "person::close friend",
124
+ "identityConfidence": "medium",
125
+ "identityEvidence": "WhatsApp direct chat identity",
108
126
  "messageCount": 2,
109
127
  "inbound": 1,
110
128
  "outbound": 1,