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,113 @@
1
+ "use strict";
2
+ /**
3
+ * CLI commands implementation
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.listPlugins = listPlugins;
10
+ exports.listTemplates = listTemplates;
11
+ exports.getPluginInfo = getPluginInfo;
12
+ const promises_1 = __importDefault(require("fs/promises"));
13
+ const path_1 = __importDefault(require("path"));
14
+ const chalk_1 = __importDefault(require("chalk"));
15
+ const templates_js_1 = require("./templates.js");
16
+ async function listPlugins(verbose = false) {
17
+ const pluginsDir = path_1.default.join(process.cwd(), 'plugins');
18
+ try {
19
+ const plugins = await promises_1.default.readdir(pluginsDir);
20
+ console.log(chalk_1.default.cyan.bold('\nAvailable Plugins:\n'));
21
+ for (const pluginName of plugins) {
22
+ const pluginPath = path_1.default.join(pluginsDir, pluginName);
23
+ const stats = await promises_1.default.stat(pluginPath);
24
+ if (!stats.isDirectory())
25
+ continue;
26
+ try {
27
+ const configPath = path_1.default.join(pluginPath, 'plugin.yaml');
28
+ const config = await promises_1.default.readFile(configPath, 'utf-8');
29
+ console.log(chalk_1.default.yellow(` • ${pluginName}`));
30
+ if (verbose) {
31
+ // Parse YAML and show details
32
+ const lines = config.split('\n');
33
+ const description = lines.find(l => l.startsWith('description:'));
34
+ const version = lines.find(l => l.startsWith('version:'));
35
+ const algorithm = lines.find(l => l.startsWith('base_algorithm:'));
36
+ if (description)
37
+ console.log(chalk_1.default.gray(` ${description.split(':')[1].trim()}`));
38
+ if (version)
39
+ console.log(chalk_1.default.gray(` Version: ${version.split(':')[1].trim()}`));
40
+ if (algorithm)
41
+ console.log(chalk_1.default.gray(` Algorithm: ${algorithm.split(':')[1].trim()}`));
42
+ console.log();
43
+ }
44
+ }
45
+ catch (error) {
46
+ console.log(chalk_1.default.red(` (Invalid plugin configuration)`));
47
+ }
48
+ }
49
+ }
50
+ catch (error) {
51
+ console.log(chalk_1.default.yellow('\nNo plugins found. Create one with:'));
52
+ console.log(chalk_1.default.cyan(' npx agentdb create-plugin\n'));
53
+ }
54
+ }
55
+ async function listTemplates(detailed = false) {
56
+ const templates = await (0, templates_js_1.getAvailableTemplates)();
57
+ console.log(chalk_1.default.cyan.bold('\nAvailable Templates:\n'));
58
+ for (const template of templates) {
59
+ console.log(chalk_1.default.yellow(` • ${template.name}`));
60
+ if (detailed) {
61
+ console.log(chalk_1.default.gray(` ${template.description}`));
62
+ console.log(chalk_1.default.gray(` Algorithm: ${template.algorithm}`));
63
+ console.log(chalk_1.default.gray(` Use Case: ${template.useCase}`));
64
+ console.log(chalk_1.default.gray(` Configuration:`));
65
+ console.log(chalk_1.default.gray(` - Learning Rate: ${template.config.algorithm.learning_rate || 'varies'}`));
66
+ console.log(chalk_1.default.gray(` - Batch Size: ${template.config.training.batch_size || 'N/A'}`));
67
+ console.log(chalk_1.default.gray(` - Min Experiences: ${template.config.training.min_experiences}`));
68
+ console.log();
69
+ }
70
+ }
71
+ console.log(chalk_1.default.gray('\nCreate a plugin from template:'));
72
+ console.log(chalk_1.default.cyan(' npx agentdb create-plugin --template <name>\n'));
73
+ }
74
+ async function getPluginInfo(name, asJson = false) {
75
+ const pluginPath = path_1.default.join(process.cwd(), 'plugins', name);
76
+ try {
77
+ const configPath = path_1.default.join(pluginPath, 'plugin.yaml');
78
+ const config = await promises_1.default.readFile(configPath, 'utf-8');
79
+ if (asJson) {
80
+ // Output as JSON
81
+ const lines = config.split('\n');
82
+ const jsonInfo = {
83
+ name: name,
84
+ description: lines.find(l => l.startsWith('description:'))?.split(':')[1]?.trim() || '',
85
+ version: lines.find(l => l.startsWith('version:'))?.split(':')[1]?.trim() || '',
86
+ baseAlgorithm: lines.find(l => l.startsWith('base_algorithm:'))?.split(':')[1]?.trim() || '',
87
+ author: lines.find(l => l.startsWith('author:'))?.split(':')[1]?.trim() || '',
88
+ status: 'ready'
89
+ };
90
+ console.log(JSON.stringify(jsonInfo, null, 2));
91
+ return;
92
+ }
93
+ console.log(chalk_1.default.cyan.bold(`\n Plugin: ${name}\n`));
94
+ console.log(chalk_1.default.gray('────────────────────────────────────────'));
95
+ console.log(config);
96
+ console.log(chalk_1.default.gray('────────────────────────────────────────\n'));
97
+ const readmePath = path_1.default.join(pluginPath, 'README.md');
98
+ try {
99
+ const readme = await promises_1.default.readFile(readmePath, 'utf-8');
100
+ console.log(chalk_1.default.white('\nDocumentation:\n'));
101
+ console.log(readme);
102
+ }
103
+ catch {
104
+ // No README
105
+ }
106
+ }
107
+ catch (error) {
108
+ console.error(chalk_1.default.red(`\nPlugin "${name}" not found.\n`));
109
+ console.log(chalk_1.default.gray('List available plugins:'));
110
+ console.log(chalk_1.default.cyan(' npx agentdb list-plugins\n'));
111
+ }
112
+ }
113
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * CLI commands implementation
3
+ */
4
+ import fs from 'fs/promises';
5
+ import path from 'path';
6
+ import chalk from 'chalk';
7
+ import { getAvailableTemplates } from './templates.mjs';
8
+ export async function listPlugins(verbose = false) {
9
+ const pluginsDir = path.join(process.cwd(), 'plugins');
10
+ try {
11
+ const plugins = await fs.readdir(pluginsDir);
12
+ console.log(chalk.cyan.bold('\nAvailable Plugins:\n'));
13
+ for (const pluginName of plugins) {
14
+ const pluginPath = path.join(pluginsDir, pluginName);
15
+ const stats = await fs.stat(pluginPath);
16
+ if (!stats.isDirectory())
17
+ continue;
18
+ try {
19
+ const configPath = path.join(pluginPath, 'plugin.yaml');
20
+ const config = await fs.readFile(configPath, 'utf-8');
21
+ console.log(chalk.yellow(` • ${pluginName}`));
22
+ if (verbose) {
23
+ // Parse YAML and show details
24
+ const lines = config.split('\n');
25
+ const description = lines.find(l => l.startsWith('description:'));
26
+ const version = lines.find(l => l.startsWith('version:'));
27
+ const algorithm = lines.find(l => l.startsWith('base_algorithm:'));
28
+ if (description)
29
+ console.log(chalk.gray(` ${description.split(':')[1].trim()}`));
30
+ if (version)
31
+ console.log(chalk.gray(` Version: ${version.split(':')[1].trim()}`));
32
+ if (algorithm)
33
+ console.log(chalk.gray(` Algorithm: ${algorithm.split(':')[1].trim()}`));
34
+ console.log();
35
+ }
36
+ }
37
+ catch (error) {
38
+ console.log(chalk.red(` (Invalid plugin configuration)`));
39
+ }
40
+ }
41
+ }
42
+ catch (error) {
43
+ console.log(chalk.yellow('\nNo plugins found. Create one with:'));
44
+ console.log(chalk.cyan(' npx agentdb create-plugin\n'));
45
+ }
46
+ }
47
+ export async function listTemplates(detailed = false) {
48
+ const templates = await getAvailableTemplates();
49
+ console.log(chalk.cyan.bold('\nAvailable Templates:\n'));
50
+ for (const template of templates) {
51
+ console.log(chalk.yellow(` • ${template.name}`));
52
+ if (detailed) {
53
+ console.log(chalk.gray(` ${template.description}`));
54
+ console.log(chalk.gray(` Algorithm: ${template.algorithm}`));
55
+ console.log(chalk.gray(` Use Case: ${template.useCase}`));
56
+ console.log(chalk.gray(` Configuration:`));
57
+ console.log(chalk.gray(` - Learning Rate: ${template.config.algorithm.learning_rate || 'varies'}`));
58
+ console.log(chalk.gray(` - Batch Size: ${template.config.training.batch_size || 'N/A'}`));
59
+ console.log(chalk.gray(` - Min Experiences: ${template.config.training.min_experiences}`));
60
+ console.log();
61
+ }
62
+ }
63
+ console.log(chalk.gray('\nCreate a plugin from template:'));
64
+ console.log(chalk.cyan(' npx agentdb create-plugin --template <name>\n'));
65
+ }
66
+ export async function getPluginInfo(name, asJson = false) {
67
+ const pluginPath = path.join(process.cwd(), 'plugins', name);
68
+ try {
69
+ const configPath = path.join(pluginPath, 'plugin.yaml');
70
+ const config = await fs.readFile(configPath, 'utf-8');
71
+ if (asJson) {
72
+ // Output as JSON
73
+ const lines = config.split('\n');
74
+ const jsonInfo = {
75
+ name: name,
76
+ description: lines.find(l => l.startsWith('description:'))?.split(':')[1]?.trim() || '',
77
+ version: lines.find(l => l.startsWith('version:'))?.split(':')[1]?.trim() || '',
78
+ baseAlgorithm: lines.find(l => l.startsWith('base_algorithm:'))?.split(':')[1]?.trim() || '',
79
+ author: lines.find(l => l.startsWith('author:'))?.split(':')[1]?.trim() || '',
80
+ status: 'ready'
81
+ };
82
+ console.log(JSON.stringify(jsonInfo, null, 2));
83
+ return;
84
+ }
85
+ console.log(chalk.cyan.bold(`\n Plugin: ${name}\n`));
86
+ console.log(chalk.gray('────────────────────────────────────────'));
87
+ console.log(config);
88
+ console.log(chalk.gray('────────────────────────────────────────\n'));
89
+ const readmePath = path.join(pluginPath, 'README.md');
90
+ try {
91
+ const readme = await fs.readFile(readmePath, 'utf-8');
92
+ console.log(chalk.white('\nDocumentation:\n'));
93
+ console.log(readme);
94
+ }
95
+ catch {
96
+ // No README
97
+ }
98
+ }
99
+ catch (error) {
100
+ console.error(chalk.red(`\nPlugin "${name}" not found.\n`));
101
+ console.log(chalk.gray('List available plugins:'));
102
+ console.log(chalk.cyan(' npx agentdb list-plugins\n'));
103
+ }
104
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Backend interface for vector database implementations
3
+ * Supports both native (better-sqlite3) and WASM (sql.js) backends
4
+ */
5
+ import { Vector, SearchResult, SimilarityMetric, DatabaseConfig } from '../types';
6
+ /**
7
+ * Abstract interface for vector database backends
8
+ */
9
+ export interface VectorBackend {
10
+ /**
11
+ * Initialize the database with given configuration
12
+ */
13
+ initialize(config: DatabaseConfig): void;
14
+ /**
15
+ * Insert a single vector
16
+ * @returns The ID of the inserted vector
17
+ */
18
+ insert(vector: Vector): string;
19
+ /**
20
+ * Insert multiple vectors in a transaction
21
+ * @returns Array of IDs of inserted vectors
22
+ */
23
+ insertBatch(vectors: Vector[]): string[];
24
+ /**
25
+ * Search for k-nearest neighbors
26
+ */
27
+ search(queryEmbedding: number[], k: number, metric: SimilarityMetric, threshold: number): SearchResult[];
28
+ /**
29
+ * Get vector by ID
30
+ */
31
+ get(id: string): Vector | null;
32
+ /**
33
+ * Delete vector by ID
34
+ * @returns true if deleted, false if not found
35
+ */
36
+ delete(id: string): boolean;
37
+ /**
38
+ * Get database statistics
39
+ */
40
+ stats(): {
41
+ count: number;
42
+ size: number;
43
+ };
44
+ /**
45
+ * Close database connection and cleanup resources
46
+ */
47
+ close(): void;
48
+ /**
49
+ * Export database to binary format (for WASM persistence)
50
+ */
51
+ export?(): Uint8Array;
52
+ /**
53
+ * Import database from binary format (for WASM persistence)
54
+ */
55
+ import?(data: Uint8Array): void;
56
+ }
57
+ /**
58
+ * Backend type enum
59
+ */
60
+ export declare enum BackendType {
61
+ NATIVE = "native",
62
+ WASM = "wasm"
63
+ }
64
+ /**
65
+ * Extended database configuration with backend selection
66
+ */
67
+ export interface ExtendedDatabaseConfig extends DatabaseConfig {
68
+ backend?: BackendType;
69
+ wasmBinary?: Uint8Array;
70
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Backend interface for vector database implementations
4
+ * Supports both native (better-sqlite3) and WASM (sql.js) backends
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BackendType = void 0;
8
+ /**
9
+ * Backend type enum
10
+ */
11
+ var BackendType;
12
+ (function (BackendType) {
13
+ BackendType["NATIVE"] = "native";
14
+ BackendType["WASM"] = "wasm";
15
+ })(BackendType || (exports.BackendType = BackendType = {}));
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Native backend implementation using better-sqlite3
3
+ * High-performance backend for Node.js environments
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ import { Vector, SearchResult, SimilarityMetric, DatabaseConfig } from '../types';
7
+ import { VectorBackend } from './backend-interface';
8
+ import { HNSWConfig } from '../index/hnsw';
9
+ /**
10
+ * Extended database configuration with HNSW index support
11
+ */
12
+ export interface NativeBackendConfig extends DatabaseConfig {
13
+ hnsw?: Partial<HNSWConfig>;
14
+ }
15
+ /**
16
+ * Native backend using better-sqlite3
17
+ * Optimized for Node.js with native SQLite bindings
18
+ * Features HNSW index for high-performance approximate nearest neighbor search
19
+ */
20
+ export declare class NativeBackend implements VectorBackend {
21
+ private db;
22
+ private insertStmt;
23
+ private initialized;
24
+ private hnswIndex;
25
+ private hnswConfig;
26
+ /**
27
+ * Initialize the native backend
28
+ */
29
+ initialize(config?: NativeBackendConfig): void;
30
+ /**
31
+ * Initialize database schema
32
+ */
33
+ private initializeSchema;
34
+ /**
35
+ * Register custom SQL functions for similarity calculations
36
+ */
37
+ private registerCustomFunctions;
38
+ /**
39
+ * Prepare frequently used statements
40
+ */
41
+ private prepareStatements;
42
+ /**
43
+ * Calculate L2 norm of a vector
44
+ */
45
+ private calculateNorm;
46
+ /**
47
+ * Serialize embedding to binary format
48
+ */
49
+ private serializeEmbedding;
50
+ /**
51
+ * Deserialize embedding from binary format
52
+ */
53
+ private deserializeEmbedding;
54
+ /**
55
+ * Generate unique ID
56
+ */
57
+ private generateId;
58
+ /**
59
+ * Insert a single vector
60
+ */
61
+ insert(vector: Vector): string;
62
+ /**
63
+ * Insert multiple vectors in a transaction with optimized batch processing
64
+ * Performance improvements:
65
+ * - Single transaction for all inserts
66
+ * - Reused prepared statement
67
+ * - No wrapper function overhead
68
+ * - Chunked processing for large batches
69
+ * - Automatic HNSW index building after batch insert
70
+ */
71
+ insertBatch(vectors: Vector[]): string[];
72
+ /**
73
+ * Check if HNSW index should be used
74
+ */
75
+ private shouldUseHNSW;
76
+ /**
77
+ * Search for k-nearest neighbors
78
+ * Automatically uses HNSW index when available and beneficial
79
+ */
80
+ search(queryEmbedding: number[], k?: number, metric?: SimilarityMetric, threshold?: number): SearchResult[];
81
+ /**
82
+ * Search using HNSW index (fast approximate search)
83
+ */
84
+ private searchWithHNSW;
85
+ /**
86
+ * Brute-force search (accurate but slower)
87
+ */
88
+ private bruteForceSearch;
89
+ /**
90
+ * Get vector by ID
91
+ */
92
+ get(id: string): Vector | null;
93
+ /**
94
+ * Delete vector by ID
95
+ */
96
+ delete(id: string): boolean;
97
+ /**
98
+ * Get database statistics
99
+ */
100
+ stats(): {
101
+ count: number;
102
+ size: number;
103
+ };
104
+ /**
105
+ * Close database connection
106
+ */
107
+ close(): void;
108
+ /**
109
+ * Get raw database instance (for advanced usage)
110
+ */
111
+ getDatabase(): Database.Database | null;
112
+ /**
113
+ * Check if backend is initialized
114
+ */
115
+ isInitialized(): boolean;
116
+ /**
117
+ * Build HNSW index manually
118
+ * Useful for pre-building index on existing data
119
+ */
120
+ buildHNSWIndex(): void;
121
+ /**
122
+ * Get HNSW index statistics
123
+ */
124
+ getHNSWStats(): {
125
+ enabled: boolean;
126
+ ready: boolean;
127
+ nodeCount: number;
128
+ edgeCount: number;
129
+ maxLevel: number;
130
+ avgDegree: number;
131
+ } | null;
132
+ /**
133
+ * Clear HNSW index
134
+ */
135
+ clearHNSWIndex(): void;
136
+ /**
137
+ * Update HNSW configuration and rebuild if needed
138
+ */
139
+ updateHNSWConfig(config: Partial<HNSWConfig>, rebuild?: boolean): void;
140
+ }