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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +175 -0
  165. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  166. package/dist/src/ruvector/diff-classifier.js +662 -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 +49 -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
@@ -1,83 +0,0 @@
1
- /**
2
- * MCP Configuration Generator
3
- * Creates .mcp.json for Claude Code MCP server integration
4
- */
5
-
6
- import type { InitOptions, MCPConfig } from './types.js';
7
-
8
- /**
9
- * Generate MCP configuration
10
- */
11
- export function generateMCPConfig(options: InitOptions): object {
12
- const config = options.mcp;
13
- const mcpServers: Record<string, object> = {};
14
-
15
- // Claude Flow MCP server (core)
16
- if (config.claudeFlow) {
17
- mcpServers['claude-flow'] = {
18
- command: 'npx',
19
- args: ['@claude-flow/cli', 'mcp', 'start'],
20
- env: {
21
- CLAUDE_FLOW_MODE: 'v3',
22
- CLAUDE_FLOW_HOOKS_ENABLED: 'true',
23
- CLAUDE_FLOW_TOPOLOGY: options.runtime.topology,
24
- CLAUDE_FLOW_MAX_AGENTS: String(options.runtime.maxAgents),
25
- CLAUDE_FLOW_MEMORY_BACKEND: options.runtime.memoryBackend,
26
- },
27
- autoStart: config.autoStart,
28
- };
29
- }
30
-
31
- // Ruv-Swarm MCP server (enhanced coordination)
32
- if (config.ruvSwarm) {
33
- mcpServers['ruv-swarm'] = {
34
- command: 'npx',
35
- args: ['ruv-swarm', 'mcp', 'start'],
36
- env: {},
37
- optional: true,
38
- };
39
- }
40
-
41
- // Flow Nexus MCP server (cloud features)
42
- if (config.flowNexus) {
43
- mcpServers['flow-nexus'] = {
44
- command: 'npx',
45
- args: ['flow-nexus@latest', 'mcp', 'start'],
46
- env: {},
47
- optional: true,
48
- requiresAuth: true,
49
- };
50
- }
51
-
52
- return { mcpServers };
53
- }
54
-
55
- /**
56
- * Generate .mcp.json as formatted string
57
- */
58
- export function generateMCPJson(options: InitOptions): string {
59
- const config = generateMCPConfig(options);
60
- return JSON.stringify(config, null, 2);
61
- }
62
-
63
- /**
64
- * Generate MCP server add commands for manual setup
65
- */
66
- export function generateMCPCommands(options: InitOptions): string[] {
67
- const commands: string[] = [];
68
- const config = options.mcp;
69
-
70
- if (config.claudeFlow) {
71
- commands.push('claude mcp add claude-flow -- npx @claude-flow/cli mcp start');
72
- }
73
-
74
- if (config.ruvSwarm) {
75
- commands.push('claude mcp add ruv-swarm -- npx ruv-swarm mcp start');
76
- }
77
-
78
- if (config.flowNexus) {
79
- commands.push('claude mcp add flow-nexus -- npx flow-nexus@latest mcp start');
80
- }
81
-
82
- return commands;
83
- }
@@ -1,274 +0,0 @@
1
- /**
2
- * Settings.json Generator
3
- * Creates .claude/settings.json with V3-optimized hook configurations
4
- */
5
-
6
- import type { InitOptions, HooksConfig } from './types.js';
7
-
8
- /**
9
- * Generate the complete settings.json content
10
- */
11
- export function generateSettings(options: InitOptions): object {
12
- const settings: Record<string, unknown> = {};
13
-
14
- // Add hooks if enabled
15
- if (options.components.settings) {
16
- settings.hooks = generateHooksConfig(options.hooks);
17
- }
18
-
19
- // Add permissions
20
- settings.permissions = {
21
- // Auto-allow claude-flow MCP tools
22
- allow: [
23
- 'Bash(npx claude-flow*)',
24
- 'Bash(npx @claude-flow/*)',
25
- 'mcp__claude-flow__*',
26
- ],
27
- // Auto-deny dangerous operations
28
- deny: [],
29
- };
30
-
31
- // Add model preferences for V3
32
- settings.model = {
33
- default: 'claude-sonnet-4-20250514',
34
- // Use Haiku for quick routing decisions
35
- routing: 'claude-haiku',
36
- };
37
-
38
- // Add V3-specific settings
39
- settings.claudeFlow = {
40
- version: '3.0.0',
41
- enabled: true,
42
- swarm: {
43
- topology: options.runtime.topology,
44
- maxAgents: options.runtime.maxAgents,
45
- },
46
- memory: {
47
- backend: options.runtime.memoryBackend,
48
- enableHNSW: options.runtime.enableHNSW,
49
- },
50
- neural: {
51
- enabled: options.runtime.enableNeural,
52
- },
53
- };
54
-
55
- return settings;
56
- }
57
-
58
- /**
59
- * Generate hooks configuration
60
- */
61
- function generateHooksConfig(config: HooksConfig): object {
62
- const hooks: Record<string, unknown[]> = {};
63
-
64
- // PreToolUse hooks
65
- if (config.preToolUse) {
66
- hooks.PreToolUse = [
67
- // File edit hooks
68
- {
69
- matcher: '^(Write|Edit|MultiEdit)$',
70
- hooks: [
71
- {
72
- type: 'command',
73
- command: 'npx @claude-flow/cli hooks pre-edit --file "$TOOL_INPUT_file_path"',
74
- timeout: config.timeout,
75
- continueOnError: config.continueOnError,
76
- },
77
- ],
78
- },
79
- // Bash command hooks
80
- {
81
- matcher: '^Bash$',
82
- hooks: [
83
- {
84
- type: 'command',
85
- command: 'npx @claude-flow/cli hooks pre-command --command "$TOOL_INPUT_command"',
86
- timeout: config.timeout,
87
- continueOnError: config.continueOnError,
88
- },
89
- ],
90
- },
91
- // Task/Agent hooks
92
- {
93
- matcher: '^Task$',
94
- hooks: [
95
- {
96
- type: 'command',
97
- command: 'npx @claude-flow/cli hooks pre-task --description "$TOOL_INPUT_prompt"',
98
- timeout: config.timeout,
99
- continueOnError: config.continueOnError,
100
- },
101
- ],
102
- },
103
- // Search hooks
104
- {
105
- matcher: '^(Grep|Glob|Read)$',
106
- hooks: [
107
- {
108
- type: 'command',
109
- command: 'npx @claude-flow/cli hooks pre-search --pattern "$TOOL_INPUT_pattern"',
110
- timeout: 2000,
111
- continueOnError: true,
112
- },
113
- ],
114
- },
115
- ];
116
- }
117
-
118
- // PostToolUse hooks
119
- if (config.postToolUse) {
120
- hooks.PostToolUse = [
121
- // File edit hooks with learning
122
- {
123
- matcher: '^(Write|Edit|MultiEdit)$',
124
- hooks: [
125
- {
126
- type: 'command',
127
- command: 'npx @claude-flow/cli hooks post-edit --file "$TOOL_INPUT_file_path" --success "$TOOL_SUCCESS" --train-patterns',
128
- timeout: config.timeout,
129
- continueOnError: config.continueOnError,
130
- },
131
- ],
132
- },
133
- // Bash command hooks with metrics
134
- {
135
- matcher: '^Bash$',
136
- hooks: [
137
- {
138
- type: 'command',
139
- command: 'npx @claude-flow/cli hooks post-command --command "$TOOL_INPUT_command" --success "$TOOL_SUCCESS" --exit-code "$TOOL_EXIT_CODE"',
140
- timeout: config.timeout,
141
- continueOnError: config.continueOnError,
142
- },
143
- ],
144
- },
145
- // Task completion hooks
146
- {
147
- matcher: '^Task$',
148
- hooks: [
149
- {
150
- type: 'command',
151
- command: 'npx @claude-flow/cli hooks post-task --agent-id "$TOOL_RESULT_agent_id" --success "$TOOL_SUCCESS" --analyze',
152
- timeout: config.timeout,
153
- continueOnError: config.continueOnError,
154
- },
155
- ],
156
- },
157
- // Search caching
158
- {
159
- matcher: '^(Grep|Glob)$',
160
- hooks: [
161
- {
162
- type: 'command',
163
- command: 'npx @claude-flow/cli hooks post-search --cache-results',
164
- timeout: 2000,
165
- continueOnError: true,
166
- },
167
- ],
168
- },
169
- ];
170
- }
171
-
172
- // UserPromptSubmit for intelligent routing
173
- if (config.userPromptSubmit) {
174
- hooks.UserPromptSubmit = [
175
- {
176
- hooks: [
177
- {
178
- type: 'command',
179
- command: 'npx @claude-flow/cli hooks route --task "$PROMPT" --include-explanation',
180
- timeout: config.timeout,
181
- continueOnError: config.continueOnError,
182
- },
183
- ],
184
- },
185
- ];
186
- }
187
-
188
- // SessionStart for context loading
189
- if (config.sessionStart) {
190
- hooks.SessionStart = [
191
- {
192
- hooks: [
193
- {
194
- type: 'command',
195
- command: 'npx @claude-flow/cli hooks session-start --session-id "$SESSION_ID" --load-context',
196
- timeout: 10000,
197
- continueOnError: true,
198
- },
199
- ],
200
- },
201
- ];
202
- }
203
-
204
- // Stop hooks for task evaluation
205
- if (config.stop) {
206
- hooks.Stop = [
207
- {
208
- hooks: [
209
- {
210
- type: 'prompt',
211
- prompt: `Evaluate task completion. Consider:
212
- 1. Were all requested changes made?
213
- 2. Did builds/tests pass?
214
- 3. Is follow-up work needed?
215
-
216
- Respond with {"decision": "stop"} if complete, or {"decision": "continue", "reason": "..."} if more work is needed.`,
217
- },
218
- ],
219
- },
220
- ];
221
- }
222
-
223
- // Notification hooks
224
- if (config.notification) {
225
- hooks.Notification = [
226
- {
227
- hooks: [
228
- {
229
- type: 'command',
230
- command: 'npx @claude-flow/cli hooks notify --message "$NOTIFICATION_MESSAGE" --swarm-status',
231
- timeout: 3000,
232
- continueOnError: true,
233
- },
234
- ],
235
- },
236
- ];
237
- }
238
-
239
- // PermissionRequest for auto-allowing claude-flow tools
240
- if (config.permissionRequest) {
241
- hooks.PermissionRequest = [
242
- {
243
- matcher: '^mcp__claude-flow__.*$',
244
- hooks: [
245
- {
246
- type: 'command',
247
- command: 'echo \'{"decision": "allow", "reason": "claude-flow MCP tool auto-approved"}\'',
248
- timeout: 1000,
249
- },
250
- ],
251
- },
252
- {
253
- matcher: '^Bash\\(npx @?claude-flow.*\\)$',
254
- hooks: [
255
- {
256
- type: 'command',
257
- command: 'echo \'{"decision": "allow", "reason": "claude-flow CLI auto-approved"}\'',
258
- timeout: 1000,
259
- },
260
- ],
261
- },
262
- ];
263
- }
264
-
265
- return hooks;
266
- }
267
-
268
- /**
269
- * Generate settings.json as formatted string
270
- */
271
- export function generateSettingsJson(options: InitOptions): string {
272
- const settings = generateSettings(options);
273
- return JSON.stringify(settings, null, 2);
274
- }
@@ -1,211 +0,0 @@
1
- /**
2
- * Statusline Configuration Generator
3
- * Creates statusline configuration for V3 progress display
4
- */
5
-
6
- import type { InitOptions, StatuslineConfig } from './types.js';
7
-
8
- /**
9
- * Generate statusline configuration script
10
- */
11
- export function generateStatuslineScript(options: InitOptions): string {
12
- const config = options.statusline;
13
-
14
- return `#!/usr/bin/env node
15
- /**
16
- * Claude Flow V3 Statusline Generator
17
- * Displays real-time V3 implementation progress and system status
18
- *
19
- * Usage: node statusline.js [--json]
20
- */
21
-
22
- const fs = require('fs');
23
- const path = require('path');
24
-
25
- // Configuration
26
- const CONFIG = {
27
- enabled: ${config.enabled},
28
- showProgress: ${config.showProgress},
29
- showSecurity: ${config.showSecurity},
30
- showSwarm: ${config.showSwarm},
31
- showHooks: ${config.showHooks},
32
- showPerformance: ${config.showPerformance},
33
- refreshInterval: ${config.refreshInterval},
34
- };
35
-
36
- // ANSI colors
37
- const colors = {
38
- reset: '\\x1b[0m',
39
- bright: '\\x1b[1m',
40
- dim: '\\x1b[2m',
41
- green: '\\x1b[32m',
42
- yellow: '\\x1b[33m',
43
- blue: '\\x1b[34m',
44
- magenta: '\\x1b[35m',
45
- cyan: '\\x1b[36m',
46
- red: '\\x1b[31m',
47
- };
48
-
49
- // Get V3 progress from filesystem
50
- function getV3Progress() {
51
- const v3Path = path.join(process.cwd(), 'v3', '@claude-flow');
52
- let modulesCount = 0;
53
- let filesCount = 0;
54
-
55
- try {
56
- if (fs.existsSync(v3Path)) {
57
- const modules = fs.readdirSync(v3Path);
58
- modulesCount = modules.filter(m => fs.statSync(path.join(v3Path, m)).isDirectory()).length;
59
-
60
- // Count TypeScript files
61
- const countFiles = (dir) => {
62
- let count = 0;
63
- const items = fs.readdirSync(dir, { withFileTypes: true });
64
- for (const item of items) {
65
- if (item.isDirectory() && item.name !== 'node_modules' && item.name !== 'dist') {
66
- count += countFiles(path.join(dir, item.name));
67
- } else if (item.isFile() && item.name.endsWith('.ts')) {
68
- count++;
69
- }
70
- }
71
- return count;
72
- };
73
- filesCount = countFiles(v3Path);
74
- }
75
- } catch (e) {
76
- // Ignore errors
77
- }
78
-
79
- return { modulesCount, filesCount };
80
- }
81
-
82
- // Get security status
83
- function getSecurityStatus() {
84
- // Check for security-related files
85
- const securityPath = path.join(process.cwd(), 'v3', '@claude-flow', 'security');
86
- const exists = fs.existsSync(securityPath);
87
-
88
- return {
89
- status: exists ? 'IN_PROGRESS' : 'PENDING',
90
- cvesFixed: exists ? 2 : 0,
91
- totalCves: 3,
92
- };
93
- }
94
-
95
- // Get swarm status
96
- function getSwarmStatus() {
97
- const configPath = path.join(process.cwd(), '.claude-flow', 'config.yaml');
98
-
99
- return {
100
- activeAgents: 0,
101
- maxAgents: ${options.runtime.maxAgents},
102
- topology: '${options.runtime.topology}',
103
- coordinationActive: false,
104
- };
105
- }
106
-
107
- // Get hooks metrics
108
- function getHooksMetrics() {
109
- const metricsPath = path.join(process.cwd(), '.claude-flow', 'data', 'hooks-metrics.json');
110
-
111
- try {
112
- if (fs.existsSync(metricsPath)) {
113
- return JSON.parse(fs.readFileSync(metricsPath, 'utf-8'));
114
- }
115
- } catch (e) {
116
- // Ignore errors
117
- }
118
-
119
- return {
120
- status: 'ACTIVE',
121
- patternsLearned: 0,
122
- routingAccuracy: 0,
123
- totalOperations: 0,
124
- };
125
- }
126
-
127
- // Generate statusline
128
- function generateStatusline() {
129
- const segments = [];
130
-
131
- if (CONFIG.showProgress) {
132
- const progress = getV3Progress();
133
- segments.push(\`\${colors.cyan}V3\${colors.reset} \${progress.modulesCount}mod/\${progress.filesCount}files\`);
134
- }
135
-
136
- if (CONFIG.showSecurity) {
137
- const security = getSecurityStatus();
138
- const statusColor = security.status === 'CLEAN' ? colors.green :
139
- security.status === 'IN_PROGRESS' ? colors.yellow : colors.red;
140
- segments.push(\`\${colors.magenta}SEC\${colors.reset} \${statusColor}\${security.cvesFixed}/\${security.totalCves}\${colors.reset}\`);
141
- }
142
-
143
- if (CONFIG.showSwarm) {
144
- const swarm = getSwarmStatus();
145
- segments.push(\`\${colors.blue}SWARM\${colors.reset} \${swarm.activeAgents}/\${swarm.maxAgents}\`);
146
- }
147
-
148
- if (CONFIG.showHooks) {
149
- const hooks = getHooksMetrics();
150
- segments.push(\`\${colors.green}HOOKS\${colors.reset} \${hooks.patternsLearned}pat\`);
151
- }
152
-
153
- if (CONFIG.showPerformance) {
154
- segments.push(\`\${colors.yellow}PERF\${colors.reset} 2.49x-7.47x\`);
155
- }
156
-
157
- return segments.join(' | ');
158
- }
159
-
160
- // Output JSON if requested
161
- if (process.argv.includes('--json')) {
162
- const data = {
163
- v3Progress: getV3Progress(),
164
- security: getSecurityStatus(),
165
- swarm: getSwarmStatus(),
166
- hooks: getHooksMetrics(),
167
- performance: {
168
- flashAttentionTarget: '2.49x-7.47x',
169
- searchImprovement: '150x-12500x',
170
- memoryReduction: '50-75%',
171
- },
172
- lastUpdated: new Date().toISOString(),
173
- };
174
- console.log(JSON.stringify(data, null, 2));
175
- } else {
176
- console.log(generateStatusline());
177
- }
178
- `;
179
- }
180
-
181
- /**
182
- * Generate statusline hook for shell integration
183
- */
184
- export function generateStatuslineHook(options: InitOptions): string {
185
- if (!options.statusline.enabled) {
186
- return '# Statusline disabled';
187
- }
188
-
189
- return `# Claude Flow V3 Statusline Hook
190
- # Add to your shell RC file (.bashrc, .zshrc, etc.)
191
-
192
- # Function to get statusline
193
- claude_flow_statusline() {
194
- local statusline_script="\${CLAUDE_FLOW_DIR:-.claude}/helpers/statusline.js"
195
- if [ -f "$statusline_script" ]; then
196
- node "$statusline_script" 2>/dev/null || echo ""
197
- fi
198
- }
199
-
200
- # For bash PS1
201
- # export PS1='$(claude_flow_statusline) \\n\\$ '
202
-
203
- # For zsh RPROMPT
204
- # export RPROMPT='$(claude_flow_statusline)'
205
-
206
- # For starship (add to starship.toml)
207
- # [custom.claude_flow]
208
- # command = "node .claude/helpers/statusline.js 2>/dev/null"
209
- # when = "test -f .claude/helpers/statusline.js"
210
- `;
211
- }