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
package/bin/agentdb.js ADDED
@@ -0,0 +1,485 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * AgentDB CLI
5
+ *
6
+ * Command-line interface for agentdb operations
7
+ */
8
+
9
+ const { version } = require('../package.json');
10
+
11
+ const COMMANDS = {
12
+ help: showHelp,
13
+ version: showVersion,
14
+ mcp: startMcpServer,
15
+ init: initDatabase,
16
+ benchmark: runBenchmark,
17
+ repl: startRepl,
18
+ 'create-plugin': createPlugin,
19
+ 'list-plugins': listPlugins,
20
+ 'list-templates': listTemplates,
21
+ 'plugin-info': pluginInfo,
22
+ 'use-plugin': usePlugin,
23
+ import: importCommand,
24
+ export: exportCommand,
25
+ query: queryCommand,
26
+ stats: statsCommand,
27
+ };
28
+
29
+ function showHelp() {
30
+ // Try to load the comprehensive help system
31
+ try {
32
+ const helpPath = require.resolve('../dist/cli/help.js');
33
+ const { showComprehensiveHelp } = require(helpPath);
34
+ showComprehensiveHelp();
35
+ return;
36
+ } catch (error) {
37
+ // Fallback to basic help if compiled version not available
38
+ console.log(`
39
+ █▀█ █▀▀ █▀▀ █▄░█ ▀█▀ █▀▄ █▄▄
40
+ █▀█ █▄█ ██▄ █░▀█ ░█░ █▄▀ █▄█
41
+
42
+ Agent Memory & Vector Database v${version}
43
+
44
+ USAGE:
45
+ npx agentdb [command] [options]
46
+
47
+ COMMANDS:
48
+ help Show comprehensive help with subsections
49
+ version Show version information
50
+ mcp Start MCP server for Claude Code integration
51
+ init <path> Initialize new vector database
52
+ benchmark Run performance benchmarks
53
+ repl Start interactive REPL (experimental)
54
+
55
+ LEARNING PLUGIN COMMANDS:
56
+ create-plugin Create new learning plugin with wizard
57
+ list-plugins List all available plugins
58
+ list-templates List available plugin templates
59
+ plugin-info Get information about a plugin
60
+ use-plugin Load and use a plugin
61
+ test-plugin Test a plugin
62
+ validate-plugin Validate plugin configuration
63
+
64
+ DATABASE COMMANDS:
65
+ import Import vectors from file
66
+ export Export vectors to file
67
+ query Query vector database
68
+ stats Show database statistics
69
+
70
+ ADVANCED COMMANDS:
71
+ optimize Optimize database performance
72
+ train Train a learning plugin
73
+ deploy Deploy plugin to production
74
+
75
+ QUICK START:
76
+ # Create a learning plugin in 2 minutes
77
+ npx agentdb create-plugin
78
+
79
+ # Initialize database
80
+ npx agentdb init ./agents.db
81
+
82
+ # Run benchmarks
83
+ npx agentdb benchmark
84
+
85
+ # View comprehensive help
86
+ npx agentdb help
87
+
88
+ EXAMPLES:
89
+ npx agentdb create-plugin -t q-learning -n my-q
90
+ npx agentdb list-templates --detailed
91
+ npx agentdb plugin-info my-plugin
92
+ npx agentdb test-plugin my-plugin --coverage
93
+
94
+ DOCUMENTATION:
95
+ GitHub: https://github.com/ruvnet/agentic-flow/tree/main/packages/agentdb
96
+ Issues: https://github.com/ruvnet/agentic-flow/issues
97
+ Author: @ruvnet (https://github.com/ruvnet)
98
+ Website: https://ruv.io
99
+ Quick Start: docs/PLUGIN_QUICKSTART.md
100
+ API Reference: docs/PLUGIN_API.md
101
+
102
+ TIP: Run 'npx agentdb help' for comprehensive help with subsections.
103
+ Run 'npx agentdb <command> --help' for command-specific help.
104
+
105
+ LICENSE:
106
+ MIT OR Apache-2.0
107
+ `);
108
+ }
109
+ }
110
+
111
+ function showVersion() {
112
+ console.log(`agentdb v${version}`);
113
+ console.log(`Node: ${process.version}`);
114
+ console.log(`Platform: ${process.platform} ${process.arch}`);
115
+ }
116
+
117
+ async function startMcpServer() {
118
+ console.error('🚀 Starting AgentDB MCP Server...');
119
+ console.error('');
120
+
121
+ try {
122
+ // Check if MCP implementation exists
123
+ const mcpPath = require.resolve('../dist/mcp-server.js');
124
+
125
+ // Import and start the MCP server
126
+ const { AgentDBMCPServer } = require(mcpPath);
127
+ const server = new AgentDBMCPServer();
128
+ await server.start();
129
+ } catch (error) {
130
+ console.error('❌ Failed to start MCP server');
131
+ console.error('');
132
+ console.error('Error:', error.message);
133
+ console.error('');
134
+ console.error('Make sure to build the project first:');
135
+ console.error(' npm run build');
136
+ console.error('');
137
+ process.exit(1);
138
+ }
139
+ }
140
+
141
+ function initDatabase(path) {
142
+ if (!path) {
143
+ console.error('❌ Error: Database path required');
144
+ console.error('');
145
+ console.error('Usage: agentdb init <path>');
146
+ console.error('Example: agentdb init ./agents.db');
147
+ process.exit(1);
148
+ }
149
+
150
+ console.log(`📦 Initializing agent memory database: ${path}`);
151
+ console.log('');
152
+
153
+ try {
154
+ const { SqliteVectorDB, Presets } = require('../dist/index.js');
155
+
156
+ // Create a small test database
157
+ const config = Presets.smallDataset(1536, path);
158
+ const db = SqliteVectorDB.new(config);
159
+
160
+ console.log('✅ Database initialized successfully!');
161
+ console.log('');
162
+ console.log('Configuration:');
163
+ console.log(` Path: ${path}`);
164
+ console.log(` Dimension: 1536`);
165
+ console.log(` Mode: persistent`);
166
+ console.log('');
167
+ console.log('Next steps:');
168
+ console.log(' 1. Import the library: const { SqliteVectorDB } = require("agentdb")');
169
+ console.log(' 2. Insert vectors: await db.insert({ data: [...], metadata: {...} })');
170
+ console.log(' 3. Search: await db.search(queryVector, 5)');
171
+ console.log('');
172
+
173
+ db.close();
174
+ } catch (error) {
175
+ console.error('❌ Failed to initialize database:', error.message);
176
+ process.exit(1);
177
+ }
178
+ }
179
+
180
+ function runBenchmark() {
181
+ console.log('📊 Running AgentDB Performance Benchmarks...');
182
+ console.log('');
183
+ console.log('This will test:');
184
+ console.log(' - Native & WASM backend performance');
185
+ console.log(' - Insert operations (single & batch)');
186
+ console.log(' - Search operations (various metrics)');
187
+ console.log(' - Memory usage');
188
+ console.log(' - Backend comparison');
189
+ console.log('');
190
+
191
+ try {
192
+ // Try to run compiled benchmark first
193
+ const benchmarkPath = require.resolve('../dist/benchmarks/comprehensive-performance.bench.js');
194
+ const { PerformanceBenchmark } = require(benchmarkPath);
195
+
196
+ const benchmark = new PerformanceBenchmark();
197
+ benchmark.runAll()
198
+ .then(() => {
199
+ console.log('\n✅ All benchmarks completed successfully');
200
+ process.exit(0);
201
+ })
202
+ .catch((error) => {
203
+ console.error('\n❌ Benchmark failed:', error);
204
+ process.exit(1);
205
+ });
206
+ } catch (error) {
207
+ // If compiled version doesn't exist, try TypeScript version with ts-node
208
+ try {
209
+ console.error('⚠️ Compiled benchmarks not found, trying TypeScript version...');
210
+ console.error('');
211
+
212
+ const { spawn } = require('child_process');
213
+ const benchmarkProcess = spawn('npx', ['ts-node', 'benchmarks/comprehensive-performance.bench.ts'], {
214
+ stdio: 'inherit',
215
+ cwd: require('path').resolve(__dirname, '..')
216
+ });
217
+
218
+ benchmarkProcess.on('close', (code) => {
219
+ process.exit(code);
220
+ });
221
+ } catch (tsError) {
222
+ console.error('❌ Benchmarks not available');
223
+ console.error('');
224
+ console.error('To run benchmarks:');
225
+ console.error(' 1. Build the project: npm run build');
226
+ console.error(' 2. Run benchmarks: npx agentdb benchmark');
227
+ console.error('');
228
+ console.error('Or run directly:');
229
+ console.error(' npm run bench');
230
+ console.error(' npm run bench:comprehensive');
231
+ console.error('');
232
+ process.exit(1);
233
+ }
234
+ }
235
+ }
236
+
237
+ function startRepl() {
238
+ console.log('🔧 Interactive REPL (experimental)');
239
+ console.log('');
240
+ console.error('❌ REPL not implemented yet');
241
+ console.error('');
242
+ console.error('For now, use Node.js REPL:');
243
+ console.error(' node');
244
+ console.error(' > const { SqliteVectorDB, Presets } = require("agentdb")');
245
+ console.error(' > const db = await SqliteVectorDB.new(Presets.inMemory(1536))');
246
+ console.error('');
247
+ process.exit(1);
248
+ }
249
+
250
+ // Learning Plugin CLI commands
251
+ function createPlugin(...args) {
252
+ try {
253
+ const wrapperPath = require('path').join(__dirname, 'plugin-cli-wrapper.mjs');
254
+ // Use the .mjs wrapper to load the ES module
255
+ // Prepend 'create-plugin' command since plugin-cli expects it
256
+ const { spawn } = require('child_process');
257
+ const child = spawn('node', [wrapperPath, 'create-plugin', ...args], {
258
+ stdio: 'inherit',
259
+ cwd: require('path').resolve(__dirname, '..')
260
+ });
261
+
262
+ child.on('close', (code) => {
263
+ process.exit(code);
264
+ });
265
+ } catch (error) {
266
+ console.error('❌ Plugin CLI not available');
267
+ console.error('');
268
+ console.error('Error:', error.message);
269
+ console.error('');
270
+ console.error('Make sure to build the project first:');
271
+ console.error(' npm run build');
272
+ console.error('');
273
+ process.exit(1);
274
+ }
275
+ }
276
+
277
+ function listPlugins(...args) {
278
+ // Call plugin CLI wrapper with list-plugins command
279
+ const wrapperPath = require('path').join(__dirname, 'plugin-cli-wrapper.mjs');
280
+ const { spawn } = require('child_process');
281
+ const child = spawn('node', [wrapperPath, 'list-plugins', ...args], {
282
+ stdio: 'inherit',
283
+ cwd: require('path').resolve(__dirname, '..')
284
+ });
285
+ child.on('close', (code) => process.exit(code));
286
+ }
287
+
288
+ function listTemplates(...args) {
289
+ const wrapperPath = require('path').join(__dirname, 'plugin-cli-wrapper.mjs');
290
+ const { spawn} = require('child_process');
291
+ const child = spawn('node', [wrapperPath, 'list-templates', ...args], {
292
+ stdio: 'inherit',
293
+ cwd: require('path').resolve(__dirname, '..')
294
+ });
295
+ child.on('close', (code) => process.exit(code));
296
+ }
297
+
298
+ function pluginInfo(...args) {
299
+ const wrapperPath = require('path').join(__dirname, 'plugin-cli-wrapper.mjs');
300
+ const { spawn } = require('child_process');
301
+ const child = spawn('node', [wrapperPath, 'plugin-info', ...args], {
302
+ stdio: 'inherit',
303
+ cwd: require('path').resolve(__dirname, '..')
304
+ });
305
+ child.on('close', (code) => process.exit(code));
306
+ }
307
+
308
+ function usePlugin(...args) {
309
+ const wrapperPath = require('path').join(__dirname, 'plugin-cli-wrapper.mjs');
310
+ const { spawn } = require('child_process');
311
+ const child = spawn('node', [wrapperPath, 'use-plugin', ...args], {
312
+ stdio: 'inherit',
313
+ cwd: require('path').resolve(__dirname, '..')
314
+ });
315
+ child.on('close', (code) => process.exit(code));
316
+ }
317
+
318
+ // Database commands
319
+ function importCommand(...args) {
320
+ const [database, file, ...flags] = args;
321
+
322
+ if (!database || !file) {
323
+ console.error('❌ Usage: agentdb import <database> <file> [options]');
324
+ console.error('');
325
+ console.error('Options:');
326
+ console.error(' -f, --format <format> File format (json|csv), default: json');
327
+ console.error(' -b, --batch-size <size> Batch size for imports, default: 1000');
328
+ console.error(' -v, --verbose Verbose output');
329
+ console.error('');
330
+ console.error('Examples:');
331
+ console.error(' agentdb import ./db.sqlite vectors.json');
332
+ console.error(' agentdb import ./db.sqlite data.csv -f csv -v');
333
+ process.exit(1);
334
+ }
335
+
336
+ try {
337
+ const { importVectors } = require('../dist/cli/db-commands.js');
338
+ const options = parseFlags(flags);
339
+ importVectors(database, file, options).catch(err => {
340
+ console.error('❌ Import failed:', err.message);
341
+ process.exit(1);
342
+ });
343
+ } catch (error) {
344
+ console.error('❌ Database commands not available. Please run: npm run build');
345
+ process.exit(1);
346
+ }
347
+ }
348
+
349
+ function exportCommand(...args) {
350
+ const [database, file, ...flags] = args;
351
+
352
+ if (!database || !file) {
353
+ console.error('❌ Usage: agentdb export <database> <file> [options]');
354
+ console.error('');
355
+ console.error('Options:');
356
+ console.error(' -f, --format <format> File format (json|csv), default: json');
357
+ console.error(' -l, --limit <number> Limit number of vectors');
358
+ console.error(' -v, --verbose Verbose output');
359
+ console.error('');
360
+ console.error('Examples:');
361
+ console.error(' agentdb export ./db.sqlite vectors.json');
362
+ console.error(' agentdb export ./db.sqlite data.csv -f csv -l 1000');
363
+ process.exit(1);
364
+ }
365
+
366
+ try {
367
+ const { exportVectors } = require('../dist/cli/db-commands.js');
368
+ const options = parseFlags(flags);
369
+ exportVectors(database, file, options).catch(err => {
370
+ console.error('❌ Export failed:', err.message);
371
+ process.exit(1);
372
+ });
373
+ } catch (error) {
374
+ console.error('❌ Database commands not available. Please run: npm run build');
375
+ process.exit(1);
376
+ }
377
+ }
378
+
379
+ function queryCommand(...args) {
380
+ const [database, embedding, ...flags] = args;
381
+
382
+ if (!database || !embedding) {
383
+ console.error('❌ Usage: agentdb query <database> <embedding> [options]');
384
+ console.error('');
385
+ console.error('Options:');
386
+ console.error(' -k, --top-k <number> Number of results, default: 5');
387
+ console.error(' -m, --metric <metric> Similarity metric (cosine|euclidean|dot), default: cosine');
388
+ console.error(' -t, --threshold <number> Minimum similarity threshold, default: 0.0');
389
+ console.error(' -f, --format <format> Output format (table|json), default: table');
390
+ console.error(' -v, --verbose Verbose output');
391
+ console.error('');
392
+ console.error('Examples:');
393
+ console.error(' agentdb query ./db.sqlite "[0.1,0.2,0.3]"');
394
+ console.error(' agentdb query ./db.sqlite "0.1 0.2 0.3" -k 10 -m euclidean');
395
+ process.exit(1);
396
+ }
397
+
398
+ try {
399
+ const { queryVectors } = require('../dist/cli/db-commands.js');
400
+ const options = parseFlags(flags);
401
+ queryVectors(database, embedding, options).catch(err => {
402
+ console.error('❌ Query failed:', err.message);
403
+ process.exit(1);
404
+ });
405
+ } catch (error) {
406
+ console.error('❌ Database commands not available. Please run: npm run build');
407
+ process.exit(1);
408
+ }
409
+ }
410
+
411
+ function statsCommand(...args) {
412
+ const [database, ...flags] = args;
413
+
414
+ if (!database) {
415
+ console.error('❌ Usage: agentdb stats <database> [options]');
416
+ console.error('');
417
+ console.error('Options:');
418
+ console.error(' -d, --detailed Show detailed statistics');
419
+ console.error(' -f, --format <format> Output format (table|json), default: table');
420
+ console.error('');
421
+ console.error('Examples:');
422
+ console.error(' agentdb stats ./db.sqlite');
423
+ console.error(' agentdb stats ./db.sqlite -d -f json');
424
+ process.exit(1);
425
+ }
426
+
427
+ try {
428
+ const { showStats } = require('../dist/cli/db-commands.js');
429
+ const options = parseFlags(flags);
430
+ showStats(database, options).catch(err => {
431
+ console.error('❌ Stats command failed:', err.message);
432
+ process.exit(1);
433
+ });
434
+ } catch (error) {
435
+ console.error('❌ Database commands not available. Please run: npm run build');
436
+ process.exit(1);
437
+ }
438
+ }
439
+
440
+ // Parse command line flags into options object
441
+ function parseFlags(flags) {
442
+ const options = {};
443
+ for (let i = 0; i < flags.length; i++) {
444
+ const flag = flags[i];
445
+
446
+ if (flag === '-f' || flag === '--format') {
447
+ options.format = flags[++i];
448
+ } else if (flag === '-b' || flag === '--batch-size') {
449
+ options.batchSize = parseInt(flags[++i], 10);
450
+ } else if (flag === '-k' || flag === '--top-k') {
451
+ options.k = parseInt(flags[++i], 10);
452
+ } else if (flag === '-m' || flag === '--metric') {
453
+ options.metric = flags[++i];
454
+ } else if (flag === '-t' || flag === '--threshold') {
455
+ options.threshold = parseFloat(flags[++i]);
456
+ } else if (flag === '-l' || flag === '--limit') {
457
+ options.limit = parseInt(flags[++i], 10);
458
+ } else if (flag === '-d' || flag === '--detailed') {
459
+ options.detailed = true;
460
+ } else if (flag === '-v' || flag === '--verbose') {
461
+ options.verbose = true;
462
+ }
463
+ }
464
+ return options;
465
+ }
466
+
467
+ // Parse command line arguments
468
+ const [,, command = 'help', ...args] = process.argv;
469
+
470
+ const handler = COMMANDS[command];
471
+ if (handler) {
472
+ // Handle async commands
473
+ const result = handler(...args);
474
+ if (result instanceof Promise) {
475
+ result.catch(error => {
476
+ console.error('Error:', error);
477
+ process.exit(1);
478
+ });
479
+ }
480
+ } else {
481
+ console.error(`❌ Unknown command: ${command}`);
482
+ console.error('');
483
+ console.error('Run "agentdb help" for usage information');
484
+ process.exit(1);
485
+ }
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Wrapper to load the ES module plugin CLI
4
+ * This file uses .mjs extension to signal ES module to Node.js
5
+ */
6
+ import { fileURLToPath } from 'url';
7
+ import { dirname, join } from 'path';
8
+
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = dirname(__filename);
11
+
12
+ // Import the plugin CLI ES module (.mjs version)
13
+ const cliPath = join(__dirname, '../dist/cli/plugin-cli.mjs');
14
+ import(pathToFileURL(cliPath).href).catch(err => {
15
+ console.error('Failed to load plugin CLI:', err);
16
+ process.exit(1);
17
+ });
18
+
19
+ function pathToFileURL(path) {
20
+ return new URL(`file://${path.startsWith('/') ? '' : '/'}${path}`);
21
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Query Cache with LRU eviction for ultra-fast repeated queries
3
+ *
4
+ * Provides 50-100x speedup for repeated vector searches by caching results.
5
+ * Uses LRU (Least Recently Used) eviction strategy with TTL (Time To Live).
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const cache = new QueryCache({ maxSize: 1000, ttl: 300000 }); // 5 min TTL
10
+ *
11
+ * // First query: miss, executes full search
12
+ * const results1 = cache.get(key) ?? performSearch();
13
+ * cache.set(key, results1);
14
+ *
15
+ * // Second query: hit, returns cached results (sub-millisecond)
16
+ * const results2 = cache.get(key); // 50-100x faster
17
+ * ```
18
+ */
19
+ export interface QueryCacheConfig {
20
+ /** Maximum number of cached queries (default: 1000) */
21
+ maxSize: number;
22
+ /** Time-to-live in milliseconds (default: 300000 = 5 minutes) */
23
+ ttl: number;
24
+ /** Enable cache statistics tracking (default: true) */
25
+ enableStats: boolean;
26
+ }
27
+ export interface CacheEntry<T> {
28
+ results: T;
29
+ expiry: number;
30
+ lastAccessed: number;
31
+ accessCount: number;
32
+ }
33
+ export interface CacheStats {
34
+ hits: number;
35
+ misses: number;
36
+ hitRate: number;
37
+ size: number;
38
+ evictions: number;
39
+ avgAccessTime: number;
40
+ }
41
+ export declare class QueryCache<T = any> {
42
+ private cache;
43
+ private config;
44
+ private stats;
45
+ constructor(config?: Partial<QueryCacheConfig>);
46
+ /**
47
+ * Generate cache key from query parameters
48
+ */
49
+ static generateKey(embedding: number[], k: number, metric?: string, threshold?: number): string;
50
+ /**
51
+ * Get cached results if available and not expired
52
+ */
53
+ get(key: string): T | null;
54
+ /**
55
+ * Store results in cache with LRU eviction
56
+ */
57
+ set(key: string, results: T): void;
58
+ /**
59
+ * Evict least recently used entry
60
+ */
61
+ private evictLRU;
62
+ /**
63
+ * Clear all cached entries
64
+ */
65
+ clear(): void;
66
+ /**
67
+ * Clear expired entries
68
+ */
69
+ clearExpired(): void;
70
+ /**
71
+ * Get cache statistics
72
+ */
73
+ getStats(): CacheStats;
74
+ /**
75
+ * Reset statistics
76
+ */
77
+ resetStats(): void;
78
+ private recordHit;
79
+ private recordMiss;
80
+ /**
81
+ * Get current cache size
82
+ */
83
+ get size(): number;
84
+ /**
85
+ * Check if cache has key
86
+ */
87
+ has(key: string): boolean;
88
+ /**
89
+ * Delete specific entry
90
+ */
91
+ delete(key: string): boolean;
92
+ /**
93
+ * Get all cache keys
94
+ */
95
+ keys(): string[];
96
+ /**
97
+ * Get cache configuration
98
+ */
99
+ getConfig(): Required<QueryCacheConfig>;
100
+ /**
101
+ * Update cache configuration
102
+ */
103
+ updateConfig(config: Partial<QueryCacheConfig>): void;
104
+ }
105
+ //# sourceMappingURL=query-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-cache.d.ts","sourceRoot":"","sources":["../../src/cache/query-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,UAAU,CAAC,CAAC,GAAG,GAAG;IAC7B,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,MAAM,CAA6B;IAG3C,OAAO,CAAC,KAAK,CAMX;gBAEU,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAQlD;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,SAAS,EAAE,MAAM,EAAE,EACnB,CAAC,EAAE,MAAM,EACT,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM;IAMT;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAyB1B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI;IAelC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAmBhB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,IAAI;IAapB;;OAEG;IACH,QAAQ,IAAI,UAAU;IActB;;OAEG;IACH,UAAU,IAAI,IAAI;IAUlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAazB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,gBAAgB,CAAC;IAIvC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;CAetD"}