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,364 @@
1
+ /**
2
+ * Multi-Task Learning Plugin
3
+ *
4
+ * Implements learning across multiple related tasks simultaneously,
5
+ * leveraging shared representations and transfer learning.
6
+ *
7
+ * Key features:
8
+ * - Shared and task-specific layers
9
+ * - Task weighting and balancing
10
+ * - Hard and soft parameter sharing
11
+ * - Auxiliary task learning
12
+ * - Task relationship modeling
13
+ */
14
+ import { BasePlugin } from '../base-plugin.mjs';
15
+ /**
16
+ * Multi-Task Learning Plugin Implementation
17
+ */
18
+ export class MultiTaskLearningPlugin extends BasePlugin {
19
+ constructor(config) {
20
+ super();
21
+ this.name = 'multi-task-learning';
22
+ this.version = '1.0.0';
23
+ this.experiences = [];
24
+ this.tasks = new Map();
25
+ this.sharingStrategy = 'hard_sharing';
26
+ // Shared representations
27
+ this.sharedWeights = new Map();
28
+ this.taskSpecificWeights = new Map();
29
+ // Task relationships
30
+ this.taskSimilarity = new Map();
31
+ this.auxiliaryTasks = new Set();
32
+ // Training parameters
33
+ this.uncertaintyWeighting = true;
34
+ this.gradientNormalization = true;
35
+ if (config) {
36
+ this.sharingStrategy = config.sharingStrategy || 'hard_sharing';
37
+ this.uncertaintyWeighting = config.uncertaintyWeighting !== false;
38
+ }
39
+ this.initializeSharedLayers();
40
+ // Mark as initialized for in-memory operation
41
+ this.initialized = true;
42
+ }
43
+ /**
44
+ * Override to skip initialization check for in-memory operation
45
+ */
46
+ checkInitialized() {
47
+ // No-op for multi-task learning - operates in-memory
48
+ }
49
+ /**
50
+ * Encode state to fixed dimension
51
+ */
52
+ encodeState(state) {
53
+ // Simple state encoding - ensure fixed dimension
54
+ const targetDim = 128;
55
+ if (state.length >= targetDim) {
56
+ return state.slice(0, targetDim);
57
+ }
58
+ // Pad if too short
59
+ const encoded = [...state];
60
+ while (encoded.length < targetDim) {
61
+ encoded.push(0);
62
+ }
63
+ return encoded;
64
+ }
65
+ /**
66
+ * Override selectAction to provide base implementation
67
+ */
68
+ async selectAction(state, context) {
69
+ // Simple default action selection
70
+ const stateArray = Array.isArray(state) ? state : [state];
71
+ const stateSum = stateArray.reduce((a, b) => a + b, 0);
72
+ const value = Math.tanh(stateSum / stateArray.length);
73
+ return {
74
+ id: String(Math.floor(Math.abs(value) * 10)),
75
+ embedding: stateArray,
76
+ confidence: Math.abs(value),
77
+ };
78
+ }
79
+ /**
80
+ * Override to store experiences in-memory without vectorDB
81
+ */
82
+ async storeExperience(experience) {
83
+ this.experiences.push(experience);
84
+ const taskId = experience.metadata?.taskId;
85
+ if (taskId && this.tasks.has(taskId)) {
86
+ // Update task performance
87
+ const task = this.tasks.get(taskId);
88
+ const alpha = 0.1;
89
+ const success = experience.reward > 0 ? 1 : 0;
90
+ task.performance = (1 - alpha) * task.performance + alpha * success;
91
+ }
92
+ }
93
+ /**
94
+ * Override to retrieve from local experiences
95
+ */
96
+ async retrieveSimilar(state, k) {
97
+ return this.experiences.slice(0, k).map((exp, idx) => ({
98
+ id: exp.id || `exp-${idx}`,
99
+ embedding: exp.state,
100
+ metadata: exp,
101
+ score: 1.0 - (idx * 0.1),
102
+ }));
103
+ }
104
+ /**
105
+ * Initialize shared layers
106
+ */
107
+ initializeSharedLayers() {
108
+ // Shared representation layers
109
+ for (let layer = 0; layer < 3; layer++) {
110
+ const size = [256, 128, 64][layer];
111
+ const weights = new Array(size).fill(0).map(() => Math.random() * 0.1 - 0.05);
112
+ this.sharedWeights.set(`shared_${layer}`, weights);
113
+ }
114
+ }
115
+ /**
116
+ * Add task to multi-task learning
117
+ */
118
+ addTask(taskId, name, priority = 1.0, isAuxiliary = false) {
119
+ this.tasks.set(taskId, {
120
+ id: taskId,
121
+ name,
122
+ priority,
123
+ weight: 1.0,
124
+ performance: 0,
125
+ });
126
+ if (isAuxiliary) {
127
+ this.auxiliaryTasks.add(taskId);
128
+ }
129
+ // Initialize task-specific layers
130
+ const taskLayers = new Map();
131
+ taskLayers.set('task_head', new Array(64).fill(0).map(() => Math.random() * 0.1 - 0.05));
132
+ this.taskSpecificWeights.set(taskId, taskLayers);
133
+ }
134
+ /**
135
+ * Compute task similarity
136
+ */
137
+ computeTaskSimilarity(task1Id, task2Id) {
138
+ const experiences1 = this.getTaskExperiences(task1Id);
139
+ const experiences2 = this.getTaskExperiences(task2Id);
140
+ if (experiences1.length === 0 || experiences2.length === 0) {
141
+ return 0.5;
142
+ }
143
+ // Compute average state embeddings
144
+ const avg1 = this.averageEmbedding(experiences1.map(e => e.state));
145
+ const avg2 = this.averageEmbedding(experiences2.map(e => e.state));
146
+ // Cosine similarity
147
+ return this.cosineSimilarity(avg1, avg2);
148
+ }
149
+ /**
150
+ * Get experiences for specific task
151
+ */
152
+ getTaskExperiences(taskId) {
153
+ // Simplified: return empty array
154
+ return [];
155
+ }
156
+ /**
157
+ * Average embedding
158
+ */
159
+ averageEmbedding(embeddings) {
160
+ if (embeddings.length === 0) {
161
+ return [];
162
+ }
163
+ const avg = new Array(embeddings[0].length).fill(0);
164
+ embeddings.forEach(emb => {
165
+ for (let i = 0; i < emb.length; i++) {
166
+ avg[i] += emb[i];
167
+ }
168
+ });
169
+ return avg.map(v => v / embeddings.length);
170
+ }
171
+ /**
172
+ * Cosine similarity
173
+ */
174
+ cosineSimilarity(a, b) {
175
+ let dot = 0;
176
+ let magA = 0;
177
+ let magB = 0;
178
+ for (let i = 0; i < Math.min(a.length, b.length); i++) {
179
+ dot += a[i] * b[i];
180
+ magA += a[i] * a[i];
181
+ magB += b[i] * b[i];
182
+ }
183
+ return dot / (Math.sqrt(magA) * Math.sqrt(magB) + 1e-8);
184
+ }
185
+ /**
186
+ * Compute automatic task weights using uncertainty
187
+ */
188
+ computeUncertaintyWeights() {
189
+ // Multi-task uncertainty weighting (Kendall et al., 2018)
190
+ const logVars = new Map();
191
+ this.tasks.forEach((task, taskId) => {
192
+ // Estimate log variance from task performance
193
+ const logVar = Math.log(1 - task.performance + 1e-8);
194
+ logVars.set(taskId, logVar);
195
+ });
196
+ // Compute weights
197
+ this.tasks.forEach((task, taskId) => {
198
+ const logVar = logVars.get(taskId);
199
+ task.weight = Math.exp(-logVar);
200
+ });
201
+ }
202
+ /**
203
+ * Normalize gradients across tasks
204
+ */
205
+ normalizeGradients(gradients) {
206
+ if (!this.gradientNormalization) {
207
+ return gradients;
208
+ }
209
+ const normalized = new Map();
210
+ // Compute gradient norms
211
+ const norms = new Map();
212
+ gradients.forEach((grad, taskId) => {
213
+ const norm = Math.sqrt(grad.reduce((sum, g) => sum + g * g, 0));
214
+ norms.set(taskId, norm);
215
+ });
216
+ // Normalize to unit norm
217
+ gradients.forEach((grad, taskId) => {
218
+ const norm = norms.get(taskId);
219
+ normalized.set(taskId, grad.map(g => g / (norm + 1e-8)));
220
+ });
221
+ return normalized;
222
+ }
223
+ /**
224
+ * Forward pass through shared and task-specific layers
225
+ */
226
+ async forwardMultiTask(state, taskId) {
227
+ let activation = this.encodeState(state);
228
+ // Shared layers
229
+ this.sharedWeights.forEach(weights => {
230
+ activation = this.forward(activation, weights);
231
+ });
232
+ // Task-specific layers
233
+ const taskWeights = this.taskSpecificWeights.get(taskId);
234
+ if (taskWeights) {
235
+ taskWeights.forEach(weights => {
236
+ activation = this.forward(activation, weights);
237
+ });
238
+ }
239
+ return activation[0] || 0;
240
+ }
241
+ /**
242
+ * Forward pass through layer
243
+ */
244
+ forward(input, weights) {
245
+ const output = new Array(weights.length).fill(0);
246
+ for (let i = 0; i < output.length; i++) {
247
+ output[i] = input[i % input.length] * weights[i];
248
+ output[i] = Math.tanh(output[i]); // Activation
249
+ }
250
+ return output;
251
+ }
252
+ /**
253
+ * Train across multiple tasks
254
+ */
255
+ async train(options) {
256
+ const startTime = Date.now();
257
+ const epochs = options?.epochs || 50;
258
+ const batchSize = options?.batchSize || 32;
259
+ let totalLoss = 0;
260
+ const taskLosses = new Map();
261
+ let experiencesProcessed = 0;
262
+ for (let epoch = 0; epoch < epochs; epoch++) {
263
+ // Update task weights if using uncertainty weighting
264
+ if (this.uncertaintyWeighting) {
265
+ this.computeUncertaintyWeights();
266
+ }
267
+ const taskGradients = new Map();
268
+ // Train on each task
269
+ for (const [taskId, task] of this.tasks) {
270
+ // Skip auxiliary tasks with low priority
271
+ if (this.auxiliaryTasks.has(taskId) && task.priority < 0.5) {
272
+ continue;
273
+ }
274
+ // Retrieve task-specific experiences from local storage
275
+ const experiences = await this.retrieveSimilar(new Array(128).fill(0), batchSize);
276
+ const taskExps = experiences
277
+ .filter(e => e.metadata?.metadata?.taskId === taskId)
278
+ .map(e => ({
279
+ state: e.metadata.state,
280
+ action: { id: '0', embedding: e.metadata.state },
281
+ reward: e.metadata?.reward || 0,
282
+ nextState: e.metadata?.nextState || e.metadata.state,
283
+ done: e.metadata?.done || false,
284
+ metadata: e.metadata,
285
+ }));
286
+ let taskLoss = 0;
287
+ // Compute gradients for task
288
+ const gradients = new Array(256).fill(0);
289
+ for (const exp of taskExps) {
290
+ const prediction = await this.forwardMultiTask(exp.state, taskId);
291
+ const loss = Math.pow(prediction - exp.reward, 2);
292
+ taskLoss += loss * task.weight;
293
+ experiencesProcessed++;
294
+ // Simplified gradient
295
+ for (let i = 0; i < gradients.length; i++) {
296
+ gradients[i] += (prediction - exp.reward) * exp.state[i % exp.state.length];
297
+ }
298
+ }
299
+ taskGradients.set(taskId, gradients);
300
+ taskLosses.set(taskId, taskLoss / Math.max(1, taskExps.length));
301
+ totalLoss += taskLoss;
302
+ }
303
+ // Normalize gradients
304
+ const normalizedGradients = this.normalizeGradients(taskGradients);
305
+ // Update shared weights with aggregated gradients
306
+ normalizedGradients.forEach((gradients, taskId) => {
307
+ const task = this.tasks.get(taskId);
308
+ this.sharedWeights.forEach((weights, layer) => {
309
+ for (let i = 0; i < weights.length; i++) {
310
+ weights[i] -= 0.01 * task.weight * gradients[i % gradients.length];
311
+ }
312
+ });
313
+ });
314
+ }
315
+ const duration = Date.now() - startTime;
316
+ const metrics = {
317
+ loss: totalLoss / Math.max(1, experiencesProcessed),
318
+ experiencesProcessed,
319
+ duration,
320
+ taskLosses: Object.fromEntries(taskLosses),
321
+ };
322
+ return metrics;
323
+ }
324
+ /**
325
+ * Get task statistics
326
+ */
327
+ getTaskStats() {
328
+ return Array.from(this.tasks.values()).map(task => ({
329
+ id: task.id,
330
+ name: task.name,
331
+ performance: task.performance,
332
+ weight: task.weight,
333
+ priority: task.priority,
334
+ }));
335
+ }
336
+ /**
337
+ * Get task relationship matrix
338
+ */
339
+ getTaskRelationships() {
340
+ const relationships = new Map();
341
+ this.tasks.forEach((_, task1Id) => {
342
+ const similarities = new Map();
343
+ this.tasks.forEach((_, task2Id) => {
344
+ if (task1Id !== task2Id) {
345
+ similarities.set(task2Id, this.computeTaskSimilarity(task1Id, task2Id));
346
+ }
347
+ });
348
+ relationships.set(task1Id, similarities);
349
+ });
350
+ return relationships;
351
+ }
352
+ /**
353
+ * Select action for specific task
354
+ */
355
+ async selectActionForTask(state, taskId, context) {
356
+ const prediction = await this.forwardMultiTask(state, taskId);
357
+ return {
358
+ id: String(Math.floor(Math.abs(prediction) * 10)),
359
+ embedding: Array.isArray(state) ? state : [state],
360
+ confidence: Math.abs(prediction),
361
+ metadata: { taskId },
362
+ };
363
+ }
364
+ }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Neural Architecture Search (NAS) Plugin
3
+ *
4
+ * Implements automated neural architecture optimization using
5
+ * evolutionary algorithms and reinforcement learning.
6
+ *
7
+ * Key features:
8
+ * - Architecture encoding and mutation
9
+ * - Population-based search
10
+ * - Performance prediction
11
+ * - Efficient architecture evaluation
12
+ * - Transfer learning from meta-architectures
13
+ */
14
+ import { BasePlugin } from '../base-plugin';
15
+ import { Action, Context, Experience, TrainOptions, TrainingMetrics } from '../learning-plugin.interface';
16
+ /**
17
+ * Layer specification
18
+ */
19
+ interface LayerSpec {
20
+ type: 'dense' | 'conv' | 'pool' | 'dropout' | 'batchnorm';
21
+ size?: number;
22
+ activation?: 'relu' | 'tanh' | 'sigmoid' | 'leaky_relu';
23
+ dropout?: number;
24
+ kernelSize?: number;
25
+ }
26
+ /**
27
+ * Architecture specification
28
+ */
29
+ interface Architecture {
30
+ id: string;
31
+ layers: LayerSpec[];
32
+ fitness: number;
33
+ complexity: number;
34
+ generation: number;
35
+ }
36
+ /**
37
+ * Neural Architecture Search Plugin Implementation
38
+ */
39
+ export declare class NeuralArchitectureSearchPlugin extends BasePlugin {
40
+ name: string;
41
+ version: string;
42
+ private experiences;
43
+ private strategy;
44
+ private population;
45
+ private populationSize;
46
+ private eliteSize;
47
+ private mutationRate;
48
+ private crossoverRate;
49
+ private maxLayers;
50
+ private maxNodesPerLayer;
51
+ private layerTypes;
52
+ private bestArchitecture;
53
+ private generation;
54
+ private evaluationHistory;
55
+ constructor(config?: Partial<any>);
56
+ /**
57
+ * Override to skip initialization check for in-memory operation
58
+ */
59
+ protected checkInitialized(): void;
60
+ /**
61
+ * Override to store experiences in-memory without vectorDB
62
+ */
63
+ /**
64
+ * Override selectAction to provide base implementation
65
+ */
66
+ selectAction(state: number[] | any, context?: Context): Promise<Action>;
67
+ storeExperience(experience: Experience): Promise<void>;
68
+ /**
69
+ * Override to retrieve from local experiences
70
+ */
71
+ retrieveSimilar(state: number[], k: number): Promise<import('../..').SearchResult<Experience>[]>;
72
+ /**
73
+ * Initialize random population
74
+ */
75
+ private initializePopulation;
76
+ /**
77
+ * Generate random architecture
78
+ */
79
+ private generateRandomArchitecture;
80
+ /**
81
+ * Generate random layer
82
+ */
83
+ private generateRandomLayer;
84
+ /**
85
+ * Generate unique ID for architecture
86
+ */
87
+ private generateArchitectureId;
88
+ /**
89
+ * Calculate architecture complexity
90
+ */
91
+ private calculateComplexity;
92
+ /**
93
+ * Evaluate architecture fitness
94
+ */
95
+ private evaluateArchitecture;
96
+ /**
97
+ * Estimate architecture performance (simplified)
98
+ */
99
+ private estimatePerformance;
100
+ /**
101
+ * Mutate architecture
102
+ */
103
+ private mutate;
104
+ /**
105
+ * Crossover two architectures
106
+ */
107
+ private crossover;
108
+ /**
109
+ * Select parent using tournament selection
110
+ */
111
+ private selectParent;
112
+ /**
113
+ * Evolve population for one generation
114
+ */
115
+ private evolveGeneration;
116
+ /**
117
+ * Train using NAS
118
+ */
119
+ train(options?: TrainOptions): Promise<TrainingMetrics>;
120
+ /**
121
+ * Calculate population diversity
122
+ */
123
+ private calculatePopulationDiversity;
124
+ /**
125
+ * Get best architecture
126
+ */
127
+ getBestArchitecture(): Architecture | null;
128
+ /**
129
+ * Export architecture as JSON
130
+ */
131
+ exportArchitecture(arch: Architecture): string;
132
+ /**
133
+ * Import architecture from JSON
134
+ */
135
+ importArchitecture(json: string): Architecture;
136
+ /**
137
+ * Get search statistics
138
+ */
139
+ getSearchStats(): {
140
+ generation: number;
141
+ evaluations: number;
142
+ bestFitness: number;
143
+ populationDiversity: number;
144
+ avgComplexity: number;
145
+ };
146
+ }
147
+ export {};
148
+ //# sourceMappingURL=neural-architecture-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neural-architecture-search.d.ts","sourceRoot":"","sources":["../../../src/plugins/implementations/neural-architecture-search.ts"],"names":[],"mappings":"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"}