claude-flow-novice 2.15.2 → 2.15.4

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 (533) hide show
  1. package/.claude/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  2. package/.claude/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  3. package/.claude/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  4. package/.claude/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  5. package/.claude/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  6. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  7. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  8. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  9. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  10. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  11. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  12. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  13. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  14. package/.claude/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  15. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  16. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  17. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  18. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  19. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  20. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  21. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  22. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  23. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  24. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  25. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  26. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  27. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  28. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  29. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  30. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  31. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  32. package/.claude/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  33. package/.claude/commands/cfn-loop-cli.md +16 -2
  34. package/.claude/commands/switch-api.md +31 -10
  35. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -243
  36. package/.claude/hooks/cfn-invoke-security-validation.sh +69 -69
  37. package/.claude/hooks/cfn-lint-sql-injection.sh +61 -0
  38. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +109 -78
  39. package/.claude/hooks/cfn-post-edit.config.json +44 -44
  40. package/.claude/hooks/cfn-pre-edit-security-warning.sh +40 -0
  41. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  42. package/.claude/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  43. package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  44. package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  45. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  46. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  47. package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  48. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
  49. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  50. package/.claude/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  51. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  52. package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  53. package/.claude/skills/cfn-redis-coordination/agent-log.sh +4 -0
  54. package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  55. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  56. package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  57. package/.claude/skills/cfn-redis-coordination/get-context.sh +145 -112
  58. package/.claude/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  59. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
  60. package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  61. package/.claude/skills/cfn-redis-coordination/redis-functions.sh +33 -0
  62. package/.claude/skills/cfn-redis-coordination/report-completion.sh +24 -31
  63. package/.claude/skills/cfn-redis-coordination/store-context.sh +4 -0
  64. package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  65. package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  66. package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  67. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  68. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  69. package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  70. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  71. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  72. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +107 -92
  73. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  74. package/README.md +116 -475
  75. package/claude-assets/agents/cfn-dev-team/README.md +103 -0
  76. package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +1 -1
  77. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +77 -15
  78. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +355 -6
  79. package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +82 -1
  80. package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +82 -1
  81. package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +77 -15
  82. package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +99 -12
  83. package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +1 -1
  84. package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +97 -0
  85. package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +20 -1
  86. package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +97 -0
  87. package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +110 -13
  88. package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +106 -15
  89. package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +115 -11
  90. package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +94 -7
  91. package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +87 -9
  92. package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +85 -7
  93. package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +160 -28
  94. package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +101 -19
  95. package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +108 -14
  96. package/claude-assets/agents/cfn-dev-team/reviewers/{reviewer.md → code-reviewer.md} +95 -8
  97. package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +107 -7
  98. package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +98 -7
  99. package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +95 -7
  100. package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +136 -9
  101. package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +108 -1
  102. package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +107 -13
  103. package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +737 -0
  104. package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
  105. package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +828 -0
  106. package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +106 -7
  107. package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +77 -0
  108. package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +684 -0
  109. package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +110 -1
  110. package/claude-assets/agents/cfn-dev-team/testers/tester.md +94 -7
  111. package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -3
  112. package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +87 -13
  113. package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +103 -7
  114. package/claude-assets/agents/cfn-dev-team/utility/researcher.md +1 -3
  115. package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +94 -7
  116. package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +46 -0
  117. package/claude-assets/agents/project-only-agents/npm-package-specialist.md +1 -1
  118. package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  119. package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  120. package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  121. package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  122. package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  123. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  124. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  125. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  126. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  127. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  128. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  129. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  130. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  131. package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  132. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  133. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  134. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  135. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  136. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  137. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  138. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  139. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  140. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  141. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  142. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  143. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  144. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  145. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  146. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  147. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  148. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  149. package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  150. package/claude-assets/commands/cfn-loop-cli.md +16 -2
  151. package/claude-assets/commands/switch-api.md +31 -10
  152. package/claude-assets/hooks/cfn-BACKUP_USAGE.md +243 -243
  153. package/claude-assets/hooks/cfn-invoke-security-validation.sh +69 -69
  154. package/claude-assets/hooks/cfn-lint-sql-injection.sh +61 -0
  155. package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +109 -78
  156. package/claude-assets/hooks/cfn-post-edit.config.json +44 -44
  157. package/claude-assets/hooks/cfn-post-execution/memory-cleanup.sh +19 -19
  158. package/claude-assets/hooks/cfn-pre-edit-security-warning.sh +40 -0
  159. package/claude-assets/hooks/cfn-pre-execution/memory-check.sh +19 -19
  160. package/claude-assets/hooks/detect-hardcoded-credentials.sh +212 -0
  161. package/claude-assets/skills/SKILL_TEMPLATE.md +774 -0
  162. package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +543 -572
  163. package/claude-assets/skills/agent-lifecycle/simple-audit.sh +57 -30
  164. package/claude-assets/skills/agent-template-generator/SKILL.md +440 -0
  165. package/claude-assets/skills/agent-template-generator/generate-agent.sh +405 -0
  166. package/claude-assets/skills/agent-validation-linter/SKILL.md +589 -0
  167. package/claude-assets/skills/agent-validation-linter/lint-agents.sh +271 -0
  168. package/claude-assets/skills/bootstrap/bash-fundamentals.md +786 -0
  169. package/claude-assets/skills/bootstrap/database-connection.md +464 -0
  170. package/claude-assets/skills/bootstrap/error-handling.md +580 -0
  171. package/claude-assets/skills/bootstrap/file-operations.md +699 -0
  172. package/claude-assets/skills/bootstrap/skill-loader.md +616 -0
  173. package/claude-assets/skills/bootstrap/sqlite-params.sh +287 -0
  174. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  175. package/claude-assets/skills/cfn-automatic-memory-persistence/persist-agent-output.sh +48 -48
  176. package/claude-assets/skills/cfn-automatic-memory-persistence/query-agent-history.sh +34 -34
  177. package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +17 -16
  178. package/claude-assets/skills/cfn-deliverable-validation/confidence-calculator.sh +261 -261
  179. package/claude-assets/skills/cfn-deployment/SKILL.md +293 -0
  180. package/claude-assets/skills/cfn-deployment/execute.sh +21 -0
  181. package/claude-assets/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  182. package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  183. package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  184. package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +38 -0
  185. package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -47
  186. package/claude-assets/skills/cfn-expert-update/update-expert.sh +345 -345
  187. package/claude-assets/skills/cfn-file-operations/SKILL.md +290 -0
  188. package/claude-assets/skills/cfn-file-operations/execute.sh +129 -0
  189. package/claude-assets/skills/cfn-file-operations/lib/atomic-write.sh +294 -0
  190. package/claude-assets/skills/cfn-file-operations/lib/lock.sh +361 -0
  191. package/claude-assets/skills/cfn-file-operations/test.sh +369 -0
  192. package/claude-assets/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  193. package/claude-assets/skills/cfn-intervention-detector/detect-intervention.sh +110 -110
  194. package/claude-assets/skills/cfn-intervention-orchestrator/execute-intervention.sh +58 -58
  195. package/claude-assets/skills/cfn-log-operations/SKILL.md +308 -0
  196. package/claude-assets/skills/cfn-log-operations/execute.sh +420 -0
  197. package/claude-assets/skills/cfn-log-operations/lib/rotate.sh +406 -0
  198. package/claude-assets/skills/cfn-log-operations/lib/search.sh +448 -0
  199. package/claude-assets/skills/cfn-log-operations/test.sh +394 -0
  200. package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  201. package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  202. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
  203. package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  204. package/claude-assets/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  205. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  206. package/claude-assets/skills/cfn-loop2-output-processing/process-validator-output.sh +275 -275
  207. package/claude-assets/skills/cfn-memory-management/check-memory.sh +159 -159
  208. package/claude-assets/skills/cfn-memory-management/cleanup-memory.sh +196 -196
  209. package/claude-assets/skills/cfn-node-heap-sizer/task-mode-heap-limiter.sh +325 -325
  210. package/claude-assets/skills/cfn-parameterized-queries/SKILL.md +339 -0
  211. package/claude-assets/skills/cfn-playbook/query-playbook.sh +19 -15
  212. package/claude-assets/skills/cfn-playbook/update-playbook.sh +25 -14
  213. package/claude-assets/skills/cfn-playbook-auto-update/auto-update-playbook.sh +85 -85
  214. package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +44 -0
  215. package/claude-assets/skills/cfn-promotion/SKILL.md +305 -0
  216. package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  217. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +4 -0
  218. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  219. package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  220. package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  221. package/claude-assets/skills/cfn-redis-coordination/get-context.sh +145 -112
  222. package/claude-assets/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  223. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
  224. package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  225. package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +33 -0
  226. package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +24 -31
  227. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +4 -0
  228. package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  229. package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  230. package/claude-assets/skills/cfn-scope-simplifier/simplify-scope.sh +67 -67
  231. package/claude-assets/skills/cfn-skill-loader/SKILL.md +466 -0
  232. package/claude-assets/skills/cfn-skill-loader/execute.sh +344 -0
  233. package/claude-assets/skills/cfn-specialist-injection/recommend-specialist.sh +56 -56
  234. package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  235. package/claude-assets/skills/cfn-standardized-error-handling/capture-agent-error.sh +86 -86
  236. package/claude-assets/skills/cfn-standardized-error-handling/test-error-handling.sh +165 -165
  237. package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +42 -21
  238. package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +17 -10
  239. package/claude-assets/skills/cfn-task-config-init/initialize-config.sh +264 -264
  240. package/claude-assets/skills/cfn-task-decomposition/task-decomposer.sh +278 -278
  241. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh +17 -14
  242. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh.backup-1763392821 +55 -0
  243. package/claude-assets/skills/cfn-test-runner/store-benchmarks.sh +17 -19
  244. package/claude-assets/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  245. package/claude-assets/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  246. package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  247. package/claude-assets/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  248. package/claude-assets/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  249. package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +107 -92
  250. package/claude-assets/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  251. package/claude-assets/skills/cfn-utilities/SKILL.md +237 -0
  252. package/claude-assets/skills/cfn-utilities/execute.sh +32 -0
  253. package/claude-assets/skills/cfn-utilities/lib/errors.sh +56 -0
  254. package/claude-assets/skills/cfn-utilities/lib/file-ops.sh +164 -0
  255. package/claude-assets/skills/cfn-utilities/lib/logging.sh +77 -0
  256. package/claude-assets/skills/cfn-utilities/lib/retry.sh +127 -0
  257. package/claude-assets/skills/cfn-utilities/test.sh +317 -0
  258. package/claude-assets/skills/docker-build/SKILL.md +96 -203
  259. package/claude-assets/skills/docker-build/build.sh +73 -73
  260. package/claude-assets/skills/integration/agent-handoff.sh +492 -0
  261. package/claude-assets/skills/integration/file-operations.sh +414 -0
  262. package/claude-assets/skills/json-validation/SKILL.md +431 -0
  263. package/claude-assets/skills/json-validation/test-validate-success-criteria.sh +421 -0
  264. package/claude-assets/skills/json-validation/validate-success-criteria.sh +197 -0
  265. package/claude-assets/skills/redis-coordination/validate-parameters.sh +34 -0
  266. package/claude-assets/skills/workflow-codification/APPROVAL_WORKFLOW.md +806 -0
  267. package/claude-assets/skills/workflow-codification/COST_TRACKING.md +637 -0
  268. package/claude-assets/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md +106 -0
  269. package/claude-assets/skills/workflow-codification/EDGE_CASE_TRACKING.md +404 -0
  270. package/claude-assets/skills/workflow-codification/PROPAGATE_UPDATE_QUICK_REFERENCE.md +366 -0
  271. package/claude-assets/skills/workflow-codification/README_PHASE4.md +457 -0
  272. package/claude-assets/skills/workflow-codification/SKILL.md +110 -0
  273. package/claude-assets/skills/workflow-codification/analyze-patterns.sh +899 -0
  274. package/claude-assets/skills/workflow-codification/approval-workflow.sh +514 -0
  275. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh +481 -0
  276. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh.backup-1763392820 +512 -0
  277. package/claude-assets/skills/workflow-codification/generate-skill-update.sh +525 -0
  278. package/claude-assets/skills/workflow-codification/lib/security-utils.sh +204 -0
  279. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh +648 -0
  280. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh.backup-1763392820 +664 -0
  281. package/claude-assets/skills/workflow-codification/review-skill.sh +643 -0
  282. package/claude-assets/skills/workflow-codification/templates/email-notification.txt +114 -0
  283. package/claude-assets/skills/workflow-codification/templates/slack-notification.md +85 -0
  284. package/claude-assets/skills/workflow-codification/test-integration.sh +296 -0
  285. package/claude-assets/skills/workflow-codification/test-metadata-update.sh +350 -0
  286. package/claude-assets/skills/workflow-codification/track-cost-savings.sh +486 -0
  287. package/claude-assets/skills/workflow-codification/track-cost-savings.sh.backup-1763392821 +445 -0
  288. package/claude-assets/skills/workflow-codification/track-edge-case.sh +290 -0
  289. package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
  290. package/dist/ace/ace-curator.js +10 -2
  291. package/dist/ace/ace-curator.js.map +1 -1
  292. package/dist/ace/ace-generator.js +4 -0
  293. package/dist/ace/ace-generator.js.map +1 -1
  294. package/dist/ace/ace-reflector.js +1 -1
  295. package/dist/ace/ace-reflector.js.map +1 -1
  296. package/dist/ace/context-injection.js +24 -2
  297. package/dist/ace/context-injection.js.map +1 -1
  298. package/dist/agents/agent-loader.js +146 -165
  299. package/dist/agents/agent-loader.js.map +1 -1
  300. package/dist/agents/task-agent-integration.js +1 -1
  301. package/dist/agents/task-agent-integration.js.map +1 -1
  302. package/dist/api/health-endpoints.js +390 -0
  303. package/dist/api/health-endpoints.js.map +1 -0
  304. package/dist/cli/agent-executor.js +4 -1
  305. package/dist/cli/agent-executor.js.map +1 -1
  306. package/dist/cli/agent-prompt-builder.js +89 -1
  307. package/dist/cli/agent-prompt-builder.js.map +1 -1
  308. package/dist/cli/agent-spawn.js +130 -37
  309. package/dist/cli/agent-spawn.js.map +1 -1
  310. package/dist/cli/config-manager.js +91 -109
  311. package/dist/cli/config-manager.js.map +1 -1
  312. package/dist/cli/skill-cache-validator.js +412 -0
  313. package/dist/cli/skill-cache-validator.js.map +1 -0
  314. package/dist/cli/skill-cli.js +991 -0
  315. package/dist/cli/skill-cli.js.map +1 -0
  316. package/dist/cli/skill-execution-logger.js +284 -0
  317. package/dist/cli/skill-execution-logger.js.map +1 -0
  318. package/dist/cli/skill-loader.js +457 -0
  319. package/dist/cli/skill-loader.js.map +1 -0
  320. package/dist/coordination/event-bus.js +2 -2
  321. package/dist/coordination/event-bus.js.map +1 -1
  322. package/dist/coordination/fleet-manager.js +1 -1
  323. package/dist/coordination/fleet-manager.js.map +1 -1
  324. package/dist/coordination/index.js +23 -9
  325. package/dist/coordination/index.js.map +1 -1
  326. package/dist/coordination/types/fleet-manager.types.js.map +1 -1
  327. package/dist/db/migration-manager.js +483 -0
  328. package/dist/db/migration-manager.js.map +1 -0
  329. package/dist/db/skills-query.js +535 -0
  330. package/dist/db/skills-query.js.map +1 -0
  331. package/dist/integration/DatabaseHandoff.js +507 -0
  332. package/dist/integration/DatabaseHandoff.js.map +1 -0
  333. package/dist/integration/StandardAdapter.js +291 -0
  334. package/dist/integration/StandardAdapter.js.map +1 -0
  335. package/dist/jobs/edge-case-analyzer.js +367 -0
  336. package/dist/jobs/edge-case-analyzer.js.map +1 -0
  337. package/dist/jobs/promotion-sla-enforcer.js +288 -0
  338. package/dist/jobs/promotion-sla-enforcer.js.map +1 -0
  339. package/dist/lib/agent-output-parser.js +518 -0
  340. package/dist/lib/agent-output-parser.js.map +1 -0
  341. package/dist/lib/agent-output-validator.js +950 -0
  342. package/dist/lib/agent-output-validator.js.map +1 -0
  343. package/dist/lib/agent-workspace.js +281 -0
  344. package/dist/lib/agent-workspace.js.map +1 -0
  345. package/dist/lib/artifact-registry.js +443 -0
  346. package/dist/lib/artifact-registry.js.map +1 -0
  347. package/dist/lib/atomic-file-writer.js +377 -0
  348. package/dist/lib/atomic-file-writer.js.map +1 -0
  349. package/dist/lib/backup-manager.js +779 -0
  350. package/dist/lib/backup-manager.js.map +1 -0
  351. package/dist/lib/checkpoint-manager.js +837 -0
  352. package/dist/lib/checkpoint-manager.js.map +1 -0
  353. package/dist/lib/circuit-breaker.js +340 -0
  354. package/dist/lib/circuit-breaker.js.map +1 -0
  355. package/dist/lib/completion-signal-handler.js +243 -0
  356. package/dist/lib/completion-signal-handler.js.map +1 -0
  357. package/dist/lib/config-manager.js +312 -0
  358. package/dist/lib/config-manager.js.map +1 -0
  359. package/dist/lib/config-migrator.js +386 -0
  360. package/dist/lib/config-migrator.js.map +1 -0
  361. package/dist/lib/config-validator.js +687 -0
  362. package/dist/lib/config-validator.js.map +1 -0
  363. package/dist/lib/correlation-cache.js +311 -0
  364. package/dist/lib/correlation-cache.js.map +1 -0
  365. package/dist/lib/correlation.js +263 -0
  366. package/dist/lib/correlation.js.map +1 -0
  367. package/dist/lib/database-service/connection-pool-manager.js +520 -0
  368. package/dist/lib/database-service/connection-pool-manager.js.map +1 -0
  369. package/dist/lib/database-service/correlation.js +329 -0
  370. package/dist/lib/database-service/correlation.js.map +1 -0
  371. package/dist/lib/database-service/errors.js +120 -0
  372. package/dist/lib/database-service/errors.js.map +1 -0
  373. package/dist/lib/database-service/index.js +168 -0
  374. package/dist/lib/database-service/index.js.map +1 -0
  375. package/dist/lib/database-service/postgres-adapter.js +526 -0
  376. package/dist/lib/database-service/postgres-adapter.js.map +1 -0
  377. package/dist/lib/database-service/redis-adapter.js +360 -0
  378. package/dist/lib/database-service/redis-adapter.js.map +1 -0
  379. package/dist/lib/database-service/sqlite-adapter.js +544 -0
  380. package/dist/lib/database-service/sqlite-adapter.js.map +1 -0
  381. package/dist/lib/database-service/transaction-manager.js +773 -0
  382. package/dist/lib/database-service/transaction-manager.js.map +1 -0
  383. package/dist/lib/database-service/types.js +23 -0
  384. package/dist/lib/database-service/types.js.map +1 -0
  385. package/dist/lib/deadlock-resolver.js +292 -0
  386. package/dist/lib/deadlock-resolver.js.map +1 -0
  387. package/dist/lib/distributed-lock.js +451 -0
  388. package/dist/lib/distributed-lock.js.map +1 -0
  389. package/dist/lib/edge-case-deduplicator.js +227 -0
  390. package/dist/lib/edge-case-deduplicator.js.map +1 -0
  391. package/dist/lib/encryption-manager.js +322 -0
  392. package/dist/lib/encryption-manager.js.map +1 -0
  393. package/dist/lib/error-aggregator.js +234 -0
  394. package/dist/lib/error-aggregator.js.map +1 -0
  395. package/dist/lib/errors.js +287 -0
  396. package/dist/lib/errors.js.map +1 -0
  397. package/dist/lib/file-lock-manager.js +578 -0
  398. package/dist/lib/file-lock-manager.js.map +1 -0
  399. package/dist/lib/file-operations.js +367 -0
  400. package/dist/lib/file-operations.js.map +1 -0
  401. package/dist/lib/idempotent-write.js +237 -0
  402. package/dist/lib/idempotent-write.js.map +1 -0
  403. package/dist/lib/integration-schema-validator.js +522 -0
  404. package/dist/lib/integration-schema-validator.js.map +1 -0
  405. package/dist/lib/lock-health-monitor.js +298 -0
  406. package/dist/lib/lock-health-monitor.js.map +1 -0
  407. package/dist/lib/log-shipper.js +422 -0
  408. package/dist/lib/log-shipper.js.map +1 -0
  409. package/dist/lib/logging.js +146 -0
  410. package/dist/lib/logging.js.map +1 -0
  411. package/dist/lib/message-deduplicator.js +439 -0
  412. package/dist/lib/message-deduplicator.js.map +1 -0
  413. package/dist/lib/multi-system-query.js +604 -0
  414. package/dist/lib/multi-system-query.js.map +1 -0
  415. package/dist/lib/orphan-detector.js +332 -0
  416. package/dist/lib/orphan-detector.js.map +1 -0
  417. package/dist/lib/password-generator.js +166 -0
  418. package/dist/lib/password-generator.js.map +1 -0
  419. package/dist/lib/path-validator.js +429 -0
  420. package/dist/lib/path-validator.js.map +1 -0
  421. package/dist/lib/query-translator.js +905 -0
  422. package/dist/lib/query-translator.js.map +1 -0
  423. package/dist/lib/queue-recovery.js +469 -0
  424. package/dist/lib/queue-recovery.js.map +1 -0
  425. package/dist/lib/redis-queue-manager.js +512 -0
  426. package/dist/lib/redis-queue-manager.js.map +1 -0
  427. package/dist/lib/reflection-archiver.js +272 -0
  428. package/dist/lib/reflection-archiver.js.map +1 -0
  429. package/dist/lib/retry-manager.js +453 -0
  430. package/dist/lib/retry-manager.js.map +1 -0
  431. package/dist/lib/retry.js +262 -0
  432. package/dist/lib/retry.js.map +1 -0
  433. package/dist/lib/schema-transform.js +695 -0
  434. package/dist/lib/schema-transform.js.map +1 -0
  435. package/dist/lib/schema-validator.js +491 -0
  436. package/dist/lib/schema-validator.js.map +1 -0
  437. package/dist/lib/skill-cache.js +297 -0
  438. package/dist/lib/skill-cache.js.map +1 -0
  439. package/dist/lib/skill-content-manager.js +337 -0
  440. package/dist/lib/skill-content-manager.js.map +1 -0
  441. package/dist/lib/skill-frontmatter-parser.js +237 -0
  442. package/dist/lib/skill-frontmatter-parser.js.map +1 -0
  443. package/dist/lib/skill-git-integration.js +275 -0
  444. package/dist/lib/skill-git-integration.js.map +1 -0
  445. package/dist/lib/skill-markdown-validator.js +396 -0
  446. package/dist/lib/skill-markdown-validator.js.map +1 -0
  447. package/dist/lib/skill-output-parser.js +312 -0
  448. package/dist/lib/skill-output-parser.js.map +1 -0
  449. package/dist/lib/unified-query-api.js +467 -0
  450. package/dist/lib/unified-query-api.js.map +1 -0
  451. package/dist/middleware/auth-middleware.js +350 -0
  452. package/dist/middleware/auth-middleware.js.map +1 -0
  453. package/dist/middleware/schema-validation.js +347 -0
  454. package/dist/middleware/schema-validation.js.map +1 -0
  455. package/dist/providers/anthropic-provider.js +1 -1
  456. package/dist/providers/anthropic-provider.js.map +1 -1
  457. package/dist/providers/provider-factory.js +2 -2
  458. package/dist/providers/provider-factory.js.map +1 -1
  459. package/dist/services/edge-case-analyzer.js +321 -0
  460. package/dist/services/edge-case-analyzer.js.map +1 -0
  461. package/dist/services/edge-case-deduplicator.js +266 -0
  462. package/dist/services/edge-case-deduplicator.js.map +1 -0
  463. package/dist/services/edge-case-detector.js +337 -0
  464. package/dist/services/edge-case-detector.js.map +1 -0
  465. package/dist/services/edge-case-tracker.js +547 -0
  466. package/dist/services/edge-case-tracker.js.map +1 -0
  467. package/dist/services/health-check-system.js +586 -0
  468. package/dist/services/health-check-system.js.map +1 -0
  469. package/dist/services/metrics-logger.js +412 -0
  470. package/dist/services/metrics-logger.js.map +1 -0
  471. package/dist/services/patch-generator.js +378 -0
  472. package/dist/services/patch-generator.js.map +1 -0
  473. package/dist/services/patch-validator.js +337 -0
  474. package/dist/services/patch-validator.js.map +1 -0
  475. package/dist/services/performance-monitor.js +811 -0
  476. package/dist/services/performance-monitor.js.map +1 -0
  477. package/dist/services/promotion-pipeline.js +918 -0
  478. package/dist/services/promotion-pipeline.js.map +1 -0
  479. package/dist/services/promotion-validator.js +394 -0
  480. package/dist/services/promotion-validator.js.map +1 -0
  481. package/dist/services/reflection-logger.js +388 -0
  482. package/dist/services/reflection-logger.js.map +1 -0
  483. package/dist/services/skill-deployment.js +472 -0
  484. package/dist/services/skill-deployment.js.map +1 -0
  485. package/dist/services/skill-loader.js +427 -0
  486. package/dist/services/skill-loader.js.map +1 -0
  487. package/dist/services/skill-promotion.js +372 -0
  488. package/dist/services/skill-promotion.js.map +1 -0
  489. package/dist/services/skill-validator.js +454 -0
  490. package/dist/services/skill-validator.js.map +1 -0
  491. package/dist/services/skill-versioning.js +244 -0
  492. package/dist/services/skill-versioning.js.map +1 -0
  493. package/dist/services/workspace-supervisor.js +597 -0
  494. package/dist/services/workspace-supervisor.js.map +1 -0
  495. package/dist/types/agent-output.js +44 -0
  496. package/dist/types/agent-output.js.map +1 -0
  497. package/dist/types/config.js +28 -0
  498. package/dist/types/config.js.map +1 -0
  499. package/dist/types/edge-case.js +45 -0
  500. package/dist/types/edge-case.js.map +1 -0
  501. package/package.json +201 -176
  502. package/readme/README.md +19 -4
  503. package/scripts/artifact-cleanup.sh +392 -0
  504. package/scripts/backup-cleanup.sh +627 -0
  505. package/scripts/cleanup-workspaces.sh +412 -0
  506. package/scripts/cleanup-yaml-configs.sh +141 -0
  507. package/scripts/deploy-approved-skills.sh +263 -0
  508. package/scripts/deploy-production.sh +355 -355
  509. package/scripts/docker-playwright-fix.sh +311 -311
  510. package/scripts/docker-rebuild-all-agents.sh +127 -127
  511. package/scripts/health-check.sh +447 -0
  512. package/scripts/log-aggregator.sh +554 -0
  513. package/scripts/log-monitor.sh +629 -0
  514. package/scripts/manage-agent-workspaces.sh +434 -0
  515. package/scripts/memory-leak-prevention.sh +305 -305
  516. package/scripts/migrate-artifacts.sh +563 -0
  517. package/scripts/migrate-schema.sh +533 -0
  518. package/scripts/migrate-yaml-to-json.sh +465 -0
  519. package/scripts/promote-staged-skills.sh +423 -0
  520. package/scripts/run-marketing-tests.sh +42 -42
  521. package/scripts/update_paths.sh +46 -46
  522. package/scripts/verify-no-secrets.sh +88 -35
  523. package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  524. package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  525. package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  526. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  527. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
  528. package/README.md.backup_before_replace +0 -781
  529. package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  530. package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  531. package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  532. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  533. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Agent Logging Utility - Dual output (terminal + Redis)
4
+ #
5
+ # Usage:
6
+ # source agent-log.sh
7
+ # agent_log "info" "Message here"
8
+ # agent_log "error" "Error occurred"
9
+ #
10
+ # Or as standalone:
11
+ # ./agent-log.sh "info" "Agent started" --agent-id "researcher-1" --task-id "task-123"
12
+
13
+ set -euo pipefail
14
+
15
+ # Color codes for terminal output
16
+ COLOR_RESET="\033[0m"
17
+ COLOR_DEBUG="\033[0;36m" # Cyan
18
+ COLOR_INFO="\033[0;32m" # Green
19
+ COLOR_WARN="\033[0;33m" # Yellow
20
+ COLOR_ERROR="\033[0;31m" # Red
21
+ COLOR_AGENT="\033[0;35m" # Magenta
22
+
23
+ # Get color for log level
24
+ get_log_color() {
25
+ local level="$1"
26
+ case "$level" in
27
+ debug) echo "$COLOR_DEBUG" ;;
28
+ info) echo "$COLOR_INFO" ;;
29
+ warn) echo "$COLOR_WARN" ;;
30
+ error) echo "$COLOR_ERROR" ;;
31
+ *) echo "$COLOR_RESET" ;;
32
+ esac
33
+ }
34
+
35
+ # Main logging function
36
+ # Usage: agent_log <level> <message> [--agent-id <id>] [--task-id <id>] [--no-terminal] [--no-redis]
37
+ agent_log() {
38
+ local LEVEL="${1:-info}"
39
+ local MESSAGE="${2:-}"
40
+ local AGENT_ID="${AGENT_ID:-unknown}"
41
+ local TASK_ID="${TASK_ID:-unknown}"
42
+ local REPOSITORY=$(basename "$(pwd)")
43
+ local NO_TERMINAL=false
44
+ local NO_REDIS=false
45
+
46
+ # Parse optional arguments
47
+ shift 2 || true
48
+ while [[ $# -gt 0 ]]; do
49
+ case "$1" in
50
+ --agent-id)
51
+ AGENT_ID="$2"
52
+ shift 2
53
+ ;;
54
+ --task-id)
55
+ TASK_ID="$2"
56
+ shift 2
57
+ ;;
58
+ --no-terminal)
59
+ NO_TERMINAL=true
60
+ shift
61
+ ;;
62
+ --no-redis)
63
+ NO_REDIS=true
64
+ shift
65
+ ;;
66
+ *)
67
+ shift
68
+ ;;
69
+ esac
70
+ done
71
+
72
+ local TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
73
+ local COLOR=$(get_log_color "$LEVEL")
74
+
75
+ # 1. Terminal output (with colors)
76
+ if [ "$NO_TERMINAL" = false ]; then
77
+ echo -e "${COLOR}[${LEVEL^^}]${COLOR_RESET} ${COLOR_AGENT}[${AGENT_ID}]${COLOR_RESET} ${MESSAGE}"
78
+ fi
79
+
80
+ # 2. File output (no colors, in /tmp)
81
+ local LOG_FILE="/tmp/agent-${AGENT_ID}.log"
82
+ echo "[${TIMESTAMP}] [${LEVEL^^}] [${AGENT_ID}] ${MESSAGE}" >> "$LOG_FILE"
83
+
84
+ # 3. Redis pub/sub (for portal)
85
+ if [ "$NO_REDIS" = false ]; then
86
+ local LOG_PAYLOAD=$(cat <<EOF
87
+ {
88
+ "level": "${LEVEL}",
89
+ "message": "${MESSAGE}",
90
+ "agentId": "${AGENT_ID}",
91
+ "taskId": "${TASK_ID}",
92
+ "repository": "${REPOSITORY}",
93
+ "timestamp": "${TIMESTAMP}"
94
+ }
95
+ EOF
96
+ )
97
+
98
+ # Publish to Redis channel: swarm:<task-id>:logs
99
+ redis-cli publish "swarm:${TASK_ID}:logs" "$LOG_PAYLOAD" > /dev/null 2>&1 || true
100
+
101
+ # Also add to sorted set for persistence (with timestamp as score)
102
+ local SCORE=$(date +%s)
103
+ redis-cli zadd "swarm:${TASK_ID}:logs:history" "$SCORE" "$LOG_PAYLOAD" > /dev/null 2>&1 || true
104
+
105
+ # Set TTL on history (7 days)
106
+ redis-cli expire "swarm:${TASK_ID}:logs:history" 604800 > /dev/null 2>&1 || true
107
+ fi
108
+ }
109
+
110
+ # If script is executed directly (not sourced)
111
+ if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
112
+ if [ $# -lt 2 ]; then
113
+ echo "Usage: $0 <level> <message> [--agent-id <id>] [--task-id <id>]"
114
+ echo ""
115
+ echo "Levels: debug, info, warn, error"
116
+ echo ""
117
+ echo "Examples:"
118
+ echo " $0 info \"Agent started\" --agent-id researcher-1 --task-id task-123"
119
+ echo " $0 error \"Connection failed\" --agent-id reviewer-2 --task-id task-456"
120
+ exit 1
121
+ fi
122
+
123
+ agent_log "$@"
124
+ fi
@@ -1,75 +1,75 @@
1
- #!/bin/bash
2
- # Redis Coordination Skill - Agent Emergency Recovery
3
- # Version: 1.0.0
4
- # Last Updated: 2025-10-19
5
-
6
- # Strict error handling
7
- set -euo pipefail
8
-
9
- # Default values
10
- TASK_ID=""
11
- AGENT_ID=""
12
- RECOVERY_MODE="soft" # Options: soft, hard
13
-
14
- # Parse command-line arguments
15
- while [[ $# -gt 0 ]]; do
16
- case "$1" in
17
- --task-id)
18
- TASK_ID="$2"
19
- shift 2
20
- ;;
21
- --agent-id)
22
- AGENT_ID="$2"
23
- shift 2
24
- ;;
25
- --mode)
26
- RECOVERY_MODE="$2"
27
- shift 2
28
- ;;
29
- *)
30
- echo "Unknown parameter: $1"
31
- exit 1
32
- ;;
33
- esac
34
- done
35
-
36
- # Validate required parameters
37
- if [[ -z "$TASK_ID" || -z "$AGENT_ID" ]]; then
38
- echo "Error: task-id and agent-id are required"
39
- exit 1
40
- fi
41
-
42
- # Log recovery attempt
43
- echo "[$(date -u)] Attempting ${RECOVERY_MODE} recovery for agent: ${AGENT_ID}" >> /var/log/claude-flow/agent-recovery.log
44
-
45
- # Retrieve agent context before recovery
46
- AGENT_CONTEXT=$(redis-cli get "swarm:${TASK_ID}:${AGENT_ID}:context")
47
-
48
- # Recovery actions based on mode
49
- case "$RECOVERY_MODE" in
50
- "soft")
51
- # Soft recovery: Spawn new agent with previous context
52
- npx claude-flow@alpha spawn "$AGENT_ID" \
53
- --task-id "$TASK_ID" \
54
- --recovery-context "$AGENT_CONTEXT"
55
- ;;
56
- "hard")
57
- # Hard recovery: Full agent replacement
58
- npx claude-flow@alpha spawn "$AGENT_ID" \
59
- --task-id "$TASK_ID" \
60
- --mode replace \
61
- --recovery-context "$AGENT_CONTEXT"
62
- ;;
63
- *)
64
- echo "Invalid recovery mode: ${RECOVERY_MODE}"
65
- exit 1
66
- ;;
67
- esac
68
-
69
- # Update active agents set
70
- redis-cli sadd "swarm:${TASK_ID}:active-agents" "$AGENT_ID"
71
-
72
- # Log recovery completion
73
- echo "[$(date -u)] Recovery completed for agent: ${AGENT_ID}" >> /var/log/claude-flow/agent-recovery.log
74
-
1
+ #!/bin/bash
2
+ # Redis Coordination Skill - Agent Emergency Recovery
3
+ # Version: 1.0.0
4
+ # Last Updated: 2025-10-19
5
+
6
+ # Strict error handling
7
+ set -euo pipefail
8
+
9
+ # Default values
10
+ TASK_ID=""
11
+ AGENT_ID=""
12
+ RECOVERY_MODE="soft" # Options: soft, hard
13
+
14
+ # Parse command-line arguments
15
+ while [[ $# -gt 0 ]]; do
16
+ case "$1" in
17
+ --task-id)
18
+ TASK_ID="$2"
19
+ shift 2
20
+ ;;
21
+ --agent-id)
22
+ AGENT_ID="$2"
23
+ shift 2
24
+ ;;
25
+ --mode)
26
+ RECOVERY_MODE="$2"
27
+ shift 2
28
+ ;;
29
+ *)
30
+ echo "Unknown parameter: $1"
31
+ exit 1
32
+ ;;
33
+ esac
34
+ done
35
+
36
+ # Validate required parameters
37
+ if [[ -z "$TASK_ID" || -z "$AGENT_ID" ]]; then
38
+ echo "Error: task-id and agent-id are required"
39
+ exit 1
40
+ fi
41
+
42
+ # Log recovery attempt
43
+ echo "[$(date -u)] Attempting ${RECOVERY_MODE} recovery for agent: ${AGENT_ID}" >> /var/log/claude-flow/agent-recovery.log
44
+
45
+ # Retrieve agent context before recovery
46
+ AGENT_CONTEXT=$(redis-cli get "swarm:${TASK_ID}:${AGENT_ID}:context")
47
+
48
+ # Recovery actions based on mode
49
+ case "$RECOVERY_MODE" in
50
+ "soft")
51
+ # Soft recovery: Spawn new agent with previous context
52
+ cfn-spawn agent "$AGENT_ID" \
53
+ --task-id "$TASK_ID" \
54
+ --recovery-context "$AGENT_CONTEXT"
55
+ ;;
56
+ "hard")
57
+ # Hard recovery: Full agent replacement
58
+ cfn-spawn agent "$AGENT_ID" \
59
+ --task-id "$TASK_ID" \
60
+ --mode replace \
61
+ --recovery-context "$AGENT_CONTEXT"
62
+ ;;
63
+ *)
64
+ echo "Invalid recovery mode: ${RECOVERY_MODE}"
65
+ exit 1
66
+ ;;
67
+ esac
68
+
69
+ # Update active agents set
70
+ redis-cli sadd "swarm:${TASK_ID}:active-agents" "$AGENT_ID"
71
+
72
+ # Log recovery completion
73
+ echo "[$(date -u)] Recovery completed for agent: ${AGENT_ID}" >> /var/log/claude-flow/agent-recovery.log
74
+
75
75
  exit 0
@@ -18,6 +18,36 @@
18
18
 
19
19
  set -euo pipefail
20
20
 
21
+ # Validate required tools are available
22
+ MISSING_TOOLS=()
23
+ for TOOL in redis-cli jq bc; do
24
+ if ! command -v "$TOOL" >/dev/null 2>&1; then
25
+ MISSING_TOOLS+=("$TOOL")
26
+ fi
27
+ done
28
+
29
+ if [ ${#MISSING_TOOLS[@]} -gt 0 ]; then
30
+ echo "❌ ERROR: Required tools not found: ${MISSING_TOOLS[*]}" >&2
31
+ echo " Install missing tools and retry" >&2
32
+ exit 1
33
+ fi
34
+
35
+ # Source centralized Redis functions (provides graceful fallback for Task mode)
36
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
37
+
38
+ # Verify redis-functions.sh exists and is readable before sourcing
39
+ REDIS_FUNCTIONS="${SCRIPT_DIR}/redis-functions.sh"
40
+ if [ ! -r "$REDIS_FUNCTIONS" ]; then
41
+ echo "❌ ERROR: Cannot read redis-functions.sh at: $REDIS_FUNCTIONS" >&2
42
+ exit 1
43
+ fi
44
+
45
+ # Source with explicit error handling
46
+ if ! source "$REDIS_FUNCTIONS"; then
47
+ echo "❌ ERROR: Failed to source redis-functions.sh" >&2
48
+ exit 1
49
+ fi
50
+
21
51
  # Debug mode (set DEBUG=true for verbose output)
22
52
  DEBUG="${DEBUG:-false}"
23
53
 
@@ -1,113 +1,146 @@
1
- #!/bin/bash
2
- # Retrieve CFN Loop task context from Redis
3
- # Used by CLI-spawned agents to get structured context from orchestrator
4
- #
5
- # Usage:
6
- # get-context.sh --task-id <id> [--namespace <ns>]
7
- # get-context.sh --task-id <id> --key <key> [--namespace <ns>]
8
- # get-context.sh <task_id> (legacy mode)
9
-
10
- set -euo pipefail
11
-
12
- # Initialize variables
13
- TASK_ID=""
14
- KEY=""
15
- NAMESPACE="swarm"
16
- FORMAT="json" # json or raw
17
-
18
- # Parse arguments
19
- while [[ $# -gt 0 ]]; do
20
- case $1 in
21
- --task-id)
22
- TASK_ID="$2"
23
- shift 2
24
- ;;
25
- --key)
26
- KEY="$2"
27
- shift 2
28
- ;;
29
- --namespace)
30
- NAMESPACE="$2"
31
- shift 2
32
- ;;
33
- --format)
34
- FORMAT="$2"
35
- shift 2
36
- ;;
37
- *)
38
- # Legacy mode: positional argument
39
- if [ -z "$TASK_ID" ]; then
40
- TASK_ID="$1"
41
- fi
42
- shift
43
- ;;
44
- esac
45
- done
46
-
47
- # Validate required arguments
48
- if [ -z "$TASK_ID" ]; then
49
- echo "Error: --task-id or TASK_ID required" >&2
50
- echo "Usage: $0 --task-id <id> [--key <key>] [--namespace <ns>] [--format <json|raw>]" >&2
51
- echo " or: $0 <task_id> (legacy)" >&2
52
- exit 1
53
- fi
54
-
55
- REDIS_KEY="${NAMESPACE}:${TASK_ID}:context"
56
-
57
- # Check if context exists
58
- if ! redis-cli EXISTS "$REDIS_KEY" >/dev/null 2>&1; then
59
- echo "⚠️ No context found for task: $TASK_ID" >&2
60
- exit 1
61
- fi
62
-
63
- # Handle specific key retrieval
64
- if [ -n "$KEY" ]; then
65
- VALUE=$(redis-cli HGET "$REDIS_KEY" "$KEY" 2>/dev/null || echo "")
66
- if [ -z "$VALUE" ]; then
67
- echo "⚠️ Key '$KEY' not found in context for task: $TASK_ID" >&2
68
- exit 1
69
- fi
70
-
71
- if [ "$FORMAT" = "raw" ]; then
72
- echo "$VALUE"
73
- else
74
- echo "{\"$KEY\":$VALUE}"
75
- fi
76
- exit 0
77
- fi
78
-
79
- # Handle full context retrieval
80
- ALL_FIELDS=$(redis-cli HGETALL "$REDIS_KEY" 2>/dev/null || echo "")
81
-
82
- if [ -z "$ALL_FIELDS" ]; then
83
- echo "⚠️ Empty context for task: $TASK_ID" >&2
84
- exit 1
85
- fi
86
-
87
- # Format as JSON
88
- if [ "$FORMAT" = "json" ]; then
89
- echo "{"
90
- first=true
91
- while IFS= read -r field; do
92
- if [ -z "$field" ]; then continue; fi
93
- if [ "$first" = true ]; then
94
- first=false
95
- else
96
- echo ","
97
- fi
98
- # Skip empty lines and properly format JSON values
99
- if [[ $field =~ ^[0-9]+$ ]]; then
100
- # Numeric value
101
- echo -n " \"$field\": $(redis-cli HGET "$REDIS_KEY" "$field")"
102
- else
103
- # String value
104
- value=$(redis-cli HGET "$REDIS_KEY" "$field" | sed 's/"/\\"/g')
105
- echo -n " \"$field\": \"$value\""
106
- fi
107
- done <<< "$ALL_FIELDS"
108
- echo ""
109
- echo "}"
110
- else
111
- # Raw format
112
- redis-cli HGETALL "$REDIS_KEY"
1
+ #!/bin/bash
2
+ # Retrieve CFN Loop task context from Redis
3
+ # Used by CLI-spawned agents to get structured context from orchestrator
4
+ #
5
+ # Usage:
6
+ # get-context.sh --task-id <id> [--namespace <ns>]
7
+ # get-context.sh --task-id <id> --key <key> [--namespace <ns>]
8
+ # get-context.sh <task_id> (legacy mode)
9
+
10
+ set -euo pipefail
11
+
12
+ # Source centralized Redis functions with defensive fallback
13
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14
+ REDIS_FUNCTIONS="${SCRIPT_DIR}/redis-functions.sh"
15
+
16
+ # Check if redis-functions.sh exists and is readable
17
+ if [ ! -r "$REDIS_FUNCTIONS" ]; then
18
+ echo "⚠️ WARNING: Cannot read redis-functions.sh at: $REDIS_FUNCTIONS" >&2
19
+ echo " Operating in Task mode-only (no Redis coordination)" >&2
20
+ # Define minimal fallback stubs for Task mode
21
+ redis-cli() {
22
+ echo "⚠️ Redis unavailable in Task mode - no-op" >&2
23
+ return 0
24
+ }
25
+ export -f redis-cli
26
+ else
27
+ # Attempt to source with controlled error handling
28
+ set +e # Temporarily disable errexit
29
+ source "$REDIS_FUNCTIONS" 2>/dev/null
30
+ SOURCE_STATUS=$?
31
+ set -e # Re-enable errexit
32
+
33
+ if [ $SOURCE_STATUS -ne 0 ]; then
34
+ echo "⚠️ WARNING: Failed to source redis-functions.sh (exit code: $SOURCE_STATUS)" >&2
35
+ echo " Operating in Task mode-only (no Redis coordination)" >&2
36
+ # Define minimal fallback stubs
37
+ redis-cli() {
38
+ echo "⚠️ Redis unavailable - no-op" >&2
39
+ return 0
40
+ }
41
+ export -f redis-cli
42
+ fi
43
+ fi
44
+
45
+ # Initialize variables
46
+ TASK_ID=""
47
+ KEY=""
48
+ NAMESPACE="swarm"
49
+ FORMAT="json" # json or raw
50
+
51
+ # Parse arguments
52
+ while [[ $# -gt 0 ]]; do
53
+ case $1 in
54
+ --task-id)
55
+ TASK_ID="$2"
56
+ shift 2
57
+ ;;
58
+ --key)
59
+ KEY="$2"
60
+ shift 2
61
+ ;;
62
+ --namespace)
63
+ NAMESPACE="$2"
64
+ shift 2
65
+ ;;
66
+ --format)
67
+ FORMAT="$2"
68
+ shift 2
69
+ ;;
70
+ *)
71
+ # Legacy mode: positional argument
72
+ if [ -z "$TASK_ID" ]; then
73
+ TASK_ID="$1"
74
+ fi
75
+ shift
76
+ ;;
77
+ esac
78
+ done
79
+
80
+ # Validate required arguments
81
+ if [ -z "$TASK_ID" ]; then
82
+ echo "Error: --task-id or TASK_ID required" >&2
83
+ echo "Usage: $0 --task-id <id> [--key <key>] [--namespace <ns>] [--format <json|raw>]" >&2
84
+ echo " or: $0 <task_id> (legacy)" >&2
85
+ exit 1
86
+ fi
87
+
88
+ REDIS_KEY="${NAMESPACE}:${TASK_ID}:context"
89
+
90
+ # Check if context exists
91
+ if ! redis-cli EXISTS "$REDIS_KEY" >/dev/null 2>&1; then
92
+ echo "⚠️ No context found for task: $TASK_ID" >&2
93
+ exit 1
94
+ fi
95
+
96
+ # Handle specific key retrieval
97
+ if [ -n "$KEY" ]; then
98
+ VALUE=$(redis-cli HGET "$REDIS_KEY" "$KEY" 2>/dev/null || echo "")
99
+ if [ -z "$VALUE" ]; then
100
+ echo "⚠️ Key '$KEY' not found in context for task: $TASK_ID" >&2
101
+ exit 1
102
+ fi
103
+
104
+ if [ "$FORMAT" = "raw" ]; then
105
+ echo "$VALUE"
106
+ else
107
+ echo "{\"$KEY\":$VALUE}"
108
+ fi
109
+ exit 0
110
+ fi
111
+
112
+ # Handle full context retrieval
113
+ ALL_FIELDS=$(redis-cli HGETALL "$REDIS_KEY" 2>/dev/null || echo "")
114
+
115
+ if [ -z "$ALL_FIELDS" ]; then
116
+ echo "⚠️ Empty context for task: $TASK_ID" >&2
117
+ exit 1
118
+ fi
119
+
120
+ # Format as JSON
121
+ if [ "$FORMAT" = "json" ]; then
122
+ echo "{"
123
+ first=true
124
+ while IFS= read -r field; do
125
+ if [ -z "$field" ]; then continue; fi
126
+ if [ "$first" = true ]; then
127
+ first=false
128
+ else
129
+ echo ","
130
+ fi
131
+ # Skip empty lines and properly format JSON values
132
+ if [[ $field =~ ^[0-9]+$ ]]; then
133
+ # Numeric value
134
+ echo -n " \"$field\": $(redis-cli HGET "$REDIS_KEY" "$field")"
135
+ else
136
+ # String value
137
+ value=$(redis-cli HGET "$REDIS_KEY" "$field" | sed 's/"/\\"/g')
138
+ echo -n " \"$field\": \"$value\""
139
+ fi
140
+ done <<< "$ALL_FIELDS"
141
+ echo ""
142
+ echo "}"
143
+ else
144
+ # Raw format
145
+ redis-cli HGETALL "$REDIS_KEY"
113
146
  fi
@@ -0,0 +1,54 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # Retrieve success criteria from Redis
5
+ # Usage: get-success-criteria.sh --task-id TASK_ID
6
+ # Output: JSON string (stdout) or error message (stderr)
7
+
8
+ TASK_ID=""
9
+
10
+ # Parse arguments
11
+ while [[ $# -gt 0 ]]; do
12
+ case "$1" in
13
+ --task-id)
14
+ TASK_ID="$2"
15
+ shift 2
16
+ ;;
17
+ *)
18
+ echo "❌ Unknown option: $1" >&2
19
+ echo "Usage: get-success-criteria.sh --task-id TASK_ID" >&2
20
+ exit 1
21
+ ;;
22
+ esac
23
+ done
24
+
25
+ # Validate input
26
+ if [[ -z "$TASK_ID" ]]; then
27
+ echo "❌ --task-id required" >&2
28
+ exit 1
29
+ fi
30
+
31
+ # SECURITY FIX: Validate TASK_ID format (prevent Redis key injection)
32
+ if ! [[ "$TASK_ID" =~ ^[a-zA-Z0-9_-]+$ ]]; then
33
+ echo "❌ Invalid TASK_ID format: $TASK_ID (must be alphanumeric, dash, underscore only)" >&2
34
+ exit 1
35
+ fi
36
+
37
+ # Retrieve from Redis
38
+ REDIS_KEY="swarm:${TASK_ID}:config:success_criteria"
39
+ CRITERIA=$(redis-cli GET "$REDIS_KEY" 2>/dev/null || echo "")
40
+
41
+ # Check if criteria exists
42
+ if [[ -z "$CRITERIA" ]] || [[ "$CRITERIA" == "null" ]]; then
43
+ echo "⚠️ No success criteria found for task $TASK_ID" >&2
44
+ exit 1
45
+ fi
46
+
47
+ # Validate JSON before output
48
+ if ! echo "$CRITERIA" | jq empty 2>/dev/null; then
49
+ echo "❌ Invalid JSON in stored criteria" >&2
50
+ exit 1
51
+ fi
52
+
53
+ # Output to stdout (clean output for piping)
54
+ echo "$CRITERIA"
@@ -7,7 +7,10 @@
7
7
 
8
8
  set -euo pipefail
9
9
 
10
+ # Source centralized Redis functions (provides graceful fallback for Task mode)
10
11
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12
+ source "${SCRIPT_DIR}/redis-functions.sh"
13
+
11
14
  REDIS_COORD_SKILL="$SCRIPT_DIR"
12
15
 
13
16
  # Parse arguments
@@ -1,9 +1,30 @@
1
1
  #!/bin/bash
2
- # Wrapper for redis-cli that enforces environment variable usage
3
- # This ensures all Redis commands use REDIS_HOST/REDIS_PORT instead of hardcoded localhost:6379
2
+ # Wrapper for redis-cli with graceful fallback for Task mode
3
+ # Enforces environment variable usage and handles Redis unavailability
4
+ #
5
+ # ANTI-023 Memory Leak Protection:
6
+ # - Task mode: Redis unavailable → soft fail (exit 0)
7
+ # - CLI/Docker mode: Redis available → normal execution
4
8
  set -euo pipefail
5
9
 
6
10
  REDIS_HOST="${REDIS_HOST:-localhost}"
7
11
  REDIS_PORT="${REDIS_PORT:-6379}"
12
+ REDIS_PASSWORD="${REDIS_PASSWORD:-${CFN_REDIS_PASSWORD:-}}" # Support both env vars
8
13
 
9
- exec redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" "$@"
14
+ # Build auth arguments for redis-cli
15
+ AUTH_ARGS=()
16
+ if [ -n "$REDIS_PASSWORD" ]; then
17
+ AUTH_ARGS=("-a" "$REDIS_PASSWORD")
18
+ fi
19
+
20
+ # Graceful Redis availability check (1 second timeout, with auth if provided)
21
+ if ! timeout 1 redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" "${AUTH_ARGS[@]}" ping &>/dev/null; then
22
+ # Redis unavailable - likely Task mode or Redis service down
23
+ echo "⚠️ Redis unavailable - command skipped (soft fail)" >&2
24
+ echo "💡 This is expected in Task mode (Main Chat coordination)" >&2
25
+ echo "🔧 Agents should output JSON directly instead of Redis coordination" >&2
26
+ exit 0 # Soft fail - don't break agent execution
27
+ fi
28
+
29
+ # Redis available - execute command normally (CLI/Docker mode, with auth if provided)
30
+ exec redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" "${AUTH_ARGS[@]}" "$@"