agentdb 3.0.0-alpha.2 → 3.0.0-alpha.4

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 (1038) hide show
  1. package/README.md +978 -2342
  2. package/dist/agentdb.browser.js +1492 -0
  3. package/dist/agentdb.browser.js.map +7 -0
  4. package/dist/agentdb.browser.min.js +3 -0
  5. package/dist/agentdb.browser.min.js.map +7 -0
  6. package/dist/agentdb.wasm-loader.js +207 -0
  7. package/dist/schemas/frontier-schema.sql +0 -7
  8. package/dist/schemas/schema.sql +0 -7
  9. package/dist/simulation/cli.d.ts +9 -0
  10. package/dist/simulation/cli.d.ts.map +1 -0
  11. package/dist/simulation/cli.js +68 -0
  12. package/dist/simulation/cli.js.map +1 -0
  13. package/dist/simulation/runner.d.ts +21 -0
  14. package/dist/simulation/runner.d.ts.map +1 -0
  15. package/dist/simulation/runner.js +241 -0
  16. package/dist/simulation/runner.js.map +1 -0
  17. package/dist/simulation/scenarios/aidefence-integration.d.ts +24 -0
  18. package/dist/simulation/scenarios/aidefence-integration.d.ts.map +1 -0
  19. package/dist/simulation/scenarios/aidefence-integration.js +124 -0
  20. package/dist/simulation/scenarios/aidefence-integration.js.map +1 -0
  21. package/dist/simulation/scenarios/bmssp-integration.d.ts +23 -0
  22. package/dist/simulation/scenarios/bmssp-integration.d.ts.map +1 -0
  23. package/dist/simulation/scenarios/bmssp-integration.js +104 -0
  24. package/dist/simulation/scenarios/bmssp-integration.js.map +1 -0
  25. package/dist/simulation/scenarios/causal-reasoning.d.ts +16 -0
  26. package/dist/simulation/scenarios/causal-reasoning.d.ts.map +1 -0
  27. package/dist/simulation/scenarios/causal-reasoning.js +108 -0
  28. package/dist/simulation/scenarios/causal-reasoning.js.map +1 -0
  29. package/dist/simulation/scenarios/consciousness-explorer.d.ts +25 -0
  30. package/dist/simulation/scenarios/consciousness-explorer.d.ts.map +1 -0
  31. package/dist/simulation/scenarios/consciousness-explorer.js +108 -0
  32. package/dist/simulation/scenarios/consciousness-explorer.js.map +1 -0
  33. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts +135 -0
  34. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts.map +1 -0
  35. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js +158 -0
  36. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js.map +1 -0
  37. package/dist/simulation/scenarios/domain-examples/index.d.ts +14 -0
  38. package/dist/simulation/scenarios/domain-examples/index.d.ts.map +1 -0
  39. package/dist/simulation/scenarios/domain-examples/index.js +14 -0
  40. package/dist/simulation/scenarios/domain-examples/index.js.map +1 -0
  41. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts +178 -0
  42. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts.map +1 -0
  43. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js +218 -0
  44. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js.map +1 -0
  45. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts +122 -0
  46. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts.map +1 -0
  47. package/dist/simulation/scenarios/domain-examples/medical-imaging.js +129 -0
  48. package/dist/simulation/scenarios/domain-examples/medical-imaging.js.map +1 -0
  49. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts +166 -0
  50. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts.map +1 -0
  51. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js +161 -0
  52. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js.map +1 -0
  53. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts +151 -0
  54. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts.map +1 -0
  55. package/dist/simulation/scenarios/domain-examples/scientific-research.js +187 -0
  56. package/dist/simulation/scenarios/domain-examples/scientific-research.js.map +1 -0
  57. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts +102 -0
  58. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts.map +1 -0
  59. package/dist/simulation/scenarios/domain-examples/trading-systems.js +100 -0
  60. package/dist/simulation/scenarios/domain-examples/trading-systems.js.map +1 -0
  61. package/dist/simulation/scenarios/goalie-integration.d.ts +24 -0
  62. package/dist/simulation/scenarios/goalie-integration.d.ts.map +1 -0
  63. package/dist/simulation/scenarios/goalie-integration.js +121 -0
  64. package/dist/simulation/scenarios/goalie-integration.js.map +1 -0
  65. package/dist/simulation/scenarios/graph-traversal.d.ts +17 -0
  66. package/dist/simulation/scenarios/graph-traversal.d.ts.map +1 -0
  67. package/dist/simulation/scenarios/graph-traversal.js +101 -0
  68. package/dist/simulation/scenarios/graph-traversal.js.map +1 -0
  69. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts +45 -0
  70. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts.map +1 -0
  71. package/dist/simulation/scenarios/latent-space/attention-analysis.js +435 -0
  72. package/dist/simulation/scenarios/latent-space/attention-analysis.js.map +1 -0
  73. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts +55 -0
  74. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts.map +1 -0
  75. package/dist/simulation/scenarios/latent-space/clustering-analysis.js +606 -0
  76. package/dist/simulation/scenarios/latent-space/clustering-analysis.js.map +1 -0
  77. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts +74 -0
  78. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts.map +1 -0
  79. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js +391 -0
  80. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js.map +1 -0
  81. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts +51 -0
  82. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts.map +1 -0
  83. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js +536 -0
  84. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js.map +1 -0
  85. package/dist/simulation/scenarios/latent-space/index.d.ts +35 -0
  86. package/dist/simulation/scenarios/latent-space/index.d.ts.map +1 -0
  87. package/dist/simulation/scenarios/latent-space/index.js +35 -0
  88. package/dist/simulation/scenarios/latent-space/index.js.map +1 -0
  89. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts +52 -0
  90. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts.map +1 -0
  91. package/dist/simulation/scenarios/latent-space/neural-augmentation.js +472 -0
  92. package/dist/simulation/scenarios/latent-space/neural-augmentation.js.map +1 -0
  93. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts +53 -0
  94. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts.map +1 -0
  95. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js +391 -0
  96. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js.map +1 -0
  97. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts +52 -0
  98. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts.map +1 -0
  99. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js +514 -0
  100. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js.map +1 -0
  101. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts +53 -0
  102. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts.map +1 -0
  103. package/dist/simulation/scenarios/latent-space/traversal-optimization.js +595 -0
  104. package/dist/simulation/scenarios/latent-space/traversal-optimization.js.map +1 -0
  105. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts +18 -0
  106. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts.map +1 -0
  107. package/dist/simulation/scenarios/lean-agentic-swarm.js +132 -0
  108. package/dist/simulation/scenarios/lean-agentic-swarm.js.map +1 -0
  109. package/dist/simulation/scenarios/multi-agent-swarm.d.ts +17 -0
  110. package/dist/simulation/scenarios/multi-agent-swarm.d.ts.map +1 -0
  111. package/dist/simulation/scenarios/multi-agent-swarm.js +111 -0
  112. package/dist/simulation/scenarios/multi-agent-swarm.js.map +1 -0
  113. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts +23 -0
  114. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts.map +1 -0
  115. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js +98 -0
  116. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js.map +1 -0
  117. package/dist/simulation/scenarios/reflexion-learning.d.ts +16 -0
  118. package/dist/simulation/scenarios/reflexion-learning.d.ts.map +1 -0
  119. package/dist/simulation/scenarios/reflexion-learning.js +98 -0
  120. package/dist/simulation/scenarios/reflexion-learning.js.map +1 -0
  121. package/dist/simulation/scenarios/research-swarm.d.ts +24 -0
  122. package/dist/simulation/scenarios/research-swarm.d.ts.map +1 -0
  123. package/dist/simulation/scenarios/research-swarm.js +146 -0
  124. package/dist/simulation/scenarios/research-swarm.js.map +1 -0
  125. package/dist/simulation/scenarios/skill-evolution.d.ts +16 -0
  126. package/dist/simulation/scenarios/skill-evolution.d.ts.map +1 -0
  127. package/dist/simulation/scenarios/skill-evolution.js +109 -0
  128. package/dist/simulation/scenarios/skill-evolution.js.map +1 -0
  129. package/dist/simulation/scenarios/stock-market-emergence.d.ts +33 -0
  130. package/dist/simulation/scenarios/stock-market-emergence.d.ts.map +1 -0
  131. package/dist/simulation/scenarios/stock-market-emergence.js +246 -0
  132. package/dist/simulation/scenarios/stock-market-emergence.js.map +1 -0
  133. package/dist/simulation/scenarios/strange-loops.d.ts +18 -0
  134. package/dist/simulation/scenarios/strange-loops.d.ts.map +1 -0
  135. package/dist/simulation/scenarios/strange-loops.js +133 -0
  136. package/dist/simulation/scenarios/strange-loops.js.map +1 -0
  137. package/dist/simulation/scenarios/sublinear-solver.d.ts +22 -0
  138. package/dist/simulation/scenarios/sublinear-solver.d.ts.map +1 -0
  139. package/dist/simulation/scenarios/sublinear-solver.js +82 -0
  140. package/dist/simulation/scenarios/sublinear-solver.js.map +1 -0
  141. package/dist/simulation/scenarios/temporal-lead-solver.d.ts +23 -0
  142. package/dist/simulation/scenarios/temporal-lead-solver.d.ts.map +1 -0
  143. package/dist/simulation/scenarios/temporal-lead-solver.js +90 -0
  144. package/dist/simulation/scenarios/temporal-lead-solver.js.map +1 -0
  145. package/dist/simulation/scenarios/voting-system-consensus.d.ts +27 -0
  146. package/dist/simulation/scenarios/voting-system-consensus.d.ts.map +1 -0
  147. package/dist/simulation/scenarios/voting-system-consensus.js +175 -0
  148. package/dist/simulation/scenarios/voting-system-consensus.js.map +1 -0
  149. package/dist/simulation/types.d.ts +162 -0
  150. package/dist/simulation/types.d.ts.map +1 -0
  151. package/dist/simulation/types.js +5 -0
  152. package/dist/simulation/types.js.map +1 -0
  153. package/dist/simulation/utils/PerformanceOptimizer.d.ts +115 -0
  154. package/dist/simulation/utils/PerformanceOptimizer.d.ts.map +1 -0
  155. package/dist/simulation/utils/PerformanceOptimizer.js +223 -0
  156. package/dist/simulation/utils/PerformanceOptimizer.js.map +1 -0
  157. package/dist/src/backends/GraphBackend.d.ts +8 -8
  158. package/dist/src/backends/GraphBackend.d.ts.map +1 -1
  159. package/dist/src/backends/GraphBackend.js +15 -16
  160. package/dist/src/backends/GraphBackend.js.map +1 -1
  161. package/dist/src/backends/LearningBackend.d.ts +2 -2
  162. package/dist/src/backends/LearningBackend.d.ts.map +1 -1
  163. package/dist/src/backends/LearningBackend.js +10 -11
  164. package/dist/src/backends/LearningBackend.js.map +1 -1
  165. package/dist/src/backends/VectorBackend.d.ts +6 -31
  166. package/dist/src/backends/VectorBackend.d.ts.map +1 -1
  167. package/dist/src/backends/detector.d.ts +3 -25
  168. package/dist/src/backends/detector.d.ts.map +1 -1
  169. package/dist/src/backends/detector.js +15 -119
  170. package/dist/src/backends/detector.js.map +1 -1
  171. package/dist/src/backends/factory.d.ts +32 -16
  172. package/dist/src/backends/factory.d.ts.map +1 -1
  173. package/dist/src/backends/factory.js +70 -133
  174. package/dist/src/backends/factory.js.map +1 -1
  175. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +1 -1
  176. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -1
  177. package/dist/src/backends/graph/GraphDatabaseAdapter.js +1 -5
  178. package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -1
  179. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts +2 -2
  180. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
  181. package/dist/src/backends/hnswlib/HNSWLibBackend.js +13 -49
  182. package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
  183. package/dist/src/backends/index.d.ts +3 -25
  184. package/dist/src/backends/index.d.ts.map +1 -1
  185. package/dist/src/backends/index.js +1 -23
  186. package/dist/src/backends/index.js.map +1 -1
  187. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts +93 -0
  188. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts.map +1 -0
  189. package/dist/src/backends/ruvector/GuardedVectorBackend.js +182 -0
  190. package/dist/src/backends/ruvector/GuardedVectorBackend.js.map +1 -0
  191. package/dist/src/backends/ruvector/RuVectorBackend.d.ts +16 -187
  192. package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
  193. package/dist/src/backends/ruvector/RuVectorBackend.js +94 -576
  194. package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
  195. package/dist/src/backends/ruvector/RuVectorLearning.d.ts +4 -0
  196. package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
  197. package/dist/src/backends/ruvector/RuVectorLearning.js +11 -10
  198. package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
  199. package/dist/src/benchmarks/wasm-vector-benchmark.d.ts +10 -0
  200. package/dist/src/benchmarks/wasm-vector-benchmark.d.ts.map +1 -0
  201. package/dist/src/benchmarks/wasm-vector-benchmark.js +196 -0
  202. package/dist/src/benchmarks/wasm-vector-benchmark.js.map +1 -0
  203. package/dist/src/browser/AdvancedFeatures.d.ts.map +1 -1
  204. package/dist/src/browser/AdvancedFeatures.js +10 -3
  205. package/dist/src/browser/AdvancedFeatures.js.map +1 -1
  206. package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
  207. package/dist/src/browser/AttentionBrowser.js +12 -5
  208. package/dist/src/browser/AttentionBrowser.js.map +1 -1
  209. package/dist/src/browser/HNSWIndex.d.ts +1 -31
  210. package/dist/src/browser/HNSWIndex.d.ts.map +1 -1
  211. package/dist/src/browser/HNSWIndex.js +18 -136
  212. package/dist/src/browser/HNSWIndex.js.map +1 -1
  213. package/dist/src/browser/ProductQuantization.d.ts.map +1 -1
  214. package/dist/src/browser/ProductQuantization.js +1 -0
  215. package/dist/src/browser/ProductQuantization.js.map +1 -1
  216. package/dist/src/browser/index.d.ts +3 -3
  217. package/dist/src/browser/index.d.ts.map +1 -1
  218. package/dist/src/browser/index.js +1 -2
  219. package/dist/src/browser/index.js.map +1 -1
  220. package/dist/src/cli/agentdb-cli.d.ts +2 -16
  221. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  222. package/dist/src/cli/agentdb-cli.js +216 -853
  223. package/dist/src/cli/agentdb-cli.js.map +1 -1
  224. package/dist/src/cli/commands/attention.js +3 -3
  225. package/dist/src/cli/commands/attention.js.map +1 -1
  226. package/dist/src/cli/commands/doctor.d.ts +0 -2
  227. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  228. package/dist/src/cli/commands/doctor.js +1 -106
  229. package/dist/src/cli/commands/doctor.js.map +1 -1
  230. package/dist/src/cli/commands/init.d.ts +1 -2
  231. package/dist/src/cli/commands/init.d.ts.map +1 -1
  232. package/dist/src/cli/commands/init.js +7 -30
  233. package/dist/src/cli/commands/init.js.map +1 -1
  234. package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -1
  235. package/dist/src/cli/commands/install-embeddings.js.map +1 -1
  236. package/dist/src/cli/commands/migrate.d.ts +0 -15
  237. package/dist/src/cli/commands/migrate.d.ts.map +1 -1
  238. package/dist/src/cli/commands/migrate.js +5 -164
  239. package/dist/src/cli/commands/migrate.js.map +1 -1
  240. package/dist/src/cli/commands/simulate-report.js.map +1 -1
  241. package/dist/src/cli/commands/simulate-wizard.js.map +1 -1
  242. package/dist/src/cli/commands/simulate.d.ts +7 -0
  243. package/dist/src/cli/commands/simulate.d.ts.map +1 -0
  244. package/dist/src/cli/commands/simulate.js +100 -0
  245. package/dist/src/cli/commands/simulate.js.map +1 -0
  246. package/dist/src/cli/commands/status.js +1 -5
  247. package/dist/src/cli/commands/status.js.map +1 -1
  248. package/dist/src/cli/lib/attention-config.d.ts +2 -2
  249. package/dist/src/cli/lib/attention-config.d.ts.map +1 -1
  250. package/dist/src/cli/lib/attention-config.js +1 -2
  251. package/dist/src/cli/lib/attention-config.js.map +1 -1
  252. package/dist/src/cli/lib/config-manager.d.ts +110 -0
  253. package/dist/src/cli/lib/config-manager.d.ts.map +1 -0
  254. package/dist/src/cli/lib/config-manager.js +512 -0
  255. package/dist/src/cli/lib/config-manager.js.map +1 -0
  256. package/dist/src/cli/lib/config-validator.d.ts +1 -1
  257. package/dist/src/cli/lib/config-validator.d.ts.map +1 -1
  258. package/dist/src/cli/lib/health-monitor.d.ts +149 -0
  259. package/dist/src/cli/lib/health-monitor.d.ts.map +1 -0
  260. package/dist/src/cli/lib/health-monitor.js +380 -0
  261. package/dist/src/cli/lib/health-monitor.js.map +1 -0
  262. package/dist/src/cli/lib/history-tracker.d.ts +103 -0
  263. package/dist/src/cli/lib/history-tracker.d.ts.map +1 -0
  264. package/dist/src/cli/lib/history-tracker.js +352 -0
  265. package/dist/src/cli/lib/history-tracker.js.map +1 -0
  266. package/dist/src/cli/lib/report-store.d.ts +1 -2
  267. package/dist/src/cli/lib/report-store.d.ts.map +1 -1
  268. package/dist/src/cli/lib/report-store.js +65 -87
  269. package/dist/src/cli/lib/report-store.js.map +1 -1
  270. package/dist/src/cli/lib/simulation-registry.d.ts +1 -1
  271. package/dist/src/cli/lib/simulation-registry.d.ts.map +1 -1
  272. package/dist/src/cli/lib/simulation-registry.js +0 -1
  273. package/dist/src/cli/lib/simulation-registry.js.map +1 -1
  274. package/dist/src/cli/lib/simulation-runner.d.ts +4 -41
  275. package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
  276. package/dist/src/cli/lib/simulation-runner.js +6 -251
  277. package/dist/src/cli/lib/simulation-runner.js.map +1 -1
  278. package/dist/src/controllers/AttentionService.d.ts.map +1 -1
  279. package/dist/src/controllers/AttentionService.js +5 -3
  280. package/dist/src/controllers/AttentionService.js.map +1 -1
  281. package/dist/src/controllers/CausalMemoryGraph.d.ts +8 -33
  282. package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
  283. package/dist/src/controllers/CausalMemoryGraph.js +16 -93
  284. package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
  285. package/dist/src/controllers/CausalRecall.d.ts +3 -6
  286. package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
  287. package/dist/src/controllers/CausalRecall.js +8 -14
  288. package/dist/src/controllers/CausalRecall.js.map +1 -1
  289. package/dist/src/controllers/ContextSynthesizer.d.ts +1 -1
  290. package/dist/src/controllers/ContextSynthesizer.d.ts.map +1 -1
  291. package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
  292. package/dist/src/controllers/EmbeddingService.js +3 -10
  293. package/dist/src/controllers/EmbeddingService.js.map +1 -1
  294. package/dist/src/controllers/EnhancedEmbeddingService.d.ts +0 -4
  295. package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
  296. package/dist/src/controllers/EnhancedEmbeddingService.js +3 -10
  297. package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
  298. package/dist/src/controllers/ExplainableRecall.d.ts +6 -5
  299. package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
  300. package/dist/src/controllers/ExplainableRecall.js +13 -21
  301. package/dist/src/controllers/ExplainableRecall.js.map +1 -1
  302. package/dist/src/controllers/HNSWIndex.d.ts +7 -24
  303. package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
  304. package/dist/src/controllers/HNSWIndex.js +10 -89
  305. package/dist/src/controllers/HNSWIndex.js.map +1 -1
  306. package/dist/src/controllers/LearningSystem.d.ts +10 -106
  307. package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
  308. package/dist/src/controllers/LearningSystem.js +14 -39
  309. package/dist/src/controllers/LearningSystem.js.map +1 -1
  310. package/dist/src/controllers/MMRDiversityRanker.d.ts +1 -1
  311. package/dist/src/controllers/MMRDiversityRanker.d.ts.map +1 -1
  312. package/dist/src/controllers/MetadataFilter.d.ts +3 -3
  313. package/dist/src/controllers/MetadataFilter.d.ts.map +1 -1
  314. package/dist/src/controllers/MetadataFilter.js +6 -9
  315. package/dist/src/controllers/MetadataFilter.js.map +1 -1
  316. package/dist/src/controllers/NightlyLearner.d.ts +4 -9
  317. package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
  318. package/dist/src/controllers/NightlyLearner.js +9 -28
  319. package/dist/src/controllers/NightlyLearner.js.map +1 -1
  320. package/dist/src/controllers/QUICClient.d.ts +2 -50
  321. package/dist/src/controllers/QUICClient.d.ts.map +1 -1
  322. package/dist/src/controllers/QUICClient.js +3 -193
  323. package/dist/src/controllers/QUICClient.js.map +1 -1
  324. package/dist/src/controllers/QUICServer.d.ts +4 -4
  325. package/dist/src/controllers/QUICServer.d.ts.map +1 -1
  326. package/dist/src/controllers/QUICServer.js +14 -22
  327. package/dist/src/controllers/QUICServer.js.map +1 -1
  328. package/dist/src/controllers/ReasoningBank.d.ts +4 -14
  329. package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
  330. package/dist/src/controllers/ReasoningBank.js +46 -59
  331. package/dist/src/controllers/ReasoningBank.js.map +1 -1
  332. package/dist/src/controllers/ReflexionMemory.d.ts +7 -80
  333. package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
  334. package/dist/src/controllers/ReflexionMemory.js +214 -372
  335. package/dist/src/controllers/ReflexionMemory.js.map +1 -1
  336. package/dist/src/controllers/SkillLibrary.d.ts +7 -37
  337. package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
  338. package/dist/src/controllers/SkillLibrary.js +96 -212
  339. package/dist/src/controllers/SkillLibrary.js.map +1 -1
  340. package/dist/src/controllers/SyncCoordinator.d.ts +3 -2
  341. package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
  342. package/dist/src/controllers/SyncCoordinator.js +5 -117
  343. package/dist/src/controllers/SyncCoordinator.js.map +1 -1
  344. package/dist/src/controllers/WASMVectorSearch.d.ts +9 -20
  345. package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
  346. package/dist/src/controllers/WASMVectorSearch.js +29 -154
  347. package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
  348. package/dist/src/controllers/frontier-index.d.ts +14 -0
  349. package/dist/src/controllers/frontier-index.d.ts.map +1 -0
  350. package/dist/src/controllers/frontier-index.js +10 -0
  351. package/dist/src/controllers/frontier-index.js.map +1 -0
  352. package/dist/src/controllers/index.d.ts +17 -8
  353. package/dist/src/controllers/index.d.ts.map +1 -1
  354. package/dist/src/controllers/index.js +12 -6
  355. package/dist/src/controllers/index.js.map +1 -1
  356. package/dist/src/core/AgentDB.d.ts +25 -57
  357. package/dist/src/core/AgentDB.d.ts.map +1 -1
  358. package/dist/src/core/AgentDB.js +115 -137
  359. package/dist/src/core/AgentDB.js.map +1 -1
  360. package/dist/src/db-fallback.d.ts +1 -10
  361. package/dist/src/db-fallback.d.ts.map +1 -1
  362. package/dist/src/db-fallback.js +4 -171
  363. package/dist/src/db-fallback.js.map +1 -1
  364. package/dist/src/db-test.d.ts +13 -0
  365. package/dist/src/db-test.d.ts.map +1 -0
  366. package/dist/src/db-test.js +55 -0
  367. package/dist/src/db-test.js.map +1 -0
  368. package/dist/src/db-unified.d.ts +76 -0
  369. package/dist/src/db-unified.d.ts.map +1 -0
  370. package/dist/src/db-unified.js +279 -0
  371. package/dist/src/db-unified.js.map +1 -0
  372. package/dist/src/examples/quic-sync-example.d.ts +9 -0
  373. package/dist/src/examples/quic-sync-example.d.ts.map +1 -0
  374. package/dist/src/examples/quic-sync-example.js +169 -0
  375. package/dist/src/examples/quic-sync-example.js.map +1 -0
  376. package/dist/src/examples/wasm-vector-usage.d.ts +12 -0
  377. package/dist/src/examples/wasm-vector-usage.d.ts.map +1 -0
  378. package/dist/src/examples/wasm-vector-usage.js +190 -0
  379. package/dist/src/examples/wasm-vector-usage.js.map +1 -0
  380. package/dist/src/index.d.ts +12 -38
  381. package/dist/src/index.d.ts.map +1 -1
  382. package/dist/src/index.js +11 -46
  383. package/dist/src/index.js.map +1 -1
  384. package/dist/src/mcp/agentdb-mcp-server.js +63 -219
  385. package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
  386. package/dist/src/mcp/learning-tools-handlers.d.ts +16 -0
  387. package/dist/src/mcp/learning-tools-handlers.d.ts.map +1 -0
  388. package/dist/src/mcp/learning-tools-handlers.js +105 -0
  389. package/dist/src/mcp/learning-tools-handlers.js.map +1 -0
  390. package/dist/src/optimizations/BatchOperations.d.ts +5 -52
  391. package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
  392. package/dist/src/optimizations/BatchOperations.js +33 -186
  393. package/dist/src/optimizations/BatchOperations.js.map +1 -1
  394. package/dist/src/optimizations/QueryOptimizer.d.ts +4 -4
  395. package/dist/src/optimizations/QueryOptimizer.d.ts.map +1 -1
  396. package/dist/src/optimizations/QueryOptimizer.js +1 -3
  397. package/dist/src/optimizations/QueryOptimizer.js.map +1 -1
  398. package/dist/src/optimizations/ToolCache.d.ts +4 -4
  399. package/dist/src/optimizations/ToolCache.d.ts.map +1 -1
  400. package/dist/src/optimizations/ToolCache.js.map +1 -1
  401. package/dist/src/optimizations/index.d.ts +1 -1
  402. package/dist/src/optimizations/index.d.ts.map +1 -1
  403. package/dist/src/security/AttestationLog.d.ts +70 -0
  404. package/dist/src/security/AttestationLog.d.ts.map +1 -0
  405. package/dist/src/security/AttestationLog.js +174 -0
  406. package/dist/src/security/AttestationLog.js.map +1 -0
  407. package/dist/src/security/MutationGuard.d.ts +83 -0
  408. package/dist/src/security/MutationGuard.d.ts.map +1 -0
  409. package/dist/src/security/MutationGuard.js +379 -0
  410. package/dist/src/security/MutationGuard.js.map +1 -0
  411. package/dist/src/security/index.d.ts +15 -0
  412. package/dist/src/security/index.d.ts.map +1 -0
  413. package/dist/src/security/index.js +18 -0
  414. package/dist/src/security/index.js.map +1 -0
  415. package/dist/src/security/input-validation.d.ts +12 -12
  416. package/dist/src/security/input-validation.d.ts.map +1 -1
  417. package/dist/src/security/input-validation.js +0 -1
  418. package/dist/src/security/input-validation.js.map +1 -1
  419. package/dist/src/security/limits.d.ts +150 -0
  420. package/dist/src/security/limits.d.ts.map +1 -0
  421. package/dist/src/security/limits.js +288 -0
  422. package/dist/src/security/limits.js.map +1 -0
  423. package/dist/src/security/path-security.d.ts +100 -0
  424. package/dist/src/security/path-security.d.ts.map +1 -0
  425. package/dist/src/security/path-security.js +337 -0
  426. package/dist/src/security/path-security.js.map +1 -0
  427. package/dist/src/security/validation.d.ts +95 -0
  428. package/dist/src/security/validation.d.ts.map +1 -0
  429. package/dist/src/security/validation.js +315 -0
  430. package/dist/src/security/validation.js.map +1 -0
  431. package/dist/src/services/GraphTransformerService.d.ts +79 -0
  432. package/dist/src/services/GraphTransformerService.d.ts.map +1 -0
  433. package/dist/src/services/GraphTransformerService.js +331 -0
  434. package/dist/src/services/GraphTransformerService.js.map +1 -0
  435. package/dist/src/services/LLMRouter.d.ts +7 -61
  436. package/dist/src/services/LLMRouter.d.ts.map +1 -1
  437. package/dist/src/services/LLMRouter.js +25 -295
  438. package/dist/src/services/LLMRouter.js.map +1 -1
  439. package/dist/src/services/SemanticRouter.d.ts +78 -0
  440. package/dist/src/services/SemanticRouter.d.ts.map +1 -0
  441. package/dist/src/services/SemanticRouter.js +149 -0
  442. package/dist/src/services/SemanticRouter.js.map +1 -0
  443. package/dist/src/services/SonaTrajectoryService.d.ts +100 -0
  444. package/dist/src/services/SonaTrajectoryService.d.ts.map +1 -0
  445. package/dist/src/services/SonaTrajectoryService.js +231 -0
  446. package/dist/src/services/SonaTrajectoryService.js.map +1 -0
  447. package/dist/src/types/attention.d.ts +249 -0
  448. package/dist/src/types/attention.d.ts.map +1 -0
  449. package/dist/src/types/attention.js +43 -0
  450. package/dist/src/types/attention.js.map +1 -0
  451. package/dist/src/types/quic.d.ts +518 -0
  452. package/dist/src/types/quic.d.ts.map +1 -0
  453. package/dist/src/types/quic.js +272 -0
  454. package/dist/src/types/quic.js.map +1 -0
  455. package/dist/src/utils/LegacyAttentionAdapter.d.ts +93 -0
  456. package/dist/src/utils/LegacyAttentionAdapter.d.ts.map +1 -0
  457. package/dist/src/utils/LegacyAttentionAdapter.js +241 -0
  458. package/dist/src/utils/LegacyAttentionAdapter.js.map +1 -0
  459. package/dist/src/utils/attention-metrics.d.ts +76 -0
  460. package/dist/src/utils/attention-metrics.d.ts.map +1 -0
  461. package/dist/src/utils/attention-metrics.js +178 -0
  462. package/dist/src/utils/attention-metrics.js.map +1 -0
  463. package/dist/src/utils/vector-math.d.ts +29 -0
  464. package/dist/src/utils/vector-math.d.ts.map +1 -0
  465. package/dist/src/utils/vector-math.js +66 -0
  466. package/dist/src/utils/vector-math.js.map +1 -0
  467. package/examples/README.md +105 -0
  468. package/examples/browser/attention-demo.html +499 -0
  469. package/examples/browser/flash-consolidation.html +598 -0
  470. package/examples/browser/hyperbolic-hierarchy.html +497 -0
  471. package/examples/quickstart.js +43 -0
  472. package/package.json +53 -56
  473. package/simulation/.claude-flow/metrics/agent-metrics.json +1 -0
  474. package/simulation/.claude-flow/metrics/performance.json +87 -0
  475. package/simulation/.claude-flow/metrics/task-metrics.json +10 -0
  476. package/simulation/COMPLETION-STATUS.md +139 -0
  477. package/simulation/FINAL-RESULTS.md +414 -0
  478. package/simulation/FINAL-STATUS.md +281 -0
  479. package/simulation/INTEGRATION-COMPLETE.md +452 -0
  480. package/simulation/MIGRATION-STATUS.md +231 -0
  481. package/simulation/OPTIMIZATION-RESULTS.md +397 -0
  482. package/simulation/PHASE1-COMPLETE.md +163 -0
  483. package/simulation/README.md +848 -0
  484. package/simulation/SIMULATION-RESULTS.md +239 -0
  485. package/simulation/cli.ts +78 -0
  486. package/simulation/configs/default.json +37 -0
  487. package/simulation/data/advanced/aidefence.graph +0 -0
  488. package/simulation/data/advanced/bmssp.graph +0 -0
  489. package/simulation/data/advanced/consciousness.graph +0 -0
  490. package/simulation/data/advanced/goalie.graph +0 -0
  491. package/simulation/data/advanced/psycho-symbolic.graph +0 -0
  492. package/simulation/data/advanced/research-swarm.graph +0 -0
  493. package/simulation/data/advanced/sublinear.graph +0 -0
  494. package/simulation/data/advanced/temporal.graph +0 -0
  495. package/simulation/data/causal.graph +0 -0
  496. package/simulation/data/graph-traversal.graph +0 -0
  497. package/simulation/data/lean-agentic.graph +0 -0
  498. package/simulation/data/reflexion.graph +0 -0
  499. package/simulation/data/skills.graph +0 -0
  500. package/simulation/data/stock-market.graph +0 -0
  501. package/simulation/data/strange-loops.graph +0 -0
  502. package/simulation/data/swarm.graph +0 -0
  503. package/simulation/data/voting-consensus.graph +0 -0
  504. package/simulation/docs/CLI-INTEGRATION-PLAN.md +1038 -0
  505. package/simulation/docs/COMPREHENSIVE-LATENT-SPACE-COMPLETION.md +354 -0
  506. package/simulation/docs/DOCUMENTATION-INDEX.md +226 -0
  507. package/simulation/docs/IMPLEMENTATION-COMPLETE.md +521 -0
  508. package/simulation/docs/OPTIMIZATION-SUMMARY.md +279 -0
  509. package/simulation/docs/README.md +229 -0
  510. package/simulation/docs/SWARM-5-INTEGRATION-SUMMARY.md +528 -0
  511. package/simulation/docs/TESTING-SUMMARY.md +304 -0
  512. package/simulation/docs/architecture/EXTENSION-API.md +868 -0
  513. package/simulation/docs/architecture/INTEGRATION-ARCHITECTURE.md +1138 -0
  514. package/simulation/docs/architecture/OPTIMIZATION-STRATEGY.md +778 -0
  515. package/simulation/docs/architecture/SIMULATION-ARCHITECTURE.md +892 -0
  516. package/simulation/docs/guides/CLI-REFERENCE.md +896 -0
  517. package/simulation/docs/guides/CUSTOM-SIMULATIONS.md +931 -0
  518. package/simulation/docs/guides/DEPLOYMENT.md +832 -0
  519. package/simulation/docs/guides/IMPLEMENTATION-SUMMARY.md +544 -0
  520. package/simulation/docs/guides/MIGRATION-GUIDE.md +591 -0
  521. package/simulation/docs/guides/QUICK-START.md +361 -0
  522. package/simulation/docs/guides/README.md +736 -0
  523. package/simulation/docs/guides/TROUBLESHOOTING.md +817 -0
  524. package/simulation/docs/guides/WIZARD-GUIDE.md +869 -0
  525. package/simulation/docs/reports/latent-space/MASTER-SYNTHESIS.md +345 -0
  526. package/simulation/docs/reports/latent-space/README.md +132 -0
  527. package/simulation/docs/reports/latent-space/attention-analysis-RESULTS.md +238 -0
  528. package/simulation/docs/reports/latent-space/clustering-analysis-RESULTS.md +210 -0
  529. package/simulation/docs/reports/latent-space/hnsw-exploration-RESULTS.md +332 -0
  530. package/simulation/docs/reports/latent-space/hypergraph-exploration-RESULTS.md +37 -0
  531. package/simulation/docs/reports/latent-space/neural-augmentation-RESULTS.md +69 -0
  532. package/simulation/docs/reports/latent-space/quantum-hybrid-RESULTS.md +91 -0
  533. package/simulation/docs/reports/latent-space/self-organizing-hnsw-RESULTS.md +51 -0
  534. package/simulation/docs/reports/latent-space/traversal-optimization-RESULTS.md +238 -0
  535. package/simulation/reports/README.md +397 -0
  536. package/simulation/reports/advanced-simulations-performance.md +1241 -0
  537. package/simulation/reports/aidefence-integration-2025-11-30T01-36-53-486Z.json +30 -0
  538. package/simulation/reports/architecture-analysis.md +1396 -0
  539. package/simulation/reports/basic-scenarios-performance.md +1840 -0
  540. package/simulation/reports/bmssp-integration-2025-11-30T01-36-27-193Z.json +30 -0
  541. package/simulation/reports/bmssp-integration-2025-11-30T03-38-12-887Z.json +30 -0
  542. package/simulation/reports/causal-reasoning-2025-11-29T23-35-21-795Z.json +36 -0
  543. package/simulation/reports/causal-reasoning-2025-11-30T00-58-42-862Z.json +30 -0
  544. package/simulation/reports/causal-reasoning-2025-11-30T00-59-12-546Z.json +40 -0
  545. package/simulation/reports/consciousness-explorer-2025-11-30T01-36-51-269Z.json +31 -0
  546. package/simulation/reports/core-benchmarks.md +727 -0
  547. package/simulation/reports/goalie-integration-2025-11-30T01-36-52-377Z.json +30 -0
  548. package/simulation/reports/graph-traversal-2025-11-29T23-35-35-279Z.json +78 -0
  549. package/simulation/reports/graph-traversal-2025-11-29T23-37-36-697Z.json +30 -0
  550. package/simulation/reports/graph-traversal-2025-11-30T01-03-59-716Z.json +30 -0
  551. package/simulation/reports/graph-traversal-2025-11-30T01-05-10-984Z.json +30 -0
  552. package/simulation/reports/graph-traversal-2025-11-30T01-06-16-334Z.json +30 -0
  553. package/simulation/reports/graph-traversal-2025-11-30T01-06-53-312Z.json +30 -0
  554. package/simulation/reports/graph-traversal-2025-11-30T01-07-51-075Z.json +24 -0
  555. package/simulation/reports/graph-traversal-2025-11-30T01-08-22-179Z.json +42 -0
  556. package/simulation/reports/lean-agentic-swarm-2025-11-29T23-37-23-804Z.json +148 -0
  557. package/simulation/reports/lean-agentic-swarm-2025-11-30T01-31-24-401Z.json +31 -0
  558. package/simulation/reports/lean-agentic-swarm-2025-11-30T03-38-01-470Z.json +31 -0
  559. package/simulation/reports/multi-agent-swarm-2025-11-29T23-35-28-093Z.json +78 -0
  560. package/simulation/reports/multi-agent-swarm-2025-11-30T01-03-54-062Z.json +42 -0
  561. package/simulation/reports/multi-agent-swarm-2025-11-30T01-05-06-092Z.json +42 -0
  562. package/simulation/reports/psycho-symbolic-reasoner-2025-11-30T01-36-50-180Z.json +30 -0
  563. package/simulation/reports/quality-metrics.md +727 -0
  564. package/simulation/reports/reflexion-learning-2025-11-29T23-35-09-774Z.json +48 -0
  565. package/simulation/reports/reflexion-learning-2025-11-29T23-37-16-934Z.json +36 -0
  566. package/simulation/reports/reflexion-learning-2025-11-30T00-07-49-259Z.json +30 -0
  567. package/simulation/reports/reflexion-learning-2025-11-30T00-09-29-319Z.json +51 -0
  568. package/simulation/reports/reflexion-learning-2025-11-30T00-28-37-659Z.json +51 -0
  569. package/simulation/reports/reflexion-learning-2025-11-30T01-31-30-690Z.json +29 -0
  570. package/simulation/reports/reflexion-learning-2025-11-30T03-38-06-937Z.json +29 -0
  571. package/simulation/reports/research-foundations.md +2004 -0
  572. package/simulation/reports/research-swarm-2025-11-30T01-36-54-647Z.json +30 -0
  573. package/simulation/reports/scalability-deployment.md +2404 -0
  574. package/simulation/reports/skill-evolution-2025-11-29T23-35-15-945Z.json +36 -0
  575. package/simulation/reports/skill-evolution-2025-11-30T01-03-17-995Z.json +30 -0
  576. package/simulation/reports/skill-evolution-2025-11-30T01-03-48-441Z.json +30 -0
  577. package/simulation/reports/skill-evolution-2025-11-30T01-05-00-554Z.json +30 -0
  578. package/simulation/reports/skill-evolution-2025-11-30T01-06-11-436Z.json +30 -0
  579. package/simulation/reports/skill-evolution-2025-11-30T01-06-51-979Z.json +30 -0
  580. package/simulation/reports/skill-evolution-2025-11-30T01-07-32-695Z.json +40 -0
  581. package/simulation/reports/stock-market-emergence-2025-11-30T00-11-43-865Z.json +56 -0
  582. package/simulation/reports/stock-market-emergence-2025-11-30T00-28-57-495Z.json +56 -0
  583. package/simulation/reports/strange-loops-2025-11-29T23-37-30-621Z.json +78 -0
  584. package/simulation/reports/strange-loops-2025-11-30T00-07-55-415Z.json +30 -0
  585. package/simulation/reports/strange-loops-2025-11-30T00-09-35-133Z.json +30 -0
  586. package/simulation/reports/strange-loops-2025-11-30T00-48-50-744Z.json +24 -0
  587. package/simulation/reports/strange-loops-2025-11-30T00-54-48-044Z.json +24 -0
  588. package/simulation/reports/strange-loops-2025-11-30T00-57-27-633Z.json +24 -0
  589. package/simulation/reports/strange-loops-2025-11-30T00-57-59-135Z.json +42 -0
  590. package/simulation/reports/sublinear-solver-2025-11-30T01-36-33-134Z.json +30 -0
  591. package/simulation/reports/temporal-lead-solver-2025-11-30T01-36-38-628Z.json +30 -0
  592. package/simulation/reports/use-cases-applications.md +2212 -0
  593. package/simulation/reports/voting-system-consensus-2025-11-30T00-11-37-199Z.json +58 -0
  594. package/simulation/reports/voting-system-consensus-2025-11-30T00-28-47-735Z.json +58 -0
  595. package/simulation/runner.ts +300 -0
  596. package/simulation/scenarios/README-advanced/aidefence-integration.md +63 -0
  597. package/simulation/scenarios/README-advanced/bmssp-integration.md +58 -0
  598. package/simulation/scenarios/README-advanced/consciousness-explorer.md +53 -0
  599. package/simulation/scenarios/README-advanced/goalie-integration.md +61 -0
  600. package/simulation/scenarios/README-advanced/psycho-symbolic-reasoner.md +55 -0
  601. package/simulation/scenarios/README-advanced/research-swarm.md +63 -0
  602. package/simulation/scenarios/README-advanced/sublinear-solver.md +58 -0
  603. package/simulation/scenarios/README-advanced/temporal-lead-solver.md +55 -0
  604. package/simulation/scenarios/README-basic/causal-reasoning.md +39 -0
  605. package/simulation/scenarios/README-basic/graph-traversal.md +41 -0
  606. package/simulation/scenarios/README-basic/lean-agentic-swarm.md +122 -0
  607. package/simulation/scenarios/README-basic/multi-agent-swarm.md +34 -0
  608. package/simulation/scenarios/README-basic/reflexion-learning.md +41 -0
  609. package/simulation/scenarios/README-basic/skill-evolution.md +38 -0
  610. package/simulation/scenarios/README-basic/stock-market-emergence.md +28 -0
  611. package/simulation/scenarios/README-basic/strange-loops.md +36 -0
  612. package/simulation/scenarios/README-basic/voting-system-consensus.md +28 -0
  613. package/simulation/scenarios/README.md +438 -0
  614. package/simulation/scenarios/aidefence-integration.ts +165 -0
  615. package/simulation/scenarios/bmssp-integration.ts +137 -0
  616. package/simulation/scenarios/causal-reasoning.ts +143 -0
  617. package/simulation/scenarios/consciousness-explorer.ts +139 -0
  618. package/simulation/scenarios/domain-examples/.claude-flow/metrics/agent-metrics.json +1 -0
  619. package/simulation/scenarios/domain-examples/.claude-flow/metrics/performance.json +87 -0
  620. package/simulation/scenarios/domain-examples/.claude-flow/metrics/task-metrics.json +10 -0
  621. package/simulation/scenarios/domain-examples/README.md +525 -0
  622. package/simulation/scenarios/domain-examples/e-commerce-recommendations.ts +220 -0
  623. package/simulation/scenarios/domain-examples/index.ts +81 -0
  624. package/simulation/scenarios/domain-examples/iot-sensor-networks.ts +290 -0
  625. package/simulation/scenarios/domain-examples/medical-imaging.ts +181 -0
  626. package/simulation/scenarios/domain-examples/robotics-navigation.ts +214 -0
  627. package/simulation/scenarios/domain-examples/scientific-research.ts +250 -0
  628. package/simulation/scenarios/domain-examples/trading-systems.ts +138 -0
  629. package/simulation/scenarios/goalie-integration.ts +161 -0
  630. package/simulation/scenarios/graph-traversal.ts +129 -0
  631. package/simulation/scenarios/latent-space/OPTIMIZATION-COMPLETE.md +287 -0
  632. package/simulation/scenarios/latent-space/README-attention-analysis.md +170 -0
  633. package/simulation/scenarios/latent-space/README-clustering-analysis.md +239 -0
  634. package/simulation/scenarios/latent-space/README-hnsw-exploration.md +199 -0
  635. package/simulation/scenarios/latent-space/README-hypergraph-exploration.md +279 -0
  636. package/simulation/scenarios/latent-space/README-neural-augmentation.md +267 -0
  637. package/simulation/scenarios/latent-space/README-quantum-hybrid.md +276 -0
  638. package/simulation/scenarios/latent-space/README-self-organizing-hnsw.md +244 -0
  639. package/simulation/scenarios/latent-space/README-traversal-optimization.md +212 -0
  640. package/simulation/scenarios/latent-space/attention-analysis.ts +598 -0
  641. package/simulation/scenarios/latent-space/clustering-analysis.ts +796 -0
  642. package/simulation/scenarios/latent-space/hnsw-exploration.ts +526 -0
  643. package/simulation/scenarios/latent-space/hypergraph-exploration.ts +706 -0
  644. package/simulation/scenarios/latent-space/index.ts +47 -0
  645. package/simulation/scenarios/latent-space/neural-augmentation.ts +604 -0
  646. package/simulation/scenarios/latent-space/quantum-hybrid.ts +508 -0
  647. package/simulation/scenarios/latent-space/self-organizing-hnsw.ts +680 -0
  648. package/simulation/scenarios/latent-space/traversal-optimization.ts +782 -0
  649. package/simulation/scenarios/lean-agentic-swarm.ts +182 -0
  650. package/simulation/scenarios/multi-agent-swarm.ts +146 -0
  651. package/simulation/scenarios/psycho-symbolic-reasoner.ts +136 -0
  652. package/simulation/scenarios/reflexion-learning.ts +132 -0
  653. package/simulation/scenarios/research-swarm.ts +187 -0
  654. package/simulation/scenarios/skill-evolution.ts +135 -0
  655. package/simulation/scenarios/stock-market-emergence.ts +323 -0
  656. package/simulation/scenarios/strange-loops.ts +175 -0
  657. package/simulation/scenarios/sublinear-solver.ts +108 -0
  658. package/simulation/scenarios/temporal-lead-solver.ts +121 -0
  659. package/simulation/scenarios/voting-system-consensus.ts +251 -0
  660. package/simulation/tests/latent-space/attention-analysis.test.ts +204 -0
  661. package/simulation/tests/latent-space/clustering-analysis.test.ts +281 -0
  662. package/simulation/tests/latent-space/hnsw-exploration.test.ts +253 -0
  663. package/simulation/tests/latent-space/hypergraph-exploration.test.ts +295 -0
  664. package/simulation/tests/latent-space/neural-augmentation.test.ts +326 -0
  665. package/simulation/tests/latent-space/quantum-hybrid.test.ts +307 -0
  666. package/simulation/tests/latent-space/self-organizing-hnsw.test.ts +291 -0
  667. package/simulation/tests/latent-space/traversal-optimization.test.ts +261 -0
  668. package/simulation/types.ts +177 -0
  669. package/simulation/utils/PerformanceOptimizer.ts +269 -0
  670. package/src/backends/GraphBackend.ts +290 -0
  671. package/src/backends/LearningBackend.ts +210 -0
  672. package/src/backends/README.md +389 -0
  673. package/src/backends/VectorBackend.ts +147 -0
  674. package/src/backends/detector.ts +283 -0
  675. package/src/backends/factory.ts +279 -0
  676. package/src/backends/graph/GraphDatabaseAdapter.ts +334 -0
  677. package/src/backends/hnswlib/HNSWLibBackend.ts +419 -0
  678. package/src/backends/hnswlib/index.ts +7 -0
  679. package/src/backends/index.ts +32 -0
  680. package/src/backends/ruvector/GuardedVectorBackend.ts +219 -0
  681. package/src/backends/ruvector/RuVectorBackend.ts +343 -0
  682. package/src/backends/ruvector/RuVectorLearning.ts +254 -0
  683. package/src/backends/ruvector/index.ts +9 -0
  684. package/src/benchmarks/wasm-vector-benchmark.ts +250 -0
  685. package/src/browser/AdvancedFeatures.ts +565 -0
  686. package/src/browser/AttentionBrowser.ts +387 -0
  687. package/src/browser/HNSWIndex.ts +494 -0
  688. package/src/browser/ProductQuantization.ts +419 -0
  689. package/src/browser/index.ts +317 -0
  690. package/src/cli/agentdb-cli.ts +2712 -0
  691. package/src/cli/attention-cli-integration.ts +91 -0
  692. package/src/cli/commands/attention.ts +656 -0
  693. package/src/cli/commands/doctor.ts +322 -0
  694. package/src/cli/commands/init.ts +176 -0
  695. package/src/cli/commands/install-embeddings.ts +81 -0
  696. package/src/cli/commands/migrate.ts +545 -0
  697. package/src/cli/commands/simulate-custom.ts +232 -0
  698. package/src/cli/commands/simulate-report.ts +171 -0
  699. package/src/cli/commands/simulate-wizard.ts +379 -0
  700. package/src/cli/commands/simulate.ts +115 -0
  701. package/src/cli/commands/status.ts +156 -0
  702. package/src/cli/examples.sh +83 -0
  703. package/src/cli/lib/attention-config.ts +326 -0
  704. package/src/cli/lib/config-manager.ts +627 -0
  705. package/src/cli/lib/config-validator.ts +261 -0
  706. package/src/cli/lib/health-monitor.ts +513 -0
  707. package/src/cli/lib/help-formatter.ts +406 -0
  708. package/src/cli/lib/history-tracker.ts +503 -0
  709. package/src/cli/lib/report-generator.ts +455 -0
  710. package/src/cli/lib/report-store.ts +582 -0
  711. package/src/cli/lib/simulation-registry.ts +503 -0
  712. package/src/cli/lib/simulation-runner.ts +291 -0
  713. package/src/cli/tests/agentdb-cli.test.ts +58 -0
  714. package/src/cli/tests/attention-cli.test.ts +335 -0
  715. package/src/controllers/AttentionService.ts +770 -0
  716. package/src/controllers/CausalMemoryGraph.ts +773 -0
  717. package/src/controllers/CausalRecall.ts +484 -0
  718. package/src/controllers/ContextSynthesizer.ts +285 -0
  719. package/src/controllers/EmbeddingService.ts +161 -0
  720. package/src/controllers/EnhancedEmbeddingService.ts +143 -0
  721. package/src/controllers/ExplainableRecall.ts +746 -0
  722. package/src/controllers/HNSWIndex.ts +495 -0
  723. package/src/controllers/LearningSystem.ts +1270 -0
  724. package/src/controllers/MMRDiversityRanker.ts +187 -0
  725. package/src/controllers/MetadataFilter.ts +280 -0
  726. package/src/controllers/NightlyLearner.ts +647 -0
  727. package/src/controllers/QUICClient.ts +413 -0
  728. package/src/controllers/QUICServer.ts +498 -0
  729. package/src/controllers/ReasoningBank.ts +665 -0
  730. package/src/controllers/ReflexionMemory.ts +872 -0
  731. package/src/controllers/SkillLibrary.ts +795 -0
  732. package/src/controllers/SyncCoordinator.ts +597 -0
  733. package/src/controllers/WASMVectorSearch.ts +292 -0
  734. package/src/controllers/frontier-index.ts +35 -0
  735. package/src/controllers/index.ts +57 -0
  736. package/src/coordination/MultiDatabaseCoordinator.ts +1107 -0
  737. package/src/coordination/index.ts +24 -0
  738. package/src/core/AgentDB.ts +211 -0
  739. package/src/db-fallback.ts +296 -0
  740. package/src/db-test.ts +59 -0
  741. package/src/db-unified.ts +327 -0
  742. package/src/examples/quic-sync-example.ts +198 -0
  743. package/src/examples/wasm-vector-usage.ts +245 -0
  744. package/src/index.ts +69 -0
  745. package/src/mcp/agentdb-mcp-server.ts +2318 -0
  746. package/src/mcp/attention-mcp-integration.ts +145 -0
  747. package/src/mcp/attention-tools-handlers.ts +586 -0
  748. package/src/mcp/learning-tools-handlers.ts +106 -0
  749. package/src/optimizations/BatchOperations.ts +594 -0
  750. package/src/optimizations/QueryOptimizer.ts +297 -0
  751. package/src/optimizations/ToolCache.ts +355 -0
  752. package/src/optimizations/index.ts +11 -0
  753. package/src/schemas/frontier-schema.sql +378 -0
  754. package/src/schemas/schema.sql +382 -0
  755. package/src/security/AttestationLog.ts +252 -0
  756. package/src/security/MutationGuard.ts +420 -0
  757. package/src/security/index.ts +52 -0
  758. package/src/security/input-validation.ts +543 -0
  759. package/src/security/limits.ts +375 -0
  760. package/src/security/path-security.ts +436 -0
  761. package/src/security/validation.ts +556 -0
  762. package/src/services/GraphTransformerService.ts +389 -0
  763. package/src/services/LLMRouter.ts +380 -0
  764. package/src/services/SemanticRouter.ts +169 -0
  765. package/src/services/SonaTrajectoryService.ts +264 -0
  766. package/src/tests/attention-service.test.ts +492 -0
  767. package/src/tests/wasm-vector-search.test.ts +240 -0
  768. package/src/types/attention.ts +392 -0
  769. package/src/types/quic.ts +772 -0
  770. package/src/utils/LegacyAttentionAdapter.ts +393 -0
  771. package/src/utils/NodeIdMapper.ts +64 -0
  772. package/src/utils/attention-metrics.ts +253 -0
  773. package/src/utils/vector-math.ts +71 -0
  774. package/LICENSE +0 -21
  775. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts +0 -175
  776. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts.map +0 -1
  777. package/dist/src/backends/rvf/AdaptiveIndexTuner.js +0 -559
  778. package/dist/src/backends/rvf/AdaptiveIndexTuner.js.map +0 -1
  779. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts +0 -148
  780. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts.map +0 -1
  781. package/dist/src/backends/rvf/ContrastiveTrainer.js +0 -438
  782. package/dist/src/backends/rvf/ContrastiveTrainer.js.map +0 -1
  783. package/dist/src/backends/rvf/FederatedSessionManager.d.ts +0 -211
  784. package/dist/src/backends/rvf/FederatedSessionManager.d.ts.map +0 -1
  785. package/dist/src/backends/rvf/FederatedSessionManager.js +0 -389
  786. package/dist/src/backends/rvf/FederatedSessionManager.js.map +0 -1
  787. package/dist/src/backends/rvf/FilterBuilder.d.ts +0 -136
  788. package/dist/src/backends/rvf/FilterBuilder.d.ts.map +0 -1
  789. package/dist/src/backends/rvf/FilterBuilder.js +0 -157
  790. package/dist/src/backends/rvf/FilterBuilder.js.map +0 -1
  791. package/dist/src/backends/rvf/NativeAccelerator.d.ts +0 -140
  792. package/dist/src/backends/rvf/NativeAccelerator.d.ts.map +0 -1
  793. package/dist/src/backends/rvf/NativeAccelerator.js +0 -630
  794. package/dist/src/backends/rvf/NativeAccelerator.js.map +0 -1
  795. package/dist/src/backends/rvf/RvfBackend.d.ts +0 -194
  796. package/dist/src/backends/rvf/RvfBackend.d.ts.map +0 -1
  797. package/dist/src/backends/rvf/RvfBackend.js +0 -607
  798. package/dist/src/backends/rvf/RvfBackend.js.map +0 -1
  799. package/dist/src/backends/rvf/RvfSolver.d.ts +0 -175
  800. package/dist/src/backends/rvf/RvfSolver.d.ts.map +0 -1
  801. package/dist/src/backends/rvf/RvfSolver.js +0 -176
  802. package/dist/src/backends/rvf/RvfSolver.js.map +0 -1
  803. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts +0 -143
  804. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +0 -1
  805. package/dist/src/backends/rvf/SelfLearningRvfBackend.js +0 -569
  806. package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +0 -1
  807. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts +0 -128
  808. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts.map +0 -1
  809. package/dist/src/backends/rvf/SemanticQueryRouter.js +0 -415
  810. package/dist/src/backends/rvf/SemanticQueryRouter.js.map +0 -1
  811. package/dist/src/backends/rvf/SimdFallbacks.d.ts +0 -25
  812. package/dist/src/backends/rvf/SimdFallbacks.d.ts.map +0 -1
  813. package/dist/src/backends/rvf/SimdFallbacks.js +0 -287
  814. package/dist/src/backends/rvf/SimdFallbacks.js.map +0 -1
  815. package/dist/src/backends/rvf/SolverBandit.d.ts +0 -100
  816. package/dist/src/backends/rvf/SolverBandit.d.ts.map +0 -1
  817. package/dist/src/backends/rvf/SolverBandit.js +0 -216
  818. package/dist/src/backends/rvf/SolverBandit.js.map +0 -1
  819. package/dist/src/backends/rvf/SonaLearningBackend.d.ts +0 -157
  820. package/dist/src/backends/rvf/SonaLearningBackend.d.ts.map +0 -1
  821. package/dist/src/backends/rvf/SonaLearningBackend.js +0 -283
  822. package/dist/src/backends/rvf/SonaLearningBackend.js.map +0 -1
  823. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +0 -77
  824. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +0 -1
  825. package/dist/src/backends/rvf/SqlJsRvfBackend.js +0 -382
  826. package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +0 -1
  827. package/dist/src/backends/rvf/WasmStoreBridge.d.ts +0 -27
  828. package/dist/src/backends/rvf/WasmStoreBridge.d.ts.map +0 -1
  829. package/dist/src/backends/rvf/WasmStoreBridge.js +0 -87
  830. package/dist/src/backends/rvf/WasmStoreBridge.js.map +0 -1
  831. package/dist/src/backends/rvf/validation.d.ts +0 -20
  832. package/dist/src/backends/rvf/validation.d.ts.map +0 -1
  833. package/dist/src/backends/rvf/validation.js +0 -78
  834. package/dist/src/backends/rvf/validation.js.map +0 -1
  835. package/dist/src/benchmark/BenchmarkSuite.d.ts +0 -318
  836. package/dist/src/benchmark/BenchmarkSuite.d.ts.map +0 -1
  837. package/dist/src/benchmark/BenchmarkSuite.js +0 -986
  838. package/dist/src/benchmark/BenchmarkSuite.js.map +0 -1
  839. package/dist/src/benchmark/index.d.ts +0 -29
  840. package/dist/src/benchmark/index.d.ts.map +0 -1
  841. package/dist/src/benchmark/index.js +0 -39
  842. package/dist/src/benchmark/index.js.map +0 -1
  843. package/dist/src/cli/commands/hyperbolic.d.ts +0 -11
  844. package/dist/src/cli/commands/hyperbolic.d.ts.map +0 -1
  845. package/dist/src/cli/commands/hyperbolic.js +0 -428
  846. package/dist/src/cli/commands/hyperbolic.js.map +0 -1
  847. package/dist/src/cli/commands/learn.d.ts +0 -11
  848. package/dist/src/cli/commands/learn.d.ts.map +0 -1
  849. package/dist/src/cli/commands/learn.js +0 -404
  850. package/dist/src/cli/commands/learn.js.map +0 -1
  851. package/dist/src/cli/commands/route.d.ts +0 -11
  852. package/dist/src/cli/commands/route.d.ts.map +0 -1
  853. package/dist/src/cli/commands/route.js +0 -414
  854. package/dist/src/cli/commands/route.js.map +0 -1
  855. package/dist/src/cli/commands/rvf.d.ts +0 -21
  856. package/dist/src/cli/commands/rvf.d.ts.map +0 -1
  857. package/dist/src/cli/commands/rvf.js +0 -448
  858. package/dist/src/cli/commands/rvf.js.map +0 -1
  859. package/dist/src/cli/tests/agentdb-cli.test.d.ts +0 -8
  860. package/dist/src/cli/tests/agentdb-cli.test.d.ts.map +0 -1
  861. package/dist/src/cli/tests/agentdb-cli.test.js +0 -50
  862. package/dist/src/cli/tests/agentdb-cli.test.js.map +0 -1
  863. package/dist/src/cli/tests/attention-cli.test.d.ts +0 -5
  864. package/dist/src/cli/tests/attention-cli.test.d.ts.map +0 -1
  865. package/dist/src/cli/tests/attention-cli.test.js +0 -257
  866. package/dist/src/cli/tests/attention-cli.test.js.map +0 -1
  867. package/dist/src/compatibility/DeprecationWarnings.d.ts +0 -54
  868. package/dist/src/compatibility/DeprecationWarnings.d.ts.map +0 -1
  869. package/dist/src/compatibility/DeprecationWarnings.js +0 -131
  870. package/dist/src/compatibility/DeprecationWarnings.js.map +0 -1
  871. package/dist/src/compatibility/MigrationUtilities.d.ts +0 -30
  872. package/dist/src/compatibility/MigrationUtilities.d.ts.map +0 -1
  873. package/dist/src/compatibility/MigrationUtilities.js +0 -184
  874. package/dist/src/compatibility/MigrationUtilities.js.map +0 -1
  875. package/dist/src/compatibility/V1toV2Adapter.d.ts +0 -76
  876. package/dist/src/compatibility/V1toV2Adapter.d.ts.map +0 -1
  877. package/dist/src/compatibility/V1toV2Adapter.js +0 -198
  878. package/dist/src/compatibility/V1toV2Adapter.js.map +0 -1
  879. package/dist/src/compatibility/VersionDetector.d.ts +0 -32
  880. package/dist/src/compatibility/VersionDetector.d.ts.map +0 -1
  881. package/dist/src/compatibility/VersionDetector.js +0 -144
  882. package/dist/src/compatibility/VersionDetector.js.map +0 -1
  883. package/dist/src/compatibility/index.d.ts +0 -11
  884. package/dist/src/compatibility/index.d.ts.map +0 -1
  885. package/dist/src/compatibility/index.js +0 -10
  886. package/dist/src/compatibility/index.js.map +0 -1
  887. package/dist/src/compatibility/types.d.ts +0 -103
  888. package/dist/src/compatibility/types.d.ts.map +0 -1
  889. package/dist/src/compatibility/types.js +0 -5
  890. package/dist/src/compatibility/types.js.map +0 -1
  891. package/dist/src/controllers/MemoryController.d.ts +0 -161
  892. package/dist/src/controllers/MemoryController.d.ts.map +0 -1
  893. package/dist/src/controllers/MemoryController.js +0 -290
  894. package/dist/src/controllers/MemoryController.js.map +0 -1
  895. package/dist/src/controllers/attention/CrossAttentionController.d.ts +0 -141
  896. package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +0 -1
  897. package/dist/src/controllers/attention/CrossAttentionController.js +0 -325
  898. package/dist/src/controllers/attention/CrossAttentionController.js.map +0 -1
  899. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +0 -137
  900. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +0 -1
  901. package/dist/src/controllers/attention/MultiHeadAttentionController.js +0 -339
  902. package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +0 -1
  903. package/dist/src/controllers/attention/SelfAttentionController.d.ts +0 -117
  904. package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +0 -1
  905. package/dist/src/controllers/attention/SelfAttentionController.js +0 -205
  906. package/dist/src/controllers/attention/SelfAttentionController.js.map +0 -1
  907. package/dist/src/controllers/attention/index.d.ts +0 -15
  908. package/dist/src/controllers/attention/index.d.ts.map +0 -1
  909. package/dist/src/controllers/attention/index.js +0 -12
  910. package/dist/src/controllers/attention/index.js.map +0 -1
  911. package/dist/src/core/QueryCache.d.ts +0 -138
  912. package/dist/src/core/QueryCache.d.ts.map +0 -1
  913. package/dist/src/core/QueryCache.js +0 -313
  914. package/dist/src/core/QueryCache.js.map +0 -1
  915. package/dist/src/observability/index.d.ts +0 -8
  916. package/dist/src/observability/index.d.ts.map +0 -1
  917. package/dist/src/observability/index.js +0 -8
  918. package/dist/src/observability/index.js.map +0 -1
  919. package/dist/src/observability/integration.d.ts +0 -32
  920. package/dist/src/observability/integration.d.ts.map +0 -1
  921. package/dist/src/observability/integration.js +0 -157
  922. package/dist/src/observability/integration.js.map +0 -1
  923. package/dist/src/observability/telemetry.d.ts +0 -137
  924. package/dist/src/observability/telemetry.d.ts.map +0 -1
  925. package/dist/src/observability/telemetry.js +0 -420
  926. package/dist/src/observability/telemetry.js.map +0 -1
  927. package/dist/src/quantization/index.d.ts +0 -7
  928. package/dist/src/quantization/index.d.ts.map +0 -1
  929. package/dist/src/quantization/index.js +0 -15
  930. package/dist/src/quantization/index.js.map +0 -1
  931. package/dist/src/quantization/vector-quantization.d.ts +0 -388
  932. package/dist/src/quantization/vector-quantization.d.ts.map +0 -1
  933. package/dist/src/quantization/vector-quantization.js +0 -1136
  934. package/dist/src/quantization/vector-quantization.js.map +0 -1
  935. package/dist/src/search/HybridSearch.d.ts +0 -311
  936. package/dist/src/search/HybridSearch.d.ts.map +0 -1
  937. package/dist/src/search/HybridSearch.js +0 -712
  938. package/dist/src/search/HybridSearch.js.map +0 -1
  939. package/dist/src/search/index.d.ts +0 -12
  940. package/dist/src/search/index.d.ts.map +0 -1
  941. package/dist/src/search/index.js +0 -16
  942. package/dist/src/search/index.js.map +0 -1
  943. package/dist/src/services/AttentionService.d.ts +0 -303
  944. package/dist/src/services/AttentionService.d.ts.map +0 -1
  945. package/dist/src/services/AttentionService.js +0 -1167
  946. package/dist/src/services/AttentionService.js.map +0 -1
  947. package/dist/src/simd/index.d.ts +0 -9
  948. package/dist/src/simd/index.d.ts.map +0 -1
  949. package/dist/src/simd/index.js +0 -27
  950. package/dist/src/simd/index.js.map +0 -1
  951. package/dist/src/simd/simd-vector-ops.d.ts +0 -332
  952. package/dist/src/simd/simd-vector-ops.d.ts.map +0 -1
  953. package/dist/src/simd/simd-vector-ops.js +0 -947
  954. package/dist/src/simd/simd-vector-ops.js.map +0 -1
  955. package/dist/src/tests/attention-service.test.d.ts +0 -7
  956. package/dist/src/tests/attention-service.test.d.ts.map +0 -1
  957. package/dist/src/tests/attention-service.test.js +0 -401
  958. package/dist/src/tests/attention-service.test.js.map +0 -1
  959. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts +0 -7
  960. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts.map +0 -1
  961. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js +0 -283
  962. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js.map +0 -1
  963. package/dist/src/tests/query-cache.test.d.ts +0 -7
  964. package/dist/src/tests/query-cache.test.d.ts.map +0 -1
  965. package/dist/src/tests/query-cache.test.js +0 -343
  966. package/dist/src/tests/query-cache.test.js.map +0 -1
  967. package/dist/src/tests/ruvector-integration.test.d.ts +0 -14
  968. package/dist/src/tests/ruvector-integration.test.d.ts.map +0 -1
  969. package/dist/src/tests/ruvector-integration.test.js +0 -1156
  970. package/dist/src/tests/ruvector-integration.test.js.map +0 -1
  971. package/dist/src/tests/unit/auth/crypto.utils.test.d.ts +0 -6
  972. package/dist/src/tests/unit/auth/crypto.utils.test.d.ts.map +0 -1
  973. package/dist/src/tests/unit/auth/crypto.utils.test.js +0 -310
  974. package/dist/src/tests/unit/auth/crypto.utils.test.js.map +0 -1
  975. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts +0 -5
  976. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts.map +0 -1
  977. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js +0 -207
  978. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js.map +0 -1
  979. package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts +0 -5
  980. package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts.map +0 -1
  981. package/dist/src/tests/unit/compatibility/migration-utils.test.js +0 -264
  982. package/dist/src/tests/unit/compatibility/migration-utils.test.js.map +0 -1
  983. package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts +0 -7
  984. package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts.map +0 -1
  985. package/dist/src/tests/unit/compatibility/v1-adapter.test.js +0 -228
  986. package/dist/src/tests/unit/compatibility/v1-adapter.test.js.map +0 -1
  987. package/dist/src/tests/unit/compatibility/version-detector.test.d.ts +0 -10
  988. package/dist/src/tests/unit/compatibility/version-detector.test.d.ts.map +0 -1
  989. package/dist/src/tests/unit/compatibility/version-detector.test.js +0 -162
  990. package/dist/src/tests/unit/compatibility/version-detector.test.js.map +0 -1
  991. package/dist/src/tests/vector-quantization.test.d.ts +0 -5
  992. package/dist/src/tests/vector-quantization.test.d.ts.map +0 -1
  993. package/dist/src/tests/vector-quantization.test.js +0 -338
  994. package/dist/src/tests/vector-quantization.test.js.map +0 -1
  995. package/dist/src/tests/wasm-vector-search.test.d.ts +0 -7
  996. package/dist/src/tests/wasm-vector-search.test.d.ts.map +0 -1
  997. package/dist/src/tests/wasm-vector-search.test.js +0 -193
  998. package/dist/src/tests/wasm-vector-search.test.js.map +0 -1
  999. package/dist/src/types/database.types.d.ts +0 -275
  1000. package/dist/src/types/database.types.d.ts.map +0 -1
  1001. package/dist/src/types/database.types.js +0 -57
  1002. package/dist/src/types/database.types.js.map +0 -1
  1003. package/dist/src/utils/chalk-fallback.d.ts +0 -3
  1004. package/dist/src/utils/chalk-fallback.d.ts.map +0 -1
  1005. package/dist/src/utils/chalk-fallback.js +0 -20
  1006. package/dist/src/utils/chalk-fallback.js.map +0 -1
  1007. package/dist/src/utils/crypto.utils.d.ts +0 -122
  1008. package/dist/src/utils/crypto.utils.d.ts.map +0 -1
  1009. package/dist/src/utils/crypto.utils.js +0 -296
  1010. package/dist/src/utils/crypto.utils.js.map +0 -1
  1011. package/dist/src/utils/similarity.d.ts +0 -11
  1012. package/dist/src/utils/similarity.d.ts.map +0 -1
  1013. package/dist/src/utils/similarity.js +0 -25
  1014. package/dist/src/utils/similarity.js.map +0 -1
  1015. package/dist/src/wasm-loader.d.ts +0 -67
  1016. package/dist/src/wasm-loader.d.ts.map +0 -1
  1017. package/dist/src/wasm-loader.js +0 -78
  1018. package/dist/src/wasm-loader.js.map +0 -1
  1019. package/dist/src/wrappers/agentdb-fast.d.ts +0 -139
  1020. package/dist/src/wrappers/agentdb-fast.d.ts.map +0 -1
  1021. package/dist/src/wrappers/agentdb-fast.js +0 -316
  1022. package/dist/src/wrappers/agentdb-fast.js.map +0 -1
  1023. package/dist/src/wrappers/attention-fallbacks.d.ts +0 -351
  1024. package/dist/src/wrappers/attention-fallbacks.d.ts.map +0 -1
  1025. package/dist/src/wrappers/attention-fallbacks.js +0 -1487
  1026. package/dist/src/wrappers/attention-fallbacks.js.map +0 -1
  1027. package/dist/src/wrappers/embedding-service.d.ts +0 -117
  1028. package/dist/src/wrappers/embedding-service.d.ts.map +0 -1
  1029. package/dist/src/wrappers/embedding-service.js +0 -376
  1030. package/dist/src/wrappers/embedding-service.js.map +0 -1
  1031. package/dist/src/wrappers/gnn-wrapper.d.ts +0 -71
  1032. package/dist/src/wrappers/gnn-wrapper.d.ts.map +0 -1
  1033. package/dist/src/wrappers/gnn-wrapper.js +0 -240
  1034. package/dist/src/wrappers/gnn-wrapper.js.map +0 -1
  1035. package/dist/src/wrappers/index.d.ts +0 -48
  1036. package/dist/src/wrappers/index.d.ts.map +0 -1
  1037. package/dist/src/wrappers/index.js +0 -83
  1038. package/dist/src/wrappers/index.js.map +0 -1
@@ -1,1167 +0,0 @@
1
- /**
2
- * AttentionService - RuVector Attention Mechanisms Integration
3
- *
4
- * This service provides a unified interface for attention mechanisms with
5
- * RuVector WASM/NAPI bindings and robust JavaScript fallback implementations.
6
- *
7
- * Architecture:
8
- * - HyperbolicAttention: Tree-structured Poincare embeddings for causal chains
9
- * - FlashAttention: Memory-efficient block-wise attention for consolidation
10
- * - GraphRoPE: Hop-distance-aware positional encoding for graph queries
11
- * - MoEAttention: Expert routing for specialized memory domains
12
- *
13
- * All mechanisms default to FALSE (opt-in) and provide backward-compatible fallbacks.
14
- * WASM bindings are used when available for 10-100x performance improvements.
15
- *
16
- * @module AttentionService
17
- * @version 2.0.0-alpha.4
18
- */
19
- // Performance logging utility
20
- const PERFORMANCE_LOGGING = process.env.AGENTDB_PERF_LOGGING === 'true';
21
- const performanceLogs = [];
22
- function logPerformance(log) {
23
- if (PERFORMANCE_LOGGING) {
24
- performanceLogs.push(log);
25
- console.log(`[AttentionService] ${log.mechanism} using ${log.backend}: ${log.durationMs.toFixed(2)}ms (input size: ${log.inputSize})`);
26
- }
27
- }
28
- /**
29
- * Get all performance logs (useful for debugging and optimization)
30
- */
31
- export function getPerformanceLogs() {
32
- return [...performanceLogs];
33
- }
34
- /**
35
- * Clear performance logs
36
- */
37
- export function clearPerformanceLogs() {
38
- performanceLogs.length = 0;
39
- }
40
- // Lazy-loaded WASM/NAPI modules
41
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
- let wasmModule = null;
43
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
- let napiModule = null;
45
- let wasmInitialized = false;
46
- let napiInitialized = false;
47
- let wasmLoadAttempted = false;
48
- let napiLoadAttempted = false;
49
- /**
50
- * Attempt to load the ruvector-attention-wasm module
51
- */
52
- async function loadWasmModule() {
53
- if (wasmLoadAttempted)
54
- return wasmInitialized;
55
- wasmLoadAttempted = true;
56
- try {
57
- // Dynamic import for WASM module
58
- const wasm = await import('ruvector-attention-wasm');
59
- if (wasm.default) {
60
- await wasm.default(); // Initialize WASM
61
- }
62
- else if (wasm.init) {
63
- wasm.init();
64
- }
65
- wasmModule = wasm;
66
- wasmInitialized = true;
67
- if (PERFORMANCE_LOGGING) {
68
- console.log('[AttentionService] WASM module loaded successfully');
69
- }
70
- return true;
71
- }
72
- catch (error) {
73
- if (PERFORMANCE_LOGGING) {
74
- console.warn('[AttentionService] WASM module not available:', error.message);
75
- }
76
- return false;
77
- }
78
- }
79
- /**
80
- * Attempt to load the @ruvector/attention NAPI module
81
- */
82
- async function loadNapiModule() {
83
- if (napiLoadAttempted)
84
- return napiInitialized;
85
- napiLoadAttempted = true;
86
- try {
87
- // Dynamic import for NAPI module
88
- napiModule = await import('@ruvector/attention');
89
- napiInitialized = true;
90
- if (PERFORMANCE_LOGGING) {
91
- console.log('[AttentionService] NAPI module loaded successfully');
92
- }
93
- return true;
94
- }
95
- catch (error) {
96
- if (PERFORMANCE_LOGGING) {
97
- console.warn('[AttentionService] NAPI module not available:', error.message);
98
- }
99
- return false;
100
- }
101
- }
102
- /**
103
- * Check if WASM backend is available
104
- */
105
- export function isWasmAvailable() {
106
- return wasmInitialized;
107
- }
108
- /**
109
- * Check if NAPI backend is available
110
- */
111
- export function isNapiAvailable() {
112
- return napiInitialized;
113
- }
114
- /**
115
- * Get the best available backend
116
- */
117
- export function getAvailableBackend() {
118
- if (napiInitialized)
119
- return 'napi';
120
- if (wasmInitialized)
121
- return 'wasm';
122
- return 'fallback';
123
- }
124
- /**
125
- * AttentionService - Unified interface for attention mechanisms
126
- *
127
- * Provides fallback implementations until RuVector WASM/NAPI bindings are available.
128
- * All mechanisms are opt-in via configuration flags.
129
- */
130
- export class AttentionService {
131
- db;
132
- hyperbolicConfig;
133
- flashConfig;
134
- graphRoPEConfig;
135
- moeConfig;
136
- constructor(db, configs) {
137
- this.db = db;
138
- // Initialize configs with defaults (all disabled)
139
- this.hyperbolicConfig = {
140
- enabled: false,
141
- curvature: 1.0,
142
- dimension: 384,
143
- temperature: 1.0,
144
- ...configs?.hyperbolic,
145
- };
146
- this.flashConfig = {
147
- enabled: false,
148
- blockSize: 256,
149
- useSIMD: true,
150
- maxSeqLen: 4096,
151
- ...configs?.flash,
152
- };
153
- this.graphRoPEConfig = {
154
- enabled: false,
155
- maxHops: 10,
156
- rotaryDim: 64,
157
- baseFreq: 10000,
158
- ...configs?.graphRoPE,
159
- };
160
- this.moeConfig = {
161
- enabled: false,
162
- numExperts: 8,
163
- topK: 2,
164
- expertDomains: ['code', 'data', 'reasoning', 'planning', 'execution', 'review', 'documentation', 'optimization'],
165
- ...configs?.moe,
166
- };
167
- }
168
- /**
169
- * HyperbolicAttention: Tree-structured Poincare attention for causal chains
170
- *
171
- * Uses hyperbolic geometry to model hierarchical relationships in causal memory.
172
- * Attempts to use NAPI bindings first, then WASM, then falls back to JavaScript.
173
- *
174
- * @param queries - Query embeddings [num_queries, dim]
175
- * @param keys - Key embeddings from causal chain [num_keys, dim]
176
- * @param values - Value embeddings [num_keys, dim]
177
- * @param hierarchyLevels - Hierarchy level for each key (0 = root)
178
- * @returns Attention result with Poincare-weighted outputs
179
- */
180
- async hyperbolicAttention(queries, keys, values, hierarchyLevels) {
181
- const startTime = Date.now();
182
- const dim = this.hyperbolicConfig.dimension;
183
- const numQueries = queries.length / dim;
184
- const numKeys = keys.length / dim;
185
- if (!this.hyperbolicConfig.enabled) {
186
- // Fallback: Standard attention with hierarchical scaling
187
- return this.fallbackHyperbolicAttention(queries, keys, values, hierarchyLevels, startTime);
188
- }
189
- // Try NAPI first (fastest for Node.js)
190
- await loadNapiModule();
191
- if (napiInitialized && napiModule?.HyperbolicAttention) {
192
- try {
193
- const attention = new napiModule.HyperbolicAttention(dim, this.hyperbolicConfig.curvature);
194
- // Convert to format expected by NAPI: arrays of Float32Arrays
195
- const keysArray = [];
196
- const valuesArray = [];
197
- for (let i = 0; i < numKeys; i++) {
198
- keysArray.push(keys.slice(i * dim, (i + 1) * dim));
199
- valuesArray.push(values.slice(i * dim, (i + 1) * dim));
200
- }
201
- // Process each query
202
- const attended = new Float32Array(numQueries * dim);
203
- const allWeights = [];
204
- for (let q = 0; q < numQueries; q++) {
205
- const query = queries.slice(q * dim, (q + 1) * dim);
206
- const result = attention.computeRaw(query, keysArray, valuesArray);
207
- attended.set(result, q * dim);
208
- // Approximate weights based on hierarchy
209
- for (let k = 0; k < numKeys; k++) {
210
- allWeights.push(Math.exp(-hierarchyLevels[k] * 0.5) / numKeys);
211
- }
212
- }
213
- const durationMs = Date.now() - startTime;
214
- logPerformance({
215
- mechanism: 'hyperbolicAttention',
216
- backend: 'napi',
217
- durationMs,
218
- inputSize: queries.length,
219
- timestamp: Date.now(),
220
- });
221
- return {
222
- attended,
223
- weights: new Float32Array(allWeights),
224
- distances: hierarchyLevels,
225
- metrics: {
226
- computeTimeMs: durationMs,
227
- memoryUsedMB: (attended.byteLength + allWeights.length * 4) / (1024 * 1024),
228
- },
229
- };
230
- }
231
- catch (error) {
232
- if (PERFORMANCE_LOGGING) {
233
- console.warn('[AttentionService] NAPI hyperbolicAttention failed, trying WASM:', error.message);
234
- }
235
- }
236
- }
237
- // Try WASM (for browsers or Node.js fallback)
238
- await loadWasmModule();
239
- if (wasmInitialized && wasmModule?.WasmHyperbolicAttention) {
240
- try {
241
- const attention = new wasmModule.WasmHyperbolicAttention(dim, this.hyperbolicConfig.curvature);
242
- // Convert to format expected by WASM
243
- const keysArray = [];
244
- const valuesArray = [];
245
- for (let i = 0; i < numKeys; i++) {
246
- keysArray.push(keys.slice(i * dim, (i + 1) * dim));
247
- valuesArray.push(values.slice(i * dim, (i + 1) * dim));
248
- }
249
- // Process each query
250
- const attended = new Float32Array(numQueries * dim);
251
- const allWeights = [];
252
- for (let q = 0; q < numQueries; q++) {
253
- const query = queries.slice(q * dim, (q + 1) * dim);
254
- const result = attention.compute(query, keysArray, valuesArray);
255
- attended.set(result, q * dim);
256
- // Approximate weights based on hierarchy
257
- for (let k = 0; k < numKeys; k++) {
258
- allWeights.push(Math.exp(-hierarchyLevels[k] * 0.5) / numKeys);
259
- }
260
- }
261
- // Clean up WASM instance
262
- if (attention.free) {
263
- attention.free();
264
- }
265
- const durationMs = Date.now() - startTime;
266
- logPerformance({
267
- mechanism: 'hyperbolicAttention',
268
- backend: 'wasm',
269
- durationMs,
270
- inputSize: queries.length,
271
- timestamp: Date.now(),
272
- });
273
- return {
274
- attended,
275
- weights: new Float32Array(allWeights),
276
- distances: hierarchyLevels,
277
- metrics: {
278
- computeTimeMs: durationMs,
279
- memoryUsedMB: (attended.byteLength + allWeights.length * 4) / (1024 * 1024),
280
- },
281
- };
282
- }
283
- catch (error) {
284
- if (PERFORMANCE_LOGGING) {
285
- console.warn('[AttentionService] WASM hyperbolicAttention failed, using fallback:', error.message);
286
- }
287
- }
288
- }
289
- // Fallback to JavaScript implementation
290
- return this.fallbackHyperbolicAttention(queries, keys, values, hierarchyLevels, startTime);
291
- }
292
- /**
293
- * FlashAttention: Memory-efficient block-wise attention for consolidation
294
- *
295
- * Processes attention in blocks to reduce peak memory usage.
296
- * Ideal for episodic memory consolidation with large buffers.
297
- * Attempts to use NAPI bindings first, then WASM, then falls back to JavaScript.
298
- *
299
- * @param queries - Query embeddings [num_queries, dim]
300
- * @param keys - Key embeddings [num_keys, dim]
301
- * @param values - Value embeddings [num_keys, dim]
302
- * @returns Attention result with memory-efficient computation
303
- */
304
- async flashAttention(queries, keys, values) {
305
- const startTime = Date.now();
306
- const dim = 384; // Standard dimension
307
- const numQueries = queries.length / dim;
308
- const numKeys = keys.length / dim;
309
- const blockSize = this.flashConfig.blockSize;
310
- if (!this.flashConfig.enabled) {
311
- // Fallback: Chunked attention
312
- return this.fallbackFlashAttention(queries, keys, values, startTime);
313
- }
314
- // Try NAPI first (fastest for Node.js)
315
- await loadNapiModule();
316
- if (napiInitialized && napiModule?.FlashAttention) {
317
- try {
318
- const attention = new napiModule.FlashAttention(dim, blockSize);
319
- // Convert to format expected by NAPI: arrays of Float32Arrays
320
- const keysArray = [];
321
- const valuesArray = [];
322
- for (let i = 0; i < numKeys; i++) {
323
- keysArray.push(keys.slice(i * dim, (i + 1) * dim));
324
- valuesArray.push(values.slice(i * dim, (i + 1) * dim));
325
- }
326
- // Process each query
327
- const output = new Float32Array(numQueries * dim);
328
- let blocksProcessed = 0;
329
- for (let q = 0; q < numQueries; q++) {
330
- const query = queries.slice(q * dim, (q + 1) * dim);
331
- const result = attention.computeRaw(query, keysArray, valuesArray);
332
- output.set(result, q * dim);
333
- blocksProcessed += Math.ceil(numKeys / blockSize);
334
- }
335
- const durationMs = Date.now() - startTime;
336
- logPerformance({
337
- mechanism: 'flashAttention',
338
- backend: 'napi',
339
- durationMs,
340
- inputSize: queries.length,
341
- timestamp: Date.now(),
342
- });
343
- return {
344
- output,
345
- metrics: {
346
- computeTimeMs: durationMs,
347
- peakMemoryMB: (output.byteLength + blockSize * dim * 4 * 2) / (1024 * 1024),
348
- blocksProcessed,
349
- },
350
- };
351
- }
352
- catch (error) {
353
- if (PERFORMANCE_LOGGING) {
354
- console.warn('[AttentionService] NAPI flashAttention failed, trying WASM:', error.message);
355
- }
356
- }
357
- }
358
- // Try WASM (for browsers or Node.js fallback)
359
- await loadWasmModule();
360
- if (wasmInitialized && wasmModule?.WasmFlashAttention) {
361
- try {
362
- const attention = new wasmModule.WasmFlashAttention(dim, blockSize);
363
- // Convert to format expected by WASM
364
- const keysArray = [];
365
- const valuesArray = [];
366
- for (let i = 0; i < numKeys; i++) {
367
- keysArray.push(keys.slice(i * dim, (i + 1) * dim));
368
- valuesArray.push(values.slice(i * dim, (i + 1) * dim));
369
- }
370
- // Process each query
371
- const output = new Float32Array(numQueries * dim);
372
- let blocksProcessed = 0;
373
- for (let q = 0; q < numQueries; q++) {
374
- const query = queries.slice(q * dim, (q + 1) * dim);
375
- const result = attention.compute(query, keysArray, valuesArray);
376
- output.set(result, q * dim);
377
- blocksProcessed += Math.ceil(numKeys / blockSize);
378
- }
379
- // Clean up WASM instance
380
- if (attention.free) {
381
- attention.free();
382
- }
383
- const durationMs = Date.now() - startTime;
384
- logPerformance({
385
- mechanism: 'flashAttention',
386
- backend: 'wasm',
387
- durationMs,
388
- inputSize: queries.length,
389
- timestamp: Date.now(),
390
- });
391
- return {
392
- output,
393
- metrics: {
394
- computeTimeMs: durationMs,
395
- peakMemoryMB: (output.byteLength + blockSize * dim * 4 * 2) / (1024 * 1024),
396
- blocksProcessed,
397
- },
398
- };
399
- }
400
- catch (error) {
401
- if (PERFORMANCE_LOGGING) {
402
- console.warn('[AttentionService] WASM flashAttention failed, using fallback:', error.message);
403
- }
404
- }
405
- }
406
- // Fallback to JavaScript implementation
407
- return this.fallbackFlashAttention(queries, keys, values, startTime);
408
- }
409
- /**
410
- * GraphRoPE: Hop-distance-aware rotary positional encoding
411
- *
412
- * Encodes graph distances into query/key representations using rotary
413
- * positional embeddings. Attempts to use NAPI bindings first, then falls
414
- * back to JavaScript implementation.
415
- *
416
- * Note: The WASM module does not have a direct GraphRoPE binding, so we
417
- * use the NAPI GraphRoPeAttention class when available.
418
- *
419
- * @param queries - Query embeddings [num_queries, dim]
420
- * @param keys - Key embeddings [num_keys, dim]
421
- * @param hopDistances - Hop distance matrix [num_queries, num_keys]
422
- * @returns Position-encoded queries and keys
423
- */
424
- async graphRoPE(queries, keys, hopDistances) {
425
- const startTime = Date.now();
426
- const dim = 384; // Standard dimension
427
- const numQueries = queries.length / dim;
428
- const numKeys = keys.length / dim;
429
- const maxPosition = this.graphRoPEConfig.maxHops;
430
- if (!this.graphRoPEConfig.enabled) {
431
- // Fallback: Distance scaling
432
- return this.fallbackGraphRoPE(queries, keys, hopDistances, startTime);
433
- }
434
- // Try NAPI first (has GraphRoPeAttention)
435
- await loadNapiModule();
436
- if (napiInitialized && napiModule?.GraphRoPeAttention) {
437
- try {
438
- const rope = new napiModule.GraphRoPeAttention(dim, maxPosition);
439
- // The GraphRoPeAttention is an attention mechanism, not just encoding
440
- // We use it to compute position-aware attention, then extract the patterns
441
- const keysArray = [];
442
- const valuesArray = [];
443
- for (let i = 0; i < numKeys; i++) {
444
- keysArray.push(keys.slice(i * dim, (i + 1) * dim));
445
- valuesArray.push(keys.slice(i * dim, (i + 1) * dim)); // Use keys as values for encoding
446
- }
447
- // Apply RoPE encoding per query
448
- const encodedQueries = new Float32Array(queries.length);
449
- const encodedKeys = new Float32Array(keys.length);
450
- const hopEncodings = new Float32Array(numQueries * numKeys);
451
- // Copy original queries/keys as base
452
- encodedQueries.set(queries);
453
- encodedKeys.set(keys);
454
- // Compute hop-aware encodings using the attention mechanism
455
- for (let q = 0; q < numQueries; q++) {
456
- const query = queries.slice(q * dim, (q + 1) * dim);
457
- rope.computeRaw(query, keysArray, valuesArray);
458
- // The _ropeResult gives us position-encoded output
459
- // Extract encoding strength from the result
460
- for (let k = 0; k < numKeys; k++) {
461
- const hopDistance = hopDistances[q]?.[k] || 0;
462
- const scale = 1.0 / (1.0 + hopDistance);
463
- hopEncodings[q * numKeys + k] = scale;
464
- // Apply rotary-like scaling to queries
465
- if (q === 0) {
466
- for (let d = 0; d < dim; d++) {
467
- const theta = d / dim * Math.PI * hopDistance / maxPosition;
468
- const cos_t = Math.cos(theta);
469
- const sin_t = Math.sin(theta);
470
- // Simple rotary application
471
- if (d % 2 === 0 && d + 1 < dim) {
472
- const x = keys[k * dim + d];
473
- const y = keys[k * dim + d + 1];
474
- encodedKeys[k * dim + d] = x * cos_t - y * sin_t;
475
- encodedKeys[k * dim + d + 1] = x * sin_t + y * cos_t;
476
- }
477
- }
478
- }
479
- }
480
- // Apply rotary to queries
481
- for (let d = 0; d < dim; d++) {
482
- const avgHop = hopDistances[q]?.reduce((a, b) => a + b, 0) / (numKeys || 1) || 0;
483
- const theta = d / dim * Math.PI * avgHop / maxPosition;
484
- const cos_t = Math.cos(theta);
485
- const sin_t = Math.sin(theta);
486
- if (d % 2 === 0 && d + 1 < dim) {
487
- const x = queries[q * dim + d];
488
- const y = queries[q * dim + d + 1];
489
- encodedQueries[q * dim + d] = x * cos_t - y * sin_t;
490
- encodedQueries[q * dim + d + 1] = x * sin_t + y * cos_t;
491
- }
492
- }
493
- }
494
- const durationMs = Date.now() - startTime;
495
- logPerformance({
496
- mechanism: 'graphRoPE',
497
- backend: 'napi',
498
- durationMs,
499
- inputSize: queries.length,
500
- timestamp: Date.now(),
501
- });
502
- return {
503
- queries: encodedQueries,
504
- keys: encodedKeys,
505
- hopEncodings,
506
- metrics: {
507
- computeTimeMs: durationMs,
508
- },
509
- };
510
- }
511
- catch (error) {
512
- if (PERFORMANCE_LOGGING) {
513
- console.warn('[AttentionService] NAPI graphRoPE failed, using fallback:', error.message);
514
- }
515
- }
516
- }
517
- // WASM module does not have a direct GraphRoPE binding
518
- // The WasmLocalGlobalAttention is the closest but not suitable for this use case
519
- // Fall through to JavaScript implementation
520
- // Fallback to JavaScript implementation
521
- const result = this.fallbackGraphRoPE(queries, keys, hopDistances, startTime);
522
- logPerformance({
523
- mechanism: 'graphRoPE',
524
- backend: 'fallback',
525
- durationMs: Date.now() - startTime,
526
- inputSize: queries.length,
527
- timestamp: Date.now(),
528
- });
529
- return result;
530
- }
531
- /**
532
- * MoEAttention: Mixture-of-Experts routing for specialized domains
533
- *
534
- * Routes queries to specialized expert networks based on domain.
535
- * Ideal for ReasoningBank with diverse pattern types.
536
- * Attempts to use NAPI bindings first, then WASM, then falls back to JavaScript.
537
- *
538
- * @param queries - Query embeddings [num_queries, dim]
539
- * @param keys - Key embeddings [num_keys, dim]
540
- * @param values - Value embeddings [num_keys, dim]
541
- * @param domains - Domain labels for each key
542
- * @returns Expert-routed attention output
543
- */
544
- async moeAttention(queries, keys, values, domains) {
545
- const startTime = Date.now();
546
- const dim = 384; // Standard dimension
547
- const numQueries = queries.length / dim;
548
- const numKeys = keys.length / dim;
549
- const numExperts = this.moeConfig.numExperts;
550
- const topK = this.moeConfig.topK;
551
- if (!this.moeConfig.enabled) {
552
- // Fallback: Domain-weighted attention
553
- return this.fallbackMoEAttention(queries, keys, values, domains, startTime);
554
- }
555
- // Try NAPI first (fastest for Node.js)
556
- await loadNapiModule();
557
- if (napiInitialized && napiModule?.MoEAttention) {
558
- try {
559
- // MoEAttention constructor takes a config object
560
- const moe = napiModule.MoEAttention.simple
561
- ? napiModule.MoEAttention.simple(dim, numExperts, topK)
562
- : new napiModule.MoEAttention({
563
- dim,
564
- numExperts,
565
- topK,
566
- });
567
- // Convert to format expected by NAPI: arrays of Float32Arrays
568
- const keysArray = [];
569
- const valuesArray = [];
570
- for (let i = 0; i < numKeys; i++) {
571
- keysArray.push(keys.slice(i * dim, (i + 1) * dim));
572
- valuesArray.push(values.slice(i * dim, (i + 1) * dim));
573
- }
574
- // Process each query
575
- const output = new Float32Array(numQueries * dim);
576
- const expertAssignments = [];
577
- const expertWeights = [];
578
- const expertsUsed = new Set();
579
- for (let q = 0; q < numQueries; q++) {
580
- const query = queries.slice(q * dim, (q + 1) * dim);
581
- const result = moe.computeRaw(query, keysArray, valuesArray);
582
- output.set(result, q * dim);
583
- // Compute expert assignments based on domain distribution
584
- const domainCounts = new Map();
585
- domains.forEach(d => domainCounts.set(d, (domainCounts.get(d) || 0) + 1));
586
- const assignments = [];
587
- const weights = [];
588
- const sortedDomains = Array.from(domainCounts.entries())
589
- .sort((a, b) => b[1] - a[1])
590
- .slice(0, topK);
591
- sortedDomains.forEach(([domain, count]) => {
592
- const expertIdx = this.moeConfig.expertDomains.indexOf(domain);
593
- if (expertIdx >= 0 && expertIdx < numExperts) {
594
- assignments.push(expertIdx);
595
- weights.push(count / domains.length);
596
- expertsUsed.add(expertIdx);
597
- }
598
- });
599
- expertAssignments.push(assignments);
600
- expertWeights.push(weights);
601
- }
602
- const durationMs = Date.now() - startTime;
603
- logPerformance({
604
- mechanism: 'moeAttention',
605
- backend: 'napi',
606
- durationMs,
607
- inputSize: queries.length,
608
- timestamp: Date.now(),
609
- });
610
- return {
611
- output,
612
- expertAssignments,
613
- expertWeights,
614
- metrics: {
615
- computeTimeMs: durationMs,
616
- expertsUsed: expertsUsed.size,
617
- routingEntropy: this.calculateEntropy(expertWeights.flat()),
618
- },
619
- };
620
- }
621
- catch (error) {
622
- if (PERFORMANCE_LOGGING) {
623
- console.warn('[AttentionService] NAPI moeAttention failed, trying WASM:', error.message);
624
- }
625
- }
626
- }
627
- // Try WASM (for browsers or Node.js fallback)
628
- await loadWasmModule();
629
- if (wasmInitialized && wasmModule?.WasmMoEAttention) {
630
- try {
631
- const moe = new wasmModule.WasmMoEAttention(dim, numExperts, topK);
632
- // Convert to format expected by WASM
633
- const keysArray = [];
634
- const valuesArray = [];
635
- for (let i = 0; i < numKeys; i++) {
636
- keysArray.push(keys.slice(i * dim, (i + 1) * dim));
637
- valuesArray.push(values.slice(i * dim, (i + 1) * dim));
638
- }
639
- // Process each query
640
- const output = new Float32Array(numQueries * dim);
641
- const expertAssignments = [];
642
- const expertWeights = [];
643
- const expertsUsed = new Set();
644
- for (let q = 0; q < numQueries; q++) {
645
- const query = queries.slice(q * dim, (q + 1) * dim);
646
- const result = moe.compute(query, keysArray, valuesArray);
647
- output.set(result, q * dim);
648
- // Compute expert assignments based on domain distribution
649
- const domainCounts = new Map();
650
- domains.forEach(d => domainCounts.set(d, (domainCounts.get(d) || 0) + 1));
651
- const assignments = [];
652
- const weights = [];
653
- const sortedDomains = Array.from(domainCounts.entries())
654
- .sort((a, b) => b[1] - a[1])
655
- .slice(0, topK);
656
- sortedDomains.forEach(([domain, count]) => {
657
- const expertIdx = this.moeConfig.expertDomains.indexOf(domain);
658
- if (expertIdx >= 0 && expertIdx < numExperts) {
659
- assignments.push(expertIdx);
660
- weights.push(count / domains.length);
661
- expertsUsed.add(expertIdx);
662
- }
663
- });
664
- expertAssignments.push(assignments);
665
- expertWeights.push(weights);
666
- }
667
- // Clean up WASM instance
668
- if (moe.free) {
669
- moe.free();
670
- }
671
- const durationMs = Date.now() - startTime;
672
- logPerformance({
673
- mechanism: 'moeAttention',
674
- backend: 'wasm',
675
- durationMs,
676
- inputSize: queries.length,
677
- timestamp: Date.now(),
678
- });
679
- return {
680
- output,
681
- expertAssignments,
682
- expertWeights,
683
- metrics: {
684
- computeTimeMs: durationMs,
685
- expertsUsed: expertsUsed.size,
686
- routingEntropy: this.calculateEntropy(expertWeights.flat()),
687
- },
688
- };
689
- }
690
- catch (error) {
691
- if (PERFORMANCE_LOGGING) {
692
- console.warn('[AttentionService] WASM moeAttention failed, using fallback:', error.message);
693
- }
694
- }
695
- }
696
- // Fallback to JavaScript implementation
697
- return this.fallbackMoEAttention(queries, keys, values, domains, startTime);
698
- }
699
- // ========================================================================
700
- // Fallback Implementations (CPU-based, backward compatible)
701
- // ========================================================================
702
- fallbackHyperbolicAttention(queries, keys, values, hierarchyLevels, startTime) {
703
- const dim = this.hyperbolicConfig.dimension;
704
- const numQueries = queries.length / dim;
705
- const numKeys = keys.length / dim;
706
- // Compute attention scores with hierarchical scaling
707
- // Uses Poincare ball approximation for hyperbolic distances
708
- const scores = new Float32Array(numQueries * numKeys);
709
- const distances = [];
710
- const curvature = this.hyperbolicConfig.curvature;
711
- for (let i = 0; i < numQueries; i++) {
712
- for (let j = 0; j < numKeys; j++) {
713
- // Dot product with hyperbolic distance weighting
714
- let score = 0;
715
- let qNormSq = 0;
716
- let kNormSq = 0;
717
- for (let d = 0; d < dim; d++) {
718
- const qVal = queries[i * dim + d];
719
- const kVal = keys[j * dim + d];
720
- score += qVal * kVal;
721
- qNormSq += qVal * qVal;
722
- kNormSq += kVal * kVal;
723
- }
724
- // Apply hyperbolic distance correction
725
- // d_H(x, y) = 2 * arctanh(||(-x) + y|| / (1 - ||x||^2)(1 - ||y||^2))
726
- const qNorm = Math.sqrt(Math.min(qNormSq, 0.99)); // Clamp to Poincare ball
727
- const kNorm = Math.sqrt(Math.min(kNormSq, 0.99));
728
- const hyperbolicScale = 1.0 / (1.0 + curvature * qNorm * kNorm);
729
- // Hierarchical scaling (deeper nodes get exponentially scaled)
730
- const hierarchyScale = Math.exp(-hierarchyLevels[j] * 0.5);
731
- score *= hierarchyScale * hyperbolicScale;
732
- scores[i * numKeys + j] = score / Math.sqrt(dim); // Scale by sqrt(dim)
733
- distances.push(hierarchyLevels[j]);
734
- }
735
- }
736
- // Softmax with temperature
737
- const temperature = this.hyperbolicConfig.temperature;
738
- const weights = this.softmax(scores, numQueries, numKeys, temperature);
739
- // Compute attended output
740
- const attended = new Float32Array(numQueries * dim);
741
- for (let i = 0; i < numQueries; i++) {
742
- for (let j = 0; j < numKeys; j++) {
743
- const weight = weights[i * numKeys + j];
744
- for (let d = 0; d < dim; d++) {
745
- attended[i * dim + d] += weight * values[j * dim + d];
746
- }
747
- }
748
- }
749
- const durationMs = Date.now() - startTime;
750
- logPerformance({
751
- mechanism: 'hyperbolicAttention',
752
- backend: 'fallback',
753
- durationMs,
754
- inputSize: queries.length,
755
- timestamp: Date.now(),
756
- });
757
- return {
758
- attended,
759
- weights,
760
- distances,
761
- metrics: {
762
- computeTimeMs: durationMs,
763
- memoryUsedMB: (attended.byteLength + weights.byteLength) / (1024 * 1024),
764
- },
765
- };
766
- }
767
- fallbackFlashAttention(queries, keys, values, startTime) {
768
- const dim = 384; // Assume standard dimension
769
- const numQueries = queries.length / dim;
770
- const numKeys = keys.length / dim;
771
- const blockSize = this.flashConfig.blockSize;
772
- const scale = 1.0 / Math.sqrt(dim);
773
- const output = new Float32Array(numQueries * dim);
774
- let blocksProcessed = 0;
775
- let peakMemory = 0;
776
- // Process in blocks to reduce memory (Flash Attention algorithm)
777
- // This implements a simplified version of the FlashAttention tiling strategy
778
- for (let qStart = 0; qStart < numQueries; qStart += blockSize) {
779
- const qEnd = Math.min(qStart + blockSize, numQueries);
780
- const qBlockSize = qEnd - qStart;
781
- // Track running max and sum for online softmax per query
782
- const runningMax = new Float32Array(qBlockSize).fill(-Infinity);
783
- const runningSum = new Float32Array(qBlockSize).fill(0);
784
- const accumulatedOutput = new Float32Array(qBlockSize * dim);
785
- for (let kStart = 0; kStart < numKeys; kStart += blockSize) {
786
- const kEnd = Math.min(kStart + blockSize, numKeys);
787
- const kBlockSize = kEnd - kStart;
788
- // Compute block attention scores
789
- const blockScores = new Float32Array(qBlockSize * kBlockSize);
790
- for (let qi = 0; qi < qBlockSize; qi++) {
791
- const i = qStart + qi;
792
- for (let ki = 0; ki < kBlockSize; ki++) {
793
- const j = kStart + ki;
794
- let score = 0;
795
- for (let d = 0; d < dim; d++) {
796
- score += queries[i * dim + d] * keys[j * dim + d];
797
- }
798
- blockScores[qi * kBlockSize + ki] = score * scale;
799
- }
800
- }
801
- // Online softmax update with proper rescaling
802
- for (let qi = 0; qi < qBlockSize; qi++) {
803
- // Find new max
804
- let newMax = runningMax[qi];
805
- for (let ki = 0; ki < kBlockSize; ki++) {
806
- newMax = Math.max(newMax, blockScores[qi * kBlockSize + ki]);
807
- }
808
- // Rescale existing accumulator
809
- const rescale = Math.exp(runningMax[qi] - newMax);
810
- let newSum = runningSum[qi] * rescale;
811
- // Rescale accumulated output
812
- for (let d = 0; d < dim; d++) {
813
- accumulatedOutput[qi * dim + d] *= rescale;
814
- }
815
- // Add new block contribution
816
- for (let ki = 0; ki < kBlockSize; ki++) {
817
- const j = kStart + ki;
818
- const expScore = Math.exp(blockScores[qi * kBlockSize + ki] - newMax);
819
- newSum += expScore;
820
- for (let d = 0; d < dim; d++) {
821
- accumulatedOutput[qi * dim + d] += expScore * values[j * dim + d];
822
- }
823
- }
824
- runningMax[qi] = newMax;
825
- runningSum[qi] = newSum;
826
- }
827
- peakMemory = Math.max(peakMemory, blockScores.byteLength + qBlockSize * dim * 4);
828
- blocksProcessed++;
829
- }
830
- // Normalize and copy to output
831
- for (let qi = 0; qi < qBlockSize; qi++) {
832
- const i = qStart + qi;
833
- const invSum = runningSum[qi] > 1e-8 ? 1.0 / runningSum[qi] : 0;
834
- for (let d = 0; d < dim; d++) {
835
- output[i * dim + d] = accumulatedOutput[qi * dim + d] * invSum;
836
- }
837
- }
838
- }
839
- const durationMs = Date.now() - startTime;
840
- logPerformance({
841
- mechanism: 'flashAttention',
842
- backend: 'fallback',
843
- durationMs,
844
- inputSize: queries.length,
845
- timestamp: Date.now(),
846
- });
847
- return {
848
- output,
849
- metrics: {
850
- computeTimeMs: durationMs,
851
- peakMemoryMB: peakMemory / (1024 * 1024),
852
- blocksProcessed,
853
- },
854
- };
855
- }
856
- fallbackGraphRoPE(queries, keys, hopDistances, startTime) {
857
- const dim = 384;
858
- const numQueries = queries.length / dim;
859
- const numKeys = keys.length / dim;
860
- const rotaryDim = this.graphRoPEConfig.rotaryDim;
861
- const baseFreq = this.graphRoPEConfig.baseFreq;
862
- const maxHops = this.graphRoPEConfig.maxHops;
863
- // Create output arrays (copy originals first)
864
- const encodedQueries = new Float32Array(queries);
865
- const encodedKeys = new Float32Array(keys);
866
- const hopEncodings = new Float32Array(numQueries * numKeys);
867
- // Apply rotary positional encoding based on hop distances
868
- // RoPE: rotate pairs of dimensions based on position
869
- for (let i = 0; i < numQueries; i++) {
870
- // Calculate average hop distance for this query
871
- let avgHop = 0;
872
- let validHops = 0;
873
- for (let j = 0; j < numKeys; j++) {
874
- const distance = hopDistances[i]?.[j];
875
- if (distance !== undefined) {
876
- avgHop += distance;
877
- validHops++;
878
- }
879
- }
880
- avgHop = validHops > 0 ? avgHop / validHops : 0;
881
- // Apply rotary encoding to query
882
- for (let d = 0; d < Math.min(rotaryDim, dim); d += 2) {
883
- if (d + 1 >= dim)
884
- break;
885
- // Frequency for this dimension pair
886
- const freq = 1.0 / Math.pow(baseFreq, d / rotaryDim);
887
- const theta = avgHop * freq * Math.PI / maxHops;
888
- const cos_t = Math.cos(theta);
889
- const sin_t = Math.sin(theta);
890
- // Rotate the dimension pair
891
- const x = encodedQueries[i * dim + d];
892
- const y = encodedQueries[i * dim + d + 1];
893
- encodedQueries[i * dim + d] = x * cos_t - y * sin_t;
894
- encodedQueries[i * dim + d + 1] = x * sin_t + y * cos_t;
895
- }
896
- // Store hop encodings
897
- for (let j = 0; j < numKeys; j++) {
898
- const distance = hopDistances[i]?.[j] || 0;
899
- const scale = 1.0 / (1.0 + distance);
900
- hopEncodings[i * numKeys + j] = scale;
901
- }
902
- }
903
- // Apply rotary encoding to keys based on their position in the graph
904
- for (let j = 0; j < numKeys; j++) {
905
- // Use key index as position (could be enhanced with actual graph positions)
906
- const keyPosition = j;
907
- for (let d = 0; d < Math.min(rotaryDim, dim); d += 2) {
908
- if (d + 1 >= dim)
909
- break;
910
- const freq = 1.0 / Math.pow(baseFreq, d / rotaryDim);
911
- const theta = keyPosition * freq * Math.PI / (numKeys || 1);
912
- const cos_t = Math.cos(theta);
913
- const sin_t = Math.sin(theta);
914
- const x = encodedKeys[j * dim + d];
915
- const y = encodedKeys[j * dim + d + 1];
916
- encodedKeys[j * dim + d] = x * cos_t - y * sin_t;
917
- encodedKeys[j * dim + d + 1] = x * sin_t + y * cos_t;
918
- }
919
- }
920
- const durationMs = Date.now() - startTime;
921
- return {
922
- queries: encodedQueries,
923
- keys: encodedKeys,
924
- hopEncodings,
925
- metrics: {
926
- computeTimeMs: durationMs,
927
- },
928
- };
929
- }
930
- fallbackMoEAttention(queries, keys, values, domains, startTime) {
931
- const dim = 384;
932
- const numQueries = queries.length / dim;
933
- const numKeys = keys.length / dim;
934
- const numExperts = this.moeConfig.numExperts;
935
- const topK = this.moeConfig.topK;
936
- const expertDomains = this.moeConfig.expertDomains;
937
- // Expert-based routing with gating mechanism
938
- const expertAssignments = [];
939
- const expertWeights = [];
940
- const output = new Float32Array(numQueries * dim);
941
- const expertsUsed = new Set();
942
- // Pre-compute domain to expert mapping
943
- const domainToExpert = new Map();
944
- expertDomains.forEach((domain, idx) => {
945
- domainToExpert.set(domain, idx);
946
- });
947
- for (let i = 0; i < numQueries; i++) {
948
- const queryVec = queries.slice(i * dim, (i + 1) * dim);
949
- // Compute gating scores for each expert based on query similarity to domain centroids
950
- const expertScores = [];
951
- // Count domain occurrences and compute weighted scores
952
- const domainCounts = new Map();
953
- const domainSims = new Map();
954
- for (let j = 0; j < numKeys; j++) {
955
- const keyDomain = domains[j];
956
- domainCounts.set(keyDomain, (domainCounts.get(keyDomain) || 0) + 1);
957
- // Compute similarity between query and this key
958
- const keyVec = keys.slice(j * dim, (j + 1) * dim);
959
- let sim = 0;
960
- let qNorm = 0;
961
- let kNorm = 0;
962
- for (let d = 0; d < dim; d++) {
963
- sim += queryVec[d] * keyVec[d];
964
- qNorm += queryVec[d] * queryVec[d];
965
- kNorm += keyVec[d] * keyVec[d];
966
- }
967
- // Cosine similarity
968
- const cosSim = sim / (Math.sqrt(qNorm * kNorm) + 1e-8);
969
- domainSims.set(keyDomain, (domainSims.get(keyDomain) || 0) + cosSim);
970
- }
971
- // Normalize similarities and create expert scores
972
- domainCounts.forEach((count, domain) => {
973
- const avgSim = (domainSims.get(domain) || 0) / count;
974
- const expertIdx = domainToExpert.get(domain);
975
- if (expertIdx !== undefined && expertIdx < numExperts) {
976
- expertScores.push({ idx: expertIdx, score: avgSim * Math.log(count + 1) });
977
- }
978
- });
979
- // Select top-K experts
980
- expertScores.sort((a, b) => b.score - a.score);
981
- const topExperts = expertScores.slice(0, topK);
982
- // Compute softmax weights for selected experts
983
- const assignments = [];
984
- const weights = [];
985
- if (topExperts.length > 0) {
986
- const maxScore = topExperts[0].score;
987
- let sumExp = 0;
988
- const expScores = topExperts.map(e => {
989
- const exp = Math.exp(e.score - maxScore);
990
- sumExp += exp;
991
- return exp;
992
- });
993
- topExperts.forEach((expert, idx) => {
994
- const weight = expScores[idx] / (sumExp + 1e-8);
995
- assignments.push(expert.idx);
996
- weights.push(weight);
997
- expertsUsed.add(expert.idx);
998
- });
999
- }
1000
- else {
1001
- // Fallback: use first expert with equal weight
1002
- assignments.push(0);
1003
- weights.push(1.0);
1004
- expertsUsed.add(0);
1005
- }
1006
- expertAssignments.push(assignments);
1007
- expertWeights.push(weights);
1008
- // Compute weighted output from selected experts
1009
- for (let j = 0; j < numKeys; j++) {
1010
- const keyDomain = domains[j];
1011
- const expertIdx = domainToExpert.get(keyDomain);
1012
- if (expertIdx !== undefined) {
1013
- const assignmentIdx = assignments.indexOf(expertIdx);
1014
- if (assignmentIdx >= 0) {
1015
- const weight = weights[assignmentIdx];
1016
- for (let d = 0; d < dim; d++) {
1017
- output[i * dim + d] += weight * values[j * dim + d] / numKeys;
1018
- }
1019
- }
1020
- }
1021
- }
1022
- }
1023
- // Calculate routing entropy (measures load balancing across experts)
1024
- const routingEntropy = this.calculateEntropy(expertWeights.flat());
1025
- const durationMs = Date.now() - startTime;
1026
- logPerformance({
1027
- mechanism: 'moeAttention',
1028
- backend: 'fallback',
1029
- durationMs,
1030
- inputSize: queries.length,
1031
- timestamp: Date.now(),
1032
- });
1033
- return {
1034
- output,
1035
- expertAssignments,
1036
- expertWeights,
1037
- metrics: {
1038
- computeTimeMs: durationMs,
1039
- expertsUsed: expertsUsed.size,
1040
- routingEntropy,
1041
- },
1042
- };
1043
- }
1044
- // Helper: Softmax with optional temperature parameter
1045
- softmax(scores, rows, cols, temperature = 1.0) {
1046
- const result = new Float32Array(scores.length);
1047
- const invTemp = 1.0 / Math.max(temperature, 1e-8); // Prevent division by zero
1048
- for (let i = 0; i < rows; i++) {
1049
- let max = -Infinity;
1050
- for (let j = 0; j < cols; j++) {
1051
- const scaledScore = scores[i * cols + j] * invTemp;
1052
- max = Math.max(max, scaledScore);
1053
- }
1054
- let sum = 0;
1055
- for (let j = 0; j < cols; j++) {
1056
- const scaledScore = scores[i * cols + j] * invTemp;
1057
- result[i * cols + j] = Math.exp(scaledScore - max);
1058
- sum += result[i * cols + j];
1059
- }
1060
- // Normalize with numerical stability
1061
- const invSum = sum > 1e-8 ? 1.0 / sum : 1.0 / cols;
1062
- for (let j = 0; j < cols; j++) {
1063
- result[i * cols + j] *= invSum;
1064
- }
1065
- }
1066
- return result;
1067
- }
1068
- // Helper: Calculate entropy
1069
- calculateEntropy(probs) {
1070
- return probs.reduce((entropy, p) => {
1071
- return p > 0 ? entropy - p * Math.log2(p) : entropy;
1072
- }, 0);
1073
- }
1074
- /**
1075
- * Get current configuration
1076
- */
1077
- getConfig() {
1078
- return {
1079
- hyperbolic: this.hyperbolicConfig,
1080
- flash: this.flashConfig,
1081
- graphRoPE: this.graphRoPEConfig,
1082
- moe: this.moeConfig,
1083
- };
1084
- }
1085
- /**
1086
- * Update configuration dynamically
1087
- */
1088
- updateConfig(configs) {
1089
- if (configs.hyperbolic) {
1090
- this.hyperbolicConfig = { ...this.hyperbolicConfig, ...configs.hyperbolic };
1091
- }
1092
- if (configs.flash) {
1093
- this.flashConfig = { ...this.flashConfig, ...configs.flash };
1094
- }
1095
- if (configs.graphRoPE) {
1096
- this.graphRoPEConfig = { ...this.graphRoPEConfig, ...configs.graphRoPE };
1097
- }
1098
- if (configs.moe) {
1099
- this.moeConfig = { ...this.moeConfig, ...configs.moe };
1100
- }
1101
- }
1102
- /**
1103
- * Get backend status information
1104
- * Useful for debugging and monitoring
1105
- */
1106
- getBackendStatus() {
1107
- return {
1108
- wasmAvailable: wasmInitialized,
1109
- napiAvailable: napiInitialized,
1110
- activeBackend: getAvailableBackend(),
1111
- performanceLoggingEnabled: PERFORMANCE_LOGGING,
1112
- };
1113
- }
1114
- }
1115
- /**
1116
- * Initialize attention backends proactively
1117
- * Call this at application startup for faster first-use performance
1118
- *
1119
- * @returns Promise resolving to backend status
1120
- */
1121
- export async function initializeAttentionBackends() {
1122
- const [wasmLoaded, napiLoaded] = await Promise.all([
1123
- loadWasmModule(),
1124
- loadNapiModule(),
1125
- ]);
1126
- return {
1127
- wasmLoaded,
1128
- napiLoaded,
1129
- recommendedBackend: getAvailableBackend(),
1130
- };
1131
- }
1132
- /**
1133
- * Create an AttentionService with all mechanisms enabled
1134
- * Convenience factory for quick setup
1135
- *
1136
- * @param db - Database instance (can be null for standalone usage)
1137
- * @returns Configured AttentionService instance
1138
- */
1139
- export function createAttentionService(db = null) {
1140
- return new AttentionService(db, {
1141
- hyperbolic: { enabled: true },
1142
- flash: { enabled: true },
1143
- graphRoPE: { enabled: true },
1144
- moe: { enabled: true },
1145
- });
1146
- }
1147
- /**
1148
- * Create an AttentionService with only fallback implementations
1149
- * Useful for environments where WASM/NAPI are unavailable
1150
- *
1151
- * @param db - Database instance (can be null for standalone usage)
1152
- * @returns Configured AttentionService instance with fallbacks only
1153
- */
1154
- export function createFallbackAttentionService(db = null) {
1155
- // Reset module loading flags to force fallback
1156
- wasmLoadAttempted = true;
1157
- napiLoadAttempted = true;
1158
- wasmInitialized = false;
1159
- napiInitialized = false;
1160
- return new AttentionService(db, {
1161
- hyperbolic: { enabled: true },
1162
- flash: { enabled: true },
1163
- graphRoPE: { enabled: true },
1164
- moe: { enabled: true },
1165
- });
1166
- }
1167
- //# sourceMappingURL=AttentionService.js.map