agentic-flow 1.10.1 → 1.10.2

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 (554) hide show
  1. package/CHANGELOG.md +25 -1338
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/agentdb/index.d.ts +26 -0
  4. package/dist/agentdb/index.d.ts.map +1 -0
  5. package/dist/agentdb/index.js +1 -0
  6. package/dist/agentdb/index.js.map +1 -0
  7. package/dist/agentdb/validate-frontier.cjs +416 -0
  8. package/dist/agentdb/validate-frontier.cjs.map +1 -0
  9. package/dist/agentdb/validate-frontier.d.cts +2 -0
  10. package/dist/agentdb/validate-frontier.d.cts.map +1 -0
  11. package/dist/agents/claudeAgent.d.ts +6 -0
  12. package/dist/agents/claudeAgent.d.ts.map +1 -0
  13. package/dist/agents/claudeAgent.js +22 -3
  14. package/dist/agents/claudeAgent.js.map +1 -0
  15. package/dist/agents/claudeAgentDirect.d.ts +6 -0
  16. package/dist/agents/claudeAgentDirect.d.ts.map +1 -0
  17. package/dist/agents/claudeAgentDirect.js +1 -0
  18. package/dist/agents/claudeAgentDirect.js.map +1 -0
  19. package/dist/agents/claudeFlowAgent.d.ts +32 -0
  20. package/dist/agents/claudeFlowAgent.d.ts.map +1 -0
  21. package/dist/agents/claudeFlowAgent.js +1 -0
  22. package/dist/agents/claudeFlowAgent.js.map +1 -0
  23. package/dist/agents/codeReviewAgent.d.ts +4 -0
  24. package/dist/agents/codeReviewAgent.d.ts.map +1 -0
  25. package/dist/agents/codeReviewAgent.js +1 -0
  26. package/dist/agents/codeReviewAgent.js.map +1 -0
  27. package/dist/agents/dataAgent.d.ts +4 -0
  28. package/dist/agents/dataAgent.d.ts.map +1 -0
  29. package/dist/agents/dataAgent.js +1 -0
  30. package/dist/agents/dataAgent.js.map +1 -0
  31. package/dist/agents/directApiAgent.d.ts +10 -0
  32. package/dist/agents/directApiAgent.d.ts.map +1 -0
  33. package/dist/agents/directApiAgent.js +1 -0
  34. package/dist/agents/directApiAgent.js.map +1 -0
  35. package/dist/agents/webResearchAgent.d.ts +4 -0
  36. package/dist/agents/webResearchAgent.d.ts.map +1 -0
  37. package/dist/agents/webResearchAgent.js +1 -0
  38. package/dist/agents/webResearchAgent.js.map +1 -0
  39. package/dist/cli/agent-manager.d.ts +57 -0
  40. package/dist/cli/agent-manager.d.ts.map +1 -0
  41. package/dist/cli/agent-manager.js +1 -0
  42. package/dist/cli/agent-manager.js.map +1 -0
  43. package/dist/cli/claude-code-wrapper.d.ts +21 -0
  44. package/dist/cli/claude-code-wrapper.d.ts.map +1 -0
  45. package/dist/cli/claude-code-wrapper.js +1 -0
  46. package/dist/cli/claude-code-wrapper.js.map +1 -0
  47. package/dist/cli/config-wizard.d.ts +21 -0
  48. package/dist/cli/config-wizard.d.ts.map +1 -0
  49. package/dist/cli/config-wizard.js +1 -0
  50. package/dist/cli/config-wizard.js.map +1 -0
  51. package/dist/cli/federation-cli.d.ts +1 -0
  52. package/dist/cli/federation-cli.d.ts.map +1 -0
  53. package/dist/cli/federation-cli.js +1 -0
  54. package/dist/cli/federation-cli.js.map +1 -0
  55. package/dist/cli/mcp-manager.d.ts +12 -0
  56. package/dist/cli/mcp-manager.d.ts.map +1 -0
  57. package/dist/cli/mcp-manager.js +1 -0
  58. package/dist/cli/mcp-manager.js.map +1 -0
  59. package/dist/cli/mcp.d.ts +11 -0
  60. package/dist/cli/mcp.d.ts.map +1 -0
  61. package/dist/cli/mcp.js +1 -0
  62. package/dist/cli/mcp.js.map +1 -0
  63. package/dist/cli-proxy.d.ts +7 -0
  64. package/dist/cli-proxy.d.ts.map +1 -0
  65. package/dist/cli-proxy.js +1 -0
  66. package/dist/cli-proxy.js.map +1 -0
  67. package/dist/cli-standalone-proxy.d.ts +17 -0
  68. package/dist/cli-standalone-proxy.d.ts.map +1 -0
  69. package/dist/cli-standalone-proxy.js +1 -0
  70. package/dist/cli-standalone-proxy.js.map +1 -0
  71. package/dist/config/claudeFlow.d.ts +33 -0
  72. package/dist/config/claudeFlow.d.ts.map +1 -0
  73. package/dist/config/claudeFlow.js +1 -0
  74. package/dist/config/claudeFlow.js.map +1 -0
  75. package/dist/config/quic.d.ts +58 -0
  76. package/dist/config/quic.d.ts.map +1 -0
  77. package/dist/config/quic.js +1 -0
  78. package/dist/config/quic.js.map +1 -0
  79. package/dist/config/tools.d.ts +17 -0
  80. package/dist/config/tools.d.ts.map +1 -0
  81. package/dist/config/tools.js +1 -0
  82. package/dist/config/tools.js.map +1 -0
  83. package/dist/core/long-running-agent.d.ts +92 -0
  84. package/dist/core/long-running-agent.d.ts.map +1 -0
  85. package/dist/core/long-running-agent.js +1 -0
  86. package/dist/core/long-running-agent.js.map +1 -0
  87. package/dist/core/provider-manager.d.ts +145 -0
  88. package/dist/core/provider-manager.d.ts.map +1 -0
  89. package/dist/core/provider-manager.js +1 -0
  90. package/dist/core/provider-manager.js.map +1 -0
  91. package/dist/examples/multi-agent-orchestration.d.ts +3 -0
  92. package/dist/examples/multi-agent-orchestration.d.ts.map +1 -0
  93. package/dist/examples/multi-agent-orchestration.js +1 -0
  94. package/dist/examples/multi-agent-orchestration.js.map +1 -0
  95. package/dist/examples/use-goal-planner.d.ts +3 -0
  96. package/dist/examples/use-goal-planner.d.ts.map +1 -0
  97. package/dist/examples/use-goal-planner.js +1 -0
  98. package/dist/examples/use-goal-planner.js.map +1 -0
  99. package/dist/examples/use-provider-fallback.d.ts +13 -0
  100. package/dist/examples/use-provider-fallback.d.ts.map +1 -0
  101. package/dist/examples/use-provider-fallback.js +1 -0
  102. package/dist/examples/use-provider-fallback.js.map +1 -0
  103. package/dist/federation/EphemeralAgent.d.ts +84 -0
  104. package/dist/federation/EphemeralAgent.d.ts.map +1 -0
  105. package/dist/federation/EphemeralAgent.js +1 -0
  106. package/dist/federation/EphemeralAgent.js.map +1 -0
  107. package/dist/federation/FederationHub.d.ts +89 -0
  108. package/dist/federation/FederationHub.d.ts.map +1 -0
  109. package/dist/federation/FederationHub.js +1 -0
  110. package/dist/federation/FederationHub.js.map +1 -0
  111. package/dist/federation/FederationHubClient.d.ts +70 -0
  112. package/dist/federation/FederationHubClient.d.ts.map +1 -0
  113. package/dist/federation/FederationHubClient.js +1 -0
  114. package/dist/federation/FederationHubClient.js.map +1 -0
  115. package/dist/federation/FederationHubServer.d.ts +100 -0
  116. package/dist/federation/FederationHubServer.d.ts.map +1 -0
  117. package/dist/federation/FederationHubServer.js +1 -0
  118. package/dist/federation/FederationHubServer.js.map +1 -0
  119. package/dist/federation/SecurityManager.d.ts +80 -0
  120. package/dist/federation/SecurityManager.d.ts.map +1 -0
  121. package/dist/federation/SecurityManager.js +1 -0
  122. package/dist/federation/SecurityManager.js.map +1 -0
  123. package/dist/federation/debug/agent-debug-stream.d.ts +171 -0
  124. package/dist/federation/debug/agent-debug-stream.d.ts.map +1 -0
  125. package/dist/federation/debug/agent-debug-stream.js +1 -0
  126. package/dist/federation/debug/agent-debug-stream.js.map +1 -0
  127. package/dist/federation/debug/debug-stream.d.ts +157 -0
  128. package/dist/federation/debug/debug-stream.d.ts.map +1 -0
  129. package/dist/federation/debug/debug-stream.js +1 -0
  130. package/dist/federation/debug/debug-stream.js.map +1 -0
  131. package/dist/federation/index.d.ts +13 -0
  132. package/dist/federation/index.d.ts.map +1 -0
  133. package/dist/federation/index.js +1 -0
  134. package/dist/federation/index.js.map +1 -0
  135. package/dist/federation/integrations/realtime-federation.d.ts +144 -0
  136. package/dist/federation/integrations/realtime-federation.d.ts.map +1 -0
  137. package/dist/federation/integrations/realtime-federation.js +1 -0
  138. package/dist/federation/integrations/realtime-federation.js.map +1 -0
  139. package/dist/federation/integrations/supabase-adapter-debug.d.ts +91 -0
  140. package/dist/federation/integrations/supabase-adapter-debug.d.ts.map +1 -0
  141. package/dist/federation/integrations/supabase-adapter-debug.js +1 -0
  142. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -0
  143. package/dist/federation/integrations/supabase-adapter.d.ts +89 -0
  144. package/dist/federation/integrations/supabase-adapter.d.ts.map +1 -0
  145. package/dist/federation/integrations/supabase-adapter.js +1 -0
  146. package/dist/federation/integrations/supabase-adapter.js.map +1 -0
  147. package/dist/health.d.ts +28 -0
  148. package/dist/health.d.ts.map +1 -0
  149. package/dist/health.js +1 -0
  150. package/dist/health.js.map +1 -0
  151. package/dist/hooks/parallel-validation.d.ts +51 -0
  152. package/dist/hooks/parallel-validation.d.ts.map +1 -0
  153. package/dist/hooks/parallel-validation.js +1 -0
  154. package/dist/hooks/parallel-validation.js.map +1 -0
  155. package/dist/hooks/swarm-learning-optimizer.d.ts +89 -0
  156. package/dist/hooks/swarm-learning-optimizer.d.ts.map +1 -0
  157. package/dist/hooks/swarm-learning-optimizer.js +1 -0
  158. package/dist/hooks/swarm-learning-optimizer.js.map +1 -0
  159. package/dist/index.d.ts +4 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +15 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/mcp/claudeFlowSdkServer.d.ts +6 -0
  164. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -0
  165. package/dist/mcp/claudeFlowSdkServer.js +1 -0
  166. package/dist/mcp/claudeFlowSdkServer.js.map +1 -0
  167. package/dist/mcp/fastmcp/servers/claude-flow-sdk.d.ts +3 -0
  168. package/dist/mcp/fastmcp/servers/claude-flow-sdk.d.ts.map +1 -0
  169. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +1 -0
  170. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -0
  171. package/dist/mcp/fastmcp/servers/http-sse.d.ts +3 -0
  172. package/dist/mcp/fastmcp/servers/http-sse.d.ts.map +1 -0
  173. package/dist/mcp/fastmcp/servers/http-sse.js +1 -0
  174. package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -0
  175. package/dist/mcp/fastmcp/servers/http-streaming-updated.d.ts +3 -0
  176. package/dist/mcp/fastmcp/servers/http-streaming-updated.d.ts.map +1 -0
  177. package/dist/mcp/fastmcp/servers/http-streaming-updated.js +1 -0
  178. package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -0
  179. package/dist/mcp/fastmcp/servers/poc-stdio.d.ts +3 -0
  180. package/dist/mcp/fastmcp/servers/poc-stdio.d.ts.map +1 -0
  181. package/dist/mcp/fastmcp/servers/poc-stdio.js +1 -0
  182. package/dist/mcp/fastmcp/servers/poc-stdio.js.map +1 -0
  183. package/dist/mcp/fastmcp/servers/stdio-full.d.ts +3 -0
  184. package/dist/mcp/fastmcp/servers/stdio-full.d.ts.map +1 -0
  185. package/dist/mcp/fastmcp/servers/stdio-full.js +1 -0
  186. package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -0
  187. package/dist/mcp/fastmcp/tools/agent/add-agent.d.ts +3 -0
  188. package/dist/mcp/fastmcp/tools/agent/add-agent.d.ts.map +1 -0
  189. package/dist/mcp/fastmcp/tools/agent/add-agent.js +1 -0
  190. package/dist/mcp/fastmcp/tools/agent/add-agent.js.map +1 -0
  191. package/dist/mcp/fastmcp/tools/agent/add-command.d.ts +3 -0
  192. package/dist/mcp/fastmcp/tools/agent/add-command.d.ts.map +1 -0
  193. package/dist/mcp/fastmcp/tools/agent/add-command.js +1 -0
  194. package/dist/mcp/fastmcp/tools/agent/add-command.js.map +1 -0
  195. package/dist/mcp/fastmcp/tools/agent/execute.d.ts +3 -0
  196. package/dist/mcp/fastmcp/tools/agent/execute.d.ts.map +1 -0
  197. package/dist/mcp/fastmcp/tools/agent/execute.js +1 -0
  198. package/dist/mcp/fastmcp/tools/agent/execute.js.map +1 -0
  199. package/dist/mcp/fastmcp/tools/agent/list.d.ts +3 -0
  200. package/dist/mcp/fastmcp/tools/agent/list.d.ts.map +1 -0
  201. package/dist/mcp/fastmcp/tools/agent/list.js +1 -0
  202. package/dist/mcp/fastmcp/tools/agent/list.js.map +1 -0
  203. package/dist/mcp/fastmcp/tools/agent/parallel.d.ts +3 -0
  204. package/dist/mcp/fastmcp/tools/agent/parallel.d.ts.map +1 -0
  205. package/dist/mcp/fastmcp/tools/agent/parallel.js +1 -0
  206. package/dist/mcp/fastmcp/tools/agent/parallel.js.map +1 -0
  207. package/dist/mcp/fastmcp/tools/swarm/init.d.ts +3 -0
  208. package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -0
  209. package/dist/mcp/fastmcp/tools/swarm/init.js +1 -0
  210. package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -0
  211. package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts +3 -0
  212. package/dist/mcp/fastmcp/tools/swarm/orchestrate.d.ts.map +1 -0
  213. package/dist/mcp/fastmcp/tools/swarm/orchestrate.js +1 -0
  214. package/dist/mcp/fastmcp/tools/swarm/orchestrate.js.map +1 -0
  215. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts +3 -0
  216. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -0
  217. package/dist/mcp/fastmcp/tools/swarm/spawn.js +1 -0
  218. package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -0
  219. package/dist/mcp/fastmcp/types/index.d.ts +33 -0
  220. package/dist/mcp/fastmcp/types/index.d.ts.map +1 -0
  221. package/dist/mcp/fastmcp/types/index.js +1 -0
  222. package/dist/mcp/fastmcp/types/index.js.map +1 -0
  223. package/dist/mcp/standalone-stdio.d.ts +3 -0
  224. package/dist/mcp/standalone-stdio.d.ts.map +1 -0
  225. package/dist/mcp/standalone-stdio.js +1 -0
  226. package/dist/mcp/standalone-stdio.js.map +1 -0
  227. package/dist/memory/SharedMemoryPool.d.ts +116 -0
  228. package/dist/memory/SharedMemoryPool.d.ts.map +1 -0
  229. package/dist/memory/SharedMemoryPool.js +1 -0
  230. package/dist/memory/SharedMemoryPool.js.map +1 -0
  231. package/dist/memory/index.d.ts +8 -0
  232. package/dist/memory/index.d.ts.map +1 -0
  233. package/dist/memory/index.js +1 -0
  234. package/dist/memory/index.js.map +1 -0
  235. package/dist/proxy/adaptive-proxy.d.ts +51 -0
  236. package/dist/proxy/adaptive-proxy.d.ts.map +1 -0
  237. package/dist/proxy/adaptive-proxy.js +1 -0
  238. package/dist/proxy/adaptive-proxy.js.map +1 -0
  239. package/dist/proxy/anthropic-to-gemini.d.ts +20 -0
  240. package/dist/proxy/anthropic-to-gemini.d.ts.map +1 -0
  241. package/dist/proxy/anthropic-to-gemini.js +1 -0
  242. package/dist/proxy/anthropic-to-gemini.js.map +1 -0
  243. package/dist/proxy/anthropic-to-onnx.d.ts +17 -0
  244. package/dist/proxy/anthropic-to-onnx.d.ts.map +1 -0
  245. package/dist/proxy/anthropic-to-onnx.js +1 -0
  246. package/dist/proxy/anthropic-to-onnx.js.map +1 -0
  247. package/dist/proxy/anthropic-to-openrouter.d.ts +28 -0
  248. package/dist/proxy/anthropic-to-openrouter.d.ts.map +1 -0
  249. package/dist/proxy/anthropic-to-openrouter.js +1 -0
  250. package/dist/proxy/anthropic-to-openrouter.js.map +1 -0
  251. package/dist/proxy/anthropic-to-requesty.d.ts +33 -0
  252. package/dist/proxy/anthropic-to-requesty.d.ts.map +1 -0
  253. package/dist/proxy/anthropic-to-requesty.js +1 -0
  254. package/dist/proxy/anthropic-to-requesty.js.map +1 -0
  255. package/dist/proxy/http2-proxy-optimized.d.ts +63 -0
  256. package/dist/proxy/http2-proxy-optimized.d.ts.map +1 -0
  257. package/dist/proxy/http2-proxy-optimized.js +1 -0
  258. package/dist/proxy/http2-proxy-optimized.js.map +1 -0
  259. package/dist/proxy/http2-proxy.d.ts +43 -0
  260. package/dist/proxy/http2-proxy.d.ts.map +1 -0
  261. package/dist/proxy/http2-proxy.js +1 -0
  262. package/dist/proxy/http2-proxy.js.map +1 -0
  263. package/dist/proxy/http3-proxy.d.ts +18 -0
  264. package/dist/proxy/http3-proxy.d.ts.map +1 -0
  265. package/dist/proxy/http3-proxy.js +1 -0
  266. package/dist/proxy/http3-proxy.js.map +1 -0
  267. package/dist/proxy/provider-instructions.d.ts +37 -0
  268. package/dist/proxy/provider-instructions.d.ts.map +1 -0
  269. package/dist/proxy/provider-instructions.js +1 -0
  270. package/dist/proxy/provider-instructions.js.map +1 -0
  271. package/dist/proxy/quic-proxy.d.ts +58 -0
  272. package/dist/proxy/quic-proxy.d.ts.map +1 -0
  273. package/dist/proxy/quic-proxy.js +1 -0
  274. package/dist/proxy/quic-proxy.js.map +1 -0
  275. package/dist/proxy/tool-emulation.d.ts +121 -0
  276. package/dist/proxy/tool-emulation.d.ts.map +1 -0
  277. package/dist/proxy/tool-emulation.js +1 -0
  278. package/dist/proxy/tool-emulation.js.map +1 -0
  279. package/dist/proxy/websocket-proxy.d.ts +39 -0
  280. package/dist/proxy/websocket-proxy.d.ts.map +1 -0
  281. package/dist/proxy/websocket-proxy.js +1 -0
  282. package/dist/proxy/websocket-proxy.js.map +1 -0
  283. package/dist/reasoningbank/AdvancedMemory.d.ts +120 -0
  284. package/dist/reasoningbank/AdvancedMemory.d.ts.map +1 -0
  285. package/dist/reasoningbank/AdvancedMemory.js +1 -0
  286. package/dist/reasoningbank/AdvancedMemory.js.map +1 -0
  287. package/dist/reasoningbank/HybridBackend.d.ts +99 -0
  288. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -0
  289. package/dist/reasoningbank/HybridBackend.js +1 -0
  290. package/dist/reasoningbank/HybridBackend.js.map +1 -0
  291. package/dist/reasoningbank/backend-selector.d.ts +79 -0
  292. package/dist/reasoningbank/backend-selector.d.ts.map +1 -0
  293. package/dist/reasoningbank/backend-selector.js +1 -0
  294. package/dist/reasoningbank/backend-selector.js.map +1 -0
  295. package/dist/reasoningbank/benchmark.d.ts +14 -0
  296. package/dist/reasoningbank/benchmark.d.ts.map +1 -0
  297. package/dist/reasoningbank/benchmark.js +1 -0
  298. package/dist/reasoningbank/benchmark.js.map +1 -0
  299. package/dist/reasoningbank/config/reasoningbank-types.d.ts +57 -0
  300. package/dist/reasoningbank/config/reasoningbank-types.d.ts.map +1 -0
  301. package/dist/reasoningbank/config/reasoningbank-types.js +1 -0
  302. package/dist/reasoningbank/config/reasoningbank-types.js.map +1 -0
  303. package/dist/reasoningbank/core/consolidate.d.ts +21 -0
  304. package/dist/reasoningbank/core/consolidate.d.ts.map +1 -0
  305. package/dist/reasoningbank/core/consolidate.js +1 -0
  306. package/dist/reasoningbank/core/consolidate.js.map +1 -0
  307. package/dist/reasoningbank/core/distill.d.ts +22 -0
  308. package/dist/reasoningbank/core/distill.d.ts.map +1 -0
  309. package/dist/reasoningbank/core/distill.js +1 -0
  310. package/dist/reasoningbank/core/distill.js.map +1 -0
  311. package/dist/reasoningbank/core/judge.d.ts +17 -0
  312. package/dist/reasoningbank/core/judge.d.ts.map +1 -0
  313. package/dist/reasoningbank/core/judge.js +1 -0
  314. package/dist/reasoningbank/core/judge.js.map +1 -0
  315. package/dist/reasoningbank/core/matts.d.ts +46 -0
  316. package/dist/reasoningbank/core/matts.d.ts.map +1 -0
  317. package/dist/reasoningbank/core/matts.js +1 -0
  318. package/dist/reasoningbank/core/matts.js.map +1 -0
  319. package/dist/reasoningbank/core/retrieve.d.ts +35 -0
  320. package/dist/reasoningbank/core/retrieve.d.ts.map +1 -0
  321. package/dist/reasoningbank/core/retrieve.js +1 -0
  322. package/dist/reasoningbank/core/retrieve.js.map +1 -0
  323. package/dist/reasoningbank/db/queries.d.ts +88 -0
  324. package/dist/reasoningbank/db/queries.d.ts.map +1 -0
  325. package/dist/reasoningbank/db/queries.js +1 -0
  326. package/dist/reasoningbank/db/queries.js.map +1 -0
  327. package/dist/reasoningbank/db/schema.d.ts +81 -0
  328. package/dist/reasoningbank/db/schema.d.ts.map +1 -0
  329. package/dist/reasoningbank/db/schema.js +1 -0
  330. package/dist/reasoningbank/db/schema.js.map +1 -0
  331. package/dist/reasoningbank/demo-comparison.d.ts +10 -0
  332. package/dist/reasoningbank/demo-comparison.d.ts.map +1 -0
  333. package/dist/reasoningbank/demo-comparison.js +1 -0
  334. package/dist/reasoningbank/demo-comparison.js.map +1 -0
  335. package/dist/reasoningbank/hooks/post-task.d.ts +9 -0
  336. package/dist/reasoningbank/hooks/post-task.d.ts.map +1 -0
  337. package/dist/reasoningbank/hooks/post-task.js +1 -0
  338. package/dist/reasoningbank/hooks/post-task.js.map +1 -0
  339. package/dist/reasoningbank/hooks/pre-task.d.ts +9 -0
  340. package/dist/reasoningbank/hooks/pre-task.d.ts.map +1 -0
  341. package/dist/reasoningbank/hooks/pre-task.js +1 -0
  342. package/dist/reasoningbank/hooks/pre-task.js.map +1 -0
  343. package/dist/reasoningbank/index-new.d.ts +49 -0
  344. package/dist/reasoningbank/index-new.d.ts.map +1 -0
  345. package/dist/reasoningbank/index-new.js +1 -0
  346. package/dist/reasoningbank/index-new.js.map +1 -0
  347. package/dist/reasoningbank/index.d.ts +50 -0
  348. package/dist/reasoningbank/index.d.ts.map +1 -0
  349. package/dist/reasoningbank/index.js +1 -0
  350. package/dist/reasoningbank/index.js.map +1 -0
  351. package/dist/reasoningbank/test-integration.d.ts +7 -0
  352. package/dist/reasoningbank/test-integration.d.ts.map +1 -0
  353. package/dist/reasoningbank/test-integration.js +1 -0
  354. package/dist/reasoningbank/test-integration.js.map +1 -0
  355. package/dist/reasoningbank/test-retrieval.d.ts +6 -0
  356. package/dist/reasoningbank/test-retrieval.d.ts.map +1 -0
  357. package/dist/reasoningbank/test-retrieval.js +1 -0
  358. package/dist/reasoningbank/test-retrieval.js.map +1 -0
  359. package/dist/reasoningbank/test-validation.d.ts +7 -0
  360. package/dist/reasoningbank/test-validation.d.ts.map +1 -0
  361. package/dist/reasoningbank/test-validation.js +1 -0
  362. package/dist/reasoningbank/test-validation.js.map +1 -0
  363. package/dist/reasoningbank/types/index.d.ts +123 -0
  364. package/dist/reasoningbank/types/index.d.ts.map +1 -0
  365. package/dist/reasoningbank/types/index.js +1 -0
  366. package/dist/reasoningbank/types/index.js.map +1 -0
  367. package/dist/reasoningbank/utils/config.d.ts +61 -0
  368. package/dist/reasoningbank/utils/config.d.ts.map +1 -0
  369. package/dist/reasoningbank/utils/config.js +1 -0
  370. package/dist/reasoningbank/utils/config.js.map +1 -0
  371. package/dist/reasoningbank/utils/embeddings.d.ts +21 -0
  372. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -0
  373. package/dist/reasoningbank/utils/embeddings.js +1 -0
  374. package/dist/reasoningbank/utils/embeddings.js.map +1 -0
  375. package/dist/reasoningbank/utils/mmr.d.ts +23 -0
  376. package/dist/reasoningbank/utils/mmr.d.ts.map +1 -0
  377. package/dist/reasoningbank/utils/mmr.js +1 -0
  378. package/dist/reasoningbank/utils/mmr.js.map +1 -0
  379. package/dist/reasoningbank/utils/pii-scrubber.d.ts +46 -0
  380. package/dist/reasoningbank/utils/pii-scrubber.d.ts.map +1 -0
  381. package/dist/reasoningbank/utils/pii-scrubber.js +1 -0
  382. package/dist/reasoningbank/utils/pii-scrubber.js.map +1 -0
  383. package/dist/reasoningbank/wasm-adapter.d.ts +104 -0
  384. package/dist/reasoningbank/wasm-adapter.d.ts.map +1 -0
  385. package/dist/reasoningbank/wasm-adapter.js +1 -0
  386. package/dist/reasoningbank/wasm-adapter.js.map +1 -0
  387. package/dist/router/model-mapping.d.ts +31 -0
  388. package/dist/router/model-mapping.d.ts.map +1 -0
  389. package/dist/router/model-mapping.js +1 -0
  390. package/dist/router/model-mapping.js.map +1 -0
  391. package/dist/router/providers/anthropic.d.ts +17 -0
  392. package/dist/router/providers/anthropic.d.ts.map +1 -0
  393. package/dist/router/providers/anthropic.js +1 -0
  394. package/dist/router/providers/anthropic.js.map +1 -0
  395. package/dist/router/providers/gemini.d.ts +17 -0
  396. package/dist/router/providers/gemini.d.ts.map +1 -0
  397. package/dist/router/providers/gemini.js +1 -0
  398. package/dist/router/providers/gemini.js.map +1 -0
  399. package/dist/router/providers/onnx-local-optimized.d.ts +71 -0
  400. package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -0
  401. package/dist/router/providers/onnx-local-optimized.js +1 -0
  402. package/dist/router/providers/onnx-local-optimized.js.map +1 -0
  403. package/dist/router/providers/onnx-local.d.ts +75 -0
  404. package/dist/router/providers/onnx-local.d.ts.map +1 -0
  405. package/dist/router/providers/onnx-local.js +1 -0
  406. package/dist/router/providers/onnx-local.js.map +1 -0
  407. package/dist/router/providers/onnx-phi4.d.ts +64 -0
  408. package/dist/router/providers/onnx-phi4.d.ts.map +1 -0
  409. package/dist/router/providers/onnx-phi4.js +1 -0
  410. package/dist/router/providers/onnx-phi4.js.map +1 -0
  411. package/dist/router/providers/onnx.d.ts +65 -0
  412. package/dist/router/providers/onnx.d.ts.map +1 -0
  413. package/dist/router/providers/onnx.js +1 -0
  414. package/dist/router/providers/onnx.js.map +1 -0
  415. package/dist/router/providers/openrouter.d.ts +21 -0
  416. package/dist/router/providers/openrouter.d.ts.map +1 -0
  417. package/dist/router/providers/openrouter.js +1 -0
  418. package/dist/router/providers/openrouter.js.map +1 -0
  419. package/dist/router/router.d.ts +26 -0
  420. package/dist/router/router.d.ts.map +1 -0
  421. package/dist/router/router.js +1 -0
  422. package/dist/router/router.js.map +1 -0
  423. package/dist/router/test-integration.d.ts +13 -0
  424. package/dist/router/test-integration.d.ts.map +1 -0
  425. package/dist/router/test-integration.js +1 -0
  426. package/dist/router/test-integration.js.map +1 -0
  427. package/dist/router/test-onnx-benchmark.d.ts +7 -0
  428. package/dist/router/test-onnx-benchmark.d.ts.map +1 -0
  429. package/dist/router/test-onnx-benchmark.js +1 -0
  430. package/dist/router/test-onnx-benchmark.js.map +1 -0
  431. package/dist/router/test-onnx-integration.d.ts +8 -0
  432. package/dist/router/test-onnx-integration.d.ts.map +1 -0
  433. package/dist/router/test-onnx-integration.js +1 -0
  434. package/dist/router/test-onnx-integration.js.map +1 -0
  435. package/dist/router/test-onnx-local.d.ts +6 -0
  436. package/dist/router/test-onnx-local.d.ts.map +1 -0
  437. package/dist/router/test-onnx-local.js +1 -0
  438. package/dist/router/test-onnx-local.js.map +1 -0
  439. package/dist/router/test-onnx.d.ts +7 -0
  440. package/dist/router/test-onnx.d.ts.map +1 -0
  441. package/dist/router/test-onnx.js +1 -0
  442. package/dist/router/test-onnx.js.map +1 -0
  443. package/dist/router/test-openrouter.d.ts +3 -0
  444. package/dist/router/test-openrouter.d.ts.map +1 -0
  445. package/dist/router/test-openrouter.js +1 -0
  446. package/dist/router/test-openrouter.js.map +1 -0
  447. package/dist/router/test-phi4.d.ts +6 -0
  448. package/dist/router/test-phi4.d.ts.map +1 -0
  449. package/dist/router/test-phi4.js +1 -0
  450. package/dist/router/test-phi4.js.map +1 -0
  451. package/dist/router/types.d.ts +209 -0
  452. package/dist/router/types.d.ts.map +1 -0
  453. package/dist/router/types.js +1 -0
  454. package/dist/router/types.js.map +1 -0
  455. package/dist/swarm/index.d.ts +51 -0
  456. package/dist/swarm/index.d.ts.map +1 -0
  457. package/dist/swarm/index.js +1 -0
  458. package/dist/swarm/index.js.map +1 -0
  459. package/dist/swarm/quic-coordinator.d.ts +149 -0
  460. package/dist/swarm/quic-coordinator.d.ts.map +1 -0
  461. package/dist/swarm/quic-coordinator.js +1 -0
  462. package/dist/swarm/quic-coordinator.js.map +1 -0
  463. package/dist/swarm/transport-router.d.ts +124 -0
  464. package/dist/swarm/transport-router.d.ts.map +1 -0
  465. package/dist/swarm/transport-router.js +1 -0
  466. package/dist/swarm/transport-router.js.map +1 -0
  467. package/dist/transport/index.d.ts +2 -0
  468. package/dist/transport/index.d.ts.map +1 -0
  469. package/dist/transport/index.js +1 -0
  470. package/dist/transport/index.js.map +1 -0
  471. package/dist/transport/quic-handshake.d.ts +66 -0
  472. package/dist/transport/quic-handshake.d.ts.map +1 -0
  473. package/dist/transport/quic-handshake.js +1 -0
  474. package/dist/transport/quic-handshake.js.map +1 -0
  475. package/dist/transport/quic.d.ts +184 -0
  476. package/dist/transport/quic.d.ts.map +1 -0
  477. package/dist/transport/quic.js +1 -0
  478. package/dist/transport/quic.js.map +1 -0
  479. package/dist/utils/agentBoosterPreprocessor.d.ts +72 -0
  480. package/dist/utils/agentBoosterPreprocessor.d.ts.map +1 -0
  481. package/dist/utils/agentBoosterPreprocessor.js +1 -0
  482. package/dist/utils/agentBoosterPreprocessor.js.map +1 -0
  483. package/dist/utils/agentLoader.d.ts +22 -0
  484. package/dist/utils/agentLoader.d.ts.map +1 -0
  485. package/dist/utils/agentLoader.js +1 -0
  486. package/dist/utils/agentLoader.js.map +1 -0
  487. package/dist/utils/agentdb-runtime-patch.d.ts +28 -0
  488. package/dist/utils/agentdb-runtime-patch.d.ts.map +1 -0
  489. package/dist/utils/agentdb-runtime-patch.js +1 -0
  490. package/dist/utils/agentdb-runtime-patch.js.map +1 -0
  491. package/dist/utils/auth.d.ts +13 -0
  492. package/dist/utils/auth.d.ts.map +1 -0
  493. package/dist/utils/auth.js +1 -0
  494. package/dist/utils/auth.js.map +1 -0
  495. package/dist/utils/cli.d.ts +31 -0
  496. package/dist/utils/cli.d.ts.map +1 -0
  497. package/dist/utils/cli.js +1 -0
  498. package/dist/utils/cli.js.map +1 -0
  499. package/dist/utils/compression-middleware.d.ts +55 -0
  500. package/dist/utils/compression-middleware.d.ts.map +1 -0
  501. package/dist/utils/compression-middleware.js +1 -0
  502. package/dist/utils/compression-middleware.js.map +1 -0
  503. package/dist/utils/connection-pool.d.ts +30 -0
  504. package/dist/utils/connection-pool.d.ts.map +1 -0
  505. package/dist/utils/connection-pool.js +1 -0
  506. package/dist/utils/connection-pool.js.map +1 -0
  507. package/dist/utils/logger.d.ts +19 -0
  508. package/dist/utils/logger.d.ts.map +1 -0
  509. package/dist/utils/logger.js +1 -0
  510. package/dist/utils/logger.js.map +1 -0
  511. package/dist/utils/math.d.ts +12 -0
  512. package/dist/utils/math.d.ts.map +1 -0
  513. package/dist/utils/math.js +1 -0
  514. package/dist/utils/math.js.map +1 -0
  515. package/dist/utils/mcpCommands.d.ts +2 -0
  516. package/dist/utils/mcpCommands.d.ts.map +1 -0
  517. package/dist/utils/mcpCommands.js +1 -0
  518. package/dist/utils/mcpCommands.js.map +1 -0
  519. package/dist/utils/model-downloader.d.ts +63 -0
  520. package/dist/utils/model-downloader.d.ts.map +1 -0
  521. package/dist/utils/model-downloader.js +1 -0
  522. package/dist/utils/model-downloader.js.map +1 -0
  523. package/dist/utils/modelCapabilities.d.ts +30 -0
  524. package/dist/utils/modelCapabilities.d.ts.map +1 -0
  525. package/dist/utils/modelCapabilities.js +1 -0
  526. package/dist/utils/modelCapabilities.js.map +1 -0
  527. package/dist/utils/modelOptimizer.d.ts +207 -0
  528. package/dist/utils/modelOptimizer.d.ts.map +1 -0
  529. package/dist/utils/modelOptimizer.js +1 -0
  530. package/dist/utils/modelOptimizer.js.map +1 -0
  531. package/dist/utils/rate-limiter.d.ts +17 -0
  532. package/dist/utils/rate-limiter.d.ts.map +1 -0
  533. package/dist/utils/rate-limiter.js +1 -0
  534. package/dist/utils/rate-limiter.js.map +1 -0
  535. package/dist/utils/reasoningbankCommands.d.ts +6 -0
  536. package/dist/utils/reasoningbankCommands.d.ts.map +1 -0
  537. package/dist/utils/reasoningbankCommands.js +1 -0
  538. package/dist/utils/reasoningbankCommands.js.map +1 -0
  539. package/dist/utils/response-cache.d.ts +94 -0
  540. package/dist/utils/response-cache.d.ts.map +1 -0
  541. package/dist/utils/response-cache.js +1 -0
  542. package/dist/utils/response-cache.js.map +1 -0
  543. package/dist/utils/retry.d.ts +9 -0
  544. package/dist/utils/retry.d.ts.map +1 -0
  545. package/dist/utils/retry.js +1 -0
  546. package/dist/utils/retry.js.map +1 -0
  547. package/dist/utils/streaming-optimizer.d.ts +37 -0
  548. package/dist/utils/streaming-optimizer.d.ts.map +1 -0
  549. package/dist/utils/streaming-optimizer.js +1 -0
  550. package/dist/utils/streaming-optimizer.js.map +1 -0
  551. package/package.json +1 -1
  552. package/docs/PHASE2-IMPLEMENTATION-SUMMARY.md +0 -275
  553. package/docs/PHASE2-PHASE3-COMPLETE-SUMMARY.md +0 -453
  554. package/docs/PHASE3-IMPLEMENTATION-SUMMARY.md +0 -357
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE;IACxC,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC","sourcesContent":["/**\n * Simple math utility functions\n */\n\n/**\n * Adds 2 and 2 together\n * @returns The sum of 2 + 2\n * @example\n * const result = addTwoPlusTwo();\n * console.log(result); // Output: 4\n */\nexport const addTwoPlusTwo = (): number => {\n return 2 + 2;\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function handleMCPCommand(command: string, server?: string): Promise<void>;
2
+ //# sourceMappingURL=mcpCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpCommands.d.ts","sourceRoot":"","sources":["../../src/utils/mcpCommands.ts"],"names":[],"mappings":"AAsCA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB7F"}
@@ -212,3 +212,4 @@ function getExampleTools(serverName) {
212
212
  return [];
213
213
  }
214
214
  }
215
+ //# sourceMappingURL=mcpCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpCommands.js","sourceRoot":"","sources":["../../src/utils/mcpCommands.ts"],"names":[],"mappings":"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","sourcesContent":["// MCP server management commands\nimport { spawn, exec } from 'child_process';\nimport { promisify } from 'util';\n\nconst execAsync = promisify(exec);\n\ninterface MCPServerConfig {\n name: string;\n command: string;\n args: string[];\n description: string;\n toolCount: number;\n}\n\nconst MCP_SERVERS: Record<string, MCPServerConfig> = {\n 'claude-flow': {\n name: 'claude-flow',\n command: 'npx',\n args: ['claude-flow@alpha', 'mcp', 'start'],\n description: '101 tools (neural networks, GitHub, workflows, DAA)',\n toolCount: 101\n },\n 'flow-nexus': {\n name: 'flow-nexus',\n command: 'npx',\n args: ['flow-nexus@latest', 'mcp', 'start'],\n description: '96 cloud tools (sandboxes, distributed swarms, templates)',\n toolCount: 96\n },\n 'agentic-payments': {\n name: 'agentic-payments',\n command: 'npx',\n args: ['-y', 'agentic-payments', 'mcp'],\n description: 'Payment authorization and multi-agent consensus',\n toolCount: 10\n }\n};\n\nexport async function handleMCPCommand(command: string, server: string = 'all'): Promise<void> {\n switch (command) {\n case 'start':\n await startMCPServers(server);\n break;\n case 'stop':\n await stopMCPServers(server);\n break;\n case 'status':\n await checkMCPStatus(server);\n break;\n case 'list':\n await listMCPTools(server);\n break;\n default:\n console.error(`āŒ Unknown MCP command: ${command}`);\n console.error('Available commands: start, stop, status, list');\n process.exit(1);\n }\n}\n\nasync function startMCPServers(server: string): Promise<void> {\n console.log(`\\nšŸš€ Starting MCP Server(s): ${server}\\n`);\n\n const serversToStart = server === 'all'\n ? Object.keys(MCP_SERVERS)\n : [server];\n\n for (const serverName of serversToStart) {\n const config = MCP_SERVERS[serverName];\n if (!config) {\n console.error(`āŒ Unknown server: ${serverName}`);\n continue;\n }\n\n console.log(`šŸ“¦ ${config.name}`);\n console.log(` ${config.description}`);\n console.log(` Command: ${config.command} ${config.args.join(' ')}`);\n console.log(` Status: Starting as subprocess...\\n`);\n\n // Start server in background\n const child = spawn(config.command, config.args, {\n detached: true,\n stdio: 'inherit',\n env: {\n ...process.env,\n MCP_AUTO_START: 'true'\n }\n });\n\n child.unref(); // Allow parent to exit independently\n }\n\n console.log(`\\nāœ… MCP server(s) started in background`);\n console.log(`šŸ’” Tip: Use 'npx agentic-flow mcp status' to check server status\\n`);\n}\n\nasync function stopMCPServers(server: string): Promise<void> {\n console.log(`\\nšŸ›‘ Stopping MCP Server(s): ${server}\\n`);\n\n const serversToStop = server === 'all'\n ? Object.keys(MCP_SERVERS)\n : [server];\n\n for (const serverName of serversToStop) {\n const config = MCP_SERVERS[serverName];\n if (!config) {\n console.error(`āŒ Unknown server: ${serverName}`);\n continue;\n }\n\n try {\n // Try to kill processes by name\n const killCommand = process.platform === 'win32'\n ? `taskkill /F /IM node.exe /FI \"WINDOWTITLE eq ${serverName}*\"`\n : `pkill -f \"${serverName}\"`;\n\n await execAsync(killCommand);\n console.log(`āœ… Stopped ${config.name}`);\n } catch (error: any) {\n if (error.code === 1) {\n console.log(`āš ļø ${config.name} not running`);\n } else {\n console.error(`āŒ Error stopping ${config.name}:`, error.message);\n }\n }\n }\n\n console.log();\n}\n\nasync function checkMCPStatus(server: string): Promise<void> {\n console.log(`\\nšŸ“Š MCP Server Status: ${server}\\n`);\n\n const serversToCheck = server === 'all'\n ? Object.keys(MCP_SERVERS)\n : [server];\n\n for (const serverName of serversToCheck) {\n const config = MCP_SERVERS[serverName];\n if (!config) {\n console.error(`āŒ Unknown server: ${serverName}`);\n continue;\n }\n\n console.log(`šŸ“¦ ${config.name}`);\n console.log(` Description: ${config.description}`);\n console.log(` Tool Count: ${config.toolCount}`);\n\n try {\n // Check if process is running\n const checkCommand = process.platform === 'win32'\n ? `tasklist /FI \"IMAGENAME eq node.exe\" /FO CSV | findstr /C:\"${serverName}\"`\n : `pgrep -f \"${serverName}\"`;\n\n const { stdout } = await execAsync(checkCommand);\n const isRunning = stdout.trim().length > 0;\n\n console.log(` Status: ${isRunning ? 'āœ… Running' : 'āš ļø Not running'}`);\n } catch (error) {\n console.log(` Status: āš ļø Not running`);\n }\n console.log();\n }\n}\n\nasync function listMCPTools(server: string): Promise<void> {\n console.log(`\\nšŸ“‹ MCP Tools Available\\n`);\n\n const serversToList = server === 'all'\n ? Object.keys(MCP_SERVERS)\n : [server];\n\n let totalTools = 0;\n\n for (const serverName of serversToList) {\n const config = MCP_SERVERS[serverName];\n if (!config) {\n console.error(`āŒ Unknown server: ${serverName}`);\n continue;\n }\n\n console.log(`\\nšŸ“¦ ${config.name.toUpperCase()} (${config.toolCount} tools)`);\n console.log(` ${config.description}`);\n console.log();\n\n totalTools += config.toolCount;\n\n // Show example tools based on server\n const examples = getExampleTools(serverName);\n examples.forEach(tool => {\n console.log(` • ${tool}`);\n });\n }\n\n // Add in-SDK tools\n console.log(`\\nšŸ“¦ CLAUDE-FLOW-SDK (6 in-process tools)`);\n console.log(` Fast, zero-latency tools running in-process`);\n console.log();\n console.log(` • memory_store - Store values in persistent memory`);\n console.log(` • memory_retrieve - Retrieve values from memory`);\n console.log(` • memory_list - List all memory keys`);\n console.log(` • swarm_init - Initialize agent swarms`);\n console.log(` • agent_spawn - Spawn specialized agents`);\n console.log(` • coordination_sync - Synchronize agent coordination`);\n\n totalTools += 6;\n\n console.log(`\\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);\n console.log(`šŸ“Š TOTAL: ${totalTools} MCP tools available`);\n console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n`);\n\n console.log(`šŸ’” Usage: Tools are automatically available to agents`);\n console.log(` npx agentic-flow --agent coder --task \"Your task\"\\n`);\n}\n\nfunction getExampleTools(serverName: string): string[] {\n switch (serverName) {\n case 'claude-flow':\n return [\n 'swarm_init - Initialize multi-agent swarms',\n 'agent_spawn - Create specialized AI agents',\n 'task_orchestrate - Orchestrate complex tasks',\n 'neural_train - Train neural networks with WASM',\n 'github_repo_analyze - Analyze GitHub repositories',\n 'workflow_create - Create automated workflows',\n 'daa_agent_create - Create autonomous agents',\n 'performance_report - Generate performance metrics',\n '... and 93 more tools'\n ];\n case 'flow-nexus':\n return [\n 'sandbox_create - Create isolated E2B sandboxes',\n 'sandbox_execute - Execute code in sandboxes',\n 'swarm_init - Initialize cloud-based swarms',\n 'neural_train - Distributed neural training',\n 'workflow_create - Event-driven workflows',\n 'template_deploy - Deploy project templates',\n 'user_login - Authenticate Flow Nexus users',\n 'storage_upload - Cloud file storage',\n '... and 88 more tools'\n ];\n case 'agentic-payments':\n return [\n 'create_active_mandate - Create payment authorization',\n 'sign_mandate - Sign with Ed25519 cryptography',\n 'verify_mandate - Verify payment signatures',\n 'revoke_mandate - Revoke authorizations',\n 'verify_consensus - Multi-agent consensus',\n 'generate_agent_identity - Create agent identities',\n '... and 4 more tools'\n ];\n default:\n return [];\n }\n}\n"]}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Automatic Model Downloader for ONNX Phi-4
3
+ *
4
+ * Downloads Phi-4 ONNX model from HuggingFace on first use
5
+ */
6
+ export interface DownloadProgress {
7
+ downloaded: number;
8
+ total: number;
9
+ percentage: number;
10
+ }
11
+ export interface ModelInfo {
12
+ repo: string;
13
+ filename: string;
14
+ localPath: string;
15
+ sha256?: string;
16
+ }
17
+ export declare class ModelDownloader {
18
+ private baseUrl;
19
+ /**
20
+ * Phi-4 Mini ONNX INT4 quantized model (CPU optimized)
21
+ * Size: ~52MB model + ~4.86GB data = ~4.9GB total
22
+ * Note: Requires TWO files - model.onnx and model.onnx.data
23
+ */
24
+ private phi4Model;
25
+ private phi4ModelData;
26
+ /**
27
+ * Check if model exists locally
28
+ */
29
+ isModelDownloaded(modelPath?: string): boolean;
30
+ /**
31
+ * Get model download URL
32
+ */
33
+ private getDownloadUrl;
34
+ /**
35
+ * Download model with progress tracking
36
+ */
37
+ downloadModel(modelInfo?: ModelInfo, onProgress?: (progress: DownloadProgress) => void): Promise<string>;
38
+ /**
39
+ * Download Phi-4 ONNX model if needed (downloads BOTH .onnx and .onnx.data files)
40
+ */
41
+ ensurePhi4Model(onProgress?: (progress: DownloadProgress) => void): Promise<string>;
42
+ /**
43
+ * Verify model file integrity (optional)
44
+ */
45
+ verifyModel(modelPath: string, expectedSha256?: string): Promise<boolean>;
46
+ /**
47
+ * Get model info
48
+ */
49
+ getModelInfo(): ModelInfo;
50
+ /**
51
+ * Format download progress for display
52
+ */
53
+ static formatProgress(progress: DownloadProgress): string;
54
+ }
55
+ /**
56
+ * Global singleton instance
57
+ */
58
+ export declare const modelDownloader: ModelDownloader;
59
+ /**
60
+ * Convenience function for downloading Phi-4 model
61
+ */
62
+ export declare function ensurePhi4Model(onProgress?: (progress: DownloadProgress) => void): Promise<string>;
63
+ //# sourceMappingURL=model-downloader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-downloader.d.ts","sourceRoot":"","sources":["../../src/utils/model-downloader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAA4B;IAE3C;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAIf;IAEF,OAAO,CAAC,aAAa,CAInB;IAEF;;OAEG;IACH,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAK9C;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACG,aAAa,CACjB,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAChD,OAAO,CAAC,MAAM,CAAC;IAkFlB;;OAEG;IACG,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BzF;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB/E;;OAEG;IACH,YAAY,IAAI,SAAS;IAIzB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM;CAI1D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAErD;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAChD,OAAO,CAAC,MAAM,CAAC,CAEjB"}
@@ -180,3 +180,4 @@ export const modelDownloader = new ModelDownloader();
180
180
  export async function ensurePhi4Model(onProgress) {
181
181
  return modelDownloader.ensurePhi4Model(onProgress);
182
182
  }
183
+ //# sourceMappingURL=model-downloader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-downloader.js","sourceRoot":"","sources":["../../src/utils/model-downloader.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Automatic Model Downloader for ONNX Phi-4\n *\n * Downloads Phi-4 ONNX model from HuggingFace on first use\n */\n\nimport { createWriteStream, existsSync, mkdirSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { pipeline } from 'stream/promises';\nimport { createHash } from 'crypto';\nimport { readFileSync } from 'fs';\n\nexport interface DownloadProgress {\n downloaded: number;\n total: number;\n percentage: number;\n}\n\nexport interface ModelInfo {\n repo: string;\n filename: string;\n localPath: string;\n sha256?: string;\n}\n\nexport class ModelDownloader {\n private baseUrl = 'https://huggingface.co';\n\n /**\n * Phi-4 Mini ONNX INT4 quantized model (CPU optimized)\n * Size: ~52MB model + ~4.86GB data = ~4.9GB total\n * Note: Requires TWO files - model.onnx and model.onnx.data\n */\n private phi4Model: ModelInfo = {\n repo: 'microsoft/Phi-4-mini-instruct-onnx',\n filename: 'cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx',\n localPath: './models/phi-4-mini/cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx'\n };\n\n private phi4ModelData: ModelInfo = {\n repo: 'microsoft/Phi-4-mini-instruct-onnx',\n filename: 'cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx.data',\n localPath: './models/phi-4-mini/cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx.data'\n };\n\n /**\n * Check if model exists locally\n */\n isModelDownloaded(modelPath?: string): boolean {\n const path = modelPath || this.phi4Model.localPath;\n return existsSync(path);\n }\n\n /**\n * Get model download URL\n */\n private getDownloadUrl(model: ModelInfo): string {\n return `${this.baseUrl}/${model.repo}/resolve/main/${model.filename}`;\n }\n\n /**\n * Download model with progress tracking\n */\n async downloadModel(\n modelInfo?: ModelInfo,\n onProgress?: (progress: DownloadProgress) => void\n ): Promise<string> {\n const model = modelInfo || this.phi4Model;\n\n // Check if already downloaded\n if (this.isModelDownloaded(model.localPath)) {\n console.log(`āœ… Model already exists at ${model.localPath}`);\n return model.localPath;\n }\n\n // Create directory\n const dir = dirname(model.localPath);\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n\n const url = this.getDownloadUrl(model);\n console.log(`šŸ“¦ Downloading Phi-4 ONNX model from HuggingFace...`);\n console.log(` URL: ${url}`);\n console.log(` Destination: ${model.localPath}`);\n\n try {\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(`Download failed: ${response.statusText}`);\n }\n\n const totalSize = parseInt(response.headers.get('content-length') || '0', 10);\n let downloadedSize = 0;\n\n if (!response.body) {\n throw new Error('Response body is null');\n }\n\n const fileStream = createWriteStream(model.localPath);\n\n // Track progress\n const reader = response.body.getReader();\n const chunks: Uint8Array[] = [];\n\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) break;\n\n if (value) {\n chunks.push(value);\n downloadedSize += value.length;\n\n if (onProgress && totalSize > 0) {\n onProgress({\n downloaded: downloadedSize,\n total: totalSize,\n percentage: (downloadedSize / totalSize) * 100\n });\n }\n\n // Write chunk\n fileStream.write(value);\n }\n }\n\n fileStream.end();\n\n // Wait for file stream to finish\n await new Promise<void>((resolve, reject) => {\n fileStream.on('finish', () => resolve());\n fileStream.on('error', reject);\n });\n\n console.log(`āœ… Model downloaded successfully`);\n console.log(` Size: ${(downloadedSize / (1024 * 1024)).toFixed(2)} MB`);\n console.log(` Path: ${model.localPath}`);\n\n return model.localPath;\n\n } catch (error) {\n console.error(`āŒ Model download failed:`, error);\n throw new Error(`Failed to download model: ${error}`);\n }\n }\n\n /**\n * Download Phi-4 ONNX model if needed (downloads BOTH .onnx and .onnx.data files)\n */\n async ensurePhi4Model(onProgress?: (progress: DownloadProgress) => void): Promise<string> {\n const mainFileExists = this.isModelDownloaded(this.phi4Model.localPath);\n const dataFileExists = this.isModelDownloaded(this.phi4ModelData.localPath);\n\n if (mainFileExists && dataFileExists) {\n return this.phi4Model.localPath;\n }\n\n console.log(`šŸ” Phi-4-mini ONNX model not found locally`);\n console.log(`šŸ“„ Starting automatic download...`);\n console.log(` This is a one-time download (~4.9GB total)`);\n console.log(` Model: microsoft/Phi-4-mini-instruct-onnx (INT4 quantized)`);\n console.log(` Files: model.onnx (~52MB) + model.onnx.data (~4.86GB)`);\n console.log(``);\n\n // Download main model file if missing\n if (!mainFileExists) {\n console.log(`šŸ“¦ Downloading model.onnx...`);\n await this.downloadModel(this.phi4Model, onProgress);\n console.log(``);\n }\n\n // Download data file if missing\n if (!dataFileExists) {\n console.log(`šŸ“¦ Downloading model.onnx.data (this is the large 4.86GB file)...`);\n await this.downloadModel(this.phi4ModelData, onProgress);\n }\n\n return this.phi4Model.localPath;\n }\n\n /**\n * Verify model file integrity (optional)\n */\n async verifyModel(modelPath: string, expectedSha256?: string): Promise<boolean> {\n if (!expectedSha256) {\n return true; // Skip verification if no hash provided\n }\n\n try {\n const fileBuffer = readFileSync(modelPath);\n const hash = createHash('sha256').update(fileBuffer).digest('hex');\n\n if (hash !== expectedSha256) {\n console.error(`āŒ Model verification failed`);\n console.error(` Expected: ${expectedSha256}`);\n console.error(` Got: ${hash}`);\n return false;\n }\n\n console.log(`āœ… Model verification passed`);\n return true;\n\n } catch (error) {\n console.error(`āŒ Model verification error:`, error);\n return false;\n }\n }\n\n /**\n * Get model info\n */\n getModelInfo(): ModelInfo {\n return this.phi4Model;\n }\n\n /**\n * Format download progress for display\n */\n static formatProgress(progress: DownloadProgress): string {\n const mb = (bytes: number) => (bytes / (1024 * 1024)).toFixed(2);\n return `${progress.percentage.toFixed(1)}% (${mb(progress.downloaded)}/${mb(progress.total)} MB)`;\n }\n}\n\n/**\n * Global singleton instance\n */\nexport const modelDownloader = new ModelDownloader();\n\n/**\n * Convenience function for downloading Phi-4 model\n */\nexport async function ensurePhi4Model(\n onProgress?: (progress: DownloadProgress) => void\n): Promise<string> {\n return modelDownloader.ensurePhi4Model(onProgress);\n}\n"]}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Model Capability Detection
3
+ * Determines if a model supports native tool calling or requires emulation
4
+ */
5
+ export interface ModelCapabilities {
6
+ supportsNativeTools: boolean;
7
+ supportsStreaming: boolean;
8
+ contextWindow: number;
9
+ requiresEmulation: boolean;
10
+ emulationStrategy: 'none' | 'react' | 'prompt' | 'hybrid';
11
+ costPerMillionTokens: number;
12
+ provider: string;
13
+ }
14
+ /**
15
+ * Detect capabilities of a model
16
+ */
17
+ export declare function detectModelCapabilities(modelId: string): ModelCapabilities;
18
+ /**
19
+ * Check if model can handle a specific number of tools
20
+ */
21
+ export declare function canHandleToolCount(modelId: string, toolCount: number): boolean;
22
+ /**
23
+ * Recommend optimal strategy for a model
24
+ */
25
+ export declare function recommendStrategy(modelId: string, toolCount: number, taskComplexity: 'simple' | 'medium' | 'complex'): 'native' | 'react' | 'prompt' | 'hybrid';
26
+ /**
27
+ * Get human-readable capability report
28
+ */
29
+ export declare function getCapabilityReport(modelId: string): string;
30
+ //# sourceMappingURL=modelCapabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelCapabilities.d.ts","sourceRoot":"","sources":["../../src/utils/modelCapabilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AA4LD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA0C1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAU9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAC9C,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAiB1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuB3D"}
@@ -274,3 +274,4 @@ export function getCapabilityReport(modelId) {
274
274
  report += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`;
275
275
  return report;
276
276
  }
277
+ //# sourceMappingURL=modelCapabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelCapabilities.js","sourceRoot":"","sources":["../../src/utils/modelCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Model Capability Detection\n * Determines if a model supports native tool calling or requires emulation\n */\n\nexport interface ModelCapabilities {\n supportsNativeTools: boolean;\n supportsStreaming: boolean;\n contextWindow: number;\n requiresEmulation: boolean;\n emulationStrategy: 'none' | 'react' | 'prompt' | 'hybrid';\n costPerMillionTokens: number;\n provider: string;\n}\n\n/**\n * Database of known model capabilities\n * Updated periodically as new models are released\n */\nconst MODEL_CAPABILITIES: Record<string, Partial<ModelCapabilities>> = {\n // OpenRouter - Native Tool Support\n 'deepseek/deepseek-chat': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.15\n },\n 'deepseek/deepseek-chat-v3': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.15\n },\n 'meta-llama/llama-3.3-70b-instruct': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.40\n },\n 'qwen/qwen-2.5-coder-32b-instruct': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.23\n },\n 'mistralai/mistral-small-3.1-24b-instruct': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.30\n },\n\n // OpenAI Models (via OpenRouter/Requesty)\n 'openai/gpt-4o': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 2.50\n },\n 'openai/gpt-4o-mini': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.15\n },\n 'openai/gpt-4-turbo': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 10.00\n },\n\n // OpenRouter - No Native Tool Support (Require Emulation)\n 'mistralai/mistral-7b-instruct': {\n supportsNativeTools: false,\n contextWindow: 32000,\n requiresEmulation: true,\n emulationStrategy: 'react', // Best for this model\n costPerMillionTokens: 0.07\n },\n 'meta-llama/llama-2-13b-chat': {\n supportsNativeTools: false,\n contextWindow: 4096,\n requiresEmulation: true,\n emulationStrategy: 'prompt', // Simple prompting works best\n costPerMillionTokens: 0.05\n },\n 'google/gemma-7b-it': {\n supportsNativeTools: false,\n contextWindow: 8192,\n requiresEmulation: true,\n emulationStrategy: 'prompt',\n costPerMillionTokens: 0.07\n },\n 'thudm/glm-4-9b:free': {\n supportsNativeTools: false, // Free tier limited\n contextWindow: 32000,\n requiresEmulation: true,\n emulationStrategy: 'react',\n costPerMillionTokens: 0.0 // FREE\n },\n\n // Anthropic - Native Tool Support\n 'claude-3-5-sonnet-20241022': {\n supportsNativeTools: true,\n contextWindow: 200000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 3.0\n },\n 'claude-3-5-haiku-20241022': {\n supportsNativeTools: true,\n contextWindow: 200000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.80\n },\n\n // Gemini - Native Tool Support\n 'gemini-2.0-flash-exp': {\n supportsNativeTools: true,\n contextWindow: 1000000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.0 // FREE tier\n },\n\n // OpenAI - Native Tool Support\n 'gpt-4o': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 2.50\n },\n 'gpt-4o-mini': {\n supportsNativeTools: true,\n contextWindow: 128000,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.15\n },\n 'gpt-3.5-turbo': {\n supportsNativeTools: true,\n contextWindow: 16385,\n requiresEmulation: false,\n emulationStrategy: 'none',\n costPerMillionTokens: 0.50\n }\n};\n\n/**\n * Pattern matching for model families\n */\nconst MODEL_PATTERNS: Array<{\n pattern: RegExp;\n capabilities: Partial<ModelCapabilities>;\n}> = [\n {\n pattern: /^claude-3/,\n capabilities: { supportsNativeTools: true, requiresEmulation: false }\n },\n {\n pattern: /^gpt-(4|3\\.5)/,\n capabilities: { supportsNativeTools: true, requiresEmulation: false }\n },\n {\n pattern: /^gemini-/,\n capabilities: { supportsNativeTools: true, requiresEmulation: false }\n },\n {\n pattern: /deepseek\\/deepseek-(chat|coder)/,\n capabilities: { supportsNativeTools: true, requiresEmulation: false }\n },\n {\n pattern: /llama-3\\.(3|2|1)-.*instruct/,\n capabilities: { supportsNativeTools: true, requiresEmulation: false }\n },\n {\n pattern: /qwen.*2\\.5/,\n capabilities: { supportsNativeTools: true, requiresEmulation: false }\n },\n {\n pattern: /mistral.*large|mistral.*small/,\n capabilities: { supportsNativeTools: true, requiresEmulation: false }\n },\n // Older models typically don't support tools\n {\n pattern: /llama-2|mistral-7b|gemma-.*7b/,\n capabilities: { supportsNativeTools: false, requiresEmulation: true, emulationStrategy: 'react' }\n }\n];\n\n/**\n * Detect capabilities of a model\n */\nexport function detectModelCapabilities(modelId: string): ModelCapabilities {\n // Direct lookup\n if (MODEL_CAPABILITIES[modelId]) {\n return {\n supportsNativeTools: false,\n supportsStreaming: true,\n contextWindow: 4096,\n requiresEmulation: true,\n emulationStrategy: 'prompt',\n costPerMillionTokens: 0.5,\n provider: 'unknown',\n ...MODEL_CAPABILITIES[modelId]\n };\n }\n\n // Pattern matching\n for (const { pattern, capabilities } of MODEL_PATTERNS) {\n if (pattern.test(modelId)) {\n return {\n supportsNativeTools: false,\n supportsStreaming: true,\n contextWindow: 4096,\n requiresEmulation: true,\n emulationStrategy: 'prompt',\n costPerMillionTokens: 0.5,\n provider: 'unknown',\n ...capabilities\n };\n }\n }\n\n // Unknown model - assume needs emulation (conservative)\n console.warn(`āš ļø Unknown model: ${modelId}. Assuming no native tool support.`);\n return {\n supportsNativeTools: false,\n supportsStreaming: true,\n contextWindow: 4096,\n requiresEmulation: true,\n emulationStrategy: 'prompt',\n costPerMillionTokens: 0.5,\n provider: 'unknown'\n };\n}\n\n/**\n * Check if model can handle a specific number of tools\n */\nexport function canHandleToolCount(modelId: string, toolCount: number): boolean {\n const capabilities = detectModelCapabilities(modelId);\n\n // Estimate: Each tool ~100 tokens of schema\n const estimatedTokens = toolCount * 100;\n\n // Need at least 20% of context window free for actual conversation\n const maxToolTokens = capabilities.contextWindow * 0.8;\n\n return estimatedTokens <= maxToolTokens;\n}\n\n/**\n * Recommend optimal strategy for a model\n */\nexport function recommendStrategy(\n modelId: string,\n toolCount: number,\n taskComplexity: 'simple' | 'medium' | 'complex'\n): 'native' | 'react' | 'prompt' | 'hybrid' {\n const capabilities = detectModelCapabilities(modelId);\n\n if (capabilities.supportsNativeTools) {\n return 'native';\n }\n\n // For emulation, choose based on context and complexity\n if (toolCount > 10 || taskComplexity === 'complex') {\n return 'react'; // More robust for complex scenarios\n }\n\n if (capabilities.contextWindow < 8000) {\n return 'prompt'; // Simpler for small context windows\n }\n\n return 'react'; // Default to ReAct pattern\n}\n\n/**\n * Get human-readable capability report\n */\nexport function getCapabilityReport(modelId: string): string {\n const cap = detectModelCapabilities(modelId);\n\n let report = `\\nšŸ“Š Model Capabilities: ${modelId}\\n`;\n report += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n`;\n report += `Native Tool Support: ${cap.supportsNativeTools ? 'āœ… Yes' : 'āŒ No'}\\n`;\n report += `Context Window: ${cap.contextWindow.toLocaleString()} tokens\\n`;\n report += `Streaming: ${cap.supportsStreaming ? 'āœ… Yes' : 'āŒ No'}\\n`;\n report += `Cost per 1M tokens: $${cap.costPerMillionTokens}\\n`;\n\n if (cap.requiresEmulation) {\n report += `\\nāš™ļø Emulation Required\\n`;\n report += `Recommended Strategy: ${cap.emulationStrategy.toUpperCase()}\\n`;\n report += `\\nNote: This model will use prompt-based tool emulation.\\n`;\n report += `Expect 70-85% reliability vs 95%+ for native tool support.\\n`;\n } else {\n report += `\\nāœ… No Emulation Needed\\n`;\n report += `This model natively supports function calling.\\n`;\n }\n\n report += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n`;\n\n return report;\n}\n"]}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Smart Model Optimizer - Automatically selects the best model for each agent and task
3
+ * Balances performance vs cost based on agent requirements
4
+ */
5
+ export interface ModelRecommendation {
6
+ provider: string;
7
+ model: string;
8
+ modelName: string;
9
+ reasoning: string;
10
+ cost_per_1m_input: number;
11
+ cost_per_1m_output: number;
12
+ quality_score: number;
13
+ speed_score: number;
14
+ cost_score: number;
15
+ overall_score: number;
16
+ tier: 'flagship' | 'cost-effective' | 'balanced' | 'budget' | 'local';
17
+ }
18
+ export interface OptimizationCriteria {
19
+ agent: string;
20
+ task: string;
21
+ priority?: 'quality' | 'balanced' | 'cost' | 'speed' | 'privacy';
22
+ maxCostPerTask?: number;
23
+ requiresReasoning?: boolean;
24
+ requiresMultimodal?: boolean;
25
+ requiresTools?: boolean;
26
+ taskComplexity?: 'simple' | 'moderate' | 'complex' | 'expert';
27
+ }
28
+ declare const MODEL_DATABASE: {
29
+ 'claude-sonnet-4-5': {
30
+ provider: string;
31
+ model: string;
32
+ modelName: string;
33
+ cost_per_1m_input: number;
34
+ cost_per_1m_output: number;
35
+ quality_score: number;
36
+ speed_score: number;
37
+ cost_score: number;
38
+ tier: "flagship";
39
+ supports_tools: boolean;
40
+ strengths: string[];
41
+ weaknesses: string[];
42
+ bestFor: string[];
43
+ };
44
+ 'gpt-4o': {
45
+ provider: string;
46
+ model: string;
47
+ modelName: string;
48
+ cost_per_1m_input: number;
49
+ cost_per_1m_output: number;
50
+ quality_score: number;
51
+ speed_score: number;
52
+ cost_score: number;
53
+ tier: "flagship";
54
+ supports_tools: boolean;
55
+ strengths: string[];
56
+ weaknesses: string[];
57
+ bestFor: string[];
58
+ };
59
+ 'gemini-2-5-pro': {
60
+ provider: string;
61
+ model: string;
62
+ modelName: string;
63
+ cost_per_1m_input: number;
64
+ cost_per_1m_output: number;
65
+ quality_score: number;
66
+ speed_score: number;
67
+ cost_score: number;
68
+ tier: "flagship";
69
+ supports_tools: boolean;
70
+ strengths: string[];
71
+ weaknesses: string[];
72
+ bestFor: string[];
73
+ };
74
+ 'deepseek-r1': {
75
+ provider: string;
76
+ model: string;
77
+ modelName: string;
78
+ cost_per_1m_input: number;
79
+ cost_per_1m_output: number;
80
+ quality_score: number;
81
+ speed_score: number;
82
+ cost_score: number;
83
+ tier: "cost-effective";
84
+ supports_tools: boolean;
85
+ strengths: string[];
86
+ weaknesses: string[];
87
+ bestFor: string[];
88
+ };
89
+ 'deepseek-chat-v3': {
90
+ provider: string;
91
+ model: string;
92
+ modelName: string;
93
+ cost_per_1m_input: number;
94
+ cost_per_1m_output: number;
95
+ quality_score: number;
96
+ speed_score: number;
97
+ cost_score: number;
98
+ tier: "cost-effective";
99
+ supports_tools: boolean;
100
+ strengths: string[];
101
+ weaknesses: string[];
102
+ bestFor: string[];
103
+ };
104
+ 'gemini-2-5-flash': {
105
+ provider: string;
106
+ model: string;
107
+ modelName: string;
108
+ cost_per_1m_input: number;
109
+ cost_per_1m_output: number;
110
+ quality_score: number;
111
+ speed_score: number;
112
+ cost_score: number;
113
+ tier: "balanced";
114
+ supports_tools: boolean;
115
+ strengths: string[];
116
+ weaknesses: string[];
117
+ bestFor: string[];
118
+ };
119
+ 'llama-3-3-8b': {
120
+ provider: string;
121
+ model: string;
122
+ modelName: string;
123
+ cost_per_1m_input: number;
124
+ cost_per_1m_output: number;
125
+ quality_score: number;
126
+ speed_score: number;
127
+ cost_score: number;
128
+ tier: "balanced";
129
+ supports_tools: boolean;
130
+ strengths: string[];
131
+ weaknesses: string[];
132
+ bestFor: string[];
133
+ };
134
+ 'qwen-2-5-72b': {
135
+ provider: string;
136
+ model: string;
137
+ modelName: string;
138
+ cost_per_1m_input: number;
139
+ cost_per_1m_output: number;
140
+ quality_score: number;
141
+ speed_score: number;
142
+ cost_score: number;
143
+ tier: "balanced";
144
+ supports_tools: boolean;
145
+ strengths: string[];
146
+ weaknesses: string[];
147
+ bestFor: string[];
148
+ };
149
+ 'llama-3-1-8b': {
150
+ provider: string;
151
+ model: string;
152
+ modelName: string;
153
+ cost_per_1m_input: number;
154
+ cost_per_1m_output: number;
155
+ quality_score: number;
156
+ speed_score: number;
157
+ cost_score: number;
158
+ tier: "budget";
159
+ supports_tools: boolean;
160
+ strengths: string[];
161
+ weaknesses: string[];
162
+ bestFor: string[];
163
+ };
164
+ 'onnx-phi-4': {
165
+ provider: string;
166
+ model: string;
167
+ modelName: string;
168
+ cost_per_1m_input: number;
169
+ cost_per_1m_output: number;
170
+ quality_score: number;
171
+ speed_score: number;
172
+ cost_score: number;
173
+ tier: "local";
174
+ supports_tools: boolean;
175
+ strengths: string[];
176
+ weaknesses: string[];
177
+ bestFor: string[];
178
+ };
179
+ };
180
+ export declare class ModelOptimizer {
181
+ /**
182
+ * Optimize model selection based on agent, task, and priorities
183
+ */
184
+ static optimize(criteria: OptimizationCriteria): ModelRecommendation;
185
+ /**
186
+ * Infer task complexity from task description
187
+ */
188
+ private static inferComplexity;
189
+ /**
190
+ * Estimate cost for a task (rough approximation)
191
+ */
192
+ private static estimateCost;
193
+ /**
194
+ * Generate human-readable reasoning for model selection
195
+ */
196
+ private static generateReasoning;
197
+ /**
198
+ * Get all available models with their characteristics
199
+ */
200
+ static getAvailableModels(): typeof MODEL_DATABASE;
201
+ /**
202
+ * Display optimization recommendations in console
203
+ */
204
+ static displayRecommendation(recommendation: ModelRecommendation): void;
205
+ }
206
+ export {};
207
+ //# sourceMappingURL=modelOptimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelOptimizer.d.ts","sourceRoot":"","sources":["../../src/utils/modelOptimizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,UAAU,GAAG,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;CACvE;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC/D;AAGD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgKnB,CAAC;AA4CF,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,GAAG,mBAAmB;IA6GpE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA2C9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAW3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAsDhC;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,OAAO,cAAc;IAIlD;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,cAAc,EAAE,mBAAmB,GAAG,IAAI;CAqBxE"}
@@ -412,3 +412,4 @@ export class ModelOptimizer {
412
412
  console.log('');
413
413
  }
414
414
  }
415
+ //# sourceMappingURL=modelOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelOptimizer.js","sourceRoot":"","sources":["../../src/utils/modelOptimizer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Smart Model Optimizer - Automatically selects the best model for each agent and task\n * Balances performance vs cost based on agent requirements\n */\n\nimport { logger } from './logger.js';\n\nexport interface ModelRecommendation {\n provider: string;\n model: string;\n modelName: string;\n reasoning: string;\n cost_per_1m_input: number;\n cost_per_1m_output: number;\n quality_score: number;\n speed_score: number;\n cost_score: number;\n overall_score: number;\n tier: 'flagship' | 'cost-effective' | 'balanced' | 'budget' | 'local';\n}\n\nexport interface OptimizationCriteria {\n agent: string;\n task: string;\n priority?: 'quality' | 'balanced' | 'cost' | 'speed' | 'privacy';\n maxCostPerTask?: number;\n requiresReasoning?: boolean;\n requiresMultimodal?: boolean;\n requiresTools?: boolean; // NEW: Filter models that support tool/function calling\n taskComplexity?: 'simple' | 'moderate' | 'complex' | 'expert';\n}\n\n// Model database with performance characteristics\nconst MODEL_DATABASE = {\n // Tier 1: Flagship Models\n 'claude-sonnet-4-5': {\n provider: 'anthropic',\n model: 'claude-sonnet-4-5-20250929',\n modelName: 'Claude Sonnet 4.5',\n cost_per_1m_input: 3.00,\n cost_per_1m_output: 15.00,\n quality_score: 95,\n speed_score: 85,\n cost_score: 20,\n tier: 'flagship' as const,\n supports_tools: true,\n strengths: ['reasoning', 'coding', 'analysis', 'production'],\n weaknesses: ['cost'],\n bestFor: ['coder', 'reviewer', 'architecture', 'planner', 'production-validator']\n },\n 'gpt-4o': {\n provider: 'openrouter',\n model: 'openai/gpt-4o',\n modelName: 'GPT-4o',\n cost_per_1m_input: 2.50,\n cost_per_1m_output: 10.00,\n quality_score: 88,\n speed_score: 90,\n cost_score: 30,\n tier: 'flagship' as const,\n supports_tools: true,\n strengths: ['multimodal', 'speed', 'general-purpose', 'vision'],\n weaknesses: ['cost'],\n bestFor: ['researcher', 'analyst', 'multimodal-tasks']\n },\n 'gemini-2-5-pro': {\n provider: 'openrouter',\n model: 'google/gemini-2.5-pro',\n modelName: 'Gemini 2.5 Pro',\n cost_per_1m_input: 1.25,\n cost_per_1m_output: 5.00,\n quality_score: 90,\n speed_score: 75,\n cost_score: 50,\n tier: 'flagship' as const,\n supports_tools: true,\n strengths: ['reasoning', 'large-context', 'math', 'analysis'],\n weaknesses: ['speed'],\n bestFor: ['planner', 'architecture', 'researcher', 'code-analyzer']\n },\n\n // Tier 2: Cost-Effective Champions\n 'deepseek-r1': {\n provider: 'openrouter',\n model: 'deepseek/deepseek-r1-0528:free',\n modelName: 'DeepSeek R1',\n cost_per_1m_input: 0.00,\n cost_per_1m_output: 0.00,\n quality_score: 90,\n speed_score: 80,\n cost_score: 100,\n tier: 'cost-effective' as const,\n supports_tools: false, // DeepSeek R1 does NOT support tool/function calling\n strengths: ['reasoning', 'coding', 'math', 'value', 'free'],\n weaknesses: ['newer-model', 'no-tool-use'],\n bestFor: ['coder', 'pseudocode', 'specification', 'refinement', 'tester']\n },\n 'deepseek-chat-v3': {\n provider: 'openrouter',\n model: 'deepseek/deepseek-chat-v3.1:free',\n modelName: 'DeepSeek Chat V3.1',\n cost_per_1m_input: 0.00,\n cost_per_1m_output: 0.00,\n quality_score: 82,\n speed_score: 90,\n cost_score: 100,\n tier: 'cost-effective' as const,\n supports_tools: true,\n strengths: ['cost', 'speed', 'coding', 'development', 'free'],\n weaknesses: ['complex-reasoning'],\n bestFor: ['coder', 'reviewer', 'tester', 'backend-dev', 'cicd-engineer']\n },\n\n // Tier 3: Balanced Performance\n 'gemini-2-5-flash': {\n provider: 'openrouter',\n model: 'google/gemini-2.5-flash',\n modelName: 'Gemini 2.5 Flash',\n cost_per_1m_input: 0.075,\n cost_per_1m_output: 0.30,\n quality_score: 78,\n speed_score: 98,\n cost_score: 98,\n tier: 'balanced' as const,\n supports_tools: true,\n strengths: ['speed', 'cost', 'interactive'],\n weaknesses: ['quality'],\n bestFor: ['researcher', 'planner', 'smart-agent']\n },\n 'llama-3-3-8b': {\n provider: 'openrouter',\n model: 'meta-llama/llama-3.3-8b-instruct:free',\n modelName: 'Llama 3.3 8B',\n cost_per_1m_input: 0.00,\n cost_per_1m_output: 0.00,\n quality_score: 72,\n speed_score: 95,\n cost_score: 100,\n tier: 'balanced' as const,\n supports_tools: true,\n strengths: ['open-source', 'versatile', 'coding', 'free', 'fast'],\n weaknesses: ['smaller-model'],\n bestFor: ['coder', 'reviewer', 'base-template-generator', 'tester']\n },\n 'qwen-2-5-72b': {\n provider: 'openrouter',\n model: 'qwen/qwen-2.5-72b-instruct',\n modelName: 'Qwen 2.5 72B',\n cost_per_1m_input: 0.35,\n cost_per_1m_output: 0.40,\n quality_score: 81,\n speed_score: 85,\n cost_score: 90,\n tier: 'balanced' as const,\n supports_tools: true,\n strengths: ['multilingual', 'coding', 'reasoning'],\n weaknesses: ['english-optimized'],\n bestFor: ['researcher', 'coder', 'multilingual-tasks']\n },\n\n // Tier 4: Budget Options\n 'llama-3-1-8b': {\n provider: 'openrouter',\n model: 'meta-llama/llama-3.1-8b-instruct',\n modelName: 'Llama 3.1 8B',\n cost_per_1m_input: 0.06,\n cost_per_1m_output: 0.06,\n quality_score: 65,\n speed_score: 95,\n cost_score: 99,\n tier: 'budget' as const,\n supports_tools: true,\n strengths: ['ultra-low-cost', 'speed'],\n weaknesses: ['quality', 'complex-tasks'],\n bestFor: ['simple-tasks', 'testing']\n },\n\n // Tier 5: Local/Privacy\n 'onnx-phi-4': {\n provider: 'onnx',\n model: 'phi-4-mini',\n modelName: 'ONNX Phi-4 Mini',\n cost_per_1m_input: 0.00,\n cost_per_1m_output: 0.00,\n quality_score: 58,\n speed_score: 30,\n cost_score: 100,\n tier: 'local' as const,\n supports_tools: false,\n strengths: ['privacy', 'offline', 'zero-cost'],\n weaknesses: ['quality', 'speed'],\n bestFor: ['privacy-tasks', 'offline-tasks']\n }\n};\n\n// Agent complexity and quality requirements\nconst AGENT_REQUIREMENTS = {\n // High-quality code generation\n 'coder': { minQuality: 85, complexity: 'complex', needsReasoning: true },\n 'sparc-coder': { minQuality: 85, complexity: 'complex', needsReasoning: true },\n 'backend-dev': { minQuality: 80, complexity: 'complex', needsReasoning: true },\n\n // Architecture and design\n 'architecture': { minQuality: 90, complexity: 'expert', needsReasoning: true },\n 'system-architect': { minQuality: 90, complexity: 'expert', needsReasoning: true },\n 'planner': { minQuality: 85, complexity: 'complex', needsReasoning: true },\n\n // Code review and analysis\n 'reviewer': { minQuality: 85, complexity: 'complex', needsReasoning: true },\n 'code-analyzer': { minQuality: 80, complexity: 'complex', needsReasoning: true },\n 'production-validator': { minQuality: 90, complexity: 'expert', needsReasoning: true },\n\n // Testing\n 'tester': { minQuality: 75, complexity: 'moderate', needsReasoning: false },\n 'tdd-london-swarm': { minQuality: 80, complexity: 'complex', needsReasoning: true },\n\n // Research and analysis\n 'researcher': { minQuality: 75, complexity: 'moderate', needsReasoning: true },\n 'analyst': { minQuality: 80, complexity: 'complex', needsReasoning: true },\n\n // SPARC phases\n 'specification': { minQuality: 85, complexity: 'complex', needsReasoning: true },\n 'pseudocode': { minQuality: 80, complexity: 'complex', needsReasoning: true },\n 'refinement': { minQuality: 85, complexity: 'complex', needsReasoning: true },\n\n // DevOps and automation\n 'cicd-engineer': { minQuality: 75, complexity: 'moderate', needsReasoning: false },\n 'smart-agent': { minQuality: 70, complexity: 'moderate', needsReasoning: false },\n\n // Documentation\n 'api-docs': { minQuality: 70, complexity: 'moderate', needsReasoning: false },\n 'base-template-generator': { minQuality: 70, complexity: 'simple', needsReasoning: false },\n\n // Default for unknown agents\n 'default': { minQuality: 75, complexity: 'moderate', needsReasoning: true }\n};\n\nexport class ModelOptimizer {\n /**\n * Optimize model selection based on agent, task, and priorities\n */\n static optimize(criteria: OptimizationCriteria): ModelRecommendation {\n logger.info('Optimizing model selection', criteria);\n\n // Get agent requirements\n const agentKey = criteria.agent.toLowerCase() as keyof typeof AGENT_REQUIREMENTS;\n const agentReqs = AGENT_REQUIREMENTS[agentKey] || AGENT_REQUIREMENTS['default'];\n\n // Determine task complexity from task description if not provided\n const taskComplexity = criteria.taskComplexity || this.inferComplexity(criteria.task);\n\n // Set default priority to balanced if not specified\n const priority = criteria.priority || 'balanced';\n\n // Filter models that support tools if required\n let availableModels = Object.entries(MODEL_DATABASE);\n\n if (criteria.requiresTools) {\n availableModels = availableModels.filter(([key, model]) => model.supports_tools !== false);\n logger.info(`Filtered to ${availableModels.length} models with tool support`);\n }\n\n // Score all models\n const scoredModels = availableModels.map(([key, model]) => {\n // Calculate overall score based on priority\n let overall_score: number;\n\n switch (priority) {\n case 'quality':\n overall_score = model.quality_score * 0.7 + model.speed_score * 0.2 + model.cost_score * 0.1;\n break;\n case 'cost':\n overall_score = model.cost_score * 0.7 + model.quality_score * 0.2 + model.speed_score * 0.1;\n break;\n case 'speed':\n overall_score = model.speed_score * 0.7 + model.quality_score * 0.2 + model.cost_score * 0.1;\n break;\n case 'privacy':\n // Heavily favor local models for privacy\n overall_score = model.tier === 'local' ? 100 : model.cost_score * 0.5 + model.quality_score * 0.5;\n break;\n case 'balanced':\n default:\n overall_score = model.quality_score * 0.4 + model.cost_score * 0.4 + model.speed_score * 0.2;\n break;\n }\n\n // Apply agent-specific bonuses\n if (model.bestFor.includes(criteria.agent.toLowerCase())) {\n overall_score += 10;\n }\n\n // Apply quality threshold\n if (model.quality_score < agentReqs.minQuality) {\n overall_score *= 0.5; // Penalize models below quality threshold\n }\n\n // Apply complexity matching\n if (taskComplexity === 'expert' && model.tier !== 'flagship') {\n overall_score *= 0.7;\n } else if (taskComplexity === 'simple' && model.tier === 'flagship') {\n overall_score *= 0.8; // Don't waste flagship models on simple tasks unless quality priority\n }\n\n // Apply cost cap if specified\n if (criteria.maxCostPerTask) {\n const estimatedCost = this.estimateCost(model, criteria.task);\n if (estimatedCost > criteria.maxCostPerTask) {\n overall_score *= 0.3; // Heavy penalty for exceeding budget\n }\n }\n\n return {\n key,\n ...model,\n overall_score\n };\n });\n\n // Sort by overall score\n scoredModels.sort((a, b) => b.overall_score - a.overall_score);\n\n // Get top recommendation\n const top = scoredModels[0];\n\n // Generate reasoning\n const reasoning = this.generateReasoning(top, criteria, agentReqs, taskComplexity, priority);\n\n const recommendation: ModelRecommendation = {\n provider: top.provider,\n model: top.model,\n modelName: top.modelName,\n cost_per_1m_input: top.cost_per_1m_input,\n cost_per_1m_output: top.cost_per_1m_output,\n quality_score: top.quality_score,\n speed_score: top.speed_score,\n cost_score: top.cost_score,\n overall_score: top.overall_score,\n tier: top.tier,\n reasoning\n };\n\n logger.info('Model optimization complete', {\n selected: recommendation.modelName,\n score: recommendation.overall_score\n });\n\n return recommendation;\n }\n\n /**\n * Infer task complexity from task description\n */\n private static inferComplexity(task: string): 'simple' | 'moderate' | 'complex' | 'expert' {\n const lowerTask = task.toLowerCase();\n\n // Expert-level indicators\n if (\n lowerTask.includes('architecture') ||\n lowerTask.includes('design system') ||\n lowerTask.includes('production') ||\n lowerTask.includes('enterprise') ||\n lowerTask.includes('scale') ||\n lowerTask.includes('distributed')\n ) {\n return 'expert';\n }\n\n // Complex indicators\n if (\n lowerTask.includes('implement') ||\n lowerTask.includes('create') ||\n lowerTask.includes('build') ||\n lowerTask.includes('develop') ||\n lowerTask.includes('integrate') ||\n lowerTask.includes('api') ||\n lowerTask.includes('database')\n ) {\n return 'complex';\n }\n\n // Simple indicators\n if (\n lowerTask.includes('simple') ||\n lowerTask.includes('basic') ||\n lowerTask.includes('hello world') ||\n lowerTask.includes('example') ||\n lowerTask.includes('template')\n ) {\n return 'simple';\n }\n\n // Default to moderate\n return 'moderate';\n }\n\n /**\n * Estimate cost for a task (rough approximation)\n */\n private static estimateCost(model: any, task: string): number {\n // Rough estimate: task length + expected output\n const inputTokens = Math.ceil(task.length / 4);\n const outputTokens = 1000; // Assume 1K token output\n\n const inputCost = (inputTokens / 1000000) * model.cost_per_1m_input;\n const outputCost = (outputTokens / 1000000) * model.cost_per_1m_output;\n\n return inputCost + outputCost;\n }\n\n /**\n * Generate human-readable reasoning for model selection\n */\n private static generateReasoning(\n model: any,\n criteria: OptimizationCriteria,\n agentReqs: any,\n taskComplexity: string,\n priority: string\n ): string {\n const reasons: string[] = [];\n\n // Priority-based reasoning\n switch (priority) {\n case 'quality':\n reasons.push(`Selected for highest quality (${model.quality_score}/100)`);\n break;\n case 'cost':\n reasons.push(`Selected for best cost efficiency (${model.cost_score}/100)`);\n break;\n case 'speed':\n reasons.push(`Selected for fastest response (${model.speed_score}/100)`);\n break;\n case 'privacy':\n if (model.tier === 'local') {\n reasons.push('Selected for 100% privacy (runs locally)');\n } else {\n reasons.push('Best available option for privacy concerns');\n }\n break;\n case 'balanced':\n reasons.push(`Balanced selection (overall: ${Math.round(model.overall_score)}/100)`);\n break;\n }\n\n // Agent-specific reasoning\n if (model.bestFor.includes(criteria.agent.toLowerCase())) {\n reasons.push(`Optimized for ${criteria.agent} agent tasks`);\n }\n\n // Complexity matching\n if (taskComplexity === 'expert' && model.tier === 'flagship') {\n reasons.push('Flagship model for expert-level complexity');\n } else if (taskComplexity === 'simple' && model.tier !== 'flagship') {\n reasons.push('Cost-effective for simple tasks');\n }\n\n // Cost information\n const estCost = this.estimateCost(model, criteria.task);\n reasons.push(`Estimated cost: $${estCost.toFixed(6)} per task`);\n\n // Tier information\n reasons.push(`Tier: ${model.tier}`);\n\n return reasons.join('. ');\n }\n\n /**\n * Get all available models with their characteristics\n */\n static getAvailableModels(): typeof MODEL_DATABASE {\n return MODEL_DATABASE;\n }\n\n /**\n * Display optimization recommendations in console\n */\n static displayRecommendation(recommendation: ModelRecommendation): void {\n console.log('\\nšŸŽÆ Optimized Model Selection');\n console.log('═'.repeat(60));\n console.log(`Model: ${recommendation.modelName}`);\n console.log(`Provider: ${recommendation.provider}`);\n console.log(`Tier: ${recommendation.tier}`);\n console.log('');\n console.log('Scores:');\n console.log(` Quality: ${recommendation.quality_score}/100`);\n console.log(` Speed: ${recommendation.speed_score}/100`);\n console.log(` Cost: ${recommendation.cost_score}/100`);\n console.log(` Overall: ${Math.round(recommendation.overall_score)}/100`);\n console.log('');\n console.log('Cost: $' + recommendation.cost_per_1m_input.toFixed(2) + '/1M input, ' +\n '$' + recommendation.cost_per_1m_output.toFixed(2) + '/1M output');\n console.log('');\n console.log('Reasoning:');\n console.log(` ${recommendation.reasoning}`);\n console.log('═'.repeat(60));\n console.log('');\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Simple in-memory rate limiter for proxy protection
3
+ */
4
+ export interface RateLimiterConfig {
5
+ points: number;
6
+ duration: number;
7
+ blockDuration: number;
8
+ }
9
+ export declare class RateLimiter {
10
+ private config;
11
+ private clients;
12
+ private cleanupInterval;
13
+ constructor(config: RateLimiterConfig);
14
+ consume(key: string): Promise<void>;
15
+ destroy(): void;
16
+ }
17
+ //# sourceMappingURL=rate-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAQD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,eAAe,CAAiB;gBAE5B,MAAM,EAAE,iBAAiB;IAc/B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BzC,OAAO,IAAI,IAAI;CAIhB"}
@@ -46,3 +46,4 @@ export class RateLimiter {
46
46
  this.clients.clear();
47
47
  }
48
48
  }
49
+ //# sourceMappingURL=rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,MAAM,OAAO,WAAW;IACd,MAAM,CAAoB;IAC1B,OAAO,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC/C,eAAe,CAAiB;IAExC,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,uCAAuC;QACvC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC;oBAClF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,6BAA6B;QAC7B,IAAI,MAAM,EAAE,YAAY,IAAI,MAAM,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAChG,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBACpB,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;aAC7C,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,0BAA0B;QAC1B,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,CAAC,MAAM,iBAAiB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF","sourcesContent":["/**\n * Simple in-memory rate limiter for proxy protection\n */\n\nexport interface RateLimiterConfig {\n points: number; // Number of requests\n duration: number; // Time window in seconds\n blockDuration: number; // Block duration in seconds when exceeded\n}\n\ninterface ClientRecord {\n count: number;\n resetTime: number;\n blockedUntil?: number;\n}\n\nexport class RateLimiter {\n private config: RateLimiterConfig;\n private clients: Map<string, ClientRecord> = new Map();\n private cleanupInterval: NodeJS.Timeout;\n\n constructor(config: RateLimiterConfig) {\n this.config = config;\n\n // Cleanup expired entries every minute\n this.cleanupInterval = setInterval(() => {\n const now = Date.now();\n for (const [key, record] of this.clients.entries()) {\n if (record.resetTime < now && (!record.blockedUntil || record.blockedUntil < now)) {\n this.clients.delete(key);\n }\n }\n }, 60000);\n }\n\n async consume(key: string): Promise<void> {\n const now = Date.now();\n const record = this.clients.get(key);\n\n // Check if client is blocked\n if (record?.blockedUntil && record.blockedUntil > now) {\n const remainingMs = record.blockedUntil - now;\n throw new Error(`Rate limit exceeded. Try again in ${Math.ceil(remainingMs / 1000)} seconds`);\n }\n\n // Initialize or reset record\n if (!record || record.resetTime < now) {\n this.clients.set(key, {\n count: 1,\n resetTime: now + this.config.duration * 1000\n });\n return;\n }\n\n // Increment count\n record.count++;\n\n // Check if limit exceeded\n if (record.count > this.config.points) {\n record.blockedUntil = now + this.config.blockDuration * 1000;\n throw new Error(`Rate limit exceeded (${this.config.points} requests per ${this.config.duration}s)`);\n }\n }\n\n destroy(): void {\n clearInterval(this.cleanupInterval);\n this.clients.clear();\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ReasoningBank CLI Commands
3
+ * Handles demo, test, init, benchmark, status, consolidate, list
4
+ */
5
+ export declare function handleReasoningBankCommand(subcommand: string): Promise<void>;
6
+ //# sourceMappingURL=reasoningbankCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoningbankCommands.d.ts","sourceRoot":"","sources":["../../src/utils/reasoningbankCommands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,wBAAsB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ClF"}
@@ -202,3 +202,4 @@ EXAMPLES:
202
202
  For more information: https://github.com/ruvnet/agentic-flow
203
203
  `);
204
204
  }
205
+ //# sourceMappingURL=reasoningbankCommands.js.map