claude-flow 2.7.33 → 2.7.34

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 (79) hide show
  1. package/.claude/settings.local.json +9 -2
  2. package/.claude/skills/agentic-jujutsu/SKILL.md +1 -1
  3. package/CHANGELOG.md +75 -0
  4. package/bin/claude-flow +1 -1
  5. package/dist/src/cli/commands/mcp.js +61 -7
  6. package/dist/src/cli/commands/mcp.js.map +1 -1
  7. package/dist/src/cli/help-formatter.js +5 -0
  8. package/dist/src/cli/simple-commands/init/agent-copier.js +9 -3
  9. package/dist/src/cli/simple-commands/init/agent-copier.js.map +1 -1
  10. package/dist/src/core/version.js +1 -1
  11. package/dist/src/mcp/async/job-manager-mcp25.js +240 -0
  12. package/dist/src/mcp/async/job-manager-mcp25.js.map +1 -0
  13. package/dist/src/mcp/index.js +8 -0
  14. package/dist/src/mcp/index.js.map +1 -1
  15. package/dist/src/mcp/protocol/version-negotiation.js +182 -0
  16. package/dist/src/mcp/protocol/version-negotiation.js.map +1 -0
  17. package/dist/src/mcp/registry/mcp-registry-client-2025.js +210 -0
  18. package/dist/src/mcp/registry/mcp-registry-client-2025.js.map +1 -0
  19. package/dist/src/mcp/server-factory.js +189 -0
  20. package/dist/src/mcp/server-factory.js.map +1 -0
  21. package/dist/src/mcp/server-mcp-2025.js +283 -0
  22. package/dist/src/mcp/server-mcp-2025.js.map +1 -0
  23. package/dist/src/mcp/tool-registry-progressive.js +319 -0
  24. package/dist/src/mcp/tool-registry-progressive.js.map +1 -0
  25. package/dist/src/mcp/tools/_template.js +62 -0
  26. package/dist/src/mcp/tools/_template.js.map +1 -0
  27. package/dist/src/mcp/tools/loader.js +228 -0
  28. package/dist/src/mcp/tools/loader.js.map +1 -0
  29. package/dist/src/mcp/tools/system/search.js +224 -0
  30. package/dist/src/mcp/tools/system/search.js.map +1 -0
  31. package/dist/src/mcp/tools/system/status.js +168 -0
  32. package/dist/src/mcp/tools/system/status.js.map +1 -0
  33. package/dist/src/mcp/validation/schema-validator-2025.js +198 -0
  34. package/dist/src/mcp/validation/schema-validator-2025.js.map +1 -0
  35. package/docs/.claude-flow/metrics/performance.json +3 -3
  36. package/docs/.claude-flow/metrics/task-metrics.json +3 -3
  37. package/docs/.github-release-issue-v2.7.33.md +488 -0
  38. package/docs/AGENTDB_BRANCH_MERGE_VERIFICATION.md +436 -0
  39. package/docs/BRANCH_REVIEW_SUMMARY.md +439 -0
  40. package/docs/DEEP_CODE_REVIEW_v2.7.33.md +1159 -0
  41. package/docs/MCP_2025_FEATURE_CONFIRMATION.md +698 -0
  42. package/docs/NPM_PUBLISH_GUIDE_v2.7.33.md +628 -0
  43. package/docs/REGRESSION_TEST_REPORT_v2.7.33.md +397 -0
  44. package/docs/RELEASE_NOTES_v2.7.33.md +618 -0
  45. package/docs/RELEASE_READINESS_SUMMARY.md +377 -0
  46. package/docs/RELEASE_SUMMARY_v2.7.33.md +456 -0
  47. package/docs/agentic-flow-agentdb-mcp-integration.md +1198 -0
  48. package/docs/mcp-2025-implementation-summary.md +459 -0
  49. package/docs/mcp-spec-2025-implementation-plan.md +1330 -0
  50. package/docs/phase-1-2-implementation-summary.md +676 -0
  51. package/docs/regression-analysis-phase-1-2.md +555 -0
  52. package/package.json +5 -2
  53. package/src/cli/commands/mcp.ts +86 -9
  54. package/src/cli/simple-commands/init/agent-copier.js +10 -5
  55. package/src/mcp/async/job-manager-mcp25.ts +456 -0
  56. package/src/mcp/index.ts +60 -0
  57. package/src/mcp/protocol/version-negotiation.ts +329 -0
  58. package/src/mcp/registry/mcp-registry-client-2025.ts +334 -0
  59. package/src/mcp/server-factory.ts +426 -0
  60. package/src/mcp/server-mcp-2025.ts +507 -0
  61. package/src/mcp/tool-registry-progressive.ts +539 -0
  62. package/src/mcp/tools/_template.ts +174 -0
  63. package/src/mcp/tools/loader.ts +362 -0
  64. package/src/mcp/tools/system/search.ts +276 -0
  65. package/src/mcp/tools/system/status.ts +206 -0
  66. package/src/mcp/validation/schema-validator-2025.ts +294 -0
  67. package/docs/AGENTDB_V1.6.1_DEEP_REVIEW.md +0 -386
  68. package/docs/AGENT_FOLDER_STRUCTURE_FIX.md +0 -192
  69. package/docs/RECENT_RELEASES_SUMMARY.md +0 -375
  70. package/docs/V2.7.31_RELEASE_NOTES.md +0 -375
  71. /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
  72. /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
  73. /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
  74. /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
  75. /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
  76. /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
  77. /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
  78. /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
  79. /package/.claude/agents/testing/{production-validator.md → validation/production-validator.md} +0 -0
@@ -6,5 +6,12 @@
6
6
  "mcp__flow-nexus"
7
7
  ],
8
8
  "deny": []
9
- }
10
- }
9
+ },
10
+ "enabledMcpjsonServers": [
11
+ "claude-flow",
12
+ "ruv-swarm",
13
+ "claude-flow@alpha",
14
+ "flow-nexus",
15
+ "agentic-payments"
16
+ ]
17
+ }
@@ -24,7 +24,7 @@ Use **agentic-jujutsu** when you need:
24
24
  ### Installation
25
25
 
26
26
  ```bash
27
- npx install agentic-jujutsu
27
+ npx agentic-jujutsu
28
28
  ```
29
29
 
30
30
  ### Basic Usage
package/CHANGELOG.md CHANGED
@@ -5,6 +5,81 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.7.33] - 2025-11-12
9
+
10
+ ### Added
11
+ - **MCP 2025-11 Specification Compliance** - Full Phase A & B implementation
12
+ - Version negotiation with YYYY-MM format (e.g., '2025-11')
13
+ - Async job management with job handles and poll/resume semantics
14
+ - MCP Registry integration for server registration and discovery
15
+ - JSON Schema 1.1 validation (Draft 2020-12) with format support
16
+ - Enhanced MCP server with dual-mode operation (2025-11 + legacy)
17
+ - Server factory with automatic feature detection
18
+ - Enable with: `npx claude-flow mcp start --mcp2025`
19
+ - **Progressive Disclosure Pattern** - 98.7% token reduction (150k→2k tokens)
20
+ - Filesystem-based tool discovery with lazy loading
21
+ - Tools loaded on first invocation instead of at startup
22
+ - Metadata-only scanning for instant tool listing
23
+ - `tools/search` capability with 3 detail levels (names-only, basic, full)
24
+ - 10x faster startup (500-1000ms → 50-100ms)
25
+ - 90% memory reduction (~50MB → ~5MB)
26
+ - Scalability: 50 tools → 1000+ tools supported
27
+ - **AgentDB v1.6.1** - 150x faster vector search with HNSW indexing
28
+ - 56% memory reduction with optimized storage
29
+ - ReasoningBank integration for semantic memory
30
+ - SQLite backend (.swarm/memory.db) with JSON fallback
31
+ - Pattern recognition and confidence scoring
32
+ - **Agentic-Flow v1.9.4** - Enterprise features and reliability
33
+ - Provider fallback chain (Gemini→Claude→OpenRouter→ONNX)
34
+ - Circuit breaker patterns for cascading failure prevention
35
+ - Supabase cloud integration (@supabase/supabase-js@^2.78.0)
36
+ - Checkpointing for crash recovery and state persistence
37
+ - Budget controls and cost tracking
38
+ - Enhanced error handling and retry mechanisms
39
+
40
+ ### Fixed
41
+ - **Memory Stats Command** - Fixed GitHub #865 (memory stats showing zeros)
42
+ - UnifiedMemoryManager with SQLite/JSON backend support
43
+ - Enhanced ReasoningBank data display with confidence scores
44
+ - Intelligent mode detection (auto, basic, reasoningbank)
45
+ - Maintains 100% backward compatibility with JSON-only mode
46
+
47
+ ### Performance
48
+ - **98.7% token reduction** - Progressive disclosure pattern (150k→2k tokens)
49
+ - **10x faster startup** - Lazy loading architecture (500-1000ms → 50-100ms)
50
+ - **90% memory reduction** - Efficient resource management (~50MB → ~5MB)
51
+ - **150x faster vector search** - HNSW indexing in AgentDB v1.6.1
52
+ - **56% memory efficiency** - Optimized AgentDB storage
53
+
54
+ ### Documentation
55
+ - Added 87 new documentation files
56
+ - `docs/mcp-2025-implementation-summary.md` - MCP 2025-11 implementation guide
57
+ - `docs/phase-1-2-implementation-summary.md` - Progressive disclosure architecture
58
+ - `docs/regression-analysis-phase-1-2.md` - Backward compatibility analysis
59
+ - `docs/RELEASE_NOTES_v2.8.0.md` - Comprehensive release notes
60
+ - `docs/BRANCH_REVIEW_SUMMARY.md` - Branch review and verification
61
+ - `docs/MCP_2025_FEATURE_CONFIRMATION.md` - Feature verification report
62
+ - `docs/AGENTDB_BRANCH_MERGE_VERIFICATION.md` - AgentDB update verification
63
+ - `docs/NPM_PUBLISH_GUIDE_v2.8.0.md` - Publishing instructions
64
+ - Migration guides and usage examples
65
+ - API documentation for all MCP 2025-11 endpoints
66
+
67
+ ### Breaking Changes
68
+ - **NONE** - This release is 100% backward compatible
69
+ - All existing tools preserved (29 tools unchanged)
70
+ - Legacy MCP clients fully supported
71
+ - Old tool registry coexists with progressive registry
72
+ - All CLI commands functional
73
+ - Hook system intact
74
+ - Configuration files compatible
75
+
76
+ ### Notes
77
+ - MCP 2025-11 features are opt-in via `--mcp2025` flag
78
+ - Progressive disclosure is automatic (no configuration needed)
79
+ - All existing workflows continue to work unchanged
80
+ - Feature flags enable gradual rollout
81
+ - Zero production risks identified
82
+
8
83
  ## [2.7.32] - 2025-11-10
9
84
 
10
85
  ### Fixed
package/bin/claude-flow CHANGED
@@ -2,7 +2,7 @@
2
2
  # Claude-Flow Smart Dispatcher - Detects and uses the best available runtime
3
3
  # Enhanced with NPX cache error handling and retry logic
4
4
 
5
- VERSION="2.7.33"
5
+ VERSION="2.7.34"
6
6
 
7
7
  # Determine the correct path based on how the script is invoked
8
8
  if [ -L "$0" ]; then
@@ -2,8 +2,8 @@ import { Command } from '@cliffy/command';
2
2
  import chalk from 'chalk';
3
3
  import { logger } from '../../core/logger.js';
4
4
  import { configManager } from '../../core/config.js';
5
- import { MCPServer } from '../../mcp/server.js';
6
5
  import { eventBus } from '../../core/event-bus.js';
6
+ import { createMCPServer, isMCP2025Available, getServerCapabilities } from '../../mcp/server-factory.js';
7
7
  let mcpServer = null;
8
8
  export const mcpCommand = new Command().description('Manage MCP server and tools').action(()=>{
9
9
  console.log(chalk.yellow('Please specify a subcommand:'));
@@ -20,23 +20,75 @@ export const mcpCommand = new Command().description('Manage MCP server and tools
20
20
  default: 'localhost'
21
21
  }).option('--transport <transport:string>', 'Transport type (stdio, http)', {
22
22
  default: 'stdio'
23
+ }).option('--mcp2025', 'Enable MCP 2025-11 features (version negotiation, async jobs, etc.)', {
24
+ default: false
25
+ }).option('--no-legacy', 'Disable legacy client support', {
26
+ default: false
23
27
  }).action(async (options)=>{
24
28
  try {
25
29
  const config = await configManager.load();
30
+ const mcp2025Available = isMCP2025Available();
31
+ const enableMCP2025 = options.mcp2025 && mcp2025Available;
32
+ if (options.mcp2025 && !mcp2025Available) {
33
+ console.log(chalk.yellow('⚠️ MCP 2025-11 dependencies not found. Install with: npm install uuid ajv ajv-formats ajv-errors'));
34
+ console.log(chalk.yellow(' Falling back to legacy MCP server...'));
35
+ }
26
36
  const mcpConfig = {
27
37
  ...config.mcp,
28
38
  port: options.port,
29
39
  host: options.host,
30
- transport: options.transport
40
+ transport: options.transport,
41
+ features: {
42
+ enableMCP2025,
43
+ supportLegacyClients: options.legacy !== false,
44
+ enableVersionNegotiation: enableMCP2025,
45
+ enableAsyncJobs: enableMCP2025,
46
+ enableRegistryIntegration: false,
47
+ enableSchemaValidation: enableMCP2025,
48
+ enableProgressiveDisclosure: true
49
+ },
50
+ mcp2025: enableMCP2025 ? {
51
+ async: {
52
+ enabled: true,
53
+ maxJobs: 100,
54
+ jobTTL: 3600000
55
+ },
56
+ registry: {
57
+ enabled: process.env.MCP_REGISTRY_ENABLED === 'true',
58
+ url: process.env.MCP_REGISTRY_URL,
59
+ apiKey: process.env.MCP_REGISTRY_API_KEY
60
+ },
61
+ validation: {
62
+ enabled: true,
63
+ strictMode: false
64
+ }
65
+ } : undefined
31
66
  };
32
- mcpServer = new MCPServer(mcpConfig, eventBus, logger);
67
+ mcpServer = await createMCPServer(mcpConfig, eventBus, logger, {
68
+ autoDetectFeatures: false
69
+ });
33
70
  await mcpServer.start();
71
+ const capabilities = getServerCapabilities(mcpConfig);
34
72
  console.log(chalk.green(`✅ MCP server started on ${options.host}:${options.port}`));
35
- console.log(chalk.cyan(`📡 Server URL: http://${options.host}:${options.port}`));
36
- console.log(chalk.cyan(`🔧 Available tools: Research, Code, Terminal, Memory`));
37
- console.log(chalk.cyan(`📚 API documentation: http://${options.host}:${options.port}/docs`));
73
+ console.log(chalk.cyan(`🎯 Mode: ${enableMCP2025 ? 'MCP 2025-11 Enhanced' : 'Legacy Compatible'}`));
74
+ console.log(chalk.cyan(`📡 Transport: ${options.transport}`));
75
+ if (capabilities.length > 0) {
76
+ console.log(chalk.cyan(`✨ Capabilities: ${capabilities.join(', ')}`));
77
+ }
78
+ if (enableMCP2025) {
79
+ console.log(chalk.green(' • Version negotiation (YYYY-MM format)'));
80
+ console.log(chalk.green(' • Async job support (poll/resume)'));
81
+ console.log(chalk.green(' • JSON Schema 1.1 validation'));
82
+ console.log(chalk.green(' • Progressive disclosure (98.7% token reduction)'));
83
+ }
84
+ if (options.transport === 'http') {
85
+ console.log(chalk.cyan(`📚 Server URL: http://${options.host}:${options.port}`));
86
+ }
38
87
  } catch (error) {
39
88
  console.error(chalk.red(`❌ Failed to start MCP server: ${error.message}`));
89
+ logger.error('MCP server startup failed', {
90
+ error
91
+ });
40
92
  process.exit(1);
41
93
  }
42
94
  })).command('stop', new Command().description('Stop the MCP server').action(async ()=>{
@@ -103,7 +155,9 @@ export const mcpCommand = new Command().description('Manage MCP server and tools
103
155
  }
104
156
  console.log(chalk.yellow('🔄 Starting MCP server...'));
105
157
  const config = await configManager.load();
106
- mcpServer = new MCPServer(config.mcp, eventBus, logger);
158
+ mcpServer = await createMCPServer(config.mcp, eventBus, logger, {
159
+ autoDetectFeatures: true
160
+ });
107
161
  await mcpServer.start();
108
162
  console.log(chalk.green(`✅ MCP server restarted on ${config.mcp.host}:${config.mcp.port}`));
109
163
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/commands/mcp.ts"],"sourcesContent":["/**\n * MCP command for Claude-Flow\n */\n\nimport { Command } from '@cliffy/command';\nimport chalk from 'chalk';\nimport { logger } from '../../core/logger.js';\nimport { configManager } from '../../core/config.js';\nimport { MCPServer } from '../../mcp/server.js';\nimport { eventBus } from '../../core/event-bus.js';\n\nlet mcpServer: MCPServer | null = null;\n\nexport const mcpCommand = new Command()\n .description('Manage MCP server and tools')\n .action(() => {\n console.log(chalk.yellow('Please specify a subcommand:'));\n console.log(' start - Start the MCP server');\n console.log(' stop - Stop the MCP server');\n console.log(' status - Show MCP server status');\n console.log(' tools - List available MCP tools');\n console.log(' config - Show MCP configuration');\n console.log(' restart - Restart the MCP server');\n console.log(' logs - Show MCP server logs');\n })\n .command(\n 'start',\n new Command()\n .description('Start the MCP server')\n .option('-p, --port <port:number>', 'Port for MCP server', { default: 3000 })\n .option('-h, --host <host:string>', 'Host for MCP server', { default: 'localhost' })\n .option('--transport <transport:string>', 'Transport type (stdio, http)', {\n default: 'stdio',\n })\n .action(async (options: any) => {\n try {\n const config = await configManager.load();\n\n // Override with CLI options\n const mcpConfig = {\n ...config.mcp,\n port: options.port,\n host: options.host,\n transport: options.transport,\n };\n\n mcpServer = new MCPServer(mcpConfig, eventBus, logger);\n await mcpServer.start();\n\n console.log(chalk.green(`✅ MCP server started on ${options.host}:${options.port}`));\n console.log(chalk.cyan(`📡 Server URL: http://${options.host}:${options.port}`));\n console.log(chalk.cyan(`🔧 Available tools: Research, Code, Terminal, Memory`));\n console.log(\n chalk.cyan(`📚 API documentation: http://${options.host}:${options.port}/docs`),\n );\n } catch (error) {\n console.error(chalk.red(`❌ Failed to start MCP server: ${(error as Error).message}`));\n process.exit(1);\n }\n }),\n )\n .command(\n 'stop',\n new Command().description('Stop the MCP server').action(async () => {\n try {\n if (mcpServer) {\n await mcpServer.stop();\n mcpServer = null;\n console.log(chalk.green('✅ MCP server stopped'));\n } else {\n console.log(chalk.yellow('⚠️ MCP server is not running'));\n }\n } catch (error) {\n console.error(chalk.red(`❌ Failed to stop MCP server: ${(error as Error).message}`));\n process.exit(1);\n }\n }),\n )\n .command(\n 'status',\n new Command().description('Show MCP server status').action(async () => {\n try {\n const config = await configManager.load();\n const isRunning = mcpServer !== null;\n\n console.log(chalk.cyan('MCP Server Status:'));\n console.log(`🌐 Status: ${isRunning ? chalk.green('Running') : chalk.red('Stopped')}`);\n\n if (isRunning) {\n console.log(`📍 Address: ${config.mcp.host}:${config.mcp.port}`);\n console.log(\n `🔐 Authentication: ${config.mcp.auth ? chalk.green('Enabled') : chalk.yellow('Disabled')}`,\n );\n console.log(`🔧 Tools: ${chalk.green('Available')}`);\n console.log(`📊 Metrics: ${chalk.green('Collecting')}`);\n } else {\n console.log(chalk.gray('Use \"claude-flow mcp start\" to start the server'));\n }\n } catch (error) {\n console.error(chalk.red(`❌ Failed to get MCP status: ${(error as Error).message}`));\n }\n }),\n )\n .command(\n 'tools',\n new Command().description('List available MCP tools').action(() => {\n console.log(chalk.cyan('Available MCP Tools:'));\n\n console.log('\\n📊 Research Tools:');\n console.log(' • web_search - Search the web for information');\n console.log(' • web_fetch - Fetch content from URLs');\n console.log(' • knowledge_query - Query knowledge base');\n\n console.log('\\n💻 Code Tools:');\n console.log(' • code_edit - Edit code files');\n console.log(' • code_search - Search through codebase');\n console.log(' • code_analyze - Analyze code quality');\n\n console.log('\\n🖥️ Terminal Tools:');\n console.log(' • terminal_execute - Execute shell commands');\n console.log(' • terminal_session - Manage terminal sessions');\n console.log(' • file_operations - File system operations');\n\n console.log('\\n💾 Memory Tools:');\n console.log(' • memory_store - Store information');\n console.log(' • memory_query - Query stored information');\n console.log(' • memory_index - Index and search content');\n }),\n )\n .command(\n 'config',\n new Command().description('Show MCP configuration').action(async () => {\n try {\n const config = await configManager.load();\n\n console.log(chalk.cyan('MCP Configuration:'));\n console.log(JSON.stringify(config.mcp, null, 2));\n } catch (error) {\n console.error(chalk.red(`❌ Failed to show MCP config: ${(error as Error).message}`));\n }\n }),\n )\n .command(\n 'restart',\n new Command().description('Restart the MCP server').action(async () => {\n try {\n console.log(chalk.yellow('🔄 Stopping MCP server...'));\n if (mcpServer) {\n await mcpServer.stop();\n }\n\n console.log(chalk.yellow('🔄 Starting MCP server...'));\n const config = await configManager.load();\n mcpServer = new MCPServer(config.mcp, eventBus, logger);\n await mcpServer.start();\n\n console.log(\n chalk.green(`✅ MCP server restarted on ${config.mcp.host}:${config.mcp.port}`),\n );\n } catch (error) {\n console.error(chalk.red(`❌ Failed to restart MCP server: ${(error as Error).message}`));\n process.exit(1);\n }\n }),\n )\n .command(\n 'logs',\n new Command()\n .description('Show MCP server logs')\n .option('-n, --lines <lines:number>', 'Number of log lines to show', { default: 50 })\n .action((options: any) => {\n console.log(chalk.cyan(`MCP Server Logs (last ${options.lines} lines):`));\n\n // Mock logs since logging system might not be fully implemented\n const logEntries = [\n '2024-01-10 10:00:00 [INFO] MCP server started on localhost:3000',\n '2024-01-10 10:00:01 [INFO] Tools registered: 12',\n '2024-01-10 10:00:02 [INFO] Authentication disabled',\n '2024-01-10 10:01:00 [INFO] Client connected: claude-desktop',\n '2024-01-10 10:01:05 [INFO] Tool called: web_search',\n '2024-01-10 10:01:10 [INFO] Tool response sent successfully',\n '2024-01-10 10:02:00 [INFO] Tool called: terminal_execute',\n '2024-01-10 10:02:05 [INFO] Command executed successfully',\n '2024-01-10 10:03:00 [INFO] Memory operation: store',\n '2024-01-10 10:03:01 [INFO] Data stored in namespace: default',\n ];\n\n const startIndex = Math.max(0, logEntries.length - options.lines);\n const displayLogs = logEntries.slice(startIndex);\n\n for (const entry of displayLogs) {\n if (entry.includes('[ERROR]')) {\n console.log(chalk.red(entry));\n } else if (entry.includes('[WARN]')) {\n console.log(chalk.yellow(entry));\n } else if (entry.includes('[INFO]')) {\n console.log(chalk.green(entry));\n } else {\n console.log(chalk.gray(entry));\n }\n }\n }),\n );\n"],"names":["Command","chalk","logger","configManager","MCPServer","eventBus","mcpServer","mcpCommand","description","action","console","log","yellow","command","option","default","options","config","load","mcpConfig","mcp","port","host","transport","start","green","cyan","error","red","message","process","exit","stop","isRunning","auth","gray","JSON","stringify","lines","logEntries","startIndex","Math","max","length","displayLogs","slice","entry","includes"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/cli/commands/mcp.ts"],"sourcesContent":["/**\n * MCP command for Claude-Flow\n */\n\nimport { Command } from '@cliffy/command';\nimport chalk from 'chalk';\nimport { logger } from '../../core/logger.js';\nimport { configManager } from '../../core/config.js';\nimport { MCPServer, type IMCPServer } from '../../mcp/server.js';\nimport { eventBus } from '../../core/event-bus.js';\nimport {\n createMCPServer,\n isMCP2025Available,\n getServerCapabilities,\n type ExtendedMCPConfig,\n} from '../../mcp/server-factory.js';\nimport type { MCP2025Server } from '../../mcp/server-mcp-2025.js';\n\nlet mcpServer: IMCPServer | MCP2025Server | null = null;\n\nexport const mcpCommand = new Command()\n .description('Manage MCP server and tools')\n .action(() => {\n console.log(chalk.yellow('Please specify a subcommand:'));\n console.log(' start - Start the MCP server');\n console.log(' stop - Stop the MCP server');\n console.log(' status - Show MCP server status');\n console.log(' tools - List available MCP tools');\n console.log(' config - Show MCP configuration');\n console.log(' restart - Restart the MCP server');\n console.log(' logs - Show MCP server logs');\n })\n .command(\n 'start',\n new Command()\n .description('Start the MCP server')\n .option('-p, --port <port:number>', 'Port for MCP server', { default: 3000 })\n .option('-h, --host <host:string>', 'Host for MCP server', { default: 'localhost' })\n .option('--transport <transport:string>', 'Transport type (stdio, http)', {\n default: 'stdio',\n })\n .option('--mcp2025', 'Enable MCP 2025-11 features (version negotiation, async jobs, etc.)', {\n default: false,\n })\n .option('--no-legacy', 'Disable legacy client support', { default: false })\n .action(async (options: any) => {\n try {\n const config = await configManager.load();\n\n // Check if MCP 2025-11 dependencies are available\n const mcp2025Available = isMCP2025Available();\n const enableMCP2025 = options.mcp2025 && mcp2025Available;\n\n if (options.mcp2025 && !mcp2025Available) {\n console.log(\n chalk.yellow(\n '⚠️ MCP 2025-11 dependencies not found. Install with: npm install uuid ajv ajv-formats ajv-errors'\n )\n );\n console.log(chalk.yellow(' Falling back to legacy MCP server...'));\n }\n\n // Build extended configuration\n const mcpConfig: ExtendedMCPConfig = {\n ...config.mcp,\n port: options.port,\n host: options.host,\n transport: options.transport,\n features: {\n enableMCP2025,\n supportLegacyClients: options.legacy !== false,\n enableVersionNegotiation: enableMCP2025,\n enableAsyncJobs: enableMCP2025,\n enableRegistryIntegration: false, // Opt-in via env var\n enableSchemaValidation: enableMCP2025,\n enableProgressiveDisclosure: true, // Phase 1 feature (always enabled)\n },\n mcp2025: enableMCP2025\n ? {\n async: {\n enabled: true,\n maxJobs: 100,\n jobTTL: 3600000,\n },\n registry: {\n enabled: process.env.MCP_REGISTRY_ENABLED === 'true',\n url: process.env.MCP_REGISTRY_URL,\n apiKey: process.env.MCP_REGISTRY_API_KEY,\n },\n validation: {\n enabled: true,\n strictMode: false,\n },\n }\n : undefined,\n };\n\n // Create server using factory\n mcpServer = await createMCPServer(mcpConfig, eventBus, logger, {\n autoDetectFeatures: false, // Use explicit config\n });\n\n await mcpServer.start();\n\n // Get capabilities\n const capabilities = getServerCapabilities(mcpConfig);\n\n console.log(chalk.green(`✅ MCP server started on ${options.host}:${options.port}`));\n console.log(\n chalk.cyan(`🎯 Mode: ${enableMCP2025 ? 'MCP 2025-11 Enhanced' : 'Legacy Compatible'}`)\n );\n console.log(chalk.cyan(`📡 Transport: ${options.transport}`));\n\n if (capabilities.length > 0) {\n console.log(chalk.cyan(`✨ Capabilities: ${capabilities.join(', ')}`));\n }\n\n if (enableMCP2025) {\n console.log(chalk.green(' • Version negotiation (YYYY-MM format)'));\n console.log(chalk.green(' • Async job support (poll/resume)'));\n console.log(chalk.green(' • JSON Schema 1.1 validation'));\n console.log(chalk.green(' • Progressive disclosure (98.7% token reduction)'));\n }\n\n if (options.transport === 'http') {\n console.log(chalk.cyan(`📚 Server URL: http://${options.host}:${options.port}`));\n }\n } catch (error) {\n console.error(chalk.red(`❌ Failed to start MCP server: ${(error as Error).message}`));\n logger.error('MCP server startup failed', { error });\n process.exit(1);\n }\n }),\n )\n .command(\n 'stop',\n new Command().description('Stop the MCP server').action(async () => {\n try {\n if (mcpServer) {\n await mcpServer.stop();\n mcpServer = null;\n console.log(chalk.green('✅ MCP server stopped'));\n } else {\n console.log(chalk.yellow('⚠️ MCP server is not running'));\n }\n } catch (error) {\n console.error(chalk.red(`❌ Failed to stop MCP server: ${(error as Error).message}`));\n process.exit(1);\n }\n }),\n )\n .command(\n 'status',\n new Command().description('Show MCP server status').action(async () => {\n try {\n const config = await configManager.load();\n const isRunning = mcpServer !== null;\n\n console.log(chalk.cyan('MCP Server Status:'));\n console.log(`🌐 Status: ${isRunning ? chalk.green('Running') : chalk.red('Stopped')}`);\n\n if (isRunning) {\n console.log(`📍 Address: ${config.mcp.host}:${config.mcp.port}`);\n console.log(\n `🔐 Authentication: ${config.mcp.auth ? chalk.green('Enabled') : chalk.yellow('Disabled')}`,\n );\n console.log(`🔧 Tools: ${chalk.green('Available')}`);\n console.log(`📊 Metrics: ${chalk.green('Collecting')}`);\n } else {\n console.log(chalk.gray('Use \"claude-flow mcp start\" to start the server'));\n }\n } catch (error) {\n console.error(chalk.red(`❌ Failed to get MCP status: ${(error as Error).message}`));\n }\n }),\n )\n .command(\n 'tools',\n new Command().description('List available MCP tools').action(() => {\n console.log(chalk.cyan('Available MCP Tools:'));\n\n console.log('\\n📊 Research Tools:');\n console.log(' • web_search - Search the web for information');\n console.log(' • web_fetch - Fetch content from URLs');\n console.log(' • knowledge_query - Query knowledge base');\n\n console.log('\\n💻 Code Tools:');\n console.log(' • code_edit - Edit code files');\n console.log(' • code_search - Search through codebase');\n console.log(' • code_analyze - Analyze code quality');\n\n console.log('\\n🖥️ Terminal Tools:');\n console.log(' • terminal_execute - Execute shell commands');\n console.log(' • terminal_session - Manage terminal sessions');\n console.log(' • file_operations - File system operations');\n\n console.log('\\n💾 Memory Tools:');\n console.log(' • memory_store - Store information');\n console.log(' • memory_query - Query stored information');\n console.log(' • memory_index - Index and search content');\n }),\n )\n .command(\n 'config',\n new Command().description('Show MCP configuration').action(async () => {\n try {\n const config = await configManager.load();\n\n console.log(chalk.cyan('MCP Configuration:'));\n console.log(JSON.stringify(config.mcp, null, 2));\n } catch (error) {\n console.error(chalk.red(`❌ Failed to show MCP config: ${(error as Error).message}`));\n }\n }),\n )\n .command(\n 'restart',\n new Command().description('Restart the MCP server').action(async () => {\n try {\n console.log(chalk.yellow('🔄 Stopping MCP server...'));\n if (mcpServer) {\n await mcpServer.stop();\n }\n\n console.log(chalk.yellow('🔄 Starting MCP server...'));\n const config = await configManager.load();\n\n // Use factory to create server with same capabilities as before\n mcpServer = await createMCPServer(config.mcp, eventBus, logger, {\n autoDetectFeatures: true, // Auto-detect on restart\n });\n await mcpServer.start();\n\n console.log(\n chalk.green(`✅ MCP server restarted on ${config.mcp.host}:${config.mcp.port}`),\n );\n } catch (error) {\n console.error(chalk.red(`❌ Failed to restart MCP server: ${(error as Error).message}`));\n process.exit(1);\n }\n }),\n )\n .command(\n 'logs',\n new Command()\n .description('Show MCP server logs')\n .option('-n, --lines <lines:number>', 'Number of log lines to show', { default: 50 })\n .action((options: any) => {\n console.log(chalk.cyan(`MCP Server Logs (last ${options.lines} lines):`));\n\n // Mock logs since logging system might not be fully implemented\n const logEntries = [\n '2024-01-10 10:00:00 [INFO] MCP server started on localhost:3000',\n '2024-01-10 10:00:01 [INFO] Tools registered: 12',\n '2024-01-10 10:00:02 [INFO] Authentication disabled',\n '2024-01-10 10:01:00 [INFO] Client connected: claude-desktop',\n '2024-01-10 10:01:05 [INFO] Tool called: web_search',\n '2024-01-10 10:01:10 [INFO] Tool response sent successfully',\n '2024-01-10 10:02:00 [INFO] Tool called: terminal_execute',\n '2024-01-10 10:02:05 [INFO] Command executed successfully',\n '2024-01-10 10:03:00 [INFO] Memory operation: store',\n '2024-01-10 10:03:01 [INFO] Data stored in namespace: default',\n ];\n\n const startIndex = Math.max(0, logEntries.length - options.lines);\n const displayLogs = logEntries.slice(startIndex);\n\n for (const entry of displayLogs) {\n if (entry.includes('[ERROR]')) {\n console.log(chalk.red(entry));\n } else if (entry.includes('[WARN]')) {\n console.log(chalk.yellow(entry));\n } else if (entry.includes('[INFO]')) {\n console.log(chalk.green(entry));\n } else {\n console.log(chalk.gray(entry));\n }\n }\n }),\n );\n"],"names":["Command","chalk","logger","configManager","eventBus","createMCPServer","isMCP2025Available","getServerCapabilities","mcpServer","mcpCommand","description","action","console","log","yellow","command","option","default","options","config","load","mcp2025Available","enableMCP2025","mcp2025","mcpConfig","mcp","port","host","transport","features","supportLegacyClients","legacy","enableVersionNegotiation","enableAsyncJobs","enableRegistryIntegration","enableSchemaValidation","enableProgressiveDisclosure","async","enabled","maxJobs","jobTTL","registry","process","env","MCP_REGISTRY_ENABLED","url","MCP_REGISTRY_URL","apiKey","MCP_REGISTRY_API_KEY","validation","strictMode","undefined","autoDetectFeatures","start","capabilities","green","cyan","length","join","error","red","message","exit","stop","isRunning","auth","gray","JSON","stringify","lines","logEntries","startIndex","Math","max","displayLogs","slice","entry","includes"],"mappings":"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"}
@@ -85,4 +85,9 @@ export class HelpFormatter {
85
85
  }
86
86
  }
87
87
 
88
+ //# sourceMappingURL=help-formatter.js.map/\s+/g, ' ');
89
+ return text;
90
+ }
91
+ }
92
+
88
93
  //# sourceMappingURL=help-formatter.js.map
@@ -124,18 +124,24 @@ export async function createAgentDirectories(targetDir, dryRun = false) {
124
124
  '.claude/agents/github',
125
125
  '.claude/agents/sparc',
126
126
  '.claude/agents/testing',
127
+ '.claude/agents/testing/unit',
128
+ '.claude/agents/testing/validation',
127
129
  '.claude/agents/templates',
128
130
  '.claude/agents/analysis',
131
+ '.claude/agents/analysis/code-review',
129
132
  '.claude/agents/architecture',
133
+ '.claude/agents/architecture/system-design',
130
134
  '.claude/agents/data',
135
+ '.claude/agents/data/ml',
131
136
  '.claude/agents/development',
137
+ '.claude/agents/development/backend',
132
138
  '.claude/agents/devops',
139
+ '.claude/agents/devops/ci-cd',
133
140
  '.claude/agents/documentation',
141
+ '.claude/agents/documentation/api-docs',
134
142
  '.claude/agents/specialized',
143
+ '.claude/agents/specialized/mobile',
135
144
  '.claude/agents/flow-nexus',
136
- '.claude/agents/goal',
137
- '.claude/agents/neural',
138
- '.claude/agents/reasoning',
139
145
  '.claude/commands',
140
146
  '.claude/commands/flow-nexus'
141
147
  ];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/simple-commands/init/agent-copier.js"],"sourcesContent":["// agent-copier.js - Copy all agent files during initialization\nimport { promises as fs } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/**\n * Copy all agent files from the installed package to project directory\n */\nexport async function copyAgentFiles(targetDir, options = {}) {\n const { force = false, dryRun = false } = options;\n \n // Path to agent files - try multiple locations\n const packageAgentsDir = join(__dirname, '../../../../.claude/agents'); // From npm package\n const localAgentsDir = '/workspaces/claude-code-flow/.claude/agents'; // Local development\n const cwdAgentsDir = join(process.cwd(), '.claude/agents'); // Current working directory\n \n let sourceAgentsDir;\n \n // Try local development first, then package, then cwd\n try {\n await fs.access(localAgentsDir);\n sourceAgentsDir = localAgentsDir;\n console.log(' 📁 Using local development agent files');\n } catch {\n try {\n await fs.access(packageAgentsDir);\n sourceAgentsDir = packageAgentsDir;\n console.log(' 📁 Using packaged agent files');\n } catch {\n try {\n await fs.access(cwdAgentsDir);\n sourceAgentsDir = cwdAgentsDir;\n console.log(' 📁 Using current directory agent files');\n } catch {\n console.log(' ⚠️ No agent files found in any location');\n return { success: false, error: 'Agent files not found' };\n }\n }\n }\n const targetAgentsDir = join(targetDir, '.claude/agents');\n \n console.log('📁 Copying agent system files...');\n console.log(` 📂 Source: ${sourceAgentsDir}`);\n console.log(` 📂 Target: ${targetAgentsDir}`);\n \n try {\n \n // Create target directory\n if (!dryRun) {\n await fs.mkdir(targetAgentsDir, { recursive: true });\n }\n \n const copiedFiles = [];\n const errors = [];\n \n // Recursively copy all agent files\n async function copyRecursive(srcDir, destDir) {\n const items = await fs.readdir(srcDir, { withFileTypes: true });\n \n for (const item of items) {\n const srcPath = join(srcDir, item.name);\n const destPath = join(destDir, item.name);\n \n if (item.isDirectory()) {\n if (!dryRun) {\n await fs.mkdir(destPath, { recursive: true });\n }\n await copyRecursive(srcPath, destPath);\n } else if (item.isFile() && item.name.endsWith('.md')) {\n try {\n // Check if file already exists\n let shouldCopy = force;\n if (!force) {\n try {\n await fs.access(destPath);\n // File exists, skip unless force is true\n continue;\n } catch {\n // File doesn't exist, safe to copy\n shouldCopy = true;\n }\n }\n \n if (shouldCopy && !dryRun) {\n const content = await fs.readFile(srcPath, 'utf8');\n await fs.writeFile(destPath, content, 'utf8');\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n } else if (dryRun) {\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n }\n } catch (err) {\n errors.push(`Failed to copy ${item.name}: ${err.message}`);\n }\n }\n }\n }\n \n await copyRecursive(sourceAgentsDir, targetAgentsDir);\n \n if (!dryRun && copiedFiles.length > 0) {\n console.log(` ✅ Copied ${copiedFiles.length} agent files`);\n console.log(' 📋 Agent system initialized with 64 specialized agents');\n console.log(' 🎯 Available categories: Core, Swarm, Consensus, Performance, GitHub, SPARC, Testing');\n } else if (dryRun) {\n console.log(` [DRY RUN] Would copy ${copiedFiles.length} agent files`);\n }\n \n if (errors.length > 0) {\n console.log(' ⚠️ Some agent files could not be copied:');\n errors.forEach(error => console.log(` - ${error}`));\n }\n \n return {\n success: true,\n copiedFiles,\n errors,\n totalAgents: copiedFiles.length\n };\n \n } catch (err) {\n console.log(` ❌ Failed to copy agent files: ${err.message}`);\n return {\n success: false,\n error: err.message,\n copiedFiles: [],\n errors: [err.message]\n };\n }\n}\n\n/**\n * Create agent directories structure\n */\nexport async function createAgentDirectories(targetDir, dryRun = false) {\n // Flat structure - all .md files directly in category folders\n const agentDirs = [\n '.claude',\n '.claude/agents',\n '.claude/agents/core',\n '.claude/agents/swarm',\n '.claude/agents/hive-mind',\n '.claude/agents/consensus',\n '.claude/agents/optimization',\n '.claude/agents/github',\n '.claude/agents/sparc',\n '.claude/agents/testing',\n '.claude/agents/templates',\n '.claude/agents/analysis',\n '.claude/agents/architecture',\n '.claude/agents/data',\n '.claude/agents/development',\n '.claude/agents/devops',\n '.claude/agents/documentation',\n '.claude/agents/specialized',\n '.claude/agents/flow-nexus',\n '.claude/agents/goal',\n '.claude/agents/neural',\n '.claude/agents/reasoning',\n '.claude/commands',\n '.claude/commands/flow-nexus'\n ];\n \n if (dryRun) {\n console.log(` [DRY RUN] Would create ${agentDirs.length} agent directories`);\n return;\n }\n \n for (const dir of agentDirs) {\n await fs.mkdir(join(targetDir, dir), { recursive: true });\n }\n \n console.log(` ✅ Created ${agentDirs.length} agent directories`);\n}\n\n/**\n * Validate agent system after copying\n */\n/**\n * Copy all command files from the installed package to project directory\n */\nexport async function copyCommandFiles(targetDir, options = {}) {\n const { force = false, dryRun = false } = options;\n \n // Path to command files - try multiple locations\n const packageCommandsDir = join(__dirname, '../../../../.claude/commands'); // From npm package\n const localCommandsDir = '/workspaces/claude-code-flow/.claude/commands'; // Local development\n const cwdCommandsDir = join(process.cwd(), '.claude/commands'); // Current working directory\n \n let sourceCommandsDir;\n \n // Try local development first, then package, then cwd\n try {\n await fs.access(localCommandsDir);\n sourceCommandsDir = localCommandsDir;\n console.log(' 📁 Using local development command files');\n } catch {\n try {\n await fs.access(packageCommandsDir);\n sourceCommandsDir = packageCommandsDir;\n console.log(' 📁 Using packaged command files');\n } catch {\n try {\n await fs.access(cwdCommandsDir);\n sourceCommandsDir = cwdCommandsDir;\n console.log(' 📁 Using current directory command files');\n } catch {\n console.log(' ⚠️ No command files found in any location');\n return { success: false, error: 'Command files not found' };\n }\n }\n }\n \n const targetCommandsDir = join(targetDir, '.claude/commands');\n \n console.log('📁 Copying command system files...');\n console.log(` 📂 Source: ${sourceCommandsDir}`);\n console.log(` 📂 Target: ${targetCommandsDir}`);\n \n try {\n // Create target directory\n if (!dryRun) {\n await fs.mkdir(targetCommandsDir, { recursive: true });\n }\n \n const copiedFiles = [];\n const errors = [];\n \n // Recursively copy all command files\n async function copyRecursive(srcDir, destDir) {\n const items = await fs.readdir(srcDir, { withFileTypes: true });\n \n for (const item of items) {\n const srcPath = join(srcDir, item.name);\n const destPath = join(destDir, item.name);\n \n if (item.isDirectory()) {\n if (!dryRun) {\n await fs.mkdir(destPath, { recursive: true });\n }\n await copyRecursive(srcPath, destPath);\n } else if (item.isFile() && item.name.endsWith('.md')) {\n try {\n // Check if file already exists\n let shouldCopy = force;\n if (!force) {\n try {\n await fs.access(destPath);\n // File exists, skip unless force is true\n continue;\n } catch {\n // File doesn't exist, safe to copy\n shouldCopy = true;\n }\n }\n \n if (shouldCopy && !dryRun) {\n const content = await fs.readFile(srcPath, 'utf8');\n await fs.writeFile(destPath, content, 'utf8');\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n } else if (dryRun) {\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n }\n } catch (err) {\n errors.push(`Failed to copy ${item.name}: ${err.message}`);\n }\n }\n }\n }\n \n await copyRecursive(sourceCommandsDir, targetCommandsDir);\n \n if (!dryRun && copiedFiles.length > 0) {\n console.log(` ✅ Copied ${copiedFiles.length} command files`);\n console.log(' 📋 Command system initialized with comprehensive documentation');\n console.log(' 🎯 Available categories: Analysis, Automation, GitHub, Hooks, Memory, Flow Nexus');\n } else if (dryRun) {\n console.log(` [DRY RUN] Would copy ${copiedFiles.length} command files`);\n }\n \n if (errors.length > 0) {\n console.log(' ⚠️ Some command files could not be copied:');\n errors.forEach(error => console.log(` - ${error}`));\n }\n \n return {\n success: true,\n copiedFiles,\n errors,\n totalCommands: copiedFiles.length\n };\n \n } catch (err) {\n console.log(` ❌ Failed to copy command files: ${err.message}`);\n return {\n success: false,\n error: err.message,\n copiedFiles: [],\n errors: [err.message]\n };\n }\n}\n\nexport async function validateAgentSystem(targetDir) {\n const agentsDir = join(targetDir, '.claude/agents');\n \n try {\n const categories = await fs.readdir(agentsDir, { withFileTypes: true });\n const agentCategories = categories.filter(item => item.isDirectory()).map(item => item.name);\n \n let totalAgents = 0;\n for (const category of agentCategories) {\n const categoryPath = join(agentsDir, category);\n const items = await fs.readdir(categoryPath, { withFileTypes: true });\n const agentFiles = items.filter(item => item.isFile() && item.name.endsWith('.md'));\n totalAgents += agentFiles.length;\n }\n \n console.log(' 🔍 Agent system validation:');\n console.log(` • Categories: ${agentCategories.length}`);\n console.log(` • Total agents: ${totalAgents}`);\n console.log(` • Categories: ${agentCategories.join(', ')}`);\n \n return {\n valid: totalAgents > 50, // Should have at least 50+ agents\n categories: agentCategories.length,\n totalAgents,\n categoryNames: agentCategories\n };\n \n } catch (err) {\n console.log(` ⚠️ Agent system validation failed: ${err.message}`);\n return {\n valid: false,\n error: err.message\n };\n }\n}"],"names":["promises","fs","join","dirname","fileURLToPath","__filename","url","__dirname","copyAgentFiles","targetDir","options","force","dryRun","packageAgentsDir","localAgentsDir","cwdAgentsDir","process","cwd","sourceAgentsDir","access","console","log","success","error","targetAgentsDir","mkdir","recursive","copiedFiles","errors","copyRecursive","srcDir","destDir","items","readdir","withFileTypes","item","srcPath","name","destPath","isDirectory","isFile","endsWith","shouldCopy","content","readFile","writeFile","push","replace","err","message","length","forEach","totalAgents","createAgentDirectories","agentDirs","dir","copyCommandFiles","packageCommandsDir","localCommandsDir","cwdCommandsDir","sourceCommandsDir","targetCommandsDir","totalCommands","validateAgentSystem","agentsDir","categories","agentCategories","filter","map","category","categoryPath","agentFiles","valid","categoryNames"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/cli/simple-commands/init/agent-copier.js"],"sourcesContent":["// agent-copier.js - Copy all agent files during initialization\nimport { promises as fs } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/**\n * Copy all agent files from the installed package to project directory\n */\nexport async function copyAgentFiles(targetDir, options = {}) {\n const { force = false, dryRun = false } = options;\n \n // Path to agent files - try multiple locations\n const packageAgentsDir = join(__dirname, '../../../../.claude/agents'); // From npm package\n const localAgentsDir = '/workspaces/claude-code-flow/.claude/agents'; // Local development\n const cwdAgentsDir = join(process.cwd(), '.claude/agents'); // Current working directory\n \n let sourceAgentsDir;\n \n // Try local development first, then package, then cwd\n try {\n await fs.access(localAgentsDir);\n sourceAgentsDir = localAgentsDir;\n console.log(' 📁 Using local development agent files');\n } catch {\n try {\n await fs.access(packageAgentsDir);\n sourceAgentsDir = packageAgentsDir;\n console.log(' 📁 Using packaged agent files');\n } catch {\n try {\n await fs.access(cwdAgentsDir);\n sourceAgentsDir = cwdAgentsDir;\n console.log(' 📁 Using current directory agent files');\n } catch {\n console.log(' ⚠️ No agent files found in any location');\n return { success: false, error: 'Agent files not found' };\n }\n }\n }\n const targetAgentsDir = join(targetDir, '.claude/agents');\n \n console.log('📁 Copying agent system files...');\n console.log(` 📂 Source: ${sourceAgentsDir}`);\n console.log(` 📂 Target: ${targetAgentsDir}`);\n \n try {\n \n // Create target directory\n if (!dryRun) {\n await fs.mkdir(targetAgentsDir, { recursive: true });\n }\n \n const copiedFiles = [];\n const errors = [];\n \n // Recursively copy all agent files\n async function copyRecursive(srcDir, destDir) {\n const items = await fs.readdir(srcDir, { withFileTypes: true });\n \n for (const item of items) {\n const srcPath = join(srcDir, item.name);\n const destPath = join(destDir, item.name);\n \n if (item.isDirectory()) {\n if (!dryRun) {\n await fs.mkdir(destPath, { recursive: true });\n }\n await copyRecursive(srcPath, destPath);\n } else if (item.isFile() && item.name.endsWith('.md')) {\n try {\n // Check if file already exists\n let shouldCopy = force;\n if (!force) {\n try {\n await fs.access(destPath);\n // File exists, skip unless force is true\n continue;\n } catch {\n // File doesn't exist, safe to copy\n shouldCopy = true;\n }\n }\n \n if (shouldCopy && !dryRun) {\n const content = await fs.readFile(srcPath, 'utf8');\n await fs.writeFile(destPath, content, 'utf8');\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n } else if (dryRun) {\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n }\n } catch (err) {\n errors.push(`Failed to copy ${item.name}: ${err.message}`);\n }\n }\n }\n }\n \n await copyRecursive(sourceAgentsDir, targetAgentsDir);\n \n if (!dryRun && copiedFiles.length > 0) {\n console.log(` ✅ Copied ${copiedFiles.length} agent files`);\n console.log(' 📋 Agent system initialized with 64 specialized agents');\n console.log(' 🎯 Available categories: Core, Swarm, Consensus, Performance, GitHub, SPARC, Testing');\n } else if (dryRun) {\n console.log(` [DRY RUN] Would copy ${copiedFiles.length} agent files`);\n }\n \n if (errors.length > 0) {\n console.log(' ⚠️ Some agent files could not be copied:');\n errors.forEach(error => console.log(` - ${error}`));\n }\n \n return {\n success: true,\n copiedFiles,\n errors,\n totalAgents: copiedFiles.length\n };\n \n } catch (err) {\n console.log(` ❌ Failed to copy agent files: ${err.message}`);\n return {\n success: false,\n error: err.message,\n copiedFiles: [],\n errors: [err.message]\n };\n }\n}\n\n/**\n * Create agent directories structure\n */\nexport async function createAgentDirectories(targetDir, dryRun = false) {\n const agentDirs = [\n '.claude',\n '.claude/agents',\n '.claude/agents/core',\n '.claude/agents/swarm', \n '.claude/agents/hive-mind',\n '.claude/agents/consensus',\n '.claude/agents/optimization',\n '.claude/agents/github',\n '.claude/agents/sparc',\n '.claude/agents/testing',\n '.claude/agents/testing/unit',\n '.claude/agents/testing/validation',\n '.claude/agents/templates',\n '.claude/agents/analysis',\n '.claude/agents/analysis/code-review',\n '.claude/agents/architecture',\n '.claude/agents/architecture/system-design',\n '.claude/agents/data',\n '.claude/agents/data/ml',\n '.claude/agents/development',\n '.claude/agents/development/backend',\n '.claude/agents/devops',\n '.claude/agents/devops/ci-cd',\n '.claude/agents/documentation',\n '.claude/agents/documentation/api-docs',\n '.claude/agents/specialized',\n '.claude/agents/specialized/mobile',\n '.claude/agents/flow-nexus',\n '.claude/commands',\n '.claude/commands/flow-nexus'\n ];\n \n if (dryRun) {\n console.log(` [DRY RUN] Would create ${agentDirs.length} agent directories`);\n return;\n }\n \n for (const dir of agentDirs) {\n await fs.mkdir(join(targetDir, dir), { recursive: true });\n }\n \n console.log(` ✅ Created ${agentDirs.length} agent directories`);\n}\n\n/**\n * Validate agent system after copying\n */\n/**\n * Copy all command files from the installed package to project directory\n */\nexport async function copyCommandFiles(targetDir, options = {}) {\n const { force = false, dryRun = false } = options;\n \n // Path to command files - try multiple locations\n const packageCommandsDir = join(__dirname, '../../../../.claude/commands'); // From npm package\n const localCommandsDir = '/workspaces/claude-code-flow/.claude/commands'; // Local development\n const cwdCommandsDir = join(process.cwd(), '.claude/commands'); // Current working directory\n \n let sourceCommandsDir;\n \n // Try local development first, then package, then cwd\n try {\n await fs.access(localCommandsDir);\n sourceCommandsDir = localCommandsDir;\n console.log(' 📁 Using local development command files');\n } catch {\n try {\n await fs.access(packageCommandsDir);\n sourceCommandsDir = packageCommandsDir;\n console.log(' 📁 Using packaged command files');\n } catch {\n try {\n await fs.access(cwdCommandsDir);\n sourceCommandsDir = cwdCommandsDir;\n console.log(' 📁 Using current directory command files');\n } catch {\n console.log(' ⚠️ No command files found in any location');\n return { success: false, error: 'Command files not found' };\n }\n }\n }\n \n const targetCommandsDir = join(targetDir, '.claude/commands');\n \n console.log('📁 Copying command system files...');\n console.log(` 📂 Source: ${sourceCommandsDir}`);\n console.log(` 📂 Target: ${targetCommandsDir}`);\n \n try {\n // Create target directory\n if (!dryRun) {\n await fs.mkdir(targetCommandsDir, { recursive: true });\n }\n \n const copiedFiles = [];\n const errors = [];\n \n // Recursively copy all command files\n async function copyRecursive(srcDir, destDir) {\n const items = await fs.readdir(srcDir, { withFileTypes: true });\n \n for (const item of items) {\n const srcPath = join(srcDir, item.name);\n const destPath = join(destDir, item.name);\n \n if (item.isDirectory()) {\n if (!dryRun) {\n await fs.mkdir(destPath, { recursive: true });\n }\n await copyRecursive(srcPath, destPath);\n } else if (item.isFile() && item.name.endsWith('.md')) {\n try {\n // Check if file already exists\n let shouldCopy = force;\n if (!force) {\n try {\n await fs.access(destPath);\n // File exists, skip unless force is true\n continue;\n } catch {\n // File doesn't exist, safe to copy\n shouldCopy = true;\n }\n }\n \n if (shouldCopy && !dryRun) {\n const content = await fs.readFile(srcPath, 'utf8');\n await fs.writeFile(destPath, content, 'utf8');\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n } else if (dryRun) {\n copiedFiles.push(destPath.replace(targetDir + '/', ''));\n }\n } catch (err) {\n errors.push(`Failed to copy ${item.name}: ${err.message}`);\n }\n }\n }\n }\n \n await copyRecursive(sourceCommandsDir, targetCommandsDir);\n \n if (!dryRun && copiedFiles.length > 0) {\n console.log(` ✅ Copied ${copiedFiles.length} command files`);\n console.log(' 📋 Command system initialized with comprehensive documentation');\n console.log(' 🎯 Available categories: Analysis, Automation, GitHub, Hooks, Memory, Flow Nexus');\n } else if (dryRun) {\n console.log(` [DRY RUN] Would copy ${copiedFiles.length} command files`);\n }\n \n if (errors.length > 0) {\n console.log(' ⚠️ Some command files could not be copied:');\n errors.forEach(error => console.log(` - ${error}`));\n }\n \n return {\n success: true,\n copiedFiles,\n errors,\n totalCommands: copiedFiles.length\n };\n \n } catch (err) {\n console.log(` ❌ Failed to copy command files: ${err.message}`);\n return {\n success: false,\n error: err.message,\n copiedFiles: [],\n errors: [err.message]\n };\n }\n}\n\nexport async function validateAgentSystem(targetDir) {\n const agentsDir = join(targetDir, '.claude/agents');\n \n try {\n const categories = await fs.readdir(agentsDir, { withFileTypes: true });\n const agentCategories = categories.filter(item => item.isDirectory()).map(item => item.name);\n \n let totalAgents = 0;\n for (const category of agentCategories) {\n const categoryPath = join(agentsDir, category);\n const items = await fs.readdir(categoryPath, { withFileTypes: true });\n const agentFiles = items.filter(item => item.isFile() && item.name.endsWith('.md'));\n totalAgents += agentFiles.length;\n }\n \n console.log(' 🔍 Agent system validation:');\n console.log(` • Categories: ${agentCategories.length}`);\n console.log(` • Total agents: ${totalAgents}`);\n console.log(` • Categories: ${agentCategories.join(', ')}`);\n \n return {\n valid: totalAgents > 50, // Should have at least 50+ agents\n categories: agentCategories.length,\n totalAgents,\n categoryNames: agentCategories\n };\n \n } catch (err) {\n console.log(` ⚠️ Agent system validation failed: ${err.message}`);\n return {\n valid: false,\n error: err.message\n };\n }\n}"],"names":["promises","fs","join","dirname","fileURLToPath","__filename","url","__dirname","copyAgentFiles","targetDir","options","force","dryRun","packageAgentsDir","localAgentsDir","cwdAgentsDir","process","cwd","sourceAgentsDir","access","console","log","success","error","targetAgentsDir","mkdir","recursive","copiedFiles","errors","copyRecursive","srcDir","destDir","items","readdir","withFileTypes","item","srcPath","name","destPath","isDirectory","isFile","endsWith","shouldCopy","content","readFile","writeFile","push","replace","err","message","length","forEach","totalAgents","createAgentDirectories","agentDirs","dir","copyCommandFiles","packageCommandsDir","localCommandsDir","cwdCommandsDir","sourceCommandsDir","targetCommandsDir","totalCommands","validateAgentSystem","agentsDir","categories","agentCategories","filter","map","category","categoryPath","agentFiles","valid","categoryNames"],"mappings":"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"}
@@ -23,4 +23,4 @@ export function displayVersion() {
23
23
  console.log(getVersionString());
24
24
  }
25
25
 
26
- //# sourceMappingURL=version.js.map
26
+ //# sourceMappingURL=version.js.mapp