agentic-flow 1.10.0 → 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 (580) 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/adaptive-pool-sizing.js +414 -0
  480. package/dist/utils/agentBoosterPreprocessor.d.ts +72 -0
  481. package/dist/utils/agentBoosterPreprocessor.d.ts.map +1 -0
  482. package/dist/utils/agentBoosterPreprocessor.js +1 -0
  483. package/dist/utils/agentBoosterPreprocessor.js.map +1 -0
  484. package/dist/utils/agentLoader.d.ts +22 -0
  485. package/dist/utils/agentLoader.d.ts.map +1 -0
  486. package/dist/utils/agentLoader.js +1 -0
  487. package/dist/utils/agentLoader.js.map +1 -0
  488. package/dist/utils/agentdb-runtime-patch.d.ts +28 -0
  489. package/dist/utils/agentdb-runtime-patch.d.ts.map +1 -0
  490. package/dist/utils/agentdb-runtime-patch.js +1 -0
  491. package/dist/utils/agentdb-runtime-patch.js.map +1 -0
  492. package/dist/utils/auth.d.ts +13 -0
  493. package/dist/utils/auth.d.ts.map +1 -0
  494. package/dist/utils/auth.js +1 -0
  495. package/dist/utils/auth.js.map +1 -0
  496. package/dist/utils/circular-rate-limiter.js +391 -0
  497. package/dist/utils/cli.d.ts +31 -0
  498. package/dist/utils/cli.d.ts.map +1 -0
  499. package/dist/utils/cli.js +1 -0
  500. package/dist/utils/cli.js.map +1 -0
  501. package/dist/utils/compression-middleware.d.ts +55 -0
  502. package/dist/utils/compression-middleware.d.ts.map +1 -0
  503. package/dist/utils/compression-middleware.js +1 -0
  504. package/dist/utils/compression-middleware.js.map +1 -0
  505. package/dist/utils/connection-pool.d.ts +30 -0
  506. package/dist/utils/connection-pool.d.ts.map +1 -0
  507. package/dist/utils/connection-pool.js +1 -0
  508. package/dist/utils/connection-pool.js.map +1 -0
  509. package/dist/utils/dynamic-compression.js +298 -0
  510. package/dist/utils/http2-multiplexing.js +319 -0
  511. package/dist/utils/lazy-auth.js +311 -0
  512. package/dist/utils/logger.d.ts +19 -0
  513. package/dist/utils/logger.d.ts.map +1 -0
  514. package/dist/utils/logger.js +1 -0
  515. package/dist/utils/logger.js.map +1 -0
  516. package/dist/utils/math.d.ts +12 -0
  517. package/dist/utils/math.d.ts.map +1 -0
  518. package/dist/utils/math.js +1 -0
  519. package/dist/utils/math.js.map +1 -0
  520. package/dist/utils/mcpCommands.d.ts +2 -0
  521. package/dist/utils/mcpCommands.d.ts.map +1 -0
  522. package/dist/utils/mcpCommands.js +1 -0
  523. package/dist/utils/mcpCommands.js.map +1 -0
  524. package/dist/utils/model-downloader.d.ts +63 -0
  525. package/dist/utils/model-downloader.d.ts.map +1 -0
  526. package/dist/utils/model-downloader.js +1 -0
  527. package/dist/utils/model-downloader.js.map +1 -0
  528. package/dist/utils/modelCapabilities.d.ts +30 -0
  529. package/dist/utils/modelCapabilities.d.ts.map +1 -0
  530. package/dist/utils/modelCapabilities.js +1 -0
  531. package/dist/utils/modelCapabilities.js.map +1 -0
  532. package/dist/utils/modelOptimizer.d.ts +207 -0
  533. package/dist/utils/modelOptimizer.d.ts.map +1 -0
  534. package/dist/utils/modelOptimizer.js +1 -0
  535. package/dist/utils/modelOptimizer.js.map +1 -0
  536. package/dist/utils/rate-limiter.d.ts +17 -0
  537. package/dist/utils/rate-limiter.d.ts.map +1 -0
  538. package/dist/utils/rate-limiter.js +1 -0
  539. package/dist/utils/rate-limiter.js.map +1 -0
  540. package/dist/utils/reasoningbankCommands.d.ts +6 -0
  541. package/dist/utils/reasoningbankCommands.d.ts.map +1 -0
  542. package/dist/utils/reasoningbankCommands.js +1 -0
  543. package/dist/utils/reasoningbankCommands.js.map +1 -0
  544. package/dist/utils/response-cache.d.ts +94 -0
  545. package/dist/utils/response-cache.d.ts.map +1 -0
  546. package/dist/utils/response-cache.js +1 -0
  547. package/dist/utils/response-cache.js.map +1 -0
  548. package/dist/utils/retry.d.ts +9 -0
  549. package/dist/utils/retry.d.ts.map +1 -0
  550. package/dist/utils/retry.js +1 -0
  551. package/dist/utils/retry.js.map +1 -0
  552. package/dist/utils/server-push.js +251 -0
  553. package/dist/utils/streaming-optimizer.d.ts +37 -0
  554. package/dist/utils/streaming-optimizer.d.ts.map +1 -0
  555. package/dist/utils/streaming-optimizer.js +1 -0
  556. package/dist/utils/streaming-optimizer.js.map +1 -0
  557. package/dist/utils/zero-copy-buffer.js +286 -0
  558. package/docs/DOCKER-VERIFICATION.md +207 -0
  559. package/docs/ISSUE-55-VALIDATION.md +25 -6
  560. package/docs/NPX_AGENTDB_SETUP.md +175 -0
  561. package/docs/PUBLISH_GUIDE.md +438 -0
  562. package/docs/RELEASE-v1.10.0-COMPLETE.md +382 -0
  563. package/docs/archive/.agentdb-instructions.md +66 -0
  564. package/docs/archive/AGENT-BOOSTER-STATUS.md +292 -0
  565. package/docs/archive/CHANGELOG-v1.3.0.md +120 -0
  566. package/docs/archive/COMPLETION_REPORT_v1.7.1.md +335 -0
  567. package/docs/archive/IMPLEMENTATION_SUMMARY_v1.7.1.md +241 -0
  568. package/docs/archive/SUPABASE-INTEGRATION-COMPLETE.md +357 -0
  569. package/docs/archive/TESTING_QUICK_START.md +223 -0
  570. package/docs/archive/TOOL-EMULATION-INTEGRATION-ISSUE.md +669 -0
  571. package/docs/archive/VALIDATION_v1.7.1.md +234 -0
  572. package/docs/releases/PUBLISH_CHECKLIST_v1.10.0.md +396 -0
  573. package/docs/releases/PUBLISH_SUMMARY_v1.7.1.md +198 -0
  574. package/docs/releases/RELEASE_NOTES_v1.10.0.md +464 -0
  575. package/docs/releases/RELEASE_NOTES_v1.7.0.md +297 -0
  576. package/docs/releases/RELEASE_v1.7.1.md +327 -0
  577. package/package.json +1 -1
  578. package/validation/docker-npm-validation.sh +170 -0
  579. package/validation/simple-npm-validation.sh +131 -0
  580. package/validation/test-gemini-models.ts +200 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../../src/cli/config-wizard.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * Interactive CLI wizard for agentic-flow configuration\n * Supports both interactive mode and direct CLI arguments\n */\n\nimport { readFileSync, writeFileSync, existsSync } from 'fs';\nimport { resolve, dirname } from 'path';\nimport { createInterface } from 'readline';\n\ninterface ConfigValue {\n key: string;\n value: string;\n description: string;\n required?: boolean;\n validation?: (value: string) => boolean | string;\n}\n\nconst CONFIG_DEFINITIONS: ConfigValue[] = [\n {\n key: 'ANTHROPIC_API_KEY',\n value: '',\n description: 'Anthropic API key for Claude models (sk-ant-...)',\n required: false,\n validation: (val) => val.startsWith('sk-ant-') || 'Must start with sk-ant-'\n },\n {\n key: 'OPENROUTER_API_KEY',\n value: '',\n description: 'OpenRouter API key for alternative models (sk-or-v1-...)',\n required: false,\n validation: (val) => val.startsWith('sk-or-') || 'Must start with sk-or-'\n },\n {\n key: 'GOOGLE_GEMINI_API_KEY',\n value: '',\n description: 'Google Gemini API key for Gemini models',\n required: false\n },\n {\n key: 'COMPLETION_MODEL',\n value: 'claude-sonnet-4-5-20250929',\n description: 'Default model for completions',\n required: false\n },\n {\n key: 'PROVIDER',\n value: 'anthropic',\n description: 'Default provider (anthropic, openrouter, gemini, onnx)',\n required: false,\n validation: (val) => ['anthropic', 'openrouter', 'gemini', 'onnx'].includes(val) || 'Must be anthropic, openrouter, gemini, or onnx'\n },\n {\n key: 'AGENTS_DIR',\n value: '',\n description: 'Custom agents directory path (optional)',\n required: false\n },\n {\n key: 'PROXY_PORT',\n value: '3000',\n description: 'Proxy server port for OpenRouter',\n required: false,\n validation: (val) => !isNaN(parseInt(val)) || 'Must be a number'\n },\n {\n key: 'USE_OPENROUTER',\n value: 'false',\n description: 'Force OpenRouter usage (true/false)',\n required: false,\n validation: (val) => ['true', 'false'].includes(val) || 'Must be true or false'\n },\n {\n key: 'USE_ONNX',\n value: 'false',\n description: 'Use ONNX local inference (true/false)',\n required: false,\n validation: (val) => ['true', 'false'].includes(val) || 'Must be true or false'\n }\n];\n\nexport class ConfigWizard {\n private envPath: string;\n private currentConfig: Map<string, string> = new Map();\n\n constructor(envPath?: string) {\n this.envPath = envPath || resolve(process.cwd(), '.env');\n this.loadExistingConfig();\n }\n\n private loadExistingConfig(): void {\n if (existsSync(this.envPath)) {\n const content = readFileSync(this.envPath, 'utf-8');\n content.split('\\n').forEach(line => {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith('#')) {\n const [key, ...valueParts] = trimmed.split('=');\n const value = valueParts.join('=');\n if (key && value) {\n this.currentConfig.set(key, value);\n }\n }\n });\n }\n }\n\n private saveConfig(): void {\n const lines: string[] = [\n '# Agentic Flow Configuration',\n '# Generated by agentic-flow config wizard',\n `# Created: ${new Date().toISOString()}`,\n ''\n ];\n\n CONFIG_DEFINITIONS.forEach(def => {\n const value = this.currentConfig.get(def.key) || def.value;\n if (value) {\n lines.push(`# ${def.description}`);\n lines.push(`${def.key}=${value}`);\n lines.push('');\n }\n });\n\n // Preserve other env vars not in CONFIG_DEFINITIONS\n this.currentConfig.forEach((value, key) => {\n if (!CONFIG_DEFINITIONS.find(d => d.key === key)) {\n lines.push(`${key}=${value}`);\n }\n });\n\n writeFileSync(this.envPath, lines.join('\\n'), 'utf-8');\n }\n\n // Interactive wizard mode\n async runInteractive(): Promise<void> {\n console.log('\\nšŸ¤– Agentic Flow Configuration Wizard\\n');\n console.log('Configure your environment variables for agentic-flow.');\n console.log('Press Enter to keep current value, or type new value.\\n');\n\n const rl = createInterface({\n input: process.stdin,\n output: process.stdout\n });\n\n const question = (prompt: string): Promise<string> => {\n return new Promise((resolve) => {\n rl.question(prompt, resolve);\n });\n };\n\n try {\n for (const def of CONFIG_DEFINITIONS) {\n const currentValue = this.currentConfig.get(def.key) || def.value;\n const displayValue = currentValue\n ? (def.key.includes('KEY') ? `${currentValue.substring(0, 15)}...` : currentValue)\n : '(not set)';\n\n console.log(`\\nšŸ“ ${def.key}`);\n console.log(` ${def.description}`);\n\n let input: string;\n let isValid = false;\n\n while (!isValid) {\n input = await question(` Current: ${displayValue}\\n New value: `);\n\n // Keep current if empty\n if (!input.trim()) {\n input = currentValue;\n }\n\n // Validate if validator exists\n if (input && def.validation) {\n const validationResult = def.validation(input);\n if (validationResult === true) {\n isValid = true;\n } else {\n console.log(` āŒ Invalid: ${validationResult}`);\n }\n } else {\n isValid = true;\n }\n\n if (isValid && input) {\n this.currentConfig.set(def.key, input);\n } else if (isValid && !input) {\n // Remove if empty\n this.currentConfig.delete(def.key);\n }\n }\n }\n\n console.log('\\nšŸ’¾ Saving configuration...');\n this.saveConfig();\n console.log(`āœ… Configuration saved to: ${this.envPath}\\n`);\n\n // Show summary\n this.showSummary();\n\n } finally {\n rl.close();\n }\n }\n\n // Direct CLI mode - set single value\n set(key: string, value: string): void {\n const def = CONFIG_DEFINITIONS.find(d => d.key === key);\n\n if (!def) {\n throw new Error(`Unknown configuration key: ${key}\\nAvailable keys: ${CONFIG_DEFINITIONS.map(d => d.key).join(', ')}`);\n }\n\n // Validate\n if (def.validation) {\n const result = def.validation(value);\n if (result !== true) {\n throw new Error(`Invalid value for ${key}: ${result}`);\n }\n }\n\n this.currentConfig.set(key, value);\n this.saveConfig();\n console.log(`āœ… Set ${key}=${value.substring(0, 20)}${value.length > 20 ? '...' : ''}`);\n }\n\n // Get single value\n get(key: string): void {\n const value = this.currentConfig.get(key);\n if (value) {\n // Mask API keys\n if (key.includes('KEY')) {\n console.log(`${key}=${value.substring(0, 15)}...`);\n } else {\n console.log(`${key}=${value}`);\n }\n } else {\n console.log(`${key} is not set`);\n }\n }\n\n // Delete value\n delete(key: string): void {\n if (this.currentConfig.has(key)) {\n this.currentConfig.delete(key);\n this.saveConfig();\n console.log(`āœ… Deleted ${key}`);\n } else {\n console.log(`āŒ ${key} is not set`);\n }\n }\n\n // List all values\n list(): void {\n console.log('\\nšŸ“‹ Current Configuration:\\n');\n\n CONFIG_DEFINITIONS.forEach(def => {\n const value = this.currentConfig.get(def.key);\n const displayValue = value\n ? (def.key.includes('KEY') ? `${value.substring(0, 15)}...` : value)\n : '(not set)';\n\n console.log(`${def.key.padEnd(25)} = ${displayValue}`);\n console.log(` ${def.description}`);\n console.log('');\n });\n }\n\n // Show configuration summary\n showSummary(): void {\n console.log('šŸ“Š Configuration Summary:\\n');\n\n const hasAnthropic = this.currentConfig.has('ANTHROPIC_API_KEY');\n const hasOpenRouter = this.currentConfig.has('OPENROUTER_API_KEY');\n const hasGemini = this.currentConfig.has('GOOGLE_GEMINI_API_KEY');\n const provider = this.currentConfig.get('PROVIDER') || 'anthropic';\n\n console.log('Providers configured:');\n console.log(` ${hasAnthropic ? 'āœ…' : 'āŒ'} Anthropic (Claude)`);\n console.log(` ${hasOpenRouter ? 'āœ…' : 'āŒ'} OpenRouter (Alternative models)`);\n console.log(` ${hasGemini ? 'āœ…' : 'āŒ'} Gemini (Google AI)`);\n console.log(` āš™ļø ONNX (Local inference) - always available`);\n console.log('');\n console.log(`Default provider: ${provider}`);\n console.log('');\n\n if (!hasAnthropic && !hasOpenRouter && !hasGemini) {\n console.log('āš ļø Warning: No API keys configured!');\n console.log(' You can use ONNX local inference, but quality may be limited.');\n console.log(' Run with --provider onnx to use local inference.\\n');\n }\n\n console.log('Next steps:');\n console.log(' npx agentic-flow --list # List available agents');\n console.log(' npx agentic-flow --agent coder --task \"Your task\" # Run agent');\n console.log('');\n }\n\n // Reset to defaults\n reset(): void {\n console.log('āš ļø Resetting configuration to defaults...');\n this.currentConfig.clear();\n CONFIG_DEFINITIONS.forEach(def => {\n if (def.value) {\n this.currentConfig.set(def.key, def.value);\n }\n });\n this.saveConfig();\n console.log('āœ… Configuration reset to defaults');\n }\n}\n\n// CLI handler\nexport async function handleConfigCommand(args: string[]): Promise<void> {\n const command = args[0];\n const wizard = new ConfigWizard();\n\n switch (command) {\n case undefined:\n case 'wizard':\n case 'interactive':\n await wizard.runInteractive();\n break;\n\n case 'set':\n if (args.length < 3) {\n console.error('Usage: config set <KEY> <VALUE>');\n process.exit(1);\n }\n wizard.set(args[1], args[2]);\n break;\n\n case 'get':\n if (args.length < 2) {\n console.error('Usage: config get <KEY>');\n process.exit(1);\n }\n wizard.get(args[1]);\n break;\n\n case 'delete':\n case 'remove':\n if (args.length < 2) {\n console.error('Usage: config delete <KEY>');\n process.exit(1);\n }\n wizard.delete(args[1]);\n break;\n\n case 'list':\n wizard.list();\n break;\n\n case 'reset':\n wizard.reset();\n break;\n\n case 'help':\n printConfigHelp();\n break;\n\n default:\n console.error(`Unknown config command: ${command}`);\n printConfigHelp();\n process.exit(1);\n }\n}\n\nfunction printConfigHelp(): void {\n console.log(`\nšŸ¤– Agentic Flow Configuration Manager\n\nUSAGE:\n npx agentic-flow config [COMMAND] [OPTIONS]\n\nCOMMANDS:\n (none), wizard, interactive Launch interactive configuration wizard\n set <KEY> <VALUE> Set a configuration value\n get <KEY> Get a configuration value\n delete <KEY> Delete a configuration value\n list List all configuration values\n reset Reset to default configuration\n help Show this help message\n\nEXAMPLES:\n # Interactive wizard\n npx agentic-flow config\n\n # Direct commands\n npx agentic-flow config set ANTHROPIC_API_KEY sk-ant-xxxxx\n npx agentic-flow config set PROVIDER openrouter\n npx agentic-flow config get PROVIDER\n npx agentic-flow config list\n npx agentic-flow config delete OPENROUTER_API_KEY\n\nAVAILABLE CONFIGURATION KEYS:\n ANTHROPIC_API_KEY - Anthropic API key (sk-ant-...)\n OPENROUTER_API_KEY - OpenRouter API key (sk-or-v1-...)\n GOOGLE_GEMINI_API_KEY - Google Gemini API key\n COMPLETION_MODEL - Default model name\n PROVIDER - Default provider (anthropic, openrouter, gemini, onnx)\n AGENTS_DIR - Custom agents directory\n PROXY_PORT - Proxy server port (default: 3000)\n USE_OPENROUTER - Force OpenRouter (true/false)\n USE_ONNX - Use ONNX local inference (true/false)\n\nFor more information: https://github.com/ruvnet/agentic-flow\n `);\n}\n\n// If run directly\nif (import.meta.url === `file://${process.argv[1]}`) {\n const args = process.argv.slice(2);\n handleConfigCommand(args).catch(err => {\n console.error(err.message);\n process.exit(1);\n });\n}\n"]}
@@ -51,3 +51,4 @@ export declare class FederationCLI {
51
51
  * CLI command handler
52
52
  */
53
53
  export declare function handleFederationCommand(args: string[]): Promise<void>;
54
+ //# sourceMappingURL=federation-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-cli.d.ts","sourceRoot":"","sources":["../../src/cli/federation-cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAUH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAA6B;IAE/C;;OAEG;IACG,QAAQ,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D/D;;OAEG;IACG,UAAU,CAAC,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDzD;;OAEG;IACG,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC7B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CxC;;OAEG;IACH,SAAS,IAAI,IAAI;CAmIlB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE3E"}
@@ -429,3 +429,4 @@ if (import.meta.url === `file://${process.argv[1]}`) {
429
429
  process.exit(1);
430
430
  });
431
431
  }
432
+ //# sourceMappingURL=federation-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation-cli.js","sourceRoot":"","sources":["../../src/cli/federation-cli.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * Federation Hub CLI - Manage ephemeral agent federation\n * Supports hub server, agent lifecycle, stats, and monitoring\n */\n\nimport { existsSync } from 'fs';\nimport { resolve, dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport { spawn, ChildProcess } from 'child_process';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nexport interface FederationHubConfig {\n port?: number;\n dbPath?: string;\n maxAgents?: number;\n syncInterval?: number;\n verbose?: boolean;\n}\n\nexport interface AgentConfig {\n agentId?: string;\n tenantId?: string;\n lifetime?: number;\n hubEndpoint?: string;\n agentType?: string;\n}\n\n/**\n * Federation Hub CLI Manager\n */\nexport class FederationCLI {\n private hubProcess: ChildProcess | null = null;\n\n /**\n * Start federation hub server\n */\n async startHub(config: FederationHubConfig = {}): Promise<void> {\n const port = config.port || parseInt(process.env.FEDERATION_HUB_PORT || '8443');\n const dbPath = config.dbPath || process.env.FEDERATION_DB_PATH || ':memory:';\n const maxAgents = config.maxAgents || parseInt(process.env.FEDERATION_MAX_AGENTS || '1000');\n\n console.log('\\n🌐 Starting Federation Hub Server...');\n console.log('═'.repeat(60));\n console.log(`šŸ“ Port: ${port}`);\n console.log(`šŸ’¾ Database: ${dbPath === ':memory:' ? 'In-Memory' : dbPath}`);\n console.log(`šŸ‘„ Max Agents: ${maxAgents}`);\n console.log(`šŸ”’ Protocol: WebSocket (QUIC support planned)`);\n console.log('');\n\n // Start hub server\n const hubPath = resolve(__dirname, '../federation/run-hub.js');\n\n // Check if compiled hub exists\n if (!existsSync(hubPath)) {\n console.error(`āŒ Error: Hub server not found at ${hubPath}`);\n console.error(' Please build the project first: npm run build');\n process.exit(1);\n }\n\n this.hubProcess = spawn('node', [hubPath], {\n stdio: 'inherit',\n env: {\n ...process.env,\n FEDERATION_HUB_PORT: port.toString(),\n FEDERATION_DB_PATH: dbPath,\n FEDERATION_MAX_AGENTS: maxAgents.toString(),\n DEBUG: config.verbose ? 'federation:*' : undefined\n }\n });\n\n this.hubProcess.on('exit', (code) => {\n console.log(`\\nšŸ‘‹ Hub server stopped (exit code: ${code})`);\n process.exit(code || 0);\n });\n\n // Handle signals\n process.on('SIGINT', () => {\n console.log('\\n\\nāøļø Shutting down hub server...');\n if (this.hubProcess) {\n this.hubProcess.kill('SIGINT');\n }\n });\n\n process.on('SIGTERM', () => {\n if (this.hubProcess) {\n this.hubProcess.kill('SIGTERM');\n }\n });\n\n console.log('āœ… Hub server started successfully!');\n console.log('\\nAgent Connection:');\n console.log(` Endpoint: ws://localhost:${port}`);\n console.log(` Protocol: WebSocket (HTTP/2 upgrade)`);\n console.log('\\nUse Ctrl+C to stop the server\\n');\n\n // Keep alive\n await new Promise(() => {});\n }\n\n /**\n * Spawn ephemeral agent\n */\n async spawnAgent(config: AgentConfig = {}): Promise<void> {\n const agentId = config.agentId || `agent-${Date.now()}`;\n const tenantId = config.tenantId || process.env.FEDERATION_TENANT_ID || 'default';\n const lifetime = config.lifetime || parseInt(process.env.AGENT_LIFETIME || '300'); // 5 minutes default\n const hubEndpoint = config.hubEndpoint || process.env.FEDERATION_HUB_ENDPOINT || 'ws://localhost:8443';\n const agentType = config.agentType || 'worker';\n\n console.log('\\nšŸ¤– Spawning Ephemeral Agent...');\n console.log('═'.repeat(60));\n console.log(`šŸ†” Agent ID: ${agentId}`);\n console.log(`šŸ¢ Tenant: ${tenantId}`);\n console.log(`ā±ļø Lifetime: ${lifetime}s`);\n console.log(`šŸ”— Hub: ${hubEndpoint}`);\n console.log(`šŸ“‹ Type: ${agentType}`);\n console.log('');\n\n // Spawn agent process\n const agentPath = resolve(__dirname, '../federation/run-agent.js');\n\n if (!existsSync(agentPath)) {\n console.error(`āŒ Error: Agent runtime not found at ${agentPath}`);\n console.error(' Please build the project first: npm run build');\n process.exit(1);\n }\n\n const agentProcess = spawn('node', [agentPath], {\n stdio: 'inherit',\n env: {\n ...process.env,\n AGENT_ID: agentId,\n TENANT_ID: tenantId,\n AGENT_LIFETIME: lifetime.toString(),\n HUB_ENDPOINT: hubEndpoint,\n AGENT_TYPE: agentType\n }\n });\n\n agentProcess.on('exit', (code) => {\n console.log(`\\nšŸ“Š Agent lifecycle complete (exit code: ${code})`);\n process.exit(code || 0);\n });\n\n process.on('SIGINT', () => {\n console.log('\\n\\nāøļø Terminating agent...');\n agentProcess.kill('SIGINT');\n });\n\n process.on('SIGTERM', () => {\n agentProcess.kill('SIGTERM');\n });\n }\n\n /**\n * Show hub statistics\n */\n async stats(hubEndpoint?: string): Promise<void> {\n const endpoint = hubEndpoint || process.env.FEDERATION_HUB_ENDPOINT || 'ws://localhost:8443';\n\n console.log('\\nšŸ“Š Federation Hub Statistics');\n console.log('═'.repeat(60));\n console.log(`šŸ”— Hub: ${endpoint}`);\n console.log('');\n\n try {\n // TODO: Implement WebSocket stats query\n // For now, show placeholder\n console.log('ā³ Querying hub statistics...\\n');\n console.log('Note: Stats API not yet implemented.');\n console.log('The hub server logs real-time statistics to stdout.');\n console.log('\\nExpected stats:');\n console.log(' • Connected agents count');\n console.log(' • Total episodes stored');\n console.log(' • Active tenants');\n console.log(' • Uptime and performance metrics');\n console.log('');\n } catch (error: any) {\n console.error(`āŒ Failed to query stats: ${error.message}`);\n process.exit(1);\n }\n }\n\n /**\n * Show federation status\n */\n async status(): Promise<void> {\n console.log('\\nšŸ” Federation System Status');\n console.log('═'.repeat(60));\n console.log('');\n\n console.log('Components:');\n console.log(' āœ… FederationHubServer - WebSocket hub for agent sync');\n console.log(' āœ… FederationHubClient - WebSocket client for agents');\n console.log(' āœ… EphemeralAgent - Short-lived agent lifecycle');\n console.log(' āœ… SecurityManager - JWT authentication & encryption');\n console.log(' āœ… AgentDB Integration - Vector memory storage (150x faster)');\n console.log('');\n\n console.log('Features:');\n console.log(' āœ… Tenant Isolation - Multi-tenant memory separation');\n console.log(' āœ… Persistent Hub - SQLite + AgentDB storage');\n console.log(' āœ… Ephemeral Agents - :memory: databases (5s-15min lifetime)');\n console.log(' āœ… Semantic Search - HNSW vector indexing');\n console.log(' āœ… Multi-Generation - Agents learn from past agents');\n console.log(' ā³ QUIC Transport - Native QUIC planned (WebSocket fallback)');\n console.log('');\n\n console.log('Architecture:');\n console.log(' • Hub: Persistent central database (disk)');\n console.log(' • Agents: Ephemeral local databases (RAM)');\n console.log(' • Sync: Real-time via WebSocket');\n console.log(' • Memory: Outlives agent lifecycle');\n console.log('');\n\n console.log('Documentation:');\n console.log(' šŸ“– Architecture: docs/architecture/FEDERATED-AGENTDB-EPHEMERAL-AGENTS.md');\n console.log(' šŸ“– Data Lifecycle: docs/architecture/FEDERATION-DATA-LIFECYCLE.md');\n console.log(' šŸ“– Test Report: docs/architecture/FEDERATION-TEST-REPORT.md');\n console.log(' šŸ“– Integration: docs/architecture/AGENTDB-INTEGRATION-COMPLETE.md');\n console.log('');\n }\n\n /**\n * Run multi-agent collaboration test\n */\n async testCollaboration(): Promise<void> {\n console.log('\\n🧪 Running Multi-Agent Collaboration Test...');\n console.log('═'.repeat(60));\n console.log('');\n\n const testPath = resolve(__dirname, '../../tests/federation/test-agentdb-collaboration.js');\n\n if (!existsSync(testPath)) {\n console.error(`āŒ Error: Test not found at ${testPath}`);\n console.error(' Please build the project first: npm run build');\n process.exit(1);\n }\n\n console.log('šŸ“‹ Test Scenario:');\n console.log(' • 5 collaborative agents (researcher, coder, tester, reviewer, isolated)');\n console.log(' • Real AgentDB integration');\n console.log(' • Cross-agent memory sharing');\n console.log(' • Tenant isolation validation');\n console.log('');\n\n const testProcess = spawn('node', [testPath], {\n stdio: 'inherit'\n });\n\n testProcess.on('exit', (code) => {\n if (code === 0) {\n console.log('\\nāœ… Collaboration test passed!');\n } else {\n console.log(`\\nāŒ Collaboration test failed (exit code: ${code})`);\n }\n process.exit(code || 0);\n });\n\n process.on('SIGINT', () => {\n console.log('\\n\\nāøļø Terminating test...');\n testProcess.kill('SIGINT');\n });\n\n process.on('SIGTERM', () => {\n testProcess.kill('SIGTERM');\n });\n }\n\n /**\n * Print help message\n */\n printHelp(): void {\n console.log(`\n🌐 Federation Hub CLI - Ephemeral Agent Management\n\nUSAGE:\n npx agentic-flow federation <command> [options]\n\nCOMMANDS:\n start Start federation hub server\n spawn Spawn ephemeral agent\n stats Show hub statistics\n status Show federation system status\n test Run multi-agent collaboration test\n help Show this help message\n\nHUB SERVER OPTIONS:\n --port, -p <port> Hub server port [default: 8443]\n --db-path <path> Database path [default: :memory:]\n --max-agents <number> Maximum concurrent agents [default: 1000]\n --verbose, -v Enable verbose logging\n\nAGENT OPTIONS:\n --agent-id <id> Custom agent ID [default: auto-generated]\n --tenant <id> Tenant ID [default: 'default']\n --lifetime <seconds> Agent lifetime [default: 300]\n --hub <endpoint> Hub WebSocket endpoint [default: ws://localhost:8443]\n --type <type> Agent type [default: 'worker']\n\nENVIRONMENT VARIABLES:\n FEDERATION_HUB_PORT Hub server port (default: 8443)\n FEDERATION_DB_PATH Database path (default: :memory:)\n FEDERATION_MAX_AGENTS Max concurrent agents (default: 1000)\n FEDERATION_TENANT_ID Default tenant ID\n FEDERATION_HUB_ENDPOINT Hub WebSocket endpoint\n AGENT_LIFETIME Agent lifetime in seconds (default: 300)\n\nDEBUG OPTIONS (for detailed operation visibility):\n DEBUG_LEVEL Debug verbosity level\n • SILENT (0) - No output\n • BASIC (1) - Major events only [default]\n • DETAILED (2) - Include all operations with timing\n • VERBOSE (3) - All events + realtime + tasks\n • TRACE (4) - Everything + internal state changes\n DEBUG_FORMAT Output format (human | json | compact) [default: human]\n DEBUG_OUTPUT Output destination (console | file | both) [default: console]\n DEBUG_OUTPUT_FILE File path for debug output [default: none]\n\nDEBUG EXAMPLES:\n # Enable detailed debug with timing\n DEBUG_LEVEL=DETAILED npx agentic-flow federation start\n\n # Maximum verbosity for troubleshooting\n DEBUG_LEVEL=TRACE DEBUG_FORMAT=human npx agentic-flow federation spawn\n\n # Production monitoring with JSON output to file\n DEBUG_LEVEL=BASIC DEBUG_FORMAT=json DEBUG_OUTPUT=file \\\\\n DEBUG_OUTPUT_FILE=/var/log/federation.log npx agentic-flow federation start\n\n # Compact format for log aggregation\n DEBUG_LEVEL=DETAILED DEBUG_FORMAT=compact DEBUG_OUTPUT=both \\\\\n DEBUG_OUTPUT_FILE=debug.log npx agentic-flow federation start\n\nEXAMPLES:\n # Start hub server (in-memory)\n npx agentic-flow federation start\n\n # Start hub with persistent storage\n npx agentic-flow federation start --db-path ./data/hub.db\n\n # Start hub on custom port\n npx agentic-flow federation start --port 9443 --verbose\n\n # Spawn ephemeral agent (5 minute lifetime)\n npx agentic-flow federation spawn --tenant acme-corp\n\n # Spawn agent with custom lifetime\n npx agentic-flow federation spawn --tenant acme-corp --lifetime 600 --type researcher\n\n # Show hub statistics\n npx agentic-flow federation stats\n\n # Show system status\n npx agentic-flow federation status\n\n # Run collaboration test\n npx agentic-flow federation test\n\nARCHITECTURE:\n Hub: Persistent central database (SQLite + AgentDB)\n • Episode metadata storage\n • Vector memory with HNSW indexing (150x faster)\n • Tenant isolation via sessionId prefixes\n • Change log for synchronization\n\n Agents: Ephemeral local databases (:memory:)\n • Short-lived (5 seconds to 15 minutes)\n • Pull memories from hub on spawn\n • Push new memories to hub during work\n • Destroyed on cleanup (memory persists in hub)\n\n Memory Persistence:\n • Hub database outlives all agents\n • New agents can access memories from dead agents\n • Multi-generation learning enabled\n • Semantic search for pattern discovery\n\nBENEFITS:\n āœ… Memory outlives agents - Persistent learning across generations\n āœ… Tenant isolation - Multi-tenant with zero data leakage\n āœ… Semantic search - Find similar patterns via vector similarity\n āœ… 150x faster search - HNSW indexing vs brute force\n āœ… Scalable architecture - Ready for 100+ concurrent agents\n āœ… WebSocket protocol - Real-time synchronization\n āœ… Zero-trust security - JWT auth + AES-256 encryption\n\nDOCUMENTATION:\n šŸ“– Complete Architecture:\n docs/architecture/FEDERATED-AGENTDB-EPHEMERAL-AGENTS.md\n\n šŸ“– Data Lifecycle Explanation:\n docs/architecture/FEDERATION-DATA-LIFECYCLE.md\n\n šŸ“– Multi-Agent Test Report:\n docs/architecture/FEDERATION-TEST-REPORT.md\n\n šŸ“– AgentDB Integration:\n docs/architecture/AGENTDB-INTEGRATION-COMPLETE.md\n\n šŸ“– GitHub: https://github.com/ruvnet/agentic-flow\n`);\n }\n}\n\n/**\n * CLI command handler\n */\nexport async function handleFederationCommand(args: string[]): Promise<void> {\n const command = args[0];\n const cli = new FederationCLI();\n\n // Parse options\n const parseOptions = (args: string[]) => {\n const options: any = {};\n for (let i = 0; i < args.length; i++) {\n if ((args[i] === '--port' || args[i] === '-p') && args[i + 1]) {\n options.port = parseInt(args[++i]);\n } else if (args[i] === '--db-path' && args[i + 1]) {\n options.dbPath = args[++i];\n } else if (args[i] === '--max-agents' && args[i + 1]) {\n options.maxAgents = parseInt(args[++i]);\n } else if (args[i] === '--verbose' || args[i] === '-v') {\n options.verbose = true;\n } else if (args[i] === '--agent-id' && args[i + 1]) {\n options.agentId = args[++i];\n } else if (args[i] === '--tenant' && args[i + 1]) {\n options.tenantId = args[++i];\n } else if (args[i] === '--lifetime' && args[i + 1]) {\n options.lifetime = parseInt(args[++i]);\n } else if (args[i] === '--hub' && args[i + 1]) {\n options.hubEndpoint = args[++i];\n } else if (args[i] === '--type' && args[i + 1]) {\n options.agentType = args[++i];\n }\n }\n return options;\n };\n\n const options = parseOptions(args.slice(1));\n\n switch (command) {\n case undefined:\n case 'help':\n cli.printHelp();\n break;\n\n case 'start':\n await cli.startHub(options);\n break;\n\n case 'spawn':\n await cli.spawnAgent(options);\n break;\n\n case 'stats':\n await cli.stats(options.hubEndpoint);\n break;\n\n case 'status':\n await cli.status();\n break;\n\n case 'test':\n await cli.testCollaboration();\n break;\n\n default:\n console.log(`\\nāŒ Unknown command: ${command}\\n`);\n console.log('Use \"npx agentic-flow federation help\" for usage information\\n');\n process.exit(1);\n }\n}\n\n// If run directly\nif (import.meta.url === `file://${process.argv[1]}`) {\n const args = process.argv.slice(2);\n handleFederationCommand(args).catch((error) => {\n console.error('\\nāŒ Error:', error.message);\n console.error(error.stack);\n process.exit(1);\n });\n}\n"]}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * MCP Server Manager - CLI for adding/managing MCP servers
4
+ *
5
+ * Allows end users to add custom MCP servers without editing code:
6
+ * - npx agentic-flow mcp add weather --npm weather-mcp
7
+ * - npx agentic-flow mcp add local --local /path/to/server.js
8
+ * - npx agentic-flow mcp list
9
+ * - npx agentic-flow mcp remove weather
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=mcp-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-manager.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-manager.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
@@ -472,3 +472,4 @@ program
472
472
  process.stdin.on('end', () => importConfig(data));
473
473
  });
474
474
  program.parse();
475
+ //# sourceMappingURL=mcp-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-manager.js","sourceRoot":"","sources":["../../src/cli/mcp-manager.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * MCP Server Manager - CLI for adding/managing MCP servers\n *\n * Allows end users to add custom MCP servers without editing code:\n * - npx agentic-flow mcp add weather --npm weather-mcp\n * - npx agentic-flow mcp add local --local /path/to/server.js\n * - npx agentic-flow mcp list\n * - npx agentic-flow mcp remove weather\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { execSync } from 'child_process';\nimport { Command } from 'commander';\n\n// Configuration file location\nconst CONFIG_DIR = path.join(os.homedir(), '.agentic-flow');\nconst CONFIG_FILE = path.join(CONFIG_DIR, 'mcp-config.json');\n\ninterface MCPServerConfig {\n enabled: boolean;\n type: 'npm' | 'local';\n package?: string;\n command: string;\n args: string[];\n env: Record<string, string>;\n description?: string;\n}\n\ninterface MCPConfig {\n servers: Record<string, MCPServerConfig>;\n}\n\n/**\n * Load MCP configuration\n */\nfunction loadConfig(): MCPConfig {\n if (!fs.existsSync(CONFIG_FILE)) {\n return { servers: {} };\n }\n\n try {\n const content = fs.readFileSync(CONFIG_FILE, 'utf-8');\n return JSON.parse(content);\n } catch (error) {\n console.error('āŒ Error loading MCP config:', error);\n return { servers: {} };\n }\n}\n\n/**\n * Save MCP configuration\n */\nfunction saveConfig(config: MCPConfig): void {\n // Ensure directory exists\n if (!fs.existsSync(CONFIG_DIR)) {\n fs.mkdirSync(CONFIG_DIR, { recursive: true });\n }\n\n fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), 'utf-8');\n}\n\n/**\n * Add MCP server from JSON config (Claude-style)\n */\nfunction addServerFromJson(name: string, configJson: string): void {\n const config = loadConfig();\n\n // Check if already exists\n if (config.servers[name]) {\n console.error(`āŒ MCP server '${name}' already exists`);\n console.log('šŸ’” Use update command or remove first');\n process.exit(1);\n }\n\n try {\n const serverConfig = JSON.parse(configJson);\n\n // Validate required fields\n if (!serverConfig.command) {\n console.error('āŒ Config must include \"command\" field');\n process.exit(1);\n }\n\n // Build MCP server config\n const mcpConfig: MCPServerConfig = {\n enabled: true,\n type: serverConfig.npm ? 'npm' : 'local',\n package: serverConfig.npm,\n command: serverConfig.command,\n args: serverConfig.args || [],\n env: serverConfig.env || {},\n description: serverConfig.description || `MCP server: ${name}`\n };\n\n config.servers[name] = mcpConfig;\n saveConfig(config);\n\n console.log(`āœ… Added MCP server: ${name}`);\n console.log(` Type: ${mcpConfig.type}`);\n console.log(` Command: ${mcpConfig.command} ${mcpConfig.args.join(' ')}`);\n if (Object.keys(mcpConfig.env).length > 0) {\n console.log(` Environment: ${Object.keys(mcpConfig.env).length} vars`);\n }\n console.log('\\nšŸ’” Use it with: npx agentic-flow --agent coder --task \"your task\"');\n } catch (error: any) {\n console.error('āŒ Invalid JSON config:', error.message);\n console.log('\\nExpected format:');\n console.log(' \\'{\"command\":\"npx\",\"args\":[\"-y\",\"weather-mcp\"],\"env\":{\"API_KEY\":\"xxx\"}}\\'');\n process.exit(1);\n }\n}\n\n/**\n * Add MCP server (flag-based)\n */\nfunction addServer(options: {\n name: string;\n npm?: string;\n local?: string;\n command?: string;\n args?: string;\n env?: string[];\n desc?: string;\n}): void {\n const config = loadConfig();\n\n // Check if already exists\n if (config.servers[options.name]) {\n console.error(`āŒ MCP server '${options.name}' already exists`);\n console.log('šŸ’” Use update command or remove first');\n process.exit(1);\n }\n\n let serverConfig: MCPServerConfig;\n\n if (options.npm) {\n // NPM package\n serverConfig = {\n enabled: true,\n type: 'npm',\n package: options.npm,\n command: 'npx',\n args: ['-y', options.npm],\n env: {},\n description: options.desc || `MCP server from ${options.npm}`\n };\n } else if (options.local) {\n // Local path\n serverConfig = {\n enabled: true,\n type: 'local',\n command: options.command || 'node',\n args: [options.local],\n env: {},\n description: options.desc || `Local MCP server at ${options.local}`\n };\n } else if (options.command) {\n // Custom command\n const args = options.args ? options.args.split(' ') : [];\n serverConfig = {\n enabled: true,\n type: 'local',\n command: options.command,\n args,\n env: {},\n description: options.desc || `Custom MCP server: ${options.command}`\n };\n } else {\n console.error('āŒ Must specify --npm, --local, or --command');\n process.exit(1);\n }\n\n // Add environment variables\n if (options.env) {\n for (const envStr of options.env) {\n const [key, ...valueParts] = envStr.split('=');\n const value = valueParts.join('=');\n serverConfig.env[key] = value;\n }\n }\n\n config.servers[options.name] = serverConfig;\n saveConfig(config);\n\n console.log(`āœ… Added MCP server: ${options.name}`);\n console.log(` Type: ${serverConfig.type}`);\n if (serverConfig.package) {\n console.log(` Package: ${serverConfig.package}`);\n }\n console.log(` Command: ${serverConfig.command} ${serverConfig.args.join(' ')}`);\n if (Object.keys(serverConfig.env).length > 0) {\n console.log(` Environment: ${Object.keys(serverConfig.env).length} vars`);\n }\n console.log('\\nšŸ’” Run tests with: npx agentic-flow mcp test ' + options.name);\n}\n\n/**\n * List MCP servers\n */\nfunction listServers(options: { enabled?: boolean; verbose?: boolean }): void {\n const config = loadConfig();\n const servers = Object.entries(config.servers);\n\n if (servers.length === 0) {\n console.log('No MCP servers configured');\n console.log('\\nšŸ’” Add a server with: npx agentic-flow mcp add NAME --npm PACKAGE');\n return;\n }\n\n console.log('Configured MCP Servers:\\n');\n\n for (const [name, server] of servers) {\n // Filter by enabled status\n if (options.enabled && !server.enabled) {\n continue;\n }\n\n const status = server.enabled ? 'āœ…' : 'āŒ';\n const state = server.enabled ? 'enabled' : 'disabled';\n\n console.log(`${status} ${name} (${state})`);\n console.log(` Type: ${server.type}`);\n\n if (server.package) {\n console.log(` Package: ${server.package}`);\n } else {\n console.log(` Command: ${server.command} ${server.args.join(' ')}`);\n }\n\n if (server.description) {\n console.log(` Description: ${server.description}`);\n }\n\n if (options.verbose) {\n console.log(` Environment:`);\n for (const [key, value] of Object.entries(server.env)) {\n const masked = value.length > 10 ? `${value.slice(0, 4)}***${value.slice(-4)}` : '***';\n console.log(` ${key}: ${masked}`);\n }\n }\n\n console.log('');\n }\n}\n\n/**\n * Remove MCP server\n */\nfunction removeServer(name: string, options: { confirm?: boolean }): void {\n const config = loadConfig();\n\n if (!config.servers[name]) {\n console.error(`āŒ MCP server '${name}' not found`);\n process.exit(1);\n }\n\n if (!options.confirm) {\n console.log(`āš ļø This will remove MCP server: ${name}`);\n console.log(' Use --confirm to proceed');\n process.exit(0);\n }\n\n delete config.servers[name];\n saveConfig(config);\n\n console.log(`āœ… Removed MCP server: ${name}`);\n}\n\n/**\n * Enable/disable MCP server\n */\nfunction toggleServer(name: string, enabled: boolean): void {\n const config = loadConfig();\n\n if (!config.servers[name]) {\n console.error(`āŒ MCP server '${name}' not found`);\n process.exit(1);\n }\n\n config.servers[name].enabled = enabled;\n saveConfig(config);\n\n const action = enabled ? 'Enabled' : 'Disabled';\n console.log(`āœ… ${action} MCP server: ${name}`);\n}\n\n/**\n * Update MCP server\n */\nfunction updateServer(name: string, options: {\n version?: string;\n env?: string[];\n command?: string;\n args?: string;\n}): void {\n const config = loadConfig();\n\n if (!config.servers[name]) {\n console.error(`āŒ MCP server '${name}' not found`);\n process.exit(1);\n }\n\n const server = config.servers[name];\n\n // Update version for NPM packages\n if (options.version && server.type === 'npm' && server.package) {\n const packageName = server.package.split('@')[0];\n server.package = `${packageName}@${options.version}`;\n server.args = ['-y', server.package];\n }\n\n // Update environment variables\n if (options.env) {\n for (const envStr of options.env) {\n const [key, ...valueParts] = envStr.split('=');\n const value = valueParts.join('=');\n server.env[key] = value;\n }\n }\n\n // Update command\n if (options.command) {\n server.command = options.command;\n }\n\n // Update args\n if (options.args) {\n server.args = options.args.split(' ');\n }\n\n saveConfig(config);\n console.log(`āœ… Updated MCP server: ${name}`);\n}\n\n/**\n * Test MCP server\n */\nfunction testServer(name: string, options: { verbose?: boolean }): void {\n const config = loadConfig();\n\n if (!config.servers[name]) {\n console.error(`āŒ MCP server '${name}' not found`);\n process.exit(1);\n }\n\n const server = config.servers[name];\n\n console.log(`Testing MCP server: ${name}`);\n console.log(`Command: ${server.command} ${server.args.join(' ')}\\n`);\n\n try {\n // Build environment\n const env = { ...process.env, ...server.env };\n\n // Test if server responds (send tools/list request)\n const testRequest = JSON.stringify({\n jsonrpc: '2.0',\n method: 'tools/list',\n id: 1\n });\n\n const cmd = `echo '${testRequest}' | ${server.command} ${server.args.join(' ')}`;\n\n const result = execSync(cmd, {\n encoding: 'utf-8',\n env,\n timeout: 5000\n });\n\n if (options.verbose) {\n console.log('Response:', result);\n }\n\n // Try to parse response\n const response = JSON.parse(result.split('\\n')[0]);\n\n if (response.result?.tools) {\n console.log(`āœ… Server started successfully`);\n console.log(`āœ… Responds to tools/list`);\n console.log(`āœ… Found ${response.result.tools.length} tools:`);\n\n for (const tool of response.result.tools) {\n console.log(` - ${tool.name}: ${tool.description || 'No description'}`);\n }\n\n console.log('\\nāœ… Server is working correctly');\n } else {\n console.log('āš ļø Server responded but no tools found');\n }\n } catch (error: any) {\n console.error('āŒ Server test failed:', error.message);\n process.exit(1);\n }\n}\n\n/**\n * Show server info\n */\nfunction showInfo(name: string): void {\n const config = loadConfig();\n\n if (!config.servers[name]) {\n console.error(`āŒ MCP server '${name}' not found`);\n process.exit(1);\n }\n\n const server = config.servers[name];\n\n console.log(`MCP Server: ${name}`);\n console.log(`Status: ${server.enabled ? 'āœ… Enabled' : 'āŒ Disabled'}`);\n console.log(`Type: ${server.type}`);\n\n if (server.package) {\n console.log(`Package: ${server.package}`);\n }\n\n console.log(`Command: ${server.command} ${server.args.join(' ')}`);\n\n if (Object.keys(server.env).length > 0) {\n console.log(`Environment:`);\n for (const [key, value] of Object.entries(server.env)) {\n const masked = value.length > 10 ? `***${key.slice(0, 3)}***` : '***';\n console.log(` ${key}: ${masked}`);\n }\n }\n\n if (server.description) {\n console.log(`Description: ${server.description}`);\n }\n\n console.log(`\\nConfig file: ${CONFIG_FILE}`);\n}\n\n/**\n * Export configuration\n */\nfunction exportConfig(): void {\n const config = loadConfig();\n console.log(JSON.stringify(config, null, 2));\n}\n\n/**\n * Import configuration\n */\nfunction importConfig(configJson: string): void {\n try {\n const importedConfig: MCPConfig = JSON.parse(configJson);\n\n // Validate structure\n if (!importedConfig.servers || typeof importedConfig.servers !== 'object') {\n throw new Error('Invalid config format');\n }\n\n const config = loadConfig();\n\n // Merge configs\n for (const [name, server] of Object.entries(importedConfig.servers)) {\n config.servers[name] = server;\n }\n\n saveConfig(config);\n\n const count = Object.keys(importedConfig.servers).length;\n console.log(`āœ… Imported ${count} MCP server(s)`);\n } catch (error: any) {\n console.error('āŒ Import failed:', error.message);\n process.exit(1);\n }\n}\n\n// CLI setup\nconst program = new Command();\n\nprogram\n .name('agentic-flow mcp')\n .description('Manage MCP servers for agentic-flow')\n .version('1.0.0')\n .addHelpText('after', `\nExamples:\n # Add MCP server (Claude-style JSON config)\n $ npx agentic-flow mcp add weather '{\"command\":\"npx\",\"args\":[\"-y\",\"weather-mcp\"],\"env\":{\"API_KEY\":\"xxx\"}}'\n\n # Add MCP server (simple flags)\n $ npx agentic-flow mcp add weather --npm weather-mcp --env \"API_KEY=xxx\"\n\n # Add local MCP server\n $ npx agentic-flow mcp add my-tools --local /path/to/server.js\n\n # List all configured servers\n $ npx agentic-flow mcp list\n\n # Test server\n $ npx agentic-flow mcp test weather\n\n # Use in agents (automatic)\n $ npx agentic-flow --agent researcher --task \"Get weather for Tokyo\"\n\nConfig file: ~/.agentic-flow/mcp-config.json\n`);\n\nprogram\n .command('add <name> [config]')\n .description('Add a new MCP server (config as JSON string or options)')\n .option('--npm <package>', 'NPM package name (e.g., weather-mcp@latest)')\n .option('--local <path>', 'Local file path (e.g., /path/to/server.js)')\n .option('--command <cmd>', 'Custom command (e.g., python3)')\n .option('--args <args>', 'Command arguments')\n .option('--env <key=value>', 'Environment variable (can use multiple times)')\n .option('--desc <description>', 'Server description')\n .action((name, config, options) => {\n if (config) {\n // JSON config format (like Claude MCP)\n addServerFromJson(name, config);\n } else {\n // Flag-based format\n addServer({ name, ...options });\n }\n });\n\nprogram\n .command('list')\n .description('List configured MCP servers')\n .option('--enabled', 'Show only enabled servers')\n .option('--verbose', 'Show detailed information')\n .action((options) => listServers(options));\n\nprogram\n .command('remove <name>')\n .description('Remove an MCP server')\n .option('--confirm', 'Confirm removal')\n .action((name, options) => removeServer(name, options));\n\nprogram\n .command('enable <name>')\n .description('Enable an MCP server')\n .action((name) => toggleServer(name, true));\n\nprogram\n .command('disable <name>')\n .description('Disable an MCP server')\n .action((name) => toggleServer(name, false));\n\nprogram\n .command('update <name>')\n .description('Update MCP server configuration')\n .option('--version <version>', 'Update NPM package version')\n .option('--env <key=value>', 'Update environment variable (can use multiple times)')\n .option('--command <cmd>', 'Update command')\n .option('--args <args>', 'Update arguments')\n .action((name, options) => updateServer(name, options));\n\nprogram\n .command('test <name>')\n .description('Test if MCP server works')\n .option('--verbose', 'Show detailed output')\n .action((name, options) => testServer(name, options));\n\nprogram\n .command('info <name>')\n .description('Show MCP server information')\n .action((name) => showInfo(name));\n\nprogram\n .command('export')\n .description('Export MCP configuration to stdout')\n .action(() => exportConfig());\n\nprogram\n .command('import')\n .description('Import MCP configuration from stdin')\n .action(() => {\n let data = '';\n process.stdin.on('data', (chunk) => (data += chunk));\n process.stdin.on('end', () => importConfig(data));\n });\n\nprogram.parse();\n"]}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ export interface MCPOptions {
3
+ port?: string;
4
+ debug?: boolean;
5
+ }
6
+ export declare function startStdioServer(options?: MCPOptions): Promise<void>;
7
+ export declare function startHttpServer(options?: MCPOptions): Promise<void>;
8
+ export declare function listTools(): void;
9
+ export declare function showStatus(): void;
10
+ export declare function handleMCPCommand(command: string, options?: MCPOptions): void | Promise<void>;
11
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/cli/mcp.ts"],"names":[],"mappings":";AASA,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,UAAe,iBA0B9D;AAGD,wBAAsB,eAAe,CAAC,OAAO,GAAE,UAAe,iBAiC7D;AAGD,wBAAgB,SAAS,SAqBxB;AAGD,wBAAgB,UAAU,SAwBzB;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,wBAyBzE"}
package/dist/cli/mcp.js CHANGED
@@ -133,3 +133,4 @@ if (import.meta.url === `file://${process.argv[1]}`) {
133
133
  };
134
134
  handleMCPCommand(command, options);
135
135
  }
136
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/cli/mcp.ts"],"names":[],"mappings":";AACA,oCAAoC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAOtC,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAsB,EAAE;IAC7D,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,qGAAqG,CAAC,CAAC;IAEnH,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IAE9E,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;QACvC,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC/C;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAsB,EAAE;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAC;IAElF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;QACvC,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC/C;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAC5E,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC;AAED,cAAc;AACd,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,UAAsB,EAAE;IACxE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEnC,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;QAElC,KAAK,OAAO;YACV,OAAO,SAAS,EAAE,CAAC;QAErB,KAAK,QAAQ;YACX,OAAO,UAAU,EAAE,CAAC;QAEtB;YACE,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC3C,MAAM,OAAO,GAAe;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,SAAS;QACb,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;KACxC,CAAC;IAEF,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC","sourcesContent":["#!/usr/bin/env node\n// MCP CLI commands for agentic-flow\nimport { spawn } from 'child_process';\nimport { resolve, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nexport interface MCPOptions {\n port?: string;\n debug?: boolean;\n}\n\n// Start stdio MCP server (for Claude Desktop)\nexport async function startStdioServer(options: MCPOptions = {}) {\n console.log('šŸš€ Starting FastMCP stdio server...');\n console.log('šŸ“¦ Tools: memory_store, memory_retrieve, memory_search, swarm_init, agent_spawn, task_orchestrate\\n');\n\n const serverPath = resolve(__dirname, '../mcp/fastmcp/servers/stdio-full.js');\n\n const proc = spawn('node', [serverPath], {\n stdio: 'inherit',\n env: {\n ...process.env,\n DEBUG: options.debug ? 'fastmcp:*' : undefined\n }\n });\n\n proc.on('exit', (code) => {\n process.exit(code || 0);\n });\n\n // Handle termination signals\n process.on('SIGINT', () => {\n proc.kill('SIGINT');\n });\n\n process.on('SIGTERM', () => {\n proc.kill('SIGTERM');\n });\n}\n\n// Start HTTP + SSE server (for web/remote clients)\nexport async function startHttpServer(options: MCPOptions = {}) {\n const port = options.port || '3000';\n\n console.log('šŸš€ Starting FastMCP HTTP + SSE server...');\n console.log(`🌐 Port: ${port}`);\n console.log('šŸ“” SSE endpoint: /events');\n console.log('šŸ”§ MCP endpoint: /mcp');\n console.log('ā¤ļø Health check: /health');\n console.log('šŸ“¦ Tools: 11 (memory Ɨ 3, swarm Ɨ 3, agent Ɨ 5)\\n');\n\n const serverPath = resolve(__dirname, '../mcp/fastmcp/servers/http-streaming.js');\n\n const proc = spawn('node', [serverPath], {\n stdio: 'inherit',\n env: {\n ...process.env,\n PORT: port,\n DEBUG: options.debug ? 'fastmcp:*' : undefined\n }\n });\n\n proc.on('exit', (code) => {\n process.exit(code || 0);\n });\n\n // Handle termination signals\n process.on('SIGINT', () => {\n proc.kill('SIGINT');\n });\n\n process.on('SIGTERM', () => {\n proc.kill('SIGTERM');\n });\n}\n\n// List available MCP tools\nexport function listTools() {\n console.log('\\nšŸ“¦ Available MCP Tools (11 total)\\n');\n\n console.log('Memory Tools:');\n console.log(' 1. memory_store - Store values with TTL and namespacing');\n console.log(' 2. memory_retrieve - Retrieve stored values');\n console.log(' 3. memory_search - Search keys with pattern matching\\n');\n\n console.log('Swarm Coordination Tools:');\n console.log(' 4. swarm_init - Initialize multi-agent swarms');\n console.log(' 5. agent_spawn - Spawn specialized agents');\n console.log(' 6. task_orchestrate - Orchestrate distributed tasks\\n');\n\n console.log('Agent Execution Tools:');\n console.log(' 7. agent_execute - Execute specific agent with task');\n console.log(' 8. agent_parallel - Run 3 agents in parallel mode');\n console.log(' 9. agent_list - List all available agents\\n');\n\n console.log('Custom Extension Tools:');\n console.log(' 10. agent_add - Add new custom agent (markdown)');\n console.log(' 11. command_add - Add new custom command (markdown)\\n');\n}\n\n// Show server status\nexport function showStatus() {\n console.log('\\nšŸ” FastMCP Server Status\\n');\n\n console.log('Available Transports:');\n console.log(' āœ… stdio - JSON-RPC over stdio (for local MCP clients)');\n console.log(' āœ… HTTP+SSE - HTTP with Server-Sent Events (for web/remote)\\n');\n\n console.log('Tools: 11/11 implemented');\n console.log(' āœ… memory_store');\n console.log(' āœ… memory_retrieve');\n console.log(' āœ… memory_search');\n console.log(' āœ… swarm_init');\n console.log(' āœ… agent_spawn');\n console.log(' āœ… task_orchestrate');\n console.log(' āœ… agent_execute');\n console.log(' āœ… agent_parallel');\n console.log(' āœ… agent_list');\n console.log(' āœ… agent_add');\n console.log(' āœ… command_add\\n');\n\n console.log('Documentation:');\n console.log(' šŸ“– Implementation: docs/fastmcp-implementation.md');\n console.log(' šŸš€ Quick Start: docs/fastmcp-quick-start.md');\n console.log(' šŸ—ļø Architecture: docs/ARCHITECTURE.md\\n');\n}\n\n// CLI handler\nexport function handleMCPCommand(command: string, options: MCPOptions = {}) {\n switch (command) {\n case 'start':\n case 'stdio':\n return startStdioServer(options);\n\n case 'http':\n case 'sse':\n return startHttpServer(options);\n\n case 'tools':\n return listTools();\n\n case 'status':\n return showStatus();\n\n default:\n console.error(`Unknown MCP command: ${command}`);\n console.error('\\nAvailable commands:');\n console.error(' start, stdio - Start stdio MCP server');\n console.error(' http, sse - Start HTTP + SSE server');\n console.error(' tools - List available tools');\n console.error(' status - Show server status\\n');\n process.exit(1);\n }\n}\n\n// If run directly\nif (import.meta.url === `file://${process.argv[1]}`) {\n const command = process.argv[2] || 'start';\n const options: MCPOptions = {\n port: process.argv.includes('--port')\n ? process.argv[process.argv.indexOf('--port') + 1]\n : undefined,\n debug: process.argv.includes('--debug')\n };\n\n handleMCPCommand(command, options);\n}\n"]}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Agentic Flow - Standalone CLI with integrated OpenRouter proxy
4
+ * Usage: npx agentic-flow-proxy --agent coder --task "Create code" --openrouter
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=cli-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-proxy.d.ts","sourceRoot":"","sources":["../src/cli-proxy.ts"],"names":[],"mappings":";AACA;;;GAGG"}
package/dist/cli-proxy.js CHANGED
@@ -1172,3 +1172,4 @@ DOCUMENTATION:
1172
1172
  // Run CLI
1173
1173
  const cli = new AgenticFlowCLI();
1174
1174
  cli.start();
1175
+ //# sourceMappingURL=cli-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-proxy.js","sourceRoot":"","sources":["../src/cli-proxy.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * Agentic Flow - Standalone CLI with integrated OpenRouter proxy\n * Usage: npx agentic-flow-proxy --agent coder --task \"Create code\" --openrouter\n */\n\nimport dotenv from \"dotenv\";\nimport { existsSync, readFileSync } from 'fs';\nimport { resolve as pathResolve, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\n// Load .env from current directory, or search up the directory tree\nfunction loadEnvRecursive(startPath: string = process.cwd()): boolean {\n let currentPath = startPath;\n const root = pathResolve('/');\n\n while (currentPath !== root) {\n const envPath = pathResolve(currentPath, '.env');\n if (existsSync(envPath)) {\n dotenv.config({ path: envPath });\n return true;\n }\n currentPath = pathResolve(currentPath, '..');\n }\n\n // Fallback to default behavior\n dotenv.config();\n return false;\n}\n\nloadEnvRecursive();\nimport { AnthropicToOpenRouterProxy } from \"./proxy/anthropic-to-openrouter.js\";\nimport { AnthropicToRequestyProxy } from \"./proxy/anthropic-to-requesty.js\";\nimport { logger } from \"./utils/logger.js\";\nimport { parseArgs } from \"./utils/cli.js\";\nimport { getAgent, listAgents } from \"./utils/agentLoader.js\";\nimport { claudeAgent } from \"./agents/claudeAgent.js\";\nimport { claudeAgentDirect } from \"./agents/claudeAgentDirect.js\";\nimport { handleMCPCommand } from \"./utils/mcpCommands.js\";\nimport { handleReasoningBankCommand } from \"./utils/reasoningbankCommands.js\";\nimport { handleConfigCommand } from \"./cli/config-wizard.js\";\nimport { handleAgentCommand } from \"./cli/agent-manager.js\";\nimport { handleFederationCommand } from \"./cli/federation-cli.js\";\nimport { ModelOptimizer } from \"./utils/modelOptimizer.js\";\nimport { detectModelCapabilities } from \"./utils/modelCapabilities.js\";\nimport { AgentBoosterPreprocessor } from \"./utils/agentBoosterPreprocessor.js\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\nconst packageJson = JSON.parse(readFileSync(pathResolve(__dirname, '../package.json'), 'utf-8'));\nconst VERSION = packageJson.version;\n\nclass AgenticFlowCLI {\n private proxyServer: any = null;\n private proxyPort: number = 3000;\n\n async start() {\n const options = parseArgs();\n\n if (options.version) {\n console.log(`agentic-flow v${VERSION}`);\n process.exit(0);\n }\n\n if (options.help) {\n this.printHelp();\n process.exit(0);\n }\n\n // If no mode and no agent specified, show help\n if (!options.agent && options.mode !== 'list' && !['config', 'agent-manager', 'mcp-manager', 'proxy', 'quic', 'claude-code', 'mcp', 'reasoningbank', 'federation'].includes(options.mode)) {\n this.printHelp();\n process.exit(0);\n }\n\n if (options.mode === 'list') {\n this.listAgents();\n process.exit(0);\n }\n\n if (options.mode === 'config') {\n // Handle config wizard\n const configArgs = process.argv.slice(3); // Skip 'node', 'cli-proxy.js', 'config'\n await handleConfigCommand(configArgs);\n process.exit(0);\n }\n\n if (options.mode === 'agent-manager') {\n // Handle agent management commands\n const agentArgs = process.argv.slice(3); // Skip 'node', 'cli-proxy.js', 'agent'\n await handleAgentCommand(agentArgs);\n process.exit(0);\n }\n\n if (options.mode === 'mcp-manager') {\n // Handle MCP manager commands (add, list, remove, etc.)\n const { spawn } = await import('child_process');\n const { resolve, dirname } = await import('path');\n const { fileURLToPath } = await import('url');\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n const mcpManagerPath = resolve(__dirname, './cli/mcp-manager.js');\n\n // Pass all args after 'mcp' to mcp-manager\n const mcpArgs = process.argv.slice(3); // Skip 'node', 'cli-proxy.js', 'mcp'\n\n const proc = spawn('node', [mcpManagerPath, ...mcpArgs], {\n stdio: 'inherit'\n });\n\n proc.on('exit', (code) => {\n process.exit(code || 0);\n });\n\n process.on('SIGINT', () => proc.kill('SIGINT'));\n process.on('SIGTERM', () => proc.kill('SIGTERM'));\n return;\n }\n\n if (options.mode === 'proxy') {\n // Run standalone proxy server for Claude Code/Cursor\n await this.runStandaloneProxy();\n return;\n }\n\n if (options.mode === 'quic') {\n // Run QUIC transport proxy server\n await this.runQuicProxy();\n return;\n }\n\n if (options.mode === 'claude-code') {\n // Spawn Claude Code with auto-configured proxy\n const { spawn } = await import('child_process');\n const claudeCodePath = pathResolve(__dirname, './cli/claude-code-wrapper.js');\n\n const proc = spawn('node', [claudeCodePath, ...process.argv.slice(3)], {\n stdio: 'inherit',\n env: process.env as NodeJS.ProcessEnv\n });\n\n proc.on('exit', (code) => {\n process.exit(code || 0);\n });\n\n process.on('SIGINT', () => proc.kill('SIGINT'));\n process.on('SIGTERM', () => proc.kill('SIGTERM'));\n return;\n }\n\n if (options.mode === 'mcp') {\n // Run standalone MCP server directly\n const { spawn } = await import('child_process');\n const { resolve, dirname } = await import('path');\n const { fileURLToPath } = await import('url');\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n const serverPath = resolve(__dirname, './mcp/standalone-stdio.js');\n\n const proc = spawn('node', [serverPath], {\n stdio: 'inherit'\n });\n\n proc.on('exit', (code) => {\n process.exit(code || 0);\n });\n\n // Handle termination signals\n process.on('SIGINT', () => proc.kill('SIGINT'));\n process.on('SIGTERM', () => proc.kill('SIGTERM'));\n return;\n }\n\n if (options.mode === 'reasoningbank') {\n // Handle ReasoningBank commands\n const subcommand = process.argv[3] || 'help';\n await handleReasoningBankCommand(subcommand);\n process.exit(0);\n }\n\n if (options.mode === 'federation') {\n // Handle Federation commands\n const federationArgs = process.argv.slice(3); // Skip 'node', 'cli-proxy.js', 'federation'\n await handleFederationCommand(federationArgs);\n process.exit(0);\n }\n\n // Apply model optimization if requested\n if (options.optimize && options.agent && options.task) {\n const recommendation = ModelOptimizer.optimize({\n agent: options.agent,\n task: options.task,\n priority: options.optimizePriority || 'balanced',\n maxCostPerTask: options.maxCost,\n requiresTools: true // Agents have MCP tools available, so require tool support\n });\n\n // Display recommendation\n ModelOptimizer.displayRecommendation(recommendation);\n\n // Apply recommendation to options\n if (!options.provider || options.optimize) {\n options.provider = recommendation.provider;\n }\n if (!options.model || options.optimize) {\n options.model = recommendation.model;\n }\n\n console.log(`āœ… Using optimized model: ${recommendation.modelName}\\n`);\n }\n\n // Determine which provider to use\n const useONNX = this.shouldUseONNX(options);\n const useOpenRouter = this.shouldUseOpenRouter(options);\n const useGemini = this.shouldUseGemini(options);\n // Requesty temporarily disabled - keep proxy files for future use\n const useRequesty = false; // this.shouldUseRequesty(options);\n\n // Debug output for provider selection\n if (options.verbose || process.env.VERBOSE === 'true') {\n console.log('\\nšŸ” Provider Selection Debug:');\n console.log(` Provider flag: ${options.provider || 'not set'}`);\n console.log(` Model: ${options.model || 'default'}`);\n console.log(` Use ONNX: ${useONNX}`);\n console.log(` Use OpenRouter: ${useOpenRouter}`);\n console.log(` Use Gemini: ${useGemini}`);\n console.log(` Use Requesty: ${useRequesty}`);\n console.log(` OPENROUTER_API_KEY: ${process.env.OPENROUTER_API_KEY ? 'āœ“ set' : 'āœ— not set'}`);\n console.log(` GOOGLE_GEMINI_API_KEY: ${process.env.GOOGLE_GEMINI_API_KEY ? 'āœ“ set' : 'āœ— not set'}`);\n console.log(` REQUESTY_API_KEY: ${process.env.REQUESTY_API_KEY ? 'āœ“ set' : 'āœ— not set'}`);\n console.log(` ANTHROPIC_API_KEY: ${process.env.ANTHROPIC_API_KEY ? 'āœ“ set' : 'āœ— not set'}\\n`);\n }\n\n try {\n // Start proxy if needed (ONNX, OpenRouter, Gemini, or Requesty)\n if (useONNX) {\n console.log('šŸš€ Initializing ONNX local inference proxy...');\n await this.startONNXProxy(options.model);\n } else if (useRequesty) {\n console.log('šŸš€ Initializing Requesty proxy...');\n await this.startRequestyProxy(options.model);\n } else if (useOpenRouter) {\n console.log('šŸš€ Initializing OpenRouter proxy...');\n await this.startOpenRouterProxy(options.model);\n } else if (useGemini) {\n console.log('šŸš€ Initializing Gemini proxy...');\n // Don't pass Anthropic model names to Gemini proxy\n const geminiModel = options.model?.startsWith('claude') ? undefined : options.model;\n console.log(`šŸ” Model filtering: options.model=${options.model}, geminiModel=${geminiModel}`);\n await this.startGeminiProxy(geminiModel);\n } else {\n console.log('šŸš€ Using direct Anthropic API...\\n');\n }\n\n // Run agent\n await this.runAgent(options, useOpenRouter, useGemini, useONNX, useRequesty);\n\n logger.info('Execution completed successfully');\n process.exit(0);\n } catch (err: unknown) {\n logger.error('Execution failed', { error: err });\n console.error(err);\n process.exit(1);\n }\n }\n\n private shouldUseONNX(options: any): boolean {\n // Use ONNX if:\n // 1. Provider is explicitly set to onnx\n // 2. PROVIDER env var is set to onnx\n // 3. USE_ONNX env var is set\n if (options.provider === 'onnx' || process.env.PROVIDER === 'onnx') {\n return true;\n }\n\n if (process.env.USE_ONNX === 'true') {\n return true;\n }\n\n return false;\n }\n\n private shouldUseGemini(options: any): boolean {\n // Use Gemini if:\n // 1. Provider is explicitly set to gemini\n // 2. PROVIDER env var is set to gemini\n // 3. USE_GEMINI env var is set\n // 4. GOOGLE_GEMINI_API_KEY is set and no other provider is specified\n if (options.provider === 'gemini' || process.env.PROVIDER === 'gemini') {\n return true;\n }\n\n if (process.env.USE_GEMINI === 'true') {\n return true;\n }\n\n // BUG FIX: Don't auto-select Gemini if user explicitly specified a different provider\n if (options.provider && options.provider !== 'gemini') {\n return false;\n }\n\n if (process.env.GOOGLE_GEMINI_API_KEY &&\n !process.env.ANTHROPIC_API_KEY &&\n !process.env.OPENROUTER_API_KEY &&\n options.provider !== 'onnx') {\n return true;\n }\n\n return false;\n }\n\n private shouldUseRequesty(options: any): boolean {\n // Use Requesty if:\n // 1. Provider is explicitly set to requesty\n // 2. PROVIDER env var is set to requesty\n // 3. USE_REQUESTY env var is set\n if (options.provider === 'requesty' || process.env.PROVIDER === 'requesty') {\n return true;\n }\n\n if (process.env.USE_REQUESTY === 'true') {\n return true;\n }\n\n return false;\n }\n\n private shouldUseOpenRouter(options: any): boolean {\n // Don't use OpenRouter if ONNX, Gemini, or Requesty is explicitly requested\n if (options.provider === 'onnx' || process.env.USE_ONNX === 'true' || process.env.PROVIDER === 'onnx') {\n return false;\n }\n\n if (options.provider === 'gemini' || process.env.PROVIDER === 'gemini') {\n return false;\n }\n\n if (options.provider === 'requesty' || process.env.PROVIDER === 'requesty') {\n return false;\n }\n\n // Use OpenRouter if:\n // 1. Provider is explicitly set to openrouter\n // 2. Model parameter contains \"/\" (e.g., \"meta-llama/llama-3.1-8b-instruct\")\n // 3. USE_OPENROUTER env var is set\n // 4. OPENROUTER_API_KEY is set and ANTHROPIC_API_KEY is not\n if (options.provider === 'openrouter' || process.env.PROVIDER === 'openrouter') {\n return true;\n }\n\n if (options.model?.includes('/')) {\n return true;\n }\n\n if (process.env.USE_OPENROUTER === 'true') {\n return true;\n }\n\n if (process.env.OPENROUTER_API_KEY && !process.env.ANTHROPIC_API_KEY && !process.env.GOOGLE_GEMINI_API_KEY) {\n return true;\n }\n\n return false;\n }\n\n private async startOpenRouterProxy(modelOverride?: string): Promise<void> {\n const openrouterKey = process.env.OPENROUTER_API_KEY;\n\n if (!openrouterKey) {\n console.error('āŒ Error: OPENROUTER_API_KEY required for OpenRouter models');\n console.error('Set it in .env or export OPENROUTER_API_KEY=sk-or-v1-xxxxx');\n process.exit(1);\n }\n\n logger.info('Starting integrated OpenRouter proxy');\n\n const defaultModel = modelOverride ||\n process.env.COMPLETION_MODEL ||\n process.env.REASONING_MODEL ||\n 'deepseek/deepseek-chat';\n\n const capabilities = detectModelCapabilities(defaultModel);\n\n const proxy = new AnthropicToOpenRouterProxy({\n openrouterApiKey: openrouterKey,\n openrouterBaseUrl: process.env.ANTHROPIC_PROXY_BASE_URL,\n defaultModel,\n capabilities: capabilities\n });\n\n // Start proxy in background\n proxy.start(this.proxyPort);\n this.proxyServer = proxy;\n\n // Set ANTHROPIC_BASE_URL to proxy\n process.env.ANTHROPIC_BASE_URL = `http://localhost:${this.proxyPort}`;\n\n // Set dummy ANTHROPIC_API_KEY for proxy (actual auth uses OPENROUTER_API_KEY)\n if (!process.env.ANTHROPIC_API_KEY) {\n process.env.ANTHROPIC_API_KEY = 'sk-ant-proxy-dummy-key';\n }\n\n console.log(`šŸ”— Proxy Mode: OpenRouter`);\n console.log(`šŸ”§ Proxy URL: http://localhost:${this.proxyPort}`);\n console.log(`šŸ¤– Default Model: ${defaultModel}`);\n\n if (capabilities.requiresEmulation) {\n console.log(`\\nāš™ļø Detected: Model lacks native tool support`);\n console.log(`šŸ”§ Using ${capabilities.emulationStrategy.toUpperCase()} emulation pattern`);\n console.log(`šŸ“Š Expected reliability: ${capabilities.emulationStrategy === 'react' ? '70-85%' : '50-70%'}`);\n }\n console.log('');\n\n // Wait for proxy to be ready\n await new Promise(resolve => setTimeout(resolve, 1500));\n }\n\n private async startGeminiProxy(modelOverride?: string): Promise<void> {\n const geminiKey = process.env.GOOGLE_GEMINI_API_KEY;\n\n if (!geminiKey) {\n console.error('āŒ Error: GOOGLE_GEMINI_API_KEY required for Gemini models');\n console.error('Set it in .env or export GOOGLE_GEMINI_API_KEY=xxxxx');\n process.exit(1);\n }\n\n logger.info('Starting integrated Gemini proxy');\n\n // BUG FIX: Don't use COMPLETION_MODEL for Gemini (it contains Anthropic model names)\n // Always use modelOverride if provided, otherwise default to gemini-2.0-flash-exp\n console.log(`šŸ” Gemini proxy debug: modelOverride=${modelOverride}, COMPLETION_MODEL=${process.env.COMPLETION_MODEL}`);\n const defaultModel = (modelOverride && !modelOverride.startsWith('claude'))\n ? modelOverride\n : 'gemini-2.0-flash-exp';\n\n // Import Gemini proxy\n const { AnthropicToGeminiProxy } = await import('./proxy/anthropic-to-gemini.js');\n\n const proxy = new AnthropicToGeminiProxy({\n geminiApiKey: geminiKey,\n defaultModel\n });\n\n // Start proxy in background\n proxy.start(this.proxyPort);\n this.proxyServer = proxy;\n\n // Set ANTHROPIC_BASE_URL to proxy\n process.env.ANTHROPIC_BASE_URL = `http://localhost:${this.proxyPort}`;\n\n // Set dummy ANTHROPIC_API_KEY for proxy (actual auth uses GOOGLE_GEMINI_API_KEY)\n if (!process.env.ANTHROPIC_API_KEY) {\n process.env.ANTHROPIC_API_KEY = 'sk-ant-proxy-dummy-key';\n }\n\n console.log(`šŸ”— Proxy Mode: Google Gemini`);\n console.log(`šŸ”§ Proxy URL: http://localhost:${this.proxyPort}`);\n console.log(`šŸ¤– Default Model: ${defaultModel}\\n`);\n\n // Wait for proxy to be ready\n await new Promise(resolve => setTimeout(resolve, 1500));\n }\n\n private async startRequestyProxy(modelOverride?: string): Promise<void> {\n const requestyKey = process.env.REQUESTY_API_KEY;\n\n if (!requestyKey) {\n console.error('āŒ Error: REQUESTY_API_KEY required for Requesty models');\n console.error('Set it in .env or export REQUESTY_API_KEY=sk-xxxxx');\n process.exit(1);\n }\n\n logger.info('Starting integrated Requesty proxy');\n\n const defaultModel = modelOverride ||\n process.env.COMPLETION_MODEL ||\n process.env.REASONING_MODEL ||\n 'deepseek/deepseek-chat';\n\n const capabilities = detectModelCapabilities(defaultModel);\n\n const proxy = new AnthropicToRequestyProxy({\n requestyApiKey: requestyKey,\n requestyBaseUrl: process.env.REQUESTY_BASE_URL,\n defaultModel,\n capabilities: capabilities\n });\n\n // Start proxy in background\n proxy.start(this.proxyPort);\n this.proxyServer = proxy;\n\n // Set ANTHROPIC_BASE_URL to proxy\n process.env.ANTHROPIC_BASE_URL = `http://localhost:${this.proxyPort}`;\n\n // Set dummy ANTHROPIC_API_KEY for proxy (actual auth uses REQUESTY_API_KEY)\n if (!process.env.ANTHROPIC_API_KEY) {\n process.env.ANTHROPIC_API_KEY = 'sk-ant-proxy-dummy-key';\n }\n\n console.log(`šŸ”— Proxy Mode: Requesty`);\n console.log(`šŸ”§ Proxy URL: http://localhost:${this.proxyPort}`);\n console.log(`šŸ¤– Default Model: ${defaultModel}`);\n\n if (capabilities.requiresEmulation) {\n console.log(`\\nāš™ļø Detected: Model lacks native tool support`);\n console.log(`šŸ”§ Using ${capabilities.emulationStrategy.toUpperCase()} emulation pattern`);\n console.log(`šŸ“Š Expected reliability: ${capabilities.emulationStrategy === 'react' ? '70-85%' : '50-70%'}`);\n }\n console.log('');\n\n // Wait for proxy to be ready\n await new Promise(resolve => setTimeout(resolve, 1500));\n }\n\n private async startONNXProxy(modelOverride?: string): Promise<void> {\n logger.info('Starting integrated ONNX local inference proxy');\n\n console.log('šŸ”§ Provider: ONNX Local (Phi-4-mini)');\n console.log('šŸ’¾ Free local inference - no API costs\\n');\n\n // Import ONNX proxy\n const { AnthropicToONNXProxy } = await import('./proxy/anthropic-to-onnx.js');\n\n // Use a different port for ONNX to avoid conflicts\n const onnxProxyPort = parseInt(process.env.ONNX_PROXY_PORT || '3001');\n\n const proxy = new AnthropicToONNXProxy({\n port: onnxProxyPort,\n modelPath: process.env.ONNX_MODEL_PATH,\n executionProviders: process.env.ONNX_EXECUTION_PROVIDERS?.split(',') || ['cpu']\n });\n\n // Start proxy in background\n await proxy.start();\n this.proxyServer = proxy;\n\n // Set ANTHROPIC_BASE_URL to ONNX proxy\n process.env.ANTHROPIC_BASE_URL = `http://localhost:${onnxProxyPort}`;\n\n // Set dummy ANTHROPIC_API_KEY for proxy (local inference doesn't need key)\n if (!process.env.ANTHROPIC_API_KEY) {\n process.env.ANTHROPIC_API_KEY = 'sk-ant-onnx-local-key';\n }\n\n console.log(`šŸ”— Proxy Mode: ONNX Local Inference`);\n console.log(`šŸ”§ Proxy URL: http://localhost:${onnxProxyPort}`);\n console.log(`šŸ¤– Model: Phi-4-mini-instruct (ONNX)\\n`);\n\n // Wait for proxy to be ready and model to load\n console.log('ā³ Loading ONNX model... (this may take a moment)\\n');\n await new Promise(resolve => setTimeout(resolve, 2000));\n }\n\n private async runStandaloneProxy(): Promise<void> {\n const args = process.argv.slice(3); // Skip 'node', 'cli-proxy.js', 'proxy'\n\n // Parse proxy arguments\n let provider = 'gemini';\n let port = 3000;\n let model: string | undefined;\n\n for (let i = 0; i < args.length; i++) {\n if ((args[i] === '--provider' || args[i] === '-p') && args[i + 1]) {\n provider = args[++i];\n } else if ((args[i] === '--port' || args[i] === '-P') && args[i + 1]) {\n port = parseInt(args[++i]);\n } else if ((args[i] === '--model' || args[i] === '-m') && args[i + 1]) {\n model = args[++i];\n } else if (args[i] === '--help' || args[i] === '-h') {\n this.printProxyHelp();\n process.exit(0);\n }\n }\n\n console.log(`\n╔═══════════════════════════════════════════════════════╗\nā•‘ Agentic Flow - Standalone Anthropic Proxy Server ā•‘\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n`);\n\n if (provider === 'gemini') {\n const apiKey = process.env.GOOGLE_GEMINI_API_KEY;\n if (!apiKey) {\n console.error(`āŒ Error: GOOGLE_GEMINI_API_KEY environment variable required\n\nSet it with:\n export GOOGLE_GEMINI_API_KEY=your-key-here\n`);\n process.exit(1);\n }\n\n const finalModel = model || process.env.COMPLETION_MODEL || 'gemini-2.0-flash-exp';\n\n console.log(`šŸš€ Starting Gemini → Anthropic Proxy\nšŸ“ Port: ${port}\nšŸ¤– Model: ${finalModel}\nšŸ”— Gemini API: https://generativelanguage.googleapis.com\n`);\n\n const { AnthropicToGeminiProxy } = await import('./proxy/anthropic-to-gemini.js');\n const proxy = new AnthropicToGeminiProxy({\n geminiApiKey: apiKey,\n defaultModel: finalModel\n });\n\n proxy.start(port);\n\n console.log(`āœ… Proxy server running!\n\nConfigure Claude Code:\n export ANTHROPIC_BASE_URL=http://localhost:${port}\n export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key\n claude\n\nCost Savings: ~85% vs direct Anthropic API\n`);\n\n } else if (provider === 'openrouter') {\n const apiKey = process.env.OPENROUTER_API_KEY;\n if (!apiKey) {\n console.error(`āŒ Error: OPENROUTER_API_KEY environment variable required\n\nSet it with:\n export OPENROUTER_API_KEY=sk-or-v1-your-key-here\n\nGet your key at: https://openrouter.ai/keys\n`);\n process.exit(1);\n }\n\n const finalModel = model || process.env.COMPLETION_MODEL || 'deepseek/deepseek-chat';\n\n console.log(`šŸš€ Starting OpenRouter → Anthropic Proxy\nšŸ“ Port: ${port}\nšŸ¤– Model: ${finalModel}\nšŸ”— OpenRouter API: https://openrouter.ai/api/v1\n`);\n\n const { AnthropicToOpenRouterProxy } = await import('./proxy/anthropic-to-openrouter.js');\n const proxy = new AnthropicToOpenRouterProxy({\n openrouterApiKey: apiKey,\n defaultModel: finalModel\n });\n\n proxy.start(port);\n\n console.log(`āœ… Proxy server running!\n\nConfigure Claude Code:\n export ANTHROPIC_BASE_URL=http://localhost:${port}\n export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key\n claude\n\nCost Savings: ~90% vs direct Anthropic API\nPopular Models:\n - openai/gpt-4o-mini (fast, cheap)\n - anthropic/claude-3.5-sonnet (via OpenRouter)\n - meta-llama/llama-3.1-405b-instruct (OSS)\n`);\n } else {\n console.error(`āŒ Error: Invalid provider \"${provider}\". Must be \"gemini\" or \"openrouter\"`);\n process.exit(1);\n }\n\n // Keep process running\n process.on('SIGINT', () => {\n console.log('\\n\\nšŸ‘‹ Shutting down proxy server...');\n process.exit(0);\n });\n\n // Keep alive\n await new Promise(() => {});\n }\n\n private printProxyHelp(): void {\n console.log(`\nAgentic Flow - Standalone Anthropic Proxy Server\n\nUSAGE:\n npx agentic-flow proxy [OPTIONS]\n\nOPTIONS:\n --provider, -p <provider> Provider (gemini, openrouter) [default: gemini]\n --port, -P <port> Port number [default: 3000]\n --model, -m <model> Model to use (provider-specific)\n --help, -h Show this help\n\nENVIRONMENT VARIABLES:\n GOOGLE_GEMINI_API_KEY Required for Gemini\n OPENROUTER_API_KEY Required for OpenRouter\n COMPLETION_MODEL Default model (optional)\n\nEXAMPLES:\n # Start Gemini proxy\n npx agentic-flow proxy --provider gemini --port 3000\n\n # Start OpenRouter proxy with GPT-4o-mini\n npx agentic-flow proxy --provider openrouter --model \"openai/gpt-4o-mini\"\n\n # Use with Claude Code\n export ANTHROPIC_BASE_URL=http://localhost:3000\n export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key\n claude\n`);\n }\n\n private async runQuicProxy(): Promise<void> {\n const args = process.argv.slice(3); // Skip 'node', 'cli-proxy.js', 'quic'\n\n // Parse QUIC arguments\n let port = parseInt(process.env.QUIC_PORT || '4433');\n let certPath = process.env.QUIC_CERT_PATH;\n let keyPath = process.env.QUIC_KEY_PATH;\n\n for (let i = 0; i < args.length; i++) {\n if ((args[i] === '--port' || args[i] === '-P') && args[i + 1]) {\n port = parseInt(args[++i]);\n } else if ((args[i] === '--cert' || args[i] === '-c') && args[i + 1]) {\n certPath = args[++i];\n } else if ((args[i] === '--key' || args[i] === '-k') && args[i + 1]) {\n keyPath = args[++i];\n } else if (args[i] === '--help' || args[i] === '-h') {\n this.printQuicHelp();\n process.exit(0);\n }\n }\n\n console.log(`\n╔═══════════════════════════════════════════════════════╗\nā•‘ Agentic Flow - QUIC Transport Proxy Server ā•‘\nā•‘ Ultra-Low Latency Agent Communication ā•‘\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n`);\n\n console.log(`šŸš€ Starting QUIC Transport Server\nšŸ“ Port: ${port}\nšŸ” Protocol: QUIC (UDP-based, TLS 1.3 encrypted)\n⚔ Performance: 50-70% faster than TCP\n`);\n\n if (certPath && keyPath) {\n console.log(`šŸ”’ TLS Certificates:\n Cert: ${certPath}\n Key: ${keyPath}\n`);\n } else {\n console.log(`āš ļø Warning: No TLS certificates specified, using development certificates\n Set QUIC_CERT_PATH and QUIC_KEY_PATH for production use\n`);\n }\n\n // Import and start QUIC proxy\n const { spawn } = await import('child_process');\n const { resolve } = await import('path');\n const { fileURLToPath } = await import('url');\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n const quicProxyPath = resolve(__dirname, './proxy/quic-proxy.js');\n\n const env = { ...process.env };\n if (certPath) env.QUIC_CERT_PATH = certPath;\n if (keyPath) env.QUIC_KEY_PATH = keyPath;\n env.QUIC_PORT = port.toString();\n\n const proc = spawn('node', [quicProxyPath], {\n stdio: 'inherit',\n env: env as NodeJS.ProcessEnv\n });\n\n console.log(`āœ… QUIC server running on UDP port ${port}!\n\nFeatures:\n • 0-RTT connection establishment\n • 100+ concurrent streams per connection\n • Built-in TLS 1.3 encryption\n • Connection migration support\n • Automatic packet loss recovery\n\nUse with agents:\n import { QuicTransport } from 'agentic-flow/transport/quic';\n const transport = new QuicTransport({ port: ${port} });\n await transport.connect();\n\nPress Ctrl+C to stop...\n`);\n\n proc.on('exit', (code) => {\n console.log(`\\nšŸ‘‹ QUIC server stopped (exit code: ${code})`);\n process.exit(code || 0);\n });\n\n process.on('SIGINT', () => {\n console.log('\\n\\nšŸ‘‹ Shutting down QUIC server...');\n proc.kill('SIGINT');\n });\n\n process.on('SIGTERM', () => proc.kill('SIGTERM'));\n }\n\n private printQuicHelp(): void {\n console.log(`\nAgentic Flow - QUIC Transport Proxy Server\n\nUSAGE:\n npx agentic-flow quic [OPTIONS]\n\nOPTIONS:\n --port, -P <port> Port number [default: 4433]\n --cert, -c <path> TLS certificate path\n --key, -k <path> TLS private key path\n --help, -h Show this help\n\nENVIRONMENT VARIABLES:\n QUIC_PORT QUIC server port (default: 4433)\n QUIC_CERT_PATH Path to TLS certificate\n QUIC_KEY_PATH Path to TLS private key\n\nEXAMPLES:\n # Start QUIC server (development mode)\n npx agentic-flow quic\n\n # Start with custom port\n npx agentic-flow quic --port 5443\n\n # Start with production certificates\n npx agentic-flow quic --cert ./certs/cert.pem --key ./certs/key.pem\n\n # Use via npm scripts\n npm run proxy:quic # Start QUIC proxy\n npm run test:quic:wasm # Test WASM bindings\n\nPROGRAMMATIC USAGE:\n import { QuicTransport } from 'agentic-flow/transport/quic';\n\n const transport = new QuicTransport({\n host: 'localhost',\n port: 4433,\n maxConcurrentStreams: 100\n });\n\n await transport.connect();\n await transport.send({ type: 'task', data: { ... } });\n\nPERFORMANCE:\n • 50-70% faster than TCP-based protocols\n • 0-RTT reconnection (instant resume)\n • 100+ concurrent streams per connection\n • Built-in TLS 1.3 encryption\n • Survives network changes (WiFi ↔ cellular)\n`);\n }\n\n private async runAgent(options: any, useOpenRouter: boolean, useGemini: boolean, useONNX: boolean = false, useRequesty: boolean = false): Promise<void> {\n const agentName = options.agent || process.env.AGENT || '';\n const task = options.task || process.env.TASK || '';\n\n if (!agentName) {\n console.error('āŒ Error: --agent required');\n this.printHelp();\n process.exit(1);\n }\n\n if (!task) {\n console.error('āŒ Error: --task required');\n this.printHelp();\n process.exit(1);\n }\n\n // Set PROVIDER environment variable if --provider flag is used\n if (options.provider) {\n process.env.PROVIDER = options.provider;\n }\n\n // Check for API key (unless using ONNX)\n const isOnnx = options.provider === 'onnx' || process.env.USE_ONNX === 'true' || process.env.PROVIDER === 'onnx';\n\n if (!isOnnx && !useOpenRouter && !useGemini && !useRequesty && !process.env.ANTHROPIC_API_KEY) {\n console.error('\\nāŒ Error: ANTHROPIC_API_KEY is required\\n');\n console.error('Please set your API key:');\n console.error(' export ANTHROPIC_API_KEY=sk-ant-xxxxx\\n');\n console.error('Or use alternative providers:');\n console.error(' --provider openrouter (requires OPENROUTER_API_KEY)');\n console.error(' --provider gemini (requires GOOGLE_GEMINI_API_KEY)');\n console.error(' --provider onnx (free local inference)\\n');\n process.exit(1);\n }\n\n\n if (!isOnnx && useOpenRouter && !process.env.OPENROUTER_API_KEY) {\n console.error('\\nāŒ Error: OPENROUTER_API_KEY is required for OpenRouter\\n');\n console.error('Please set your API key:');\n console.error(' export OPENROUTER_API_KEY=sk-or-v1-xxxxx\\n');\n console.error('Or use alternative providers:');\n console.error(' --provider anthropic (requires ANTHROPIC_API_KEY)');\n console.error(' --provider gemini (requires GOOGLE_GEMINI_API_KEY)');\n console.error(' --provider onnx (free local inference)\\n');\n process.exit(1);\n }\n\n if (!isOnnx && useGemini && !process.env.GOOGLE_GEMINI_API_KEY) {\n console.error('\\nāŒ Error: GOOGLE_GEMINI_API_KEY is required for Gemini\\n');\n console.error('Please set your API key:');\n console.error(' export GOOGLE_GEMINI_API_KEY=xxxxx\\n');\n console.error('Or use alternative providers:');\n console.error(' --provider anthropic (requires ANTHROPIC_API_KEY)');\n console.error(' --provider openrouter (requires OPENROUTER_API_KEY)');\n console.error(' --provider onnx (free local inference)\\n');\n process.exit(1);\n }\n\n const agent = getAgent(agentName);\n if (!agent) {\n const available = listAgents();\n console.error(`\\nāŒ Agent '${agentName}' not found.\\n`);\n console.error('Available agents:');\n available.slice(0, 20).forEach(a => {\n console.error(` • ${a.name}: ${a.description.substring(0, 80)}...`);\n });\n if (available.length > 20) {\n console.error(` ... and ${available.length - 20} more (use --list to see all)`);\n }\n process.exit(1);\n }\n\n console.log(`\\nšŸ¤– Agent: ${agent.name}`);\n console.log(`šŸ“ Description: ${agent.description}\\n`);\n console.log(`šŸŽÆ Task: ${task}\\n`);\n\n if (useOpenRouter) {\n const model = options.model || process.env.COMPLETION_MODEL || 'deepseek/deepseek-chat';\n console.log(`šŸ”§ Provider: OpenRouter (via proxy)`);\n console.log(`šŸ”§ Model: ${model}`);\n\n // Show tool capability information\n const capabilities = detectModelCapabilities(model);\n if (capabilities.requiresEmulation) {\n console.log(`āš™ļø Tool Emulation: ${capabilities.emulationStrategy.toUpperCase()} pattern`);\n console.log(`šŸ“Š Note: This model uses prompt-based tool emulation`);\n console.log(` Tools are handled by Claude Agent SDK (limited to SDK tools)`);\n }\n console.log('');\n } else if (useGemini) {\n const model = options.model || 'gemini-2.0-flash-exp';\n console.log(`šŸ”§ Provider: Google Gemini`);\n console.log(`šŸ”§ Model: ${model}\\n`);\n } else if (options.provider === 'onnx' || process.env.USE_ONNX === 'true' || process.env.PROVIDER === 'onnx') {\n console.log(`šŸ”§ Provider: ONNX Local (Phi-4-mini)`);\n console.log(`šŸ’¾ Free local inference - no API costs`);\n if (process.env.ONNX_OPTIMIZED === 'true') {\n console.log(`⚔ Optimizations: Context pruning, prompt optimization`);\n }\n console.log('');\n }\n\n console.log('ā³ Running...\\n');\n\n // Try Agent Booster pre-processing if enabled\n if (options.agentBooster || process.env.AGENTIC_FLOW_AGENT_BOOSTER === 'true') {\n const preprocessor = new AgentBoosterPreprocessor({\n confidenceThreshold: options.boosterThreshold || parseFloat(process.env.AGENTIC_FLOW_BOOSTER_THRESHOLD || '0.7')\n });\n\n console.log('⚔ Agent Booster: Analyzing task for pattern matching opportunities...\\n');\n\n const intent = preprocessor.detectIntent(task);\n\n if (intent) {\n console.log(`šŸŽÆ Detected intent: ${intent.type}`);\n if (intent.filePath) {\n console.log(`šŸ“„ Target file: ${intent.filePath}`);\n }\n console.log('šŸ”§ Attempting Agent Booster pre-processing...\\n');\n\n const result = await preprocessor.tryApply(intent);\n\n if (result.success) {\n console.log(`āœ… Agent Booster Success!\\n`);\n console.log(`⚔ Method: ${result.method}`);\n console.log(`ā±ļø Latency: ${result.latency}ms`);\n console.log(`šŸŽÆ Confidence: ${((result.confidence || 0) * 100).toFixed(1)}%`);\n console.log(`šŸ“Š Strategy: ${result.strategy}`);\n console.log(`\\nāœ… File updated successfully!\\n`);\n console.log('═══════════════════════════════════════\\n');\n console.log(result.output || 'Edit applied');\n console.log('\\n═══════════════════════════════════════\\n');\n\n logger.info('Agent Booster completed', {\n agent: agentName,\n latency: result.latency,\n confidence: result.confidence,\n strategy: result.strategy\n });\n\n return; // Skip LLM execution\n } else {\n console.log(`āš ļø Agent Booster: ${result.reason || 'Low confidence'}`);\n console.log(`šŸ”„ Falling back to LLM agent...\\n`);\n }\n } else {\n console.log('ā„¹ļø No code editing pattern detected, using LLM agent...\\n');\n }\n }\n\n const streamHandler = options.stream ? (chunk: string) => process.stdout.write(chunk) : undefined;\n\n // FIXED: Use claudeAgentDirect (no Claude Code dependency) instead of claudeAgent\n // This allows agentic-flow to work standalone in Docker/CI/CD without Claude Code\n // BUG FIX: Don't pass Anthropic model names to non-Anthropic providers\n const modelForAgent = useGemini || useOpenRouter || useONNX || useRequesty\n ? (options.model?.startsWith('claude') ? undefined : options.model)\n : options.model;\n\n const result = await claudeAgentDirect(agent, task, streamHandler, modelForAgent);\n\n if (!options.stream) {\n console.log('\\nāœ… Completed!\\n');\n console.log('═══════════════════════════════════════\\n');\n console.log(result.output);\n console.log('\\n═══════════════════════════════════════\\n');\n }\n\n logger.info('Agent completed', {\n agent: agentName,\n outputLength: result.output.length,\n provider: useOpenRouter ? 'openrouter' : useGemini ? 'gemini' : 'anthropic'\n });\n }\n\n private listAgents(): void {\n const agents = listAgents();\n console.log(`\\nšŸ“¦ Available Agents (${agents.length} total)\\n`);\n\n const grouped = new Map<string, typeof agents>();\n agents.forEach(agent => {\n const parts = agent.filePath.split('/');\n const category = parts[parts.length - 2] || 'other';\n if (!grouped.has(category)) {\n grouped.set(category, []);\n }\n grouped.get(category)!.push(agent);\n });\n\n Array.from(grouped.entries())\n .sort(([a], [b]) => a.localeCompare(b))\n .forEach(([category, categoryAgents]) => {\n console.log(`\\n${category.toUpperCase()}:`);\n categoryAgents.forEach(agent => {\n console.log(` ${agent.name.padEnd(30)} ${agent.description.substring(0, 80)}`);\n });\n });\n\n console.log(`\\nUsage:`);\n console.log(` npx agentic-flow --agent <name> --task \"Your task\"\\n`);\n }\n\n private printHelp(): void {\n console.log(`\nšŸ¤– Agentic Flow v${VERSION} - AI Agent Orchestration with Multi-Provider Support\n\nNEW IN v1.9.4: Enterprise provider fallback & dynamic switching for long-running agents\nāœ… Automatic failover āœ… Circuit breaker āœ… Cost optimization āœ… Health monitoring\n\nUSAGE:\n npx agentic-flow [COMMAND] [OPTIONS]\n\nCOMMANDS:\n config [subcommand] Manage environment configuration (interactive wizard)\n mcp <command> [server] Manage MCP servers (start, stop, status, list)\n agent <command> Agent management (list, create, info, conflicts)\n federation <command> Federation hub management (start, spawn, stats, test)\n proxy [options] Run standalone proxy server for Claude Code/Cursor\n quic [options] Run QUIC transport proxy for ultra-low latency (50-70% faster)\n claude-code [options] Spawn Claude Code with auto-configured proxy\n --list, -l List all available agents\n --agent, -a <name> Run specific agent mode\n\nCONFIG COMMANDS:\n npx agentic-flow config # Interactive wizard\n npx agentic-flow config set KEY VAL # Set configuration value\n npx agentic-flow config get KEY # Get configuration value\n npx agentic-flow config list # List all configuration\n npx agentic-flow config delete KEY # Delete configuration value\n npx agentic-flow config reset # Reset to defaults\n\nMCP COMMANDS:\n npx agentic-flow mcp start [server] Start MCP server(s)\n npx agentic-flow mcp stop [server] Stop MCP server(s)\n npx agentic-flow mcp status [server] Check MCP server status\n npx agentic-flow mcp list List all available MCP tools\n\n Available servers: claude-flow, flow-nexus, agentic-payments, all (default)\n\nAGENT COMMANDS:\n npx agentic-flow agent list [format] List all agents (summary/detailed/json)\n npx agentic-flow agent create Create new custom agent (interactive)\n npx agentic-flow agent info <name> Show detailed agent information\n npx agentic-flow agent conflicts Check for package/local conflicts\n\nFEDERATION COMMANDS:\n npx agentic-flow federation start Start federation hub server\n npx agentic-flow federation spawn Spawn ephemeral agent\n npx agentic-flow federation stats Show hub statistics\n npx agentic-flow federation status Show federation system status\n npx agentic-flow federation test Run multi-agent collaboration test\n npx agentic-flow federation help Show federation help\n\n Federation enables ephemeral agents (5s-15min lifetime) with persistent memory.\n Hub stores memories permanently; agents access past learnings from dead agents.\n\nOPTIONS:\n --task, -t <task> Task description for agent mode\n --model, -m <model> Model to use (triggers OpenRouter if contains \"/\")\n --provider, -p <name> Provider to use (anthropic, openrouter, gemini, onnx)\n --stream, -s Enable real-time streaming output\n --help, -h Show this help message\n\n API CONFIGURATION:\n --anthropic-key <key> Override ANTHROPIC_API_KEY environment variable\n --openrouter-key <key> Override OPENROUTER_API_KEY environment variable\n --gemini-key <key> Override GOOGLE_GEMINI_API_KEY environment variable\n\n AGENT BEHAVIOR:\n --temperature <0.0-1.0> Sampling temperature (creativity control)\n --max-tokens <number> Maximum tokens in response\n\n DIRECTORY:\n --agents-dir <path> Custom agents directory (default: .claude/agents)\n\n OUTPUT:\n --output <text|json|md> Output format (text/json/markdown)\n --verbose Enable verbose logging for debugging\n\n EXECUTION:\n --timeout <ms> Execution timeout in milliseconds\n --retry Auto-retry on transient errors\n\n MODEL OPTIMIZATION (NEW!):\n --optimize, -O Auto-select best model for agent/task based on priorities\n --priority <type> Optimization priority:\n • quality - Best results (Claude Sonnet 4.5, GPT-4o)\n • balanced - Mix quality/cost (DeepSeek R1, Gemini 2.5 Flash) [default]\n • cost - Cheapest (DeepSeek Chat V3, Llama 3.1 8B)\n • speed - Fastest responses (Gemini 2.5 Flash)\n • privacy - Local only (ONNX Phi-4, no cloud)\n --max-cost <dollars> Maximum cost per task (e.g., 0.001 = $0.001/task budget cap)\n\n Optimization analyzes agent type + task complexity to recommend best model.\n Example savings: DeepSeek R1 costs 85% less than Claude Sonnet 4.5 with similar quality.\n See docs/agentic-flow/benchmarks/MODEL_CAPABILITIES.md for full comparison.\n\nPROVIDER FALLBACK (NEW v1.9.4):\n Enterprise-grade provider fallback for long-running agents with automatic failover,\n circuit breaker, health monitoring, cost tracking, and crash recovery.\n\n Features:\n • Automatic failover between providers (Gemini → Claude → ONNX)\n • Circuit breaker prevents cascading failures (auto-recovery after timeout)\n • Real-time health monitoring (success rate, latency, error tracking)\n • Cost optimization (70% savings using Gemini for simple tasks)\n • Checkpointing for crash recovery (save/restore agent state)\n • Budget controls (hard limits on spending and runtime)\n\n See: docs/PROVIDER-FALLBACK-GUIDE.md for complete documentation\n Example: src/examples/use-provider-fallback.ts\n\nEXAMPLES:\n # MCP Server Management\n npx agentic-flow mcp start # Start all MCP servers\n npx agentic-flow mcp start claude-flow # Start specific server\n npx agentic-flow mcp list # List all 203+ MCP tools\n npx agentic-flow mcp status # Check server status\n\n # Federation Hub Management\n npx agentic-flow federation start # Start hub server (WebSocket)\n npx agentic-flow federation start --port 9443 --db-path ./data/hub.db\n npx agentic-flow federation spawn # Spawn ephemeral agent\n npx agentic-flow federation spawn --tenant acme-corp --lifetime 600\n npx agentic-flow federation stats # Show hub statistics\n npx agentic-flow federation test # Run multi-agent test\n\n # Proxy Server for Claude Code/Cursor\n npx agentic-flow proxy --provider openrouter --port 3000\n npx agentic-flow proxy --provider gemini --port 3001\n\n # QUIC Transport (Ultra-low latency, 50-70% faster than TCP)\n npx agentic-flow quic --port 4433 # Start QUIC server\n npx agentic-flow quic --cert ./certs/cert.pem --key ./certs/key.pem\n npm run proxy:quic # Development mode\n npm run test:quic:wasm # Test WASM bindings\n\n # Claude Code Integration (Auto-start proxy + spawn Claude Code)\n npx agentic-flow claude-code --provider openrouter \"Write a Python function\"\n npx agentic-flow claude-code --provider gemini \"Create a REST API\"\n npx agentic-flow claude-code --provider anthropic \"Help me debug this code\"\n\n # Agent Execution\n npx agentic-flow --list # List all 150+ agents\n npx agentic-flow --agent coder --task \"Create Python hello world\"\n npx agentic-flow --agent coder --task \"Create REST API\" --provider openrouter\n npx agentic-flow --agent coder --task \"Create REST API\" --model \"meta-llama/llama-3.1-8b-instruct\"\n npx agentic-flow --agent coder --task \"Create code\" --provider onnx\n\n # Model Optimization (Auto-select best model)\n npx agentic-flow --agent coder --task \"Build API\" --optimize\n npx agentic-flow --agent coder --task \"Build API\" --optimize --priority cost\n npx agentic-flow --agent reviewer --task \"Security audit\" --optimize --priority quality\n npx agentic-flow --agent coder --task \"Simple function\" --optimize --max-cost 0.001\n\nENVIRONMENT VARIABLES:\n ANTHROPIC_API_KEY Anthropic API key (for Claude models)\n OPENROUTER_API_KEY OpenRouter API key (for alternative models)\n GOOGLE_GEMINI_API_KEY Google Gemini API key (for Gemini models)\n USE_OPENROUTER Set to 'true' to force OpenRouter usage\n USE_GEMINI Set to 'true' to force Gemini usage\n COMPLETION_MODEL Default model for OpenRouter\n AGENTS_DIR Path to agents directory\n PROXY_PORT Proxy server port (default: 3000)\n QUIC_PORT QUIC transport port (default: 4433)\n QUIC_CERT_PATH Path to TLS certificate for QUIC\n QUIC_KEY_PATH Path to TLS private key for QUIC\n\nOPENROUTER MODELS (Best Free Tested):\n āœ… deepseek/deepseek-r1-0528:free (reasoning, 95s/task, RFC validation)\n āœ… deepseek/deepseek-chat-v3.1:free (coding, 21-103s/task, enterprise-grade)\n āœ… meta-llama/llama-3.3-8b-instruct:free (versatile, 4.4s/task, fast coding)\n āœ… openai/gpt-4-turbo (premium, 10.7s/task, no :free needed)\n\n All models above support OpenRouter leaderboard tracking via HTTP-Referer headers.\n See https://openrouter.ai/models for full model catalog.\n\nMCP TOOLS (213+ available):\n • agentic-flow: 7 tools (agent execution, creation, management, model optimization)\n • claude-flow: 101 tools (neural networks, GitHub, workflows, DAA)\n • flow-nexus: 96 cloud tools (sandboxes, distributed swarms, templates)\n • agentic-payments: 6 tools (payment authorization, multi-agent consensus)\n\nOPTIMIZATION BENEFITS:\n šŸ’° Cost Savings: 85-98% cheaper models for same quality tasks\n šŸŽÆ Smart Selection: Agent-aware (coder needs quality ≄85, researcher flexible)\n šŸ“Š 10+ Models: Claude, GPT-4o, Gemini, DeepSeek, Llama, ONNX local\n ⚔ Zero Overhead: <5ms decision time, no API calls during optimization\n\nTWO WAYS TO USE AGENTIC-FLOW:\n\n 1ļøāƒ£ DIRECT AGENT EXECUTION (agentic-flow agents)\n Run agents directly in your terminal with full control:\n\n npx agentic-flow --agent coder --task \"Create Python script\"\n npx agentic-flow --agent researcher --task \"Research AI trends\"\n\n This runs agentic-flow's 80+ specialized agents directly.\n\n 2ļøāƒ£ CLAUDE CODE INTEGRATION (proxy for Claude Code CLI)\n Use Claude Code CLI with OpenRouter/Gemini models via proxy:\n\n # Option A: Auto-spawn Claude Code with proxy (easiest)\n npx agentic-flow claude-code --provider openrouter \"Build API\"\n\n # Option B: Manual proxy setup (advanced)\n Terminal 1 - Start Proxy:\n npx agentic-flow proxy --provider openrouter\n\n Terminal 2 - Configure Claude Code:\n export ANTHROPIC_BASE_URL=\"http://localhost:3000\"\n export ANTHROPIC_API_KEY=\"sk-ant-proxy-dummy-key\"\n export OPENROUTER_API_KEY=\"sk-or-v1-xxxxx\"\n claude # Now uses OpenRouter via proxy\n\n Benefits of proxy mode:\n • 85-99% cost savings vs Claude Sonnet 4.5\n • Access to 100+ models (DeepSeek, Llama, Gemini, etc.)\n • Leaderboard tracking on OpenRouter\n • No code changes to Claude Code itself\n\nQUIC TRANSPORT (Ultra-Low Latency Agent Communication):\n QUIC is a UDP-based protocol offering 50-70% faster connections than TCP.\n\n Performance Benefits:\n • 0-RTT connection establishment - Instant reconnection without handshake delay\n • Stream multiplexing - Send 100+ concurrent messages without blocking\n • Built-in TLS 1.3 security - Encrypted by default\n • Connection migration - Survives network changes (WiFi → cellular)\n • Reduced latency - Perfect for real-time agent coordination\n\n Programmatic Usage (API):\n import { QuicTransport } from 'agentic-flow/transport/quic';\n\n const transport = new QuicTransport({\n host: 'localhost',\n port: 4433,\n maxConcurrentStreams: 100\n });\n\n await transport.connect();\n await transport.send({ type: 'task', data: { ... } });\n\n CLI Usage:\n # Start QUIC server\n npx agentic-flow quic --port 4433\n\n # With custom certificates\n npx agentic-flow quic --cert ./certs/cert.pem --key ./certs/key.pem\n\n # Test WASM bindings\n npm run test:quic:wasm\n\n # Development mode\n npm run proxy:quic:dev\n\n Use Cases:\n • Multi-agent swarm coordination (mesh/hierarchical topologies)\n • High-frequency task distribution across worker agents\n • Real-time state synchronization between agents\n • Low-latency RPC for distributed agent systems\n\nDOCUMENTATION:\n https://github.com/ruvnet/agentic-flow\n https://ruv.io\n `);\n }\n}\n\n// Run CLI\nconst cli = new AgenticFlowCLI();\ncli.start();\n"]}
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Agentic Flow - Standalone Anthropic Proxy Server
4
+ *
5
+ * Run Gemini, OpenRouter, or other providers through an Anthropic-compatible proxy
6
+ * for use with Claude Code, Cursor, and other tools that support ANTHROPIC_BASE_URL
7
+ *
8
+ * Usage:
9
+ * npx agentic-flow proxy --provider gemini --port 3000
10
+ * npx agentic-flow proxy --provider openrouter --model "openai/gpt-4o-mini" --port 3000
11
+ *
12
+ * Then in Claude Code or Cursor:
13
+ * export ANTHROPIC_BASE_URL=http://localhost:3000
14
+ * export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key # Any value works
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=cli-standalone-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-standalone-proxy.d.ts","sourceRoot":"","sources":["../src/cli-standalone-proxy.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
@@ -195,3 +195,4 @@ startProxy(options).catch(error => {
195
195
  console.error('āŒ Fatal error:', error.message);
196
196
  process.exit(1);
197
197
  });
198
+ //# sourceMappingURL=cli-standalone-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-standalone-proxy.js","sourceRoot":"","sources":["../src/cli-standalone-proxy.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/**\n * Agentic Flow - Standalone Anthropic Proxy Server\n *\n * Run Gemini, OpenRouter, or other providers through an Anthropic-compatible proxy\n * for use with Claude Code, Cursor, and other tools that support ANTHROPIC_BASE_URL\n *\n * Usage:\n * npx agentic-flow proxy --provider gemini --port 3000\n * npx agentic-flow proxy --provider openrouter --model \"openai/gpt-4o-mini\" --port 3000\n *\n * Then in Claude Code or Cursor:\n * export ANTHROPIC_BASE_URL=http://localhost:3000\n * export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key # Any value works\n */\n\nimport dotenv from 'dotenv';\nimport { parseArgs } from 'util';\nimport { AnthropicToGeminiProxy } from './proxy/anthropic-to-gemini.js';\nimport { AnthropicToOpenRouterProxy } from './proxy/anthropic-to-openrouter.js';\n\n// Load environment variables\ndotenv.config();\n\ninterface ProxyOptions {\n provider: 'gemini' | 'openrouter';\n port: number;\n model?: string;\n}\n\nfunction parseArguments(): ProxyOptions {\n const { values } = parseArgs({\n options: {\n provider: {\n type: 'string',\n short: 'p',\n default: 'gemini'\n },\n port: {\n type: 'string',\n short: 'P',\n default: '3000'\n },\n model: {\n type: 'string',\n short: 'm'\n },\n help: {\n type: 'boolean',\n short: 'h'\n }\n },\n strict: false,\n allowPositionals: true\n });\n\n if (values.help) {\n console.log(`\nAgentic Flow - Standalone Anthropic Proxy Server\n\nUSAGE:\n npx agentic-flow proxy [OPTIONS]\n\nOPTIONS:\n -p, --provider <provider> Provider to use (gemini, openrouter) [default: gemini]\n -P, --port <port> Port to run proxy on [default: 3000]\n -m, --model <model> Model to use (provider-specific)\n -h, --help Show this help message\n\nENVIRONMENT VARIABLES:\n GOOGLE_GEMINI_API_KEY Required for Gemini provider\n OPENROUTER_API_KEY Required for OpenRouter provider\n COMPLETION_MODEL Default model (optional)\n\nEXAMPLES:\n # Start Gemini proxy on port 3000\n npx agentic-flow proxy --provider gemini --port 3000\n\n # Start OpenRouter proxy with GPT-4o-mini\n npx agentic-flow proxy --provider openrouter --model \"openai/gpt-4o-mini\"\n\n # Use with Claude Code\n export ANTHROPIC_BASE_URL=http://localhost:3000\n export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key\n claude # Claude Code will now use the proxy\n\n # Use with Cursor (when ANTHROPIC_BASE_URL support is added)\n export ANTHROPIC_BASE_URL=http://localhost:3000\n export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key\n`);\n process.exit(0);\n }\n\n const provider = (values.provider || 'gemini') as 'gemini' | 'openrouter';\n const port = parseInt(values.port as string || '3000');\n const model = values.model as string | undefined;\n\n if (!['gemini', 'openrouter'].includes(provider)) {\n console.error(`āŒ Error: Invalid provider \"${provider}\". Must be \"gemini\" or \"openrouter\"`);\n process.exit(1);\n }\n\n if (isNaN(port) || port < 1 || port > 65535) {\n console.error(`āŒ Error: Invalid port \"${values.port}\". Must be 1-65535`);\n process.exit(1);\n }\n\n return { provider, port, model };\n}\n\nasync function startProxy(options: ProxyOptions) {\n console.log(`\n╔═══════════════════════════════════════════════════════╗\nā•‘ Agentic Flow - Standalone Anthropic Proxy Server ā•‘\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n`);\n\n if (options.provider === 'gemini') {\n const apiKey = process.env.GOOGLE_GEMINI_API_KEY;\n if (!apiKey) {\n console.error(`\nāŒ Error: GOOGLE_GEMINI_API_KEY environment variable required\n\nSet it with:\n export GOOGLE_GEMINI_API_KEY=your-key-here\n\nOr create a .env file:\n GOOGLE_GEMINI_API_KEY=your-key-here\n`);\n process.exit(1);\n }\n\n const model = options.model || process.env.COMPLETION_MODEL || 'gemini-2.0-flash-exp';\n\n console.log(`šŸš€ Starting Gemini → Anthropic Proxy\nšŸ“ Port: ${options.port}\nšŸ¤– Model: ${model}\nšŸ”— Gemini API: https://generativelanguage.googleapis.com\n`);\n\n const proxy = new AnthropicToGeminiProxy({\n geminiApiKey: apiKey,\n defaultModel: model\n });\n\n proxy.start(options.port);\n\n console.log(`\nāœ… Proxy server running!\n\nConfigure Claude Code:\n export ANTHROPIC_BASE_URL=http://localhost:${options.port}\n export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key\n claude\n\nConfigure Cursor (when supported):\n Settings → API Keys → Anthropic Base URL: http://localhost:${options.port}\n API Key: sk-ant-proxy-dummy-key\n\nCost Savings: ~85% vs direct Anthropic API\nRate Limits: Gemini free tier = 10 req/min\n`);\n\n } else if (options.provider === 'openrouter') {\n const apiKey = process.env.OPENROUTER_API_KEY;\n if (!apiKey) {\n console.error(`\nāŒ Error: OPENROUTER_API_KEY environment variable required\n\nSet it with:\n export OPENROUTER_API_KEY=sk-or-v1-your-key-here\n\nGet your key at: https://openrouter.ai/keys\n`);\n process.exit(1);\n }\n\n const model = options.model || process.env.COMPLETION_MODEL || 'deepseek/deepseek-chat';\n\n console.log(`šŸš€ Starting OpenRouter → Anthropic Proxy\nšŸ“ Port: ${options.port}\nšŸ¤– Model: ${model}\nšŸ”— OpenRouter API: https://openrouter.ai/api/v1\n`);\n\n const proxy = new AnthropicToOpenRouterProxy({\n openrouterApiKey: apiKey,\n defaultModel: model\n });\n\n proxy.start(options.port);\n\n console.log(`\nāœ… Proxy server running!\n\nConfigure Claude Code:\n export ANTHROPIC_BASE_URL=http://localhost:${options.port}\n export ANTHROPIC_API_KEY=sk-ant-proxy-dummy-key\n claude\n\nConfigure Cursor (when supported):\n Settings → API Keys → Anthropic Base URL: http://localhost:${options.port}\n API Key: sk-ant-proxy-dummy-key\n\nCost Savings: ~90% vs direct Anthropic API\nPopular Models:\n - openai/gpt-4o-mini (fast, cheap)\n - anthropic/claude-3.5-sonnet (via OpenRouter)\n - meta-llama/llama-3.1-405b-instruct (OSS)\n`);\n }\n\n // Keep process running\n process.on('SIGINT', () => {\n console.log('\\n\\nšŸ‘‹ Shutting down proxy server...');\n process.exit(0);\n });\n}\n\n// Main execution\nconst options = parseArguments();\nstartProxy(options).catch(error => {\n console.error('āŒ Fatal error:', error.message);\n process.exit(1);\n});\n"]}