enigma-memory 0.1.18 → 0.1.22

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 (276) hide show
  1. package/README.md +76 -24
  2. package/apps/cli/bin/enigma-desktop.mjs +140 -0
  3. package/apps/cli/bin/enigma-terminal.mjs +78 -0
  4. package/apps/cli/bin/enigma.mjs +1923 -285
  5. package/apps/desktop/electron-main.cjs +217 -0
  6. package/apps/desktop/package.json +12 -0
  7. package/apps/desktop/src/app.js +264 -7
  8. package/apps/desktop/src/index.html +3514 -1373
  9. package/apps/desktop/src/launch-electron.mjs +51 -0
  10. package/apps/desktop/src/server.mjs +2914 -0
  11. package/apps/desktop/src/styles.css +2972 -260
  12. package/apps/desktop/src/zk-browser-prove.mjs +53 -0
  13. package/apps/desktop/src/zk-state.mjs +1789 -0
  14. package/apps/gateway/bin/enigma-gateway.mjs +102 -5
  15. package/apps/gateway/src/server.mjs +271 -8
  16. package/apps/ios/EnigmaCore/Package.swift +12 -0
  17. package/apps/ios/EnigmaCore/Sources/EnigmaCore/EnigmaAPIClient.swift +227 -0
  18. package/apps/ios/EnigmaCore/Sources/EnigmaCore/Models.swift +278 -0
  19. package/apps/ios/EnigmaCore/Sources/EnigmaCore/PKCE.swift +96 -0
  20. package/apps/ios/EnigmaCore/Sources/EnigmaCore/PrivacyMinimizer.swift +187 -0
  21. package/apps/ios/EnigmaCore/Sources/EnigmaCore/ToolModels.swift +129 -0
  22. package/apps/ios/EnigmaCore/Tests/EnigmaCoreTests/EnigmaCoreTests.swift +42 -0
  23. package/apps/ios/EnigmaIOS/Enigma/AppModel.swift +346 -0
  24. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AccentColor.colorset/Contents.json +12 -0
  25. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AppIcon.appiconset/Contents.json +11 -0
  26. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AppIcon.appiconset/EnigmaAppIcon.png +0 -0
  27. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/Contents.json +3 -0
  28. package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/LaunchBackground.colorset/Contents.json +12 -0
  29. package/apps/ios/EnigmaIOS/Enigma/ChatView.swift +181 -0
  30. package/apps/ios/EnigmaIOS/Enigma/CouncilView.swift +78 -0
  31. package/apps/ios/EnigmaIOS/Enigma/CreateView.swift +152 -0
  32. package/apps/ios/EnigmaIOS/Enigma/EnigmaApp.swift +52 -0
  33. package/apps/ios/EnigmaIOS/Enigma/Info.plist +52 -0
  34. package/apps/ios/EnigmaIOS/Enigma/NaturalLanguagePrivacyTagger.swift +26 -0
  35. package/apps/ios/EnigmaIOS/Enigma/OAuthClient.swift +321 -0
  36. package/apps/ios/EnigmaIOS/Enigma/OnboardingView.swift +105 -0
  37. package/apps/ios/EnigmaIOS/Enigma/PrivateVaultView.swift +275 -0
  38. package/apps/ios/EnigmaIOS/Enigma/SecureStore.swift +76 -0
  39. package/apps/ios/EnigmaIOS/Enigma/SettingsView.swift +60 -0
  40. package/apps/ios/EnigmaIOS/Enigma/Theme.swift +80 -0
  41. package/apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/project.pbxproj +211 -0
  42. package/apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/xcshareddata/xcschemes/Enigma.xcscheme +23 -0
  43. package/apps/native-host/README.md +19 -8
  44. package/apps/native-host/bin/enigma-native-host.mjs +229 -13
  45. package/apps/relay/bin/enigma-relay.mjs +103 -5
  46. package/apps/relay/src/federation-runtime.mjs +618 -0
  47. package/apps/relay/src/server.mjs +310 -9
  48. package/apps/verifier/bin/enigma-verify.mjs +327 -11
  49. package/cortex-v3/circuits/build/intent_vk_bytes.json +35 -0
  50. package/cortex-v3/circuits/build/sale_vk_bytes.json +35 -0
  51. package/cortex-v3/circuits/build/vk_bytes.json +32 -0
  52. package/cortex-v3/proving-assets.json +64 -0
  53. package/cortex-v3/zk/BUILD-CONTRACT.md +87 -0
  54. package/cortex-v3/zk/action-transition-vk.json +119 -0
  55. package/cortex-v3/zk/alias-adversarial.test.mjs +220 -0
  56. package/cortex-v3/zk/groth16-verify-child.mjs +17 -0
  57. package/cortex-v3/zk/intent-witness.mjs +365 -0
  58. package/cortex-v3/zk/intent-witness.test.mjs +485 -0
  59. package/cortex-v3/zk/proving-assets.mjs +203 -0
  60. package/cortex-v3/zk/sale-witness.mjs +783 -0
  61. package/cortex-v3/zk/sale-witness.test.mjs +784 -0
  62. package/cortex-v3/zk/sealed-sale-release-vk.json +119 -0
  63. package/cortex-v3/zk/settlement-evidence.mjs +722 -0
  64. package/cortex-v3/zk/setup-intent.mjs +688 -0
  65. package/cortex-v3/zk/setup-sale.mjs +666 -0
  66. package/cortex-v3/zk/setup.mjs +594 -0
  67. package/cortex-v3/zk/witness.mjs +184 -0
  68. package/cortex-v3/zk/zk-codec.mjs +232 -0
  69. package/cortex-v3/zk/zk-codec.test.mjs +293 -0
  70. package/cortex-v3/zk/zk-settle.mjs +370 -0
  71. package/cortex-v3/zk/zk-tree.mjs +256 -0
  72. package/cortex-v3/zk/zk-tree.test.mjs +419 -0
  73. package/deploy/docker-compose.local-production-simulation.yml +36 -0
  74. package/docs/browser-extension-install.md +8 -6
  75. package/docs/client-connectors.md +15 -11
  76. package/docs/developer-ecosystem.md +15 -13
  77. package/docs/enigma-memory-ready-conformance.md +11 -9
  78. package/docs/install-anywhere.md +61 -28
  79. package/docs/installers-and-desktop.md +8 -7
  80. package/docs/novelty-invention-candidates.md +161 -161
  81. package/docs/proof-network-claim-boundaries.md +320 -318
  82. package/examples/01-quickstart-agent/index.mjs +49 -0
  83. package/examples/01_agent_memory_quickstart.mjs +57 -0
  84. package/examples/02-multi-agent-swarm/index.mjs +57 -0
  85. package/examples/02_cross_model_passport.mjs +64 -0
  86. package/examples/03-langchain-memory/index.mjs +41 -0
  87. package/examples/03_poseidon_commitment_verification.mjs +71 -0
  88. package/examples/04-python-trading-agent/trader.py +49 -0
  89. package/examples/README.md +27 -0
  90. package/examples/ci/github-actions.yml +7 -2
  91. package/package.json +142 -11
  92. package/packages/adapters/PACKAGE_CONTRACT.md +1 -1
  93. package/packages/connectors/src/index.js +196 -4
  94. package/packages/connectors/swarm-router.mjs +168 -0
  95. package/packages/core/src/index.js +248 -1
  96. package/packages/core/src/version.mjs +7 -0
  97. package/packages/dev-tools/package.json +19 -0
  98. package/packages/dev-tools/src/index.js +4 -0
  99. package/packages/dev-tools/src/memory-benchmark-suite.js +112 -0
  100. package/packages/dev-tools/src/swarm-simulator.js +101 -0
  101. package/packages/dev-tools/src/vault-inspector.js +114 -0
  102. package/packages/dev-tools/src/vector-benchmark.js +100 -0
  103. package/packages/developer-platform/src/access-credentials.js +341 -0
  104. package/packages/developer-platform/src/http.js +132 -0
  105. package/packages/developer-platform/src/index.js +4 -0
  106. package/packages/developer-platform/src/usage-http.js +60 -0
  107. package/packages/developer-platform/src/usage.js +295 -0
  108. package/packages/enclave-runtime/attestation.mjs +159 -0
  109. package/packages/enclave-runtime/index.mjs +47 -0
  110. package/packages/enclave-runtime/session-manager.mjs +253 -0
  111. package/packages/enclave-runtime/zeroization-proof.mjs +227 -0
  112. package/packages/enigma-reflex/package.json +14 -0
  113. package/packages/enigma-reflex/src/index.js +204 -0
  114. package/packages/enigma-reflex/training/generate-dataset.mjs +40 -0
  115. package/packages/enigma-reflex/training/requirements.txt +8 -0
  116. package/packages/enigma-reflex/training/train.py +314 -0
  117. package/packages/enigma-weave/LICENSE +22 -0
  118. package/packages/enigma-weave/UPSTREAM.json +21 -0
  119. package/packages/enigma-weave/package.json +14 -0
  120. package/packages/enigma-weave/src/index.js +286 -0
  121. package/packages/hosted-cloud/src/index.js +80 -5
  122. package/packages/importers/src/index.js +432 -0
  123. package/packages/inference-runtime/src/browser.js +401 -0
  124. package/packages/inference-runtime/src/chat.js +265 -0
  125. package/packages/inference-runtime/src/code.js +407 -0
  126. package/packages/inference-runtime/src/contracts.js +162 -0
  127. package/packages/inference-runtime/src/http.js +232 -0
  128. package/packages/inference-runtime/src/image.js +186 -0
  129. package/packages/inference-runtime/src/index.js +10 -0
  130. package/packages/inference-runtime/src/model-router.js +320 -0
  131. package/packages/inference-runtime/src/platform.js +125 -0
  132. package/packages/inference-runtime/src/privacy.js +400 -0
  133. package/packages/inference-runtime/src/video.js +253 -0
  134. package/packages/mcp-server/README.md +22 -6
  135. package/packages/mcp-server/bin/enigma-mcp.mjs +2 -1
  136. package/packages/mcp-server/src/index.js +1418 -105
  137. package/packages/mcp-server/src/oauth.js +561 -0
  138. package/packages/mcp-server/src/private-handoff.js +84 -0
  139. package/packages/mcp-server/src/remote-http.js +273 -0
  140. package/packages/mcp-server/src/remote-policy.js +72 -0
  141. package/packages/mcp-server/swarm-bridge.mjs +361 -0
  142. package/packages/mesh/index.d.ts +283 -0
  143. package/packages/mesh/package.json +23 -0
  144. package/packages/mesh/src/crypto.js +189 -0
  145. package/packages/mesh/src/federation-packets.js +353 -0
  146. package/packages/mesh/src/gossip.js +311 -0
  147. package/packages/mesh/src/index.js +6 -0
  148. package/packages/mesh/src/protocol.js +255 -0
  149. package/packages/mesh/src/router.js +279 -0
  150. package/packages/mesh/src/transport.js +306 -0
  151. package/packages/passport/src/index.js +426 -1
  152. package/packages/private-economy/src/credits-http.js +100 -0
  153. package/packages/private-economy/src/credits.js +447 -0
  154. package/packages/private-economy/src/index.js +5 -0
  155. package/packages/private-economy/src/payments-http.js +120 -0
  156. package/packages/private-economy/src/payments.js +509 -0
  157. package/packages/private-economy/src/x402.js +346 -0
  158. package/packages/proof-network/PACKAGE_CONTRACT.md +21 -0
  159. package/packages/rag/index.d.ts +182 -0
  160. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/THIRD_PARTY_LICENSES.txt +207 -0
  161. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/config.json +25 -0
  162. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/onnx/model_quantized.onnx +0 -0
  163. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/sha256-manifest.json +28 -0
  164. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/tokenizer.json +30686 -0
  165. package/packages/rag/models/Xenova/all-MiniLM-L6-v2/tokenizer_config.json +15 -0
  166. package/packages/rag/package.json +27 -0
  167. package/packages/rag/src/blinded-search.js +109 -0
  168. package/packages/rag/src/bm25.js +169 -0
  169. package/packages/rag/src/embeddings.js +459 -0
  170. package/packages/rag/src/hybrid.js +76 -0
  171. package/packages/rag/src/index.js +38 -0
  172. package/packages/rag/src/reranker.js +61 -0
  173. package/packages/rag/src/research.js +107 -0
  174. package/packages/rag/src/vector-store.js +430 -0
  175. package/packages/rag/src/verify-model-artifacts.mjs +4 -0
  176. package/packages/sdk/index.d.ts +760 -0
  177. package/packages/sdk/package.json +33 -0
  178. package/packages/sdk/python/README.md +24 -0
  179. package/packages/sdk/python/enigma_sdk.py +250 -0
  180. package/packages/sdk/python/pyproject.toml +34 -0
  181. package/packages/sdk/python/requirements.txt +1 -0
  182. package/packages/sdk/python/setup.py +20 -0
  183. package/packages/sdk/src/federation/capability-grant.js +389 -0
  184. package/packages/sdk/src/federation/federation-router.js +360 -0
  185. package/packages/sdk/src/federation/ghostmesh-bridge.js +497 -0
  186. package/packages/sdk/src/federation/index.js +3 -0
  187. package/packages/sdk/src/index.js +1796 -0
  188. package/packages/sdk/src/intelligence/contradiction.js +337 -0
  189. package/packages/sdk/src/intelligence/decision-engine.js +155 -0
  190. package/packages/sdk/src/intelligence/index.js +4 -0
  191. package/packages/sdk/src/intelligence/ontology.js +122 -0
  192. package/packages/sdk/src/intelligence/temporal.js +123 -0
  193. package/packages/sdk/src/market-client.js +142 -0
  194. package/packages/sdk/src/mesh-client.js +110 -0
  195. package/packages/sdk/src/middleware/index.js +3 -0
  196. package/packages/sdk/src/middleware/langchain.js +159 -0
  197. package/packages/sdk/src/middleware/llamaindex.js +101 -0
  198. package/packages/sdk/src/middleware/vercel-ai.js +112 -0
  199. package/packages/sdk/src/rag-client.js +85 -0
  200. package/packages/sdk/src/swarm-orchestrator.js +260 -0
  201. package/packages/settlement/PACKAGE_CONTRACT.md +1 -1
  202. package/packages/snapcompact/THIRD_PARTY_LICENSES.txt +40 -0
  203. package/packages/snapcompact/assets/8x13-latin1.bdf +3837 -0
  204. package/packages/snapcompact/index.d.ts +284 -0
  205. package/packages/snapcompact/package.json +25 -0
  206. package/packages/snapcompact/src/index.js +716 -0
  207. package/packages/storage/PACKAGE_CONTRACT.md +1 -1
  208. package/packages/terminal-console/animations.mjs +240 -0
  209. package/packages/terminal-console/auto-anchor.mjs +220 -0
  210. package/packages/terminal-console/banner.mjs +91 -0
  211. package/packages/terminal-console/commands.mjs +459 -0
  212. package/packages/terminal-console/delegation.mjs +152 -0
  213. package/packages/terminal-console/index.mjs +5 -0
  214. package/packages/terminal-console/outbox.mjs +143 -0
  215. package/packages/terminal-console/phantom-bridge.mjs +637 -0
  216. package/packages/terminal-console/repl.mjs +136 -0
  217. package/packages/terminal-console/signer-store.mjs +130 -0
  218. package/packages/terminal-console/solana-rpc.mjs +214 -0
  219. package/packages/terminal-console/solana-transport.mjs +189 -0
  220. package/packages/terminal-tui/dashboard.mjs +214 -0
  221. package/packages/terminal-tui/index.mjs +28 -0
  222. package/packages/terminal-tui/merkle-tree-renderer.mjs +268 -0
  223. package/packages/terminal-tui/telemetry-hud.mjs +137 -0
  224. package/packages/vault/index.d.ts +449 -0
  225. package/packages/vault/package.json +27 -0
  226. package/packages/vault/src/e2ee.mjs +393 -0
  227. package/packages/vault/src/enclave.js +481 -0
  228. package/packages/vault/src/erasure.js +207 -0
  229. package/packages/vault/src/index.js +1018 -155
  230. package/packages/vault/src/persistence.js +307 -0
  231. package/packages/vault/src/poseidon.js +354 -0
  232. package/packages/vault/src/receipt.js +459 -0
  233. package/scripts/benchmark-optical-context.mjs +166 -0
  234. package/scripts/bootstrap-enigma.mjs +502 -0
  235. package/scripts/build-edge-backend-workers.mjs +20 -5
  236. package/scripts/build-goal-completion-audit.mjs +72 -25
  237. package/scripts/build-hosted-api-key-lifecycle.mjs +26 -8
  238. package/scripts/build-hosted-customer-lifecycle.mjs +20 -3
  239. package/scripts/build-hosted-probe-worker.mjs +19 -4
  240. package/scripts/build-installer-assets.mjs +41 -21
  241. package/scripts/build-operator-evidence-starter.mjs +59 -1
  242. package/scripts/build-production-backend-env-kit.mjs +2 -0
  243. package/scripts/build-production-unblocker.mjs +3 -0
  244. package/scripts/check.mjs +17 -3
  245. package/scripts/collect-hosted-backend-live-evidence.mjs +49 -12
  246. package/scripts/install-enigma-local.mjs +18 -5
  247. package/scripts/release-audit.mjs +65 -109
  248. package/scripts/release-provenance.mjs +6 -0
  249. package/scripts/run-backend-readiness-smoke.mjs +112 -10
  250. package/scripts/scan-secrets.mjs +1 -0
  251. package/scripts/simulate-production-env.mjs +7 -2
  252. package/scripts/validate-hosted-backend-live.mjs +112 -1
  253. package/specs/antibody-pack-v1.schema.json +95 -0
  254. package/specs/antigen-envelope-v1.schema.json +81 -0
  255. package/specs/boundary-manifest-v1.schema.json +35 -35
  256. package/specs/capsule-v1.schema.json +55 -55
  257. package/specs/claim-boundary-manifest-v1.schema.json +22 -22
  258. package/specs/claim-ledger-v1.schema.json +291 -0
  259. package/specs/context-passport-v1.schema.json +59 -0
  260. package/specs/deletion-tombstone-v1.schema.json +26 -26
  261. package/specs/evidence-packet-v1.schema.json +177 -0
  262. package/specs/hosted-backend-live-evidence-v1.schema.json +72 -3
  263. package/specs/immune-scan-report-v1.schema.json +112 -0
  264. package/specs/lifecycle-receipt-log-v1.schema.json +67 -0
  265. package/specs/memory-atom-v1.schema.json +59 -0
  266. package/specs/memory-event-v1.schema.json +42 -42
  267. package/specs/passport-v1.schema.json +50 -50
  268. package/specs/proof-of-non-use-v1.schema.json +65 -0
  269. package/specs/quarantine-record-v1.schema.json +126 -0
  270. package/specs/receipt-v1.schema.json +61 -61
  271. package/specs/state-checkpoint-v1.schema.json +37 -37
  272. package/specs/trust-bundle-v1.schema.json +56 -56
  273. package/specs/trust-card-v1.schema.json +119 -0
  274. package/docs/proof-network-launch-plan.md +0 -421
  275. package/packages/metering/PACKAGE_CONTRACT.md +0 -20
  276. package/scripts/build-ai-orchestration-plan.mjs +0 -248
@@ -70,6 +70,13 @@ services:
70
70
  start_period: 3s
71
71
  restart: unless-stopped
72
72
 
73
+ simulation-state-init:
74
+ image: alpine:3.22
75
+ command: ["sh", "-c", "chown -R 1000:1000 /simulation-state && chmod 700 /simulation-state"]
76
+ volumes:
77
+ - simulation-state:/simulation-state
78
+ restart: "no"
79
+
73
80
  relay:
74
81
  build:
75
82
  context: ..
@@ -85,6 +92,10 @@ services:
85
92
  - operator_acceptance_evidence_uri
86
93
  environment:
87
94
  NODE_ENV: production
95
+ # Guarded local-only serve module; never use this module in hosted/BYOC manifests.
96
+ ENIGMA_LOCAL_PRODUCTION_SIMULATION: "true"
97
+ ENIGMA_RELAY_SERVE_MODULE: /app/scripts/local-production-simulation-serve.mjs
98
+ ENIGMA_SIMULATION_STATE_DIR: /simulation-state
88
99
  ENIGMA_BACKEND_MODE: production
89
100
  ENIGMA_REQUIRE_EXTERNAL_STORAGE: "true"
90
101
  ENIGMA_REQUIRE_EXTERNAL_KMS: "true"
@@ -96,7 +107,9 @@ services:
96
107
  ENIGMA_RELAY_RUNTIME_AUTH_REF: local-simulation-relay-runtime-auth-ref
97
108
  ENIGMA_RELAY_MONITORING_REF: local-simulation-relay-monitoring-ref
98
109
  ENIGMA_SIEM_REF: local-simulation-siem-ref
110
+ ENIGMA_RELAY_STORAGE_REF: local-simulation-relay-storage-ref
99
111
  ENIGMA_BACKUP_TARGET_URI_FILE: /run/secrets/backup_target_uri
112
+ ENIGMA_BACKUP_TARGET_REF: local-simulation-backup-target-ref
100
113
  ENIGMA_NETWORK_ACCESS_POLICY_REF: local-simulation-network-access-policy-ref
101
114
  ENIGMA_KMS_CUSTODY_REF: local-simulation-kms-custody-ref
102
115
  ENIGMA_KMS_KEY_REF: local-simulation-kms-key-ref
@@ -115,9 +128,15 @@ services:
115
128
  ENIGMA_EXTERNAL_STORAGE_DSN_FILE: /run/secrets/external_storage_dsn
116
129
  ENIGMA_KMS_KEY_REF_FILE: /run/secrets/kms_key_ref
117
130
  ENIGMA_OPERATOR_ACCEPTANCE_EVIDENCE_URI_FILE: /run/secrets/operator_acceptance_evidence_uri
131
+ volumes:
132
+ - simulation-state:/simulation-state
118
133
  depends_on:
119
134
  postgres:
120
135
  condition: service_healthy
136
+ kms-mock:
137
+ condition: service_healthy
138
+ simulation-state-init:
139
+ condition: service_completed_successfully
121
140
  read_only: true
122
141
  user: "1000:1000"
123
142
  cap_drop: ["ALL"]
@@ -151,6 +170,12 @@ services:
151
170
  ENIGMA_GATEWAY_ADMIN_AUTH_BEARER_SHA256: ${ENIGMA_GATEWAY_ADMIN_AUTH_BEARER_SHA256:-operator-required-admin-bearer-sha256}
152
171
  ENIGMA_GATEWAY_DATA_PLANE_AUTH_BEARER_SHA256: ${ENIGMA_GATEWAY_DATA_PLANE_AUTH_BEARER_SHA256:-operator-required-data-plane-bearer-sha256}
153
172
  NODE_ENV: production
173
+ # Guarded local-only serve module; never use this module in hosted/BYOC manifests.
174
+ ENIGMA_LOCAL_PRODUCTION_SIMULATION: "true"
175
+ ENIGMA_GATEWAY_SERVE_MODULE: /app/scripts/local-production-simulation-serve.mjs
176
+ ENIGMA_SIMULATION_STATE_DIR: /simulation-state
177
+ ENIGMA_SIMULATION_KMS_KEY_PATH: /simulation-kms/kms-key-ref.json
178
+ ENIGMA_SIMULATION_SIEM_URL: http://siem-mock:3000/events
154
179
  ENIGMA_BACKEND_MODE: production
155
180
  ENIGMA_REQUIRE_EXTERNAL_STORAGE: "true"
156
181
  ENIGMA_REQUIRE_EXTERNAL_KMS: "true"
@@ -166,6 +191,7 @@ services:
166
191
  ENIGMA_GATEWAY_ADMIN_AUTH_REF: local-simulation-gateway-admin-auth-ref
167
192
  ENIGMA_GATEWAY_DATA_PLANE_AUTH_REF: local-simulation-gateway-data-plane-auth-ref
168
193
  ENIGMA_BACKUP_TARGET_URI_FILE: /run/secrets/backup_target_uri
194
+ ENIGMA_BACKUP_TARGET_REF: local-simulation-backup-target-ref
169
195
  ENIGMA_NETWORK_ACCESS_POLICY_REF: local-simulation-network-access-policy-ref
170
196
  ENIGMA_KMS_CUSTODY_REF: local-simulation-kms-custody-ref
171
197
  ENIGMA_KMS_KEY_REF: local-simulation-kms-key-ref
@@ -185,9 +211,18 @@ services:
185
211
  ENIGMA_SIEM_EXPORT_ENDPOINT_FILE: /run/secrets/siem_export_endpoint
186
212
  ENIGMA_EXTERNAL_STORAGE_DSN_FILE: /run/secrets/external_storage_dsn
187
213
  ENIGMA_OPERATOR_ACCEPTANCE_EVIDENCE_URI_FILE: /run/secrets/operator_acceptance_evidence_uri
214
+ volumes:
215
+ - simulation-state:/simulation-state
216
+ - kms-data:/simulation-kms:ro
188
217
  depends_on:
189
218
  postgres:
190
219
  condition: service_healthy
220
+ kms-mock:
221
+ condition: service_healthy
222
+ siem-mock:
223
+ condition: service_healthy
224
+ simulation-state-init:
225
+ condition: service_completed_successfully
191
226
  read_only: true
192
227
  user: "1000:1000"
193
228
  cap_drop: ["ALL"]
@@ -243,3 +278,4 @@ volumes:
243
278
  pgdata:
244
279
  kms-data:
245
280
  siem-data:
281
+ simulation-state:
@@ -32,19 +32,21 @@ The ZIP command does not publish, sign, upload, or submit the extension.
32
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 && 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
35
+ PASSPHRASE_FILE="$HOME/.enigma/passphrase"
36
+ test -s "$PASSPHRASE_FILE" || { printf '%s\n' 'Create the protected passphrase file before setup.' >&2; exit 1; }
37
+ npm install -g enigma-memory && enigma setup --passphrase-file "$PASSPHRASE_FILE" --client claude-desktop --write-connectors --overwrite
38
+ npm install -g enigma-memory && enigma setup --passphrase-file "$PASSPHRASE_FILE" --client cursor --write-connectors --overwrite
39
+ npm install -g enigma-memory && enigma setup --passphrase-file "$PASSPHRASE_FILE" --client kimi-code --write-connectors --overwrite
40
+ npm install -g enigma-memory && enigma setup --passphrase-file "$PASSPHRASE_FILE" --client vscode-cline --write-connectors --overwrite
39
41
  ```
40
42
 
41
43
  If you want Enigma to touch only client config files that already exist, use:
42
44
 
43
45
  ```sh
44
- npm install -g enigma-memory && enigma setup --client auto --connect-installed --overwrite
46
+ npm install -g enigma-memory && enigma setup --passphrase-file "$HOME/.enigma/passphrase" --client auto --connect-installed --overwrite
45
47
  ```
46
48
 
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.
49
+ Set `ENIGMA_BUNDLE` and `ENIGMA_PASSPHRASE_FILE` for the browser-launched host process to the same bundle and protected passphrase file used by setup, or point the native-host manifest at a small owner-writable-only wrapper that sets both variables before launching `enigma-native-host`. Never put the passphrase contents in the wrapper or manifest. Native messaging manifests require an absolute executable path; they do not expand shell aliases, `~`, `$HOME`, `%USERPROFILE%`, or command arguments.
48
50
 
49
51
  Resolve the absolute host executable path:
50
52
 
@@ -16,17 +16,21 @@ Supported connector IDs:
16
16
 
17
17
  ```sh
18
18
  npm install -g enigma-memory
19
- enigma init
20
- enigma setup --client auto --connect-installed --overwrite
21
- enigma drive health
22
- enigma status
23
- enigma remember --text-file ./memory.txt
24
- enigma search --query "project context"
25
- enigma context --query "project context" --optimize
19
+ PASSPHRASE_FILE="$HOME/.enigma/passphrase"
20
+ test -s "$PASSPHRASE_FILE" || { printf '%s\n' 'Create $HOME/.enigma/passphrase with an approved secret manager or secure editor, then restrict it to the current user.' >&2; exit 1; }
21
+ enigma init --passphrase-file "$PASSPHRASE_FILE"
22
+ enigma setup --passphrase-file "$PASSPHRASE_FILE" --client auto --connect-installed --overwrite
23
+ enigma drive health --passphrase-file "$PASSPHRASE_FILE"
24
+ enigma status --passphrase-file "$PASSPHRASE_FILE"
25
+ enigma remember --passphrase-file "$PASSPHRASE_FILE" --text-file ./memory.txt
26
+ enigma search --passphrase-file "$PASSPHRASE_FILE" --query "project context"
27
+ enigma context --passphrase-file "$PASSPHRASE_FILE" --query "project context" --optimize
26
28
  enigma verify --export ./.enigma/export.json
27
29
  ```
28
30
 
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.
31
+ One command connects every installed client: `enigma setup --passphrase-file "$HOME/.enigma/passphrase" --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. Normal setup is encrypted and requires `ENIGMA_PASSPHRASE` or `--passphrase-file`; never put the passphrase itself in shell arguments. `enigma drive health` reports a SMART-style memory-drive health packet from local metadata only. No setup command prints raw memory plaintext.
32
+
33
+ Run setup or quickstart before using `enigma doctor` as the final green check. Doctor reads existing client configs as well as the local environment, so an already-present `generic-mcp` or other MCP config can make doctor red on a fresh install if its `ENIGMA_BUNDLE` points to a bundle that does not exist yet, or to a different bundle than the one passed to doctor. That is expected first-run connector state, not an npm install failure. After securely creating `./.enigma/passphrase`, use `enigma quickstart --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase --overwrite` or `enigma setup --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase --overwrite`, then rerun `enigma doctor --bundle ./.enigma/bundle.json`.
30
34
 
31
35
  For a single client, or to preview before writing, use `enigma connect <client> --dry-run` and then drop `--dry-run`.
32
36
 
@@ -68,13 +72,13 @@ enigma connect generic-mcp
68
72
  Optional setup-time planning for installed/config-present connector targets remains available:
69
73
 
70
74
  ```sh
71
- enigma setup --client auto --overwrite
75
+ enigma setup --passphrase-file "$HOME/.enigma/passphrase" --client auto --overwrite
72
76
  ```
73
77
 
74
78
  Use the explicit setup-time write flag only when you want setup to write all installed/config-present client configs it discovers:
75
79
 
76
80
  ```sh
77
- enigma setup --connect-installed --overwrite
81
+ enigma setup --passphrase-file "$HOME/.enigma/passphrase" --connect-installed --overwrite
78
82
  ```
79
83
 
80
84
  `--connect-installed` skips missing client configs instead of creating every default client config. It is for installed/config-present clients only. Existing `enigma setup --write-connectors` behavior for explicit/default clients is unchanged.
@@ -107,7 +111,7 @@ Connector writes are semantic and idempotent. Enigma preserves unrelated client
107
111
 
108
112
  ## Copy-paste MCP snippets
109
113
 
110
- Use an absolute bundle path. The MCP process inherits client environment in some apps and not in others; setting `ENIGMA_BUNDLE` directly in the entry is the portable path. The command defaults to `enigma-mcp`; if a GUI app cannot find shell-installed binaries, render an absolute command with `--mcp-command` (alias: `--command`).
114
+ Use an absolute bundle path. The MCP process inherits client environment in some apps and not in others; setting `ENIGMA_BUNDLE` directly in the entry is the portable path. For an encrypted bundle, arrange for the client process to receive `ENIGMA_PASSPHRASE` from an approved OS credential manager or secure launcher. Never put its value in MCP JSON, source, documentation, or shell arguments. The command defaults to `enigma-mcp`; if a GUI app cannot find shell-installed binaries, render an absolute command with `--mcp-command` (alias: `--command`).
111
115
 
112
116
  Claude Desktop:
113
117
 
@@ -8,25 +8,27 @@ For most developers, start with the installed CLI before reading the SDK interna
8
8
 
9
9
  ```sh
10
10
  npm install -g enigma-memory
11
- enigma init
12
- enigma setup --client auto --connect-installed --overwrite
13
- enigma drive health
14
- enigma status
15
- enigma remember --text-file ./memory.txt
16
- enigma search --query "project context"
17
- enigma context --query "project context" --optimize
11
+ PASSPHRASE_FILE="$HOME/.enigma/passphrase"
12
+ test -s "$PASSPHRASE_FILE" || { printf '%s\n' 'Create the protected passphrase file before setup.' >&2; exit 1; }
13
+ enigma init --passphrase-file "$PASSPHRASE_FILE"
14
+ enigma setup --passphrase-file "$PASSPHRASE_FILE" --client auto --connect-installed --overwrite
15
+ enigma drive health --passphrase-file "$PASSPHRASE_FILE"
16
+ enigma status --passphrase-file "$PASSPHRASE_FILE"
17
+ enigma remember --passphrase-file "$PASSPHRASE_FILE" --text-file ./memory.txt
18
+ enigma search --passphrase-file "$PASSPHRASE_FILE" --query "project context"
19
+ enigma context --passphrase-file "$PASSPHRASE_FILE" --query "project context" --optimize
18
20
  enigma verify --export ./.enigma/export.json
19
21
  ```
20
22
 
21
- `enigma init` creates the local `.enigma` workspace, bundle, and proof artifacts with no provider or cloud credentials. `enigma setup --client auto --connect-installed --overwrite` configures the drive and writes the `mcpServers.enigma` entry into every installed/config-present client it detects, skipping clients that are not installed; preview with `--dry-run` first. `enigma drive health` reports a SMART-style memory-drive health packet (freshness, duplicate rate, 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. Neither setup command prints raw memory plaintext. Treat provider-native memory as non-canonical cache only; the local Enigma vault is canonical.
23
+ `enigma init` creates an encrypted local `.enigma` workspace, bundle, and proof artifacts with no provider or cloud credentials; it requires a local passphrase through `ENIGMA_PASSPHRASE` or `--passphrase-file`. `enigma setup --passphrase-file "$HOME/.enigma/passphrase" --client auto --connect-installed --overwrite` configures the drive and writes the `mcpServers.enigma` entry into every installed/config-present client it detects, skipping clients that are not installed; preview with `--dry-run` first. Never place the passphrase itself in shell arguments.
22
24
 
23
25
  Optional public test-drive loop:
24
26
 
25
27
  ```sh
26
- npx --yes --package enigma-memory enigma test-drive --overwrite
28
+ npx --yes --package enigma-memory enigma test-drive --insecure-dev --overwrite
27
29
  ```
28
30
 
29
- `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.
31
+ `enigma test-drive --insecure-dev --overwrite` is an **INSECURE, EVALUATION-ONLY** disposable local exercise. It does not call external providers, contact hosted Enigma SaaS, require provider/cloud credentials, create accounts, or write third-party client configs, but its unencrypted keyring has no at-rest confidentiality and must not hold normal data.
30
32
 
31
33
  ## Copyable starting points
32
34
 
@@ -54,8 +56,8 @@ The example app prints ids, counts, roots, and verification status only. It does
54
56
  The CI example installs Node 24, installs `enigma-memory` into a disposable npm project, exposes the package benchmark script, then runs:
55
57
 
56
58
  ```sh
57
- npx enigma test-drive --overwrite
58
- npx enigma setup --overwrite
59
+ npx enigma test-drive --insecure-dev --overwrite # INSECURE, EVALUATION ONLY
60
+ npx enigma setup --passphrase-file ./.enigma/passphrase --overwrite
59
61
  npx enigma doctor
60
62
  npm run benchmark:memory-suite -- --out benchmark-report.json
61
63
  ```
@@ -119,7 +121,7 @@ This path is intentionally copyable: npm install, run a local test drive, genera
119
121
 
120
122
  ## MCP client loop
121
123
 
122
- 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.
124
+ The same installed package can be used by Claude Desktop, Cursor, Kimi Code, or any generic MCP client. The smooth path is one encrypted local setup plus a dry-run connector preview: securely create `./.enigma/passphrase`, run `enigma setup --passphrase-file ./.enigma/passphrase --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.
123
125
 
124
126
  Claude Desktop:
125
127
 
@@ -30,19 +30,21 @@ Conformant integrations must expose or document these commands in a way a review
30
30
  ### Baseline local memory commands
31
31
 
32
32
  ```sh
33
- enigma test-drive --overwrite
34
- enigma setup --overwrite
33
+ PASSPHRASE_FILE="$HOME/.enigma/passphrase"
34
+ test -s "$PASSPHRASE_FILE" || { printf '%s\n' 'Create the protected passphrase file before normal conformance setup.' >&2; exit 1; }
35
+ enigma test-drive --insecure-dev --overwrite # INSECURE, EVALUATION ONLY
36
+ enigma setup --passphrase-file "$PASSPHRASE_FILE" --overwrite
35
37
  enigma doctor
36
- enigma remember --text-file ./public-safe-memory.txt
37
- enigma search --query "public-safe query"
38
- enigma context --query "public-safe query" --optimize
38
+ enigma remember --passphrase-file "$PASSPHRASE_FILE" --text-file ./public-safe-memory.txt
39
+ enigma search --passphrase-file "$PASSPHRASE_FILE" --query "public-safe query"
40
+ enigma context --passphrase-file "$PASSPHRASE_FILE" --query "public-safe query" --optimize
39
41
  enigma verify --export ./.enigma/export.json
40
42
  ```
41
43
 
42
44
  Requirements:
43
45
 
44
- - `test-drive` must be zero-credential and local-only.
45
- - `setup` must not write third-party client configs unless an explicit write flag is used.
46
+ - `test-drive --insecure-dev` is an explicit **INSECURE, EVALUATION-ONLY** disposable exercise with no at-rest confidentiality; it must not contain normal data.
47
+ - Normal `setup` must require `ENIGMA_PASSPHRASE` or `--passphrase-file`, create an encrypted keyring, and not write third-party client configs unless an explicit write flag is used.
46
48
  - `doctor` must not print secrets, local account names, provider tokens, or raw private memory.
47
49
  - `remember`, `search`, and `context` examples must use public-safe sample text only.
48
50
  - `verify` must check receipt-chain consistency and fail closed on malformed exports.
@@ -50,8 +52,8 @@ Requirements:
50
52
  ### Connector commands
51
53
 
52
54
  ```sh
53
- enigma setup --client auto --overwrite
54
- enigma setup --connect-installed --overwrite
55
+ enigma setup --passphrase-file "$HOME/.enigma/passphrase" --client auto --overwrite
56
+ enigma setup --passphrase-file "$HOME/.enigma/passphrase" --connect-installed --overwrite
55
57
  enigma connect <connector-id> --dry-run
56
58
  enigma connect <connector-id>
57
59
  ```
@@ -6,7 +6,7 @@ Hosted cloud and BYOC operation are waitlist/operator-deploy only; they require
6
6
  ## Requirements
7
7
 
8
8
  - Node.js `>=24`
9
- - A local filesystem path for the Enigma vault bundle
9
+ - A local filesystem path for the Enigma vault bundle and a passphrase supplied through `ENIGMA_PASSPHRASE` or a user-readable-only passphrase file
10
10
  - No database, provider credential, cloud credential, npm publishing token, package registry account, or hosted Enigma account for the local test-drive or setup paths
11
11
  - Git only for the advanced source-checkout path
12
12
  - Optional: Docker for source-checkout containerized relay/gateway operation
@@ -17,17 +17,42 @@ Use the published package as the primary path:
17
17
 
18
18
  ```sh
19
19
  npm install -g enigma-memory
20
- enigma init
21
- enigma setup --client auto --connect-installed --overwrite
22
- enigma drive health
23
- enigma status
24
- enigma remember --text-file ./memory.txt
25
- enigma search --query "project context"
26
- enigma context --query "project context" --optimize
20
+ PASSPHRASE_FILE="$HOME/.enigma/passphrase"
21
+ test -s "$PASSPHRASE_FILE" || { printf '%s\n' 'Create $HOME/.enigma/passphrase with an approved secret manager or secure editor, then restrict it to the current user.' >&2; exit 1; }
22
+ enigma init --passphrase-file "$PASSPHRASE_FILE"
23
+ enigma setup --passphrase-file "$PASSPHRASE_FILE" --client auto --connect-installed --overwrite
24
+ enigma drive health --passphrase-file "$PASSPHRASE_FILE"
25
+ enigma status --passphrase-file "$PASSPHRASE_FILE"
26
+ enigma remember --passphrase-file "$PASSPHRASE_FILE" --text-file ./memory.txt
27
+ enigma search --passphrase-file "$PASSPHRASE_FILE" --query "project context"
28
+ enigma context --passphrase-file "$PASSPHRASE_FILE" --query "project context" --optimize
27
29
  enigma verify --export ./.enigma/export.json
28
30
  ```
29
31
 
30
- `enigma init` is the credential-free first run that creates the local `.enigma` workspace, bundle, and proof artifacts. `enigma setup --client auto --connect-installed --overwrite` then configures the drive and writes the `mcpServers.enigma` entry into every installed/config-present client it detects; it skips clients that are not installed and never creates configs from scratch. Preview with `--dry-run` first to see which clients will be written. Both commands emit deterministic, public-safe JSON without printing raw memory plaintext, and both run on Windows PowerShell via the `enigma.cmd` shim the npm global install adds.
32
+ `enigma init` is the encrypted first run: it requires `ENIGMA_PASSPHRASE` or `--passphrase-file`, then creates the local `.enigma` workspace, encrypted bundle, and proof artifacts. `enigma setup --passphrase-file "$HOME/.enigma/passphrase" --client auto --connect-installed --overwrite` configures the drive and writes the `mcpServers.enigma` entry into every installed/config-present client it detects; it skips clients that are not installed and never creates configs from scratch. Preview with `--dry-run` first to see which clients will be written. Both commands emit deterministic, public-safe JSON without printing raw memory plaintext, and both run on Windows PowerShell via the `enigma.cmd` shim the npm global install adds.
33
+
34
+ ### Keyring Security & At-Rest Confidentiality Note
35
+
36
+ - **Encrypted default (`local_secret_encrypted`)**: Normal `enigma init`, `enigma setup`, and `enigma quickstart` require `ENIGMA_PASSPHRASE` or `--passphrase-file <path>`. Prefer a user-readable-only file created through an approved secret manager or secure editor; never put the passphrase itself in command arguments.
37
+ - **Insecure evaluation mode (`local_secret`)**: `--insecure-dev` is an explicit, **INSECURE, EVALUATION-ONLY** escape hatch for disposable data. It stores an unencrypted keyring (`unencrypted: true`), provides no at-rest confidentiality, and must not be used for normal or persistent data.
38
+
39
+ Encrypted + Solana-connected package path:
40
+
41
+ ```sh
42
+ npm install -g enigma-memory
43
+ PASSPHRASE_FILE="$HOME/.enigma/passphrase"
44
+ test -s "$PASSPHRASE_FILE" || { printf '%s\n' 'Create $HOME/.enigma/passphrase securely before continuing.' >&2; exit 1; }
45
+ enigma quickstart --bundle "$HOME/.enigma/bundle.json" --passphrase-file "$PASSPHRASE_FILE" --overwrite
46
+ enigma-terminal --exec "solana status --cluster devnet"
47
+ enigma chain anchor-bundle --bundle "$HOME/.enigma/bundle.json" --cluster devnet --out "$HOME/.enigma/anchor-batch.json"
48
+ enigma chain submit-solana --file "$HOME/.enigma/anchor-batch.json" --cluster devnet
49
+ ```
50
+
51
+ The final command is a Solana Memo dry-run by default. To write on-chain, pass `--execute --keypair <funded-solana-cli-keypair.json>`. The memo payload is a compact public proof reference derived from local bundle commitment roots; raw memory, prompts, key material, passphrases, and bundle ciphertext are never placed on-chain.
52
+
53
+ Run setup or quickstart before treating `enigma doctor` as a fully green install check. Doctor checks Node/package state, local paths, schemas, MCP command naming, and connector configs. On a fresh install it can return `ok:false` when an existing MCP client config points at a bundle that has not been initialized yet, or at a different bundle than the one you are checking. That is expected first-run state, not a package install failure. After securely creating `./.enigma/passphrase`, run `enigma quickstart --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase --overwrite` or `enigma setup --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase --overwrite`, then `enigma doctor --bundle ./.enigma/bundle.json`.
54
+
55
+ For the one-off npm path, create the same protected passphrase file, then run `npx --yes --package enigma-memory enigma quickstart --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase --overwrite` before `npx --yes --package enigma-memory enigma doctor --bundle ./.enigma/bundle.json`. Running npx doctor first can report a red generic-MCP connector if an existing client config names a not-yet-created bundle.
31
56
 
32
57
  `enigma drive health` reports a SMART-style memory-drive health packet — freshness, duplicate rate, tombstone backlog, stale derived artifacts, receipt coverage, and connector health — from local metadata only, with no network calls or private payloads. It is part of the Memory Drive surface in this release; `enigma status` and `enigma doctor` cover local passport counts, roots, and connector readiness in every build.
33
58
 
@@ -36,8 +61,9 @@ The local Enigma vault is the canonical memory passport. Provider-native memory
36
61
  Optional public test drive without a global install:
37
62
 
38
63
  ```sh
39
- npx --yes --package enigma-memory enigma test-drive --overwrite
64
+ npx --yes --package enigma-memory enigma test-drive --insecure-dev --overwrite
40
65
  ```
66
+ This command is **INSECURE, EVALUATION ONLY**: the isolated test drive is disposable and has no at-rest confidentiality. Normal setup uses an encrypted passphrase file as shown above.
41
67
 
42
68
  ## Source checkout versus package install
43
69
 
@@ -51,7 +77,7 @@ From the repository root, use the local installer in preview mode first:
51
77
 
52
78
  ```sh
53
79
  npm run install:local
54
- npm run install:local -- --init-vault --bundle ./.enigma/bundle.json
80
+ npm run install:local -- --init-vault --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase
55
81
  ```
56
82
 
57
83
  `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.
@@ -59,8 +85,9 @@ npm run install:local -- --init-vault --bundle ./.enigma/bundle.json
59
85
  To perform the local global install from the checkout and initialize a local vault bundle:
60
86
 
61
87
  ```sh
62
- npm run install:local -- --execute --init-vault --bundle ./.enigma/bundle.json
63
- enigma doctor
88
+ test -s ./.enigma/passphrase || { printf '%s\n' 'Create ./.enigma/passphrase securely before continuing.' >&2; exit 1; }
89
+ npm run install:local -- --execute --init-vault --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase
90
+ enigma doctor --bundle ./.enigma/bundle.json
64
91
  enigma --help
65
92
  enigma demo cross-model
66
93
  enigma-verify --help
@@ -72,8 +99,8 @@ Equivalent explicit source-checkout steps:
72
99
 
73
100
  ```sh
74
101
  npm install -g .
75
- enigma init --bundle ./.enigma/bundle.json --subject local-user --display-name "Local user"
76
- enigma doctor
102
+ enigma init --bundle ./.enigma/bundle.json --passphrase-file ./.enigma/passphrase --subject local-user --display-name "Local user"
103
+ enigma doctor --bundle ./.enigma/bundle.json
77
104
  enigma --help
78
105
  enigma demo cross-model
79
106
  enigma-verify --help
@@ -99,10 +126,12 @@ Use this when you want to inspect each step behind the setup-first path:
99
126
  mkdir -p .enigma
100
127
  ENIGMA_DEMO_MEMORY_FILE=/absolute/path/to/tenant-approved-smoke-memory.txt
101
128
  test -f "$ENIGMA_DEMO_MEMORY_FILE"
102
- enigma init --bundle ./.enigma/bundle.json --subject local-user --display-name "Local user"
103
- enigma remember --bundle ./.enigma/bundle.json --text-file "$ENIGMA_DEMO_MEMORY_FILE" --purpose user_memory --tags local
104
- enigma context --bundle ./.enigma/bundle.json --query "local context" --purpose local_context --out ./.enigma/context-pack.json
105
- enigma export --bundle ./.enigma/bundle.json --out ./.enigma/export.json
129
+ ENIGMA_PASSPHRASE_FILE=./.enigma/passphrase
130
+ test -s "$ENIGMA_PASSPHRASE_FILE" || { printf '%s\n' 'Create ./.enigma/passphrase securely before continuing.' >&2; exit 1; }
131
+ enigma init --bundle ./.enigma/bundle.json --passphrase-file "$ENIGMA_PASSPHRASE_FILE" --subject local-user --display-name "Local user"
132
+ enigma remember --bundle ./.enigma/bundle.json --passphrase-file "$ENIGMA_PASSPHRASE_FILE" --text-file "$ENIGMA_DEMO_MEMORY_FILE" --purpose user_memory --tags local
133
+ enigma context --bundle ./.enigma/bundle.json --passphrase-file "$ENIGMA_PASSPHRASE_FILE" --query "local context" --purpose local_context --out ./.enigma/context-pack.json
134
+ enigma export --bundle ./.enigma/bundle.json --passphrase-file "$ENIGMA_PASSPHRASE_FILE" --out ./.enigma/export.json
106
135
  enigma verify --export ./.enigma/export.json
107
136
  ```
108
137
 
@@ -112,10 +141,12 @@ Windows PowerShell equivalent:
112
141
  New-Item -ItemType Directory -Force .enigma
113
142
  $env:ENIGMA_DEMO_MEMORY_FILE='C:\path\to\tenant-approved-smoke-memory.txt'
114
143
  if (-not (Test-Path $env:ENIGMA_DEMO_MEMORY_FILE)) { throw 'Set ENIGMA_DEMO_MEMORY_FILE to a tenant-approved smoke file first.' }
115
- enigma init --bundle .\.enigma\bundle.json --subject local-user --display-name "Local user"
116
- enigma remember --bundle .\.enigma\bundle.json --text-file $env:ENIGMA_DEMO_MEMORY_FILE --purpose user_memory --tags local
117
- enigma context --bundle .\.enigma\bundle.json --query "local context" --purpose local_context --out .\.enigma\context-pack.json
118
- enigma export --bundle .\.enigma\bundle.json --out .\.enigma\export.json
144
+ $env:ENIGMA_PASSPHRASE_FILE='.\.enigma\passphrase'
145
+ if (-not (Test-Path -LiteralPath $env:ENIGMA_PASSPHRASE_FILE -PathType Leaf)) { throw 'Create the passphrase file securely before continuing.' }
146
+ enigma init --bundle .\.enigma\bundle.json --passphrase-file $env:ENIGMA_PASSPHRASE_FILE --subject local-user --display-name "Local user"
147
+ enigma remember --bundle .\.enigma\bundle.json --passphrase-file $env:ENIGMA_PASSPHRASE_FILE --text-file $env:ENIGMA_DEMO_MEMORY_FILE --purpose user_memory --tags local
148
+ enigma context --bundle .\.enigma\bundle.json --passphrase-file $env:ENIGMA_PASSPHRASE_FILE --query "local context" --purpose local_context --out .\.enigma\context-pack.json
149
+ enigma export --bundle .\.enigma\bundle.json --passphrase-file $env:ENIGMA_PASSPHRASE_FILE --out .\.enigma\export.json
119
150
  enigma verify --export .\.enigma\export.json
120
151
  ```
121
152
 
@@ -180,7 +211,7 @@ Npm-first connector flow — one command connects every installed/config-present
180
211
 
181
212
  ```sh
182
213
  npm install -g enigma-memory
183
- enigma setup --client auto --connect-installed --overwrite
214
+ enigma setup --passphrase-file "$HOME/.enigma/passphrase" --client auto --connect-installed --overwrite
184
215
  ```
185
216
 
186
217
  `--connect-installed` detects installed/config-present clients (Claude Desktop, Cursor, Kimi Code, VS Code/Cline, Roo, OpenCode, generic MCP) and writes only those existing client configs; missing client configs are reported and skipped. To preview a single client without writing, or to connect just one client later, use `enigma connect <client> --dry-run` and then drop `--dry-run`.
@@ -502,9 +533,11 @@ CLI/verifier:
502
533
  ```sh
503
534
  ENIGMA_DEMO_MEMORY_FILE=/absolute/path/to/tenant-approved-smoke-memory.txt
504
535
  test -f "$ENIGMA_DEMO_MEMORY_FILE"
505
- enigma init --bundle ./.enigma/bundle.json
506
- enigma remember --bundle ./.enigma/bundle.json --text-file "$ENIGMA_DEMO_MEMORY_FILE" --purpose verification
507
- enigma export --bundle ./.enigma/bundle.json --out ./.enigma/export.json
536
+ ENIGMA_PASSPHRASE_FILE=./.enigma/passphrase
537
+ test -s "$ENIGMA_PASSPHRASE_FILE" || { printf '%s\n' 'Create ./.enigma/passphrase securely before continuing.' >&2; exit 1; }
538
+ enigma init --bundle ./.enigma/bundle.json --passphrase-file "$ENIGMA_PASSPHRASE_FILE"
539
+ enigma remember --bundle ./.enigma/bundle.json --passphrase-file "$ENIGMA_PASSPHRASE_FILE" --text-file "$ENIGMA_DEMO_MEMORY_FILE" --purpose verification
540
+ enigma export --bundle ./.enigma/bundle.json --passphrase-file "$ENIGMA_PASSPHRASE_FILE" --out ./.enigma/export.json
508
541
  enigma verify --export ./.enigma/export.json
509
542
  ```
510
543
 
@@ -517,7 +550,7 @@ printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion
517
550
  Connector/importer/relay/gateway checks:
518
551
 
519
552
  ```sh
520
- enigma doctor
553
+ enigma doctor --bundle ./.enigma/bundle.json
521
554
  enigma import chatgpt --file ./chatgpt-export.json --out ./enigma-import-report.json
522
555
  enigma capsule export --file ./enigma-import-report.json --out ./enigma-capsule.json
523
556
  enigma capsule import --file ./enigma-capsule.json --bundle "$PWD/.enigma/bundle.json"
@@ -8,13 +8,14 @@ Use the published package path when you want the current supported local install
8
8
 
9
9
  ```sh
10
10
  npm install -g enigma-memory
11
- enigma test-drive --dry-run
12
- enigma setup --overwrite
11
+ test -s "$HOME/.enigma/passphrase" || { printf '%s\n' 'Create the protected passphrase file before setup.' >&2; exit 1; }
12
+ enigma test-drive --dry-run --insecure-dev # INSECURE, EVALUATION ONLY
13
+ enigma setup --passphrase-file "$HOME/.enigma/passphrase" --overwrite
13
14
  enigma doctor
14
15
  enigma connect <client> --dry-run
15
16
  ```
16
17
 
17
- The package exposes the CLI bins `enigma`, `enigma-verify`, `enigma-mcp`, `enigma-relay`, `enigma-gateway`, and `enigma-native-host`. Node.js `>=24` is required. The installer smoke path keeps `enigma test-drive --dry-run` and `enigma connect <client> --dry-run` non-mutating; `enigma setup --overwrite` writes Enigma-controlled local artifacts only and does not write third-party app configs. It does not prove provider deletion, model forgetting, hosted availability, compliance certification, savings, or provider-native memory removal.
18
+ The package exposes the CLI bins `enigma`, `enigma-verify`, `enigma-mcp`, `enigma-relay`, `enigma-gateway`, and `enigma-native-host`. Node.js `>=24` is required. The installer smoke path labels `enigma test-drive --dry-run --insecure-dev` as **INSECURE, EVALUATION ONLY**; normal `enigma setup --passphrase-file "$HOME/.enigma/passphrase" --overwrite` writes an encrypted Enigma-controlled bundle and does not write third-party app configs. It does not prove provider deletion, model forgetting, hosted availability, compliance certification, savings, or provider-native memory removal.
18
19
 
19
20
  ## Tier 2: generated source installer assets
20
21
 
@@ -32,9 +33,9 @@ node scripts/build-installer-assets.mjs --out-dir dist/installer-assets --write
32
33
 
33
34
  Generated asset paths are listed in deterministic code-point lexical order:
34
35
 
35
- - `homebrew/enigma-memory.rb` — Homebrew formula draft. It is not submitted to a tap by the generator; release engineering must replace the source archive URL and SHA before any tap workflow. Its test metadata exercises `enigma test-drive --dry-run`, `enigma setup --dry-run`, and `enigma doctor`, then prints the next client-connect preview command.
36
- - `install-linux.sh` — POSIX shell source installer. It previews by default and only mutates global npm/local setup files when called with `--execute`. Its preview includes package install, `enigma test-drive --dry-run`, `enigma setup --bundle <bundle> --overwrite`, `enigma doctor`, and `enigma connect <client> --dry-run` as the next client-connect command.
37
- - `install-windows.ps1` — PowerShell source installer. It previews by default and only runs `npm install -g enigma-memory`, `enigma test-drive --dry-run`, `enigma setup --bundle <bundle> --overwrite`, and `enigma doctor` when called with `-Execute`; it then prints `enigma connect <client> --dry-run` as the next client-connect command.
36
+ - `homebrew/enigma-memory.rb` — Homebrew formula draft. Its disposable test metadata uses explicit `--insecure-dev` and labels it **INSECURE, EVALUATION ONLY**; normal setup documentation requires a passphrase file.
37
+ - `install-linux.sh` — POSIX shell source installer. It previews by default and only mutates global npm/local setup files when called with `--execute`. Execute mode requires `--passphrase-file <path>` (default `./.enigma/passphrase`) and passes it explicitly to encrypted setup.
38
+ - `install-windows.ps1` — PowerShell source installer. It previews by default and only runs setup with `-Execute`; execute mode requires a non-empty `-PassphraseFile` (default `.\.enigma\passphrase`) and passes it explicitly to encrypted setup.
38
39
  - `installer-assets-manifest.json` — deterministic public manifest with checksums for the generated source assets.
39
40
  - `macos-pkgbuild/README.md` — macOS package source plan and blockers, not a signed package.
40
41
  - `macos-pkgbuild/manifest.json` — macOS package source metadata and blockers, not a signed package.
@@ -62,7 +63,7 @@ Until those blockers are cleared, use npm or generated source scripts only.
62
63
 
63
64
  ## Homebrew path
64
65
 
65
- The formula generated under `homebrew/enigma-memory.rb` is a draft for a future tap workflow. It records the intended package name, license, Node dependency, command shims, and installer smoke test shape: `enigma test-drive --dry-run`, `enigma setup --dry-run`, `enigma doctor`, and the printed next command `enigma connect <client> --dry-run`. Before publication, release engineering must replace the placeholder tarball URL and SHA with a real release archive and confirm the formula installs only the intended package files.
66
+ The formula generated under `homebrew/enigma-memory.rb` is a draft for a future tap workflow. It records the intended package name, license, Node dependency, command shims, and installer smoke shape. Formula-only dry runs use explicit `--insecure-dev` and are labeled **INSECURE, EVALUATION ONLY**; normal setup uses `--passphrase-file "$HOME/.enigma/passphrase"`. Before publication, release engineering must replace the placeholder tarball URL and SHA with a real release archive and confirm the formula installs only the intended package files.
66
67
 
67
68
  ## Desktop tray model boundary
68
69