agentdb 1.0.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 (361) hide show
  1. package/LICENSE +38 -0
  2. package/LICENSE-APACHE +190 -0
  3. package/LICENSE-MIT +21 -0
  4. package/README.md +953 -0
  5. package/bin/agentdb.js +485 -0
  6. package/bin/plugin-cli-wrapper.mjs +21 -0
  7. package/dist/cache/query-cache.d.ts +105 -0
  8. package/dist/cache/query-cache.d.ts.map +1 -0
  9. package/dist/cache/query-cache.js +224 -0
  10. package/dist/cache/query-cache.js.map +1 -0
  11. package/dist/cache/query-cache.mjs +219 -0
  12. package/dist/cli/cache/query-cache.d.ts +104 -0
  13. package/dist/cli/cache/query-cache.js +244 -0
  14. package/dist/cli/cli/db-commands.d.ts +48 -0
  15. package/dist/cli/cli/db-commands.js +613 -0
  16. package/dist/cli/commands.d.ts +7 -0
  17. package/dist/cli/commands.d.ts.map +1 -0
  18. package/dist/cli/commands.js +113 -0
  19. package/dist/cli/commands.js.map +1 -0
  20. package/dist/cli/commands.mjs +104 -0
  21. package/dist/cli/core/backend-interface.d.ts +70 -0
  22. package/dist/cli/core/backend-interface.js +15 -0
  23. package/dist/cli/core/native-backend.d.ts +140 -0
  24. package/dist/cli/core/native-backend.js +432 -0
  25. package/dist/cli/core/vector-db.d.ts +126 -0
  26. package/dist/cli/core/vector-db.js +338 -0
  27. package/dist/cli/core/wasm-backend.d.ts +95 -0
  28. package/dist/cli/core/wasm-backend.js +418 -0
  29. package/dist/cli/db-commands.d.ts +49 -0
  30. package/dist/cli/db-commands.d.ts.map +1 -0
  31. package/dist/cli/db-commands.js +533 -0
  32. package/dist/cli/db-commands.js.map +1 -0
  33. package/dist/cli/db-commands.mjs +522 -0
  34. package/dist/cli/generator.d.ts +11 -0
  35. package/dist/cli/generator.d.ts.map +1 -0
  36. package/dist/cli/generator.js +567 -0
  37. package/dist/cli/generator.js.map +1 -0
  38. package/dist/cli/generator.mjs +527 -0
  39. package/dist/cli/help.d.ts +18 -0
  40. package/dist/cli/help.d.ts.map +1 -0
  41. package/dist/cli/help.js +676 -0
  42. package/dist/cli/help.js.map +1 -0
  43. package/dist/cli/help.mjs +667 -0
  44. package/dist/cli/index/hnsw.d.ts +164 -0
  45. package/dist/cli/index/hnsw.js +558 -0
  46. package/dist/cli/plugin-cli.d.ts +7 -0
  47. package/dist/cli/plugin-cli.d.ts.map +1 -0
  48. package/dist/cli/plugin-cli.js +295 -0
  49. package/dist/cli/plugin-cli.js.map +1 -0
  50. package/dist/cli/plugin-cli.mjs +289 -0
  51. package/dist/cli/quantization/product-quantization.d.ts +108 -0
  52. package/dist/cli/quantization/product-quantization.js +350 -0
  53. package/dist/cli/query/query-builder.d.ts +322 -0
  54. package/dist/cli/query/query-builder.js +600 -0
  55. package/dist/cli/templates.d.ts +14 -0
  56. package/dist/cli/templates.d.ts.map +1 -0
  57. package/dist/cli/templates.js +182 -0
  58. package/dist/cli/templates.js.map +1 -0
  59. package/dist/cli/templates.mjs +176 -0
  60. package/dist/cli/types/index.d.ts +116 -0
  61. package/dist/cli/types/index.js +5 -0
  62. package/dist/cli/types.d.ts +91 -0
  63. package/dist/cli/types.d.ts.map +1 -0
  64. package/dist/cli/types.js +6 -0
  65. package/dist/cli/types.js.map +1 -0
  66. package/dist/cli/types.mjs +4 -0
  67. package/dist/cli/wizard/index.d.ts +6 -0
  68. package/dist/cli/wizard/index.d.ts.map +1 -0
  69. package/dist/cli/wizard/index.js +138 -0
  70. package/dist/cli/wizard/index.js.map +1 -0
  71. package/dist/cli/wizard/index.mjs +131 -0
  72. package/dist/cli/wizard/prompts.d.ts +11 -0
  73. package/dist/cli/wizard/prompts.d.ts.map +1 -0
  74. package/dist/cli/wizard/prompts.js +482 -0
  75. package/dist/cli/wizard/prompts.js.map +1 -0
  76. package/dist/cli/wizard/prompts.mjs +470 -0
  77. package/dist/cli/wizard/validator.d.ts +13 -0
  78. package/dist/cli/wizard/validator.d.ts.map +1 -0
  79. package/dist/cli/wizard/validator.js +234 -0
  80. package/dist/cli/wizard/validator.js.map +1 -0
  81. package/dist/cli/wizard/validator.mjs +224 -0
  82. package/dist/core/backend-interface.d.ts +71 -0
  83. package/dist/core/backend-interface.d.ts.map +1 -0
  84. package/dist/core/backend-interface.js +16 -0
  85. package/dist/core/backend-interface.js.map +1 -0
  86. package/dist/core/backend-interface.mjs +12 -0
  87. package/dist/core/native-backend.d.ts +141 -0
  88. package/dist/core/native-backend.d.ts.map +1 -0
  89. package/dist/core/native-backend.js +457 -0
  90. package/dist/core/native-backend.js.map +1 -0
  91. package/dist/core/native-backend.mjs +449 -0
  92. package/dist/core/vector-db.d.ts +127 -0
  93. package/dist/core/vector-db.d.ts.map +1 -0
  94. package/dist/core/vector-db.js +266 -0
  95. package/dist/core/vector-db.js.map +1 -0
  96. package/dist/core/vector-db.mjs +261 -0
  97. package/dist/core/wasm-backend.d.ts +96 -0
  98. package/dist/core/wasm-backend.d.ts.map +1 -0
  99. package/dist/core/wasm-backend.js +393 -0
  100. package/dist/core/wasm-backend.js.map +1 -0
  101. package/dist/core/wasm-backend.mjs +385 -0
  102. package/dist/index/hnsw-optimized.d.ts +75 -0
  103. package/dist/index/hnsw-optimized.d.ts.map +1 -0
  104. package/dist/index/hnsw-optimized.js +412 -0
  105. package/dist/index/hnsw-optimized.js.map +1 -0
  106. package/dist/index/hnsw-optimized.mjs +407 -0
  107. package/dist/index/hnsw.d.ts +165 -0
  108. package/dist/index/hnsw.d.ts.map +1 -0
  109. package/dist/index/hnsw.js +521 -0
  110. package/dist/index/hnsw.js.map +1 -0
  111. package/dist/index/hnsw.mjs +516 -0
  112. package/dist/index.d.ts +57 -0
  113. package/dist/index.d.ts.map +1 -0
  114. package/dist/index.js +82 -0
  115. package/dist/index.js.map +1 -0
  116. package/dist/index.mjs +63 -0
  117. package/dist/mcp-server.d.ts +27 -0
  118. package/dist/mcp-server.d.ts.map +1 -0
  119. package/dist/mcp-server.js +789 -0
  120. package/dist/mcp-server.js.map +1 -0
  121. package/dist/mcp-server.mjs +784 -0
  122. package/dist/plugins/base-plugin.d.ts +114 -0
  123. package/dist/plugins/base-plugin.d.ts.map +1 -0
  124. package/dist/plugins/base-plugin.js +313 -0
  125. package/dist/plugins/base-plugin.js.map +1 -0
  126. package/dist/plugins/base-plugin.mjs +275 -0
  127. package/dist/plugins/implementations/active-learning.d.ts +135 -0
  128. package/dist/plugins/implementations/active-learning.d.ts.map +1 -0
  129. package/dist/plugins/implementations/active-learning.js +372 -0
  130. package/dist/plugins/implementations/active-learning.js.map +1 -0
  131. package/dist/plugins/implementations/active-learning.mjs +367 -0
  132. package/dist/plugins/implementations/actor-critic.d.ts +64 -0
  133. package/dist/plugins/implementations/actor-critic.d.ts.map +1 -0
  134. package/dist/plugins/implementations/actor-critic.js +363 -0
  135. package/dist/plugins/implementations/actor-critic.js.map +1 -0
  136. package/dist/plugins/implementations/actor-critic.mjs +358 -0
  137. package/dist/plugins/implementations/adversarial-training.d.ts +133 -0
  138. package/dist/plugins/implementations/adversarial-training.d.ts.map +1 -0
  139. package/dist/plugins/implementations/adversarial-training.js +409 -0
  140. package/dist/plugins/implementations/adversarial-training.js.map +1 -0
  141. package/dist/plugins/implementations/adversarial-training.mjs +404 -0
  142. package/dist/plugins/implementations/curriculum-learning.d.ts +132 -0
  143. package/dist/plugins/implementations/curriculum-learning.d.ts.map +1 -0
  144. package/dist/plugins/implementations/curriculum-learning.js +354 -0
  145. package/dist/plugins/implementations/curriculum-learning.js.map +1 -0
  146. package/dist/plugins/implementations/curriculum-learning.mjs +349 -0
  147. package/dist/plugins/implementations/decision-transformer.d.ts +77 -0
  148. package/dist/plugins/implementations/decision-transformer.d.ts.map +1 -0
  149. package/dist/plugins/implementations/decision-transformer.js +422 -0
  150. package/dist/plugins/implementations/decision-transformer.js.map +1 -0
  151. package/dist/plugins/implementations/decision-transformer.mjs +417 -0
  152. package/dist/plugins/implementations/federated-learning.d.ts +126 -0
  153. package/dist/plugins/implementations/federated-learning.d.ts.map +1 -0
  154. package/dist/plugins/implementations/federated-learning.js +436 -0
  155. package/dist/plugins/implementations/federated-learning.js.map +1 -0
  156. package/dist/plugins/implementations/federated-learning.mjs +431 -0
  157. package/dist/plugins/implementations/index.d.ts +30 -0
  158. package/dist/plugins/implementations/index.d.ts.map +1 -0
  159. package/dist/plugins/implementations/index.js +45 -0
  160. package/dist/plugins/implementations/index.js.map +1 -0
  161. package/dist/plugins/implementations/index.mjs +31 -0
  162. package/dist/plugins/implementations/multi-task-learning.d.ts +115 -0
  163. package/dist/plugins/implementations/multi-task-learning.d.ts.map +1 -0
  164. package/dist/plugins/implementations/multi-task-learning.js +369 -0
  165. package/dist/plugins/implementations/multi-task-learning.js.map +1 -0
  166. package/dist/plugins/implementations/multi-task-learning.mjs +364 -0
  167. package/dist/plugins/implementations/neural-architecture-search.d.ts +148 -0
  168. package/dist/plugins/implementations/neural-architecture-search.d.ts.map +1 -0
  169. package/dist/plugins/implementations/neural-architecture-search.js +379 -0
  170. package/dist/plugins/implementations/neural-architecture-search.js.map +1 -0
  171. package/dist/plugins/implementations/neural-architecture-search.mjs +374 -0
  172. package/dist/plugins/implementations/q-learning.d.ts +98 -0
  173. package/dist/plugins/implementations/q-learning.d.ts.map +1 -0
  174. package/dist/plugins/implementations/q-learning.js +435 -0
  175. package/dist/plugins/implementations/q-learning.js.map +1 -0
  176. package/dist/plugins/implementations/q-learning.mjs +430 -0
  177. package/dist/plugins/implementations/sarsa.d.ts +103 -0
  178. package/dist/plugins/implementations/sarsa.d.ts.map +1 -0
  179. package/dist/plugins/implementations/sarsa.js +347 -0
  180. package/dist/plugins/implementations/sarsa.js.map +1 -0
  181. package/dist/plugins/implementations/sarsa.mjs +342 -0
  182. package/dist/plugins/index.d.ts +107 -0
  183. package/dist/plugins/index.d.ts.map +1 -0
  184. package/dist/plugins/index.js +179 -0
  185. package/dist/plugins/index.js.map +1 -0
  186. package/dist/plugins/index.mjs +168 -0
  187. package/dist/plugins/interface.d.ts +439 -0
  188. package/dist/plugins/interface.d.ts.map +1 -0
  189. package/dist/plugins/interface.js +12 -0
  190. package/dist/plugins/interface.js.map +1 -0
  191. package/dist/plugins/interface.mjs +10 -0
  192. package/dist/plugins/learning-plugin.interface.d.ts +257 -0
  193. package/dist/plugins/learning-plugin.interface.d.ts.map +1 -0
  194. package/dist/plugins/learning-plugin.interface.js +7 -0
  195. package/dist/plugins/learning-plugin.interface.js.map +1 -0
  196. package/dist/plugins/learning-plugin.interface.mjs +5 -0
  197. package/dist/plugins/plugin-exports.d.ts +71 -0
  198. package/dist/plugins/plugin-exports.d.ts.map +1 -0
  199. package/dist/plugins/plugin-exports.js +78 -0
  200. package/dist/plugins/plugin-exports.js.map +1 -0
  201. package/dist/plugins/plugin-exports.mjs +69 -0
  202. package/dist/plugins/registry.d.ts +206 -0
  203. package/dist/plugins/registry.d.ts.map +1 -0
  204. package/dist/plugins/registry.js +365 -0
  205. package/dist/plugins/registry.js.map +1 -0
  206. package/dist/plugins/registry.mjs +356 -0
  207. package/dist/plugins/validator.d.ts +63 -0
  208. package/dist/plugins/validator.d.ts.map +1 -0
  209. package/dist/plugins/validator.js +464 -0
  210. package/dist/plugins/validator.js.map +1 -0
  211. package/dist/plugins/validator.mjs +458 -0
  212. package/dist/quantization/binary-quantization.d.ts +104 -0
  213. package/dist/quantization/binary-quantization.d.ts.map +1 -0
  214. package/dist/quantization/binary-quantization.js +246 -0
  215. package/dist/quantization/binary-quantization.js.map +1 -0
  216. package/dist/quantization/binary-quantization.mjs +240 -0
  217. package/dist/quantization/optimized-pq.d.ts +138 -0
  218. package/dist/quantization/optimized-pq.d.ts.map +1 -0
  219. package/dist/quantization/optimized-pq.js +320 -0
  220. package/dist/quantization/optimized-pq.js.map +1 -0
  221. package/dist/quantization/optimized-pq.mjs +313 -0
  222. package/dist/quantization/product-quantization.d.ts +109 -0
  223. package/dist/quantization/product-quantization.d.ts.map +1 -0
  224. package/dist/quantization/product-quantization.js +287 -0
  225. package/dist/quantization/product-quantization.js.map +1 -0
  226. package/dist/quantization/product-quantization.mjs +282 -0
  227. package/dist/quantization/scalar-quantization.d.ts +100 -0
  228. package/dist/quantization/scalar-quantization.d.ts.map +1 -0
  229. package/dist/quantization/scalar-quantization.js +324 -0
  230. package/dist/quantization/scalar-quantization.js.map +1 -0
  231. package/dist/quantization/scalar-quantization.mjs +319 -0
  232. package/dist/query/index.d.ts +6 -0
  233. package/dist/query/index.d.ts.map +1 -0
  234. package/dist/query/index.js +9 -0
  235. package/dist/query/index.js.map +1 -0
  236. package/dist/query/index.mjs +4 -0
  237. package/dist/query/query-builder.d.ts +323 -0
  238. package/dist/query/query-builder.d.ts.map +1 -0
  239. package/dist/query/query-builder.js +524 -0
  240. package/dist/query/query-builder.js.map +1 -0
  241. package/dist/query/query-builder.mjs +519 -0
  242. package/dist/reasoning/context-synthesizer.d.ts +57 -0
  243. package/dist/reasoning/context-synthesizer.d.ts.map +1 -0
  244. package/dist/reasoning/context-synthesizer.js +224 -0
  245. package/dist/reasoning/context-synthesizer.js.map +1 -0
  246. package/dist/reasoning/context-synthesizer.mjs +219 -0
  247. package/dist/reasoning/experience-curator.d.ts +66 -0
  248. package/dist/reasoning/experience-curator.d.ts.map +1 -0
  249. package/dist/reasoning/experience-curator.js +288 -0
  250. package/dist/reasoning/experience-curator.js.map +1 -0
  251. package/dist/reasoning/experience-curator.mjs +283 -0
  252. package/dist/reasoning/memory-optimizer.d.ts +69 -0
  253. package/dist/reasoning/memory-optimizer.d.ts.map +1 -0
  254. package/dist/reasoning/memory-optimizer.js +331 -0
  255. package/dist/reasoning/memory-optimizer.js.map +1 -0
  256. package/dist/reasoning/memory-optimizer.mjs +326 -0
  257. package/dist/reasoning/pattern-matcher.d.ts +59 -0
  258. package/dist/reasoning/pattern-matcher.d.ts.map +1 -0
  259. package/dist/reasoning/pattern-matcher.js +229 -0
  260. package/dist/reasoning/pattern-matcher.js.map +1 -0
  261. package/dist/reasoning/pattern-matcher.mjs +224 -0
  262. package/dist/reasoningbank/adapter/agentdb-adapter.d.ts +118 -0
  263. package/dist/reasoningbank/adapter/agentdb-adapter.d.ts.map +1 -0
  264. package/dist/reasoningbank/adapter/agentdb-adapter.js +477 -0
  265. package/dist/reasoningbank/adapter/agentdb-adapter.js.map +1 -0
  266. package/dist/reasoningbank/adapter/types.d.ts +113 -0
  267. package/dist/reasoningbank/adapter/types.d.ts.map +1 -0
  268. package/dist/reasoningbank/adapter/types.js +9 -0
  269. package/dist/reasoningbank/adapter/types.js.map +1 -0
  270. package/dist/reasoningbank/cli/commands.d.ts +16 -0
  271. package/dist/reasoningbank/cli/commands.d.ts.map +1 -0
  272. package/dist/reasoningbank/cli/commands.js +272 -0
  273. package/dist/reasoningbank/cli/commands.js.map +1 -0
  274. package/dist/reasoningbank/mcp/agentdb-tools.d.ts +319 -0
  275. package/dist/reasoningbank/mcp/agentdb-tools.d.ts.map +1 -0
  276. package/dist/reasoningbank/mcp/agentdb-tools.js +301 -0
  277. package/dist/reasoningbank/mcp/agentdb-tools.js.map +1 -0
  278. package/dist/reasoningbank/migration/migrate.d.ts +25 -0
  279. package/dist/reasoningbank/migration/migrate.d.ts.map +1 -0
  280. package/dist/reasoningbank/migration/migrate.js +178 -0
  281. package/dist/reasoningbank/migration/migrate.js.map +1 -0
  282. package/dist/reasoningbank/reasoning/context-synthesizer.d.ts +37 -0
  283. package/dist/reasoningbank/reasoning/context-synthesizer.d.ts.map +1 -0
  284. package/dist/reasoningbank/reasoning/context-synthesizer.js +114 -0
  285. package/dist/reasoningbank/reasoning/context-synthesizer.js.map +1 -0
  286. package/dist/reasoningbank/reasoning/experience-curator.d.ts +39 -0
  287. package/dist/reasoningbank/reasoning/experience-curator.d.ts.map +1 -0
  288. package/dist/reasoningbank/reasoning/experience-curator.js +98 -0
  289. package/dist/reasoningbank/reasoning/experience-curator.js.map +1 -0
  290. package/dist/reasoningbank/reasoning/memory-optimizer.d.ts +44 -0
  291. package/dist/reasoningbank/reasoning/memory-optimizer.d.ts.map +1 -0
  292. package/dist/reasoningbank/reasoning/memory-optimizer.js +184 -0
  293. package/dist/reasoningbank/reasoning/memory-optimizer.js.map +1 -0
  294. package/dist/reasoningbank/reasoning/pattern-matcher.d.ts +40 -0
  295. package/dist/reasoningbank/reasoning/pattern-matcher.d.ts.map +1 -0
  296. package/dist/reasoningbank/reasoning/pattern-matcher.js +87 -0
  297. package/dist/reasoningbank/reasoning/pattern-matcher.js.map +1 -0
  298. package/dist/reasoningbank/sync/quic-sync.d.ts +77 -0
  299. package/dist/reasoningbank/sync/quic-sync.d.ts.map +1 -0
  300. package/dist/reasoningbank/sync/quic-sync.js +165 -0
  301. package/dist/reasoningbank/sync/quic-sync.js.map +1 -0
  302. package/dist/sync/conflict.d.ts +78 -0
  303. package/dist/sync/conflict.d.ts.map +1 -0
  304. package/dist/sync/conflict.js +202 -0
  305. package/dist/sync/conflict.js.map +1 -0
  306. package/dist/sync/conflict.mjs +196 -0
  307. package/dist/sync/coordinator.d.ts +111 -0
  308. package/dist/sync/coordinator.d.ts.map +1 -0
  309. package/dist/sync/coordinator.js +256 -0
  310. package/dist/sync/coordinator.js.map +1 -0
  311. package/dist/sync/coordinator.mjs +250 -0
  312. package/dist/sync/delta.d.ts +81 -0
  313. package/dist/sync/delta.d.ts.map +1 -0
  314. package/dist/sync/delta.js +245 -0
  315. package/dist/sync/delta.js.map +1 -0
  316. package/dist/sync/delta.mjs +238 -0
  317. package/dist/sync/index.d.ts +11 -0
  318. package/dist/sync/index.d.ts.map +1 -0
  319. package/dist/sync/index.js +22 -0
  320. package/dist/sync/index.js.map +1 -0
  321. package/dist/sync/index.mjs +9 -0
  322. package/dist/sync/quic-sync.d.ts +81 -0
  323. package/dist/sync/quic-sync.d.ts.map +1 -0
  324. package/dist/sync/quic-sync.js +329 -0
  325. package/dist/sync/quic-sync.js.map +1 -0
  326. package/dist/sync/quic-sync.mjs +323 -0
  327. package/dist/sync/types.d.ts +168 -0
  328. package/dist/sync/types.d.ts.map +1 -0
  329. package/dist/sync/types.js +8 -0
  330. package/dist/sync/types.js.map +1 -0
  331. package/dist/sync/types.mjs +6 -0
  332. package/dist/types/index.d.ts +117 -0
  333. package/dist/types/index.d.ts.map +1 -0
  334. package/dist/types/index.js +6 -0
  335. package/dist/types/index.js.map +1 -0
  336. package/dist/types/index.mjs +4 -0
  337. package/dist/wasm-loader.d.ts +32 -0
  338. package/dist/wasm-loader.d.ts.map +1 -0
  339. package/dist/wasm-loader.js +75 -0
  340. package/dist/wasm-loader.js.map +1 -0
  341. package/dist/wasm-loader.mjs +64 -0
  342. package/examples/adaptive-learning.ts +284 -0
  343. package/examples/browser/README.md +732 -0
  344. package/examples/browser/adaptive-recommendations/index.html +427 -0
  345. package/examples/browser/collaborative-filtering/index.html +310 -0
  346. package/examples/browser/continual-learning/index.html +736 -0
  347. package/examples/browser/experience-replay/index.html +616 -0
  348. package/examples/browser/index.html +369 -0
  349. package/examples/browser/meta-learning/index.html +789 -0
  350. package/examples/browser/neuro-symbolic/index.html +692 -0
  351. package/examples/browser/pattern-learning/index.html +620 -0
  352. package/examples/browser/quantum-inspired/index.html +728 -0
  353. package/examples/browser/rag/index.html +624 -0
  354. package/examples/browser/swarm-intelligence/index.html +811 -0
  355. package/examples/browser-basic.html +170 -0
  356. package/examples/hnsw-example.ts +148 -0
  357. package/examples/node-basic.js +70 -0
  358. package/examples/quic-sync-example.ts +310 -0
  359. package/examples/quick-start.js +68 -0
  360. package/examples/wasm-example.ts +222 -0
  361. package/package.json +118 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * PatternMatcher - Recognize similar reasoning patterns from past executions
3
+ *
4
+ * Learns from task execution history to identify patterns that work.
5
+ * Uses vector similarity to match current tasks to successful patterns.
6
+ */
7
+ import { SQLiteVectorDB } from '../core/vector-db';
8
+ import { Pattern } from '../types';
9
+ export declare class PatternMatcher {
10
+ private db;
11
+ private patternTable;
12
+ constructor(db: SQLiteVectorDB);
13
+ private initializePatternStorage;
14
+ /**
15
+ * Store a new pattern from successful task execution
16
+ */
17
+ storePattern(pattern: Omit<Pattern, 'id' | 'timestamp'>): Promise<string>;
18
+ /**
19
+ * Find similar patterns based on task embedding
20
+ *
21
+ * @param taskEmbedding - Vector embedding of current task
22
+ * @param k - Number of similar patterns to return
23
+ * @param threshold - Minimum similarity score (0-1)
24
+ * @param filters - Optional filters (domain, taskType, etc.)
25
+ * @returns Array of similar patterns sorted by similarity
26
+ */
27
+ findSimilar(taskEmbedding: number[], k?: number, threshold?: number, filters?: {
28
+ domain?: string;
29
+ taskType?: string;
30
+ minSuccessRate?: number;
31
+ }): Promise<Array<Pattern & {
32
+ similarity: number;
33
+ }>>;
34
+ /**
35
+ * Update pattern with new execution data (incremental learning)
36
+ */
37
+ updatePattern(id: string, update: {
38
+ success: boolean;
39
+ duration: number;
40
+ }): Promise<void>;
41
+ /**
42
+ * Get pattern by ID
43
+ */
44
+ getPattern(id: string): Promise<Pattern | null>;
45
+ /**
46
+ * Get statistics about learned patterns
47
+ */
48
+ getStats(): {
49
+ totalPatterns: number;
50
+ avgSuccessRate: number;
51
+ domainDistribution: Map<string, number>;
52
+ topPatterns: Array<{
53
+ taskType: string;
54
+ successRate: number;
55
+ }>;
56
+ };
57
+ private generatePatternId;
58
+ }
59
+ //# sourceMappingURL=pattern-matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-matcher.d.ts","sourceRoot":"","sources":["../../src/reasoning/pattern-matcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAmB,MAAM,UAAU,CAAC;AAEpD,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,YAAY,CAAwB;gBAEhC,EAAE,EAAE,cAAc;IAK9B,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA2C/E;;;;;;;;OAQG;IACG,WAAW,CACf,aAAa,EAAE,MAAM,EAAE,EACvB,CAAC,GAAE,MAAU,EACb,SAAS,GAAE,MAAY,EACvB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAoEnD;;OAEG;IACG,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,IAAI,CAAC;IA4BhB;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA6BrD;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,WAAW,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/D;IA2CD,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ /**
3
+ * PatternMatcher - Recognize similar reasoning patterns from past executions
4
+ *
5
+ * Learns from task execution history to identify patterns that work.
6
+ * Uses vector similarity to match current tasks to successful patterns.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PatternMatcher = void 0;
10
+ class PatternMatcher {
11
+ constructor(db) {
12
+ this.patternTable = 'reasoning_patterns';
13
+ this.db = db;
14
+ this.initializePatternStorage();
15
+ }
16
+ initializePatternStorage() {
17
+ const rawDb = this.db.getDatabase();
18
+ rawDb.exec(`
19
+ CREATE TABLE IF NOT EXISTS ${this.patternTable} (
20
+ id TEXT PRIMARY KEY,
21
+ task_type TEXT NOT NULL,
22
+ approach TEXT NOT NULL,
23
+ success_rate REAL NOT NULL,
24
+ avg_duration REAL NOT NULL,
25
+ iterations INTEGER DEFAULT 1,
26
+ domain TEXT NOT NULL,
27
+ complexity TEXT NOT NULL,
28
+ learning_source TEXT NOT NULL,
29
+ tags TEXT,
30
+ metadata TEXT,
31
+ timestamp INTEGER NOT NULL
32
+ );
33
+
34
+ CREATE INDEX IF NOT EXISTS idx_patterns_task_type ON ${this.patternTable}(task_type);
35
+ CREATE INDEX IF NOT EXISTS idx_patterns_domain ON ${this.patternTable}(domain);
36
+ CREATE INDEX IF NOT EXISTS idx_patterns_success ON ${this.patternTable}(success_rate);
37
+ `);
38
+ }
39
+ /**
40
+ * Store a new pattern from successful task execution
41
+ */
42
+ async storePattern(pattern) {
43
+ const id = this.generatePatternId();
44
+ const timestamp = Date.now();
45
+ // Store vector embedding for similarity matching
46
+ this.db.insert({
47
+ id: `pattern_${id}`,
48
+ embedding: pattern.embedding,
49
+ metadata: {
50
+ type: 'pattern',
51
+ patternId: id,
52
+ taskType: pattern.taskType,
53
+ domain: pattern.metadata.domain
54
+ },
55
+ timestamp
56
+ });
57
+ // Store pattern metadata
58
+ const rawDb = this.db.getDatabase();
59
+ const stmt = rawDb.prepare(`
60
+ INSERT INTO ${this.patternTable}
61
+ (id, task_type, approach, success_rate, avg_duration, domain, complexity,
62
+ learning_source, tags, metadata, timestamp)
63
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
64
+ `);
65
+ stmt.run(id, pattern.taskType, pattern.approach, pattern.successRate, pattern.avgDuration, pattern.metadata.domain, pattern.metadata.complexity, pattern.metadata.learningSource, JSON.stringify(pattern.metadata.tags || []), JSON.stringify(pattern.metadata), timestamp);
66
+ return id;
67
+ }
68
+ /**
69
+ * Find similar patterns based on task embedding
70
+ *
71
+ * @param taskEmbedding - Vector embedding of current task
72
+ * @param k - Number of similar patterns to return
73
+ * @param threshold - Minimum similarity score (0-1)
74
+ * @param filters - Optional filters (domain, taskType, etc.)
75
+ * @returns Array of similar patterns sorted by similarity
76
+ */
77
+ async findSimilar(taskEmbedding, k = 5, threshold = 0.7, filters) {
78
+ const startTime = Date.now();
79
+ // Search for similar pattern embeddings
80
+ const results = this.db.search(taskEmbedding, k * 2, 'cosine', threshold);
81
+ // Filter to pattern vectors only
82
+ const patternResults = results.filter(r => r.metadata?.type === 'pattern');
83
+ // Get full pattern metadata
84
+ const rawDb = this.db.getDatabase();
85
+ const patterns = [];
86
+ for (const result of patternResults) {
87
+ const metadata = result.metadata || {};
88
+ const patternId = metadata.patternId;
89
+ let sql = `SELECT * FROM ${this.patternTable} WHERE id = ?`;
90
+ const params = [patternId];
91
+ if (filters?.minSuccessRate) {
92
+ sql += ' AND success_rate >= ?';
93
+ params.push(filters.minSuccessRate);
94
+ }
95
+ if (filters?.domain) {
96
+ sql += ' AND domain = ?';
97
+ params.push(filters.domain);
98
+ }
99
+ if (filters?.taskType) {
100
+ sql += ' AND task_type = ?';
101
+ params.push(filters.taskType);
102
+ }
103
+ const stmt = rawDb.prepare(sql);
104
+ const row = stmt.get(...params);
105
+ if (row) {
106
+ patterns.push({
107
+ id: row.id,
108
+ embedding: result.embedding,
109
+ taskType: row.task_type,
110
+ approach: row.approach,
111
+ successRate: row.success_rate,
112
+ avgDuration: row.avg_duration,
113
+ metadata: {
114
+ ...JSON.parse(row.metadata),
115
+ iterations: row.iterations,
116
+ domain: row.domain,
117
+ complexity: row.complexity,
118
+ learningSource: row.learning_source,
119
+ tags: JSON.parse(row.tags)
120
+ },
121
+ timestamp: row.timestamp,
122
+ similarity: result.score
123
+ });
124
+ }
125
+ if (patterns.length >= k)
126
+ break;
127
+ }
128
+ const duration = Date.now() - startTime;
129
+ console.log(`[PatternMatcher] Found ${patterns.length} patterns in ${duration}ms`);
130
+ return patterns;
131
+ }
132
+ /**
133
+ * Update pattern with new execution data (incremental learning)
134
+ */
135
+ async updatePattern(id, update) {
136
+ const rawDb = this.db.getDatabase();
137
+ // Get current pattern data
138
+ const stmt = rawDb.prepare(`SELECT * FROM ${this.patternTable} WHERE id = ?`);
139
+ const row = stmt.get(id);
140
+ if (!row) {
141
+ throw new Error(`Pattern ${id} not found`);
142
+ }
143
+ // Calculate new averages (incremental update)
144
+ const iterations = row.iterations + 1;
145
+ const newSuccessRate = ((row.success_rate * row.iterations) + (update.success ? 1 : 0)) / iterations;
146
+ const newAvgDuration = ((row.avg_duration * row.iterations) + update.duration) / iterations;
147
+ // Update pattern
148
+ const updateStmt = rawDb.prepare(`
149
+ UPDATE ${this.patternTable}
150
+ SET success_rate = ?,
151
+ avg_duration = ?,
152
+ iterations = ?
153
+ WHERE id = ?
154
+ `);
155
+ updateStmt.run(newSuccessRate, newAvgDuration, iterations, id);
156
+ }
157
+ /**
158
+ * Get pattern by ID
159
+ */
160
+ async getPattern(id) {
161
+ const rawDb = this.db.getDatabase();
162
+ const stmt = rawDb.prepare(`SELECT * FROM ${this.patternTable} WHERE id = ?`);
163
+ const row = stmt.get(id);
164
+ if (!row)
165
+ return null;
166
+ // Get embedding from vector database
167
+ const vector = this.db.get(`pattern_${id}`);
168
+ return {
169
+ id: row.id,
170
+ embedding: vector?.embedding || [],
171
+ taskType: row.task_type,
172
+ approach: row.approach,
173
+ successRate: row.success_rate,
174
+ avgDuration: row.avg_duration,
175
+ metadata: {
176
+ ...JSON.parse(row.metadata),
177
+ iterations: row.iterations,
178
+ domain: row.domain,
179
+ complexity: row.complexity,
180
+ learningSource: row.learning_source,
181
+ tags: JSON.parse(row.tags)
182
+ },
183
+ timestamp: row.timestamp
184
+ };
185
+ }
186
+ /**
187
+ * Get statistics about learned patterns
188
+ */
189
+ getStats() {
190
+ const rawDb = this.db.getDatabase();
191
+ // Total patterns
192
+ const countStmt = rawDb.prepare(`SELECT COUNT(*) as count FROM ${this.patternTable}`);
193
+ const totalPatterns = countStmt.get().count;
194
+ // Average success rate
195
+ const avgStmt = rawDb.prepare(`SELECT AVG(success_rate) as avg FROM ${this.patternTable}`);
196
+ const avgSuccessRate = avgStmt.get().avg || 0;
197
+ // Domain distribution
198
+ const domainStmt = rawDb.prepare(`
199
+ SELECT domain, COUNT(*) as count
200
+ FROM ${this.patternTable}
201
+ GROUP BY domain
202
+ `);
203
+ const domainRows = domainStmt.all();
204
+ const domainDistribution = new Map(domainRows.map(row => [row.domain, row.count]));
205
+ // Top patterns by success rate
206
+ const topStmt = rawDb.prepare(`
207
+ SELECT task_type, success_rate
208
+ FROM ${this.patternTable}
209
+ WHERE iterations >= 3
210
+ ORDER BY success_rate DESC
211
+ LIMIT 10
212
+ `);
213
+ const topPatterns = topStmt.all().map(row => ({
214
+ taskType: row.task_type,
215
+ successRate: row.success_rate
216
+ }));
217
+ return {
218
+ totalPatterns,
219
+ avgSuccessRate,
220
+ domainDistribution,
221
+ topPatterns
222
+ };
223
+ }
224
+ generatePatternId() {
225
+ return `pat_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
226
+ }
227
+ }
228
+ exports.PatternMatcher = PatternMatcher;
229
+ //# sourceMappingURL=pattern-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-matcher.js","sourceRoot":"","sources":["../../src/reasoning/pattern-matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * PatternMatcher - Recognize similar reasoning patterns from past executions
3
+ *
4
+ * Learns from task execution history to identify patterns that work.
5
+ * Uses vector similarity to match current tasks to successful patterns.
6
+ */
7
+ export class PatternMatcher {
8
+ constructor(db) {
9
+ this.patternTable = 'reasoning_patterns';
10
+ this.db = db;
11
+ this.initializePatternStorage();
12
+ }
13
+ initializePatternStorage() {
14
+ const rawDb = this.db.getDatabase();
15
+ rawDb.exec(`
16
+ CREATE TABLE IF NOT EXISTS ${this.patternTable} (
17
+ id TEXT PRIMARY KEY,
18
+ task_type TEXT NOT NULL,
19
+ approach TEXT NOT NULL,
20
+ success_rate REAL NOT NULL,
21
+ avg_duration REAL NOT NULL,
22
+ iterations INTEGER DEFAULT 1,
23
+ domain TEXT NOT NULL,
24
+ complexity TEXT NOT NULL,
25
+ learning_source TEXT NOT NULL,
26
+ tags TEXT,
27
+ metadata TEXT,
28
+ timestamp INTEGER NOT NULL
29
+ );
30
+
31
+ CREATE INDEX IF NOT EXISTS idx_patterns_task_type ON ${this.patternTable}(task_type);
32
+ CREATE INDEX IF NOT EXISTS idx_patterns_domain ON ${this.patternTable}(domain);
33
+ CREATE INDEX IF NOT EXISTS idx_patterns_success ON ${this.patternTable}(success_rate);
34
+ `);
35
+ }
36
+ /**
37
+ * Store a new pattern from successful task execution
38
+ */
39
+ async storePattern(pattern) {
40
+ const id = this.generatePatternId();
41
+ const timestamp = Date.now();
42
+ // Store vector embedding for similarity matching
43
+ this.db.insert({
44
+ id: `pattern_${id}`,
45
+ embedding: pattern.embedding,
46
+ metadata: {
47
+ type: 'pattern',
48
+ patternId: id,
49
+ taskType: pattern.taskType,
50
+ domain: pattern.metadata.domain
51
+ },
52
+ timestamp
53
+ });
54
+ // Store pattern metadata
55
+ const rawDb = this.db.getDatabase();
56
+ const stmt = rawDb.prepare(`
57
+ INSERT INTO ${this.patternTable}
58
+ (id, task_type, approach, success_rate, avg_duration, domain, complexity,
59
+ learning_source, tags, metadata, timestamp)
60
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
61
+ `);
62
+ stmt.run(id, pattern.taskType, pattern.approach, pattern.successRate, pattern.avgDuration, pattern.metadata.domain, pattern.metadata.complexity, pattern.metadata.learningSource, JSON.stringify(pattern.metadata.tags || []), JSON.stringify(pattern.metadata), timestamp);
63
+ return id;
64
+ }
65
+ /**
66
+ * Find similar patterns based on task embedding
67
+ *
68
+ * @param taskEmbedding - Vector embedding of current task
69
+ * @param k - Number of similar patterns to return
70
+ * @param threshold - Minimum similarity score (0-1)
71
+ * @param filters - Optional filters (domain, taskType, etc.)
72
+ * @returns Array of similar patterns sorted by similarity
73
+ */
74
+ async findSimilar(taskEmbedding, k = 5, threshold = 0.7, filters) {
75
+ const startTime = Date.now();
76
+ // Search for similar pattern embeddings
77
+ const results = this.db.search(taskEmbedding, k * 2, 'cosine', threshold);
78
+ // Filter to pattern vectors only
79
+ const patternResults = results.filter(r => r.metadata?.type === 'pattern');
80
+ // Get full pattern metadata
81
+ const rawDb = this.db.getDatabase();
82
+ const patterns = [];
83
+ for (const result of patternResults) {
84
+ const metadata = result.metadata || {};
85
+ const patternId = metadata.patternId;
86
+ let sql = `SELECT * FROM ${this.patternTable} WHERE id = ?`;
87
+ const params = [patternId];
88
+ if (filters?.minSuccessRate) {
89
+ sql += ' AND success_rate >= ?';
90
+ params.push(filters.minSuccessRate);
91
+ }
92
+ if (filters?.domain) {
93
+ sql += ' AND domain = ?';
94
+ params.push(filters.domain);
95
+ }
96
+ if (filters?.taskType) {
97
+ sql += ' AND task_type = ?';
98
+ params.push(filters.taskType);
99
+ }
100
+ const stmt = rawDb.prepare(sql);
101
+ const row = stmt.get(...params);
102
+ if (row) {
103
+ patterns.push({
104
+ id: row.id,
105
+ embedding: result.embedding,
106
+ taskType: row.task_type,
107
+ approach: row.approach,
108
+ successRate: row.success_rate,
109
+ avgDuration: row.avg_duration,
110
+ metadata: {
111
+ ...JSON.parse(row.metadata),
112
+ iterations: row.iterations,
113
+ domain: row.domain,
114
+ complexity: row.complexity,
115
+ learningSource: row.learning_source,
116
+ tags: JSON.parse(row.tags)
117
+ },
118
+ timestamp: row.timestamp,
119
+ similarity: result.score
120
+ });
121
+ }
122
+ if (patterns.length >= k)
123
+ break;
124
+ }
125
+ const duration = Date.now() - startTime;
126
+ console.log(`[PatternMatcher] Found ${patterns.length} patterns in ${duration}ms`);
127
+ return patterns;
128
+ }
129
+ /**
130
+ * Update pattern with new execution data (incremental learning)
131
+ */
132
+ async updatePattern(id, update) {
133
+ const rawDb = this.db.getDatabase();
134
+ // Get current pattern data
135
+ const stmt = rawDb.prepare(`SELECT * FROM ${this.patternTable} WHERE id = ?`);
136
+ const row = stmt.get(id);
137
+ if (!row) {
138
+ throw new Error(`Pattern ${id} not found`);
139
+ }
140
+ // Calculate new averages (incremental update)
141
+ const iterations = row.iterations + 1;
142
+ const newSuccessRate = ((row.success_rate * row.iterations) + (update.success ? 1 : 0)) / iterations;
143
+ const newAvgDuration = ((row.avg_duration * row.iterations) + update.duration) / iterations;
144
+ // Update pattern
145
+ const updateStmt = rawDb.prepare(`
146
+ UPDATE ${this.patternTable}
147
+ SET success_rate = ?,
148
+ avg_duration = ?,
149
+ iterations = ?
150
+ WHERE id = ?
151
+ `);
152
+ updateStmt.run(newSuccessRate, newAvgDuration, iterations, id);
153
+ }
154
+ /**
155
+ * Get pattern by ID
156
+ */
157
+ async getPattern(id) {
158
+ const rawDb = this.db.getDatabase();
159
+ const stmt = rawDb.prepare(`SELECT * FROM ${this.patternTable} WHERE id = ?`);
160
+ const row = stmt.get(id);
161
+ if (!row)
162
+ return null;
163
+ // Get embedding from vector database
164
+ const vector = this.db.get(`pattern_${id}`);
165
+ return {
166
+ id: row.id,
167
+ embedding: vector?.embedding || [],
168
+ taskType: row.task_type,
169
+ approach: row.approach,
170
+ successRate: row.success_rate,
171
+ avgDuration: row.avg_duration,
172
+ metadata: {
173
+ ...JSON.parse(row.metadata),
174
+ iterations: row.iterations,
175
+ domain: row.domain,
176
+ complexity: row.complexity,
177
+ learningSource: row.learning_source,
178
+ tags: JSON.parse(row.tags)
179
+ },
180
+ timestamp: row.timestamp
181
+ };
182
+ }
183
+ /**
184
+ * Get statistics about learned patterns
185
+ */
186
+ getStats() {
187
+ const rawDb = this.db.getDatabase();
188
+ // Total patterns
189
+ const countStmt = rawDb.prepare(`SELECT COUNT(*) as count FROM ${this.patternTable}`);
190
+ const totalPatterns = countStmt.get().count;
191
+ // Average success rate
192
+ const avgStmt = rawDb.prepare(`SELECT AVG(success_rate) as avg FROM ${this.patternTable}`);
193
+ const avgSuccessRate = avgStmt.get().avg || 0;
194
+ // Domain distribution
195
+ const domainStmt = rawDb.prepare(`
196
+ SELECT domain, COUNT(*) as count
197
+ FROM ${this.patternTable}
198
+ GROUP BY domain
199
+ `);
200
+ const domainRows = domainStmt.all();
201
+ const domainDistribution = new Map(domainRows.map(row => [row.domain, row.count]));
202
+ // Top patterns by success rate
203
+ const topStmt = rawDb.prepare(`
204
+ SELECT task_type, success_rate
205
+ FROM ${this.patternTable}
206
+ WHERE iterations >= 3
207
+ ORDER BY success_rate DESC
208
+ LIMIT 10
209
+ `);
210
+ const topPatterns = topStmt.all().map(row => ({
211
+ taskType: row.task_type,
212
+ successRate: row.success_rate
213
+ }));
214
+ return {
215
+ totalPatterns,
216
+ avgSuccessRate,
217
+ domainDistribution,
218
+ topPatterns
219
+ };
220
+ }
221
+ generatePatternId() {
222
+ return `pat_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
223
+ }
224
+ }
@@ -0,0 +1,118 @@
1
+ /**
2
+ * AgentDB ReasoningBank Adapter
3
+ *
4
+ * Complete drop-in replacement for the legacy ReasoningBank with 100% backward compatibility.
5
+ * Provides all AgentDB capabilities: vector search, learning plugins, reasoning agents, QUIC sync.
6
+ *
7
+ * Performance: 150x-12,500x faster than legacy implementation
8
+ * Features: HNSW indexing, quantization, learning plugins, reasoning agents
9
+ */
10
+ import type { ReasoningMemory, TrajectoryData, RetrievalOptions } from './types';
11
+ /**
12
+ * Configuration for AgentDB adapter
13
+ */
14
+ export interface AgentDBAdapterConfig {
15
+ dbPath?: string;
16
+ enableLearning?: boolean;
17
+ enableReasoning?: boolean;
18
+ enableQUICSync?: boolean;
19
+ quantizationType?: 'binary' | 'scalar' | 'product' | 'none';
20
+ cacheSize?: number;
21
+ syncPort?: number;
22
+ syncPeers?: string[];
23
+ }
24
+ /**
25
+ * Complete AgentDB ReasoningBank Adapter
26
+ */
27
+ export declare class AgentDBReasoningBankAdapter {
28
+ private db;
29
+ private plugin?;
30
+ private patternMatcher?;
31
+ private contextSynthesizer?;
32
+ private memoryOptimizer?;
33
+ private experienceCurator?;
34
+ private quicSync?;
35
+ private config;
36
+ private initialized;
37
+ constructor(config?: AgentDBAdapterConfig);
38
+ /**
39
+ * Initialize the adapter and all components
40
+ */
41
+ initialize(): Promise<void>;
42
+ /**
43
+ * Insert a pattern into the reasoning bank (backward compatible)
44
+ */
45
+ insertPattern(memory: ReasoningMemory): Promise<string>;
46
+ /**
47
+ * Insert a trajectory (backward compatible)
48
+ */
49
+ insertTrajectory(trajectory: TrajectoryData): Promise<string>;
50
+ /**
51
+ * Retrieve memories (backward compatible with enhanced reasoning)
52
+ */
53
+ retrieveMemories(options?: RetrievalOptions): Promise<ReasoningMemory[]>;
54
+ /**
55
+ * Advanced retrieval with reasoning agents
56
+ */
57
+ retrieveWithReasoning(query: string | number[], options?: {
58
+ domain?: string;
59
+ agent?: string;
60
+ k?: number;
61
+ useMMR?: boolean;
62
+ synthesizeContext?: boolean;
63
+ optimizeMemory?: boolean;
64
+ }): Promise<{
65
+ memories: ReasoningMemory[];
66
+ context?: any;
67
+ patterns?: any[];
68
+ optimizations?: any;
69
+ }>;
70
+ /**
71
+ * Update pattern statistics (backward compatible)
72
+ */
73
+ updatePattern(id: string, updates: Partial<{
74
+ confidence: number;
75
+ usage_count: number;
76
+ success_count: number;
77
+ last_used: number;
78
+ }>): Promise<void>;
79
+ /**
80
+ * Delete pattern (backward compatible)
81
+ */
82
+ deletePattern(id: string): Promise<void>;
83
+ /**
84
+ * Train learning model on stored experiences
85
+ */
86
+ train(options?: {
87
+ epochs?: number;
88
+ batchSize?: number;
89
+ }): Promise<any>;
90
+ /**
91
+ * Get statistics about the reasoning bank
92
+ */
93
+ getStats(): Promise<{
94
+ totalPatterns: number;
95
+ totalTrajectories: number;
96
+ avgConfidence: number;
97
+ domains: string[];
98
+ dbSize: number;
99
+ learningStats?: any;
100
+ reasoningStats?: any;
101
+ }>;
102
+ /**
103
+ * Optimize database (consolidation, pruning, reindexing)
104
+ */
105
+ optimize(): Promise<void>;
106
+ /**
107
+ * Close adapter and cleanup
108
+ */
109
+ close(): Promise<void>;
110
+ private checkInitialized;
111
+ private embedText;
112
+ private mapToLegacyFormat;
113
+ private enhanceWithReasoning;
114
+ private retrieveWithMMR;
115
+ private cosineSimilarity;
116
+ private getDbSize;
117
+ }
118
+ //# sourceMappingURL=agentdb-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentdb-adapter.d.ts","sourceRoot":"","sources":["../../../src/reasoningbank/adapter/agentdb-adapter.ts"],"names":[],"mappings":"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"}