@hraness/message-like-me 0.8.0

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 (56) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/LICENSE +21 -0
  3. package/README.md +698 -0
  4. package/SECURITY.md +318 -0
  5. package/dist/agentic-messaging-v1.d.ts +179 -0
  6. package/dist/agentic-messaging-v1.js +52 -0
  7. package/dist/canonical-json.d.ts +3 -0
  8. package/dist/cli-bs3db5jr.js +643 -0
  9. package/dist/cli-d7qv38ab.js +485 -0
  10. package/dist/cli-kw20gkk3.js +5 -0
  11. package/dist/cli-qqafdvz9.js +5 -0
  12. package/dist/cli-ry4128kz.js +584 -0
  13. package/dist/cli-ththzwja.js +20 -0
  14. package/dist/cli-x1qncxm7.js +1078 -0
  15. package/dist/cli.js +9436 -0
  16. package/dist/ensoul-source-v1.d.ts +121 -0
  17. package/dist/ensoul-source-v1.js +24 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.js +47 -0
  20. package/dist/message-bundle-v1-identity.d.ts +2 -0
  21. package/dist/message-bundle-v1.d.ts +205 -0
  22. package/dist/message-bundle-v1.js +37 -0
  23. package/dist/message-bundle-v2-identity.d.ts +2 -0
  24. package/dist/message-bundle-v2.d.ts +215 -0
  25. package/dist/message-bundle-v2.js +43 -0
  26. package/dist/metrics.d.ts +41 -0
  27. package/dist/types.d.ts +568 -0
  28. package/docs/local-message-bundle-v1.md +245 -0
  29. package/docs/local-message-bundle-v2.md +167 -0
  30. package/docs/methodology.md +322 -0
  31. package/docs/research.md +164 -0
  32. package/package.json +82 -0
  33. package/schema/ensoul-messages-source-v1.schema.json +248 -0
  34. package/schema/local-message-bundle-v1.schema.json +449 -0
  35. package/schema/local-message-bundle-v2.schema.json +462 -0
  36. package/schema/style-profile-v1.schema.json +223 -0
  37. package/schema/style-profile-v2.schema.json +202 -0
  38. package/skills/ensoul/LICENSE +23 -0
  39. package/skills/ensoul/NOTICE.md +7 -0
  40. package/skills/ensoul/SKILL.md +226 -0
  41. package/skills/ensoul/VENDORED_FROM.md +7 -0
  42. package/skills/ensoul/agents/openai.yaml +4 -0
  43. package/skills/ensoul/references/ensoul-source-packet-v1.schema.json +187 -0
  44. package/skills/ensoul/references/evidence-method.md +148 -0
  45. package/skills/ensoul/references/output-blueprint.md +143 -0
  46. package/skills/ensoul/references/source-packets.md +139 -0
  47. package/skills/ensoul/scripts/prepare_x_archive.py +467 -0
  48. package/skills/ensoul/scripts/validate_source_packet.py +477 -0
  49. package/skills/message-like-me/SKILL.md +229 -0
  50. package/skills/message-like-me/agents/openai.yaml +4 -0
  51. package/skills/message-like-me/references/analysis.md +159 -0
  52. package/skills/message-like-me/references/drafting.md +86 -0
  53. package/skills/message-like-me/references/ensoul.md +94 -0
  54. package/skills/message-like-me/references/evaluation.md +81 -0
  55. package/skills/message-like-me/references/privacy.md +106 -0
  56. package/skills/message-like-me/references/profile-schema.md +148 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,151 @@
1
+ # Changelog
2
+
3
+ ## 0.8.0
4
+
5
+ - Add `ensoul prepare` as an offline, bounded source adapter for the owner or
6
+ one exact direct AddressBook person scope. Rebase direction onto the selected
7
+ subject so only that person's messages carry `authorRole: subject` and all
8
+ other prose remains counterpart context.
9
+ - Emit strict `ensoul.source-packet.v1` artifacts with the
10
+ `ensoul.messages-source.v1` payload identity, scope and corpus revisions,
11
+ inclusive/exclusive time bounds, explicit sample budgets and limitations,
12
+ deterministic record identities, canonical record and packet digests, and no
13
+ derived person claims.
14
+ - Preserve exact session/burst selection parameters, redacted direct-scope and
15
+ service context, and pseudonymous response-context linkage. Reject groups and
16
+ multi-participant owner scopes instead of flattening ambiguous counterpart
17
+ authorship.
18
+ - Keep message bodies inside an explicit no-overwrite mode-`0600` export while
19
+ stdout receives only a body-free receipt. Continue excluding retractions,
20
+ system events, reactions, attachments, group-contact attribution, private
21
+ labels, handles, and raw provider coordinates.
22
+ - Bundle the copied Ensoul skill alongside Message Like Me without a runtime
23
+ dependency. Skill installation preflights and stages both complete skill
24
+ directories before publishing either one, with rollback on failure.
25
+ - Publish the strict adapter schema, TypeScript subpath, package smoke coverage,
26
+ synthetic attribution and privacy tests, and operator guidance for using
27
+ private messages as revisable evidence rather than consent, identity proof,
28
+ sensitive-trait inference, or impersonation authority.
29
+
30
+ ## 0.7.0
31
+
32
+ - Add the strict dependency-free local message bundle v2 contract for native
33
+ WhatsApp evidence: one Wrench/Wacli account, source `wacli-local@1.0.0`,
34
+ provider `whatsapp@0.15.0`, network `whatsapp`, exact supported JIDs, and
35
+ E.164 handles only when a user JID proves them.
36
+ - Dispatch bundle ingestion by manifest schema while preserving the frozen v1
37
+ Beeper parser and fixture byte-for-byte. Keep both versions behind the same
38
+ fixed private directory, canonical JSON, digest, bounds, and replay laws.
39
+ - Emit private `whatsappJid` route coordinates for native direct conversations.
40
+ Groups remain evidence-only, and Message Like Me still contains no Wacli
41
+ process, authentication, network, synchronization, preview, or send code.
42
+ - Reconcile a named Beeper WhatsApp source only after exact self-account,
43
+ direct-peer, and shared text-message proof. Prefer native Wacli evidence,
44
+ preserve unique history and both provenances, and mark the proven Beeper
45
+ route `superseded-route`.
46
+ - Publish the v2 schema, producer documentation, package export, synthetic
47
+ fixtures, CLI and privacy guidance, and informational site source entry.
48
+
49
+ ## 0.6.0
50
+
51
+ - Add a dependency-free `agentic-messaging-v1` contract that binds one exact
52
+ Wrench route and live context to local source, corpus, profile, and authored
53
+ bubble evidence without giving Message Like Me provider, auth, network,
54
+ subprocess, or send authority.
55
+ - Add strict private route inventories and handoff preparation, verification,
56
+ receipt recording, and audit commands. Prose and opaque capability references
57
+ stay in explicit owner-only files; ordinary output and the durable audit keep
58
+ only pseudonymous IDs, hashes, counts, states, and timestamps.
59
+ - Mark every official X archive route and every v1 group route evidence-only.
60
+ Emit tagged Beeper and iMessage coordinates only when the imported source
61
+ observed them, and never derive a destination from names, handles,
62
+ participants, titles, or merged person scopes.
63
+ - Freeze the Wrench context and receipt binding identities, canonical turn
64
+ digest, and cross-package vectors. A recorded receipt cannot insert a sent
65
+ message or claim delivery; later source ingestion remains the only way a sent
66
+ message can become style or tempo evidence.
67
+
68
+ ## 0.5.1
69
+
70
+ - Present Apple Messages, X data archives, Beeper via Wrench, and optional
71
+ macOS Contacts through one checked source catalog on the homepage, a dedicated
72
+ source-boundary page, documentation, and machine-readable discovery surfaces.
73
+ - Verify Wrench v0.15.0 with its pinned Beeper CLI v0.6.2 as the current bundle
74
+ producer while retaining exact schema `1`, source `beeper-local`, and
75
+ transform `1.1.0` compatibility instead of accepting a package-version range.
76
+ - Clarify that deterministic storage and measurement are local, body-bearing
77
+ packets become visible to the chosen agent environment, and Message Like Me
78
+ never receives Beeper credentials, invokes provider operations, or sends.
79
+ - Harden persisted X overlap revalidation and reaction suppression, and repair
80
+ mobile command layout so long local commands wrap without widening the page.
81
+
82
+ ## 0.5.0
83
+
84
+ - Add strict offline ingestion for caller-owned X data archive ZIPs through
85
+ `ingest x-archive`, preserving exact archive and account provenance without
86
+ extracting files, evaluating archive JavaScript, accessing a network, or
87
+ downloading media. X Chat history is not part of this source.
88
+ - Reconcile an archive with an existing Beeper X source only when the caller
89
+ names that source and exact account, direct-peer, and message evidence agree.
90
+ Retain both provenances, fail closed on ambiguity, leave group DMs separate,
91
+ and keep proven exact messages deduplicated across future reingests.
92
+ - Represent reply-link observability explicitly. X archive messages report it
93
+ as unavailable, so they remain prose and tempo evidence without entering
94
+ explicit-reply ratios or being counted as observed non-replies.
95
+ - Advance corpus, metrics, study-packet, and evaluation-packet artifacts so
96
+ reply availability survives deterministic analysis and held-out evaluation.
97
+
98
+ ## 0.4.0
99
+
100
+ - Publish `@hraness/message-like-me/message-bundle-v1` as the dependency-free
101
+ authority for the immutable version-one local message bundle wire contract,
102
+ including exact readonly types, artifact inventory, safety bounds, digest
103
+ helpers, and strict pure record and manifest parsers.
104
+ - Make source-transform compatibility fail closed at `beeper-local` version
105
+ `1.1.0`, keep the JSON Schema and checked cross-producer fixture aligned with
106
+ the executable contract, and verify the public subpath in a packed consumer.
107
+ - Reuse the public contract parsers inside CLI ingestion without changing the
108
+ bundle inventory, canonical bytes, privacy boundary, graph laws, or command
109
+ behavior.
110
+ - Keep the informational site, release link, and installation command aligned
111
+ with the package version through a checked release-identity invariant.
112
+
113
+ ## 0.3.0
114
+
115
+ - Add strict private version-one source-bundle ingestion for local Beeper
116
+ exports produced through Wrench, including account and network provenance,
117
+ replies, edits, deletions, attachments, reactions, and tombstones.
118
+ - Namespace corpus ownership by source so native iMessage and multiple provider
119
+ accounts coexist. Bounded snapshot absence retains prior history, explicit
120
+ terminal state suppresses evidence, and later reappearance restores it.
121
+ - Add `sources list` and `sources show` with active message, conversation,
122
+ reaction, undated-reaction, completeness, and warning health.
123
+ - Require Wrench 0.13.0 or newer for its direct official Beeper CLI path,
124
+ sequential per-account progress, retained-shard validation, and atomic
125
+ seven-file publication.
126
+ - Partition sessions, bursts, and response episodes by conversation, preserve
127
+ truncated text bubbles as tempo evidence, and count undated reactions without
128
+ inventing timestamps or exposing raw provider reaction values in aggregate
129
+ output.
130
+ - Upgrade existing version-two stores in place while retaining conversations,
131
+ profiles, study packets, and evidence provenance.
132
+
133
+ ## 0.2.0
134
+
135
+ - Aggregate conservatively matched direct threads into one AddressBook person
136
+ scope while retaining conversation aliases and keeping groups separate.
137
+ - Track profile validity with a scope-specific evidence revision so unrelated
138
+ new messages do not stale every profile.
139
+ - Add temporal study bounds and two-file held-out evaluation packets.
140
+ - Add the evidence-auditable version-two profile schema while retaining
141
+ version-one profile compatibility.
142
+ - Exclude retracted, reaction, and system bodies from prose evidence and harden
143
+ database, export, and rendered-README boundaries.
144
+ - Publish the research review, methodology, evaluation workflow, and explicit
145
+ non-clone product boundary.
146
+
147
+ ## 0.1.0
148
+
149
+ - Initial local iMessage and Contacts ingestion, deterministic metrics, bounded
150
+ study packets, profile storage, Agent Skill installation, and drafts-only
151
+ workflow.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Hraness contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.