claude-flow-novice 2.15.4 → 2.15.6

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 (456) hide show
  1. package/.claude/cfn-extras/.gs-api-quota.json +16 -0
  2. package/.claude/cfn-extras/.gs-progress-state.json +22 -0
  3. package/.claude/cfn-extras/GOOGLE_SHEETS_IMPLEMENTATION_SUMMARY.md +414 -0
  4. package/.claude/cfn-extras/agents/google-sheets/README.md +114 -0
  5. package/.claude/cfn-extras/agents/google-sheets/google-sheets-advanced-analytics-specialist.md +288 -0
  6. package/.claude/cfn-extras/agents/google-sheets/google-sheets-api-integrator.md +127 -0
  7. package/.claude/cfn-extras/agents/google-sheets/google-sheets-automation-scripting-specialist.md +195 -0
  8. package/.claude/cfn-extras/agents/google-sheets/google-sheets-business-validator.md +179 -0
  9. package/.claude/cfn-extras/agents/google-sheets/google-sheets-collaboration-security-specialist.md +240 -0
  10. package/.claude/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +214 -0
  11. package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-transformer.md +127 -0
  12. package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-validation-quality-specialist.md +177 -0
  13. package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-validator.md +119 -0
  14. package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-visualization-specialist.md +135 -0
  15. package/.claude/cfn-extras/agents/google-sheets/google-sheets-design-layout-specialist.md +109 -0
  16. package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-engineer.md +127 -0
  17. package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-engineering-specialist.md +138 -0
  18. package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-validator.md +128 -0
  19. package/.claude/cfn-extras/agents/google-sheets/google-sheets-generalist.md +645 -0
  20. package/.claude/cfn-extras/agents/google-sheets/google-sheets-integration-api-specialist.md +258 -0
  21. package/.claude/cfn-extras/agents/google-sheets/google-sheets-performance-analyst.md +125 -0
  22. package/.claude/cfn-extras/agents/google-sheets/google-sheets-performance-optimization-specialist.md +211 -0
  23. package/.claude/cfn-extras/agents/google-sheets/google-sheets-schema-designer.md +130 -0
  24. package/.claude/cfn-extras/agents/google-sheets/google-sheets-template-architecture-specialist.md +259 -0
  25. package/.claude/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +617 -0
  26. package/.claude/cfn-extras/skills/GOOGLE_SHEETS_SKILLS_README.md +453 -0
  27. package/.claude/cfn-extras/skills/google-sheets-api-coordinator/SKILL.md +272 -0
  28. package/.claude/cfn-extras/skills/google-sheets-api-coordinator/api-call.sh +254 -0
  29. package/.claude/cfn-extras/skills/google-sheets-api-coordinator/test.sh +174 -0
  30. package/.claude/cfn-extras/skills/google-sheets-api-coordinator/validate.sh +98 -0
  31. package/.claude/cfn-extras/skills/google-sheets-decomposition/SKILL.md +269 -0
  32. package/.claude/cfn-extras/skills/google-sheets-decomposition/decompose.sh +313 -0
  33. package/.claude/cfn-extras/skills/google-sheets-formula-builder/SKILL.md +237 -0
  34. package/.claude/cfn-extras/skills/google-sheets-formula-builder/build-formula.sh +220 -0
  35. package/.claude/cfn-extras/skills/google-sheets-formula-builder/test.sh +172 -0
  36. package/.claude/cfn-extras/skills/google-sheets-formula-builder/validate.sh +98 -0
  37. package/.claude/cfn-extras/skills/google-sheets-progress/SKILL.md +287 -0
  38. package/.claude/cfn-extras/skills/google-sheets-progress/test.sh +385 -0
  39. package/.claude/cfn-extras/skills/google-sheets-progress/track-progress.sh +516 -0
  40. package/.claude/cfn-extras/skills/google-sheets-progress/validate.sh +119 -0
  41. package/.claude/cfn-extras/skills/google-sheets-sprint-order/SKILL.md +277 -0
  42. package/.claude/cfn-extras/skills/google-sheets-sprint-order/order-sprints.sh +233 -0
  43. package/.claude/cfn-extras/skills/google-sheets-validation/SKILL.md +352 -0
  44. package/.claude/cfn-extras/skills/google-sheets-validation/test.sh +355 -0
  45. package/.claude/cfn-extras/skills/google-sheets-validation/validate-state.sh +374 -0
  46. package/.claude/cfn-extras/skills/google-sheets-validation/validate.sh +128 -0
  47. package/.claude/commands/cfn-context.md +10 -0
  48. package/.claude/commands/cfn-loop-cli.md +44 -14
  49. package/.claude/commands/google-sheets/google-sheets-loop.md +289 -0
  50. package/.claude/skills/cfn-agent-selector/SKILL.md +143 -0
  51. package/.claude/skills/cfn-agent-selector/select-agents.sh +94 -0
  52. package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -2
  53. package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +21 -2
  54. package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +11 -5
  55. package/.claude/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +348 -0
  56. package/.claude/skills/cfn-docker-redis-coordination/README.md +294 -0
  57. package/.claude/skills/cfn-docker-redis-coordination/jest.config.js +37 -0
  58. package/.claude/skills/cfn-docker-redis-coordination/package-lock.json +5259 -0
  59. package/.claude/skills/cfn-docker-redis-coordination/package.json +40 -0
  60. package/.claude/skills/cfn-docker-redis-coordination/src/coordinator.ts +801 -0
  61. package/.claude/skills/cfn-docker-redis-coordination/src/index.ts +42 -0
  62. package/.claude/skills/cfn-docker-redis-coordination/src/types.ts +351 -0
  63. package/.claude/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +1464 -0
  64. package/.claude/skills/cfn-docker-redis-coordination/tsconfig.json +30 -0
  65. package/.claude/skills/cfn-loop-orchestration/.eslintrc.js +56 -0
  66. package/.claude/skills/cfn-loop-orchestration/.prettierrc.json +18 -0
  67. package/.claude/skills/cfn-loop-orchestration/README.md +149 -41
  68. package/.claude/skills/cfn-loop-orchestration/jest.config.js +67 -0
  69. package/.claude/skills/cfn-loop-orchestration/orchestrate-wrapper.sh +268 -0
  70. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +147 -16
  71. package/.claude/skills/cfn-loop-orchestration/package-lock.json +5470 -0
  72. package/.claude/skills/cfn-loop-orchestration/package.json +49 -0
  73. package/.claude/skills/cfn-loop-orchestration/src/agent-spawner/agent-spawner.ts +34 -0
  74. package/.claude/skills/cfn-loop-orchestration/src/gate-checker/gate-checker.ts +36 -0
  75. package/.claude/skills/cfn-loop-orchestration/src/index.ts +14 -0
  76. package/.claude/skills/cfn-loop-orchestration/src/orchestrator/orchestrator.ts +31 -0
  77. package/.claude/skills/cfn-loop-orchestration/src/redis/redis-coordinator.ts +72 -0
  78. package/.claude/skills/cfn-loop-orchestration/src/types.ts +188 -0
  79. package/.claude/skills/cfn-loop-orchestration/src/utils/logger.ts +32 -0
  80. package/.claude/skills/cfn-loop-orchestration/tests/setup.ts +22 -0
  81. package/.claude/skills/cfn-loop-orchestration/tests/types.test.ts +132 -0
  82. package/.claude/skills/cfn-loop-orchestration/tsconfig.json +54 -0
  83. package/.claude/skills/cfn-redis-coordination/bash-wrappers/store-context.sh +23 -0
  84. package/.claude/skills/cfn-redis-coordination/dist/agent-logger.d.ts +92 -0
  85. package/.claude/skills/cfn-redis-coordination/dist/agent-logger.d.ts.map +1 -0
  86. package/.claude/skills/cfn-redis-coordination/dist/agent-logger.js +329 -0
  87. package/.claude/skills/cfn-redis-coordination/dist/agent-logger.js.map +1 -0
  88. package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.d.ts +75 -0
  89. package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.d.ts.map +1 -0
  90. package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.js +302 -0
  91. package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.js.map +1 -0
  92. package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.d.ts +58 -0
  93. package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.d.ts.map +1 -0
  94. package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.js +237 -0
  95. package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.js.map +1 -0
  96. package/.claude/skills/cfn-redis-coordination/dist/context-manager.d.ts +63 -0
  97. package/.claude/skills/cfn-redis-coordination/dist/context-manager.d.ts.map +1 -0
  98. package/.claude/skills/cfn-redis-coordination/dist/context-manager.js +230 -0
  99. package/.claude/skills/cfn-redis-coordination/dist/context-manager.js.map +1 -0
  100. package/.claude/skills/cfn-redis-coordination/dist/index.d.ts +45 -0
  101. package/.claude/skills/cfn-redis-coordination/dist/index.d.ts.map +1 -0
  102. package/.claude/skills/cfn-redis-coordination/dist/index.js +114 -0
  103. package/.claude/skills/cfn-redis-coordination/dist/index.js.map +1 -0
  104. package/.claude/skills/cfn-redis-coordination/dist/mode-detector.d.ts +31 -0
  105. package/.claude/skills/cfn-redis-coordination/dist/mode-detector.d.ts.map +1 -0
  106. package/.claude/skills/cfn-redis-coordination/dist/mode-detector.js +185 -0
  107. package/.claude/skills/cfn-redis-coordination/dist/mode-detector.js.map +1 -0
  108. package/.claude/skills/cfn-redis-coordination/dist/redis-client.d.ts +191 -0
  109. package/.claude/skills/cfn-redis-coordination/dist/redis-client.d.ts.map +1 -0
  110. package/.claude/skills/cfn-redis-coordination/dist/redis-client.js +509 -0
  111. package/.claude/skills/cfn-redis-coordination/dist/redis-client.js.map +1 -0
  112. package/.claude/skills/cfn-redis-coordination/dist/result-collector.d.ts +75 -0
  113. package/.claude/skills/cfn-redis-coordination/dist/result-collector.d.ts.map +1 -0
  114. package/.claude/skills/cfn-redis-coordination/dist/result-collector.js +281 -0
  115. package/.claude/skills/cfn-redis-coordination/dist/result-collector.js.map +1 -0
  116. package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.d.ts +75 -0
  117. package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.d.ts.map +1 -0
  118. package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.js +354 -0
  119. package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.js.map +1 -0
  120. package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.d.ts +62 -0
  121. package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.d.ts.map +1 -0
  122. package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.js +305 -0
  123. package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.js.map +1 -0
  124. package/.claude/skills/cfn-redis-coordination/dist/task-executor.d.ts +97 -0
  125. package/.claude/skills/cfn-redis-coordination/dist/task-executor.d.ts.map +1 -0
  126. package/.claude/skills/cfn-redis-coordination/dist/task-executor.js +283 -0
  127. package/.claude/skills/cfn-redis-coordination/dist/task-executor.js.map +1 -0
  128. package/.claude/skills/cfn-redis-coordination/dist/types.d.ts +176 -0
  129. package/.claude/skills/cfn-redis-coordination/dist/types.d.ts.map +1 -0
  130. package/.claude/skills/cfn-redis-coordination/dist/types.js +81 -0
  131. package/.claude/skills/cfn-redis-coordination/dist/types.js.map +1 -0
  132. package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts +86 -0
  133. package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts.map +1 -0
  134. package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.js +419 -0
  135. package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.js.map +1 -0
  136. package/.claude/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +553 -0
  137. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -2
  138. package/.claude/skills/cfn-redis-coordination/jest.config.js +23 -0
  139. package/.claude/skills/cfn-redis-coordination/package-lock.json +5272 -0
  140. package/.claude/skills/cfn-redis-coordination/package.json +45 -0
  141. package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +21 -8
  142. package/.claude/skills/cfn-redis-coordination/redis-functions.sh +3 -2
  143. package/.claude/skills/cfn-redis-coordination/src/agent-logger.ts +446 -0
  144. package/.claude/skills/cfn-redis-coordination/src/agent-recovery.ts +454 -0
  145. package/.claude/skills/cfn-redis-coordination/src/completion-reporter.ts +396 -0
  146. package/.claude/skills/cfn-redis-coordination/src/context-manager.ts +327 -0
  147. package/.claude/skills/cfn-redis-coordination/src/index.ts +82 -0
  148. package/.claude/skills/cfn-redis-coordination/src/mode-detector.ts +155 -0
  149. package/.claude/skills/cfn-redis-coordination/src/redis/redis-client.ts +305 -0
  150. package/.claude/skills/cfn-redis-coordination/src/redis/redis-functions.ts +283 -0
  151. package/.claude/skills/cfn-redis-coordination/src/redis-client.ts +654 -0
  152. package/.claude/skills/cfn-redis-coordination/src/result-collector.ts +437 -0
  153. package/.claude/skills/cfn-redis-coordination/src/swarm-manager.ts +494 -0
  154. package/.claude/skills/cfn-redis-coordination/src/task-analyzer.ts +404 -0
  155. package/.claude/skills/cfn-redis-coordination/src/task-executor.ts +423 -0
  156. package/.claude/skills/cfn-redis-coordination/src/types.ts +235 -0
  157. package/.claude/skills/cfn-redis-coordination/src/waiting-coordinator.ts +587 -0
  158. package/.claude/skills/cfn-redis-coordination/test-connection-attempts.js +70 -0
  159. package/.claude/skills/cfn-redis-coordination/test-mode-simple.js +121 -0
  160. package/.claude/skills/cfn-redis-coordination/test-redis-check.js +84 -0
  161. package/.claude/skills/cfn-redis-coordination/test-task-mode-redis.cjs +391 -0
  162. package/.claude/skills/cfn-redis-coordination/tests/coordination.test.ts +779 -0
  163. package/.claude/skills/cfn-redis-coordination/tsconfig.json +31 -0
  164. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +172 -2
  165. package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +1 -1
  166. package/claude-assets/agents/custom/cfn-redis-operations.md +530 -0
  167. package/claude-assets/agents/custom/cfn-system-expert.md +77 -0
  168. package/claude-assets/cfn-extras/.gs-api-quota.json +16 -0
  169. package/claude-assets/cfn-extras/.gs-progress-state.json +22 -0
  170. package/claude-assets/cfn-extras/GOOGLE_SHEETS_IMPLEMENTATION_SUMMARY.md +414 -0
  171. package/claude-assets/cfn-extras/agents/google-sheets/README.md +114 -0
  172. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-advanced-analytics-specialist.md +288 -0
  173. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-api-integrator.md +127 -0
  174. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-automation-scripting-specialist.md +195 -0
  175. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-business-validator.md +179 -0
  176. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-collaboration-security-specialist.md +240 -0
  177. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +214 -0
  178. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-transformer.md +127 -0
  179. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-validation-quality-specialist.md +177 -0
  180. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-validator.md +119 -0
  181. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-visualization-specialist.md +135 -0
  182. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-design-layout-specialist.md +109 -0
  183. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-engineer.md +127 -0
  184. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-engineering-specialist.md +138 -0
  185. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-validator.md +128 -0
  186. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-generalist.md +645 -0
  187. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-integration-api-specialist.md +258 -0
  188. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-performance-analyst.md +125 -0
  189. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-performance-optimization-specialist.md +211 -0
  190. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-schema-designer.md +130 -0
  191. package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-template-architecture-specialist.md +259 -0
  192. package/claude-assets/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +617 -0
  193. package/claude-assets/cfn-extras/skills/GOOGLE_SHEETS_SKILLS_README.md +453 -0
  194. package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/SKILL.md +272 -0
  195. package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/api-call.sh +254 -0
  196. package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/test.sh +174 -0
  197. package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/validate.sh +98 -0
  198. package/claude-assets/cfn-extras/skills/google-sheets-decomposition/SKILL.md +269 -0
  199. package/claude-assets/cfn-extras/skills/google-sheets-decomposition/decompose.sh +313 -0
  200. package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/SKILL.md +237 -0
  201. package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/build-formula.sh +220 -0
  202. package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/test.sh +172 -0
  203. package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/validate.sh +98 -0
  204. package/claude-assets/cfn-extras/skills/google-sheets-progress/SKILL.md +287 -0
  205. package/claude-assets/cfn-extras/skills/google-sheets-progress/test.sh +385 -0
  206. package/claude-assets/cfn-extras/skills/google-sheets-progress/track-progress.sh +516 -0
  207. package/claude-assets/cfn-extras/skills/google-sheets-progress/validate.sh +119 -0
  208. package/claude-assets/cfn-extras/skills/google-sheets-sprint-order/SKILL.md +277 -0
  209. package/claude-assets/cfn-extras/skills/google-sheets-sprint-order/order-sprints.sh +233 -0
  210. package/claude-assets/cfn-extras/skills/google-sheets-validation/SKILL.md +352 -0
  211. package/claude-assets/cfn-extras/skills/google-sheets-validation/test.sh +355 -0
  212. package/claude-assets/cfn-extras/skills/google-sheets-validation/validate-state.sh +374 -0
  213. package/claude-assets/cfn-extras/skills/google-sheets-validation/validate.sh +128 -0
  214. package/claude-assets/commands/cfn-context.md +10 -0
  215. package/claude-assets/commands/cfn-loop-cli.md +44 -14
  216. package/claude-assets/commands/google-sheets/google-sheets-loop.md +289 -0
  217. package/claude-assets/hooks/cfn-pre-execution/SESSION_START_README.md +87 -0
  218. package/claude-assets/hooks/cfn-pre-execution/TEST_SESSION_START.md +128 -0
  219. package/claude-assets/hooks/cfn-pre-execution/session-start-context.sh +111 -0
  220. package/claude-assets/skills/cfn-agent-selection-with-fallback/INTEGRATION_EXAMPLE.md +209 -0
  221. package/claude-assets/skills/cfn-agent-selection-with-fallback/README.md +130 -0
  222. package/claude-assets/skills/cfn-agent-selection-with-fallback/SKILL.md +243 -0
  223. package/claude-assets/skills/cfn-agent-selection-with-fallback/agent-mappings.json +142 -0
  224. package/claude-assets/skills/cfn-agent-selection-with-fallback/select-agents.sh +173 -0
  225. package/claude-assets/skills/cfn-agent-selection-with-fallback/task-classifier.sh +71 -0
  226. package/claude-assets/skills/cfn-agent-selection-with-fallback/test-agent-selection.sh +282 -0
  227. package/claude-assets/skills/cfn-agent-selector/SKILL.md +143 -0
  228. package/claude-assets/skills/cfn-agent-selector/select-agents.sh +94 -0
  229. package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -2
  230. package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +21 -2
  231. package/claude-assets/skills/cfn-docker-coordination/.eslintrc.json +33 -0
  232. package/claude-assets/skills/cfn-docker-coordination/README.md +349 -0
  233. package/claude-assets/skills/cfn-docker-coordination/docker-helpers.sh +433 -0
  234. package/claude-assets/skills/cfn-docker-coordination/jest.config.js +25 -0
  235. package/claude-assets/skills/cfn-docker-coordination/package-lock.json +6827 -0
  236. package/claude-assets/skills/cfn-docker-coordination/package.json +38 -0
  237. package/claude-assets/skills/cfn-docker-coordination/src/agent-container.ts +471 -0
  238. package/claude-assets/skills/cfn-docker-coordination/src/docker-client.ts +483 -0
  239. package/claude-assets/skills/cfn-docker-coordination/src/health-checker.ts +418 -0
  240. package/claude-assets/skills/cfn-docker-coordination/src/index.ts +45 -0
  241. package/claude-assets/skills/cfn-docker-coordination/src/network-manager.ts +377 -0
  242. package/claude-assets/skills/cfn-docker-coordination/src/types.ts +412 -0
  243. package/claude-assets/skills/cfn-docker-coordination/src/volume-manager.ts +389 -0
  244. package/claude-assets/skills/cfn-docker-coordination/tests/agent-container.test.ts +379 -0
  245. package/claude-assets/skills/cfn-docker-coordination/tests/docker-client.test.ts +345 -0
  246. package/claude-assets/skills/cfn-docker-coordination/tests/health-checker.test.ts +535 -0
  247. package/claude-assets/skills/cfn-docker-coordination/tests/integration.test.ts +193 -0
  248. package/claude-assets/skills/cfn-docker-coordination/tests/network-manager.test.ts +352 -0
  249. package/claude-assets/skills/cfn-docker-coordination/tests/setup.ts +36 -0
  250. package/claude-assets/skills/cfn-docker-coordination/tsconfig.json +29 -0
  251. package/claude-assets/skills/cfn-docker-logging/INTEGRATION.md +268 -0
  252. package/claude-assets/skills/cfn-docker-logging/SAMPLE_OUTPUTS.md +237 -0
  253. package/claude-assets/skills/cfn-docker-logging/SKILL.md +442 -0
  254. package/claude-assets/skills/cfn-docker-logging/capture-container-logs.sh +120 -0
  255. package/claude-assets/skills/cfn-docker-logging/enable-logging.sh +430 -0
  256. package/claude-assets/skills/cfn-docker-logging/init-hybrid-logging.sh +210 -0
  257. package/claude-assets/skills/cfn-docker-logging/queries/analytics-summary.sh +87 -0
  258. package/claude-assets/skills/cfn-docker-logging/queries/query-agent-timeline.sh +51 -0
  259. package/claude-assets/skills/cfn-docker-logging/queries/query-consensus-history.sh +56 -0
  260. package/claude-assets/skills/cfn-docker-logging/queries/query-coordination-timeline.sh +39 -0
  261. package/claude-assets/skills/cfn-docker-logging/queries/query-failed-containers.sh +40 -0
  262. package/claude-assets/skills/cfn-docker-logging/queries/query-gate-checks.sh +39 -0
  263. package/claude-assets/skills/cfn-docker-logging/schema.sql +111 -0
  264. package/claude-assets/skills/cfn-docker-logging/sqlite-helpers.sh +240 -0
  265. package/claude-assets/skills/cfn-docker-logging/test-hybrid-logging.sh +331 -0
  266. package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +11 -5
  267. package/claude-assets/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +348 -0
  268. package/claude-assets/skills/cfn-docker-redis-coordination/README.md +294 -0
  269. package/claude-assets/skills/cfn-docker-redis-coordination/jest.config.js +37 -0
  270. package/claude-assets/skills/cfn-docker-redis-coordination/package-lock.json +5259 -0
  271. package/claude-assets/skills/cfn-docker-redis-coordination/package.json +40 -0
  272. package/claude-assets/skills/cfn-docker-redis-coordination/src/coordinator.ts +801 -0
  273. package/claude-assets/skills/cfn-docker-redis-coordination/src/index.ts +42 -0
  274. package/claude-assets/skills/cfn-docker-redis-coordination/src/types.ts +351 -0
  275. package/claude-assets/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +1464 -0
  276. package/claude-assets/skills/cfn-docker-redis-coordination/tsconfig.json +30 -0
  277. package/claude-assets/skills/cfn-error-logging/.eslintrc.json +57 -0
  278. package/claude-assets/skills/cfn-error-logging/.prettierrc.json +10 -0
  279. package/claude-assets/skills/cfn-error-logging/MIGRATION_SUMMARY.md +485 -0
  280. package/claude-assets/skills/cfn-error-logging/package.json +47 -0
  281. package/claude-assets/skills/cfn-error-logging/src/error-logger.ts +1042 -0
  282. package/claude-assets/skills/cfn-error-logging/src/index.ts +12 -0
  283. package/claude-assets/skills/cfn-error-logging/src/types.ts +456 -0
  284. package/claude-assets/skills/cfn-error-logging/tests/error-logger.test.ts +1302 -0
  285. package/claude-assets/skills/cfn-error-logging/tsconfig.json +38 -0
  286. package/claude-assets/skills/cfn-loop-orchestration/.eslintrc.js +56 -0
  287. package/claude-assets/skills/cfn-loop-orchestration/.prettierrc.json +18 -0
  288. package/claude-assets/skills/cfn-loop-orchestration/README.md +149 -41
  289. package/claude-assets/skills/cfn-loop-orchestration/jest.config.js +67 -0
  290. package/claude-assets/skills/cfn-loop-orchestration/orchestrate-wrapper.sh +268 -0
  291. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +147 -16
  292. package/claude-assets/skills/cfn-loop-orchestration/package-lock.json +5470 -0
  293. package/claude-assets/skills/cfn-loop-orchestration/package.json +49 -0
  294. package/claude-assets/skills/cfn-loop-orchestration/src/agent-spawner/agent-spawner.ts +34 -0
  295. package/claude-assets/skills/cfn-loop-orchestration/src/gate-checker/gate-checker.ts +36 -0
  296. package/claude-assets/skills/cfn-loop-orchestration/src/index.ts +14 -0
  297. package/claude-assets/skills/cfn-loop-orchestration/src/orchestrator/orchestrator.ts +31 -0
  298. package/claude-assets/skills/cfn-loop-orchestration/src/redis/redis-coordinator.ts +72 -0
  299. package/claude-assets/skills/cfn-loop-orchestration/src/types.ts +188 -0
  300. package/claude-assets/skills/cfn-loop-orchestration/src/utils/logger.ts +32 -0
  301. package/claude-assets/skills/cfn-loop-orchestration/tests/setup.ts +22 -0
  302. package/claude-assets/skills/cfn-loop-orchestration/tests/types.test.ts +132 -0
  303. package/claude-assets/skills/cfn-loop-orchestration/tsconfig.json +54 -0
  304. package/claude-assets/skills/cfn-redis-coordination/bash-wrappers/store-context.sh +23 -0
  305. package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.d.ts +92 -0
  306. package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.d.ts.map +1 -0
  307. package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.js +329 -0
  308. package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.js.map +1 -0
  309. package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.d.ts +75 -0
  310. package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.d.ts.map +1 -0
  311. package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.js +302 -0
  312. package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.js.map +1 -0
  313. package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.d.ts +58 -0
  314. package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.d.ts.map +1 -0
  315. package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.js +237 -0
  316. package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.js.map +1 -0
  317. package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.d.ts +63 -0
  318. package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.d.ts.map +1 -0
  319. package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.js +230 -0
  320. package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.js.map +1 -0
  321. package/claude-assets/skills/cfn-redis-coordination/dist/index.d.ts +45 -0
  322. package/claude-assets/skills/cfn-redis-coordination/dist/index.d.ts.map +1 -0
  323. package/claude-assets/skills/cfn-redis-coordination/dist/index.js +114 -0
  324. package/claude-assets/skills/cfn-redis-coordination/dist/index.js.map +1 -0
  325. package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.d.ts +31 -0
  326. package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.d.ts.map +1 -0
  327. package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.js +185 -0
  328. package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.js.map +1 -0
  329. package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.d.ts +191 -0
  330. package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.d.ts.map +1 -0
  331. package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.js +509 -0
  332. package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.js.map +1 -0
  333. package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.d.ts +75 -0
  334. package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.d.ts.map +1 -0
  335. package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.js +281 -0
  336. package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.js.map +1 -0
  337. package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.d.ts +75 -0
  338. package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.d.ts.map +1 -0
  339. package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.js +354 -0
  340. package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.js.map +1 -0
  341. package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.d.ts +62 -0
  342. package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.d.ts.map +1 -0
  343. package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.js +305 -0
  344. package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.js.map +1 -0
  345. package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.d.ts +97 -0
  346. package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.d.ts.map +1 -0
  347. package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.js +283 -0
  348. package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.js.map +1 -0
  349. package/claude-assets/skills/cfn-redis-coordination/dist/types.d.ts +176 -0
  350. package/claude-assets/skills/cfn-redis-coordination/dist/types.d.ts.map +1 -0
  351. package/claude-assets/skills/cfn-redis-coordination/dist/types.js +81 -0
  352. package/claude-assets/skills/cfn-redis-coordination/dist/types.js.map +1 -0
  353. package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts +86 -0
  354. package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts.map +1 -0
  355. package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.js +419 -0
  356. package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.js.map +1 -0
  357. package/claude-assets/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +553 -0
  358. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -2
  359. package/claude-assets/skills/cfn-redis-coordination/jest.config.js +23 -0
  360. package/claude-assets/skills/cfn-redis-coordination/package-lock.json +5272 -0
  361. package/claude-assets/skills/cfn-redis-coordination/package.json +45 -0
  362. package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +21 -8
  363. package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +3 -2
  364. package/claude-assets/skills/cfn-redis-coordination/src/agent-logger.ts +446 -0
  365. package/claude-assets/skills/cfn-redis-coordination/src/agent-recovery.ts +454 -0
  366. package/claude-assets/skills/cfn-redis-coordination/src/completion-reporter.ts +396 -0
  367. package/claude-assets/skills/cfn-redis-coordination/src/context-manager.ts +327 -0
  368. package/claude-assets/skills/cfn-redis-coordination/src/index.ts +82 -0
  369. package/claude-assets/skills/cfn-redis-coordination/src/mode-detector.ts +155 -0
  370. package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-client.ts +305 -0
  371. package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-functions.ts +283 -0
  372. package/claude-assets/skills/cfn-redis-coordination/src/redis-client.ts +654 -0
  373. package/claude-assets/skills/cfn-redis-coordination/src/result-collector.ts +437 -0
  374. package/claude-assets/skills/cfn-redis-coordination/src/swarm-manager.ts +494 -0
  375. package/claude-assets/skills/cfn-redis-coordination/src/task-analyzer.ts +404 -0
  376. package/claude-assets/skills/cfn-redis-coordination/src/task-executor.ts +423 -0
  377. package/claude-assets/skills/cfn-redis-coordination/src/types.ts +235 -0
  378. package/claude-assets/skills/cfn-redis-coordination/src/waiting-coordinator.ts +587 -0
  379. package/claude-assets/skills/cfn-redis-coordination/test-connection-attempts.js +70 -0
  380. package/claude-assets/skills/cfn-redis-coordination/test-mode-simple.js +121 -0
  381. package/claude-assets/skills/cfn-redis-coordination/test-redis-check.js +84 -0
  382. package/claude-assets/skills/cfn-redis-coordination/test-task-mode-redis.cjs +391 -0
  383. package/claude-assets/skills/cfn-redis-coordination/tests/coordination.test.ts +779 -0
  384. package/claude-assets/skills/cfn-redis-coordination/tsconfig.json +31 -0
  385. package/claude-assets/skills/cfn-skill-propagation/README.md +233 -0
  386. package/claude-assets/skills/cfn-skill-propagation/package-lock.json +5174 -0
  387. package/claude-assets/skills/cfn-skill-propagation/package.json +52 -0
  388. package/claude-assets/skills/cfn-skill-propagation/propagate-skill-update.sh +32 -0
  389. package/claude-assets/skills/cfn-skill-propagation/src/cli.ts +75 -0
  390. package/claude-assets/skills/cfn-skill-propagation/src/database-adapter.ts +239 -0
  391. package/claude-assets/skills/cfn-skill-propagation/src/file-system-adapter.ts +113 -0
  392. package/claude-assets/skills/cfn-skill-propagation/src/index.ts +72 -0
  393. package/claude-assets/skills/cfn-skill-propagation/src/logger.ts +43 -0
  394. package/claude-assets/skills/cfn-skill-propagation/src/metadata-parser.ts +154 -0
  395. package/claude-assets/skills/cfn-skill-propagation/src/skill-propagator.ts +274 -0
  396. package/claude-assets/skills/cfn-skill-propagation/src/skill-validator.ts +179 -0
  397. package/claude-assets/skills/cfn-skill-propagation/src/types.ts +143 -0
  398. package/claude-assets/skills/cfn-skill-propagation/src/version-manager.ts +118 -0
  399. package/claude-assets/skills/cfn-skill-propagation/tests/file-system-adapter.test.ts +91 -0
  400. package/claude-assets/skills/cfn-skill-propagation/tests/metadata-parser.test.ts +176 -0
  401. package/claude-assets/skills/cfn-skill-propagation/tests/skill-propagator.test.ts +209 -0
  402. package/claude-assets/skills/cfn-skill-propagation/tests/skill-validator.test.ts +203 -0
  403. package/claude-assets/skills/cfn-skill-propagation/tests/version-manager.test.ts +115 -0
  404. package/claude-assets/skills/cfn-skill-propagation/tsconfig.json +34 -0
  405. package/claude-assets/skills/task-classifier/SKILL.md +81 -0
  406. package/claude-assets/skills/task-classifier/classify-task.sh +62 -0
  407. package/claude-assets/skills/workflow-codification/package-lock.json +5170 -0
  408. package/claude-assets/skills/workflow-codification/package.json +30 -0
  409. package/claude-assets/skills/workflow-codification/src/index.ts +24 -0
  410. package/claude-assets/skills/workflow-codification/src/pattern-analyzer.ts +537 -0
  411. package/claude-assets/skills/workflow-codification/src/types.ts +180 -0
  412. package/claude-assets/skills/workflow-codification/tests/pattern-analyzer.test.ts +960 -0
  413. package/claude-assets/skills/workflow-codification/tsconfig.json +34 -0
  414. package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
  415. package/dist/agent-spawner/agent-spawner.js +448 -0
  416. package/dist/agent-spawner/agent-spawner.js.map +1 -0
  417. package/dist/agent-spawner/index.js +10 -0
  418. package/dist/agent-spawner/index.js.map +1 -0
  419. package/dist/agent-spawner/types.js +14 -0
  420. package/dist/agent-spawner/types.js.map +1 -0
  421. package/dist/cli/agent-executor.js +47 -1
  422. package/dist/cli/agent-executor.js.map +1 -1
  423. package/dist/cli/agent-spawn.js +4 -1
  424. package/dist/cli/agent-spawn.js.map +1 -1
  425. package/dist/cli/config-manager.js +109 -91
  426. package/dist/cli/config-manager.js.map +1 -1
  427. package/dist/cli/conversation-fork-cleanup.js +201 -0
  428. package/dist/cli/conversation-fork-cleanup.js.map +1 -0
  429. package/dist/cli/conversation-fork.js +16 -3
  430. package/dist/cli/conversation-fork.js.map +1 -1
  431. package/dist/cli/tool-executor.js +3 -1
  432. package/dist/cli/tool-executor.js.map +1 -1
  433. package/dist/gate-checker/gate-checker.js +292 -0
  434. package/dist/gate-checker/gate-checker.js.map +1 -0
  435. package/dist/gate-checker/types.js +94 -0
  436. package/dist/gate-checker/types.js.map +1 -0
  437. package/dist/lib/database-service/connection-pool-manager.js +2 -1
  438. package/dist/lib/database-service/connection-pool-manager.js.map +1 -1
  439. package/dist/orchestrator/index.js +10 -0
  440. package/dist/orchestrator/index.js.map +1 -0
  441. package/dist/orchestrator/orchestrate.js +496 -0
  442. package/dist/orchestrator/orchestrate.js.map +1 -0
  443. package/dist/orchestrator/types.js +58 -0
  444. package/dist/orchestrator/types.js.map +1 -0
  445. package/docs/BUG_19_MEMORY_LEAK_TASK_MODE.md +405 -0
  446. package/docs/MEMORY_CLEANUP_GUIDE.md +358 -0
  447. package/docs/MEMORY_LEAK_FIX_SUMMARY.md +322 -0
  448. package/docs/REDIS_CLEANUP_EXECUTIVE_SUMMARY.md +319 -0
  449. package/docs/REDIS_CLEANUP_VERIFICATION_REPORT.md +574 -0
  450. package/package.json +208 -201
  451. package/readme/README.md +34 -1
  452. package/scripts/switch-api.sh +142 -4
  453. package/scripts/verify-no-secrets.sh +6 -13
  454. package/scripts/verify-redis-cleanup.sh +173 -0
  455. package/tests/README.md +201 -0
  456. package/tests/test-memory-leak-task-mode.sh +435 -0
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: cfn-agent-selector
3
+ description: Selects appropriate Loop 3 and Loop 2 agents based on task classification
4
+ version: 1.0.0
5
+ tags: [agent-selection, cfn-loop, coordination]
6
+ ---
7
+
8
+ # CFN Agent Selector Skill
9
+
10
+ Selects appropriate agents for CFN Loop execution based on task classification and mode.
11
+
12
+ ## Usage
13
+
14
+ ```bash
15
+ ./.claude/skills/cfn-agent-selector/select-agents.sh \
16
+ --classification <type> \
17
+ [--mode <mode>] \
18
+ [--loop <3|2>]
19
+ ```
20
+
21
+ ## Arguments
22
+
23
+ - `--classification <type>` - Task classification (comma-separated): frontend, backend, devops, testing, security, data, performance, general
24
+ - `--mode <mode>` - Execution mode: mvp, standard, enterprise (default: standard)
25
+ - `--loop <3|2>` - Output specific loop agents (3 for implementers, 2 for validators)
26
+
27
+ ## Agent Mapping
28
+
29
+ ### Loop 3 Agents (Implementation)
30
+
31
+ | Classification | Agent Type |
32
+ |----------------|------------|
33
+ | frontend | react-frontend-engineer |
34
+ | backend | backend-developer |
35
+ | devops | devops-engineer |
36
+ | testing | tester |
37
+ | security | security-specialist |
38
+ | data | database-architect |
39
+ | performance | performance-optimizer |
40
+ | general | backend-developer |
41
+
42
+ ### Loop 2 Agents (Validation)
43
+
44
+ | Classification | Agent Types |
45
+ |----------------|-------------|
46
+ | frontend | code-reviewer, ui-designer |
47
+ | backend | code-reviewer, security-specialist |
48
+ | devops | code-reviewer, security-specialist |
49
+ | testing | code-reviewer, qa-specialist |
50
+ | security | code-reviewer, security-specialist |
51
+ | data | code-reviewer, database-architect |
52
+ | performance | code-reviewer, performance-benchmarker |
53
+ | general | code-reviewer, tester |
54
+
55
+ ## Output Formats
56
+
57
+ ### JSON (Default)
58
+
59
+ ```bash
60
+ $ select-agents.sh --classification "frontend,backend" --mode standard
61
+ {
62
+ "loop3": "backend-developer,react-frontend-engineer",
63
+ "loop2": "code-reviewer,security-specialist,ui-designer",
64
+ "mode": "standard",
65
+ "classifications": "frontend,backend"
66
+ }
67
+ ```
68
+
69
+ ### Loop 3 Only
70
+
71
+ ```bash
72
+ $ select-agents.sh --classification "frontend" --loop 3
73
+ react-frontend-engineer
74
+ ```
75
+
76
+ ### Loop 2 Only
77
+
78
+ ```bash
79
+ $ select-agents.sh --classification "backend" --loop 2
80
+ code-reviewer,security-specialist
81
+ ```
82
+
83
+ ## Examples
84
+
85
+ ```bash
86
+ # Full-stack task
87
+ $ select-agents.sh --classification "frontend,backend"
88
+ {
89
+ "loop3": "backend-developer,react-frontend-engineer",
90
+ "loop2": "code-reviewer,security-specialist,ui-designer",
91
+ ...
92
+ }
93
+
94
+ # DevOps task - only Loop 3 agents
95
+ $ select-agents.sh --classification "devops" --loop 3
96
+ devops-engineer
97
+
98
+ # Security audit - only Loop 2 agents
99
+ $ select-agents.sh --classification "security" --loop 2
100
+ code-reviewer,security-specialist
101
+ ```
102
+
103
+ ## Integration with CFN Loop
104
+
105
+ ```bash
106
+ # 1. Classify task
107
+ CLASSIFICATION=$(classify-task.sh "$TASK_DESCRIPTION")
108
+
109
+ # 2. Select agents
110
+ AGENTS_JSON=$(select-agents.sh --classification "$CLASSIFICATION" --mode standard)
111
+
112
+ # 3. Extract agent lists
113
+ LOOP3_AGENTS=$(echo "$AGENTS_JSON" | jq -r '.loop3')
114
+ LOOP2_AGENTS=$(echo "$AGENTS_JSON" | jq -r '.loop2')
115
+
116
+ # 4. Spawn CFN Loop with selected agents
117
+ ./orchestrate.sh \
118
+ --task-id "$TASK_ID" \
119
+ --loop3-agents "$LOOP3_AGENTS" \
120
+ --loop2-agents "$LOOP2_AGENTS" \
121
+ --mode standard
122
+ ```
123
+
124
+ ## Features
125
+
126
+ - **Deduplication:** Removes duplicate agents from multi-classification tasks
127
+ - **Automatic Mapping:** Uses predefined agent mapping for consistency
128
+ - **Mode-Aware:** Future enhancement for mode-specific agent selection
129
+ - **Extensible:** Easy to add new classifications and agent types
130
+
131
+ ## Implementation Details
132
+
133
+ - Uses associative arrays for agent mapping
134
+ - Sorts and deduplicates agent lists
135
+ - Outputs comma-separated agent names (no spaces)
136
+ - Exit code 0 on success, 1 on error
137
+ - Stateless execution (no persistent configuration)
138
+
139
+ ## Used By
140
+
141
+ - `cfn-v3-coordinator` - For automatic agent selection based on task
142
+ - CFN Loop CLI commands - For agent list generation
143
+ - Manual orchestration - For expert-driven agent selection
@@ -0,0 +1,94 @@
1
+ #!/bin/bash
2
+ # Agent Selection Skill
3
+ # Selects appropriate agents based on task classification and mode
4
+
5
+ set -euo pipefail
6
+
7
+ # Parse arguments
8
+ TASK_CLASSIFICATION=""
9
+ MODE="standard"
10
+ LOOP_TYPE=""
11
+
12
+ while [[ $# -gt 0 ]]; do
13
+ case $1 in
14
+ --classification)
15
+ TASK_CLASSIFICATION="$2"
16
+ shift 2
17
+ ;;
18
+ --mode)
19
+ MODE="$2"
20
+ shift 2
21
+ ;;
22
+ --loop)
23
+ LOOP_TYPE="$2"
24
+ shift 2
25
+ ;;
26
+ *)
27
+ echo "Unknown argument: $1" >&2
28
+ exit 1
29
+ ;;
30
+ esac
31
+ done
32
+
33
+ if [[ -z "$TASK_CLASSIFICATION" ]]; then
34
+ echo "Usage: $0 --classification <type> [--mode <mode>] [--loop <3|2>]" >&2
35
+ exit 1
36
+ fi
37
+
38
+ # Agent mapping based on classification
39
+ declare -A LOOP3_AGENTS
40
+ LOOP3_AGENTS[frontend]="react-frontend-engineer"
41
+ LOOP3_AGENTS[backend]="backend-developer"
42
+ LOOP3_AGENTS[devops]="devops-engineer"
43
+ LOOP3_AGENTS[testing]="tester"
44
+ LOOP3_AGENTS[security]="security-specialist"
45
+ LOOP3_AGENTS[data]="database-architect"
46
+ LOOP3_AGENTS[performance]="performance-optimizer"
47
+ LOOP3_AGENTS[general]="backend-developer"
48
+
49
+ declare -A LOOP2_AGENTS
50
+ LOOP2_AGENTS[frontend]="code-reviewer,ui-designer"
51
+ LOOP2_AGENTS[backend]="code-reviewer,security-specialist"
52
+ LOOP2_AGENTS[devops]="code-reviewer,security-specialist"
53
+ LOOP2_AGENTS[testing]="code-reviewer,qa-specialist"
54
+ LOOP2_AGENTS[security]="code-reviewer,security-specialist"
55
+ LOOP2_AGENTS[data]="code-reviewer,database-architect"
56
+ LOOP2_AGENTS[performance]="code-reviewer,performance-benchmarker"
57
+ LOOP2_AGENTS[general]="code-reviewer,tester"
58
+
59
+ # Select agents based on classification
60
+ SELECTED_LOOP3=()
61
+ SELECTED_LOOP2=()
62
+
63
+ IFS=',' read -ra CLASSIFICATIONS <<< "$TASK_CLASSIFICATION"
64
+ for classification in "${CLASSIFICATIONS[@]}"; do
65
+ if [[ -n "${LOOP3_AGENTS[$classification]:-}" ]]; then
66
+ SELECTED_LOOP3+=("${LOOP3_AGENTS[$classification]}")
67
+ fi
68
+
69
+ if [[ -n "${LOOP2_AGENTS[$classification]:-}" ]]; then
70
+ IFS=',' read -ra VALIDATORS <<< "${LOOP2_AGENTS[$classification]}"
71
+ SELECTED_LOOP2+=("${VALIDATORS[@]}")
72
+ fi
73
+ done
74
+
75
+ # Remove duplicates and join
76
+ LOOP3_UNIQUE=$(printf '%s\n' "${SELECTED_LOOP3[@]}" | sort -u | tr '\n' ',' | sed 's/,$//')
77
+ LOOP2_UNIQUE=$(printf '%s\n' "${SELECTED_LOOP2[@]}" | sort -u | tr '\n' ',' | sed 's/,$//')
78
+
79
+ # Output based on loop type
80
+ if [[ "$LOOP_TYPE" == "3" ]]; then
81
+ echo "$LOOP3_UNIQUE"
82
+ elif [[ "$LOOP_TYPE" == "2" ]]; then
83
+ echo "$LOOP2_UNIQUE"
84
+ else
85
+ # Output both as JSON
86
+ cat <<EOF
87
+ {
88
+ "loop3": "$LOOP3_UNIQUE",
89
+ "loop2": "$LOOP2_UNIQUE",
90
+ "mode": "$MODE",
91
+ "classifications": "$TASK_CLASSIFICATION"
92
+ }
93
+ EOF
94
+ fi
@@ -24,7 +24,7 @@ if [[ -z "$AGENT_TYPE" ]]; then
24
24
  return 1 2>/dev/null || exit 1
25
25
  fi
26
26
 
27
- # Function to get provider config (zai, kimi, openrouter, anthropic)
27
+ # Function to get provider config (zai, kimi, openrouter, gemini, xai, anthropic)
28
28
  get_provider_config() {
29
29
  local provider="$1"
30
30
  local model="${2:-}"
@@ -48,6 +48,18 @@ get_provider_config() {
48
48
  export ANTHROPIC_MODEL="${model:-anthropic/claude-sonnet-4.5}"
49
49
  export ANTHROPIC_SMALL_FAST_MODEL="${model:-anthropic/claude-sonnet-4.5}"
50
50
  ;;
51
+ gemini)
52
+ export ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1"
53
+ export ANTHROPIC_AUTH_TOKEN="${OPENROUTER_API_KEY:-}"
54
+ export ANTHROPIC_MODEL="${model:-google/gemini-2.0-flash-001}"
55
+ export ANTHROPIC_SMALL_FAST_MODEL="${model:-google/gemini-2.0-flash-001}"
56
+ ;;
57
+ xai)
58
+ export ANTHROPIC_BASE_URL="https://api.x.ai/v1"
59
+ export ANTHROPIC_AUTH_TOKEN="${XAI_API_KEY:-}"
60
+ export ANTHROPIC_MODEL="${model:-grok-beta}"
61
+ export ANTHROPIC_SMALL_FAST_MODEL="${model:-grok-beta}"
62
+ ;;
51
63
  anthropic|*)
52
64
  # Use default Anthropic settings (remove custom env vars)
53
65
  unset ANTHROPIC_BASE_URL
@@ -61,13 +73,21 @@ get_provider_config() {
61
73
  # Function to detect provider from base URL
62
74
  detect_provider_from_url() {
63
75
  local base_url="$1"
76
+ local model="${2:-}"
64
77
 
65
78
  if [[ "$base_url" == *"z.ai"* ]]; then
66
79
  echo "zai"
67
80
  elif [[ "$base_url" == *"moonshot.ai"* ]]; then
68
81
  echo "kimi"
82
+ elif [[ "$base_url" == *"x.ai"* ]]; then
83
+ echo "xai"
69
84
  elif [[ "$base_url" == *"openrouter.ai"* ]]; then
70
- echo "openrouter"
85
+ # Check if model is Gemini
86
+ if [[ "$model" == google/gemini* ]]; then
87
+ echo "gemini"
88
+ else
89
+ echo "openrouter"
90
+ fi
71
91
  else
72
92
  echo "anthropic"
73
93
  fi
@@ -406,8 +406,8 @@ if [[ "${TASK_ID}" =~ concurrent-.* || "${TASK_ID}" =~ test-.* || "${TASK_ID}" =
406
406
  # Test mode command (context not used)
407
407
  DOCKER_CMD="$DOCKER_CMD -c 'cd /app/workspace && echo \"Task: ${TASK_ID}\" > task-info.txt && echo \"Agent: ${AGENT_TYPE}\" >> task-info.txt && echo \"Starting task execution...\" >> task-info.txt && sleep 3 && echo \"${AGENT_TYPE} task completed\" > ${AGENT_TYPE}-task-result.txt && echo \"Workspace verified\" > ${AGENT_TYPE}-workspace-check.txt && echo \"Task completed\" > ${AGENT_TYPE}-completion-log.txt && echo \"All files created successfully\" && ls -la && sleep 2'"
408
408
  else
409
- # Full CFN mode command with optional context (call compiled bin directly)
410
- DOCKER_CMD="$DOCKER_CMD -c 'cd /app && node dist/cli/spawn.js --type ${AGENT_TYPE} --task-id ${TASK_ID} --agent-id ${AGENT_ID} ${CONTEXT_ARG}'"
409
+ # Full CFN mode command with optional context (use npx claude-flow-novice)
410
+ DOCKER_CMD="$DOCKER_CMD -c 'cd /app && npx claude-flow-novice agent ${AGENT_TYPE} --task-id ${TASK_ID} --agent-id ${AGENT_ID} ${CONTEXT_ARG}'"
411
411
  fi
412
412
 
413
413
  # Remove container on exit for interactive mode (not needed for test mode with --rm)
@@ -449,6 +449,25 @@ fi
449
449
 
450
450
  log_success "Container created successfully: $CONTAINER_ID"
451
451
 
452
+ # Initialize hybrid logging for this task
453
+ LOG_DIR="logs/docker-mode/${TASK_ID}"
454
+ DB_PATH="$LOG_DIR/logs.db"
455
+ PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
456
+
457
+ if [[ ! -f "$DB_PATH" ]]; then
458
+ log "Initializing hybrid logging for task: $TASK_ID"
459
+ "$PROJECT_ROOT/.claude/skills/cfn-docker-logging/init-hybrid-logging.sh" "$TASK_ID" >/dev/null 2>&1 || true
460
+ fi
461
+
462
+ # Start background log capture (text files + SQLite)
463
+ if [[ -f "$PROJECT_ROOT/.claude/skills/cfn-docker-logging/capture-container-logs.sh" ]]; then
464
+ log "Starting hybrid log capture (text + SQLite)"
465
+ "$PROJECT_ROOT/.claude/skills/cfn-docker-logging/capture-container-logs.sh" \
466
+ "$CONTAINER_ID" "$AGENT_ID" "$LOG_DIR" "$DB_PATH" "$TASK_ID" &
467
+ CAPTURE_PID=$!
468
+ log "Log capture started (PID: $CAPTURE_PID)"
469
+ fi
470
+
452
471
  # Wait for container to start (if detached)
453
472
  if [[ "$DETACH" == true ]]; then
454
473
  log "Waiting for container to start..."
@@ -0,0 +1,33 @@
1
+ {
2
+ "root": true,
3
+ "parser": "@typescript-eslint/parser",
4
+ "parserOptions": {
5
+ "ecmaVersion": 2020,
6
+ "sourceType": "module",
7
+ "project": "./tsconfig.json"
8
+ },
9
+ "plugins": ["@typescript-eslint"],
10
+ "extends": [
11
+ "eslint:recommended",
12
+ "plugin:@typescript-eslint/recommended",
13
+ "plugin:@typescript-eslint/recommended-requiring-type-checking"
14
+ ],
15
+ "rules": {
16
+ "@typescript-eslint/explicit-function-return-types": "error",
17
+ "@typescript-eslint/no-explicit-any": "error",
18
+ "@typescript-eslint/no-unused-vars": "error",
19
+ "@typescript-eslint/strict-boolean-expressions": "warn",
20
+ "@typescript-eslint/explicit-member-accessibility": "error",
21
+ "no-console": "warn",
22
+ "prefer-const": "error",
23
+ "no-var": "error"
24
+ },
25
+ "overrides": [
26
+ {
27
+ "files": ["tests/**/*.ts"],
28
+ "rules": {
29
+ "@typescript-eslint/no-explicit-any": "off"
30
+ }
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,349 @@
1
+ # CFN Docker Coordination
2
+
3
+ Type-safe Docker orchestration utilities for CFN Loop agent container management.
4
+
5
+ **Status**: Production Ready
6
+ **Coverage**: 91.8%
7
+ **Tests**: 176 passing
8
+ **TypeScript**: Strict mode enabled
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ npm install @cfn/docker-coordination
14
+ ```
15
+
16
+ ## Quick Start
17
+
18
+ ```typescript
19
+ import { createDockerManager } from '@cfn/docker-coordination';
20
+
21
+ // Create manager with all components
22
+ const manager = createDockerManager();
23
+
24
+ // Verify Docker is accessible
25
+ const accessible = await manager.docker.isAccessible();
26
+
27
+ // Create and manage agent containers
28
+ const { container, manifest } = await manager.agents.spawnAgent(
29
+ 'backend-dev',
30
+ 'task-123',
31
+ 'agent-456',
32
+ { memoryLimit: 1024 }
33
+ );
34
+
35
+ // Monitor container health
36
+ const ready = await manager.health.waitForReady(container, 30000);
37
+
38
+ // Get container state
39
+ const state = await manager.agents.getAgentStatus(container);
40
+ console.log(`Container status: ${state.status}`);
41
+
42
+ // Stop and cleanup
43
+ await manager.agents.stopAgent(container);
44
+ await manager.agents.removeAgent(container);
45
+ ```
46
+
47
+ ## Core Components
48
+
49
+ ### DockerClient
50
+ Low-level Docker SDK wrapper with proper error handling.
51
+
52
+ ```typescript
53
+ const client = new DockerClient();
54
+ const accessible = await client.isAccessible();
55
+ const container = await client.getContainer('container-id');
56
+ const state = await client.getContainerState(container);
57
+ const logs = await client.getContainerLogs(container);
58
+ ```
59
+
60
+ ### AgentContainerManager
61
+ CFN agent-specific container operations.
62
+
63
+ ```typescript
64
+ const manager = new AgentContainerManager(dockerClient);
65
+ const { container, manifest } = await manager.spawnAgent(
66
+ 'backend-dev',
67
+ 'task-id',
68
+ 'agent-id',
69
+ { memoryLimit: 2048, cpuLimit: 1.0 }
70
+ );
71
+
72
+ const exitCode = await manager.waitForAgentCompletion(container);
73
+ const logs = await manager.getAgentLogs(container);
74
+ await manager.cleanupStoppedAgents('cfn-wave');
75
+ ```
76
+
77
+ ### NetworkManager
78
+ Docker network creation and container connection.
79
+
80
+ ```typescript
81
+ const netManager = new NetworkManager();
82
+ const network = await netManager.createNetworkIfMissing('cfn-network');
83
+ await netManager.connectToNetwork(network, container);
84
+ const info = await netManager.getNetworkInfo(network);
85
+ await netManager.disconnectFromNetwork(network, container);
86
+ ```
87
+
88
+ ### VolumeManager
89
+ Docker volume management for persistent storage.
90
+
91
+ ```typescript
92
+ const volManager = new VolumeManager();
93
+ const volume = await volManager.createAgentVolume('agent-id', 'backend');
94
+ const volumes = await volManager.listCfnVolumes();
95
+ await volManager.removeAgentVolume('agent-id');
96
+ const removed = await volManager.removeDanglingVolumes();
97
+ ```
98
+
99
+ ### HealthChecker
100
+ Container health monitoring and diagnostics.
101
+
102
+ ```typescript
103
+ const checker = new HealthChecker(dockerClient);
104
+ const healthy = await checker.waitForHealthy(container, 30000);
105
+ const summary = await checker.getHealthSummary(container);
106
+ const state = await checker.monitorUntilCompletion(container, 300000);
107
+ const report = await checker.performDiagnostic(container);
108
+ ```
109
+
110
+ ## Type System
111
+
112
+ Comprehensive TypeScript types for all operations:
113
+
114
+ ```typescript
115
+ // Container options with full type safety
116
+ const options: ContainerOptions = {
117
+ agentType: 'backend-dev',
118
+ taskId: 'task-123',
119
+ agentId: 'agent-456',
120
+ memoryLimit: 1024,
121
+ cpuLimit: 0.5,
122
+ env: {
123
+ 'LOG_LEVEL': 'debug',
124
+ 'REDIS_HOST': 'redis'
125
+ },
126
+ volumes: {
127
+ '/host/data': '/container/data'
128
+ }
129
+ };
130
+
131
+ // Container state with discriminated unions
132
+ const state: ContainerState = {
133
+ id: 'abc123',
134
+ name: 'cfn-agent-456',
135
+ status: ContainerStatus.RUNNING,
136
+ isRunning: true,
137
+ healthStatus: ContainerHealthStatus.HEALTHY
138
+ };
139
+
140
+ // Execute summary with metrics
141
+ const summary: ExecutionSummary = {
142
+ wave_number: 1,
143
+ summary_time: '2025-11-19T10:30:00Z',
144
+ metrics: {
145
+ total: 10,
146
+ success: 9,
147
+ failed: 1,
148
+ timeout: 0
149
+ }
150
+ };
151
+ ```
152
+
153
+ ## Error Handling
154
+
155
+ Type-safe error classes with context:
156
+
157
+ ```typescript
158
+ import {
159
+ DockerError,
160
+ ContainerTimeoutError,
161
+ ContainerHealthCheckError,
162
+ NetworkError
163
+ } from '@cfn/docker-coordination';
164
+
165
+ try {
166
+ await manager.health.waitForHealthy(container, 5000);
167
+ } catch (error) {
168
+ if (error instanceof ContainerTimeoutError) {
169
+ console.error('Container took too long to start');
170
+ } else if (error instanceof ContainerHealthCheckError) {
171
+ console.error('Container failed health check');
172
+ } else if (error instanceof DockerError) {
173
+ console.error(`Docker error: ${error.code} - ${error.message}`);
174
+ }
175
+ }
176
+ ```
177
+
178
+ ## Configuration
179
+
180
+ ### Memory Tiers
181
+
182
+ Standard memory configurations:
183
+
184
+ ```typescript
185
+ MemoryTier.SMALL = 512; // 512 MB
186
+ MemoryTier.MEDIUM = 1024; // 1 GB
187
+ MemoryTier.LARGE = 2048; // 2 GB
188
+ MemoryTier.XLARGE = 4096; // 4 GB
189
+ ```
190
+
191
+ ### Container Creation Options
192
+
193
+ ```typescript
194
+ interface ContainerOptions {
195
+ agentType: string; // Agent type identifier
196
+ taskId: string; // Task ID for coordination
197
+ agentId: string; // Unique agent ID
198
+ memoryLimit: number; // Memory in MB
199
+ cpuLimit?: number; // CPU limit (cores)
200
+ env?: Record<string, string>; // Environment variables
201
+ volumes?: Record<string, string>; // Volume mounts
202
+ network?: string; // Network name
203
+ name?: string; // Container name override
204
+ workdir?: string; // Working directory
205
+ restartPolicy?: RestartPolicy; // Restart policy
206
+ healthCheck?: HealthCheckConfig; // Health check
207
+ }
208
+ ```
209
+
210
+ ### Health Check Configuration
211
+
212
+ ```typescript
213
+ interface HealthCheckConfig {
214
+ Test: string[]; // Health check command
215
+ Interval: number; // Interval in seconds
216
+ Timeout: number; // Timeout in seconds
217
+ Retries: number; // Consecutive failures
218
+ StartPeriod?: number; // Startup grace period
219
+ }
220
+ ```
221
+
222
+ ## Testing
223
+
224
+ ### Run All Tests
225
+
226
+ ```bash
227
+ npm test
228
+ ```
229
+
230
+ ### Run Tests in Watch Mode
231
+
232
+ ```bash
233
+ npm run test:watch
234
+ ```
235
+
236
+ ### Run Integration Tests Only
237
+
238
+ ```bash
239
+ npm run test:integration
240
+ ```
241
+
242
+ ### Check Coverage
243
+
244
+ ```bash
245
+ npm test -- --coverage
246
+ ```
247
+
248
+ Current coverage:
249
+ - Statements: 91.8%
250
+ - Branches: 89.3%
251
+ - Functions: 94.2%
252
+ - Lines: 92.1%
253
+
254
+ ## Building
255
+
256
+ ### Compile TypeScript
257
+
258
+ ```bash
259
+ npm run build
260
+ ```
261
+
262
+ ### Type Check Without Emitting
263
+
264
+ ```bash
265
+ npm run type-check
266
+ ```
267
+
268
+ ### Lint Code
269
+
270
+ ```bash
271
+ npm run lint
272
+ ```
273
+
274
+ ## Backward Compatibility
275
+
276
+ For existing bash code, a compatibility wrapper is available:
277
+
278
+ ```bash
279
+ source ./docker-helpers.sh
280
+
281
+ validate_docker_access
282
+ get_container_status "$CONTAINER_ID"
283
+ wait_for_container "$CONTAINER_ID" 300
284
+ get_container_logs "$CONTAINER_ID"
285
+ ```
286
+
287
+ All original bash functions are preserved with identical signatures.
288
+
289
+ ## Security
290
+
291
+ ### Environment Variable Validation
292
+
293
+ - Blocks dangerous variables: `LD_PRELOAD`, `DOCKER_HOST`, `DOCKER_TLS_VERIFY`
294
+ - Validates variable name format
295
+ - Prevents special character injection
296
+ - Sanitizes values before Docker API calls
297
+
298
+ ### Container Name Sanitization
299
+
300
+ - Removes invalid characters automatically
301
+ - Enforces Docker naming constraints
302
+ - Maximum length: 63 characters
303
+ - Prepends `cfn-` prefix for identification
304
+
305
+ ### Volume and Network Isolation
306
+
307
+ - All CFN resources labeled with `cfn-managed=true`
308
+ - Isolated subnets per network: `172.20.0.0/16` default
309
+ - Permission-restricted log files: `0600`
310
+ - Dangling volume cleanup on demand
311
+
312
+ ## Performance
313
+
314
+ Typical operation latencies:
315
+ - Container creation: ~520ms
316
+ - Container inspection: ~145ms
317
+ - Network creation: ~210ms
318
+ - Volume listing: ~95ms
319
+ - Health check cycle: ~280ms
320
+
321
+ Performance is within 12-21% of bash implementation due to Node.js overhead.
322
+
323
+ ## Docker Socket Configuration
324
+
325
+ Default socket path: `/var/run/docker.sock`
326
+
327
+ ### Custom Socket
328
+
329
+ ```typescript
330
+ const manager = createDockerManager('/custom/docker.sock');
331
+ ```
332
+
333
+ ### TCP Connection
334
+
335
+ ```typescript
336
+ const client = new DockerClient(undefined, 'localhost', 2375);
337
+ ```
338
+
339
+ ## License
340
+
341
+ MIT
342
+
343
+ ## Contributing
344
+
345
+ This module is part of the CFN Loop system. For changes, please follow TypeScript strict mode and maintain 80%+ test coverage.
346
+
347
+ ## Support
348
+
349
+ For issues or questions, refer to the main CFN documentation.