claude-flow-novice 2.6.0 → 2.9.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.
Files changed (659) hide show
  1. package/.claude/agents/cfn-dev-team/coordinators/README.md +42 -0
  2. package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +440 -0
  3. package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/cto-agent.md +154 -187
  4. package/.claude/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +50 -0
  5. package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/product-owner-agent.md +7 -40
  6. package/.claude/agents/{cfn-loop → cfn-dev-team/coordinators}/product-owner.md +73 -18
  7. package/.claude/agents/cfn-dev-team/developers/README.md +69 -0
  8. package/.claude/agents/cfn-dev-team/developers/backend-dev.md +77 -0
  9. package/.claude/agents/{core-agents → cfn-dev-team/developers}/coder.md +132 -27
  10. package/.claude/agents/cfn-dev-team/developers/react-frontend-engineer.md +121 -0
  11. package/.claude/agents/{frontend → cfn-dev-team/developers}/state-architect.md +1 -0
  12. package/.claude/agents/{frontend → cfn-dev-team/developers}/ui-designer.md +1 -0
  13. package/.claude/agents/cfn-dev-team/reviewers/README.md +58 -0
  14. package/.claude/agents/{analysis → cfn-dev-team/reviewers}/code-quality-validator.md +9 -18
  15. package/.claude/agents/{core-agents → cfn-dev-team/reviewers}/reviewer.md +62 -23
  16. package/.claude/agents/cfn-dev-team/testers/README.md +94 -0
  17. package/.claude/agents/{testing → cfn-dev-team/testers}/e2e/playwright-agent.md +2 -21
  18. package/.claude/agents/{testing → cfn-dev-team/testers}/interaction-tester.md +2 -21
  19. package/.claude/agents/{testing → cfn-dev-team/testers}/playwright-tester.md +1 -1
  20. package/.claude/agents/cfn-dev-team/testers/tester.md +139 -0
  21. package/.claude/agents/cfn-dev-team/testers/unit/tdd-london-swarm.md +49 -0
  22. package/.claude/agents/cfn-dev-team/testers/validation/production-validator.md +33 -0
  23. package/.claude/cfn-data/cfn-loop.db +0 -0
  24. package/.claude/cfn-data/cfn_loop_logs.db +0 -0
  25. package/.claude/commands/{CFN_COORDINATOR_PARAMETERS.md → cfn/CFN_COORDINATOR_PARAMETERS.md} +22 -22
  26. package/.claude/commands/{cfn-loop-epic.md → cfn/cfn-loop-epic.md} +6 -6
  27. package/.claude/commands/{cfn-loop-single.md → cfn/cfn-loop-single.md} +9 -9
  28. package/.claude/commands/{cfn-loop-sprints.md → cfn/cfn-loop-sprints.md} +1 -1
  29. package/.claude/commands/{cfn-loop.md → cfn/cfn-loop.md} +9 -9
  30. package/.claude/commands/cfn/cfn-mode.md +20 -0
  31. package/.claude/commands/{cfn-optimize-agents.md → cfn/cfn-optimize-agents.md} +1 -1
  32. package/.claude/commands/{context-curate.md → cfn/context-curate.md} +2 -2
  33. package/.claude/commands/{context-inject.md → cfn/context-inject.md} +3 -3
  34. package/.claude/commands/{context-reflect.md → cfn/context-reflect.md} +1 -1
  35. package/.claude/commands/{context-stats.md → cfn/context-stats.md} +1 -1
  36. package/.claude/commands/{list-agents-rebuild.md → cfn/list-agents-rebuild.md} +12 -12
  37. package/.claude/commands/cfn/write-plan.md +104 -0
  38. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -0
  39. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +79 -0
  40. package/.claude/hooks/cfn-post-edit.sh +21 -0
  41. package/.claude/hooks/cfn-pre-edit-backup.sh +71 -0
  42. package/.claude/hooks/cfn-restore-from-backup.sh +37 -0
  43. package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
  44. package/.claude/skills/cfn-redis-coordination/README.md +65 -0
  45. package/.claude/skills/cfn-webapp-testing/README.md +142 -0
  46. package/CFN-CLAUDE.md +776 -0
  47. package/README.md +598 -251
  48. package/dist/agents/agent-loader.js +146 -165
  49. package/dist/agents/agent-loader.js.map +1 -1
  50. package/dist/cli/agent-command.js +2 -0
  51. package/dist/cli/agent-command.js.map +1 -1
  52. package/dist/cli/agent-definition-parser.js +7 -0
  53. package/dist/cli/agent-definition-parser.js.map +1 -1
  54. package/dist/cli/agent-executor.js +145 -11
  55. package/dist/cli/agent-executor.js.map +1 -1
  56. package/dist/cli/agent-prompt-builder.js +81 -1
  57. package/dist/cli/agent-prompt-builder.js.map +1 -1
  58. package/dist/cli/agent-spawn.js +10 -1
  59. package/dist/cli/agent-spawn.js.map +1 -1
  60. package/dist/cli/anthropic-client.js +192 -13
  61. package/dist/cli/anthropic-client.js.map +1 -1
  62. package/dist/cli/cfn-context.js +150 -0
  63. package/dist/cli/cfn-context.js.map +1 -1
  64. package/dist/cli/cfn-fork.js +159 -0
  65. package/dist/cli/cfn-fork.js.map +1 -0
  66. package/dist/cli/cli-agent-context.js +8 -3
  67. package/dist/cli/cli-agent-context.js.map +1 -1
  68. package/dist/cli/conversation-fork.js +201 -0
  69. package/dist/cli/conversation-fork.js.map +1 -0
  70. package/dist/cli/index.js +4 -0
  71. package/dist/cli/index.js.map +1 -1
  72. package/dist/cli/init-command.js +20 -0
  73. package/dist/cli/init-command.js.map +1 -0
  74. package/dist/cli/tool-definitions.js +263 -0
  75. package/dist/cli/tool-definitions.js.map +1 -0
  76. package/dist/cli/tool-executor.js +247 -0
  77. package/dist/cli/tool-executor.js.map +1 -0
  78. package/dist/hello.js +8 -0
  79. package/dist/hello.js.map +1 -0
  80. package/package.json +26 -12
  81. package/scripts/README.md +68 -0
  82. package/scripts/cfn-intervention-example.sh +21 -0
  83. package/scripts/init-project.js +148 -0
  84. package/scripts/migrate-test-infrastructure.sh +40 -0
  85. package/scripts/restructure-cfn-namespace.sh +161 -0
  86. package/scripts/validate-test-migration.sh +49 -0
  87. package/scripts/verify-no-secrets.sh +55 -0
  88. package/.claude/SLASH-COMMANDS-READY.md +0 -53
  89. package/.claude/WORKING-SETUP.md +0 -67
  90. package/.claude/ace-system-overview.md +0 -524
  91. package/.claude/agent-principles/agent-template.md +0 -96
  92. package/.claude/agents/CLAUDE.md +0 -995
  93. package/.claude/agents/README-VALIDATION.md +0 -243
  94. package/.claude/agents/agent-principles/README.md +0 -226
  95. package/.claude/agents/agent-principles/agent-type-guidelines.md +0 -465
  96. package/.claude/agents/agent-principles/format-selection.md +0 -224
  97. package/.claude/agents/agent-principles/phase4-template-optimization.md +0 -494
  98. package/.claude/agents/agent-principles/prompt-engineering.md +0 -501
  99. package/.claude/agents/agent-principles/quality-metrics.md +0 -375
  100. package/.claude/agents/analysis/code-analyzer.md +0 -192
  101. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -133
  102. package/.claude/agents/analysis/perf-analyzer.md +0 -230
  103. package/.claude/agents/architecture/system-architect.md +0 -161
  104. package/.claude/agents/architecture/system-architect.md.backup +0 -603
  105. package/.claude/agents/code-booster.md +0 -131
  106. package/.claude/agents/consensus/consensus-builder.md +0 -159
  107. package/.claude/agents/consensus/crdt-synchronizer.md +0 -192
  108. package/.claude/agents/consensus/performance-benchmarker.md +0 -101
  109. package/.claude/agents/consensus/quorum-manager.md +0 -168
  110. package/.claude/agents/consensus/raft-manager.md +0 -106
  111. package/.claude/agents/consensus/security-manager.md +0 -107
  112. package/.claude/agents/context/context-curator.md +0 -84
  113. package/.claude/agents/context/context-reflector.md +0 -81
  114. package/.claude/agents/context-curator.md +0 -167
  115. package/.claude/agents/context-reflector.md +0 -65
  116. package/.claude/agents/core-agents/analyst.md +0 -170
  117. package/.claude/agents/core-agents/architect.md +0 -200
  118. package/.claude/agents/core-agents/base-template-generator.md +0 -188
  119. package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
  120. package/.claude/agents/core-agents/code-quality-validator.md +0 -149
  121. package/.claude/agents/core-agents/context-curator.md +0 -452
  122. package/.claude/agents/core-agents/context-reflector.md +0 -273
  123. package/.claude/agents/core-agents/coordinator.md +0 -182
  124. package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -235
  125. package/.claude/agents/core-agents/cost-savings-coordinator.md +0 -167
  126. package/.claude/agents/core-agents/performance-benchmarker.md +0 -148
  127. package/.claude/agents/core-agents/planner.md +0 -174
  128. package/.claude/agents/core-agents/security-manager.md +0 -111
  129. package/.claude/agents/core-agents/tester.md +0 -170
  130. package/.claude/agents/custom/agent-builder.md +0 -637
  131. package/.claude/agents/development/backend/dev-backend-api.md +0 -139
  132. package/.claude/agents/development/backend-dev.md +0 -165
  133. package/.claude/agents/development/npm-package-specialist.md +0 -347
  134. package/.claude/agents/devops/devops-engineer.md +0 -148
  135. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -98
  136. package/.claude/agents/documentation/api-docs.md +0 -103
  137. package/.claude/agents/frontend/README.md +0 -640
  138. package/.claude/agents/frontend/interaction-tester.md +0 -139
  139. package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
  140. package/.claude/agents/github/github-commit-agent.md +0 -118
  141. package/.claude/agents/goal/goal-planner.md +0 -183
  142. package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
  143. package/.claude/agents/planning-team/api-designer-persona.md +0 -147
  144. package/.claude/agents/planning-team/security-architect-persona.md +0 -190
  145. package/.claude/agents/planning-team/system-architect-persona.md +0 -190
  146. package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +0 -161
  147. package/.claude/agents/product-owner-team/power-user-persona.md +0 -182
  148. package/.claude/agents/security/security-specialist-existing.md +0 -154
  149. package/.claude/agents/security/security-specialist.md +0 -185
  150. package/.claude/agents/sparc/architecture.md +0 -149
  151. package/.claude/agents/sparc/pseudocode.md +0 -159
  152. package/.claude/agents/sparc/refinement.md +0 -106
  153. package/.claude/agents/sparc/specification.md +0 -157
  154. package/.claude/agents/specialized/cli-agent-optimizer.md +0 -122
  155. package/.claude/agents/specialized/code-booster.md +0 -143
  156. package/.claude/agents/specialized/devops-engineer.md +0 -150
  157. package/.claude/agents/specialized/mobile/mobile-dev.md +0 -210
  158. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -191
  159. package/.claude/agents/specialized/rust-developer.md +0 -166
  160. package/.claude/agents/specialized/rust-enterprise-developer.md +0 -144
  161. package/.claude/agents/specialized/rust-mvp-developer.md +0 -142
  162. package/.claude/agents/testing/production-validator.md +0 -179
  163. package/.claude/agents/testing/tdd-london-swarm.md +0 -209
  164. package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
  165. package/.claude/agents/testing/validation/production-validator.md +0 -43
  166. package/.claude/agents/validate-agent.js +0 -841
  167. package/.claude/agents-ignore/cfn-coordinator-enterprise.md +0 -1303
  168. package/.claude/agents-ignore/cfn-coordinator-mvp.md +0 -942
  169. package/.claude/agents-ignore/cfn-coordinator-standard.md +0 -1062
  170. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator-enhanced.md +0 -145
  171. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator.md +0 -161
  172. package/.claude/agents-ignore/deprecated-coordinators/blocking-coordinator-example.md +0 -732
  173. package/.claude/agents-ignore/deprecated-coordinators/byzantine-coordinator.md +0 -94
  174. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-enterprise.md +0 -323
  175. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-mvp.md +0 -157
  176. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-standard.md +0 -229
  177. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-unified.md +0 -149
  178. package/.claude/agents-ignore/deprecated-coordinators/coordinator-hybrid.md +0 -231
  179. package/.claude/agents-ignore/deprecated-coordinators/gossip-coordinator.md +0 -165
  180. package/.claude/agents-ignore/deprecated-coordinators/hierarchical-coordinator.md +0 -91
  181. package/.claude/agents-ignore/deprecated-coordinators/mesh-coordinator.md +0 -131
  182. package/.claude/agents-ignore/deprecated-coordinators/task-coordinator.md +0 -105
  183. package/.claude/agents-ignore/deprecated-coordinators/test-coordinator.md +0 -141
  184. package/.claude/api-configs/config-current-zai-config.env +0 -62
  185. package/.claude/api-configs/config-test-zai-config.env +0 -62
  186. package/.claude/api-configs/env-backups/before-anthropic-20251020-025404.env +0 -62
  187. package/.claude/api-configs/env-backups/before-restore-20251020-025431.env +0 -62
  188. package/.claude/architecture/mesh-get-polling-design.md +0 -87
  189. package/.claude/architecture/mesh-get-polling-implementation.md +0 -89
  190. package/.claude/architecture/typescript-microservices.md +0 -50
  191. package/.claude/artifacts/reflection-merge-logs/cli-agent-spawning-v2.5.2-merge-report.md +0 -61
  192. package/.claude/cfn-loop-rules.md +0 -73
  193. package/.claude/cfn-mode-patterns.md +0 -571
  194. package/.claude/claude-md-backup-pre-skills.md +0 -15
  195. package/.claude/commands/agents/README.md +0 -10
  196. package/.claude/commands/agents/agent-capabilities.md +0 -21
  197. package/.claude/commands/agents/agent-coordination.md +0 -28
  198. package/.claude/commands/agents/agent-spawning.md +0 -28
  199. package/.claude/commands/agents/agent-types.md +0 -26
  200. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  201. package/.claude/commands/analysis/README.md +0 -9
  202. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  203. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  204. package/.claude/commands/analysis/performance-report.md +0 -25
  205. package/.claude/commands/analysis/token-efficiency.md +0 -45
  206. package/.claude/commands/analysis/token-usage.md +0 -25
  207. package/.claude/commands/automation/README.md +0 -9
  208. package/.claude/commands/automation/auto-agent.md +0 -122
  209. package/.claude/commands/automation/self-healing.md +0 -106
  210. package/.claude/commands/automation/session-memory.md +0 -90
  211. package/.claude/commands/automation/smart-agents.md +0 -73
  212. package/.claude/commands/automation/smart-spawn.md +0 -25
  213. package/.claude/commands/automation/workflow-select.md +0 -25
  214. package/.claude/commands/claude-md.js +0 -237
  215. package/.claude/commands/claude-soul.js +0 -28
  216. package/.claude/commands/cli-integration.js +0 -216
  217. package/.claude/commands/coordination/README.md +0 -9
  218. package/.claude/commands/coordination/agent-spawn.md +0 -25
  219. package/.claude/commands/coordination/coordination-system.md +0 -88
  220. package/.claude/commands/coordination/init.md +0 -44
  221. package/.claude/commands/coordination/orchestrate.md +0 -43
  222. package/.claude/commands/coordination/spawn.md +0 -45
  223. package/.claude/commands/coordination/swarm-init.md +0 -85
  224. package/.claude/commands/coordination/task-orchestrate.md +0 -25
  225. package/.claude/commands/github/README.md +0 -11
  226. package/.claude/commands/github/code-review-swarm.md +0 -514
  227. package/.claude/commands/github/code-review.md +0 -25
  228. package/.claude/commands/github/github-modes.md +0 -147
  229. package/.claude/commands/github/github-swarm.md +0 -121
  230. package/.claude/commands/github/issue-tracker.md +0 -292
  231. package/.claude/commands/github/issue-triage.md +0 -25
  232. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  233. package/.claude/commands/github/pr-enhance.md +0 -26
  234. package/.claude/commands/github/pr-manager.md +0 -170
  235. package/.claude/commands/github/project-board-sync.md +0 -471
  236. package/.claude/commands/github/release-manager.md +0 -338
  237. package/.claude/commands/github/release-swarm.md +0 -544
  238. package/.claude/commands/github/repo-analyze.md +0 -25
  239. package/.claude/commands/github/repo-architect.md +0 -367
  240. package/.claude/commands/github/swarm-issue.md +0 -482
  241. package/.claude/commands/github/swarm-pr.md +0 -285
  242. package/.claude/commands/github/sync-coordinator.md +0 -301
  243. package/.claude/commands/github/workflow-automation.md +0 -442
  244. package/.claude/commands/github.js +0 -638
  245. package/.claude/commands/hive-mind/README.md +0 -17
  246. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -8
  247. package/.claude/commands/hive-mind/hive-mind-init.md +0 -18
  248. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -8
  249. package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
  250. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  251. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  252. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -21
  253. package/.claude/commands/hive-mind/hive-mind-status.md +0 -8
  254. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  255. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  256. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  257. package/.claude/commands/hooks/README.md +0 -11
  258. package/.claude/commands/hooks/overview.md +0 -58
  259. package/.claude/commands/hooks/post-edit.md +0 -117
  260. package/.claude/commands/hooks/post-task.md +0 -112
  261. package/.claude/commands/hooks/pre-edit.md +0 -113
  262. package/.claude/commands/hooks/pre-task.md +0 -111
  263. package/.claude/commands/hooks/session-end.md +0 -118
  264. package/.claude/commands/hooks/session-start.md +0 -9
  265. package/.claude/commands/hooks/setup.md +0 -103
  266. package/.claude/commands/hooks.js +0 -651
  267. package/.claude/commands/index.js +0 -119
  268. package/.claude/commands/memory/README.md +0 -9
  269. package/.claude/commands/memory/memory-bank.md +0 -58
  270. package/.claude/commands/memory/memory-persist.md +0 -25
  271. package/.claude/commands/memory/memory-search.md +0 -25
  272. package/.claude/commands/memory/memory-usage.md +0 -25
  273. package/.claude/commands/memory/neural.md +0 -47
  274. package/.claude/commands/memory/usage.md +0 -46
  275. package/.claude/commands/monitoring/README.md +0 -9
  276. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  277. package/.claude/commands/monitoring/agents.md +0 -44
  278. package/.claude/commands/monitoring/real-time-view.md +0 -25
  279. package/.claude/commands/monitoring/status.md +0 -46
  280. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  281. package/.claude/commands/neural.js +0 -572
  282. package/.claude/commands/optimization/README.md +0 -9
  283. package/.claude/commands/optimization/auto-topology.md +0 -62
  284. package/.claude/commands/optimization/cache-manage.md +0 -25
  285. package/.claude/commands/optimization/parallel-execute.md +0 -25
  286. package/.claude/commands/optimization/parallel-execution.md +0 -50
  287. package/.claude/commands/optimization/topology-optimize.md +0 -25
  288. package/.claude/commands/pair/README.md +0 -261
  289. package/.claude/commands/pair/commands.md +0 -546
  290. package/.claude/commands/pair/config.md +0 -510
  291. package/.claude/commands/pair/examples.md +0 -512
  292. package/.claude/commands/pair/modes.md +0 -348
  293. package/.claude/commands/pair/session.md +0 -407
  294. package/.claude/commands/pair/start.md +0 -209
  295. package/.claude/commands/parse-epic.js +0 -180
  296. package/.claude/commands/performance.js +0 -582
  297. package/.claude/commands/register-all-commands.js +0 -320
  298. package/.claude/commands/register-claude-md.js +0 -82
  299. package/.claude/commands/register-claude-soul.js +0 -80
  300. package/.claude/commands/sparc/analyzer.md +0 -52
  301. package/.claude/commands/sparc/architect.md +0 -53
  302. package/.claude/commands/sparc/batch-executor.md +0 -54
  303. package/.claude/commands/sparc/coder.md +0 -54
  304. package/.claude/commands/sparc/debugger.md +0 -54
  305. package/.claude/commands/sparc/designer.md +0 -53
  306. package/.claude/commands/sparc/documenter.md +0 -54
  307. package/.claude/commands/sparc/innovator.md +0 -54
  308. package/.claude/commands/sparc/memory-manager.md +0 -54
  309. package/.claude/commands/sparc/optimizer.md +0 -54
  310. package/.claude/commands/sparc/orchestrator.md +0 -132
  311. package/.claude/commands/sparc/researcher.md +0 -54
  312. package/.claude/commands/sparc/reviewer.md +0 -54
  313. package/.claude/commands/sparc/sparc-modes.md +0 -174
  314. package/.claude/commands/sparc/swarm-coordinator.md +0 -54
  315. package/.claude/commands/sparc/tdd.md +0 -54
  316. package/.claude/commands/sparc/tester.md +0 -54
  317. package/.claude/commands/sparc/workflow-manager.md +0 -54
  318. package/.claude/commands/sparc.js +0 -110
  319. package/.claude/commands/stream-chain/pipeline.md +0 -121
  320. package/.claude/commands/stream-chain/run.md +0 -70
  321. package/.claude/commands/swarm/README.md +0 -15
  322. package/.claude/commands/swarm/analysis.md +0 -95
  323. package/.claude/commands/swarm/development.md +0 -96
  324. package/.claude/commands/swarm/examples.md +0 -168
  325. package/.claude/commands/swarm/maintenance.md +0 -102
  326. package/.claude/commands/swarm/optimization.md +0 -117
  327. package/.claude/commands/swarm/research.md +0 -136
  328. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  329. package/.claude/commands/swarm/swarm-background.md +0 -8
  330. package/.claude/commands/swarm/swarm-init.md +0 -19
  331. package/.claude/commands/swarm/swarm-modes.md +0 -8
  332. package/.claude/commands/swarm/swarm-monitor.md +0 -8
  333. package/.claude/commands/swarm/swarm-spawn.md +0 -19
  334. package/.claude/commands/swarm/swarm-status.md +0 -8
  335. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  336. package/.claude/commands/swarm/swarm.md +0 -27
  337. package/.claude/commands/swarm/testing.md +0 -131
  338. package/.claude/commands/swarm.js +0 -423
  339. package/.claude/commands/testing/playwright-e2e.md +0 -288
  340. package/.claude/commands/training/README.md +0 -9
  341. package/.claude/commands/training/model-update.md +0 -25
  342. package/.claude/commands/training/neural-patterns.md +0 -74
  343. package/.claude/commands/training/neural-train.md +0 -25
  344. package/.claude/commands/training/pattern-learn.md +0 -25
  345. package/.claude/commands/training/specialization.md +0 -63
  346. package/.claude/commands/truth/start.md +0 -143
  347. package/.claude/commands/validate-commands.js +0 -223
  348. package/.claude/commands/verify/check.md +0 -50
  349. package/.claude/commands/verify/start.md +0 -128
  350. package/.claude/commands/workflow.js +0 -606
  351. package/.claude/commands/workflows/README.md +0 -9
  352. package/.claude/commands/workflows/development.md +0 -78
  353. package/.claude/commands/workflows/research.md +0 -63
  354. package/.claude/commands/workflows/workflow-create.md +0 -25
  355. package/.claude/commands/workflows/workflow-execute.md +0 -25
  356. package/.claude/commands/workflows/workflow-export.md +0 -25
  357. package/.claude/coordinator-feedback-pattern.md +0 -326
  358. package/.claude/coordinator-patterns.md +0 -126
  359. package/.claude/core/agent-manager.js +0 -80
  360. package/.claude/core/agent-manager.js.map +0 -1
  361. package/.claude/core/config.js +0 -1221
  362. package/.claude/core/config.js.map +0 -1
  363. package/.claude/core/event-bus.js +0 -136
  364. package/.claude/core/event-bus.js.map +0 -1
  365. package/.claude/core/index.js +0 -6
  366. package/.claude/core/index.js.map +0 -1
  367. package/.claude/core/json-persistence.js +0 -112
  368. package/.claude/core/json-persistence.js.map +0 -1
  369. package/.claude/core/logger.js +0 -245
  370. package/.claude/core/logger.js.map +0 -1
  371. package/.claude/core/orchestrator-fixed.js +0 -236
  372. package/.claude/core/orchestrator-fixed.js.map +0 -1
  373. package/.claude/core/orchestrator.js +0 -1136
  374. package/.claude/core/orchestrator.js.map +0 -1
  375. package/.claude/core/persistence.js +0 -185
  376. package/.claude/core/persistence.js.map +0 -1
  377. package/.claude/core/project-manager.js +0 -80
  378. package/.claude/core/project-manager.js.map +0 -1
  379. package/.claude/core/slash-command.js +0 -24
  380. package/.claude/core/version.js +0 -35
  381. package/.claude/core/version.js.map +0 -1
  382. package/.claude/helpers/checkpoint-manager.sh +0 -251
  383. package/.claude/helpers/github-safe.js +0 -106
  384. package/.claude/helpers/github-setup.sh +0 -28
  385. package/.claude/helpers/quick-start.sh +0 -19
  386. package/.claude/helpers/setup-mcp.sh +0 -18
  387. package/.claude/helpers/standard-checkpoint-hooks.sh +0 -179
  388. package/.claude/hooks.json +0 -21
  389. package/.claude/logs/sprint1-hybrid-routing-v2-decision.json +0 -18
  390. package/.claude/redis-agent-dependencies.md +0 -494
  391. package/.claude/root-claude-distribute/CLAUDE.md +0 -428
  392. package/.claude/settings.json +0 -129
  393. package/.claude/settings.local.json +0 -33
  394. package/.claude/skills/CFN-LOOP-VALIDATION.md +0 -202
  395. package/.claude/skills/REDIS-COORDINATION.md +0 -187
  396. package/.claude/skills/SKILL.md +0 -229
  397. package/.claude/skills/ace-system/SKILL.md +0 -364
  398. package/.claude/skills/ace-system/add-bullet.sh +0 -145
  399. package/.claude/skills/ace-system/invoke-context-curate.sh +0 -192
  400. package/.claude/skills/ace-system/invoke-context-inject.sh +0 -166
  401. package/.claude/skills/ace-system/invoke-context-query.sh +0 -127
  402. package/.claude/skills/ace-system/invoke-context-reflect.sh +0 -98
  403. package/.claude/skills/ace-system/invoke-context-stats.sh +0 -188
  404. package/.claude/skills/ace-system/log-merge.sh +0 -67
  405. package/.claude/skills/ace-system/query-reflections.sh +0 -35
  406. package/.claude/skills/ace-system/store-reflection.sh +0 -149
  407. package/.claude/skills/ace-system/test-ace-skill.sh +0 -312
  408. package/.claude/skills/ace-system/update-reflection.sh +0 -41
  409. package/.claude/skills/agent-execution/execute-agent.sh +0 -126
  410. package/.claude/skills/agent-spawning/SKILL.md +0 -135
  411. package/.claude/skills/agent-spawning/agent-selection-guide.md +0 -814
  412. package/.claude/skills/agent-spawning/check-dependencies.sh +0 -30
  413. package/.claude/skills/agent-spawning/spawn-agent.sh +0 -263
  414. package/.claude/skills/agent-spawning/spawn-templates.sh +0 -613
  415. package/.claude/skills/analytics/description-refinement-guide.md +0 -164
  416. package/.claude/skills/analytics/log-skill-invocation.js +0 -122
  417. package/.claude/skills/analytics/run-production-criteria-tests.sh +0 -126
  418. package/.claude/skills/analytics/skill-analytics-dashboard.js +0 -113
  419. package/.claude/skills/analytics/skill-invocation-hook.sh +0 -28
  420. package/.claude/skills/analytics/skill-invocations.sql +0 -58
  421. package/.claude/skills/analytics/test-corpus.json +0 -32
  422. package/.claude/skills/analytics/test-data-generator.js +0 -115
  423. package/.claude/skills/analytics/test-manual-override-rate.js +0 -285
  424. package/.claude/skills/analytics/validate-skill-selection.js +0 -188
  425. package/.claude/skills/cfn-loop-validation/SKILL.md +0 -263
  426. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +0 -31
  427. package/.claude/skills/cfn-loop-validation/config.json +0 -161
  428. package/.claude/skills/cfn-loop-validation/consensus-calculator.js +0 -477
  429. package/.claude/skills/cfn-loop-validation/evidence-chain.sql +0 -163
  430. package/.claude/skills/cfn-loop-validation/examples/README.md +0 -453
  431. package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +0 -234
  432. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +0 -132
  433. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +0 -115
  434. package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +0 -186
  435. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +0 -252
  436. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +0 -134
  437. package/.claude/skills/cfn-loop-validation.sh +0 -70
  438. package/.claude/skills/config-management/SKILL.md +0 -34
  439. package/.claude/skills/config-management/check-dependencies.sh +0 -56
  440. package/.claude/skills/config-management/config.json +0 -32
  441. package/.claude/skills/config-management/manage-config.sh +0 -113
  442. package/.claude/skills/consensus-calculator.js +0 -45
  443. package/.claude/skills/event-bus/SKILL.md +0 -412
  444. package/.claude/skills/event-bus/config.json +0 -111
  445. package/.claude/skills/event-bus/eventbus-wrapper.cjs +0 -69
  446. package/.claude/skills/event-bus/invoke-event-publish.sh +0 -147
  447. package/.claude/skills/event-bus/invoke-event-subscribe.sh +0 -171
  448. package/.claude/skills/event-bus/invoke-lifecycle-track.sh +0 -201
  449. package/.claude/skills/event-bus/test-event-bus.sh +0 -280
  450. package/.claude/skills/evidence-chain.sql +0 -66
  451. package/.claude/skills/fleet-manager/SKILL.md +0 -412
  452. package/.claude/skills/fleet-manager/config.json +0 -60
  453. package/.claude/skills/fleet-manager/invoke-fleet-allocate.sh +0 -182
  454. package/.claude/skills/fleet-manager/invoke-fleet-balance.sh +0 -239
  455. package/.claude/skills/fleet-manager/invoke-fleet-metrics.sh +0 -193
  456. package/.claude/skills/fleet-manager/invoke-fleet-register.sh +0 -124
  457. package/.claude/skills/fleet-manager/test-fleet-manager.sh +0 -345
  458. package/.claude/skills/hook-pipeline/SKILL.md +0 -148
  459. package/.claude/skills/hook-pipeline/auto-resolve.sh +0 -66
  460. package/.claude/skills/hook-pipeline/check-dependencies.sh +0 -40
  461. package/.claude/skills/hook-pipeline/feedback-resolver.sh +0 -452
  462. package/.claude/skills/hook-pipeline/post-edit-handler.sh +0 -154
  463. package/.claude/skills/hook-pipeline/security-scan.json +0 -60
  464. package/.claude/skills/hook-pipeline/security-scanner.sh +0 -121
  465. package/.claude/skills/hook-pipeline/test-root-warning-resolution.sh +0 -148
  466. package/.claude/skills/hybrid-routing/SKILL.md +0 -46
  467. package/.claude/skills/hybrid-routing/check-dependencies.sh +0 -52
  468. package/.claude/skills/hybrid-routing/config.json +0 -26
  469. package/.claude/skills/hybrid-routing/spawn-worker.sh +0 -44
  470. package/.claude/skills/process-lifecycle/SKILL.md +0 -39
  471. package/.claude/skills/process-lifecycle/check-dependencies.sh +0 -58
  472. package/.claude/skills/process-lifecycle/config.json +0 -39
  473. package/.claude/skills/process-lifecycle/process-manager.sh +0 -144
  474. package/.claude/skills/redis-coordination/AGENT_LOGGING.md +0 -280
  475. package/.claude/skills/redis-coordination/BZPOPMIN_FIX_SUMMARY.md +0 -209
  476. package/.claude/skills/redis-coordination/HEARTBEAT.md +0 -57
  477. package/.claude/skills/redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  478. package/.claude/skills/redis-coordination/README.md +0 -64
  479. package/.claude/skills/redis-coordination/SECURITY_REVIEW.md +0 -25
  480. package/.claude/skills/redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  481. package/.claude/skills/redis-coordination/SKILL.md +0 -118
  482. package/.claude/skills/redis-coordination/agent-log.sh +0 -124
  483. package/.claude/skills/redis-coordination/agent-recovery.sh +0 -75
  484. package/.claude/skills/redis-coordination/cancel-swarm.sh +0 -221
  485. package/.claude/skills/redis-coordination/cfn-loop-relaunch.sh +0 -29
  486. package/.claude/skills/redis-coordination/check-dependencies.sh +0 -32
  487. package/.claude/skills/redis-coordination/complete-swarm.sh +0 -75
  488. package/.claude/skills/redis-coordination/config.json +0 -61
  489. package/.claude/skills/redis-coordination/examples/README.md +0 -73
  490. package/.claude/skills/redis-coordination/examples/grafana-dashboard.json +0 -352
  491. package/.claude/skills/redis-coordination/examples/hierarchical-pattern.sh +0 -127
  492. package/.claude/skills/redis-coordination/examples/mesh-pattern.sh +0 -171
  493. package/.claude/skills/redis-coordination/examples/timeout-handling.sh +0 -227
  494. package/.claude/skills/redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  495. package/.claude/skills/redis-coordination/get-agent-timeout.sh +0 -177
  496. package/.claude/skills/redis-coordination/heartbeat-functions.sh +0 -137
  497. package/.claude/skills/redis-coordination/heartbeat-protocol.md +0 -106
  498. package/.claude/skills/redis-coordination/heartbeat.sh +0 -126
  499. package/.claude/skills/redis-coordination/init-swarm.sh +0 -148
  500. package/.claude/skills/redis-coordination/invoke-redis-pattern.sh +0 -220
  501. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +0 -417
  502. package/.claude/skills/redis-coordination/list-active-swarms.sh +0 -147
  503. package/.claude/skills/redis-coordination/metrics-export.sh +0 -674
  504. package/.claude/skills/redis-coordination/metrics-schema.json +0 -66
  505. package/.claude/skills/redis-coordination/metrics-storage.md +0 -31
  506. package/.claude/skills/redis-coordination/monitor-heartbeats.sh +0 -101
  507. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +0 -993
  508. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1760949407 +0 -933
  509. package/.claude/skills/redis-coordination/phase4-wake-queue-test-report.md +0 -82
  510. package/.claude/skills/redis-coordination/priority-wake-mechanism.md +0 -75
  511. package/.claude/skills/redis-coordination/priority_wake.py +0 -134
  512. package/.claude/skills/redis-coordination/query-dlq.sh +0 -162
  513. package/.claude/skills/redis-coordination/redis-pattern.sh +0 -619
  514. package/.claude/skills/redis-coordination/send-heartbeat.sh +0 -73
  515. package/.claude/skills/redis-coordination/store-epic-context.sh +0 -123
  516. package/.claude/skills/redis-coordination/test-bzpopmin-fix.sh +0 -274
  517. package/.claude/skills/redis-coordination/test-cancel-swarm.sh +0 -276
  518. package/.claude/skills/redis-coordination/test-dlq.sh +0 -129
  519. package/.claude/skills/redis-coordination/test-iteration-feedback.sh +0 -320
  520. package/.claude/skills/redis-coordination/test-orchestrator.sh +0 -224
  521. package/.claude/skills/redis-coordination/test-priority-wake-phase4-unix.sh +0 -148
  522. package/.claude/skills/redis-coordination/test-priority-wake-phase4.sh +0 -163
  523. package/.claude/skills/redis-coordination/test-priority-wake.sh +0 -138
  524. package/.claude/skills/redis-coordination/test-quick-fix.sh +0 -81
  525. package/.claude/skills/redis-coordination/test-quorum-absolute.sh +0 -45
  526. package/.claude/skills/redis-coordination/test-quorum-fallback.sh +0 -68
  527. package/.claude/skills/redis-coordination/test-quorum-percentage.sh +0 -56
  528. package/.claude/skills/redis-coordination/test-quorum-with-retry.sh +0 -81
  529. package/.claude/skills/redis-coordination/test-quorum.sh +0 -57
  530. package/.claude/skills/redis-coordination/test-shutdown-handling.sh +0 -187
  531. package/.claude/skills/redis-coordination/test-shutdown.sh +0 -160
  532. package/.claude/skills/redis-coordination/test-utils-unix.sh +0 -97
  533. package/.claude/skills/redis-coordination/test-utils.sh +0 -97
  534. package/.claude/skills/redis-coordination/test-waiting-mode.sh +0 -59
  535. package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +0 -102
  536. package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +0 -99
  537. package/.claude/skills/redis-coordination/tests/integration-test.sh +0 -170
  538. package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +0 -82
  539. package/.claude/skills/redis-coordination/tests/run-test-suite.sh +0 -92
  540. package/.claude/skills/redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  541. package/.claude/skills/redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  542. package/.claude/skills/redis-coordination/tests/test-utils.sh +0 -122
  543. package/.claude/skills/skill-builder/SKILL.md +0 -910
  544. package/.claude/skills/sqlite-memory/IMPLEMENTATION_REPORT.md +0 -393
  545. package/.claude/skills/sqlite-memory/QUICK_REFERENCE.md +0 -204
  546. package/.claude/skills/sqlite-memory/SKILL.md +0 -415
  547. package/.claude/skills/sqlite-memory/acl-queries.sql +0 -452
  548. package/.claude/skills/sqlite-memory/check-dependencies.sh +0 -36
  549. package/.claude/skills/sqlite-memory/config.json +0 -45
  550. package/.claude/skills/sqlite-memory/memory-cli.sh +0 -88
  551. package/.claude/skills/sqlite-memory/test-state-persistence.js +0 -187
  552. package/.claude/skills/sqlite-memory/ttl-cleanup.sh +0 -274
  553. package/.claude/skills/test-execution/SKILL.md +0 -128
  554. package/.claude/skills/test-execution/check-dependencies.sh +0 -36
  555. package/.claude/skills/test-execution/test-cache-reader.sh +0 -134
  556. package/.claude/skills/test-execution/test-concurrent-conflicts.sh +0 -115
  557. package/.claude/skills/test-execution/test-coordinator-pattern.sh +0 -109
  558. package/.claude/skills/test-execution-coordinator-pattern.md +0 -228
  559. package/.claude/skills/transparency-middleware/Cargo.toml +0 -18
  560. package/.claude/skills/transparency-middleware/SECURITY.md +0 -41
  561. package/.claude/skills/transparency-middleware/SKILL.md +0 -91
  562. package/.claude/skills/transparency-middleware/TEST_RESULTS.md +0 -174
  563. package/.claude/skills/transparency-middleware/config.json +0 -31
  564. package/.claude/skills/transparency-middleware/examples/basic-usage.ts +0 -39
  565. package/.claude/skills/transparency-middleware/examples/batch-processing.ts +0 -52
  566. package/.claude/skills/transparency-middleware/examples/custom-filtering.ts +0 -61
  567. package/.claude/skills/transparency-middleware/invoke-transparency-filter.sh +0 -98
  568. package/.claude/skills/transparency-middleware/invoke-transparency-init.sh +0 -224
  569. package/.claude/skills/transparency-middleware/invoke-transparency-level.sh +0 -333
  570. package/.claude/skills/transparency-middleware/invoke-transparency-metrics.sh +0 -345
  571. package/.claude/skills/transparency-middleware/invoke-transparency-observe.sh +0 -140
  572. package/.claude/skills/transparency-middleware/invoke-transparency-stop.sh +0 -235
  573. package/.claude/skills/transparency-middleware/memory_query.rs +0 -85
  574. package/.claude/skills/transparency-middleware/memory_repository.rs +0 -140
  575. package/.claude/skills/transparency-middleware/memory_schema.rs +0 -64
  576. package/.claude/skills/transparency-middleware/middleware-config.sh +0 -29
  577. package/.claude/skills/transparency-middleware/performance-benchmark.sh +0 -79
  578. package/.claude/skills/transparency-middleware/test-e2e.sh +0 -406
  579. package/.claude/skills/transparency-middleware/test-integration.sh +0 -162
  580. package/.claude/skills/transparency-middleware/test-transparency-skill.sh +0 -368
  581. package/.claude/skills/transparency-middleware/test-transparency-skill.sh.unix +0 -126
  582. package/.claude/skills/transparency-middleware/tests/input-validation.sh +0 -93
  583. package/.claude/skills/transparency-middleware/wrap-agent.sh +0 -132
  584. package/.claude/skills/web-portal/DESIGN.md +0 -117
  585. package/.claude/skills/web-portal/SKILL.md +0 -679
  586. package/.claude/skills/web-portal/invoke-portal-agents.sh +0 -129
  587. package/.claude/skills/web-portal/invoke-portal-dashboard.sh +0 -85
  588. package/.claude/skills/web-portal/invoke-portal-events.sh +0 -125
  589. package/.claude/skills/web-portal/invoke-portal-metrics.sh +0 -112
  590. package/.claude/skills/web-portal/invoke-portal-start.sh +0 -135
  591. package/.claude/skills/web-portal/invoke-portal-stop.sh +0 -121
  592. package/.claude/skills/web-portal/test-web-portal-skill.sh +0 -51
  593. package/.claude/skills/web-portal/validate-deployment.sh +0 -85
  594. package/.claude/slash-commands.json +0 -92
  595. package/.claude/spawn-pattern-examples.md +0 -500
  596. package/.claude/sprint-configs/cfn-naming-standardization.json +0 -729
  597. package/.claude/sprint-reports/sprint-1.4-self-correction-monitoring.json +0 -64
  598. package/.claude/swarm-memory.db +0 -0
  599. package/.claude/templates/agent-optimization-plan.md +0 -439
  600. package/.claude/templates/bulk-optimization-strategy.md +0 -367
  601. package/.claude/templates/cfn-loop-mechanics.md +0 -80
  602. package/.claude/templates/coordinator-patterns.md +0 -75
  603. package/.claude/templates/memory-operations.md +0 -200
  604. package/.claude/templates/post-edit-validation.md +0 -109
  605. package/.claude/templates/redis-coordination.md +0 -140
  606. package/.claude/templates/remaining-agent-analysis.md +0 -121
  607. package/.claude/templates/swarm-coordination.md +0 -103
  608. package/.claude/templates/team-dynamics.md +0 -82
  609. package/CLAUDE.md +0 -502
  610. package/dist/cli/cli-agent-context.test.js +0 -451
  611. package/dist/cli/cli-agent-context.test.js.map +0 -1
  612. package/dist/coordination/fleet-manager.test.js +0 -141
  613. package/dist/coordination/fleet-manager.test.js.map +0 -1
  614. package/dist/middleware/transparency-middleware.test.js +0 -184
  615. package/dist/middleware/transparency-middleware.test.js.map +0 -1
  616. package/readme/CLAUDE.md +0 -429
  617. /package/.claude/agents/{core-agents → cfn-dev-team/developers}/researcher.md +0 -0
  618. /package/.claude/commands/{README.md → cfn/README.md} +0 -0
  619. /package/.claude/commands/{auto-compact.md → cfn/auto-compact.md} +0 -0
  620. /package/.claude/commands/{cfn-claude-sync.md → cfn/cfn-claude-sync.md} +0 -0
  621. /package/.claude/commands/{cfn-loop-document.md → cfn/cfn-loop-document.md} +0 -0
  622. /package/.claude/commands/{claude-md.md → cfn/claude-md.md} +0 -0
  623. /package/.claude/commands/{claude-soul.md → cfn/claude-soul.md} +0 -0
  624. /package/.claude/commands/{context-query.md → cfn/context-query.md} +0 -0
  625. /package/.claude/commands/{cost-savings-off.md → cfn/cost-savings-off.md} +0 -0
  626. /package/.claude/commands/{cost-savings-on.md → cfn/cost-savings-on.md} +0 -0
  627. /package/.claude/commands/{cost-savings-status.md → cfn/cost-savings-status.md} +0 -0
  628. /package/.claude/commands/{custom-routing-activate.md → cfn/custom-routing-activate.md} +0 -0
  629. /package/.claude/commands/{custom-routing-deactivate.md → cfn/custom-routing-deactivate.md} +0 -0
  630. /package/.claude/commands/{dependency-recommendations.md → cfn/dependency-recommendations.md} +0 -0
  631. /package/.claude/commands/{fullstack.md → cfn/fullstack.md} +0 -0
  632. /package/.claude/commands/{github-commit.md → cfn/github-commit.md} +0 -0
  633. /package/.claude/commands/{github.md → cfn/github.md} +0 -0
  634. /package/.claude/commands/{hello-world-tests.md → cfn/hello-world-tests.md} +0 -0
  635. /package/.claude/commands/{hooks.md → cfn/hooks.md} +0 -0
  636. /package/.claude/commands/{launch-web-dashboard.md → cfn/launch-web-dashboard.md} +0 -0
  637. /package/.claude/commands/{metrics-summary.md → cfn/metrics-summary.md} +0 -0
  638. /package/.claude/commands/{neural.md → cfn/neural.md} +0 -0
  639. /package/.claude/commands/{parse-epic.md → cfn/parse-epic.md} +0 -0
  640. /package/.claude/commands/{performance.md → cfn/performance.md} +0 -0
  641. /package/.claude/commands/{sparc.md → cfn/sparc.md} +0 -0
  642. /package/.claude/commands/{suggest-improvements.md → cfn/suggest-improvements.md} +0 -0
  643. /package/.claude/commands/{suggest-templates.md → cfn/suggest-templates.md} +0 -0
  644. /package/.claude/commands/{swarm.md → cfn/swarm.md} +0 -0
  645. /package/.claude/commands/{switch-api.md → cfn/switch-api.md} +0 -0
  646. /package/.claude/commands/{workflow.md → cfn/workflow.md} +0 -0
  647. /package/.claude/hooks/{invoke-post-edit.sh → cfn-invoke-post-edit.sh} +0 -0
  648. /package/.claude/hooks/{post-edit.config.json → cfn-post-edit.config.json} +0 -0
  649. /package/.claude/skills/{agent-spawning → cfn-agent-spawning}/README.md +0 -0
  650. /package/.claude/skills/{analytics → cfn-analytics}/README.md +0 -0
  651. /package/.claude/skills/{config-management → cfn-config-management}/README.md +0 -0
  652. /package/.claude/skills/{event-bus → cfn-event-bus}/README.md +0 -0
  653. /package/.claude/skills/{fleet-manager → cfn-fleet-manager}/README.md +0 -0
  654. /package/.claude/skills/{hook-pipeline → cfn-hook-pipeline}/README.md +0 -0
  655. /package/.claude/skills/{hybrid-routing → cfn-hybrid-routing}/README.md +0 -0
  656. /package/.claude/skills/{process-lifecycle → cfn-process-lifecycle}/README.md +0 -0
  657. /package/.claude/skills/{sqlite-memory → cfn-sqlite-memory}/README.md +0 -0
  658. /package/.claude/skills/{test-execution → cfn-test-execution}/README.md +0 -0
  659. /package/.claude/skills/{transparency-middleware → cfn-transparency-middleware}/README.md +0 -0
@@ -1,1136 +0,0 @@
1
- /**
2
- * Main orchestrator for Claude-Flow
3
- */ import { SystemEvents } from '../utils/types.js';
4
- import { SystemError, InitializationError, ShutdownError } from '../utils/errors.js';
5
- import { delay, retry, circuitBreaker } from '../utils/helpers.js';
6
- import { mkdir, writeFile, readFile } from 'fs/promises';
7
- import { join, dirname } from 'path';
8
- import { ClaudeAPIClient } from '../api/claude-client.js';
9
- import { ConfigManager } from '../config/config-manager.js';
10
- /**
11
- * Session manager implementation with persistence
12
- */ let SessionManager = class SessionManager {
13
- terminalManager;
14
- memoryManager;
15
- eventBus;
16
- logger;
17
- config;
18
- sessions = new Map();
19
- sessionProfiles = new Map();
20
- persistencePath;
21
- persistenceCircuitBreaker;
22
- constructor(terminalManager, memoryManager, eventBus, logger, config){
23
- this.terminalManager = terminalManager;
24
- this.memoryManager = memoryManager;
25
- this.eventBus = eventBus;
26
- this.logger = logger;
27
- this.config = config;
28
- this.persistencePath = join(config.orchestrator.dataDir || './data', 'sessions.json');
29
- // Circuit breaker for persistence operations
30
- this.persistenceCircuitBreaker = circuitBreaker('SessionPersistence', {
31
- threshold: 5,
32
- timeout: 30000,
33
- resetTimeout: 60000
34
- });
35
- }
36
- async createSession(profile) {
37
- try {
38
- // Create terminal with retry logic
39
- const terminalId = await retry(()=>this.terminalManager.spawnTerminal(profile), {
40
- maxAttempts: 3,
41
- initialDelay: 1000
42
- });
43
- // Create memory bank with retry logic
44
- const memoryBankId = await retry(()=>this.memoryManager.createBank(profile.id), {
45
- maxAttempts: 3,
46
- initialDelay: 1000
47
- });
48
- // Create session
49
- const session = {
50
- id: `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
51
- agentId: profile.id,
52
- terminalId,
53
- startTime: new Date(),
54
- status: 'active',
55
- lastActivity: new Date(),
56
- memoryBankId
57
- };
58
- this.sessions.set(session.id, session);
59
- this.sessionProfiles.set(session.id, profile);
60
- this.logger.info('Session created', {
61
- sessionId: session.id,
62
- agentId: profile.id,
63
- terminalId,
64
- memoryBankId
65
- });
66
- // Persist sessions asynchronously
67
- this.persistSessions().catch((error)=>this.logger.error('Failed to persist sessions', error));
68
- return session;
69
- } catch (error) {
70
- this.logger.error('Failed to create session', {
71
- agentId: profile.id,
72
- error
73
- });
74
- throw new SystemError(`Failed to create session for agent ${profile.id}`, {
75
- error
76
- });
77
- }
78
- }
79
- getSession(sessionId) {
80
- return this.sessions.get(sessionId);
81
- }
82
- getActiveSessions() {
83
- return Array.from(this.sessions.values()).filter((session)=>session.status === 'active' || session.status === 'idle');
84
- }
85
- async terminateSession(sessionId) {
86
- const session = this.sessions.get(sessionId);
87
- if (!session) {
88
- throw new Error(`Session not found: ${sessionId}`);
89
- }
90
- try {
91
- // Update session status first
92
- session.status = 'terminated';
93
- session.endTime = new Date();
94
- // Terminate terminal with timeout
95
- await Promise.race([
96
- this.terminalManager.terminateTerminal(session.terminalId),
97
- delay(5000).then(()=>{
98
- throw new Error('Terminal termination timeout');
99
- })
100
- ]).catch((error)=>{
101
- this.logger.error('Error terminating terminal', {
102
- sessionId,
103
- error
104
- });
105
- });
106
- // Close memory bank with timeout
107
- await Promise.race([
108
- this.memoryManager.closeBank(session.memoryBankId),
109
- delay(5000).then(()=>{
110
- throw new Error('Memory bank close timeout');
111
- })
112
- ]).catch((error)=>{
113
- this.logger.error('Error closing memory bank', {
114
- sessionId,
115
- error
116
- });
117
- });
118
- // Clean up
119
- this.sessionProfiles.delete(sessionId);
120
- this.logger.info('Session terminated', {
121
- sessionId,
122
- duration: session.endTime.getTime() - session.startTime.getTime()
123
- });
124
- // Persist sessions asynchronously
125
- this.persistSessions().catch((error)=>this.logger.error('Failed to persist sessions', error));
126
- } catch (error) {
127
- this.logger.error('Error during session termination', {
128
- sessionId,
129
- error
130
- });
131
- throw error;
132
- }
133
- }
134
- async terminateAllSessions() {
135
- const sessions = this.getActiveSessions();
136
- // Terminate sessions in batches to avoid overwhelming the system
137
- const batchSize = 5;
138
- for(let i = 0; i < sessions.length; i += batchSize){
139
- const batch = sessions.slice(i, i + batchSize);
140
- await Promise.allSettled(batch.map((session)=>this.terminateSession(session.id)));
141
- }
142
- }
143
- removeSession(sessionId) {
144
- this.sessions.delete(sessionId);
145
- this.sessionProfiles.delete(sessionId);
146
- }
147
- async persistSessions() {
148
- if (!this.config.orchestrator.persistSessions) {
149
- return;
150
- }
151
- try {
152
- await this.persistenceCircuitBreaker.execute(async ()=>{
153
- const data = {
154
- sessions: Array.from(this.sessions.values()).map((session)=>({
155
- ...session,
156
- profile: this.sessionProfiles.get(session.id)
157
- })).filter((s)=>s.profile),
158
- taskQueue: [],
159
- metrics: {
160
- completedTasks: 0,
161
- failedTasks: 0,
162
- totalTaskDuration: 0
163
- },
164
- savedAt: new Date()
165
- };
166
- await mkdir(dirname(this.persistencePath), {
167
- recursive: true
168
- });
169
- await writeFile(this.persistencePath, JSON.stringify(data, null, 2), 'utf8');
170
- this.logger.debug('Sessions persisted', {
171
- count: data.sessions.length
172
- });
173
- });
174
- } catch (error) {
175
- this.logger.error('Failed to persist sessions', error);
176
- }
177
- }
178
- async restoreSessions() {
179
- if (!this.config.orchestrator.persistSessions) {
180
- return;
181
- }
182
- try {
183
- const data = await readFile(this.persistencePath, 'utf8');
184
- const persistence = JSON.parse(data);
185
- // Restore only active/idle sessions
186
- const sessionsToRestore = persistence.sessions.filter((s)=>s.status === 'active' || s.status === 'idle');
187
- for (const sessionData of sessionsToRestore){
188
- try {
189
- // Recreate session
190
- const session = await this.createSession(sessionData.profile);
191
- // Update with persisted data
192
- Object.assign(session, {
193
- id: sessionData.id,
194
- startTime: new Date(sessionData.startTime),
195
- lastActivity: new Date(sessionData.lastActivity)
196
- });
197
- this.logger.info('Session restored', {
198
- sessionId: session.id
199
- });
200
- } catch (error) {
201
- this.logger.error('Failed to restore session', {
202
- sessionId: sessionData.id,
203
- error
204
- });
205
- }
206
- }
207
- } catch (error) {
208
- if (error.code !== 'ENOENT') {
209
- this.logger.error('Failed to restore sessions', error);
210
- }
211
- }
212
- }
213
- };
214
- /**
215
- * Main orchestrator implementation with enhanced features
216
- */ export class Orchestrator {
217
- config;
218
- terminalManager;
219
- memoryManager;
220
- coordinationManager;
221
- mcpServer;
222
- eventBus;
223
- logger;
224
- initialized = false;
225
- shutdownInProgress = false;
226
- sessionManager;
227
- healthCheckInterval;
228
- maintenanceInterval;
229
- metricsInterval;
230
- agents = new Map();
231
- taskQueue = [];
232
- taskHistory = new Map();
233
- startTime = Date.now();
234
- claudeClient;
235
- configManager;
236
- // Metrics tracking
237
- metrics = {
238
- completedTasks: 0,
239
- failedTasks: 0,
240
- totalTaskDuration: 0
241
- };
242
- // Circuit breakers for critical operations
243
- healthCheckCircuitBreaker;
244
- taskAssignmentCircuitBreaker;
245
- constructor(config, terminalManager, memoryManager, coordinationManager, mcpServer, eventBus, logger){
246
- this.config = config;
247
- this.terminalManager = terminalManager;
248
- this.memoryManager = memoryManager;
249
- this.coordinationManager = coordinationManager;
250
- this.mcpServer = mcpServer;
251
- this.eventBus = eventBus;
252
- this.logger = logger;
253
- this.sessionManager = new SessionManager(terminalManager, memoryManager, eventBus, logger, config);
254
- this.configManager = ConfigManager.getInstance();
255
- // Initialize circuit breakers
256
- this.healthCheckCircuitBreaker = circuitBreaker('HealthCheck', {
257
- threshold: 3,
258
- timeout: 10000,
259
- resetTimeout: 30000
260
- });
261
- this.taskAssignmentCircuitBreaker = circuitBreaker('TaskAssignment', {
262
- threshold: 5,
263
- timeout: 5000,
264
- resetTimeout: 20000
265
- });
266
- }
267
- async initialize() {
268
- if (this.initialized) {
269
- throw new InitializationError('Orchestrator already initialized');
270
- }
271
- this.logger.info('Initializing orchestrator...');
272
- const startTime = Date.now();
273
- try {
274
- // Initialize components in parallel where possible
275
- await Promise.all([
276
- this.initializeComponent('Terminal Manager', ()=>this.terminalManager.initialize()),
277
- this.initializeComponent('Memory Manager', ()=>this.memoryManager.initialize()),
278
- this.initializeComponent('Coordination Manager', ()=>this.coordinationManager.initialize())
279
- ]);
280
- // MCP server needs to be started after other components
281
- await this.initializeComponent('MCP Server', ()=>this.mcpServer.start());
282
- // Initialize Claude API client if configured
283
- if (this.configManager.isClaudeAPIConfigured()) {
284
- try {
285
- this.claudeClient = new ClaudeAPIClient(this.logger, this.configManager);
286
- this.logger.info('Claude API client initialized', {
287
- model: this.claudeClient.getConfig().model,
288
- temperature: this.claudeClient.getConfig().temperature
289
- });
290
- } catch (error) {
291
- this.logger.warn('Failed to initialize Claude API client', error);
292
- }
293
- }
294
- // Restore persisted sessions
295
- await this.sessionManager.restoreSessions();
296
- // Set up event handlers
297
- this.setupEventHandlers();
298
- // Start background tasks
299
- this.startHealthChecks();
300
- this.startMaintenanceTasks();
301
- this.startMetricsCollection();
302
- this.initialized = true;
303
- const initDuration = Date.now() - startTime;
304
- this.eventBus.emit(SystemEvents.SYSTEM_READY, {
305
- timestamp: new Date()
306
- });
307
- this.logger.info('Orchestrator initialized successfully', {
308
- duration: initDuration
309
- });
310
- } catch (error) {
311
- this.logger.error('Failed to initialize orchestrator', error);
312
- // Attempt cleanup on initialization failure
313
- await this.emergencyShutdown();
314
- throw new InitializationError('Orchestrator', {
315
- error
316
- });
317
- }
318
- }
319
- async shutdown() {
320
- if (!this.initialized || this.shutdownInProgress) {
321
- return;
322
- }
323
- this.shutdownInProgress = true;
324
- this.logger.info('Shutting down orchestrator...');
325
- const shutdownStart = Date.now();
326
- try {
327
- // Stop background tasks
328
- this.stopBackgroundTasks();
329
- // Save current state
330
- await this.sessionManager.persistSessions();
331
- // Process any remaining critical tasks
332
- await this.processShutdownTasks();
333
- // Terminate all sessions
334
- await this.sessionManager.terminateAllSessions();
335
- // Shutdown components with timeout
336
- await Promise.race([
337
- this.shutdownComponents(),
338
- delay(this.config.orchestrator.shutdownTimeout)
339
- ]);
340
- const shutdownDuration = Date.now() - shutdownStart;
341
- this.eventBus.emit(SystemEvents.SYSTEM_SHUTDOWN, {
342
- reason: 'Graceful shutdown'
343
- });
344
- this.logger.info('Orchestrator shutdown complete', {
345
- duration: shutdownDuration
346
- });
347
- } catch (error) {
348
- this.logger.error('Error during shutdown', error);
349
- // Force shutdown if graceful shutdown fails
350
- await this.emergencyShutdown();
351
- throw new ShutdownError('Failed to shutdown gracefully', {
352
- error
353
- });
354
- } finally{
355
- this.initialized = false;
356
- this.shutdownInProgress = false;
357
- }
358
- }
359
- async spawnAgent(profile) {
360
- if (!this.initialized) {
361
- throw new SystemError('Orchestrator not initialized');
362
- }
363
- // Check agent limit
364
- if (this.agents.size >= this.config.orchestrator.maxConcurrentAgents) {
365
- throw new SystemError('Maximum concurrent agents reached');
366
- }
367
- // Validate agent profile
368
- this.validateAgentProfile(profile);
369
- this.logger.info('Spawning agent', {
370
- agentId: profile.id,
371
- type: profile.type
372
- });
373
- try {
374
- // Create session with retry
375
- const session = await retry(()=>this.sessionManager.createSession(profile), {
376
- maxAttempts: 3,
377
- initialDelay: 2000
378
- });
379
- // Store agent profile
380
- this.agents.set(profile.id, profile);
381
- // Emit event
382
- this.eventBus.emit(SystemEvents.AGENT_SPAWNED, {
383
- agentId: profile.id,
384
- profile,
385
- sessionId: session.id
386
- });
387
- // Start agent health monitoring
388
- this.startAgentHealthMonitoring(profile.id);
389
- return session.id;
390
- } catch (error) {
391
- this.logger.error('Failed to spawn agent', {
392
- agentId: profile.id,
393
- error
394
- });
395
- throw error;
396
- }
397
- }
398
- async terminateAgent(agentId) {
399
- if (!this.initialized) {
400
- throw new SystemError('Orchestrator not initialized');
401
- }
402
- const profile = this.agents.get(agentId);
403
- if (!profile) {
404
- throw new SystemError(`Agent not found: ${agentId}`);
405
- }
406
- this.logger.info('Terminating agent', {
407
- agentId
408
- });
409
- try {
410
- // Cancel any assigned tasks
411
- await this.cancelAgentTasks(agentId);
412
- // Find and terminate all sessions for this agent
413
- const sessions = this.sessionManager.getActiveSessions().filter((session)=>session.agentId === agentId);
414
- await Promise.allSettled(sessions.map((session)=>this.sessionManager.terminateSession(session.id)));
415
- // Remove agent
416
- this.agents.delete(agentId);
417
- // Emit event
418
- this.eventBus.emit(SystemEvents.AGENT_TERMINATED, {
419
- agentId,
420
- reason: 'User requested'
421
- });
422
- } catch (error) {
423
- this.logger.error('Failed to terminate agent', {
424
- agentId,
425
- error
426
- });
427
- throw error;
428
- }
429
- }
430
- async assignTask(task) {
431
- if (!this.initialized) {
432
- throw new SystemError('Orchestrator not initialized');
433
- }
434
- // Validate task
435
- this.validateTask(task);
436
- // Store task in history
437
- this.taskHistory.set(task.id, task);
438
- try {
439
- await this.taskAssignmentCircuitBreaker.execute(async ()=>{
440
- // Add to queue if no agent assigned
441
- if (!task.assignedAgent) {
442
- if (this.taskQueue.length >= this.config.orchestrator.taskQueueSize) {
443
- throw new SystemError('Task queue is full');
444
- }
445
- this.taskQueue.push(task);
446
- this.eventBus.emit(SystemEvents.TASK_CREATED, {
447
- task
448
- });
449
- // Try to assign immediately
450
- await this.processTaskQueue();
451
- return;
452
- }
453
- // Assign to specific agent
454
- const agent = this.agents.get(task.assignedAgent);
455
- if (!agent) {
456
- throw new SystemError(`Agent not found: ${task.assignedAgent}`);
457
- }
458
- await this.coordinationManager.assignTask(task, task.assignedAgent);
459
- this.eventBus.emit(SystemEvents.TASK_ASSIGNED, {
460
- taskId: task.id,
461
- agentId: task.assignedAgent
462
- });
463
- });
464
- } catch (error) {
465
- this.logger.error('Failed to assign task', {
466
- taskId: task.id,
467
- error
468
- });
469
- throw error;
470
- }
471
- }
472
- async getHealthStatus() {
473
- try {
474
- return await this.healthCheckCircuitBreaker.execute(async ()=>{
475
- const components = {};
476
- // Check all components in parallel
477
- const [terminal, memory, coordination, mcp] = await Promise.allSettled([
478
- this.getComponentHealth('Terminal Manager', async ()=>await this.terminalManager.getHealthStatus()),
479
- this.getComponentHealth('Memory Manager', async ()=>await this.memoryManager.getHealthStatus()),
480
- this.getComponentHealth('Coordination Manager', async ()=>await this.coordinationManager.getHealthStatus()),
481
- this.getComponentHealth('MCP Server', async ()=>await this.mcpServer.getHealthStatus())
482
- ]);
483
- // Process results
484
- components.terminal = this.processHealthResult(terminal, 'Terminal Manager');
485
- components.memory = this.processHealthResult(memory, 'Memory Manager');
486
- components.coordination = this.processHealthResult(coordination, 'Coordination Manager');
487
- components.mcp = this.processHealthResult(mcp, 'MCP Server');
488
- // Add orchestrator self-check
489
- components.orchestrator = {
490
- name: 'Orchestrator',
491
- status: 'healthy',
492
- lastCheck: new Date(),
493
- metrics: {
494
- uptime: Date.now() - this.startTime,
495
- activeAgents: this.agents.size,
496
- queuedTasks: this.taskQueue.length,
497
- memoryUsage: process.memoryUsage().heapUsed / 1024 / 1024
498
- }
499
- };
500
- // Determine overall status
501
- const statuses = Object.values(components).map((c)=>c.status);
502
- let overallStatus = 'healthy';
503
- if (statuses.some((s)=>s === 'unhealthy')) {
504
- overallStatus = 'unhealthy';
505
- } else if (statuses.some((s)=>s === 'degraded')) {
506
- overallStatus = 'degraded';
507
- }
508
- return {
509
- status: overallStatus,
510
- components,
511
- timestamp: new Date()
512
- };
513
- });
514
- } catch (error) {
515
- this.logger.error('Health check failed', error);
516
- // Return degraded status if health check fails
517
- return {
518
- status: 'degraded',
519
- components: {
520
- orchestrator: {
521
- name: 'Orchestrator',
522
- status: 'degraded',
523
- lastCheck: new Date(),
524
- error: 'Health check circuit breaker open'
525
- }
526
- },
527
- timestamp: new Date()
528
- };
529
- }
530
- }
531
- async getMetrics() {
532
- const memUsage = process.memoryUsage();
533
- const cpuUsage = process.cpuUsage();
534
- const avgTaskDuration = this.metrics.completedTasks > 0 ? this.metrics.totalTaskDuration / this.metrics.completedTasks : 0;
535
- return {
536
- uptime: Date.now() - this.startTime,
537
- totalAgents: this.agents.size,
538
- activeAgents: this.sessionManager.getActiveSessions().length,
539
- totalTasks: this.taskHistory.size,
540
- completedTasks: this.metrics.completedTasks,
541
- failedTasks: this.metrics.failedTasks,
542
- queuedTasks: this.taskQueue.length,
543
- avgTaskDuration,
544
- memoryUsage: memUsage,
545
- cpuUsage: cpuUsage,
546
- timestamp: new Date()
547
- };
548
- }
549
- async performMaintenance() {
550
- this.logger.debug('Performing maintenance tasks');
551
- try {
552
- // Clean up terminated sessions
553
- await this.cleanupTerminatedSessions();
554
- // Clean up old task history
555
- await this.cleanupTaskHistory();
556
- // Perform component maintenance
557
- await Promise.allSettled([
558
- this.terminalManager.performMaintenance(),
559
- this.memoryManager.performMaintenance(),
560
- this.coordinationManager.performMaintenance()
561
- ]);
562
- // Persist current state
563
- await this.sessionManager.persistSessions();
564
- // Force garbage collection if available
565
- if (global.gc) {
566
- global.gc();
567
- }
568
- this.logger.debug('Maintenance tasks completed');
569
- } catch (error) {
570
- this.logger.error('Error during maintenance', error);
571
- }
572
- }
573
- setupEventHandlers() {
574
- // Handle task lifecycle events
575
- this.eventBus.on(SystemEvents.TASK_STARTED, (data)=>{
576
- const { taskId, agentId } = data;
577
- const task = this.taskHistory.get(taskId);
578
- if (task) {
579
- task.status = 'running';
580
- task.startedAt = new Date();
581
- }
582
- });
583
- this.eventBus.on(SystemEvents.TASK_COMPLETED, async (data)=>{
584
- const { taskId, result } = data;
585
- const task = this.taskHistory.get(taskId);
586
- if (task) {
587
- task.status = 'completed';
588
- task.completedAt = new Date();
589
- if (result !== undefined) {
590
- task.output = result;
591
- }
592
- // Update metrics
593
- this.metrics.completedTasks++;
594
- if (task.startedAt) {
595
- this.metrics.totalTaskDuration += task.completedAt.getTime() - task.startedAt.getTime();
596
- }
597
- }
598
- await this.processTaskQueue();
599
- });
600
- this.eventBus.on(SystemEvents.TASK_FAILED, async (data)=>{
601
- const { taskId, error } = data;
602
- const task = this.taskHistory.get(taskId);
603
- if (task) {
604
- task.status = 'failed';
605
- task.completedAt = new Date();
606
- task.error = error;
607
- // Update metrics
608
- this.metrics.failedTasks++;
609
- }
610
- // Retry or requeue based on configuration
611
- await this.handleTaskFailure(taskId, error);
612
- });
613
- // Handle agent events
614
- this.eventBus.on(SystemEvents.AGENT_ERROR, async (data)=>{
615
- const { agentId, error } = data;
616
- this.logger.error('Agent error', {
617
- agentId,
618
- error
619
- });
620
- // Implement agent recovery
621
- await this.handleAgentError(agentId, error);
622
- });
623
- this.eventBus.on(SystemEvents.AGENT_IDLE, async (data)=>{
624
- const { agentId } = data;
625
- // Update session status
626
- const sessions = this.sessionManager.getActiveSessions().filter((s)=>s.agentId === agentId);
627
- sessions.forEach((s)=>s.status = 'idle');
628
- // Try to assign queued tasks
629
- await this.processTaskQueue();
630
- });
631
- // Handle system events
632
- this.eventBus.on(SystemEvents.SYSTEM_ERROR, (data)=>{
633
- const { error, component } = data;
634
- this.logger.error('System error', {
635
- component,
636
- error
637
- });
638
- // Implement system-level error recovery
639
- this.handleSystemError(component, error);
640
- });
641
- // Handle resource events
642
- this.eventBus.on(SystemEvents.DEADLOCK_DETECTED, (data)=>{
643
- const { agents, resources } = data;
644
- this.logger.error('Deadlock detected', {
645
- agents,
646
- resources
647
- });
648
- // Implement deadlock resolution
649
- this.resolveDeadlock(agents, resources);
650
- });
651
- }
652
- startHealthChecks() {
653
- this.healthCheckInterval = setInterval(async ()=>{
654
- try {
655
- const health = await this.getHealthStatus();
656
- this.eventBus.emit(SystemEvents.SYSTEM_HEALTHCHECK, {
657
- status: health
658
- });
659
- if (health.status === 'unhealthy') {
660
- this.logger.warn('System health check failed', health);
661
- // Attempt recovery for unhealthy components
662
- await this.recoverUnhealthyComponents(health);
663
- }
664
- } catch (error) {
665
- this.logger.error('Health check error', error);
666
- }
667
- }, this.config.orchestrator.healthCheckInterval);
668
- }
669
- startMaintenanceTasks() {
670
- this.maintenanceInterval = setInterval(async ()=>{
671
- await this.performMaintenance();
672
- }, this.config.orchestrator.maintenanceInterval || 300000); // 5 minutes default
673
- }
674
- startMetricsCollection() {
675
- this.metricsInterval = setInterval(async ()=>{
676
- try {
677
- const metrics = await this.getMetrics();
678
- this.logger.debug('Metrics collected', metrics);
679
- // Emit metrics event for monitoring systems
680
- this.eventBus.emit('metrics:collected', metrics);
681
- } catch (error) {
682
- this.logger.error('Metrics collection error', error);
683
- }
684
- }, this.config.orchestrator.metricsInterval || 60000); // 1 minute default
685
- }
686
- stopBackgroundTasks() {
687
- if (this.healthCheckInterval) {
688
- clearInterval(this.healthCheckInterval);
689
- }
690
- if (this.maintenanceInterval) {
691
- clearInterval(this.maintenanceInterval);
692
- }
693
- if (this.metricsInterval) {
694
- clearInterval(this.metricsInterval);
695
- }
696
- }
697
- async shutdownComponents() {
698
- const shutdownTasks = [
699
- this.shutdownComponent('Terminal Manager', ()=>this.terminalManager.shutdown()),
700
- this.shutdownComponent('Memory Manager', ()=>this.memoryManager.shutdown()),
701
- this.shutdownComponent('Coordination Manager', ()=>this.coordinationManager.shutdown()),
702
- this.shutdownComponent('MCP Server', ()=>this.mcpServer.stop())
703
- ];
704
- const results = await Promise.allSettled(shutdownTasks);
705
- // Log any shutdown failures
706
- results.forEach((result, index)=>{
707
- if (result.status === 'rejected') {
708
- const componentName = [
709
- 'Terminal Manager',
710
- 'Memory Manager',
711
- 'Coordination Manager',
712
- 'MCP Server'
713
- ][index];
714
- this.logger.error(`Failed to shutdown ${componentName}`, result.reason);
715
- }
716
- });
717
- }
718
- async emergencyShutdown() {
719
- this.logger.warn('Performing emergency shutdown');
720
- try {
721
- // Force stop all components
722
- await Promise.allSettled([
723
- this.terminalManager.shutdown().catch(()=>{}),
724
- this.memoryManager.shutdown().catch(()=>{}),
725
- this.coordinationManager.shutdown().catch(()=>{}),
726
- this.mcpServer.stop().catch(()=>{})
727
- ]);
728
- } catch (error) {
729
- this.logger.error('Emergency shutdown error', error);
730
- }
731
- }
732
- async processTaskQueue() {
733
- if (this.taskQueue.length === 0) {
734
- return;
735
- }
736
- const availableAgents = await this.getAvailableAgents();
737
- while(this.taskQueue.length > 0 && availableAgents.length > 0){
738
- const task = this.taskQueue.shift();
739
- const agent = this.selectAgentForTask(task, availableAgents);
740
- if (agent) {
741
- task.assignedAgent = agent.id;
742
- task.status = 'assigned';
743
- try {
744
- await this.coordinationManager.assignTask(task, agent.id);
745
- this.eventBus.emit(SystemEvents.TASK_ASSIGNED, {
746
- taskId: task.id,
747
- agentId: agent.id
748
- });
749
- // Remove agent from available list
750
- const index = availableAgents.indexOf(agent);
751
- availableAgents.splice(index, 1);
752
- } catch (error) {
753
- // Put task back in queue
754
- this.taskQueue.unshift(task);
755
- this.logger.error('Failed to assign task', {
756
- taskId: task.id,
757
- error
758
- });
759
- break;
760
- }
761
- } else {
762
- // No suitable agent, put task back
763
- this.taskQueue.unshift(task);
764
- break;
765
- }
766
- }
767
- }
768
- async getAvailableAgents() {
769
- const sessions = this.sessionManager.getActiveSessions();
770
- const available = [];
771
- for (const session of sessions){
772
- if (session.status === 'idle' || session.status === 'active') {
773
- const profile = this.agents.get(session.agentId);
774
- if (profile) {
775
- try {
776
- const taskCount = await this.coordinationManager.getAgentTaskCount(profile.id);
777
- if (taskCount < profile.maxConcurrentTasks) {
778
- available.push(profile);
779
- }
780
- } catch (error) {
781
- this.logger.error('Failed to get agent task count', {
782
- agentId: profile.id,
783
- error
784
- });
785
- }
786
- }
787
- }
788
- }
789
- return available.sort((a, b)=>b.priority - a.priority);
790
- }
791
- selectAgentForTask(task, agents) {
792
- // Score agents based on capabilities, load, and priority
793
- const scoredAgents = agents.map((agent)=>{
794
- let score = agent.priority * 10;
795
- // Check capability match
796
- const requiredCapabilities = task.metadata?.requiredCapabilities || [];
797
- const matchedCapabilities = requiredCapabilities.filter((cap)=>agent.capabilities.includes(cap)).length;
798
- if (requiredCapabilities.length > 0 && matchedCapabilities === 0) {
799
- return {
800
- agent,
801
- score: -1
802
- }; // Can't handle task
803
- }
804
- score += matchedCapabilities * 5;
805
- // Prefer agents with matching type
806
- if (task.type === agent.type) {
807
- score += 20;
808
- }
809
- return {
810
- agent,
811
- score
812
- };
813
- });
814
- // Filter out agents that can't handle the task
815
- const eligibleAgents = scoredAgents.filter(({ score })=>score >= 0);
816
- if (eligibleAgents.length === 0) {
817
- return undefined;
818
- }
819
- // Select agent with highest score
820
- eligibleAgents.sort((a, b)=>b.score - a.score);
821
- return eligibleAgents[0].agent;
822
- }
823
- async getComponentHealth(name, check) {
824
- try {
825
- const result = await Promise.race([
826
- check(),
827
- delay(5000).then(()=>({
828
- healthy: false,
829
- error: 'Health check timeout'
830
- }))
831
- ]);
832
- const health = {
833
- name,
834
- status: result.healthy ? 'healthy' : 'unhealthy',
835
- lastCheck: new Date()
836
- };
837
- if (result.error !== undefined) {
838
- health.error = result.error;
839
- }
840
- if ('metrics' in result && result.metrics !== undefined) {
841
- health.metrics = result.metrics;
842
- }
843
- return health;
844
- } catch (error) {
845
- return {
846
- name,
847
- status: 'unhealthy',
848
- lastCheck: new Date(),
849
- error: error instanceof Error ? error.message : 'Unknown error'
850
- };
851
- }
852
- }
853
- processHealthResult(result, componentName) {
854
- if (result.status === 'fulfilled') {
855
- return result.value;
856
- } else {
857
- return {
858
- name: componentName,
859
- status: 'unhealthy',
860
- lastCheck: new Date(),
861
- error: result.reason?.message || 'Health check failed'
862
- };
863
- }
864
- }
865
- async initializeComponent(name, init) {
866
- try {
867
- await retry(init, {
868
- maxAttempts: 3,
869
- initialDelay: 2000
870
- });
871
- this.logger.info(`${name} initialized`);
872
- } catch (error) {
873
- this.logger.error(`Failed to initialize ${name}`, error);
874
- throw new InitializationError(name, {
875
- error
876
- });
877
- }
878
- }
879
- async shutdownComponent(name, shutdown) {
880
- try {
881
- await Promise.race([
882
- shutdown(),
883
- delay(10000)
884
- ]);
885
- this.logger.info(`${name} shut down`);
886
- } catch (error) {
887
- this.logger.error(`Failed to shutdown ${name}`, error);
888
- throw error;
889
- }
890
- }
891
- validateAgentProfile(profile) {
892
- if (!profile.id || !profile.name || !profile.type) {
893
- throw new Error('Invalid agent profile: missing required fields');
894
- }
895
- if (profile.maxConcurrentTasks < 1) {
896
- throw new Error('Invalid agent profile: maxConcurrentTasks must be at least 1');
897
- }
898
- if (this.agents.has(profile.id)) {
899
- throw new Error(`Agent with ID ${profile.id} already exists`);
900
- }
901
- }
902
- validateTask(task) {
903
- if (!task.id || !task.type || !task.description) {
904
- throw new Error('Invalid task: missing required fields');
905
- }
906
- if (task.priority < 0 || task.priority > 100) {
907
- throw new Error('Invalid task: priority must be between 0 and 100');
908
- }
909
- if (this.taskHistory.has(task.id)) {
910
- throw new Error(`Task with ID ${task.id} already exists`);
911
- }
912
- }
913
- async handleAgentError(agentId, error) {
914
- const profile = this.agents.get(agentId);
915
- if (!profile) {
916
- return;
917
- }
918
- // Log error details
919
- this.logger.error('Handling agent error', {
920
- agentId,
921
- error
922
- });
923
- // Check if agent should be restarted
924
- const errorCount = profile.metadata?.errorCount || 0;
925
- profile.metadata = {
926
- ...profile.metadata,
927
- errorCount: errorCount + 1
928
- };
929
- if (errorCount < 3) {
930
- // Attempt to restart agent
931
- try {
932
- await this.terminateAgent(agentId);
933
- await delay(2000); // Wait before restart
934
- await this.spawnAgent({
935
- ...profile,
936
- metadata: {
937
- ...profile.metadata,
938
- errorCount: 0
939
- }
940
- });
941
- this.logger.info('Agent restarted after error', {
942
- agentId
943
- });
944
- } catch (restartError) {
945
- this.logger.error('Failed to restart agent', {
946
- agentId,
947
- error: restartError
948
- });
949
- }
950
- } else {
951
- // Too many errors, terminate agent
952
- this.logger.error('Agent exceeded error threshold, terminating', {
953
- agentId,
954
- errorCount
955
- });
956
- await this.terminateAgent(agentId);
957
- }
958
- }
959
- async handleTaskFailure(taskId, error) {
960
- const task = this.taskHistory.get(taskId);
961
- if (!task) {
962
- return;
963
- }
964
- const retryCount = task.metadata?.retryCount || 0;
965
- const maxRetries = this.config.orchestrator.taskMaxRetries || 3;
966
- if (retryCount < maxRetries) {
967
- // Retry task
968
- task.metadata = {
969
- ...task.metadata,
970
- retryCount: retryCount + 1
971
- };
972
- task.status = 'queued';
973
- delete task.assignedAgent;
974
- // Add back to queue with delay
975
- setTimeout(()=>{
976
- this.taskQueue.push(task);
977
- this.processTaskQueue();
978
- }, Math.pow(2, retryCount) * 1000); // Exponential backoff
979
- this.logger.info('Task queued for retry', {
980
- taskId,
981
- retryCount: retryCount + 1
982
- });
983
- } else {
984
- this.logger.error('Task exceeded retry limit', {
985
- taskId,
986
- retryCount
987
- });
988
- }
989
- }
990
- handleSystemError(component, error) {
991
- // Implement system-level error recovery strategies
992
- this.logger.error('Handling system error', {
993
- component,
994
- error
995
- });
996
- // TODO: Implement specific recovery strategies based on component and error type
997
- }
998
- async resolveDeadlock(agents, resources) {
999
- this.logger.warn('Resolving deadlock', {
1000
- agents,
1001
- resources
1002
- });
1003
- // Simple deadlock resolution: cancel lowest priority agent's tasks
1004
- const agentProfiles = agents.map((id)=>this.agents.get(id)).filter(Boolean);
1005
- if (agentProfiles.length === 0) {
1006
- return;
1007
- }
1008
- // Sort by priority (lowest first)
1009
- agentProfiles.sort((a, b)=>a.priority - b.priority);
1010
- // Cancel tasks for lowest priority agent
1011
- const targetAgent = agentProfiles[0];
1012
- await this.cancelAgentTasks(targetAgent.id);
1013
- this.logger.info('Deadlock resolved by cancelling tasks', {
1014
- agentId: targetAgent.id
1015
- });
1016
- }
1017
- async cancelAgentTasks(agentId) {
1018
- try {
1019
- const tasks = await this.coordinationManager.getAgentTasks(agentId);
1020
- for (const task of tasks){
1021
- await this.coordinationManager.cancelTask(task.id);
1022
- // Update task status
1023
- const trackedTask = this.taskHistory.get(task.id);
1024
- if (trackedTask) {
1025
- trackedTask.status = 'cancelled';
1026
- trackedTask.completedAt = new Date();
1027
- }
1028
- this.eventBus.emit(SystemEvents.TASK_CANCELLED, {
1029
- taskId: task.id,
1030
- reason: 'Agent termination'
1031
- });
1032
- }
1033
- } catch (error) {
1034
- this.logger.error('Failed to cancel agent tasks', {
1035
- agentId,
1036
- error
1037
- });
1038
- }
1039
- }
1040
- startAgentHealthMonitoring(agentId) {
1041
- // TODO: Implement periodic health checks for individual agents
1042
- }
1043
- async recoverUnhealthyComponents(health) {
1044
- for (const [name, component] of Object.entries(health.components)){
1045
- if (component.status === 'unhealthy') {
1046
- this.logger.warn('Attempting to recover unhealthy component', {
1047
- name
1048
- });
1049
- // TODO: Implement component-specific recovery strategies
1050
- switch(name){
1051
- case 'Terminal Manager':
1052
- break;
1053
- case 'Memory Manager':
1054
- break;
1055
- case 'Coordination Manager':
1056
- break;
1057
- case 'MCP Server':
1058
- break;
1059
- }
1060
- }
1061
- }
1062
- }
1063
- async cleanupTerminatedSessions() {
1064
- const allSessions = this.sessionManager.getActiveSessions();
1065
- const terminatedSessions = allSessions.filter((s)=>s.status === 'terminated');
1066
- const cutoffTime = Date.now() - (this.config.orchestrator.sessionRetentionMs || 3600000); // 1 hour default
1067
- for (const session of terminatedSessions){
1068
- const typedSession = session;
1069
- if (typedSession.endTime && typedSession.endTime.getTime() < cutoffTime) {
1070
- await this.sessionManager.terminateSession(typedSession.id);
1071
- this.logger.debug('Cleaned up old session', {
1072
- sessionId: typedSession.id
1073
- });
1074
- }
1075
- }
1076
- }
1077
- async cleanupTaskHistory() {
1078
- const cutoffTime = Date.now() - (this.config.orchestrator.taskHistoryRetentionMs || 86400000); // 24 hours default
1079
- for (const [taskId, task] of this.taskHistory.entries()){
1080
- if (task.completedAt && task.completedAt.getTime() < cutoffTime) {
1081
- this.taskHistory.delete(taskId);
1082
- this.logger.debug('Cleaned up old task', {
1083
- taskId
1084
- });
1085
- }
1086
- }
1087
- }
1088
- async processShutdownTasks() {
1089
- // Process any critical tasks before shutdown
1090
- const criticalTasks = this.taskQueue.filter((t)=>t.priority >= 90 || t.metadata?.critical === true);
1091
- if (criticalTasks.length > 0) {
1092
- this.logger.info('Processing critical tasks before shutdown', {
1093
- count: criticalTasks.length
1094
- });
1095
- // TODO: Implement critical task processing
1096
- }
1097
- }
1098
- /**
1099
- * Get Claude API client instance
1100
- */ getClaudeClient() {
1101
- return this.claudeClient;
1102
- }
1103
- /**
1104
- * Update Claude API configuration dynamically
1105
- */ updateClaudeConfig(config) {
1106
- this.configManager.setClaudeConfig(config);
1107
- if (this.claudeClient) {
1108
- this.claudeClient.updateConfig(config);
1109
- } else if (this.configManager.isClaudeAPIConfigured()) {
1110
- // Initialize Claude client with new config
1111
- try {
1112
- this.claudeClient = new ClaudeAPIClient(this.logger, this.configManager);
1113
- this.logger.info('Claude API client initialized with new configuration');
1114
- } catch (error) {
1115
- this.logger.error('Failed to initialize Claude API client', error);
1116
- }
1117
- }
1118
- }
1119
- /**
1120
- * Execute a Claude API request
1121
- */ async executeClaudeRequest(prompt, options) {
1122
- if (!this.claudeClient) {
1123
- this.logger.error('Claude API client not initialized');
1124
- return null;
1125
- }
1126
- try {
1127
- const response = await this.claudeClient.complete(prompt, options);
1128
- return response;
1129
- } catch (error) {
1130
- this.logger.error('Claude API request failed', error);
1131
- return null;
1132
- }
1133
- }
1134
- }
1135
-
1136
- //# sourceMappingURL=orchestrator.js.map