enigma-memory 0.1.15 → 0.1.16

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 (39) hide show
  1. package/README.md +64 -84
  2. package/apps/cli/bin/enigma.mjs +30 -5
  3. package/apps/native-host/README.md +20 -0
  4. package/deploy/SIMULATION.md +34 -38
  5. package/docs/benchmark-attestation-network.md +2 -2
  6. package/docs/benchmark-reproducibility.md +21 -9
  7. package/docs/browser-extension-install.md +9 -6
  8. package/docs/client-connectors.md +22 -52
  9. package/docs/demo-proof-network.md +3 -3
  10. package/docs/developer-ecosystem.md +205 -223
  11. package/docs/developer-proof-quickstart.md +3 -3
  12. package/docs/enigma-memory-ready-conformance.md +1 -1
  13. package/docs/hosted-cloud-product.md +2 -0
  14. package/docs/install-anywhere.md +61 -66
  15. package/docs/memory-benchmarks.md +6 -3
  16. package/docs/proof-network-build-notes.md +2 -2
  17. package/docs/proof-network.md +32 -7
  18. package/docs/sdk-api.md +1 -1
  19. package/docs/solana-devnet-acceptance.md +1 -1
  20. package/docs/solana-proof-rail.md +1 -1
  21. package/package.json +7 -1
  22. package/packages/connectors/src/index.js +13 -0
  23. package/packages/mcp-server/README.md +22 -0
  24. package/packages/mcp-server/src/index.js +1 -1
  25. package/scripts/build-benchmark-proof-release.mjs +106 -5
  26. package/scripts/build-cloudflare-token-policy.mjs +6 -2
  27. package/scripts/build-hosted-api-key-lifecycle.mjs +1 -1
  28. package/scripts/build-hosted-customer-lifecycle.mjs +1 -1
  29. package/scripts/build-installer-assets.mjs +1 -1
  30. package/scripts/build-production-handoff-packet.mjs +1 -1
  31. package/scripts/build-production-unblocker.mjs +1 -1
  32. package/scripts/build-production-workplan.mjs +3 -1
  33. package/scripts/build-proof-network-packet.mjs +1 -1
  34. package/scripts/check.mjs +3 -1
  35. package/scripts/cloudflare-ops.mjs +35 -0
  36. package/scripts/collect-hosted-backend-live-evidence.mjs +44 -2
  37. package/scripts/run-memory-benchmarks.mjs +5 -0
  38. package/scripts/run-standard-memory-benchmarks.mjs +127 -3
  39. package/scripts/stage-cloudflare-pages-artifact.mjs +145 -0
@@ -1,6 +1,6 @@
1
1
  # Client connectors
2
2
 
3
- Enigma connects to assistant clients through MCP. The client starts `enigma-mcp` over stdio, and Enigma reads/writes the local vault bundle named by `ENIGMA_BUNDLE`. Start with the public test drive, then create a regular local workspace, then explicitly connect installed/config-present clients when you are ready.
3
+ Enigma connects to assistant clients through MCP. The client starts `enigma-mcp` over stdio, and Enigma reads/writes the local vault bundle named by `ENIGMA_BUNDLE`. Install once, run setup once, then connect the same AI Memory Passport everywhere when you explicitly choose to write a client config.
4
4
 
5
5
  Supported connector IDs:
6
6
 
@@ -12,47 +12,11 @@ Supported connector IDs:
12
12
  - `opencode`
13
13
  - `generic-mcp`
14
14
 
15
- ## Public test drive first
16
-
17
- Prove the live npm package path without credentials, hosted SaaS, provider calls, or client-config writes:
18
-
19
- ```sh
20
- npm install -g enigma-memory
21
- enigma test-drive --overwrite
22
- ```
23
-
24
- `enigma test-drive --overwrite` writes an isolated demo under `.enigma/test-drive` by default, emits one public-safe JSON summary, and does not print raw private memory plaintext. Use `--dry-run` to preview without writing, or `--out-dir <path>` to choose another isolated demo directory. The local proof/demo is bounded to Enigma-controlled vault state, receipts, checkpoints, committed roots, exported bundle shape, and declared boundary operations; it is not hosted SaaS evidence and does not prove provider deletion or model forgetting.
25
-
26
15
  ## One clear path
27
16
 
28
- After the test drive, create a regular local workspace:
29
-
30
17
  ```sh
31
18
  npm install -g enigma-memory
32
19
  enigma setup --overwrite
33
- ```
34
-
35
- `enigma setup --overwrite` writes local Enigma artifacts under the workspace `.enigma` path and emits deterministic, public-safe JSON without printing raw memory plaintext. It does not write Claude, Cursor, Kimi, VS Code, Roo, OpenCode, or generic MCP client configs.
36
-
37
- To auto-detect installed or already-configured clients and show the setup connector plan without mutating client configs:
38
-
39
- ```sh
40
- enigma setup --client auto --overwrite
41
- ```
42
-
43
- `--client auto` selects clients found by connector detection and falls back to the default setup client list when none are present. The setup output lists selected clients, skipped clients, and the reason for each skip.
44
-
45
- To explicitly write connector entries for installed/config-present clients only:
46
-
47
- ```sh
48
- enigma setup --connect-installed --overwrite
49
- ```
50
-
51
- `--connect-installed` implies auto client selection and is a client-config write flag. It skips missing client configs instead of creating every default client config. Only explicit write flags mutate client configs. Existing `enigma connect <client>` behavior and existing `enigma setup --write-connectors` behavior for explicit/default clients are unchanged.
52
-
53
- After setup, use the same local vault from the CLI or connected clients:
54
-
55
- ```sh
56
20
  enigma remember --text-file ./memory.txt
57
21
  enigma search --query "..."
58
22
  enigma context --query "..." --optimize
@@ -60,13 +24,9 @@ enigma verify --export ./.enigma/export.json
60
24
  enigma connect claude-desktop --dry-run
61
25
  ```
62
26
 
63
- Provider-native memory is non-canonical cache only in this architecture. The Enigma vault remains canonical, and Enigma receipts prove Enigma-controlled lifecycle events; they do not prove that a hosted provider deleted hidden copies or that a model forgot anything.
64
-
65
- One-off public test drive without a global install:
27
+ `enigma setup --overwrite` writes local Enigma artifacts under the workspace `.enigma` path and emits deterministic, public-safe JSON without printing raw memory plaintext. It does not write Claude, Cursor, Kimi, VS Code, Roo, OpenCode, or generic MCP client configs. Client config writes happen only when you explicitly run `enigma connect <client>` without `--dry-run`.
66
28
 
67
- ```sh
68
- npx --yes --package enigma-memory enigma test-drive --overwrite
69
- ```
29
+ Provider-native memory is non-canonical cache only in this architecture. The Enigma vault remains canonical, and Enigma receipts prove Enigma-controlled lifecycle events; they do not prove that a hosted provider deleted hidden copies or that a model forgot anything.
70
30
 
71
31
  From a source checkout, use this only for package development or source-only docs:
72
32
 
@@ -77,14 +37,6 @@ npm install -g .
77
37
 
78
38
  ## Preview, then connect
79
39
 
80
- Preview installed/config-present connector targets during setup without changing client configs:
81
-
82
- ```sh
83
- enigma setup --client auto --overwrite
84
- ```
85
-
86
- The output reports selected clients, skipped clients, and skip reasons. If no installed/config-present client is discovered, auto selection falls back to the default setup client list for planning.
87
-
88
40
  Preview one client without changing it:
89
41
 
90
42
  ```sh
@@ -97,7 +49,25 @@ enigma connect opencode --dry-run
97
49
  enigma connect generic-mcp --dry-run
98
50
  ```
99
51
 
100
- When you are ready to write all installed/config-present client configs discovered by setup, use the explicit setup-time write flag:
52
+ When the single-client dry run looks right, remove `--dry-run` for the client you want:
53
+
54
+ ```sh
55
+ enigma connect claude-desktop
56
+ enigma connect cursor
57
+ enigma connect kimi-code
58
+ enigma connect vscode-cline
59
+ enigma connect roo
60
+ enigma connect opencode
61
+ enigma connect generic-mcp
62
+ ```
63
+
64
+ Optional setup-time planning for installed/config-present connector targets remains available:
65
+
66
+ ```sh
67
+ enigma setup --client auto --overwrite
68
+ ```
69
+
70
+ Use the explicit setup-time write flag only when you want setup to write all installed/config-present client configs it discovers:
101
71
 
102
72
  ```sh
103
73
  enigma setup --connect-installed --overwrite
@@ -201,7 +201,7 @@ enigma chain attest \
201
201
  --report-hash sha256:5555555555555555555555555555555555555555555555555555555555555555 \
202
202
  --dataset-ref enigma-fixture:deterministic-local:v1 \
203
203
  --runner-ref enigma-memory:local-benchmark-runner:v1 \
204
- --package-ref npm:enigma-memory@0.1.15 \
204
+ --package-ref npm:enigma-memory@0.1.16 \
205
205
  --score recall_at_5=1 \
206
206
  --score p95_latency_ms=14 \
207
207
  --out .enigma/proof-network/benchmark-attestation.json
@@ -219,7 +219,7 @@ enigma chain attest \
219
219
  --report-file .enigma/benchmarks/report.json \
220
220
  --dataset-ref enigma-fixture:deterministic-local:v1 \
221
221
  --runner-ref enigma-memory:scripts/run-memory-benchmarks.mjs \
222
- --package-ref npm:enigma-memory@0.1.15 \
222
+ --package-ref npm:enigma-memory@0.1.16 \
223
223
  --score recall_at_5=1 \
224
224
  --score p95_latency_ms=14 \
225
225
  --out .enigma/proof-network/benchmark-attestation.json
@@ -236,7 +236,7 @@ Expected public-safe output shape from `chain attest`:
236
236
  "report_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
237
237
  "dataset_ref": "enigma-fixture:deterministic-local:v1",
238
238
  "runner_ref": "enigma-memory:local-benchmark-runner:v1",
239
- "package_ref": "npm:enigma-memory@0.1.15",
239
+ "package_ref": "npm:enigma-memory@0.1.16",
240
240
  "scores": {
241
241
  "recall_at_5": 1,
242
242
  "p95_latency_ms": 14
@@ -1,223 +1,205 @@
1
- # Developer ecosystem
2
-
3
- Enigma Memory is a local-first SDK, CLI, MCP server, and service-contract package. The developer surfaces are designed to be copied without secrets, cloud credentials, hidden local paths, or account identifiers.
4
-
5
- ## Public test-drive loop
6
-
7
- For most developers, start with the installed CLI before reading the SDK internals or service contracts:
8
-
9
- ```sh
10
- npm install -g enigma-memory
11
- enigma test-drive --overwrite
12
- ```
13
-
14
- `enigma test-drive --overwrite` is zero-credential, local-only, and public-safe by default. It writes an isolated demo under `.enigma/test-drive`, keeps the default bundle inside that directory, emits one JSON summary, and does not print raw private memory plaintext. Use `--dry-run` to preview without writing or `--out-dir <path>` to choose another isolated demo directory.
15
-
16
- The test drive runs the local proof/demo path only: setup artifacts, search/status output, a cross-model demo report, and benchmark pointers. It does not call external providers, contact hosted Enigma SaaS, require OpenAI/Anthropic/Cloudflare credentials, create accounts, or write third-party client configs. Keep public claims bounded to local Enigma-controlled vault state, receipts, checkpoints, committed roots, exported bundle shape, and declared boundary operations.
17
-
18
- To explicitly connect real local clients that are already installed or already configured:
19
-
20
- ```sh
21
- enigma setup --connect-installed --overwrite
22
- ```
23
-
24
- `--connect-installed` implies auto selection, writes only for installed/config-present clients, and skips missing configs instead of creating every default client config. Only explicit write flags mutate client configs; `enigma connect <client>` without `--dry-run` remains the single-client write path, and existing `enigma setup --write-connectors` behavior for explicit/default clients is unchanged. Treat provider-native memory as non-canonical cache only; the local Enigma vault is canonical.
25
-
26
- ## CLI memory passport loop
27
-
28
- After the public test drive, create a regular local workspace when you want day-to-day CLI usage:
29
-
30
- ```sh
31
- npm install -g enigma-memory
32
- enigma setup --overwrite
33
- ```
34
-
35
- `enigma setup --overwrite` is the safe default for a regular local workspace. It writes local Enigma artifacts under the workspace `.enigma` path and emits deterministic, public-safe JSON without printing raw memory plaintext. It does not write third-party app configs.
36
-
37
- After setup, use the same local vault from the CLI or connected clients:
38
-
39
- ```sh
40
- enigma remember --text-file ./memory.txt
41
- enigma search --query "..."
42
- enigma context --query "..." --optimize
43
- enigma verify --export ./.enigma/export.json
44
- enigma connect claude-desktop --dry-run
45
- ```
46
-
47
- ## Copyable starting points
48
-
49
- - SDK/API guide: [`docs/sdk-api.md`](./sdk-api.md)
50
- - Node example app: [`examples/node-basic-memory.mjs`](../examples/node-basic-memory.mjs)
51
- - GitHub Actions example: [`examples/ci/github-actions.yml`](../examples/ci/github-actions.yml)
52
- - Benchmark reproducibility guide: [`docs/benchmark-reproducibility.md`](./benchmark-reproducibility.md)
53
- - Generic MCP client template: [`templates/mcp-client-config.json`](../templates/mcp-client-config.json)
54
-
55
- ## Local SDK loop
56
-
57
- Use the SDK when you want an app-owned vault and receipt-backed proof loop:
58
-
59
- 1. Create a local vault with `createVault`.
60
- 2. Add a generic, non-private memory with `remember`.
61
- 3. Create a passport with `createPassport`.
62
- 4. Compile a receipt-backed context pack with `compileContextPack`.
63
- 5. Export a proof-carrying bundle with `exportBundle`; keep full bundles private unless local import key material has been reviewed and removed.
64
- 6. Verify receipts with `verifyReceiptChain`, `enigma verify`, `enigma-verify`, or MCP `enigma_verify_receipts`.
65
-
66
- The example app prints ids, counts, roots, and verification status only. It does not print raw memory text, generated key material, credentials, provider transcripts, or local absolute paths.
67
-
68
- ## CLI and CI loop
69
-
70
- The CI example installs Node 24, installs `enigma-memory` into a disposable npm project, exposes the package benchmark script, then runs:
71
-
72
- ```sh
73
- npx enigma test-drive --overwrite
74
- npx enigma setup --overwrite
75
- npx enigma doctor
76
- npm run benchmark:memory-suite -- --out benchmark-report.json
77
- ```
78
-
79
- and then runs a small ESM import smoke. It does not require GitHub secrets, cloud provider credentials, npm tokens, private bundles, local path assumptions, hosted Enigma SaaS, external memory-provider calls, or official dataset network downloads in normal CI. The test-drive and benchmark steps write public-safe local JSON reports; see the benchmark reproducibility guide for claim boundaries and the requirements for any future live third-party comparison.
80
-
81
- The workflow also includes optional official-dataset benchmark preparation steps gated behind the manual `workflow_dispatch` input `run_standard_benchmark: true`. Normal `push` and `pull_request` runs skip them, so official dataset downloads are not required in normal CI. Enable the manual path only after the repository has reviewed network use and dataset-license handling:
82
-
83
- ```sh
84
- node ./node_modules/enigma-memory/scripts/download-standard-benchmarks.mjs --dry-run
85
- node ./node_modules/enigma-memory/scripts/download-standard-benchmarks.mjs --execute --dataset all --out-dir .enigma/benchmarks/datasets --manifest .enigma/benchmarks/dataset-manifest.json
86
- node ./node_modules/enigma-memory/scripts/run-standard-memory-benchmarks.mjs --locomo .enigma/benchmarks/datasets/locomo10.json --longmemeval .enigma/benchmarks/datasets/longmemeval_s_cleaned.json --max-locomo-qa 25 --max-longmemeval-items 25 --top-k 5 --out .enigma/standard-memory-benchmark-sample.json
87
- ```
88
-
89
- Those commands produce a dataset manifest with source URLs, byte sizes, and SHA-256 hashes plus a standard benchmark report using schema `enigma.standard_memory_benchmark_suite.v1`. The standard runner is retrieval/evidence proxy scoring only: it does not call providers, grade generated answers, or produce competitor scores.
90
-
91
- Use the workflow as a template in a consumer repository. It is intentionally limited to install/import/doctor smoke coverage, local proof generation, and deterministic local benchmark evidence by default; it does not publish packages, deploy infrastructure, contact hosted Enigma cloud, call external memory providers, or download official benchmark datasets unless you intentionally enable `run_standard_benchmark` for a manual workflow run.
92
-
93
- ## Proof Network developer loop
94
-
95
- The proof-network path gives integrators a public, privacy-preserving adoption track before any chain transaction or hosted integration exists. The adoption ladder is intentionally simple:
96
-
97
- 1. Install or invoke the npm package.
98
- 2. Run the local test drive to produce safe roots/receipts/counts.
99
- 3. Generate proof-network chain artifacts from public-safe inputs.
100
- 4. Verify those artifacts locally.
101
- 5. Wire the same artifact contract into a connector, benchmark dashboard, or conformance test.
102
-
103
- ```sh
104
- npx --yes --package enigma-memory enigma test-drive --overwrite
105
- npx --yes --package enigma-memory enigma chain anchor --root sha256:8f8f... --root sha256:9a9a... --ref demo-local-vault --authority demo-public-authority --batch-ref demo-anchor-batch --out .enigma/proof-anchor-batch.json
106
- npx --yes --package enigma-memory enigma chain grant --subject did:example:agent --capability memory.read --scope demo-scope --resource-ref sha256:8f8f... --policy-hash sha256:7e7e... --expires-at 2026-07-01T00:00:00Z --grant-ref demo-grant --out .enigma/proof-capability-grant.json
107
- npx --yes --package enigma-memory enigma chain revoke --grant-hash sha256:6d6d... --reason scope-ended --revocation-ref demo-revocation --out .enigma/proof-capability-revocation.json
108
- npx --yes --package enigma-memory enigma chain attest --report-file benchmark-report.json --dataset-ref sha256:5c5c... --runner-ref enigma-standard-runner --package-ref enigma-memory@0.1.15 --score accuracy=0.92 --out .enigma/proof-benchmark-attestation.json
109
- npx --yes --package enigma-memory enigma chain verify --file .enigma/proof-anchor-batch.json
110
- ```
111
-
112
- `enigma chain anchor`, `grant`, `revoke`, `attest`, and `verify` are local planning commands. They create or validate opaque JSON proof-network artifacts for Solana-ready anchoring, but they do not create accounts, sign with private keys, submit transactions, deploy programs, or call RPC providers. Generated chain artifacts must keep `transaction_submitted:false` and `raw_memory_on_chain:false`; if an example needs a memory reference, use a public-safe commitment or receipt root rather than raw memory, prompts, transcripts, completions, embeddings, ACL bodies, tenant names, provider responses, private keys, seed phrases, or credentials.
113
-
114
- Use proof artifacts as the common exchange format for developer integrations:
115
-
116
- - **NPM test-drive adopters:** run the test drive, create an anchor batch from local roots/refs, verify the artifact, and attach the JSON to a pull request, demo, or release note without exposing private memory.
117
- - **Chain artifact builders:** treat `anchor_batch`, `capability_grant`, `capability_revocation`, `benchmark_attestation`, and `packet` as the supported public artifact types. Anchors carry roots/refs/counts for later settlement; grants carry subject, capability, scope, resource refs, policy hashes, and expiry; revocations carry grant hashes and nullifiers; attestations carry report hashes plus dataset, runner, package, and score refs.
118
- - **Conformance program partners:** build fixtures that accept valid proof-network artifacts and reject artifacts that leak private payload keys or values, omit the false transaction flags, use raw ACL or tenant bodies, or mix raw memory with public chain payloads. A connector should pass conformance before it claims proof-network support.
119
- - **Benchmark attestation contributors:** hash the benchmark report or pass the report file, then bind it to dataset, runner, and package refs. The attestation makes benchmark evidence portable, but benchmark claims still depend on the benchmark guide's dataset, scoring, and comparison boundaries.
120
- - **Connector authors:** wallet, agent, MCP, CI, and dashboard connectors can verify packets, display opaque Solana-ready roots, enforce grants before retrieval, publish revocation/nullifier artifacts when access ends, and keep private bundles off-chain while sharing verifiable commitments.
121
-
122
- Conformance should stay narrow and testable. A proof-network connector is ready for public examples when it can:
123
-
124
- 1. accept every supported proof-network artifact shape and return a deterministic validation result;
125
- 2. reject any artifact containing private-looking field names or values before display, upload, signing, or indexing;
126
- 3. preserve `transaction_submitted:false` unless a separate reviewed settlement path actually submits a transaction;
127
- 4. preserve `raw_memory_on_chain:false` for every chain-facing artifact;
128
- 5. enforce capability grant subject, capability, scope, resource-ref, policy-hash, and expiry constraints before retrieval;
129
- 6. accept capability revocations/nullifiers and stop treating revoked grants as usable;
130
- 7. bind benchmark attestations to report hashes/files plus dataset, runner, and package refs without importing the raw benchmark corpus or private model output.
131
-
132
- Good first connector projects are deliberately small: a CLI verifier that fails CI on leaked private payloads, a wallet preview that shows only roots/scopes/expiry/nullifiers, an MCP middleware that blocks retrieval without a live grant, a benchmark dashboard that accepts attestation JSON beside a report hash, and a Solana explorer plugin that labels opaque anchor batches without claiming transaction submission.
133
-
134
- This path is intentionally copyable: npm install, run a local test drive, generate proof artifacts, verify them, then wire the same public-safe contract into a connector or conformance test. Do not position it as live settlement, provider deletion proof, compliance certification, or benchmark leadership without the separate evidence those claims require.
135
-
136
- ## MCP client loop
137
-
138
- The same installed package can be used by Claude Desktop, Cursor, Kimi Code, or any generic MCP client. Run `enigma test-drive --overwrite` first if you want a zero-credential local proof before touching real client configs. The smooth setup path is `enigma setup --client auto --overwrite` to plan detected clients, then `enigma setup --connect-installed --overwrite` only when you explicitly want setup to write installed/config-present client configs. Manual snippets remain useful when a client needs a copied entry; replace the bundle path with the local path from your setup output, and restart the client.
139
-
140
- Claude Desktop:
141
-
142
- ```json
143
- {
144
- "mcpServers": {
145
- "enigma": {
146
- "command": "enigma-mcp",
147
- "args": [],
148
- "env": {
149
- "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
150
- }
151
- }
152
- }
153
- }
154
- ```
155
-
156
- Cursor:
157
-
158
- ```json
159
- {
160
- "mcpServers": {
161
- "enigma": {
162
- "command": "enigma-mcp",
163
- "args": [],
164
- "env": {
165
- "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
166
- }
167
- }
168
- }
169
- }
170
- ```
171
-
172
- Kimi Code:
173
-
174
- ```json
175
- {
176
- "mcpServers": {
177
- "enigma": {
178
- "command": "enigma-mcp",
179
- "args": [],
180
- "env": {
181
- "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
182
- }
183
- }
184
- }
185
- }
186
- ```
187
-
188
- Generic MCP:
189
-
190
- ```json
191
- {
192
- "mcpServers": {
193
- "enigma": {
194
- "command": "enigma-mcp",
195
- "args": [],
196
- "env": {
197
- "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
198
- }
199
- }
200
- }
201
- }
202
- ```
203
-
204
- Do not commit private bundle paths if they reveal local usernames, workspace names, account ids, or other personal details.
205
-
206
- ## Claim boundaries for developers
207
-
208
- Enigma proof artifacts cover Enigma-controlled or Enigma-mediated state: local vault events, receipts, active/tombstoned memory addresses, context-pack retrieval/injection receipts, relay/gateway records, usage events, and settlement receipts.
209
-
210
- They do not prove:
211
-
212
- - provider-side deletion;
213
- - model forgetting;
214
- - compliance certification;
215
- - token ROI, investment outcome, or provider invoice savings;
216
- - hosted-cloud readiness from a local demo;
217
- - benchmark leadership from SDK mechanics alone.
218
-
219
- Benchmark claims require benchmark-specific evidence. LoCoMo covers long-term conversational memory QA, event summarization, and multimodal generation across long conversations. LongMemEval covers extraction, multi-session reasoning, temporal reasoning, knowledge updates, and abstention. Agent-memory benchmark results can depend heavily on the agent/framework/tool loop, not only on the memory store. Keep those distinctions when writing integrations or public copy.
220
-
221
- ## What to keep out of examples
222
-
223
- Do not add secrets, tokens, 2FA codes, cloud account ids, personal data, provider transcripts, raw private memory, absolute local paths, or unreviewed hosted endpoints to examples/templates. Public-safe examples should use generic ids, relative paths, placeholders, hashes, commitments, counts, receipt ids, and roots.
1
+ # Developer ecosystem
2
+
3
+ Enigma Memory is a local-first SDK, CLI, MCP server, and service-contract package. The developer surfaces are designed to be copied without secrets, cloud credentials, hidden local paths, or account identifiers.
4
+
5
+ ## CLI memory passport loop
6
+
7
+ For most developers, start with the installed CLI before reading the SDK internals or service contracts:
8
+
9
+ ```sh
10
+ npm install -g enigma-memory
11
+ enigma setup --overwrite
12
+ enigma remember --text-file ./memory.txt
13
+ enigma search --query "..."
14
+ enigma context --query "..." --optimize
15
+ enigma verify --export ./.enigma/export.json
16
+ enigma connect claude-desktop --dry-run
17
+ ```
18
+
19
+ `enigma setup --overwrite` writes local Enigma artifacts under the workspace `.enigma` path and emits deterministic, public-safe JSON without printing raw memory plaintext. It does not write third-party app configs unless you explicitly run `enigma connect <client>` without `--dry-run`. Treat provider-native memory as non-canonical cache only; the local Enigma vault is canonical.
20
+
21
+ Optional public test-drive loop:
22
+
23
+ ```sh
24
+ npx --yes --package enigma-memory enigma test-drive --overwrite
25
+ ```
26
+
27
+ `enigma test-drive --overwrite` is zero-credential, local-only, and public-safe by default. It does not call external providers, contact hosted Enigma SaaS, require OpenAI/Anthropic/Cloudflare credentials, create accounts, or write third-party client configs.
28
+
29
+ ## Copyable starting points
30
+
31
+ - SDK/API guide: [`docs/sdk-api.md`](./sdk-api.md)
32
+ - Node example app: [`examples/node-basic-memory.mjs`](../examples/node-basic-memory.mjs)
33
+ - GitHub Actions example: [`examples/ci/github-actions.yml`](../examples/ci/github-actions.yml)
34
+ - Benchmark reproducibility guide: [`docs/benchmark-reproducibility.md`](./benchmark-reproducibility.md)
35
+ - Generic MCP client template: [`templates/mcp-client-config.json`](../templates/mcp-client-config.json)
36
+
37
+ ## Local SDK loop
38
+
39
+ Use the SDK when you want an app-owned vault and receipt-backed proof loop:
40
+
41
+ 1. Create a local vault with `createVault`.
42
+ 2. Add a generic, non-private memory with `remember`.
43
+ 3. Create a passport with `createPassport`.
44
+ 4. Compile a receipt-backed context pack with `compileContextPack`.
45
+ 5. Export a proof-carrying bundle with `exportBundle`; keep full bundles private unless local import key material has been reviewed and removed.
46
+ 6. Verify receipts with `verifyReceiptChain`, `enigma verify`, `enigma-verify`, or MCP `enigma_verify_receipts`.
47
+
48
+ The example app prints ids, counts, roots, and verification status only. It does not print raw memory text, generated key material, credentials, provider transcripts, or local absolute paths.
49
+
50
+ ## CLI and CI loop
51
+
52
+ The CI example installs Node 24, installs `enigma-memory` into a disposable npm project, exposes the package benchmark script, then runs:
53
+
54
+ ```sh
55
+ npx enigma test-drive --overwrite
56
+ npx enigma setup --overwrite
57
+ npx enigma doctor
58
+ npm run benchmark:memory-suite -- --out benchmark-report.json
59
+ ```
60
+
61
+ and then runs a small ESM import smoke. It does not require GitHub secrets, cloud provider credentials, npm tokens, private bundles, local path assumptions, hosted Enigma SaaS, external memory-provider calls, or official dataset network downloads in normal CI. The test-drive and benchmark steps write public-safe local JSON reports; see the benchmark reproducibility guide for claim boundaries and the requirements for any future live third-party comparison.
62
+
63
+ The workflow also includes optional official-dataset benchmark preparation steps gated behind the manual `workflow_dispatch` input `run_standard_benchmark: true`. Normal `push` and `pull_request` runs skip them, so official dataset downloads are not required in normal CI. Enable the manual path only after the repository has reviewed network use and dataset-license handling:
64
+
65
+ ```sh
66
+ node ./node_modules/enigma-memory/scripts/download-standard-benchmarks.mjs --dry-run
67
+ node ./node_modules/enigma-memory/scripts/download-standard-benchmarks.mjs --execute --dataset all --out-dir .enigma/benchmarks/datasets --manifest .enigma/benchmarks/dataset-manifest.json
68
+ node ./node_modules/enigma-memory/scripts/run-standard-memory-benchmarks.mjs --locomo .enigma/benchmarks/datasets/locomo10.json --longmemeval .enigma/benchmarks/datasets/longmemeval_s_cleaned.json --max-locomo-qa 25 --max-longmemeval-items 25 --top-k 5 --out .enigma/standard-memory-benchmark-sample.json
69
+ ```
70
+
71
+ Those commands produce a dataset manifest with source URLs, byte sizes, and SHA-256 hashes plus a standard benchmark report using schema `enigma.standard_memory_benchmark_suite.v1`. The standard runner is retrieval/evidence proxy scoring only: it does not call providers, grade generated answers, or produce competitor scores.
72
+
73
+ Use the workflow as a template in a consumer repository. It is intentionally limited to install/import/doctor smoke coverage, local proof generation, and deterministic local benchmark evidence by default; it does not publish packages, deploy infrastructure, contact hosted Enigma cloud, call external memory providers, or download official benchmark datasets unless you intentionally enable `run_standard_benchmark` for a manual workflow run.
74
+
75
+ ## Proof Network developer loop
76
+
77
+ The proof-network path gives integrators a public, privacy-preserving adoption track before any chain transaction or hosted integration exists. The adoption ladder is intentionally simple:
78
+
79
+ 1. Install or invoke the npm package.
80
+ 2. Run the local test drive to produce safe roots/receipts/counts.
81
+ 3. Generate proof-network chain artifacts from public-safe inputs.
82
+ 4. Verify those artifacts locally.
83
+ 5. Wire the same artifact contract into a connector, benchmark dashboard, or conformance test.
84
+
85
+ ```sh
86
+ npx --yes --package enigma-memory enigma test-drive --overwrite
87
+ npx --yes --package enigma-memory enigma chain anchor --root sha256:8f8f... --root sha256:9a9a... --ref demo-local-vault --authority demo-public-authority --batch-ref demo-anchor-batch --out .enigma/proof-anchor-batch.json
88
+ npx --yes --package enigma-memory enigma chain grant --subject did:example:agent --capability memory.read --scope demo-scope --resource-ref sha256:8f8f... --policy-hash sha256:7e7e... --expires-at 2026-07-01T00:00:00Z --grant-ref demo-grant --out .enigma/proof-capability-grant.json
89
+ npx --yes --package enigma-memory enigma chain revoke --grant-hash sha256:6d6d... --reason scope-ended --revocation-ref demo-revocation --out .enigma/proof-capability-revocation.json
90
+ npx --yes --package enigma-memory enigma chain attest --report-file benchmark-report.json --dataset-ref sha256:5c5c... --runner-ref enigma-standard-runner --package-ref enigma-memory@0.1.5 --score accuracy=0.92 --out .enigma/proof-benchmark-attestation.json
91
+ npx --yes --package enigma-memory enigma chain verify --file .enigma/proof-anchor-batch.json
92
+ ```
93
+
94
+ `enigma chain anchor`, `grant`, `revoke`, `attest`, and `verify` are local planning commands. They create or validate opaque JSON proof-network artifacts for Solana-ready anchoring, but they do not create accounts, sign with private keys, submit transactions, deploy programs, or call RPC providers. Generated chain artifacts must keep `transaction_submitted:false` and `raw_memory_on_chain:false`; if an example needs a memory reference, use a public-safe commitment or receipt root rather than raw memory, prompts, transcripts, completions, embeddings, ACL bodies, tenant names, provider responses, private keys, seed phrases, or credentials.
95
+
96
+ Use proof artifacts as the common exchange format for developer integrations:
97
+
98
+ - **NPM test-drive adopters:** run the test drive, create an anchor batch from local roots/refs, verify the artifact, and attach the JSON to a pull request, demo, or release note without exposing private memory.
99
+ - **Chain artifact builders:** treat `anchor_batch`, `capability_grant`, `capability_revocation`, `benchmark_attestation`, and `packet` as the supported public artifact types. Anchors carry roots/refs/counts for later settlement; grants carry subject, capability, scope, resource refs, policy hashes, and expiry; revocations carry grant hashes and nullifiers; attestations carry report hashes plus dataset, runner, package, and score refs.
100
+ - **Conformance program partners:** build fixtures that accept valid proof-network artifacts and reject artifacts that leak private payload keys or values, omit the false transaction flags, use raw ACL or tenant bodies, or mix raw memory with public chain payloads. A connector should pass conformance before it claims proof-network support.
101
+ - **Benchmark attestation contributors:** hash the benchmark report or pass the report file, then bind it to dataset, runner, and package refs. The attestation makes benchmark evidence portable, but benchmark claims still depend on the benchmark guide's dataset, scoring, and comparison boundaries.
102
+ - **Connector authors:** wallet, agent, MCP, CI, and dashboard connectors can verify packets, display opaque Solana-ready roots, enforce grants before retrieval, publish revocation/nullifier artifacts when access ends, and keep private bundles off-chain while sharing verifiable commitments.
103
+
104
+ Conformance should stay narrow and testable. A proof-network connector is ready for public examples when it can:
105
+
106
+ 1. accept every supported proof-network artifact shape and return a deterministic validation result;
107
+ 2. reject any artifact containing private-looking field names or values before display, upload, signing, or indexing;
108
+ 3. preserve `transaction_submitted:false` unless a separate reviewed settlement path actually submits a transaction;
109
+ 4. preserve `raw_memory_on_chain:false` for every chain-facing artifact;
110
+ 5. enforce capability grant subject, capability, scope, resource-ref, policy-hash, and expiry constraints before retrieval;
111
+ 6. accept capability revocations/nullifiers and stop treating revoked grants as usable;
112
+ 7. bind benchmark attestations to report hashes/files plus dataset, runner, and package refs without importing the raw benchmark corpus or private model output.
113
+
114
+ Good first connector projects are deliberately small: a CLI verifier that fails CI on leaked private payloads, a wallet preview that shows only roots/scopes/expiry/nullifiers, an MCP middleware that blocks retrieval without a live grant, a benchmark dashboard that accepts attestation JSON beside a report hash, and a Solana explorer plugin that labels opaque anchor batches without claiming transaction submission.
115
+
116
+ This path is intentionally copyable: npm install, run a local test drive, generate proof artifacts, verify them, then wire the same public-safe contract into a connector or conformance test. Do not position it as live settlement, provider deletion proof, compliance certification, or benchmark leadership without the separate evidence those claims require.
117
+
118
+ ## MCP client loop
119
+
120
+ The same installed package can be used by Claude Desktop, Cursor, Kimi Code, or any generic MCP client. The smooth path is still one local setup plus a dry-run connector preview: `enigma setup --overwrite`, then `enigma connect claude-desktop --dry-run` or the matching client id. Remove `--dry-run` only when you explicitly want Enigma to write that client config. Manual snippets remain useful when a client needs a copied entry; replace the bundle path with the local path from your setup output, and restart the client.
121
+
122
+ Claude Desktop:
123
+
124
+ ```json
125
+ {
126
+ "mcpServers": {
127
+ "enigma": {
128
+ "command": "enigma-mcp",
129
+ "args": [],
130
+ "env": {
131
+ "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
132
+ }
133
+ }
134
+ }
135
+ }
136
+ ```
137
+
138
+ Cursor:
139
+
140
+ ```json
141
+ {
142
+ "mcpServers": {
143
+ "enigma": {
144
+ "command": "enigma-mcp",
145
+ "args": [],
146
+ "env": {
147
+ "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
148
+ }
149
+ }
150
+ }
151
+ }
152
+ ```
153
+
154
+ Kimi Code:
155
+
156
+ ```json
157
+ {
158
+ "mcpServers": {
159
+ "enigma": {
160
+ "command": "enigma-mcp",
161
+ "args": [],
162
+ "env": {
163
+ "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
164
+ }
165
+ }
166
+ }
167
+ }
168
+ ```
169
+
170
+ Generic MCP:
171
+
172
+ ```json
173
+ {
174
+ "mcpServers": {
175
+ "enigma": {
176
+ "command": "enigma-mcp",
177
+ "args": [],
178
+ "env": {
179
+ "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
180
+ }
181
+ }
182
+ }
183
+ }
184
+ ```
185
+
186
+ Do not commit private bundle paths if they reveal local usernames, workspace names, account ids, or other personal details.
187
+
188
+ ## Claim boundaries for developers
189
+
190
+ Enigma proof artifacts cover Enigma-controlled or Enigma-mediated state: local vault events, receipts, active/tombstoned memory addresses, context-pack retrieval/injection receipts, relay/gateway records, usage events, and settlement receipts.
191
+
192
+ They do not prove:
193
+
194
+ - provider-side deletion;
195
+ - model forgetting;
196
+ - compliance certification;
197
+ - token ROI, investment outcome, or provider invoice savings;
198
+ - hosted-cloud readiness from a local demo;
199
+ - benchmark leadership from SDK mechanics alone.
200
+
201
+ Benchmark claims require benchmark-specific evidence. LoCoMo covers long-term conversational memory QA, event summarization, and multimodal generation across long conversations. LongMemEval covers extraction, multi-session reasoning, temporal reasoning, knowledge updates, and abstention. Agent-memory benchmark results can depend heavily on the agent/framework/tool loop, not only on the memory store. Keep those distinctions when writing integrations or public copy.
202
+
203
+ ## What to keep out of examples
204
+
205
+ Do not add secrets, tokens, 2FA codes, cloud account ids, personal data, provider transcripts, raw private memory, absolute local paths, or unreviewed hosted endpoints to examples/templates. Public-safe examples should use generic ids, relative paths, placeholders, hashes, commitments, counts, receipt ids, and roots.
@@ -141,7 +141,7 @@ npx --yes --package enigma-memory enigma chain attest \
141
141
  --report-hash sha256:6666666666666666666666666666666666666666666666666666666666666666 \
142
142
  --dataset-ref dataset:quickstart-public-fixture:v1 \
143
143
  --runner-ref runner:enigma-local:v1 \
144
- --package-ref npm:enigma-memory@0.1.15 \
144
+ --package-ref npm:enigma-memory@0.1.16 \
145
145
  --score recall_at_5=1 \
146
146
  --score p95_latency_ms=14 \
147
147
  --out .enigma/proof-quickstart/benchmark-attestation.json
@@ -154,7 +154,7 @@ npx --yes --package enigma-memory enigma chain attest \
154
154
  --report-file .enigma/proof-quickstart/reviewed-benchmark-report.json \
155
155
  --dataset-ref dataset:quickstart-public-fixture:v1 \
156
156
  --runner-ref runner:enigma-local:v1 \
157
- --package-ref npm:enigma-memory@0.1.15 \
157
+ --package-ref npm:enigma-memory@0.1.16 \
158
158
  --score recall_at_5=1 \
159
159
  --score p95_latency_ms=14 \
160
160
  --out .enigma/proof-quickstart/benchmark-attestation.json
@@ -282,7 +282,7 @@ const attestation = createBenchmarkAttestation({
282
282
  report_hash: 'sha256:6666666666666666666666666666666666666666666666666666666666666666',
283
283
  dataset_ref: 'dataset:quickstart-public-fixture:v1',
284
284
  runner_ref: 'runner:enigma-local:v1',
285
- package_ref: 'npm:enigma-memory@0.1.15',
285
+ package_ref: 'npm:enigma-memory@0.1.16',
286
286
  sample_count: 12,
287
287
  run_count: 1,
288
288
  });