claude-flow-novice 2.10.8 → 2.11.0
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.
- package/.claude/commands/README.md +157 -0
- package/.claude/hooks/cfn-invoke-post-edit.sh +1 -1
- package/.claude/hooks/cfn-invoke-pre-edit.sh +88 -0
- package/.claude/skills/cfn-agent-spawning/spawn-worker.sh +176 -0
- package/.claude/skills/cfn-backlog-management/SKILL.md +199 -0
- package/.claude/skills/cfn-backlog-management/add-backlog-item.sh +210 -0
- package/claude-assets/agents/cfn-dev-team/architecture/base-template-generator.md +7 -21
- package/claude-assets/agents/cfn-dev-team/testing/test-validation-agent.md +312 -0
- package/claude-assets/agents/cfn-dev-team/utility/agent-builder.md +480 -115
- package/claude-assets/agents/csuite/cto-agent.md +371 -0
- package/claude-assets/agents/marketing_hybrid/cost_tracker.md +13 -0
- package/claude-assets/agents/marketing_hybrid/docker_deployer.md +13 -0
- package/claude-assets/agents/marketing_hybrid/zai_worker_spawner.md +13 -0
- package/claude-assets/hooks/cfn-invoke-post-edit.sh +1 -1
- package/claude-assets/hooks/cfn-invoke-pre-edit.sh +88 -0
- package/claude-assets/skills/cfn-agent-spawning/spawn-worker.sh +176 -0
- package/claude-assets/skills/cfn-backlog-management/SKILL.md +199 -0
- package/claude-assets/skills/cfn-backlog-management/add-backlog-item.sh +210 -0
- package/claude-assets/skills/pre-edit-backup/backup.sh +130 -0
- package/claude-assets/skills/pre-edit-backup/cleanup.sh +155 -0
- package/claude-assets/skills/pre-edit-backup/restore.sh +128 -0
- package/claude-assets/skills/pre-edit-backup/revert-file.sh +168 -0
- package/dist/agents/agent-loader.js +315 -0
- package/dist/agents/agent-loader.js.map +1 -1
- package/package.json +3 -2
- package/scripts/init-project.js +38 -3
- package/scripts/marketing_hybrid_deployment.sh +45 -0
- package/scripts/redis-prometheus-exporter.sh +33 -0
- package/scripts/track-zai-costs.sh +19 -0
- package/claude-assets/commands/agents/README.md +0 -10
- package/claude-assets/commands/agents/agent-capabilities.md +0 -21
- package/claude-assets/commands/agents/agent-coordination.md +0 -28
- package/claude-assets/commands/agents/agent-spawning.md +0 -28
- package/claude-assets/commands/agents/agent-types.md +0 -26
- package/claude-assets/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/claude-assets/commands/analysis/README.md +0 -9
- package/claude-assets/commands/analysis/bottleneck-detect.md +0 -162
- package/claude-assets/commands/analysis/performance-bottlenecks.md +0 -59
- package/claude-assets/commands/analysis/performance-report.md +0 -25
- package/claude-assets/commands/analysis/token-efficiency.md +0 -45
- package/claude-assets/commands/analysis/token-usage.md +0 -25
- package/claude-assets/commands/automation/README.md +0 -9
- package/claude-assets/commands/automation/auto-agent.md +0 -122
- package/claude-assets/commands/automation/self-healing.md +0 -106
- package/claude-assets/commands/automation/session-memory.md +0 -90
- package/claude-assets/commands/automation/smart-agents.md +0 -73
- package/claude-assets/commands/automation/smart-spawn.md +0 -25
- package/claude-assets/commands/automation/workflow-select.md +0 -25
- package/claude-assets/commands/claude-md.js +0 -237
- package/claude-assets/commands/claude-soul.js +0 -28
- package/claude-assets/commands/cli-integration.js +0 -216
- package/claude-assets/commands/coordination/README.md +0 -9
- package/claude-assets/commands/coordination/agent-spawn.md +0 -25
- package/claude-assets/commands/coordination/coordination-system.md +0 -88
- package/claude-assets/commands/coordination/init.md +0 -44
- package/claude-assets/commands/coordination/orchestrate.md +0 -43
- package/claude-assets/commands/coordination/spawn.md +0 -45
- package/claude-assets/commands/coordination/swarm-init.md +0 -85
- package/claude-assets/commands/coordination/task-orchestrate.md +0 -25
- package/claude-assets/commands/github/README.md +0 -11
- package/claude-assets/commands/github/code-review-swarm.md +0 -514
- package/claude-assets/commands/github/code-review.md +0 -25
- package/claude-assets/commands/github/github-modes.md +0 -147
- package/claude-assets/commands/github/github-swarm.md +0 -121
- package/claude-assets/commands/github/issue-tracker.md +0 -292
- package/claude-assets/commands/github/issue-triage.md +0 -25
- package/claude-assets/commands/github/multi-repo-swarm.md +0 -519
- package/claude-assets/commands/github/pr-enhance.md +0 -26
- package/claude-assets/commands/github/pr-manager.md +0 -170
- package/claude-assets/commands/github/project-board-sync.md +0 -471
- package/claude-assets/commands/github/release-manager.md +0 -338
- package/claude-assets/commands/github/release-swarm.md +0 -544
- package/claude-assets/commands/github/repo-analyze.md +0 -25
- package/claude-assets/commands/github/repo-architect.md +0 -367
- package/claude-assets/commands/github/swarm-issue.md +0 -482
- package/claude-assets/commands/github/swarm-pr.md +0 -285
- package/claude-assets/commands/github/sync-coordinator.md +0 -301
- package/claude-assets/commands/github/workflow-automation.md +0 -442
- package/claude-assets/commands/github.js +0 -638
- package/claude-assets/commands/hive-mind/README.md +0 -17
- package/claude-assets/commands/hive-mind/hive-mind-consensus.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind-init.md +0 -18
- package/claude-assets/commands/hive-mind/hive-mind-memory.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind-metrics.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind-resume.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind-sessions.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind-spawn.md +0 -21
- package/claude-assets/commands/hive-mind/hive-mind-status.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind-stop.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind-wizard.md +0 -8
- package/claude-assets/commands/hive-mind/hive-mind.md +0 -27
- package/claude-assets/commands/hooks/README.md +0 -11
- package/claude-assets/commands/hooks/overview.md +0 -58
- package/claude-assets/commands/hooks/post-edit.md +0 -117
- package/claude-assets/commands/hooks/post-task.md +0 -112
- package/claude-assets/commands/hooks/pre-edit.md +0 -113
- package/claude-assets/commands/hooks/pre-task.md +0 -111
- package/claude-assets/commands/hooks/session-end.md +0 -118
- package/claude-assets/commands/hooks/session-start.md +0 -9
- package/claude-assets/commands/hooks/setup.md +0 -103
- package/claude-assets/commands/hooks.js +0 -651
- package/claude-assets/commands/index.js +0 -119
- package/claude-assets/commands/memory/README.md +0 -9
- package/claude-assets/commands/memory/memory-bank.md +0 -58
- package/claude-assets/commands/memory/memory-persist.md +0 -25
- package/claude-assets/commands/memory/memory-search.md +0 -25
- package/claude-assets/commands/memory/memory-usage.md +0 -25
- package/claude-assets/commands/memory/neural.md +0 -47
- package/claude-assets/commands/memory/usage.md +0 -46
- package/claude-assets/commands/monitoring/README.md +0 -9
- package/claude-assets/commands/monitoring/agent-metrics.md +0 -25
- package/claude-assets/commands/monitoring/agents.md +0 -44
- package/claude-assets/commands/monitoring/real-time-view.md +0 -25
- package/claude-assets/commands/monitoring/status.md +0 -46
- package/claude-assets/commands/monitoring/swarm-monitor.md +0 -25
- package/claude-assets/commands/neural.js +0 -572
- package/claude-assets/commands/optimization/README.md +0 -9
- package/claude-assets/commands/optimization/auto-topology.md +0 -62
- package/claude-assets/commands/optimization/cache-manage.md +0 -25
- package/claude-assets/commands/optimization/parallel-execute.md +0 -25
- package/claude-assets/commands/optimization/parallel-execution.md +0 -50
- package/claude-assets/commands/optimization/topology-optimize.md +0 -25
- package/claude-assets/commands/pair/README.md +0 -261
- package/claude-assets/commands/pair/commands.md +0 -546
- package/claude-assets/commands/pair/config.md +0 -510
- package/claude-assets/commands/pair/examples.md +0 -512
- package/claude-assets/commands/pair/modes.md +0 -348
- package/claude-assets/commands/pair/session.md +0 -407
- package/claude-assets/commands/pair/start.md +0 -209
- package/claude-assets/commands/parse-epic.js +0 -180
- package/claude-assets/commands/performance.js +0 -582
- package/claude-assets/commands/register-all-commands.js +0 -320
- package/claude-assets/commands/register-claude-md.js +0 -82
- package/claude-assets/commands/register-claude-soul.js +0 -80
- package/claude-assets/commands/sparc/analyzer.md +0 -52
- package/claude-assets/commands/sparc/architect.md +0 -53
- package/claude-assets/commands/sparc/batch-executor.md +0 -54
- package/claude-assets/commands/sparc/coder.md +0 -54
- package/claude-assets/commands/sparc/debugger.md +0 -54
- package/claude-assets/commands/sparc/designer.md +0 -53
- package/claude-assets/commands/sparc/documenter.md +0 -54
- package/claude-assets/commands/sparc/innovator.md +0 -54
- package/claude-assets/commands/sparc/memory-manager.md +0 -54
- package/claude-assets/commands/sparc/optimizer.md +0 -54
- package/claude-assets/commands/sparc/orchestrator.md +0 -132
- package/claude-assets/commands/sparc/researcher.md +0 -54
- package/claude-assets/commands/sparc/reviewer.md +0 -54
- package/claude-assets/commands/sparc/sparc-modes.md +0 -174
- package/claude-assets/commands/sparc/swarm-coordinator.md +0 -54
- package/claude-assets/commands/sparc/tdd.md +0 -54
- package/claude-assets/commands/sparc/tester.md +0 -54
- package/claude-assets/commands/sparc/workflow-manager.md +0 -54
- package/claude-assets/commands/sparc.js +0 -110
- package/claude-assets/commands/stream-chain/pipeline.md +0 -121
- package/claude-assets/commands/stream-chain/run.md +0 -70
- package/claude-assets/commands/swarm/README.md +0 -15
- package/claude-assets/commands/swarm/analysis.md +0 -95
- package/claude-assets/commands/swarm/development.md +0 -96
- package/claude-assets/commands/swarm/examples.md +0 -168
- package/claude-assets/commands/swarm/maintenance.md +0 -102
- package/claude-assets/commands/swarm/optimization.md +0 -117
- package/claude-assets/commands/swarm/research.md +0 -136
- package/claude-assets/commands/swarm/swarm-analysis.md +0 -8
- package/claude-assets/commands/swarm/swarm-background.md +0 -8
- package/claude-assets/commands/swarm/swarm-init.md +0 -19
- package/claude-assets/commands/swarm/swarm-modes.md +0 -8
- package/claude-assets/commands/swarm/swarm-monitor.md +0 -8
- package/claude-assets/commands/swarm/swarm-spawn.md +0 -19
- package/claude-assets/commands/swarm/swarm-status.md +0 -8
- package/claude-assets/commands/swarm/swarm-strategies.md +0 -8
- package/claude-assets/commands/swarm/swarm.md +0 -27
- package/claude-assets/commands/swarm/testing.md +0 -131
- package/claude-assets/commands/swarm.js +0 -423
- package/claude-assets/commands/testing/playwright-e2e.md +0 -288
- package/claude-assets/commands/training/README.md +0 -9
- package/claude-assets/commands/training/model-update.md +0 -25
- package/claude-assets/commands/training/neural-patterns.md +0 -74
- package/claude-assets/commands/training/neural-train.md +0 -25
- package/claude-assets/commands/training/pattern-learn.md +0 -25
- package/claude-assets/commands/training/specialization.md +0 -63
- package/claude-assets/commands/truth/start.md +0 -143
- package/claude-assets/commands/validate-commands.js +0 -223
- package/claude-assets/commands/verify/check.md +0 -50
- package/claude-assets/commands/verify/start.md +0 -128
- package/claude-assets/commands/workflow.js +0 -606
- package/claude-assets/commands/workflows/README.md +0 -9
- package/claude-assets/commands/workflows/development.md +0 -78
- package/claude-assets/commands/workflows/research.md +0 -63
- package/claude-assets/commands/workflows/workflow-create.md +0 -25
- package/claude-assets/commands/workflows/workflow-execute.md +0 -25
- package/claude-assets/commands/workflows/workflow-export.md +0 -25
- package/claude-assets/hooks/post-edit.config.json +0 -12
- package/claude-assets/skills/team-provider-routing/spawn-worker.sh +0 -91
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/agents/agent-loader.ts"],"sourcesContent":["/**\n * Dynamic Agent Loader - Reads agent definitions from .claude/agents/ directory\n * Single source of truth for agent types in the system\n */\n\nimport { readFileSync, existsSync } from 'node:fs';\nimport { glob } from 'glob';\nimport { resolve, dirname } from 'node:path';\nimport { parse as parseYaml } from 'yaml';\n\n// Legacy agent type mapping for backward compatibility\nconst LEGACY_AGENT_MAPPING = {\n analyst: 'code-analyzer',\n coordinator: 'hierarchical-coordinator',\n optimizer: 'perf-analyzer',\n documenter: 'api-docs',\n monitor: 'performance-benchmarker',\n specialist: 'system-architect',\n architect: 'system-architect',\n} as const;\n\n/**\n * Resolve legacy agent types to current equivalents\n */\nexport function resolveLegacyAgentType(legacyType: string): string {\n return LEGACY_AGENT_MAPPING[legacyType as keyof typeof LEGACY_AGENT_MAPPING] || legacyType;\n}\n\nexport interface AgentDefinition {\n name: string;\n type?: string;\n color?: string;\n description: string;\n tools?: string[];\n model?: string;\n capabilities?: string[];\n priority?: 'low' | 'medium' | 'high' | 'critical';\n hooks?: {\n pre?: string;\n post?: string;\n task_complete?: string;\n on_rerun_request?: string;\n lifecycle?: Record<string, string>;\n };\n lifecycle?: {\n state_management?: boolean;\n persistent_memory?: boolean;\n max_retries?: number;\n timeout_ms?: number;\n auto_cleanup?: boolean;\n };\n content?: string;\n}\n\nexport interface AgentCategory {\n name: string;\n agents: AgentDefinition[];\n}\n\nexport class AgentLoader {\n private agentCache = new Map<string, AgentDefinition>();\n private categoriesCache: AgentCategory[] = [];\n private lastLoadTime = 0;\n private readonly CACHE_EXPIRY = 60_000; // 1 minute cache\n\n private getAgentsDirectory(): string {\n let currentDir = process.cwd();\n\n while (currentDir !== '/') {\n const claudeAgentsPath = resolve(currentDir, '.claude', 'agents');\n if (existsSync(claudeAgentsPath)) {\n return claudeAgentsPath;\n }\n currentDir = dirname(currentDir);\n }\n\n return resolve(process.cwd(), '.claude', 'agents');\n }\n\n private parseAgentFile(filePath: string): AgentDefinition | null {\n try {\n const content = readFileSync(filePath, 'utf-8');\n\n const frontmatterMatch = content.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---\\r?\\n([\\s\\S]*)$/);\n if (!frontmatterMatch) {\n console.warn(`No frontmatter found in ${filePath}`);\n return null;\n }\n\n const [, yamlContent, markdownContent] = frontmatterMatch;\n const frontmatter = parseYaml(yamlContent) as Record<string, unknown>;\n\n const description = frontmatter.description;\n if (!frontmatter.name || !description) {\n console.warn(`Missing required fields (name, description) in ${filePath}`);\n return null;\n }\n\n return {\n name: String(frontmatter.name),\n type: frontmatter.type ? String(frontmatter.type) : undefined,\n color: frontmatter.color ? String(frontmatter.color) : undefined,\n description: String(description),\n model: frontmatter.model ? String(frontmatter.model) : undefined,\n capabilities: Array.isArray(frontmatter.capabilities)\n ? frontmatter.capabilities.map(String)\n : [],\n priority: ['low', 'medium', 'high', 'critical'].includes(String(frontmatter.priority))\n ? String(frontmatter.priority) as AgentDefinition['priority']\n : 'medium',\n tools: this.parseTools(frontmatter),\n hooks: frontmatter.hooks as AgentDefinition['hooks'],\n content: markdownContent.trim(),\n };\n } catch (error) {\n console.error(`Error parsing agent file ${filePath}:`, error);\n return null;\n }\n }\n\n private parseTools(frontmatter: Record<string, unknown>): string[] {\n const extractTools = (input: unknown): string[] => {\n if (Array.isArray(input)) return input.map(String);\n if (typeof input === 'string') {\n return input.split(/[,\\s]+/).map(t => t.trim()).filter(t => t.length > 0);\n }\n return [];\n };\n\n // Safely handle tools and capabilities.tools\n const toolsFromFrontmatter = frontmatter.tools\n ? extractTools(frontmatter.tools)\n : [];\n\n const toolsFromCapabilities = frontmatter.capabilities && typeof frontmatter.capabilities === 'object'\n ? extractTools(Object(frontmatter.capabilities).tools)\n : [];\n\n return [...toolsFromFrontmatter, ...toolsFromCapabilities];\n }\n\n private async loadAgents(): Promise<void> {\n const agentsDir = this.getAgentsDirectory();\n\n if (!existsSync(agentsDir)) {\n console.warn(`Agents directory not found: ${agentsDir}`);\n return;\n }\n\n const agentFiles = await new Promise<string[]>((resolve, reject) => {\n glob('**/*.md', {\n cwd: agentsDir,\n ignore: ['**/README.md', '**/MIGRATION_SUMMARY.md'],\n absolute: true\n }, (err, matches) => {\n if (err) reject(err);\n else resolve(matches);\n });\n });\n\n this.agentCache.clear();\n this.categoriesCache = [];\n\n const categoryMap = new Map<string, AgentDefinition[]>();\n\n for (const filePath of agentFiles) {\n const agent = this.parseAgentFile(filePath);\n if (agent) {\n this.agentCache.set(agent.name, agent);\n\n const relativePath = filePath.replace(agentsDir, '');\n const pathParts = relativePath.split('/');\n const category = pathParts[1] || 'uncategorized';\n\n if (!categoryMap.has(category)) {\n categoryMap.set(category, []);\n }\n categoryMap.get(category)!.push(agent);\n }\n }\n\n this.categoriesCache = Array.from(categoryMap.entries()).map(([name, agents]) => ({\n name,\n agents: agents.sort((a, b) => a.name.localeCompare(b.name)),\n }));\n\n this.lastLoadTime = Date.now();\n }\n\n // Rest of the methods remain similar to the original implementation\n private needsRefresh(): boolean {\n return Date.now() - this.lastLoadTime > this.CACHE_EXPIRY;\n }\n\n private async ensureLoaded(): Promise<void> {\n if (this.agentCache.size === 0 || this.needsRefresh()) {\n await this.loadAgents();\n }\n }\n\n async getAvailableAgentTypes(): Promise<string[]> {\n await this.ensureLoaded();\n const currentTypes = Array.from(this.agentCache.keys());\n const legacyTypes = Object.keys(LEGACY_AGENT_MAPPING);\n return Array.from(new Set([...currentTypes, ...legacyTypes])).sort();\n }\n\n async getAgent(name: string): Promise<AgentDefinition | null> {\n await this.ensureLoaded();\n return this.agentCache.get(name) || this.agentCache.get(resolveLegacyAgentType(name)) || null;\n }\n\n async getAllAgents(): Promise<AgentDefinition[]> {\n await this.ensureLoaded();\n return Array.from(this.agentCache.values()).sort((a, b) => a.name.localeCompare(b.name));\n }\n\n async getAgentCategories(): Promise<AgentCategory[]> {\n await this.ensureLoaded();\n return this.categoriesCache;\n }\n\n async searchAgents(query: string): Promise<AgentDefinition[]> {\n await this.ensureLoaded();\n const lowerQuery = query.toLowerCase();\n\n return Array.from(this.agentCache.values()).filter((agent) =>\n agent.name.toLowerCase().includes(lowerQuery) ||\n agent.description.toLowerCase().includes(lowerQuery) ||\n agent.capabilities?.some((cap) => cap.toLowerCase().includes(lowerQuery))\n );\n }\n\n async isValidAgentType(name: string): Promise<boolean> {\n await this.ensureLoaded();\n return this.agentCache.has(name) || this.agentCache.has(resolveLegacyAgentType(name));\n }\n\n async getAgentsByCategory(category: string): Promise<AgentDefinition[]> {\n const categories = await this.getAgentCategories();\n const found = categories.find((cat) => cat.name === category);\n return found?.agents || [];\n }\n\n async refresh(): Promise<void> {\n this.lastLoadTime = 0;\n await this.loadAgents();\n }\n}\n\n// Singleton instance\nexport const agentLoader = new AgentLoader();\n\n// Convenience exports for use in other modules\nexport const getAvailableAgentTypes = () => agentLoader.getAvailableAgentTypes();\nexport const getAgent = (name: string) => agentLoader.getAgent(name);\nexport const getAllAgents = () => agentLoader.getAllAgents();\nexport const getAgentCategories = () => agentLoader.getAgentCategories();\nexport const searchAgents = (query: string) => agentLoader.searchAgents(query);\nexport const isValidAgentType = (name: string) => agentLoader.isValidAgentType(name);\nexport const getAgentsByCategory = (category: string) => agentLoader.getAgentsByCategory(category);\nexport const refreshAgents = () => agentLoader.refresh();\n"],"names":["readFileSync","existsSync","glob","resolve","dirname","parse","parseYaml","LEGACY_AGENT_MAPPING","analyst","coordinator","optimizer","documenter","monitor","specialist","architect","resolveLegacyAgentType","legacyType","AgentLoader","agentCache","Map","categoriesCache","lastLoadTime","CACHE_EXPIRY","getAgentsDirectory","currentDir","process","cwd","claudeAgentsPath","parseAgentFile","filePath","content","frontmatterMatch","match","console","warn","yamlContent","markdownContent","frontmatter","description","name","String","type","undefined","color","model","capabilities","Array","isArray","map","priority","includes","tools","parseTools","hooks","trim","error","extractTools","input","split","t","filter","length","toolsFromFrontmatter","toolsFromCapabilities","Object","loadAgents","agentsDir","agentFiles","Promise","reject","ignore","absolute","err","matches","clear","categoryMap","agent","set","relativePath","replace","pathParts","category","has","get","push","from","entries","agents","sort","a","b","localeCompare","Date","now","needsRefresh","ensureLoaded","size","getAvailableAgentTypes","currentTypes","keys","legacyTypes","Set","getAgent","getAllAgents","values","getAgentCategories","searchAgents","query","lowerQuery","toLowerCase","some","cap","isValidAgentType","getAgentsByCategory","categories","found","find","cat","refresh","agentLoader","refreshAgents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/agents/agent-loader.ts"],"sourcesContent":["/**\n * Dynamic Agent Loader - Reads agent definitions from .claude/agents/ directory\n * Single source of truth for agent types in the system\n */\n\nimport { readFileSync, existsSync } from 'node:fs';\nimport { glob } from 'glob';\nimport { resolve, dirname } from 'node:path';\nimport { parse as parseYaml } from 'yaml';\n\n// Legacy agent type mapping for backward compatibility\nconst LEGACY_AGENT_MAPPING = {\n analyst: 'code-analyzer',\n coordinator: 'hierarchical-coordinator',\n optimizer: 'perf-analyzer',\n documenter: 'api-docs',\n monitor: 'performance-benchmarker',\n specialist: 'system-architect',\n architect: 'system-architect',\n} as const;\n\n/**\n * Resolve legacy agent types to current equivalents\n */\nexport function resolveLegacyAgentType(legacyType: string): string {\n return LEGACY_AGENT_MAPPING[legacyType as keyof typeof LEGACY_AGENT_MAPPING] || legacyType;\n}\n\nexport interface AgentDefinition {\n name: string;\n type?: string;\n color?: string;\n description: string;\n tools?: string[];\n model?: string;\n capabilities?: string[];\n priority?: 'low' | 'medium' | 'high' | 'critical';\n hooks?: {\n pre?: string;\n post?: string;\n task_complete?: string;\n on_rerun_request?: string;\n lifecycle?: Record<string, string>;\n };\n lifecycle?: {\n state_management?: boolean;\n persistent_memory?: boolean;\n max_retries?: number;\n timeout_ms?: number;\n auto_cleanup?: boolean;\n };\n content?: string;\n}\n\nexport interface AgentCategory {\n name: string;\n agents: AgentDefinition[];\n}\n\nexport class AgentLoader {\n private agentCache = new Map<string, AgentDefinition>();\n private categoriesCache: AgentCategory[] = [];\n private lastLoadTime = 0;\n private readonly CACHE_EXPIRY = 60_000; // 1 minute cache\n\n private getAgentsDirectory(): string {\n let currentDir = process.cwd();\n\n while (currentDir !== '/') {\n const claudeAgentsPath = resolve(currentDir, '.claude', 'agents');\n if (existsSync(claudeAgentsPath)) {\n return claudeAgentsPath;\n }\n currentDir = dirname(currentDir);\n }\n\n return resolve(process.cwd(), '.claude', 'agents');\n }\n\n private parseAgentFile(filePath: string): AgentDefinition | null {\n try {\n const content = readFileSync(filePath, 'utf-8');\n\n const frontmatterMatch = content.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---\\r?\\n([\\s\\S]*)$/);\n if (!frontmatterMatch) {\n console.warn(`No frontmatter found in ${filePath}`);\n return null;\n }\n\n const [, yamlContent, markdownContent] = frontmatterMatch;\n const frontmatter = parseYaml(yamlContent) as Record<string, unknown>;\n\n const description = frontmatter.description;\n if (!frontmatter.name || !description) {\n console.warn(`Missing required fields (name, description) in ${filePath}`);\n return null;\n }\n\n return {\n name: String(frontmatter.name),\n type: frontmatter.type ? String(frontmatter.type) : undefined,\n color: frontmatter.color ? String(frontmatter.color) : undefined,\n description: String(description),\n model: frontmatter.model ? String(frontmatter.model) : undefined,\n capabilities: Array.isArray(frontmatter.capabilities)\n ? frontmatter.capabilities.map(String)\n : [],\n priority: ['low', 'medium', 'high', 'critical'].includes(String(frontmatter.priority))\n ? String(frontmatter.priority) as AgentDefinition['priority']\n : 'medium',\n tools: this.parseTools(frontmatter),\n hooks: frontmatter.hooks as AgentDefinition['hooks'],\n content: markdownContent.trim(),\n };\n } catch (error) {\n console.error(`Error parsing agent file ${filePath}:`, error);\n return null;\n }\n }\n\n private parseTools(frontmatter: Record<string, unknown>): string[] {\n const extractTools = (input: unknown): string[] => {\n if (Array.isArray(input)) return input.map(String);\n if (typeof input === 'string') {\n return input.split(/[,\\s]+/).map(t => t.trim()).filter(t => t.length > 0);\n }\n return [];\n };\n\n // Safely handle tools and capabilities.tools\n const toolsFromFrontmatter = frontmatter.tools\n ? extractTools(frontmatter.tools)\n : [];\n\n const toolsFromCapabilities = frontmatter.capabilities && typeof frontmatter.capabilities === 'object'\n ? extractTools(Object(frontmatter.capabilities).tools)\n : [];\n\n return [...toolsFromFrontmatter, ...toolsFromCapabilities];\n }\n\n private async loadAgents(): Promise<void> {\n const agentsDir = this.getAgentsDirectory();\n\n if (!existsSync(agentsDir)) {\n console.warn(`Agents directory not found: ${agentsDir}`);\n return;\n }\n\n const agentFiles = await new Promise<string[]>((resolve, reject) => {\n glob('**/*.md', {\n cwd: agentsDir,\n ignore: ['**/README.md', '**/MIGRATION_SUMMARY.md'],\n absolute: true\n }, (err, matches) => {\n if (err) reject(err);\n else resolve(matches);\n });\n });\n\n this.agentCache.clear();\n this.categoriesCache = [];\n\n const categoryMap = new Map<string, AgentDefinition[]>();\n\n for (const filePath of agentFiles) {\n const agent = this.parseAgentFile(filePath);\n if (agent) {\n this.agentCache.set(agent.name, agent);\n\n const relativePath = filePath.replace(agentsDir, '');\n const pathParts = relativePath.split('/');\n const category = pathParts[1] || 'uncategorized';\n\n if (!categoryMap.has(category)) {\n categoryMap.set(category, []);\n }\n categoryMap.get(category)!.push(agent);\n }\n }\n\n this.categoriesCache = Array.from(categoryMap.entries()).map(([name, agents]) => ({\n name,\n agents: agents.sort((a, b) => a.name.localeCompare(b.name)),\n }));\n\n this.lastLoadTime = Date.now();\n }\n\n // Rest of the methods remain similar to the original implementation\n private needsRefresh(): boolean {\n return Date.now() - this.lastLoadTime > this.CACHE_EXPIRY;\n }\n\n private async ensureLoaded(): Promise<void> {\n if (this.agentCache.size === 0 || this.needsRefresh()) {\n await this.loadAgents();\n }\n }\n\n async getAvailableAgentTypes(): Promise<string[]> {\n await this.ensureLoaded();\n const currentTypes = Array.from(this.agentCache.keys());\n const legacyTypes = Object.keys(LEGACY_AGENT_MAPPING);\n return Array.from(new Set([...currentTypes, ...legacyTypes])).sort();\n }\n\n async getAgent(name: string): Promise<AgentDefinition | null> {\n await this.ensureLoaded();\n return this.agentCache.get(name) || this.agentCache.get(resolveLegacyAgentType(name)) || null;\n }\n\n async getAllAgents(): Promise<AgentDefinition[]> {\n await this.ensureLoaded();\n return Array.from(this.agentCache.values()).sort((a, b) => a.name.localeCompare(b.name));\n }\n\n async getAgentCategories(): Promise<AgentCategory[]> {\n await this.ensureLoaded();\n return this.categoriesCache;\n }\n\n async searchAgents(query: string): Promise<AgentDefinition[]> {\n await this.ensureLoaded();\n const lowerQuery = query.toLowerCase();\n\n return Array.from(this.agentCache.values()).filter((agent) =>\n agent.name.toLowerCase().includes(lowerQuery) ||\n agent.description.toLowerCase().includes(lowerQuery) ||\n agent.capabilities?.some((cap) => cap.toLowerCase().includes(lowerQuery))\n );\n }\n\n async isValidAgentType(name: string): Promise<boolean> {\n await this.ensureLoaded();\n return this.agentCache.has(name) || this.agentCache.has(resolveLegacyAgentType(name));\n }\n\n async getAgentsByCategory(category: string): Promise<AgentDefinition[]> {\n const categories = await this.getAgentCategories();\n const found = categories.find((cat) => cat.name === category);\n return found?.agents || [];\n }\n\n async refresh(): Promise<void> {\n this.lastLoadTime = 0;\n await this.loadAgents();\n }\n}\n\n// Singleton instance\nexport const agentLoader = new AgentLoader();\n\n// Convenience exports for use in other modules\nexport const getAvailableAgentTypes = () => agentLoader.getAvailableAgentTypes();\nexport const getAgent = (name: string) => agentLoader.getAgent(name);\nexport const getAllAgents = () => agentLoader.getAllAgents();\nexport const getAgentCategories = () => agentLoader.getAgentCategories();\nexport const searchAgents = (query: string) => agentLoader.searchAgents(query);\nexport const isValidAgentType = (name: string) => agentLoader.isValidAgentType(name);\nexport const getAgentsByCategory = (category: string) => agentLoader.getAgentsByCategory(category);\nexport const refreshAgents = () => agentLoader.refresh();\n"],"names":["readFileSync","existsSync","glob","resolve","dirname","parse","parseYaml","LEGACY_AGENT_MAPPING","analyst","coordinator","optimizer","documenter","monitor","specialist","architect","resolveLegacyAgentType","legacyType","AgentLoader","agentCache","Map","categoriesCache","lastLoadTime","CACHE_EXPIRY","getAgentsDirectory","currentDir","process","cwd","claudeAgentsPath","parseAgentFile","filePath","content","frontmatterMatch","match","console","warn","yamlContent","markdownContent","frontmatter","description","name","String","type","undefined","color","model","capabilities","Array","isArray","map","priority","includes","tools","parseTools","hooks","trim","error","extractTools","input","split","t","filter","length","toolsFromFrontmatter","toolsFromCapabilities","Object","loadAgents","agentsDir","agentFiles","Promise","reject","ignore","absolute","err","matches","clear","categoryMap","agent","set","relativePath","replace","pathParts","category","has","get","push","from","entries","agents","sort","a","b","localeCompare","Date","now","needsRefresh","ensureLoaded","size","getAvailableAgentTypes","currentTypes","keys","legacyTypes","Set","getAgent","getAllAgents","values","getAgentCategories","searchAgents","query","lowerQuery","toLowerCase","some","cap","isValidAgentType","getAgentsByCategory","categories","found","find","cat","refresh","agentLoader","refreshAgents"],"mappings":"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"}ories, found;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getAgentCategories()];\n case 1:\n categories = _a.sent();\n found = categories.find(function (cat) { return cat.name === category; });\n return [2 /*return*/, (found === null || found === void 0 ? void 0 : found.agents) || []];\n }\n });\n });\n };\n AgentLoader.prototype.refresh = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.lastLoadTime = 0;\n return [4 /*yield*/, this.loadAgents()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return AgentLoader;\n}());\nexports.AgentLoader = AgentLoader;\n// Singleton instance\nexports.agentLoader = new AgentLoader();\n// Convenience exports for use in other modules\nvar getAvailableAgentTypes = function () { return exports.agentLoader.getAvailableAgentTypes(); };\nexports.getAvailableAgentTypes = getAvailableAgentTypes;\nvar getAgent = function (name) { return exports.agentLoader.getAgent(name); };\nexports.getAgent = getAgent;\nvar getAllAgents = function () { return exports.agentLoader.getAllAgents(); };\nexports.getAllAgents = getAllAgents;\nvar getAgentCategories = function () { return exports.agentLoader.getAgentCategories(); };\nexports.getAgentCategories = getAgentCategories;\nvar searchAgents = function (query) { return exports.agentLoader.searchAgents(query); };\nexports.searchAgents = searchAgents;\nvar isValidAgentType = function (name) { return exports.agentLoader.isValidAgentType(name); };\nexports.isValidAgentType = isValidAgentType;\nvar getAgentsByCategory = function (category) { return exports.agentLoader.getAgentsByCategory(category); };\nexports.getAgentsByCategory = getAgentsByCategory;\nvar refreshAgents = function () { return exports.agentLoader.refresh(); };\nexports.refreshAgents = refreshAgents;\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","Object","create","Iterator","prototype","verb","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","__spreadArray","to","from","pack","arguments","i","l","ar","Array","slice","concat","defineProperty","exports","refreshAgents","getAgentsByCategory","isValidAgentType","searchAgents","getAgentCategories","getAllAgents","getAgent","getAvailableAgentTypes","agentLoader","AgentLoader","resolveLegacyAgentType","node_fs_1","require","glob_1","node_path_1","yaml_1","LEGACY_AGENT_MAPPING","analyst","coordinator","optimizer","documenter","monitor","specialist","architect","legacyType","agentCache","Map","categoriesCache","lastLoadTime","CACHE_EXPIRY","getAgentsDirectory","currentDir","process","cwd","claudeAgentsPath","existsSync","dirname","parseAgentFile","filePath","content","readFileSync","frontmatterMatch","match","console","warn","yamlContent","markdownContent","frontmatter","parse","description","name","String","type","undefined","color","model","capabilities","isArray","map","priority","includes","tools","parseTools","hooks","trim","error","extractTools","input","split","filter","toolsFromFrontmatter","toolsFromCapabilities","loadAgents","agentsDir","agentFiles","categoryMap","_i","agentFiles_1","agent","relativePath","pathParts","category","_a","glob","ignore","absolute","err","matches","clear","set","replace","has","get","entries","agents","sort","a","b","localeCompare","Date","now","needsRefresh","ensureLoaded","size","currentTypes","legacyTypes","keys","Set","values","query","lowerQuery","toLowerCase","some","cap","categories","found","find","cat","refresh"],"mappings":"AAAA;AACA;;;CAGC,GACD,IAAIA,YAAY,AAAC,IAAI,IAAI,IAAI,CAACA,SAAS,IAAK,SAAUC,OAAO,EAAEC,UAAU,EAAEC,CAAC,EAAEC,SAAS;IACnF,SAASC,MAAMC,KAAK;QAAI,OAAOA,iBAAiBH,IAAIG,QAAQ,IAAIH,EAAE,SAAUI,OAAO;YAAIA,QAAQD;QAAQ;IAAI;IAC3G,OAAO,IAAKH,CAAAA,KAAMA,CAAAA,IAAIK,OAAM,CAAC,EAAG,SAAUD,OAAO,EAAEE,MAAM;QACrD,SAASC,UAAUJ,KAAK;YAAI,IAAI;gBAAEK,KAAKP,UAAUQ,IAAI,CAACN;YAAS,EAAE,OAAOO,GAAG;gBAAEJ,OAAOI;YAAI;QAAE;QAC1F,SAASC,SAASR,KAAK;YAAI,IAAI;gBAAEK,KAAKP,SAAS,CAAC,QAAQ,CAACE;YAAS,EAAE,OAAOO,GAAG;gBAAEJ,OAAOI;YAAI;QAAE;QAC7F,SAASF,KAAKI,MAAM;YAAIA,OAAOC,IAAI,GAAGT,QAAQQ,OAAOT,KAAK,IAAID,MAAMU,OAAOT,KAAK,EAAEW,IAAI,CAACP,WAAWI;QAAW;QAC7GH,KAAK,AAACP,CAAAA,YAAYA,UAAUc,KAAK,CAACjB,SAASC,cAAc,EAAE,CAAA,EAAGU,IAAI;IACtE;AACJ;AACA,IAAIO,cAAc,AAAC,IAAI,IAAI,IAAI,CAACA,WAAW,IAAK,SAAUlB,OAAO,EAAEmB,IAAI;IACnE,IAAIC,IAAI;QAAEC,OAAO;QAAGC,MAAM;YAAa,IAAIC,CAAC,CAAC,EAAE,GAAG,GAAG,MAAMA,CAAC,CAAC,EAAE;YAAE,OAAOA,CAAC,CAAC,EAAE;QAAE;QAAGC,MAAM,EAAE;QAAEC,KAAK,EAAE;IAAC,GAAGC,GAAGC,GAAGJ,GAAGK,IAAIC,OAAOC,MAAM,CAAC,AAAC,CAAA,OAAOC,aAAa,aAAaA,WAAWF,MAAK,EAAGG,SAAS;IAC/L,OAAOJ,EAAEjB,IAAI,GAAGsB,KAAK,IAAIL,CAAC,CAAC,QAAQ,GAAGK,KAAK,IAAIL,CAAC,CAAC,SAAS,GAAGK,KAAK,IAAI,OAAOC,WAAW,cAAeN,CAAAA,CAAC,CAACM,OAAOC,QAAQ,CAAC,GAAG;QAAa,OAAO,IAAI;IAAE,CAAA,GAAIP;IAC1J,SAASK,KAAKG,CAAC;QAAI,OAAO,SAAUC,CAAC;YAAI,OAAO3B,KAAK;gBAAC0B;gBAAGC;aAAE;QAAG;IAAG;IACjE,SAAS3B,KAAK4B,EAAE;QACZ,IAAIZ,GAAG,MAAM,IAAIa,UAAU;QAC3B,MAAOX,KAAMA,CAAAA,IAAI,GAAGU,EAAE,CAAC,EAAE,IAAKlB,CAAAA,IAAI,CAAA,CAAC,GAAIA,EAAG,IAAI;YAC1C,IAAIM,IAAI,GAAGC,KAAMJ,CAAAA,IAAIe,EAAE,CAAC,EAAE,GAAG,IAAIX,CAAC,CAAC,SAAS,GAAGW,EAAE,CAAC,EAAE,GAAGX,CAAC,CAAC,QAAQ,IAAK,CAAA,AAACJ,CAAAA,IAAII,CAAC,CAAC,SAAS,AAAD,KAAMJ,EAAEiB,IAAI,CAACb,IAAI,CAAA,IAAKA,EAAEhB,IAAI,AAAD,KAAM,CAAC,AAACY,CAAAA,IAAIA,EAAEiB,IAAI,CAACb,GAAGW,EAAE,CAAC,EAAE,CAAA,EAAGvB,IAAI,EAAE,OAAOQ;YAC3J,IAAII,IAAI,GAAGJ,GAAGe,KAAK;gBAACA,EAAE,CAAC,EAAE,GAAG;gBAAGf,EAAElB,KAAK;aAAC;YACvC,OAAQiC,EAAE,CAAC,EAAE;gBACT,KAAK;gBAAG,KAAK;oBAAGf,IAAIe;oBAAI;gBACxB,KAAK;oBAAGlB,EAAEC,KAAK;oBAAI,OAAO;wBAAEhB,OAAOiC,EAAE,CAAC,EAAE;wBAAEvB,MAAM;oBAAM;gBACtD,KAAK;oBAAGK,EAAEC,KAAK;oBAAIM,IAAIW,EAAE,CAAC,EAAE;oBAAEA,KAAK;wBAAC;qBAAE;oBAAE;gBACxC,KAAK;oBAAGA,KAAKlB,EAAEK,GAAG,CAACgB,GAAG;oBAAIrB,EAAEI,IAAI,CAACiB,GAAG;oBAAI;gBACxC;oBACI,IAAI,CAAElB,CAAAA,IAAIH,EAAEI,IAAI,EAAED,IAAIA,EAAEmB,MAAM,GAAG,KAAKnB,CAAC,CAACA,EAAEmB,MAAM,GAAG,EAAE,AAAD,KAAOJ,CAAAA,EAAE,CAAC,EAAE,KAAK,KAAKA,EAAE,CAAC,EAAE,KAAK,CAAA,GAAI;wBAAElB,IAAI;wBAAG;oBAAU;oBAC3G,IAAIkB,EAAE,CAAC,EAAE,KAAK,KAAM,CAAA,CAACf,KAAMe,EAAE,CAAC,EAAE,GAAGf,CAAC,CAAC,EAAE,IAAIe,EAAE,CAAC,EAAE,GAAGf,CAAC,CAAC,EAAE,GAAI;wBAAEH,EAAEC,KAAK,GAAGiB,EAAE,CAAC,EAAE;wBAAE;oBAAO;oBACrF,IAAIA,EAAE,CAAC,EAAE,KAAK,KAAKlB,EAAEC,KAAK,GAAGE,CAAC,CAAC,EAAE,EAAE;wBAAEH,EAAEC,KAAK,GAAGE,CAAC,CAAC,EAAE;wBAAEA,IAAIe;wBAAI;oBAAO;oBACpE,IAAIf,KAAKH,EAAEC,KAAK,GAAGE,CAAC,CAAC,EAAE,EAAE;wBAAEH,EAAEC,KAAK,GAAGE,CAAC,CAAC,EAAE;wBAAEH,EAAEK,GAAG,CAACkB,IAAI,CAACL;wBAAK;oBAAO;oBAClE,IAAIf,CAAC,CAAC,EAAE,EAAEH,EAAEK,GAAG,CAACgB,GAAG;oBACnBrB,EAAEI,IAAI,CAACiB,GAAG;oBAAI;YACtB;YACAH,KAAKnB,KAAKqB,IAAI,CAACxC,SAASoB;QAC5B,EAAE,OAAOR,GAAG;YAAE0B,KAAK;gBAAC;gBAAG1B;aAAE;YAAEe,IAAI;QAAG,SAAU;YAAED,IAAIH,IAAI;QAAG;QACzD,IAAIe,EAAE,CAAC,EAAE,GAAG,GAAG,MAAMA,EAAE,CAAC,EAAE;QAAE,OAAO;YAAEjC,OAAOiC,EAAE,CAAC,EAAE,GAAGA,EAAE,CAAC,EAAE,GAAG,KAAK;YAAGvB,MAAM;QAAK;IACnF;AACJ;AACA,IAAI6B,gBAAgB,AAAC,IAAI,IAAI,IAAI,CAACA,aAAa,IAAK,SAAUC,EAAE,EAAEC,IAAI,EAAEC,IAAI;IACxE,IAAIA,QAAQC,UAAUN,MAAM,KAAK,GAAG,IAAK,IAAIO,IAAI,GAAGC,IAAIJ,KAAKJ,MAAM,EAAES,IAAIF,IAAIC,GAAGD,IAAK;QACjF,IAAIE,MAAM,CAAEF,CAAAA,KAAKH,IAAG,GAAI;YACpB,IAAI,CAACK,IAAIA,KAAKC,MAAMpB,SAAS,CAACqB,KAAK,CAACb,IAAI,CAACM,MAAM,GAAGG;YAClDE,EAAE,CAACF,EAAE,GAAGH,IAAI,CAACG,EAAE;QACnB;IACJ;IACA,OAAOJ,GAAGS,MAAM,CAACH,MAAMC,MAAMpB,SAAS,CAACqB,KAAK,CAACb,IAAI,CAACM;AACtD;AACAjB,OAAO0B,cAAc,CAACC,SAAS,cAAc;IAAEnD,OAAO;AAAK;AAC3DmD,QAAQC,aAAa,GAAGD,QAAQE,mBAAmB,GAAGF,QAAQG,gBAAgB,GAAGH,QAAQI,YAAY,GAAGJ,QAAQK,kBAAkB,GAAGL,QAAQM,YAAY,GAAGN,QAAQO,QAAQ,GAAGP,QAAQQ,sBAAsB,GAAGR,QAAQS,WAAW,GAAGT,QAAQU,WAAW,GAAG,KAAK;AACjQV,QAAQW,sBAAsB,GAAGA;AACjC,IAAIC,YAAYC,QAAQ;AACxB,IAAIC,SAASD,QAAQ;AACrB,IAAIE,cAAcF,QAAQ;AAC1B,IAAIG,SAASH,QAAQ;AACrB,uDAAuD;AACvD,IAAII,uBAAuB;IACvBC,SAAS;IACTC,aAAa;IACbC,WAAW;IACXC,YAAY;IACZC,SAAS;IACTC,YAAY;IACZC,WAAW;AACf;AACA;;CAEC,GACD,SAASb,uBAAuBc,UAAU;IACtC,OAAOR,oBAAoB,CAACQ,WAAW,IAAIA;AAC/C;AACA,IAAIf,cAAc,WAAW,GAAI;IAC7B,SAASA;QACL,IAAI,CAACgB,UAAU,GAAG,IAAIC;QACtB,IAAI,CAACC,eAAe,GAAG,EAAE;QACzB,IAAI,CAACC,YAAY,GAAG;QACpB,IAAI,CAACC,YAAY,GAAG,OAAO,iBAAiB;IAChD;IACApB,YAAYlC,SAAS,CAACuD,kBAAkB,GAAG;QACvC,IAAIC,aAAaC,QAAQC,GAAG;QAC5B,MAAOF,eAAe,IAAK;YACvB,IAAIG,mBAAmB,AAAC,CAAA,GAAGpB,YAAYjE,OAAO,AAAD,EAAGkF,YAAY,WAAW;YACvE,IAAI,AAAC,CAAA,GAAGpB,UAAUwB,UAAU,AAAD,EAAGD,mBAAmB;gBAC7C,OAAOA;YACX;YACAH,aAAa,AAAC,CAAA,GAAGjB,YAAYsB,OAAO,AAAD,EAAGL;QAC1C;QACA,OAAO,AAAC,CAAA,GAAGjB,YAAYjE,OAAO,AAAD,EAAGmF,QAAQC,GAAG,IAAI,WAAW;IAC9D;IACAxB,YAAYlC,SAAS,CAAC8D,cAAc,GAAG,SAAUC,QAAQ;QACrD,IAAI;YACA,IAAIC,UAAU,AAAC,CAAA,GAAG5B,UAAU6B,YAAY,AAAD,EAAGF,UAAU;YACpD,IAAIG,mBAAmBF,QAAQG,KAAK,CAAC;YACrC,IAAI,CAACD,kBAAkB;gBACnBE,QAAQC,IAAI,CAAC,2BAA2B/C,MAAM,CAACyC;gBAC/C,OAAO;YACX;YACA,IAAIO,cAAcJ,gBAAgB,CAAC,EAAE,EAAEK,kBAAkBL,gBAAgB,CAAC,EAAE;YAC5E,IAAIM,cAAc,AAAC,CAAA,GAAGhC,OAAOiC,KAAK,AAAD,EAAGH;YACpC,IAAII,cAAcF,YAAYE,WAAW;YACzC,IAAI,CAACF,YAAYG,IAAI,IAAI,CAACD,aAAa;gBACnCN,QAAQC,IAAI,CAAC,kDAAkD/C,MAAM,CAACyC;gBACtE,OAAO;YACX;YACA,OAAO;gBACHY,MAAMC,OAAOJ,YAAYG,IAAI;gBAC7BE,MAAML,YAAYK,IAAI,GAAGD,OAAOJ,YAAYK,IAAI,IAAIC;gBACpDC,OAAOP,YAAYO,KAAK,GAAGH,OAAOJ,YAAYO,KAAK,IAAID;gBACvDJ,aAAaE,OAAOF;gBACpBM,OAAOR,YAAYQ,KAAK,GAAGJ,OAAOJ,YAAYQ,KAAK,IAAIF;gBACvDG,cAAc7D,MAAM8D,OAAO,CAACV,YAAYS,YAAY,IAC9CT,YAAYS,YAAY,CAACE,GAAG,CAACP,UAC7B,EAAE;gBACRQ,UAAU;oBAAC;oBAAO;oBAAU;oBAAQ;iBAAW,CAACC,QAAQ,CAACT,OAAOJ,YAAYY,QAAQ,KAC9ER,OAAOJ,YAAYY,QAAQ,IAC3B;gBACNE,OAAO,IAAI,CAACC,UAAU,CAACf;gBACvBgB,OAAOhB,YAAYgB,KAAK;gBACxBxB,SAASO,gBAAgBkB,IAAI;YACjC;QACJ,EACA,OAAOC,OAAO;YACVtB,QAAQsB,KAAK,CAAC,4BAA4BpE,MAAM,CAACyC,UAAU,MAAM2B;YACjE,OAAO;QACX;IACJ;IACAxD,YAAYlC,SAAS,CAACuF,UAAU,GAAG,SAAUf,WAAW;QACpD,IAAImB,eAAe,SAAUC,KAAK;YAC9B,IAAIxE,MAAM8D,OAAO,CAACU,QACd,OAAOA,MAAMT,GAAG,CAACP;YACrB,IAAI,OAAOgB,UAAU,UAAU;gBAC3B,OAAOA,MAAMC,KAAK,CAAC,UAAUV,GAAG,CAAC,SAAU5F,CAAC;oBAAI,OAAOA,EAAEkG,IAAI;gBAAI,GAAGK,MAAM,CAAC,SAAUvG,CAAC;oBAAI,OAAOA,EAAEmB,MAAM,GAAG;gBAAG;YACnH;YACA,OAAO,EAAE;QACb;QACA,6CAA6C;QAC7C,IAAIqF,uBAAuBvB,YAAYc,KAAK,GACtCK,aAAanB,YAAYc,KAAK,IAC9B,EAAE;QACR,IAAIU,wBAAwBxB,YAAYS,YAAY,IAAI,OAAOT,YAAYS,YAAY,KAAK,WACtFU,aAAa9F,OAAO2E,YAAYS,YAAY,EAAEK,KAAK,IACnD,EAAE;QACR,OAAO1E,cAAcA,cAAc,EAAE,EAAEmF,sBAAsB,OAAOC,uBAAuB;IAC/F;IACA9D,YAAYlC,SAAS,CAACiG,UAAU,GAAG;QAC/B,OAAOlI,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,IAAImI,WAAWC,YAAYC,aAAaC,IAAIC,cAAcvC,UAAUwC,OAAOC,cAAcC,WAAWC;YACpG,OAAOxH,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBACD6G,YAAY,IAAI,CAAC3C,kBAAkB;wBACnC,IAAI,CAAC,AAAC,CAAA,GAAGnB,UAAUwB,UAAU,AAAD,EAAGsC,YAAY;4BACvC9B,QAAQC,IAAI,CAAC,+BAA+B/C,MAAM,CAAC4E;4BACnD,OAAO;gCAAC,EAAE,QAAQ;6BAAG;wBACzB;wBACA,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI3H,QAAQ,SAAUD,OAAO,EAAEE,MAAM;gCACjD,CAAA,GAAG8D,OAAOsE,IAAI,AAAD,EAAG,WAAW;oCACxBlD,KAAKwC;oCACLW,QAAQ;wCAAC;wCAAgB;qCAA0B;oCACnDC,UAAU;gCACd,GAAG,SAAUC,GAAG,EAAEC,OAAO;oCACrB,IAAID,KACAvI,OAAOuI;yCAEPzI,QAAQ0I;gCAChB;4BACJ;yBAAG;oBACX,KAAK;wBACDb,aAAaQ,GAAGrH,IAAI;wBACpB,IAAI,CAAC4D,UAAU,CAAC+D,KAAK;wBACrB,IAAI,CAAC7D,eAAe,GAAG,EAAE;wBACzBgD,cAAc,IAAIjD;wBAClB,IAAKkD,KAAK,GAAGC,eAAeH,YAAYE,KAAKC,aAAa5F,MAAM,EAAE2F,KAAM;4BACpEtC,WAAWuC,YAAY,CAACD,GAAG;4BAC3BE,QAAQ,IAAI,CAACzC,cAAc,CAACC;4BAC5B,IAAIwC,OAAO;gCACP,IAAI,CAACrD,UAAU,CAACgE,GAAG,CAACX,MAAM5B,IAAI,EAAE4B;gCAChCC,eAAezC,SAASoD,OAAO,CAACjB,WAAW;gCAC3CO,YAAYD,aAAaX,KAAK,CAAC;gCAC/Ba,WAAWD,SAAS,CAAC,EAAE,IAAI;gCAC3B,IAAI,CAACL,YAAYgB,GAAG,CAACV,WAAW;oCAC5BN,YAAYc,GAAG,CAACR,UAAU,EAAE;gCAChC;gCACAN,YAAYiB,GAAG,CAACX,UAAU/F,IAAI,CAAC4F;4BACnC;wBACJ;wBACA,IAAI,CAACnD,eAAe,GAAGhC,MAAMN,IAAI,CAACsF,YAAYkB,OAAO,IAAInC,GAAG,CAAC,SAAUwB,EAAE;4BACrE,IAAIhC,OAAOgC,EAAE,CAAC,EAAE,EAAEY,SAASZ,EAAE,CAAC,EAAE;4BAChC,OAAQ;gCACJhC,MAAMA;gCACN4C,QAAQA,OAAOC,IAAI,CAAC,SAAUC,CAAC,EAAEC,CAAC;oCAAI,OAAOD,EAAE9C,IAAI,CAACgD,aAAa,CAACD,EAAE/C,IAAI;gCAAG;4BAC/E;wBACJ;wBACA,IAAI,CAACtB,YAAY,GAAGuE,KAAKC,GAAG;wBAC5B,OAAO;4BAAC,EAAE,QAAQ;yBAAG;gBAC7B;YACJ;QACJ;IACJ;IACA,oEAAoE;IACpE3F,YAAYlC,SAAS,CAAC8H,YAAY,GAAG;QACjC,OAAOF,KAAKC,GAAG,KAAK,IAAI,CAACxE,YAAY,GAAG,IAAI,CAACC,YAAY;IAC7D;IACApB,YAAYlC,SAAS,CAAC+H,YAAY,GAAG;QACjC,OAAOhK,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,OAAOmB,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBACD,IAAI,CAAE,CAAA,IAAI,CAAC6D,UAAU,CAAC8E,IAAI,KAAK,KAAK,IAAI,CAACF,YAAY,EAAC,GAAI,OAAO;4BAAC,EAAE,OAAO;4BAAI;yBAAE;wBACjF,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC7B,UAAU;yBAAG;oBAC3C,KAAK;wBACDU,GAAGrH,IAAI;wBACPqH,GAAGtH,KAAK,GAAG;oBACf,KAAK;wBAAG,OAAO;4BAAC,EAAE,QAAQ;yBAAG;gBACjC;YACJ;QACJ;IACJ;IACA6C,YAAYlC,SAAS,CAACgC,sBAAsB,GAAG;QAC3C,OAAOjE,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,IAAIkK,cAAcC;YAClB,OAAOhJ,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBAAG,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC0I,YAAY;yBAAG;oBACjD,KAAK;wBACDpB,GAAGrH,IAAI;wBACP2I,eAAe7G,MAAMN,IAAI,CAAC,IAAI,CAACoC,UAAU,CAACiF,IAAI;wBAC9CD,cAAcrI,OAAOsI,IAAI,CAAC1F;wBAC1B,OAAO;4BAAC,EAAE,QAAQ;4BAAIrB,MAAMN,IAAI,CAAC,IAAIsH,IAAIxH,cAAcA,cAAc,EAAE,EAAEqH,cAAc,OAAOC,aAAa,QAAQV,IAAI;yBAAG;gBAClI;YACJ;QACJ;IACJ;IACAtF,YAAYlC,SAAS,CAAC+B,QAAQ,GAAG,SAAU4C,IAAI;QAC3C,OAAO5G,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,OAAOmB,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBAAG,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC0I,YAAY;yBAAG;oBACjD,KAAK;wBACDpB,GAAGrH,IAAI;wBACP,OAAO;4BAAC,EAAE,QAAQ;4BAAI,IAAI,CAAC4D,UAAU,CAACmE,GAAG,CAAC1C,SAAS,IAAI,CAACzB,UAAU,CAACmE,GAAG,CAAClF,uBAAuBwC,UAAU;yBAAK;gBACrH;YACJ;QACJ;IACJ;IACAzC,YAAYlC,SAAS,CAAC8B,YAAY,GAAG;QACjC,OAAO/D,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,OAAOmB,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBAAG,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC0I,YAAY;yBAAG;oBACjD,KAAK;wBACDpB,GAAGrH,IAAI;wBACP,OAAO;4BAAC,EAAE,QAAQ;4BAAI8B,MAAMN,IAAI,CAAC,IAAI,CAACoC,UAAU,CAACmF,MAAM,IAAIb,IAAI,CAAC,SAAUC,CAAC,EAAEC,CAAC;gCAAI,OAAOD,EAAE9C,IAAI,CAACgD,aAAa,CAACD,EAAE/C,IAAI;4BAAG;yBAAG;gBAClI;YACJ;QACJ;IACJ;IACAzC,YAAYlC,SAAS,CAAC6B,kBAAkB,GAAG;QACvC,OAAO9D,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,OAAOmB,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBAAG,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC0I,YAAY;yBAAG;oBACjD,KAAK;wBACDpB,GAAGrH,IAAI;wBACP,OAAO;4BAAC,EAAE,QAAQ;4BAAI,IAAI,CAAC8D,eAAe;yBAAC;gBACnD;YACJ;QACJ;IACJ;IACAlB,YAAYlC,SAAS,CAAC4B,YAAY,GAAG,SAAU0G,KAAK;QAChD,OAAOvK,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,IAAIwK;YACJ,OAAOrJ,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBAAG,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC0I,YAAY;yBAAG;oBACjD,KAAK;wBACDpB,GAAGrH,IAAI;wBACPiJ,aAAaD,MAAME,WAAW;wBAC9B,OAAO;4BAAC,EAAE,QAAQ;4BAAIpH,MAAMN,IAAI,CAAC,IAAI,CAACoC,UAAU,CAACmF,MAAM,IAAIvC,MAAM,CAAC,SAAUS,KAAK;gCACzE,IAAII;gCACJ,OAAOJ,MAAM5B,IAAI,CAAC6D,WAAW,GAAGnD,QAAQ,CAACkD,eACrChC,MAAM7B,WAAW,CAAC8D,WAAW,GAAGnD,QAAQ,CAACkD,eACxC,CAAA,AAAC5B,CAAAA,KAAKJ,MAAMtB,YAAY,AAAD,MAAO,QAAQ0B,OAAO,KAAK,IAAI,KAAK,IAAIA,GAAG8B,IAAI,CAAC,SAAUC,GAAG;oCAAI,OAAOA,IAAIF,WAAW,GAAGnD,QAAQ,CAACkD;gCAAa,EAAC;4BACjJ;yBAAG;gBACf;YACJ;QACJ;IACJ;IACArG,YAAYlC,SAAS,CAAC2B,gBAAgB,GAAG,SAAUgD,IAAI;QACnD,OAAO5G,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,OAAOmB,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBAAG,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC0I,YAAY;yBAAG;oBACjD,KAAK;wBACDpB,GAAGrH,IAAI;wBACP,OAAO;4BAAC,EAAE,QAAQ;4BAAI,IAAI,CAAC4D,UAAU,CAACkE,GAAG,CAACzC,SAAS,IAAI,CAACzB,UAAU,CAACkE,GAAG,CAACjF,uBAAuBwC;yBAAO;gBAC7G;YACJ;QACJ;IACJ;IACAzC,YAAYlC,SAAS,CAAC0B,mBAAmB,GAAG,SAAUgF,QAAQ;QAC1D,OAAO3I,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,IAAI4K,YAAYC;YAChB,OAAO1J,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBAAG,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAACwC,kBAAkB;yBAAG;oBACvD,KAAK;wBACD8G,aAAahC,GAAGrH,IAAI;wBACpBsJ,QAAQD,WAAWE,IAAI,CAAC,SAAUC,GAAG;4BAAI,OAAOA,IAAInE,IAAI,KAAK+B;wBAAU;wBACvE,OAAO;4BAAC,EAAE,QAAQ;4BAAKkC,CAAAA,UAAU,QAAQA,UAAU,KAAK,IAAI,KAAK,IAAIA,MAAMrB,MAAM,AAAD,KAAM,EAAE;yBAAC;gBACjG;YACJ;QACJ;IACJ;IACArF,YAAYlC,SAAS,CAAC+I,OAAO,GAAG;QAC5B,OAAOhL,UAAU,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG;YACnC,OAAOmB,YAAY,IAAI,EAAE,SAAUyH,EAAE;gBACjC,OAAQA,GAAGtH,KAAK;oBACZ,KAAK;wBACD,IAAI,CAACgE,YAAY,GAAG;wBACpB,OAAO;4BAAC,EAAE,OAAO;4BAAI,IAAI,CAAC4C,UAAU;yBAAG;oBAC3C,KAAK;wBACDU,GAAGrH,IAAI;wBACP,OAAO;4BAAC,EAAE,QAAQ;yBAAG;gBAC7B;YACJ;QACJ;IACJ;IACA,OAAO4C;AACX;AACAV,QAAQU,WAAW,GAAGA;AACtB,qBAAqB;AACrBV,QAAQS,WAAW,GAAG,IAAIC;AAC1B,+CAA+C;AAC/C,IAAIF,yBAAyB;IAAc,OAAOR,QAAQS,WAAW,CAACD,sBAAsB;AAAI;AAChGR,QAAQQ,sBAAsB,GAAGA;AACjC,IAAID,WAAW,SAAU4C,IAAI;IAAI,OAAOnD,QAAQS,WAAW,CAACF,QAAQ,CAAC4C;AAAO;AAC5EnD,QAAQO,QAAQ,GAAGA;AACnB,IAAID,eAAe;IAAc,OAAON,QAAQS,WAAW,CAACH,YAAY;AAAI;AAC5EN,QAAQM,YAAY,GAAGA;AACvB,IAAID,qBAAqB;IAAc,OAAOL,QAAQS,WAAW,CAACJ,kBAAkB;AAAI;AACxFL,QAAQK,kBAAkB,GAAGA;AAC7B,IAAID,eAAe,SAAU0G,KAAK;IAAI,OAAO9G,QAAQS,WAAW,CAACL,YAAY,CAAC0G;AAAQ;AACtF9G,QAAQI,YAAY,GAAGA;AACvB,IAAID,mBAAmB,SAAUgD,IAAI;IAAI,OAAOnD,QAAQS,WAAW,CAACN,gBAAgB,CAACgD;AAAO;AAC5FnD,QAAQG,gBAAgB,GAAGA;AAC3B,IAAID,sBAAsB,SAAUgF,QAAQ;IAAI,OAAOlF,QAAQS,WAAW,CAACP,mBAAmB,CAACgF;AAAW;AAC1GlF,QAAQE,mBAAmB,GAAGA;AAC9B,IAAID,gBAAgB;IAAc,OAAOD,QAAQS,WAAW,CAAC8G,OAAO;AAAI;AACxEvH,QAAQC,aAAa,GAAGA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-flow-novice",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"description": "AI agent orchestration framework with namespace-isolated skills, agents, and CFN Loop validation. Safe installation with ~0.01% collision risk.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
".claude/skills/cfn-agent-selector/",
|
|
26
26
|
".claude/skills/cfn-agent-spawning/",
|
|
27
27
|
".claude/skills/cfn-analytics/",
|
|
28
|
+
".claude/skills/cfn-backlog-management/",
|
|
28
29
|
".claude/skills/cfn-checkpoint-state/",
|
|
29
30
|
".claude/skills/cfn-config-management/",
|
|
30
31
|
".claude/skills/cfn-event-bus/",
|
|
@@ -94,7 +95,7 @@
|
|
|
94
95
|
"typecheck": "tsc --noEmit",
|
|
95
96
|
"prepublishOnly": "npm run build && ./scripts/verify-no-secrets.sh",
|
|
96
97
|
"prepack": "npm run build && npm run copy-claude-assets",
|
|
97
|
-
"copy-claude-assets": "rm -rf claude-assets && mkdir -p claude-assets && cp -r .claude/agents claude-assets/ && cp -r .claude/skills claude-assets/ && cp -r .claude/hooks claude-assets/ &&
|
|
98
|
+
"copy-claude-assets": "rm -rf claude-assets && mkdir -p claude-assets && cp -r .claude/agents claude-assets/ && cp -r .claude/skills claude-assets/ && cp -r .claude/hooks claude-assets/ && mkdir -p claude-assets/commands/cfn && cp .claude/commands/*.md claude-assets/commands/cfn/ && cp -r .claude/root-claude-distribute claude-assets/",
|
|
98
99
|
"postinstall": "node scripts/init-project.js",
|
|
99
100
|
"verify-package": "npm pack --dry-run",
|
|
100
101
|
"portal:start": "./scripts/start-portal.sh",
|
package/scripts/init-project.js
CHANGED
|
@@ -54,7 +54,8 @@ const CFN_PATHS = {
|
|
|
54
54
|
},
|
|
55
55
|
commands: {
|
|
56
56
|
src: path.join(cfnRoot, 'claude-assets/commands/cfn'),
|
|
57
|
-
dest: '.claude/commands
|
|
57
|
+
dest: '.claude/commands',
|
|
58
|
+
selectiveCopy: true // Copy all files to root, overwriting cfn-prefixed ones
|
|
58
59
|
},
|
|
59
60
|
cfnData: {
|
|
60
61
|
src: path.join(cfnRoot, 'claude-assets/cfn-data'),
|
|
@@ -106,7 +107,7 @@ async function verifyCfnInstallation() {
|
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
|
|
109
|
-
async function copyFiles(src, dest, pattern, forceOverwrite = true) {
|
|
110
|
+
async function copyFiles(src, dest, pattern, forceOverwrite = true, selectiveCopy = false) {
|
|
110
111
|
try {
|
|
111
112
|
if (!fs.existsSync(src)) {
|
|
112
113
|
console.warn(chalk.yellow(`⚠️ Source not found: ${src}`));
|
|
@@ -131,6 +132,34 @@ async function copyFiles(src, dest, pattern, forceOverwrite = true) {
|
|
|
131
132
|
await cpAsync(itemSrc, itemDest, { recursive: true, force: true });
|
|
132
133
|
}
|
|
133
134
|
console.log(chalk.green(`✅ Copied ${matched.length} ${pattern} items from ${src} (overwrite: ${forceOverwrite})`));
|
|
135
|
+
} else if (selectiveCopy) {
|
|
136
|
+
// Copy all files to dest, but only overwrite files starting with 'cfn-' or 'CFN_'
|
|
137
|
+
await mkdirAsync(dest, { recursive: true });
|
|
138
|
+
const items = fs.readdirSync(src);
|
|
139
|
+
let copiedCount = 0;
|
|
140
|
+
let skippedCount = 0;
|
|
141
|
+
|
|
142
|
+
for (const item of items) {
|
|
143
|
+
const itemSrc = path.join(src, item);
|
|
144
|
+
const itemDest = path.join(dest, item);
|
|
145
|
+
const isCfnFile = item.startsWith('cfn-') || item.startsWith('CFN_');
|
|
146
|
+
|
|
147
|
+
// Skip if non-CFN file exists and we shouldn't overwrite
|
|
148
|
+
if (!isCfnFile && fs.existsSync(itemDest)) {
|
|
149
|
+
console.log(chalk.yellow(` ⏭️ Skipped ${item} (non-CFN file exists)`));
|
|
150
|
+
skippedCount++;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// For CFN files, always overwrite
|
|
155
|
+
if (isCfnFile && fs.existsSync(itemDest)) {
|
|
156
|
+
fs.rmSync(itemDest, { recursive: true, force: true });
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
await cpAsync(itemSrc, itemDest, { recursive: true, force: true });
|
|
160
|
+
copiedCount++;
|
|
161
|
+
}
|
|
162
|
+
console.log(chalk.green(`✅ Copied ${copiedCount} files to ${dest} (skipped ${skippedCount} existing non-CFN files)`));
|
|
134
163
|
} else {
|
|
135
164
|
// Copy entire directory (e.g., cfn-dev-team)
|
|
136
165
|
// Remove existing destination to ensure clean update
|
|
@@ -211,7 +240,13 @@ async function initializeCfnProject() {
|
|
|
211
240
|
|
|
212
241
|
// Copy CFN files
|
|
213
242
|
for (const [key, config] of Object.entries(CFN_PATHS)) {
|
|
214
|
-
const result = await copyFiles(
|
|
243
|
+
const result = await copyFiles(
|
|
244
|
+
config.src,
|
|
245
|
+
config.dest,
|
|
246
|
+
config.pattern,
|
|
247
|
+
true, // forceOverwrite
|
|
248
|
+
config.selectiveCopy || false
|
|
249
|
+
);
|
|
215
250
|
copyResults.push(result);
|
|
216
251
|
}
|
|
217
252
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -eu
|
|
3
|
+
|
|
4
|
+
export MARKETING_COORDINATOR_API_KEY="${MARKETING_COORDINATOR_API_KEY:-undefined}"
|
|
5
|
+
|
|
6
|
+
echo "🚢 Simulating Marketing Coordinator Deployment"
|
|
7
|
+
echo "Successfully deployed" > deployment_log.txt
|
|
8
|
+
|
|
9
|
+
echo "🤖 Simulating Z.ai Worker Spawning"
|
|
10
|
+
for i in {1..3}; do
|
|
11
|
+
echo "Worker spawned: marketing-worker-$i" >> workers_log.txt
|
|
12
|
+
done
|
|
13
|
+
|
|
14
|
+
echo "💰 Simulating Cost Tracking"
|
|
15
|
+
echo "Total Z.ai cost: 3.75" > cost_tracking.txt
|
|
16
|
+
|
|
17
|
+
total_workers=$(grep -c "Worker spawned" workers_log.txt)
|
|
18
|
+
deployment_status=$(grep "Successfully deployed" deployment_log.txt)
|
|
19
|
+
total_cost=3.75
|
|
20
|
+
|
|
21
|
+
confidence=0.0
|
|
22
|
+
|
|
23
|
+
if [[ -n "$deployment_status" ]]; then
|
|
24
|
+
confidence=$(echo "scale=2; $confidence + 0.3" | bc)
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
if [[ "$total_workers" -eq 3 ]]; then
|
|
28
|
+
confidence=$(echo "scale=2; $confidence + 0.3" | bc)
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if (( $(echo "$total_cost < 5" | bc -l) )); then
|
|
32
|
+
confidence=$(echo "scale=2; $confidence + 0.4" | bc)
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
cat > marketing_hybrid_results.json <<EOF
|
|
36
|
+
{
|
|
37
|
+
"confidence": $confidence,
|
|
38
|
+
"deployment_status": "success",
|
|
39
|
+
"workers_spawned": $total_workers,
|
|
40
|
+
"total_cost": $total_cost
|
|
41
|
+
}
|
|
42
|
+
EOF
|
|
43
|
+
|
|
44
|
+
echo "Deployment Complete. Confidence: $confidence"
|
|
45
|
+
exit 0
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Prometheus Metric Exporter for Z.ai Team Costs
|
|
3
|
+
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
# Ensure output directory exists
|
|
7
|
+
mkdir -p /tmp
|
|
8
|
+
|
|
9
|
+
# Configuration
|
|
10
|
+
REDIS_KEY_PREFIX="zai_team_costs"
|
|
11
|
+
COST_PER_MILLION=0.50
|
|
12
|
+
|
|
13
|
+
# Generate Prometheus-compatible metrics
|
|
14
|
+
generate_metrics() {
|
|
15
|
+
local timestamp=$(date +%s)
|
|
16
|
+
|
|
17
|
+
# Output metric metadata
|
|
18
|
+
echo "# HELP zai_team_total_cost Z.ai cost per team in USD"
|
|
19
|
+
echo "# TYPE zai_team_total_cost gauge"
|
|
20
|
+
|
|
21
|
+
# Iterate through teams and export costs
|
|
22
|
+
for team in $(redis-cli HKEYS "$REDIS_KEY_PREFIX"); do
|
|
23
|
+
local cost=$(redis-cli HGET "$REDIS_KEY_PREFIX" "$team")
|
|
24
|
+
echo "zai_team_total_cost{team=\"$team\"} $cost $timestamp"
|
|
25
|
+
done
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# Run in continuous mode with 15s interval
|
|
29
|
+
while true; do
|
|
30
|
+
# Generate and write metrics
|
|
31
|
+
generate_metrics > /tmp/zai_costs_metrics.prom
|
|
32
|
+
sleep 15
|
|
33
|
+
done
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Mock Z.ai Cost Tracking Script
|
|
3
|
+
|
|
4
|
+
# Default cost calculation
|
|
5
|
+
BASE_COST=35.75
|
|
6
|
+
|
|
7
|
+
# Parse arguments
|
|
8
|
+
while [[ "$#" -gt 0 ]]; do
|
|
9
|
+
case $1 in
|
|
10
|
+
--start) START_DATE="$2"; shift ;;
|
|
11
|
+
--end) END_DATE="$2"; shift ;;
|
|
12
|
+
*) echo "Unknown parameter passed: $1"; exit 1 ;;
|
|
13
|
+
esac
|
|
14
|
+
shift
|
|
15
|
+
done
|
|
16
|
+
|
|
17
|
+
# Simulate cost tracking
|
|
18
|
+
echo "${BASE_COST}"
|
|
19
|
+
exit 0
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Agents Commands
|
|
2
|
-
|
|
3
|
-
Commands for agents operations in Claude Flow.
|
|
4
|
-
|
|
5
|
-
## Available Commands
|
|
6
|
-
|
|
7
|
-
- [agent-types](./agent-types.md)
|
|
8
|
-
- [agent-capabilities](./agent-capabilities.md)
|
|
9
|
-
- [agent-coordination](./agent-coordination.md)
|
|
10
|
-
- [agent-spawning](./agent-spawning.md)
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# agent-capabilities
|
|
2
|
-
|
|
3
|
-
Matrix of agent capabilities and their specializations.
|
|
4
|
-
|
|
5
|
-
## Capability Matrix
|
|
6
|
-
|
|
7
|
-
| Agent Type | Primary Skills | Best For |
|
|
8
|
-
|------------|---------------|----------|
|
|
9
|
-
| coder | Implementation, debugging | Feature development |
|
|
10
|
-
| researcher | Analysis, synthesis | Requirements gathering |
|
|
11
|
-
| tester | Testing, validation | Quality assurance |
|
|
12
|
-
| architect | Design, planning | System architecture |
|
|
13
|
-
|
|
14
|
-
## Querying Capabilities
|
|
15
|
-
```bash
|
|
16
|
-
# List all capabilities
|
|
17
|
-
npx cfn-spawn agents capabilities
|
|
18
|
-
|
|
19
|
-
# For specific agent
|
|
20
|
-
npx cfn-spawn agents capabilities --type coder
|
|
21
|
-
```
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# agent-coordination
|
|
2
|
-
|
|
3
|
-
Coordination patterns for multi-agent collaboration.
|
|
4
|
-
|
|
5
|
-
## Coordination Patterns
|
|
6
|
-
|
|
7
|
-
### Hierarchical
|
|
8
|
-
Queen-led with worker specialization
|
|
9
|
-
```bash
|
|
10
|
-
npx claude-flow-novice swarm init --topology hierarchical
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Mesh
|
|
14
|
-
Peer-to-peer collaboration
|
|
15
|
-
```bash
|
|
16
|
-
npx claude-flow-novice swarm init --topology mesh
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Adaptive
|
|
20
|
-
Dynamic topology based on workload
|
|
21
|
-
```bash
|
|
22
|
-
npx claude-flow-novice swarm init --topology adaptive
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Best Practices
|
|
26
|
-
- Use hierarchical for complex projects
|
|
27
|
-
- Use mesh for research tasks
|
|
28
|
-
- Use adaptive for unknown workloads
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# agent-spawning
|
|
2
|
-
|
|
3
|
-
Guide to spawning agents with Claude Code's Task tool.
|
|
4
|
-
|
|
5
|
-
## Using Claude Code's Task Tool
|
|
6
|
-
|
|
7
|
-
**CRITICAL**: Always use Claude Code's Task tool for actual agent execution:
|
|
8
|
-
|
|
9
|
-
```javascript
|
|
10
|
-
// Spawn ALL agents in ONE message
|
|
11
|
-
Task("Researcher", "Analyze requirements...", "researcher")
|
|
12
|
-
Task("Coder", "Implement features...", "coder")
|
|
13
|
-
Task("Tester", "Create tests...", "tester")
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## MCP Coordination Setup (Optional)
|
|
17
|
-
|
|
18
|
-
MCP tools are ONLY for coordination:
|
|
19
|
-
```javascript
|
|
20
|
-
mcp__claude-flow__swarm_init { topology: "mesh" }
|
|
21
|
-
mcp__claude-flow__agent_spawn { type: "researcher" }
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Best Practices
|
|
25
|
-
1. Always spawn agents concurrently
|
|
26
|
-
2. Use Task tool for execution
|
|
27
|
-
3. MCP only for coordination
|
|
28
|
-
4. Batch all operations
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# agent-types
|
|
2
|
-
|
|
3
|
-
Complete guide to all 54 available agent types in Claude Flow.
|
|
4
|
-
|
|
5
|
-
## Core Development Agents
|
|
6
|
-
- `coder` - Implementation specialist
|
|
7
|
-
- `reviewer` - Code quality assurance
|
|
8
|
-
- `tester` - Test creation and validation
|
|
9
|
-
- `planner` - Strategic planning
|
|
10
|
-
- `researcher` - Information gathering
|
|
11
|
-
|
|
12
|
-
## Swarm Coordination Agents
|
|
13
|
-
- `hierarchical-coordinator` - Queen-led coordination
|
|
14
|
-
- `mesh-coordinator` - Peer-to-peer networks
|
|
15
|
-
- `adaptive-coordinator` - Dynamic topology
|
|
16
|
-
|
|
17
|
-
## Specialized Agents
|
|
18
|
-
- `backend-dev` - API development
|
|
19
|
-
- `mobile-dev` - React Native development
|
|
20
|
-
- `ml-developer` - Machine learning
|
|
21
|
-
- `system-architect` - High-level design
|
|
22
|
-
|
|
23
|
-
For full list and details:
|
|
24
|
-
```bash
|
|
25
|
-
npx cfn-spawn agents list
|
|
26
|
-
```
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# Analysis Commands Compliance Report
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
Reviewed all command files in `.claude/commands/analysis/` directory to ensure proper usage of:
|
|
5
|
-
- `mcp__claude-flow__*` tools (preferred)
|
|
6
|
-
- `npx claude-flow` commands (as fallback)
|
|
7
|
-
- No direct implementation calls
|
|
8
|
-
|
|
9
|
-
## Files Reviewed
|
|
10
|
-
|
|
11
|
-
### 1. token-efficiency.md
|
|
12
|
-
**Status**: ✅ Updated
|
|
13
|
-
**Changes Made**:
|
|
14
|
-
- Replaced `npx ruv-swarm hook session-end --export-metrics` with proper MCP tool call
|
|
15
|
-
- Updated to: `Tool: mcp__claude-flow__token_usage` with appropriate parameters
|
|
16
|
-
- Maintained result format and context
|
|
17
|
-
|
|
18
|
-
**Before**:
|
|
19
|
-
```bash
|
|
20
|
-
npx ruv-swarm hook session-end --export-metrics
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
**After**:
|
|
24
|
-
```
|
|
25
|
-
Tool: mcp__claude-flow__token_usage
|
|
26
|
-
Parameters: {"operation": "session", "timeframe": "24h"}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### 2. performance-bottlenecks.md
|
|
30
|
-
**Status**: ✅ Compliant (No changes needed)
|
|
31
|
-
**Reason**: Already uses proper `mcp__claude-flow__task_results` tool format
|
|
32
|
-
|
|
33
|
-
## Summary
|
|
34
|
-
|
|
35
|
-
- **Total files reviewed**: 2
|
|
36
|
-
- **Files updated**: 1
|
|
37
|
-
- **Files already compliant**: 1
|
|
38
|
-
- **Compliance rate after updates**: 100%
|
|
39
|
-
|
|
40
|
-
## Compliance Patterns Enforced
|
|
41
|
-
|
|
42
|
-
1. **MCP Tool Usage**: All direct tool calls now use `mcp__claude-flow__*` format
|
|
43
|
-
2. **Parameter Format**: JSON parameters properly structured
|
|
44
|
-
3. **Command Context**: Preserved original functionality and expected results
|
|
45
|
-
4. **Documentation**: Maintained clarity and examples
|
|
46
|
-
|
|
47
|
-
## Recommendations
|
|
48
|
-
|
|
49
|
-
1. All analysis commands now follow the proper pattern
|
|
50
|
-
2. No direct bash commands or implementation calls remain
|
|
51
|
-
3. Token usage analysis properly integrated with MCP tools
|
|
52
|
-
4. Performance analysis already using correct tool format
|
|
53
|
-
|
|
54
|
-
The analysis directory is now fully compliant with the Claude Flow command standards.
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
# bottleneck detect
|
|
2
|
-
|
|
3
|
-
Analyze performance bottlenecks in swarm operations and suggest optimizations.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npx claude-flow-novice bottleneck detect [options]
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Options
|
|
12
|
-
|
|
13
|
-
- `--swarm-id, -s <id>` - Analyze specific swarm (default: current)
|
|
14
|
-
- `--time-range, -t <range>` - Analysis period: 1h, 24h, 7d, all (default: 1h)
|
|
15
|
-
- `--threshold <percent>` - Bottleneck threshold percentage (default: 20)
|
|
16
|
-
- `--export, -e <file>` - Export analysis to file
|
|
17
|
-
- `--fix` - Apply automatic optimizations
|
|
18
|
-
|
|
19
|
-
## Examples
|
|
20
|
-
|
|
21
|
-
### Basic bottleneck detection
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npx claude-flow-novice bottleneck detect
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Analyze specific swarm
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npx claude-flow-novice bottleneck detect --swarm-id swarm-123
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Last 24 hours with export
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
npx claude-flow-novice bottleneck detect -t 24h -e bottlenecks.json
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Auto-fix detected issues
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
npx claude-flow-novice bottleneck detect --fix --threshold 15
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Metrics Analyzed
|
|
46
|
-
|
|
47
|
-
### Communication Bottlenecks
|
|
48
|
-
|
|
49
|
-
- Message queue delays
|
|
50
|
-
- Agent response times
|
|
51
|
-
- Coordination overhead
|
|
52
|
-
- Memory access patterns
|
|
53
|
-
|
|
54
|
-
### Processing Bottlenecks
|
|
55
|
-
|
|
56
|
-
- Task completion times
|
|
57
|
-
- Agent utilization rates
|
|
58
|
-
- Parallel execution efficiency
|
|
59
|
-
- Resource contention
|
|
60
|
-
|
|
61
|
-
### Memory Bottlenecks
|
|
62
|
-
|
|
63
|
-
- Cache hit rates
|
|
64
|
-
- Memory access patterns
|
|
65
|
-
- Storage I/O performance
|
|
66
|
-
- Neural pattern loading
|
|
67
|
-
|
|
68
|
-
### Network Bottlenecks
|
|
69
|
-
|
|
70
|
-
- API call latency
|
|
71
|
-
- MCP communication delays
|
|
72
|
-
- External service timeouts
|
|
73
|
-
- Concurrent request limits
|
|
74
|
-
|
|
75
|
-
## Output Format
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
🔍 Bottleneck Analysis Report
|
|
79
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
80
|
-
|
|
81
|
-
📊 Summary
|
|
82
|
-
├── Time Range: Last 1 hour
|
|
83
|
-
├── Agents Analyzed: 6
|
|
84
|
-
├── Tasks Processed: 42
|
|
85
|
-
└── Critical Issues: 2
|
|
86
|
-
|
|
87
|
-
🚨 Critical Bottlenecks
|
|
88
|
-
1. Agent Communication (35% impact)
|
|
89
|
-
└── coordinator → coder-1 messages delayed by 2.3s avg
|
|
90
|
-
|
|
91
|
-
2. Memory Access (28% impact)
|
|
92
|
-
└── Neural pattern loading taking 1.8s per access
|
|
93
|
-
|
|
94
|
-
⚠️ Warning Bottlenecks
|
|
95
|
-
1. Task Queue (18% impact)
|
|
96
|
-
└── 5 tasks waiting > 10s for assignment
|
|
97
|
-
|
|
98
|
-
💡 Recommendations
|
|
99
|
-
1. Switch to hierarchical topology (est. 40% improvement)
|
|
100
|
-
2. Enable memory caching (est. 25% improvement)
|
|
101
|
-
3. Increase agent concurrency to 8 (est. 20% improvement)
|
|
102
|
-
|
|
103
|
-
✅ Quick Fixes Available
|
|
104
|
-
Run with --fix to apply:
|
|
105
|
-
- Enable smart caching
|
|
106
|
-
- Optimize message routing
|
|
107
|
-
- Adjust agent priorities
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## Automatic Fixes
|
|
111
|
-
|
|
112
|
-
When using `--fix`, the following optimizations may be applied:
|
|
113
|
-
|
|
114
|
-
1. **Topology Optimization**
|
|
115
|
-
|
|
116
|
-
- Switch to more efficient topology
|
|
117
|
-
- Adjust communication patterns
|
|
118
|
-
- Reduce coordination overhead
|
|
119
|
-
|
|
120
|
-
2. **Caching Enhancement**
|
|
121
|
-
|
|
122
|
-
- Enable memory caching
|
|
123
|
-
- Optimize cache strategies
|
|
124
|
-
- Preload common patterns
|
|
125
|
-
|
|
126
|
-
3. **Concurrency Tuning**
|
|
127
|
-
|
|
128
|
-
- Adjust agent counts
|
|
129
|
-
- Optimize parallel execution
|
|
130
|
-
- Balance workload distribution
|
|
131
|
-
|
|
132
|
-
4. **Priority Adjustment**
|
|
133
|
-
- Reorder task queues
|
|
134
|
-
- Prioritize critical paths
|
|
135
|
-
- Reduce wait times
|
|
136
|
-
|
|
137
|
-
## Performance Impact
|
|
138
|
-
|
|
139
|
-
Typical improvements after bottleneck resolution:
|
|
140
|
-
|
|
141
|
-
- **Communication**: 30-50% faster message delivery
|
|
142
|
-
- **Processing**: 20-40% reduced task completion time
|
|
143
|
-
- **Memory**: 40-60% fewer cache misses
|
|
144
|
-
- **Overall**: 25-45% performance improvement
|
|
145
|
-
|
|
146
|
-
## Integration with Claude Code
|
|
147
|
-
|
|
148
|
-
```javascript
|
|
149
|
-
// Check for bottlenecks in Claude Code
|
|
150
|
-
mcp__claude-flow__bottleneck_detect {
|
|
151
|
-
timeRange: "1h",
|
|
152
|
-
threshold: 20,
|
|
153
|
-
autoFix: false
|
|
154
|
-
}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## See Also
|
|
158
|
-
|
|
159
|
-
- `performance report` - Detailed performance analysis
|
|
160
|
-
- `token usage` - Token optimization analysis
|
|
161
|
-
- `swarm monitor` - Real-time monitoring
|
|
162
|
-
- `cache manage` - Cache optimization
|