@claude-flow/cli 3.0.0-alpha.1

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 (229) hide show
  1. package/.agentic-flow/intelligence.json +16 -0
  2. package/.claude-flow/metrics/agent-metrics.json +1 -0
  3. package/.claude-flow/metrics/performance.json +87 -0
  4. package/.claude-flow/metrics/task-metrics.json +10 -0
  5. package/README.md +1186 -0
  6. package/__tests__/README.md +140 -0
  7. package/__tests__/TEST_SUMMARY.md +144 -0
  8. package/__tests__/cli.test.ts +558 -0
  9. package/__tests__/commands.test.ts +726 -0
  10. package/__tests__/config-adapter.test.ts +362 -0
  11. package/__tests__/config-loading.test.ts +106 -0
  12. package/__tests__/coverage/.tmp/coverage-0.json +1 -0
  13. package/__tests__/coverage/.tmp/coverage-1.json +1 -0
  14. package/__tests__/coverage/.tmp/coverage-2.json +1 -0
  15. package/__tests__/coverage/.tmp/coverage-3.json +1 -0
  16. package/__tests__/coverage/.tmp/coverage-4.json +1 -0
  17. package/__tests__/coverage/.tmp/coverage-5.json +1 -0
  18. package/__tests__/mcp-client.test.ts +480 -0
  19. package/__tests__/p1-commands.test.ts +1064 -0
  20. package/bin/cli.js +14 -0
  21. package/dist/src/commands/agent.d.ts +8 -0
  22. package/dist/src/commands/agent.d.ts.map +1 -0
  23. package/dist/src/commands/agent.js +803 -0
  24. package/dist/src/commands/agent.js.map +1 -0
  25. package/dist/src/commands/config.d.ts +8 -0
  26. package/dist/src/commands/config.d.ts.map +1 -0
  27. package/dist/src/commands/config.js +406 -0
  28. package/dist/src/commands/config.js.map +1 -0
  29. package/dist/src/commands/hive-mind.d.ts +8 -0
  30. package/dist/src/commands/hive-mind.d.ts.map +1 -0
  31. package/dist/src/commands/hive-mind.js +627 -0
  32. package/dist/src/commands/hive-mind.js.map +1 -0
  33. package/dist/src/commands/hooks.d.ts +8 -0
  34. package/dist/src/commands/hooks.d.ts.map +1 -0
  35. package/dist/src/commands/hooks.js +2098 -0
  36. package/dist/src/commands/hooks.js.map +1 -0
  37. package/dist/src/commands/index.d.ts +51 -0
  38. package/dist/src/commands/index.d.ts.map +1 -0
  39. package/dist/src/commands/index.js +105 -0
  40. package/dist/src/commands/index.js.map +1 -0
  41. package/dist/src/commands/init.d.ts +8 -0
  42. package/dist/src/commands/init.d.ts.map +1 -0
  43. package/dist/src/commands/init.js +532 -0
  44. package/dist/src/commands/init.js.map +1 -0
  45. package/dist/src/commands/mcp.d.ts +11 -0
  46. package/dist/src/commands/mcp.d.ts.map +1 -0
  47. package/dist/src/commands/mcp.js +662 -0
  48. package/dist/src/commands/mcp.js.map +1 -0
  49. package/dist/src/commands/memory.d.ts +8 -0
  50. package/dist/src/commands/memory.d.ts.map +1 -0
  51. package/dist/src/commands/memory.js +911 -0
  52. package/dist/src/commands/memory.js.map +1 -0
  53. package/dist/src/commands/migrate.d.ts +8 -0
  54. package/dist/src/commands/migrate.d.ts.map +1 -0
  55. package/dist/src/commands/migrate.js +398 -0
  56. package/dist/src/commands/migrate.js.map +1 -0
  57. package/dist/src/commands/process.d.ts +10 -0
  58. package/dist/src/commands/process.d.ts.map +1 -0
  59. package/dist/src/commands/process.js +566 -0
  60. package/dist/src/commands/process.js.map +1 -0
  61. package/dist/src/commands/session.d.ts +8 -0
  62. package/dist/src/commands/session.d.ts.map +1 -0
  63. package/dist/src/commands/session.js +750 -0
  64. package/dist/src/commands/session.js.map +1 -0
  65. package/dist/src/commands/start.d.ts +8 -0
  66. package/dist/src/commands/start.d.ts.map +1 -0
  67. package/dist/src/commands/start.js +398 -0
  68. package/dist/src/commands/start.js.map +1 -0
  69. package/dist/src/commands/status.d.ts +8 -0
  70. package/dist/src/commands/status.d.ts.map +1 -0
  71. package/dist/src/commands/status.js +560 -0
  72. package/dist/src/commands/status.js.map +1 -0
  73. package/dist/src/commands/swarm.d.ts +8 -0
  74. package/dist/src/commands/swarm.d.ts.map +1 -0
  75. package/dist/src/commands/swarm.js +573 -0
  76. package/dist/src/commands/swarm.js.map +1 -0
  77. package/dist/src/commands/task.d.ts +8 -0
  78. package/dist/src/commands/task.d.ts.map +1 -0
  79. package/dist/src/commands/task.js +671 -0
  80. package/dist/src/commands/task.js.map +1 -0
  81. package/dist/src/commands/workflow.d.ts +8 -0
  82. package/dist/src/commands/workflow.d.ts.map +1 -0
  83. package/dist/src/commands/workflow.js +617 -0
  84. package/dist/src/commands/workflow.js.map +1 -0
  85. package/dist/src/config-adapter.d.ts +15 -0
  86. package/dist/src/config-adapter.d.ts.map +1 -0
  87. package/dist/src/config-adapter.js +185 -0
  88. package/dist/src/config-adapter.js.map +1 -0
  89. package/dist/src/index.d.ts +55 -0
  90. package/dist/src/index.d.ts.map +1 -0
  91. package/dist/src/index.js +312 -0
  92. package/dist/src/index.js.map +1 -0
  93. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  94. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  95. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  96. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -0
  97. package/dist/src/init/claudemd-generator.d.ts +15 -0
  98. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  99. package/dist/src/init/claudemd-generator.js +626 -0
  100. package/dist/src/init/claudemd-generator.js.map +1 -0
  101. package/dist/src/init/executor.d.ts +11 -0
  102. package/dist/src/init/executor.d.ts.map +1 -0
  103. package/dist/src/init/executor.js +647 -0
  104. package/dist/src/init/executor.js.map +1 -0
  105. package/dist/src/init/helpers-generator.d.ts +42 -0
  106. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  107. package/dist/src/init/helpers-generator.js +613 -0
  108. package/dist/src/init/helpers-generator.js.map +1 -0
  109. package/dist/src/init/index.d.ts +12 -0
  110. package/dist/src/init/index.d.ts.map +1 -0
  111. package/dist/src/init/index.js +15 -0
  112. package/dist/src/init/index.js.map +1 -0
  113. package/dist/src/init/mcp-generator.d.ts +18 -0
  114. package/dist/src/init/mcp-generator.d.ts.map +1 -0
  115. package/dist/src/init/mcp-generator.js +71 -0
  116. package/dist/src/init/mcp-generator.js.map +1 -0
  117. package/dist/src/init/settings-generator.d.ts +14 -0
  118. package/dist/src/init/settings-generator.d.ts.map +1 -0
  119. package/dist/src/init/settings-generator.js +257 -0
  120. package/dist/src/init/settings-generator.js.map +1 -0
  121. package/dist/src/init/statusline-generator.d.ts +14 -0
  122. package/dist/src/init/statusline-generator.d.ts.map +1 -0
  123. package/dist/src/init/statusline-generator.js +206 -0
  124. package/dist/src/init/statusline-generator.js.map +1 -0
  125. package/dist/src/init/types.d.ts +240 -0
  126. package/dist/src/init/types.d.ts.map +1 -0
  127. package/dist/src/init/types.js +210 -0
  128. package/dist/src/init/types.js.map +1 -0
  129. package/dist/src/mcp-client.d.ts +92 -0
  130. package/dist/src/mcp-client.d.ts.map +1 -0
  131. package/dist/src/mcp-client.js +189 -0
  132. package/dist/src/mcp-client.js.map +1 -0
  133. package/dist/src/mcp-server.d.ts +153 -0
  134. package/dist/src/mcp-server.d.ts.map +1 -0
  135. package/dist/src/mcp-server.js +448 -0
  136. package/dist/src/mcp-server.js.map +1 -0
  137. package/dist/src/mcp-tools/agent-tools.d.ts +8 -0
  138. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -0
  139. package/dist/src/mcp-tools/agent-tools.js +90 -0
  140. package/dist/src/mcp-tools/agent-tools.js.map +1 -0
  141. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  142. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -0
  143. package/dist/src/mcp-tools/config-tools.js +86 -0
  144. package/dist/src/mcp-tools/config-tools.js.map +1 -0
  145. package/dist/src/mcp-tools/hooks-tools.d.ts +41 -0
  146. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -0
  147. package/dist/src/mcp-tools/hooks-tools.js +1646 -0
  148. package/dist/src/mcp-tools/hooks-tools.js.map +1 -0
  149. package/dist/src/mcp-tools/index.d.ts +12 -0
  150. package/dist/src/mcp-tools/index.d.ts.map +1 -0
  151. package/dist/src/mcp-tools/index.js +11 -0
  152. package/dist/src/mcp-tools/index.js.map +1 -0
  153. package/dist/src/mcp-tools/memory-tools.d.ts +8 -0
  154. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -0
  155. package/dist/src/mcp-tools/memory-tools.js +87 -0
  156. package/dist/src/mcp-tools/memory-tools.js.map +1 -0
  157. package/dist/src/mcp-tools/swarm-tools.d.ts +8 -0
  158. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -0
  159. package/dist/src/mcp-tools/swarm-tools.js +67 -0
  160. package/dist/src/mcp-tools/swarm-tools.js.map +1 -0
  161. package/dist/src/mcp-tools/types.d.ts +31 -0
  162. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  163. package/dist/src/mcp-tools/types.js +7 -0
  164. package/dist/src/mcp-tools/types.js.map +1 -0
  165. package/dist/src/output.d.ts +117 -0
  166. package/dist/src/output.d.ts.map +1 -0
  167. package/dist/src/output.js +471 -0
  168. package/dist/src/output.js.map +1 -0
  169. package/dist/src/parser.d.ts +41 -0
  170. package/dist/src/parser.d.ts.map +1 -0
  171. package/dist/src/parser.js +353 -0
  172. package/dist/src/parser.js.map +1 -0
  173. package/dist/src/prompt.d.ts +44 -0
  174. package/dist/src/prompt.d.ts.map +1 -0
  175. package/dist/src/prompt.js +501 -0
  176. package/dist/src/prompt.js.map +1 -0
  177. package/dist/src/types.d.ts +198 -0
  178. package/dist/src/types.d.ts.map +1 -0
  179. package/dist/src/types.js +38 -0
  180. package/dist/src/types.js.map +1 -0
  181. package/dist/tsconfig.tsbuildinfo +1 -0
  182. package/docs/CONFIG_LOADING.md +236 -0
  183. package/docs/IMPLEMENTATION_COMPLETE.md +421 -0
  184. package/docs/MCP_CLIENT_GUIDE.md +620 -0
  185. package/docs/REFACTORING_SUMMARY.md +247 -0
  186. package/package.json +29 -0
  187. package/src/commands/agent.ts +941 -0
  188. package/src/commands/config.ts +452 -0
  189. package/src/commands/hive-mind.ts +762 -0
  190. package/src/commands/hooks.ts +2603 -0
  191. package/src/commands/index.ts +115 -0
  192. package/src/commands/init.ts +597 -0
  193. package/src/commands/mcp.ts +753 -0
  194. package/src/commands/memory.ts +1063 -0
  195. package/src/commands/migrate.ts +447 -0
  196. package/src/commands/process.ts +617 -0
  197. package/src/commands/session.ts +891 -0
  198. package/src/commands/start.ts +457 -0
  199. package/src/commands/status.ts +705 -0
  200. package/src/commands/swarm.ts +648 -0
  201. package/src/commands/task.ts +792 -0
  202. package/src/commands/workflow.ts +742 -0
  203. package/src/config-adapter.ts +210 -0
  204. package/src/index.ts +383 -0
  205. package/src/infrastructure/in-memory-repositories.ts +310 -0
  206. package/src/init/claudemd-generator.ts +631 -0
  207. package/src/init/executor.ts +756 -0
  208. package/src/init/helpers-generator.ts +628 -0
  209. package/src/init/index.ts +60 -0
  210. package/src/init/mcp-generator.ts +83 -0
  211. package/src/init/settings-generator.ts +274 -0
  212. package/src/init/statusline-generator.ts +211 -0
  213. package/src/init/types.ts +447 -0
  214. package/src/mcp-client.ts +227 -0
  215. package/src/mcp-server.ts +571 -0
  216. package/src/mcp-tools/agent-tools.ts +92 -0
  217. package/src/mcp-tools/config-tools.ts +88 -0
  218. package/src/mcp-tools/hooks-tools.ts +1819 -0
  219. package/src/mcp-tools/index.ts +12 -0
  220. package/src/mcp-tools/memory-tools.ts +89 -0
  221. package/src/mcp-tools/swarm-tools.ts +69 -0
  222. package/src/mcp-tools/types.ts +33 -0
  223. package/src/output.ts +593 -0
  224. package/src/parser.ts +417 -0
  225. package/src/prompt.ts +619 -0
  226. package/src/types.ts +287 -0
  227. package/tsconfig.json +16 -0
  228. package/tsconfig.tsbuildinfo +1 -0
  229. package/vitest.config.ts +13 -0
@@ -0,0 +1,247 @@
1
+ # CLI Commands Refactoring Summary
2
+
3
+ ## ADR-005 Implementation: MCP-First API Design
4
+
5
+ This document summarizes the refactoring of CLI commands to use MCP tools instead of hardcoded business logic.
6
+
7
+ ## Key Changes
8
+
9
+ ### 1. Created MCP Client Helper (`/workspaces/claude-flow/v3/@claude-flow/cli/src/mcp-client.ts`)
10
+
11
+ **Purpose**: Thin wrapper for calling MCP tools from CLI commands
12
+
13
+ **Key Functions**:
14
+ - `callMCPTool<T>(toolName, input, context)` - Call any MCP tool by name
15
+ - `getToolMetadata(toolName)` - Get tool schema and metadata
16
+ - `listMCPTools(category?)` - List available tools
17
+ - `validateToolInput(toolName, input)` - Validate inputs against schema
18
+ - `MCPClientError` - Custom error class for MCP tool failures
19
+
20
+ **Example Usage**:
21
+ ```typescript
22
+ import { callMCPTool, MCPClientError } from '../mcp-client.js';
23
+
24
+ try {
25
+ const result = await callMCPTool('agent/spawn', {
26
+ agentType: 'coder',
27
+ priority: 'normal'
28
+ });
29
+ // Handle success
30
+ } catch (error) {
31
+ if (error instanceof MCPClientError) {
32
+ output.printError(`Failed: ${error.message}`);
33
+ }
34
+ }
35
+ ```
36
+
37
+ ### 2. Refactoring Pattern
38
+
39
+ **Before** (Hardcoded Business Logic):
40
+ ```typescript
41
+ action: async (ctx: CommandContext): Promise<CommandResult> => {
42
+ // Hardcoded agent creation logic
43
+ const agentConfig = {
44
+ id: `agent-${Date.now()}`,
45
+ type: agentType,
46
+ name: agentName,
47
+ status: 'initializing',
48
+ // ...more hardcoded logic
49
+ };
50
+
51
+ return { success: true, data: agentConfig };
52
+ }
53
+ ```
54
+
55
+ **After** (MCP Tool Call):
56
+ ```typescript
57
+ action: async (ctx: CommandContext): Promise<CommandResult> => {
58
+ try {
59
+ // Call MCP tool - business logic lives in tool handler
60
+ const result = await callMCPTool('agent/spawn', {
61
+ agentType,
62
+ id: agentName,
63
+ config: { ... },
64
+ priority: 'normal'
65
+ });
66
+
67
+ // Only display formatting logic remains in CLI
68
+ output.printTable(/* format result */);
69
+ return { success: true, data: result };
70
+ } catch (error) {
71
+ if (error instanceof MCPClientError) {
72
+ output.printError(`Failed: ${error.message}`);
73
+ }
74
+ return { success: false, exitCode: 1 };
75
+ }
76
+ }
77
+ ```
78
+
79
+ ### 3. Refactored Commands
80
+
81
+ #### ✅ Agent Commands (`/workspaces/claude-flow/v3/@claude-flow/cli/src/commands/agent.ts`)
82
+
83
+ | Command | MCP Tool | Status |
84
+ |---------|----------|--------|
85
+ | `agent spawn` | `agent/spawn` | ✅ Refactored |
86
+ | `agent list` | `agent/list` | ✅ Refactored |
87
+ | `agent status` | `agent/status` | ✅ Refactored |
88
+ | `agent stop` | `agent/terminate` | ✅ Refactored |
89
+ | `agent metrics` | (Display only - uses agent/list) | ⚠️ Stub |
90
+
91
+ #### 🔄 Swarm Commands (`/workspaces/claude-flow/v3/@claude-flow/cli/src/commands/swarm.ts`)
92
+
93
+ | Command | MCP Tool | Status |
94
+ |---------|----------|--------|
95
+ | `swarm init` | `swarm/init` | ✅ Refactored |
96
+ | `swarm start` | (Composite - spawns agents) | ⏳ Partial |
97
+ | `swarm status` | `swarm/status` | ⏳ TODO |
98
+ | `swarm stop` | (Uses agent/terminate) | ⏳ TODO |
99
+ | `swarm scale` | `swarm/scale` | ⏳ TODO |
100
+ | `swarm coordinate` | (Display only - shows V3 agents) | ⚠️ Stub |
101
+
102
+ #### ⏳ Memory Commands (`/workspaces/claude-flow/v3/@claude-flow/cli/src/commands/memory.ts`)
103
+
104
+ | Command | MCP Tool | Status |
105
+ |---------|----------|--------|
106
+ | `memory store` | `memory/store` | ⏳ TODO |
107
+ | `memory retrieve` | (Uses memory/search) | ⏳ TODO |
108
+ | `memory search` | `memory/search` | ⏳ TODO |
109
+ | `memory list` | `memory/list` | ⏳ TODO |
110
+ | `memory delete` | (Not implemented in MCP yet) | ⏳ TODO |
111
+ | `memory stats` | (Aggregate of memory/list) | ⏳ TODO |
112
+ | `memory configure` | (Uses config/save) | ⏳ TODO |
113
+
114
+ #### ⏳ Config Commands (`/workspaces/claude-flow/v3/@claude-flow/cli/src/commands/config.ts`)
115
+
116
+ | Command | MCP Tool | Status |
117
+ |---------|----------|--------|
118
+ | `config init` | `config/save` | ⏳ TODO |
119
+ | `config get` | `config/load` | ⏳ TODO |
120
+ | `config set` | `config/save` | ⏳ TODO |
121
+ | `config providers` | `config/load` + formatting | ⏳ TODO |
122
+ | `config reset` | `config/save` | ⏳ TODO |
123
+ | `config export` | `config/load` | ⏳ TODO |
124
+ | `config import` | `config/save` | ⏳ TODO |
125
+
126
+ ### 4. Benefits of Refactoring
127
+
128
+ 1. **Separation of Concerns**: CLI only handles user interaction & display, MCP tools handle business logic
129
+ 2. **Testability**: MCP tools can be tested independently of CLI
130
+ 3. **Consistency**: Same business logic whether called from CLI, API, or other interfaces
131
+ 4. **Maintainability**: Single source of truth for operations
132
+ 5. **Extensibility**: Easy to add new commands by calling existing MCP tools
133
+
134
+ ### 5. File Organization
135
+
136
+ ```
137
+ v3/@claude-flow/cli/src/
138
+ ├── mcp-client.ts # NEW: MCP tool client helper
139
+ ├── commands/
140
+ │ ├── agent.ts # ✅ Refactored to use MCP tools
141
+ │ ├── swarm.ts # 🔄 Partially refactored
142
+ │ ├── memory.ts # ⏳ TODO
143
+ │ └── config.ts # ⏳ TODO
144
+ └── ...
145
+
146
+ v3/mcp/tools/
147
+ ├── agent-tools.ts # MCP tool implementations
148
+ ├── swarm-tools.ts
149
+ ├── memory-tools.ts
150
+ └── config-tools.ts
151
+ ```
152
+
153
+ ### 6. Next Steps
154
+
155
+ To complete the refactoring:
156
+
157
+ 1. **Swarm Commands**: Finish refactoring status, stop, scale commands
158
+ 2. **Memory Commands**: Refactor all memory commands to call MCP tools
159
+ 3. **Config Commands**: Refactor all config commands to call MCP tools
160
+ 4. **Testing**: Add integration tests for CLI → MCP tool flow
161
+ 5. **Documentation**: Update user documentation with new patterns
162
+
163
+ ### 7. Example: Complete Refactored Command
164
+
165
+ ```typescript
166
+ // /workspaces/claude-flow/v3/@claude-flow/cli/src/commands/agent.ts
167
+
168
+ import { callMCPTool, MCPClientError } from '../mcp-client.js';
169
+
170
+ const spawnCommand: Command = {
171
+ name: 'spawn',
172
+ description: 'Spawn a new agent',
173
+ options: [...],
174
+ action: async (ctx: CommandContext): Promise<CommandResult> => {
175
+ // 1. Gather input (interactive prompts if needed)
176
+ let agentType = ctx.flags.type as string;
177
+ if (!agentType && ctx.interactive) {
178
+ agentType = await select({
179
+ message: 'Select agent type:',
180
+ options: AGENT_TYPES
181
+ });
182
+ }
183
+
184
+ // 2. Validate required inputs
185
+ if (!agentType) {
186
+ output.printError('Agent type is required');
187
+ return { success: false, exitCode: 1 };
188
+ }
189
+
190
+ // 3. Call MCP tool (business logic)
191
+ try {
192
+ const result = await callMCPTool('agent/spawn', {
193
+ agentType,
194
+ config: { /* from flags */ },
195
+ priority: 'normal'
196
+ });
197
+
198
+ // 4. Format and display output
199
+ output.printTable({
200
+ data: [
201
+ { property: 'ID', value: result.agentId },
202
+ { property: 'Type', value: result.agentType },
203
+ { property: 'Status', value: result.status }
204
+ ]
205
+ });
206
+
207
+ output.printSuccess('Agent spawned successfully');
208
+
209
+ if (ctx.flags.format === 'json') {
210
+ output.printJson(result);
211
+ }
212
+
213
+ return { success: true, data: result };
214
+ } catch (error) {
215
+ // 5. Handle errors
216
+ if (error instanceof MCPClientError) {
217
+ output.printError(`Failed to spawn agent: ${error.message}`);
218
+ } else {
219
+ output.printError(`Unexpected error: ${String(error)}`);
220
+ }
221
+ return { success: false, exitCode: 1 };
222
+ }
223
+ }
224
+ };
225
+ ```
226
+
227
+ ### 8. MCP Tool Integration Points
228
+
229
+ Each CLI command maps to one or more MCP tools:
230
+
231
+ | CLI Pattern | MCP Tools Used | Notes |
232
+ |-------------|----------------|-------|
233
+ | Simple CRUD | Single tool (e.g., `agent/spawn`) | Direct 1:1 mapping |
234
+ | List/Query | Single tool with filters | MCP tool handles filtering |
235
+ | Composite | Multiple tools | CLI orchestrates, tools execute |
236
+ | Display-only | Query tool + formatting | CLI adds visual enhancements |
237
+
238
+ ## Conclusion
239
+
240
+ The refactoring successfully implements ADR-005 by making CLI commands thin wrappers around MCP tools. All business logic now resides in MCP tool handlers, with CLI commands responsible only for:
241
+ - User interaction (prompts, confirmations)
242
+ - Input validation and formatting
243
+ - Calling MCP tools
244
+ - Output formatting and display
245
+ - Error handling and user feedback
246
+
247
+ This creates a clean separation of concerns and follows the "CLI as thin wrapper around MCP tools" principle.
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@claude-flow/cli",
3
+ "version": "3.0.0-alpha.1",
4
+ "type": "module",
5
+ "description": "CLI module - command parsing, prompts, output formatting",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "claude-flow": "./bin/cli.js"
10
+ },
11
+ "exports": {
12
+ ".": "./dist/index.js"
13
+ },
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "test": "vitest run"
17
+ },
18
+ "devDependencies": {
19
+ "vitest": "^2.0.0",
20
+ "typescript": "^5.3.0"
21
+ },
22
+ "dependencies": {
23
+ "@claude-flow/shared": "^3.0.0-alpha.1"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public",
27
+ "tag": "v3alpha"
28
+ }
29
+ }