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,379 @@
1
+ "use strict";
2
+ /**
3
+ * Neural Architecture Search (NAS) Plugin
4
+ *
5
+ * Implements automated neural architecture optimization using
6
+ * evolutionary algorithms and reinforcement learning.
7
+ *
8
+ * Key features:
9
+ * - Architecture encoding and mutation
10
+ * - Population-based search
11
+ * - Performance prediction
12
+ * - Efficient architecture evaluation
13
+ * - Transfer learning from meta-architectures
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.NeuralArchitectureSearchPlugin = void 0;
17
+ const base_plugin_1 = require("../base-plugin");
18
+ /**
19
+ * Neural Architecture Search Plugin Implementation
20
+ */
21
+ class NeuralArchitectureSearchPlugin extends base_plugin_1.BasePlugin {
22
+ constructor(config) {
23
+ super();
24
+ this.name = 'neural-architecture-search';
25
+ this.version = '1.0.0';
26
+ this.experiences = [];
27
+ this.strategy = 'evolutionary';
28
+ this.population = [];
29
+ this.populationSize = 20;
30
+ this.eliteSize = 5;
31
+ this.mutationRate = 0.2;
32
+ this.crossoverRate = 0.7;
33
+ // Search space constraints
34
+ this.maxLayers = 10;
35
+ this.maxNodesPerLayer = 512;
36
+ this.layerTypes = ['dense', 'conv', 'dropout', 'batchnorm'];
37
+ // Performance tracking
38
+ this.bestArchitecture = null;
39
+ this.generation = 0;
40
+ this.evaluationHistory = new Map();
41
+ if (config) {
42
+ this.strategy = config.strategy || 'evolutionary';
43
+ this.populationSize = config.populationSize || 20;
44
+ this.mutationRate = config.mutationRate || 0.2;
45
+ this.maxLayers = config.maxLayers || 10;
46
+ }
47
+ this.initializePopulation();
48
+ // Mark as initialized for in-memory operation
49
+ this.initialized = true;
50
+ }
51
+ /**
52
+ * Override to skip initialization check for in-memory operation
53
+ */
54
+ checkInitialized() {
55
+ // No-op for NAS - operates in-memory
56
+ }
57
+ /**
58
+ * Override to store experiences in-memory without vectorDB
59
+ */
60
+ /**
61
+ * Override selectAction to provide base implementation
62
+ */
63
+ async selectAction(state, context) {
64
+ // Simple default action selection
65
+ const stateArray = Array.isArray(state) ? state : [state];
66
+ const stateSum = stateArray.reduce((a, b) => a + b, 0);
67
+ const value = Math.tanh(stateSum / stateArray.length);
68
+ return {
69
+ id: String(Math.floor(Math.abs(value) * 10)),
70
+ embedding: stateArray,
71
+ confidence: Math.abs(value),
72
+ };
73
+ }
74
+ async storeExperience(experience) {
75
+ this.experiences.push(experience);
76
+ }
77
+ /**
78
+ * Override to retrieve from local experiences
79
+ */
80
+ async retrieveSimilar(state, k) {
81
+ return this.experiences.slice(0, k).map((exp, idx) => ({
82
+ id: exp.id || `exp-${idx}`,
83
+ embedding: exp.state,
84
+ metadata: exp,
85
+ score: 1.0 - (idx * 0.1),
86
+ }));
87
+ }
88
+ /**
89
+ * Initialize random population
90
+ */
91
+ initializePopulation() {
92
+ for (let i = 0; i < this.populationSize; i++) {
93
+ this.population.push(this.generateRandomArchitecture());
94
+ }
95
+ }
96
+ /**
97
+ * Generate random architecture
98
+ */
99
+ generateRandomArchitecture() {
100
+ // Ensure numLayers is between 2 and maxLayers (inclusive)
101
+ const numLayers = 2 + Math.floor(Math.random() * (this.maxLayers - 1));
102
+ const layers = [];
103
+ for (let i = 0; i < numLayers; i++) {
104
+ layers.push(this.generateRandomLayer());
105
+ }
106
+ return {
107
+ id: this.generateArchitectureId(layers),
108
+ layers,
109
+ fitness: 0,
110
+ complexity: this.calculateComplexity(layers),
111
+ generation: this.generation,
112
+ };
113
+ }
114
+ /**
115
+ * Generate random layer
116
+ */
117
+ generateRandomLayer() {
118
+ const type = this.layerTypes[Math.floor(Math.random() * this.layerTypes.length)];
119
+ const spec = { type };
120
+ switch (type) {
121
+ case 'dense':
122
+ spec.size = Math.pow(2, Math.floor(Math.random() * 6) + 5); // 32 to 512
123
+ spec.activation = ['relu', 'tanh', 'sigmoid', 'leaky_relu'][Math.floor(Math.random() * 4)];
124
+ break;
125
+ case 'conv':
126
+ spec.size = Math.pow(2, Math.floor(Math.random() * 5) + 4); // 16 to 256
127
+ spec.kernelSize = [3, 5, 7][Math.floor(Math.random() * 3)];
128
+ spec.activation = 'relu';
129
+ break;
130
+ case 'dropout':
131
+ spec.dropout = 0.1 + Math.random() * 0.4; // 0.1 to 0.5
132
+ break;
133
+ case 'batchnorm':
134
+ // No additional params
135
+ break;
136
+ }
137
+ return spec;
138
+ }
139
+ /**
140
+ * Generate unique ID for architecture
141
+ */
142
+ generateArchitectureId(layers) {
143
+ const signature = layers.map(l => `${l.type}-${l.size || 0}-${l.activation || 'none'}`).join('|');
144
+ return Buffer.from(signature).toString('base64').substring(0, 16);
145
+ }
146
+ /**
147
+ * Calculate architecture complexity
148
+ */
149
+ calculateComplexity(layers) {
150
+ let params = 0;
151
+ for (let i = 0; i < layers.length - 1; i++) {
152
+ const current = layers[i];
153
+ const next = layers[i + 1];
154
+ if (current.type === 'dense' && next.type === 'dense') {
155
+ params += (current.size || 128) * (next.size || 128);
156
+ }
157
+ else if (current.type === 'conv') {
158
+ const kernelSize = current.kernelSize || 3;
159
+ params += kernelSize * kernelSize * (current.size || 64);
160
+ }
161
+ }
162
+ // Ensure minimum complexity: count layer sizes or base complexity per layer
163
+ if (params === 0 && layers.length > 0) {
164
+ const totalSize = layers.reduce((sum, layer) => sum + (layer.size || 0), 0);
165
+ // If no sized layers, use layer count as base complexity
166
+ params = totalSize > 0 ? totalSize : layers.length * 10;
167
+ }
168
+ return params;
169
+ }
170
+ /**
171
+ * Evaluate architecture fitness
172
+ */
173
+ async evaluateArchitecture(arch) {
174
+ // Check cache
175
+ if (this.evaluationHistory.has(arch.id)) {
176
+ return this.evaluationHistory.get(arch.id);
177
+ }
178
+ // Simplified fitness: combination of performance and complexity
179
+ const performanceScore = await this.estimatePerformance(arch);
180
+ const complexityPenalty = Math.log(arch.complexity + 1) / 20;
181
+ const fitness = performanceScore - complexityPenalty;
182
+ this.evaluationHistory.set(arch.id, fitness);
183
+ return fitness;
184
+ }
185
+ /**
186
+ * Estimate architecture performance (simplified)
187
+ */
188
+ async estimatePerformance(arch) {
189
+ // In real NAS: would train architecture and evaluate
190
+ // Here: simplified heuristic
191
+ let score = 0.5;
192
+ // Favor architectures with reasonable depth
193
+ const optimalDepth = 5;
194
+ const depthScore = 1 - Math.abs(arch.layers.length - optimalDepth) / optimalDepth;
195
+ score += depthScore * 0.2;
196
+ // Favor architectures with batch norm
197
+ const hasBatchNorm = arch.layers.some(l => l.type === 'batchnorm');
198
+ if (hasBatchNorm)
199
+ score += 0.1;
200
+ // Favor ReLU activations
201
+ const reluLayers = arch.layers.filter(l => l.activation === 'relu').length;
202
+ score += (reluLayers / arch.layers.length) * 0.1;
203
+ // Favor dropout for regularization
204
+ const hasDropout = arch.layers.some(l => l.type === 'dropout');
205
+ if (hasDropout)
206
+ score += 0.1;
207
+ // Add randomness to simulate training variance
208
+ score += (Math.random() - 0.5) * 0.1;
209
+ return Math.max(0, Math.min(1, score));
210
+ }
211
+ /**
212
+ * Mutate architecture
213
+ */
214
+ mutate(arch) {
215
+ const layers = [...arch.layers];
216
+ const mutationType = Math.random();
217
+ if (mutationType < 0.33 && layers.length < this.maxLayers) {
218
+ // Add layer
219
+ const position = Math.floor(Math.random() * layers.length);
220
+ layers.splice(position, 0, this.generateRandomLayer());
221
+ }
222
+ else if (mutationType < 0.66 && layers.length > 2) {
223
+ // Remove layer
224
+ const position = Math.floor(Math.random() * layers.length);
225
+ layers.splice(position, 1);
226
+ }
227
+ else {
228
+ // Modify layer
229
+ const position = Math.floor(Math.random() * layers.length);
230
+ layers[position] = this.generateRandomLayer();
231
+ }
232
+ return {
233
+ id: this.generateArchitectureId(layers),
234
+ layers,
235
+ fitness: 0,
236
+ complexity: this.calculateComplexity(layers),
237
+ generation: this.generation + 1,
238
+ };
239
+ }
240
+ /**
241
+ * Crossover two architectures
242
+ */
243
+ crossover(parent1, parent2) {
244
+ const point = Math.floor(Math.random() * Math.min(parent1.layers.length, parent2.layers.length));
245
+ const layers = [
246
+ ...parent1.layers.slice(0, point),
247
+ ...parent2.layers.slice(point),
248
+ ];
249
+ return {
250
+ id: this.generateArchitectureId(layers),
251
+ layers,
252
+ fitness: 0,
253
+ complexity: this.calculateComplexity(layers),
254
+ generation: this.generation + 1,
255
+ };
256
+ }
257
+ /**
258
+ * Select parent using tournament selection
259
+ */
260
+ selectParent() {
261
+ const tournamentSize = 3;
262
+ const tournament = [];
263
+ for (let i = 0; i < tournamentSize; i++) {
264
+ const idx = Math.floor(Math.random() * this.population.length);
265
+ tournament.push(this.population[idx]);
266
+ }
267
+ tournament.sort((a, b) => b.fitness - a.fitness);
268
+ return tournament[0];
269
+ }
270
+ /**
271
+ * Evolve population for one generation
272
+ */
273
+ async evolveGeneration() {
274
+ // Evaluate all architectures
275
+ for (const arch of this.population) {
276
+ arch.fitness = await this.evaluateArchitecture(arch);
277
+ }
278
+ // Sort by fitness
279
+ this.population.sort((a, b) => b.fitness - a.fitness);
280
+ // Update best
281
+ if (!this.bestArchitecture || this.population[0].fitness > this.bestArchitecture.fitness) {
282
+ this.bestArchitecture = { ...this.population[0] };
283
+ }
284
+ // Create next generation
285
+ const nextGeneration = [];
286
+ // Elitism: keep best architectures
287
+ const eliteCount = Math.min(this.eliteSize, this.population.length);
288
+ for (let i = 0; i < eliteCount; i++) {
289
+ nextGeneration.push({ ...this.population[i] });
290
+ }
291
+ // Generate offspring
292
+ while (nextGeneration.length < this.populationSize) {
293
+ if (Math.random() < this.crossoverRate) {
294
+ // Crossover
295
+ const parent1 = this.selectParent();
296
+ const parent2 = this.selectParent();
297
+ let offspring = this.crossover(parent1, parent2);
298
+ if (Math.random() < this.mutationRate) {
299
+ offspring = this.mutate(offspring);
300
+ }
301
+ nextGeneration.push(offspring);
302
+ }
303
+ else {
304
+ // Mutation only
305
+ const parent = this.selectParent();
306
+ nextGeneration.push(this.mutate(parent));
307
+ }
308
+ }
309
+ this.population = nextGeneration;
310
+ this.generation++;
311
+ }
312
+ /**
313
+ * Train using NAS
314
+ */
315
+ async train(options) {
316
+ const startTime = Date.now();
317
+ const generations = options?.epochs !== undefined ? options.epochs : 20;
318
+ for (let gen = 0; gen < generations; gen++) {
319
+ await this.evolveGeneration();
320
+ }
321
+ const duration = Date.now() - startTime;
322
+ return {
323
+ loss: this.bestArchitecture ? 1 - this.bestArchitecture.fitness : 1,
324
+ experiencesProcessed: this.evaluationHistory.size,
325
+ duration,
326
+ generation: this.generation,
327
+ bestFitness: this.bestArchitecture?.fitness || 0,
328
+ bestComplexity: this.bestArchitecture?.complexity || 0,
329
+ populationDiversity: this.calculatePopulationDiversity(),
330
+ };
331
+ }
332
+ /**
333
+ * Calculate population diversity
334
+ */
335
+ calculatePopulationDiversity() {
336
+ const uniqueIds = new Set(this.population.map((a) => a.id));
337
+ return uniqueIds.size / this.population.length;
338
+ }
339
+ /**
340
+ * Get best architecture
341
+ */
342
+ getBestArchitecture() {
343
+ return this.bestArchitecture;
344
+ }
345
+ /**
346
+ * Export architecture as JSON
347
+ */
348
+ exportArchitecture(arch) {
349
+ return JSON.stringify({
350
+ id: arch.id,
351
+ layers: arch.layers,
352
+ fitness: arch.fitness,
353
+ complexity: arch.complexity,
354
+ generation: arch.generation,
355
+ }, null, 2);
356
+ }
357
+ /**
358
+ * Import architecture from JSON
359
+ */
360
+ importArchitecture(json) {
361
+ return JSON.parse(json);
362
+ }
363
+ /**
364
+ * Get search statistics
365
+ */
366
+ getSearchStats() {
367
+ const avgComplexity = this.population.reduce((sum, a) => sum + a.complexity, 0)
368
+ / this.population.length;
369
+ return {
370
+ generation: this.generation,
371
+ evaluations: this.evaluationHistory.size,
372
+ bestFitness: this.bestArchitecture?.fitness || 0,
373
+ populationDiversity: this.calculatePopulationDiversity(),
374
+ avgComplexity,
375
+ };
376
+ }
377
+ }
378
+ exports.NeuralArchitectureSearchPlugin = NeuralArchitectureSearchPlugin;
379
+ //# sourceMappingURL=neural-architecture-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neural-architecture-search.js","sourceRoot":"","sources":["../../../src/plugins/implementations/neural-architecture-search.ts"],"names":[],"mappings":"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"}