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,567 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin code generator
4
+ * Generates complete plugin structure from configuration
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.generatePlugin = generatePlugin;
44
+ const promises_1 = __importDefault(require("fs/promises"));
45
+ const path_1 = __importDefault(require("path"));
46
+ const chalk_1 = __importDefault(require("chalk"));
47
+ const yaml_1 = __importDefault(require("yaml"));
48
+ const templates_js_1 = require("./templates.js");
49
+ async function generatePlugin(config, options = {}) {
50
+ let pluginConfig;
51
+ // Handle quick template creation
52
+ if ('template' in config && 'useDefaults' in config) {
53
+ const templateConfig = await (0, templates_js_1.getTemplateConfig)(config.template);
54
+ const template = await Promise.resolve().then(() => __importStar(require('./templates.js'))).then(m => m.getTemplate(config.template));
55
+ pluginConfig = {
56
+ ...templateConfig,
57
+ name: config.name,
58
+ description: template ? (await template).description : 'AI learning plugin',
59
+ version: '1.0.0',
60
+ author: 'Unknown',
61
+ };
62
+ }
63
+ else {
64
+ pluginConfig = config;
65
+ }
66
+ // SECURITY FIXES: Enhanced path validation
67
+ const pluginName = pluginConfig.name;
68
+ // 1. Validate format (already enforced by schema, but double-check)
69
+ if (!/^[a-z0-9-]+$/.test(pluginName)) {
70
+ throw new Error('Invalid plugin name format. Use only lowercase letters, numbers, and hyphens.');
71
+ }
72
+ // 2. Validate length
73
+ if (pluginName.length < 3 || pluginName.length > 50) {
74
+ throw new Error('Plugin name must be between 3 and 50 characters');
75
+ }
76
+ // 3. Check for reserved OS names
77
+ const RESERVED_NAMES = [
78
+ 'con', 'prn', 'aux', 'nul', 'com1', 'com2', 'com3', 'com4', 'com5',
79
+ 'com6', 'com7', 'com8', 'com9', 'lpt1', 'lpt2', 'lpt3', 'lpt4',
80
+ 'lpt5', 'lpt6', 'lpt7', 'lpt8', 'lpt9', 'clock$'
81
+ ];
82
+ if (RESERVED_NAMES.includes(pluginName.toLowerCase())) {
83
+ throw new Error(`Plugin name '${pluginName}' is reserved by the operating system`);
84
+ }
85
+ // 4. Construct paths safely
86
+ const pluginsBaseDir = path_1.default.resolve(process.cwd(), 'plugins');
87
+ const pluginDir = path_1.default.join(pluginsBaseDir, pluginName);
88
+ // 5. Verify resolved path is within plugins directory (prevent traversal via symlinks)
89
+ const resolvedPluginDir = path_1.default.resolve(pluginDir);
90
+ if (!resolvedPluginDir.startsWith(pluginsBaseDir + path_1.default.sep) && resolvedPluginDir !== pluginsBaseDir) {
91
+ throw new Error('Invalid plugin directory path (security violation)');
92
+ }
93
+ // 6. Check if path exists and is not a symlink
94
+ try {
95
+ const stats = await promises_1.default.lstat(pluginDir);
96
+ if (stats.isSymbolicLink()) {
97
+ throw new Error('Plugin directory cannot be a symlink (security violation)');
98
+ }
99
+ // Directory exists and is not a symlink - check if we should overwrite
100
+ if (!options.force) {
101
+ throw new Error(`Plugin directory already exists: ${pluginDir}. Use --force to overwrite.`);
102
+ }
103
+ }
104
+ catch (err) {
105
+ // ENOENT is expected (directory doesn't exist yet)
106
+ if (err.code !== 'ENOENT') {
107
+ throw err;
108
+ }
109
+ }
110
+ try {
111
+ // Create directory structure
112
+ await createDirectoryStructure(pluginDir);
113
+ if (options.configOnly) {
114
+ // Save configuration only
115
+ await saveConfiguration(pluginDir, pluginConfig);
116
+ console.log(chalk_1.default.green(`✓ Configuration saved to ${pluginDir}/plugin.yaml`));
117
+ return;
118
+ }
119
+ // Generate all files
120
+ await Promise.all([
121
+ saveConfiguration(pluginDir, pluginConfig),
122
+ generateIndexFile(pluginDir, pluginConfig),
123
+ generateAgentFile(pluginDir, pluginConfig),
124
+ generateRewardFile(pluginDir, pluginConfig),
125
+ generatePolicyFile(pluginDir, pluginConfig),
126
+ generateTestFile(pluginDir, pluginConfig),
127
+ generateReadme(pluginDir, pluginConfig),
128
+ generatePackageJson(pluginDir, pluginConfig),
129
+ generateTsConfig(pluginDir),
130
+ ]);
131
+ console.log(chalk_1.default.green('✓ Created plugin structure at'), pluginDir);
132
+ console.log(chalk_1.default.green('✓ Generated plugin.yaml'));
133
+ console.log(chalk_1.default.green('✓ Generated src/index.ts'));
134
+ console.log(chalk_1.default.green('✓ Generated src/agent.ts'));
135
+ console.log(chalk_1.default.green('✓ Generated src/reward.ts'));
136
+ console.log(chalk_1.default.green('✓ Generated src/policy.ts'));
137
+ console.log(chalk_1.default.green('✓ Generated tests/plugin.test.ts'));
138
+ console.log(chalk_1.default.green('✓ Generated README.md'));
139
+ console.log(chalk_1.default.green('✓ Generated package.json'));
140
+ }
141
+ catch (error) {
142
+ console.error(chalk_1.default.red('Error generating plugin:'), error);
143
+ throw error;
144
+ }
145
+ }
146
+ async function createDirectoryStructure(pluginDir) {
147
+ await promises_1.default.mkdir(path_1.default.join(pluginDir, 'src'), { recursive: true });
148
+ await promises_1.default.mkdir(path_1.default.join(pluginDir, 'tests'), { recursive: true });
149
+ }
150
+ async function saveConfiguration(pluginDir, config) {
151
+ const yamlStr = yaml_1.default.stringify(config);
152
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'plugin.yaml'), yamlStr, 'utf-8');
153
+ }
154
+ async function generateIndexFile(pluginDir, config) {
155
+ const content = `/**
156
+ * ${config.name}
157
+ * ${config.description}
158
+ *
159
+ * Generated by SQLite Vector Learning Plugin CLI
160
+ */
161
+
162
+ import type { LearningPlugin, PluginConfig, Experience, Vector, Action } from 'agentdb/plugins';
163
+ import { ${getAgentClassName(config)} } from './agent.js';
164
+
165
+ export class ${getPluginClassName(config)} implements LearningPlugin {
166
+ name = '${config.name}';
167
+ version = '${config.version}';
168
+ config: PluginConfig;
169
+
170
+ private agent: ${getAgentClassName(config)};
171
+
172
+ async initialize(config: PluginConfig): Promise<void> {
173
+ this.config = config;
174
+ this.agent = new ${getAgentClassName(config)}(config);
175
+ await this.agent.initialize();
176
+ }
177
+
178
+ async destroy(): Promise<void> {
179
+ await this.agent.destroy();
180
+ }
181
+
182
+ async storeExperience(experience: Experience): Promise<void> {
183
+ await this.agent.storeExperience(experience);
184
+ }
185
+
186
+ async storeBatch(experiences: Experience[]): Promise<void> {
187
+ await this.agent.storeBatch(experiences);
188
+ }
189
+
190
+ async retrieveSimilar(state: Vector, k: number): Promise<Experience[]> {
191
+ return await this.agent.retrieveSimilar(state, k);
192
+ }
193
+
194
+ async selectAction(state: Vector, context?: any): Promise<Action> {
195
+ return await this.agent.selectAction(state, context);
196
+ }
197
+
198
+ async train(options?: any): Promise<any> {
199
+ return await this.agent.train(options);
200
+ }
201
+
202
+ async getMetrics(): Promise<any> {
203
+ return await this.agent.getMetrics();
204
+ }
205
+
206
+ getConfig(): PluginConfig {
207
+ return this.config;
208
+ }
209
+
210
+ async save(path: string): Promise<void> {
211
+ await this.agent.save(path);
212
+ }
213
+
214
+ async load(path: string): Promise<void> {
215
+ await this.agent.load(path);
216
+ }
217
+ }
218
+
219
+ // Export plugin factory
220
+ export default function createPlugin(config: PluginConfig): LearningPlugin {
221
+ return new ${getPluginClassName(config)}();
222
+ }
223
+ `;
224
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'index.ts'), content, 'utf-8');
225
+ }
226
+ async function generateAgentFile(pluginDir, config) {
227
+ const algorithmImpl = generateAlgorithmImplementation(config);
228
+ const content = `/**
229
+ * Learning agent implementation for ${config.name}
230
+ */
231
+
232
+ import type { PluginConfig, Experience, Vector, Action } from 'agentdb/plugins';
233
+ import { SQLiteVectorDB } from 'agentdb';
234
+ import { RewardFunction } from './reward.js';
235
+ import { PolicyFunction } from './policy.js';
236
+
237
+ export class ${getAgentClassName(config)} {
238
+ private vectorDB: SQLiteVectorDB;
239
+ private rewardFn: RewardFunction;
240
+ private policy: PolicyFunction;
241
+ private metrics: Map<string, number[]>;
242
+
243
+ ${algorithmImpl.fields}
244
+
245
+ constructor(private config: PluginConfig) {
246
+ this.metrics = new Map();
247
+ this.rewardFn = new RewardFunction(config.reward);
248
+ this.policy = new PolicyFunction(config.algorithm);
249
+ }
250
+
251
+ async initialize(): Promise<void> {
252
+ // Initialize vector database
253
+ this.vectorDB = new SQLiteVectorDB({
254
+ path: this.config.storage.path,
255
+ hnsw: this.config.storage.hnsw,
256
+ });
257
+
258
+ ${algorithmImpl.initialization}
259
+ }
260
+
261
+ async destroy(): Promise<void> {
262
+ // Cleanup resources
263
+ }
264
+
265
+ async storeExperience(experience: Experience): Promise<void> {
266
+ // Store in vector database
267
+ await this.vectorDB.insert({
268
+ embedding: experience.state,
269
+ metadata: {
270
+ action: experience.action,
271
+ reward: experience.reward,
272
+ nextState: experience.nextState,
273
+ done: experience.done,
274
+ timestamp: Date.now(),
275
+ },
276
+ });
277
+
278
+ ${algorithmImpl.onStoreExperience}
279
+ }
280
+
281
+ async storeBatch(experiences: Experience[]): Promise<void> {
282
+ for (const exp of experiences) {
283
+ await this.storeExperience(exp);
284
+ }
285
+ }
286
+
287
+ async retrieveSimilar(state: Vector, k: number): Promise<Experience[]> {
288
+ const results = await this.vectorDB.search(state, k);
289
+ return results.map((r) => ({
290
+ state: r.embedding,
291
+ action: r.metadata.action,
292
+ reward: r.metadata.reward,
293
+ nextState: r.metadata.nextState,
294
+ done: r.metadata.done,
295
+ }));
296
+ }
297
+
298
+ async selectAction(state: Vector, context?: any): Promise<Action> {
299
+ return await this.policy.selectAction(state, context);
300
+ }
301
+
302
+ async train(options?: any): Promise<any> {
303
+ ${algorithmImpl.training}
304
+ }
305
+
306
+ async getMetrics(): Promise<any> {
307
+ const result: any = {};
308
+ for (const [key, values] of this.metrics) {
309
+ result[key] = {
310
+ current: values[values.length - 1] || 0,
311
+ average: values.reduce((a, b) => a + b, 0) / values.length || 0,
312
+ min: Math.min(...values) || 0,
313
+ max: Math.max(...values) || 0,
314
+ };
315
+ }
316
+ return result;
317
+ }
318
+
319
+ async save(path: string): Promise<void> {
320
+ // Save model state
321
+ }
322
+
323
+ async load(path: string): Promise<void> {
324
+ // Load model state
325
+ }
326
+
327
+ private trackMetric(name: string, value: number): void {
328
+ if (!this.metrics.has(name)) {
329
+ this.metrics.set(name, []);
330
+ }
331
+ this.metrics.get(name)!.push(value);
332
+ }
333
+ }
334
+ `;
335
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'agent.ts'), content, 'utf-8');
336
+ }
337
+ async function generateRewardFile(pluginDir, config) {
338
+ // SECURITY FIX: Never use custom functions - always use predefined safe functions
339
+ const rewardImpl = generateDefaultReward(config.reward.type);
340
+ const content = `/**
341
+ * Reward function for ${config.name}
342
+ */
343
+
344
+ export class RewardFunction {
345
+ constructor(private config: any) {}
346
+
347
+ compute(outcome: any, context: any): number {
348
+ ${rewardImpl}
349
+ }
350
+ }
351
+ `;
352
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'reward.ts'), content, 'utf-8');
353
+ }
354
+ async function generatePolicyFile(pluginDir, config) {
355
+ const content = `/**
356
+ * Policy/action selection for ${config.name}
357
+ */
358
+
359
+ import type { Vector, Action } from 'agentdb/plugins';
360
+
361
+ export class PolicyFunction {
362
+ constructor(private config: any) {}
363
+
364
+ async selectAction(state: Vector, context?: any): Promise<Action> {
365
+ // ${config.algorithm.action_selection || 'epsilon_greedy'} strategy
366
+ // TODO: Implement action selection logic
367
+ return { id: 0, type: 'discrete' };
368
+ }
369
+ }
370
+ `;
371
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'src', 'policy.ts'), content, 'utf-8');
372
+ }
373
+ async function generateTestFile(pluginDir, config) {
374
+ const content = `/**
375
+ * Tests for ${config.name}
376
+ */
377
+
378
+ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
379
+ import { ${getPluginClassName(config)} } from '../src/index.js';
380
+ import type { PluginConfig } from 'agentdb/plugins';
381
+
382
+ describe('${config.name}', () => {
383
+ let plugin: ${getPluginClassName(config)};
384
+
385
+ beforeAll(async () => {
386
+ const config: PluginConfig = {
387
+ // Load from plugin.yaml
388
+ };
389
+
390
+ plugin = new ${getPluginClassName(config)}();
391
+ await plugin.initialize(config);
392
+ });
393
+
394
+ afterAll(async () => {
395
+ await plugin.destroy();
396
+ });
397
+
398
+ it('should initialize correctly', () => {
399
+ expect(plugin.name).toBe('${config.name}');
400
+ expect(plugin.version).toBe('${config.version}');
401
+ });
402
+
403
+ it('should store experiences', async () => {
404
+ const experience = {
405
+ state: new Float32Array(${config.algorithm.state_dim || 768}),
406
+ action: { id: 0, type: 'discrete' },
407
+ reward: 1.0,
408
+ nextState: new Float32Array(${config.algorithm.state_dim || 768}),
409
+ done: false,
410
+ };
411
+
412
+ await plugin.storeExperience(experience);
413
+ });
414
+
415
+ it('should select actions', async () => {
416
+ const state = new Float32Array(${config.algorithm.state_dim || 768});
417
+ const action = await plugin.selectAction(state);
418
+ expect(action).toBeDefined();
419
+ });
420
+
421
+ it('should train successfully', async () => {
422
+ const metrics = await plugin.train();
423
+ expect(metrics).toBeDefined();
424
+ });
425
+ });
426
+ `;
427
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'tests', 'plugin.test.ts'), content, 'utf-8');
428
+ }
429
+ async function generateReadme(pluginDir, config) {
430
+ const content = `# ${config.name}
431
+
432
+ ${config.description}
433
+
434
+ **Version:** ${config.version}
435
+ **Author:** ${config.author || 'Unknown'}
436
+ **Algorithm:** ${config.algorithm.base}
437
+
438
+ ## Installation
439
+
440
+ \`\`\`bash
441
+ npm install
442
+ \`\`\`
443
+
444
+ ## Usage
445
+
446
+ \`\`\`typescript
447
+ import { PluginRegistry } from 'agentdb/plugins';
448
+
449
+ // Load plugin
450
+ const plugin = await PluginRegistry.load('${config.name}');
451
+
452
+ // Initialize
453
+ await plugin.initialize(config);
454
+
455
+ // Use in your application
456
+ const action = await plugin.selectAction(state);
457
+ \`\`\`
458
+
459
+ ## Configuration
460
+
461
+ See \`plugin.yaml\` for complete configuration options.
462
+
463
+ ## Testing
464
+
465
+ \`\`\`bash
466
+ npm test
467
+ \`\`\`
468
+
469
+ ## License
470
+
471
+ MIT
472
+ `;
473
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'README.md'), content, 'utf-8');
474
+ }
475
+ async function generatePackageJson(pluginDir, config) {
476
+ const pkg = {
477
+ name: config.name,
478
+ version: config.version,
479
+ description: config.description,
480
+ type: 'module',
481
+ main: './dist/index.js',
482
+ types: './dist/index.d.ts',
483
+ scripts: {
484
+ build: 'tsc',
485
+ test: 'vitest',
486
+ 'test:coverage': 'vitest --coverage',
487
+ },
488
+ dependencies: {
489
+ 'agentdb': '^1.0.0',
490
+ },
491
+ devDependencies: {
492
+ typescript: '^5.0.0',
493
+ vitest: '^1.0.0',
494
+ '@types/node': '^20.0.0',
495
+ },
496
+ };
497
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'package.json'), JSON.stringify(pkg, null, 2), 'utf-8');
498
+ }
499
+ async function generateTsConfig(pluginDir) {
500
+ const tsconfig = {
501
+ compilerOptions: {
502
+ target: 'ES2022',
503
+ module: 'ESNext',
504
+ moduleResolution: 'bundler',
505
+ declaration: true,
506
+ outDir: './dist',
507
+ strict: true,
508
+ esModuleInterop: true,
509
+ skipLibCheck: true,
510
+ forceConsistentCasingInFileNames: true,
511
+ },
512
+ include: ['src/**/*'],
513
+ exclude: ['node_modules', 'dist', 'tests'],
514
+ };
515
+ await promises_1.default.writeFile(path_1.default.join(pluginDir, 'tsconfig.json'), JSON.stringify(tsconfig, null, 2), 'utf-8');
516
+ }
517
+ // Helper functions
518
+ function getPluginClassName(config) {
519
+ return config.name
520
+ .split('-')
521
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
522
+ .join('') + 'Plugin';
523
+ }
524
+ function getAgentClassName(config) {
525
+ return config.name
526
+ .split('-')
527
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
528
+ .join('') + 'Agent';
529
+ }
530
+ function generateAlgorithmImplementation(config) {
531
+ switch (config.algorithm.base) {
532
+ case 'q_learning':
533
+ return {
534
+ fields: ` private qTable: Map<string, number[]>;\n private epsilon: number;`,
535
+ initialization: ` this.qTable = new Map();\n this.epsilon = ${config.algorithm.epsilon_start || 1.0};`,
536
+ onStoreExperience: ` // Update Q-values if needed`,
537
+ training: ` const metrics = { loss: 0, epsilon: this.epsilon };\n // TODO: Implement Q-learning training\n return metrics;`,
538
+ };
539
+ case 'decision_transformer':
540
+ return {
541
+ fields: ` private model: any; // Neural network model`,
542
+ initialization: ` // Initialize Decision Transformer model`,
543
+ onStoreExperience: ` // Store trajectory for training`,
544
+ training: ` const metrics = { loss: 0 };\n // TODO: Implement Decision Transformer training\n return metrics;`,
545
+ };
546
+ default:
547
+ return {
548
+ fields: '',
549
+ initialization: '',
550
+ onStoreExperience: '',
551
+ training: ` const metrics = {};\n // TODO: Implement training logic\n return metrics;`,
552
+ };
553
+ }
554
+ }
555
+ function generateDefaultReward(type) {
556
+ switch (type) {
557
+ case 'success_based':
558
+ return 'return outcome.success ? 1.0 : -1.0;';
559
+ case 'time_aware':
560
+ return `const base = outcome.success ? 1.0 : -1.0;\nconst timePenalty = -0.1 * (context.duration / 1000);\nreturn base + timePenalty;`;
561
+ case 'token_aware':
562
+ return `const base = outcome.success ? 1.0 : -1.0;\nconst tokenPenalty = -0.01 * (context.tokensUsed / 100);\nreturn base + tokenPenalty;`;
563
+ default:
564
+ return 'return outcome.success ? 1.0 : -1.0;';
565
+ }
566
+ }
567
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/cli/generator.ts"],"names":[],"mappings":"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"}