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
@@ -0,0 +1,1270 @@
1
+ /**
2
+ * Learning System - Reinforcement Learning Session Management
3
+ *
4
+ * Manages RL training sessions with:
5
+ * - Session lifecycle (start/end)
6
+ * - Action prediction with confidence scores
7
+ * - Feedback loop for policy learning
8
+ * - Policy training with configurable parameters
9
+ *
10
+ * Supports 9 RL algorithms:
11
+ * - Q-Learning
12
+ * - SARSA
13
+ * - Deep Q-Network (DQN)
14
+ * - Policy Gradient
15
+ * - Actor-Critic
16
+ * - Proximal Policy Optimization (PPO)
17
+ * - Decision Transformer
18
+ * - Monte Carlo Tree Search (MCTS)
19
+ * - Model-Based RL
20
+ */
21
+
22
+ // Database type from db-fallback
23
+ type Database = any;
24
+ import { EmbeddingService } from './EmbeddingService.js';
25
+ import { cosineSimilarity } from '../utils/vector-math.js';
26
+
27
+ export interface LearningSession {
28
+ id: string;
29
+ userId: string;
30
+ sessionType: 'q-learning' | 'sarsa' | 'dqn' | 'policy-gradient' | 'actor-critic' | 'ppo' | 'decision-transformer' | 'mcts' | 'model-based';
31
+ config: LearningConfig;
32
+ startTime: number;
33
+ endTime?: number;
34
+ status: 'active' | 'completed' | 'failed';
35
+ metadata?: Record<string, any>;
36
+ }
37
+
38
+ export interface LearningConfig {
39
+ learningRate: number;
40
+ discountFactor: number;
41
+ explorationRate?: number;
42
+ batchSize?: number;
43
+ targetUpdateFrequency?: number;
44
+ }
45
+
46
+ export interface ActionPrediction {
47
+ action: string;
48
+ confidence: number;
49
+ qValue?: number;
50
+ alternatives: Array<{ action: string; confidence: number; qValue?: number }>;
51
+ }
52
+
53
+ export interface ActionFeedback {
54
+ sessionId: string;
55
+ action: string;
56
+ state: string;
57
+ reward: number;
58
+ nextState?: string;
59
+ success: boolean;
60
+ timestamp: number;
61
+ }
62
+
63
+ export interface TrainingResult {
64
+ epochsCompleted: number;
65
+ finalLoss: number;
66
+ avgReward: number;
67
+ convergenceRate: number;
68
+ trainingTimeMs: number;
69
+ }
70
+
71
+ export class LearningSystem {
72
+ private db: Database;
73
+ private embedder: EmbeddingService;
74
+ private activeSessions: Map<string, LearningSession> = new Map();
75
+
76
+ constructor(db: Database, embedder: EmbeddingService) {
77
+ this.db = db;
78
+ this.embedder = embedder;
79
+ this.initializeSchema();
80
+ }
81
+
82
+ /**
83
+ * Initialize database schema for learning system
84
+ */
85
+ private initializeSchema(): void {
86
+ this.db.exec(`
87
+ CREATE TABLE IF NOT EXISTS learning_sessions (
88
+ id TEXT PRIMARY KEY,
89
+ user_id TEXT NOT NULL,
90
+ session_type TEXT NOT NULL,
91
+ config TEXT NOT NULL,
92
+ start_time INTEGER NOT NULL,
93
+ end_time INTEGER,
94
+ status TEXT NOT NULL,
95
+ metadata TEXT
96
+ );
97
+
98
+ CREATE INDEX IF NOT EXISTS idx_learning_sessions_user ON learning_sessions(user_id);
99
+ CREATE INDEX IF NOT EXISTS idx_learning_sessions_status ON learning_sessions(status);
100
+
101
+ CREATE TABLE IF NOT EXISTS learning_experiences (
102
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
103
+ session_id TEXT NOT NULL,
104
+ state TEXT NOT NULL,
105
+ action TEXT NOT NULL,
106
+ reward REAL NOT NULL,
107
+ next_state TEXT,
108
+ success INTEGER NOT NULL,
109
+ timestamp INTEGER NOT NULL,
110
+ metadata TEXT,
111
+ FOREIGN KEY (session_id) REFERENCES learning_sessions(id) ON DELETE CASCADE
112
+ );
113
+
114
+ CREATE INDEX IF NOT EXISTS idx_learning_experiences_session ON learning_experiences(session_id);
115
+ CREATE INDEX IF NOT EXISTS idx_learning_experiences_reward ON learning_experiences(reward);
116
+
117
+ CREATE TABLE IF NOT EXISTS learning_policies (
118
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
119
+ session_id TEXT NOT NULL,
120
+ state_action_pairs TEXT NOT NULL,
121
+ q_values TEXT NOT NULL,
122
+ visit_counts TEXT NOT NULL,
123
+ avg_rewards TEXT NOT NULL,
124
+ version INTEGER NOT NULL,
125
+ created_at INTEGER DEFAULT (strftime('%s', 'now')),
126
+ FOREIGN KEY (session_id) REFERENCES learning_sessions(id) ON DELETE CASCADE
127
+ );
128
+
129
+ CREATE INDEX IF NOT EXISTS idx_learning_policies_session ON learning_policies(session_id);
130
+
131
+ CREATE TABLE IF NOT EXISTS learning_state_embeddings (
132
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
133
+ session_id TEXT NOT NULL,
134
+ state TEXT NOT NULL,
135
+ embedding BLOB NOT NULL,
136
+ FOREIGN KEY (session_id) REFERENCES learning_sessions(id) ON DELETE CASCADE
137
+ );
138
+
139
+ CREATE INDEX IF NOT EXISTS idx_learning_state_embeddings_session ON learning_state_embeddings(session_id);
140
+ `);
141
+ }
142
+
143
+ /**
144
+ * Start a new learning session
145
+ */
146
+ async startSession(
147
+ userId: string,
148
+ sessionType: LearningSession['sessionType'],
149
+ config: LearningConfig
150
+ ): Promise<string> {
151
+ const sessionId = `session-${Date.now()}-${Math.random().toString(36).substring(7)}`;
152
+
153
+ const session: LearningSession = {
154
+ id: sessionId,
155
+ userId,
156
+ sessionType,
157
+ config,
158
+ startTime: Date.now(),
159
+ status: 'active',
160
+ };
161
+
162
+ // Store session in database
163
+ this.db.prepare(`
164
+ INSERT INTO learning_sessions (id, user_id, session_type, config, start_time, status)
165
+ VALUES (?, ?, ?, ?, ?, ?)
166
+ `).run(
167
+ session.id,
168
+ session.userId,
169
+ session.sessionType,
170
+ JSON.stringify(session.config),
171
+ session.startTime,
172
+ session.status
173
+ );
174
+
175
+ // Cache in memory
176
+ this.activeSessions.set(sessionId, session);
177
+
178
+ console.log(`✅ Learning session started: ${sessionId} (${sessionType})`);
179
+ return sessionId;
180
+ }
181
+
182
+ /**
183
+ * End a learning session and save final policy
184
+ */
185
+ async endSession(sessionId: string): Promise<void> {
186
+ const session = this.activeSessions.get(sessionId) || this.getSession(sessionId);
187
+
188
+ if (!session) {
189
+ throw new Error(`Session not found: ${sessionId}`);
190
+ }
191
+
192
+ if (session.status === 'completed') {
193
+ throw new Error(`Session already completed: ${sessionId}`);
194
+ }
195
+
196
+ const endTime = Date.now();
197
+
198
+ // Save final policy
199
+ await this.savePolicy(sessionId);
200
+
201
+ // Update session status
202
+ this.db.prepare(`
203
+ UPDATE learning_sessions
204
+ SET status = 'completed', end_time = ?
205
+ WHERE id = ?
206
+ `).run(endTime, sessionId);
207
+
208
+ // Update memory cache
209
+ session.endTime = endTime;
210
+ session.status = 'completed';
211
+
212
+ // Remove from active sessions
213
+ this.activeSessions.delete(sessionId);
214
+
215
+ console.log(`✅ Learning session ended: ${sessionId} (duration: ${endTime - session.startTime}ms)`);
216
+ }
217
+
218
+ /**
219
+ * Predict next action with confidence scores
220
+ */
221
+ async predict(sessionId: string, state: string): Promise<ActionPrediction> {
222
+ const session = this.activeSessions.get(sessionId) || this.getSession(sessionId);
223
+
224
+ if (!session) {
225
+ throw new Error(`Session not found: ${sessionId}`);
226
+ }
227
+
228
+ if (session.status !== 'active') {
229
+ throw new Error(`Session not active: ${sessionId}`);
230
+ }
231
+
232
+ // Get or create state embedding
233
+ const stateEmbedding = await this.getStateEmbedding(sessionId, state);
234
+
235
+ // Get policy for this session
236
+ const policy = this.getLatestPolicy(sessionId);
237
+
238
+ // Calculate Q-values for all actions
239
+ const actionScores = await this.calculateActionScores(
240
+ session,
241
+ state,
242
+ stateEmbedding,
243
+ policy
244
+ );
245
+
246
+ // Sort by score (highest first)
247
+ const sortedActions = actionScores.sort((a, b) => b.score - a.score);
248
+
249
+ // Epsilon-greedy exploration
250
+ const explorationRate = session.config.explorationRate || 0.1;
251
+ let selectedAction = sortedActions[0];
252
+
253
+ if (Math.random() < explorationRate) {
254
+ // Explore: random action
255
+ selectedAction = sortedActions[Math.floor(Math.random() * sortedActions.length)];
256
+ }
257
+
258
+ // Normalize confidence scores to [0, 1]
259
+ const maxScore = sortedActions[0].score;
260
+ const minScore = sortedActions[sortedActions.length - 1].score;
261
+ const scoreRange = maxScore - minScore || 1;
262
+
263
+ return {
264
+ action: selectedAction.action,
265
+ confidence: (selectedAction.score - minScore) / scoreRange,
266
+ qValue: selectedAction.score,
267
+ alternatives: sortedActions.slice(1, 4).map(a => ({
268
+ action: a.action,
269
+ confidence: (a.score - minScore) / scoreRange,
270
+ qValue: a.score,
271
+ })),
272
+ };
273
+ }
274
+
275
+ /**
276
+ * Submit feedback for learning
277
+ */
278
+ async submitFeedback(feedback: ActionFeedback): Promise<void> {
279
+ const session = this.activeSessions.get(feedback.sessionId) || this.getSession(feedback.sessionId);
280
+
281
+ if (!session) {
282
+ throw new Error(`Session not found: ${feedback.sessionId}`);
283
+ }
284
+
285
+ // Store experience in database
286
+ this.db.prepare(`
287
+ INSERT INTO learning_experiences (
288
+ session_id, state, action, reward, next_state, success, timestamp
289
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
290
+ `).run(
291
+ feedback.sessionId,
292
+ feedback.state,
293
+ feedback.action,
294
+ feedback.reward,
295
+ feedback.nextState || null,
296
+ feedback.success ? 1 : 0,
297
+ feedback.timestamp
298
+ );
299
+
300
+ // Update policy incrementally based on algorithm
301
+ await this.updatePolicyIncremental(session, feedback);
302
+
303
+ console.log(`✅ Feedback recorded: session=${feedback.sessionId}, action=${feedback.action}, reward=${feedback.reward}`);
304
+ }
305
+
306
+ /**
307
+ * Train policy with batch learning
308
+ */
309
+ async train(
310
+ sessionId: string,
311
+ epochs: number,
312
+ batchSize: number,
313
+ learningRate: number
314
+ ): Promise<TrainingResult> {
315
+ const session = this.activeSessions.get(sessionId) || this.getSession(sessionId);
316
+
317
+ if (!session) {
318
+ throw new Error(`Session not found: ${sessionId}`);
319
+ }
320
+
321
+ const startTime = Date.now();
322
+
323
+ // Get all experiences for this session
324
+ const experiences = this.db.prepare(`
325
+ SELECT * FROM learning_experiences
326
+ WHERE session_id = ?
327
+ ORDER BY timestamp ASC
328
+ `).all(sessionId) as any[];
329
+
330
+ if (experiences.length === 0) {
331
+ throw new Error(`No training data available for session: ${sessionId}`);
332
+ }
333
+
334
+ let totalLoss = 0;
335
+ let totalReward = 0;
336
+ let batchCount = 0;
337
+
338
+ // Training loop
339
+ for (let epoch = 0; epoch < epochs; epoch++) {
340
+ // Shuffle experiences
341
+ const shuffled = this.shuffleArray([...experiences]);
342
+
343
+ // Process in batches
344
+ for (let i = 0; i < shuffled.length; i += batchSize) {
345
+ const batch = shuffled.slice(i, i + batchSize);
346
+
347
+ // Calculate loss and update policy
348
+ const batchLoss = await this.trainBatch(session, batch, learningRate);
349
+ totalLoss += batchLoss;
350
+ batchCount++;
351
+
352
+ // Accumulate rewards
353
+ totalReward += batch.reduce((sum, exp) => sum + exp.reward, 0);
354
+ }
355
+
356
+ // Log progress
357
+ if ((epoch + 1) % 10 === 0) {
358
+ console.log(` Epoch ${epoch + 1}/${epochs} - Loss: ${(totalLoss / batchCount).toFixed(4)}`);
359
+ }
360
+ }
361
+
362
+ const trainingTimeMs = Date.now() - startTime;
363
+ const avgReward = totalReward / (experiences.length * epochs);
364
+ const finalLoss = totalLoss / batchCount;
365
+
366
+ // Save trained policy
367
+ await this.savePolicy(sessionId);
368
+
369
+ // Calculate convergence rate
370
+ const convergenceRate = this.calculateConvergenceRate(sessionId);
371
+
372
+ console.log(`✅ Training completed: ${epochs} epochs, ${trainingTimeMs}ms`);
373
+
374
+ return {
375
+ epochsCompleted: epochs,
376
+ finalLoss,
377
+ avgReward,
378
+ convergenceRate,
379
+ trainingTimeMs,
380
+ };
381
+ }
382
+
383
+ // ============================================================================
384
+ // Private Helper Methods
385
+ // ============================================================================
386
+
387
+ /**
388
+ * Get session from database
389
+ */
390
+ private getSession(sessionId: string): LearningSession | null {
391
+ const row = this.db.prepare(`
392
+ SELECT * FROM learning_sessions WHERE id = ?
393
+ `).get(sessionId) as any;
394
+
395
+ if (!row) return null;
396
+
397
+ return {
398
+ id: row.id,
399
+ userId: row.user_id,
400
+ sessionType: row.session_type,
401
+ config: JSON.parse(row.config),
402
+ startTime: row.start_time,
403
+ endTime: row.end_time,
404
+ status: row.status,
405
+ metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
406
+ };
407
+ }
408
+
409
+ /**
410
+ * Get or create state embedding
411
+ */
412
+ private async getStateEmbedding(sessionId: string, state: string): Promise<Float32Array> {
413
+ // Check if embedding exists
414
+ const existing = this.db.prepare(`
415
+ SELECT embedding FROM learning_state_embeddings
416
+ WHERE session_id = ? AND state = ?
417
+ `).get(sessionId, state) as any;
418
+
419
+ if (existing) {
420
+ return new Float32Array(existing.embedding.buffer);
421
+ }
422
+
423
+ // Generate new embedding
424
+ const embedding = await this.embedder.embed(state);
425
+
426
+ // Store embedding
427
+ this.db.prepare(`
428
+ INSERT INTO learning_state_embeddings (session_id, state, embedding)
429
+ VALUES (?, ?, ?)
430
+ `).run(sessionId, state, Buffer.from(embedding.buffer));
431
+
432
+ return embedding;
433
+ }
434
+
435
+ /**
436
+ * Get latest policy for session
437
+ */
438
+ private getLatestPolicy(sessionId: string): any {
439
+ const policy = this.db.prepare(`
440
+ SELECT * FROM learning_policies
441
+ WHERE session_id = ?
442
+ ORDER BY version DESC
443
+ LIMIT 1
444
+ `).get(sessionId) as any;
445
+
446
+ if (!policy) {
447
+ // Return empty policy
448
+ return {
449
+ stateActionPairs: {},
450
+ qValues: {},
451
+ visitCounts: {},
452
+ avgRewards: {},
453
+ };
454
+ }
455
+
456
+ return {
457
+ stateActionPairs: JSON.parse(policy.state_action_pairs),
458
+ qValues: JSON.parse(policy.q_values),
459
+ visitCounts: JSON.parse(policy.visit_counts),
460
+ avgRewards: JSON.parse(policy.avg_rewards),
461
+ };
462
+ }
463
+
464
+ /**
465
+ * Calculate action scores based on algorithm
466
+ */
467
+ private async calculateActionScores(
468
+ session: LearningSession,
469
+ state: string,
470
+ stateEmbedding: Float32Array,
471
+ policy: any
472
+ ): Promise<Array<{ action: string; score: number }>> {
473
+ // Get possible actions from past experiences
474
+ const actions = this.db.prepare(`
475
+ SELECT DISTINCT action FROM learning_experiences
476
+ WHERE session_id = ?
477
+ `).all(session.id).map((row: any) => row.action);
478
+
479
+ if (actions.length === 0) {
480
+ // Default actions if none exist
481
+ return [
482
+ { action: 'action_1', score: 0.5 },
483
+ { action: 'action_2', score: 0.4 },
484
+ { action: 'action_3', score: 0.3 },
485
+ ];
486
+ }
487
+
488
+ // Calculate scores based on algorithm type
489
+ const scores: Array<{ action: string; score: number }> = [];
490
+
491
+ for (const action of actions) {
492
+ const key = `${state}|${action}`;
493
+ let score = 0;
494
+
495
+ switch (session.sessionType) {
496
+ case 'q-learning':
497
+ case 'sarsa':
498
+ case 'dqn':
499
+ // Use Q-value from policy
500
+ score = policy.qValues[key] || 0;
501
+ break;
502
+
503
+ case 'policy-gradient':
504
+ case 'actor-critic':
505
+ case 'ppo':
506
+ // Use average reward
507
+ score = policy.avgRewards[key] || 0;
508
+ break;
509
+
510
+ case 'decision-transformer':
511
+ // Use reward-conditioned probability
512
+ score = this.calculateTransformerScore(state, action, policy);
513
+ break;
514
+
515
+ case 'mcts':
516
+ // Use UCB1 formula
517
+ score = this.calculateUCB1(state, action, policy);
518
+ break;
519
+
520
+ case 'model-based':
521
+ // Use model prediction
522
+ score = this.calculateModelScore(state, action, policy);
523
+ break;
524
+
525
+ default:
526
+ score = Math.random();
527
+ }
528
+
529
+ scores.push({ action, score });
530
+ }
531
+
532
+ return scores;
533
+ }
534
+
535
+ /**
536
+ * Update policy incrementally after feedback
537
+ */
538
+ private async updatePolicyIncremental(session: LearningSession, feedback: ActionFeedback): Promise<void> {
539
+ const policy = this.getLatestPolicy(feedback.sessionId);
540
+ const key = `${feedback.state}|${feedback.action}`;
541
+
542
+ // Initialize if not exists
543
+ if (!policy.qValues[key]) {
544
+ policy.qValues[key] = 0;
545
+ policy.visitCounts[key] = 0;
546
+ policy.avgRewards[key] = 0;
547
+ }
548
+
549
+ const alpha = session.config.learningRate;
550
+ const gamma = session.config.discountFactor;
551
+
552
+ switch (session.sessionType) {
553
+ case 'q-learning': {
554
+ // Q(s,a) ← Q(s,a) + α[r + γ max Q(s',a') - Q(s,a)]
555
+ let maxNextQ = 0;
556
+ if (feedback.nextState) {
557
+ const nextActions = Object.keys(policy.qValues).filter(k => k.startsWith(feedback.nextState + '|'));
558
+ maxNextQ = Math.max(...nextActions.map(k => policy.qValues[k]), 0);
559
+ }
560
+ const target = feedback.reward + gamma * maxNextQ;
561
+ policy.qValues[key] += alpha * (target - policy.qValues[key]);
562
+ break;
563
+ }
564
+
565
+ case 'sarsa': {
566
+ // SARSA: Q(s,a) ← Q(s,a) + α[r + γ Q(s',a') - Q(s,a)]
567
+ // For incremental update, we approximate with current Q-value
568
+ const target = feedback.reward + gamma * (policy.qValues[key] || 0);
569
+ policy.qValues[key] += alpha * (target - policy.qValues[key]);
570
+ break;
571
+ }
572
+
573
+ case 'policy-gradient':
574
+ case 'actor-critic':
575
+ case 'ppo': {
576
+ // Update average reward
577
+ policy.visitCounts[key]++;
578
+ const n = policy.visitCounts[key];
579
+ policy.avgRewards[key] += (feedback.reward - policy.avgRewards[key]) / n;
580
+ break;
581
+ }
582
+
583
+ default:
584
+ // Default: simple average
585
+ policy.visitCounts[key]++;
586
+ const n = policy.visitCounts[key];
587
+ policy.avgRewards[key] += (feedback.reward - policy.avgRewards[key]) / n;
588
+ }
589
+ }
590
+
591
+ /**
592
+ * Train batch of experiences
593
+ */
594
+ private async trainBatch(
595
+ session: LearningSession,
596
+ batch: any[],
597
+ learningRate: number
598
+ ): Promise<number> {
599
+ let totalLoss = 0;
600
+ const policy = this.getLatestPolicy(session.id);
601
+
602
+ for (const exp of batch) {
603
+ const key = `${exp.state}|${exp.action}`;
604
+
605
+ // Initialize if needed
606
+ if (!policy.qValues[key]) {
607
+ policy.qValues[key] = 0;
608
+ }
609
+
610
+ // Calculate target based on algorithm
611
+ let target = exp.reward;
612
+
613
+ if (exp.next_state && session.sessionType !== 'policy-gradient') {
614
+ const nextActions = Object.keys(policy.qValues).filter(k => k.startsWith(exp.next_state + '|'));
615
+ const maxNextQ = Math.max(...nextActions.map(k => policy.qValues[k]), 0);
616
+ target += session.config.discountFactor * maxNextQ;
617
+ }
618
+
619
+ // Calculate loss (TD error)
620
+ const prediction = policy.qValues[key];
621
+ const loss = Math.pow(target - prediction, 2);
622
+ totalLoss += loss;
623
+
624
+ // Update Q-value
625
+ policy.qValues[key] += learningRate * (target - prediction);
626
+
627
+ // Update counts
628
+ policy.visitCounts[key] = (policy.visitCounts[key] || 0) + 1;
629
+ }
630
+
631
+ return totalLoss / batch.length;
632
+ }
633
+
634
+ /**
635
+ * Save policy to database
636
+ */
637
+ private async savePolicy(sessionId: string): Promise<void> {
638
+ const policy = this.getLatestPolicy(sessionId);
639
+
640
+ const currentVersion = this.db.prepare(`
641
+ SELECT MAX(version) as max_version FROM learning_policies
642
+ WHERE session_id = ?
643
+ `).get(sessionId) as any;
644
+
645
+ const version = (currentVersion?.max_version || 0) + 1;
646
+
647
+ this.db.prepare(`
648
+ INSERT INTO learning_policies (
649
+ session_id, state_action_pairs, q_values, visit_counts, avg_rewards, version
650
+ ) VALUES (?, ?, ?, ?, ?, ?)
651
+ `).run(
652
+ sessionId,
653
+ JSON.stringify(policy.stateActionPairs || {}),
654
+ JSON.stringify(policy.qValues || {}),
655
+ JSON.stringify(policy.visitCounts || {}),
656
+ JSON.stringify(policy.avgRewards || {}),
657
+ version
658
+ );
659
+ }
660
+
661
+ /**
662
+ * Calculate convergence rate
663
+ */
664
+ private calculateConvergenceRate(sessionId: string): number {
665
+ // Get policy versions
666
+ const versions = this.db.prepare(`
667
+ SELECT version, q_values FROM learning_policies
668
+ WHERE session_id = ?
669
+ ORDER BY version DESC
670
+ LIMIT 10
671
+ `).all(sessionId) as any[];
672
+
673
+ if (versions.length < 2) return 0;
674
+
675
+ // Calculate rate of change between versions
676
+ let totalChange = 0;
677
+ for (let i = 0; i < versions.length - 1; i++) {
678
+ const qValues1 = JSON.parse(versions[i].q_values);
679
+ const qValues2 = JSON.parse(versions[i + 1].q_values);
680
+
681
+ // Calculate mean absolute difference
682
+ const keys = new Set([...Object.keys(qValues1), ...Object.keys(qValues2)]);
683
+ let diff = 0;
684
+ keys.forEach(key => {
685
+ diff += Math.abs((qValues1[key] || 0) - (qValues2[key] || 0));
686
+ });
687
+ totalChange += diff / keys.size;
688
+ }
689
+
690
+ // Lower change = higher convergence
691
+ const avgChange = totalChange / (versions.length - 1);
692
+ return Math.max(0, 1 - avgChange);
693
+ }
694
+
695
+ // Algorithm-specific scoring methods
696
+ private calculateTransformerScore(state: string, action: string, policy: any): number {
697
+ const key = `${state}|${action}`;
698
+ return policy.avgRewards[key] || 0;
699
+ }
700
+
701
+ private calculateUCB1(state: string, action: string, policy: any): number {
702
+ const key = `${state}|${action}`;
703
+ const q = policy.avgRewards[key] || 0;
704
+ const n = policy.visitCounts[key] || 1;
705
+ const N = Object.values(policy.visitCounts).reduce((sum: number, val: any) => sum + val, 0) || 1;
706
+ const exploration = Math.sqrt(2 * Math.log(N) / n);
707
+ return q + exploration;
708
+ }
709
+
710
+ private calculateModelScore(state: string, action: string, policy: any): number {
711
+ const key = `${state}|${action}`;
712
+ return policy.avgRewards[key] || 0;
713
+ }
714
+
715
+ private shuffleArray<T>(array: T[]): T[] {
716
+ const result = [...array];
717
+ for (let i = result.length - 1; i > 0; i--) {
718
+ const j = Math.floor(Math.random() * (i + 1));
719
+ [result[i], result[j]] = [result[j], result[i]];
720
+ }
721
+ return result;
722
+ }
723
+
724
+ // ============================================================================
725
+ // Extended Learning System Methods (Tools 6-10)
726
+ // ============================================================================
727
+
728
+ /**
729
+ * Get learning performance metrics with time windows and trends
730
+ */
731
+ async getMetrics(options: {
732
+ sessionId?: string;
733
+ timeWindowDays?: number;
734
+ includeTrends?: boolean;
735
+ groupBy?: 'task' | 'session' | 'skill';
736
+ }): Promise<any> {
737
+ const { sessionId, timeWindowDays = 7, includeTrends = true, groupBy = 'task' } = options;
738
+
739
+ const cutoffTimestamp = Date.now() - (timeWindowDays * 24 * 60 * 60 * 1000);
740
+
741
+ // Base query filters
742
+ let whereClause = 'WHERE timestamp >= ?';
743
+ const params: any[] = [cutoffTimestamp];
744
+
745
+ if (sessionId) {
746
+ whereClause += ' AND session_id = ?';
747
+ params.push(sessionId);
748
+ }
749
+
750
+ // Overall metrics
751
+ const overallStats = this.db.prepare(`
752
+ SELECT
753
+ COUNT(*) as total_episodes,
754
+ AVG(reward) as avg_reward,
755
+ AVG(CASE WHEN success = 1 THEN 1.0 ELSE 0.0 END) as success_rate,
756
+ MIN(reward) as min_reward,
757
+ MAX(reward) as max_reward,
758
+ AVG(CASE WHEN metadata IS NOT NULL THEN json_extract(metadata, '$.latency_ms') END) as avg_latency_ms
759
+ FROM learning_experiences
760
+ ${whereClause}
761
+ `).get(...params) as any;
762
+
763
+ // Group by metrics
764
+ let groupedMetrics: any[] = [];
765
+ if (groupBy === 'task') {
766
+ groupedMetrics = this.db.prepare(`
767
+ SELECT
768
+ state as group_key,
769
+ COUNT(*) as count,
770
+ AVG(reward) as avg_reward,
771
+ AVG(CASE WHEN success = 1 THEN 1.0 ELSE 0.0 END) as success_rate
772
+ FROM learning_experiences
773
+ ${whereClause}
774
+ GROUP BY state
775
+ ORDER BY count DESC
776
+ LIMIT 20
777
+ `).all(...params) as any[];
778
+ } else if (groupBy === 'session') {
779
+ groupedMetrics = this.db.prepare(`
780
+ SELECT
781
+ session_id as group_key,
782
+ COUNT(*) as count,
783
+ AVG(reward) as avg_reward,
784
+ AVG(CASE WHEN success = 1 THEN 1.0 ELSE 0.0 END) as success_rate
785
+ FROM learning_experiences
786
+ ${whereClause}
787
+ GROUP BY session_id
788
+ ORDER BY count DESC
789
+ LIMIT 20
790
+ `).all(...params) as any[];
791
+ }
792
+
793
+ // Trend analysis
794
+ let trends: any[] = [];
795
+ if (includeTrends) {
796
+ trends = this.db.prepare(`
797
+ SELECT
798
+ DATE(timestamp / 1000, 'unixepoch') as date,
799
+ COUNT(*) as count,
800
+ AVG(reward) as avg_reward,
801
+ AVG(CASE WHEN success = 1 THEN 1.0 ELSE 0.0 END) as success_rate
802
+ FROM learning_experiences
803
+ ${whereClause}
804
+ GROUP BY date
805
+ ORDER BY date ASC
806
+ `).all(...params) as any[];
807
+ }
808
+
809
+ // Policy improvement metrics
810
+ const policyVersions = sessionId ? this.db.prepare(`
811
+ SELECT
812
+ version,
813
+ created_at,
814
+ q_values
815
+ FROM learning_policies
816
+ WHERE session_id = ?
817
+ ORDER BY version ASC
818
+ `).all(sessionId) as any[] : [];
819
+
820
+ let policyImprovement = 0;
821
+ if (policyVersions.length >= 2) {
822
+ const firstPolicy = JSON.parse(policyVersions[0].q_values);
823
+ const latestPolicy = JSON.parse(policyVersions[policyVersions.length - 1].q_values);
824
+
825
+ const commonKeys = Object.keys(firstPolicy).filter(k => latestPolicy[k] !== undefined);
826
+ if (commonKeys.length > 0) {
827
+ const avgFirst = commonKeys.reduce((sum, k) => sum + firstPolicy[k], 0) / commonKeys.length;
828
+ const avgLatest = commonKeys.reduce((sum, k) => sum + latestPolicy[k], 0) / commonKeys.length;
829
+ policyImprovement = avgLatest - avgFirst;
830
+ }
831
+ }
832
+
833
+ return {
834
+ timeWindow: {
835
+ days: timeWindowDays,
836
+ startTimestamp: cutoffTimestamp,
837
+ endTimestamp: Date.now(),
838
+ },
839
+ overall: {
840
+ totalEpisodes: overallStats.total_episodes || 0,
841
+ avgReward: overallStats.avg_reward || 0,
842
+ successRate: overallStats.success_rate || 0,
843
+ minReward: overallStats.min_reward || 0,
844
+ maxReward: overallStats.max_reward || 0,
845
+ avgLatencyMs: overallStats.avg_latency_ms || 0,
846
+ },
847
+ groupedMetrics: groupedMetrics.map(g => ({
848
+ key: g.group_key,
849
+ count: g.count,
850
+ avgReward: g.avg_reward,
851
+ successRate: g.success_rate,
852
+ })),
853
+ trends: trends.map(t => ({
854
+ date: t.date,
855
+ count: t.count,
856
+ avgReward: t.avg_reward,
857
+ successRate: t.success_rate,
858
+ })),
859
+ policyImprovement: {
860
+ versions: policyVersions.length,
861
+ qValueImprovement: policyImprovement,
862
+ },
863
+ };
864
+ }
865
+
866
+ /**
867
+ * Transfer learning between sessions or tasks
868
+ */
869
+ async transferLearning(options: {
870
+ sourceSession?: string;
871
+ targetSession?: string;
872
+ sourceTask?: string;
873
+ targetTask?: string;
874
+ minSimilarity?: number;
875
+ transferType?: 'episodes' | 'skills' | 'causal_edges' | 'all';
876
+ maxTransfers?: number;
877
+ }): Promise<any> {
878
+ const {
879
+ sourceSession,
880
+ targetSession,
881
+ sourceTask,
882
+ targetTask,
883
+ minSimilarity = 0.7,
884
+ transferType = 'all',
885
+ maxTransfers = 10,
886
+ } = options;
887
+
888
+ if (!sourceSession && !sourceTask) {
889
+ throw new Error('Must specify either sourceSession or sourceTask');
890
+ }
891
+
892
+ if (!targetSession && !targetTask) {
893
+ throw new Error('Must specify either targetSession or targetTask');
894
+ }
895
+
896
+ const transferred: any = {
897
+ episodes: 0,
898
+ skills: 0,
899
+ causalEdges: 0,
900
+ details: [],
901
+ };
902
+
903
+ // Transfer episodes
904
+ if (transferType === 'episodes' || transferType === 'all') {
905
+ const sourceEpisodes = this.db.prepare(`
906
+ SELECT * FROM learning_experiences
907
+ WHERE ${sourceSession ? 'session_id = ?' : 'state LIKE ?'}
908
+ ORDER BY reward DESC
909
+ LIMIT ?
910
+ `).all(sourceSession || `%${sourceTask}%`, maxTransfers) as any[];
911
+
912
+ for (const episode of sourceEpisodes) {
913
+ // Check similarity if transferring between tasks
914
+ if (sourceTask && targetTask) {
915
+ const sourceEmbed = await this.embedder.embed(episode.state);
916
+ const targetEmbed = await this.embedder.embed(targetTask);
917
+ const similarity = cosineSimilarity(sourceEmbed, targetEmbed);
918
+
919
+ if (similarity < minSimilarity) {
920
+ continue;
921
+ }
922
+
923
+ transferred.details.push({
924
+ type: 'episode',
925
+ id: episode.id,
926
+ similarity,
927
+ });
928
+ }
929
+
930
+ // Insert transferred episode
931
+ this.db.prepare(`
932
+ INSERT INTO learning_experiences (
933
+ session_id, state, action, reward, next_state, success, timestamp, metadata
934
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
935
+ `).run(
936
+ targetSession || episode.session_id,
937
+ targetTask || episode.state,
938
+ episode.action,
939
+ episode.reward,
940
+ episode.next_state,
941
+ episode.success,
942
+ Date.now(),
943
+ JSON.stringify({ transferred_from: episode.id })
944
+ );
945
+
946
+ transferred.episodes++;
947
+ }
948
+ }
949
+
950
+ // Transfer policy/Q-values
951
+ if (sourceSession && targetSession && (transferType === 'all' || transferType === 'skills')) {
952
+ const sourcePolicy = this.getLatestPolicy(sourceSession);
953
+ const targetPolicy = this.getLatestPolicy(targetSession);
954
+
955
+ // Transfer Q-values with similarity weighting
956
+ let transferredQValues = 0;
957
+ for (const [key, qValue] of Object.entries(sourcePolicy.qValues)) {
958
+ const [state, action] = key.split('|');
959
+
960
+ // Check if target has similar state
961
+ if (targetTask) {
962
+ const stateEmbed = await this.embedder.embed(state);
963
+ const targetEmbed = await this.embedder.embed(targetTask);
964
+ const similarity = cosineSimilarity(stateEmbed, targetEmbed);
965
+
966
+ if (similarity >= minSimilarity) {
967
+ const targetKey = `${targetTask}|${action}`;
968
+ targetPolicy.qValues[targetKey] = qValue as number;
969
+ transferredQValues++;
970
+ }
971
+ }
972
+ }
973
+
974
+ if (transferredQValues > 0) {
975
+ // Save updated target policy
976
+ const version = (this.db.prepare(`
977
+ SELECT MAX(version) as max_version FROM learning_policies WHERE session_id = ?
978
+ `).get(targetSession) as any)?.max_version || 0;
979
+
980
+ this.db.prepare(`
981
+ INSERT INTO learning_policies (
982
+ session_id, state_action_pairs, q_values, visit_counts, avg_rewards, version
983
+ ) VALUES (?, ?, ?, ?, ?, ?)
984
+ `).run(
985
+ targetSession,
986
+ JSON.stringify(targetPolicy.stateActionPairs || {}),
987
+ JSON.stringify(targetPolicy.qValues || {}),
988
+ JSON.stringify(targetPolicy.visitCounts || {}),
989
+ JSON.stringify(targetPolicy.avgRewards || {}),
990
+ version + 1
991
+ );
992
+
993
+ transferred.skills = transferredQValues;
994
+ }
995
+ }
996
+
997
+ return {
998
+ success: true,
999
+ transferred,
1000
+ source: { session: sourceSession, task: sourceTask },
1001
+ target: { session: targetSession, task: targetTask },
1002
+ minSimilarity,
1003
+ transferType,
1004
+ };
1005
+ }
1006
+
1007
+ /**
1008
+ * Explain action recommendations with XAI (Explainable AI)
1009
+ */
1010
+ async explainAction(options: {
1011
+ query: string;
1012
+ k?: number;
1013
+ explainDepth?: 'summary' | 'detailed' | 'full';
1014
+ includeConfidence?: boolean;
1015
+ includeEvidence?: boolean;
1016
+ includeCausal?: boolean;
1017
+ }): Promise<any> {
1018
+ const {
1019
+ query,
1020
+ k = 5,
1021
+ explainDepth = 'detailed',
1022
+ includeConfidence = true,
1023
+ includeEvidence = true,
1024
+ includeCausal = true,
1025
+ } = options;
1026
+
1027
+ // Get query embedding
1028
+ const queryEmbed = await this.embedder.embed(query);
1029
+
1030
+ // Find similar past experiences
1031
+ const allExperiences = this.db.prepare(`
1032
+ SELECT * FROM learning_experiences
1033
+ ORDER BY timestamp DESC
1034
+ LIMIT 100
1035
+ `).all() as any[];
1036
+
1037
+ const rankedExperiences: any[] = [];
1038
+ for (const exp of allExperiences) {
1039
+ const stateEmbed = await this.getStateEmbedding(exp.session_id, exp.state);
1040
+ const similarity = cosineSimilarity(queryEmbed, stateEmbed);
1041
+
1042
+ rankedExperiences.push({
1043
+ ...exp,
1044
+ similarity,
1045
+ });
1046
+ }
1047
+
1048
+ rankedExperiences.sort((a, b) => b.similarity - a.similarity);
1049
+ const topExperiences = rankedExperiences.slice(0, k);
1050
+
1051
+ // Aggregate recommendations
1052
+ const actionScores: Record<string, { count: number; avgReward: number; successRate: number; evidence: any[] }> = {};
1053
+
1054
+ for (const exp of topExperiences) {
1055
+ if (!actionScores[exp.action]) {
1056
+ actionScores[exp.action] = {
1057
+ count: 0,
1058
+ avgReward: 0,
1059
+ successRate: 0,
1060
+ evidence: [],
1061
+ };
1062
+ }
1063
+
1064
+ const score = actionScores[exp.action];
1065
+ score.count++;
1066
+ score.avgReward += exp.reward;
1067
+ score.successRate += exp.success ? 1 : 0;
1068
+
1069
+ if (includeEvidence) {
1070
+ score.evidence.push({
1071
+ episodeId: exp.id,
1072
+ state: exp.state,
1073
+ reward: exp.reward,
1074
+ success: exp.success,
1075
+ similarity: exp.similarity,
1076
+ timestamp: exp.timestamp,
1077
+ });
1078
+ }
1079
+ }
1080
+
1081
+ // Calculate final scores
1082
+ const recommendations = Object.entries(actionScores).map(([action, data]) => ({
1083
+ action,
1084
+ confidence: data.count / topExperiences.length,
1085
+ avgReward: data.avgReward / data.count,
1086
+ successRate: data.successRate / data.count,
1087
+ supportingExamples: data.count,
1088
+ evidence: includeEvidence ? data.evidence.slice(0, 3) : undefined,
1089
+ }));
1090
+
1091
+ recommendations.sort((a, b) => b.confidence - a.confidence);
1092
+
1093
+ // Causal reasoning chains (if enabled)
1094
+ let causalChains: any[] = [];
1095
+ if (includeCausal) {
1096
+ causalChains = this.db.prepare(`
1097
+ SELECT * FROM causal_edges
1098
+ ORDER BY uplift DESC
1099
+ LIMIT 5
1100
+ `).all() as any[];
1101
+ }
1102
+
1103
+ const response: any = {
1104
+ query,
1105
+ recommendations: recommendations.slice(0, k),
1106
+ explainDepth,
1107
+ };
1108
+
1109
+ if (explainDepth === 'detailed' || explainDepth === 'full') {
1110
+ response.reasoning = {
1111
+ similarExperiencesFound: topExperiences.length,
1112
+ avgSimilarity: topExperiences.reduce((sum, e) => sum + e.similarity, 0) / topExperiences.length,
1113
+ uniqueActions: recommendations.length,
1114
+ };
1115
+ }
1116
+
1117
+ if (explainDepth === 'full') {
1118
+ response.causalChains = causalChains;
1119
+ response.allEvidence = topExperiences;
1120
+ }
1121
+
1122
+ return response;
1123
+ }
1124
+
1125
+ /**
1126
+ * Record tool execution as experience for offline learning
1127
+ */
1128
+ async recordExperience(options: {
1129
+ sessionId: string;
1130
+ toolName: string;
1131
+ action: string;
1132
+ stateBefore?: any;
1133
+ stateAfter?: any;
1134
+ outcome: string;
1135
+ reward: number;
1136
+ success: boolean;
1137
+ latencyMs?: number;
1138
+ metadata?: any;
1139
+ }): Promise<number> {
1140
+ const {
1141
+ sessionId,
1142
+ toolName,
1143
+ action,
1144
+ stateBefore,
1145
+ stateAfter,
1146
+ outcome,
1147
+ reward,
1148
+ success,
1149
+ latencyMs,
1150
+ metadata,
1151
+ } = options;
1152
+
1153
+ // Construct state representation
1154
+ const state = `tool:${toolName}|${action}`;
1155
+ const nextState = stateAfter ? JSON.stringify(stateAfter) : undefined;
1156
+
1157
+ // Store as learning experience
1158
+ const result = this.db.prepare(`
1159
+ INSERT INTO learning_experiences (
1160
+ session_id, state, action, reward, next_state, success, timestamp, metadata
1161
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
1162
+ `).run(
1163
+ sessionId,
1164
+ state,
1165
+ outcome,
1166
+ reward,
1167
+ nextState,
1168
+ success ? 1 : 0,
1169
+ Date.now(),
1170
+ JSON.stringify({
1171
+ toolName,
1172
+ action,
1173
+ stateBefore,
1174
+ stateAfter,
1175
+ latencyMs,
1176
+ ...metadata,
1177
+ })
1178
+ );
1179
+
1180
+ console.log(`✅ Experience recorded: tool=${toolName}, reward=${reward}, success=${success}`);
1181
+ return result.lastInsertRowid as number;
1182
+ }
1183
+
1184
+ /**
1185
+ * Calculate reward signal with shaping based on multiple factors
1186
+ */
1187
+ calculateReward(options: {
1188
+ episodeId?: number;
1189
+ success: boolean;
1190
+ targetAchieved?: boolean;
1191
+ efficiencyScore?: number;
1192
+ qualityScore?: number;
1193
+ timeTakenMs?: number;
1194
+ expectedTimeMs?: number;
1195
+ includeCausal?: boolean;
1196
+ rewardFunction?: 'standard' | 'sparse' | 'dense' | 'shaped';
1197
+ }): number {
1198
+ const {
1199
+ episodeId,
1200
+ success,
1201
+ targetAchieved = true,
1202
+ efficiencyScore = 0.5,
1203
+ qualityScore = 0.5,
1204
+ timeTakenMs,
1205
+ expectedTimeMs,
1206
+ includeCausal = true,
1207
+ rewardFunction = 'standard',
1208
+ } = options;
1209
+
1210
+ let reward = 0;
1211
+
1212
+ switch (rewardFunction) {
1213
+ case 'sparse':
1214
+ // Sparse: Only reward on success
1215
+ reward = success && targetAchieved ? 1.0 : 0.0;
1216
+ break;
1217
+
1218
+ case 'dense':
1219
+ // Dense: Partial rewards for progress
1220
+ reward = success ? 1.0 : 0.0;
1221
+ reward += targetAchieved ? 0.5 : 0.0;
1222
+ reward += qualityScore * 0.3;
1223
+ reward += efficiencyScore * 0.2;
1224
+ break;
1225
+
1226
+ case 'shaped':
1227
+ // Shaped: Reward shaping with time efficiency
1228
+ reward = success ? 1.0 : -0.5;
1229
+ if (targetAchieved) reward += 0.3;
1230
+
1231
+ // Time efficiency bonus
1232
+ if (timeTakenMs && expectedTimeMs) {
1233
+ const timeRatio = timeTakenMs / expectedTimeMs;
1234
+ const timeBonus = Math.max(0, 1 - timeRatio) * 0.2;
1235
+ reward += timeBonus;
1236
+ }
1237
+
1238
+ // Quality and efficiency
1239
+ reward += (qualityScore - 0.5) * 0.3;
1240
+ reward += (efficiencyScore - 0.5) * 0.2;
1241
+ break;
1242
+
1243
+ case 'standard':
1244
+ default:
1245
+ // Standard: Weighted combination
1246
+ reward = success ? 0.6 : 0.0;
1247
+ reward += targetAchieved ? 0.2 : 0.0;
1248
+ reward += qualityScore * 0.1;
1249
+ reward += efficiencyScore * 0.1;
1250
+ break;
1251
+ }
1252
+
1253
+ // Causal impact adjustment
1254
+ if (includeCausal && episodeId) {
1255
+ const causalEdges = this.db.prepare(`
1256
+ SELECT AVG(uplift) as avg_uplift
1257
+ FROM causal_edges
1258
+ WHERE from_memory_id = ? OR to_memory_id = ?
1259
+ `).get(episodeId, episodeId) as any;
1260
+
1261
+ if (causalEdges?.avg_uplift) {
1262
+ reward += causalEdges.avg_uplift * 0.1; // 10% weight for causal impact
1263
+ }
1264
+ }
1265
+
1266
+ // Normalize to [0, 1] range
1267
+ return Math.max(0, Math.min(1, reward));
1268
+ }
1269
+
1270
+ }