claude-flow
Version:
Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)
304 lines (291 loc) • 9.35 kB
text/typescript
import { getErrorMessage } from '../../utils/error-handler.js';
// init/claude-config.ts - Claude configuration creation
import type { InitOptions } from './index.js';
export async function createClaudeConfig(options: InitOptions): Promise<void> {
const fs = await import('fs/promises');
const path = await import('path');
// Create base configuration
const claudeConfig = {
version: "1.0.71",
project: {
name: path.basename(process.cwd()),
type: "claude-flow",
created: new Date().toISOString()
},
features: {
swarm: true,
sparc: options.sparc || false,
memory: true,
terminal: true,
mcp: true,
batchTools: true,
orchestration: true
},
batchTools: {
enabled: true,
maxConcurrentTasks: 10,
memoryCoordination: true,
taskOrchestration: true,
parallelExecution: true
},
swarmConfig: {
defaultStrategy: "auto",
defaultMode: "centralized",
defaultMaxAgents: 5,
defaultTimeout: 60,
enableMonitoring: true,
enableParallel: true,
outputFormats: ["json", "sqlite", "csv", "html"],
defaultOutputDir: "./reports"
},
coordination: {
todoIntegration: true,
memorySharing: true,
crossAgentCommunication: true,
taskDependencyTracking: true,
progressMonitoring: true
}
};
await fs.writeFile('.claude/config.json', JSON.stringify(claudeConfig, null, 2));
console.log(' ✅ Created .claude/config.json with batch tools configuration');
// Create additional configuration files
await createBatchToolsConfig();
await createSwarmConfig();
await createCoordinationConfig();
}
async function createBatchToolsConfig(): Promise<void> {
const fs = await import('fs/promises');
const batchConfig = {
version: "1.0.71",
description: "Batch tools configuration for Claude Code orchestration",
tools: {
todoWrite: {
enabled: true,
features: ["task_breakdown", "dependency_tracking", "priority_management", "progress_monitoring"],
maxTasks: 50,
defaultPriority: "medium"
},
todoRead: {
enabled: true,
features: ["progress_tracking", "status_monitoring", "task_filtering"],
autoRefresh: true,
refreshInterval: 30
},
task: {
enabled: true,
features: ["parallel_execution", "agent_coordination", "load_balancing"],
maxConcurrentTasks: 10,
timeoutDefault: 300,
retryAttempts: 3
},
memory: {
enabled: true,
features: ["cross_agent_sharing", "persistent_storage", "knowledge_coordination"],
maxEntries: 1000,
compressionEnabled: true,
encryptionEnabled: false
},
fileOperations: {
batchRead: {
enabled: true,
maxConcurrentReads: 10,
timeoutPerFile: 30
},
batchWrite: {
enabled: true,
maxConcurrentWrites: 5,
backupEnabled: true
},
batchEdit: {
enabled: true,
maxConcurrentEdits: 5,
validationEnabled: true
}
},
search: {
batchGlob: {
enabled: true,
maxConcurrentSearches: 5,
cacheResults: true
},
batchGrep: {
enabled: true,
maxConcurrentSearches: 5,
regexOptimization: true
}
}
},
performance: {
monitoring: {
enabled: true,
metricsCollection: true,
performanceAlerts: true
},
optimization: {
resourcePooling: true,
intelligentBatching: true,
loadBalancing: true
}
}
};
await fs.writeFile('.claude/configs/batch-tools.json', JSON.stringify(batchConfig, null, 2));
console.log(' ✅ Created batch tools configuration');
}
async function createSwarmConfig(): Promise<void> {
const fs = await import('fs/promises');
const swarmConfig = {
version: "1.0.71",
description: "Swarm orchestration configuration for Claude-Flow",
strategies: {
research: {
description: "Multi-agent research coordination",
defaultMode: "distributed",
defaultAgents: 6,
phases: ["planning", "execution", "synthesis", "reporting"],
tools: ["WebSearch", "WebFetch", "Memory", "TodoWrite", "Task"],
coordination: "memory_based"
},
development: {
description: "Coordinated software development",
defaultMode: "hierarchical",
defaultAgents: 8,
phases: ["architecture", "implementation", "testing", "integration"],
tools: ["Read", "Write", "Edit", "Bash", "Memory", "TodoWrite", "Task"],
coordination: "hierarchical_teams"
},
analysis: {
description: "Data analysis and insights generation",
defaultMode: "mesh",
defaultAgents: 10,
phases: ["collection", "processing", "analysis", "visualization"],
tools: ["Read", "Bash", "Memory", "TodoWrite", "Task"],
coordination: "peer_to_peer"
},
testing: {
description: "Comprehensive testing coordination",
defaultMode: "distributed",
defaultAgents: 12,
phases: ["planning", "execution", "validation", "reporting"],
tools: ["Read", "Write", "Bash", "TodoWrite", "Task"],
coordination: "distributed_validation"
},
optimization: {
description: "Performance optimization coordination",
defaultMode: "hybrid",
defaultAgents: 6,
phases: ["profiling", "analysis", "optimization", "validation"],
tools: ["Read", "Edit", "Bash", "Memory", "TodoWrite"],
coordination: "adaptive_hybrid"
},
maintenance: {
description: "System maintenance coordination",
defaultMode: "centralized",
defaultAgents: 4,
phases: ["assessment", "planning", "execution", "verification"],
tools: ["Read", "Write", "Bash", "TodoWrite", "Memory"],
coordination: "centralized_safety"
}
},
coordinationModes: {
centralized: {
description: "Single coordinator manages all agents",
useCases: ["maintenance", "safety_critical", "simple_tasks"],
coordination: "master_slave",
communication: "hub_spoke"
},
distributed: {
description: "Multiple coordinators manage agent groups",
useCases: ["research", "testing", "large_scale"],
coordination: "multi_master",
communication: "federated"
},
hierarchical: {
description: "Tree-like organization with team leads",
useCases: ["development", "structured_workflows", "large_teams"],
coordination: "tree_structure",
communication: "hierarchical_reporting"
},
mesh: {
description: "Peer-to-peer agent communication",
useCases: ["analysis", "dynamic_tasks", "adaptive_workflows"],
coordination: "peer_to_peer",
communication: "mesh_network"
},
hybrid: {
description: "Adaptive coordination based on task phase",
useCases: ["optimization", "complex_workflows", "multi_phase"],
coordination: "adaptive_mixed",
communication: "dynamic_topology"
}
}
};
await fs.writeFile('.claude/configs/swarm.json', JSON.stringify(swarmConfig, null, 2));
console.log(' ✅ Created swarm orchestration configuration');
}
async function createCoordinationConfig(): Promise<void> {
const fs = await import('fs/promises');
const coordinationConfig = {
version: "1.0.71",
description: "Agent coordination and orchestration configuration",
coordination: {
taskManagement: {
todoIntegration: {
enabled: true,
autoBreakdown: true,
dependencyTracking: true,
progressMonitoring: true,
priorityManagement: true
},
taskDistribution: {
algorithm: "intelligent_balancing",
loadBalancing: true,
skillMatching: true,
resourceOptimization: true
}
},
communication: {
memorySharing: {
enabled: true,
crossAgentAccess: true,
knowledgeSync: true,
conflictResolution: "timestamp_priority"
},
coordination: {
realTimeUpdates: true,
statusBroadcasting: true,
emergencySignaling: true
}
},
monitoring: {
progressTracking: {
enabled: true,
realTimeUpdates: true,
milestoneTracking: true,
performanceMetrics: true
},
healthMonitoring: {
agentHealth: true,
taskHealth: true,
systemHealth: true,
alerting: true
}
}
},
optimization: {
resourceManagement: {
pooling: true,
allocation: "dynamic",
recycling: true,
monitoring: true
},
performance: {
batchOptimization: true,
parallelExecution: true,
caching: true,
compression: true
}
}
};
await fs.writeFile('.claude/configs/coordination.json', JSON.stringify(coordinationConfig, null, 2));
console.log(' ✅ Created coordination configuration');
}