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.
Files changed (322) hide show
  1. package/.claude/agents/test-neural.md +14 -0
  2. package/.claude/settings.json +9 -133
  3. package/README.md +624 -1776
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/billing/mcp/tools.js +0 -1
  6. package/dist/billing/mcp/tools.js.map +1 -1
  7. package/dist/cli/commands/hooks.d.ts.map +1 -1
  8. package/dist/cli/commands/hooks.js +4 -79
  9. package/dist/cli/commands/hooks.js.map +1 -1
  10. package/dist/cli-proxy.js +1 -89
  11. package/dist/cli-proxy.js.map +1 -1
  12. package/dist/core/agentdb-fast.js +3 -3
  13. package/dist/core/agentdb-fast.js.map +1 -1
  14. package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
  15. package/dist/core/agentdb-wrapper-enhanced.js +4 -20
  16. package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
  17. package/dist/core/agentdb-wrapper.d.ts +2 -3
  18. package/dist/core/agentdb-wrapper.d.ts.map +1 -1
  19. package/dist/core/agentdb-wrapper.js +1 -15
  20. package/dist/core/agentdb-wrapper.js.map +1 -1
  21. package/dist/core/attention-native.d.ts +0 -4
  22. package/dist/core/attention-native.d.ts.map +1 -1
  23. package/dist/core/attention-native.js +2 -14
  24. package/dist/core/attention-native.js.map +1 -1
  25. package/dist/federation/SecurityManager.d.ts +2 -11
  26. package/dist/federation/SecurityManager.d.ts.map +1 -1
  27. package/dist/federation/SecurityManager.js +17 -50
  28. package/dist/federation/SecurityManager.js.map +1 -1
  29. package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
  30. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
  31. package/dist/hooks/swarm-learning-optimizer.js +5 -5
  32. package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
  33. package/dist/intelligence/IntelligenceStore.d.ts +26 -35
  34. package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
  35. package/dist/intelligence/IntelligenceStore.js +123 -308
  36. package/dist/intelligence/IntelligenceStore.js.map +1 -1
  37. package/dist/intelligence/RuVectorIntelligence.d.ts +1 -26
  38. package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
  39. package/dist/intelligence/RuVectorIntelligence.js +10 -49
  40. package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
  41. package/dist/intelligence/agent-booster-enhanced.d.ts +0 -1
  42. package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
  43. package/dist/intelligence/agent-booster-enhanced.js +3 -24
  44. package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
  45. package/dist/intelligence/index.d.ts +3 -29
  46. package/dist/intelligence/index.d.ts.map +1 -1
  47. package/dist/intelligence/index.js +3 -13
  48. package/dist/intelligence/index.js.map +1 -1
  49. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  50. package/dist/mcp/claudeFlowSdkServer.js +3 -9
  51. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  52. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
  53. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
  54. package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
  55. package/dist/mcp/fastmcp/tools/swarm/init.js +7 -36
  56. package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
  57. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
  58. package/dist/mcp/fastmcp/tools/swarm/spawn.js +8 -47
  59. package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
  60. package/dist/mcp/tools/agent-booster-tools.d.ts +1 -1
  61. package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
  62. package/dist/mcp/tools/agent-booster-tools.js +4 -10
  63. package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
  64. package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
  65. package/dist/mcp/tools/sona-tools.js +0 -6
  66. package/dist/mcp/tools/sona-tools.js.map +1 -1
  67. package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
  68. package/dist/optimizations/agent-booster-migration.js +2 -5
  69. package/dist/optimizations/agent-booster-migration.js.map +1 -1
  70. package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
  71. package/dist/proxy/anthropic-to-requesty.js.map +1 -1
  72. package/dist/proxy/quic-proxy.d.ts +1 -0
  73. package/dist/proxy/quic-proxy.d.ts.map +1 -1
  74. package/dist/proxy/quic-proxy.js +2 -2
  75. package/dist/proxy/quic-proxy.js.map +1 -1
  76. package/dist/reasoningbank/AdvancedMemory.js +1 -1
  77. package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
  78. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
  79. package/dist/reasoningbank/HybridBackend.js +5 -2
  80. package/dist/reasoningbank/HybridBackend.js.map +1 -1
  81. package/dist/reasoningbank/backend-selector.d.ts +1 -11
  82. package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
  83. package/dist/reasoningbank/backend-selector.js +5 -45
  84. package/dist/reasoningbank/backend-selector.js.map +1 -1
  85. package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
  86. package/dist/reasoningbank/core/consolidate.js +45 -113
  87. package/dist/reasoningbank/core/consolidate.js.map +1 -1
  88. package/dist/reasoningbank/index-new.d.ts +6 -1
  89. package/dist/reasoningbank/index-new.d.ts.map +1 -1
  90. package/dist/reasoningbank/index-new.js +6 -1
  91. package/dist/reasoningbank/index-new.js.map +1 -1
  92. package/dist/reasoningbank/index.d.ts +6 -2
  93. package/dist/reasoningbank/index.d.ts.map +1 -1
  94. package/dist/reasoningbank/index.js +6 -2
  95. package/dist/reasoningbank/index.js.map +1 -1
  96. package/dist/reasoningbank/utils/embeddings.d.ts +0 -1
  97. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
  98. package/dist/reasoningbank/utils/embeddings.js +26 -53
  99. package/dist/reasoningbank/utils/embeddings.js.map +1 -1
  100. package/dist/router/index.d.ts +18 -0
  101. package/dist/router/index.d.ts.map +1 -0
  102. package/dist/router/index.js +19 -0
  103. package/dist/router/index.js.map +1 -0
  104. package/dist/router/providers/onnx-local-optimized.d.ts +0 -2
  105. package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
  106. package/dist/router/providers/onnx-local-optimized.js +0 -10
  107. package/dist/router/providers/onnx-local-optimized.js.map +1 -1
  108. package/dist/router/providers/onnx-local.d.ts +0 -1
  109. package/dist/router/providers/onnx-local.d.ts.map +1 -1
  110. package/dist/router/providers/onnx-local.js +5 -22
  111. package/dist/router/providers/onnx-local.js.map +1 -1
  112. package/dist/services/embedding-service.js.map +1 -1
  113. package/dist/services/sona-agent-training.d.ts +0 -1
  114. package/dist/services/sona-agent-training.d.ts.map +1 -1
  115. package/dist/services/sona-agent-training.js.map +1 -1
  116. package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
  117. package/dist/services/sona-agentdb-integration.js +6 -9
  118. package/dist/services/sona-agentdb-integration.js.map +1 -1
  119. package/dist/services/sona-service.d.ts.map +1 -1
  120. package/dist/services/sona-service.js +5 -6
  121. package/dist/services/sona-service.js.map +1 -1
  122. package/dist/utils/cli.d.ts +1 -1
  123. package/dist/utils/cli.d.ts.map +1 -1
  124. package/dist/utils/cli.js +0 -21
  125. package/dist/utils/cli.js.map +1 -1
  126. package/package.json +7 -19
  127. package/scripts/postinstall.js +4 -45
  128. package/.claude/agents/.claude-flow/metrics/agent-metrics.json +0 -1
  129. package/.claude/agents/.claude-flow/metrics/performance.json +0 -87
  130. package/.claude/agents/.claude-flow/metrics/task-metrics.json +0 -10
  131. package/.claude/skills/.claude-flow/metrics/agent-metrics.json +0 -1
  132. package/.claude/skills/.claude-flow/metrics/performance.json +0 -87
  133. package/.claude/skills/.claude-flow/metrics/task-metrics.json +0 -10
  134. package/.claude/skills/agentic-flow-quickstart/skill.md +0 -69
  135. package/.claude/skills/hooks-automation/skill.md +0 -155
  136. package/.claude/skills/memory-patterns/skill.md +0 -110
  137. package/.claude/skills/skill-builder/.claude-flow/metrics/agent-metrics.json +0 -1
  138. package/.claude/skills/skill-builder/.claude-flow/metrics/performance.json +0 -87
  139. package/.claude/skills/skill-builder/.claude-flow/metrics/task-metrics.json +0 -10
  140. package/.claude/skills/sparc-methodology/skill.md +0 -137
  141. package/.claude/skills/swarm-coordination/skill.md +0 -94
  142. package/.claude/skills/worker-benchmarks/skill.md +0 -135
  143. package/.claude/skills/worker-integration/skill.md +0 -154
  144. package/.claude/statusline.mjs +0 -109
  145. package/.claude/statusline.sh +0 -71
  146. package/dist/agentdb/benchmarks/comprehensive-benchmark.js +0 -664
  147. package/dist/agentdb/benchmarks/frontier-benchmark.js +0 -419
  148. package/dist/agentdb/benchmarks/reflexion-benchmark.js +0 -370
  149. package/dist/agentdb/cli/agentdb-cli.js +0 -717
  150. package/dist/agentdb/controllers/CausalMemoryGraph.js +0 -322
  151. package/dist/agentdb/controllers/CausalRecall.js +0 -281
  152. package/dist/agentdb/controllers/EmbeddingService.d.ts +0 -37
  153. package/dist/agentdb/controllers/EmbeddingService.d.ts.map +0 -1
  154. package/dist/agentdb/controllers/EmbeddingService.js +0 -119
  155. package/dist/agentdb/controllers/EmbeddingService.js.map +0 -1
  156. package/dist/agentdb/controllers/ExplainableRecall.js +0 -387
  157. package/dist/agentdb/controllers/NightlyLearner.js +0 -382
  158. package/dist/agentdb/controllers/ReflexionMemory.js +0 -239
  159. package/dist/agentdb/controllers/SkillLibrary.js +0 -276
  160. package/dist/agentdb/controllers/frontier-index.js +0 -9
  161. package/dist/agentdb/controllers/index.js +0 -8
  162. package/dist/agentdb/optimizations/BatchOperations.js +0 -198
  163. package/dist/agentdb/optimizations/QueryOptimizer.js +0 -225
  164. package/dist/agentdb/optimizations/index.js +0 -7
  165. package/dist/agentdb/tests/frontier-features.test.js +0 -665
  166. package/dist/benchmarks/embeddings-benchmark.d.ts +0 -38
  167. package/dist/benchmarks/embeddings-benchmark.d.ts.map +0 -1
  168. package/dist/benchmarks/embeddings-benchmark.js +0 -282
  169. package/dist/benchmarks/embeddings-benchmark.js.map +0 -1
  170. package/dist/cli/commands/embeddings.d.ts +0 -12
  171. package/dist/cli/commands/embeddings.d.ts.map +0 -1
  172. package/dist/cli/commands/embeddings.js +0 -386
  173. package/dist/cli/commands/embeddings.js.map +0 -1
  174. package/dist/cli/commands/init.d.ts +0 -8
  175. package/dist/cli/commands/init.d.ts.map +0 -1
  176. package/dist/cli/commands/init.js +0 -514
  177. package/dist/cli/commands/init.js.map +0 -1
  178. package/dist/cli/commands/workers.d.ts +0 -9
  179. package/dist/cli/commands/workers.d.ts.map +0 -1
  180. package/dist/cli/commands/workers.js +0 -991
  181. package/dist/cli/commands/workers.js.map +0 -1
  182. package/dist/cli/skills-manager.js +0 -1297
  183. package/dist/cli/update-message.js +0 -175
  184. package/dist/embeddings/index.d.ts +0 -17
  185. package/dist/embeddings/index.d.ts.map +0 -1
  186. package/dist/embeddings/index.js +0 -17
  187. package/dist/embeddings/index.js.map +0 -1
  188. package/dist/embeddings/neural-substrate.d.ts +0 -206
  189. package/dist/embeddings/neural-substrate.d.ts.map +0 -1
  190. package/dist/embeddings/neural-substrate.js +0 -629
  191. package/dist/embeddings/neural-substrate.js.map +0 -1
  192. package/dist/embeddings/optimized-embedder.d.ts +0 -103
  193. package/dist/embeddings/optimized-embedder.d.ts.map +0 -1
  194. package/dist/embeddings/optimized-embedder.js +0 -730
  195. package/dist/embeddings/optimized-embedder.js.map +0 -1
  196. package/dist/examples/embedding-geometry.d.ts +0 -105
  197. package/dist/examples/embedding-geometry.d.ts.map +0 -1
  198. package/dist/examples/embedding-geometry.js +0 -528
  199. package/dist/examples/embedding-geometry.js.map +0 -1
  200. package/dist/memory/SharedMemoryPool.d.ts +0 -129
  201. package/dist/memory/SharedMemoryPool.d.ts.map +0 -1
  202. package/dist/memory/SharedMemoryPool.js +0 -243
  203. package/dist/memory/SharedMemoryPool.js.map +0 -1
  204. package/dist/memory/index.d.ts +0 -8
  205. package/dist/memory/index.d.ts.map +0 -1
  206. package/dist/memory/index.js +0 -7
  207. package/dist/memory/index.js.map +0 -1
  208. package/dist/proxy/http3-proxy-old.js +0 -331
  209. package/dist/proxy/proxy/anthropic-to-gemini.js +0 -439
  210. package/dist/proxy/utils/logger.js +0 -59
  211. package/dist/reasoningbank/agentdb-adapter.js +0 -125
  212. package/dist/reasoningbank/core/database.js +0 -250
  213. package/dist/reasoningbank/core/memory-engine.js +0 -335
  214. package/dist/swarm/ipfs-swarm.d.ts +0 -265
  215. package/dist/swarm/ipfs-swarm.d.ts.map +0 -1
  216. package/dist/swarm/ipfs-swarm.js +0 -508
  217. package/dist/swarm/ipfs-swarm.js.map +0 -1
  218. package/dist/swarm/p2p-free-swarm.d.ts +0 -344
  219. package/dist/swarm/p2p-free-swarm.d.ts.map +0 -1
  220. package/dist/swarm/p2p-free-swarm.js +0 -603
  221. package/dist/swarm/p2p-free-swarm.js.map +0 -1
  222. package/dist/swarm/real-p2p-swarm.d.ts +0 -183
  223. package/dist/swarm/real-p2p-swarm.d.ts.map +0 -1
  224. package/dist/swarm/real-p2p-swarm.js +0 -469
  225. package/dist/swarm/real-p2p-swarm.js.map +0 -1
  226. package/dist/utils/adaptive-pool-sizing.js +0 -414
  227. package/dist/utils/agentdbCommands.js +0 -175
  228. package/dist/utils/circular-rate-limiter.js +0 -391
  229. package/dist/utils/dynamic-compression.js +0 -298
  230. package/dist/utils/http2-multiplexing.js +0 -319
  231. package/dist/utils/index.d.ts +0 -6
  232. package/dist/utils/index.d.ts.map +0 -1
  233. package/dist/utils/index.js +0 -6
  234. package/dist/utils/index.js.map +0 -1
  235. package/dist/utils/lazy-auth.js +0 -311
  236. package/dist/utils/model-cache.d.ts +0 -61
  237. package/dist/utils/model-cache.d.ts.map +0 -1
  238. package/dist/utils/model-cache.js +0 -176
  239. package/dist/utils/model-cache.js.map +0 -1
  240. package/dist/utils/server-push.js +0 -251
  241. package/dist/utils/suppress-warnings.d.ts +0 -19
  242. package/dist/utils/suppress-warnings.d.ts.map +0 -1
  243. package/dist/utils/suppress-warnings.js +0 -59
  244. package/dist/utils/suppress-warnings.js.map +0 -1
  245. package/dist/utils/zero-copy-buffer.js +0 -286
  246. package/dist/workers/consolidated-phases.d.ts +0 -40
  247. package/dist/workers/consolidated-phases.d.ts.map +0 -1
  248. package/dist/workers/consolidated-phases.js +0 -497
  249. package/dist/workers/consolidated-phases.js.map +0 -1
  250. package/dist/workers/custom-worker-config.d.ts +0 -133
  251. package/dist/workers/custom-worker-config.d.ts.map +0 -1
  252. package/dist/workers/custom-worker-config.js +0 -215
  253. package/dist/workers/custom-worker-config.js.map +0 -1
  254. package/dist/workers/custom-worker-factory.d.ts +0 -89
  255. package/dist/workers/custom-worker-factory.d.ts.map +0 -1
  256. package/dist/workers/custom-worker-factory.js +0 -404
  257. package/dist/workers/custom-worker-factory.js.map +0 -1
  258. package/dist/workers/dispatch-service.d.ts +0 -123
  259. package/dist/workers/dispatch-service.d.ts.map +0 -1
  260. package/dist/workers/dispatch-service.js +0 -1024
  261. package/dist/workers/dispatch-service.js.map +0 -1
  262. package/dist/workers/hooks-integration.d.ts +0 -79
  263. package/dist/workers/hooks-integration.d.ts.map +0 -1
  264. package/dist/workers/hooks-integration.js +0 -286
  265. package/dist/workers/hooks-integration.js.map +0 -1
  266. package/dist/workers/index.d.ts +0 -42
  267. package/dist/workers/index.d.ts.map +0 -1
  268. package/dist/workers/index.js +0 -52
  269. package/dist/workers/index.js.map +0 -1
  270. package/dist/workers/mcp-tools.d.ts +0 -56
  271. package/dist/workers/mcp-tools.d.ts.map +0 -1
  272. package/dist/workers/mcp-tools.js +0 -359
  273. package/dist/workers/mcp-tools.js.map +0 -1
  274. package/dist/workers/phase-executors.d.ts +0 -22
  275. package/dist/workers/phase-executors.d.ts.map +0 -1
  276. package/dist/workers/phase-executors.js +0 -445
  277. package/dist/workers/phase-executors.js.map +0 -1
  278. package/dist/workers/resource-governor.d.ts +0 -75
  279. package/dist/workers/resource-governor.d.ts.map +0 -1
  280. package/dist/workers/resource-governor.js +0 -187
  281. package/dist/workers/resource-governor.js.map +0 -1
  282. package/dist/workers/ruvector-integration.d.ts +0 -163
  283. package/dist/workers/ruvector-integration.d.ts.map +0 -1
  284. package/dist/workers/ruvector-integration.js +0 -543
  285. package/dist/workers/ruvector-integration.js.map +0 -1
  286. package/dist/workers/ruvector-native-integration.d.ts +0 -91
  287. package/dist/workers/ruvector-native-integration.d.ts.map +0 -1
  288. package/dist/workers/ruvector-native-integration.js +0 -254
  289. package/dist/workers/ruvector-native-integration.js.map +0 -1
  290. package/dist/workers/trigger-detector.d.ts +0 -68
  291. package/dist/workers/trigger-detector.d.ts.map +0 -1
  292. package/dist/workers/trigger-detector.js +0 -281
  293. package/dist/workers/trigger-detector.js.map +0 -1
  294. package/dist/workers/types.d.ts +0 -145
  295. package/dist/workers/types.d.ts.map +0 -1
  296. package/dist/workers/types.js +0 -6
  297. package/dist/workers/types.js.map +0 -1
  298. package/dist/workers/worker-agent-integration.d.ts +0 -140
  299. package/dist/workers/worker-agent-integration.d.ts.map +0 -1
  300. package/dist/workers/worker-agent-integration.js +0 -471
  301. package/dist/workers/worker-agent-integration.js.map +0 -1
  302. package/dist/workers/worker-benchmarks.d.ts +0 -88
  303. package/dist/workers/worker-benchmarks.d.ts.map +0 -1
  304. package/dist/workers/worker-benchmarks.js +0 -452
  305. package/dist/workers/worker-benchmarks.js.map +0 -1
  306. package/dist/workers/worker-registry.d.ts +0 -85
  307. package/dist/workers/worker-registry.d.ts.map +0 -1
  308. package/dist/workers/worker-registry.js +0 -547
  309. package/dist/workers/worker-registry.js.map +0 -1
  310. package/docs/.claude-flow/metrics/agent-metrics.json +0 -1
  311. package/docs/.claude-flow/metrics/performance.json +0 -87
  312. package/docs/.claude-flow/metrics/task-metrics.json +0 -10
  313. package/docs/embeddings/EMBEDDING_GEOMETRY.md +0 -935
  314. /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
  315. /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
  316. /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
  317. /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
  318. /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
  319. /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
  320. /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
  321. /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
  322. /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"]}