agentic-flow 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/.claude/agents/MIGRATION_SUMMARY.md +222 -0
  2. package/.claude/agents/README.md +89 -0
  3. package/.claude/agents/analysis/code-analyzer.md +209 -0
  4. package/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  5. package/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  6. package/.claude/agents/base-template-generator.md +42 -0
  7. package/.claude/agents/consensus/README.md +253 -0
  8. package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
  9. package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
  10. package/.claude/agents/consensus/gossip-coordinator.md +63 -0
  11. package/.claude/agents/consensus/performance-benchmarker.md +851 -0
  12. package/.claude/agents/consensus/quorum-manager.md +823 -0
  13. package/.claude/agents/consensus/raft-manager.md +63 -0
  14. package/.claude/agents/consensus/security-manager.md +622 -0
  15. package/.claude/agents/core/coder.md +211 -0
  16. package/.claude/agents/core/planner.md +116 -0
  17. package/.claude/agents/core/researcher.md +136 -0
  18. package/.claude/agents/core/reviewer.md +272 -0
  19. package/.claude/agents/core/tester.md +266 -0
  20. package/.claude/agents/data/ml/data-ml-model.md +193 -0
  21. package/.claude/agents/development/backend/dev-backend-api.md +142 -0
  22. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  23. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  24. package/.claude/agents/flow-nexus/app-store.md +88 -0
  25. package/.claude/agents/flow-nexus/authentication.md +69 -0
  26. package/.claude/agents/flow-nexus/challenges.md +81 -0
  27. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  28. package/.claude/agents/flow-nexus/payments.md +83 -0
  29. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  30. package/.claude/agents/flow-nexus/swarm.md +76 -0
  31. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  32. package/.claude/agents/flow-nexus/workflow.md +84 -0
  33. package/.claude/agents/github/code-review-swarm.md +538 -0
  34. package/.claude/agents/github/github-modes.md +173 -0
  35. package/.claude/agents/github/issue-tracker.md +319 -0
  36. package/.claude/agents/github/multi-repo-swarm.md +553 -0
  37. package/.claude/agents/github/pr-manager.md +191 -0
  38. package/.claude/agents/github/project-board-sync.md +509 -0
  39. package/.claude/agents/github/release-manager.md +367 -0
  40. package/.claude/agents/github/release-swarm.md +583 -0
  41. package/.claude/agents/github/repo-architect.md +398 -0
  42. package/.claude/agents/github/swarm-issue.md +573 -0
  43. package/.claude/agents/github/swarm-pr.md +428 -0
  44. package/.claude/agents/github/sync-coordinator.md +452 -0
  45. package/.claude/agents/github/workflow-automation.md +635 -0
  46. package/.claude/agents/goal/agent.md +816 -0
  47. package/.claude/agents/goal/goal-planner.md +73 -0
  48. package/.claude/agents/optimization/README.md +250 -0
  49. package/.claude/agents/optimization/benchmark-suite.md +665 -0
  50. package/.claude/agents/optimization/load-balancer.md +431 -0
  51. package/.claude/agents/optimization/performance-monitor.md +672 -0
  52. package/.claude/agents/optimization/resource-allocator.md +674 -0
  53. package/.claude/agents/optimization/topology-optimizer.md +808 -0
  54. package/.claude/agents/payments/agentic-payments.md +126 -0
  55. package/.claude/agents/sparc/architecture.md +472 -0
  56. package/.claude/agents/sparc/pseudocode.md +318 -0
  57. package/.claude/agents/sparc/refinement.md +525 -0
  58. package/.claude/agents/sparc/specification.md +276 -0
  59. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  60. package/.claude/agents/sublinear/consensus-coordinator.md +338 -0
  61. package/.claude/agents/sublinear/matrix-optimizer.md +185 -0
  62. package/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
  63. package/.claude/agents/sublinear/performance-optimizer.md +368 -0
  64. package/.claude/agents/sublinear/trading-predictor.md +246 -0
  65. package/.claude/agents/swarm/README.md +190 -0
  66. package/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  67. package/.claude/agents/swarm/hierarchical-coordinator.md +256 -0
  68. package/.claude/agents/swarm/mesh-coordinator.md +392 -0
  69. package/.claude/agents/templates/automation-smart-agent.md +205 -0
  70. package/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  71. package/.claude/agents/templates/github-pr-manager.md +177 -0
  72. package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  73. package/.claude/agents/templates/memory-coordinator.md +187 -0
  74. package/.claude/agents/templates/migration-plan.md +746 -0
  75. package/.claude/agents/templates/orchestrator-task.md +139 -0
  76. package/.claude/agents/templates/performance-analyzer.md +199 -0
  77. package/.claude/agents/templates/sparc-coordinator.md +183 -0
  78. package/.claude/agents/test-neural.md +14 -0
  79. package/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  80. package/.claude/agents/testing/validation/production-validator.md +395 -0
  81. package/.claude/commands/agents/README.md +10 -0
  82. package/.claude/commands/agents/agent-capabilities.md +21 -0
  83. package/.claude/commands/agents/agent-coordination.md +28 -0
  84. package/.claude/commands/agents/agent-spawning.md +28 -0
  85. package/.claude/commands/agents/agent-types.md +26 -0
  86. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  87. package/.claude/commands/analysis/README.md +9 -0
  88. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  89. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  90. package/.claude/commands/analysis/performance-report.md +25 -0
  91. package/.claude/commands/analysis/token-efficiency.md +45 -0
  92. package/.claude/commands/analysis/token-usage.md +25 -0
  93. package/.claude/commands/automation/README.md +9 -0
  94. package/.claude/commands/automation/auto-agent.md +122 -0
  95. package/.claude/commands/automation/self-healing.md +106 -0
  96. package/.claude/commands/automation/session-memory.md +90 -0
  97. package/.claude/commands/automation/smart-agents.md +73 -0
  98. package/.claude/commands/automation/smart-spawn.md +25 -0
  99. package/.claude/commands/automation/workflow-select.md +25 -0
  100. package/.claude/commands/claude-flow-help.md +103 -0
  101. package/.claude/commands/claude-flow-memory.md +107 -0
  102. package/.claude/commands/claude-flow-swarm.md +205 -0
  103. package/.claude/commands/coordination/README.md +9 -0
  104. package/.claude/commands/coordination/agent-spawn.md +25 -0
  105. package/.claude/commands/coordination/init.md +44 -0
  106. package/.claude/commands/coordination/orchestrate.md +43 -0
  107. package/.claude/commands/coordination/spawn.md +45 -0
  108. package/.claude/commands/coordination/swarm-init.md +85 -0
  109. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  110. package/.claude/commands/flow-nexus/app-store.md +124 -0
  111. package/.claude/commands/flow-nexus/challenges.md +120 -0
  112. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  113. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  114. package/.claude/commands/flow-nexus/payments.md +116 -0
  115. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  116. package/.claude/commands/flow-nexus/swarm.md +87 -0
  117. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  118. package/.claude/commands/flow-nexus/workflow.md +115 -0
  119. package/.claude/commands/github/README.md +11 -0
  120. package/.claude/commands/github/code-review-swarm.md +514 -0
  121. package/.claude/commands/github/code-review.md +25 -0
  122. package/.claude/commands/github/github-modes.md +147 -0
  123. package/.claude/commands/github/github-swarm.md +121 -0
  124. package/.claude/commands/github/issue-tracker.md +292 -0
  125. package/.claude/commands/github/issue-triage.md +25 -0
  126. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  127. package/.claude/commands/github/pr-enhance.md +26 -0
  128. package/.claude/commands/github/pr-manager.md +170 -0
  129. package/.claude/commands/github/project-board-sync.md +471 -0
  130. package/.claude/commands/github/release-manager.md +338 -0
  131. package/.claude/commands/github/release-swarm.md +544 -0
  132. package/.claude/commands/github/repo-analyze.md +25 -0
  133. package/.claude/commands/github/repo-architect.md +367 -0
  134. package/.claude/commands/github/swarm-issue.md +482 -0
  135. package/.claude/commands/github/swarm-pr.md +285 -0
  136. package/.claude/commands/github/sync-coordinator.md +301 -0
  137. package/.claude/commands/github/workflow-automation.md +442 -0
  138. package/.claude/commands/hive-mind/README.md +17 -0
  139. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  140. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  141. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  142. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  143. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  144. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  145. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  146. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  147. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  148. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  149. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  150. package/.claude/commands/hooks/README.md +11 -0
  151. package/.claude/commands/hooks/overview.md +58 -0
  152. package/.claude/commands/hooks/post-edit.md +117 -0
  153. package/.claude/commands/hooks/post-task.md +112 -0
  154. package/.claude/commands/hooks/pre-edit.md +113 -0
  155. package/.claude/commands/hooks/pre-task.md +111 -0
  156. package/.claude/commands/hooks/session-end.md +118 -0
  157. package/.claude/commands/hooks/setup.md +103 -0
  158. package/.claude/commands/memory/README.md +9 -0
  159. package/.claude/commands/memory/memory-persist.md +25 -0
  160. package/.claude/commands/memory/memory-search.md +25 -0
  161. package/.claude/commands/memory/memory-usage.md +25 -0
  162. package/.claude/commands/memory/neural.md +47 -0
  163. package/.claude/commands/memory/usage.md +46 -0
  164. package/.claude/commands/monitoring/README.md +9 -0
  165. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  166. package/.claude/commands/monitoring/agents.md +44 -0
  167. package/.claude/commands/monitoring/real-time-view.md +25 -0
  168. package/.claude/commands/monitoring/status.md +46 -0
  169. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  170. package/.claude/commands/optimization/README.md +9 -0
  171. package/.claude/commands/optimization/auto-topology.md +62 -0
  172. package/.claude/commands/optimization/cache-manage.md +25 -0
  173. package/.claude/commands/optimization/parallel-execute.md +25 -0
  174. package/.claude/commands/optimization/parallel-execution.md +50 -0
  175. package/.claude/commands/optimization/topology-optimize.md +25 -0
  176. package/.claude/commands/pair/README.md +261 -0
  177. package/.claude/commands/pair/commands.md +546 -0
  178. package/.claude/commands/pair/config.md +510 -0
  179. package/.claude/commands/pair/examples.md +512 -0
  180. package/.claude/commands/pair/modes.md +348 -0
  181. package/.claude/commands/pair/session.md +407 -0
  182. package/.claude/commands/pair/start.md +209 -0
  183. package/.claude/commands/sparc/analyzer.md +52 -0
  184. package/.claude/commands/sparc/architect.md +53 -0
  185. package/.claude/commands/sparc/ask.md +97 -0
  186. package/.claude/commands/sparc/batch-executor.md +54 -0
  187. package/.claude/commands/sparc/code.md +89 -0
  188. package/.claude/commands/sparc/coder.md +54 -0
  189. package/.claude/commands/sparc/debug.md +83 -0
  190. package/.claude/commands/sparc/debugger.md +54 -0
  191. package/.claude/commands/sparc/designer.md +53 -0
  192. package/.claude/commands/sparc/devops.md +109 -0
  193. package/.claude/commands/sparc/docs-writer.md +80 -0
  194. package/.claude/commands/sparc/documenter.md +54 -0
  195. package/.claude/commands/sparc/innovator.md +54 -0
  196. package/.claude/commands/sparc/integration.md +83 -0
  197. package/.claude/commands/sparc/mcp.md +117 -0
  198. package/.claude/commands/sparc/memory-manager.md +54 -0
  199. package/.claude/commands/sparc/optimizer.md +54 -0
  200. package/.claude/commands/sparc/orchestrator.md +132 -0
  201. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
  202. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
  203. package/.claude/commands/sparc/researcher.md +54 -0
  204. package/.claude/commands/sparc/reviewer.md +54 -0
  205. package/.claude/commands/sparc/security-review.md +80 -0
  206. package/.claude/commands/sparc/sparc-modes.md +174 -0
  207. package/.claude/commands/sparc/sparc.md +111 -0
  208. package/.claude/commands/sparc/spec-pseudocode.md +80 -0
  209. package/.claude/commands/sparc/supabase-admin.md +348 -0
  210. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  211. package/.claude/commands/sparc/tdd.md +54 -0
  212. package/.claude/commands/sparc/tester.md +54 -0
  213. package/.claude/commands/sparc/tutorial.md +79 -0
  214. package/.claude/commands/sparc/workflow-manager.md +54 -0
  215. package/.claude/commands/sparc.md +166 -0
  216. package/.claude/commands/stream-chain/pipeline.md +121 -0
  217. package/.claude/commands/stream-chain/run.md +70 -0
  218. package/.claude/commands/swarm/README.md +15 -0
  219. package/.claude/commands/swarm/analysis.md +95 -0
  220. package/.claude/commands/swarm/development.md +96 -0
  221. package/.claude/commands/swarm/examples.md +168 -0
  222. package/.claude/commands/swarm/maintenance.md +102 -0
  223. package/.claude/commands/swarm/optimization.md +117 -0
  224. package/.claude/commands/swarm/research.md +136 -0
  225. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  226. package/.claude/commands/swarm/swarm-background.md +8 -0
  227. package/.claude/commands/swarm/swarm-init.md +19 -0
  228. package/.claude/commands/swarm/swarm-modes.md +8 -0
  229. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  230. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  231. package/.claude/commands/swarm/swarm-status.md +8 -0
  232. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  233. package/.claude/commands/swarm/swarm.md +27 -0
  234. package/.claude/commands/swarm/testing.md +131 -0
  235. package/.claude/commands/training/README.md +9 -0
  236. package/.claude/commands/training/model-update.md +25 -0
  237. package/.claude/commands/training/neural-patterns.md +74 -0
  238. package/.claude/commands/training/neural-train.md +25 -0
  239. package/.claude/commands/training/pattern-learn.md +25 -0
  240. package/.claude/commands/training/specialization.md +63 -0
  241. package/.claude/commands/truth/start.md +143 -0
  242. package/.claude/commands/verify/check.md +50 -0
  243. package/.claude/commands/verify/start.md +128 -0
  244. package/.claude/commands/workflows/README.md +9 -0
  245. package/.claude/commands/workflows/development.md +78 -0
  246. package/.claude/commands/workflows/research.md +63 -0
  247. package/.claude/commands/workflows/workflow-create.md +25 -0
  248. package/.claude/commands/workflows/workflow-execute.md +25 -0
  249. package/.claude/commands/workflows/workflow-export.md +25 -0
  250. package/.claude/helpers/checkpoint-manager.sh +251 -0
  251. package/.claude/helpers/github-safe.js +106 -0
  252. package/.claude/helpers/github-setup.sh +28 -0
  253. package/.claude/helpers/quick-start.sh +19 -0
  254. package/.claude/helpers/setup-mcp.sh +18 -0
  255. package/.claude/helpers/standard-checkpoint-hooks.sh +179 -0
  256. package/.claude/mcp.json +13 -0
  257. package/.claude/settings-backup.json +130 -0
  258. package/.claude/settings-optimized.json +116 -0
  259. package/.claude/settings-simple.json +78 -0
  260. package/.claude/settings.json +114 -0
  261. package/.claude/settings.local.json +14 -0
  262. package/README.md +1280 -0
  263. package/dist/agents/claudeAgent.js +73 -0
  264. package/dist/agents/claudeFlowAgent.js +115 -0
  265. package/dist/agents/codeReviewAgent.js +34 -0
  266. package/dist/agents/dataAgent.js +34 -0
  267. package/dist/agents/directApiAgent.js +260 -0
  268. package/dist/agents/webResearchAgent.js +35 -0
  269. package/dist/cli/mcp.js +135 -0
  270. package/dist/cli-proxy.js +246 -0
  271. package/dist/cli.js +158 -0
  272. package/dist/config/claudeFlow.js +67 -0
  273. package/dist/config/tools.js +33 -0
  274. package/dist/coordination/parallelSwarm.js +226 -0
  275. package/dist/examples/multi-agent-orchestration.js +45 -0
  276. package/dist/examples/parallel-swarm-deployment.js +171 -0
  277. package/dist/examples/use-goal-planner.js +52 -0
  278. package/dist/health.js +46 -0
  279. package/dist/index-with-proxy.js +101 -0
  280. package/dist/index.js +167 -0
  281. package/dist/mcp/claudeFlowSdkServer.js +202 -0
  282. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +198 -0
  283. package/dist/mcp/fastmcp/servers/http-streaming-updated.js +421 -0
  284. package/dist/mcp/fastmcp/servers/poc-stdio.js +82 -0
  285. package/dist/mcp/fastmcp/servers/stdio-full.js +421 -0
  286. package/dist/mcp/fastmcp/tools/agent/add-agent.js +107 -0
  287. package/dist/mcp/fastmcp/tools/agent/add-command.js +117 -0
  288. package/dist/mcp/fastmcp/tools/agent/execute.js +56 -0
  289. package/dist/mcp/fastmcp/tools/agent/list.js +82 -0
  290. package/dist/mcp/fastmcp/tools/agent/parallel.js +63 -0
  291. package/dist/mcp/fastmcp/tools/memory/retrieve.js +38 -0
  292. package/dist/mcp/fastmcp/tools/memory/search.js +41 -0
  293. package/dist/mcp/fastmcp/tools/memory/store.js +56 -0
  294. package/dist/mcp/fastmcp/tools/swarm/init.js +41 -0
  295. package/dist/mcp/fastmcp/tools/swarm/orchestrate.js +47 -0
  296. package/dist/mcp/fastmcp/tools/swarm/spawn.js +40 -0
  297. package/dist/mcp/fastmcp/types/index.js +2 -0
  298. package/dist/proxy/anthropic-to-openrouter.js +246 -0
  299. package/dist/router/providers/anthropic.js +89 -0
  300. package/dist/router/providers/onnx-local-optimized.js +167 -0
  301. package/dist/router/providers/onnx-local.js +294 -0
  302. package/dist/router/providers/onnx-phi4.js +190 -0
  303. package/dist/router/providers/onnx.js +242 -0
  304. package/dist/router/providers/openrouter.js +242 -0
  305. package/dist/router/router.js +283 -0
  306. package/dist/router/test-integration.js +140 -0
  307. package/dist/router/test-onnx-benchmark.js +145 -0
  308. package/dist/router/test-onnx-integration.js +128 -0
  309. package/dist/router/test-onnx-local.js +37 -0
  310. package/dist/router/test-onnx.js +148 -0
  311. package/dist/router/test-openrouter.js +121 -0
  312. package/dist/router/test-phi4.js +137 -0
  313. package/dist/router/types.js +2 -0
  314. package/dist/utils/agentLoader.js +106 -0
  315. package/dist/utils/cli.js +128 -0
  316. package/dist/utils/logger.js +41 -0
  317. package/dist/utils/mcpCommands.js +214 -0
  318. package/dist/utils/model-downloader.js +182 -0
  319. package/dist/utils/retry.js +54 -0
  320. package/docs/.claude-flow/metrics/agent-metrics.json +1 -0
  321. package/docs/.claude-flow/metrics/performance.json +9 -0
  322. package/docs/.claude-flow/metrics/task-metrics.json +10 -0
  323. package/docs/CHANGELOG.md +155 -0
  324. package/docs/CLAUDE.md +352 -0
  325. package/docs/COMPLETE_VALIDATION_SUMMARY.md +405 -0
  326. package/docs/INDEX.md +183 -0
  327. package/docs/LICENSE +21 -0
  328. package/docs/ONNX_CLI_USAGE.md +344 -0
  329. package/docs/ONNX_ENV_VARS.md +564 -0
  330. package/docs/ONNX_INTEGRATION.md +422 -0
  331. package/docs/ONNX_OPTIMIZATION_GUIDE.md +665 -0
  332. package/docs/ONNX_OPTIMIZATION_SUMMARY.md +374 -0
  333. package/docs/ONNX_VS_CLAUDE_QUALITY.md +442 -0
  334. package/docs/OPENROUTER_DEPLOYMENT.md +495 -0
  335. package/docs/architecture/EXECUTIVE_SUMMARY.md +310 -0
  336. package/docs/architecture/IMPROVEMENT_PLAN.md +11 -0
  337. package/docs/architecture/INTEGRATION-STATUS.md +290 -0
  338. package/docs/architecture/MULTI_MODEL_ROUTER_PLAN.md +620 -0
  339. package/docs/architecture/QUICK_WINS.md +333 -0
  340. package/docs/architecture/README.md +15 -0
  341. package/docs/architecture/RESEARCH_SUMMARY.md +652 -0
  342. package/docs/archived/FASTMCP_COMPLETE.md +428 -0
  343. package/docs/archived/FASTMCP_INTEGRATION_STATUS.md +288 -0
  344. package/docs/archived/FLOW-NEXUS-COMPLETE.md +269 -0
  345. package/docs/archived/INTEGRATION_CONFIRMED.md +351 -0
  346. package/docs/archived/ONNX_FINAL_REPORT.md +312 -0
  347. package/docs/archived/ONNX_IMPLEMENTATION_COMPLETE.md +215 -0
  348. package/docs/archived/ONNX_IMPLEMENTATION_SUMMARY.md +197 -0
  349. package/docs/archived/ONNX_SUCCESS_REPORT.md +271 -0
  350. package/docs/archived/OPENROUTER_PROXY_COMPLETE.md +494 -0
  351. package/docs/archived/PACKAGE-COMPLETE.md +138 -0
  352. package/docs/archived/README.md +27 -0
  353. package/docs/archived/RESEARCH_COMPLETE.txt +335 -0
  354. package/docs/archived/SDK-SETUP-COMPLETE.md +252 -0
  355. package/docs/guides/ALTERNATIVE_LLM_MODELS.md +524 -0
  356. package/docs/guides/DOCKER_AGENT_USAGE.md +352 -0
  357. package/docs/guides/IMPLEMENTATION_EXAMPLES.md +960 -0
  358. package/docs/guides/NPM-PUBLISH.md +218 -0
  359. package/docs/guides/README.md +17 -0
  360. package/docs/guides/agent-sdk.md +234 -0
  361. package/docs/integrations/CLAUDE_AGENTS_INTEGRATION.md +356 -0
  362. package/docs/integrations/CLAUDE_FLOW_INTEGRATION.md +535 -0
  363. package/docs/integrations/FASTMCP_CLI_INTEGRATION.md +503 -0
  364. package/docs/integrations/FLOW-NEXUS-INTEGRATION.md +319 -0
  365. package/docs/integrations/README.md +18 -0
  366. package/docs/integrations/fastmcp-implementation-plan.md +2516 -0
  367. package/docs/integrations/fastmcp-poc-integration.md +198 -0
  368. package/docs/router/ONNX_PHI4_RESEARCH.md +220 -0
  369. package/docs/router/ONNX_RUNTIME_INTEGRATION_PLAN.md +866 -0
  370. package/docs/router/PHI4_HYPEROPTIMIZATION_PLAN.md +2488 -0
  371. package/docs/router/README.md +552 -0
  372. package/docs/router/ROUTER_CONFIG_REFERENCE.md +577 -0
  373. package/docs/router/ROUTER_USER_GUIDE.md +865 -0
  374. package/docs/validation/DOCKER_MCP_VALIDATION.md +358 -0
  375. package/docs/validation/DOCKER_OPENROUTER_VALIDATION.md +443 -0
  376. package/docs/validation/FINAL_SYSTEM_VALIDATION.md +458 -0
  377. package/docs/validation/FINAL_VALIDATION_SUMMARY.md +409 -0
  378. package/docs/validation/MCP_CLI_TOOLS_VALIDATION.md +266 -0
  379. package/docs/validation/MODEL_VALIDATION_REPORT.md +386 -0
  380. package/docs/validation/OPENROUTER_VALIDATION_COMPLETE.md +382 -0
  381. package/docs/validation/README.md +20 -0
  382. package/docs/validation/ROUTER_VALIDATION.md +311 -0
  383. package/package.json +140 -0
@@ -0,0 +1,128 @@
1
+ // CLI argument parsing and help utilities
2
+ export function parseArgs() {
3
+ const args = process.argv.slice(2);
4
+ const options = {
5
+ mode: 'parallel'
6
+ };
7
+ // Check for MCP command first
8
+ if (args[0] === 'mcp') {
9
+ options.mode = 'mcp';
10
+ options.mcpCommand = args[1] || 'start'; // default to start
11
+ options.mcpServer = args[2] || 'all'; // default to all servers
12
+ return options;
13
+ }
14
+ for (let i = 0; i < args.length; i++) {
15
+ const arg = args[i];
16
+ switch (arg) {
17
+ case '--help':
18
+ case '-h':
19
+ options.help = true;
20
+ break;
21
+ case '--agent':
22
+ case '-a':
23
+ options.mode = 'agent';
24
+ options.agent = args[++i];
25
+ break;
26
+ case '--task':
27
+ case '-t':
28
+ options.task = args[++i];
29
+ break;
30
+ case '--model':
31
+ case '-m':
32
+ options.model = args[++i];
33
+ break;
34
+ case '--provider':
35
+ case '-p':
36
+ options.provider = args[++i];
37
+ break;
38
+ case '--stream':
39
+ case '-s':
40
+ options.stream = true;
41
+ break;
42
+ case '--list':
43
+ case '-l':
44
+ options.mode = 'list';
45
+ break;
46
+ }
47
+ }
48
+ return options;
49
+ }
50
+ export function printHelp() {
51
+ console.log(`
52
+ 🤖 Agentic Flow - AI Agent Orchestration CLI
53
+
54
+ USAGE:
55
+ npx agentic-flow [COMMAND] [OPTIONS]
56
+
57
+ COMMANDS:
58
+ mcp <command> [server] Manage MCP servers (start, stop, status, list)
59
+ --list, -l List all available agents
60
+ --agent, -a <name> Run specific agent mode
61
+ (default) Run parallel mode (3 agents)
62
+
63
+ MCP COMMANDS:
64
+ npx agentic-flow mcp start [server] Start MCP server(s)
65
+ npx agentic-flow mcp stop [server] Stop MCP server(s)
66
+ npx agentic-flow mcp status [server] Check MCP server status
67
+ npx agentic-flow mcp list List all available MCP tools
68
+
69
+ Available servers: claude-flow, flow-nexus, agentic-payments, all (default)
70
+
71
+ OPTIONS:
72
+ --task, -t <task> Task description for agent mode
73
+ --model, -m <model> Model to use (supports OpenRouter models)
74
+ --provider, -p <name> Provider to use (anthropic, openrouter, onnx)
75
+ --stream, -s Enable real-time streaming output
76
+ --help, -h Show this help message
77
+
78
+ EXAMPLES:
79
+ # MCP Server Management
80
+ npx agentic-flow mcp start # Start all MCP servers
81
+ npx agentic-flow mcp start claude-flow # Start specific server
82
+ npx agentic-flow mcp list # List all 203+ MCP tools
83
+ npx agentic-flow mcp status # Check server status
84
+
85
+ # Agent Execution
86
+ npx agentic-flow --list # List all 150+ agents
87
+ npx agentic-flow --agent researcher --task "Analyze AI trends"
88
+ npx agentic-flow --agent coder --task "Build REST API" --model "meta-llama/llama-3.1-8b-instruct"
89
+ npx agentic-flow --agent coder --task "Create hello world" --provider onnx
90
+ npx agentic-flow --agent coder --task "Build REST API" --stream
91
+
92
+ # Parallel Mode
93
+ npx agentic-flow # Run 3 agents in parallel (requires TOPIC, DIFF, DATASET)
94
+
95
+ ENVIRONMENT VARIABLES:
96
+ ANTHROPIC_API_KEY Anthropic API key (for Claude models)
97
+ OPENROUTER_API_KEY OpenRouter API key (for alternative models)
98
+ USE_ONNX Set to 'true' to force ONNX local inference
99
+ AGENT Agent name for agent mode
100
+ TASK Task description for agent mode
101
+ MODEL Model override for agent mode
102
+ PROVIDER Provider to use (anthropic, openrouter, onnx)
103
+ TOPIC Research topic for parallel mode
104
+ DIFF Code diff for parallel mode
105
+ DATASET Dataset hint for parallel mode
106
+ ENABLE_STREAMING Enable streaming (true/false)
107
+ HEALTH_PORT Health check port (default: 8080)
108
+
109
+ MCP TOOLS (203+ available):
110
+ • claude-flow-sdk: 6 in-process tools (memory, swarm coordination)
111
+ • claude-flow: 101 tools (neural networks, GitHub, workflows, DAA)
112
+ • flow-nexus: 96 cloud tools (sandboxes, distributed swarms, templates)
113
+ • agentic-payments: Payment authorization and multi-agent consensus
114
+
115
+ For more information, visit: https://github.com/ruvnet/agentic-flow
116
+ `);
117
+ }
118
+ export function validateOptions(options) {
119
+ if (options.mode === 'agent') {
120
+ if (!options.agent && !process.env.AGENT) {
121
+ return 'Agent mode requires --agent <name> or AGENT env variable';
122
+ }
123
+ if (!options.task && !process.env.TASK) {
124
+ return 'Agent mode requires --task <description> or TASK env variable';
125
+ }
126
+ }
127
+ return null;
128
+ }
@@ -0,0 +1,41 @@
1
+ class Logger {
2
+ context = {};
3
+ setContext(ctx) {
4
+ this.context = { ...this.context, ...ctx };
5
+ }
6
+ log(level, message, data) {
7
+ const timestamp = new Date().toISOString();
8
+ const logEntry = {
9
+ timestamp,
10
+ level,
11
+ message,
12
+ ...this.context,
13
+ ...data
14
+ };
15
+ // Structured JSON logging for production
16
+ if (process.env.NODE_ENV === 'production') {
17
+ console.log(JSON.stringify(logEntry));
18
+ }
19
+ else {
20
+ // Human-readable for development
21
+ const prefix = `[${timestamp}] ${level.toUpperCase()}`;
22
+ const contextStr = Object.keys({ ...this.context, ...data }).length > 0
23
+ ? ` ${JSON.stringify({ ...this.context, ...data })}`
24
+ : '';
25
+ console.log(`${prefix}: ${message}${contextStr}`);
26
+ }
27
+ }
28
+ debug(message, data) {
29
+ this.log('debug', message, data);
30
+ }
31
+ info(message, data) {
32
+ this.log('info', message, data);
33
+ }
34
+ warn(message, data) {
35
+ this.log('warn', message, data);
36
+ }
37
+ error(message, data) {
38
+ this.log('error', message, data);
39
+ }
40
+ }
41
+ export const logger = new Logger();
@@ -0,0 +1,214 @@
1
+ // MCP server management commands
2
+ import { spawn, exec } from 'child_process';
3
+ import { promisify } from 'util';
4
+ const execAsync = promisify(exec);
5
+ const MCP_SERVERS = {
6
+ 'claude-flow': {
7
+ name: 'claude-flow',
8
+ command: 'npx',
9
+ args: ['claude-flow@alpha', 'mcp', 'start'],
10
+ description: '101 tools (neural networks, GitHub, workflows, DAA)',
11
+ toolCount: 101
12
+ },
13
+ 'flow-nexus': {
14
+ name: 'flow-nexus',
15
+ command: 'npx',
16
+ args: ['flow-nexus@latest', 'mcp', 'start'],
17
+ description: '96 cloud tools (sandboxes, distributed swarms, templates)',
18
+ toolCount: 96
19
+ },
20
+ 'agentic-payments': {
21
+ name: 'agentic-payments',
22
+ command: 'npx',
23
+ args: ['-y', 'agentic-payments', 'mcp'],
24
+ description: 'Payment authorization and multi-agent consensus',
25
+ toolCount: 10
26
+ }
27
+ };
28
+ export async function handleMCPCommand(command, server = 'all') {
29
+ switch (command) {
30
+ case 'start':
31
+ await startMCPServers(server);
32
+ break;
33
+ case 'stop':
34
+ await stopMCPServers(server);
35
+ break;
36
+ case 'status':
37
+ await checkMCPStatus(server);
38
+ break;
39
+ case 'list':
40
+ await listMCPTools(server);
41
+ break;
42
+ default:
43
+ console.error(`❌ Unknown MCP command: ${command}`);
44
+ console.error('Available commands: start, stop, status, list');
45
+ process.exit(1);
46
+ }
47
+ }
48
+ async function startMCPServers(server) {
49
+ console.log(`\n🚀 Starting MCP Server(s): ${server}\n`);
50
+ const serversToStart = server === 'all'
51
+ ? Object.keys(MCP_SERVERS)
52
+ : [server];
53
+ for (const serverName of serversToStart) {
54
+ const config = MCP_SERVERS[serverName];
55
+ if (!config) {
56
+ console.error(`❌ Unknown server: ${serverName}`);
57
+ continue;
58
+ }
59
+ console.log(`📦 ${config.name}`);
60
+ console.log(` ${config.description}`);
61
+ console.log(` Command: ${config.command} ${config.args.join(' ')}`);
62
+ console.log(` Status: Starting as subprocess...\n`);
63
+ // Start server in background
64
+ const child = spawn(config.command, config.args, {
65
+ detached: true,
66
+ stdio: 'inherit',
67
+ env: {
68
+ ...process.env,
69
+ MCP_AUTO_START: 'true'
70
+ }
71
+ });
72
+ child.unref(); // Allow parent to exit independently
73
+ }
74
+ console.log(`\n✅ MCP server(s) started in background`);
75
+ console.log(`💡 Tip: Use 'npx agentic-flow mcp status' to check server status\n`);
76
+ }
77
+ async function stopMCPServers(server) {
78
+ console.log(`\n🛑 Stopping MCP Server(s): ${server}\n`);
79
+ const serversToStop = server === 'all'
80
+ ? Object.keys(MCP_SERVERS)
81
+ : [server];
82
+ for (const serverName of serversToStop) {
83
+ const config = MCP_SERVERS[serverName];
84
+ if (!config) {
85
+ console.error(`❌ Unknown server: ${serverName}`);
86
+ continue;
87
+ }
88
+ try {
89
+ // Try to kill processes by name
90
+ const killCommand = process.platform === 'win32'
91
+ ? `taskkill /F /IM node.exe /FI "WINDOWTITLE eq ${serverName}*"`
92
+ : `pkill -f "${serverName}"`;
93
+ await execAsync(killCommand);
94
+ console.log(`✅ Stopped ${config.name}`);
95
+ }
96
+ catch (error) {
97
+ if (error.code === 1) {
98
+ console.log(`⚠️ ${config.name} not running`);
99
+ }
100
+ else {
101
+ console.error(`❌ Error stopping ${config.name}:`, error.message);
102
+ }
103
+ }
104
+ }
105
+ console.log();
106
+ }
107
+ async function checkMCPStatus(server) {
108
+ console.log(`\n📊 MCP Server Status: ${server}\n`);
109
+ const serversToCheck = server === 'all'
110
+ ? Object.keys(MCP_SERVERS)
111
+ : [server];
112
+ for (const serverName of serversToCheck) {
113
+ const config = MCP_SERVERS[serverName];
114
+ if (!config) {
115
+ console.error(`❌ Unknown server: ${serverName}`);
116
+ continue;
117
+ }
118
+ console.log(`📦 ${config.name}`);
119
+ console.log(` Description: ${config.description}`);
120
+ console.log(` Tool Count: ${config.toolCount}`);
121
+ try {
122
+ // Check if process is running
123
+ const checkCommand = process.platform === 'win32'
124
+ ? `tasklist /FI "IMAGENAME eq node.exe" /FO CSV | findstr /C:"${serverName}"`
125
+ : `pgrep -f "${serverName}"`;
126
+ const { stdout } = await execAsync(checkCommand);
127
+ const isRunning = stdout.trim().length > 0;
128
+ console.log(` Status: ${isRunning ? '✅ Running' : '⚠️ Not running'}`);
129
+ }
130
+ catch (error) {
131
+ console.log(` Status: ⚠️ Not running`);
132
+ }
133
+ console.log();
134
+ }
135
+ }
136
+ async function listMCPTools(server) {
137
+ console.log(`\n📋 MCP Tools Available\n`);
138
+ const serversToList = server === 'all'
139
+ ? Object.keys(MCP_SERVERS)
140
+ : [server];
141
+ let totalTools = 0;
142
+ for (const serverName of serversToList) {
143
+ const config = MCP_SERVERS[serverName];
144
+ if (!config) {
145
+ console.error(`❌ Unknown server: ${serverName}`);
146
+ continue;
147
+ }
148
+ console.log(`\n📦 ${config.name.toUpperCase()} (${config.toolCount} tools)`);
149
+ console.log(` ${config.description}`);
150
+ console.log();
151
+ totalTools += config.toolCount;
152
+ // Show example tools based on server
153
+ const examples = getExampleTools(serverName);
154
+ examples.forEach(tool => {
155
+ console.log(` • ${tool}`);
156
+ });
157
+ }
158
+ // Add in-SDK tools
159
+ console.log(`\n📦 CLAUDE-FLOW-SDK (6 in-process tools)`);
160
+ console.log(` Fast, zero-latency tools running in-process`);
161
+ console.log();
162
+ console.log(` • memory_store - Store values in persistent memory`);
163
+ console.log(` • memory_retrieve - Retrieve values from memory`);
164
+ console.log(` • memory_list - List all memory keys`);
165
+ console.log(` • swarm_init - Initialize agent swarms`);
166
+ console.log(` • agent_spawn - Spawn specialized agents`);
167
+ console.log(` • coordination_sync - Synchronize agent coordination`);
168
+ totalTools += 6;
169
+ console.log(`\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
170
+ console.log(`📊 TOTAL: ${totalTools} MCP tools available`);
171
+ console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
172
+ console.log(`💡 Usage: Tools are automatically available to agents`);
173
+ console.log(` npx agentic-flow --agent coder --task "Your task"\n`);
174
+ }
175
+ function getExampleTools(serverName) {
176
+ switch (serverName) {
177
+ case 'claude-flow':
178
+ return [
179
+ 'swarm_init - Initialize multi-agent swarms',
180
+ 'agent_spawn - Create specialized AI agents',
181
+ 'task_orchestrate - Orchestrate complex tasks',
182
+ 'neural_train - Train neural networks with WASM',
183
+ 'github_repo_analyze - Analyze GitHub repositories',
184
+ 'workflow_create - Create automated workflows',
185
+ 'daa_agent_create - Create autonomous agents',
186
+ 'performance_report - Generate performance metrics',
187
+ '... and 93 more tools'
188
+ ];
189
+ case 'flow-nexus':
190
+ return [
191
+ 'sandbox_create - Create isolated E2B sandboxes',
192
+ 'sandbox_execute - Execute code in sandboxes',
193
+ 'swarm_init - Initialize cloud-based swarms',
194
+ 'neural_train - Distributed neural training',
195
+ 'workflow_create - Event-driven workflows',
196
+ 'template_deploy - Deploy project templates',
197
+ 'user_login - Authenticate Flow Nexus users',
198
+ 'storage_upload - Cloud file storage',
199
+ '... and 88 more tools'
200
+ ];
201
+ case 'agentic-payments':
202
+ return [
203
+ 'create_active_mandate - Create payment authorization',
204
+ 'sign_mandate - Sign with Ed25519 cryptography',
205
+ 'verify_mandate - Verify payment signatures',
206
+ 'revoke_mandate - Revoke authorizations',
207
+ 'verify_consensus - Multi-agent consensus',
208
+ 'generate_agent_identity - Create agent identities',
209
+ '... and 4 more tools'
210
+ ];
211
+ default:
212
+ return [];
213
+ }
214
+ }
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Automatic Model Downloader for ONNX Phi-4
3
+ *
4
+ * Downloads Phi-4 ONNX model from HuggingFace on first use
5
+ */
6
+ import { createWriteStream, existsSync, mkdirSync } from 'fs';
7
+ import { dirname } from 'path';
8
+ import { createHash } from 'crypto';
9
+ import { readFileSync } from 'fs';
10
+ export class ModelDownloader {
11
+ baseUrl = 'https://huggingface.co';
12
+ /**
13
+ * Phi-4 Mini ONNX INT4 quantized model (CPU optimized)
14
+ * Size: ~52MB model + ~4.86GB data = ~4.9GB total
15
+ * Note: Requires TWO files - model.onnx and model.onnx.data
16
+ */
17
+ phi4Model = {
18
+ repo: 'microsoft/Phi-4-mini-instruct-onnx',
19
+ filename: 'cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx',
20
+ localPath: './models/phi-4-mini/cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx'
21
+ };
22
+ phi4ModelData = {
23
+ repo: 'microsoft/Phi-4-mini-instruct-onnx',
24
+ filename: 'cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx.data',
25
+ localPath: './models/phi-4-mini/cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/model.onnx.data'
26
+ };
27
+ /**
28
+ * Check if model exists locally
29
+ */
30
+ isModelDownloaded(modelPath) {
31
+ const path = modelPath || this.phi4Model.localPath;
32
+ return existsSync(path);
33
+ }
34
+ /**
35
+ * Get model download URL
36
+ */
37
+ getDownloadUrl(model) {
38
+ return `${this.baseUrl}/${model.repo}/resolve/main/${model.filename}`;
39
+ }
40
+ /**
41
+ * Download model with progress tracking
42
+ */
43
+ async downloadModel(modelInfo, onProgress) {
44
+ const model = modelInfo || this.phi4Model;
45
+ // Check if already downloaded
46
+ if (this.isModelDownloaded(model.localPath)) {
47
+ console.log(`✅ Model already exists at ${model.localPath}`);
48
+ return model.localPath;
49
+ }
50
+ // Create directory
51
+ const dir = dirname(model.localPath);
52
+ if (!existsSync(dir)) {
53
+ mkdirSync(dir, { recursive: true });
54
+ }
55
+ const url = this.getDownloadUrl(model);
56
+ console.log(`📦 Downloading Phi-4 ONNX model from HuggingFace...`);
57
+ console.log(` URL: ${url}`);
58
+ console.log(` Destination: ${model.localPath}`);
59
+ try {
60
+ const response = await fetch(url);
61
+ if (!response.ok) {
62
+ throw new Error(`Download failed: ${response.statusText}`);
63
+ }
64
+ const totalSize = parseInt(response.headers.get('content-length') || '0', 10);
65
+ let downloadedSize = 0;
66
+ if (!response.body) {
67
+ throw new Error('Response body is null');
68
+ }
69
+ const fileStream = createWriteStream(model.localPath);
70
+ // Track progress
71
+ const reader = response.body.getReader();
72
+ const chunks = [];
73
+ while (true) {
74
+ const { done, value } = await reader.read();
75
+ if (done)
76
+ break;
77
+ if (value) {
78
+ chunks.push(value);
79
+ downloadedSize += value.length;
80
+ if (onProgress && totalSize > 0) {
81
+ onProgress({
82
+ downloaded: downloadedSize,
83
+ total: totalSize,
84
+ percentage: (downloadedSize / totalSize) * 100
85
+ });
86
+ }
87
+ // Write chunk
88
+ fileStream.write(value);
89
+ }
90
+ }
91
+ fileStream.end();
92
+ // Wait for file stream to finish
93
+ await new Promise((resolve, reject) => {
94
+ fileStream.on('finish', () => resolve());
95
+ fileStream.on('error', reject);
96
+ });
97
+ console.log(`✅ Model downloaded successfully`);
98
+ console.log(` Size: ${(downloadedSize / (1024 * 1024)).toFixed(2)} MB`);
99
+ console.log(` Path: ${model.localPath}`);
100
+ return model.localPath;
101
+ }
102
+ catch (error) {
103
+ console.error(`❌ Model download failed:`, error);
104
+ throw new Error(`Failed to download model: ${error}`);
105
+ }
106
+ }
107
+ /**
108
+ * Download Phi-4 ONNX model if needed (downloads BOTH .onnx and .onnx.data files)
109
+ */
110
+ async ensurePhi4Model(onProgress) {
111
+ const mainFileExists = this.isModelDownloaded(this.phi4Model.localPath);
112
+ const dataFileExists = this.isModelDownloaded(this.phi4ModelData.localPath);
113
+ if (mainFileExists && dataFileExists) {
114
+ return this.phi4Model.localPath;
115
+ }
116
+ console.log(`🔍 Phi-4-mini ONNX model not found locally`);
117
+ console.log(`📥 Starting automatic download...`);
118
+ console.log(` This is a one-time download (~4.9GB total)`);
119
+ console.log(` Model: microsoft/Phi-4-mini-instruct-onnx (INT4 quantized)`);
120
+ console.log(` Files: model.onnx (~52MB) + model.onnx.data (~4.86GB)`);
121
+ console.log(``);
122
+ // Download main model file if missing
123
+ if (!mainFileExists) {
124
+ console.log(`📦 Downloading model.onnx...`);
125
+ await this.downloadModel(this.phi4Model, onProgress);
126
+ console.log(``);
127
+ }
128
+ // Download data file if missing
129
+ if (!dataFileExists) {
130
+ console.log(`📦 Downloading model.onnx.data (this is the large 4.86GB file)...`);
131
+ await this.downloadModel(this.phi4ModelData, onProgress);
132
+ }
133
+ return this.phi4Model.localPath;
134
+ }
135
+ /**
136
+ * Verify model file integrity (optional)
137
+ */
138
+ async verifyModel(modelPath, expectedSha256) {
139
+ if (!expectedSha256) {
140
+ return true; // Skip verification if no hash provided
141
+ }
142
+ try {
143
+ const fileBuffer = readFileSync(modelPath);
144
+ const hash = createHash('sha256').update(fileBuffer).digest('hex');
145
+ if (hash !== expectedSha256) {
146
+ console.error(`❌ Model verification failed`);
147
+ console.error(` Expected: ${expectedSha256}`);
148
+ console.error(` Got: ${hash}`);
149
+ return false;
150
+ }
151
+ console.log(`✅ Model verification passed`);
152
+ return true;
153
+ }
154
+ catch (error) {
155
+ console.error(`❌ Model verification error:`, error);
156
+ return false;
157
+ }
158
+ }
159
+ /**
160
+ * Get model info
161
+ */
162
+ getModelInfo() {
163
+ return this.phi4Model;
164
+ }
165
+ /**
166
+ * Format download progress for display
167
+ */
168
+ static formatProgress(progress) {
169
+ const mb = (bytes) => (bytes / (1024 * 1024)).toFixed(2);
170
+ return `${progress.percentage.toFixed(1)}% (${mb(progress.downloaded)}/${mb(progress.total)} MB)`;
171
+ }
172
+ }
173
+ /**
174
+ * Global singleton instance
175
+ */
176
+ export const modelDownloader = new ModelDownloader();
177
+ /**
178
+ * Convenience function for downloading Phi-4 model
179
+ */
180
+ export async function ensurePhi4Model(onProgress) {
181
+ return modelDownloader.ensurePhi4Model(onProgress);
182
+ }
@@ -0,0 +1,54 @@
1
+ // Retry utility with exponential backoff
2
+ import { logger } from './logger.js';
3
+ const defaultOptions = {
4
+ maxAttempts: 3,
5
+ baseDelay: 1000,
6
+ maxDelay: 10000,
7
+ shouldRetry: (error) => {
8
+ // Retry on network errors, rate limits, and server errors
9
+ if (error?.status >= 500)
10
+ return true;
11
+ if (error?.status === 429)
12
+ return true;
13
+ if (error?.code === 'ECONNRESET')
14
+ return true;
15
+ if (error?.code === 'ETIMEDOUT')
16
+ return true;
17
+ return false;
18
+ }
19
+ };
20
+ export async function withRetry(fn, options = {}) {
21
+ const opts = { ...defaultOptions, ...options };
22
+ let lastError;
23
+ for (let attempt = 1; attempt <= opts.maxAttempts; attempt++) {
24
+ try {
25
+ logger.debug('Attempting operation', { attempt, maxAttempts: opts.maxAttempts });
26
+ return await fn();
27
+ }
28
+ catch (error) {
29
+ lastError = error;
30
+ if (attempt >= opts.maxAttempts) {
31
+ logger.error('Max retry attempts reached', {
32
+ attempt,
33
+ maxAttempts: opts.maxAttempts,
34
+ error
35
+ });
36
+ throw error;
37
+ }
38
+ if (!opts.shouldRetry(error)) {
39
+ logger.warn('Error not retryable', { error });
40
+ throw error;
41
+ }
42
+ // Calculate backoff delay with jitter
43
+ const delay = Math.min(opts.baseDelay * Math.pow(2, attempt - 1) + Math.random() * 1000, opts.maxDelay);
44
+ logger.warn('Operation failed, retrying', {
45
+ attempt,
46
+ nextAttempt: attempt + 1,
47
+ delayMs: Math.round(delay),
48
+ error
49
+ });
50
+ await new Promise(resolve => setTimeout(resolve, delay));
51
+ }
52
+ }
53
+ throw lastError;
54
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "startTime": 1759590740471,
3
+ "totalTasks": 1,
4
+ "successfulTasks": 1,
5
+ "failedTasks": 0,
6
+ "totalAgents": 0,
7
+ "activeAgents": 0,
8
+ "neuralEvents": 0
9
+ }
@@ -0,0 +1,10 @@
1
+ [
2
+ {
3
+ "id": "cmd-hooks-1759590741432",
4
+ "type": "hooks",
5
+ "success": true,
6
+ "duration": 506.32141699999966,
7
+ "timestamp": 1759590741946,
8
+ "metadata": {}
9
+ }
10
+ ]