@claude-flow/cli 3.0.0-alpha.2 → 3.0.0-alpha.20

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 (263) hide show
  1. package/README.md +172 -6
  2. package/bin/cli.js +0 -0
  3. package/dist/src/commands/agent.d.ts.map +1 -1
  4. package/dist/src/commands/agent.js +43 -27
  5. package/dist/src/commands/agent.js.map +1 -1
  6. package/dist/src/commands/analyze.d.ts +19 -0
  7. package/dist/src/commands/analyze.d.ts.map +1 -0
  8. package/dist/src/commands/analyze.js +1823 -0
  9. package/dist/src/commands/analyze.js.map +1 -0
  10. package/dist/src/commands/claims.d.ts +10 -0
  11. package/dist/src/commands/claims.d.ts.map +1 -0
  12. package/dist/src/commands/claims.js +288 -0
  13. package/dist/src/commands/claims.js.map +1 -0
  14. package/dist/src/commands/completions.d.ts +10 -0
  15. package/dist/src/commands/completions.d.ts.map +1 -0
  16. package/dist/src/commands/completions.js +539 -0
  17. package/dist/src/commands/completions.js.map +1 -0
  18. package/dist/src/commands/config.js +2 -2
  19. package/dist/src/commands/config.js.map +1 -1
  20. package/dist/src/commands/daemon.d.ts +8 -0
  21. package/dist/src/commands/daemon.d.ts.map +1 -0
  22. package/dist/src/commands/daemon.js +545 -0
  23. package/dist/src/commands/daemon.js.map +1 -0
  24. package/dist/src/commands/deployment.d.ts +10 -0
  25. package/dist/src/commands/deployment.d.ts.map +1 -0
  26. package/dist/src/commands/deployment.js +289 -0
  27. package/dist/src/commands/deployment.js.map +1 -0
  28. package/dist/src/commands/doctor.d.ts +10 -0
  29. package/dist/src/commands/doctor.d.ts.map +1 -0
  30. package/dist/src/commands/doctor.js +429 -0
  31. package/dist/src/commands/doctor.js.map +1 -0
  32. package/dist/src/commands/embeddings.d.ts +18 -0
  33. package/dist/src/commands/embeddings.d.ts.map +1 -0
  34. package/dist/src/commands/embeddings.js +616 -0
  35. package/dist/src/commands/embeddings.js.map +1 -0
  36. package/dist/src/commands/hive-mind.d.ts.map +1 -1
  37. package/dist/src/commands/hive-mind.js +252 -35
  38. package/dist/src/commands/hive-mind.js.map +1 -1
  39. package/dist/src/commands/hooks.d.ts.map +1 -1
  40. package/dist/src/commands/hooks.js +326 -2
  41. package/dist/src/commands/hooks.js.map +1 -1
  42. package/dist/src/commands/index.d.ts +13 -0
  43. package/dist/src/commands/index.d.ts.map +1 -1
  44. package/dist/src/commands/index.js +52 -1
  45. package/dist/src/commands/index.js.map +1 -1
  46. package/dist/src/commands/mcp.js +4 -4
  47. package/dist/src/commands/mcp.js.map +1 -1
  48. package/dist/src/commands/memory.d.ts.map +1 -1
  49. package/dist/src/commands/memory.js +236 -170
  50. package/dist/src/commands/memory.js.map +1 -1
  51. package/dist/src/commands/migrate.js +1 -1
  52. package/dist/src/commands/migrate.js.map +1 -1
  53. package/dist/src/commands/neural.d.ts +10 -0
  54. package/dist/src/commands/neural.d.ts.map +1 -0
  55. package/dist/src/commands/neural.js +224 -0
  56. package/dist/src/commands/neural.js.map +1 -0
  57. package/dist/src/commands/performance.d.ts +10 -0
  58. package/dist/src/commands/performance.d.ts.map +1 -0
  59. package/dist/src/commands/performance.js +262 -0
  60. package/dist/src/commands/performance.js.map +1 -0
  61. package/dist/src/commands/plugins.d.ts +10 -0
  62. package/dist/src/commands/plugins.d.ts.map +1 -0
  63. package/dist/src/commands/plugins.js +280 -0
  64. package/dist/src/commands/plugins.js.map +1 -0
  65. package/dist/src/commands/process.d.ts.map +1 -1
  66. package/dist/src/commands/process.js +95 -20
  67. package/dist/src/commands/process.js.map +1 -1
  68. package/dist/src/commands/providers.d.ts +10 -0
  69. package/dist/src/commands/providers.d.ts.map +1 -0
  70. package/dist/src/commands/providers.js +232 -0
  71. package/dist/src/commands/providers.js.map +1 -0
  72. package/dist/src/commands/route.d.ts +16 -0
  73. package/dist/src/commands/route.d.ts.map +1 -0
  74. package/dist/src/commands/route.js +603 -0
  75. package/dist/src/commands/route.js.map +1 -0
  76. package/dist/src/commands/security.d.ts +10 -0
  77. package/dist/src/commands/security.d.ts.map +1 -0
  78. package/dist/src/commands/security.js +261 -0
  79. package/dist/src/commands/security.js.map +1 -0
  80. package/dist/src/commands/start.js +2 -2
  81. package/dist/src/commands/start.js.map +1 -1
  82. package/dist/src/commands/status.d.ts.map +1 -1
  83. package/dist/src/commands/status.js +26 -2
  84. package/dist/src/commands/status.js.map +1 -1
  85. package/dist/src/commands/swarm.js +6 -6
  86. package/dist/src/commands/swarm.js.map +1 -1
  87. package/dist/src/index.d.ts +4 -2
  88. package/dist/src/index.d.ts.map +1 -1
  89. package/dist/src/index.js +63 -5
  90. package/dist/src/index.js.map +1 -1
  91. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  92. package/dist/src/init/claudemd-generator.js +218 -362
  93. package/dist/src/init/claudemd-generator.js.map +1 -1
  94. package/dist/src/init/executor.d.ts.map +1 -1
  95. package/dist/src/init/executor.js +5 -0
  96. package/dist/src/init/executor.js.map +1 -1
  97. package/dist/src/init/settings-generator.d.ts.map +1 -1
  98. package/dist/src/init/settings-generator.js +22 -12
  99. package/dist/src/init/settings-generator.js.map +1 -1
  100. package/dist/src/mcp-client.d.ts.map +1 -1
  101. package/dist/src/mcp-client.js +17 -1
  102. package/dist/src/mcp-client.js.map +1 -1
  103. package/dist/src/mcp-server.d.ts.map +1 -1
  104. package/dist/src/mcp-server.js +5 -0
  105. package/dist/src/mcp-server.js.map +1 -1
  106. package/dist/src/mcp-tools/agent-tools.d.ts +1 -1
  107. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  108. package/dist/src/mcp-tools/agent-tools.js +350 -14
  109. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  110. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  111. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -0
  112. package/dist/src/mcp-tools/analyze-tools.js +317 -0
  113. package/dist/src/mcp-tools/analyze-tools.js.map +1 -0
  114. package/dist/src/mcp-tools/config-tools.d.ts +1 -1
  115. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
  116. package/dist/src/mcp-tools/config-tools.js +262 -15
  117. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  118. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  119. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -0
  120. package/dist/src/mcp-tools/hive-mind-tools.js +447 -0
  121. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -0
  122. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  123. package/dist/src/mcp-tools/hooks-tools.js +80 -15
  124. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  125. package/dist/src/mcp-tools/index.d.ts +6 -0
  126. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  127. package/dist/src/mcp-tools/index.js +6 -0
  128. package/dist/src/mcp-tools/index.js.map +1 -1
  129. package/dist/src/mcp-tools/memory-tools.d.ts +1 -1
  130. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  131. package/dist/src/mcp-tools/memory-tools.js +157 -9
  132. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  133. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  134. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -0
  135. package/dist/src/mcp-tools/session-tools.js +315 -0
  136. package/dist/src/mcp-tools/session-tools.js.map +1 -0
  137. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  138. package/dist/src/mcp-tools/swarm-tools.js +37 -2
  139. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  140. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  141. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -0
  142. package/dist/src/mcp-tools/task-tools.js +302 -0
  143. package/dist/src/mcp-tools/task-tools.js.map +1 -0
  144. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  145. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -0
  146. package/dist/src/mcp-tools/workflow-tools.js +481 -0
  147. package/dist/src/mcp-tools/workflow-tools.js.map +1 -0
  148. package/dist/src/output.d.ts +16 -0
  149. package/dist/src/output.d.ts.map +1 -1
  150. package/dist/src/output.js +42 -0
  151. package/dist/src/output.js.map +1 -1
  152. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  153. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  154. package/dist/src/ruvector/ast-analyzer.js +277 -0
  155. package/dist/src/ruvector/ast-analyzer.js.map +1 -0
  156. package/dist/src/ruvector/coverage-router.d.ts +145 -0
  157. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  158. package/dist/src/ruvector/coverage-router.js +451 -0
  159. package/dist/src/ruvector/coverage-router.js.map +1 -0
  160. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  161. package/dist/src/ruvector/coverage-tools.d.ts.map +1 -0
  162. package/dist/src/ruvector/coverage-tools.js +157 -0
  163. package/dist/src/ruvector/coverage-tools.js.map +1 -0
  164. package/dist/src/ruvector/diff-classifier.d.ts +154 -0
  165. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  166. package/dist/src/ruvector/diff-classifier.js +508 -0
  167. package/dist/src/ruvector/diff-classifier.js.map +1 -0
  168. package/dist/src/ruvector/graph-analyzer.d.ts +174 -0
  169. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  170. package/dist/src/ruvector/graph-analyzer.js +878 -0
  171. package/dist/src/ruvector/graph-analyzer.js.map +1 -0
  172. package/dist/src/ruvector/index.d.ts +27 -0
  173. package/dist/src/ruvector/index.d.ts.map +1 -0
  174. package/dist/src/ruvector/index.js +47 -0
  175. package/dist/src/ruvector/index.js.map +1 -0
  176. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  177. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  178. package/dist/src/ruvector/q-learning-router.js +681 -0
  179. package/dist/src/ruvector/q-learning-router.js.map +1 -0
  180. package/dist/src/ruvector/vector-db.d.ts +69 -0
  181. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  182. package/dist/src/ruvector/vector-db.js +243 -0
  183. package/dist/src/ruvector/vector-db.js.map +1 -0
  184. package/dist/src/services/index.d.ts +7 -0
  185. package/dist/src/services/index.d.ts.map +1 -0
  186. package/dist/src/services/index.js +6 -0
  187. package/dist/src/services/index.js.map +1 -0
  188. package/dist/src/services/worker-daemon.d.ts +153 -0
  189. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  190. package/dist/src/services/worker-daemon.js +567 -0
  191. package/dist/src/services/worker-daemon.js.map +1 -0
  192. package/dist/src/suggest.d.ts +53 -0
  193. package/dist/src/suggest.d.ts.map +1 -0
  194. package/dist/src/suggest.js +200 -0
  195. package/dist/src/suggest.js.map +1 -0
  196. package/dist/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +28 -6
  198. package/.agentic-flow/intelligence.json +0 -16
  199. package/.claude-flow/metrics/agent-metrics.json +0 -1
  200. package/.claude-flow/metrics/performance.json +0 -87
  201. package/.claude-flow/metrics/task-metrics.json +0 -10
  202. package/__tests__/README.md +0 -140
  203. package/__tests__/TEST_SUMMARY.md +0 -144
  204. package/__tests__/cli.test.ts +0 -558
  205. package/__tests__/commands.test.ts +0 -726
  206. package/__tests__/config-adapter.test.ts +0 -362
  207. package/__tests__/config-loading.test.ts +0 -106
  208. package/__tests__/coverage/.tmp/coverage-0.json +0 -1
  209. package/__tests__/coverage/.tmp/coverage-1.json +0 -1
  210. package/__tests__/coverage/.tmp/coverage-2.json +0 -1
  211. package/__tests__/coverage/.tmp/coverage-3.json +0 -1
  212. package/__tests__/coverage/.tmp/coverage-4.json +0 -1
  213. package/__tests__/coverage/.tmp/coverage-5.json +0 -1
  214. package/__tests__/mcp-client.test.ts +0 -480
  215. package/__tests__/p1-commands.test.ts +0 -1064
  216. package/docs/CONFIG_LOADING.md +0 -236
  217. package/docs/IMPLEMENTATION_COMPLETE.md +0 -421
  218. package/docs/MCP_CLIENT_GUIDE.md +0 -620
  219. package/docs/REFACTORING_SUMMARY.md +0 -247
  220. package/src/commands/agent.ts +0 -941
  221. package/src/commands/config.ts +0 -452
  222. package/src/commands/hive-mind.ts +0 -762
  223. package/src/commands/hooks.ts +0 -2603
  224. package/src/commands/index.ts +0 -115
  225. package/src/commands/init.ts +0 -597
  226. package/src/commands/mcp.ts +0 -753
  227. package/src/commands/memory.ts +0 -1063
  228. package/src/commands/migrate.ts +0 -447
  229. package/src/commands/process.ts +0 -617
  230. package/src/commands/session.ts +0 -891
  231. package/src/commands/start.ts +0 -457
  232. package/src/commands/status.ts +0 -705
  233. package/src/commands/swarm.ts +0 -648
  234. package/src/commands/task.ts +0 -792
  235. package/src/commands/workflow.ts +0 -742
  236. package/src/config-adapter.ts +0 -210
  237. package/src/index.ts +0 -383
  238. package/src/infrastructure/in-memory-repositories.ts +0 -310
  239. package/src/init/claudemd-generator.ts +0 -631
  240. package/src/init/executor.ts +0 -756
  241. package/src/init/helpers-generator.ts +0 -628
  242. package/src/init/index.ts +0 -60
  243. package/src/init/mcp-generator.ts +0 -83
  244. package/src/init/settings-generator.ts +0 -274
  245. package/src/init/statusline-generator.ts +0 -211
  246. package/src/init/types.ts +0 -447
  247. package/src/mcp-client.ts +0 -227
  248. package/src/mcp-server.ts +0 -571
  249. package/src/mcp-tools/agent-tools.ts +0 -92
  250. package/src/mcp-tools/config-tools.ts +0 -88
  251. package/src/mcp-tools/hooks-tools.ts +0 -1819
  252. package/src/mcp-tools/index.ts +0 -12
  253. package/src/mcp-tools/memory-tools.ts +0 -89
  254. package/src/mcp-tools/swarm-tools.ts +0 -69
  255. package/src/mcp-tools/types.ts +0 -33
  256. package/src/output.ts +0 -593
  257. package/src/parser.ts +0 -417
  258. package/src/prompt.ts +0 -619
  259. package/src/types.ts +0 -287
  260. package/tmp.json +0 -0
  261. package/tsconfig.json +0 -16
  262. package/tsconfig.tsbuildinfo +0 -1
  263. package/vitest.config.ts +0 -13
@@ -0,0 +1,603 @@
1
+ /**
2
+ * V3 CLI Route Command
3
+ * Intelligent task-to-agent routing using Q-Learning
4
+ *
5
+ * Features:
6
+ * - Q-Learning based agent selection
7
+ * - Semantic task understanding
8
+ * - Confidence scoring
9
+ * - Learning from feedback
10
+ *
11
+ * Created with love by ruv.io
12
+ */
13
+ import { output } from '../output.js';
14
+ import { createQLearningRouter, isRuvectorAvailable, } from '../ruvector/index.js';
15
+ /**
16
+ * Available agent types for routing
17
+ */
18
+ const AGENT_TYPES = [
19
+ { id: 'coder', name: 'Coder', description: 'Implements features and writes code', capabilities: ['coding', 'implementation', 'refactoring'], priority: 1 },
20
+ { id: 'tester', name: 'Tester', description: 'Creates tests and validates functionality', capabilities: ['testing', 'validation', 'quality'], priority: 2 },
21
+ { id: 'reviewer', name: 'Reviewer', description: 'Reviews code quality and security', capabilities: ['review', 'security', 'best-practices'], priority: 3 },
22
+ { id: 'architect', name: 'Architect', description: 'Designs system architecture', capabilities: ['design', 'architecture', 'planning'], priority: 4 },
23
+ { id: 'researcher', name: 'Researcher', description: 'Researches requirements and patterns', capabilities: ['research', 'analysis', 'documentation'], priority: 5 },
24
+ { id: 'optimizer', name: 'Optimizer', description: 'Optimizes performance and efficiency', capabilities: ['optimization', 'performance', 'profiling'], priority: 6 },
25
+ { id: 'debugger', name: 'Debugger', description: 'Debugs issues and fixes bugs', capabilities: ['debugging', 'troubleshooting', 'fixing'], priority: 7 },
26
+ { id: 'documenter', name: 'Documenter', description: 'Creates and updates documentation', capabilities: ['documentation', 'writing', 'explaining'], priority: 8 },
27
+ ];
28
+ // ============================================================================
29
+ // Router Singleton
30
+ // ============================================================================
31
+ let routerInstance = null;
32
+ let routerInitialized = false;
33
+ /**
34
+ * Get or create the router instance
35
+ */
36
+ async function getRouter() {
37
+ if (!routerInstance) {
38
+ routerInstance = createQLearningRouter();
39
+ }
40
+ if (!routerInitialized) {
41
+ await routerInstance.initialize();
42
+ routerInitialized = true;
43
+ }
44
+ return routerInstance;
45
+ }
46
+ /**
47
+ * Get agent type by route name
48
+ */
49
+ function getAgentType(route) {
50
+ return AGENT_TYPES.find(a => a.id === route);
51
+ }
52
+ // ============================================================================
53
+ // Route Subcommand
54
+ // ============================================================================
55
+ const routeTaskCommand = {
56
+ name: 'task',
57
+ description: 'Route a task to the optimal agent using Q-Learning',
58
+ options: [
59
+ {
60
+ name: 'q-learning',
61
+ short: 'q',
62
+ description: 'Use Q-Learning for agent selection (default: true)',
63
+ type: 'boolean',
64
+ default: true,
65
+ },
66
+ {
67
+ name: 'agent',
68
+ short: 'a',
69
+ description: 'Force specific agent (bypasses Q-Learning)',
70
+ type: 'string',
71
+ },
72
+ {
73
+ name: 'explore',
74
+ short: 'e',
75
+ description: 'Enable exploration (random selection chance)',
76
+ type: 'boolean',
77
+ default: true,
78
+ },
79
+ {
80
+ name: 'json',
81
+ short: 'j',
82
+ description: 'Output in JSON format',
83
+ type: 'boolean',
84
+ default: false,
85
+ },
86
+ ],
87
+ examples: [
88
+ { command: 'claude-flow route task "implement authentication"', description: 'Route task to best agent' },
89
+ { command: 'claude-flow route task "write unit tests" --q-learning', description: 'Use Q-Learning routing' },
90
+ { command: 'claude-flow route task "review code" --agent reviewer', description: 'Force specific agent' },
91
+ ],
92
+ action: async (ctx) => {
93
+ const taskDescription = ctx.args[0];
94
+ const forceAgent = ctx.flags.agent;
95
+ const useExploration = ctx.flags.explore;
96
+ const jsonOutput = ctx.flags.json;
97
+ if (!taskDescription) {
98
+ output.printError('Task description is required');
99
+ output.writeln(output.dim('Usage: claude-flow route task "task description"'));
100
+ return { success: false, exitCode: 1 };
101
+ }
102
+ const spinner = output.createSpinner({ text: 'Analyzing task...', spinner: 'dots' });
103
+ spinner.start();
104
+ try {
105
+ if (forceAgent) {
106
+ // Bypass Q-Learning, use specified agent
107
+ const agent = getAgentType(forceAgent) ||
108
+ AGENT_TYPES.find(a => a.name.toLowerCase() === forceAgent.toLowerCase());
109
+ if (!agent) {
110
+ spinner.fail(`Agent "${forceAgent}" not found`);
111
+ output.writeln();
112
+ output.writeln('Available agents:');
113
+ output.printList(AGENT_TYPES.map(a => `${output.highlight(a.id)} - ${a.description}`));
114
+ return { success: false, exitCode: 1 };
115
+ }
116
+ spinner.succeed(`Routed to ${agent.name}`);
117
+ if (jsonOutput) {
118
+ output.printJson({
119
+ task: taskDescription,
120
+ agentId: agent.id,
121
+ agentName: agent.name,
122
+ confidence: 1.0,
123
+ method: 'forced',
124
+ });
125
+ }
126
+ else {
127
+ output.writeln();
128
+ output.printBox([
129
+ `Task: ${taskDescription}`,
130
+ `Agent: ${output.highlight(agent.name)} (${agent.id})`,
131
+ `Confidence: ${output.success('100%')} (forced)`,
132
+ `Description: ${agent.description}`,
133
+ ].join('\n'), 'Routing Result');
134
+ }
135
+ return { success: true, data: { agentId: agent.id, agentName: agent.name } };
136
+ }
137
+ // Use Q-Learning routing
138
+ const router = await getRouter();
139
+ const result = router.route(taskDescription, useExploration);
140
+ const agent = getAgentType(result.route) || AGENT_TYPES[0];
141
+ spinner.succeed(`Routed to ${agent.name}`);
142
+ if (jsonOutput) {
143
+ output.printJson({
144
+ task: taskDescription,
145
+ agentId: result.route,
146
+ agentName: agent.name,
147
+ confidence: result.confidence,
148
+ qValues: result.qValues,
149
+ explored: result.explored,
150
+ alternatives: result.alternatives.map(a => ({
151
+ agentId: a.route,
152
+ agentName: getAgentType(a.route)?.name || a.route,
153
+ score: a.score,
154
+ })),
155
+ });
156
+ }
157
+ else {
158
+ output.writeln();
159
+ const confidence = result.confidence ?? 0;
160
+ // Use bound methods to preserve `this` context when calling output methods
161
+ const confidenceColor = confidence >= 0.7
162
+ ? (text) => output.success(text)
163
+ : confidence >= 0.4
164
+ ? (text) => output.warning(text)
165
+ : (text) => output.error(text);
166
+ const qValues = result.qValues || [0];
167
+ const maxQValue = Math.max(...qValues);
168
+ const capabilities = agent.capabilities || [];
169
+ const alternatives = result.alternatives || [];
170
+ output.printBox([
171
+ `Task: ${taskDescription}`,
172
+ ``,
173
+ `Agent: ${output.highlight(agent.name)} (${result.route})`,
174
+ `Confidence: ${confidenceColor(`${(confidence * 100).toFixed(1)}%`)}`,
175
+ `Q-Value: ${maxQValue.toFixed(3)}`,
176
+ `Exploration: ${result.explored ? output.warning('Yes') : 'No'}`,
177
+ ``,
178
+ `Description: ${agent.description}`,
179
+ `Capabilities: ${capabilities.join(', ')}`,
180
+ ].join('\n'), 'Q-Learning Routing');
181
+ if (alternatives.length > 0) {
182
+ output.writeln();
183
+ output.writeln(output.bold('Alternatives:'));
184
+ output.printTable({
185
+ columns: [
186
+ { key: 'agent', header: 'Agent', width: 20 },
187
+ { key: 'score', header: 'Score', width: 12, align: 'right' },
188
+ ],
189
+ data: alternatives.map(a => ({
190
+ agent: getAgentType(a.route)?.name || a.route,
191
+ score: (a.score ?? 0).toFixed(3),
192
+ })),
193
+ });
194
+ }
195
+ }
196
+ return { success: true, data: { agentId: result.route, result } };
197
+ }
198
+ catch (error) {
199
+ spinner.fail('Routing failed');
200
+ output.printError(error instanceof Error ? error.message : String(error));
201
+ return { success: false, exitCode: 1 };
202
+ }
203
+ },
204
+ };
205
+ // ============================================================================
206
+ // List Agents Subcommand
207
+ // ============================================================================
208
+ const listAgentsCommand = {
209
+ name: 'list-agents',
210
+ aliases: ['agents', 'ls'],
211
+ description: 'List all available agent types for routing',
212
+ options: [
213
+ {
214
+ name: 'json',
215
+ short: 'j',
216
+ description: 'Output in JSON format',
217
+ type: 'boolean',
218
+ default: false,
219
+ },
220
+ ],
221
+ examples: [
222
+ { command: 'claude-flow route list-agents', description: 'List all agents' },
223
+ { command: 'claude-flow route agents --json', description: 'List agents as JSON' },
224
+ ],
225
+ action: async (ctx) => {
226
+ const jsonOutput = ctx.flags.json;
227
+ try {
228
+ if (jsonOutput) {
229
+ output.printJson(AGENT_TYPES);
230
+ }
231
+ else {
232
+ output.writeln();
233
+ output.writeln(output.bold('Available Agent Types'));
234
+ output.writeln(output.dim('Ordered by priority (highest first)'));
235
+ output.writeln();
236
+ output.printTable({
237
+ columns: [
238
+ { key: 'id', header: 'ID', width: 15 },
239
+ { key: 'name', header: 'Name', width: 15 },
240
+ { key: 'priority', header: 'Priority', width: 10, align: 'right' },
241
+ { key: 'description', header: 'Description', width: 45 },
242
+ ],
243
+ data: AGENT_TYPES.map(a => ({
244
+ id: output.highlight(a.id),
245
+ name: a.name,
246
+ priority: String(a.priority),
247
+ description: a.description,
248
+ })),
249
+ });
250
+ output.writeln();
251
+ output.writeln(output.dim(`Total: ${AGENT_TYPES.length} agent types`));
252
+ }
253
+ return { success: true, data: AGENT_TYPES };
254
+ }
255
+ catch (error) {
256
+ output.printError(error instanceof Error ? error.message : String(error));
257
+ return { success: false, exitCode: 1 };
258
+ }
259
+ },
260
+ };
261
+ // ============================================================================
262
+ // Stats Subcommand
263
+ // ============================================================================
264
+ const statsCommand = {
265
+ name: 'stats',
266
+ description: 'Show Q-Learning router statistics',
267
+ options: [
268
+ {
269
+ name: 'json',
270
+ short: 'j',
271
+ description: 'Output in JSON format',
272
+ type: 'boolean',
273
+ default: false,
274
+ },
275
+ ],
276
+ examples: [
277
+ { command: 'claude-flow route stats', description: 'Show routing statistics' },
278
+ ],
279
+ action: async (ctx) => {
280
+ const jsonOutput = ctx.flags.json;
281
+ try {
282
+ const router = await getRouter();
283
+ const stats = router.getStats();
284
+ const ruvectorAvailable = await isRuvectorAvailable();
285
+ const ruvectorStatus = {
286
+ available: ruvectorAvailable,
287
+ wasmAccelerated: stats.useNative === 1,
288
+ backend: stats.useNative === 1 ? 'ruvector-native' : 'fallback',
289
+ };
290
+ if (jsonOutput) {
291
+ output.printJson({ stats, ruvector: ruvectorStatus });
292
+ }
293
+ else {
294
+ output.writeln();
295
+ output.writeln(output.bold('Q-Learning Router Statistics'));
296
+ output.writeln();
297
+ output.printTable({
298
+ columns: [
299
+ { key: 'metric', header: 'Metric', width: 25 },
300
+ { key: 'value', header: 'Value', width: 20, align: 'right' },
301
+ ],
302
+ data: [
303
+ { metric: 'Update Count', value: String(stats.updateCount) },
304
+ { metric: 'Q-Table Size', value: String(stats.qTableSize) },
305
+ { metric: 'Step Count', value: String(stats.stepCount) },
306
+ { metric: 'Epsilon', value: stats.epsilon.toFixed(4) },
307
+ { metric: 'Avg TD Error', value: stats.avgTDError.toFixed(4) },
308
+ { metric: 'Native Backend', value: stats.useNative === 1 ? 'Yes' : 'No' },
309
+ ],
310
+ });
311
+ output.writeln();
312
+ output.writeln(output.bold('RuVector Status'));
313
+ output.printList([
314
+ `Available: ${ruvectorStatus.available ? output.success('Yes') : output.warning('No (using fallback)')}`,
315
+ `WASM Accelerated: ${ruvectorStatus.wasmAccelerated ? output.success('Yes') : 'No'}`,
316
+ `Backend: ${ruvectorStatus.backend}`,
317
+ ]);
318
+ }
319
+ return { success: true, data: { stats, ruvector: ruvectorStatus } };
320
+ }
321
+ catch (error) {
322
+ output.printError(error instanceof Error ? error.message : String(error));
323
+ return { success: false, exitCode: 1 };
324
+ }
325
+ },
326
+ };
327
+ // ============================================================================
328
+ // Feedback Subcommand
329
+ // ============================================================================
330
+ const feedbackCommand = {
331
+ name: 'feedback',
332
+ description: 'Provide feedback on a routing decision',
333
+ options: [
334
+ {
335
+ name: 'task',
336
+ short: 't',
337
+ description: 'Task description (context for learning)',
338
+ type: 'string',
339
+ required: true,
340
+ },
341
+ {
342
+ name: 'agent',
343
+ short: 'a',
344
+ description: 'Agent that was used',
345
+ type: 'string',
346
+ required: true,
347
+ },
348
+ {
349
+ name: 'reward',
350
+ short: 'r',
351
+ description: 'Reward value (-1 to 1, where 1 is best)',
352
+ type: 'number',
353
+ default: 0.8,
354
+ },
355
+ {
356
+ name: 'next-task',
357
+ short: 'n',
358
+ description: 'Next task description (for multi-step learning)',
359
+ type: 'string',
360
+ },
361
+ ],
362
+ examples: [
363
+ { command: 'claude-flow route feedback -t "implement auth" -a coder -r 0.9', description: 'Positive feedback' },
364
+ { command: 'claude-flow route feedback -t "write tests" -a tester -r -0.5', description: 'Negative feedback' },
365
+ ],
366
+ action: async (ctx) => {
367
+ const taskDescription = ctx.flags.task;
368
+ const agentId = ctx.flags.agent;
369
+ const reward = ctx.flags.reward;
370
+ const nextTask = ctx.flags['next-task'];
371
+ if (!taskDescription || !agentId) {
372
+ output.printError('Task description and agent are required');
373
+ return { success: false, exitCode: 1 };
374
+ }
375
+ // Validate agent
376
+ const agent = getAgentType(agentId);
377
+ if (!agent) {
378
+ output.printError(`Unknown agent: ${agentId}`);
379
+ output.writeln('Available agents:');
380
+ output.printList(AGENT_TYPES.map(a => a.id));
381
+ return { success: false, exitCode: 1 };
382
+ }
383
+ try {
384
+ const router = await getRouter();
385
+ const clampedReward = Math.max(-1, Math.min(1, reward));
386
+ const tdError = router.update(taskDescription, agentId, clampedReward, nextTask);
387
+ output.printSuccess(`Feedback recorded for agent "${agent.name}"`);
388
+ output.writeln();
389
+ output.printBox([
390
+ `Task: ${taskDescription}`,
391
+ `Agent: ${agent.name} (${agentId})`,
392
+ `Reward: ${clampedReward >= 0 ? output.success(clampedReward.toFixed(2)) : output.error(clampedReward.toFixed(2))}`,
393
+ `TD Error: ${Math.abs(tdError).toFixed(4)}`,
394
+ nextTask ? `Next Task: ${nextTask}` : '',
395
+ ].filter(Boolean).join('\n'), 'Feedback Recorded');
396
+ return { success: true, data: { tdError } };
397
+ }
398
+ catch (error) {
399
+ output.printError(error instanceof Error ? error.message : String(error));
400
+ return { success: false, exitCode: 1 };
401
+ }
402
+ },
403
+ };
404
+ // ============================================================================
405
+ // Reset Subcommand
406
+ // ============================================================================
407
+ const resetCommand = {
408
+ name: 'reset',
409
+ description: 'Reset the Q-Learning router state',
410
+ options: [
411
+ {
412
+ name: 'force',
413
+ short: 'f',
414
+ description: 'Force reset without confirmation',
415
+ type: 'boolean',
416
+ default: false,
417
+ },
418
+ ],
419
+ examples: [
420
+ { command: 'claude-flow route reset', description: 'Reset router state' },
421
+ { command: 'claude-flow route reset --force', description: 'Force reset' },
422
+ ],
423
+ action: async (ctx) => {
424
+ const force = ctx.flags.force;
425
+ if (!force && ctx.interactive) {
426
+ output.printWarning('This will reset all learned Q-values and statistics.');
427
+ output.writeln(output.dim('Use --force to skip this confirmation.'));
428
+ return { success: false, exitCode: 1 };
429
+ }
430
+ try {
431
+ const router = await getRouter();
432
+ router.reset();
433
+ output.printSuccess('Q-Learning router state has been reset');
434
+ return { success: true };
435
+ }
436
+ catch (error) {
437
+ output.printError(error instanceof Error ? error.message : String(error));
438
+ return { success: false, exitCode: 1 };
439
+ }
440
+ },
441
+ };
442
+ // ============================================================================
443
+ // Export/Import Subcommands
444
+ // ============================================================================
445
+ const exportCommand = {
446
+ name: 'export',
447
+ description: 'Export Q-table for persistence',
448
+ options: [
449
+ {
450
+ name: 'file',
451
+ short: 'f',
452
+ description: 'Output file path (outputs to stdout if not specified)',
453
+ type: 'string',
454
+ },
455
+ ],
456
+ examples: [
457
+ { command: 'claude-flow route export', description: 'Export Q-table to stdout' },
458
+ { command: 'claude-flow route export -f qtable.json', description: 'Export to file' },
459
+ ],
460
+ action: async (ctx) => {
461
+ const filePath = ctx.flags.file;
462
+ try {
463
+ const router = await getRouter();
464
+ const data = router.export();
465
+ if (filePath) {
466
+ const fs = await import('node:fs/promises');
467
+ await fs.writeFile(filePath, JSON.stringify(data, null, 2));
468
+ output.printSuccess(`Q-table exported to ${filePath}`);
469
+ }
470
+ else {
471
+ output.printJson(data);
472
+ }
473
+ return { success: true, data };
474
+ }
475
+ catch (error) {
476
+ output.printError(error instanceof Error ? error.message : String(error));
477
+ return { success: false, exitCode: 1 };
478
+ }
479
+ },
480
+ };
481
+ const importCommand = {
482
+ name: 'import',
483
+ description: 'Import Q-table from file',
484
+ options: [
485
+ {
486
+ name: 'file',
487
+ short: 'f',
488
+ description: 'Input file path',
489
+ type: 'string',
490
+ required: true,
491
+ },
492
+ ],
493
+ examples: [
494
+ { command: 'claude-flow route import -f qtable.json', description: 'Import Q-table from file' },
495
+ ],
496
+ action: async (ctx) => {
497
+ const filePath = ctx.flags.file;
498
+ if (!filePath) {
499
+ output.printError('File path is required');
500
+ return { success: false, exitCode: 1 };
501
+ }
502
+ try {
503
+ const fs = await import('node:fs/promises');
504
+ const content = await fs.readFile(filePath, 'utf-8');
505
+ const data = JSON.parse(content);
506
+ const router = await getRouter();
507
+ router.import(data);
508
+ output.printSuccess(`Q-table imported from ${filePath}`);
509
+ output.writeln(output.dim(`Loaded ${Object.keys(data).length} state entries`));
510
+ return { success: true };
511
+ }
512
+ catch (error) {
513
+ output.printError(error instanceof Error ? error.message : String(error));
514
+ return { success: false, exitCode: 1 };
515
+ }
516
+ },
517
+ };
518
+ // ============================================================================
519
+ // Main Route Command
520
+ // ============================================================================
521
+ export const routeCommand = {
522
+ name: 'route',
523
+ description: 'Intelligent task-to-agent routing using Q-Learning',
524
+ subcommands: [
525
+ routeTaskCommand,
526
+ listAgentsCommand,
527
+ statsCommand,
528
+ feedbackCommand,
529
+ resetCommand,
530
+ exportCommand,
531
+ importCommand,
532
+ ],
533
+ options: [
534
+ {
535
+ name: 'q-learning',
536
+ short: 'q',
537
+ description: 'Use Q-Learning for agent selection',
538
+ type: 'boolean',
539
+ default: true,
540
+ },
541
+ {
542
+ name: 'agent',
543
+ short: 'a',
544
+ description: 'Force specific agent',
545
+ type: 'string',
546
+ },
547
+ ],
548
+ examples: [
549
+ { command: 'claude-flow route "implement feature"', description: 'Route task to best agent' },
550
+ { command: 'claude-flow route "write tests" --q-learning', description: 'Use Q-Learning routing' },
551
+ { command: 'claude-flow route --agent coder "fix bug"', description: 'Force specific agent' },
552
+ { command: 'claude-flow route list-agents', description: 'List available agents' },
553
+ { command: 'claude-flow route stats', description: 'Show routing statistics' },
554
+ ],
555
+ action: async (ctx) => {
556
+ // If task description provided directly, route it
557
+ if (ctx.args.length > 0 && routeTaskCommand.action) {
558
+ const result = await routeTaskCommand.action(ctx);
559
+ if (result)
560
+ return result;
561
+ return { success: true };
562
+ }
563
+ // Show help
564
+ output.writeln();
565
+ output.writeln(output.bold('Q-Learning Agent Router'));
566
+ output.writeln(output.dim('Intelligent task-to-agent routing using reinforcement learning'));
567
+ output.writeln();
568
+ output.writeln('Usage: claude-flow route <task> [options]');
569
+ output.writeln(' claude-flow route <subcommand>');
570
+ output.writeln();
571
+ output.writeln(output.bold('Subcommands:'));
572
+ output.printList([
573
+ `${output.highlight('task')} - Route a task to optimal agent`,
574
+ `${output.highlight('list-agents')} - List available agent types`,
575
+ `${output.highlight('stats')} - Show router statistics`,
576
+ `${output.highlight('feedback')} - Provide routing feedback`,
577
+ `${output.highlight('reset')} - Reset router state`,
578
+ `${output.highlight('export')} - Export Q-table`,
579
+ `${output.highlight('import')} - Import Q-table`,
580
+ ]);
581
+ output.writeln();
582
+ output.writeln(output.bold('How It Works:'));
583
+ output.printList([
584
+ 'Analyzes task description using hash-based state encoding',
585
+ 'Uses Q-Learning to learn from routing outcomes',
586
+ 'Epsilon-greedy exploration for continuous improvement',
587
+ 'Provides confidence scores and alternatives',
588
+ ]);
589
+ output.writeln();
590
+ // Show quick status
591
+ const ruvectorAvailable = await isRuvectorAvailable();
592
+ output.writeln(output.bold('Backend Status:'));
593
+ output.printList([
594
+ `RuVector: ${ruvectorAvailable ? output.success('Available') : output.warning('Fallback mode')}`,
595
+ `Backend: ${ruvectorAvailable ? 'ruvector-native' : 'JavaScript fallback'}`,
596
+ ]);
597
+ output.writeln();
598
+ output.writeln(output.dim('Run "claude-flow route <subcommand> --help" for more info'));
599
+ return { success: true };
600
+ },
601
+ };
602
+ export default routeCommand;
603
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/commands/route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * V3 CLI Security Command
3
+ * Security scanning, CVE detection, threat modeling, vulnerability management
4
+ *
5
+ * Created with ❤️ by ruv.io
6
+ */
7
+ import type { Command } from '../types.js';
8
+ export declare const securityCommand: Command;
9
+ export default securityCommand;
10
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/commands/security.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AA0P1E,eAAO,MAAM,eAAe,EAAE,OA4B7B,CAAC;AAEF,eAAe,eAAe,CAAC"}