enigma-memory 0.1.12 → 0.1.13

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.
@@ -0,0 +1,517 @@
1
+ # Install Enigma anywhere
2
+
3
+ Start with the published npm package path for `enigma-memory`: install once, run the local-only public test drive, then connect real local clients only when you explicitly choose to. Use a source checkout only when you need source-only docs, Docker assets, browser-extension scaffolding, package development, or release scripts.
4
+
5
+ Hosted cloud and BYOC operation require real deployment credentials, domains, TLS, durable storage, KMS/secrets, monitoring, backups, and operator/customer infrastructure; they are not activated by installing the package or running the test drive.
6
+
7
+ ## Requirements
8
+
9
+ - Node.js `>=24`
10
+ - A local filesystem path for the Enigma vault bundle
11
+ - No database, provider credential, cloud credential, npm publishing token, package registry account, or hosted Enigma account for the local test-drive or setup paths
12
+ - Git only for the advanced source-checkout path
13
+ - Optional: Docker for source-checkout containerized relay/gateway operation
14
+
15
+ ## Public test drive: what is live today
16
+
17
+ Use the published package as the primary path:
18
+
19
+ ```sh
20
+ npm install -g enigma-memory
21
+ enigma test-drive --overwrite
22
+ ```
23
+
24
+ `enigma test-drive --overwrite` is the one-command local proof/demo. It needs no credentials, does not call external providers, does not contact hosted Enigma SaaS, and does not write third-party client configs. It writes an isolated demo under `.enigma/test-drive` by default; use `--dry-run` to preview the plan without writing, or `--out-dir <path>` to choose a different isolated demo directory.
25
+
26
+ The command emits one public-safe JSON summary with paths to the local setup artifacts, search/status output, cross-model demo report, and benchmark pointers. The default bundle lives inside the demo directory. The summary includes exact next commands for public testers and does not print raw private memory plaintext.
27
+
28
+ Keep the claim bounded: the test drive proves local Enigma-controlled vault state, receipts, checkpoints, committed roots, exported bundle shape, and declared boundary operations. It does not prove hosted SaaS availability, provider deletion, model forgetting, provider-native memory removal, legal approval, ROI/savings, or compliance certification.
29
+
30
+ To connect real local clients that are already installed or already configured:
31
+
32
+ ```sh
33
+ enigma setup --connect-installed --overwrite
34
+ ```
35
+
36
+ `--connect-installed` implies auto client selection and is the setup-time write flag for client configs. It skips missing client configs instead of creating every default client config.
37
+
38
+ ## Default path: install once, use everywhere
39
+
40
+ After the test drive, create a regular local workspace when you want to use Enigma day to day:
41
+
42
+ ```sh
43
+ npm install -g enigma-memory
44
+ enigma setup --overwrite
45
+ ```
46
+
47
+ `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 Claude, Cursor, Kimi, or other third-party app configs.
48
+
49
+ To let setup auto-detect installed or already-configured clients and show the connector plan without mutating client configs:
50
+
51
+ ```sh
52
+ enigma setup --client auto --overwrite
53
+ ```
54
+
55
+ `--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 which clients were selected, which were skipped, and why.
56
+
57
+ After setup, use the same local vault from the CLI or connected clients:
58
+
59
+ ```sh
60
+ enigma remember --text-file ./memory.txt
61
+ enigma search --query "..."
62
+ enigma context --query "..." --optimize
63
+ enigma verify --export ./.enigma/export.json
64
+ enigma connect claude-desktop --dry-run
65
+ ```
66
+
67
+ The local Enigma vault is the canonical memory passport. Provider-native memory is non-canonical cache only. Enigma proof covers Enigma-controlled vault state, receipts, checkpoints, committed roots, and exported bundle shape; it does not prove provider deletion, model forgetting, provider-native memory removal, hosted/BYOC availability, legal approval, ROI/savings, or compliance certification.
68
+
69
+ One-off public test drive without a global install:
70
+
71
+ ```sh
72
+ npx --yes --package enigma-memory enigma test-drive --overwrite
73
+ ```
74
+
75
+ ## Source checkout versus package install
76
+
77
+ The npm package includes the package README, CLI help, bins, app/package source listed in `package.json`, and module exports. The source checkout contains this guide, the deployment runbook, the release checklist, `Dockerfile`, `docker-compose.yml`, browser-extension source/docs, and other source-only collateral. If you install only the package, use `enigma --help`, `enigma-verify --help`, `enigma-relay --help`, `enigma-gateway --help`, direct-bin demos, and the package README for local usage; use a source checkout or hosted docs for full runbooks, Docker demo assets, and browser-extension scaffolding.
78
+
79
+ For a complete surface map, see [`public-api-reference.md`](public-api-reference.md). It distinguishes stable local/package interfaces from source-only demos and hosted/BYOC deployment interfaces.
80
+
81
+ ## Advanced path: install from this repository
82
+
83
+ From the repository root, use the local installer in preview mode first:
84
+
85
+ ```sh
86
+ npm run install:local
87
+ npm run install:local -- --init-vault --bundle ./.enigma/bundle.json
88
+ ```
89
+
90
+ `install:local` is dry-run by default. It validates Node.js `>=24`, resolves the local bundle path, previews `npm install -g .`, and emits public-safe JSON without printing local absolute paths, credentials, account IDs, or memory plaintext. It does not mutate global npm state or create a vault unless you explicitly request execute mode.
91
+
92
+ To perform the local global install from the checkout and initialize a local vault bundle:
93
+
94
+ ```sh
95
+ npm run install:local -- --execute --init-vault --bundle ./.enigma/bundle.json
96
+ enigma doctor
97
+ enigma --help
98
+ enigma demo cross-model
99
+ enigma-verify --help
100
+ enigma-relay demo
101
+ enigma-gateway demo
102
+ ```
103
+
104
+ Equivalent explicit source-checkout steps:
105
+
106
+ ```sh
107
+ npm install -g .
108
+ enigma init --bundle ./.enigma/bundle.json --subject local-user --display-name "Local user"
109
+ enigma doctor
110
+ enigma --help
111
+ enigma demo cross-model
112
+ enigma-verify --help
113
+ enigma-relay demo
114
+ enigma-gateway demo
115
+ ```
116
+
117
+ If you do not want a global install from the checkout, run the bins directly:
118
+
119
+ ```sh
120
+ node apps/cli/bin/enigma.mjs --help
121
+ node apps/verifier/bin/enigma-verify.mjs --help
122
+ node apps/cli/bin/enigma.mjs demo cross-model
123
+ node apps/relay/bin/enigma-relay.mjs demo
124
+ node apps/gateway/bin/enigma-gateway.mjs demo
125
+ ```
126
+
127
+ ## Manual local no-network path
128
+
129
+ Use this when you want to inspect each step behind the setup-first path:
130
+
131
+ ```sh
132
+ mkdir -p .enigma
133
+ ENIGMA_DEMO_MEMORY_FILE=/absolute/path/to/tenant-approved-smoke-memory.txt
134
+ test -f "$ENIGMA_DEMO_MEMORY_FILE"
135
+ enigma init --bundle ./.enigma/bundle.json --subject local-user --display-name "Local user"
136
+ enigma remember --bundle ./.enigma/bundle.json --text-file "$ENIGMA_DEMO_MEMORY_FILE" --purpose user_memory --tags local
137
+ enigma context --bundle ./.enigma/bundle.json --query "local context" --purpose local_context --out ./.enigma/context-pack.json
138
+ enigma export --bundle ./.enigma/bundle.json --out ./.enigma/export.json
139
+ enigma verify --export ./.enigma/export.json
140
+ ```
141
+
142
+ Windows PowerShell equivalent:
143
+
144
+ ```powershell
145
+ New-Item -ItemType Directory -Force .enigma
146
+ $env:ENIGMA_DEMO_MEMORY_FILE='C:\path\to\tenant-approved-smoke-memory.txt'
147
+ if (-not (Test-Path $env:ENIGMA_DEMO_MEMORY_FILE)) { throw 'Set ENIGMA_DEMO_MEMORY_FILE to a tenant-approved smoke file first.' }
148
+ enigma init --bundle .\.enigma\bundle.json --subject local-user --display-name "Local user"
149
+ enigma remember --bundle .\.enigma\bundle.json --text-file $env:ENIGMA_DEMO_MEMORY_FILE --purpose user_memory --tags local
150
+ enigma context --bundle .\.enigma\bundle.json --query "local context" --purpose local_context --out .\.enigma\context-pack.json
151
+ enigma export --bundle .\.enigma\bundle.json --out .\.enigma\export.json
152
+ enigma verify --export .\.enigma\export.json
153
+ ```
154
+
155
+ The local bundle is the canonical state for this path. Provider-native memory is cache only. Exported proof and network artifacts should contain commitments, roots, addresses, receipt ids, and encrypted payloads, not raw memory plaintext.
156
+
157
+ ## MCP server
158
+
159
+ Run Enigma as an MCP stdio server:
160
+
161
+ ```sh
162
+ ENIGMA_BUNDLE="$HOME/.enigma/bundle.json" enigma-mcp
163
+ ```
164
+
165
+ CLI equivalent:
166
+
167
+ ```sh
168
+ ENIGMA_BUNDLE="$HOME/.enigma/bundle.json" enigma mcp serve
169
+ ```
170
+
171
+ Windows PowerShell:
172
+
173
+ ```powershell
174
+ $env:ENIGMA_BUNDLE="$HOME\.enigma\bundle.json"
175
+ enigma-mcp
176
+ ```
177
+
178
+ Generic client configuration:
179
+
180
+ ```json
181
+ {
182
+ "mcpServers": {
183
+ "enigma": {
184
+ "command": "enigma-mcp",
185
+ "args": [],
186
+ "env": {
187
+ "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
188
+ }
189
+ }
190
+ }
191
+ }
192
+ ```
193
+
194
+ MCP tools available through the server:
195
+
196
+ - `enigma_init`
197
+ - `enigma_remember`
198
+ - `enigma_search`
199
+ - `enigma_context_pack`
200
+ - `enigma_delete`
201
+ - `enigma_verify_receipts`
202
+
203
+ MCP resource and prompt:
204
+
205
+ - Resource: `enigma://passport/summary`
206
+ - Prompt: `enigma_standard_memory_prompt`
207
+
208
+ ## Client connector path
209
+
210
+ Use `docs/client-connectors.md` from a source checkout for Claude Desktop, Cursor, Kimi Code, VS Code/Cline, Roo Code, OpenCode, and generic MCP JSON. Connector entries default to command `enigma-mcp` and env key `ENIGMA_BUNDLE`.
211
+
212
+ Npm-first connector flow:
213
+
214
+ ```sh
215
+ npm install -g enigma-memory
216
+ enigma test-drive --overwrite
217
+ enigma setup --overwrite
218
+ enigma setup --client auto --overwrite
219
+ enigma setup --connect-installed --overwrite
220
+ ```
221
+
222
+ Run `enigma test-drive --overwrite` first when you want to prove what is live today without credentials, hosted SaaS, provider calls, or client-config writes. Run the setup command for a regular local workspace. Use `--client auto` when you want setup to report installed/config-present connector targets without writing client configs. Use `--connect-installed` only when you explicitly want setup to merge Enigma into installed/config-present client configs; missing configs are skipped with reasons instead of created. Existing `enigma setup --write-connectors` behavior for explicit/default clients is unchanged. For a single client, replace `claude-desktop` with `cursor`, `kimi-code`, `vscode-cline`, `roo`, `opencode`, or `generic-mcp` and run `enigma connect <client> --dry-run`. `--dry-run` is read-only: it reports the target config path, the planned Enigma MCP entry, and whether a write would be needed. Remove `--dry-run` only after reviewing the target path and planned entry.
223
+
224
+ Copy-paste MCP entry for Claude Desktop, Cursor, Kimi Code, or a generic MCP client:
225
+
226
+ ```json
227
+ {
228
+ "mcpServers": {
229
+ "enigma": {
230
+ "command": "enigma-mcp",
231
+ "args": [],
232
+ "env": {
233
+ "ENIGMA_BUNDLE": "/absolute/path/to/.enigma/bundle.json"
234
+ }
235
+ }
236
+ }
237
+ }
238
+ ```
239
+
240
+ If Kimi Code or another GUI-launched client cannot find shell-installed binaries, reconnect with an absolute MCP command because GUI apps may not inherit your terminal `PATH`:
241
+
242
+ ```sh
243
+ enigma connect kimi-code --dry-run --mcp-command "/absolute/path/to/enigma-mcp"
244
+ enigma connect kimi-code --mcp-command "/absolute/path/to/enigma-mcp"
245
+ ```
246
+
247
+ ## Browser extension and native host path
248
+
249
+ The unpacked browser extension lives at:
250
+
251
+ ```text
252
+ apps/browser-extension
253
+ ```
254
+
255
+ The local native messaging host install assets live at:
256
+
257
+ ```text
258
+ apps/native-host
259
+ ```
260
+
261
+ Use [`../apps/native-host/README.md`](../apps/native-host/README.md) for the complete Chrome, Edge, and Firefox registration procedure. It documents the manifest generator, `native-host install-plan` preflight, manual templates for fallback, OS-specific native-host install locations, Windows registry keys, extension allowlists, and absolute-path requirements.
262
+
263
+ Minimum development load steps:
264
+
265
+ 1. Install or build `enigma-native-host`.
266
+ 2. Create a local Enigma bundle and keep `ENIGMA_BUNDLE` set to its absolute path. GUI-launched browsers may not inherit shell environment variables; if needed, point the native-host manifest at a local wrapper that sets `ENIGMA_BUNDLE` before launching `enigma-native-host`.
267
+ 3. Find the unpacked extension ID: Chrome uses `chrome://extensions` > Developer mode > Enigma > Details; Edge uses `edge://extensions` > Developer mode > Enigma > Details; Firefox uses `about:debugging#/runtime/this-firefox` for temporary add-ons, or a stable `browser_specific_settings.gecko.id`/signed add-on ID for repeatable installs.
268
+ 4. Resolve the absolute host executable or wrapper path. Do not use `~`, `$HOME`, `%USERPROFILE%`, shell aliases, `PATH` lookup, or command arguments in the manifest path.
269
+ 5. Generate the manifest JSON:
270
+
271
+ ```sh
272
+ enigma native-host manifest --browser chrome --host-path "/absolute/path/to/enigma-native-host" --extension-id "REPLACE_WITH_EXTENSION_ID" --out ./com.enigma.native_host.json
273
+ ```
274
+
275
+ Use `--browser edge` or `--browser firefox` for those browsers. Without `--out`, the command prints manifest JSON to stdout. With `--out`, it writes the manifest file and reports `{ ok, path }`. It does not copy files into browser locations and does not write Windows registry keys.
276
+
277
+ Then preview the manual copy/registration targets without mutating browser or OS state:
278
+
279
+ ```sh
280
+ enigma native-host install-plan --browser chrome --manifest "/absolute/path/to/com.enigma.native_host.json"
281
+ ```
282
+
283
+ Use `--browser edge` or `--browser firefox` for those browsers. Optional `--os windows|macos|linux` and `--home <absolute path>` flags preview another platform/user home. The JSON output includes `target_manifest_paths`, `manual_steps`, `registry_command_preview`, `firefox_manifest_directory`, and `writes_performed: false`. `writes_performed: false` is the safety boundary: the command does not create profile directories, copy manifests, or write registry keys. A user or operator still has to perform the displayed copy and, for Windows Chrome/Edge, review and run the displayed registry command.
284
+ 6. Register the generated `com.enigma.native_host.json` at the browser/OS location documented in [`../apps/native-host/README.md`](../apps/native-host/README.md). The checked-in templates under `apps/native-host/manifests/` remain valid manifest templates for `com.enigma.native_host` and are the manual fallback if you cannot run the generator.
285
+ 7. Open the browser extension management page, enable developer mode, and load `enigma/apps/browser-extension` as an unpacked extension.
286
+ 8. Confirm the displayed extension ID matches the generated manifest allowlist.
287
+ 9. Visit a supported provider page and use the Enigma control.
288
+
289
+ Native-host manifest install location quick reference:
290
+
291
+ | Browser | macOS per-user | Linux per-user | Windows per-user |
292
+ | --- | --- | --- | --- |
293
+ | Chrome | `~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.enigma.native_host.json` | `~/.config/google-chrome/NativeMessagingHosts/com.enigma.native_host.json` | `HKCU:\Software\Google\Chrome\NativeMessagingHosts\com.enigma.native_host` default value points to the manifest |
294
+ | Edge | `~/Library/Application Support/Microsoft Edge/NativeMessagingHosts/com.enigma.native_host.json` | `~/.config/microsoft-edge/NativeMessagingHosts/com.enigma.native_host.json` | `HKCU:\Software\Microsoft\Edge\NativeMessagingHosts\com.enigma.native_host` default value points to the manifest |
295
+ | Firefox | `~/Library/Application Support/Mozilla/NativeMessagingHosts/com.enigma.native_host.json` | `~/.mozilla/native-messaging-hosts/com.enigma.native_host.json` | `HKCU:\Software\Mozilla\NativeMessagingHosts\com.enigma.native_host` default value points to the manifest |
296
+
297
+ All-users locations and exact copy/registry commands are in [`../apps/native-host/README.md`](../apps/native-host/README.md).
298
+
299
+ The extension requires explicit user approval before inserting context. It does not use browser sync storage (`chrome.storage.sync`) at all. It stores target metadata and receipt metadata for insertion records, not raw memory plaintext. The native host is a local trust boundary component: users must protect the manifest, wrapper, executable, and `ENIGMA_BUNDLE` path from unwanted local modification. Provider-native memory remains cache only; Enigma cannot delete provider-side memories or force a provider model to forget.
300
+
301
+ ## Desktop path
302
+
303
+ The desktop scaffold is static and dependency-free:
304
+
305
+ ```sh
306
+ cd enigma
307
+ node --input-type=module -e "import { readFile } from 'node:fs/promises'; const html = await readFile('apps/desktop/src/index.html', 'utf8'); console.log(html.includes('Enigma Desktop Shell') ? 'desktop scaffold present' : 'desktop scaffold missing');"
308
+ ```
309
+
310
+ Open the UI directly:
311
+
312
+ ```sh
313
+ cd enigma
314
+ python -m http.server 4173
315
+ ```
316
+
317
+ Then open:
318
+
319
+ ```text
320
+ http://127.0.0.1:4173/apps/desktop/src/index.html
321
+ ```
322
+
323
+ If Python is unavailable, open `enigma/apps/desktop/src/index.html` directly from the filesystem. The scaffold models state and flows; cryptographic proof still comes from Enigma receipts and verifier output.
324
+
325
+ ## Relay server path
326
+
327
+ Run the local relay demo through the direct bin:
328
+
329
+ ```sh
330
+ enigma-relay demo
331
+ ```
332
+
333
+ Equivalent main CLI command:
334
+
335
+ ```sh
336
+ enigma relay demo
337
+ ```
338
+
339
+ Start the local in-memory relay HTTP server:
340
+
341
+ ```sh
342
+ enigma-relay serve --host 127.0.0.1 --port 8787
343
+ ```
344
+
345
+ `enigma-relay --host 127.0.0.1 --port 8787` is also accepted; when the first argument is not `demo`, `serve`, `--help`, or `-h`, the direct bin treats the arguments as `serve` options. `enigma-relay --help`, `enigma-relay -h`, and `enigma-relay serve --help` print direct-bin help and exit without starting the server.
346
+
347
+ Health check:
348
+
349
+ ```sh
350
+ curl http://127.0.0.1:8787/health
351
+ ```
352
+
353
+ Push only an opaque encrypted relay record:
354
+
355
+ ```sh
356
+ curl -X POST http://127.0.0.1:8787/relay/push \
357
+ -H 'content-type: application/json' \
358
+ --data '{"capsule_id":"cap_local_1","opaque_encrypted_record":"age1-example-ciphertext-only"}'
359
+ ```
360
+
361
+ The relay rejects plaintext-looking memory fields. Do not send `memory`, `plaintext`, `content`, `text`, `prompt`, transcript, or conversation bodies to relay endpoints.
362
+
363
+ ## Gateway server path
364
+
365
+ Run the local gateway demo through the direct bin:
366
+
367
+ ```sh
368
+ enigma-gateway demo
369
+ ```
370
+
371
+ Equivalent main CLI command:
372
+
373
+ ```sh
374
+ enigma gateway demo
375
+ ```
376
+
377
+ Start the local in-memory gateway HTTP server:
378
+
379
+ ```sh
380
+ enigma-gateway serve --host 127.0.0.1 --port 8797
381
+ ```
382
+
383
+ `enigma-gateway --host 127.0.0.1 --port 8797` is also accepted; when the first argument is not `demo`, `serve`, `--help`, or `-h`, the direct bin treats the arguments as `serve` options. `enigma-gateway --help`, `enigma-gateway -h`, and `enigma-gateway serve --help` print direct-bin help and exit without starting the server.
384
+
385
+ Health and policy:
386
+
387
+ ```sh
388
+ curl http://127.0.0.1:8797/health
389
+ curl http://127.0.0.1:8797/policy
390
+ ```
391
+
392
+ Evaluate a request by address/metadata, not plaintext:
393
+
394
+ ```sh
395
+ curl -X POST http://127.0.0.1:8797/gateway/decision \
396
+ -H 'content-type: application/json' \
397
+ --data '{"schema":"enigma.gateway_request.v1","operation":"retrieve","provider":"kimi","model":"kimi-k2","region":"us-east-1","purpose":"support_retrieval","sensitivity":"internal","memory_addr":"addr_committed_memory","memory_id":"mem_allowed","subject_id":"employee_123"}'
398
+ ```
399
+
400
+ Export minimized SIEM evidence:
401
+
402
+ ```sh
403
+ curl http://127.0.0.1:8797/siem/export
404
+ ```
405
+
406
+ The gateway evaluates Enigma enterprise policy and signs decisions. It does not call model providers and does not prove provider deletion or model forgetting.
407
+
408
+ ## Docker relay/gateway path
409
+
410
+ The source checkout includes a local demo `Dockerfile` and `docker-compose.yml`. They install from the local package source and do not bake vault bundles, private keys, deployment credentials, tenant credentials, or cloud secrets into the image.
411
+
412
+ Build from the source checkout:
413
+
414
+ ```sh
415
+ cd enigma
416
+ docker build -t enigma-local:dev .
417
+ ```
418
+
419
+ Run direct-bin demos:
420
+
421
+ ```sh
422
+ docker run --rm --entrypoint enigma-relay enigma-local:dev demo
423
+ docker run --rm --entrypoint enigma-gateway enigma-local:dev demo
424
+ ```
425
+
426
+ Run relay and gateway servers:
427
+
428
+ ```sh
429
+ docker run --rm -p 127.0.0.1:8787:8787 --entrypoint enigma-relay enigma-local:dev serve --host 0.0.0.0 --port 8787
430
+ docker run --rm -p 127.0.0.1:8797:8797 --entrypoint enigma-gateway enigma-local:dev serve --host 0.0.0.0 --port 8797
431
+ ```
432
+
433
+ Compose path:
434
+
435
+ ```sh
436
+ cd enigma
437
+ docker compose up --build relay gateway
438
+ ```
439
+
440
+ Then check:
441
+
442
+ ```sh
443
+ curl http://127.0.0.1:8787/health
444
+ curl http://127.0.0.1:8797/health
445
+ ```
446
+
447
+ For production containers, replace in-memory state with durable storage, bind TLS at an ingress layer, mount secrets through your platform, and configure logging/metrics, backup/restore, and incident response. Do not bake vault bundles, private keys, or tenant credentials into images.
448
+
449
+ ## Static public-site preflight
450
+
451
+ When the generated static launch site is part of an operator handoff, run the credential-free artifact preflight before any Cloudflare upload:
452
+
453
+ ```sh
454
+ python scripts/preflight_public_site.py --site _public_site
455
+ ```
456
+
457
+ Run it from the public-site package/artifact root after building or obtaining `_public_site`. The command reads local files only and reports `checked_counts`, `warnings`, and `blockers`; it does not use Cloudflare credentials, upload assets, change DNS/TLS, mutate cache state, or prove live availability. Treat a clean result as local artifact readiness only. Cloudflare deployment and domain verification still require the operator's account, credentials, and live checks.
458
+
459
+ ## Enterprise hosted and BYOC modes
460
+
461
+ Hosted mode:
462
+
463
+ - Enigma operator deploys relay/gateway for the tenant.
464
+ - Requires deployment credentials, domain, TLS, KMS/secrets, durable storage, monitoring, backups, restore procedures, incident response, and release ownership.
465
+ - Tenant policy controls allowed providers, models, regions, purposes, sensitivities, retention, legal holds, and audit/SIEM routing.
466
+
467
+ BYOC mode:
468
+
469
+ - Customer deploys relay/gateway in its own cloud, VPC, cluster, or private network.
470
+ - Customer controls deployment credentials, KMS, logs, SIEM export, network policy, backups, data residency, and incident response.
471
+ - Enigma package supplies the local services and APIs; the customer supplies infrastructure and credentials.
472
+
473
+ Both modes:
474
+
475
+ - Provider-native memory is cache only.
476
+ - Enigma receipts/proofs are about Enigma-controlled state.
477
+ - No Enigma proof can establish that a closed provider deleted hidden copies or that a model forgot.
478
+ - Without real domain/cloud credentials, hosted/BYOC work remains limited to local source, package, and Docker demos.
479
+
480
+ See `docs/deployment-runbook.md` for the production and BYOC operating checklist.
481
+
482
+ ## Verification commands
483
+
484
+ CLI/verifier:
485
+
486
+ ```sh
487
+ ENIGMA_DEMO_MEMORY_FILE=/absolute/path/to/tenant-approved-smoke-memory.txt
488
+ test -f "$ENIGMA_DEMO_MEMORY_FILE"
489
+ enigma init --bundle ./.enigma/bundle.json
490
+ enigma remember --bundle ./.enigma/bundle.json --text-file "$ENIGMA_DEMO_MEMORY_FILE" --purpose verification
491
+ enigma export --bundle ./.enigma/bundle.json --out ./.enigma/export.json
492
+ enigma verify --export ./.enigma/export.json
493
+ ```
494
+
495
+ MCP handshake:
496
+
497
+ ```sh
498
+ printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"manual","version":"0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}\n' | ENIGMA_BUNDLE="$PWD/.enigma/bundle.json" enigma-mcp
499
+ ```
500
+
501
+ Connector/importer/relay/gateway checks:
502
+
503
+ ```sh
504
+ enigma doctor
505
+ enigma import chatgpt --file ./chatgpt-export.json --out ./enigma-import-report.json
506
+ enigma capsule export --file ./enigma-import-report.json --out ./enigma-capsule.json
507
+ enigma capsule import --file ./enigma-capsule.json --bundle "$PWD/.enigma/bundle.json"
508
+ enigma-relay demo
509
+ enigma-gateway demo
510
+ ```
511
+
512
+ Module-level demos from a checkout:
513
+
514
+ ```sh
515
+ node --input-type=module -e "import { runConnectorDemo } from './packages/connectors/src/index.js'; console.log(JSON.stringify(runConnectorDemo({ clientId: 'generic-mcp' }), null, 2));"
516
+ node --input-type=module -e "import { runImporterDemo } from './packages/importers/src/index.js'; console.log(JSON.stringify(runImporterDemo(), null, 2));"
517
+ ```
@@ -1,6 +1,6 @@
1
1
  # Proof Network build notes
2
2
 
3
- These notes are for future engineers extending Enigma's privacy-preserving Proof Network into a Solana program or hosted verifier. The 0.1.12 scope is local-only: create and verify public-safe proof artifacts, prepare opaque root batches for future chain anchoring, and never submit transactions or write private memory material into proof payloads.
3
+ These notes are for future engineers extending Enigma's privacy-preserving Proof Network into a Solana program or hosted verifier. The 0.1.13 scope is local-only: create and verify public-safe proof artifacts, prepare opaque root batches for future chain anchoring, and never submit transactions or write private memory material into proof payloads.
4
4
 
5
5
  Paths below are relative to `enigma/`.
6
6
 
@@ -202,7 +202,7 @@ On-chain accounts should store compact hashes, counters, timestamps, and public
202
202
 
203
203
  A hosted verifier can add convenience, not authority over private content. It may validate schema ids, JSON Schemas, package validators, canonical hashes, packet nesting, artifact counts, and public registry/chain observations. It must return bounded public-safe error codes and never echo private submitted values.
204
204
 
205
- Verifier non-goals: no raw memory ingestion, provider transcript ingestion, embedding upload endpoint, tenant-name lookup endpoint, Solana transaction submission, or hosted secret custody in the 0.1.12 proof-network layer.
205
+ Verifier non-goals: no raw memory ingestion, provider transcript ingestion, embedding upload endpoint, tenant-name lookup endpoint, Solana transaction submission, or hosted secret custody in the 0.1.13 proof-network layer.
206
206
 
207
207
  ## Targeted test plan
208
208
 
@@ -92,7 +92,7 @@ Example:
92
92
  ```sh
93
93
  enigma chain anchor \
94
94
  --root sha256:8f0f7d2b7b7f4f2a3e4b9a3d1f0f2c3b4a5d6e7f8091a2b3c4d5e6f708192a3b \
95
- --ref release:enigma:0.1.12 \
95
+ --ref release:enigma:0.1.13 \
96
96
  --ref memory-root:public-demo-2026-06-25 \
97
97
  --out ./.enigma/proof-network-anchor.json
98
98
  ```
@@ -166,8 +166,8 @@ Example with a report hash:
166
166
  enigma chain attest \
167
167
  --report-hash sha256:5c3a2e1d0f9b8a7766554433221100ffeeddccbbaa99887766554433221100ff \
168
168
  --dataset-ref locomo:file-sha256:6a7b8c9d0e1f2233445566778899aabbccddeeff00112233445566778899aabb \
169
- --runner-ref enigma-standard-memory-benchmark:0.1.12 \
170
- --package-ref npm:@enigma-ai/enigma:0.1.12 \
169
+ --runner-ref enigma-standard-memory-benchmark:0.1.13 \
170
+ --package-ref npm:@enigma-ai/enigma:0.1.13 \
171
171
  --out ./.enigma/proof-network-attestation.json
172
172
  ```
173
173
 
@@ -177,8 +177,8 @@ Example with a local report file:
177
177
  enigma chain attest \
178
178
  --report-file ./.enigma/standard-memory-benchmark.json \
179
179
  --dataset-ref longmemeval:file-sha256:7b8c9d0e1f2233445566778899aabbccddeeff00112233445566778899aabbcc \
180
- --runner-ref enigma-standard-memory-benchmark:0.1.12 \
181
- --package-ref npm:@enigma-ai/enigma:0.1.12 \
180
+ --runner-ref enigma-standard-memory-benchmark:0.1.13 \
181
+ --package-ref npm:@enigma-ai/enigma:0.1.13 \
182
182
  --out ./.enigma/proof-network-attestation.json
183
183
  ```
184
184
 
package/docs/sdk-api.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SDK and API guide
2
2
 
3
- This guide covers the public package imports for `enigma-memory@0.1.12`. The SDK runs locally by default: vaults, passports, context packs, receipts, relay/gateway demo state, storage contracts, metering artifacts, settlement artifacts, proof-network artifacts, and hosted-cloud contract packets are package-level developer surfaces. They are not evidence of hosted Enigma cloud, live customer API key issuance, provider-side deletion, provider model forgetting, token ROI, invoice savings, compliance certification, benchmark leadership, Solana transaction submission, or on-chain raw memory.
3
+ This guide covers the public package imports for `enigma-memory`. The SDK runs locally by default: vaults, passports, context packs, receipts, relay/gateway demo state, storage contracts, metering artifacts, settlement artifacts, proof-network artifacts, and hosted-cloud contract packets are package-level developer surfaces. They are not evidence of hosted Enigma cloud, live customer API key issuance, provider-side deletion, provider model forgetting, token ROI, invoice savings, compliance certification, benchmark leadership, Solana transaction submission, or on-chain raw memory.
4
4
 
5
5
  ## Install and import style
6
6
 
@@ -8,6 +8,8 @@ This guide covers the public package imports for `enigma-memory@0.1.12`. The SDK
8
8
  npm install enigma-memory
9
9
  ```
10
10
 
11
+ Requires Node.js `>=24`, matching the package `engines` field.
12
+
11
13
  Use ESM imports and explicit subpaths when you know the surface you need:
12
14
 
13
15
  ```js
@@ -239,7 +241,7 @@ const attestation = createBenchmarkAttestation({
239
241
  report_hash: 'sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
240
242
  dataset_ref: 'dataset-ref-public',
241
243
  runner_ref: 'runner-ref-public',
242
- package_ref: 'npm:enigma-memory@0.1.12',
244
+ package_ref: 'npm:enigma-memory@0.1.13',
243
245
  metric_roots: ['sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'],
244
246
  sample_count: 120,
245
247
  run_count: 1,
@@ -437,7 +437,7 @@ Mainnet use is blocked until all gates below are satisfied for the exact program
437
437
  - Use domain tags for every hash: `anchor_batch`, `capability_grant`, `capability_revocation`, `benchmark_attestation`, `job_escrow`, `operator_registry`, and `packet`.
438
438
  - Prefer fixed-size byte arrays and enums in instruction args. Avoid variable user text and arbitrary JSON on-chain.
439
439
  - Keep account sizes bounded. Store hash lists off-chain behind roots when a vector could grow without a hard cap.
440
- - Every chain-writing CLI command should have a local planning mode first. The default for release `0.1.12` planning artifacts is no transaction submission.
440
+ - Every chain-writing CLI command should have a local planning mode first. The default for release `0.1.13` planning artifacts is no transaction submission.
441
441
  - Chain refs should include cluster, program id, signature/account id, and slot. They should not include RPC URLs with credentials.
442
442
 
443
443
  ## Future implementation checklist
@@ -31,7 +31,7 @@ jobs:
31
31
  run: npm init -y
32
32
 
33
33
  - name: Install Enigma Memory
34
- run: npm install enigma-memory@0.1.4
34
+ run: npm install enigma-memory
35
35
 
36
36
  - name: Expose local benchmark script
37
37
  run: |
@@ -44,8 +44,11 @@ jobs:
44
44
  await writeFile('package.json', `${JSON.stringify(pkg, null, 2)}\n`, 'utf8');
45
45
  JS
46
46
 
47
- - name: Run Enigma quickstart
48
- run: npx enigma quickstart --overwrite
47
+ - name: Run Enigma test drive
48
+ run: npx enigma test-drive --overwrite
49
+
50
+ - name: Run Enigma setup
51
+ run: npx enigma setup --overwrite
49
52
 
50
53
  - name: Run Enigma doctor
51
54
  run: npx enigma doctor
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enigma-memory",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "description": "Provider-agnostic AI memory passport and offline-verifiable proof layer.",
6
6
  "license": "Apache-2.0",
@@ -64,6 +64,7 @@
64
64
  "deploy/SIMULATION.md",
65
65
  "deploy/kubernetes/enigma-backend.example.yaml",
66
66
  "scripts/check.mjs",
67
+ "scripts/install-enigma-local.mjs",
67
68
  "scripts/verify-registry-install.mjs",
68
69
  "scripts/run-memory-benchmarks.mjs",
69
70
  "scripts/download-standard-benchmarks.mjs",
@@ -122,6 +123,8 @@
122
123
  "scripts/simulate-production-env.mjs",
123
124
  "scripts/wait-for-backend-ready.mjs",
124
125
  "docs/sdk-api.md",
126
+ "docs/install-anywhere.md",
127
+ "docs/client-connectors.md",
125
128
  "docs/developer-ecosystem.md",
126
129
  "docs/memory-benchmarks.md",
127
130
  "docs/benchmark-reproducibility.md",
@@ -17,7 +17,7 @@ import {
17
17
  const DEFAULT_BUNDLE = '.enigma/bundle.json';
18
18
  const JSONRPC_VERSION = '2.0';
19
19
  const MCP_PROTOCOL_VERSION = '2024-11-05';
20
- const SERVER_INFO = Object.freeze({ name: 'enigma-mcp-server', version: '0.1.12' });
20
+ const SERVER_INFO = Object.freeze({ name: 'enigma-mcp-server', version: '0.1.13' });
21
21
  const JSON_RPC_ID_PATTERN = /^[A-Za-z0-9._:-]{1,128}$/;
22
22
  const JSON_RPC_ERROR = Object.freeze({
23
23
  INVALID_REQUEST: -32600,
@@ -13,7 +13,7 @@ import {
13
13
  } from '../packages/hosted-cloud/src/index.js';
14
14
 
15
15
  export const HOSTED_API_KEY_LIFECYCLE_PACKET_SCHEMA = HOSTED_CLOUD_API_KEY_LIFECYCLE_PACKET_SCHEMA;
16
- export const HOSTED_API_KEY_LIFECYCLE_RELEASE_TARGET = '0.1.12';
16
+ export const HOSTED_API_KEY_LIFECYCLE_RELEASE_TARGET = '0.1.13';
17
17
 
18
18
  const PROVIDED = 'provided';
19
19
  const BLOCKED = 'blocked_external_dependency';