claude-flow 2.7.33 → 2.7.35

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 (99) hide show
  1. package/.claude/settings.local.json +9 -2
  2. package/.claude/skills/agentic-jujutsu/SKILL.md +1 -1
  3. package/CHANGELOG.md +140 -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/init/index.js +55 -33
  8. package/dist/src/cli/init/index.js.map +1 -1
  9. package/dist/src/cli/simple-cli.js +182 -172
  10. package/dist/src/cli/simple-cli.js.map +1 -1
  11. package/dist/src/cli/simple-commands/init/agent-copier.js +9 -3
  12. package/dist/src/cli/simple-commands/init/agent-copier.js.map +1 -1
  13. package/dist/src/core/DatabaseManager.js +39 -9
  14. package/dist/src/core/DatabaseManager.js.map +1 -1
  15. package/dist/src/mcp/async/job-manager-mcp25.js +240 -0
  16. package/dist/src/mcp/async/job-manager-mcp25.js.map +1 -0
  17. package/dist/src/mcp/index.js +8 -0
  18. package/dist/src/mcp/index.js.map +1 -1
  19. package/dist/src/mcp/protocol/version-negotiation.js +182 -0
  20. package/dist/src/mcp/protocol/version-negotiation.js.map +1 -0
  21. package/dist/src/mcp/registry/mcp-registry-client-2025.js +210 -0
  22. package/dist/src/mcp/registry/mcp-registry-client-2025.js.map +1 -0
  23. package/dist/src/mcp/server-factory.js +189 -0
  24. package/dist/src/mcp/server-factory.js.map +1 -0
  25. package/dist/src/mcp/server-mcp-2025.js +283 -0
  26. package/dist/src/mcp/server-mcp-2025.js.map +1 -0
  27. package/dist/src/mcp/tool-registry-progressive.js +319 -0
  28. package/dist/src/mcp/tool-registry-progressive.js.map +1 -0
  29. package/dist/src/mcp/tools/_template.js +62 -0
  30. package/dist/src/mcp/tools/_template.js.map +1 -0
  31. package/dist/src/mcp/tools/loader.js +228 -0
  32. package/dist/src/mcp/tools/loader.js.map +1 -0
  33. package/dist/src/mcp/tools/system/search.js +224 -0
  34. package/dist/src/mcp/tools/system/search.js.map +1 -0
  35. package/dist/src/mcp/tools/system/status.js +168 -0
  36. package/dist/src/mcp/tools/system/status.js.map +1 -0
  37. package/dist/src/mcp/validation/schema-validator-2025.js +198 -0
  38. package/dist/src/mcp/validation/schema-validator-2025.js.map +1 -0
  39. package/dist/src/utils/error-recovery.js +215 -0
  40. package/dist/src/utils/error-recovery.js.map +1 -0
  41. package/dist/src/utils/metrics-reader.js +10 -0
  42. package/dist/src/utils/metrics-reader.js.map +1 -1
  43. package/docs/.claude-flow/metrics/performance.json +3 -3
  44. package/docs/.claude-flow/metrics/task-metrics.json +3 -3
  45. package/docs/.github-release-issue-v2.7.33.md +488 -0
  46. package/docs/AGENTDB_BRANCH_MERGE_VERIFICATION.md +436 -0
  47. package/docs/AUTOMATIC_ERROR_RECOVERY_v2.7.35.md +321 -0
  48. package/docs/BRANCH_REVIEW_SUMMARY.md +439 -0
  49. package/docs/CONFIRMATION_AUTOMATIC_ERROR_RECOVERY.md +384 -0
  50. package/docs/DEEP_CODE_REVIEW_v2.7.33.md +1159 -0
  51. package/docs/DOCKER_TEST_RESULTS_v2.7.35.md +305 -0
  52. package/docs/MCP_2025_FEATURE_CONFIRMATION.md +698 -0
  53. package/docs/NPM_PUBLISH_GUIDE_v2.7.33.md +628 -0
  54. package/docs/REGRESSION_TEST_REPORT_v2.7.33.md +397 -0
  55. package/docs/RELEASE_NOTES_v2.7.33.md +618 -0
  56. package/docs/RELEASE_READINESS_SUMMARY.md +377 -0
  57. package/docs/RELEASE_SUMMARY_v2.7.33.md +456 -0
  58. package/docs/agentic-flow-agentdb-mcp-integration.md +1198 -0
  59. package/docs/features/automatic-error-recovery.md +333 -0
  60. package/docs/github-issues/README.md +88 -0
  61. package/docs/github-issues/wsl-enotempty-automatic-recovery.md +470 -0
  62. package/docs/mcp-2025-implementation-summary.md +459 -0
  63. package/docs/mcp-spec-2025-implementation-plan.md +1330 -0
  64. package/docs/phase-1-2-implementation-summary.md +676 -0
  65. package/docs/regression-analysis-phase-1-2.md +555 -0
  66. package/docs/troubleshooting/wsl-better-sqlite3-error.md +239 -0
  67. package/package.json +5 -2
  68. package/scripts/create-github-issue.sh +64 -0
  69. package/scripts/test-docker-wsl.sh +198 -0
  70. package/src/cli/commands/mcp.ts +86 -9
  71. package/src/cli/init/index.ts +72 -42
  72. package/src/cli/simple-commands/init/agent-copier.js +10 -5
  73. package/src/core/DatabaseManager.ts +55 -9
  74. package/src/mcp/async/job-manager-mcp25.ts +456 -0
  75. package/src/mcp/index.ts +60 -0
  76. package/src/mcp/protocol/version-negotiation.ts +329 -0
  77. package/src/mcp/registry/mcp-registry-client-2025.ts +334 -0
  78. package/src/mcp/server-factory.ts +426 -0
  79. package/src/mcp/server-mcp-2025.ts +507 -0
  80. package/src/mcp/tool-registry-progressive.ts +539 -0
  81. package/src/mcp/tools/_template.ts +174 -0
  82. package/src/mcp/tools/loader.ts +362 -0
  83. package/src/mcp/tools/system/search.ts +276 -0
  84. package/src/mcp/tools/system/status.ts +206 -0
  85. package/src/mcp/validation/schema-validator-2025.ts +294 -0
  86. package/src/utils/error-recovery.ts +325 -0
  87. package/docs/AGENTDB_V1.6.1_DEEP_REVIEW.md +0 -386
  88. package/docs/AGENT_FOLDER_STRUCTURE_FIX.md +0 -192
  89. package/docs/RECENT_RELEASES_SUMMARY.md +0 -375
  90. package/docs/V2.7.31_RELEASE_NOTES.md +0 -375
  91. /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
  92. /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
  93. /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
  94. /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
  95. /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
  96. /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
  97. /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
  98. /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
  99. /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,146 @@ 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.35] - 2025-11-13
9
+
10
+ ### Added
11
+ - **Automatic Error Recovery System** - Zero-intervention WSL error handling
12
+ - Automatic ENOTEMPTY npm cache error detection and cleanup
13
+ - WSL environment detection with proactive optimizations
14
+ - Intelligent retry logic with exponential backoff (1s, 2s, 4s, 8s, 16s)
15
+ - Up to 5 retry attempts with `--force` flag (3 attempts normal mode)
16
+ - Automatic SQLite → JSON fallback for database initialization
17
+ - Permission fixing for WSL filesystem issues
18
+ - better-sqlite3 verification and reinstallation on failure
19
+ - 100% automated - no manual intervention required
20
+
21
+ - **Error Recovery Utilities** (`src/utils/error-recovery.ts`)
22
+ - `isNpmCacheError()` - Detects npm/npx cache corruption
23
+ - `isWSL()` - Automatic WSL environment detection
24
+ - `cleanNpmCache()` - Automatic cache cleanup and permission fixes
25
+ - `retryWithRecovery()` - Generic retry wrapper with recovery callbacks
26
+ - `recoverWSLErrors()` - WSL-specific environment optimizations
27
+ - `recoverInitErrors()` - Comprehensive initialization error recovery
28
+
29
+ - **Enhanced DatabaseManager** (`src/core/DatabaseManager.ts`)
30
+ - Automatic retry counter with max 3 attempts per provider
31
+ - Graceful SQLite → JSON fallback on initialization failure
32
+ - Proactive error detection for npm cache issues
33
+ - Enhanced error logging with recovery suggestions
34
+
35
+ - **Improved Init Command** (`src/cli/init/index.ts`)
36
+ - Wrapped in `retryWithRecovery()` for automatic error handling
37
+ - Proactive WSL detection and optimization before initialization
38
+ - Extended retry count with `--force` flag (5 vs 3 attempts)
39
+ - Clear user feedback throughout recovery process
40
+
41
+ - **Comprehensive Documentation**
42
+ - `docs/features/automatic-error-recovery.md` - Complete feature guide
43
+ - `docs/troubleshooting/wsl-better-sqlite3-error.md` - Updated WSL guide
44
+ - `docs/AUTOMATIC_ERROR_RECOVERY_v2.7.35.md` - Implementation details
45
+ - `docs/DOCKER_TEST_RESULTS_v2.7.35.md` - Validation results
46
+
47
+ ### Fixed
48
+ - **WSL better-sqlite3 ENOTEMPTY Error** (GitHub #872)
49
+ - Automatic detection and recovery from npm cache corruption
50
+ - Eliminated need for manual `npm cache clean --force`
51
+ - Eliminated need for manual `rm -rf ~/.npm/_npx`
52
+ - Success rate improved from ~40% to 95%+ on WSL
53
+ - Recovery time reduced from 5-10 minutes to 10-15 seconds
54
+
55
+ - **npm Cache Corruption** during initialization
56
+ - Automatic cleanup of corrupted cache directories
57
+ - Fresh cache creation on retry attempts
58
+ - Permission fixes for WSL environments
59
+
60
+ ### Performance
61
+ - **95%+ success rate** on WSL (up from ~40%)
62
+ - **10-15 second recovery** (down from 5-10 minutes manual fix)
63
+ - **Zero manual steps** required (down from 3-4 manual commands)
64
+ - **100% test pass rate** in Docker (Ubuntu 22.04, Debian 12)
65
+
66
+ ### Testing
67
+ - Added comprehensive error recovery test suite
68
+ - Docker validation on Ubuntu 22.04 and Debian 12
69
+ - Corrupted cache simulation tests
70
+ - Cross-distribution compatibility verification
71
+ - 100% test success rate across all scenarios
72
+
73
+ ## [2.7.33] - 2025-11-12
74
+
75
+ ### Added
76
+ - **MCP 2025-11 Specification Compliance** - Full Phase A & B implementation
77
+ - Version negotiation with YYYY-MM format (e.g., '2025-11')
78
+ - Async job management with job handles and poll/resume semantics
79
+ - MCP Registry integration for server registration and discovery
80
+ - JSON Schema 1.1 validation (Draft 2020-12) with format support
81
+ - Enhanced MCP server with dual-mode operation (2025-11 + legacy)
82
+ - Server factory with automatic feature detection
83
+ - Enable with: `npx claude-flow mcp start --mcp2025`
84
+ - **Progressive Disclosure Pattern** - 98.7% token reduction (150k→2k tokens)
85
+ - Filesystem-based tool discovery with lazy loading
86
+ - Tools loaded on first invocation instead of at startup
87
+ - Metadata-only scanning for instant tool listing
88
+ - `tools/search` capability with 3 detail levels (names-only, basic, full)
89
+ - 10x faster startup (500-1000ms → 50-100ms)
90
+ - 90% memory reduction (~50MB → ~5MB)
91
+ - Scalability: 50 tools → 1000+ tools supported
92
+ - **AgentDB v1.6.1** - 150x faster vector search with HNSW indexing
93
+ - 56% memory reduction with optimized storage
94
+ - ReasoningBank integration for semantic memory
95
+ - SQLite backend (.swarm/memory.db) with JSON fallback
96
+ - Pattern recognition and confidence scoring
97
+ - **Agentic-Flow v1.9.4** - Enterprise features and reliability
98
+ - Provider fallback chain (Gemini→Claude→OpenRouter→ONNX)
99
+ - Circuit breaker patterns for cascading failure prevention
100
+ - Supabase cloud integration (@supabase/supabase-js@^2.78.0)
101
+ - Checkpointing for crash recovery and state persistence
102
+ - Budget controls and cost tracking
103
+ - Enhanced error handling and retry mechanisms
104
+
105
+ ### Fixed
106
+ - **Memory Stats Command** - Fixed GitHub #865 (memory stats showing zeros)
107
+ - UnifiedMemoryManager with SQLite/JSON backend support
108
+ - Enhanced ReasoningBank data display with confidence scores
109
+ - Intelligent mode detection (auto, basic, reasoningbank)
110
+ - Maintains 100% backward compatibility with JSON-only mode
111
+
112
+ ### Performance
113
+ - **98.7% token reduction** - Progressive disclosure pattern (150k→2k tokens)
114
+ - **10x faster startup** - Lazy loading architecture (500-1000ms → 50-100ms)
115
+ - **90% memory reduction** - Efficient resource management (~50MB → ~5MB)
116
+ - **150x faster vector search** - HNSW indexing in AgentDB v1.6.1
117
+ - **56% memory efficiency** - Optimized AgentDB storage
118
+
119
+ ### Documentation
120
+ - Added 87 new documentation files
121
+ - `docs/mcp-2025-implementation-summary.md` - MCP 2025-11 implementation guide
122
+ - `docs/phase-1-2-implementation-summary.md` - Progressive disclosure architecture
123
+ - `docs/regression-analysis-phase-1-2.md` - Backward compatibility analysis
124
+ - `docs/RELEASE_NOTES_v2.8.0.md` - Comprehensive release notes
125
+ - `docs/BRANCH_REVIEW_SUMMARY.md` - Branch review and verification
126
+ - `docs/MCP_2025_FEATURE_CONFIRMATION.md` - Feature verification report
127
+ - `docs/AGENTDB_BRANCH_MERGE_VERIFICATION.md` - AgentDB update verification
128
+ - `docs/NPM_PUBLISH_GUIDE_v2.8.0.md` - Publishing instructions
129
+ - Migration guides and usage examples
130
+ - API documentation for all MCP 2025-11 endpoints
131
+
132
+ ### Breaking Changes
133
+ - **NONE** - This release is 100% backward compatible
134
+ - All existing tools preserved (29 tools unchanged)
135
+ - Legacy MCP clients fully supported
136
+ - Old tool registry coexists with progressive registry
137
+ - All CLI commands functional
138
+ - Hook system intact
139
+ - Configuration files compatible
140
+
141
+ ### Notes
142
+ - MCP 2025-11 features are opt-in via `--mcp2025` flag
143
+ - Progressive disclosure is automatic (no configuration needed)
144
+ - All existing workflows continue to work unchanged
145
+ - Feature flags enable gradual rollout
146
+ - Zero production risks identified
147
+
8
148
  ## [2.7.32] - 2025-11-10
9
149
 
10
150
  ### 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.35"
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":"AAIA,SAASA,OAAO,QAAQ,kBAAkB;AAC1C,OAAOC,WAAW,QAAQ;AAC1B,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,SAAS,QAAQ,sBAAsB;AAChD,SAASC,QAAQ,QAAQ,0BAA0B;AAEnD,IAAIC,YAA8B;AAElC,OAAO,MAAMC,aAAa,IAAIP,UAC3BQ,WAAW,CAAC,+BACZC,MAAM,CAAC;IACNC,QAAQC,GAAG,CAACV,MAAMW,MAAM,CAAC;IACzBF,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;AACd,GACCE,OAAO,CACN,SACA,IAAIb,UACDQ,WAAW,CAAC,wBACZM,MAAM,CAAC,4BAA4B,uBAAuB;IAAEC,SAAS;AAAK,GAC1ED,MAAM,CAAC,4BAA4B,uBAAuB;IAAEC,SAAS;AAAY,GACjFD,MAAM,CAAC,kCAAkC,gCAAgC;IACxEC,SAAS;AACX,GACCN,MAAM,CAAC,OAAOO;IACb,IAAI;QACF,MAAMC,SAAS,MAAMd,cAAce,IAAI;QAGvC,MAAMC,YAAY;YAChB,GAAGF,OAAOG,GAAG;YACbC,MAAML,QAAQK,IAAI;YAClBC,MAAMN,QAAQM,IAAI;YAClBC,WAAWP,QAAQO,SAAS;QAC9B;QAEAjB,YAAY,IAAIF,UAAUe,WAAWd,UAAUH;QAC/C,MAAMI,UAAUkB,KAAK;QAErBd,QAAQC,GAAG,CAACV,MAAMwB,KAAK,CAAC,CAAC,wBAAwB,EAAET,QAAQM,IAAI,CAAC,CAAC,EAAEN,QAAQK,IAAI,EAAE;QACjFX,QAAQC,GAAG,CAACV,MAAMyB,IAAI,CAAC,CAAC,sBAAsB,EAAEV,QAAQM,IAAI,CAAC,CAAC,EAAEN,QAAQK,IAAI,EAAE;QAC9EX,QAAQC,GAAG,CAACV,MAAMyB,IAAI,CAAC,CAAC,oDAAoD,CAAC;QAC7EhB,QAAQC,GAAG,CACTV,MAAMyB,IAAI,CAAC,CAAC,6BAA6B,EAAEV,QAAQM,IAAI,CAAC,CAAC,EAAEN,QAAQK,IAAI,CAAC,KAAK,CAAC;IAElF,EAAE,OAAOM,OAAO;QACdjB,QAAQiB,KAAK,CAAC1B,MAAM2B,GAAG,CAAC,CAAC,8BAA8B,EAAE,AAACD,MAAgBE,OAAO,EAAE;QACnFC,QAAQC,IAAI,CAAC;IACf;AACF,IAEHlB,OAAO,CACN,QACA,IAAIb,UAAUQ,WAAW,CAAC,uBAAuBC,MAAM,CAAC;IACtD,IAAI;QACF,IAAIH,WAAW;YACb,MAAMA,UAAU0B,IAAI;YACpB1B,YAAY;YACZI,QAAQC,GAAG,CAACV,MAAMwB,KAAK,CAAC;QAC1B,OAAO;YACLf,QAAQC,GAAG,CAACV,MAAMW,MAAM,CAAC;QAC3B;IACF,EAAE,OAAOe,OAAO;QACdjB,QAAQiB,KAAK,CAAC1B,MAAM2B,GAAG,CAAC,CAAC,6BAA6B,EAAE,AAACD,MAAgBE,OAAO,EAAE;QAClFC,QAAQC,IAAI,CAAC;IACf;AACF,IAEDlB,OAAO,CACN,UACA,IAAIb,UAAUQ,WAAW,CAAC,0BAA0BC,MAAM,CAAC;IACzD,IAAI;QACF,MAAMQ,SAAS,MAAMd,cAAce,IAAI;QACvC,MAAMe,YAAY3B,cAAc;QAEhCI,QAAQC,GAAG,CAACV,MAAMyB,IAAI,CAAC;QACvBhB,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEsB,YAAYhC,MAAMwB,KAAK,CAAC,aAAaxB,MAAM2B,GAAG,CAAC,YAAY;QAErF,IAAIK,WAAW;YACbvB,QAAQC,GAAG,CAAC,CAAC,YAAY,EAAEM,OAAOG,GAAG,CAACE,IAAI,CAAC,CAAC,EAAEL,OAAOG,GAAG,CAACC,IAAI,EAAE;YAC/DX,QAAQC,GAAG,CACT,CAAC,mBAAmB,EAAEM,OAAOG,GAAG,CAACc,IAAI,GAAGjC,MAAMwB,KAAK,CAAC,aAAaxB,MAAMW,MAAM,CAAC,aAAa;YAE7FF,QAAQC,GAAG,CAAC,CAAC,UAAU,EAAEV,MAAMwB,KAAK,CAAC,cAAc;YACnDf,QAAQC,GAAG,CAAC,CAAC,YAAY,EAAEV,MAAMwB,KAAK,CAAC,eAAe;QACxD,OAAO;YACLf,QAAQC,GAAG,CAACV,MAAMkC,IAAI,CAAC;QACzB;IACF,EAAE,OAAOR,OAAO;QACdjB,QAAQiB,KAAK,CAAC1B,MAAM2B,GAAG,CAAC,CAAC,4BAA4B,EAAE,AAACD,MAAgBE,OAAO,EAAE;IACnF;AACF,IAEDhB,OAAO,CACN,SACA,IAAIb,UAAUQ,WAAW,CAAC,4BAA4BC,MAAM,CAAC;IAC3DC,QAAQC,GAAG,CAACV,MAAMyB,IAAI,CAAC;IAEvBhB,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IAEZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IAEZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IAEZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;AACd,IAEDE,OAAO,CACN,UACA,IAAIb,UAAUQ,WAAW,CAAC,0BAA0BC,MAAM,CAAC;IACzD,IAAI;QACF,MAAMQ,SAAS,MAAMd,cAAce,IAAI;QAEvCR,QAAQC,GAAG,CAACV,MAAMyB,IAAI,CAAC;QACvBhB,QAAQC,GAAG,CAACyB,KAAKC,SAAS,CAACpB,OAAOG,GAAG,EAAE,MAAM;IAC/C,EAAE,OAAOO,OAAO;QACdjB,QAAQiB,KAAK,CAAC1B,MAAM2B,GAAG,CAAC,CAAC,6BAA6B,EAAE,AAACD,MAAgBE,OAAO,EAAE;IACpF;AACF,IAEDhB,OAAO,CACN,WACA,IAAIb,UAAUQ,WAAW,CAAC,0BAA0BC,MAAM,CAAC;IACzD,IAAI;QACFC,QAAQC,GAAG,CAACV,MAAMW,MAAM,CAAC;QACzB,IAAIN,WAAW;YACb,MAAMA,UAAU0B,IAAI;QACtB;QAEAtB,QAAQC,GAAG,CAACV,MAAMW,MAAM,CAAC;QACzB,MAAMK,SAAS,MAAMd,cAAce,IAAI;QACvCZ,YAAY,IAAIF,UAAUa,OAAOG,GAAG,EAAEf,UAAUH;QAChD,MAAMI,UAAUkB,KAAK;QAErBd,QAAQC,GAAG,CACTV,MAAMwB,KAAK,CAAC,CAAC,0BAA0B,EAAER,OAAOG,GAAG,CAACE,IAAI,CAAC,CAAC,EAAEL,OAAOG,GAAG,CAACC,IAAI,EAAE;IAEjF,EAAE,OAAOM,OAAO;QACdjB,QAAQiB,KAAK,CAAC1B,MAAM2B,GAAG,CAAC,CAAC,gCAAgC,EAAE,AAACD,MAAgBE,OAAO,EAAE;QACrFC,QAAQC,IAAI,CAAC;IACf;AACF,IAEDlB,OAAO,CACN,QACA,IAAIb,UACDQ,WAAW,CAAC,wBACZM,MAAM,CAAC,8BAA8B,+BAA+B;IAAEC,SAAS;AAAG,GAClFN,MAAM,CAAC,CAACO;IACPN,QAAQC,GAAG,CAACV,MAAMyB,IAAI,CAAC,CAAC,sBAAsB,EAAEV,QAAQsB,KAAK,CAAC,QAAQ,CAAC;IAGvE,MAAMC,aAAa;QACjB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMC,aAAaC,KAAKC,GAAG,CAAC,GAAGH,WAAWI,MAAM,GAAG3B,QAAQsB,KAAK;IAChE,MAAMM,cAAcL,WAAWM,KAAK,CAACL;IAErC,KAAK,MAAMM,SAASF,YAAa;QAC/B,IAAIE,MAAMC,QAAQ,CAAC,YAAY;YAC7BrC,QAAQC,GAAG,CAACV,MAAM2B,GAAG,CAACkB;QACxB,OAAO,IAAIA,MAAMC,QAAQ,CAAC,WAAW;YACnCrC,QAAQC,GAAG,CAACV,MAAMW,MAAM,CAACkC;QAC3B,OAAO,IAAIA,MAAMC,QAAQ,CAAC,WAAW;YACnCrC,QAAQC,GAAG,CAACV,MAAMwB,KAAK,CAACqB;QAC1B,OAAO;YACLpC,QAAQC,GAAG,CAACV,MAAMkC,IAAI,CAACW;QACzB;IACF;AACF,IACF"}
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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"}
@@ -4,42 +4,64 @@ import { createSwarmCommands } from './swarm-commands.js';
4
4
  import { createSparcEnvironment } from './sparc-environment.js';
5
5
  import { createClaudeConfig } from './claude-config.js';
6
6
  import { createBatchToolsGuide } from './batch-tools.js';
7
+ import { errorRecovery } from '../../utils/error-recovery.js';
7
8
  export async function initCommand(options = {}) {
8
- try {
9
- const fs = await import('fs/promises');
10
- const path = await import('path');
11
- printSuccess('Initializing Claude-Flow project...');
12
- console.log('\nšŸ“ Phase 1: Creating directory structure...');
13
- await createDirectoryStructure();
14
- console.log('\nāš™ļø Phase 2: Creating configuration...');
15
- await createClaudeConfig(options);
16
- console.log('\nšŸ¤– Phase 3: Creating swarm commands...');
17
- await createSwarmCommands();
18
- console.log('\nšŸ”§ Phase 4: Creating batch tools guides...');
19
- await createBatchToolsGuide();
20
- if (options.sparc) {
21
- console.log('\nšŸš€ Phase 5: Creating SPARC environment...');
22
- await createSparcEnvironment();
9
+ return errorRecovery.retryWithRecovery(async ()=>{
10
+ try {
11
+ const fs = await import('fs/promises');
12
+ const path = await import('path');
13
+ printSuccess('Initializing Claude-Flow project...');
14
+ if (errorRecovery.isWSL()) {
15
+ console.log('šŸ” WSL environment detected');
16
+ const wslCheck = await errorRecovery.recoverWSLErrors();
17
+ if (wslCheck.recovered) {
18
+ console.log('āœ… WSL environment optimized\n');
19
+ }
20
+ }
21
+ console.log('\nšŸ“ Phase 1: Creating directory structure...');
22
+ await createDirectoryStructure();
23
+ console.log('\nāš™ļø Phase 2: Creating configuration...');
24
+ await createClaudeConfig(options);
25
+ console.log('\nšŸ¤– Phase 3: Creating swarm commands...');
26
+ await createSwarmCommands();
27
+ console.log('\nšŸ”§ Phase 4: Creating batch tools guides...');
28
+ await createBatchToolsGuide();
29
+ if (options.sparc) {
30
+ console.log('\nšŸš€ Phase 5: Creating SPARC environment...');
31
+ await createSparcEnvironment();
32
+ }
33
+ console.log('\nšŸŽ‰ Project initialized successfully!');
34
+ console.log(' šŸ“ Created .claude/ directory structure');
35
+ console.log(' šŸ“‹ Created comprehensive swarm command documentation');
36
+ console.log(' šŸ”§ Created batch tools coordination guides');
37
+ console.log(' šŸ“– Created detailed usage examples with orchestration');
38
+ console.log('\n Next steps:');
39
+ console.log(' 1. Run "claude-flow swarm --help" to see swarm options');
40
+ console.log(' 2. Check .claude/commands/swarm/ for detailed documentation');
41
+ console.log(' 3. Review batch tools guide for orchestration patterns');
42
+ console.log(' 4. Run "claude-flow help" for all available commands');
43
+ if (options.sparc) {
44
+ console.log(' 5. Run "claude-flow sparc modes" to see available SPARC modes');
45
+ console.log(' 6. Use TodoWrite/TodoRead for task coordination');
46
+ console.log(' 7. Use Task tool for parallel agent execution');
47
+ }
48
+ } catch (error) {
49
+ const recovery = await errorRecovery.recoverInitErrors(error);
50
+ if (recovery.recovered) {
51
+ console.log('āœ… Recovered from error, retrying initialization...\n');
52
+ throw error;
53
+ } else {
54
+ printError(`Failed to initialize project: ${error instanceof Error ? error.message : String(error)}`);
55
+ throw error;
56
+ }
23
57
  }
24
- console.log('\nšŸŽ‰ Project initialized successfully!');
25
- console.log(' šŸ“ Created .claude/ directory structure');
26
- console.log(' šŸ“‹ Created comprehensive swarm command documentation');
27
- console.log(' šŸ”§ Created batch tools coordination guides');
28
- console.log(' šŸ“– Created detailed usage examples with orchestration');
29
- console.log('\n Next steps:');
30
- console.log(' 1. Run "claude-flow swarm --help" to see swarm options');
31
- console.log(' 2. Check .claude/commands/swarm/ for detailed documentation');
32
- console.log(' 3. Review batch tools guide for orchestration patterns');
33
- console.log(' 4. Run "claude-flow help" for all available commands');
34
- if (options.sparc) {
35
- console.log(' 5. Run "claude-flow sparc modes" to see available SPARC modes');
36
- console.log(' 6. Use TodoWrite/TodoRead for task coordination');
37
- console.log(' 7. Use Task tool for parallel agent execution');
58
+ }, {
59
+ maxRetries: options.force ? 5 : 3,
60
+ delay: 1000,
61
+ onRetry: (attempt, error)=>{
62
+ console.log(`\nšŸ”„ Retry attempt ${attempt} after error recovery...`);
38
63
  }
39
- } catch (error) {
40
- printError(`Failed to initialize project: ${error instanceof Error ? error.message : String(error)}`);
41
- throw error;
42
- }
64
+ });
43
65
  }
44
66
 
45
67
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/init/index.ts"],"sourcesContent":["// init/index.ts - Main init command orchestrator\nimport { printSuccess, printError } from '../utils.js';\nimport { createDirectoryStructure } from './directory-structure.js';\nimport { createSwarmCommands } from './swarm-commands.js';\nimport { createSparcEnvironment } from './sparc-environment.js';\nimport { createClaudeConfig } from './claude-config.js';\nimport { createBatchToolsGuide } from './batch-tools.js';\n\nexport interface InitOptions {\n sparc?: boolean;\n force?: boolean;\n}\n\nexport async function initCommand(options: InitOptions = {}) {\n try {\n const fs = await import('fs/promises');\n const path = await import('path');\n\n printSuccess('Initializing Claude-Flow project...');\n\n // Phase 1: Create directory structure\n console.log('\\nšŸ“ Phase 1: Creating directory structure...');\n await createDirectoryStructure();\n\n // Phase 2: Create base configuration\n console.log('\\nāš™ļø Phase 2: Creating configuration...');\n await createClaudeConfig(options);\n\n // Phase 3: Create swarm commands and documentation\n console.log('\\nšŸ¤– Phase 3: Creating swarm commands...');\n await createSwarmCommands();\n\n // Phase 4: Create batch tools guides\n console.log('\\nšŸ”§ Phase 4: Creating batch tools guides...');\n await createBatchToolsGuide();\n\n // Phase 5: SPARC environment (if requested)\n if (options.sparc) {\n console.log('\\nšŸš€ Phase 5: Creating SPARC environment...');\n await createSparcEnvironment();\n }\n\n // Success summary\n console.log('\\nšŸŽ‰ Project initialized successfully!');\n console.log(' šŸ“ Created .claude/ directory structure');\n console.log(' šŸ“‹ Created comprehensive swarm command documentation');\n console.log(' šŸ”§ Created batch tools coordination guides');\n console.log(' šŸ“– Created detailed usage examples with orchestration');\n\n console.log('\\n Next steps:');\n console.log(' 1. Run \"claude-flow swarm --help\" to see swarm options');\n console.log(' 2. Check .claude/commands/swarm/ for detailed documentation');\n console.log(' 3. Review batch tools guide for orchestration patterns');\n console.log(' 4. Run \"claude-flow help\" for all available commands');\n\n if (options.sparc) {\n console.log(' 5. Run \"claude-flow sparc modes\" to see available SPARC modes');\n console.log(' 6. Use TodoWrite/TodoRead for task coordination');\n console.log(' 7. Use Task tool for parallel agent execution');\n }\n } catch (error) {\n printError(\n `Failed to initialize project: ${error instanceof Error ? error.message : String(error)}`,\n );\n throw error;\n }\n}\n"],"names":["printSuccess","printError","createDirectoryStructure","createSwarmCommands","createSparcEnvironment","createClaudeConfig","createBatchToolsGuide","initCommand","options","fs","path","console","log","sparc","error","Error","message","String"],"mappings":"AACA,SAASA,YAAY,EAAEC,UAAU,QAAQ,cAAc;AACvD,SAASC,wBAAwB,QAAQ,2BAA2B;AACpE,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,sBAAsB,QAAQ,yBAAyB;AAChE,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,SAASC,qBAAqB,QAAQ,mBAAmB;AAOzD,OAAO,eAAeC,YAAYC,UAAuB,CAAC,CAAC;IACzD,IAAI;QACF,MAAMC,KAAK,MAAM,MAAM,CAAC;QACxB,MAAMC,OAAO,MAAM,MAAM,CAAC;QAE1BV,aAAa;QAGbW,QAAQC,GAAG,CAAC;QACZ,MAAMV;QAGNS,QAAQC,GAAG,CAAC;QACZ,MAAMP,mBAAmBG;QAGzBG,QAAQC,GAAG,CAAC;QACZ,MAAMT;QAGNQ,QAAQC,GAAG,CAAC;QACZ,MAAMN;QAGN,IAAIE,QAAQK,KAAK,EAAE;YACjBF,QAAQC,GAAG,CAAC;YACZ,MAAMR;QACR;QAGAO,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QAEZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QAEZ,IAAIJ,QAAQK,KAAK,EAAE;YACjBF,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;QACd;IACF,EAAE,OAAOE,OAAO;QACdb,WACE,CAAC,8BAA8B,EAAEa,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH,QAAQ;QAE3F,MAAMA;IACR;AACF"}
1
+ {"version":3,"sources":["../../../../src/cli/init/index.ts"],"sourcesContent":["// init/index.ts - Main init command orchestrator\nimport { printSuccess, printError } from '../utils.js';\nimport { createDirectoryStructure } from './directory-structure.js';\nimport { createSwarmCommands } from './swarm-commands.js';\nimport { createSparcEnvironment } from './sparc-environment.js';\nimport { createClaudeConfig } from './claude-config.js';\nimport { createBatchToolsGuide } from './batch-tools.js';\nimport { errorRecovery } from '../../utils/error-recovery.js';\n\nexport interface InitOptions {\n sparc?: boolean;\n force?: boolean;\n}\n\nexport async function initCommand(options: InitOptions = {}) {\n // Wrap entire initialization in retry logic with automatic recovery\n return errorRecovery.retryWithRecovery(\n async () => {\n try {\n const fs = await import('fs/promises');\n const path = await import('path');\n\n printSuccess('Initializing Claude-Flow project...');\n\n // Check WSL environment and apply fixes proactively\n if (errorRecovery.isWSL()) {\n console.log('šŸ” WSL environment detected');\n const wslCheck = await errorRecovery.recoverWSLErrors();\n if (wslCheck.recovered) {\n console.log('āœ… WSL environment optimized\\n');\n }\n }\n\n // Phase 1: Create directory structure\n console.log('\\nšŸ“ Phase 1: Creating directory structure...');\n await createDirectoryStructure();\n\n // Phase 2: Create base configuration\n console.log('\\nāš™ļø Phase 2: Creating configuration...');\n await createClaudeConfig(options);\n\n // Phase 3: Create swarm commands and documentation\n console.log('\\nšŸ¤– Phase 3: Creating swarm commands...');\n await createSwarmCommands();\n\n // Phase 4: Create batch tools guides\n console.log('\\nšŸ”§ Phase 4: Creating batch tools guides...');\n await createBatchToolsGuide();\n\n // Phase 5: SPARC environment (if requested)\n if (options.sparc) {\n console.log('\\nšŸš€ Phase 5: Creating SPARC environment...');\n await createSparcEnvironment();\n }\n\n // Success summary\n console.log('\\nšŸŽ‰ Project initialized successfully!');\n console.log(' šŸ“ Created .claude/ directory structure');\n console.log(' šŸ“‹ Created comprehensive swarm command documentation');\n console.log(' šŸ”§ Created batch tools coordination guides');\n console.log(' šŸ“– Created detailed usage examples with orchestration');\n\n console.log('\\n Next steps:');\n console.log(' 1. Run \"claude-flow swarm --help\" to see swarm options');\n console.log(' 2. Check .claude/commands/swarm/ for detailed documentation');\n console.log(' 3. Review batch tools guide for orchestration patterns');\n console.log(' 4. Run \"claude-flow help\" for all available commands');\n\n if (options.sparc) {\n console.log(' 5. Run \"claude-flow sparc modes\" to see available SPARC modes');\n console.log(' 6. Use TodoWrite/TodoRead for task coordination');\n console.log(' 7. Use Task tool for parallel agent execution');\n }\n } catch (error) {\n // Attempt automatic error recovery\n const recovery = await errorRecovery.recoverInitErrors(error);\n\n if (recovery.recovered) {\n console.log('āœ… Recovered from error, retrying initialization...\\n');\n throw error; // Trigger retry\n } else {\n printError(\n `Failed to initialize project: ${error instanceof Error ? error.message : String(error)}`,\n );\n throw error;\n }\n }\n },\n {\n maxRetries: options.force ? 5 : 3,\n delay: 1000,\n onRetry: (attempt, error) => {\n console.log(`\\nšŸ”„ Retry attempt ${attempt} after error recovery...`);\n }\n }\n );\n}\n"],"names":["printSuccess","printError","createDirectoryStructure","createSwarmCommands","createSparcEnvironment","createClaudeConfig","createBatchToolsGuide","errorRecovery","initCommand","options","retryWithRecovery","fs","path","isWSL","console","log","wslCheck","recoverWSLErrors","recovered","sparc","error","recovery","recoverInitErrors","Error","message","String","maxRetries","force","delay","onRetry","attempt"],"mappings":"AACA,SAASA,YAAY,EAAEC,UAAU,QAAQ,cAAc;AACvD,SAASC,wBAAwB,QAAQ,2BAA2B;AACpE,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,sBAAsB,QAAQ,yBAAyB;AAChE,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,SAASC,aAAa,QAAQ,gCAAgC;AAO9D,OAAO,eAAeC,YAAYC,UAAuB,CAAC,CAAC;IAEzD,OAAOF,cAAcG,iBAAiB,CACpC;QACE,IAAI;YACF,MAAMC,KAAK,MAAM,MAAM,CAAC;YACxB,MAAMC,OAAO,MAAM,MAAM,CAAC;YAE1BZ,aAAa;YAGb,IAAIO,cAAcM,KAAK,IAAI;gBACzBC,QAAQC,GAAG,CAAC;gBACZ,MAAMC,WAAW,MAAMT,cAAcU,gBAAgB;gBACrD,IAAID,SAASE,SAAS,EAAE;oBACtBJ,QAAQC,GAAG,CAAC;gBACd;YACF;YAGAD,QAAQC,GAAG,CAAC;YACZ,MAAMb;YAGNY,QAAQC,GAAG,CAAC;YACZ,MAAMV,mBAAmBI;YAGzBK,QAAQC,GAAG,CAAC;YACZ,MAAMZ;YAGNW,QAAQC,GAAG,CAAC;YACZ,MAAMT;YAGN,IAAIG,QAAQU,KAAK,EAAE;gBACjBL,QAAQC,GAAG,CAAC;gBACZ,MAAMX;YACR;YAGAU,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YAEZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;YAEZ,IAAIN,QAAQU,KAAK,EAAE;gBACjBL,QAAQC,GAAG,CAAC;gBACZD,QAAQC,GAAG,CAAC;gBACZD,QAAQC,GAAG,CAAC;YACd;QACF,EAAE,OAAOK,OAAO;YAEd,MAAMC,WAAW,MAAMd,cAAce,iBAAiB,CAACF;YAEvD,IAAIC,SAASH,SAAS,EAAE;gBACtBJ,QAAQC,GAAG,CAAC;gBACZ,MAAMK;YACR,OAAO;gBACLnB,WACE,CAAC,8BAA8B,EAAEmB,iBAAiBG,QAAQH,MAAMI,OAAO,GAAGC,OAAOL,QAAQ;gBAE3F,MAAMA;YACR;QACF;IACF,GACA;QACEM,YAAYjB,QAAQkB,KAAK,GAAG,IAAI;QAChCC,OAAO;QACPC,SAAS,CAACC,SAASV;YACjBN,QAAQC,GAAG,CAAC,CAAC,mBAAmB,EAAEe,QAAQ,wBAAwB,CAAC;QACrE;IACF;AAEJ"}