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
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Example 1: Autonomous Agent Sovereign Memory Quickstart
|
|
2
|
+
import { Enigma } from '../../packages/sdk/src/index.js';
|
|
3
|
+
|
|
4
|
+
async function main() {
|
|
5
|
+
console.log('--- [Step 1] Connecting Autonomous Agent to Sovereign Memory ---');
|
|
6
|
+
const enigma = await Enigma.connect({
|
|
7
|
+
scope: 'agent.solana_trader',
|
|
8
|
+
passphrase: 'demo_developer_passphrase_2026',
|
|
9
|
+
storagePath: './agent_vault.enc.json',
|
|
10
|
+
});
|
|
11
|
+
console.log('✓ Agent connected:', enigma.status());
|
|
12
|
+
|
|
13
|
+
console.log('\n--- [Step 2] Storing Confidential Project Directives ---');
|
|
14
|
+
await enigma.remember('Risk Directive: Always enforce 0.5% maximum slippage on Jupiter DEX swaps', {
|
|
15
|
+
importance: 1.0,
|
|
16
|
+
metadata: { category: 'risk_management', priority: 'critical' },
|
|
17
|
+
});
|
|
18
|
+
await enigma.remember('Routing Directive: Fragment large swap orders (>100 SOL) across Orca and Raydium pools', {
|
|
19
|
+
importance: 0.8,
|
|
20
|
+
metadata: { category: 'execution', priority: 'high' },
|
|
21
|
+
});
|
|
22
|
+
await enigma.remember('General Rule: Never leak raw private keys, wallet seed phrases, or unencrypted memory', {
|
|
23
|
+
scope: 'enigma.global',
|
|
24
|
+
importance: 1.0,
|
|
25
|
+
});
|
|
26
|
+
console.log(`✓ Stored ${enigma.status().memoryCount} memory atoms in sovereign encrypted custody`);
|
|
27
|
+
|
|
28
|
+
console.log('\n--- [Step 3] Semantic Vector Context Recall ---');
|
|
29
|
+
const query = 'What are the rules for swap slippage and order routing?';
|
|
30
|
+
console.log(`Agent Query: "${query}"`);
|
|
31
|
+
const memories = await enigma.recall(query, { topK: 2 });
|
|
32
|
+
|
|
33
|
+
memories.forEach((mem, idx) => {
|
|
34
|
+
console.log(` [Match #${idx + 1}] (${Math.round(mem.score * 100)}% match) [${mem.scope}]: ${mem.text}`);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
console.log('\n--- [Step 4] Compiling Token-Budgeted Prompt Context Pack ---');
|
|
38
|
+
const pack = await enigma.getContextPack(query, { maxTokens: 500 });
|
|
39
|
+
console.log(`✓ Compiled context pack (${pack.estimatedTokens} tokens):\n`);
|
|
40
|
+
console.log(pack.contextText);
|
|
41
|
+
|
|
42
|
+
console.log('\n--- [Step 5] Cleaning Up ---');
|
|
43
|
+
// Optional cleanup of demo file
|
|
44
|
+
const fs = await import('node:fs');
|
|
45
|
+
if (fs.existsSync('./agent_vault.enc.json')) fs.unlinkSync('./agent_vault.enc.json');
|
|
46
|
+
console.log('✓ Quickstart completed successfully!');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example 01: Agent Memory Quickstart
|
|
3
|
+
* Demonstrates local vault creation, storing memory with tags,
|
|
4
|
+
* recalling context, and verifying the cryptographic receipt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { createVault, remember, recall, exportBundle } from '../packages/vault/src/index.js';
|
|
8
|
+
|
|
9
|
+
console.log('=== Enigma Agent Memory Quickstart ===\n');
|
|
10
|
+
|
|
11
|
+
// 1. Initialize local vault
|
|
12
|
+
const vault = createVault({
|
|
13
|
+
tenant_id: 'agent_sandbox',
|
|
14
|
+
policy_id: 'strict_local_v1',
|
|
15
|
+
subject_id: 'agent_007',
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
console.log('1. Initialized local vault:');
|
|
19
|
+
console.log(' - Tenant: ', vault.tenant_id);
|
|
20
|
+
console.log(' - Policy: ', vault.policy_id);
|
|
21
|
+
console.log(' - Vault Address: ', vault.addressKey ? 'Configured (AES-256)' : 'Unset', '\n');
|
|
22
|
+
|
|
23
|
+
// 2. Store technical context
|
|
24
|
+
const mem1 = await remember({
|
|
25
|
+
vault,
|
|
26
|
+
text: 'Solana Anchor micro-escrow smart contracts settle in slot window < 400ms.',
|
|
27
|
+
purpose: 'agent_trading_strategy',
|
|
28
|
+
tags: ['solana', 'anchor', 'escrow', 'defi'],
|
|
29
|
+
importance: 0.95,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
console.log('2. Stored memory atom:');
|
|
33
|
+
console.log(' - Memory Address:', mem1.memory_addr);
|
|
34
|
+
console.log(' - Receipt ID: ', mem1.receipt.receipt_id);
|
|
35
|
+
console.log(' - Operation: ', mem1.receipt.operation);
|
|
36
|
+
console.log(' - Signer Key ID: ', mem1.receipt.signer.key_id, '\n');
|
|
37
|
+
|
|
38
|
+
// 3. Recall memory by address
|
|
39
|
+
const recalled = await recall({
|
|
40
|
+
vault,
|
|
41
|
+
memory_addr: mem1.memory_addr,
|
|
42
|
+
purpose: 'agent_decision_inference',
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
console.log('3. Recalled memory:');
|
|
46
|
+
console.log(' - Decrypted Content: ', recalled.content);
|
|
47
|
+
console.log(' - Read Receipt ID: ', recalled.receipt.receipt_id);
|
|
48
|
+
console.log(' - Read Log Root: ', recalled.receipt.receipt_log_root.slice(0, 32) + '...\n');
|
|
49
|
+
|
|
50
|
+
// 4. Export proof bundle
|
|
51
|
+
const bundle = await exportBundle({ vault });
|
|
52
|
+
console.log('4. Exported proof bundle:');
|
|
53
|
+
console.log(' - Total active memories: ', bundle.active_memory_addresses.length);
|
|
54
|
+
console.log(' - Total receipts in audit log: ', bundle.receipts.length);
|
|
55
|
+
console.log(' - Vault Active Set Root: ', bundle.vault.active_set_root.slice(0, 32) + '...');
|
|
56
|
+
|
|
57
|
+
console.log('\n✔ All quickstart operations succeeded with signed cryptographic receipts!');
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Example 2: Multi-Agent Sovereign Memory Swarm Orchestration
|
|
2
|
+
import { EnigmaSwarmOrchestrator } from '../../packages/sdk/src/index.js';
|
|
3
|
+
|
|
4
|
+
async function main() {
|
|
5
|
+
console.log('--- [Step 1] Initializing Swarm Orchestrator ---');
|
|
6
|
+
const swarm = new EnigmaSwarmOrchestrator({
|
|
7
|
+
swarmId: 'alpha_swarm_2026',
|
|
8
|
+
passphrase: 'swarm_master_passphrase',
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
// Listen to swarm-wide events
|
|
12
|
+
swarm.on('agent:registered', (evt) => {
|
|
13
|
+
console.log(`[EVENT] Registered Agent: ${evt.agentId} (Role: ${evt.role}, Scope: ${evt.scope})`);
|
|
14
|
+
});
|
|
15
|
+
swarm.on('signal:dispatched', (evt) => {
|
|
16
|
+
console.log(`[EVENT] Signal Dispatched: ${evt.senderAgentId} -> ${evt.targetAgentId} (Routed: ${evt.routed})`);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
console.log('\n--- [Step 2] Spawning Autonomous Agent Team ---');
|
|
20
|
+
const coordinator = await swarm.registerAgent('coordinator_agent', {
|
|
21
|
+
role: 'coordinator',
|
|
22
|
+
permissions: ['read', 'write', 'broadcast'],
|
|
23
|
+
});
|
|
24
|
+
const trader = await swarm.registerAgent('solana_trader', {
|
|
25
|
+
role: 'trader',
|
|
26
|
+
permissions: ['read', 'write'],
|
|
27
|
+
});
|
|
28
|
+
const auditor = await swarm.registerAgent('security_auditor', {
|
|
29
|
+
role: 'auditor',
|
|
30
|
+
permissions: ['read'],
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
console.log('\nSwarm Topology:');
|
|
34
|
+
console.log(JSON.stringify(swarm.getTopology(), null, 2));
|
|
35
|
+
|
|
36
|
+
console.log('\n--- [Step 3] Synchronizing Swarm-Wide Protocol Rules ---');
|
|
37
|
+
await swarm.syncGlobalRule('Swarm Consensus Rule 1: Always verify zero-knowledge proofs before state transition');
|
|
38
|
+
console.log('✓ Rule synchronized across all swarm agents with write permissions');
|
|
39
|
+
|
|
40
|
+
console.log('\n--- [Step 4] Dispatching Encrypted Coordination Signals ---');
|
|
41
|
+
await swarm.dispatchSignal(
|
|
42
|
+
'coordinator_agent',
|
|
43
|
+
'solana_trader',
|
|
44
|
+
'DISPATCH_ORDER: Execute 15 SOL buy on Raydium with max 0.25% slippage'
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
console.log('\n--- [Step 5] Recalling Swarm Knowledge from Trader Agent ---');
|
|
48
|
+
const traderRecall = await trader.recall('Swarm Consensus Rule');
|
|
49
|
+
console.log(`Trader recalled ${traderRecall.length} global consensus rules:`);
|
|
50
|
+
traderRecall.forEach(r => console.log(` - [${r.scope}] ${r.text}`));
|
|
51
|
+
|
|
52
|
+
console.log('\n--- [Step 6] Shutting Down Swarm ---');
|
|
53
|
+
await swarm.shutdown();
|
|
54
|
+
console.log('✓ Swarm shutdown complete!');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example 02: Cross-Model Memory Passport
|
|
3
|
+
* Demonstrates creating a portable passport bundle and compiling
|
|
4
|
+
* scoped context packs for downstream AI model injection.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { createVault, remember } from '../packages/vault/src/index.js';
|
|
8
|
+
import { createPassport, compileContextPack } from '../packages/passport/src/index.js';
|
|
9
|
+
|
|
10
|
+
console.log('=== Enigma Cross-Model Memory Passport ===\n');
|
|
11
|
+
|
|
12
|
+
// 1. Setup vault with cross-domain knowledge
|
|
13
|
+
const vault = createVault({
|
|
14
|
+
subject_id: 'developer_101',
|
|
15
|
+
policy_id: 'cross_model_passport_v1',
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
await remember({
|
|
19
|
+
vault,
|
|
20
|
+
text: 'Always write TypeScript with strict types and zero any.',
|
|
21
|
+
tags: ['typescript', 'coding_standards'],
|
|
22
|
+
importance: 1.0,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
await remember({
|
|
26
|
+
vault,
|
|
27
|
+
text: 'Production API endpoints use rate limiting of 100 req/min per IP.',
|
|
28
|
+
tags: ['api', 'architecture', 'security'],
|
|
29
|
+
importance: 0.85,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// 2. Create standardized Memory Passport
|
|
33
|
+
const passport = createPassport({
|
|
34
|
+
vault,
|
|
35
|
+
passport_id: 'passport_dev_101',
|
|
36
|
+
owner: {
|
|
37
|
+
subject_id: 'developer_101',
|
|
38
|
+
display_name: 'Lead AI Engineer',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
console.log('1. Generated Standard Memory Passport:');
|
|
43
|
+
console.log(' - Schema: ', passport.schema);
|
|
44
|
+
console.log(' - Passport ID: ', passport.passport_id);
|
|
45
|
+
console.log(' - Owner Subject: ', passport.owner.subject_id);
|
|
46
|
+
console.log(' - Active Set Root: ', passport.vault.active_set_root.slice(0, 32) + '...');
|
|
47
|
+
console.log(' - Active Addresses:', passport.active_memory_addresses.length, 'atoms\n');
|
|
48
|
+
|
|
49
|
+
// 3. Compile scoped context pack for model consumption
|
|
50
|
+
const contextPack = await compileContextPack({
|
|
51
|
+
vault,
|
|
52
|
+
passport,
|
|
53
|
+
query: 'TypeScript guidelines',
|
|
54
|
+
purpose: 'code_generation_prompt',
|
|
55
|
+
max_estimated_tokens: 500,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
console.log('2. Compiled Scoped Context Pack:');
|
|
59
|
+
console.log(' - Context Pack ID: ', contextPack.context_pack_id);
|
|
60
|
+
console.log(' - Memories included:', contextPack.memories.length);
|
|
61
|
+
console.log(' - Model Target: ', contextPack.model);
|
|
62
|
+
console.log(' - Active Set Root: ', contextPack.active_set_root.slice(0, 32) + '...');
|
|
63
|
+
|
|
64
|
+
console.log('\n✔ Successfully created portable passport and compiled scoped context pack!');
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Example 3: LangChain Sovereign Memory Integration
|
|
2
|
+
import { Enigma, EnigmaLangChainMemory } from '../../packages/sdk/src/index.js';
|
|
3
|
+
|
|
4
|
+
async function main() {
|
|
5
|
+
console.log('--- [Step 1] Connecting Enigma Agent Instance ---');
|
|
6
|
+
const enigma = await Enigma.connect({
|
|
7
|
+
scope: 'langchain.assistant',
|
|
8
|
+
passphrase: 'langchain_demo_passphrase',
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
// Pre-seed agent with domain knowledge
|
|
12
|
+
await enigma.remember('System Guidelines: The assistant always answers in concise technical bullet points.');
|
|
13
|
+
await enigma.remember('User Preference: The user prefers TypeScript over Python for smart contract bridges.');
|
|
14
|
+
|
|
15
|
+
console.log('\n--- [Step 2] Initializing EnigmaLangChainMemory Adapter ---');
|
|
16
|
+
const memory = new EnigmaLangChainMemory({
|
|
17
|
+
enigma,
|
|
18
|
+
memoryKey: 'chat_history',
|
|
19
|
+
maxTokens: 1000,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
console.log('\n--- [Step 3] Loading Memory Variables for Incoming Prompt ---');
|
|
23
|
+
const memoryVars = await memory.loadMemoryVariables({
|
|
24
|
+
input: 'What language should we use for our contract bridge?',
|
|
25
|
+
});
|
|
26
|
+
console.log('Loaded Context for LLM System Prompt:\n', memoryVars.chat_history);
|
|
27
|
+
|
|
28
|
+
console.log('\n--- [Step 4] Saving Conversational Dialogue Turn ---');
|
|
29
|
+
await memory.saveContext(
|
|
30
|
+
{ input: 'What language should we use for our contract bridge?' },
|
|
31
|
+
{ output: 'We should use TypeScript based on your configured project preference.' }
|
|
32
|
+
);
|
|
33
|
+
console.log('✓ Dialogue turn saved to sovereign encrypted memory');
|
|
34
|
+
|
|
35
|
+
console.log('\n--- [Step 5] Recalling Conversation History ---');
|
|
36
|
+
const recallResults = await enigma.recall('contract bridge language preference');
|
|
37
|
+
console.log('Recall Results:');
|
|
38
|
+
recallResults.forEach(r => console.log(` [${r.score * 100}% match]: ${r.text}`));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example 03: Poseidon Commitment & Enclave Zeroization
|
|
3
|
+
* Demonstrates canonical Circomlib Poseidon hashing, generating algebraic
|
|
4
|
+
* commitments, zeroizing keys in hardware enclave simulation, and verifying attestations.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
poseidon,
|
|
9
|
+
createPoseidonCommitment,
|
|
10
|
+
verifyPoseidonCommitment,
|
|
11
|
+
SimulatedEnclaveProvider,
|
|
12
|
+
AttestationVerifier,
|
|
13
|
+
} from '../packages/vault/src/index.js';
|
|
14
|
+
|
|
15
|
+
console.log('=== Enigma Poseidon & Enclave Zeroization ===\n');
|
|
16
|
+
|
|
17
|
+
// 1. Canonical Circomlib Poseidon Hash
|
|
18
|
+
const input1 = 1n;
|
|
19
|
+
const input2 = 2n;
|
|
20
|
+
const hashOutput = poseidon([input1, input2]);
|
|
21
|
+
|
|
22
|
+
console.log('1. Canonical Poseidon Hash for [1, 2]:');
|
|
23
|
+
console.log(' - Output BigInt:', hashOutput.toString());
|
|
24
|
+
console.log(' - Output Hex: ', '0x' + hashOutput.toString(16));
|
|
25
|
+
console.log(' - Circomlib Match:', hashOutput.toString(16) === '115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a', '\n');
|
|
26
|
+
|
|
27
|
+
// 2. Algebraic Commitment
|
|
28
|
+
const recordKey = '0x4a81f3e9c2049182393278913988636902269926943896585145788461521946';
|
|
29
|
+
const { commitment, salt } = createPoseidonCommitment(recordKey);
|
|
30
|
+
|
|
31
|
+
console.log('2. Generated Algebraic Poseidon Commitment:');
|
|
32
|
+
console.log(' - Commitment C:', commitment);
|
|
33
|
+
console.log(' - Salt (CSPRNG):', salt);
|
|
34
|
+
console.log(' - Verified: ', verifyPoseidonCommitment(commitment, recordKey, salt), '\n');
|
|
35
|
+
|
|
36
|
+
// 3. Hardware Enclave Key Zeroization
|
|
37
|
+
const enclave = new SimulatedEnclaveProvider({ simulationLabel: 'enigma_example' });
|
|
38
|
+
const secretRecord = await enclave.createRecord('CONFIDENTIAL_HEALTH_DATA_123', { tag: 'biomed' });
|
|
39
|
+
|
|
40
|
+
console.log('3. Stored Encrypted Record in Enclave:');
|
|
41
|
+
console.log(' - Record ID: ', secretRecord.recordId);
|
|
42
|
+
console.log(' - Commitment: ', secretRecord.commitment);
|
|
43
|
+
console.log(' - Ciphertext: ', secretRecord.ciphertext.slice(0, 32) + '...\n');
|
|
44
|
+
|
|
45
|
+
// Decrypt while active
|
|
46
|
+
const decrypted = await enclave.decryptRecord(
|
|
47
|
+
secretRecord.recordId,
|
|
48
|
+
secretRecord.ciphertext,
|
|
49
|
+
secretRecord.iv,
|
|
50
|
+
secretRecord.authTag
|
|
51
|
+
);
|
|
52
|
+
console.log('4. Decrypted while active:', decrypted);
|
|
53
|
+
|
|
54
|
+
// Zeroize key in memory
|
|
55
|
+
const attestation = await enclave.zeroizeRecord(secretRecord.recordId);
|
|
56
|
+
console.log('5. Zeroized key in enclave:');
|
|
57
|
+
console.log(' - Action: ', attestation.payload.action);
|
|
58
|
+
console.log(' - Nullifier Hash:', attestation.payload.nullifierHash);
|
|
59
|
+
console.log(' - Signed Quote: ', attestation.signature.slice(0, 32) + '...\n');
|
|
60
|
+
|
|
61
|
+
// Verify attestation
|
|
62
|
+
const verifyResult = AttestationVerifier.verify(attestation, {
|
|
63
|
+
allowSimulated: true,
|
|
64
|
+
allowlistedSimulatedKeyPem: enclave.publicKeyPem,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
console.log('6. Verified Deletion Attestation:');
|
|
68
|
+
console.log(' - Valid: ', verifyResult.valid);
|
|
69
|
+
console.log(' - Nullifier Hash:', verifyResult.nullifierHash);
|
|
70
|
+
|
|
71
|
+
console.log('\n✔ All Poseidon commitments and enclave zeroizations verified successfully!');
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Example 4: Python Autonomous Solana Trading Agent with Enigma Sovereign Memory
|
|
3
|
+
"""
|
|
4
|
+
import sys
|
|
5
|
+
import os
|
|
6
|
+
from enigma_sdk import EnigmaPythonSDK
|
|
7
|
+
|
|
8
|
+
def main():
|
|
9
|
+
print("--- [Step 1] Connecting Python Trading Agent to Sovereign Vault ---")
|
|
10
|
+
vault_file = os.path.abspath("./trader_vault.enc.json")
|
|
11
|
+
passphrase = "trader_secret_passphrase_2026"
|
|
12
|
+
|
|
13
|
+
trader = EnigmaPythonSDK.connect(
|
|
14
|
+
scope="agent.solana_arb",
|
|
15
|
+
storage_path=vault_file,
|
|
16
|
+
passphrase=passphrase
|
|
17
|
+
)
|
|
18
|
+
print(f"✓ Connected Python Agent: {trader.status()}")
|
|
19
|
+
|
|
20
|
+
print("\n--- [Step 2] Storing Trading Execution Rules in Encrypted Vault ---")
|
|
21
|
+
trader.remember("Arbitrage Directive: Minimum profit threshold is 18 bps net of priority fees", importance=1.0)
|
|
22
|
+
trader.remember("Execution Rule: Route DEX swaps via Jupiter aggregator to minimize price impact", importance=0.9)
|
|
23
|
+
trader.remember("Risk Limit: Maximum daily portfolio exposure is capped at 50 SOL", importance=1.0)
|
|
24
|
+
print(f"✓ Stored {len(trader._local_memories)} memory atoms encrypted at rest")
|
|
25
|
+
|
|
26
|
+
print("\n--- [Step 3] Recalling Trading Directives Before Execution ---")
|
|
27
|
+
query = "What is our minimum profit threshold for arbitrage swaps?"
|
|
28
|
+
print(f"Query: '{query}'")
|
|
29
|
+
results = trader.recall(query, top_k=2)
|
|
30
|
+
for idx, r in enumerate(results):
|
|
31
|
+
print(f" [Match #{idx + 1}] (Score: {r['score']}) [{r['scope']}]: {r['text']}")
|
|
32
|
+
|
|
33
|
+
print("\n--- [Step 4] Simulating Agent Restart ---")
|
|
34
|
+
trader_restart = EnigmaPythonSDK.connect(
|
|
35
|
+
scope="agent.solana_arb",
|
|
36
|
+
storage_path=vault_file,
|
|
37
|
+
passphrase=passphrase
|
|
38
|
+
)
|
|
39
|
+
recalled_after_restart = trader_restart.recall("portfolio exposure limits", top_k=1)
|
|
40
|
+
if recalled_after_restart:
|
|
41
|
+
print(f"✓ Successfully recalled across session restart: {recalled_after_restart[0]['text']}")
|
|
42
|
+
|
|
43
|
+
# Cleanup demo file
|
|
44
|
+
if os.path.exists(vault_file):
|
|
45
|
+
os.remove(vault_file)
|
|
46
|
+
print("✓ Python Trader Example completed successfully!")
|
|
47
|
+
|
|
48
|
+
if __name__ == "__main__":
|
|
49
|
+
main()
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Enigma Sovereign AI Memory — Developer Examples
|
|
2
|
+
|
|
3
|
+
Runnable developer examples demonstrating the **Enigma Sovereign AI Memory Architecture**, including TypeScript SDK, Python client, Multi-Agent Swarms, and LangChain memory adapters.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### Examples Directory
|
|
8
|
+
|
|
9
|
+
1. **`01-quickstart-agent`**: 3-line quickstart connecting an autonomous agent, storing encrypted directives, performing vector recall, and compiling token-budgeted prompt context.
|
|
10
|
+
```bash
|
|
11
|
+
node examples/01-quickstart-agent/index.mjs
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
2. **`02-multi-agent-swarm`**: Multi-agent team orchestration using `EnigmaSwarmOrchestrator` with Role-Based Access Control (RBAC), global rule consensus, and encrypted GhostMesh signal dispatching.
|
|
15
|
+
```bash
|
|
16
|
+
node examples/02-multi-agent-swarm/index.mjs
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
3. **`03-langchain-memory`**: Using `EnigmaLangChainMemory` to connect LangChain conversational chains directly to sovereign encrypted custody.
|
|
20
|
+
```bash
|
|
21
|
+
node examples/03-langchain-memory/index.mjs
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
4. **`04-python-trading-agent`**: Python autonomous trading agent remembering on-chain liquidity constraints and risk parameters with AES-256-GCM encrypted persistence.
|
|
25
|
+
```bash
|
|
26
|
+
PYTHONPATH=packages/sdk/python python examples/04-python-trading-agent/trader.py
|
|
27
|
+
```
|
|
@@ -21,6 +21,9 @@ jobs:
|
|
|
21
21
|
runs-on: ubuntu-latest
|
|
22
22
|
permissions:
|
|
23
23
|
contents: read
|
|
24
|
+
env:
|
|
25
|
+
# Deterministic, disposable CI-only credential; never reuse for real data.
|
|
26
|
+
ENIGMA_PASSPHRASE: enigma-ci-test-only-not-for-real-data
|
|
24
27
|
steps:
|
|
25
28
|
- name: Set up Node 24
|
|
26
29
|
uses: actions/setup-node@v4
|
|
@@ -46,8 +49,10 @@ jobs:
|
|
|
46
49
|
|
|
47
50
|
- name: Run public installer smoke path
|
|
48
51
|
run: |
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
PASSPHRASE_FILE="$RUNNER_TEMP/enigma-ci-passphrase"
|
|
53
|
+
(umask 077; printf '%s\n' "$ENIGMA_PASSPHRASE" > "$PASSPHRASE_FILE")
|
|
54
|
+
npx enigma test-drive --dry-run --passphrase-file "$PASSPHRASE_FILE"
|
|
55
|
+
npx enigma setup --passphrase-file "$PASSPHRASE_FILE" --overwrite
|
|
51
56
|
npx enigma doctor
|
|
52
57
|
echo "Next client-connect preview: npx enigma connect <client> --dry-run"
|
|
53
58
|
|