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
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "enigma-memory",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Provider-agnostic AI memory passport and offline-verifiable proof layer.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/Enigma-Memory/enigma-
|
|
9
|
+
"url": "git+https://github.com/Enigma-Memory/enigma-cortex-enterprise.git"
|
|
10
10
|
},
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|
|
@@ -28,10 +28,18 @@
|
|
|
28
28
|
"apps/native-host/README.md",
|
|
29
29
|
"apps/native-host/manifests/",
|
|
30
30
|
"apps/desktop/src/",
|
|
31
|
+
"apps/desktop/electron-main.cjs",
|
|
32
|
+
"apps/desktop/package.json",
|
|
31
33
|
"apps/browser-extension/manifest.json",
|
|
32
34
|
"apps/browser-extension/src/",
|
|
33
35
|
"apps/gateway/bin/",
|
|
34
36
|
"apps/gateway/src/",
|
|
37
|
+
"apps/ios/EnigmaCore/Package.swift",
|
|
38
|
+
"apps/ios/EnigmaCore/Sources/",
|
|
39
|
+
"apps/ios/EnigmaCore/Tests/",
|
|
40
|
+
"apps/ios/EnigmaIOS/Enigma/",
|
|
41
|
+
"apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/project.pbxproj",
|
|
42
|
+
"apps/ios/EnigmaIOS/EnigmaIOS.xcodeproj/xcshareddata/",
|
|
35
43
|
"apps/relay/src/",
|
|
36
44
|
"apps/relay/bin/",
|
|
37
45
|
"apps/verifier/bin/",
|
|
@@ -39,24 +47,57 @@
|
|
|
39
47
|
"packages/adapters/PACKAGE_CONTRACT.md",
|
|
40
48
|
"packages/boundary/src/",
|
|
41
49
|
"packages/connectors/src/",
|
|
50
|
+
"packages/connectors/swarm-router.mjs",
|
|
42
51
|
"packages/core/src/",
|
|
52
|
+
"packages/developer-platform/src/",
|
|
53
|
+
"packages/enclave-runtime/",
|
|
43
54
|
"packages/enterprise/src/",
|
|
44
55
|
"packages/hosted-cloud/src/",
|
|
45
56
|
"packages/importers/src/",
|
|
57
|
+
"packages/inference-runtime/src/",
|
|
58
|
+
"packages/enigma-weave/",
|
|
59
|
+
"packages/enigma-reflex/",
|
|
46
60
|
"packages/optimizer/src/",
|
|
47
61
|
"packages/mcp-server/bin/",
|
|
48
62
|
"packages/mcp-server/src/",
|
|
63
|
+
"packages/mcp-server/swarm-bridge.mjs",
|
|
49
64
|
"packages/mcp-server/README.md",
|
|
65
|
+
"packages/private-economy/src/",
|
|
50
66
|
"packages/mesh/src/",
|
|
51
|
-
"packages/
|
|
67
|
+
"packages/mesh/index.d.ts",
|
|
68
|
+
"packages/mesh/package.json",
|
|
69
|
+
"packages/rag/src/",
|
|
70
|
+
"packages/rag/models/",
|
|
71
|
+
"packages/rag/index.d.ts",
|
|
72
|
+
"packages/rag/package.json",
|
|
73
|
+
"packages/sdk/src/",
|
|
74
|
+
"packages/sdk/index.d.ts",
|
|
75
|
+
"packages/sdk/package.json",
|
|
76
|
+
"packages/snapcompact/",
|
|
77
|
+
"packages/sdk/python/enigma_sdk.py",
|
|
78
|
+
"packages/sdk/python/pyproject.toml",
|
|
79
|
+
"packages/sdk/python/README.md",
|
|
80
|
+
"packages/sdk/python/requirements.txt",
|
|
81
|
+
"packages/sdk/python/setup.py",
|
|
82
|
+
"packages/dev-tools/src/",
|
|
83
|
+
"packages/dev-tools/package.json",
|
|
52
84
|
"packages/proof-network/src/",
|
|
53
|
-
"packages/
|
|
85
|
+
"packages/proof-network/PACKAGE_CONTRACT.md",
|
|
86
|
+
"packages/metering/src/",
|
|
54
87
|
"packages/settlement/src/",
|
|
55
88
|
"packages/settlement/PACKAGE_CONTRACT.md",
|
|
89
|
+
"packages/terminal-tui/",
|
|
56
90
|
"packages/passport/src/",
|
|
57
91
|
"packages/storage/src/",
|
|
58
92
|
"packages/storage/PACKAGE_CONTRACT.md",
|
|
59
93
|
"packages/vault/src/",
|
|
94
|
+
"packages/vault/index.d.ts",
|
|
95
|
+
"packages/vault/package.json",
|
|
96
|
+
"cortex-v3/zk/",
|
|
97
|
+
"cortex-v3/proving-assets.json",
|
|
98
|
+
"cortex-v3/circuits/build/vk_bytes.json",
|
|
99
|
+
"cortex-v3/circuits/build/intent_vk_bytes.json",
|
|
100
|
+
"cortex-v3/circuits/build/sale_vk_bytes.json",
|
|
60
101
|
"deploy/docker-compose.production.example.yml",
|
|
61
102
|
"deploy/docker-compose.local-production-simulation.yml",
|
|
62
103
|
"deploy/kms-mock.mjs",
|
|
@@ -67,8 +108,10 @@
|
|
|
67
108
|
"scripts/check.mjs",
|
|
68
109
|
"scripts/scan-secrets.mjs",
|
|
69
110
|
"scripts/install-enigma-local.mjs",
|
|
111
|
+
"scripts/bootstrap-enigma.mjs",
|
|
70
112
|
"scripts/verify-registry-install.mjs",
|
|
71
113
|
"scripts/run-memory-benchmarks.mjs",
|
|
114
|
+
"scripts/benchmark-optical-context.mjs",
|
|
72
115
|
"scripts/download-standard-benchmarks.mjs",
|
|
73
116
|
"scripts/run-standard-memory-benchmarks.mjs",
|
|
74
117
|
"scripts/build-benchmark-proof-release.mjs",
|
|
@@ -88,7 +131,6 @@
|
|
|
88
131
|
"scripts/build-production-workplan.mjs",
|
|
89
132
|
"scripts/build-production-status-board.mjs",
|
|
90
133
|
"scripts/build-production-unblocker.mjs",
|
|
91
|
-
"scripts/build-ai-orchestration-plan.mjs",
|
|
92
134
|
"scripts/validate-cloudflare-credentials.mjs",
|
|
93
135
|
"scripts/run-backend-readiness-smoke.mjs",
|
|
94
136
|
"scripts/validate-hosted-backend-live.mjs",
|
|
@@ -155,17 +197,24 @@
|
|
|
155
197
|
"docs/proof-network-claim-boundaries.md",
|
|
156
198
|
"docs/proof-network-dashboard-spec.md",
|
|
157
199
|
"docs/proof-network-glossary.md",
|
|
158
|
-
"docs/proof-network-launch-plan.md",
|
|
159
200
|
"docs/proof-network-operator-protocol.md",
|
|
160
201
|
"docs/proof-network-roadmap.md",
|
|
161
202
|
"docs/proof-network-test-plan.md",
|
|
162
203
|
"docs/proof-network-threat-model.md",
|
|
163
204
|
"examples/",
|
|
164
205
|
"templates/",
|
|
165
|
-
"specs/"
|
|
206
|
+
"specs/",
|
|
207
|
+
"packages/terminal-console/",
|
|
208
|
+
"apps/cli/bin/enigma-terminal.mjs",
|
|
209
|
+
"apps/cli/bin/enigma-desktop.mjs"
|
|
166
210
|
],
|
|
167
211
|
"bin": {
|
|
212
|
+
"enigma-memory": "scripts/bootstrap-enigma.mjs",
|
|
213
|
+
"enigma-bootstrap": "scripts/bootstrap-enigma.mjs",
|
|
168
214
|
"enigma": "apps/cli/bin/enigma.mjs",
|
|
215
|
+
"enigma-terminal": "apps/cli/bin/enigma-terminal.mjs",
|
|
216
|
+
"enigma-desktop": "apps/cli/bin/enigma-desktop.mjs",
|
|
217
|
+
"enigma-shell": "apps/cli/bin/enigma-terminal.mjs",
|
|
169
218
|
"enigma-verify": "apps/verifier/bin/enigma-verify.mjs",
|
|
170
219
|
"enigma-mcp": "packages/mcp-server/bin/enigma-mcp.mjs",
|
|
171
220
|
"enigma-relay": "apps/relay/bin/enigma-relay.mjs",
|
|
@@ -173,8 +222,17 @@
|
|
|
173
222
|
"enigma-native-host": "apps/native-host/bin/enigma-native-host.mjs"
|
|
174
223
|
},
|
|
175
224
|
"scripts": {
|
|
225
|
+
"bootstrap": "node scripts/bootstrap-enigma.mjs",
|
|
226
|
+
"cli": "node apps/cli/bin/enigma.mjs",
|
|
227
|
+
"terminal": "node apps/cli/bin/enigma-terminal.mjs",
|
|
228
|
+
"desktop": "node apps/cli/bin/enigma-desktop.mjs",
|
|
229
|
+
"desktop:electron": "node apps/desktop/src/launch-electron.mjs",
|
|
230
|
+
"shell": "node apps/cli/bin/enigma-terminal.mjs",
|
|
176
231
|
"check": "node scripts/check.mjs",
|
|
177
|
-
"
|
|
232
|
+
"benchmark:optical-context": "node scripts/benchmark-optical-context.mjs",
|
|
233
|
+
"verify:neural-model": "node packages/rag/src/verify-model-artifacts.mjs",
|
|
234
|
+
"typecheck": "tsc --target ES2022 --module nodenext --moduleResolution nodenext --rootDir . --outDir test/dist test/types-check.ts && node test/dist/test/types-check.js && node -e \"import fs from 'node:fs'; fs.rmSync('test/dist', { recursive: true, force: true });\"",
|
|
235
|
+
"test": "node --test --test-concurrency=4 test/*.test.mjs",
|
|
178
236
|
"secret-scan": "node scripts/scan-secrets.mjs",
|
|
179
237
|
"registry:verify": "node scripts/verify-registry-install.mjs",
|
|
180
238
|
"boundary": "node harnesses/boundary-sim/boundary_harness.mjs",
|
|
@@ -212,7 +270,6 @@
|
|
|
212
270
|
"production:workplan": "node scripts/build-production-workplan.mjs",
|
|
213
271
|
"production:status": "node scripts/build-production-status-board.mjs",
|
|
214
272
|
"production:unblocker": "node scripts/build-production-unblocker.mjs",
|
|
215
|
-
"production:orchestration": "node scripts/build-ai-orchestration-plan.mjs",
|
|
216
273
|
"production:manifests": "node scripts/validate-production-manifests.mjs",
|
|
217
274
|
"production:backend-smoke": "node scripts/run-backend-readiness-smoke.mjs",
|
|
218
275
|
"production:hosted-live": "node scripts/validate-hosted-backend-live.mjs",
|
|
@@ -249,6 +306,12 @@
|
|
|
249
306
|
"optionalDependencies": {
|
|
250
307
|
"@solana/web3.js": "^1.98.2"
|
|
251
308
|
},
|
|
309
|
+
"overrides": {
|
|
310
|
+
"adm-zip": "0.6.0",
|
|
311
|
+
"sharp": "0.35.3",
|
|
312
|
+
"underscore": "1.13.8",
|
|
313
|
+
"ws": "$ws"
|
|
314
|
+
},
|
|
252
315
|
"engines": {
|
|
253
316
|
"node": ">=24"
|
|
254
317
|
},
|
|
@@ -258,14 +321,30 @@
|
|
|
258
321
|
"./boundary": "./packages/boundary/src/index.js",
|
|
259
322
|
"./connectors": "./packages/connectors/src/index.js",
|
|
260
323
|
"./core": "./packages/core/src/index.js",
|
|
324
|
+
"./developer-platform": "./packages/developer-platform/src/index.js",
|
|
325
|
+
"./dev-tools": "./packages/dev-tools/src/index.js",
|
|
261
326
|
"./desktop": "./apps/desktop/src/app.js",
|
|
327
|
+
"./zk/witness": "./cortex-v3/zk/witness.mjs",
|
|
328
|
+
"./zk/tree": "./cortex-v3/zk/zk-tree.mjs",
|
|
329
|
+
"./zk/codec": "./cortex-v3/zk/zk-codec.mjs",
|
|
330
|
+
"./zk/proving-assets": "./cortex-v3/zk/proving-assets.mjs",
|
|
262
331
|
"./desktop/tray": "./apps/desktop/src/tray.js",
|
|
263
332
|
"./enterprise": "./packages/enterprise/src/index.js",
|
|
264
333
|
"./hosted-cloud": "./packages/hosted-cloud/src/index.js",
|
|
265
334
|
"./gateway": "./apps/gateway/src/server.mjs",
|
|
266
335
|
"./importers": "./packages/importers/src/index.js",
|
|
336
|
+
"./inference-runtime": "./packages/inference-runtime/src/index.js",
|
|
337
|
+
"./enigma-weave": "./packages/enigma-weave/src/index.js",
|
|
338
|
+
"./enigma-reflex": "./packages/enigma-reflex/src/index.js",
|
|
267
339
|
"./mcp-server": "./packages/mcp-server/src/index.js",
|
|
268
|
-
"./
|
|
340
|
+
"./mcp-server/http": "./packages/mcp-server/src/remote-http.js",
|
|
341
|
+
"./mcp-server/oauth": "./packages/mcp-server/src/oauth.js",
|
|
342
|
+
"./private-economy": "./packages/private-economy/src/index.js",
|
|
343
|
+
"./mesh": {
|
|
344
|
+
"types": "./packages/mesh/index.d.ts",
|
|
345
|
+
"import": "./packages/mesh/src/index.js",
|
|
346
|
+
"default": "./packages/mesh/src/index.js"
|
|
347
|
+
},
|
|
269
348
|
"./metering": "./packages/metering/src/index.js",
|
|
270
349
|
"./optimizer": "./packages/optimizer/src/index.js",
|
|
271
350
|
"./proof-network": "./packages/proof-network/src/index.js",
|
|
@@ -274,6 +353,58 @@
|
|
|
274
353
|
"./package.json": "./package.json",
|
|
275
354
|
"./passport": "./packages/passport/src/index.js",
|
|
276
355
|
"./relay": "./apps/relay/src/server.mjs",
|
|
277
|
-
"./
|
|
356
|
+
"./rag": {
|
|
357
|
+
"types": "./packages/rag/index.d.ts",
|
|
358
|
+
"import": "./packages/rag/src/index.js",
|
|
359
|
+
"default": "./packages/rag/src/index.js"
|
|
360
|
+
},
|
|
361
|
+
"./snapcompact": {
|
|
362
|
+
"types": "./packages/snapcompact/index.d.ts",
|
|
363
|
+
"import": "./packages/snapcompact/src/index.js",
|
|
364
|
+
"default": "./packages/snapcompact/src/index.js"
|
|
365
|
+
},
|
|
366
|
+
"./sdk": {
|
|
367
|
+
"types": "./packages/sdk/index.d.ts",
|
|
368
|
+
"import": "./packages/sdk/src/index.js",
|
|
369
|
+
"default": "./packages/sdk/src/index.js"
|
|
370
|
+
},
|
|
371
|
+
"./vault": {
|
|
372
|
+
"types": "./packages/vault/index.d.ts",
|
|
373
|
+
"import": "./packages/vault/src/index.js",
|
|
374
|
+
"default": "./packages/vault/src/index.js"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"typesVersions": {
|
|
378
|
+
"*": {
|
|
379
|
+
"sdk": [
|
|
380
|
+
"packages/sdk/index.d.ts"
|
|
381
|
+
],
|
|
382
|
+
"snapcompact": [
|
|
383
|
+
"packages/snapcompact/index.d.ts"
|
|
384
|
+
],
|
|
385
|
+
"vault": [
|
|
386
|
+
"packages/vault/index.d.ts"
|
|
387
|
+
],
|
|
388
|
+
"rag": [
|
|
389
|
+
"packages/rag/index.d.ts"
|
|
390
|
+
],
|
|
391
|
+
"mesh": [
|
|
392
|
+
"packages/mesh/index.d.ts"
|
|
393
|
+
]
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
"dependencies": {
|
|
397
|
+
"@hpke/chacha20poly1305": "^1.8.0",
|
|
398
|
+
"@hpke/core": "^1.9.0",
|
|
399
|
+
"@huggingface/transformers": "4.2.0",
|
|
400
|
+
"@noble/ciphers": "^2.3.0",
|
|
401
|
+
"@noble/curves": "^1.9.0",
|
|
402
|
+
"bs58": "^4.0.1",
|
|
403
|
+
"circomlibjs": "^0.1.7",
|
|
404
|
+
"snarkjs": "^0.7.6",
|
|
405
|
+
"ws": "^8.21.3"
|
|
406
|
+
},
|
|
407
|
+
"devDependencies": {
|
|
408
|
+
"electron": "^44.0.0"
|
|
278
409
|
}
|
|
279
410
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Production dependency adapters contract
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`enigma-memory/adapters` is a pure local evidence-normalization package. It does not provision cloud resources, open sockets, read environment variables, or load secrets.
|
|
4
4
|
|
|
5
5
|
## Purpose
|
|
6
6
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { access, copyFile, mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { dirname, posix, win32 } from 'node:path';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
|
+
import { canonicalize, MerkleSet, sha256Hex } from '../../core/src/index.js';
|
|
4
5
|
|
|
5
6
|
const PROFILE_SCHEMA = 'enigma.connector_profile.v1';
|
|
6
7
|
const DEFAULT_SERVER_NAME = 'enigma';
|
|
7
8
|
const MCP_COMMAND = 'enigma-mcp';
|
|
8
9
|
const MCP_CONTAINER_PATH = Object.freeze(['mcpServers']);
|
|
9
10
|
const SUPPORTED_PLATFORMS = Object.freeze(['win32', 'darwin', 'linux']);
|
|
11
|
+
const TRUST_CARD_SCHEMA = 'enigma.trust_card.v1';
|
|
10
12
|
|
|
11
13
|
const CLIENT_DEFINITIONS = Object.freeze({
|
|
12
14
|
'claude-desktop': Object.freeze({
|
|
@@ -36,6 +38,15 @@ const CLIENT_DEFINITIONS = Object.freeze({
|
|
|
36
38
|
linux: '$HOME/.config/kimi-code/mcp.json',
|
|
37
39
|
}),
|
|
38
40
|
}),
|
|
41
|
+
'kimi-k3': Object.freeze({
|
|
42
|
+
display_name: 'Kimi K3',
|
|
43
|
+
description: 'Kimi K3 Autonomous AI MCP configuration.',
|
|
44
|
+
default_config_paths: Object.freeze({
|
|
45
|
+
win32: '%APPDATA%\\Kimi K3\\mcp.json',
|
|
46
|
+
darwin: '$HOME/Library/Application Support/Kimi K3/mcp.json',
|
|
47
|
+
linux: '$HOME/.config/kimi-k3/mcp.json',
|
|
48
|
+
}),
|
|
49
|
+
}),
|
|
39
50
|
'vscode-cline': Object.freeze({
|
|
40
51
|
display_name: 'VS Code Cline',
|
|
41
52
|
description: 'Cline extension MCP settings for VS Code.',
|
|
@@ -74,6 +85,74 @@ const CLIENT_DEFINITIONS = Object.freeze({
|
|
|
74
85
|
}),
|
|
75
86
|
});
|
|
76
87
|
|
|
88
|
+
const CONNECTOR_CAPABILITY_DEFINITIONS = Object.freeze({
|
|
89
|
+
'claude-desktop': Object.freeze({
|
|
90
|
+
integration_kind: 'mcp_client',
|
|
91
|
+
client_surface: 'claude_desktop',
|
|
92
|
+
transport: 'mcp_stdio',
|
|
93
|
+
mcp_tools: true,
|
|
94
|
+
browser_context_bridge: false,
|
|
95
|
+
offline_export_import: false,
|
|
96
|
+
}),
|
|
97
|
+
cursor: Object.freeze({
|
|
98
|
+
integration_kind: 'mcp_client',
|
|
99
|
+
client_surface: 'cursor_editor',
|
|
100
|
+
transport: 'mcp_stdio',
|
|
101
|
+
mcp_tools: true,
|
|
102
|
+
browser_context_bridge: false,
|
|
103
|
+
offline_export_import: false,
|
|
104
|
+
}),
|
|
105
|
+
'browser-extension': Object.freeze({
|
|
106
|
+
integration_kind: 'browser_context_bridge',
|
|
107
|
+
client_surface: 'supported_web_ai_pages',
|
|
108
|
+
transport: 'browser_native_messaging',
|
|
109
|
+
mcp_tools: false,
|
|
110
|
+
browser_context_bridge: true,
|
|
111
|
+
offline_export_import: false,
|
|
112
|
+
}),
|
|
113
|
+
'chatgpt-import': Object.freeze({
|
|
114
|
+
integration_kind: 'offline_export_import',
|
|
115
|
+
client_surface: 'chatgpt_user_export',
|
|
116
|
+
transport: 'local_file',
|
|
117
|
+
mcp_tools: false,
|
|
118
|
+
browser_context_bridge: false,
|
|
119
|
+
offline_export_import: true,
|
|
120
|
+
}),
|
|
121
|
+
'generic-mcp': Object.freeze({
|
|
122
|
+
integration_kind: 'mcp_client',
|
|
123
|
+
client_surface: 'generic_local_model_or_mcp_client',
|
|
124
|
+
transport: 'mcp_stdio',
|
|
125
|
+
mcp_tools: true,
|
|
126
|
+
browser_context_bridge: false,
|
|
127
|
+
offline_export_import: false,
|
|
128
|
+
}),
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
export const connectorCapabilityIds = Object.freeze(Object.keys(CONNECTOR_CAPABILITY_DEFINITIONS));
|
|
132
|
+
|
|
133
|
+
export function getConnectorCapabilityDescriptor(capabilityId) {
|
|
134
|
+
const id = String(capabilityId ?? '').trim().toLowerCase();
|
|
135
|
+
const explicit = CONNECTOR_CAPABILITY_DEFINITIONS[id];
|
|
136
|
+
const definition = explicit ?? (Object.hasOwn(CLIENT_DEFINITIONS, id)
|
|
137
|
+
? {
|
|
138
|
+
...CONNECTOR_CAPABILITY_DEFINITIONS['generic-mcp'],
|
|
139
|
+
client_surface: id,
|
|
140
|
+
}
|
|
141
|
+
: undefined);
|
|
142
|
+
if (!definition) throw new Error(`Unknown connector capability id: ${id || '(empty)'}`);
|
|
143
|
+
return Object.freeze({
|
|
144
|
+
schema: 'enigma.connector_capability.v1',
|
|
145
|
+
capability_id: id,
|
|
146
|
+
...definition,
|
|
147
|
+
native_provider_integration: false,
|
|
148
|
+
provider_api_access: false,
|
|
149
|
+
provider_memory_read: false,
|
|
150
|
+
provider_memory_write: false,
|
|
151
|
+
provider_memory_delete: false,
|
|
152
|
+
canonical_storage: 'enigma_local_vault',
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
|
|
77
156
|
export const supportedClients = Object.freeze(Object.keys(CLIENT_DEFINITIONS));
|
|
78
157
|
|
|
79
158
|
function isPlainObject(value) {
|
|
@@ -187,6 +266,10 @@ function defaultConfigPathFor(clientId, platform, options = {}) {
|
|
|
187
266
|
return joinForPlatform(platform, appData, 'Claude', 'claude_desktop_config.json');
|
|
188
267
|
case 'cursor':
|
|
189
268
|
return joinForPlatform(platform, home, '.cursor', 'mcp.json');
|
|
269
|
+
case 'kimi-k3':
|
|
270
|
+
return platform === 'linux'
|
|
271
|
+
? joinForPlatform(platform, appData, 'kimi-k3', 'mcp.json')
|
|
272
|
+
: joinForPlatform(platform, appData, 'Kimi K3', 'mcp.json');
|
|
190
273
|
case 'kimi-code':
|
|
191
274
|
return platform === 'linux'
|
|
192
275
|
? joinForPlatform(platform, appData, 'kimi-code', 'mcp.json')
|
|
@@ -231,6 +314,7 @@ export function getClientProfile(clientIdOrOptions = 'generic-mcp', maybeOptions
|
|
|
231
314
|
server_name: DEFAULT_SERVER_NAME,
|
|
232
315
|
command: MCP_COMMAND,
|
|
233
316
|
required_env: Object.freeze(['ENIGMA_BUNDLE']),
|
|
317
|
+
capabilities: getConnectorCapabilityDescriptor(clientId),
|
|
234
318
|
platform,
|
|
235
319
|
});
|
|
236
320
|
}
|
|
@@ -557,6 +641,10 @@ function redactErrorMessage(message, configPath, options = {}) {
|
|
|
557
641
|
function publicBundlePlaceholder(platform) {
|
|
558
642
|
return platform === 'win32' ? '%USERPROFILE%\\.enigma\\bundle.json' : '$HOME/.enigma/bundle.json';
|
|
559
643
|
}
|
|
644
|
+
function publicPassphrasePlaceholder(platform) {
|
|
645
|
+
return platform === 'win32' ? '%USERPROFILE%\\.enigma\\passphrase' : '$HOME/.enigma/passphrase';
|
|
646
|
+
}
|
|
647
|
+
|
|
560
648
|
|
|
561
649
|
function publicDefaultConfigPath(clientId, platform) {
|
|
562
650
|
return CLIENT_DEFINITIONS[clientId].default_config_paths[platform];
|
|
@@ -567,7 +655,7 @@ function connectCommandFor(clientId, platform) {
|
|
|
567
655
|
}
|
|
568
656
|
|
|
569
657
|
function setupConnectCommandFor(clientId, platform) {
|
|
570
|
-
return `enigma setup --client ${clientId} --write-connectors --bundle "${publicBundlePlaceholder(platform)}" --overwrite`;
|
|
658
|
+
return `enigma setup --client ${clientId} --write-connectors --bundle "${publicBundlePlaceholder(platform)}" --passphrase-file "${publicPassphrasePlaceholder(platform)}" --overwrite`;
|
|
571
659
|
}
|
|
572
660
|
|
|
573
661
|
function installConnectCommandFor(clientId, platform) {
|
|
@@ -589,7 +677,7 @@ function wizardStepsForClient(clientId, platform) {
|
|
|
589
677
|
id: 'create_local_bundle',
|
|
590
678
|
title: 'Create and verify the local Enigma bundle.',
|
|
591
679
|
commands: [
|
|
592
|
-
`enigma quickstart --bundle "${publicBundlePlaceholder(platform)}" --overwrite`,
|
|
680
|
+
`enigma quickstart --bundle "${publicBundlePlaceholder(platform)}" --passphrase-file "${publicPassphrasePlaceholder(platform)}" --overwrite`,
|
|
593
681
|
`enigma verify --bundle "${publicBundlePlaceholder(platform)}"`,
|
|
594
682
|
],
|
|
595
683
|
writes: 'local_enigma_bundle',
|
|
@@ -615,11 +703,11 @@ function wizardStepsForClient(clientId, platform) {
|
|
|
615
703
|
writes: false,
|
|
616
704
|
},
|
|
617
705
|
];
|
|
618
|
-
if (clientId === 'kimi-code') {
|
|
706
|
+
if (clientId === 'kimi-k3' || clientId === 'kimi-code') {
|
|
619
707
|
steps.splice(4, 0, {
|
|
620
708
|
order: 5,
|
|
621
709
|
id: 'kimi_gui_path_caveat',
|
|
622
|
-
title: 'If Kimi Code was launched from the GUI and cannot find enigma-mcp, reconnect with an absolute command path.',
|
|
710
|
+
title: 'If Kimi K3 / Kimi Code was launched from the GUI and cannot find enigma-mcp, reconnect with an absolute command path.',
|
|
623
711
|
command: `${connectCommandFor(clientId, platform)} --mcp-command "/absolute/path/to/enigma-mcp"`,
|
|
624
712
|
writes: 'client_config_when_user_runs_command',
|
|
625
713
|
});
|
|
@@ -726,6 +814,110 @@ export async function doctorConnectors(clientIdOrOptions = {}, maybeOptions = {}
|
|
|
726
814
|
return detectConnectors(clientIdOrOptions, maybeOptions);
|
|
727
815
|
}
|
|
728
816
|
|
|
817
|
+
function sha256Root(value) {
|
|
818
|
+
return `sha256:${sha256Hex(typeof value === 'string' ? value : canonicalize(value))}`;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
function publicTrustRef(kind, value) {
|
|
822
|
+
return `ref:${kind}:${sha256Hex(typeof value === 'string' ? value : canonicalize(value)).slice(0, 32)}`;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
function uniqueSortedStrings(values) {
|
|
826
|
+
return [...new Set(values.map(String).filter((value) => value.length > 0))].sort();
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
function connectorTrustBoundary() {
|
|
830
|
+
return {
|
|
831
|
+
public_payload_only: true,
|
|
832
|
+
raw_memory_included: false,
|
|
833
|
+
raw_prompt_included: false,
|
|
834
|
+
raw_transcript_included: false,
|
|
835
|
+
raw_embedding_included: false,
|
|
836
|
+
private_key_included: false,
|
|
837
|
+
credential_included: false,
|
|
838
|
+
local_path_included: false,
|
|
839
|
+
provider_deletion_claim: false,
|
|
840
|
+
model_forgetting_claim: false,
|
|
841
|
+
hosted_saas_ready_claim: false,
|
|
842
|
+
};
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
function connectorTrustEvidenceRefs(clientId, profile) {
|
|
846
|
+
return uniqueSortedStrings([
|
|
847
|
+
publicTrustRef('connector_profile', {
|
|
848
|
+
schema: PROFILE_SCHEMA,
|
|
849
|
+
client_id: clientId,
|
|
850
|
+
display_name: profile.display_name,
|
|
851
|
+
command: profile.command,
|
|
852
|
+
server_name: profile.server_name,
|
|
853
|
+
server_container_path: profile.server_container_path,
|
|
854
|
+
}),
|
|
855
|
+
publicTrustRef('mcp_command', {
|
|
856
|
+
command: profile.command,
|
|
857
|
+
server_name: profile.server_name,
|
|
858
|
+
}),
|
|
859
|
+
]);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
export function createConnectorTrustCard(clientIdOrOptions = 'generic-mcp', maybeOptions = {}) {
|
|
863
|
+
const options = normalizeOptions(clientIdOrOptions, maybeOptions);
|
|
864
|
+
const clientId = normalizeClientId(options.clientId ?? options.client_id ?? 'generic-mcp');
|
|
865
|
+
const profile = getClientProfile(clientId, options);
|
|
866
|
+
const generatedAt = String(options.generated_at ?? options.generatedAt ?? options.now ?? new Date().toISOString());
|
|
867
|
+
const evidenceRefs = connectorTrustEvidenceRefs(clientId, profile);
|
|
868
|
+
const claims = [
|
|
869
|
+
{
|
|
870
|
+
claim_id: 'claim:connector.local_mcp_profile',
|
|
871
|
+
claim_type: PROFILE_SCHEMA,
|
|
872
|
+
status: 'supported',
|
|
873
|
+
evidence_refs: [evidenceRefs[0]],
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
claim_id: 'claim:connector.public_payload_only',
|
|
877
|
+
claim_type: 'enigma.trust_boundary.v1',
|
|
878
|
+
status: 'supported',
|
|
879
|
+
evidence_refs: [evidenceRefs[1]],
|
|
880
|
+
},
|
|
881
|
+
];
|
|
882
|
+
const claimIds = claims.map((claim) => claim.claim_id);
|
|
883
|
+
return {
|
|
884
|
+
schema: TRUST_CARD_SCHEMA,
|
|
885
|
+
trust_card_id: `trustcard:connector:${clientId}`,
|
|
886
|
+
generated_at: generatedAt,
|
|
887
|
+
subject: {
|
|
888
|
+
subject_type: 'connector',
|
|
889
|
+
subject_id: `connector:${clientId}`,
|
|
890
|
+
subject_ref: `ref:connector:${clientId}`,
|
|
891
|
+
subject_hash: sha256Root({
|
|
892
|
+
schema: 'enigma.connector_trust_subject.v1',
|
|
893
|
+
client_id: clientId,
|
|
894
|
+
command: profile.command,
|
|
895
|
+
server_name: profile.server_name,
|
|
896
|
+
}),
|
|
897
|
+
},
|
|
898
|
+
posture: options.posture ?? 'reviewed',
|
|
899
|
+
claim_ids: claimIds,
|
|
900
|
+
claims,
|
|
901
|
+
evidence_refs: evidenceRefs,
|
|
902
|
+
roots: {
|
|
903
|
+
claim_root: new MerkleSet(claimIds).root(),
|
|
904
|
+
evidence_root: new MerkleSet(evidenceRefs).root(),
|
|
905
|
+
receipt_chain_root: options.receipt_chain_root ?? options.receiptChainRoot ?? sha256Root({
|
|
906
|
+
schema: 'enigma.connector_trust_card.empty_receipt_chain.v1',
|
|
907
|
+
client_id: clientId,
|
|
908
|
+
}),
|
|
909
|
+
},
|
|
910
|
+
boundary: connectorTrustBoundary(),
|
|
911
|
+
};
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
export function createConnectorTrustCards(options = {}) {
|
|
915
|
+
const selected = options.clientId ?? options.client_id
|
|
916
|
+
? [normalizeClientId(options.clientId ?? options.client_id)]
|
|
917
|
+
: supportedClients;
|
|
918
|
+
return selected.map((clientId) => createConnectorTrustCard({ ...options, clientId }));
|
|
919
|
+
}
|
|
920
|
+
|
|
729
921
|
export function runConnectorDemo(input = {}) {
|
|
730
922
|
const options = { ...input, clientId: input.clientId ?? input.client_id ?? 'generic-mcp' };
|
|
731
923
|
const clientId = normalizeClientId(options.clientId);
|