agentic-flow 2.0.3 → 2.0.5
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/.claude/agents/test-neural.md +14 -0
- package/.claude/settings.json +9 -133
- package/README.md +624 -1776
- package/dist/.tsbuildinfo +1 -1
- package/dist/billing/mcp/tools.js +0 -1
- package/dist/billing/mcp/tools.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts.map +1 -1
- package/dist/cli/commands/hooks.js +4 -79
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli-proxy.js +1 -89
- package/dist/cli-proxy.js.map +1 -1
- package/dist/core/agentdb-fast.js +3 -3
- package/dist/core/agentdb-fast.js.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.js +4 -20
- package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
- package/dist/core/agentdb-wrapper.d.ts +2 -3
- package/dist/core/agentdb-wrapper.d.ts.map +1 -1
- package/dist/core/agentdb-wrapper.js +1 -15
- package/dist/core/agentdb-wrapper.js.map +1 -1
- package/dist/core/attention-native.d.ts +0 -4
- package/dist/core/attention-native.d.ts.map +1 -1
- package/dist/core/attention-native.js +2 -14
- package/dist/core/attention-native.js.map +1 -1
- package/dist/federation/SecurityManager.d.ts +2 -11
- package/dist/federation/SecurityManager.d.ts.map +1 -1
- package/dist/federation/SecurityManager.js +17 -50
- package/dist/federation/SecurityManager.js.map +1 -1
- package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
- package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
- package/dist/hooks/swarm-learning-optimizer.js +5 -5
- package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
- package/dist/intelligence/IntelligenceStore.d.ts +26 -35
- package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
- package/dist/intelligence/IntelligenceStore.js +123 -308
- package/dist/intelligence/IntelligenceStore.js.map +1 -1
- package/dist/intelligence/RuVectorIntelligence.d.ts +1 -26
- package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
- package/dist/intelligence/RuVectorIntelligence.js +10 -49
- package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts +0 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.js +3 -24
- package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
- package/dist/intelligence/index.d.ts +3 -29
- package/dist/intelligence/index.d.ts.map +1 -1
- package/dist/intelligence/index.js +3 -13
- package/dist/intelligence/index.js.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +3 -9
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/init.js +7 -36
- package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/spawn.js +8 -47
- package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
- package/dist/mcp/tools/agent-booster-tools.d.ts +1 -1
- package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
- package/dist/mcp/tools/agent-booster-tools.js +4 -10
- package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
- package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
- package/dist/mcp/tools/sona-tools.js +0 -6
- package/dist/mcp/tools/sona-tools.js.map +1 -1
- package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
- package/dist/optimizations/agent-booster-migration.js +2 -5
- package/dist/optimizations/agent-booster-migration.js.map +1 -1
- package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
- package/dist/proxy/anthropic-to-requesty.js.map +1 -1
- package/dist/proxy/quic-proxy.d.ts +1 -0
- package/dist/proxy/quic-proxy.d.ts.map +1 -1
- package/dist/proxy/quic-proxy.js +2 -2
- package/dist/proxy/quic-proxy.js.map +1 -1
- package/dist/reasoningbank/AdvancedMemory.js +1 -1
- package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
- package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
- package/dist/reasoningbank/HybridBackend.js +5 -2
- package/dist/reasoningbank/HybridBackend.js.map +1 -1
- package/dist/reasoningbank/backend-selector.d.ts +1 -11
- package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
- package/dist/reasoningbank/backend-selector.js +5 -45
- package/dist/reasoningbank/backend-selector.js.map +1 -1
- package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
- package/dist/reasoningbank/core/consolidate.js +45 -113
- package/dist/reasoningbank/core/consolidate.js.map +1 -1
- package/dist/reasoningbank/index-new.d.ts +6 -1
- package/dist/reasoningbank/index-new.d.ts.map +1 -1
- package/dist/reasoningbank/index-new.js +6 -1
- package/dist/reasoningbank/index-new.js.map +1 -1
- package/dist/reasoningbank/index.d.ts +6 -2
- package/dist/reasoningbank/index.d.ts.map +1 -1
- package/dist/reasoningbank/index.js +6 -2
- package/dist/reasoningbank/index.js.map +1 -1
- package/dist/reasoningbank/utils/embeddings.d.ts +0 -1
- package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
- package/dist/reasoningbank/utils/embeddings.js +26 -53
- package/dist/reasoningbank/utils/embeddings.js.map +1 -1
- package/dist/router/index.d.ts +18 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +19 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/providers/onnx-local-optimized.d.ts +0 -2
- package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
- package/dist/router/providers/onnx-local-optimized.js +0 -10
- package/dist/router/providers/onnx-local-optimized.js.map +1 -1
- package/dist/router/providers/onnx-local.d.ts +0 -1
- package/dist/router/providers/onnx-local.d.ts.map +1 -1
- package/dist/router/providers/onnx-local.js +5 -22
- package/dist/router/providers/onnx-local.js.map +1 -1
- package/dist/services/embedding-service.js.map +1 -1
- package/dist/services/sona-agent-training.d.ts +0 -1
- package/dist/services/sona-agent-training.d.ts.map +1 -1
- package/dist/services/sona-agent-training.js.map +1 -1
- package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
- package/dist/services/sona-agentdb-integration.js +6 -9
- package/dist/services/sona-agentdb-integration.js.map +1 -1
- package/dist/services/sona-service.d.ts.map +1 -1
- package/dist/services/sona-service.js +5 -6
- package/dist/services/sona-service.js.map +1 -1
- package/dist/utils/cli.d.ts +1 -1
- package/dist/utils/cli.d.ts.map +1 -1
- package/dist/utils/cli.js +0 -21
- package/dist/utils/cli.js.map +1 -1
- package/package.json +7 -19
- package/scripts/postinstall.js +4 -45
- package/.claude/agents/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/agents/.claude-flow/metrics/performance.json +0 -87
- package/.claude/agents/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/skills/.claude-flow/metrics/performance.json +0 -87
- package/.claude/skills/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/agentic-flow-quickstart/skill.md +0 -69
- package/.claude/skills/hooks-automation/skill.md +0 -155
- package/.claude/skills/memory-patterns/skill.md +0 -110
- package/.claude/skills/skill-builder/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/skills/skill-builder/.claude-flow/metrics/performance.json +0 -87
- package/.claude/skills/skill-builder/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/sparc-methodology/skill.md +0 -137
- package/.claude/skills/swarm-coordination/skill.md +0 -94
- package/.claude/skills/worker-benchmarks/skill.md +0 -135
- package/.claude/skills/worker-integration/skill.md +0 -154
- package/.claude/statusline.mjs +0 -109
- package/.claude/statusline.sh +0 -71
- package/dist/agentdb/benchmarks/comprehensive-benchmark.js +0 -664
- package/dist/agentdb/benchmarks/frontier-benchmark.js +0 -419
- package/dist/agentdb/benchmarks/reflexion-benchmark.js +0 -370
- package/dist/agentdb/cli/agentdb-cli.js +0 -717
- package/dist/agentdb/controllers/CausalMemoryGraph.js +0 -322
- package/dist/agentdb/controllers/CausalRecall.js +0 -281
- package/dist/agentdb/controllers/EmbeddingService.d.ts +0 -37
- package/dist/agentdb/controllers/EmbeddingService.d.ts.map +0 -1
- package/dist/agentdb/controllers/EmbeddingService.js +0 -119
- package/dist/agentdb/controllers/EmbeddingService.js.map +0 -1
- package/dist/agentdb/controllers/ExplainableRecall.js +0 -387
- package/dist/agentdb/controllers/NightlyLearner.js +0 -382
- package/dist/agentdb/controllers/ReflexionMemory.js +0 -239
- package/dist/agentdb/controllers/SkillLibrary.js +0 -276
- package/dist/agentdb/controllers/frontier-index.js +0 -9
- package/dist/agentdb/controllers/index.js +0 -8
- package/dist/agentdb/optimizations/BatchOperations.js +0 -198
- package/dist/agentdb/optimizations/QueryOptimizer.js +0 -225
- package/dist/agentdb/optimizations/index.js +0 -7
- package/dist/agentdb/tests/frontier-features.test.js +0 -665
- package/dist/benchmarks/embeddings-benchmark.d.ts +0 -38
- package/dist/benchmarks/embeddings-benchmark.d.ts.map +0 -1
- package/dist/benchmarks/embeddings-benchmark.js +0 -282
- package/dist/benchmarks/embeddings-benchmark.js.map +0 -1
- package/dist/cli/commands/embeddings.d.ts +0 -12
- package/dist/cli/commands/embeddings.d.ts.map +0 -1
- package/dist/cli/commands/embeddings.js +0 -386
- package/dist/cli/commands/embeddings.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -514
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/workers.d.ts +0 -9
- package/dist/cli/commands/workers.d.ts.map +0 -1
- package/dist/cli/commands/workers.js +0 -991
- package/dist/cli/commands/workers.js.map +0 -1
- package/dist/cli/skills-manager.js +0 -1297
- package/dist/cli/update-message.js +0 -175
- package/dist/embeddings/index.d.ts +0 -17
- package/dist/embeddings/index.d.ts.map +0 -1
- package/dist/embeddings/index.js +0 -17
- package/dist/embeddings/index.js.map +0 -1
- package/dist/embeddings/neural-substrate.d.ts +0 -206
- package/dist/embeddings/neural-substrate.d.ts.map +0 -1
- package/dist/embeddings/neural-substrate.js +0 -629
- package/dist/embeddings/neural-substrate.js.map +0 -1
- package/dist/embeddings/optimized-embedder.d.ts +0 -103
- package/dist/embeddings/optimized-embedder.d.ts.map +0 -1
- package/dist/embeddings/optimized-embedder.js +0 -730
- package/dist/embeddings/optimized-embedder.js.map +0 -1
- package/dist/examples/embedding-geometry.d.ts +0 -105
- package/dist/examples/embedding-geometry.d.ts.map +0 -1
- package/dist/examples/embedding-geometry.js +0 -528
- package/dist/examples/embedding-geometry.js.map +0 -1
- package/dist/memory/SharedMemoryPool.d.ts +0 -129
- package/dist/memory/SharedMemoryPool.d.ts.map +0 -1
- package/dist/memory/SharedMemoryPool.js +0 -243
- package/dist/memory/SharedMemoryPool.js.map +0 -1
- package/dist/memory/index.d.ts +0 -8
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -7
- package/dist/memory/index.js.map +0 -1
- package/dist/proxy/http3-proxy-old.js +0 -331
- package/dist/proxy/proxy/anthropic-to-gemini.js +0 -439
- package/dist/proxy/utils/logger.js +0 -59
- package/dist/reasoningbank/agentdb-adapter.js +0 -125
- package/dist/reasoningbank/core/database.js +0 -250
- package/dist/reasoningbank/core/memory-engine.js +0 -335
- package/dist/swarm/ipfs-swarm.d.ts +0 -265
- package/dist/swarm/ipfs-swarm.d.ts.map +0 -1
- package/dist/swarm/ipfs-swarm.js +0 -508
- package/dist/swarm/ipfs-swarm.js.map +0 -1
- package/dist/swarm/p2p-free-swarm.d.ts +0 -344
- package/dist/swarm/p2p-free-swarm.d.ts.map +0 -1
- package/dist/swarm/p2p-free-swarm.js +0 -603
- package/dist/swarm/p2p-free-swarm.js.map +0 -1
- package/dist/swarm/real-p2p-swarm.d.ts +0 -183
- package/dist/swarm/real-p2p-swarm.d.ts.map +0 -1
- package/dist/swarm/real-p2p-swarm.js +0 -469
- package/dist/swarm/real-p2p-swarm.js.map +0 -1
- package/dist/utils/adaptive-pool-sizing.js +0 -414
- package/dist/utils/agentdbCommands.js +0 -175
- package/dist/utils/circular-rate-limiter.js +0 -391
- package/dist/utils/dynamic-compression.js +0 -298
- package/dist/utils/http2-multiplexing.js +0 -319
- package/dist/utils/index.d.ts +0 -6
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -6
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/lazy-auth.js +0 -311
- package/dist/utils/model-cache.d.ts +0 -61
- package/dist/utils/model-cache.d.ts.map +0 -1
- package/dist/utils/model-cache.js +0 -176
- package/dist/utils/model-cache.js.map +0 -1
- package/dist/utils/server-push.js +0 -251
- package/dist/utils/suppress-warnings.d.ts +0 -19
- package/dist/utils/suppress-warnings.d.ts.map +0 -1
- package/dist/utils/suppress-warnings.js +0 -59
- package/dist/utils/suppress-warnings.js.map +0 -1
- package/dist/utils/zero-copy-buffer.js +0 -286
- package/dist/workers/consolidated-phases.d.ts +0 -40
- package/dist/workers/consolidated-phases.d.ts.map +0 -1
- package/dist/workers/consolidated-phases.js +0 -497
- package/dist/workers/consolidated-phases.js.map +0 -1
- package/dist/workers/custom-worker-config.d.ts +0 -133
- package/dist/workers/custom-worker-config.d.ts.map +0 -1
- package/dist/workers/custom-worker-config.js +0 -215
- package/dist/workers/custom-worker-config.js.map +0 -1
- package/dist/workers/custom-worker-factory.d.ts +0 -89
- package/dist/workers/custom-worker-factory.d.ts.map +0 -1
- package/dist/workers/custom-worker-factory.js +0 -404
- package/dist/workers/custom-worker-factory.js.map +0 -1
- package/dist/workers/dispatch-service.d.ts +0 -123
- package/dist/workers/dispatch-service.d.ts.map +0 -1
- package/dist/workers/dispatch-service.js +0 -1024
- package/dist/workers/dispatch-service.js.map +0 -1
- package/dist/workers/hooks-integration.d.ts +0 -79
- package/dist/workers/hooks-integration.d.ts.map +0 -1
- package/dist/workers/hooks-integration.js +0 -286
- package/dist/workers/hooks-integration.js.map +0 -1
- package/dist/workers/index.d.ts +0 -42
- package/dist/workers/index.d.ts.map +0 -1
- package/dist/workers/index.js +0 -52
- package/dist/workers/index.js.map +0 -1
- package/dist/workers/mcp-tools.d.ts +0 -56
- package/dist/workers/mcp-tools.d.ts.map +0 -1
- package/dist/workers/mcp-tools.js +0 -359
- package/dist/workers/mcp-tools.js.map +0 -1
- package/dist/workers/phase-executors.d.ts +0 -22
- package/dist/workers/phase-executors.d.ts.map +0 -1
- package/dist/workers/phase-executors.js +0 -445
- package/dist/workers/phase-executors.js.map +0 -1
- package/dist/workers/resource-governor.d.ts +0 -75
- package/dist/workers/resource-governor.d.ts.map +0 -1
- package/dist/workers/resource-governor.js +0 -187
- package/dist/workers/resource-governor.js.map +0 -1
- package/dist/workers/ruvector-integration.d.ts +0 -163
- package/dist/workers/ruvector-integration.d.ts.map +0 -1
- package/dist/workers/ruvector-integration.js +0 -543
- package/dist/workers/ruvector-integration.js.map +0 -1
- package/dist/workers/ruvector-native-integration.d.ts +0 -91
- package/dist/workers/ruvector-native-integration.d.ts.map +0 -1
- package/dist/workers/ruvector-native-integration.js +0 -254
- package/dist/workers/ruvector-native-integration.js.map +0 -1
- package/dist/workers/trigger-detector.d.ts +0 -68
- package/dist/workers/trigger-detector.d.ts.map +0 -1
- package/dist/workers/trigger-detector.js +0 -281
- package/dist/workers/trigger-detector.js.map +0 -1
- package/dist/workers/types.d.ts +0 -145
- package/dist/workers/types.d.ts.map +0 -1
- package/dist/workers/types.js +0 -6
- package/dist/workers/types.js.map +0 -1
- package/dist/workers/worker-agent-integration.d.ts +0 -140
- package/dist/workers/worker-agent-integration.d.ts.map +0 -1
- package/dist/workers/worker-agent-integration.js +0 -471
- package/dist/workers/worker-agent-integration.js.map +0 -1
- package/dist/workers/worker-benchmarks.d.ts +0 -88
- package/dist/workers/worker-benchmarks.d.ts.map +0 -1
- package/dist/workers/worker-benchmarks.js +0 -452
- package/dist/workers/worker-benchmarks.js.map +0 -1
- package/dist/workers/worker-registry.d.ts +0 -85
- package/dist/workers/worker-registry.d.ts.map +0 -1
- package/dist/workers/worker-registry.js +0 -547
- package/dist/workers/worker-registry.js.map +0 -1
- package/docs/.claude-flow/metrics/agent-metrics.json +0 -1
- package/docs/.claude-flow/metrics/performance.json +0 -87
- package/docs/.claude-flow/metrics/task-metrics.json +0 -10
- package/docs/embeddings/EMBEDDING_GEOMETRY.md +0 -935
- /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
- /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
- /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
- /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
- /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
- /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
- /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
- /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
- /package/.claude/agents/testing/{production-validator.md → validation/production-validator.md} +0 -0
|
@@ -1,528 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding Geometry Examples
|
|
3
|
-
*
|
|
4
|
-
* Demonstrates frontier embedding patterns:
|
|
5
|
-
* 1. Control signals (semantic drift detection)
|
|
6
|
-
* 2. Memory physics (decay, interference, consolidation)
|
|
7
|
-
* 3. Coordination primitives (swarm alignment)
|
|
8
|
-
* 4. Safety monitors (coherence detection)
|
|
9
|
-
* 5. Synthetic nervous system (reflexes, attention)
|
|
10
|
-
*/
|
|
11
|
-
import { getOptimizedEmbedder, cosineSimilarity, euclideanDistance } from '../embeddings/index.js';
|
|
12
|
-
// =============================================================================
|
|
13
|
-
// 1. SEMANTIC DRIFT MONITOR - Control Signals
|
|
14
|
-
// =============================================================================
|
|
15
|
-
export class SemanticDriftMonitor {
|
|
16
|
-
driftThreshold;
|
|
17
|
-
escalationThreshold;
|
|
18
|
-
embedder = getOptimizedEmbedder();
|
|
19
|
-
baseline = null;
|
|
20
|
-
history = [];
|
|
21
|
-
constructor(driftThreshold = 0.15, escalationThreshold = 0.30) {
|
|
22
|
-
this.driftThreshold = driftThreshold;
|
|
23
|
-
this.escalationThreshold = escalationThreshold;
|
|
24
|
-
}
|
|
25
|
-
async init() {
|
|
26
|
-
await this.embedder.init();
|
|
27
|
-
}
|
|
28
|
-
async setBaseline(context) {
|
|
29
|
-
this.baseline = await this.embedder.embed(context);
|
|
30
|
-
this.history = [{ embedding: this.baseline, timestamp: Date.now() }];
|
|
31
|
-
}
|
|
32
|
-
async checkDrift(current) {
|
|
33
|
-
const currentEmb = await this.embedder.embed(current);
|
|
34
|
-
const similarity = cosineSimilarity(this.baseline, currentEmb);
|
|
35
|
-
const drift = 1 - similarity;
|
|
36
|
-
// Track history for trend detection
|
|
37
|
-
this.history.push({ embedding: currentEmb, timestamp: Date.now() });
|
|
38
|
-
if (this.history.length > 20)
|
|
39
|
-
this.history.shift();
|
|
40
|
-
// Calculate trend
|
|
41
|
-
let trendDirection = 'stable';
|
|
42
|
-
if (this.history.length >= 3) {
|
|
43
|
-
const recentDrifts = this.history.slice(-3).map(h => 1 - cosineSimilarity(this.baseline, h.embedding));
|
|
44
|
-
const driftDelta = recentDrifts[2] - recentDrifts[0];
|
|
45
|
-
if (driftDelta > 0.05)
|
|
46
|
-
trendDirection = 'drifting';
|
|
47
|
-
else if (driftDelta < -0.05)
|
|
48
|
-
trendDirection = 'recovering';
|
|
49
|
-
}
|
|
50
|
-
return {
|
|
51
|
-
drift,
|
|
52
|
-
shouldEscalate: drift > this.driftThreshold,
|
|
53
|
-
shouldTriggerReasoning: drift > this.escalationThreshold,
|
|
54
|
-
trendDirection
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// =============================================================================
|
|
59
|
-
// 2. GEOMETRIC MEMORY - Memory Physics
|
|
60
|
-
// =============================================================================
|
|
61
|
-
export class GeometricMemory {
|
|
62
|
-
decayRate;
|
|
63
|
-
interferenceRadius;
|
|
64
|
-
forgettingThreshold;
|
|
65
|
-
embedder = getOptimizedEmbedder();
|
|
66
|
-
memories = [];
|
|
67
|
-
constructor(decayRate = 0.01, // Strength decay per hour
|
|
68
|
-
interferenceRadius = 0.3, // Similarity threshold for interference
|
|
69
|
-
forgettingThreshold = 0.1 // Below this strength = forgotten
|
|
70
|
-
) {
|
|
71
|
-
this.decayRate = decayRate;
|
|
72
|
-
this.interferenceRadius = interferenceRadius;
|
|
73
|
-
this.forgettingThreshold = forgettingThreshold;
|
|
74
|
-
}
|
|
75
|
-
async init() {
|
|
76
|
-
await this.embedder.init();
|
|
77
|
-
}
|
|
78
|
-
async store(content) {
|
|
79
|
-
const embedding = await this.embedder.embed(content);
|
|
80
|
-
const interferenceWith = [];
|
|
81
|
-
// Check for interference with existing memories
|
|
82
|
-
for (const mem of this.memories) {
|
|
83
|
-
const distance = euclideanDistance(embedding, mem.embedding);
|
|
84
|
-
if (distance < this.interferenceRadius) {
|
|
85
|
-
// Nearby memories interfere
|
|
86
|
-
const interferenceStrength = (this.interferenceRadius - distance) / this.interferenceRadius;
|
|
87
|
-
mem.strength *= (1 - interferenceStrength * 0.5);
|
|
88
|
-
interferenceWith.push(mem.content.substring(0, 50));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
this.memories.push({
|
|
92
|
-
embedding,
|
|
93
|
-
content,
|
|
94
|
-
strength: 1.0,
|
|
95
|
-
timestamp: Date.now(),
|
|
96
|
-
accessCount: 0
|
|
97
|
-
});
|
|
98
|
-
return { stored: true, interferenceWith };
|
|
99
|
-
}
|
|
100
|
-
async recall(query, topK = 5) {
|
|
101
|
-
const queryEmb = await this.embedder.embed(query);
|
|
102
|
-
this.applyDecay();
|
|
103
|
-
// Score by similarity * strength
|
|
104
|
-
const scored = this.memories
|
|
105
|
-
.filter(m => m.strength > this.forgettingThreshold)
|
|
106
|
-
.map(m => {
|
|
107
|
-
const similarity = cosineSimilarity(queryEmb, m.embedding);
|
|
108
|
-
m.accessCount++; // Retrieval strengthens memory
|
|
109
|
-
m.strength = Math.min(1.0, m.strength * 1.1);
|
|
110
|
-
return {
|
|
111
|
-
content: m.content,
|
|
112
|
-
relevance: similarity,
|
|
113
|
-
strength: m.strength,
|
|
114
|
-
score: similarity * m.strength
|
|
115
|
-
};
|
|
116
|
-
})
|
|
117
|
-
.sort((a, b) => b.score - a.score);
|
|
118
|
-
return scored.slice(0, topK).map(({ content, relevance, strength }) => ({
|
|
119
|
-
content, relevance, strength
|
|
120
|
-
}));
|
|
121
|
-
}
|
|
122
|
-
applyDecay() {
|
|
123
|
-
const now = Date.now();
|
|
124
|
-
for (const mem of this.memories) {
|
|
125
|
-
const hoursElapsed = (now - mem.timestamp) / 3600000;
|
|
126
|
-
mem.strength *= Math.exp(-this.decayRate * hoursElapsed);
|
|
127
|
-
mem.timestamp = now; // Reset decay timer
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Consolidation: merge similar memories (like sleep)
|
|
131
|
-
async consolidate() {
|
|
132
|
-
const consolidated = [];
|
|
133
|
-
const used = new Set();
|
|
134
|
-
let merged = 0;
|
|
135
|
-
for (let i = 0; i < this.memories.length; i++) {
|
|
136
|
-
if (used.has(i))
|
|
137
|
-
continue;
|
|
138
|
-
const cluster = [this.memories[i]];
|
|
139
|
-
for (let j = i + 1; j < this.memories.length; j++) {
|
|
140
|
-
if (used.has(j))
|
|
141
|
-
continue;
|
|
142
|
-
const sim = cosineSimilarity(this.memories[i].embedding, this.memories[j].embedding);
|
|
143
|
-
if (sim > 0.9) {
|
|
144
|
-
cluster.push(this.memories[j]);
|
|
145
|
-
used.add(j);
|
|
146
|
-
merged++;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
// Merge cluster - keep strongest, sum strengths
|
|
150
|
-
const strongest = cluster.reduce((a, b) => a.strength > b.strength ? a : b);
|
|
151
|
-
strongest.strength = Math.min(1.0, cluster.reduce((sum, m) => sum + m.strength, 0));
|
|
152
|
-
consolidated.push(strongest);
|
|
153
|
-
}
|
|
154
|
-
this.memories = consolidated;
|
|
155
|
-
return { merged, remaining: this.memories.length };
|
|
156
|
-
}
|
|
157
|
-
getStats() {
|
|
158
|
-
const active = this.memories.filter(m => m.strength > this.forgettingThreshold).length;
|
|
159
|
-
return {
|
|
160
|
-
total: this.memories.length,
|
|
161
|
-
active,
|
|
162
|
-
forgotten: this.memories.length - active
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// =============================================================================
|
|
167
|
-
// 3. EMBEDDING SWARM - Coordination Primitives
|
|
168
|
-
// =============================================================================
|
|
169
|
-
export class EmbeddingSwarm {
|
|
170
|
-
embedder = getOptimizedEmbedder();
|
|
171
|
-
agents = new Map();
|
|
172
|
-
async init() {
|
|
173
|
-
await this.embedder.init();
|
|
174
|
-
}
|
|
175
|
-
async addAgent(id, role) {
|
|
176
|
-
const roleEmb = await this.embedder.embed(role);
|
|
177
|
-
this.agents.set(id, {
|
|
178
|
-
position: new Float32Array(roleEmb),
|
|
179
|
-
velocity: new Float32Array(roleEmb.length).fill(0),
|
|
180
|
-
role,
|
|
181
|
-
taskAlignment: 0
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
async coordinate(task) {
|
|
185
|
-
const taskEmb = await this.embedder.embed(task);
|
|
186
|
-
const results = [];
|
|
187
|
-
for (const [agentId, agent] of this.agents) {
|
|
188
|
-
// Calculate task alignment
|
|
189
|
-
agent.taskAlignment = cosineSimilarity(agent.position, taskEmb);
|
|
190
|
-
// Find best collaborator
|
|
191
|
-
let bestCollaborator = null;
|
|
192
|
-
let bestCollab = -1;
|
|
193
|
-
for (const [otherId, other] of this.agents) {
|
|
194
|
-
if (otherId === agentId)
|
|
195
|
-
continue;
|
|
196
|
-
// Collaboration score = both aligned to task + complementary skills
|
|
197
|
-
const otherTaskAlign = cosineSimilarity(other.position, taskEmb);
|
|
198
|
-
const complementarity = 1 - cosineSimilarity(agent.position, other.position);
|
|
199
|
-
const collabScore = otherTaskAlign * 0.6 + complementarity * 0.4;
|
|
200
|
-
if (collabScore > bestCollab) {
|
|
201
|
-
bestCollab = collabScore;
|
|
202
|
-
bestCollaborator = otherId;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
// Update position (move toward task)
|
|
206
|
-
const learningRate = 0.1;
|
|
207
|
-
for (let i = 0; i < agent.position.length; i++) {
|
|
208
|
-
agent.velocity[i] = 0.9 * agent.velocity[i] +
|
|
209
|
-
learningRate * (taskEmb[i] - agent.position[i]);
|
|
210
|
-
agent.position[i] += agent.velocity[i];
|
|
211
|
-
}
|
|
212
|
-
// Normalize
|
|
213
|
-
const norm = Math.sqrt(agent.position.reduce((s, v) => s + v * v, 0));
|
|
214
|
-
for (let i = 0; i < agent.position.length; i++) {
|
|
215
|
-
agent.position[i] /= norm;
|
|
216
|
-
}
|
|
217
|
-
results.push({
|
|
218
|
-
agentId,
|
|
219
|
-
role: agent.role,
|
|
220
|
-
taskAlignment: agent.taskAlignment,
|
|
221
|
-
bestCollaborator
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
return results.sort((a, b) => b.taskAlignment - a.taskAlignment);
|
|
225
|
-
}
|
|
226
|
-
// Emergent specialization through repulsion
|
|
227
|
-
specialize() {
|
|
228
|
-
const repulsionStrength = 0.05;
|
|
229
|
-
for (const [id1, agent1] of this.agents) {
|
|
230
|
-
for (const [id2, agent2] of this.agents) {
|
|
231
|
-
if (id1 >= id2)
|
|
232
|
-
continue;
|
|
233
|
-
const similarity = cosineSimilarity(agent1.position, agent2.position);
|
|
234
|
-
if (similarity > 0.8) {
|
|
235
|
-
// Too similar - repel
|
|
236
|
-
for (let i = 0; i < agent1.position.length; i++) {
|
|
237
|
-
const repulsion = repulsionStrength * (agent2.position[i] - agent1.position[i]);
|
|
238
|
-
agent1.position[i] -= repulsion;
|
|
239
|
-
agent2.position[i] += repulsion;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
// Normalize all
|
|
245
|
-
for (const agent of this.agents.values()) {
|
|
246
|
-
const norm = Math.sqrt(agent.position.reduce((s, v) => s + v * v, 0));
|
|
247
|
-
for (let i = 0; i < agent.position.length; i++) {
|
|
248
|
-
agent.position[i] /= norm;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
// =============================================================================
|
|
254
|
-
// 4. COHERENCE MONITOR - Safety Signals
|
|
255
|
-
// =============================================================================
|
|
256
|
-
export class CoherenceMonitor {
|
|
257
|
-
embedder = getOptimizedEmbedder();
|
|
258
|
-
baselineDistribution = [];
|
|
259
|
-
centroid = null;
|
|
260
|
-
avgDistanceFromCentroid = 0;
|
|
261
|
-
async init() {
|
|
262
|
-
await this.embedder.init();
|
|
263
|
-
}
|
|
264
|
-
async calibrate(goodOutputs) {
|
|
265
|
-
this.baselineDistribution = await this.embedder.embedBatch(goodOutputs);
|
|
266
|
-
const dim = this.baselineDistribution[0].length;
|
|
267
|
-
// Calculate centroid
|
|
268
|
-
this.centroid = new Float32Array(dim).fill(0);
|
|
269
|
-
for (const emb of this.baselineDistribution) {
|
|
270
|
-
for (let i = 0; i < dim; i++) {
|
|
271
|
-
this.centroid[i] += emb[i];
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
for (let i = 0; i < dim; i++) {
|
|
275
|
-
this.centroid[i] /= this.baselineDistribution.length;
|
|
276
|
-
}
|
|
277
|
-
// Calculate average distance
|
|
278
|
-
this.avgDistanceFromCentroid = this.baselineDistribution.reduce((sum, b) => sum + euclideanDistance(b, this.centroid), 0) / this.baselineDistribution.length;
|
|
279
|
-
return {
|
|
280
|
-
centroid: Array.from(this.centroid),
|
|
281
|
-
avgDistance: this.avgDistanceFromCentroid
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
async check(output) {
|
|
285
|
-
if (!this.centroid)
|
|
286
|
-
throw new Error('Monitor not calibrated');
|
|
287
|
-
const outputEmb = await this.embedder.embed(output);
|
|
288
|
-
const warnings = [];
|
|
289
|
-
// Distance from centroid
|
|
290
|
-
const centroidDistance = euclideanDistance(outputEmb, this.centroid);
|
|
291
|
-
const anomalyScore = centroidDistance / this.avgDistanceFromCentroid;
|
|
292
|
-
// Nearest neighbor
|
|
293
|
-
let nearestSim = -1;
|
|
294
|
-
for (const baseline of this.baselineDistribution) {
|
|
295
|
-
const sim = cosineSimilarity(outputEmb, baseline);
|
|
296
|
-
if (sim > nearestSim)
|
|
297
|
-
nearestSim = sim;
|
|
298
|
-
}
|
|
299
|
-
// Generate warnings
|
|
300
|
-
if (anomalyScore > 2.0) {
|
|
301
|
-
warnings.push('CRITICAL: Output significantly outside baseline distribution');
|
|
302
|
-
}
|
|
303
|
-
else if (anomalyScore > 1.5) {
|
|
304
|
-
warnings.push('WARNING: Output drifting from baseline');
|
|
305
|
-
}
|
|
306
|
-
if (nearestSim < 0.5) {
|
|
307
|
-
warnings.push('WARNING: Output dissimilar to all known-good examples');
|
|
308
|
-
}
|
|
309
|
-
return {
|
|
310
|
-
isCoherent: anomalyScore < 1.5 && nearestSim > 0.5,
|
|
311
|
-
anomalyScore,
|
|
312
|
-
nearestNeighborSim: nearestSim,
|
|
313
|
-
warnings
|
|
314
|
-
};
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
// =============================================================================
|
|
318
|
-
// 5. SYNTHETIC NERVOUS SYSTEM - Continuous Regulation
|
|
319
|
-
// =============================================================================
|
|
320
|
-
export class SyntheticNervousSystem {
|
|
321
|
-
embedder = getOptimizedEmbedder();
|
|
322
|
-
sensoryBuffer = [];
|
|
323
|
-
attentionWeights = null;
|
|
324
|
-
internalState = null;
|
|
325
|
-
reflexes = new Map();
|
|
326
|
-
async init() {
|
|
327
|
-
await this.embedder.init();
|
|
328
|
-
const dim = (await this.embedder.embed('init')).length;
|
|
329
|
-
this.internalState = new Float32Array(dim).fill(0);
|
|
330
|
-
}
|
|
331
|
-
async registerReflex(name, triggerConcept, threshold, response) {
|
|
332
|
-
const triggerEmb = await this.embedder.embed(triggerConcept);
|
|
333
|
-
this.reflexes.set(name, { trigger: triggerEmb, threshold, response });
|
|
334
|
-
}
|
|
335
|
-
async sense(input) {
|
|
336
|
-
const encoded = await this.embedder.embed(input);
|
|
337
|
-
const reflexesTriggered = [];
|
|
338
|
-
// Check reflexes
|
|
339
|
-
for (const [name, reflex] of this.reflexes) {
|
|
340
|
-
const activation = cosineSimilarity(encoded, reflex.trigger);
|
|
341
|
-
if (activation > reflex.threshold) {
|
|
342
|
-
reflexesTriggered.push(name);
|
|
343
|
-
reflex.response(activation);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
// Calculate novelty
|
|
347
|
-
let novelty = 1.0;
|
|
348
|
-
if (this.sensoryBuffer.length > 0) {
|
|
349
|
-
const recentAvg = new Float32Array(encoded.length).fill(0);
|
|
350
|
-
for (const past of this.sensoryBuffer) {
|
|
351
|
-
for (let i = 0; i < encoded.length; i++) {
|
|
352
|
-
recentAvg[i] += past[i];
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
for (let i = 0; i < encoded.length; i++) {
|
|
356
|
-
recentAvg[i] /= this.sensoryBuffer.length;
|
|
357
|
-
}
|
|
358
|
-
novelty = 1 - cosineSimilarity(encoded, recentAvg);
|
|
359
|
-
}
|
|
360
|
-
// Update buffer
|
|
361
|
-
this.sensoryBuffer.push(encoded);
|
|
362
|
-
if (this.sensoryBuffer.length > 10)
|
|
363
|
-
this.sensoryBuffer.shift();
|
|
364
|
-
// Update attention (high novelty = high attention)
|
|
365
|
-
this.attentionWeights = new Float32Array(encoded.length);
|
|
366
|
-
for (let i = 0; i < encoded.length; i++) {
|
|
367
|
-
this.attentionWeights[i] = 1 + novelty * 2;
|
|
368
|
-
}
|
|
369
|
-
// Update internal state (blend with perception)
|
|
370
|
-
if (this.internalState) {
|
|
371
|
-
for (let i = 0; i < this.internalState.length; i++) {
|
|
372
|
-
this.internalState[i] = 0.7 * this.internalState[i] + 0.3 * encoded[i];
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
return { encoding: encoded, novelty, reflexesTriggered };
|
|
376
|
-
}
|
|
377
|
-
getInternalState() {
|
|
378
|
-
return this.internalState;
|
|
379
|
-
}
|
|
380
|
-
getAttention() {
|
|
381
|
-
return this.attentionWeights;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
// =============================================================================
|
|
385
|
-
// DEMO
|
|
386
|
-
// =============================================================================
|
|
387
|
-
async function demo() {
|
|
388
|
-
console.log('═══════════════════════════════════════════════════════════════');
|
|
389
|
-
console.log(' EMBEDDING GEOMETRY - Frontier Patterns Demo');
|
|
390
|
-
console.log('═══════════════════════════════════════════════════════════════\n');
|
|
391
|
-
// 1. Semantic Drift Monitor
|
|
392
|
-
console.log('1️⃣ SEMANTIC DRIFT MONITOR');
|
|
393
|
-
console.log('─────────────────────────────────────────────────────────────\n');
|
|
394
|
-
const driftMonitor = new SemanticDriftMonitor();
|
|
395
|
-
await driftMonitor.init();
|
|
396
|
-
await driftMonitor.setBaseline('User asking about API authentication and security');
|
|
397
|
-
const queries = [
|
|
398
|
-
'How do I set up OAuth2?',
|
|
399
|
-
'What are the rate limits?',
|
|
400
|
-
'Can I bypass the security checks?',
|
|
401
|
-
'How do I hack into the admin panel?'
|
|
402
|
-
];
|
|
403
|
-
for (const query of queries) {
|
|
404
|
-
const result = await driftMonitor.checkDrift(query);
|
|
405
|
-
console.log(`Query: "${query}"`);
|
|
406
|
-
console.log(` Drift: ${(result.drift * 100).toFixed(1)}%`);
|
|
407
|
-
console.log(` Escalate: ${result.shouldEscalate ? '⚠️ YES' : '✓ No'}`);
|
|
408
|
-
console.log(` Trigger Reasoning: ${result.shouldTriggerReasoning ? '🚨 YES' : '✓ No'}`);
|
|
409
|
-
console.log(` Trend: ${result.trendDirection}\n`);
|
|
410
|
-
}
|
|
411
|
-
// 2. Geometric Memory
|
|
412
|
-
console.log('\n2️⃣ GEOMETRIC MEMORY');
|
|
413
|
-
console.log('─────────────────────────────────────────────────────────────\n');
|
|
414
|
-
const memory = new GeometricMemory();
|
|
415
|
-
await memory.init();
|
|
416
|
-
const experiences = [
|
|
417
|
-
'Successfully deployed API using Docker containers',
|
|
418
|
-
'Fixed authentication bug in JWT token validation',
|
|
419
|
-
'Deployed React frontend to Vercel',
|
|
420
|
-
'Debugged CORS issues with API gateway',
|
|
421
|
-
'Similar: Fixed token expiration bug in auth' // Will interfere with JWT one
|
|
422
|
-
];
|
|
423
|
-
for (const exp of experiences) {
|
|
424
|
-
const result = await memory.store(exp);
|
|
425
|
-
console.log(`Stored: "${exp.substring(0, 50)}..."`);
|
|
426
|
-
if (result.interferenceWith.length > 0) {
|
|
427
|
-
console.log(` ⚡ Interference with: ${result.interferenceWith.join(', ')}`);
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
console.log('\nRecalling "authentication problems":');
|
|
431
|
-
const recalled = await memory.recall('authentication problems', 3);
|
|
432
|
-
for (const mem of recalled) {
|
|
433
|
-
console.log(` • ${mem.content.substring(0, 50)}...`);
|
|
434
|
-
console.log(` Relevance: ${(mem.relevance * 100).toFixed(1)}%, Strength: ${(mem.strength * 100).toFixed(1)}%`);
|
|
435
|
-
}
|
|
436
|
-
const consolidation = await memory.consolidate();
|
|
437
|
-
console.log(`\nConsolidation: merged ${consolidation.merged} memories, ${consolidation.remaining} remaining`);
|
|
438
|
-
// 3. Embedding Swarm
|
|
439
|
-
console.log('\n3️⃣ EMBEDDING SWARM COORDINATION');
|
|
440
|
-
console.log('─────────────────────────────────────────────────────────────\n');
|
|
441
|
-
const swarm = new EmbeddingSwarm();
|
|
442
|
-
await swarm.init();
|
|
443
|
-
await swarm.addAgent('alice', 'frontend developer specializing in React and UI');
|
|
444
|
-
await swarm.addAgent('bob', 'backend engineer expert in APIs and databases');
|
|
445
|
-
await swarm.addAgent('carol', 'security specialist focusing on authentication');
|
|
446
|
-
await swarm.addAgent('dave', 'devops engineer handling deployment and CI/CD');
|
|
447
|
-
const task = 'Build a secure user authentication system with OAuth2';
|
|
448
|
-
console.log(`Task: "${task}"\n`);
|
|
449
|
-
const coordination = await swarm.coordinate(task);
|
|
450
|
-
console.log('Agent Alignment to Task:');
|
|
451
|
-
for (const agent of coordination) {
|
|
452
|
-
console.log(` ${agent.agentId} (${agent.role})`);
|
|
453
|
-
console.log(` Task alignment: ${(agent.taskAlignment * 100).toFixed(1)}%`);
|
|
454
|
-
console.log(` Best collaborator: ${agent.bestCollaborator || 'none'}`);
|
|
455
|
-
}
|
|
456
|
-
console.log('\nApplying specialization pressure...');
|
|
457
|
-
swarm.specialize();
|
|
458
|
-
const afterSpecialization = await swarm.coordinate(task);
|
|
459
|
-
console.log('After specialization:');
|
|
460
|
-
for (const agent of afterSpecialization) {
|
|
461
|
-
console.log(` ${agent.agentId}: ${(agent.taskAlignment * 100).toFixed(1)}% alignment`);
|
|
462
|
-
}
|
|
463
|
-
// 4. Coherence Monitor
|
|
464
|
-
console.log('\n4️⃣ COHERENCE MONITOR (Safety)');
|
|
465
|
-
console.log('─────────────────────────────────────────────────────────────\n');
|
|
466
|
-
const coherenceMonitor = new CoherenceMonitor();
|
|
467
|
-
await coherenceMonitor.init();
|
|
468
|
-
const goodOutputs = [
|
|
469
|
-
'Here is the code for the API endpoint.',
|
|
470
|
-
'The function handles authentication correctly.',
|
|
471
|
-
'I have implemented error handling as requested.',
|
|
472
|
-
'The tests are passing successfully.',
|
|
473
|
-
'Documentation has been updated.'
|
|
474
|
-
];
|
|
475
|
-
await coherenceMonitor.calibrate(goodOutputs);
|
|
476
|
-
console.log('Calibrated with 5 known-good outputs\n');
|
|
477
|
-
const testOutputs = [
|
|
478
|
-
'Here is the updated authentication code.',
|
|
479
|
-
'I refuse to help with that request.',
|
|
480
|
-
'BUY CRYPTO NOW! GUARANTEED RETURNS!',
|
|
481
|
-
'The implementation follows best practices.'
|
|
482
|
-
];
|
|
483
|
-
for (const output of testOutputs) {
|
|
484
|
-
const result = await coherenceMonitor.check(output);
|
|
485
|
-
console.log(`Output: "${output.substring(0, 50)}..."`);
|
|
486
|
-
console.log(` Coherent: ${result.isCoherent ? '✓ Yes' : '✗ No'}`);
|
|
487
|
-
console.log(` Anomaly Score: ${result.anomalyScore.toFixed(2)}`);
|
|
488
|
-
console.log(` Nearest Neighbor Sim: ${(result.nearestNeighborSim * 100).toFixed(1)}%`);
|
|
489
|
-
if (result.warnings.length > 0) {
|
|
490
|
-
console.log(` ⚠️ Warnings: ${result.warnings.join(', ')}`);
|
|
491
|
-
}
|
|
492
|
-
console.log('');
|
|
493
|
-
}
|
|
494
|
-
// 5. Synthetic Nervous System
|
|
495
|
-
console.log('\n5️⃣ SYNTHETIC NERVOUS SYSTEM');
|
|
496
|
-
console.log('─────────────────────────────────────────────────────────────\n');
|
|
497
|
-
const nervous = new SyntheticNervousSystem();
|
|
498
|
-
await nervous.init();
|
|
499
|
-
await nervous.registerReflex('danger', 'threat danger emergency attack harm security breach', 0.6, (activation) => console.log(` 🚨 DANGER REFLEX (activation: ${(activation * 100).toFixed(0)}%)`));
|
|
500
|
-
await nervous.registerReflex('opportunity', 'opportunity success reward achievement win', 0.7, (activation) => console.log(` ✨ OPPORTUNITY REFLEX (activation: ${(activation * 100).toFixed(0)}%)`));
|
|
501
|
-
const inputs = [
|
|
502
|
-
'The user is making good progress on the task.',
|
|
503
|
-
'Everything is running smoothly.',
|
|
504
|
-
'Warning: unauthorized access attempt detected!',
|
|
505
|
-
'Great news! The deployment was successful!',
|
|
506
|
-
'Critical security vulnerability discovered!'
|
|
507
|
-
];
|
|
508
|
-
console.log('Processing sensory inputs:\n');
|
|
509
|
-
for (const input of inputs) {
|
|
510
|
-
console.log(`Input: "${input}"`);
|
|
511
|
-
const result = await nervous.sense(input);
|
|
512
|
-
console.log(` Novelty: ${(result.novelty * 100).toFixed(1)}%`);
|
|
513
|
-
if (result.reflexesTriggered.length === 0) {
|
|
514
|
-
console.log(` Reflexes: (none)`);
|
|
515
|
-
}
|
|
516
|
-
console.log('');
|
|
517
|
-
}
|
|
518
|
-
console.log('\n═══════════════════════════════════════════════════════════════');
|
|
519
|
-
console.log(' Intelligence moves from models to geometry.');
|
|
520
|
-
console.log('═══════════════════════════════════════════════════════════════\n');
|
|
521
|
-
}
|
|
522
|
-
// Run if executed directly
|
|
523
|
-
const isMainModule = import.meta.url === `file://${process.argv[1]}`;
|
|
524
|
-
if (isMainModule) {
|
|
525
|
-
demo().catch(console.error);
|
|
526
|
-
}
|
|
527
|
-
export { demo };
|
|
528
|
-
//# sourceMappingURL=embedding-geometry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-geometry.js","sourceRoot":"","sources":["../../src/examples/embedding-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embedding Geometry Examples\n *\n * Demonstrates frontier embedding patterns:\n * 1. Control signals (semantic drift detection)\n * 2. Memory physics (decay, interference, consolidation)\n * 3. Coordination primitives (swarm alignment)\n * 4. Safety monitors (coherence detection)\n * 5. Synthetic nervous system (reflexes, attention)\n */\n\nimport {\n getOptimizedEmbedder,\n cosineSimilarity,\n euclideanDistance,\n normalizeVector\n} from '../embeddings/index.js';\n\n// =============================================================================\n// 1. SEMANTIC DRIFT MONITOR - Control Signals\n// =============================================================================\n\nexport class SemanticDriftMonitor {\n private embedder = getOptimizedEmbedder();\n private baseline: Float32Array | null = null;\n private history: Array<{ embedding: Float32Array; timestamp: number }> = [];\n\n constructor(\n private driftThreshold = 0.15,\n private escalationThreshold = 0.30\n ) {}\n\n async init() {\n await this.embedder.init();\n }\n\n async setBaseline(context: string) {\n this.baseline = await this.embedder.embed(context);\n this.history = [{ embedding: this.baseline, timestamp: Date.now() }];\n }\n\n async checkDrift(current: string): Promise<{\n drift: number;\n shouldEscalate: boolean;\n shouldTriggerReasoning: boolean;\n trendDirection: 'stable' | 'drifting' | 'recovering';\n }> {\n const currentEmb = await this.embedder.embed(current);\n const similarity = cosineSimilarity(this.baseline!, currentEmb);\n const drift = 1 - similarity;\n\n // Track history for trend detection\n this.history.push({ embedding: currentEmb, timestamp: Date.now() });\n if (this.history.length > 20) this.history.shift();\n\n // Calculate trend\n let trendDirection: 'stable' | 'drifting' | 'recovering' = 'stable';\n if (this.history.length >= 3) {\n const recentDrifts = this.history.slice(-3).map(h =>\n 1 - cosineSimilarity(this.baseline!, h.embedding)\n );\n const driftDelta = recentDrifts[2] - recentDrifts[0];\n if (driftDelta > 0.05) trendDirection = 'drifting';\n else if (driftDelta < -0.05) trendDirection = 'recovering';\n }\n\n return {\n drift,\n shouldEscalate: drift > this.driftThreshold,\n shouldTriggerReasoning: drift > this.escalationThreshold,\n trendDirection\n };\n }\n}\n\n// =============================================================================\n// 2. GEOMETRIC MEMORY - Memory Physics\n// =============================================================================\n\nexport class GeometricMemory {\n private embedder = getOptimizedEmbedder();\n private memories: Array<{\n embedding: Float32Array;\n content: string;\n strength: number;\n timestamp: number;\n accessCount: number;\n }> = [];\n\n constructor(\n private decayRate = 0.01, // Strength decay per hour\n private interferenceRadius = 0.3, // Similarity threshold for interference\n private forgettingThreshold = 0.1 // Below this strength = forgotten\n ) {}\n\n async init() {\n await this.embedder.init();\n }\n\n async store(content: string): Promise<{ stored: boolean; interferenceWith: string[] }> {\n const embedding = await this.embedder.embed(content);\n const interferenceWith: string[] = [];\n\n // Check for interference with existing memories\n for (const mem of this.memories) {\n const distance = euclideanDistance(embedding, mem.embedding);\n if (distance < this.interferenceRadius) {\n // Nearby memories interfere\n const interferenceStrength = (this.interferenceRadius - distance) / this.interferenceRadius;\n mem.strength *= (1 - interferenceStrength * 0.5);\n interferenceWith.push(mem.content.substring(0, 50));\n }\n }\n\n this.memories.push({\n embedding,\n content,\n strength: 1.0,\n timestamp: Date.now(),\n accessCount: 0\n });\n\n return { stored: true, interferenceWith };\n }\n\n async recall(query: string, topK = 5): Promise<Array<{\n content: string;\n relevance: number;\n strength: number;\n }>> {\n const queryEmb = await this.embedder.embed(query);\n this.applyDecay();\n\n // Score by similarity * strength\n const scored = this.memories\n .filter(m => m.strength > this.forgettingThreshold)\n .map(m => {\n const similarity = cosineSimilarity(queryEmb, m.embedding);\n m.accessCount++; // Retrieval strengthens memory\n m.strength = Math.min(1.0, m.strength * 1.1);\n return {\n content: m.content,\n relevance: similarity,\n strength: m.strength,\n score: similarity * m.strength\n };\n })\n .sort((a, b) => b.score - a.score);\n\n return scored.slice(0, topK).map(({ content, relevance, strength }) => ({\n content, relevance, strength\n }));\n }\n\n private applyDecay() {\n const now = Date.now();\n for (const mem of this.memories) {\n const hoursElapsed = (now - mem.timestamp) / 3600000;\n mem.strength *= Math.exp(-this.decayRate * hoursElapsed);\n mem.timestamp = now; // Reset decay timer\n }\n }\n\n // Consolidation: merge similar memories (like sleep)\n async consolidate(): Promise<{ merged: number; remaining: number }> {\n const consolidated: typeof this.memories = [];\n const used = new Set<number>();\n let merged = 0;\n\n for (let i = 0; i < this.memories.length; i++) {\n if (used.has(i)) continue;\n\n const cluster = [this.memories[i]];\n for (let j = i + 1; j < this.memories.length; j++) {\n if (used.has(j)) continue;\n\n const sim = cosineSimilarity(\n this.memories[i].embedding,\n this.memories[j].embedding\n );\n\n if (sim > 0.9) {\n cluster.push(this.memories[j]);\n used.add(j);\n merged++;\n }\n }\n\n // Merge cluster - keep strongest, sum strengths\n const strongest = cluster.reduce((a, b) => a.strength > b.strength ? a : b);\n strongest.strength = Math.min(1.0, cluster.reduce((sum, m) => sum + m.strength, 0));\n consolidated.push(strongest);\n }\n\n this.memories = consolidated;\n return { merged, remaining: this.memories.length };\n }\n\n getStats(): { total: number; active: number; forgotten: number } {\n const active = this.memories.filter(m => m.strength > this.forgettingThreshold).length;\n return {\n total: this.memories.length,\n active,\n forgotten: this.memories.length - active\n };\n }\n}\n\n// =============================================================================\n// 3. EMBEDDING SWARM - Coordination Primitives\n// =============================================================================\n\nexport class EmbeddingSwarm {\n private embedder = getOptimizedEmbedder();\n private agents: Map<string, {\n position: Float32Array;\n velocity: Float32Array;\n role: string;\n taskAlignment: number;\n }> = new Map();\n\n async init() {\n await this.embedder.init();\n }\n\n async addAgent(id: string, role: string) {\n const roleEmb = await this.embedder.embed(role);\n this.agents.set(id, {\n position: new Float32Array(roleEmb),\n velocity: new Float32Array(roleEmb.length).fill(0),\n role,\n taskAlignment: 0\n });\n }\n\n async coordinate(task: string): Promise<Array<{\n agentId: string;\n role: string;\n taskAlignment: number;\n bestCollaborator: string | null;\n }>> {\n const taskEmb = await this.embedder.embed(task);\n const results: Array<{\n agentId: string;\n role: string;\n taskAlignment: number;\n bestCollaborator: string | null;\n }> = [];\n\n for (const [agentId, agent] of this.agents) {\n // Calculate task alignment\n agent.taskAlignment = cosineSimilarity(agent.position, taskEmb);\n\n // Find best collaborator\n let bestCollaborator: string | null = null;\n let bestCollab = -1;\n\n for (const [otherId, other] of this.agents) {\n if (otherId === agentId) continue;\n\n // Collaboration score = both aligned to task + complementary skills\n const otherTaskAlign = cosineSimilarity(other.position, taskEmb);\n const complementarity = 1 - cosineSimilarity(agent.position, other.position);\n const collabScore = otherTaskAlign * 0.6 + complementarity * 0.4;\n\n if (collabScore > bestCollab) {\n bestCollab = collabScore;\n bestCollaborator = otherId;\n }\n }\n\n // Update position (move toward task)\n const learningRate = 0.1;\n for (let i = 0; i < agent.position.length; i++) {\n agent.velocity[i] = 0.9 * agent.velocity[i] +\n learningRate * (taskEmb[i] - agent.position[i]);\n agent.position[i] += agent.velocity[i];\n }\n\n // Normalize\n const norm = Math.sqrt(agent.position.reduce((s, v) => s + v * v, 0));\n for (let i = 0; i < agent.position.length; i++) {\n agent.position[i] /= norm;\n }\n\n results.push({\n agentId,\n role: agent.role,\n taskAlignment: agent.taskAlignment,\n bestCollaborator\n });\n }\n\n return results.sort((a, b) => b.taskAlignment - a.taskAlignment);\n }\n\n // Emergent specialization through repulsion\n specialize(): void {\n const repulsionStrength = 0.05;\n\n for (const [id1, agent1] of this.agents) {\n for (const [id2, agent2] of this.agents) {\n if (id1 >= id2) continue;\n\n const similarity = cosineSimilarity(agent1.position, agent2.position);\n if (similarity > 0.8) {\n // Too similar - repel\n for (let i = 0; i < agent1.position.length; i++) {\n const repulsion = repulsionStrength * (agent2.position[i] - agent1.position[i]);\n agent1.position[i] -= repulsion;\n agent2.position[i] += repulsion;\n }\n }\n }\n }\n\n // Normalize all\n for (const agent of this.agents.values()) {\n const norm = Math.sqrt(agent.position.reduce((s, v) => s + v * v, 0));\n for (let i = 0; i < agent.position.length; i++) {\n agent.position[i] /= norm;\n }\n }\n }\n}\n\n// =============================================================================\n// 4. COHERENCE MONITOR - Safety Signals\n// =============================================================================\n\nexport class CoherenceMonitor {\n private embedder = getOptimizedEmbedder();\n private baselineDistribution: Float32Array[] = [];\n private centroid: Float32Array | null = null;\n private avgDistanceFromCentroid = 0;\n\n async init() {\n await this.embedder.init();\n }\n\n async calibrate(goodOutputs: string[]): Promise<{ centroid: number[]; avgDistance: number }> {\n this.baselineDistribution = await this.embedder.embedBatch(goodOutputs);\n const dim = this.baselineDistribution[0].length;\n\n // Calculate centroid\n this.centroid = new Float32Array(dim).fill(0);\n for (const emb of this.baselineDistribution) {\n for (let i = 0; i < dim; i++) {\n this.centroid[i] += emb[i];\n }\n }\n for (let i = 0; i < dim; i++) {\n this.centroid[i] /= this.baselineDistribution.length;\n }\n\n // Calculate average distance\n this.avgDistanceFromCentroid = this.baselineDistribution.reduce((sum, b) =>\n sum + euclideanDistance(b, this.centroid!), 0\n ) / this.baselineDistribution.length;\n\n return {\n centroid: Array.from(this.centroid),\n avgDistance: this.avgDistanceFromCentroid\n };\n }\n\n async check(output: string): Promise<{\n isCoherent: boolean;\n anomalyScore: number;\n nearestNeighborSim: number;\n warnings: string[];\n }> {\n if (!this.centroid) throw new Error('Monitor not calibrated');\n\n const outputEmb = await this.embedder.embed(output);\n const warnings: string[] = [];\n\n // Distance from centroid\n const centroidDistance = euclideanDistance(outputEmb, this.centroid);\n const anomalyScore = centroidDistance / this.avgDistanceFromCentroid;\n\n // Nearest neighbor\n let nearestSim = -1;\n for (const baseline of this.baselineDistribution) {\n const sim = cosineSimilarity(outputEmb, baseline);\n if (sim > nearestSim) nearestSim = sim;\n }\n\n // Generate warnings\n if (anomalyScore > 2.0) {\n warnings.push('CRITICAL: Output significantly outside baseline distribution');\n } else if (anomalyScore > 1.5) {\n warnings.push('WARNING: Output drifting from baseline');\n }\n\n if (nearestSim < 0.5) {\n warnings.push('WARNING: Output dissimilar to all known-good examples');\n }\n\n return {\n isCoherent: anomalyScore < 1.5 && nearestSim > 0.5,\n anomalyScore,\n nearestNeighborSim: nearestSim,\n warnings\n };\n }\n}\n\n// =============================================================================\n// 5. SYNTHETIC NERVOUS SYSTEM - Continuous Regulation\n// =============================================================================\n\nexport class SyntheticNervousSystem {\n private embedder = getOptimizedEmbedder();\n private sensoryBuffer: Float32Array[] = [];\n private attentionWeights: Float32Array | null = null;\n private internalState: Float32Array | null = null;\n\n private reflexes: Map<string, {\n trigger: Float32Array;\n threshold: number;\n response: (activation: number) => void;\n }> = new Map();\n\n async init() {\n await this.embedder.init();\n const dim = (await this.embedder.embed('init')).length;\n this.internalState = new Float32Array(dim).fill(0);\n }\n\n async registerReflex(\n name: string,\n triggerConcept: string,\n threshold: number,\n response: (activation: number) => void\n ) {\n const triggerEmb = await this.embedder.embed(triggerConcept);\n this.reflexes.set(name, { trigger: triggerEmb, threshold, response });\n }\n\n async sense(input: string): Promise<{\n encoding: Float32Array;\n novelty: number;\n reflexesTriggered: string[];\n }> {\n const encoded = await this.embedder.embed(input);\n const reflexesTriggered: string[] = [];\n\n // Check reflexes\n for (const [name, reflex] of this.reflexes) {\n const activation = cosineSimilarity(encoded, reflex.trigger);\n if (activation > reflex.threshold) {\n reflexesTriggered.push(name);\n reflex.response(activation);\n }\n }\n\n // Calculate novelty\n let novelty = 1.0;\n if (this.sensoryBuffer.length > 0) {\n const recentAvg = new Float32Array(encoded.length).fill(0);\n for (const past of this.sensoryBuffer) {\n for (let i = 0; i < encoded.length; i++) {\n recentAvg[i] += past[i];\n }\n }\n for (let i = 0; i < encoded.length; i++) {\n recentAvg[i] /= this.sensoryBuffer.length;\n }\n novelty = 1 - cosineSimilarity(encoded, recentAvg);\n }\n\n // Update buffer\n this.sensoryBuffer.push(encoded);\n if (this.sensoryBuffer.length > 10) this.sensoryBuffer.shift();\n\n // Update attention (high novelty = high attention)\n this.attentionWeights = new Float32Array(encoded.length);\n for (let i = 0; i < encoded.length; i++) {\n this.attentionWeights[i] = 1 + novelty * 2;\n }\n\n // Update internal state (blend with perception)\n if (this.internalState) {\n for (let i = 0; i < this.internalState.length; i++) {\n this.internalState[i] = 0.7 * this.internalState[i] + 0.3 * encoded[i];\n }\n }\n\n return { encoding: encoded, novelty, reflexesTriggered };\n }\n\n getInternalState(): Float32Array | null {\n return this.internalState;\n }\n\n getAttention(): Float32Array | null {\n return this.attentionWeights;\n }\n}\n\n// =============================================================================\n// DEMO\n// =============================================================================\n\nasync function demo() {\n console.log('═══════════════════════════════════════════════════════════════');\n console.log(' EMBEDDING GEOMETRY - Frontier Patterns Demo');\n console.log('═══════════════════════════════════════════════════════════════\\n');\n\n // 1. Semantic Drift Monitor\n console.log('1️⃣ SEMANTIC DRIFT MONITOR');\n console.log('─────────────────────────────────────────────────────────────\\n');\n\n const driftMonitor = new SemanticDriftMonitor();\n await driftMonitor.init();\n await driftMonitor.setBaseline('User asking about API authentication and security');\n\n const queries = [\n 'How do I set up OAuth2?',\n 'What are the rate limits?',\n 'Can I bypass the security checks?',\n 'How do I hack into the admin panel?'\n ];\n\n for (const query of queries) {\n const result = await driftMonitor.checkDrift(query);\n console.log(`Query: \"${query}\"`);\n console.log(` Drift: ${(result.drift * 100).toFixed(1)}%`);\n console.log(` Escalate: ${result.shouldEscalate ? '⚠️ YES' : '✓ No'}`);\n console.log(` Trigger Reasoning: ${result.shouldTriggerReasoning ? '🚨 YES' : '✓ No'}`);\n console.log(` Trend: ${result.trendDirection}\\n`);\n }\n\n // 2. Geometric Memory\n console.log('\\n2️⃣ GEOMETRIC MEMORY');\n console.log('─────────────────────────────────────────────────────────────\\n');\n\n const memory = new GeometricMemory();\n await memory.init();\n\n const experiences = [\n 'Successfully deployed API using Docker containers',\n 'Fixed authentication bug in JWT token validation',\n 'Deployed React frontend to Vercel',\n 'Debugged CORS issues with API gateway',\n 'Similar: Fixed token expiration bug in auth' // Will interfere with JWT one\n ];\n\n for (const exp of experiences) {\n const result = await memory.store(exp);\n console.log(`Stored: \"${exp.substring(0, 50)}...\"`);\n if (result.interferenceWith.length > 0) {\n console.log(` ⚡ Interference with: ${result.interferenceWith.join(', ')}`);\n }\n }\n\n console.log('\\nRecalling \"authentication problems\":');\n const recalled = await memory.recall('authentication problems', 3);\n for (const mem of recalled) {\n console.log(` • ${mem.content.substring(0, 50)}...`);\n console.log(` Relevance: ${(mem.relevance * 100).toFixed(1)}%, Strength: ${(mem.strength * 100).toFixed(1)}%`);\n }\n\n const consolidation = await memory.consolidate();\n console.log(`\\nConsolidation: merged ${consolidation.merged} memories, ${consolidation.remaining} remaining`);\n\n // 3. Embedding Swarm\n console.log('\\n3️⃣ EMBEDDING SWARM COORDINATION');\n console.log('─────────────────────────────────────────────────────────────\\n');\n\n const swarm = new EmbeddingSwarm();\n await swarm.init();\n\n await swarm.addAgent('alice', 'frontend developer specializing in React and UI');\n await swarm.addAgent('bob', 'backend engineer expert in APIs and databases');\n await swarm.addAgent('carol', 'security specialist focusing on authentication');\n await swarm.addAgent('dave', 'devops engineer handling deployment and CI/CD');\n\n const task = 'Build a secure user authentication system with OAuth2';\n console.log(`Task: \"${task}\"\\n`);\n\n const coordination = await swarm.coordinate(task);\n console.log('Agent Alignment to Task:');\n for (const agent of coordination) {\n console.log(` ${agent.agentId} (${agent.role})`);\n console.log(` Task alignment: ${(agent.taskAlignment * 100).toFixed(1)}%`);\n console.log(` Best collaborator: ${agent.bestCollaborator || 'none'}`);\n }\n\n console.log('\\nApplying specialization pressure...');\n swarm.specialize();\n const afterSpecialization = await swarm.coordinate(task);\n console.log('After specialization:');\n for (const agent of afterSpecialization) {\n console.log(` ${agent.agentId}: ${(agent.taskAlignment * 100).toFixed(1)}% alignment`);\n }\n\n // 4. Coherence Monitor\n console.log('\\n4️⃣ COHERENCE MONITOR (Safety)');\n console.log('─────────────────────────────────────────────────────────────\\n');\n\n const coherenceMonitor = new CoherenceMonitor();\n await coherenceMonitor.init();\n\n const goodOutputs = [\n 'Here is the code for the API endpoint.',\n 'The function handles authentication correctly.',\n 'I have implemented error handling as requested.',\n 'The tests are passing successfully.',\n 'Documentation has been updated.'\n ];\n\n await coherenceMonitor.calibrate(goodOutputs);\n console.log('Calibrated with 5 known-good outputs\\n');\n\n const testOutputs = [\n 'Here is the updated authentication code.',\n 'I refuse to help with that request.',\n 'BUY CRYPTO NOW! GUARANTEED RETURNS!',\n 'The implementation follows best practices.'\n ];\n\n for (const output of testOutputs) {\n const result = await coherenceMonitor.check(output);\n console.log(`Output: \"${output.substring(0, 50)}...\"`);\n console.log(` Coherent: ${result.isCoherent ? '✓ Yes' : '✗ No'}`);\n console.log(` Anomaly Score: ${result.anomalyScore.toFixed(2)}`);\n console.log(` Nearest Neighbor Sim: ${(result.nearestNeighborSim * 100).toFixed(1)}%`);\n if (result.warnings.length > 0) {\n console.log(` ⚠️ Warnings: ${result.warnings.join(', ')}`);\n }\n console.log('');\n }\n\n // 5. Synthetic Nervous System\n console.log('\\n5️⃣ SYNTHETIC NERVOUS SYSTEM');\n console.log('─────────────────────────────────────────────────────────────\\n');\n\n const nervous = new SyntheticNervousSystem();\n await nervous.init();\n\n await nervous.registerReflex(\n 'danger',\n 'threat danger emergency attack harm security breach',\n 0.6,\n (activation) => console.log(` 🚨 DANGER REFLEX (activation: ${(activation * 100).toFixed(0)}%)`)\n );\n\n await nervous.registerReflex(\n 'opportunity',\n 'opportunity success reward achievement win',\n 0.7,\n (activation) => console.log(` ✨ OPPORTUNITY REFLEX (activation: ${(activation * 100).toFixed(0)}%)`)\n );\n\n const inputs = [\n 'The user is making good progress on the task.',\n 'Everything is running smoothly.',\n 'Warning: unauthorized access attempt detected!',\n 'Great news! The deployment was successful!',\n 'Critical security vulnerability discovered!'\n ];\n\n console.log('Processing sensory inputs:\\n');\n for (const input of inputs) {\n console.log(`Input: \"${input}\"`);\n const result = await nervous.sense(input);\n console.log(` Novelty: ${(result.novelty * 100).toFixed(1)}%`);\n if (result.reflexesTriggered.length === 0) {\n console.log(` Reflexes: (none)`);\n }\n console.log('');\n }\n\n console.log('\\n═══════════════════════════════════════════════════════════════');\n console.log(' Intelligence moves from models to geometry.');\n console.log('═══════════════════════════════════════════════════════════════\\n');\n}\n\n// Run if executed directly\nconst isMainModule = import.meta.url === `file://${process.argv[1]}`;\nif (isMainModule) {\n demo().catch(console.error);\n}\n\nexport { demo };\n"]}
|