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,430 @@
1
+ #!/bin/bash
2
+ ##
3
+ ## CFN Docker Logging - Quick Fix Script
4
+ ## Enables verbose Docker logging with container stdout/stderr capture
5
+ ##
6
+ ## Usage:
7
+ ## ./enable-logging.sh [TASK_ID] [OPTIONS]
8
+ ##
9
+ ## Options:
10
+ ## --log-dir DIR Custom log directory (default: logs/docker-mode/{task-id})
11
+ ## --verbose Enable verbose output
12
+ ## --capture-interval SEC Capture interval in seconds (default: 1)
13
+ ## --help Show this help message
14
+ ##
15
+
16
+ set -euo pipefail
17
+
18
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
19
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
20
+
21
+ # Colors for output
22
+ RED='\033[0;31m'
23
+ GREEN='\033[0;32m'
24
+ YELLOW='\033[1;33m'
25
+ BLUE='\033[0;34m'
26
+ NC='\033[0m'
27
+
28
+ log() {
29
+ echo -e "${BLUE}[$(date '+%H:%M:%S')]${NC} $*"
30
+ }
31
+
32
+ log_success() {
33
+ echo -e "${GREEN}[SUCCESS]${NC} $*"
34
+ }
35
+
36
+ log_error() {
37
+ echo -e "${RED}[ERROR]${NC} $*"
38
+ }
39
+
40
+ log_warning() {
41
+ echo -e "${YELLOW}[WARNING]${NC} $*"
42
+ }
43
+
44
+ # Display usage
45
+ usage() {
46
+ grep "^##" "$0" | sed 's/^## \?//'
47
+ exit 0
48
+ }
49
+
50
+ # Parse arguments
51
+ TASK_ID=""
52
+ LOG_DIR=""
53
+ VERBOSE=false
54
+ CAPTURE_INTERVAL=1
55
+
56
+ while [[ $# -gt 0 ]]; do
57
+ case $1 in
58
+ --log-dir)
59
+ LOG_DIR="$2"
60
+ shift 2
61
+ ;;
62
+ --verbose)
63
+ VERBOSE=true
64
+ shift
65
+ ;;
66
+ --capture-interval)
67
+ CAPTURE_INTERVAL="$2"
68
+ shift 2
69
+ ;;
70
+ --help)
71
+ usage
72
+ ;;
73
+ *)
74
+ if [[ -z "$TASK_ID" ]]; then
75
+ TASK_ID="$1"
76
+ else
77
+ log_error "Unknown argument: $1"
78
+ usage
79
+ fi
80
+ shift
81
+ ;;
82
+ esac
83
+ done
84
+
85
+ # Validate task ID
86
+ if [[ -z "$TASK_ID" ]]; then
87
+ log_error "Task ID is required"
88
+ usage
89
+ fi
90
+
91
+ # Set default log directory
92
+ if [[ -z "$LOG_DIR" ]]; then
93
+ LOG_DIR="$PROJECT_ROOT/logs/docker-mode/$TASK_ID"
94
+ fi
95
+
96
+ # Create log directory structure
97
+ mkdir -p "$LOG_DIR"
98
+ mkdir -p "$LOG_DIR/containers"
99
+ mkdir -p "$LOG_DIR/coordination"
100
+ mkdir -p "$LOG_DIR/metrics"
101
+
102
+ log "Docker Logging Enabled"
103
+ log "Task ID: $TASK_ID"
104
+ log "Log Directory: $LOG_DIR"
105
+
106
+ # Create logging configuration file
107
+ CONFIG_FILE="$LOG_DIR/logging-config.json"
108
+ cat > "$CONFIG_FILE" <<EOF
109
+ {
110
+ "task_id": "$TASK_ID",
111
+ "log_dir": "$LOG_DIR",
112
+ "enabled": true,
113
+ "capture_interval": $CAPTURE_INTERVAL,
114
+ "verbose": $VERBOSE,
115
+ "started_at": "$(date -Iseconds)",
116
+ "features": {
117
+ "container_logs": true,
118
+ "exit_codes": true,
119
+ "redis_events": true,
120
+ "timestamps": true
121
+ }
122
+ }
123
+ EOF
124
+
125
+ log_success "Logging configuration created: $CONFIG_FILE"
126
+
127
+ # Create helper scripts
128
+
129
+ # 1. Container log capture script
130
+ cat > "$LOG_DIR/capture-container-logs.sh" <<'CAPTURE_EOF'
131
+ #!/bin/bash
132
+ set -euo pipefail
133
+
134
+ CONTAINER_ID="$1"
135
+ AGENT_ID="$2"
136
+ LOG_DIR="$3"
137
+
138
+ # Create container log files
139
+ STDOUT_LOG="$LOG_DIR/containers/${AGENT_ID}.stdout.log"
140
+ STDERR_LOG="$LOG_DIR/containers/${AGENT_ID}.stderr.log"
141
+ EXIT_LOG="$LOG_DIR/containers/${AGENT_ID}.exit.json"
142
+
143
+ # Capture logs in background (with timestamps)
144
+ docker logs -f --timestamps "$CONTAINER_ID" > "$STDOUT_LOG" 2> "$STDERR_LOG" &
145
+ LOG_PID=$!
146
+
147
+ # Wait for container to exit
148
+ EXIT_CODE=$(docker wait "$CONTAINER_ID" 2>/dev/null || echo "999")
149
+
150
+ # Stop log capture
151
+ kill $LOG_PID 2>/dev/null || true
152
+ sleep 1 # Allow final flush
153
+
154
+ # Capture container metadata
155
+ METADATA=$(docker inspect "$CONTAINER_ID" 2>/dev/null || echo '{}')
156
+
157
+ # Log exit event
158
+ cat > "$EXIT_LOG" <<EOF
159
+ {
160
+ "timestamp": "$(date -Iseconds)",
161
+ "container_id": "$CONTAINER_ID",
162
+ "agent_id": "$AGENT_ID",
163
+ "exit_code": $EXIT_CODE,
164
+ "status": "$(echo "$METADATA" | jq -r '.[] | .State.Status // "unknown"')",
165
+ "started_at": "$(echo "$METADATA" | jq -r '.[] | .State.StartedAt // "unknown"')",
166
+ "finished_at": "$(echo "$METADATA" | jq -r '.[] | .State.FinishedAt // "unknown"')",
167
+ "oom_killed": $(echo "$METADATA" | jq -r '.[] | .State.OOMKilled // false')
168
+ }
169
+ EOF
170
+
171
+ echo "$EXIT_CODE"
172
+ CAPTURE_EOF
173
+
174
+ chmod +x "$LOG_DIR/capture-container-logs.sh"
175
+ log_success "Created container log capture script"
176
+
177
+ # 2. Redis event logger
178
+ cat > "$LOG_DIR/log-redis-event.sh" <<'REDIS_EOF'
179
+ #!/bin/bash
180
+ set -euo pipefail
181
+
182
+ EVENT_TYPE="$1"
183
+ PAYLOAD="$2"
184
+ LOG_DIR="$3"
185
+
186
+ REDIS_LOG="$LOG_DIR/coordination/redis-events.log"
187
+
188
+ # Append event to log
189
+ cat >> "$REDIS_LOG" <<EOF
190
+ {"timestamp":"$(date -Iseconds)","event":"$EVENT_TYPE","payload":$PAYLOAD}
191
+ EOF
192
+
193
+ echo >> "$REDIS_LOG" # Newline for readability
194
+ REDIS_EOF
195
+
196
+ chmod +x "$LOG_DIR/log-redis-event.sh"
197
+ log_success "Created Redis event logger"
198
+
199
+ # 3. Lifecycle event logger
200
+ cat > "$LOG_DIR/log-lifecycle-event.sh" <<'LIFECYCLE_EOF'
201
+ #!/bin/bash
202
+ set -euo pipefail
203
+
204
+ EVENT_TYPE="$1"
205
+ shift
206
+ PAYLOAD="$@"
207
+ LOG_DIR="$(dirname "$0")"
208
+
209
+ LIFECYCLE_LOG="$LOG_DIR/coordination/lifecycle-events.log"
210
+
211
+ # Append event to log
212
+ cat >> "$LIFECYCLE_LOG" <<EOF
213
+ {"timestamp":"$(date -Iseconds)","event":"$EVENT_TYPE","data":$PAYLOAD}
214
+ EOF
215
+
216
+ echo >> "$LIFECYCLE_LOG" # Newline
217
+ LIFECYCLE_EOF
218
+
219
+ chmod +x "$LOG_DIR/log-lifecycle-event.sh"
220
+ log_success "Created lifecycle event logger"
221
+
222
+ # 4. Query interface script
223
+ cat > "$LOG_DIR/query-logs.sh" <<'QUERY_EOF'
224
+ #!/bin/bash
225
+ set -euo pipefail
226
+
227
+ LOG_DIR="$(dirname "$0")"
228
+ QUERY_TYPE="${1:-all}"
229
+ FILTER="${2:-}"
230
+
231
+ case "$QUERY_TYPE" in
232
+ containers)
233
+ cat "$LOG_DIR/containers"/*.stdout.log 2>/dev/null | grep -E "$FILTER" || echo "(no logs)"
234
+ ;;
235
+ errors)
236
+ cat "$LOG_DIR/containers"/*.stderr.log 2>/dev/null | grep -E "$FILTER" || echo "(no errors)"
237
+ ;;
238
+ exits)
239
+ cat "$LOG_DIR/containers"/*.exit.json 2>/dev/null | jq -s '.' || echo "[]"
240
+ ;;
241
+ redis)
242
+ cat "$LOG_DIR/coordination/redis-events.log" 2>/dev/null | grep -E "$FILTER" || echo "(no events)"
243
+ ;;
244
+ lifecycle)
245
+ cat "$LOG_DIR/coordination/lifecycle-events.log" 2>/dev/null | grep -E "$FILTER" || echo "(no events)"
246
+ ;;
247
+ failed)
248
+ # Show only failed containers (non-zero exit codes)
249
+ cat "$LOG_DIR/containers"/*.exit.json 2>/dev/null | jq -s '.[] | select(.exit_code != 0)' || echo "[]"
250
+ ;;
251
+ all)
252
+ echo "=== Container Logs ==="
253
+ cat "$LOG_DIR/containers"/*.stdout.log 2>/dev/null | head -50 || echo "(no logs)"
254
+ echo ""
255
+ echo "=== Exit Codes ==="
256
+ cat "$LOG_DIR/containers"/*.exit.json 2>/dev/null | jq -s '.[] | {agent_id, exit_code, status}' || echo "[]"
257
+ echo ""
258
+ echo "=== Redis Events ==="
259
+ cat "$LOG_DIR/coordination/redis-events.log" 2>/dev/null | head -20 || echo "(no events)"
260
+ ;;
261
+ *)
262
+ echo "Usage: $0 [containers|errors|exits|redis|lifecycle|failed|all] [filter]"
263
+ exit 1
264
+ ;;
265
+ esac
266
+ QUERY_EOF
267
+
268
+ chmod +x "$LOG_DIR/query-logs.sh"
269
+ log_success "Created query interface script"
270
+
271
+ # 5. Export audit trail script
272
+ cat > "$LOG_DIR/export-audit-trail.sh" <<'EXPORT_EOF'
273
+ #!/bin/bash
274
+ set -euo pipefail
275
+
276
+ LOG_DIR="$(dirname "$0")"
277
+ OUTPUT_FILE="${1:-audit-trail.json}"
278
+
279
+ # Aggregate all logs into structured JSON
280
+ {
281
+ echo '{'
282
+ echo ' "task_id": "'$(jq -r .task_id "$LOG_DIR/logging-config.json")'",';
283
+ echo ' "started_at": "'$(jq -r .started_at "$LOG_DIR/logging-config.json")'",';
284
+ echo ' "exported_at": "'$(date -Iseconds)'",';
285
+ echo ' "container_exits": '
286
+ cat "$LOG_DIR/containers"/*.exit.json 2>/dev/null | jq -s '.' || echo '[]'
287
+ echo ' ,'
288
+ echo ' "redis_events": '
289
+ cat "$LOG_DIR/coordination/redis-events.log" 2>/dev/null | jq -s '.' || echo '[]'
290
+ echo ' ,'
291
+ echo ' "lifecycle_events": '
292
+ cat "$LOG_DIR/coordination/lifecycle-events.log" 2>/dev/null | jq -s '.' || echo '[]'
293
+ echo '}'
294
+ } | jq '.' > "$OUTPUT_FILE"
295
+
296
+ echo "Audit trail exported to: $OUTPUT_FILE"
297
+ EXPORT_EOF
298
+
299
+ chmod +x "$LOG_DIR/export-audit-trail.sh"
300
+ log_success "Created audit trail export script"
301
+
302
+ # Create README for log directory
303
+ cat > "$LOG_DIR/README.md" <<'README_EOF'
304
+ # CFN Docker Mode Logs
305
+
306
+ This directory contains logs for Docker mode CFN Loop execution.
307
+
308
+ ## Directory Structure
309
+
310
+ ```
311
+ logs/docker-mode/{task-id}/
312
+ ├── logging-config.json # Logging configuration
313
+ ├── containers/ # Container logs
314
+ │ ├── {agent-id}.stdout.log # Container stdout
315
+ │ ├── {agent-id}.stderr.log # Container stderr
316
+ │ └── {agent-id}.exit.json # Container exit event
317
+ ├── coordination/ # Coordination logs
318
+ │ ├── redis-events.log # Redis coordination events
319
+ │ └── lifecycle-events.log # Agent lifecycle events
320
+ ├── metrics/ # Performance metrics (future)
321
+ └── scripts/ # Helper scripts
322
+ ├── capture-container-logs.sh
323
+ ├── log-redis-event.sh
324
+ ├── log-lifecycle-event.sh
325
+ ├── query-logs.sh
326
+ └── export-audit-trail.sh
327
+ ```
328
+
329
+ ## Usage Examples
330
+
331
+ ### Query Logs
332
+ ```bash
333
+ # View all logs
334
+ ./query-logs.sh all
335
+
336
+ # View only container logs
337
+ ./query-logs.sh containers
338
+
339
+ # View only errors
340
+ ./query-logs.sh errors
341
+
342
+ # View exit codes
343
+ ./query-logs.sh exits
344
+
345
+ # View failed containers
346
+ ./query-logs.sh failed
347
+
348
+ # View Redis events
349
+ ./query-logs.sh redis
350
+ ```
351
+
352
+ ### Export Audit Trail
353
+ ```bash
354
+ # Export to default file
355
+ ./export-audit-trail.sh
356
+
357
+ # Export to custom file
358
+ ./export-audit-trail.sh /tmp/audit-trail.json
359
+ ```
360
+
361
+ ### Capture Container Logs (Automatic)
362
+ This script is called automatically by spawn-agent.sh when logging is enabled.
363
+ ```bash
364
+ ./capture-container-logs.sh <container-id> <agent-id> <log-dir>
365
+ ```
366
+
367
+ ## Integration with spawn-agent.sh
368
+
369
+ To enable automatic log capture, add this to spawn-agent.sh:
370
+
371
+ ```bash
372
+ # After container spawn
373
+ if [[ -f "logs/docker-mode/${TASK_ID}/capture-container-logs.sh" ]]; then
374
+ logs/docker-mode/${TASK_ID}/capture-container-logs.sh \
375
+ "$CONTAINER_ID" "$AGENT_ID" "logs/docker-mode/${TASK_ID}" &
376
+ fi
377
+ ```
378
+ README_EOF
379
+
380
+ log_success "Created README documentation"
381
+
382
+ # Print usage instructions
383
+ cat <<EOF
384
+
385
+ ${GREEN}✓ Docker Logging Enabled Successfully${NC}
386
+
387
+ Log Directory: $LOG_DIR
388
+
389
+ ${YELLOW}Quick Reference:${NC}
390
+
391
+ # View all logs
392
+ $LOG_DIR/query-logs.sh all
393
+
394
+ # View only errors
395
+ $LOG_DIR/query-logs.sh errors
396
+
397
+ # View failed containers
398
+ $LOG_DIR/query-logs.sh failed
399
+
400
+ # Export audit trail
401
+ $LOG_DIR/export-audit-trail.sh /tmp/audit-trail.json
402
+
403
+ ${YELLOW}Integration with spawn-agent.sh:${NC}
404
+
405
+ Add this to spawn-agent.sh after container spawn:
406
+
407
+ # Enable logging if configured
408
+ if [[ -f "$LOG_DIR/capture-container-logs.sh" ]]; then
409
+ $LOG_DIR/capture-container-logs.sh \\
410
+ "\$CONTAINER_ID" "\$AGENT_ID" "$LOG_DIR" &
411
+ fi
412
+
413
+ ${YELLOW}Files Created:${NC}
414
+ ✓ $CONFIG_FILE
415
+ ✓ $LOG_DIR/capture-container-logs.sh
416
+ ✓ $LOG_DIR/log-redis-event.sh
417
+ ✓ $LOG_DIR/log-lifecycle-event.sh
418
+ ✓ $LOG_DIR/query-logs.sh
419
+ ✓ $LOG_DIR/export-audit-trail.sh
420
+ ✓ $LOG_DIR/README.md
421
+
422
+ EOF
423
+
424
+ log_success "Logging infrastructure ready"
425
+
426
+ if [[ "$VERBOSE" == true ]]; then
427
+ log "Verbose mode enabled"
428
+ log "Logging configuration:"
429
+ cat "$CONFIG_FILE" | jq '.'
430
+ fi
@@ -0,0 +1,210 @@
1
+ #!/bin/bash
2
+ # Initialize hybrid logging: Text files + SQLite database
3
+ # Provides both human-readable logs and powerful SQL querying
4
+
5
+ set -euo pipefail
6
+
7
+ TASK_ID=${1:-}
8
+
9
+ if [[ -z "$TASK_ID" ]]; then
10
+ echo "Usage: $0 <task_id>"
11
+ echo ""
12
+ echo "Initializes hybrid logging for Docker mode CFN Loop execution:"
13
+ echo " - Text files: Human-readable logs (backward compatible)"
14
+ echo " - SQLite: Powerful querying and analytics"
15
+ exit 1
16
+ fi
17
+
18
+ # Get script directory
19
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
20
+
21
+ # Create log directory structure
22
+ LOG_DIR="logs/docker-mode/${TASK_ID}"
23
+ mkdir -p "$LOG_DIR"
24
+ mkdir -p "$LOG_DIR/queries"
25
+
26
+ # Database path
27
+ DB_PATH="$LOG_DIR/logs.db"
28
+
29
+ # Source helpers
30
+ source "$SCRIPT_DIR/sqlite-helpers.sh"
31
+
32
+ # Initialize database
33
+ echo "Initializing logging database: $DB_PATH"
34
+ init_logging_db "$DB_PATH"
35
+
36
+ # Copy query scripts to log directory for easy access
37
+ echo "Installing query scripts to $LOG_DIR/queries/"
38
+ cp "$SCRIPT_DIR/queries/"*.sh "$LOG_DIR/queries/"
39
+ chmod +x "$LOG_DIR/queries/"*.sh
40
+
41
+ # Create README in log directory
42
+ cat > "$LOG_DIR/README.md" <<'EOF'
43
+ # CFN Docker Logging - Hybrid System
44
+
45
+ This directory contains both **text files** (human-readable) and **SQLite database** (powerful queries).
46
+
47
+ ## Quick Start
48
+
49
+ ### Text File Queries (Human Readable)
50
+ ```bash
51
+ # View agent stdout
52
+ cat <agent-id>-stdout.log
53
+
54
+ # View agent stderr
55
+ cat <agent-id>-stderr.log
56
+
57
+ # View combined logs
58
+ cat <agent-id>-combined.log
59
+
60
+ # Search for errors
61
+ grep -i error *-combined.log
62
+
63
+ # View summary
64
+ cat <agent-id>-summary.txt
65
+ ```
66
+
67
+ ### SQLite Queries (Powerful Analysis)
68
+ ```bash
69
+ # All queries use: queries/<script-name>.sh logs.db [task_id]
70
+
71
+ # Find failed containers
72
+ ./queries/query-failed-containers.sh logs.db TASK_ID
73
+
74
+ # View agent timeline
75
+ ./queries/query-agent-timeline.sh logs.db AGENT_ID
76
+
77
+ # Gate check results
78
+ ./queries/query-gate-checks.sh logs.db TASK_ID
79
+
80
+ # Validator consensus history
81
+ ./queries/query-consensus-history.sh logs.db TASK_ID
82
+
83
+ # Full analytics summary
84
+ ./queries/analytics-summary.sh logs.db TASK_ID
85
+
86
+ # Coordination timeline
87
+ ./queries/query-coordination-timeline.sh logs.db TASK_ID
88
+ ```
89
+
90
+ ## Database Schema
91
+
92
+ ### Tables
93
+ - `container_logs`: Individual log lines (stdout/stderr)
94
+ - `container_events`: Lifecycle (spawn, exit, OOM)
95
+ - `coordination_events`: Redis coordination activity
96
+ - `gate_checks`: Loop 3 gate results
97
+ - `validator_consensus`: Loop 2 validator scores
98
+ - `product_owner_decisions`: Final decisions
99
+ - `performance_metrics`: Custom metrics
100
+
101
+ ### Custom Queries
102
+ ```bash
103
+ # Direct SQLite access
104
+ sqlite3 logs.db
105
+
106
+ # Example: Find slowest agents
107
+ sqlite3 logs.db "SELECT agent_id, duration_seconds FROM container_events WHERE event_type='exit' ORDER BY duration_seconds DESC LIMIT 10;"
108
+
109
+ # Example: Count errors in logs
110
+ sqlite3 logs.db "SELECT COUNT(*) FROM container_logs WHERE log_line LIKE '%error%' COLLATE NOCASE;"
111
+
112
+ # Example: Agent success rate
113
+ sqlite3 logs.db "SELECT agent_id, AVG(CASE WHEN exit_code=0 THEN 1.0 ELSE 0.0 END) as success_rate FROM container_events WHERE event_type='exit' GROUP BY agent_id;"
114
+ ```
115
+
116
+ ## File Structure
117
+ ```
118
+ logs/docker-mode/TASK_ID/
119
+ ├── logs.db # SQLite database
120
+ ├── README.md # This file
121
+ ├── queries/ # Query scripts
122
+ │ ├── query-failed-containers.sh
123
+ │ ├── query-agent-timeline.sh
124
+ │ ├── query-gate-checks.sh
125
+ │ ├── query-consensus-history.sh
126
+ │ ├── analytics-summary.sh
127
+ │ └── query-coordination-timeline.sh
128
+ ├── <agent-id>-stdout.log # Agent stdout (text)
129
+ ├── <agent-id>-stderr.log # Agent stderr (text)
130
+ ├── <agent-id>-combined.log # Combined output (text)
131
+ └── <agent-id>-summary.txt # Execution summary (text)
132
+ ```
133
+
134
+ ## Benefits
135
+
136
+ ### Text Files
137
+ - ✅ Human-readable
138
+ - ✅ Standard Unix tools (grep, less, tail)
139
+ - ✅ Backward compatible
140
+ - ✅ Easy debugging
141
+
142
+ ### SQLite
143
+ - ✅ Complex queries (joins, aggregations)
144
+ - ✅ Time-series analysis
145
+ - ✅ Performance metrics
146
+ - ✅ Cross-agent correlation
147
+ - ✅ Scalable (handles millions of rows)
148
+
149
+ ## Examples
150
+
151
+ ### Scenario 1: Find why agent failed
152
+ ```bash
153
+ # 1. Check exit code
154
+ ./queries/query-failed-containers.sh logs.db TASK_ID
155
+
156
+ # 2. View full timeline
157
+ ./queries/query-agent-timeline.sh logs.db AGENT_ID
158
+
159
+ # 3. Read stderr
160
+ cat AGENT_ID-stderr.log
161
+ ```
162
+
163
+ ### Scenario 2: Analyze gate check trends
164
+ ```bash
165
+ # View all gate checks
166
+ ./queries/query-gate-checks.sh logs.db TASK_ID
167
+
168
+ # Get pass rate statistics
169
+ sqlite3 logs.db "SELECT AVG(pass_rate), MIN(pass_rate), MAX(pass_rate) FROM gate_checks WHERE task_id='TASK_ID';"
170
+ ```
171
+
172
+ ### Scenario 3: Validator consensus analysis
173
+ ```bash
174
+ # View consensus history
175
+ ./queries/query-consensus-history.sh logs.db TASK_ID
176
+
177
+ # Find disagreements (high score variance)
178
+ sqlite3 logs.db "SELECT iteration, MAX(score) - MIN(score) as variance FROM validator_consensus WHERE task_id='TASK_ID' GROUP BY iteration HAVING variance > 0.3;"
179
+ ```
180
+
181
+ ### Scenario 4: Performance optimization
182
+ ```bash
183
+ # Full analytics
184
+ ./queries/analytics-summary.sh logs.db TASK_ID
185
+
186
+ # Find bottleneck agents
187
+ sqlite3 logs.db "SELECT agent_id, duration_seconds FROM container_events WHERE event_type='exit' AND task_id='TASK_ID' ORDER BY duration_seconds DESC LIMIT 5;"
188
+ ```
189
+ EOF
190
+
191
+ echo ""
192
+ echo "=== Hybrid Logging Initialized ==="
193
+ echo "Task ID: $TASK_ID"
194
+ echo "Log Directory: $LOG_DIR"
195
+ echo "SQLite Database: $DB_PATH"
196
+ echo ""
197
+ echo "Text Files:"
198
+ echo " - <agent-id>-stdout.log"
199
+ echo " - <agent-id>-stderr.log"
200
+ echo " - <agent-id>-combined.log"
201
+ echo " - <agent-id>-summary.txt"
202
+ echo ""
203
+ echo "SQLite Queries:"
204
+ echo " - cd $LOG_DIR && ./queries/query-failed-containers.sh logs.db $TASK_ID"
205
+ echo " - cd $LOG_DIR && ./queries/query-agent-timeline.sh logs.db <agent-id>"
206
+ echo " - cd $LOG_DIR && ./queries/query-gate-checks.sh logs.db $TASK_ID"
207
+ echo " - cd $LOG_DIR && ./queries/query-consensus-history.sh logs.db $TASK_ID"
208
+ echo " - cd $LOG_DIR && ./queries/analytics-summary.sh logs.db $TASK_ID"
209
+ echo ""
210
+ echo "See: $LOG_DIR/README.md for complete guide"