agentdb 3.0.0-alpha.9 → 3.1.0

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 (726) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +248 -269
  3. package/dist/schemas/frontier-schema.sql +7 -0
  4. package/dist/schemas/schema.sql +7 -0
  5. package/dist/src/backends/ExactSearch.d.ts +22 -0
  6. package/dist/src/backends/ExactSearch.d.ts.map +1 -0
  7. package/dist/src/backends/ExactSearch.js +36 -0
  8. package/dist/src/backends/ExactSearch.js.map +1 -0
  9. package/dist/src/backends/VectorBackend.d.ts +80 -6
  10. package/dist/src/backends/VectorBackend.d.ts.map +1 -1
  11. package/dist/src/backends/VectorBackend.js +67 -1
  12. package/dist/src/backends/VectorBackend.js.map +1 -1
  13. package/dist/src/backends/detector.js.map +1 -1
  14. package/dist/src/backends/factory.d.ts +16 -33
  15. package/dist/src/backends/factory.d.ts.map +1 -1
  16. package/dist/src/backends/factory.js +140 -110
  17. package/dist/src/backends/factory.js.map +1 -1
  18. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +54 -6
  19. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -1
  20. package/dist/src/backends/graph/GraphDatabaseAdapter.js +143 -6
  21. package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -1
  22. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
  23. package/dist/src/backends/hnswlib/HNSWLibBackend.js +35 -8
  24. package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
  25. package/dist/src/backends/index.d.ts +2 -1
  26. package/dist/src/backends/index.d.ts.map +1 -1
  27. package/dist/src/backends/index.js +2 -0
  28. package/dist/src/backends/index.js.map +1 -1
  29. package/dist/src/backends/ruvector/RuVectorBackend.d.ts +256 -45
  30. package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
  31. package/dist/src/backends/ruvector/RuVectorBackend.js +764 -290
  32. package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
  33. package/dist/src/backends/ruvector/RuVectorLearning.d.ts +0 -4
  34. package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
  35. package/dist/src/backends/ruvector/RuVectorLearning.js +0 -6
  36. package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
  37. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts +175 -0
  38. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts.map +1 -0
  39. package/dist/src/backends/rvf/AdaptiveIndexTuner.js +567 -0
  40. package/dist/src/backends/rvf/AdaptiveIndexTuner.js.map +1 -0
  41. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts +148 -0
  42. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts.map +1 -0
  43. package/dist/src/backends/rvf/ContrastiveTrainer.js +438 -0
  44. package/dist/src/backends/rvf/ContrastiveTrainer.js.map +1 -0
  45. package/dist/src/backends/rvf/FederatedSessionManager.d.ts +212 -0
  46. package/dist/src/backends/rvf/FederatedSessionManager.d.ts.map +1 -0
  47. package/dist/src/backends/rvf/FederatedSessionManager.js +397 -0
  48. package/dist/src/backends/rvf/FederatedSessionManager.js.map +1 -0
  49. package/dist/src/backends/rvf/FilterBuilder.d.ts +136 -0
  50. package/dist/src/backends/rvf/FilterBuilder.d.ts.map +1 -0
  51. package/dist/src/backends/rvf/FilterBuilder.js +157 -0
  52. package/dist/src/backends/rvf/FilterBuilder.js.map +1 -0
  53. package/dist/src/backends/rvf/NativeAccelerator.d.ts +158 -0
  54. package/dist/src/backends/rvf/NativeAccelerator.d.ts.map +1 -0
  55. package/dist/src/backends/rvf/NativeAccelerator.js +702 -0
  56. package/dist/src/backends/rvf/NativeAccelerator.js.map +1 -0
  57. package/dist/src/backends/rvf/RvfBackend.d.ts +207 -0
  58. package/dist/src/backends/rvf/RvfBackend.d.ts.map +1 -0
  59. package/dist/src/backends/rvf/RvfBackend.js +651 -0
  60. package/dist/src/backends/rvf/RvfBackend.js.map +1 -0
  61. package/dist/src/backends/rvf/RvfSolver.d.ts +175 -0
  62. package/dist/src/backends/rvf/RvfSolver.d.ts.map +1 -0
  63. package/dist/src/backends/rvf/RvfSolver.js +176 -0
  64. package/dist/src/backends/rvf/RvfSolver.js.map +1 -0
  65. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts +143 -0
  66. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +1 -0
  67. package/dist/src/backends/rvf/SelfLearningRvfBackend.js +612 -0
  68. package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +1 -0
  69. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts +128 -0
  70. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts.map +1 -0
  71. package/dist/src/backends/rvf/SemanticQueryRouter.js +415 -0
  72. package/dist/src/backends/rvf/SemanticQueryRouter.js.map +1 -0
  73. package/dist/src/backends/rvf/SimdFallbacks.d.ts +25 -0
  74. package/dist/src/backends/rvf/SimdFallbacks.d.ts.map +1 -0
  75. package/dist/src/backends/rvf/SimdFallbacks.js +287 -0
  76. package/dist/src/backends/rvf/SimdFallbacks.js.map +1 -0
  77. package/dist/src/backends/rvf/SolverBandit.d.ts +100 -0
  78. package/dist/src/backends/rvf/SolverBandit.d.ts.map +1 -0
  79. package/dist/src/backends/rvf/SolverBandit.js +216 -0
  80. package/dist/src/backends/rvf/SolverBandit.js.map +1 -0
  81. package/dist/src/backends/rvf/SonaLearningBackend.d.ts +157 -0
  82. package/dist/src/backends/rvf/SonaLearningBackend.d.ts.map +1 -0
  83. package/dist/src/backends/rvf/SonaLearningBackend.js +283 -0
  84. package/dist/src/backends/rvf/SonaLearningBackend.js.map +1 -0
  85. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +104 -0
  86. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -0
  87. package/dist/src/backends/rvf/SqlJsRvfBackend.js +474 -0
  88. package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -0
  89. package/dist/src/backends/rvf/WasmStoreBridge.d.ts +27 -0
  90. package/dist/src/backends/rvf/WasmStoreBridge.d.ts.map +1 -0
  91. package/dist/src/backends/rvf/WasmStoreBridge.js +87 -0
  92. package/dist/src/backends/rvf/WasmStoreBridge.js.map +1 -0
  93. package/dist/src/backends/rvf/validation.d.ts +20 -0
  94. package/dist/src/backends/rvf/validation.d.ts.map +1 -0
  95. package/dist/src/backends/rvf/validation.js +78 -0
  96. package/dist/src/backends/rvf/validation.js.map +1 -0
  97. package/dist/src/benchmark/BenchmarkSuite.d.ts +318 -0
  98. package/dist/src/benchmark/BenchmarkSuite.d.ts.map +1 -0
  99. package/dist/src/benchmark/BenchmarkSuite.js +984 -0
  100. package/dist/src/benchmark/BenchmarkSuite.js.map +1 -0
  101. package/dist/src/benchmark/index.d.ts +29 -0
  102. package/dist/src/benchmark/index.d.ts.map +1 -0
  103. package/dist/src/benchmark/index.js +39 -0
  104. package/dist/src/benchmark/index.js.map +1 -0
  105. package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
  106. package/dist/src/browser/AttentionBrowser.js +1 -0
  107. package/dist/src/browser/AttentionBrowser.js.map +1 -1
  108. package/dist/src/cli/agentdb-cli.d.ts +14 -0
  109. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  110. package/dist/src/cli/agentdb-cli.js +839 -143
  111. package/dist/src/cli/agentdb-cli.js.map +1 -1
  112. package/dist/src/cli/commands/attention.js +12 -2
  113. package/dist/src/cli/commands/attention.js.map +1 -1
  114. package/dist/src/cli/commands/doctor.js +5 -5
  115. package/dist/src/cli/commands/doctor.js.map +1 -1
  116. package/dist/src/cli/commands/hyperbolic.d.ts +11 -0
  117. package/dist/src/cli/commands/hyperbolic.d.ts.map +1 -0
  118. package/dist/src/cli/commands/hyperbolic.js +440 -0
  119. package/dist/src/cli/commands/hyperbolic.js.map +1 -0
  120. package/dist/src/cli/commands/install-embeddings.d.ts +1 -1
  121. package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -1
  122. package/dist/src/cli/commands/install-embeddings.js +17 -11
  123. package/dist/src/cli/commands/install-embeddings.js.map +1 -1
  124. package/dist/src/cli/commands/learn.d.ts +11 -0
  125. package/dist/src/cli/commands/learn.d.ts.map +1 -0
  126. package/dist/src/cli/commands/learn.js +410 -0
  127. package/dist/src/cli/commands/learn.js.map +1 -0
  128. package/dist/src/cli/commands/migrate.d.ts +15 -0
  129. package/dist/src/cli/commands/migrate.d.ts.map +1 -1
  130. package/dist/src/cli/commands/migrate.js +190 -10
  131. package/dist/src/cli/commands/migrate.js.map +1 -1
  132. package/dist/src/cli/commands/route.d.ts +11 -0
  133. package/dist/src/cli/commands/route.d.ts.map +1 -0
  134. package/dist/src/cli/commands/route.js +419 -0
  135. package/dist/src/cli/commands/route.js.map +1 -0
  136. package/dist/src/cli/commands/rvf.d.ts +21 -0
  137. package/dist/src/cli/commands/rvf.d.ts.map +1 -0
  138. package/dist/src/cli/commands/rvf.js +448 -0
  139. package/dist/src/cli/commands/rvf.js.map +1 -0
  140. package/dist/src/cli/commands/simulate-report.js +14 -2
  141. package/dist/src/cli/commands/simulate-report.js.map +1 -1
  142. package/dist/src/cli/lib/report-store.d.ts +2 -1
  143. package/dist/src/cli/lib/report-store.d.ts.map +1 -1
  144. package/dist/src/cli/lib/report-store.js +85 -65
  145. package/dist/src/cli/lib/report-store.js.map +1 -1
  146. package/dist/src/cli/lib/simulation-runner.d.ts +40 -3
  147. package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
  148. package/dist/src/cli/lib/simulation-runner.js +248 -6
  149. package/dist/src/cli/lib/simulation-runner.js.map +1 -1
  150. package/dist/src/compatibility/DeprecationWarnings.d.ts +54 -0
  151. package/dist/src/compatibility/DeprecationWarnings.d.ts.map +1 -0
  152. package/dist/src/compatibility/DeprecationWarnings.js +131 -0
  153. package/dist/src/compatibility/DeprecationWarnings.js.map +1 -0
  154. package/dist/src/compatibility/MigrationUtilities.d.ts +30 -0
  155. package/dist/src/compatibility/MigrationUtilities.d.ts.map +1 -0
  156. package/dist/src/compatibility/MigrationUtilities.js +184 -0
  157. package/dist/src/compatibility/MigrationUtilities.js.map +1 -0
  158. package/dist/src/compatibility/V1toV2Adapter.d.ts +76 -0
  159. package/dist/src/compatibility/V1toV2Adapter.d.ts.map +1 -0
  160. package/dist/src/compatibility/V1toV2Adapter.js +185 -0
  161. package/dist/src/compatibility/V1toV2Adapter.js.map +1 -0
  162. package/dist/src/compatibility/VersionDetector.d.ts +32 -0
  163. package/dist/src/compatibility/VersionDetector.d.ts.map +1 -0
  164. package/dist/src/compatibility/VersionDetector.js +144 -0
  165. package/dist/src/compatibility/VersionDetector.js.map +1 -0
  166. package/dist/src/compatibility/index.d.ts +14 -0
  167. package/dist/src/compatibility/index.d.ts.map +1 -0
  168. package/dist/src/compatibility/index.js +21 -0
  169. package/dist/src/compatibility/index.js.map +1 -0
  170. package/dist/src/compatibility/types.d.ts +103 -0
  171. package/dist/src/compatibility/types.d.ts.map +1 -0
  172. package/dist/src/compatibility/types.js +5 -0
  173. package/dist/src/compatibility/types.js.map +1 -0
  174. package/dist/src/controllers/AttentionService.d.ts +99 -202
  175. package/dist/src/controllers/AttentionService.d.ts.map +1 -1
  176. package/dist/src/controllers/AttentionService.js +450 -558
  177. package/dist/src/controllers/AttentionService.js.map +1 -1
  178. package/dist/src/controllers/CausalMemoryGraph.d.ts +30 -5
  179. package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
  180. package/dist/src/controllers/CausalMemoryGraph.js +92 -15
  181. package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
  182. package/dist/src/controllers/CausalRecall.d.ts +4 -0
  183. package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
  184. package/dist/src/controllers/CausalRecall.js +23 -5
  185. package/dist/src/controllers/CausalRecall.js.map +1 -1
  186. package/dist/src/controllers/EmbeddingService.d.ts +39 -0
  187. package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
  188. package/dist/src/controllers/EmbeddingService.js +166 -32
  189. package/dist/src/controllers/EmbeddingService.js.map +1 -1
  190. package/dist/src/controllers/EnhancedEmbeddingService.d.ts +4 -0
  191. package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
  192. package/dist/src/controllers/EnhancedEmbeddingService.js +21 -7
  193. package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
  194. package/dist/src/controllers/ExplainableRecall.d.ts +1 -1
  195. package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
  196. package/dist/src/controllers/ExplainableRecall.js +1 -1
  197. package/dist/src/controllers/ExplainableRecall.js.map +1 -1
  198. package/dist/src/controllers/HNSWIndex.d.ts +20 -2
  199. package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
  200. package/dist/src/controllers/HNSWIndex.js +114 -39
  201. package/dist/src/controllers/HNSWIndex.js.map +1 -1
  202. package/dist/src/controllers/LearningSystem.d.ts +6 -17
  203. package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
  204. package/dist/src/controllers/LearningSystem.js +66 -155
  205. package/dist/src/controllers/LearningSystem.js.map +1 -1
  206. package/dist/src/controllers/MemoryController.d.ts +174 -0
  207. package/dist/src/controllers/MemoryController.d.ts.map +1 -0
  208. package/dist/src/controllers/MemoryController.js +320 -0
  209. package/dist/src/controllers/MemoryController.js.map +1 -0
  210. package/dist/src/controllers/MetadataFilter.d.ts.map +1 -1
  211. package/dist/src/controllers/MetadataFilter.js +38 -26
  212. package/dist/src/controllers/MetadataFilter.js.map +1 -1
  213. package/dist/src/controllers/MincutService.d.ts +92 -0
  214. package/dist/src/controllers/MincutService.d.ts.map +1 -0
  215. package/dist/src/controllers/MincutService.js +336 -0
  216. package/dist/src/controllers/MincutService.js.map +1 -0
  217. package/dist/src/controllers/NightlyLearner.d.ts +5 -1
  218. package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
  219. package/dist/src/controllers/NightlyLearner.js +45 -31
  220. package/dist/src/controllers/NightlyLearner.js.map +1 -1
  221. package/dist/src/controllers/QUICClient.d.ts +45 -0
  222. package/dist/src/controllers/QUICClient.d.ts.map +1 -1
  223. package/dist/src/controllers/QUICClient.js +211 -21
  224. package/dist/src/controllers/QUICClient.js.map +1 -1
  225. package/dist/src/controllers/QUICServer.d.ts.map +1 -1
  226. package/dist/src/controllers/QUICServer.js +36 -27
  227. package/dist/src/controllers/QUICServer.js.map +1 -1
  228. package/dist/src/controllers/ReasoningBank.d.ts +44 -5
  229. package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
  230. package/dist/src/controllers/ReasoningBank.js +187 -99
  231. package/dist/src/controllers/ReasoningBank.js.map +1 -1
  232. package/dist/src/controllers/ReflexionMemory.d.ts +129 -6
  233. package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
  234. package/dist/src/controllers/ReflexionMemory.js +687 -220
  235. package/dist/src/controllers/ReflexionMemory.js.map +1 -1
  236. package/dist/src/controllers/SkillLibrary.d.ts +41 -3
  237. package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
  238. package/dist/src/controllers/SkillLibrary.js +291 -116
  239. package/dist/src/controllers/SkillLibrary.js.map +1 -1
  240. package/dist/src/controllers/SparsificationService.d.ts +151 -0
  241. package/dist/src/controllers/SparsificationService.d.ts.map +1 -0
  242. package/dist/src/controllers/SparsificationService.js +375 -0
  243. package/dist/src/controllers/SparsificationService.js.map +1 -0
  244. package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
  245. package/dist/src/controllers/SyncCoordinator.js +126 -12
  246. package/dist/src/controllers/SyncCoordinator.js.map +1 -1
  247. package/dist/src/controllers/WASMVectorSearch.d.ts +12 -30
  248. package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
  249. package/dist/src/controllers/WASMVectorSearch.js +209 -119
  250. package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
  251. package/dist/src/controllers/attention/AttentionCache.d.ts +38 -0
  252. package/dist/src/controllers/attention/AttentionCache.d.ts.map +1 -0
  253. package/dist/src/controllers/attention/AttentionCache.js +80 -0
  254. package/dist/src/controllers/attention/AttentionCache.js.map +1 -0
  255. package/dist/src/controllers/attention/AttentionConfig.d.ts +127 -0
  256. package/dist/src/controllers/attention/AttentionConfig.d.ts.map +1 -0
  257. package/dist/src/controllers/attention/AttentionConfig.js +124 -0
  258. package/dist/src/controllers/attention/AttentionConfig.js.map +1 -0
  259. package/dist/src/controllers/attention/AttentionCore.d.ts +89 -0
  260. package/dist/src/controllers/attention/AttentionCore.d.ts.map +1 -0
  261. package/dist/src/controllers/attention/AttentionCore.js +289 -0
  262. package/dist/src/controllers/attention/AttentionCore.js.map +1 -0
  263. package/dist/src/controllers/attention/AttentionHelpers.d.ts +55 -0
  264. package/dist/src/controllers/attention/AttentionHelpers.d.ts.map +1 -0
  265. package/dist/src/controllers/attention/AttentionHelpers.js +148 -0
  266. package/dist/src/controllers/attention/AttentionHelpers.js.map +1 -0
  267. package/dist/src/controllers/attention/AttentionMetrics.d.ts +55 -0
  268. package/dist/src/controllers/attention/AttentionMetrics.d.ts.map +1 -0
  269. package/dist/src/controllers/attention/AttentionMetrics.js +72 -0
  270. package/dist/src/controllers/attention/AttentionMetrics.js.map +1 -0
  271. package/dist/src/controllers/attention/AttentionWASM.d.ts +98 -0
  272. package/dist/src/controllers/attention/AttentionWASM.d.ts.map +1 -0
  273. package/dist/src/controllers/attention/AttentionWASM.js +147 -0
  274. package/dist/src/controllers/attention/AttentionWASM.js.map +1 -0
  275. package/dist/src/controllers/attention/CrossAttentionController.d.ts +141 -0
  276. package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +1 -0
  277. package/dist/src/controllers/attention/CrossAttentionController.js +325 -0
  278. package/dist/src/controllers/attention/CrossAttentionController.js.map +1 -0
  279. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +137 -0
  280. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +1 -0
  281. package/dist/src/controllers/attention/MultiHeadAttentionController.js +336 -0
  282. package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +1 -0
  283. package/dist/src/controllers/attention/SelfAttentionController.d.ts +117 -0
  284. package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +1 -0
  285. package/dist/src/controllers/attention/SelfAttentionController.js +205 -0
  286. package/dist/src/controllers/attention/SelfAttentionController.js.map +1 -0
  287. package/dist/src/controllers/attention/index.d.ts +24 -0
  288. package/dist/src/controllers/attention/index.d.ts.map +1 -0
  289. package/dist/src/controllers/attention/index.js +20 -0
  290. package/dist/src/controllers/attention/index.js.map +1 -0
  291. package/dist/src/controllers/index.d.ts +15 -28
  292. package/dist/src/controllers/index.d.ts.map +1 -1
  293. package/dist/src/controllers/index.js +11 -19
  294. package/dist/src/controllers/index.js.map +1 -1
  295. package/dist/src/controllers/prerequisites.d.ts +76 -0
  296. package/dist/src/controllers/prerequisites.d.ts.map +1 -0
  297. package/dist/src/controllers/prerequisites.js +235 -0
  298. package/dist/src/controllers/prerequisites.js.map +1 -0
  299. package/dist/src/core/AgentDB.d.ts +33 -19
  300. package/dist/src/core/AgentDB.d.ts.map +1 -1
  301. package/dist/src/core/AgentDB.js +87 -127
  302. package/dist/src/core/AgentDB.js.map +1 -1
  303. package/dist/src/core/QueryCache.d.ts +138 -0
  304. package/dist/src/core/QueryCache.d.ts.map +1 -0
  305. package/dist/src/core/QueryCache.js +309 -0
  306. package/dist/src/core/QueryCache.js.map +1 -0
  307. package/dist/src/db-fallback.d.ts +52 -4
  308. package/dist/src/db-fallback.d.ts.map +1 -1
  309. package/dist/src/db-fallback.js +521 -71
  310. package/dist/src/db-fallback.js.map +1 -1
  311. package/dist/src/db-unified.d.ts.map +1 -1
  312. package/dist/src/db-unified.js +32 -30
  313. package/dist/src/db-unified.js.map +1 -1
  314. package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts +58 -0
  315. package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts.map +1 -0
  316. package/dist/src/embedding/EmbeddingSpaceIdentity.js +137 -0
  317. package/dist/src/embedding/EmbeddingSpaceIdentity.js.map +1 -0
  318. package/dist/src/embedding/index.d.ts +3 -0
  319. package/dist/src/embedding/index.d.ts.map +1 -0
  320. package/dist/src/embedding/index.js +2 -0
  321. package/dist/src/embedding/index.js.map +1 -0
  322. package/dist/src/examples/quic-sync-example.js +2 -2
  323. package/dist/src/examples/quic-sync-example.js.map +1 -1
  324. package/dist/src/governance/MetaHarnessGateway.d.ts +55 -0
  325. package/dist/src/governance/MetaHarnessGateway.d.ts.map +1 -0
  326. package/dist/src/governance/MetaHarnessGateway.js +65 -0
  327. package/dist/src/governance/MetaHarnessGateway.js.map +1 -0
  328. package/dist/src/governance/RvfExperimentBranch.d.ts +65 -0
  329. package/dist/src/governance/RvfExperimentBranch.d.ts.map +1 -0
  330. package/dist/src/governance/RvfExperimentBranch.js +115 -0
  331. package/dist/src/governance/RvfExperimentBranch.js.map +1 -0
  332. package/dist/src/index.d.ts +20 -16
  333. package/dist/src/index.d.ts.map +1 -1
  334. package/dist/src/index.js +44 -12
  335. package/dist/src/index.js.map +1 -1
  336. package/dist/src/mcp/agentdb-mcp-server.js +318 -16
  337. package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
  338. package/dist/src/mcp/reset-database.d.ts +15 -0
  339. package/dist/src/mcp/reset-database.d.ts.map +1 -0
  340. package/dist/src/mcp/reset-database.js +45 -0
  341. package/dist/src/mcp/reset-database.js.map +1 -0
  342. package/dist/src/model/ModelCacheLoader.d.ts +31 -0
  343. package/dist/src/model/ModelCacheLoader.d.ts.map +1 -0
  344. package/dist/src/model/ModelCacheLoader.js +209 -0
  345. package/dist/src/model/ModelCacheLoader.js.map +1 -0
  346. package/dist/src/observability/index.d.ts +8 -0
  347. package/dist/src/observability/index.d.ts.map +1 -0
  348. package/dist/src/observability/index.js +8 -0
  349. package/dist/src/observability/index.js.map +1 -0
  350. package/dist/src/observability/integration.d.ts +32 -0
  351. package/dist/src/observability/integration.d.ts.map +1 -0
  352. package/dist/src/observability/integration.js +159 -0
  353. package/dist/src/observability/integration.js.map +1 -0
  354. package/dist/src/observability/telemetry.d.ts +137 -0
  355. package/dist/src/observability/telemetry.d.ts.map +1 -0
  356. package/dist/src/observability/telemetry.js +424 -0
  357. package/dist/src/observability/telemetry.js.map +1 -0
  358. package/dist/src/optimizations/BatchOperations.d.ts +47 -0
  359. package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
  360. package/dist/src/optimizations/BatchOperations.js +189 -35
  361. package/dist/src/optimizations/BatchOperations.js.map +1 -1
  362. package/dist/src/optimizations/Quantization.d.ts +330 -0
  363. package/dist/src/optimizations/Quantization.d.ts.map +1 -0
  364. package/dist/src/optimizations/Quantization.js +793 -0
  365. package/dist/src/optimizations/Quantization.js.map +1 -0
  366. package/dist/src/optimizations/index.d.ts +1 -3
  367. package/dist/src/optimizations/index.d.ts.map +1 -1
  368. package/dist/src/optimizations/index.js +0 -1
  369. package/dist/src/optimizations/index.js.map +1 -1
  370. package/dist/src/quantization/index.d.ts +7 -0
  371. package/dist/src/quantization/index.d.ts.map +1 -0
  372. package/dist/src/quantization/index.js +15 -0
  373. package/dist/src/quantization/index.js.map +1 -0
  374. package/dist/src/quantization/vector-quantization.d.ts +388 -0
  375. package/dist/src/quantization/vector-quantization.d.ts.map +1 -0
  376. package/dist/src/quantization/vector-quantization.js +1132 -0
  377. package/dist/src/quantization/vector-quantization.js.map +1 -0
  378. package/dist/src/schemas/inline.d.ts +3 -0
  379. package/dist/src/schemas/inline.d.ts.map +1 -0
  380. package/dist/src/schemas/inline.js +10 -0
  381. package/dist/src/schemas/inline.js.map +1 -0
  382. package/dist/src/search/HybridSearch.d.ts +311 -0
  383. package/dist/src/search/HybridSearch.d.ts.map +1 -0
  384. package/dist/src/search/HybridSearch.js +713 -0
  385. package/dist/src/search/HybridSearch.js.map +1 -0
  386. package/dist/src/search/index.d.ts +12 -0
  387. package/dist/src/search/index.d.ts.map +1 -0
  388. package/dist/src/search/index.js +16 -0
  389. package/dist/src/search/index.js.map +1 -0
  390. package/dist/src/security/input-validation.d.ts +30 -0
  391. package/dist/src/security/input-validation.d.ts.map +1 -1
  392. package/dist/src/security/input-validation.js +77 -3
  393. package/dist/src/security/input-validation.js.map +1 -1
  394. package/dist/src/security/limits.d.ts.map +1 -1
  395. package/dist/src/security/limits.js +12 -3
  396. package/dist/src/security/limits.js.map +1 -1
  397. package/dist/src/security/mcp-policy.d.ts +17 -0
  398. package/dist/src/security/mcp-policy.d.ts.map +1 -0
  399. package/dist/src/security/mcp-policy.js +94 -0
  400. package/dist/src/security/mcp-policy.js.map +1 -0
  401. package/dist/src/security/path-security.d.ts.map +1 -1
  402. package/dist/src/security/path-security.js +3 -1
  403. package/dist/src/security/path-security.js.map +1 -1
  404. package/dist/src/security/validation.js +3 -3
  405. package/dist/src/security/validation.js.map +1 -1
  406. package/dist/src/services/AttentionService.d.ts +303 -0
  407. package/dist/src/services/AttentionService.d.ts.map +1 -0
  408. package/dist/src/services/AttentionService.js +1165 -0
  409. package/dist/src/services/AttentionService.js.map +1 -0
  410. package/dist/src/services/LLMRouter.d.ts +70 -8
  411. package/dist/src/services/LLMRouter.d.ts.map +1 -1
  412. package/dist/src/services/LLMRouter.js +279 -28
  413. package/dist/src/services/LLMRouter.js.map +1 -1
  414. package/dist/src/services/audit-logger.service.d.ts +168 -0
  415. package/dist/src/services/audit-logger.service.d.ts.map +1 -0
  416. package/dist/src/services/audit-logger.service.js +331 -0
  417. package/dist/src/services/audit-logger.service.js.map +1 -0
  418. package/dist/src/services/enhanced-embeddings.d.ts +271 -0
  419. package/dist/src/services/enhanced-embeddings.d.ts.map +1 -0
  420. package/dist/src/services/enhanced-embeddings.js +1036 -0
  421. package/dist/src/services/enhanced-embeddings.js.map +1 -0
  422. package/dist/src/services/federated-learning.d.ts +172 -0
  423. package/dist/src/services/federated-learning.d.ts.map +1 -0
  424. package/dist/src/services/federated-learning.js +344 -0
  425. package/dist/src/services/federated-learning.js.map +1 -0
  426. package/dist/src/simd/index.d.ts +9 -0
  427. package/dist/src/simd/index.d.ts.map +1 -0
  428. package/dist/src/simd/index.js +27 -0
  429. package/dist/src/simd/index.js.map +1 -0
  430. package/dist/src/simd/simd-vector-ops.d.ts +343 -0
  431. package/dist/src/simd/simd-vector-ops.d.ts.map +1 -0
  432. package/dist/src/simd/simd-vector-ops.js +1012 -0
  433. package/dist/src/simd/simd-vector-ops.js.map +1 -0
  434. package/dist/src/types/database.types.d.ts +275 -0
  435. package/dist/src/types/database.types.d.ts.map +1 -0
  436. package/dist/src/types/database.types.js +55 -0
  437. package/dist/src/types/database.types.js.map +1 -0
  438. package/dist/src/types/graph.d.ts +29 -0
  439. package/dist/src/types/graph.d.ts.map +1 -0
  440. package/dist/src/types/graph.js +8 -0
  441. package/dist/src/types/graph.js.map +1 -0
  442. package/dist/src/utils/chalk-fallback.d.ts +3 -0
  443. package/dist/src/utils/chalk-fallback.d.ts.map +1 -0
  444. package/dist/src/utils/chalk-fallback.js +20 -0
  445. package/dist/src/utils/chalk-fallback.js.map +1 -0
  446. package/dist/src/utils/similarity.d.ts +11 -0
  447. package/dist/src/utils/similarity.d.ts.map +1 -0
  448. package/dist/src/utils/similarity.js +25 -0
  449. package/dist/src/utils/similarity.js.map +1 -0
  450. package/dist/src/utils/top-k.d.ts +44 -0
  451. package/dist/src/utils/top-k.d.ts.map +1 -0
  452. package/dist/src/utils/top-k.js +111 -0
  453. package/dist/src/utils/top-k.js.map +1 -0
  454. package/dist/src/wasm-loader.d.ts +66 -0
  455. package/dist/src/wasm-loader.d.ts.map +1 -0
  456. package/dist/src/wasm-loader.js +76 -0
  457. package/dist/src/wasm-loader.js.map +1 -0
  458. package/dist/src/wrappers/agentdb-fast.d.ts +140 -0
  459. package/dist/src/wrappers/agentdb-fast.d.ts.map +1 -0
  460. package/dist/src/wrappers/agentdb-fast.js +309 -0
  461. package/dist/src/wrappers/agentdb-fast.js.map +1 -0
  462. package/dist/src/wrappers/attention-fallbacks.d.ts +343 -0
  463. package/dist/src/wrappers/attention-fallbacks.d.ts.map +1 -0
  464. package/dist/src/wrappers/attention-fallbacks.js +1484 -0
  465. package/dist/src/wrappers/attention-fallbacks.js.map +1 -0
  466. package/dist/src/wrappers/attention-native.d.ts +111 -0
  467. package/dist/src/wrappers/attention-native.d.ts.map +1 -0
  468. package/dist/src/wrappers/attention-native.js +273 -0
  469. package/dist/src/wrappers/attention-native.js.map +1 -0
  470. package/dist/src/wrappers/embedding-service.d.ts +117 -0
  471. package/dist/src/wrappers/embedding-service.d.ts.map +1 -0
  472. package/dist/src/wrappers/embedding-service.js +370 -0
  473. package/dist/src/wrappers/embedding-service.js.map +1 -0
  474. package/dist/src/wrappers/gnn-wrapper.d.ts +71 -0
  475. package/dist/src/wrappers/gnn-wrapper.d.ts.map +1 -0
  476. package/dist/src/wrappers/gnn-wrapper.js +236 -0
  477. package/dist/src/wrappers/gnn-wrapper.js.map +1 -0
  478. package/dist/src/wrappers/index.d.ts +48 -0
  479. package/dist/src/wrappers/index.d.ts.map +1 -0
  480. package/dist/src/wrappers/index.js +83 -0
  481. package/dist/src/wrappers/index.js.map +1 -0
  482. package/package.json +130 -80
  483. package/scripts/postinstall.cjs +13 -144
  484. package/dist/agentdb.browser.js +0 -1685
  485. package/dist/agentdb.browser.js.map +0 -7
  486. package/dist/agentdb.browser.min.js +0 -3
  487. package/dist/agentdb.browser.min.js.map +0 -7
  488. package/dist/agentdb.wasm-loader.js +0 -207
  489. package/dist/backends/VectorBackend.d.ts +0 -120
  490. package/dist/backends/VectorBackend.js +0 -14
  491. package/dist/backends/VectorBackend.js.map +0 -1
  492. package/dist/optimizations/RVFOptimizer.d.ts +0 -225
  493. package/dist/optimizations/RVFOptimizer.js +0 -541
  494. package/dist/optimizations/RVFOptimizer.js.map +0 -1
  495. package/dist/simulation/cli.d.ts +0 -9
  496. package/dist/simulation/cli.d.ts.map +0 -1
  497. package/dist/simulation/cli.js +0 -68
  498. package/dist/simulation/cli.js.map +0 -1
  499. package/dist/simulation/runner.d.ts +0 -21
  500. package/dist/simulation/runner.d.ts.map +0 -1
  501. package/dist/simulation/runner.js +0 -241
  502. package/dist/simulation/runner.js.map +0 -1
  503. package/dist/simulation/scenarios/aidefence-integration.d.ts +0 -24
  504. package/dist/simulation/scenarios/aidefence-integration.d.ts.map +0 -1
  505. package/dist/simulation/scenarios/aidefence-integration.js +0 -124
  506. package/dist/simulation/scenarios/aidefence-integration.js.map +0 -1
  507. package/dist/simulation/scenarios/bmssp-integration.d.ts +0 -23
  508. package/dist/simulation/scenarios/bmssp-integration.d.ts.map +0 -1
  509. package/dist/simulation/scenarios/bmssp-integration.js +0 -104
  510. package/dist/simulation/scenarios/bmssp-integration.js.map +0 -1
  511. package/dist/simulation/scenarios/causal-reasoning.d.ts +0 -16
  512. package/dist/simulation/scenarios/causal-reasoning.d.ts.map +0 -1
  513. package/dist/simulation/scenarios/causal-reasoning.js +0 -108
  514. package/dist/simulation/scenarios/causal-reasoning.js.map +0 -1
  515. package/dist/simulation/scenarios/consciousness-explorer.d.ts +0 -25
  516. package/dist/simulation/scenarios/consciousness-explorer.d.ts.map +0 -1
  517. package/dist/simulation/scenarios/consciousness-explorer.js +0 -108
  518. package/dist/simulation/scenarios/consciousness-explorer.js.map +0 -1
  519. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts +0 -135
  520. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts.map +0 -1
  521. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js +0 -158
  522. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js.map +0 -1
  523. package/dist/simulation/scenarios/domain-examples/index.d.ts +0 -14
  524. package/dist/simulation/scenarios/domain-examples/index.d.ts.map +0 -1
  525. package/dist/simulation/scenarios/domain-examples/index.js +0 -14
  526. package/dist/simulation/scenarios/domain-examples/index.js.map +0 -1
  527. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts +0 -178
  528. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts.map +0 -1
  529. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js +0 -218
  530. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js.map +0 -1
  531. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts +0 -122
  532. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts.map +0 -1
  533. package/dist/simulation/scenarios/domain-examples/medical-imaging.js +0 -129
  534. package/dist/simulation/scenarios/domain-examples/medical-imaging.js.map +0 -1
  535. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts +0 -166
  536. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts.map +0 -1
  537. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js +0 -161
  538. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js.map +0 -1
  539. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts +0 -151
  540. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts.map +0 -1
  541. package/dist/simulation/scenarios/domain-examples/scientific-research.js +0 -187
  542. package/dist/simulation/scenarios/domain-examples/scientific-research.js.map +0 -1
  543. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts +0 -102
  544. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts.map +0 -1
  545. package/dist/simulation/scenarios/domain-examples/trading-systems.js +0 -100
  546. package/dist/simulation/scenarios/domain-examples/trading-systems.js.map +0 -1
  547. package/dist/simulation/scenarios/goalie-integration.d.ts +0 -24
  548. package/dist/simulation/scenarios/goalie-integration.d.ts.map +0 -1
  549. package/dist/simulation/scenarios/goalie-integration.js +0 -121
  550. package/dist/simulation/scenarios/goalie-integration.js.map +0 -1
  551. package/dist/simulation/scenarios/graph-traversal.d.ts +0 -17
  552. package/dist/simulation/scenarios/graph-traversal.d.ts.map +0 -1
  553. package/dist/simulation/scenarios/graph-traversal.js +0 -101
  554. package/dist/simulation/scenarios/graph-traversal.js.map +0 -1
  555. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts +0 -45
  556. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts.map +0 -1
  557. package/dist/simulation/scenarios/latent-space/attention-analysis.js +0 -435
  558. package/dist/simulation/scenarios/latent-space/attention-analysis.js.map +0 -1
  559. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts +0 -55
  560. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts.map +0 -1
  561. package/dist/simulation/scenarios/latent-space/clustering-analysis.js +0 -606
  562. package/dist/simulation/scenarios/latent-space/clustering-analysis.js.map +0 -1
  563. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts +0 -74
  564. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts.map +0 -1
  565. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js +0 -391
  566. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js.map +0 -1
  567. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts +0 -51
  568. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts.map +0 -1
  569. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js +0 -536
  570. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js.map +0 -1
  571. package/dist/simulation/scenarios/latent-space/index.d.ts +0 -35
  572. package/dist/simulation/scenarios/latent-space/index.d.ts.map +0 -1
  573. package/dist/simulation/scenarios/latent-space/index.js +0 -35
  574. package/dist/simulation/scenarios/latent-space/index.js.map +0 -1
  575. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts +0 -52
  576. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts.map +0 -1
  577. package/dist/simulation/scenarios/latent-space/neural-augmentation.js +0 -472
  578. package/dist/simulation/scenarios/latent-space/neural-augmentation.js.map +0 -1
  579. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts +0 -53
  580. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts.map +0 -1
  581. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js +0 -391
  582. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js.map +0 -1
  583. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts +0 -52
  584. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts.map +0 -1
  585. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js +0 -514
  586. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js.map +0 -1
  587. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts +0 -53
  588. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts.map +0 -1
  589. package/dist/simulation/scenarios/latent-space/traversal-optimization.js +0 -595
  590. package/dist/simulation/scenarios/latent-space/traversal-optimization.js.map +0 -1
  591. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts +0 -18
  592. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts.map +0 -1
  593. package/dist/simulation/scenarios/lean-agentic-swarm.js +0 -132
  594. package/dist/simulation/scenarios/lean-agentic-swarm.js.map +0 -1
  595. package/dist/simulation/scenarios/multi-agent-swarm.d.ts +0 -17
  596. package/dist/simulation/scenarios/multi-agent-swarm.d.ts.map +0 -1
  597. package/dist/simulation/scenarios/multi-agent-swarm.js +0 -111
  598. package/dist/simulation/scenarios/multi-agent-swarm.js.map +0 -1
  599. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts +0 -23
  600. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts.map +0 -1
  601. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js +0 -98
  602. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js.map +0 -1
  603. package/dist/simulation/scenarios/reflexion-learning.d.ts +0 -16
  604. package/dist/simulation/scenarios/reflexion-learning.d.ts.map +0 -1
  605. package/dist/simulation/scenarios/reflexion-learning.js +0 -98
  606. package/dist/simulation/scenarios/reflexion-learning.js.map +0 -1
  607. package/dist/simulation/scenarios/research-swarm.d.ts +0 -24
  608. package/dist/simulation/scenarios/research-swarm.d.ts.map +0 -1
  609. package/dist/simulation/scenarios/research-swarm.js +0 -146
  610. package/dist/simulation/scenarios/research-swarm.js.map +0 -1
  611. package/dist/simulation/scenarios/skill-evolution.d.ts +0 -16
  612. package/dist/simulation/scenarios/skill-evolution.d.ts.map +0 -1
  613. package/dist/simulation/scenarios/skill-evolution.js +0 -109
  614. package/dist/simulation/scenarios/skill-evolution.js.map +0 -1
  615. package/dist/simulation/scenarios/stock-market-emergence.d.ts +0 -33
  616. package/dist/simulation/scenarios/stock-market-emergence.d.ts.map +0 -1
  617. package/dist/simulation/scenarios/stock-market-emergence.js +0 -246
  618. package/dist/simulation/scenarios/stock-market-emergence.js.map +0 -1
  619. package/dist/simulation/scenarios/strange-loops.d.ts +0 -18
  620. package/dist/simulation/scenarios/strange-loops.d.ts.map +0 -1
  621. package/dist/simulation/scenarios/strange-loops.js +0 -133
  622. package/dist/simulation/scenarios/strange-loops.js.map +0 -1
  623. package/dist/simulation/scenarios/sublinear-solver.d.ts +0 -22
  624. package/dist/simulation/scenarios/sublinear-solver.d.ts.map +0 -1
  625. package/dist/simulation/scenarios/sublinear-solver.js +0 -82
  626. package/dist/simulation/scenarios/sublinear-solver.js.map +0 -1
  627. package/dist/simulation/scenarios/temporal-lead-solver.d.ts +0 -23
  628. package/dist/simulation/scenarios/temporal-lead-solver.d.ts.map +0 -1
  629. package/dist/simulation/scenarios/temporal-lead-solver.js +0 -90
  630. package/dist/simulation/scenarios/temporal-lead-solver.js.map +0 -1
  631. package/dist/simulation/scenarios/voting-system-consensus.d.ts +0 -27
  632. package/dist/simulation/scenarios/voting-system-consensus.d.ts.map +0 -1
  633. package/dist/simulation/scenarios/voting-system-consensus.js +0 -175
  634. package/dist/simulation/scenarios/voting-system-consensus.js.map +0 -1
  635. package/dist/simulation/types.d.ts +0 -162
  636. package/dist/simulation/types.d.ts.map +0 -1
  637. package/dist/simulation/types.js +0 -5
  638. package/dist/simulation/types.js.map +0 -1
  639. package/dist/simulation/utils/PerformanceOptimizer.d.ts +0 -115
  640. package/dist/simulation/utils/PerformanceOptimizer.d.ts.map +0 -1
  641. package/dist/simulation/utils/PerformanceOptimizer.js +0 -223
  642. package/dist/simulation/utils/PerformanceOptimizer.js.map +0 -1
  643. package/dist/src/backends/index.cjs +0 -6
  644. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts +0 -93
  645. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts.map +0 -1
  646. package/dist/src/backends/ruvector/GuardedVectorBackend.js +0 -182
  647. package/dist/src/backends/ruvector/GuardedVectorBackend.js.map +0 -1
  648. package/dist/src/consensus/RaftConsensus.d.ts +0 -220
  649. package/dist/src/consensus/RaftConsensus.d.ts.map +0 -1
  650. package/dist/src/consensus/RaftConsensus.js +0 -762
  651. package/dist/src/consensus/RaftConsensus.js.map +0 -1
  652. package/dist/src/controllers/HierarchicalMemory.d.ts +0 -197
  653. package/dist/src/controllers/HierarchicalMemory.d.ts.map +0 -1
  654. package/dist/src/controllers/HierarchicalMemory.js +0 -519
  655. package/dist/src/controllers/HierarchicalMemory.js.map +0 -1
  656. package/dist/src/controllers/MemoryConsolidation.d.ts +0 -142
  657. package/dist/src/controllers/MemoryConsolidation.d.ts.map +0 -1
  658. package/dist/src/controllers/MemoryConsolidation.js +0 -479
  659. package/dist/src/controllers/MemoryConsolidation.js.map +0 -1
  660. package/dist/src/controllers/QUICConnection.d.ts +0 -122
  661. package/dist/src/controllers/QUICConnection.d.ts.map +0 -1
  662. package/dist/src/controllers/QUICConnection.js +0 -329
  663. package/dist/src/controllers/QUICConnection.js.map +0 -1
  664. package/dist/src/controllers/QUICConnectionPool.d.ts +0 -83
  665. package/dist/src/controllers/QUICConnectionPool.d.ts.map +0 -1
  666. package/dist/src/controllers/QUICConnectionPool.js +0 -256
  667. package/dist/src/controllers/QUICConnectionPool.js.map +0 -1
  668. package/dist/src/controllers/QUICStreamManager.d.ts +0 -114
  669. package/dist/src/controllers/QUICStreamManager.d.ts.map +0 -1
  670. package/dist/src/controllers/QUICStreamManager.js +0 -267
  671. package/dist/src/controllers/QUICStreamManager.js.map +0 -1
  672. package/dist/src/controllers/StreamingEmbeddingService.d.ts +0 -82
  673. package/dist/src/controllers/StreamingEmbeddingService.d.ts.map +0 -1
  674. package/dist/src/controllers/StreamingEmbeddingService.js +0 -243
  675. package/dist/src/controllers/StreamingEmbeddingService.js.map +0 -1
  676. package/dist/src/controllers/index.cjs +0 -6
  677. package/dist/src/coordination/MultiDatabaseCoordinator.d.ts +0 -348
  678. package/dist/src/coordination/MultiDatabaseCoordinator.d.ts.map +0 -1
  679. package/dist/src/coordination/MultiDatabaseCoordinator.js +0 -803
  680. package/dist/src/coordination/MultiDatabaseCoordinator.js.map +0 -1
  681. package/dist/src/coordination/index.d.ts +0 -10
  682. package/dist/src/coordination/index.d.ts.map +0 -1
  683. package/dist/src/coordination/index.js +0 -10
  684. package/dist/src/coordination/index.js.map +0 -1
  685. package/dist/src/index.cjs +0 -6
  686. package/dist/src/optimizations/RVFOptimizer.d.ts +0 -226
  687. package/dist/src/optimizations/RVFOptimizer.d.ts.map +0 -1
  688. package/dist/src/optimizations/RVFOptimizer.js +0 -541
  689. package/dist/src/optimizations/RVFOptimizer.js.map +0 -1
  690. package/dist/src/security/AttestationLog.d.ts +0 -70
  691. package/dist/src/security/AttestationLog.d.ts.map +0 -1
  692. package/dist/src/security/AttestationLog.js +0 -174
  693. package/dist/src/security/AttestationLog.js.map +0 -1
  694. package/dist/src/security/MutationGuard.d.ts +0 -83
  695. package/dist/src/security/MutationGuard.d.ts.map +0 -1
  696. package/dist/src/security/MutationGuard.js +0 -364
  697. package/dist/src/security/MutationGuard.js.map +0 -1
  698. package/dist/src/security/index.cjs +0 -6
  699. package/dist/src/security/index.d.ts +0 -15
  700. package/dist/src/security/index.d.ts.map +0 -1
  701. package/dist/src/security/index.js +0 -18
  702. package/dist/src/security/index.js.map +0 -1
  703. package/dist/src/services/GNNService.d.ts +0 -172
  704. package/dist/src/services/GNNService.d.ts.map +0 -1
  705. package/dist/src/services/GNNService.js +0 -612
  706. package/dist/src/services/GNNService.js.map +0 -1
  707. package/dist/src/services/GraphTransformerService.d.ts +0 -80
  708. package/dist/src/services/GraphTransformerService.d.ts.map +0 -1
  709. package/dist/src/services/GraphTransformerService.js +0 -369
  710. package/dist/src/services/GraphTransformerService.js.map +0 -1
  711. package/dist/src/services/SemanticRouter.d.ts +0 -83
  712. package/dist/src/services/SemanticRouter.d.ts.map +0 -1
  713. package/dist/src/services/SemanticRouter.js +0 -160
  714. package/dist/src/services/SemanticRouter.js.map +0 -1
  715. package/dist/src/services/SonaTrajectoryService.d.ts +0 -224
  716. package/dist/src/services/SonaTrajectoryService.d.ts.map +0 -1
  717. package/dist/src/services/SonaTrajectoryService.js +0 -539
  718. package/dist/src/services/SonaTrajectoryService.js.map +0 -1
  719. package/dist/src/utils/LegacyAttentionAdapter.d.ts +0 -93
  720. package/dist/src/utils/LegacyAttentionAdapter.d.ts.map +0 -1
  721. package/dist/src/utils/LegacyAttentionAdapter.js +0 -241
  722. package/dist/src/utils/LegacyAttentionAdapter.js.map +0 -1
  723. package/dist/src/utils/vector-math.d.ts +0 -29
  724. package/dist/src/utils/vector-math.d.ts.map +0 -1
  725. package/dist/src/utils/vector-math.js +0 -66
  726. package/dist/src/utils/vector-math.js.map +0 -1
@@ -7,28 +7,52 @@
7
7
  * Based on: "Voyager: An Open-Ended Embodied Agent with Large Language Models"
8
8
  * https://arxiv.org/abs/2305.16291
9
9
  */
10
+ import { normalizeRowId } from '../types/database.types.js';
11
+ import { searchVectors } from '../backends/VectorBackend.js';
12
+ import { sqlExactSource } from '../backends/ExactSearch.js';
10
13
  import { NodeIdMapper } from '../utils/NodeIdMapper.js';
11
- import { cosineSimilarity } from '../utils/vector-math.js';
14
+ import { QueryCache } from '../core/QueryCache.js';
15
+ import { TopK, squaredNorm, cosineWithQueryNorm, blobToFloat32 } from '../utils/top-k.js';
16
+ /** Vector ids this controller writes: "skill:<rowid>" */
17
+ const SKILL_VECTOR_ID = /^skill:(\d+)$/;
18
+ /** Stay well under SQLite's bound-parameter limit (999 on older builds) */
19
+ const MAX_SQL_PARAMS = 500;
20
+ /** Parse JSON from DB row values without throwing on malformed data. */
21
+ function safeJsonParse(value, fallback) {
22
+ if (!value)
23
+ return fallback;
24
+ try {
25
+ return JSON.parse(value);
26
+ }
27
+ catch {
28
+ return fallback;
29
+ }
30
+ }
12
31
  export class SkillLibrary {
13
32
  db;
14
33
  embedder;
15
34
  vectorBackend;
16
35
  graphBackend; // GraphBackend or GraphDatabaseAdapter
17
- constructor(db, embedder, vectorBackend, graphBackend) {
36
+ queryCache;
37
+ constructor(db, embedder, vectorBackend, graphBackend, cacheConfig) {
18
38
  this.db = db;
19
39
  this.embedder = embedder;
20
40
  this.vectorBackend = vectorBackend || null;
21
41
  this.graphBackend = graphBackend;
42
+ this.queryCache = new QueryCache(cacheConfig);
22
43
  }
23
44
  /**
24
45
  * Create a new skill manually or from an episode
46
+ * Invalidates skill cache
25
47
  */
26
48
  async createSkill(skill) {
49
+ // Invalidate skills cache on write
50
+ this.queryCache.invalidateCategory('skills');
27
51
  // Use GraphDatabaseAdapter if available (AgentDB v2)
28
52
  if (this.graphBackend && 'storeSkill' in this.graphBackend) {
29
53
  const graphAdapter = this.graphBackend;
30
54
  const text = this.buildSkillText(skill);
31
- const embedding = await this.embedder.embed(text);
55
+ const embedding = await this.embedder.embedPassage(text);
32
56
  const nodeId = await graphAdapter.storeSkill({
33
57
  id: skill.id ? `skill-${skill.id}` : `skill-${Date.now()}-${Math.random()}`,
34
58
  name: skill.name,
@@ -38,7 +62,7 @@ export class SkillLibrary {
38
62
  avgReward: skill.avgReward ?? 0,
39
63
  createdAt: Date.now(),
40
64
  updatedAt: Date.now(),
41
- tags: JSON.stringify(skill.metadata || {})
65
+ tags: JSON.stringify(skill.metadata || {}),
42
66
  }, embedding);
43
67
  const numericId = parseInt(nodeId.split('-').pop() || '0', 36);
44
68
  NodeIdMapper.getInstance().register(numericId, nodeId);
@@ -57,35 +81,31 @@ export class SkillLibrary {
57
81
  const avgReward = skill.avgReward ?? 0;
58
82
  const avgLatencyMs = skill.avgLatencyMs ?? 0;
59
83
  const result = stmt.run(skill.name, skill.description || null, JSON.stringify(signature), skill.code || null, skill.successRate, uses, avgReward, avgLatencyMs, skill.metadata ? JSON.stringify(skill.metadata) : null);
60
- const skillId = result.lastInsertRowid;
84
+ const skillId = normalizeRowId(result.lastInsertRowid);
61
85
  // Generate and store embedding in VectorBackend
62
86
  const text = this.buildSkillText(skill);
63
- const embedding = await this.embedder.embed(text);
87
+ const embedding = await this.embedder.embedPassage(text);
64
88
  // Store in VectorBackend with skill metadata (if available)
65
89
  if (this.vectorBackend) {
66
- try {
67
- this.vectorBackend.insert(`skill:${skillId}`, embedding, {
68
- name: skill.name,
69
- description: skill.description,
70
- successRate: skill.successRate,
71
- avgReward: skill.avgReward
72
- });
73
- }
74
- catch {
75
- // VectorBackend insert failed — fall back to legacy
76
- this.storeSkillEmbeddingLegacy(skillId, embedding);
77
- }
78
- }
79
- else {
80
- // Legacy: store in database
81
- this.storeSkillEmbeddingLegacy(skillId, embedding);
90
+ this.vectorBackend.insert(`skill:${skillId}`, embedding, {
91
+ name: skill.name,
92
+ description: skill.description,
93
+ successRate: skill.successRate,
94
+ avgReward: skill.avgReward,
95
+ });
82
96
  }
97
+ // Always keep the SQL copy: it is the fallback when the vector index
98
+ // returns nothing (and the only store without a vector backend).
99
+ this.storeSkillEmbeddingLegacy(skillId, embedding);
83
100
  return skillId;
84
101
  }
85
102
  /**
86
103
  * Update skill statistics after use
104
+ * Invalidates skill cache
87
105
  */
88
106
  updateSkillStats(skillId, success, reward, latencyMs) {
107
+ // Invalidate skills cache on update
108
+ this.queryCache.invalidateCategory('skills');
89
109
  const stmt = this.db.prepare(`
90
110
  UPDATE skills
91
111
  SET
@@ -97,6 +117,35 @@ export class SkillLibrary {
97
117
  `);
98
118
  stmt.run(success ? 1 : 0, reward, latencyMs, skillId);
99
119
  }
120
+ /**
121
+ * Record the outcome of using a skill (ADR-015). Updates uses, success
122
+ * rate and average reward, which retrieveSkills() ranks by; the average
123
+ * latency only moves when `latencyMs` is given.
124
+ *
125
+ * @param reward - defaults to 1 for success, 0 for failure
126
+ * @returns false when no skill has that id
127
+ */
128
+ recordOutcome(skillId, success, reward, latencyMs) {
129
+ if (reward !== undefined && !Number.isFinite(reward)) {
130
+ throw new Error('reward must be a finite number');
131
+ }
132
+ if (latencyMs !== undefined && (!Number.isFinite(latencyMs) || latencyMs < 0)) {
133
+ throw new Error('latencyMs must be a non-negative finite number');
134
+ }
135
+ this.queryCache.invalidateCategory('skills');
136
+ const actualReward = reward ?? (success ? 1 : 0);
137
+ const result = this.db.prepare(`
138
+ UPDATE skills
139
+ SET
140
+ success_rate = (success_rate * uses + ?) / (uses + 1),
141
+ avg_reward = (avg_reward * uses + ?) / (uses + 1),
142
+ avg_latency_ms = CASE WHEN ? IS NULL THEN avg_latency_ms
143
+ ELSE (avg_latency_ms * uses + ?) / (uses + 1) END,
144
+ uses = uses + 1
145
+ WHERE id = ?
146
+ `).run(success ? 1 : 0, actualReward, latencyMs ?? null, latencyMs ?? null, skillId);
147
+ return result.changes > 0;
148
+ }
100
149
  /**
101
150
  * Retrieve skills relevant to a task
102
151
  */
@@ -110,13 +159,20 @@ export class SkillLibrary {
110
159
  throw new Error('SkillQuery must provide either task (v2) or query (v1)');
111
160
  }
112
161
  const { k = 5, minSuccessRate = 0.5, preferRecent = true } = query;
162
+ // Check cache first
163
+ const cacheKey = this.queryCache.generateKey('retrieveSkills', [task, k, minSuccessRate, preferRecent], 'skills');
164
+ const cached = this.queryCache.get(cacheKey);
165
+ if (cached) {
166
+ return cached;
167
+ }
113
168
  // Generate query embedding
114
- const queryEmbedding = await this.embedder.embed(task);
169
+ const queryEmbedding = await this.embedder.embedQuery(task);
115
170
  // Use GraphDatabaseAdapter if available (AgentDB v2)
116
171
  if (this.graphBackend && 'searchSkills' in this.graphBackend) {
117
172
  const graphAdapter = this.graphBackend;
118
173
  const searchResults = await graphAdapter.searchSkills(queryEmbedding, k);
119
- return searchResults.map(result => {
174
+ const results = searchResults
175
+ .map((result) => {
120
176
  // Handle metadata/tags parsing
121
177
  let metadata = undefined;
122
178
  if (result.tags) {
@@ -145,55 +201,77 @@ export class SkillLibrary {
145
201
  successRate: result.avgReward, // Use avgReward as successRate proxy
146
202
  uses: result.usageCount,
147
203
  avgReward: result.avgReward,
148
- metadata
204
+ metadata,
149
205
  };
150
- }).filter(skill => skill.successRate >= minSuccessRate);
206
+ })
207
+ .filter((skill) => skill.successRate >= minSuccessRate);
208
+ // Cache the results
209
+ this.queryCache.set(cacheKey, results);
210
+ return results;
151
211
  }
152
212
  // Use VectorBackend for semantic search (if available)
153
213
  if (this.vectorBackend) {
154
- try {
155
- const searchResults = this.vectorBackend.search(queryEmbedding, k * 3);
156
- // Map results back to skill IDs and fetch full skill data
157
- const skillsWithSimilarity = [];
158
- // Prepare statement ONCE outside loop (better-sqlite3 best practice)
159
- const getSkillStmt = this.db.prepare('SELECT * FROM skills WHERE id = ?');
160
- for (const result of searchResults) {
161
- // Extract skill ID from vector ID (format: "skill:123")
162
- const skillId = parseInt(result.id.replace('skill:', ''));
163
- // Fetch full skill data from database
164
- const row = getSkillStmt.get(skillId);
165
- if (!row)
166
- continue;
167
- // Apply filters
168
- if (row.success_rate < minSuccessRate)
169
- continue;
170
- skillsWithSimilarity.push({
171
- id: row.id,
172
- name: row.name,
173
- description: row.description,
174
- signature: JSON.parse(row.signature),
175
- code: row.code,
176
- successRate: row.success_rate,
177
- uses: row.uses,
178
- avgReward: row.avg_reward,
179
- avgLatencyMs: row.avg_latency_ms,
180
- createdFromEpisode: row.created_from_episode,
181
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
182
- similarity: result.similarity
183
- });
184
- }
185
- // Compute composite scores
186
- skillsWithSimilarity.sort((a, b) => {
187
- const scoreA = this.computeSkillScore(a);
188
- const scoreB = this.computeSkillScore(b);
189
- return scoreB - scoreA;
214
+ // Small or short index answers are completed by exact cosine over
215
+ // skill_embeddings (ADR-015)
216
+ const searchResults = await searchVectors(this.vectorBackend, queryEmbedding, k * 3, undefined, sqlExactSource(this.db, {
217
+ table: 'skill_embeddings',
218
+ idColumn: 'skill_id',
219
+ vectorId: (id) => `skill:${id}`,
220
+ owns: (hit) => SKILL_VECTOR_ID.test(hit.id),
221
+ }));
222
+ // The vector backend may be shared with other controllers (episodes use
223
+ // bare numeric ids, causal edges "causal-edge:N"); only "skill:N" is ours.
224
+ const similarityById = new Map();
225
+ for (const result of searchResults) {
226
+ const match = SKILL_VECTOR_ID.exec(result.id);
227
+ if (!match)
228
+ continue;
229
+ const skillId = Number(match[1]);
230
+ if (!similarityById.has(skillId))
231
+ similarityById.set(skillId, result.similarity);
232
+ }
233
+ // No usable hits although skills exist (empty or crowded-out index):
234
+ // answer from the SQL embeddings instead of returning nothing.
235
+ if (similarityById.size === 0 && this.db.prepare('SELECT 1 FROM skills LIMIT 1').get()) {
236
+ const results = await this.retrieveSkillsLegacy(query);
237
+ this.queryCache.set(cacheKey, results);
238
+ return results;
239
+ }
240
+ const skillsWithSimilarity = [];
241
+ for (const row of this.fetchSkillsByIds([...similarityById.keys()])) {
242
+ // Apply filters
243
+ if (row.success_rate < minSuccessRate)
244
+ continue;
245
+ skillsWithSimilarity.push({
246
+ id: row.id,
247
+ name: row.name,
248
+ description: row.description ?? undefined,
249
+ signature: safeJsonParse(row.signature, undefined),
250
+ code: row.code ?? undefined,
251
+ successRate: row.success_rate,
252
+ uses: row.uses,
253
+ avgReward: row.avg_reward,
254
+ avgLatencyMs: row.avg_latency_ms,
255
+ createdFromEpisode: row.created_from_episode ?? undefined,
256
+ metadata: safeJsonParse(row.metadata, undefined),
257
+ similarity: similarityById.get(row.id),
190
258
  });
191
- return skillsWithSimilarity.slice(0, k);
192
259
  }
193
- catch { /* vectorBackend search failed — fall through to SQL */ }
260
+ // Compute composite scores
261
+ skillsWithSimilarity.sort((a, b) => {
262
+ const scoreA = this.computeSkillScore(a);
263
+ const scoreB = this.computeSkillScore(b);
264
+ return scoreB - scoreA;
265
+ });
266
+ const results = skillsWithSimilarity.slice(0, k);
267
+ // Cache the results
268
+ this.queryCache.set(cacheKey, results);
269
+ return results;
270
+ }
271
+ else {
272
+ // Legacy: use SQL-based similarity search
273
+ return this.retrieveSkillsLegacy(query);
194
274
  }
195
- // Legacy: use SQL-based similarity search
196
- return this.retrieveSkillsLegacy(query);
197
275
  }
198
276
  /**
199
277
  * Legacy SQL-based skill retrieval (fallback when VectorBackend not available)
@@ -205,7 +283,7 @@ export class SkillLibrary {
205
283
  throw new Error('SkillQuery must provide either task (v2) or query (v1)');
206
284
  }
207
285
  const { k = 5, minSuccessRate = 0.5 } = query;
208
- const queryEmbedding = await this.embedder.embed(task);
286
+ const queryEmbedding = await this.embedder.embedQuery(task);
209
287
  // Fetch all skills with embeddings
210
288
  const stmt = this.db.prepare(`
211
289
  SELECT s.*, e.embedding
@@ -214,35 +292,37 @@ export class SkillLibrary {
214
292
  WHERE s.success_rate >= ?
215
293
  `);
216
294
  const rows = stmt.all(minSuccessRate);
217
- // Compute similarities
218
- const skillsWithSimilarity = [];
295
+ // Bounded top-k by composite score; JSON columns are parsed for the
296
+ // winners only. Ties keep scan order, as the old stable sort did.
297
+ const queryNorm = Math.sqrt(squaredNorm(queryEmbedding));
298
+ const top = new TopK(k);
219
299
  for (const row of rows) {
220
300
  if (!row.embedding)
221
301
  continue;
222
- const embedding = new Float32Array(row.embedding.buffer);
223
- const similarity = cosineSimilarity(queryEmbedding, embedding);
224
- skillsWithSimilarity.push({
225
- id: row.id,
302
+ const similarity = cosineWithQueryNorm(queryEmbedding, queryNorm, blobToFloat32(row.embedding));
303
+ const score = this.computeSkillScore({
226
304
  name: row.name,
227
- description: row.description,
228
- signature: JSON.parse(row.signature),
229
- code: row.code,
230
305
  successRate: row.success_rate,
231
306
  uses: row.uses,
232
307
  avgReward: row.avg_reward,
233
- avgLatencyMs: row.avg_latency_ms,
234
- createdFromEpisode: row.created_from_episode,
235
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
236
- similarity
308
+ similarity,
237
309
  });
310
+ top.push(score, { row, similarity });
238
311
  }
239
- // Sort by composite score
240
- skillsWithSimilarity.sort((a, b) => {
241
- const scoreA = this.computeSkillScore(a);
242
- const scoreB = this.computeSkillScore(b);
243
- return scoreB - scoreA;
244
- });
245
- return skillsWithSimilarity.slice(0, k);
312
+ return top.sorted().map(({ item: { row, similarity } }) => ({
313
+ id: row.id,
314
+ name: row.name,
315
+ description: row.description ?? undefined,
316
+ signature: safeJsonParse(row.signature, undefined),
317
+ code: row.code ?? undefined,
318
+ successRate: row.success_rate,
319
+ uses: row.uses,
320
+ avgReward: row.avg_reward,
321
+ avgLatencyMs: row.avg_latency_ms,
322
+ createdFromEpisode: row.created_from_episode ?? undefined,
323
+ metadata: safeJsonParse(row.metadata, undefined),
324
+ similarity,
325
+ }));
246
326
  }
247
327
  /**
248
328
  * Store skill embedding (legacy fallback)
@@ -253,9 +333,38 @@ export class SkillLibrary {
253
333
  VALUES (?, ?)
254
334
  ON CONFLICT(skill_id) DO UPDATE SET embedding = excluded.embedding
255
335
  `);
256
- const buffer = Buffer.from(embedding.buffer);
336
+ const buffer = Buffer.from(embedding.buffer, embedding.byteOffset, embedding.byteLength);
257
337
  stmt.run(skillId, buffer);
258
338
  }
339
+ /**
340
+ * Load skill rows for a set of ids with one IN query per chunk
341
+ * (instead of one query per vector hit).
342
+ */
343
+ fetchSkillsByIds(ids) {
344
+ const rows = [];
345
+ for (let i = 0; i < ids.length; i += MAX_SQL_PARAMS) {
346
+ const chunk = ids.slice(i, i + MAX_SQL_PARAMS);
347
+ const placeholders = chunk.map(() => '?').join(',');
348
+ rows.push(...this.db
349
+ .prepare(`SELECT * FROM skills WHERE id IN (${placeholders})`)
350
+ .all(...chunk));
351
+ }
352
+ return rows;
353
+ }
354
+ /**
355
+ * Cosine similarity between two vectors
356
+ */
357
+ cosineSimilarity(a, b) {
358
+ let dotProduct = 0;
359
+ let normA = 0;
360
+ let normB = 0;
361
+ for (let i = 0; i < a.length; i++) {
362
+ dotProduct += a[i] * b[i];
363
+ normA += a[i] * a[i];
364
+ normB += b[i] * b[i];
365
+ }
366
+ return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
367
+ }
259
368
  /**
260
369
  * Link two skills with a relationship
261
370
  */
@@ -342,7 +451,7 @@ export class SkillLibrary {
342
451
  task: candidate.task,
343
452
  commonPatterns: extractedPatterns,
344
453
  successIndicators: successIndicators,
345
- avgReward: candidate.avg_reward
454
+ avgReward: candidate.avg_reward,
346
455
  });
347
456
  }
348
457
  // Check if skill already exists
@@ -354,12 +463,12 @@ export class SkillLibrary {
354
463
  description: enhancedDescription,
355
464
  signature: {
356
465
  inputs: { task: 'string' },
357
- outputs: { result: 'any' }
466
+ outputs: { result: 'any' },
358
467
  },
359
468
  successRate: candidate.success_rate,
360
469
  uses: candidate.attempt_count,
361
470
  avgReward: candidate.avg_reward,
362
- avgLatencyMs: candidate.avg_latency || 0,
471
+ avgLatencyMs: candidate.avg_latency ?? 0,
363
472
  createdFromEpisode: candidate.latest_episode_id,
364
473
  metadata: {
365
474
  sourceEpisodes: episodeIds,
@@ -367,15 +476,15 @@ export class SkillLibrary {
367
476
  consolidatedAt: Date.now(),
368
477
  extractedPatterns: extractedPatterns,
369
478
  successIndicators: successIndicators,
370
- patternConfidence: this.calculatePatternConfidence(episodeIds.length, candidate.success_rate)
371
- }
479
+ patternConfidence: this.calculatePatternConfidence(episodeIds.length, candidate.success_rate),
480
+ },
372
481
  };
373
482
  await this.createSkill(skill);
374
483
  created++;
375
484
  }
376
485
  else {
377
486
  // Update existing skill stats
378
- this.updateSkillStats(existing.id, candidate.success_rate > 0.5, candidate.avg_reward, candidate.avg_latency || 0);
487
+ this.updateSkillStats(existing.id, candidate.success_rate > 0.5, candidate.avg_reward, candidate.avg_latency ?? 0);
379
488
  updated++;
380
489
  }
381
490
  }
@@ -386,21 +495,21 @@ export class SkillLibrary {
386
495
  */
387
496
  async extractPatternsFromEpisodes(episodeIds) {
388
497
  // Retrieve episodes with their outputs and critiques
389
- const episodes = this.db.prepare(`
498
+ const episodes = this.db
499
+ .prepare(`
390
500
  SELECT id, task, input, output, critique, reward, success, metadata
391
501
  FROM episodes
392
502
  WHERE id IN (${episodeIds.map(() => '?').join(',')})
393
503
  AND success = 1
394
- `).all(...episodeIds);
504
+ `)
505
+ .all(...episodeIds);
395
506
  if (episodes.length === 0) {
396
507
  return { commonPatterns: [], successIndicators: [] };
397
508
  }
398
509
  const commonPatterns = [];
399
510
  const successIndicators = [];
400
511
  // Pattern 1: Analyze output text for common keywords and phrases
401
- const outputTexts = episodes
402
- .map(ep => ep.output)
403
- .filter(Boolean);
512
+ const outputTexts = episodes.map((ep) => ep.output).filter(Boolean);
404
513
  if (outputTexts.length > 0) {
405
514
  const keywordFrequency = this.extractKeywordFrequency(outputTexts);
406
515
  const topKeywords = this.getTopKeywords(keywordFrequency, 5);
@@ -409,9 +518,7 @@ export class SkillLibrary {
409
518
  }
410
519
  }
411
520
  // Pattern 2: Analyze critique patterns for successful strategies
412
- const critiques = episodes
413
- .map(ep => ep.critique)
414
- .filter(Boolean);
521
+ const critiques = episodes.map((ep) => ep.critique).filter(Boolean);
415
522
  if (critiques.length > 0) {
416
523
  const critiqueKeywords = this.extractKeywordFrequency(critiques);
417
524
  const topCritiquePatterns = this.getTopKeywords(critiqueKeywords, 3);
@@ -421,7 +528,7 @@ export class SkillLibrary {
421
528
  }
422
529
  // Pattern 3: Analyze reward distribution
423
530
  const avgReward = episodes.reduce((sum, ep) => sum + ep.reward, 0) / episodes.length;
424
- const highRewardCount = episodes.filter(ep => ep.reward > avgReward).length;
531
+ const highRewardCount = episodes.filter((ep) => ep.reward > avgReward).length;
425
532
  const highRewardRatio = highRewardCount / episodes.length;
426
533
  if (highRewardRatio > 0.6) {
427
534
  successIndicators.push(`High consistency (${(highRewardRatio * 100).toFixed(0)}% above average)`);
@@ -445,10 +552,46 @@ export class SkillLibrary {
445
552
  const frequency = new Map();
446
553
  // Common stop words to filter out
447
554
  const stopWords = new Set([
448
- 'the', 'a', 'an', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for',
449
- 'of', 'with', 'by', 'from', 'as', 'is', 'was', 'are', 'were', 'been',
450
- 'be', 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'should',
451
- 'could', 'may', 'might', 'must', 'can', 'this', 'that', 'these', 'those'
555
+ 'the',
556
+ 'a',
557
+ 'an',
558
+ 'and',
559
+ 'or',
560
+ 'but',
561
+ 'in',
562
+ 'on',
563
+ 'at',
564
+ 'to',
565
+ 'for',
566
+ 'of',
567
+ 'with',
568
+ 'by',
569
+ 'from',
570
+ 'as',
571
+ 'is',
572
+ 'was',
573
+ 'are',
574
+ 'were',
575
+ 'been',
576
+ 'be',
577
+ 'have',
578
+ 'has',
579
+ 'had',
580
+ 'do',
581
+ 'does',
582
+ 'did',
583
+ 'will',
584
+ 'would',
585
+ 'should',
586
+ 'could',
587
+ 'may',
588
+ 'might',
589
+ 'must',
590
+ 'can',
591
+ 'this',
592
+ 'that',
593
+ 'these',
594
+ 'those',
452
595
  ]);
453
596
  for (const text of texts) {
454
597
  // Extract words (alphanumeric sequences)
@@ -480,9 +623,7 @@ export class SkillLibrary {
480
623
  for (const episode of episodes) {
481
624
  if (episode.metadata) {
482
625
  try {
483
- const metadata = typeof episode.metadata === 'string'
484
- ? JSON.parse(episode.metadata)
485
- : episode.metadata;
626
+ const metadata = typeof episode.metadata === 'string' ? JSON.parse(episode.metadata) : episode.metadata;
486
627
  for (const [key, value] of Object.entries(metadata)) {
487
628
  if (!metadataFields.has(key)) {
488
629
  metadataFields.set(key, new Set());
@@ -513,10 +654,10 @@ export class SkillLibrary {
513
654
  return null;
514
655
  // Sort by episode ID (temporal order)
515
656
  const sorted = [...episodes].sort((a, b) => a.id - b.id);
516
- const firstHalfReward = sorted.slice(0, Math.floor(sorted.length / 2))
517
- .reduce((sum, ep) => sum + ep.reward, 0) / Math.floor(sorted.length / 2);
518
- const secondHalfReward = sorted.slice(Math.floor(sorted.length / 2))
519
- .reduce((sum, ep) => sum + ep.reward, 0) / (sorted.length - Math.floor(sorted.length / 2));
657
+ const firstHalfReward = sorted.slice(0, Math.floor(sorted.length / 2)).reduce((sum, ep) => sum + ep.reward, 0) /
658
+ Math.floor(sorted.length / 2);
659
+ const secondHalfReward = sorted.slice(Math.floor(sorted.length / 2)).reduce((sum, ep) => sum + ep.reward, 0) /
660
+ (sorted.length - Math.floor(sorted.length / 2));
520
661
  const improvement = ((secondHalfReward - firstHalfReward) / firstHalfReward) * 100;
521
662
  if (improvement > 10) {
522
663
  return `Strong learning curve (+${improvement.toFixed(0)}% improvement)`;
@@ -541,6 +682,7 @@ export class SkillLibrary {
541
682
  }
542
683
  /**
543
684
  * Prune underperforming skills
685
+ * Invalidates cache on completion
544
686
  */
545
687
  pruneSkills(config) {
546
688
  const { minUses = 3, minSuccessRate = 0.4, maxAgeDays = 60 } = config;
@@ -551,8 +693,41 @@ export class SkillLibrary {
551
693
  AND created_at < strftime('%s', 'now') - ?
552
694
  `);
553
695
  const result = stmt.run(minUses, minSuccessRate, maxAgeDays * 86400);
696
+ // Invalidate cache after pruning
697
+ if (result.changes > 0) {
698
+ this.queryCache.invalidateCategory('skills');
699
+ }
554
700
  return result.changes;
555
701
  }
702
+ /**
703
+ * Get query cache statistics
704
+ */
705
+ getCacheStats() {
706
+ return this.queryCache.getStatistics();
707
+ }
708
+ /**
709
+ * Clear query cache
710
+ */
711
+ clearCache() {
712
+ this.queryCache.clear();
713
+ }
714
+ /**
715
+ * Prune expired cache entries
716
+ */
717
+ pruneCache() {
718
+ return this.queryCache.pruneExpired();
719
+ }
720
+ /**
721
+ * Warm cache with common skill queries
722
+ */
723
+ async warmCache(commonTasks) {
724
+ await this.queryCache.warm(async (cache) => {
725
+ // Pre-load common skill queries
726
+ for (const task of commonTasks) {
727
+ await this.retrieveSkills({ task, k: 5 });
728
+ }
729
+ });
730
+ }
556
731
  // ========================================================================
557
732
  // Private Helper Methods
558
733
  // ========================================================================
@@ -568,14 +743,14 @@ export class SkillLibrary {
568
743
  id: row.id,
569
744
  name: row.name,
570
745
  description: row.description,
571
- signature: JSON.parse(row.signature),
746
+ signature: safeJsonParse(row.signature, undefined),
572
747
  code: row.code,
573
748
  successRate: row.success_rate,
574
749
  uses: row.uses,
575
750
  avgReward: row.avg_reward,
576
751
  avgLatencyMs: row.avg_latency_ms,
577
752
  createdFromEpisode: row.created_from_episode,
578
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined
753
+ metadata: safeJsonParse(row.metadata, undefined),
579
754
  };
580
755
  }
581
756
  buildSkillText(skill) {