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.
- package/README.md +76 -24
- package/apps/cli/bin/enigma-desktop.mjs +140 -0
- package/apps/cli/bin/enigma-terminal.mjs +78 -0
- package/apps/cli/bin/enigma.mjs +1923 -285
- package/apps/desktop/electron-main.cjs +217 -0
- package/apps/desktop/package.json +12 -0
- package/apps/desktop/src/app.js +264 -7
- package/apps/desktop/src/index.html +3514 -1373
- package/apps/desktop/src/launch-electron.mjs +51 -0
- package/apps/desktop/src/server.mjs +2914 -0
- package/apps/desktop/src/styles.css +2972 -260
- package/apps/desktop/src/zk-browser-prove.mjs +53 -0
- package/apps/desktop/src/zk-state.mjs +1789 -0
- package/apps/gateway/bin/enigma-gateway.mjs +102 -5
- package/apps/gateway/src/server.mjs +271 -8
- package/apps/ios/EnigmaCore/Package.swift +12 -0
- package/apps/ios/EnigmaCore/Sources/EnigmaCore/EnigmaAPIClient.swift +227 -0
- package/apps/ios/EnigmaCore/Sources/EnigmaCore/Models.swift +278 -0
- package/apps/ios/EnigmaCore/Sources/EnigmaCore/PKCE.swift +96 -0
- package/apps/ios/EnigmaCore/Sources/EnigmaCore/PrivacyMinimizer.swift +187 -0
- package/apps/ios/EnigmaCore/Sources/EnigmaCore/ToolModels.swift +129 -0
- package/apps/ios/EnigmaCore/Tests/EnigmaCoreTests/EnigmaCoreTests.swift +42 -0
- package/apps/ios/EnigmaIOS/Enigma/AppModel.swift +346 -0
- package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AccentColor.colorset/Contents.json +12 -0
- package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AppIcon.appiconset/Contents.json +11 -0
- package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/AppIcon.appiconset/EnigmaAppIcon.png +0 -0
- package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/Contents.json +3 -0
- package/apps/ios/EnigmaIOS/Enigma/Assets.xcassets/LaunchBackground.colorset/Contents.json +12 -0
- package/apps/ios/EnigmaIOS/Enigma/ChatView.swift +181 -0
- package/apps/ios/EnigmaIOS/Enigma/CouncilView.swift +78 -0
- package/apps/ios/EnigmaIOS/Enigma/CreateView.swift +152 -0
- package/apps/ios/EnigmaIOS/Enigma/EnigmaApp.swift +52 -0
- package/apps/ios/EnigmaIOS/Enigma/Info.plist +52 -0
- package/apps/ios/EnigmaIOS/Enigma/NaturalLanguagePrivacyTagger.swift +26 -0
- package/apps/ios/EnigmaIOS/Enigma/OAuthClient.swift +321 -0
- package/apps/ios/EnigmaIOS/Enigma/OnboardingView.swift +105 -0
- package/apps/ios/EnigmaIOS/Enigma/PrivateVaultView.swift +275 -0
- package/apps/ios/EnigmaIOS/Enigma/SecureStore.swift +76 -0
- package/apps/ios/EnigmaIOS/Enigma/SettingsView.swift +60 -0
- package/apps/ios/EnigmaIOS/Enigma/Theme.swift +80 -0
- package/apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/project.pbxproj +211 -0
- package/apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/xcshareddata/xcschemes/Enigma.xcscheme +23 -0
- package/apps/native-host/README.md +19 -8
- package/apps/native-host/bin/enigma-native-host.mjs +229 -13
- package/apps/relay/bin/enigma-relay.mjs +103 -5
- package/apps/relay/src/federation-runtime.mjs +618 -0
- package/apps/relay/src/server.mjs +310 -9
- package/apps/verifier/bin/enigma-verify.mjs +327 -11
- package/cortex-v3/circuits/build/intent_vk_bytes.json +35 -0
- package/cortex-v3/circuits/build/sale_vk_bytes.json +35 -0
- package/cortex-v3/circuits/build/vk_bytes.json +32 -0
- package/cortex-v3/proving-assets.json +64 -0
- package/cortex-v3/zk/BUILD-CONTRACT.md +87 -0
- package/cortex-v3/zk/action-transition-vk.json +119 -0
- package/cortex-v3/zk/alias-adversarial.test.mjs +220 -0
- package/cortex-v3/zk/groth16-verify-child.mjs +17 -0
- package/cortex-v3/zk/intent-witness.mjs +365 -0
- package/cortex-v3/zk/intent-witness.test.mjs +485 -0
- package/cortex-v3/zk/proving-assets.mjs +203 -0
- package/cortex-v3/zk/sale-witness.mjs +783 -0
- package/cortex-v3/zk/sale-witness.test.mjs +784 -0
- package/cortex-v3/zk/sealed-sale-release-vk.json +119 -0
- package/cortex-v3/zk/settlement-evidence.mjs +722 -0
- package/cortex-v3/zk/setup-intent.mjs +688 -0
- package/cortex-v3/zk/setup-sale.mjs +666 -0
- package/cortex-v3/zk/setup.mjs +594 -0
- package/cortex-v3/zk/witness.mjs +184 -0
- package/cortex-v3/zk/zk-codec.mjs +232 -0
- package/cortex-v3/zk/zk-codec.test.mjs +293 -0
- package/cortex-v3/zk/zk-settle.mjs +370 -0
- package/cortex-v3/zk/zk-tree.mjs +256 -0
- package/cortex-v3/zk/zk-tree.test.mjs +419 -0
- package/deploy/docker-compose.local-production-simulation.yml +36 -0
- package/docs/browser-extension-install.md +8 -6
- package/docs/client-connectors.md +15 -11
- package/docs/developer-ecosystem.md +15 -13
- package/docs/enigma-memory-ready-conformance.md +11 -9
- package/docs/install-anywhere.md +61 -28
- package/docs/installers-and-desktop.md +8 -7
- package/docs/novelty-invention-candidates.md +161 -161
- package/docs/proof-network-claim-boundaries.md +320 -318
- package/examples/01-quickstart-agent/index.mjs +49 -0
- package/examples/01_agent_memory_quickstart.mjs +57 -0
- package/examples/02-multi-agent-swarm/index.mjs +57 -0
- package/examples/02_cross_model_passport.mjs +64 -0
- package/examples/03-langchain-memory/index.mjs +41 -0
- package/examples/03_poseidon_commitment_verification.mjs +71 -0
- package/examples/04-python-trading-agent/trader.py +49 -0
- package/examples/README.md +27 -0
- package/examples/ci/github-actions.yml +7 -2
- package/package.json +142 -11
- package/packages/adapters/PACKAGE_CONTRACT.md +1 -1
- package/packages/connectors/src/index.js +196 -4
- package/packages/connectors/swarm-router.mjs +168 -0
- package/packages/core/src/index.js +248 -1
- package/packages/core/src/version.mjs +7 -0
- package/packages/dev-tools/package.json +19 -0
- package/packages/dev-tools/src/index.js +4 -0
- package/packages/dev-tools/src/memory-benchmark-suite.js +112 -0
- package/packages/dev-tools/src/swarm-simulator.js +101 -0
- package/packages/dev-tools/src/vault-inspector.js +114 -0
- package/packages/dev-tools/src/vector-benchmark.js +100 -0
- package/packages/developer-platform/src/access-credentials.js +341 -0
- package/packages/developer-platform/src/http.js +132 -0
- package/packages/developer-platform/src/index.js +4 -0
- package/packages/developer-platform/src/usage-http.js +60 -0
- package/packages/developer-platform/src/usage.js +295 -0
- package/packages/enclave-runtime/attestation.mjs +159 -0
- package/packages/enclave-runtime/index.mjs +47 -0
- package/packages/enclave-runtime/session-manager.mjs +253 -0
- package/packages/enclave-runtime/zeroization-proof.mjs +227 -0
- package/packages/enigma-reflex/package.json +14 -0
- package/packages/enigma-reflex/src/index.js +204 -0
- package/packages/enigma-reflex/training/generate-dataset.mjs +40 -0
- package/packages/enigma-reflex/training/requirements.txt +8 -0
- package/packages/enigma-reflex/training/train.py +314 -0
- package/packages/enigma-weave/LICENSE +22 -0
- package/packages/enigma-weave/UPSTREAM.json +21 -0
- package/packages/enigma-weave/package.json +14 -0
- package/packages/enigma-weave/src/index.js +286 -0
- package/packages/hosted-cloud/src/index.js +80 -5
- package/packages/importers/src/index.js +432 -0
- package/packages/inference-runtime/src/browser.js +401 -0
- package/packages/inference-runtime/src/chat.js +265 -0
- package/packages/inference-runtime/src/code.js +407 -0
- package/packages/inference-runtime/src/contracts.js +162 -0
- package/packages/inference-runtime/src/http.js +232 -0
- package/packages/inference-runtime/src/image.js +186 -0
- package/packages/inference-runtime/src/index.js +10 -0
- package/packages/inference-runtime/src/model-router.js +320 -0
- package/packages/inference-runtime/src/platform.js +125 -0
- package/packages/inference-runtime/src/privacy.js +400 -0
- package/packages/inference-runtime/src/video.js +253 -0
- package/packages/mcp-server/README.md +22 -6
- package/packages/mcp-server/bin/enigma-mcp.mjs +2 -1
- package/packages/mcp-server/src/index.js +1418 -105
- package/packages/mcp-server/src/oauth.js +561 -0
- package/packages/mcp-server/src/private-handoff.js +84 -0
- package/packages/mcp-server/src/remote-http.js +273 -0
- package/packages/mcp-server/src/remote-policy.js +72 -0
- package/packages/mcp-server/swarm-bridge.mjs +361 -0
- package/packages/mesh/index.d.ts +283 -0
- package/packages/mesh/package.json +23 -0
- package/packages/mesh/src/crypto.js +189 -0
- package/packages/mesh/src/federation-packets.js +353 -0
- package/packages/mesh/src/gossip.js +311 -0
- package/packages/mesh/src/index.js +6 -0
- package/packages/mesh/src/protocol.js +255 -0
- package/packages/mesh/src/router.js +279 -0
- package/packages/mesh/src/transport.js +306 -0
- package/packages/passport/src/index.js +426 -1
- package/packages/private-economy/src/credits-http.js +100 -0
- package/packages/private-economy/src/credits.js +447 -0
- package/packages/private-economy/src/index.js +5 -0
- package/packages/private-economy/src/payments-http.js +120 -0
- package/packages/private-economy/src/payments.js +509 -0
- package/packages/private-economy/src/x402.js +346 -0
- package/packages/proof-network/PACKAGE_CONTRACT.md +21 -0
- package/packages/rag/index.d.ts +182 -0
- package/packages/rag/models/Xenova/all-MiniLM-L6-v2/THIRD_PARTY_LICENSES.txt +207 -0
- package/packages/rag/models/Xenova/all-MiniLM-L6-v2/config.json +25 -0
- package/packages/rag/models/Xenova/all-MiniLM-L6-v2/onnx/model_quantized.onnx +0 -0
- package/packages/rag/models/Xenova/all-MiniLM-L6-v2/sha256-manifest.json +28 -0
- package/packages/rag/models/Xenova/all-MiniLM-L6-v2/tokenizer.json +30686 -0
- package/packages/rag/models/Xenova/all-MiniLM-L6-v2/tokenizer_config.json +15 -0
- package/packages/rag/package.json +27 -0
- package/packages/rag/src/blinded-search.js +109 -0
- package/packages/rag/src/bm25.js +169 -0
- package/packages/rag/src/embeddings.js +459 -0
- package/packages/rag/src/hybrid.js +76 -0
- package/packages/rag/src/index.js +38 -0
- package/packages/rag/src/reranker.js +61 -0
- package/packages/rag/src/research.js +107 -0
- package/packages/rag/src/vector-store.js +430 -0
- package/packages/rag/src/verify-model-artifacts.mjs +4 -0
- package/packages/sdk/index.d.ts +760 -0
- package/packages/sdk/package.json +33 -0
- package/packages/sdk/python/README.md +24 -0
- package/packages/sdk/python/enigma_sdk.py +250 -0
- package/packages/sdk/python/pyproject.toml +34 -0
- package/packages/sdk/python/requirements.txt +1 -0
- package/packages/sdk/python/setup.py +20 -0
- package/packages/sdk/src/federation/capability-grant.js +389 -0
- package/packages/sdk/src/federation/federation-router.js +360 -0
- package/packages/sdk/src/federation/ghostmesh-bridge.js +497 -0
- package/packages/sdk/src/federation/index.js +3 -0
- package/packages/sdk/src/index.js +1796 -0
- package/packages/sdk/src/intelligence/contradiction.js +337 -0
- package/packages/sdk/src/intelligence/decision-engine.js +155 -0
- package/packages/sdk/src/intelligence/index.js +4 -0
- package/packages/sdk/src/intelligence/ontology.js +122 -0
- package/packages/sdk/src/intelligence/temporal.js +123 -0
- package/packages/sdk/src/market-client.js +142 -0
- package/packages/sdk/src/mesh-client.js +110 -0
- package/packages/sdk/src/middleware/index.js +3 -0
- package/packages/sdk/src/middleware/langchain.js +159 -0
- package/packages/sdk/src/middleware/llamaindex.js +101 -0
- package/packages/sdk/src/middleware/vercel-ai.js +112 -0
- package/packages/sdk/src/rag-client.js +85 -0
- package/packages/sdk/src/swarm-orchestrator.js +260 -0
- package/packages/settlement/PACKAGE_CONTRACT.md +1 -1
- package/packages/snapcompact/THIRD_PARTY_LICENSES.txt +40 -0
- package/packages/snapcompact/assets/8x13-latin1.bdf +3837 -0
- package/packages/snapcompact/index.d.ts +284 -0
- package/packages/snapcompact/package.json +25 -0
- package/packages/snapcompact/src/index.js +716 -0
- package/packages/storage/PACKAGE_CONTRACT.md +1 -1
- package/packages/terminal-console/animations.mjs +240 -0
- package/packages/terminal-console/auto-anchor.mjs +220 -0
- package/packages/terminal-console/banner.mjs +91 -0
- package/packages/terminal-console/commands.mjs +459 -0
- package/packages/terminal-console/delegation.mjs +152 -0
- package/packages/terminal-console/index.mjs +5 -0
- package/packages/terminal-console/outbox.mjs +143 -0
- package/packages/terminal-console/phantom-bridge.mjs +637 -0
- package/packages/terminal-console/repl.mjs +136 -0
- package/packages/terminal-console/signer-store.mjs +130 -0
- package/packages/terminal-console/solana-rpc.mjs +214 -0
- package/packages/terminal-console/solana-transport.mjs +189 -0
- package/packages/terminal-tui/dashboard.mjs +214 -0
- package/packages/terminal-tui/index.mjs +28 -0
- package/packages/terminal-tui/merkle-tree-renderer.mjs +268 -0
- package/packages/terminal-tui/telemetry-hud.mjs +137 -0
- package/packages/vault/index.d.ts +449 -0
- package/packages/vault/package.json +27 -0
- package/packages/vault/src/e2ee.mjs +393 -0
- package/packages/vault/src/enclave.js +481 -0
- package/packages/vault/src/erasure.js +207 -0
- package/packages/vault/src/index.js +1018 -155
- package/packages/vault/src/persistence.js +307 -0
- package/packages/vault/src/poseidon.js +354 -0
- package/packages/vault/src/receipt.js +459 -0
- package/scripts/benchmark-optical-context.mjs +166 -0
- package/scripts/bootstrap-enigma.mjs +502 -0
- package/scripts/build-edge-backend-workers.mjs +20 -5
- package/scripts/build-goal-completion-audit.mjs +72 -25
- package/scripts/build-hosted-api-key-lifecycle.mjs +26 -8
- package/scripts/build-hosted-customer-lifecycle.mjs +20 -3
- package/scripts/build-hosted-probe-worker.mjs +19 -4
- package/scripts/build-installer-assets.mjs +41 -21
- package/scripts/build-operator-evidence-starter.mjs +59 -1
- package/scripts/build-production-backend-env-kit.mjs +2 -0
- package/scripts/build-production-unblocker.mjs +3 -0
- package/scripts/check.mjs +17 -3
- package/scripts/collect-hosted-backend-live-evidence.mjs +49 -12
- package/scripts/install-enigma-local.mjs +18 -5
- package/scripts/release-audit.mjs +65 -109
- package/scripts/release-provenance.mjs +6 -0
- package/scripts/run-backend-readiness-smoke.mjs +112 -10
- package/scripts/scan-secrets.mjs +1 -0
- package/scripts/simulate-production-env.mjs +7 -2
- package/scripts/validate-hosted-backend-live.mjs +112 -1
- package/specs/antibody-pack-v1.schema.json +95 -0
- package/specs/antigen-envelope-v1.schema.json +81 -0
- package/specs/boundary-manifest-v1.schema.json +35 -35
- package/specs/capsule-v1.schema.json +55 -55
- package/specs/claim-boundary-manifest-v1.schema.json +22 -22
- package/specs/claim-ledger-v1.schema.json +291 -0
- package/specs/context-passport-v1.schema.json +59 -0
- package/specs/deletion-tombstone-v1.schema.json +26 -26
- package/specs/evidence-packet-v1.schema.json +177 -0
- package/specs/hosted-backend-live-evidence-v1.schema.json +72 -3
- package/specs/immune-scan-report-v1.schema.json +112 -0
- package/specs/lifecycle-receipt-log-v1.schema.json +67 -0
- package/specs/memory-atom-v1.schema.json +59 -0
- package/specs/memory-event-v1.schema.json +42 -42
- package/specs/passport-v1.schema.json +50 -50
- package/specs/proof-of-non-use-v1.schema.json +65 -0
- package/specs/quarantine-record-v1.schema.json +126 -0
- package/specs/receipt-v1.schema.json +61 -61
- package/specs/state-checkpoint-v1.schema.json +37 -37
- package/specs/trust-bundle-v1.schema.json +56 -56
- package/specs/trust-card-v1.schema.json +119 -0
- package/docs/proof-network-launch-plan.md +0 -421
- package/packages/metering/PACKAGE_CONTRACT.md +0 -20
- 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
|
-
|
|
36
|
-
|
|
37
|
-
npm install -g enigma-memory && enigma setup --client
|
|
38
|
-
npm install -g enigma-memory && enigma setup --client
|
|
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
|
|
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
|
|
20
|
-
enigma
|
|
21
|
-
enigma
|
|
22
|
-
enigma
|
|
23
|
-
enigma
|
|
24
|
-
enigma
|
|
25
|
-
enigma
|
|
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.
|
|
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
|
|
12
|
-
|
|
13
|
-
enigma
|
|
14
|
-
enigma
|
|
15
|
-
enigma
|
|
16
|
-
enigma
|
|
17
|
-
enigma
|
|
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
|
|
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
|
|
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
|
|
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
|
|
34
|
-
|
|
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`
|
|
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
|
```
|
package/docs/install-anywhere.md
CHANGED
|
@@ -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
|
|
21
|
-
enigma
|
|
22
|
-
enigma
|
|
23
|
-
enigma
|
|
24
|
-
enigma
|
|
25
|
-
enigma
|
|
26
|
-
enigma
|
|
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
|
|
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
|
-
|
|
63
|
-
enigma
|
|
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
|
|
103
|
-
|
|
104
|
-
enigma
|
|
105
|
-
enigma
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
enigma
|
|
118
|
-
enigma
|
|
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
|
|
506
|
-
|
|
507
|
-
enigma
|
|
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
|
-
|
|
12
|
-
enigma
|
|
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
|
|
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.
|
|
36
|
-
- `install-linux.sh` — POSIX shell source installer. It previews by default and only mutates global npm/local setup files when called with `--execute`.
|
|
37
|
-
- `install-windows.ps1` — PowerShell source installer. It previews by default and only runs
|
|
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
|
|
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
|
|