claude-flow-novice 2.8.1 → 2.9.1

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 (755) hide show
  1. package/.claude/agents/{coordinators → cfn-dev-team/coordinators}/README.md +2 -2
  2. package/.claude/agents/{coordinators → cfn-dev-team/coordinators}/cfn-v3-coordinator.md +1 -1
  3. package/.claude/agents/{coordinators → cfn-dev-team/coordinators}/cto-agent.md +1 -1
  4. package/.claude/agents/{coordinators → cfn-dev-team/coordinators}/product-owner-agent.md +1 -1
  5. package/.claude/agents/{coordinators → cfn-dev-team/coordinators}/product-owner.md +2 -2
  6. package/.claude/agents/{developers → cfn-dev-team/developers}/README.md +1 -1
  7. package/.claude/agents/{developers → cfn-dev-team/developers}/coder.md +1 -1
  8. package/.claude/agents/{reviewers → cfn-dev-team/reviewers}/code-quality-validator.md +1 -1
  9. package/.claude/agents/{reviewers → cfn-dev-team/reviewers}/reviewer.md +1 -1
  10. package/.claude/agents/{testers → cfn-dev-team/testers}/e2e/playwright-agent.md +1 -1
  11. package/.claude/agents/{testers → cfn-dev-team/testers}/interaction-tester.md +1 -1
  12. package/.claude/agents/{testers → cfn-dev-team/testers}/unit/tdd-london-swarm.md +1 -1
  13. package/.claude/agents/{testers → cfn-dev-team/testers}/validation/production-validator.md +1 -1
  14. package/.claude/commands/{CFN_COORDINATOR_PARAMETERS.md → cfn/CFN_COORDINATOR_PARAMETERS.md} +15 -15
  15. package/.claude/commands/{cfn-loop-epic.md → cfn/cfn-loop-epic.md} +4 -4
  16. package/.claude/commands/{cfn-loop-single.md → cfn/cfn-loop-single.md} +7 -7
  17. package/.claude/commands/{cfn-loop-sprints.md → cfn/cfn-loop-sprints.md} +1 -1
  18. package/.claude/commands/{cfn-loop.md → cfn/cfn-loop.md} +7 -7
  19. package/.claude/commands/{cfn-optimize-agents.md → cfn/cfn-optimize-agents.md} +1 -1
  20. package/.claude/commands/{context-curate.md → cfn/context-curate.md} +2 -2
  21. package/.claude/commands/{context-inject.md → cfn/context-inject.md} +3 -3
  22. package/.claude/commands/{context-reflect.md → cfn/context-reflect.md} +1 -1
  23. package/.claude/commands/{context-stats.md → cfn/context-stats.md} +1 -1
  24. package/.claude/commands/{list-agents-rebuild.md → cfn/list-agents-rebuild.md} +12 -12
  25. package/{CLAUDE.md → CFN-CLAUDE.md} +19 -19
  26. package/dist/agents/agent-loader.js +165 -146
  27. package/dist/agents/agent-loader.js.map +1 -1
  28. package/dist/cli/init-command.js +20 -0
  29. package/dist/cli/init-command.js.map +1 -0
  30. package/package.json +13 -7
  31. package/scripts/init-project.js +166 -0
  32. package/scripts/restructure-cfn-namespace.sh +161 -0
  33. package/.claude/SLASH-COMMANDS-READY.md +0 -53
  34. package/.claude/WORKING-SETUP.md +0 -67
  35. package/.claude/ace-system-overview.md +0 -524
  36. package/.claude/adaptive-context/cfn-v3-reflection.json +0 -21
  37. package/.claude/agent-principles/agent-template.md +0 -96
  38. package/.claude/agents/AGENT_LIFECYCLE.md +0 -495
  39. package/.claude/agents/CLAUDE.md +0 -1002
  40. package/.claude/agents/README-VALIDATION.md +0 -243
  41. package/.claude/agents/accessibility-advocate.md +0 -457
  42. package/.claude/agents/agent-principles/README.md +0 -226
  43. package/.claude/agents/agent-principles/agent-type-guidelines.md +0 -475
  44. package/.claude/agents/agent-principles/format-selection.md +0 -234
  45. package/.claude/agents/agent-principles/phase4-template-optimization.md +0 -502
  46. package/.claude/agents/agent-principles/prompt-engineering.md +0 -509
  47. package/.claude/agents/agent-principles/quality-metrics.md +0 -383
  48. package/.claude/agents/analysis/code-analyzer.md +0 -182
  49. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -31
  50. package/.claude/agents/analysis/perf-analyzer.md +0 -36
  51. package/.claude/agents/context/context-curator.md +0 -78
  52. package/.claude/agents/context/context-reflector.md +0 -27
  53. package/.claude/agents/core-agents/reviewer.md +0 -121
  54. package/.claude/agents/custom/agent-builder.md +0 -637
  55. package/.claude/agents/development/backend/dev-backend-api.md +0 -110
  56. package/.claude/agents/development/npm-package-specialist.md +0 -355
  57. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -106
  58. package/.claude/agents/documentation/api-docs.md +0 -111
  59. package/.claude/agents/frontend/README.md +0 -640
  60. package/.claude/agents/github/github-commit-agent.md +0 -126
  61. package/.claude/agents/goal/goal-planner.md +0 -191
  62. package/.claude/agents/infrastructure/README.md +0 -100
  63. package/.claude/agents/infrastructure/devops-engineer.md +0 -131
  64. package/.claude/agents/planners/README.md +0 -94
  65. package/.claude/agents/planners/analyst.md +0 -149
  66. package/.claude/agents/planners/api-designer-persona.md +0 -155
  67. package/.claude/agents/planners/architect.md +0 -187
  68. package/.claude/agents/planners/planner.md +0 -153
  69. package/.claude/agents/planners/security-architect-persona.md +0 -170
  70. package/.claude/agents/planners/system-architect-persona.md +0 -158
  71. package/.claude/agents/planners/system-architect.md +0 -156
  72. package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +0 -132
  73. package/.claude/agents/product-owner-team/power-user-persona.md +0 -149
  74. package/.claude/agents/retrospective-analyst.md +0 -84
  75. package/.claude/agents/sparc/architecture.md +0 -130
  76. package/.claude/agents/sparc/pseudocode.md +0 -165
  77. package/.claude/agents/sparc/refinement.md +0 -112
  78. package/.claude/agents/sparc/specification.md +0 -158
  79. package/.claude/agents/specialists/README.md +0 -60
  80. package/.claude/agents/specialists/base-template-generator.md +0 -175
  81. package/.claude/agents/specialists/cli-agent-optimizer.md +0 -122
  82. package/.claude/agents/specialists/code-booster.md +0 -144
  83. package/.claude/agents/specialists/consensus-builder.md +0 -143
  84. package/.claude/agents/specialists/crdt-synchronizer.md +0 -192
  85. package/.claude/agents/specialists/mobile-dev.md +0 -190
  86. package/.claude/agents/specialists/performance-benchmarker.md +0 -134
  87. package/.claude/agents/specialists/quorum-manager.md +0 -168
  88. package/.claude/agents/specialists/raft-manager.md +0 -106
  89. package/.claude/agents/specialists/rust-developer.md +0 -147
  90. package/.claude/agents/specialists/rust-enterprise-developer.md +0 -125
  91. package/.claude/agents/specialists/rust-mvp-developer.md +0 -123
  92. package/.claude/agents/specialists/security-manager.md +0 -91
  93. package/.claude/agents/specialists/security-specialist-existing.md +0 -103
  94. package/.claude/agents/specialists/security-specialist.md +0 -161
  95. package/.claude/agents/specialists/spec-mobile-react-native.md +0 -172
  96. package/.claude/agents/validate-agent.js +0 -841
  97. package/.claude/agents-ignore/cfn-coordinator-enterprise.md +0 -1303
  98. package/.claude/agents-ignore/cfn-coordinator-mvp.md +0 -942
  99. package/.claude/agents-ignore/cfn-coordinator-standard.md +0 -1062
  100. package/.claude/agents-ignore/cfn-loop-coordinator.md +0 -157
  101. package/.claude/agents-ignore/cfn-loop-coordinator.md.backup +0 -156
  102. package/.claude/agents-ignore/coordinator.md +0 -182
  103. package/.claude/agents-ignore/coordinator.md.backup +0 -182
  104. package/.claude/agents-ignore/cost-savings-cfn-loop-coordinator.md +0 -760
  105. package/.claude/agents-ignore/cost-savings-coordinator.md +0 -173
  106. package/.claude/agents-ignore/cost-savings-coordinator.md.backup +0 -167
  107. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator-enhanced.md +0 -145
  108. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator.md +0 -161
  109. package/.claude/agents-ignore/deprecated-coordinators/blocking-coordinator-example.md +0 -732
  110. package/.claude/agents-ignore/deprecated-coordinators/byzantine-coordinator.md +0 -94
  111. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-enterprise.md +0 -323
  112. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-mvp.md +0 -157
  113. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-standard.md +0 -229
  114. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-unified.md +0 -149
  115. package/.claude/agents-ignore/deprecated-coordinators/coordinator-hybrid.md +0 -231
  116. package/.claude/agents-ignore/deprecated-coordinators/gossip-coordinator.md +0 -165
  117. package/.claude/agents-ignore/deprecated-coordinators/hierarchical-coordinator.md +0 -91
  118. package/.claude/agents-ignore/deprecated-coordinators/mesh-coordinator.md +0 -131
  119. package/.claude/agents-ignore/deprecated-coordinators/task-coordinator.md +0 -105
  120. package/.claude/agents-ignore/deprecated-coordinators/test-coordinator.md +0 -141
  121. package/.claude/architecture/mesh-get-polling-design.md +0 -87
  122. package/.claude/architecture/mesh-get-polling-implementation.md +0 -89
  123. package/.claude/architecture/typescript-microservices.md +0 -50
  124. package/.claude/artifacts/ace-reflections/REFLECT-001-summary.json +0 -39
  125. package/.claude/artifacts/ace-reflections/sprint-7_$(date -u +/"%Y%m%d_%H%M%S/").json" +0 -47
  126. package/.claude/artifacts/reflection-merge-logs/cli-agent-spawning-v2.5.2-merge-report.md +0 -61
  127. package/.claude/cfn-loop-rules.md +0 -73
  128. package/.claude/cfn-mode-patterns.md +0 -571
  129. package/.claude/claude-md-backup-pre-skills.md +0 -15
  130. package/.claude/commands/agents/README.md +0 -10
  131. package/.claude/commands/agents/agent-capabilities.md +0 -21
  132. package/.claude/commands/agents/agent-coordination.md +0 -28
  133. package/.claude/commands/agents/agent-spawning.md +0 -28
  134. package/.claude/commands/agents/agent-types.md +0 -26
  135. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  136. package/.claude/commands/analysis/README.md +0 -9
  137. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  138. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  139. package/.claude/commands/analysis/performance-report.md +0 -25
  140. package/.claude/commands/analysis/token-efficiency.md +0 -45
  141. package/.claude/commands/analysis/token-usage.md +0 -25
  142. package/.claude/commands/automation/README.md +0 -9
  143. package/.claude/commands/automation/auto-agent.md +0 -122
  144. package/.claude/commands/automation/self-healing.md +0 -106
  145. package/.claude/commands/automation/session-memory.md +0 -90
  146. package/.claude/commands/automation/smart-agents.md +0 -73
  147. package/.claude/commands/automation/smart-spawn.md +0 -25
  148. package/.claude/commands/automation/workflow-select.md +0 -25
  149. package/.claude/commands/claude-md.js +0 -237
  150. package/.claude/commands/claude-soul.js +0 -28
  151. package/.claude/commands/cli-integration.js +0 -216
  152. package/.claude/commands/coordination/README.md +0 -9
  153. package/.claude/commands/coordination/agent-spawn.md +0 -25
  154. package/.claude/commands/coordination/coordination-system.md +0 -88
  155. package/.claude/commands/coordination/init.md +0 -44
  156. package/.claude/commands/coordination/orchestrate.md +0 -43
  157. package/.claude/commands/coordination/spawn.md +0 -45
  158. package/.claude/commands/coordination/swarm-init.md +0 -85
  159. package/.claude/commands/coordination/task-orchestrate.md +0 -25
  160. package/.claude/commands/github/README.md +0 -11
  161. package/.claude/commands/github/code-review-swarm.md +0 -514
  162. package/.claude/commands/github/code-review.md +0 -25
  163. package/.claude/commands/github/github-modes.md +0 -147
  164. package/.claude/commands/github/github-swarm.md +0 -121
  165. package/.claude/commands/github/issue-tracker.md +0 -292
  166. package/.claude/commands/github/issue-triage.md +0 -25
  167. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  168. package/.claude/commands/github/pr-enhance.md +0 -26
  169. package/.claude/commands/github/pr-manager.md +0 -170
  170. package/.claude/commands/github/project-board-sync.md +0 -471
  171. package/.claude/commands/github/release-manager.md +0 -338
  172. package/.claude/commands/github/release-swarm.md +0 -544
  173. package/.claude/commands/github/repo-analyze.md +0 -25
  174. package/.claude/commands/github/repo-architect.md +0 -367
  175. package/.claude/commands/github/swarm-issue.md +0 -482
  176. package/.claude/commands/github/swarm-pr.md +0 -285
  177. package/.claude/commands/github/sync-coordinator.md +0 -301
  178. package/.claude/commands/github/workflow-automation.md +0 -442
  179. package/.claude/commands/github.js +0 -638
  180. package/.claude/commands/hive-mind/README.md +0 -17
  181. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -8
  182. package/.claude/commands/hive-mind/hive-mind-init.md +0 -18
  183. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -8
  184. package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
  185. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  186. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  187. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -21
  188. package/.claude/commands/hive-mind/hive-mind-status.md +0 -8
  189. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  190. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  191. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  192. package/.claude/commands/hooks/README.md +0 -11
  193. package/.claude/commands/hooks/overview.md +0 -58
  194. package/.claude/commands/hooks/post-edit.md +0 -117
  195. package/.claude/commands/hooks/post-task.md +0 -112
  196. package/.claude/commands/hooks/pre-edit.md +0 -113
  197. package/.claude/commands/hooks/pre-task.md +0 -111
  198. package/.claude/commands/hooks/session-end.md +0 -118
  199. package/.claude/commands/hooks/session-start.md +0 -9
  200. package/.claude/commands/hooks/setup.md +0 -103
  201. package/.claude/commands/hooks.js +0 -651
  202. package/.claude/commands/index.js +0 -119
  203. package/.claude/commands/memory/README.md +0 -9
  204. package/.claude/commands/memory/memory-bank.md +0 -58
  205. package/.claude/commands/memory/memory-persist.md +0 -25
  206. package/.claude/commands/memory/memory-search.md +0 -25
  207. package/.claude/commands/memory/memory-usage.md +0 -25
  208. package/.claude/commands/memory/neural.md +0 -47
  209. package/.claude/commands/memory/usage.md +0 -46
  210. package/.claude/commands/monitoring/README.md +0 -9
  211. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  212. package/.claude/commands/monitoring/agents.md +0 -44
  213. package/.claude/commands/monitoring/real-time-view.md +0 -25
  214. package/.claude/commands/monitoring/status.md +0 -46
  215. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  216. package/.claude/commands/neural.js +0 -572
  217. package/.claude/commands/optimization/README.md +0 -9
  218. package/.claude/commands/optimization/auto-topology.md +0 -62
  219. package/.claude/commands/optimization/cache-manage.md +0 -25
  220. package/.claude/commands/optimization/parallel-execute.md +0 -25
  221. package/.claude/commands/optimization/parallel-execution.md +0 -50
  222. package/.claude/commands/optimization/topology-optimize.md +0 -25
  223. package/.claude/commands/pair/README.md +0 -261
  224. package/.claude/commands/pair/commands.md +0 -546
  225. package/.claude/commands/pair/config.md +0 -510
  226. package/.claude/commands/pair/examples.md +0 -512
  227. package/.claude/commands/pair/modes.md +0 -348
  228. package/.claude/commands/pair/session.md +0 -407
  229. package/.claude/commands/pair/start.md +0 -209
  230. package/.claude/commands/parse-epic.js +0 -180
  231. package/.claude/commands/performance.js +0 -582
  232. package/.claude/commands/register-all-commands.js +0 -320
  233. package/.claude/commands/register-claude-md.js +0 -82
  234. package/.claude/commands/register-claude-soul.js +0 -80
  235. package/.claude/commands/sparc/analyzer.md +0 -52
  236. package/.claude/commands/sparc/architect.md +0 -53
  237. package/.claude/commands/sparc/batch-executor.md +0 -54
  238. package/.claude/commands/sparc/coder.md +0 -54
  239. package/.claude/commands/sparc/debugger.md +0 -54
  240. package/.claude/commands/sparc/designer.md +0 -53
  241. package/.claude/commands/sparc/documenter.md +0 -54
  242. package/.claude/commands/sparc/innovator.md +0 -54
  243. package/.claude/commands/sparc/memory-manager.md +0 -54
  244. package/.claude/commands/sparc/optimizer.md +0 -54
  245. package/.claude/commands/sparc/orchestrator.md +0 -132
  246. package/.claude/commands/sparc/researcher.md +0 -54
  247. package/.claude/commands/sparc/reviewer.md +0 -54
  248. package/.claude/commands/sparc/sparc-modes.md +0 -174
  249. package/.claude/commands/sparc/swarm-coordinator.md +0 -54
  250. package/.claude/commands/sparc/tdd.md +0 -54
  251. package/.claude/commands/sparc/tester.md +0 -54
  252. package/.claude/commands/sparc/workflow-manager.md +0 -54
  253. package/.claude/commands/sparc.js +0 -110
  254. package/.claude/commands/stream-chain/pipeline.md +0 -121
  255. package/.claude/commands/stream-chain/run.md +0 -70
  256. package/.claude/commands/swarm/README.md +0 -15
  257. package/.claude/commands/swarm/analysis.md +0 -95
  258. package/.claude/commands/swarm/development.md +0 -96
  259. package/.claude/commands/swarm/examples.md +0 -168
  260. package/.claude/commands/swarm/maintenance.md +0 -102
  261. package/.claude/commands/swarm/optimization.md +0 -117
  262. package/.claude/commands/swarm/research.md +0 -136
  263. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  264. package/.claude/commands/swarm/swarm-background.md +0 -8
  265. package/.claude/commands/swarm/swarm-init.md +0 -19
  266. package/.claude/commands/swarm/swarm-modes.md +0 -8
  267. package/.claude/commands/swarm/swarm-monitor.md +0 -8
  268. package/.claude/commands/swarm/swarm-spawn.md +0 -19
  269. package/.claude/commands/swarm/swarm-status.md +0 -8
  270. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  271. package/.claude/commands/swarm/swarm.md +0 -27
  272. package/.claude/commands/swarm/testing.md +0 -131
  273. package/.claude/commands/swarm.js +0 -423
  274. package/.claude/commands/testing/playwright-e2e.md +0 -288
  275. package/.claude/commands/training/README.md +0 -9
  276. package/.claude/commands/training/model-update.md +0 -25
  277. package/.claude/commands/training/neural-patterns.md +0 -74
  278. package/.claude/commands/training/neural-train.md +0 -25
  279. package/.claude/commands/training/pattern-learn.md +0 -25
  280. package/.claude/commands/training/specialization.md +0 -63
  281. package/.claude/commands/truth/start.md +0 -143
  282. package/.claude/commands/validate-commands.js +0 -223
  283. package/.claude/commands/verify/check.md +0 -50
  284. package/.claude/commands/verify/start.md +0 -128
  285. package/.claude/commands/workflow.js +0 -606
  286. package/.claude/commands/workflows/README.md +0 -9
  287. package/.claude/commands/workflows/development.md +0 -78
  288. package/.claude/commands/workflows/research.md +0 -63
  289. package/.claude/commands/workflows/workflow-create.md +0 -25
  290. package/.claude/commands/workflows/workflow-execute.md +0 -25
  291. package/.claude/commands/workflows/workflow-export.md +0 -25
  292. package/.claude/coordinator-feedback-pattern.md +0 -326
  293. package/.claude/coordinator-patterns.md +0 -126
  294. package/.claude/core/agent-manager.js +0 -80
  295. package/.claude/core/agent-manager.js.map +0 -1
  296. package/.claude/core/config.js +0 -1221
  297. package/.claude/core/config.js.map +0 -1
  298. package/.claude/core/event-bus.js +0 -136
  299. package/.claude/core/event-bus.js.map +0 -1
  300. package/.claude/core/index.js +0 -6
  301. package/.claude/core/index.js.map +0 -1
  302. package/.claude/core/json-persistence.js +0 -112
  303. package/.claude/core/json-persistence.js.map +0 -1
  304. package/.claude/core/logger.js +0 -245
  305. package/.claude/core/logger.js.map +0 -1
  306. package/.claude/core/orchestrator-fixed.js +0 -236
  307. package/.claude/core/orchestrator-fixed.js.map +0 -1
  308. package/.claude/core/orchestrator.js +0 -1136
  309. package/.claude/core/orchestrator.js.map +0 -1
  310. package/.claude/core/persistence.js +0 -185
  311. package/.claude/core/persistence.js.map +0 -1
  312. package/.claude/core/project-manager.js +0 -80
  313. package/.claude/core/project-manager.js.map +0 -1
  314. package/.claude/core/slash-command.js +0 -24
  315. package/.claude/core/version.js +0 -35
  316. package/.claude/core/version.js.map +0 -1
  317. package/.claude/helpers/checkpoint-manager.sh +0 -251
  318. package/.claude/helpers/github-safe.js +0 -106
  319. package/.claude/helpers/github-setup.sh +0 -28
  320. package/.claude/helpers/quick-start.sh +0 -19
  321. package/.claude/helpers/setup-mcp.sh +0 -18
  322. package/.claude/helpers/standard-checkpoint-hooks.sh +0 -179
  323. package/.claude/hooks.json +0 -21
  324. package/.claude/logs/sprint1-hybrid-routing-v2-decision.json +0 -18
  325. package/.claude/prompts/cfn-loop-context.md +0 -115
  326. package/.claude/prompts/loop-specific/loop2.md +0 -50
  327. package/.claude/prompts/loop-specific/loop3.md +0 -43
  328. package/.claude/prompts/loop-specific/loop4.md +0 -54
  329. package/.claude/redis-agent-dependencies.md +0 -494
  330. package/.claude/root-claude-distribute/CLAUDE.md +0 -502
  331. package/.claude/settings.json +0 -129
  332. package/.claude/settings.local.json +0 -33
  333. package/.claude/skills/CFN-LOOP-VALIDATION.md +0 -202
  334. package/.claude/skills/REDIS-COORDINATION.md +0 -187
  335. package/.claude/skills/SKILL.md +0 -229
  336. package/.claude/skills/ace-system/SKILL.md +0 -364
  337. package/.claude/skills/ace-system/add-bullet.sh +0 -145
  338. package/.claude/skills/ace-system/invoke-context-curate.sh +0 -192
  339. package/.claude/skills/ace-system/invoke-context-inject.sh +0 -166
  340. package/.claude/skills/ace-system/invoke-context-query.sh +0 -127
  341. package/.claude/skills/ace-system/invoke-context-reflect.sh +0 -98
  342. package/.claude/skills/ace-system/invoke-context-stats.sh +0 -188
  343. package/.claude/skills/ace-system/log-merge.sh +0 -67
  344. package/.claude/skills/ace-system/query-reflections.sh +0 -35
  345. package/.claude/skills/ace-system/sprint-7-lessons.json +0 -46
  346. package/.claude/skills/ace-system/store-reflection.sh +0 -46
  347. package/.claude/skills/ace-system/test-ace-skill.sh +0 -312
  348. package/.claude/skills/ace-system/update-reflection.sh +0 -41
  349. package/.claude/skills/agent-discovery/SKILL.md +0 -40
  350. package/.claude/skills/agent-discovery/agents-registry-clean.json +0 -0
  351. package/.claude/skills/agent-discovery/agents-registry-fixed.json +0 -19
  352. package/.claude/skills/agent-discovery/agents-registry.json +0 -718
  353. package/.claude/skills/agent-discovery/discover-agents.py +0 -175
  354. package/.claude/skills/agent-discovery/discover-agents.sh +0 -87
  355. package/.claude/skills/agent-discovery/invoke-registry.sh +0 -11
  356. package/.claude/skills/agent-discovery/temp_script.py +0 -0
  357. package/.claude/skills/agent-execution/execute-agent.sh +0 -126
  358. package/.claude/skills/agent-output-processing/SKILL.md +0 -359
  359. package/.claude/skills/agent-selector/SKILL.md +0 -90
  360. package/.claude/skills/agent-selector/select-agents.sh +0 -96
  361. package/.claude/skills/agent-spawning/SKILL.md +0 -135
  362. package/.claude/skills/agent-spawning/agent-selection-guide.md +0 -814
  363. package/.claude/skills/agent-spawning/check-dependencies.sh +0 -30
  364. package/.claude/skills/agent-spawning/spawn-agent.sh +0 -263
  365. package/.claude/skills/agent-spawning/spawn-templates.sh +0 -613
  366. package/.claude/skills/agent-swap/SKILL.md +0 -36
  367. package/.claude/skills/agent-swap/recommend-swap.sh +0 -60
  368. package/.claude/skills/analytics/description-refinement-guide.md +0 -164
  369. package/.claude/skills/analytics/log-skill-invocation.js +0 -122
  370. package/.claude/skills/analytics/run-production-criteria-tests.sh +0 -126
  371. package/.claude/skills/analytics/skill-analytics-dashboard.js +0 -113
  372. package/.claude/skills/analytics/skill-invocation-hook.sh +0 -28
  373. package/.claude/skills/analytics/skill-invocations.sql +0 -58
  374. package/.claude/skills/analytics/test-corpus.json +0 -32
  375. package/.claude/skills/analytics/test-data-generator.js +0 -115
  376. package/.claude/skills/analytics/test-manual-override-rate.js +0 -285
  377. package/.claude/skills/analytics/validate-skill-selection.js +0 -188
  378. package/.claude/skills/api-validation/test-endpoints.sh +0 -54
  379. package/.claude/skills/automatic-memory-persistence/SKILL.md +0 -73
  380. package/.claude/skills/automatic-memory-persistence/persist-agent-output.sh +0 -49
  381. package/.claude/skills/automatic-memory-persistence/query-agent-history.sh +0 -35
  382. package/.claude/skills/automatic-memory-persistence/test-memory-persistence.sh +0 -235
  383. package/.claude/skills/cfn-loop-orchestration/SKILL.md +0 -299
  384. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +0 -228
  385. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +0 -84
  386. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +0 -71
  387. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +0 -90
  388. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +0 -87
  389. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +0 -51
  390. package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +0 -41
  391. package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +0 -156
  392. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +0 -840
  393. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +0 -99
  394. package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +0 -281
  395. package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +0 -188
  396. package/.claude/skills/cfn-loop-validation/SKILL.md +0 -353
  397. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +0 -31
  398. package/.claude/skills/cfn-loop-validation/config.json +0 -161
  399. package/.claude/skills/cfn-loop-validation/consensus-calculator.js +0 -477
  400. package/.claude/skills/cfn-loop-validation/evidence-chain.sql +0 -163
  401. package/.claude/skills/cfn-loop-validation/examples/README.md +0 -453
  402. package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +0 -234
  403. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +0 -132
  404. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +0 -115
  405. package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +0 -186
  406. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +0 -252
  407. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +0 -134
  408. package/.claude/skills/cfn-loop-validation.sh +0 -70
  409. package/.claude/skills/complexity-estimator/SKILL.md +0 -96
  410. package/.claude/skills/complexity-estimator/estimate-complexity.sh +0 -144
  411. package/.claude/skills/config-management/SKILL.md +0 -34
  412. package/.claude/skills/config-management/check-dependencies.sh +0 -56
  413. package/.claude/skills/config-management/config.json +0 -32
  414. package/.claude/skills/config-management/manage-config.sh +0 -113
  415. package/.claude/skills/consensus-calculator.js +0 -45
  416. package/.claude/skills/context-pruner/SKILL.md +0 -75
  417. package/.claude/skills/context-pruner/prune-context.sh +0 -73
  418. package/.claude/skills/defense-in-depth/SKILL.md +0 -133
  419. package/.claude/skills/dependency-extractor/SKILL.md +0 -35
  420. package/.claude/skills/dependency-extractor/extract-dependencies.sh +0 -66
  421. package/.claude/skills/epic-decomposer/SKILL.md +0 -44
  422. package/.claude/skills/epic-decomposer/decompose-epic.sh +0 -104
  423. package/.claude/skills/event-bus/SKILL.md +0 -412
  424. package/.claude/skills/event-bus/config.json +0 -111
  425. package/.claude/skills/event-bus/eventbus-wrapper.cjs +0 -69
  426. package/.claude/skills/event-bus/invoke-event-publish.sh +0 -147
  427. package/.claude/skills/event-bus/invoke-event-subscribe.sh +0 -171
  428. package/.claude/skills/event-bus/invoke-lifecycle-track.sh +0 -201
  429. package/.claude/skills/event-bus/test-event-bus.sh +0 -280
  430. package/.claude/skills/evidence-chain.sql +0 -66
  431. package/.claude/skills/fleet-manager/SKILL.md +0 -412
  432. package/.claude/skills/fleet-manager/config.json +0 -60
  433. package/.claude/skills/fleet-manager/invoke-fleet-allocate.sh +0 -182
  434. package/.claude/skills/fleet-manager/invoke-fleet-balance.sh +0 -239
  435. package/.claude/skills/fleet-manager/invoke-fleet-metrics.sh +0 -193
  436. package/.claude/skills/fleet-manager/invoke-fleet-register.sh +0 -124
  437. package/.claude/skills/fleet-manager/test-fleet-manager.sh +0 -345
  438. package/.claude/skills/hook-pipeline/SKILL.md +0 -148
  439. package/.claude/skills/hook-pipeline/auto-resolve.sh +0 -66
  440. package/.claude/skills/hook-pipeline/check-dependencies.sh +0 -40
  441. package/.claude/skills/hook-pipeline/feedback-resolver.sh +0 -452
  442. package/.claude/skills/hook-pipeline/post-edit-handler.sh +0 -154
  443. package/.claude/skills/hook-pipeline/security-scan.json +0 -60
  444. package/.claude/skills/hook-pipeline/security-scanner.sh +0 -121
  445. package/.claude/skills/hook-pipeline/test-root-warning-resolution.sh +0 -148
  446. package/.claude/skills/hybrid-routing/SKILL.md +0 -46
  447. package/.claude/skills/hybrid-routing/check-dependencies.sh +0 -52
  448. package/.claude/skills/hybrid-routing/config.json +0 -26
  449. package/.claude/skills/hybrid-routing/spawn-worker.sh +0 -44
  450. package/.claude/skills/improvement-recommender/SKILL.md +0 -33
  451. package/.claude/skills/improvement-recommender/recommend-improvements.sh +0 -92
  452. package/.claude/skills/intervention-detector/SKILL.md +0 -39
  453. package/.claude/skills/intervention-detector/detect-intervention.sh +0 -111
  454. package/.claude/skills/intervention-orchestrator/SKILL.md +0 -43
  455. package/.claude/skills/intervention-orchestrator/execute-intervention.sh +0 -59
  456. package/.claude/skills/loop2-output-processing/SKILL.md +0 -163
  457. package/.claude/skills/loop2-output-processing/execute-and-extract.sh +0 -77
  458. package/.claude/skills/loop2-output-processing/execute-and-extract.sh.backup +0 -36
  459. package/.claude/skills/loop2-output-processing/parse-feedback.sh +0 -147
  460. package/.claude/skills/loop2-output-processing/process-validator-output.sh +0 -275
  461. package/.claude/skills/loop2-output-processing/test-bug27-fix.sh +0 -200
  462. package/.claude/skills/loop2-output-processing/test-loop2-processing.sh +0 -113
  463. package/.claude/skills/loop3-output-processing/AGENT_COMPLETION_PROTOCOL.md +0 -206
  464. package/.claude/skills/loop3-output-processing/SKILL.md +0 -421
  465. package/.claude/skills/loop3-output-processing/calculate-confidence.sh +0 -28
  466. package/.claude/skills/loop3-output-processing/execute-and-extract.sh +0 -85
  467. package/.claude/skills/loop3-output-processing/parse-confidence.sh +0 -31
  468. package/.claude/skills/loop3-output-processing/test-agent-timeout.sh +0 -327
  469. package/.claude/skills/loop3-output-processing/test-loop3-processing.sh +0 -155
  470. package/.claude/skills/loop3-output-processing/verify-deliverables.sh +0 -42
  471. package/.claude/skills/pattern-extraction/SKILL.md +0 -30
  472. package/.claude/skills/pattern-extraction/extract-patterns.sh +0 -80
  473. package/.claude/skills/playbook/SKILL.md +0 -113
  474. package/.claude/skills/playbook/init-playbook.sh +0 -54
  475. package/.claude/skills/playbook/playbook.db +0 -0
  476. package/.claude/skills/playbook/query-playbook.sh +0 -79
  477. package/.claude/skills/playbook/update-playbook.sh +0 -69
  478. package/.claude/skills/playbook-auto-update/SKILL.md +0 -29
  479. package/.claude/skills/playbook-auto-update/auto-update-playbook.sh +0 -86
  480. package/.claude/skills/process-lifecycle/SKILL.md +0 -39
  481. package/.claude/skills/process-lifecycle/check-dependencies.sh +0 -58
  482. package/.claude/skills/process-lifecycle/config.json +0 -39
  483. package/.claude/skills/process-lifecycle/process-manager.sh +0 -144
  484. package/.claude/skills/product-owner-decision/SKILL.md +0 -332
  485. package/.claude/skills/product-owner-decision/execute-decision.sh +0 -176
  486. package/.claude/skills/product-owner-decision/parse-decision.sh +0 -66
  487. package/.claude/skills/product-owner-decision/validate-deliverables.sh +0 -82
  488. package/.claude/skills/redis-coordination/AGENT_LOGGING.md +0 -280
  489. package/.claude/skills/redis-coordination/BZPOPMIN_FIX_SUMMARY.md +0 -209
  490. package/.claude/skills/redis-coordination/HEARTBEAT.md +0 -57
  491. package/.claude/skills/redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  492. package/.claude/skills/redis-coordination/LOGGING.md +0 -260
  493. package/.claude/skills/redis-coordination/SECURITY_REVIEW.md +0 -25
  494. package/.claude/skills/redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  495. package/.claude/skills/redis-coordination/SKILL.md +0 -720
  496. package/.claude/skills/redis-coordination/agent-log.sh +0 -124
  497. package/.claude/skills/redis-coordination/agent-recovery.sh +0 -75
  498. package/.claude/skills/redis-coordination/analyze-task-complexity.sh +0 -277
  499. package/.claude/skills/redis-coordination/cancel-swarm.sh +0 -221
  500. package/.claude/skills/redis-coordination/cfn-loop-exec.sh +0 -468
  501. package/.claude/skills/redis-coordination/cfn-loop-relaunch.sh +0 -29
  502. package/.claude/skills/redis-coordination/check-dependencies.sh +0 -32
  503. package/.claude/skills/redis-coordination/collect-confidence-scores.sh +0 -179
  504. package/.claude/skills/redis-coordination/collect-results.sh +0 -75
  505. package/.claude/skills/redis-coordination/complete-swarm.sh +0 -75
  506. package/.claude/skills/redis-coordination/config.json +0 -61
  507. package/.claude/skills/redis-coordination/data/cfn-loop.db +0 -0
  508. package/.claude/skills/redis-coordination/demos/phase4-wake-queue-test-report.md +0 -82
  509. package/.claude/skills/redis-coordination/demos/test-bzpopmin-fix.sh +0 -274
  510. package/.claude/skills/redis-coordination/demos/test-cancel-swarm.sh +0 -276
  511. package/.claude/skills/redis-coordination/demos/test-dlq.sh +0 -129
  512. package/.claude/skills/redis-coordination/demos/test-iteration-feedback.sh +0 -320
  513. package/.claude/skills/redis-coordination/demos/test-orchestrator.sh +0 -249
  514. package/.claude/skills/redis-coordination/demos/test-priority-wake-phase4-unix.sh +0 -148
  515. package/.claude/skills/redis-coordination/demos/test-priority-wake-phase4.sh +0 -163
  516. package/.claude/skills/redis-coordination/demos/test-priority-wake.sh +0 -138
  517. package/.claude/skills/redis-coordination/demos/test-quick-fix.sh +0 -81
  518. package/.claude/skills/redis-coordination/demos/test-quorum-absolute.sh +0 -45
  519. package/.claude/skills/redis-coordination/demos/test-quorum-fallback.sh +0 -68
  520. package/.claude/skills/redis-coordination/demos/test-quorum-percentage.sh +0 -56
  521. package/.claude/skills/redis-coordination/demos/test-quorum-with-retry.sh +0 -81
  522. package/.claude/skills/redis-coordination/demos/test-quorum.sh +0 -57
  523. package/.claude/skills/redis-coordination/demos/test-shutdown-handling.sh +0 -187
  524. package/.claude/skills/redis-coordination/demos/test-shutdown.sh +0 -160
  525. package/.claude/skills/redis-coordination/demos/test-utils-unix.sh +0 -97
  526. package/.claude/skills/redis-coordination/demos/test-utils.sh +0 -97
  527. package/.claude/skills/redis-coordination/demos/test-waiting-mode.sh +0 -59
  528. package/.claude/skills/redis-coordination/examples/README.md +0 -73
  529. package/.claude/skills/redis-coordination/examples/grafana-dashboard.json +0 -352
  530. package/.claude/skills/redis-coordination/examples/hierarchical-pattern.sh +0 -127
  531. package/.claude/skills/redis-coordination/examples/mesh-pattern.sh +0 -171
  532. package/.claude/skills/redis-coordination/examples/timeout-handling.sh +0 -227
  533. package/.claude/skills/redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  534. package/.claude/skills/redis-coordination/execute-product-owner-decision.sh +0 -258
  535. package/.claude/skills/redis-coordination/get-agent-timeout.sh +0 -177
  536. package/.claude/skills/redis-coordination/heartbeat-functions.sh +0 -137
  537. package/.claude/skills/redis-coordination/heartbeat-protocol.md +0 -106
  538. package/.claude/skills/redis-coordination/heartbeat.sh +0 -126
  539. package/.claude/skills/redis-coordination/init-swarm.sh +0 -148
  540. package/.claude/skills/redis-coordination/invoke-redis-pattern.sh +0 -220
  541. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +0 -283
  542. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh.backup-p7 +0 -423
  543. package/.claude/skills/redis-coordination/list-active-swarms.sh +0 -147
  544. package/.claude/skills/redis-coordination/log-event.sh +0 -109
  545. package/.claude/skills/redis-coordination/metrics-export.sh +0 -674
  546. package/.claude/skills/redis-coordination/metrics-schema.json +0 -66
  547. package/.claude/skills/redis-coordination/metrics-storage.md +0 -31
  548. package/.claude/skills/redis-coordination/monitor-cfn-violations.sh +0 -391
  549. package/.claude/skills/redis-coordination/monitor-heartbeats.sh +0 -101
  550. package/.claude/skills/redis-coordination/orchestrate-cfn-loop-v3.sh +0 -141
  551. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +0 -31
  552. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup +0 -38
  553. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +0 -1672
  554. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +0 -1604
  555. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +0 -1550
  556. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +0 -1621
  557. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +0 -1621
  558. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  559. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.broken +0 -1627
  560. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.corrupted +0 -80
  561. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.deprecated +0 -1864
  562. package/.claude/skills/redis-coordination/priority-wake-mechanism.md +0 -75
  563. package/.claude/skills/redis-coordination/priority_wake.py +0 -134
  564. package/.claude/skills/redis-coordination/query-dlq.sh +0 -162
  565. package/.claude/skills/redis-coordination/query-logs.sh +0 -103
  566. package/.claude/skills/redis-coordination/redis-pattern.sh +0 -619
  567. package/.claude/skills/redis-coordination/retrieve-context.sh +0 -58
  568. package/.claude/skills/redis-coordination/select-specialist-agent.sh +0 -371
  569. package/.claude/skills/redis-coordination/semantic-match-tfidf.py +0 -252
  570. package/.claude/skills/redis-coordination/send-heartbeat.sh +0 -165
  571. package/.claude/skills/redis-coordination/signal.sh +0 -38
  572. package/.claude/skills/redis-coordination/store-context.sh +0 -86
  573. package/.claude/skills/redis-coordination/store-epic-context.sh +0 -123
  574. package/.claude/skills/redis-coordination/test-context-injection.sh +0 -354
  575. package/.claude/skills/redis-coordination/test-timeout-enforcement.sh +0 -513
  576. package/.claude/skills/redis-coordination/tests/convert-line-endings.sh +0 -15
  577. package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +0 -102
  578. package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +0 -99
  579. package/.claude/skills/redis-coordination/tests/integration-test.sh +0 -170
  580. package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +0 -82
  581. package/.claude/skills/redis-coordination/tests/run-test-suite.sh +0 -92
  582. package/.claude/skills/redis-coordination/tests/run-tests.sh +0 -4
  583. package/.claude/skills/redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  584. package/.claude/skills/redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  585. package/.claude/skills/redis-coordination/tests/test-primitives.sh +0 -166
  586. package/.claude/skills/redis-coordination/tests/test-utils.sh +0 -54
  587. package/.claude/skills/redis-coordination/tests/test_coordination_primitives.sh.deprecated +0 -20
  588. package/.claude/skills/redis-coordination/tests/test_utils.sh +0 -49
  589. package/.claude/skills/redis-coordination/v2_modularization/core_orchestration.sh +0 -76
  590. package/.claude/skills/redis-coordination/validate-parameters.sh +0 -492
  591. package/.claude/skills/retrospective-report/SKILL.md +0 -31
  592. package/.claude/skills/retrospective-report/generate-report.sh +0 -101
  593. package/.claude/skills/run-all-skill-tests.sh +0 -124
  594. package/.claude/skills/scope-simplifier/SKILL.md +0 -37
  595. package/.claude/skills/scope-simplifier/simplify-scope.sh +0 -68
  596. package/.claude/skills/simplified-agent-lifecycle/COST_ANALYSIS.md +0 -49
  597. package/.claude/skills/simplified-agent-lifecycle/DESIGN.md +0 -98
  598. package/.claude/skills/simplified-agent-lifecycle/MIGRATION_PLAN.md +0 -74
  599. package/.claude/skills/skill-builder/SKILL.md +0 -910
  600. package/.claude/skills/specialist-injection/SKILL.md +0 -41
  601. package/.claude/skills/specialist-injection/recommend-specialist.sh +0 -57
  602. package/.claude/skills/sprint-execution/SKILL.md +0 -27
  603. package/.claude/skills/sprint-execution/execute-sprint-task.sh +0 -59
  604. package/.claude/skills/sprint-execution/execute-sprint.sh +0 -65
  605. package/.claude/skills/sprint-planner/SKILL.md +0 -37
  606. package/.claude/skills/sprint-planner/plan-sprint.sh +0 -85
  607. package/.claude/skills/sqlite-memory/IMPLEMENTATION_REPORT.md +0 -393
  608. package/.claude/skills/sqlite-memory/QUICK_REFERENCE.md +0 -204
  609. package/.claude/skills/sqlite-memory/SKILL.md +0 -415
  610. package/.claude/skills/sqlite-memory/acl-queries.sql +0 -452
  611. package/.claude/skills/sqlite-memory/check-dependencies.sh +0 -36
  612. package/.claude/skills/sqlite-memory/config.json +0 -45
  613. package/.claude/skills/sqlite-memory/memory-cli.sh +0 -88
  614. package/.claude/skills/sqlite-memory/test-state-persistence.js +0 -187
  615. package/.claude/skills/sqlite-memory/ttl-cleanup.sh +0 -274
  616. package/.claude/skills/standardized-error-handling/SKILL.md +0 -56
  617. package/.claude/skills/standardized-error-handling/capture-agent-error.sh +0 -87
  618. package/.claude/skills/standardized-error-handling/test-error-handling.sh +0 -166
  619. package/.claude/skills/task-classifier/SKILL.md +0 -94
  620. package/.claude/skills/task-classifier/classify-task.sh +0 -115
  621. package/.claude/skills/test-execution/SKILL.md +0 -128
  622. package/.claude/skills/test-execution/check-dependencies.sh +0 -36
  623. package/.claude/skills/test-execution/test-cache-reader.sh +0 -134
  624. package/.claude/skills/test-execution/test-concurrent-conflicts.sh +0 -115
  625. package/.claude/skills/test-execution/test-coordinator-pattern.sh +0 -109
  626. package/.claude/skills/test-execution-coordinator-pattern.md +0 -228
  627. package/.claude/skills/transparency-middleware/Cargo.toml +0 -18
  628. package/.claude/skills/transparency-middleware/SECURITY.md +0 -41
  629. package/.claude/skills/transparency-middleware/SKILL.md +0 -91
  630. package/.claude/skills/transparency-middleware/TEST_RESULTS.md +0 -174
  631. package/.claude/skills/transparency-middleware/config.json +0 -31
  632. package/.claude/skills/transparency-middleware/examples/basic-usage.ts +0 -39
  633. package/.claude/skills/transparency-middleware/examples/batch-processing.ts +0 -52
  634. package/.claude/skills/transparency-middleware/examples/custom-filtering.ts +0 -61
  635. package/.claude/skills/transparency-middleware/invoke-transparency-filter.sh +0 -98
  636. package/.claude/skills/transparency-middleware/invoke-transparency-init.sh +0 -224
  637. package/.claude/skills/transparency-middleware/invoke-transparency-level.sh +0 -333
  638. package/.claude/skills/transparency-middleware/invoke-transparency-metrics.sh +0 -345
  639. package/.claude/skills/transparency-middleware/invoke-transparency-observe.sh +0 -140
  640. package/.claude/skills/transparency-middleware/invoke-transparency-stop.sh +0 -235
  641. package/.claude/skills/transparency-middleware/memory_query.rs +0 -85
  642. package/.claude/skills/transparency-middleware/memory_repository.rs +0 -140
  643. package/.claude/skills/transparency-middleware/memory_schema.rs +0 -64
  644. package/.claude/skills/transparency-middleware/middleware-config.sh +0 -29
  645. package/.claude/skills/transparency-middleware/performance-benchmark.sh +0 -79
  646. package/.claude/skills/transparency-middleware/test-e2e.sh +0 -406
  647. package/.claude/skills/transparency-middleware/test-integration.sh +0 -162
  648. package/.claude/skills/transparency-middleware/test-transparency-skill.sh +0 -368
  649. package/.claude/skills/transparency-middleware/test-transparency-skill.sh.unix +0 -126
  650. package/.claude/skills/transparency-middleware/tests/input-validation.sh +0 -93
  651. package/.claude/skills/transparency-middleware/wrap-agent.sh +0 -132
  652. package/.claude/skills/validation-templates/SKILL.md +0 -47
  653. package/.claude/skills/validation-templates/content.json +0 -38
  654. package/.claude/skills/validation-templates/data.json +0 -38
  655. package/.claude/skills/validation-templates/design.json +0 -38
  656. package/.claude/skills/validation-templates/infrastructure.json +0 -38
  657. package/.claude/skills/validation-templates/research.json +0 -38
  658. package/.claude/skills/validation-templates/software.json +0 -38
  659. package/.claude/skills/web-portal/DESIGN.md +0 -117
  660. package/.claude/skills/web-portal/SKILL.md +0 -679
  661. package/.claude/skills/web-portal/invoke-portal-agents.sh +0 -129
  662. package/.claude/skills/web-portal/invoke-portal-dashboard.sh +0 -85
  663. package/.claude/skills/web-portal/invoke-portal-events.sh +0 -125
  664. package/.claude/skills/web-portal/invoke-portal-metrics.sh +0 -112
  665. package/.claude/skills/web-portal/invoke-portal-start.sh +0 -135
  666. package/.claude/skills/web-portal/invoke-portal-stop.sh +0 -121
  667. package/.claude/skills/web-portal/test-web-portal-skill.sh +0 -51
  668. package/.claude/skills/web-portal/validate-deployment.sh +0 -85
  669. package/.claude/skills/webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +0 -547
  670. package/.claude/skills/webapp-testing/SKILL.md +0 -877
  671. package/.claude/skills/webapp-testing/capture-screenshot.sh +0 -238
  672. package/.claude/skills/webapp-testing/cfn-loop-integration.sh +0 -265
  673. package/.claude/skills/webapp-testing/compare-screenshots.sh +0 -199
  674. package/.claude/skills/webapp-testing/init-storage.sh +0 -150
  675. package/.claude/skills/webapp-testing/set-baseline.sh +0 -196
  676. package/.claude/skills/webapp-testing/test-webapp-testing.sh +0 -233
  677. package/.claude/slash-commands.json +0 -92
  678. package/.claude/spawn-pattern-examples.md +0 -500
  679. package/.claude/sprint-configs/cfn-naming-standardization.json +0 -729
  680. package/.claude/sprint-reports/sprint-1.4-self-correction-monitoring.json +0 -64
  681. package/.claude/swarm-memory.db +0 -0
  682. package/.claude/templates/agent-optimization-plan.md +0 -439
  683. package/.claude/templates/bulk-optimization-strategy.md +0 -367
  684. package/.claude/templates/cfn-loop-mechanics.md +0 -80
  685. package/.claude/templates/coordinator-patterns.md +0 -75
  686. package/.claude/templates/memory-operations.md +0 -200
  687. package/.claude/templates/post-edit-validation.md +0 -109
  688. package/.claude/templates/redis-coordination.md +0 -140
  689. package/.claude/templates/remaining-agent-analysis.md +0 -121
  690. package/.claude/templates/swarm-coordination.md +0 -103
  691. package/.claude/templates/team-dynamics.md +0 -82
  692. package/readme/CLAUDE.md +0 -429
  693. /package/.claude/agents/{coordinators → cfn-dev-team/coordinators}/multi-sprint-coordinator.md +0 -0
  694. /package/.claude/agents/{developers → cfn-dev-team/developers}/backend-dev.md +0 -0
  695. /package/.claude/agents/{developers → cfn-dev-team/developers}/react-frontend-engineer.md +0 -0
  696. /package/.claude/agents/{developers → cfn-dev-team/developers}/researcher.md +0 -0
  697. /package/.claude/agents/{developers → cfn-dev-team/developers}/state-architect.md +0 -0
  698. /package/.claude/agents/{developers → cfn-dev-team/developers}/ui-designer.md +0 -0
  699. /package/.claude/agents/{reviewers → cfn-dev-team/reviewers}/README.md +0 -0
  700. /package/.claude/agents/{testers → cfn-dev-team/testers}/README.md +0 -0
  701. /package/.claude/agents/{testers → cfn-dev-team/testers}/playwright-tester.md +0 -0
  702. /package/.claude/agents/{testers → cfn-dev-team/testers}/tester.md +0 -0
  703. /package/.claude/{data → cfn-data}/cfn-loop.db +0 -0
  704. /package/.claude/{data → cfn-data}/cfn_loop_logs.db +0 -0
  705. /package/.claude/commands/{README.md → cfn/README.md} +0 -0
  706. /package/.claude/commands/{auto-compact.md → cfn/auto-compact.md} +0 -0
  707. /package/.claude/commands/{cfn-claude-sync.md → cfn/cfn-claude-sync.md} +0 -0
  708. /package/.claude/commands/{cfn-loop-document.md → cfn/cfn-loop-document.md} +0 -0
  709. /package/.claude/commands/{cfn-mode.md → cfn/cfn-mode.md} +0 -0
  710. /package/.claude/commands/{claude-md.md → cfn/claude-md.md} +0 -0
  711. /package/.claude/commands/{claude-soul.md → cfn/claude-soul.md} +0 -0
  712. /package/.claude/commands/{context-query.md → cfn/context-query.md} +0 -0
  713. /package/.claude/commands/{cost-savings-off.md → cfn/cost-savings-off.md} +0 -0
  714. /package/.claude/commands/{cost-savings-on.md → cfn/cost-savings-on.md} +0 -0
  715. /package/.claude/commands/{cost-savings-status.md → cfn/cost-savings-status.md} +0 -0
  716. /package/.claude/commands/{custom-routing-activate.md → cfn/custom-routing-activate.md} +0 -0
  717. /package/.claude/commands/{custom-routing-deactivate.md → cfn/custom-routing-deactivate.md} +0 -0
  718. /package/.claude/commands/{dependency-recommendations.md → cfn/dependency-recommendations.md} +0 -0
  719. /package/.claude/commands/{fullstack.md → cfn/fullstack.md} +0 -0
  720. /package/.claude/commands/{github-commit.md → cfn/github-commit.md} +0 -0
  721. /package/.claude/commands/{github.md → cfn/github.md} +0 -0
  722. /package/.claude/commands/{hello-world-tests.md → cfn/hello-world-tests.md} +0 -0
  723. /package/.claude/commands/{hooks.md → cfn/hooks.md} +0 -0
  724. /package/.claude/commands/{launch-web-dashboard.md → cfn/launch-web-dashboard.md} +0 -0
  725. /package/.claude/commands/{metrics-summary.md → cfn/metrics-summary.md} +0 -0
  726. /package/.claude/commands/{neural.md → cfn/neural.md} +0 -0
  727. /package/.claude/commands/{parse-epic.md → cfn/parse-epic.md} +0 -0
  728. /package/.claude/commands/{performance.md → cfn/performance.md} +0 -0
  729. /package/.claude/commands/{sparc.md → cfn/sparc.md} +0 -0
  730. /package/.claude/commands/{suggest-improvements.md → cfn/suggest-improvements.md} +0 -0
  731. /package/.claude/commands/{suggest-templates.md → cfn/suggest-templates.md} +0 -0
  732. /package/.claude/commands/{swarm.md → cfn/swarm.md} +0 -0
  733. /package/.claude/commands/{switch-api.md → cfn/switch-api.md} +0 -0
  734. /package/.claude/commands/{workflow.md → cfn/workflow.md} +0 -0
  735. /package/.claude/commands/{write-plan.md → cfn/write-plan.md} +0 -0
  736. /package/.claude/hooks/{BACKUP_USAGE.md → cfn-BACKUP_USAGE.md} +0 -0
  737. /package/.claude/hooks/{invoke-post-edit.sh → cfn-invoke-post-edit.sh} +0 -0
  738. /package/.claude/hooks/{post-edit-cfn-retrospective.sh → cfn-post-edit-cfn-retrospective.sh} +0 -0
  739. /package/.claude/hooks/{post-edit.config.json → cfn-post-edit.config.json} +0 -0
  740. /package/.claude/hooks/{post-edit.sh → cfn-post-edit.sh} +0 -0
  741. /package/.claude/hooks/{pre-edit-backup.sh → cfn-pre-edit-backup.sh} +0 -0
  742. /package/.claude/hooks/{restore-from-backup.sh → cfn-restore-from-backup.sh} +0 -0
  743. /package/.claude/skills/{agent-spawning → cfn-agent-spawning}/README.md +0 -0
  744. /package/.claude/skills/{analytics → cfn-analytics}/README.md +0 -0
  745. /package/.claude/skills/{config-management → cfn-config-management}/README.md +0 -0
  746. /package/.claude/skills/{event-bus → cfn-event-bus}/README.md +0 -0
  747. /package/.claude/skills/{fleet-manager → cfn-fleet-manager}/README.md +0 -0
  748. /package/.claude/skills/{hook-pipeline → cfn-hook-pipeline}/README.md +0 -0
  749. /package/.claude/skills/{hybrid-routing → cfn-hybrid-routing}/README.md +0 -0
  750. /package/.claude/skills/{process-lifecycle → cfn-process-lifecycle}/README.md +0 -0
  751. /package/.claude/skills/{redis-coordination → cfn-redis-coordination}/README.md +0 -0
  752. /package/.claude/skills/{sqlite-memory → cfn-sqlite-memory}/README.md +0 -0
  753. /package/.claude/skills/{test-execution → cfn-test-execution}/README.md +0 -0
  754. /package/.claude/skills/{transparency-middleware → cfn-transparency-middleware}/README.md +0 -0
  755. /package/.claude/skills/{webapp-testing → cfn-webapp-testing}/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