@sparkleideas/cli 3.1.0-alpha.19 → 3.1.0-alpha.21

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 (682) hide show
  1. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  2. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  3. package/dist/src/appliance/gguf-engine.js +425 -0
  4. package/dist/src/appliance/gguf-engine.js.map +1 -0
  5. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  7. package/dist/src/appliance/ruvllm-bridge.js +292 -0
  8. package/dist/src/appliance/ruvllm-bridge.js.map +1 -0
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  11. package/dist/src/appliance/rvfa-builder.js +329 -0
  12. package/dist/src/appliance/rvfa-builder.js.map +1 -0
  13. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  15. package/dist/src/appliance/rvfa-distribution.js +370 -0
  16. package/dist/src/appliance/rvfa-distribution.js.map +1 -0
  17. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  18. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  19. package/dist/src/appliance/rvfa-format.js +393 -0
  20. package/dist/src/appliance/rvfa-format.js.map +1 -0
  21. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  23. package/dist/src/appliance/rvfa-runner.js +237 -0
  24. package/dist/src/appliance/rvfa-runner.js.map +1 -0
  25. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  27. package/dist/src/appliance/rvfa-signing.js +347 -0
  28. package/dist/src/appliance/rvfa-signing.js.map +1 -0
  29. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  30. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  31. package/dist/src/benchmarks/pretrain/index.js +404 -0
  32. package/dist/src/benchmarks/pretrain/index.js.map +1 -0
  33. package/dist/src/commands/agent.d.ts +8 -0
  34. package/dist/src/commands/agent.d.ts.map +1 -0
  35. package/dist/src/commands/agent.js +819 -0
  36. package/dist/src/commands/agent.js.map +1 -0
  37. package/dist/src/commands/analyze.d.ts +19 -0
  38. package/dist/src/commands/analyze.d.ts.map +1 -0
  39. package/dist/src/commands/analyze.js +1823 -0
  40. package/dist/src/commands/analyze.js.map +1 -0
  41. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  42. package/dist/src/commands/appliance-advanced.d.ts.map +1 -0
  43. package/dist/src/commands/appliance-advanced.js +215 -0
  44. package/dist/src/commands/appliance-advanced.js.map +1 -0
  45. package/dist/src/commands/appliance.d.ts +8 -0
  46. package/dist/src/commands/appliance.d.ts.map +1 -0
  47. package/dist/src/commands/appliance.js +406 -0
  48. package/dist/src/commands/appliance.js.map +1 -0
  49. package/dist/src/commands/benchmark.d.ts +10 -0
  50. package/dist/src/commands/benchmark.d.ts.map +1 -0
  51. package/dist/src/commands/benchmark.js +459 -0
  52. package/dist/src/commands/benchmark.js.map +1 -0
  53. package/dist/src/commands/categories.d.ts +75 -0
  54. package/dist/src/commands/categories.d.ts.map +1 -0
  55. package/dist/src/commands/categories.js +178 -0
  56. package/dist/src/commands/categories.js.map +1 -0
  57. package/dist/src/commands/claims.d.ts +10 -0
  58. package/dist/src/commands/claims.d.ts.map +1 -0
  59. package/dist/src/commands/claims.js +373 -0
  60. package/dist/src/commands/claims.js.map +1 -0
  61. package/dist/src/commands/completions.d.ts +10 -0
  62. package/dist/src/commands/completions.d.ts.map +1 -0
  63. package/dist/src/commands/completions.js +539 -0
  64. package/dist/src/commands/completions.js.map +1 -0
  65. package/dist/src/commands/config.d.ts +8 -0
  66. package/dist/src/commands/config.d.ts.map +1 -0
  67. package/dist/src/commands/config.js +406 -0
  68. package/dist/src/commands/config.js.map +1 -0
  69. package/dist/src/commands/daemon.d.ts +8 -0
  70. package/dist/src/commands/daemon.d.ts.map +1 -0
  71. package/dist/src/commands/daemon.js +609 -0
  72. package/dist/src/commands/daemon.js.map +1 -0
  73. package/dist/src/commands/deployment.d.ts +10 -0
  74. package/dist/src/commands/deployment.d.ts.map +1 -0
  75. package/dist/src/commands/deployment.js +289 -0
  76. package/dist/src/commands/deployment.js.map +1 -0
  77. package/dist/src/commands/doctor.d.ts +10 -0
  78. package/dist/src/commands/doctor.d.ts.map +1 -0
  79. package/dist/src/commands/doctor.js +602 -0
  80. package/dist/src/commands/doctor.js.map +1 -0
  81. package/dist/src/commands/embeddings.d.ts +18 -0
  82. package/dist/src/commands/embeddings.d.ts.map +1 -0
  83. package/dist/src/commands/embeddings.js +1576 -0
  84. package/dist/src/commands/embeddings.js.map +1 -0
  85. package/dist/src/commands/guidance.d.ts +8 -0
  86. package/dist/src/commands/guidance.d.ts.map +1 -0
  87. package/dist/src/commands/guidance.js +560 -0
  88. package/dist/src/commands/guidance.js.map +1 -0
  89. package/dist/src/commands/hive-mind.d.ts +11 -0
  90. package/dist/src/commands/hive-mind.d.ts.map +1 -0
  91. package/dist/src/commands/hive-mind.js +1230 -0
  92. package/dist/src/commands/hive-mind.js.map +1 -0
  93. package/dist/src/commands/hooks.d.ts +8 -0
  94. package/dist/src/commands/hooks.d.ts.map +1 -0
  95. package/dist/src/commands/hooks.js +3759 -0
  96. package/dist/src/commands/hooks.js.map +1 -0
  97. package/dist/src/commands/index.d.ts +113 -0
  98. package/dist/src/commands/index.d.ts.map +1 -0
  99. package/dist/src/commands/index.js +368 -0
  100. package/dist/src/commands/index.js.map +1 -0
  101. package/dist/src/commands/init.d.ts +8 -0
  102. package/dist/src/commands/init.d.ts.map +1 -0
  103. package/dist/src/commands/init.js +965 -0
  104. package/dist/src/commands/init.js.map +1 -0
  105. package/dist/src/commands/issues.d.ts +21 -0
  106. package/dist/src/commands/issues.d.ts.map +1 -0
  107. package/dist/src/commands/issues.js +567 -0
  108. package/dist/src/commands/issues.js.map +1 -0
  109. package/dist/src/commands/mcp.d.ts +11 -0
  110. package/dist/src/commands/mcp.d.ts.map +1 -0
  111. package/dist/src/commands/mcp.js +715 -0
  112. package/dist/src/commands/mcp.js.map +1 -0
  113. package/dist/src/commands/memory.d.ts +8 -0
  114. package/dist/src/commands/memory.d.ts.map +1 -0
  115. package/dist/src/commands/memory.js +1292 -0
  116. package/dist/src/commands/memory.js.map +1 -0
  117. package/dist/src/commands/migrate.d.ts +8 -0
  118. package/dist/src/commands/migrate.d.ts.map +1 -0
  119. package/dist/src/commands/migrate.js +410 -0
  120. package/dist/src/commands/migrate.js.map +1 -0
  121. package/dist/src/commands/neural.d.ts +10 -0
  122. package/dist/src/commands/neural.d.ts.map +1 -0
  123. package/dist/src/commands/neural.js +1448 -0
  124. package/dist/src/commands/neural.js.map +1 -0
  125. package/dist/src/commands/performance.d.ts +10 -0
  126. package/dist/src/commands/performance.d.ts.map +1 -0
  127. package/dist/src/commands/performance.js +579 -0
  128. package/dist/src/commands/performance.js.map +1 -0
  129. package/dist/src/commands/plugins.d.ts +11 -0
  130. package/dist/src/commands/plugins.d.ts.map +1 -0
  131. package/dist/src/commands/plugins.js +820 -0
  132. package/dist/src/commands/plugins.js.map +1 -0
  133. package/dist/src/commands/process.d.ts +10 -0
  134. package/dist/src/commands/process.d.ts.map +1 -0
  135. package/dist/src/commands/process.js +641 -0
  136. package/dist/src/commands/process.js.map +1 -0
  137. package/dist/src/commands/progress.d.ts +11 -0
  138. package/dist/src/commands/progress.d.ts.map +1 -0
  139. package/dist/src/commands/progress.js +259 -0
  140. package/dist/src/commands/progress.js.map +1 -0
  141. package/dist/src/commands/providers.d.ts +10 -0
  142. package/dist/src/commands/providers.d.ts.map +1 -0
  143. package/dist/src/commands/providers.js +232 -0
  144. package/dist/src/commands/providers.js.map +1 -0
  145. package/dist/src/commands/route.d.ts +16 -0
  146. package/dist/src/commands/route.d.ts.map +1 -0
  147. package/dist/src/commands/route.js +813 -0
  148. package/dist/src/commands/route.js.map +1 -0
  149. package/dist/src/commands/ruvector/backup.d.ts +11 -0
  150. package/dist/src/commands/ruvector/backup.d.ts.map +1 -0
  151. package/dist/src/commands/ruvector/backup.js +746 -0
  152. package/dist/src/commands/ruvector/backup.js.map +1 -0
  153. package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  154. package/dist/src/commands/ruvector/benchmark.d.ts.map +1 -0
  155. package/dist/src/commands/ruvector/benchmark.js +480 -0
  156. package/dist/src/commands/ruvector/benchmark.js.map +1 -0
  157. package/dist/src/commands/ruvector/import.d.ts +18 -0
  158. package/dist/src/commands/ruvector/import.d.ts.map +1 -0
  159. package/dist/src/commands/ruvector/import.js +349 -0
  160. package/dist/src/commands/ruvector/import.js.map +1 -0
  161. package/dist/src/commands/ruvector/index.d.ts +29 -0
  162. package/dist/src/commands/ruvector/index.d.ts.map +1 -0
  163. package/dist/src/commands/ruvector/index.js +129 -0
  164. package/dist/src/commands/ruvector/index.js.map +1 -0
  165. package/dist/src/commands/ruvector/init.d.ts +11 -0
  166. package/dist/src/commands/ruvector/init.d.ts.map +1 -0
  167. package/dist/src/commands/ruvector/init.js +431 -0
  168. package/dist/src/commands/ruvector/init.js.map +1 -0
  169. package/dist/src/commands/ruvector/migrate.d.ts +11 -0
  170. package/dist/src/commands/ruvector/migrate.d.ts.map +1 -0
  171. package/dist/src/commands/ruvector/migrate.js +481 -0
  172. package/dist/src/commands/ruvector/migrate.js.map +1 -0
  173. package/dist/src/commands/ruvector/optimize.d.ts +11 -0
  174. package/dist/src/commands/ruvector/optimize.d.ts.map +1 -0
  175. package/dist/src/commands/ruvector/optimize.js +503 -0
  176. package/dist/src/commands/ruvector/optimize.js.map +1 -0
  177. package/dist/src/commands/ruvector/setup.d.ts +18 -0
  178. package/dist/src/commands/ruvector/setup.d.ts.map +1 -0
  179. package/dist/src/commands/ruvector/setup.js +765 -0
  180. package/dist/src/commands/ruvector/setup.js.map +1 -0
  181. package/dist/src/commands/ruvector/status.d.ts +11 -0
  182. package/dist/src/commands/ruvector/status.d.ts.map +1 -0
  183. package/dist/src/commands/ruvector/status.js +456 -0
  184. package/dist/src/commands/ruvector/status.js.map +1 -0
  185. package/dist/src/commands/security.d.ts +10 -0
  186. package/dist/src/commands/security.d.ts.map +1 -0
  187. package/dist/src/commands/security.js +575 -0
  188. package/dist/src/commands/security.js.map +1 -0
  189. package/dist/src/commands/session.d.ts +8 -0
  190. package/dist/src/commands/session.d.ts.map +1 -0
  191. package/dist/src/commands/session.js +750 -0
  192. package/dist/src/commands/session.js.map +1 -0
  193. package/dist/src/commands/start.d.ts +8 -0
  194. package/dist/src/commands/start.d.ts.map +1 -0
  195. package/dist/src/commands/start.js +418 -0
  196. package/dist/src/commands/start.js.map +1 -0
  197. package/dist/src/commands/status.d.ts +8 -0
  198. package/dist/src/commands/status.d.ts.map +1 -0
  199. package/dist/src/commands/status.js +591 -0
  200. package/dist/src/commands/status.js.map +1 -0
  201. package/dist/src/commands/swarm.d.ts +8 -0
  202. package/dist/src/commands/swarm.d.ts.map +1 -0
  203. package/dist/src/commands/swarm.js +748 -0
  204. package/dist/src/commands/swarm.js.map +1 -0
  205. package/dist/src/commands/task.d.ts +8 -0
  206. package/dist/src/commands/task.d.ts.map +1 -0
  207. package/dist/src/commands/task.js +671 -0
  208. package/dist/src/commands/task.js.map +1 -0
  209. package/dist/src/commands/transfer-store.d.ts +13 -0
  210. package/dist/src/commands/transfer-store.d.ts.map +1 -0
  211. package/dist/src/commands/transfer-store.js +428 -0
  212. package/dist/src/commands/transfer-store.js.map +1 -0
  213. package/dist/src/commands/update.d.ts +8 -0
  214. package/dist/src/commands/update.d.ts.map +1 -0
  215. package/dist/src/commands/update.js +276 -0
  216. package/dist/src/commands/update.js.map +1 -0
  217. package/dist/src/commands/workflow.d.ts +8 -0
  218. package/dist/src/commands/workflow.d.ts.map +1 -0
  219. package/dist/src/commands/workflow.js +617 -0
  220. package/dist/src/commands/workflow.js.map +1 -0
  221. package/dist/src/config-adapter.d.ts +15 -0
  222. package/dist/src/config-adapter.d.ts.map +1 -0
  223. package/dist/src/config-adapter.js +186 -0
  224. package/dist/src/config-adapter.js.map +1 -0
  225. package/dist/src/index.d.ts +76 -0
  226. package/dist/src/index.d.ts.map +1 -0
  227. package/dist/src/index.js +470 -0
  228. package/dist/src/index.js.map +1 -0
  229. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  230. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  231. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  232. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -0
  233. package/dist/src/init/claudemd-generator.d.ts +25 -0
  234. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  235. package/dist/src/init/claudemd-generator.js +486 -0
  236. package/dist/src/init/claudemd-generator.js.map +1 -0
  237. package/dist/src/init/executor.d.ts +41 -0
  238. package/dist/src/init/executor.d.ts.map +1 -0
  239. package/dist/src/init/executor.js +1741 -0
  240. package/dist/src/init/executor.js.map +1 -0
  241. package/dist/src/init/helpers-generator.d.ts +60 -0
  242. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  243. package/dist/src/init/helpers-generator.js +1166 -0
  244. package/dist/src/init/helpers-generator.js.map +1 -0
  245. package/dist/src/init/index.d.ts +13 -0
  246. package/dist/src/init/index.d.ts.map +1 -0
  247. package/dist/src/init/index.js +15 -0
  248. package/dist/src/init/index.js.map +1 -0
  249. package/dist/src/init/mcp-generator.d.ts +26 -0
  250. package/dist/src/init/mcp-generator.d.ts.map +1 -0
  251. package/dist/src/init/mcp-generator.js +116 -0
  252. package/dist/src/init/mcp-generator.js.map +1 -0
  253. package/dist/src/init/settings-generator.d.ts +14 -0
  254. package/dist/src/init/settings-generator.d.ts.map +1 -0
  255. package/dist/src/init/settings-generator.js +399 -0
  256. package/dist/src/init/settings-generator.js.map +1 -0
  257. package/dist/src/init/statusline-generator.d.ts +28 -0
  258. package/dist/src/init/statusline-generator.d.ts.map +1 -0
  259. package/dist/src/init/statusline-generator.js +817 -0
  260. package/dist/src/init/statusline-generator.js.map +1 -0
  261. package/dist/src/init/types.d.ts +287 -0
  262. package/dist/src/init/types.d.ts.map +1 -0
  263. package/dist/src/init/types.js +259 -0
  264. package/dist/src/init/types.js.map +1 -0
  265. package/dist/src/mcp-client.d.ts +92 -0
  266. package/dist/src/mcp-client.d.ts.map +1 -0
  267. package/dist/src/mcp-client.js +237 -0
  268. package/dist/src/mcp-client.js.map +1 -0
  269. package/dist/src/mcp-server.d.ts +161 -0
  270. package/dist/src/mcp-server.d.ts.map +1 -0
  271. package/dist/src/mcp-server.js +627 -0
  272. package/dist/src/mcp-server.js.map +1 -0
  273. package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  274. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -0
  275. package/dist/src/mcp-tools/agent-tools.js +549 -0
  276. package/dist/src/mcp-tools/agent-tools.js.map +1 -0
  277. package/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
  278. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -0
  279. package/dist/src/mcp-tools/agentdb-tools.js +557 -0
  280. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -0
  281. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  282. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -0
  283. package/dist/src/mcp-tools/analyze-tools.js +317 -0
  284. package/dist/src/mcp-tools/analyze-tools.js.map +1 -0
  285. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  286. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  287. package/dist/src/mcp-tools/auto-install.js +131 -0
  288. package/dist/src/mcp-tools/auto-install.js.map +1 -0
  289. package/dist/src/mcp-tools/browser-tools.d.ts +13 -0
  290. package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -0
  291. package/dist/src/mcp-tools/browser-tools.js +550 -0
  292. package/dist/src/mcp-tools/browser-tools.js.map +1 -0
  293. package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  294. package/dist/src/mcp-tools/claims-tools.d.ts.map +1 -0
  295. package/dist/src/mcp-tools/claims-tools.js +732 -0
  296. package/dist/src/mcp-tools/claims-tools.js.map +1 -0
  297. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  298. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -0
  299. package/dist/src/mcp-tools/config-tools.js +343 -0
  300. package/dist/src/mcp-tools/config-tools.js.map +1 -0
  301. package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  302. package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -0
  303. package/dist/src/mcp-tools/coordination-tools.js +486 -0
  304. package/dist/src/mcp-tools/coordination-tools.js.map +1 -0
  305. package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  306. package/dist/src/mcp-tools/daa-tools.d.ts.map +1 -0
  307. package/dist/src/mcp-tools/daa-tools.js +426 -0
  308. package/dist/src/mcp-tools/daa-tools.js.map +1 -0
  309. package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  310. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -0
  311. package/dist/src/mcp-tools/embeddings-tools.js +782 -0
  312. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -0
  313. package/dist/src/mcp-tools/github-tools.d.ts +13 -0
  314. package/dist/src/mcp-tools/github-tools.d.ts.map +1 -0
  315. package/dist/src/mcp-tools/github-tools.js +373 -0
  316. package/dist/src/mcp-tools/github-tools.js.map +1 -0
  317. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  318. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -0
  319. package/dist/src/mcp-tools/hive-mind-tools.js +583 -0
  320. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -0
  321. package/dist/src/mcp-tools/hooks-tools.d.ts +44 -0
  322. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -0
  323. package/dist/src/mcp-tools/hooks-tools.js +2969 -0
  324. package/dist/src/mcp-tools/hooks-tools.js.map +1 -0
  325. package/dist/src/mcp-tools/index.d.ts +23 -0
  326. package/dist/src/mcp-tools/index.d.ts.map +1 -0
  327. package/dist/src/mcp-tools/index.js +22 -0
  328. package/dist/src/mcp-tools/index.js.map +1 -0
  329. package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  330. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -0
  331. package/dist/src/mcp-tools/memory-tools.js +499 -0
  332. package/dist/src/mcp-tools/memory-tools.js.map +1 -0
  333. package/dist/src/mcp-tools/neural-tools.d.ts +16 -0
  334. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -0
  335. package/dist/src/mcp-tools/neural-tools.js +461 -0
  336. package/dist/src/mcp-tools/neural-tools.js.map +1 -0
  337. package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  338. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -0
  339. package/dist/src/mcp-tools/performance-tools.js +534 -0
  340. package/dist/src/mcp-tools/performance-tools.js.map +1 -0
  341. package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  342. package/dist/src/mcp-tools/progress-tools.d.ts.map +1 -0
  343. package/dist/src/mcp-tools/progress-tools.js +348 -0
  344. package/dist/src/mcp-tools/progress-tools.js.map +1 -0
  345. package/dist/src/mcp-tools/security-tools.d.ts +18 -0
  346. package/dist/src/mcp-tools/security-tools.d.ts.map +1 -0
  347. package/dist/src/mcp-tools/security-tools.js +434 -0
  348. package/dist/src/mcp-tools/security-tools.js.map +1 -0
  349. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  350. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -0
  351. package/dist/src/mcp-tools/session-tools.js +315 -0
  352. package/dist/src/mcp-tools/session-tools.js.map +1 -0
  353. package/dist/src/mcp-tools/swarm-tools.d.ts +8 -0
  354. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -0
  355. package/dist/src/mcp-tools/swarm-tools.js +102 -0
  356. package/dist/src/mcp-tools/swarm-tools.js.map +1 -0
  357. package/dist/src/mcp-tools/system-tools.d.ts +13 -0
  358. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -0
  359. package/dist/src/mcp-tools/system-tools.js +417 -0
  360. package/dist/src/mcp-tools/system-tools.js.map +1 -0
  361. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  362. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -0
  363. package/dist/src/mcp-tools/task-tools.js +338 -0
  364. package/dist/src/mcp-tools/task-tools.js.map +1 -0
  365. package/dist/src/mcp-tools/terminal-tools.d.ts +13 -0
  366. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -0
  367. package/dist/src/mcp-tools/terminal-tools.js +246 -0
  368. package/dist/src/mcp-tools/terminal-tools.js.map +1 -0
  369. package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  370. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -0
  371. package/dist/src/mcp-tools/transfer-tools.js +396 -0
  372. package/dist/src/mcp-tools/transfer-tools.js.map +1 -0
  373. package/dist/src/mcp-tools/types.d.ts +31 -0
  374. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  375. package/dist/src/mcp-tools/types.js +7 -0
  376. package/dist/src/mcp-tools/types.js.map +1 -0
  377. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  378. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -0
  379. package/dist/src/mcp-tools/workflow-tools.js +572 -0
  380. package/dist/src/mcp-tools/workflow-tools.js.map +1 -0
  381. package/dist/src/memory/ewc-consolidation.d.ts +271 -0
  382. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  383. package/dist/src/memory/ewc-consolidation.js +542 -0
  384. package/dist/src/memory/ewc-consolidation.js.map +1 -0
  385. package/dist/src/memory/intelligence.d.ts +285 -0
  386. package/dist/src/memory/intelligence.d.ts.map +1 -0
  387. package/dist/src/memory/intelligence.js +794 -0
  388. package/dist/src/memory/intelligence.js.map +1 -0
  389. package/dist/src/memory/memory-bridge.d.ts +407 -0
  390. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  391. package/dist/src/memory/memory-bridge.js +1494 -0
  392. package/dist/src/memory/memory-bridge.js.map +1 -0
  393. package/dist/src/memory/memory-initializer.d.ts +405 -0
  394. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  395. package/dist/src/memory/memory-initializer.js +2105 -0
  396. package/dist/src/memory/memory-initializer.js.map +1 -0
  397. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  398. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  399. package/dist/src/memory/sona-optimizer.js +633 -0
  400. package/dist/src/memory/sona-optimizer.js.map +1 -0
  401. package/dist/src/output.d.ts +133 -0
  402. package/dist/src/output.d.ts.map +1 -0
  403. package/dist/src/output.js +514 -0
  404. package/dist/src/output.js.map +1 -0
  405. package/dist/src/parser.d.ts +41 -0
  406. package/dist/src/parser.d.ts.map +1 -0
  407. package/dist/src/parser.js +377 -0
  408. package/dist/src/parser.js.map +1 -0
  409. package/dist/src/plugins/manager.d.ts +133 -0
  410. package/dist/src/plugins/manager.d.ts.map +1 -0
  411. package/dist/src/plugins/manager.js +400 -0
  412. package/dist/src/plugins/manager.js.map +1 -0
  413. package/dist/src/plugins/store/discovery.d.ts +88 -0
  414. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  415. package/dist/src/plugins/store/discovery.js +1147 -0
  416. package/dist/src/plugins/store/discovery.js.map +1 -0
  417. package/dist/src/plugins/store/index.d.ts +76 -0
  418. package/dist/src/plugins/store/index.d.ts.map +1 -0
  419. package/dist/src/plugins/store/index.js +141 -0
  420. package/dist/src/plugins/store/index.js.map +1 -0
  421. package/dist/src/plugins/store/search.d.ts +46 -0
  422. package/dist/src/plugins/store/search.d.ts.map +1 -0
  423. package/dist/src/plugins/store/search.js +230 -0
  424. package/dist/src/plugins/store/search.js.map +1 -0
  425. package/dist/src/plugins/store/types.d.ts +274 -0
  426. package/dist/src/plugins/store/types.d.ts.map +1 -0
  427. package/dist/src/plugins/store/types.js +7 -0
  428. package/dist/src/plugins/store/types.js.map +1 -0
  429. package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  430. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +1 -0
  431. package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  432. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -0
  433. package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  434. package/dist/src/plugins/tests/standalone-test.d.ts.map +1 -0
  435. package/dist/src/plugins/tests/standalone-test.js +188 -0
  436. package/dist/src/plugins/tests/standalone-test.js.map +1 -0
  437. package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  438. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +1 -0
  439. package/dist/src/plugins/tests/test-plugin-store.js +206 -0
  440. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -0
  441. package/dist/src/production/circuit-breaker.d.ts +101 -0
  442. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  443. package/dist/src/production/circuit-breaker.js +241 -0
  444. package/dist/src/production/circuit-breaker.js.map +1 -0
  445. package/dist/src/production/error-handler.d.ts +92 -0
  446. package/dist/src/production/error-handler.d.ts.map +1 -0
  447. package/dist/src/production/error-handler.js +299 -0
  448. package/dist/src/production/error-handler.js.map +1 -0
  449. package/dist/src/production/index.d.ts +23 -0
  450. package/dist/src/production/index.d.ts.map +1 -0
  451. package/dist/src/production/index.js +18 -0
  452. package/dist/src/production/index.js.map +1 -0
  453. package/dist/src/production/monitoring.d.ts +161 -0
  454. package/dist/src/production/monitoring.d.ts.map +1 -0
  455. package/dist/src/production/monitoring.js +356 -0
  456. package/dist/src/production/monitoring.js.map +1 -0
  457. package/dist/src/production/rate-limiter.d.ts +80 -0
  458. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  459. package/dist/src/production/rate-limiter.js +201 -0
  460. package/dist/src/production/rate-limiter.js.map +1 -0
  461. package/dist/src/production/retry.d.ts +48 -0
  462. package/dist/src/production/retry.d.ts.map +1 -0
  463. package/dist/src/production/retry.js +179 -0
  464. package/dist/src/production/retry.js.map +1 -0
  465. package/dist/src/prompt.d.ts +44 -0
  466. package/dist/src/prompt.d.ts.map +1 -0
  467. package/dist/src/prompt.js +501 -0
  468. package/dist/src/prompt.js.map +1 -0
  469. package/dist/src/runtime/headless.d.ts +60 -0
  470. package/dist/src/runtime/headless.d.ts.map +1 -0
  471. package/dist/src/runtime/headless.js +284 -0
  472. package/dist/src/runtime/headless.js.map +1 -0
  473. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  474. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  475. package/dist/src/ruvector/ast-analyzer.js +277 -0
  476. package/dist/src/ruvector/ast-analyzer.js.map +1 -0
  477. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  478. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  479. package/dist/src/ruvector/coverage-router.js +529 -0
  480. package/dist/src/ruvector/coverage-router.js.map +1 -0
  481. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  482. package/dist/src/ruvector/coverage-tools.d.ts.map +1 -0
  483. package/dist/src/ruvector/coverage-tools.js +157 -0
  484. package/dist/src/ruvector/coverage-tools.js.map +1 -0
  485. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  486. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  487. package/dist/src/ruvector/diff-classifier.js +698 -0
  488. package/dist/src/ruvector/diff-classifier.js.map +1 -0
  489. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  490. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  491. package/dist/src/ruvector/enhanced-model-router.js +529 -0
  492. package/dist/src/ruvector/enhanced-model-router.js.map +1 -0
  493. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  494. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  495. package/dist/src/ruvector/flash-attention.js +643 -0
  496. package/dist/src/ruvector/flash-attention.js.map +1 -0
  497. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  498. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  499. package/dist/src/ruvector/graph-analyzer.js +929 -0
  500. package/dist/src/ruvector/graph-analyzer.js.map +1 -0
  501. package/dist/src/ruvector/index.d.ts +34 -0
  502. package/dist/src/ruvector/index.d.ts.map +1 -0
  503. package/dist/src/ruvector/index.js +60 -0
  504. package/dist/src/ruvector/index.js.map +1 -0
  505. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  506. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  507. package/dist/src/ruvector/lora-adapter.js +455 -0
  508. package/dist/src/ruvector/lora-adapter.js.map +1 -0
  509. package/dist/src/ruvector/model-router.d.ts +220 -0
  510. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  511. package/dist/src/ruvector/model-router.js +488 -0
  512. package/dist/src/ruvector/model-router.js.map +1 -0
  513. package/dist/src/ruvector/moe-router.d.ts +206 -0
  514. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  515. package/dist/src/ruvector/moe-router.js +626 -0
  516. package/dist/src/ruvector/moe-router.js.map +1 -0
  517. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  518. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  519. package/dist/src/ruvector/q-learning-router.js +681 -0
  520. package/dist/src/ruvector/q-learning-router.js.map +1 -0
  521. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  522. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  523. package/dist/src/ruvector/semantic-router.js +178 -0
  524. package/dist/src/ruvector/semantic-router.js.map +1 -0
  525. package/dist/src/ruvector/vector-db.d.ts +69 -0
  526. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  527. package/dist/src/ruvector/vector-db.js +243 -0
  528. package/dist/src/ruvector/vector-db.js.map +1 -0
  529. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  530. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  531. package/dist/src/services/agentic-flow-bridge.js +95 -0
  532. package/dist/src/services/agentic-flow-bridge.js.map +1 -0
  533. package/dist/src/services/claim-service.d.ts +204 -0
  534. package/dist/src/services/claim-service.d.ts.map +1 -0
  535. package/dist/src/services/claim-service.js +818 -0
  536. package/dist/src/services/claim-service.js.map +1 -0
  537. package/dist/src/services/container-worker-pool.d.ts +197 -0
  538. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  539. package/dist/src/services/container-worker-pool.js +583 -0
  540. package/dist/src/services/container-worker-pool.js.map +1 -0
  541. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  542. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  543. package/dist/src/services/headless-worker-executor.js +999 -0
  544. package/dist/src/services/headless-worker-executor.js.map +1 -0
  545. package/dist/src/services/index.d.ts +13 -0
  546. package/dist/src/services/index.d.ts.map +1 -0
  547. package/dist/src/services/index.js +11 -0
  548. package/dist/src/services/index.js.map +1 -0
  549. package/dist/src/services/registry-api.d.ts +58 -0
  550. package/dist/src/services/registry-api.d.ts.map +1 -0
  551. package/dist/src/services/registry-api.js +146 -0
  552. package/dist/src/services/registry-api.js.map +1 -0
  553. package/dist/src/services/ruvector-training.d.ts +214 -0
  554. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  555. package/dist/src/services/ruvector-training.js +497 -0
  556. package/dist/src/services/ruvector-training.js.map +1 -0
  557. package/dist/src/services/worker-daemon.d.ts +203 -0
  558. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  559. package/dist/src/services/worker-daemon.js +756 -0
  560. package/dist/src/services/worker-daemon.js.map +1 -0
  561. package/dist/src/services/worker-queue.d.ts +194 -0
  562. package/dist/src/services/worker-queue.d.ts.map +1 -0
  563. package/dist/src/services/worker-queue.js +513 -0
  564. package/dist/src/services/worker-queue.js.map +1 -0
  565. package/dist/src/suggest.d.ts +53 -0
  566. package/dist/src/suggest.d.ts.map +1 -0
  567. package/dist/src/suggest.js +200 -0
  568. package/dist/src/suggest.js.map +1 -0
  569. package/dist/src/tests/ruvector-integration-benchmark.d.ts +6 -0
  570. package/dist/src/tests/ruvector-integration-benchmark.d.ts.map +1 -0
  571. package/dist/src/tests/ruvector-integration-benchmark.js +385 -0
  572. package/dist/src/tests/ruvector-integration-benchmark.js.map +1 -0
  573. package/dist/src/transfer/anonymization/index.d.ts +25 -0
  574. package/dist/src/transfer/anonymization/index.d.ts.map +1 -0
  575. package/dist/src/transfer/anonymization/index.js +175 -0
  576. package/dist/src/transfer/anonymization/index.js.map +1 -0
  577. package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  578. package/dist/src/transfer/deploy-seraphine.d.ts.map +1 -0
  579. package/dist/src/transfer/deploy-seraphine.js +205 -0
  580. package/dist/src/transfer/deploy-seraphine.js.map +1 -0
  581. package/dist/src/transfer/export.d.ts +25 -0
  582. package/dist/src/transfer/export.d.ts.map +1 -0
  583. package/dist/src/transfer/export.js +113 -0
  584. package/dist/src/transfer/export.js.map +1 -0
  585. package/dist/src/transfer/index.d.ts +12 -0
  586. package/dist/src/transfer/index.d.ts.map +1 -0
  587. package/dist/src/transfer/index.js +31 -0
  588. package/dist/src/transfer/index.js.map +1 -0
  589. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  590. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  591. package/dist/src/transfer/ipfs/client.js +307 -0
  592. package/dist/src/transfer/ipfs/client.js.map +1 -0
  593. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  594. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  595. package/dist/src/transfer/ipfs/upload.js +411 -0
  596. package/dist/src/transfer/ipfs/upload.js.map +1 -0
  597. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  598. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  599. package/dist/src/transfer/models/seraphine.js +373 -0
  600. package/dist/src/transfer/models/seraphine.js.map +1 -0
  601. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  602. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  603. package/dist/src/transfer/serialization/cfp.js +183 -0
  604. package/dist/src/transfer/serialization/cfp.js.map +1 -0
  605. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  606. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  607. package/dist/src/transfer/storage/gcs.js +256 -0
  608. package/dist/src/transfer/storage/gcs.js.map +1 -0
  609. package/dist/src/transfer/storage/index.d.ts +6 -0
  610. package/dist/src/transfer/storage/index.d.ts.map +1 -0
  611. package/dist/src/transfer/storage/index.js +6 -0
  612. package/dist/src/transfer/storage/index.js.map +1 -0
  613. package/dist/src/transfer/store/discovery.d.ts +84 -0
  614. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  615. package/dist/src/transfer/store/discovery.js +382 -0
  616. package/dist/src/transfer/store/discovery.js.map +1 -0
  617. package/dist/src/transfer/store/download.d.ts +70 -0
  618. package/dist/src/transfer/store/download.d.ts.map +1 -0
  619. package/dist/src/transfer/store/download.js +334 -0
  620. package/dist/src/transfer/store/download.js.map +1 -0
  621. package/dist/src/transfer/store/index.d.ts +84 -0
  622. package/dist/src/transfer/store/index.d.ts.map +1 -0
  623. package/dist/src/transfer/store/index.js +153 -0
  624. package/dist/src/transfer/store/index.js.map +1 -0
  625. package/dist/src/transfer/store/publish.d.ts +76 -0
  626. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  627. package/dist/src/transfer/store/publish.js +294 -0
  628. package/dist/src/transfer/store/publish.js.map +1 -0
  629. package/dist/src/transfer/store/registry.d.ts +58 -0
  630. package/dist/src/transfer/store/registry.d.ts.map +1 -0
  631. package/dist/src/transfer/store/registry.js +285 -0
  632. package/dist/src/transfer/store/registry.js.map +1 -0
  633. package/dist/src/transfer/store/search.d.ts +54 -0
  634. package/dist/src/transfer/store/search.d.ts.map +1 -0
  635. package/dist/src/transfer/store/search.js +232 -0
  636. package/dist/src/transfer/store/search.js.map +1 -0
  637. package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  638. package/dist/src/transfer/store/tests/standalone-test.d.ts.map +1 -0
  639. package/dist/src/transfer/store/tests/standalone-test.js +190 -0
  640. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -0
  641. package/dist/src/transfer/store/types.d.ts +193 -0
  642. package/dist/src/transfer/store/types.d.ts.map +1 -0
  643. package/dist/src/transfer/store/types.js +6 -0
  644. package/dist/src/transfer/store/types.js.map +1 -0
  645. package/dist/src/transfer/test-seraphine.d.ts +6 -0
  646. package/dist/src/transfer/test-seraphine.d.ts.map +1 -0
  647. package/dist/src/transfer/test-seraphine.js +105 -0
  648. package/dist/src/transfer/test-seraphine.js.map +1 -0
  649. package/dist/src/transfer/tests/test-store.d.ts +7 -0
  650. package/dist/src/transfer/tests/test-store.d.ts.map +1 -0
  651. package/dist/src/transfer/tests/test-store.js +214 -0
  652. package/dist/src/transfer/tests/test-store.js.map +1 -0
  653. package/dist/src/transfer/types.d.ts +245 -0
  654. package/dist/src/transfer/types.d.ts.map +1 -0
  655. package/dist/src/transfer/types.js +6 -0
  656. package/dist/src/transfer/types.js.map +1 -0
  657. package/dist/src/types.d.ts +198 -0
  658. package/dist/src/types.d.ts.map +1 -0
  659. package/dist/src/types.js +38 -0
  660. package/dist/src/types.js.map +1 -0
  661. package/dist/src/update/checker.d.ts +34 -0
  662. package/dist/src/update/checker.d.ts.map +1 -0
  663. package/dist/src/update/checker.js +190 -0
  664. package/dist/src/update/checker.js.map +1 -0
  665. package/dist/src/update/executor.d.ts +32 -0
  666. package/dist/src/update/executor.d.ts.map +1 -0
  667. package/dist/src/update/executor.js +181 -0
  668. package/dist/src/update/executor.js.map +1 -0
  669. package/dist/src/update/index.d.ts +33 -0
  670. package/dist/src/update/index.d.ts.map +1 -0
  671. package/dist/src/update/index.js +64 -0
  672. package/dist/src/update/index.js.map +1 -0
  673. package/dist/src/update/rate-limiter.d.ts +20 -0
  674. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  675. package/dist/src/update/rate-limiter.js +96 -0
  676. package/dist/src/update/rate-limiter.js.map +1 -0
  677. package/dist/src/update/validator.d.ts +17 -0
  678. package/dist/src/update/validator.d.ts.map +1 -0
  679. package/dist/src/update/validator.js +123 -0
  680. package/dist/src/update/validator.js.map +1 -0
  681. package/dist/tsconfig.tsbuildinfo +1 -0
  682. package/package.json +2 -3
@@ -0,0 +1,529 @@
1
+ /**
2
+ * Enhanced Model Router with Agent Booster AST Integration
3
+ *
4
+ * Implements ADR-026: 3-tier intelligent model routing:
5
+ * - Tier 1: Agent Booster (WASM) - <1ms, $0 for simple transforms
6
+ * - Tier 2: Haiku - ~500ms for low complexity
7
+ * - Tier 3: Sonnet/Opus - 2-5s for high complexity
8
+ *
9
+ * @module enhanced-model-router
10
+ */
11
+ import { existsSync, readFileSync } from 'fs';
12
+ import { extname } from 'path';
13
+ import { getModelRouter } from './model-router.js';
14
+ // ============================================================================
15
+ // Intent Detection Patterns
16
+ // ============================================================================
17
+ /**
18
+ * Pattern definitions for Agent Booster intent detection
19
+ */
20
+ const INTENT_PATTERNS = {
21
+ 'var-to-const': {
22
+ patterns: [
23
+ /convert\s+var\s+to\s+const/i,
24
+ /change\s+var\s+to\s+const/i,
25
+ /change\s+var\s+declarations?\s+to\s+const/i,
26
+ /replace\s+var\s+with\s+const/i,
27
+ /var\s*(?:→|->|to)\s*const/i,
28
+ /use\s+const\s+instead\s+of\s+var/i,
29
+ ],
30
+ weight: 1.0,
31
+ description: 'Convert var declarations to const/let',
32
+ },
33
+ 'add-types': {
34
+ patterns: [
35
+ /add\s+type\s+annotations?/i,
36
+ /add\s+typescript\s+types?/i,
37
+ /type\s+this\s+function/i,
38
+ /add\s+types?\s+to/i,
39
+ /annotate\s+with\s+types?/i,
40
+ ],
41
+ weight: 0.9,
42
+ description: 'Add TypeScript type annotations',
43
+ },
44
+ 'add-error-handling': {
45
+ patterns: [
46
+ /add\s+error\s+handling/i,
47
+ /wrap\s+in\s+try\s*[/-]?\s*catch/i,
48
+ /add\s+try\s*[/-]?\s*catch/i,
49
+ /handle\s+errors?/i,
50
+ /add\s+exception\s+handling/i,
51
+ ],
52
+ weight: 0.7, // Lower weight - often needs more context
53
+ description: 'Wrap code in try/catch blocks',
54
+ },
55
+ 'async-await': {
56
+ patterns: [
57
+ /convert\s+to\s+async\s*[/-]?\s*await/i,
58
+ /convert\s+\w+\s+to\s+async/i,
59
+ /use\s+async\s*[/-]?\s*await/i,
60
+ /change\s+promises?\s+to\s+async/i,
61
+ /refactor\s+to\s+async/i,
62
+ /\.then\s*(?:→|->|to)\s*await/i,
63
+ /callback\s+to\s+async/i,
64
+ /callbacks?\s+to\s+async/i,
65
+ ],
66
+ weight: 0.8,
67
+ description: 'Convert callbacks/promises to async/await',
68
+ },
69
+ 'add-logging': {
70
+ patterns: [
71
+ /add\s+logging/i,
72
+ /add\s+console\.log/i,
73
+ /add\s+debug\s+logs?/i,
74
+ /log\s+this\s+function/i,
75
+ /add\s+trace\s+logging/i,
76
+ ],
77
+ weight: 0.85,
78
+ description: 'Add console.log or logging statements',
79
+ },
80
+ 'remove-console': {
81
+ patterns: [
82
+ /remove\s+(?:all\s+)?console\.log/i,
83
+ /remove\s+(?:all\s+)?console\s+statements?/i,
84
+ /delete\s+(?:all\s+)?console\s+statements?/i,
85
+ /strip\s+console/i,
86
+ /clean\s+up\s+console/i,
87
+ /clean\s+up\s+debug\s+logs?/i,
88
+ /remove\s+(?:all\s+)?debug\s+logs?/i,
89
+ /delete\s+(?:all\s+)?console\.log/i,
90
+ ],
91
+ weight: 0.95,
92
+ description: 'Remove console.* calls',
93
+ },
94
+ };
95
+ /**
96
+ * File path extraction patterns
97
+ */
98
+ const FILE_PATH_PATTERNS = [
99
+ /(?:in|from|to|file|path)\s+[`"']?([a-zA-Z0-9_./\\-]+\.[a-zA-Z]+)[`"']?/i,
100
+ /[`"']([a-zA-Z0-9_./\\-]+\.[a-zA-Z]+)[`"']/,
101
+ /(\S+\.[tj]sx?)\b/i,
102
+ /(\S+\.(?:js|ts|jsx|tsx|py|rb|go|rs|java|kt|swift|c|cpp|h))\b/i,
103
+ ];
104
+ /**
105
+ * Language detection by extension
106
+ */
107
+ /**
108
+ * High-complexity keywords that indicate Tier 3 (Opus) routing
109
+ * These tasks require deep reasoning and architectural understanding
110
+ */
111
+ const TIER3_KEYWORDS = [
112
+ // Architecture & Design
113
+ /\b(microservices?|architecture|system\s+design|distributed)\b/i,
114
+ /\b(design|architect|plan)\s+(a|an|the|complex)\b/i,
115
+ /\b(design)\s+\w+\s+(schema|system|architecture)\b/i,
116
+ // Security
117
+ /\b(oauth2?|pkce|jwt|rbac|authentication\s+system|security\s+audit)\b/i,
118
+ /\b(refresh\s+token|token\s+rotation|role-based|permission|authorization)\b/i,
119
+ /\b(encryption|cryptograph|certificate|ssl|tls)\b/i,
120
+ /\b(end-to-end\s+encryption|key\s+rotation|secure\s+channel)\b/i,
121
+ // Distributed Systems
122
+ /\b(consensus|distributed|byzantine|raft|paxos)\b/i,
123
+ /\b(replication|sharding|partitioning|eventual\s+consistency)\b/i,
124
+ /\b(load\s+balanc|fault[- ]toleran|high\s+availability)\b/i,
125
+ /\b(message\s+queue|event\s+sourc|cqrs|saga)\b/i,
126
+ // Complex Algorithms
127
+ /\b(algorithm|machine\s+learning|neural|optimization)\b/i,
128
+ /\b(graph\s+algorithm|tree\s+traversal|dynamic\s+programming)\b/i,
129
+ // Database Design
130
+ /\b(schema\s+design|database\s+architect|data\s+model)\b/i,
131
+ /\b(database\s+schema|multi[- ]tenant)\b/i,
132
+ /\b(normalization|denormalization|index\s+strateg)\b/i,
133
+ // Performance Critical
134
+ /\b(performance\s+critical|low\s+latency|high\s+throughput)\b/i,
135
+ /\b(memory\s+optimi|cache\s+strateg|concurrent)\b/i,
136
+ ];
137
+ const LANGUAGE_MAP = {
138
+ '.js': 'javascript',
139
+ '.jsx': 'javascript',
140
+ '.ts': 'typescript',
141
+ '.tsx': 'typescript',
142
+ '.py': 'python',
143
+ '.rb': 'ruby',
144
+ '.go': 'go',
145
+ '.rs': 'rust',
146
+ '.java': 'java',
147
+ '.kt': 'kotlin',
148
+ '.swift': 'swift',
149
+ '.c': 'c',
150
+ '.cpp': 'cpp',
151
+ '.h': 'c',
152
+ };
153
+ // ============================================================================
154
+ // Enhanced Model Router Implementation
155
+ // ============================================================================
156
+ /**
157
+ * Enhanced Model Router with Agent Booster AST integration
158
+ *
159
+ * Provides intelligent 3-tier routing:
160
+ * - Tier 1: Agent Booster for simple code transforms (352x faster, $0)
161
+ * - Tier 2: Haiku for low complexity tasks
162
+ * - Tier 3: Sonnet/Opus for complex reasoning tasks
163
+ */
164
+ export class EnhancedModelRouter {
165
+ config;
166
+ tinyDancerRouter;
167
+ constructor(config) {
168
+ this.config = {
169
+ agentBoosterEnabled: true,
170
+ agentBoosterConfidenceThreshold: 0.7,
171
+ enabledIntents: [
172
+ 'var-to-const',
173
+ 'add-types',
174
+ 'add-error-handling',
175
+ 'async-await',
176
+ 'add-logging',
177
+ 'remove-console',
178
+ ],
179
+ complexityThresholds: {
180
+ haiku: 0.3,
181
+ sonnet: 0.6,
182
+ opus: 1.0,
183
+ },
184
+ preferCost: false,
185
+ preferQuality: false,
186
+ ...config,
187
+ };
188
+ this.tinyDancerRouter = getModelRouter();
189
+ }
190
+ /**
191
+ * Detect code editing intent from task description
192
+ */
193
+ detectIntent(task) {
194
+ const taskLower = task.toLowerCase();
195
+ let bestIntent = null;
196
+ let bestScore = 0;
197
+ for (const [intentType, config] of Object.entries(INTENT_PATTERNS)) {
198
+ if (!this.config.enabledIntents.includes(intentType)) {
199
+ continue;
200
+ }
201
+ for (const pattern of config.patterns) {
202
+ if (pattern.test(taskLower)) {
203
+ const score = config.weight;
204
+ if (score > bestScore) {
205
+ bestScore = score;
206
+ bestIntent = {
207
+ type: intentType,
208
+ confidence: score,
209
+ description: config.description,
210
+ };
211
+ }
212
+ }
213
+ }
214
+ }
215
+ // Extract file path if intent found
216
+ if (bestIntent) {
217
+ const filePath = this.extractFilePath(task);
218
+ if (filePath) {
219
+ bestIntent.filePath = filePath;
220
+ bestIntent.language = this.detectLanguage(filePath);
221
+ // Boost confidence if file exists
222
+ if (existsSync(filePath)) {
223
+ bestIntent.confidence = Math.min(1.0, bestIntent.confidence + 0.1);
224
+ }
225
+ }
226
+ }
227
+ return bestIntent;
228
+ }
229
+ /**
230
+ * Extract file path from task description
231
+ */
232
+ extractFilePath(task) {
233
+ for (const pattern of FILE_PATH_PATTERNS) {
234
+ const match = task.match(pattern);
235
+ if (match && match[1]) {
236
+ return match[1];
237
+ }
238
+ }
239
+ return null;
240
+ }
241
+ /**
242
+ * Detect language from file extension
243
+ */
244
+ detectLanguage(filePath) {
245
+ const ext = extname(filePath).toLowerCase();
246
+ return LANGUAGE_MAP[ext] || 'javascript';
247
+ }
248
+ /**
249
+ * Check if task contains Tier 3 (Opus) keywords
250
+ */
251
+ containsTier3Keywords(task) {
252
+ let count = 0;
253
+ for (const pattern of TIER3_KEYWORDS) {
254
+ if (pattern.test(task)) {
255
+ count++;
256
+ }
257
+ }
258
+ return { matches: count > 0, count };
259
+ }
260
+ /**
261
+ * Route a task to the optimal tier and handler
262
+ */
263
+ async route(task, context) {
264
+ // Step 1: Try Agent Booster intent detection
265
+ if (this.config.agentBoosterEnabled) {
266
+ const intent = this.detectIntent(task);
267
+ if (intent && intent.confidence >= this.config.agentBoosterConfidenceThreshold) {
268
+ return {
269
+ tier: 1,
270
+ handler: 'agent-booster',
271
+ confidence: intent.confidence,
272
+ reasoning: `Agent Booster can handle "${intent.type}" with ${(intent.confidence * 100).toFixed(0)}% confidence`,
273
+ agentBoosterIntent: intent,
274
+ canSkipLLM: true,
275
+ estimatedLatencyMs: 1,
276
+ estimatedCost: 0,
277
+ };
278
+ }
279
+ }
280
+ // Step 2: Check for Tier 3 keywords (architecture, security, distributed)
281
+ const tier3Check = this.containsTier3Keywords(task);
282
+ if (tier3Check.matches && tier3Check.count >= 2) {
283
+ // Strong signal for Opus - multiple complex keywords
284
+ return {
285
+ tier: 3,
286
+ handler: 'opus',
287
+ model: 'opus',
288
+ confidence: Math.min(0.95, 0.7 + tier3Check.count * 0.1),
289
+ complexity: 0.8 + tier3Check.count * 0.05,
290
+ reasoning: `High complexity task (${tier3Check.count} architectural keywords) - using opus`,
291
+ canSkipLLM: false,
292
+ estimatedLatencyMs: 5000,
293
+ estimatedCost: 0.015,
294
+ };
295
+ }
296
+ // Step 3: AST complexity analysis (if file path provided)
297
+ let astComplexity;
298
+ const targetFile = context?.filePath || this.extractFilePath(task);
299
+ if (targetFile && existsSync(targetFile)) {
300
+ try {
301
+ astComplexity = await this.analyzeASTComplexity(targetFile);
302
+ }
303
+ catch {
304
+ // AST analysis not available, continue with text-based routing
305
+ }
306
+ }
307
+ // Step 4: Text-based complexity + tiny-dancer routing
308
+ const tinyDancerResult = await this.tinyDancerRouter.route(task);
309
+ // Step 5: Combine AST complexity with tiny-dancer result
310
+ // Also boost if single tier3 keyword found
311
+ let finalComplexity = astComplexity !== undefined
312
+ ? (astComplexity + tinyDancerResult.complexity) / 2
313
+ : tinyDancerResult.complexity;
314
+ // Boost complexity if tier3 keywords found (even just one)
315
+ if (tier3Check.matches) {
316
+ finalComplexity = Math.min(1.0, finalComplexity + 0.25);
317
+ }
318
+ // Step 6: Determine tier based on complexity
319
+ const { haiku, sonnet } = this.config.complexityThresholds;
320
+ if (finalComplexity < haiku) {
321
+ return {
322
+ tier: 2,
323
+ handler: 'haiku',
324
+ model: 'haiku',
325
+ confidence: tinyDancerResult.confidence,
326
+ complexity: finalComplexity,
327
+ reasoning: `Low complexity (${(finalComplexity * 100).toFixed(0)}%) - using haiku`,
328
+ canSkipLLM: false,
329
+ estimatedLatencyMs: 500,
330
+ estimatedCost: 0.0002,
331
+ };
332
+ }
333
+ if (finalComplexity < sonnet) {
334
+ return {
335
+ tier: 2,
336
+ handler: 'sonnet',
337
+ model: 'sonnet',
338
+ confidence: tinyDancerResult.confidence,
339
+ complexity: finalComplexity,
340
+ reasoning: `Medium complexity (${(finalComplexity * 100).toFixed(0)}%) - using sonnet`,
341
+ canSkipLLM: false,
342
+ estimatedLatencyMs: 2000,
343
+ estimatedCost: 0.003,
344
+ };
345
+ }
346
+ return {
347
+ tier: 3,
348
+ handler: 'opus',
349
+ model: 'opus',
350
+ confidence: tinyDancerResult.confidence,
351
+ complexity: finalComplexity,
352
+ reasoning: `High complexity (${(finalComplexity * 100).toFixed(0)}%) - using opus`,
353
+ canSkipLLM: false,
354
+ estimatedLatencyMs: 5000,
355
+ estimatedCost: 0.015,
356
+ };
357
+ }
358
+ /**
359
+ * Analyze AST complexity of a file
360
+ * Returns normalized complexity score (0-1)
361
+ */
362
+ async analyzeASTComplexity(filePath) {
363
+ try {
364
+ const content = readFileSync(filePath, 'utf-8');
365
+ const lines = content.split('\n');
366
+ // Simple heuristics for complexity
367
+ let complexity = 0;
368
+ // Line count contribution
369
+ complexity += Math.min(0.3, lines.length / 1000);
370
+ // Nesting depth estimation (count indentation)
371
+ const avgIndent = lines
372
+ .filter((l) => l.trim().length > 0)
373
+ .map((l) => l.match(/^(\s*)/)?.[1].length || 0)
374
+ .reduce((sum, indent) => sum + indent, 0) / Math.max(1, lines.length);
375
+ complexity += Math.min(0.2, avgIndent / 20);
376
+ // Control flow complexity (count keywords)
377
+ const controlFlowCount = (content.match(/\b(if|else|for|while|switch|case|try|catch|async|await)\b/g) || []).length;
378
+ complexity += Math.min(0.3, controlFlowCount / 100);
379
+ // Function/class count
380
+ const functionCount = (content.match(/\b(function|class|=>)\b/g) || []).length;
381
+ complexity += Math.min(0.2, functionCount / 50);
382
+ return Math.min(1, complexity);
383
+ }
384
+ catch {
385
+ return 0.5; // Default to medium complexity on error
386
+ }
387
+ }
388
+ /**
389
+ * Execute task using the appropriate tier
390
+ * Returns the result and routing information
391
+ */
392
+ async execute(task, context) {
393
+ const routeResult = await this.route(task, context);
394
+ if (routeResult.tier === 1 && routeResult.agentBoosterIntent) {
395
+ // Try to execute with Agent Booster
396
+ const abResult = await this.tryAgentBooster(routeResult.agentBoosterIntent, context);
397
+ if (abResult.success) {
398
+ return {
399
+ result: { applied: true, confidence: abResult.confidence },
400
+ routeResult,
401
+ };
402
+ }
403
+ // Agent Booster failed, fall back to LLM
404
+ routeResult.tier = 2;
405
+ routeResult.handler = 'sonnet';
406
+ routeResult.model = 'sonnet';
407
+ routeResult.canSkipLLM = false;
408
+ routeResult.reasoning += ' (Agent Booster fallback to LLM)';
409
+ }
410
+ // Return routing result - caller handles LLM invocation
411
+ return { result: routeResult.reasoning, routeResult };
412
+ }
413
+ /**
414
+ * Try to apply edit using Agent Booster
415
+ */
416
+ async tryAgentBooster(intent, context) {
417
+ try {
418
+ const filePath = intent.filePath || context?.filePath;
419
+ if (!filePath || !existsSync(filePath)) {
420
+ return { success: false, confidence: 0 };
421
+ }
422
+ const originalCode = context?.originalCode || readFileSync(filePath, 'utf-8');
423
+ const intentToInstruction = {
424
+ 'var-to-const': 'Convert all var declarations to const',
425
+ 'add-types': 'Add TypeScript type annotations',
426
+ 'add-error-handling': 'Wrap in try/catch blocks',
427
+ 'async-await': 'Convert to async/await',
428
+ 'add-logging': 'Add console.log statements',
429
+ 'remove-console': 'Remove all console.* statements',
430
+ };
431
+ const instruction = intentToInstruction[intent.type];
432
+ const language = intent.language || 'javascript';
433
+ // Try local @sparkleideas/agentic-flow agent-booster (v3 — no npx needed)
434
+ // Note: agent-booster export declared but dist missing in alpha.1; use intelligence path as fallback
435
+ const boosterModule = await import('@sparkleideas/agentic-flow/agent-booster')
436
+ .catch(() => import(/* @vite-ignore */ '@sparkleideas/agentic-flow/intelligence/agent-booster-enhanced'))
437
+ .catch(() => null);
438
+ if (boosterModule?.enhancedApply) {
439
+ const result = await boosterModule.enhancedApply({
440
+ code: originalCode,
441
+ edit: instruction,
442
+ language,
443
+ });
444
+ if (result && result.confidence >= this.config.agentBoosterConfidenceThreshold) {
445
+ return { success: true, confidence: result.confidence, output: result.output };
446
+ }
447
+ return { success: false, confidence: result?.confidence ?? 0 };
448
+ }
449
+ // Fallback: shell out to npx agent-booster
450
+ // Sanitize language to prevent command injection (whitelist only)
451
+ const SAFE_LANGUAGES = ['javascript', 'typescript', 'python', 'rust', 'go', 'java', 'c', 'cpp', 'ruby', 'swift', 'kotlin'];
452
+ const safeLang = SAFE_LANGUAGES.includes(language) ? language : 'javascript';
453
+ const { execSync } = await import('child_process');
454
+ const cmd = `npx --yes agent-booster@0.2.2 apply --language ${safeLang}`;
455
+ const result = execSync(cmd, {
456
+ encoding: 'utf-8',
457
+ input: JSON.stringify({ code: originalCode, edit: instruction }),
458
+ maxBuffer: 10 * 1024 * 1024,
459
+ timeout: 5000,
460
+ stdio: ['pipe', 'pipe', 'pipe'],
461
+ });
462
+ const parsed = JSON.parse(result);
463
+ if (parsed.confidence >= this.config.agentBoosterConfidenceThreshold) {
464
+ return { success: true, confidence: parsed.confidence, output: parsed.output };
465
+ }
466
+ return { success: false, confidence: parsed.confidence ?? 0 };
467
+ }
468
+ catch {
469
+ // Agent Booster not available or failed
470
+ return { success: false, confidence: 0 };
471
+ }
472
+ }
473
+ /**
474
+ * Get router statistics
475
+ */
476
+ getStats() {
477
+ return {
478
+ config: { ...this.config },
479
+ tinyDancerStats: this.tinyDancerRouter.getStats(),
480
+ };
481
+ }
482
+ }
483
+ // ============================================================================
484
+ // Singleton & Factory Functions
485
+ // ============================================================================
486
+ let enhancedRouterInstance = null;
487
+ /**
488
+ * Get or create the singleton EnhancedModelRouter instance
489
+ */
490
+ export function getEnhancedModelRouter(config) {
491
+ if (!enhancedRouterInstance) {
492
+ enhancedRouterInstance = new EnhancedModelRouter(config);
493
+ }
494
+ return enhancedRouterInstance;
495
+ }
496
+ /**
497
+ * Reset the singleton instance
498
+ */
499
+ export function resetEnhancedModelRouter() {
500
+ enhancedRouterInstance = null;
501
+ }
502
+ /**
503
+ * Create a new EnhancedModelRouter instance (non-singleton)
504
+ */
505
+ export function createEnhancedModelRouter(config) {
506
+ return new EnhancedModelRouter(config);
507
+ }
508
+ // ============================================================================
509
+ // Convenience Functions
510
+ // ============================================================================
511
+ /**
512
+ * Quick route function with enhanced routing
513
+ */
514
+ export async function enhancedRouteToModel(task, context) {
515
+ const router = getEnhancedModelRouter();
516
+ return router.route(task, context);
517
+ }
518
+ /**
519
+ * Detect if a task can be handled by Agent Booster
520
+ */
521
+ export function canUseAgentBooster(task) {
522
+ const router = getEnhancedModelRouter();
523
+ const intent = router.detectIntent(task);
524
+ if (intent && intent.confidence >= 0.7) {
525
+ return { canUse: true, intent };
526
+ }
527
+ return { canUse: false };
528
+ }
529
+ //# sourceMappingURL=enhanced-model-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-model-router.js","sourceRoot":"","sources":["../../../src/ruvector/enhanced-model-router.ts"],"names":[],"mappings":"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"}