enigma-memory 0.1.15 → 0.1.17

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 (44) hide show
  1. package/README.md +70 -86
  2. package/apps/cli/bin/enigma.mjs +152 -15
  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 +70 -9
  7. package/docs/blockchain-only-mechanisms.md +12 -0
  8. package/docs/browser-extension-install.md +9 -6
  9. package/docs/client-connectors.md +29 -55
  10. package/docs/demo-proof-network.md +3 -3
  11. package/docs/developer-ecosystem.md +207 -223
  12. package/docs/developer-proof-quickstart.md +3 -3
  13. package/docs/enigma-memory-ready-conformance.md +1 -1
  14. package/docs/hosted-cloud-product.md +31 -0
  15. package/docs/install-anywhere.md +68 -70
  16. package/docs/memory-benchmarks.md +21 -3
  17. package/docs/memory-drive-health-model.md +41 -0
  18. package/docs/proof-network-build-notes.md +2 -2
  19. package/docs/proof-network.md +90 -8
  20. package/docs/sdk-api.md +1 -1
  21. package/docs/solana-devnet-acceptance.md +1 -1
  22. package/docs/solana-proof-rail.md +1 -1
  23. package/package.json +7 -1
  24. package/packages/connectors/src/index.js +13 -0
  25. package/packages/hosted-cloud/src/index.js +470 -2
  26. package/packages/mcp-server/README.md +22 -0
  27. package/packages/mcp-server/src/index.js +1 -1
  28. package/packages/passport/src/index.js +730 -0
  29. package/packages/proof-network/src/index.js +139 -0
  30. package/scripts/build-benchmark-proof-release.mjs +119 -6
  31. package/scripts/build-cloudflare-token-policy.mjs +6 -2
  32. package/scripts/build-hosted-api-key-lifecycle.mjs +1 -1
  33. package/scripts/build-hosted-customer-lifecycle.mjs +23 -3
  34. package/scripts/build-installer-assets.mjs +1 -1
  35. package/scripts/build-production-handoff-packet.mjs +1 -1
  36. package/scripts/build-production-unblocker.mjs +409 -409
  37. package/scripts/build-production-workplan.mjs +3 -1
  38. package/scripts/build-proof-network-packet.mjs +1 -1
  39. package/scripts/check.mjs +3 -1
  40. package/scripts/cloudflare-ops.mjs +35 -0
  41. package/scripts/collect-hosted-backend-live-evidence.mjs +44 -2
  42. package/scripts/run-memory-benchmarks.mjs +5 -0
  43. package/scripts/run-standard-memory-benchmarks.mjs +287 -5
  44. package/scripts/stage-cloudflare-pages-artifact.mjs +145 -0
@@ -103,50 +103,46 @@ and are non-empty.
103
103
  `sim.enigmamemory.com`, `relay.sim.enigmamemory.com`,
104
104
  `gateway.sim.enigmamemory.com`, and `*.sim.enigmamemory.com`.
105
105
 
106
- ## Collect hosted backend live evidence
106
+ ## Shortest path from local simulation to hosted readiness
107
107
 
108
- The simulation can be probed as if it were a public hosted deployment by
109
- using the public-looking domain `sim.enigmamemory.com`. Because the domain
110
- has no real DNS record, the collector resolves it to `127.0.0.1` locally and
111
- accepts the self-signed certificate.
108
+ The local simulation proves that the relay, gateway, fail-closed readiness
109
+ checks, hosted-live collector, and hosted-live validator can interoperate. It
110
+ does **not** produce production go-live evidence because it uses loopback DNS,
111
+ self-signed TLS, mocked KMS/SIEM services, and fixture operator approval.
112
112
 
113
- 1. Build a simulation operator acceptance packet:
113
+ Run the local proof without external credentials:
114
114
 
115
- ```bash
116
- node scripts/build-operator-acceptance-packet.mjs \
117
- --complete-fixture --decision go --packet-id sim-operator-acceptance \
118
- --tenant enigma-sim --deployment-mode hosted --environment local-simulation \
119
- --target-regions local --requested-go-live-date 2026-06-25 \
120
- --evidence-repository https://github.com/enigma-memory/evidence/sim \
121
- --packet-owner "Simulation Owner" \
122
- --last-updated 2026-06-25T00:00:00.000Z \
123
- --owners-json .enigma/sim-owner-overrides.json \
124
- --evidence-refs .enigma/sim-evidence-overrides.json \
125
- --out .enigma/sim-operator-acceptance.json --validate
126
- ```
115
+ ```bash
116
+ node --test test/enigma-hosted-go-live-simulation.test.mjs
117
+ ```
127
118
 
128
- 2. Collect and validate live evidence:
119
+ That test starts `deploy/docker-compose.local-production-simulation.yml`,
120
+ builds a simulation-only operator acceptance packet, collects relay/gateway
121
+ `/livez` and `/readyz` evidence, validates it with
122
+ `scripts/validate-hosted-backend-live.mjs`, and tears the stack down. For manual
123
+ simulation probing, `production:hosted-collect -- --local-simulation-loopback`
124
+ is restricted to `https://*.sim.enigmamemory.com` loopback probes with
125
+ self-signed TLS and must not be used as production evidence.
129
126
 
130
- ```bash
131
- node .enigma/collect-sim-evidence.mjs \
132
- --relay-url https://sim.enigmamemory.com:8443 \
133
- --gateway-url https://sim.enigmamemory.com:9443 \
134
- --refs-json .enigma/sim-hosted-refs.json \
135
- --domain sim.enigmamemory.com --environment-id local-simulation \
136
- --cloud-provider local --region local --owner enigma-sim \
137
- --operator-decision go \
138
- --operator-packet-ref .enigma/sim-operator-acceptance.json \
139
- --operator-approved-at <iso8601> --operator-approved-by enigma-sim \
140
- --out .enigma/hosted-backend-live-collection.json \
141
- --evidence-out .enigma/hosted-backend-live-simulated.json
142
-
143
- node scripts/validate-hosted-backend-live.mjs \
144
- --evidence .enigma/hosted-backend-live-simulated.json
145
- ```
127
+ Move from that local proof to real hosted relay/gateway readiness with the same
128
+ script chain, replacing every template with operator-owned production evidence:
129
+
130
+ ```bash
131
+ npm run production:evidence-starter -- --out-dir <evidence-dir> --domain enigmamemory.com --tenant <tenant-id> --environment production
132
+ npm run production:backend-env -- --out-dir <backend-env-kit-dir> --domain enigmamemory.com --tenant <tenant-id> --environment production
133
+ # Operator deploys relay/gateway from deploy/docker-compose.production.example.yml or deploy/kubernetes/enigma-backend.example.yaml using private filled env/secrets.
134
+ npm run production:manifests -- --out <evidence-dir>/production-manifests.json
135
+ npm run production:storage -- --out <evidence-dir>/production-storage-migration.json
136
+ npm run infrastructure:readiness -- --manifest <evidence-dir>/infrastructure-readiness-manifest.json --live --cloudflare-live required > <evidence-dir>/infrastructure-readiness-live.json
137
+ npm run production:hosted-collect -- --relay-url https://relay.enigmamemory.com --gateway-url https://gateway.enigmamemory.com --refs-json <evidence-dir>/hosted-refs.json --domain enigmamemory.com --environment-id production --cloud-provider <provider> --region <region> --owner <owner> --operator-decision go --operator-packet-ref <operator-packet-ref> --operator-approved-at <iso8601> --operator-approved-by <operator> --out <evidence-dir>/hosted-backend-live-collection.json --evidence-out <evidence-dir>/hosted-backend-live.json
138
+ npm run production:hosted-live -- --evidence <evidence-dir>/hosted-backend-live.json
139
+ npm run production:acceptance:packet -- --out <evidence-dir>/operator-acceptance-packet.json --owners-json <evidence-dir>/owner-approval-refs.json --evidence-refs <evidence-dir>/evidence-refs.json --readiness <evidence-dir>/infrastructure-readiness-live.json --manifest <evidence-dir>/infrastructure-readiness-manifest.json --storage <evidence-dir>/production-storage-migration.json --release-audit .enigma/release-audit-current.json --production-manifests <evidence-dir>/production-manifests.json --decision go --tenant <tenant-id> --target-regions <regions> --requested-go-live-date <date> --evidence-repository <evidence-repository> --packet-owner <operator> --validate
140
+ npm run production:acceptance -- --packet <evidence-dir>/operator-acceptance-packet.json
141
+ ```
146
142
 
147
- The expected result is `status: accepted` with all four probes observed and no
148
- blockers. The wrapper does not mutate DNS or deploy infrastructure and never
149
- sends credentials.
143
+ Hosted readiness remains blocked until the production commands above observe
144
+ public HTTPS relay/gateway probes, all required hosted refs, and operator
145
+ acceptance `go` for the exact target environment.
150
146
 
151
147
  Never commit `deploy/secrets-simulation/` or `*.pem` files. Both are
152
148
  `.gitignore`d.
@@ -169,7 +169,7 @@ Minimum public-safe attestation skeleton:
169
169
  "track": "public_practice",
170
170
  "program": {
171
171
  "name": "enigma_benchmark_attestation_network",
172
- "version": "0.1.15",
172
+ "version": "0.1.17",
173
173
  "policy_ref": "sha256:policy-root"
174
174
  },
175
175
  "run": {
@@ -177,7 +177,7 @@ Minimum public-safe attestation skeleton:
177
177
  "nonce": "sha256:run-nonce-commitment",
178
178
  "status": "completed",
179
179
  "runner_ref": "sha256:runner-root",
180
- "package_ref": "npm:enigma-memory@0.1.15",
180
+ "package_ref": "npm:enigma-memory@0.1.17",
181
181
  "adapter_ref": "local:enigma-relevance",
182
182
  "environment_ref": "sha256:environment-summary-root"
183
183
  },
@@ -4,7 +4,7 @@ This guide explains how to reproduce the current local Enigma memory benchmark,
4
4
 
5
5
  ## What is reproducible today
6
6
 
7
- The current planned package is `enigma-memory@0.1.15`. Two benchmark paths are reproducible without provider credentials:
7
+ The current planned package is `enigma-memory@0.1.17`. Two benchmark paths are reproducible without provider credentials:
8
8
 
9
9
  1. The local deterministic memory suite, available through the package script and the script file it wraps:
10
10
 
@@ -20,12 +20,15 @@ The current planned package is `enigma-memory@0.1.15`. Two benchmark paths are r
20
20
  2. The official-dataset standard runner, which consumes locally downloaded LoCoMo and/or LongMemEval JSON files:
21
21
 
22
22
  ```sh
23
+ node 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 --dry-run
23
24
  node 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
24
25
  ```
25
26
 
26
- The standard report schema is `enigma.standard_memory_benchmark_suite.v1`. It scores retrieval/evidence coverage over official dataset records with local deterministic methods only. It does not call LLM providers, generate final answers, grade natural-language answer correctness, call competitor SDKs, or create provider/competitor scores.
27
+ The `--dry-run` command emits `enigma.standard_memory_benchmark_plan.v1`: a public-safe offline plan with file names, sample caps, top-k, local method rows, a requirements-only Mem0 adapter row, and explicit boundaries. It does not read dataset files, hash data, produce scores, call APIs, run Mem0 or competitor adapters, generate answers, or spend provider budget.
27
28
 
28
- In that standard report, `keyword_filter` is intentionally the simpler lexical baseline. `enigma_relevance` is the deterministic Enigma retrieval approximation: it uses deterministic query expansion, term normalization and stemming, task/category and temporal/date hints, role/session metadata, phrase/proximity scoring, and final reranking for evidence diversity. It does not use raw answer text, evidence labels, or `has_answer` flags to choose records. It must be interpreted only as retrieval/evidence proxy scoring over the local dataset file named in the report, not as LLM answer accuracy, provider performance, competitor performance, or leaderboard standing.
29
+ The scored standard report schema is `enigma.standard_memory_benchmark_suite.v1`. It scores retrieval/evidence coverage over official dataset records with local deterministic methods only and includes a requirements-only Mem0 row with `scores_included:false`. It does not call LLM providers, generate final answers, grade natural-language answer correctness, call Mem0 or other competitor SDKs, or create provider/competitor scores.
30
+
31
+ In that standard report, `keyword_filter` is intentionally the simpler lexical baseline. `enigma_relevance` is the deterministic Enigma retrieval approximation: it uses deterministic query expansion, term normalization and stemming, task/category and temporal/date hints, role/session metadata, phrase/proximity scoring, and final reranking for evidence diversity. It does not use raw answer text, evidence labels, or `has_answer` flags to choose records. It must be interpreted only as retrieval/evidence proxy scoring over the local dataset file named in the report, not as LLM answer accuracy, provider performance, Mem0/competitor performance, or leaderboard standing.
29
32
 
30
33
  | Standard-runner row | Retrieval boundary |
31
34
  | --- | --- |
@@ -64,7 +67,7 @@ Do not commit downloaded files or raw benchmark conversations. The package `.git
64
67
 
65
68
  ## Reproduce and save local fixture JSON
66
69
 
67
- 1. Use a clean checkout containing `enigma-memory@0.1.15`.
70
+ 1. Use a clean checkout containing `enigma-memory@0.1.17`.
68
71
  2. From a repository root that contains `enigma/package.json`, enter the package directory:
69
72
 
70
73
  ```sh
@@ -94,7 +97,15 @@ Interpret improvements as local fixture behavior. Enigma reduces context-pack es
94
97
 
95
98
  ## Run the official-dataset standard benchmark
96
99
 
97
- The standard runner reads local dataset files produced by the downloader and writes a public-safe proxy report to the path supplied with `--out`. A bounded sample is the safest first run:
100
+ The standard runner reads local dataset files produced by the downloader and writes a public-safe proxy report to the path supplied with `--out`. Preview the exact offline boundary first:
101
+
102
+ ```sh
103
+ node 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 --dry-run
104
+ ```
105
+
106
+ That command proves only the planned local files, sample bounds, `--top-k`, deterministic local rows, and no-API/no-Mem0/no-competitor/no-score boundary. It does not prove the files exist, hash the datasets, or report accuracy.
107
+
108
+ A bounded scored sample is the safest first run:
98
109
 
99
110
  ```sh
100
111
  node 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
@@ -106,6 +117,7 @@ Useful runner options:
106
117
  - `--longmemeval <path>` supplies a local LongMemEval JSON file. Use one cleaned split per run when you want split-specific evidence.
107
118
  - `--max-locomo-qa <n>` and `--max-longmemeval-items <n>` bound the sample size.
108
119
  - `--top-k <n>` controls retrieval depth; the default is `5`.
120
+ - `--dry-run` prints the public-safe offline plan and does not read dataset files or produce scores.
109
121
  - `--out <path>` writes public-safe JSON to that path. Without `--out`, the report is printed to stdout.
110
122
 
111
123
  If only `--locomo` or only `--longmemeval` is supplied, the runner scores only that dataset.
@@ -130,7 +142,7 @@ Public sharing should include the generated benchmark report JSON and generated
130
142
 
131
143
  ## Proof-network benchmark attestations
132
144
 
133
- For the planned 0.1.15 proof-network layer, benchmark results should be represented as a public-safe local attestation rather than by publishing raw benchmark inputs. The attestation JSON uses `schema: "enigma.proof_network.benchmark_attestation.v1"` and may be bundled in `enigma.proof_network.packet.v1` for review. The benchmark proof-release flow is local planning only: it does not call APIs, submit transactions, or claim hosted SaaS behavior, and generated artifacts must keep `transaction_submitted: false` and `raw_memory_on_chain: false`.
145
+ For the planned 0.1.17 proof-network layer, benchmark results should be represented as a public-safe local attestation rather than by publishing raw benchmark inputs. The attestation JSON uses `schema: "enigma.proof_network.benchmark_attestation.v1"` and may be bundled in `enigma.proof_network.packet.v1` for review. The benchmark proof-release flow is local planning only: it does not call APIs, submit transactions, or claim hosted SaaS behavior, and generated artifacts must keep `transaction_submitted: false` and `raw_memory_on_chain: false`.
134
146
 
135
147
  Hash the generated benchmark report and companion dataset manifest, then attest only the report hash, schema name, dataset refs, runner refs, package refs, score commitments, record counts, top-k/sample bounds, and timestamps needed for review. The public artifacts must not contain raw dataset rows, raw conversations, prompts, private questions, private answers, provider responses, embeddings, credentials, tenant names, account ids, local absolute paths, unpublished benchmark scores, or the raw benchmark report body.
136
148
 
@@ -139,12 +151,12 @@ Use a `sha256:<hex>` commitment for the report and manifest. The proof-release s
139
151
  After running one of the benchmark commands above and confirming the report is public-safe, create a local proof release:
140
152
 
141
153
  ```sh
142
- npm run benchmark:proof-release -- --report .enigma/standard-memory-benchmark-sample.json --dataset-ref "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" --runner-ref "runner:run-standard-memory-benchmarks.mjs@reviewed-revision" --package-ref "enigma-memory@0.1.15" --score "retrieval_evidence_proxy=<value-copied-from-report>" --out-dir .enigma/benchmark-proof-release
154
+ npm run benchmark:proof-release -- --report .enigma/standard-memory-benchmark-sample.json --dataset-ref "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" --runner-ref "runner:run-standard-memory-benchmarks.mjs@reviewed-revision" --package-ref "enigma-memory@0.1.17" --score "retrieval_evidence_proxy=<value-copied-from-report>" --out-dir .enigma/benchmark-proof-release
143
155
  ```
144
156
 
145
- The command writes `benchmark-attestation.json`, `benchmark-proof-packet.json`, and `benchmark-proof-release.json` in the output directory. The release manifest uses `schema: "enigma.benchmark_proof_release.v1"` and records explicit boundaries: local benchmark attestation only, no API calls, no provider answer-accuracy claim, no competitor performance claim, no Solana submission claim, no hosted SaaS claim, and no ROI/profit/provider-savings claim.
157
+ The command writes `benchmark-attestation.json`, `benchmark-proof-packet.json`, and `benchmark-proof-release.json` in the output directory. The release manifest uses `schema: "enigma.benchmark_proof_release.v1"` and records explicit boundaries: local benchmark attestation only, local report file hashing only, no network calls, no provider APIs, no API spend, no provider answer-accuracy claim, no competitor performance claim, no Solana submission claim, no hosted SaaS claim, and no ROI/profit/provider-savings claim.
146
158
 
147
- When a report file is supplied, the generated attestation is a reproducibility receipt for a specific local report hash and explicitly supplied aggregate score commitments. It is not evidence of provider answer accuracy, competitor performance, Solana settlement, ROI, hosted-cloud readiness, provider deletion, model forgetting, or live model behavior.
159
+ When a report file is supplied, the generated attestation is a reproducibility receipt for a specific local report hash and explicitly supplied aggregate score commitments. The proof builder now requires a compatible benchmark schema plus explicit offline `benchmark_boundaries`, and rejects scored external adapter rows. It is not evidence of provider answer accuracy, Mem0 or competitor performance, Solana settlement, ROI, hosted-cloud readiness, provider deletion, model forgetting, or live model behavior.
148
160
 
149
161
  ## Local baseline rows in the report
150
162
 
@@ -168,6 +180,55 @@ Use these standards as dataset sources, citations, and task-category references,
168
180
 
169
181
  The local report mirrors some task categories from those benchmarks but does not download or score official records. The standard runner consumes official local dataset files and scores retrieval/evidence coverage; it does not run the original papers' full LLM evaluation pipelines or claim leaderboard-equivalent answer accuracy.
170
182
 
183
+ ## Full-answer benchmark protocol plan (--protocol-plan)
184
+
185
+ The scored standard runner is retrieval/evidence proxy only. A true apples-to-apples full-answer run (same category set, same top-k, same frozen answerer and judge, same prompts, same competitor adapters) is a separate, credentialed benchmark that this package does not execute. `--protocol-plan` is the readiness layer between the two: it emits a public-safe plan of that future protocol without reading datasets, calling providers, generating answers, judging answers, or running competitor adapters.
186
+
187
+ ```sh
188
+ cd enigma
189
+ node 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 --protocol-plan --out .enigma/standard-memory-benchmark-protocol-plan.json
190
+ ```
191
+
192
+ Optionally pin the public-safe model/prompt/protocol refs so the plan records exactly which artifacts a future live run must freeze (defaults mark every ref `not-selected`/`not-pinned`):
193
+
194
+ ```sh
195
+ node scripts/run-standard-memory-benchmarks.mjs --locomo .enigma/benchmarks/datasets/locomo10.json --top-k 5 --protocol-plan \
196
+ --answerer-ref "model:answerer@frozen-revision" \
197
+ --judge-ref "model:judge@frozen-revision" \
198
+ --answer-prompt-ref "prompt:standard-answer@frozen-revision" \
199
+ --judge-prompt-ref "prompt:standard-judge@frozen-revision" \
200
+ --protocol-ref "protocol:apples-to-apples-full-answer@frozen-revision" \
201
+ --out .enigma/standard-memory-benchmark-protocol-plan.json
202
+ ```
203
+
204
+ The emitted schema is `enigma.standard_memory_benchmark_protocol_plan.v1`. It records the planned category set (the same LoCoMo/LongMemEval task categories the scored report uses), `--top-k`, the answerer model ref and judge model ref, the prompt refs and protocol ref, the requirements-only competitor adapter refs, and cost-estimate inputs (sample limits, token caps, temperature, retries, timeout, and a `budget_cap_set:false` flag). It does not contain raw questions, raw answers, prompts, provider responses, embeddings, credentials, dataset bytes, or scores.
205
+
206
+ The plan carries explicit boundaries that must read `false`:
207
+
208
+ | Boundary | Meaning |
209
+ | --- | --- |
210
+ | `protocol_boundaries.network_required` | No network is used to produce the plan. |
211
+ | `protocol_boundaries.provider_calls_made` | No provider APIs are called. |
212
+ | `protocol_boundaries.answers_generated` | No model answers are generated. |
213
+ | `protocol_boundaries.judged` | No answers are judged or graded. |
214
+ | `protocol_boundaries.competitor_adapters_run` | No Mem0 or other competitor adapters are run. |
215
+ | `benchmark_boundaries.llm_answer_accuracy_scored` | The plan is not a score. |
216
+ | `benchmark_boundaries.retrieval_evidence_proxy_scored` | The plan does not even score the retrieval proxy. |
217
+
218
+ The protocol plan can be turned into a local proof release with the same command used for a scored report, because the proof-release builder accepts either a local retrieval proxy report or a protocol-plan report:
219
+
220
+ ```sh
221
+ npm run benchmark:proof-release -- --report .enigma/standard-memory-benchmark-protocol-plan.json --dataset-ref "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" --runner-ref "runner:run-standard-memory-benchmarks.mjs@protocol-plan" --package-ref "enigma-memory@0.1.17" --out-dir .enigma/benchmark-protocol-proof-release
222
+ ```
223
+
224
+ The resulting attestation uses the existing `enigma.proof_network.benchmark_attestation.v1` schema and binds the protocol-plan report hash plus `report_hash_only` metric roots; it does not copy the report body. A protocol-plan proof release is evidence of protocol readiness only. It is not evidence that answers were generated, that answers were judged, that any provider or competitor was called or outperformed, or that benchmark leadership, ROI, provider deletion, model forgetting, or compliance was achieved. Competitor adapter refs are references, not scores; a reference is never a superiority claim.
225
+
226
+ ### What the protocol plan proves and does not prove
227
+
228
+ **Proves:** the exact category set, top-k, planned answerer/judge model refs, prompt/protocol refs, competitor adapter refs, and cost-estimate inputs that a future full-answer run would freeze, plus the explicit no-network/no-provider/no-answers/no-judgement boundary.
229
+
230
+ **Does not prove:** that any model answered correctly, that any model was judged, that any provider or competitor ran, that prompts are final, that a budget cap was set, or that the planned run would favor Enigma. Pinned refs mark which artifacts a future run must freeze; they are not a claim that the run happened or succeeded.
231
+
171
232
  ## Future provider answer-accuracy runs
172
233
 
173
234
  A real answer-accuracy run is a different benchmark from the current standard runner. It would need all of the following before any answer-correctness or model-quality claim is published:
@@ -166,6 +166,8 @@ Keep private:
166
166
 
167
167
  The registry should answer, "Which public key attested to which digest under which schema?" It should not answer, "What private data produced that digest?" Disclosure of the underlying report is a separate permissioned review action.
168
168
 
169
+ The local Enigma artifacts that prepare this registry are `enigma.proof_network.registry_entry.v1` and `enigma.proof_network.registry_batch.v1`. A registry entry binds one already-created artifact (anchor batch, benchmark attestation, connector conformance attestation, health report, operator receipt, or settlement job ref) to a public-safe `registry_ref`, the artifact schema ref, digest refs, signer refs, an entry type, and a count — never the artifact body. A registry batch sorts entry hashes into a single registry root. Both are local planning artifacts: they carry `transaction_submitted:false` and `raw_memory_on_chain:false`, and they do not prove that any marketplace, registry program, or live chain has adopted the index. What the chain would uniquely add is shared discovery (any verifier can resolve an indexed digest by package, dataset, runner, or operator key without trusting one private API) and signer accountability (the public key that attested to a digest is recorded alongside it); neither requires revealing the private report behind the digest.
170
+
169
171
  ## Mechanism 5: USDC escrow and settlement
170
172
 
171
173
  ### Blockchain-native value
@@ -292,6 +294,7 @@ The public rail should be modeled as a small state machine over commitments, not
292
294
  | Grant record | program id, `grant`, issuer key, subject key, scope digest, capability | grant id, capability, scope digest, expiry, revocation ref | Was this public subject granted this scoped capability at this time? |
293
295
  | Nullifier record | program id, `nullifier`, nullifier digest | nullifier digest, issuer key, effective slot, optional safe reason ref | Should verifiers reject the matching grant, scope, or one-time proof? |
294
296
  | Attestation record | program id, `attestation`, attestor key, report or packet digest | digest, attestation type, public-safe refs, slot, signature | Which public key attested to this digest under which schema? |
297
+ | Registry index record | program id, `registry`, registry namespace ref, artifact digest, attestor key | artifact digest, artifact schema ref, entry type, public-safe digest/signer refs, count, slot, signature | Which public key indexed which digest under which schema and registry namespace? |
295
298
  | Escrow record | program id, `escrow`, payer key, operator key, job ref | token mint, amount, proof refs, release rule, timeout, state | Are funds locked, releasable, refundable, or disputed against public-safe refs? |
296
299
  | Reputation index | program id, `operator`, operator key | counters, correction refs, challenge refs, signer rotation refs | What public-key history can be checked without private customer facts? |
297
300
 
@@ -342,6 +345,15 @@ The chain contributes shared permission and revocation state. It does not expose
342
345
 
343
346
  The chain contributes shared discovery and signer accountability. It does not publish raw benchmark examples or private results.
344
347
 
348
+ ### Marketplace registry index
349
+
350
+ 1. Enigma creates one or more proof artifacts (anchor, attestation, health report, operator receipt, or settlement job ref) and keeps their bodies private.
351
+ 2. Enigma emits a registry entry per artifact that records only the artifact hash, schema ref, digest refs, signer refs, entry type, and a registry namespace ref.
352
+ 3. Enigma aggregates entries into a registry batch whose root commits to the whole index.
353
+ 4. A reviewer resolves individual artifact hashes through approved private channels; a public observer can see only that a digest was indexed under a schema by named signers.
354
+
355
+ The chain would contribute shared discovery and signer accountability. The local registry artifacts do not broadcast to a marketplace, register on a live chain, or prove third-party adoption.
356
+
345
357
  ### Escrow for proof-backed operator work
346
358
 
347
359
  1. A payer would lock USDC against a job ref and release rule.
@@ -27,21 +27,24 @@ node scripts/package-browser-extension.mjs --zip ./dist/enigma-browser-extension
27
27
 
28
28
  The ZIP command does not publish, sign, upload, or submit the extension.
29
29
 
30
- ## Install the native host first
30
+ ## Install the native host and MCP connector first
31
31
 
32
- Install the npm package so both `enigma` and `enigma-native-host` are available:
32
+ Install the npm package, create the local bundle, and let Enigma merge the MCP server entry into the selected client config. Pick the command for the client you use:
33
33
 
34
34
  ```sh
35
- npm install -g enigma-memory
35
+ npm install -g enigma-memory && enigma setup --client claude-desktop --write-connectors --overwrite
36
+ npm install -g enigma-memory && enigma setup --client cursor --write-connectors --overwrite
37
+ npm install -g enigma-memory && enigma setup --client kimi-code --write-connectors --overwrite
38
+ npm install -g enigma-memory && enigma setup --client vscode-cline --write-connectors --overwrite
36
39
  ```
37
40
 
38
- Create or select a local bundle:
41
+ If you want Enigma to touch only client config files that already exist, use:
39
42
 
40
43
  ```sh
41
- enigma init --bundle <absolute-bundle-path> --subject local-user --display-name "Local user"
44
+ npm install -g enigma-memory && enigma setup --client auto --connect-installed --overwrite
42
45
  ```
43
46
 
44
- Set `ENIGMA_BUNDLE` for the browser-launched host process, or point the native-host manifest at a small local wrapper that sets `ENIGMA_BUNDLE=<absolute-bundle-path>` before launching `enigma-native-host`. Native messaging manifests require an absolute executable path; they do not expand shell aliases, `~`, `$HOME`, `%USERPROFILE%`, or command arguments.
47
+ Set `ENIGMA_BUNDLE` for the browser-launched host process to the same bundle path reported by setup, or point the native-host manifest at a small local wrapper that sets `ENIGMA_BUNDLE=<absolute-bundle-path>` before launching `enigma-native-host`. Native messaging manifests require an absolute executable path; they do not expand shell aliases, `~`, `$HOME`, `%USERPROFILE%`, or command arguments.
45
48
 
46
49
  Resolve the absolute host executable path:
47
50
 
@@ -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,61 +12,25 @@ 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
- 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
19
+ enigma init
20
+ enigma setup --client auto --connect-installed --overwrite
21
+ enigma drive health
22
+ enigma status
56
23
  enigma remember --text-file ./memory.txt
57
- enigma search --query "..."
58
- enigma context --query "..." --optimize
24
+ enigma search --query "project context"
25
+ enigma context --query "project context" --optimize
59
26
  enigma verify --export ./.enigma/export.json
60
- enigma connect claude-desktop --dry-run
61
27
  ```
62
28
 
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.
29
+ One command connects every installed client: `enigma setup --client auto --connect-installed --overwrite` writes the `mcpServers.enigma` entry into every installed/config-present client it detects (Claude Desktop, Cursor, Kimi Code, VS Code/Cline, Roo, OpenCode, generic MCP). It skips clients that are not installed and never creates configs from scratch; preview with `--dry-run` first. `enigma drive health` reports a SMART-style memory-drive health packet (freshness, tombstone backlog, stale derived artifacts, receipt coverage, connector health) from local metadata only — it is part of the Memory Drive surface in this release, and `enigma status` plus `enigma doctor` cover local passport counts, roots, and connector readiness in every build. No setup command prints raw memory plaintext.
64
30
 
65
- One-off public test drive without a global install:
31
+ For a single client, or to preview before writing, use `enigma connect <client> --dry-run` and then drop `--dry-run`.
66
32
 
67
- ```sh
68
- npx --yes --package enigma-memory enigma test-drive --overwrite
69
- ```
33
+ 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
34
 
71
35
  From a source checkout, use this only for package development or source-only docs:
72
36
 
@@ -77,14 +41,6 @@ npm install -g .
77
41
 
78
42
  ## Preview, then connect
79
43
 
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
44
  Preview one client without changing it:
89
45
 
90
46
  ```sh
@@ -97,7 +53,25 @@ enigma connect opencode --dry-run
97
53
  enigma connect generic-mcp --dry-run
98
54
  ```
99
55
 
100
- When you are ready to write all installed/config-present client configs discovered by setup, use the explicit setup-time write flag:
56
+ When the single-client dry run looks right, remove `--dry-run` for the client you want:
57
+
58
+ ```sh
59
+ enigma connect claude-desktop
60
+ enigma connect cursor
61
+ enigma connect kimi-code
62
+ enigma connect vscode-cline
63
+ enigma connect roo
64
+ enigma connect opencode
65
+ enigma connect generic-mcp
66
+ ```
67
+
68
+ Optional setup-time planning for installed/config-present connector targets remains available:
69
+
70
+ ```sh
71
+ enigma setup --client auto --overwrite
72
+ ```
73
+
74
+ Use the explicit setup-time write flag only when you want setup to write all installed/config-present client configs it discovers:
101
75
 
102
76
  ```sh
103
77
  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.17 \
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.17 \
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.17",
240
240
  "scores": {
241
241
  "recall_at_5": 1,
242
242
  "p95_latency_ms": 14