claude-flow-novice 2.9.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/.claude/agents/cfn-dev-team/CLAUDE.md +1086 -0
  2. package/.claude/agents/cfn-dev-team/README.md +116 -0
  3. package/.claude/agents/cfn-dev-team/architecture/api-designer-persona.md +149 -0
  4. package/.claude/agents/cfn-dev-team/architecture/base-template-generator.md +196 -0
  5. package/.claude/agents/cfn-dev-team/architecture/goal-planner.md +183 -0
  6. package/.claude/agents/cfn-dev-team/architecture/planner.md +182 -0
  7. package/.claude/agents/cfn-dev-team/architecture/system-architect.md +162 -0
  8. package/.claude/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +540 -0
  9. package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +20 -14
  10. package/.claude/agents/cfn-dev-team/coordinators/consensus-builder.md +167 -0
  11. package/.claude/agents/cfn-dev-team/dev-ops/devops-engineer.md +148 -0
  12. package/.claude/agents/cfn-dev-team/dev-ops/github-commit-agent.md +118 -0
  13. package/.claude/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +540 -0
  14. package/.claude/agents/cfn-dev-team/developers/backend-dev.md +20 -0
  15. package/.claude/agents/cfn-dev-team/developers/data/data-engineer.md +585 -0
  16. package/.claude/agents/cfn-dev-team/developers/database/database-architect.md +276 -0
  17. package/.claude/agents/cfn-dev-team/developers/dev-backend-api.md +147 -0
  18. package/.claude/agents/cfn-dev-team/developers/frontend/mobile-dev.md +218 -0
  19. package/.claude/agents/cfn-dev-team/developers/{react-frontend-engineer.md → frontend/react-frontend-engineer.md} +53 -5
  20. package/.claude/agents/cfn-dev-team/developers/frontend/spec-mobile-react-native.md +199 -0
  21. package/.claude/agents/cfn-dev-team/developers/graphql-specialist.md +615 -0
  22. package/.claude/agents/cfn-dev-team/developers/rust-developer.md +174 -0
  23. package/.claude/agents/cfn-dev-team/documentation/README-VALIDATION.md +243 -0
  24. package/.claude/agents/cfn-dev-team/documentation/agent-type-guidelines.md +465 -0
  25. package/.claude/agents/cfn-dev-team/documentation/api-docs.md +103 -0
  26. package/.claude/agents/cfn-dev-team/documentation/docs-api-openapi.md +98 -0
  27. package/.claude/agents/cfn-dev-team/documentation/pseudocode.md +159 -0
  28. package/.claude/agents/cfn-dev-team/documentation/specification.md +157 -0
  29. package/.claude/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +109 -0
  30. package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/cto-agent.md +8 -6
  31. package/.claude/agents/cfn-dev-team/product-owners/power-user-persona.md +190 -0
  32. package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner.md +85 -59
  33. package/.claude/agents/cfn-dev-team/reviewers/quality/analyze-code-quality.md +141 -0
  34. package/.claude/agents/cfn-dev-team/reviewers/quality/code-analyzer.md +200 -0
  35. package/.claude/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +321 -0
  36. package/.claude/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +238 -0
  37. package/.claude/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +101 -0
  38. package/.claude/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +375 -0
  39. package/.claude/agents/cfn-dev-team/reviewers/quality/security-specialist.md +193 -0
  40. package/.claude/agents/cfn-dev-team/reviewers/reviewer.md +39 -0
  41. package/.claude/agents/cfn-dev-team/testers/interaction-tester.md +31 -0
  42. package/.claude/agents/cfn-dev-team/testers/load-testing-specialist.md +469 -0
  43. package/.claude/agents/cfn-dev-team/testers/playwright-tester.md +24 -0
  44. package/.claude/agents/cfn-dev-team/testers/tester.md +20 -0
  45. package/.claude/agents/cfn-dev-team/utility/agent-builder.md +151 -0
  46. package/.claude/agents/cfn-dev-team/utility/analyst.md +178 -0
  47. package/.claude/agents/cfn-dev-team/utility/claude-code-expert.md +1043 -0
  48. package/.claude/agents/cfn-dev-team/utility/code-booster.md +139 -0
  49. package/.claude/agents/cfn-dev-team/utility/context-curator.md +99 -0
  50. package/.claude/agents/cfn-dev-team/{developers → utility}/researcher.md +6 -4
  51. package/.claude/commands/cfn/CFN_LOOP_FRONTEND.md +741 -0
  52. package/.claude/commands/cfn/CFN_LOOP_TASK_MODE.md +353 -0
  53. package/.claude/commands/cfn/cfn-loop-frontend.md +555 -0
  54. package/.claude/commands/cfn/cfn-loop.md +168 -7
  55. package/{CFN-CLAUDE.md → .claude/root-claude-distribute/CFN-CLAUDE.md} +23 -3
  56. package/.claude/skills/cfn-ace-system/SKILL.md +364 -0
  57. package/.claude/skills/cfn-ace-system/add-bullet.sh +145 -0
  58. package/.claude/skills/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +56 -0
  59. package/.claude/skills/cfn-ace-system/classify-task.sh +18 -0
  60. package/.claude/skills/cfn-ace-system/export-ace-metrics.sh +48 -0
  61. package/.claude/skills/cfn-ace-system/extract-tags.sh +385 -0
  62. package/.claude/skills/cfn-ace-system/format-negative-context.sh +180 -0
  63. package/.claude/skills/cfn-ace-system/init-indexes.sql +160 -0
  64. package/.claude/skills/cfn-ace-system/invoke-context-curate.sh +192 -0
  65. package/.claude/skills/cfn-ace-system/invoke-context-inject.sh +361 -0
  66. package/.claude/skills/cfn-ace-system/invoke-context-query.sh +139 -0
  67. package/.claude/skills/cfn-ace-system/invoke-context-reflect.sh +343 -0
  68. package/.claude/skills/cfn-ace-system/invoke-context-stats.sh +227 -0
  69. package/.claude/skills/cfn-ace-system/log-merge.sh +67 -0
  70. package/.claude/skills/cfn-ace-system/monitor-injection-performance.sh +138 -0
  71. package/.claude/skills/cfn-ace-system/optimize-injection-pipeline.sh +169 -0
  72. package/.claude/skills/cfn-ace-system/query-anti-patterns.sh +276 -0
  73. package/.claude/skills/cfn-ace-system/query-contexts.sh +150 -0
  74. package/.claude/skills/cfn-ace-system/query-reflections.sh +35 -0
  75. package/.claude/skills/cfn-ace-system/schema/001-create-context-reflections.sql +237 -0
  76. package/.claude/skills/cfn-ace-system/schema/README.md +723 -0
  77. package/.claude/skills/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +564 -0
  78. package/.claude/skills/cfn-ace-system/schema/populate-test-data-simple.sh +62 -0
  79. package/.claude/skills/cfn-ace-system/schema/populate-test-data.sh +247 -0
  80. package/.claude/skills/cfn-ace-system/schema/run-migration.sh +231 -0
  81. package/.claude/skills/cfn-ace-system/schema/validate-schema.sql +280 -0
  82. package/.claude/skills/cfn-ace-system/score-relevance-adapter.sh +138 -0
  83. package/.claude/skills/cfn-ace-system/score-relevance.sh +253 -0
  84. package/.claude/skills/cfn-ace-system/sprint-7-lessons.json +46 -0
  85. package/.claude/skills/cfn-ace-system/store-reflection.sh +46 -0
  86. package/.claude/skills/cfn-ace-system/test-ace-skill.sh +312 -0
  87. package/.claude/skills/cfn-ace-system/track-ab-test.sh +42 -0
  88. package/.claude/skills/cfn-ace-system/update-reflection.sh +41 -0
  89. package/.claude/skills/cfn-agent-discovery/SKILL.md +40 -0
  90. package/.claude/skills/cfn-agent-discovery/agents-registry-clean.json +0 -0
  91. package/.claude/skills/cfn-agent-discovery/agents-registry-fixed.json +19 -0
  92. package/.claude/skills/cfn-agent-discovery/agents-registry.json +718 -0
  93. package/.claude/skills/cfn-agent-discovery/discover-agents.py +184 -0
  94. package/.claude/skills/cfn-agent-discovery/discover-agents.sh +87 -0
  95. package/.claude/skills/cfn-agent-discovery/invoke-registry.sh +11 -0
  96. package/.claude/skills/cfn-agent-discovery/temp_script.py +0 -0
  97. package/.claude/skills/cfn-agent-execution/execute-agent.sh +126 -0
  98. package/.claude/skills/cfn-agent-output-processing/SKILL.md +359 -0
  99. package/.claude/skills/cfn-agent-selector/SKILL.md +90 -0
  100. package/.claude/skills/cfn-agent-selector/select-agents.sh +112 -0
  101. package/.claude/skills/cfn-agent-spawning/SKILL.md +135 -0
  102. package/.claude/skills/cfn-agent-spawning/agent-selection-guide.md +814 -0
  103. package/.claude/skills/cfn-agent-spawning/check-dependencies.sh +30 -0
  104. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +263 -0
  105. package/.claude/skills/cfn-agent-spawning/spawn-templates.sh +613 -0
  106. package/.claude/skills/cfn-analytics/description-refinement-guide.md +164 -0
  107. package/.claude/skills/cfn-analytics/log-skill-invocation.js +122 -0
  108. package/.claude/skills/cfn-analytics/run-production-criteria-tests.sh +126 -0
  109. package/.claude/skills/cfn-analytics/skill-analytics-dashboard.js +113 -0
  110. package/.claude/skills/cfn-analytics/skill-invocation-hook.sh +28 -0
  111. package/.claude/skills/cfn-analytics/skill-invocations.sql +58 -0
  112. package/.claude/skills/cfn-analytics/test-corpus.json +32 -0
  113. package/.claude/skills/cfn-analytics/test-data-generator.js +115 -0
  114. package/.claude/skills/cfn-analytics/test-manual-override-rate.js +285 -0
  115. package/.claude/skills/cfn-analytics/validate-skill-selection.js +188 -0
  116. package/.claude/skills/cfn-config-management/SKILL.md +34 -0
  117. package/.claude/skills/cfn-config-management/check-dependencies.sh +56 -0
  118. package/.claude/skills/cfn-config-management/config.json +32 -0
  119. package/.claude/skills/cfn-config-management/manage-config.sh +113 -0
  120. package/.claude/skills/cfn-event-bus/SKILL.md +412 -0
  121. package/.claude/skills/cfn-event-bus/config.json +111 -0
  122. package/.claude/skills/cfn-event-bus/eventbus-wrapper.cjs +69 -0
  123. package/.claude/skills/cfn-event-bus/invoke-event-publish.sh +147 -0
  124. package/.claude/skills/cfn-event-bus/invoke-event-subscribe.sh +171 -0
  125. package/.claude/skills/cfn-event-bus/invoke-lifecycle-track.sh +201 -0
  126. package/.claude/skills/cfn-event-bus/test-event-bus.sh +280 -0
  127. package/.claude/skills/cfn-fleet-manager/SKILL.md +412 -0
  128. package/.claude/skills/cfn-fleet-manager/config.json +60 -0
  129. package/.claude/skills/cfn-fleet-manager/invoke-fleet-allocate.sh +182 -0
  130. package/.claude/skills/cfn-fleet-manager/invoke-fleet-balance.sh +239 -0
  131. package/.claude/skills/cfn-fleet-manager/invoke-fleet-metrics.sh +193 -0
  132. package/.claude/skills/cfn-fleet-manager/invoke-fleet-register.sh +124 -0
  133. package/.claude/skills/cfn-fleet-manager/test-fleet-manager.sh +345 -0
  134. package/.claude/skills/cfn-hook-pipeline/SKILL.md +148 -0
  135. package/.claude/skills/cfn-hook-pipeline/auto-resolve.sh +66 -0
  136. package/.claude/skills/cfn-hook-pipeline/check-dependencies.sh +40 -0
  137. package/.claude/skills/cfn-hook-pipeline/feedback-resolver.sh +452 -0
  138. package/.claude/skills/cfn-hook-pipeline/post-edit-handler.sh +154 -0
  139. package/.claude/skills/cfn-hook-pipeline/security-scan.json +60 -0
  140. package/.claude/skills/cfn-hook-pipeline/security-scanner.sh +121 -0
  141. package/.claude/skills/cfn-hook-pipeline/test-root-warning-resolution.sh +148 -0
  142. package/.claude/skills/cfn-hybrid-routing/SKILL.md +46 -0
  143. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +52 -0
  144. package/.claude/skills/cfn-hybrid-routing/config.json +26 -0
  145. package/.claude/skills/cfn-hybrid-routing/spawn-worker.sh +44 -0
  146. package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
  147. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
  148. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
  149. package/.claude/skills/cfn-loop-orchestration/helpers/context-injection.sh +142 -0
  150. package/.claude/skills/cfn-loop-orchestration/helpers/context-lookup.sh +359 -0
  151. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
  152. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
  153. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
  154. package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +271 -0
  155. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
  156. package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
  157. package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
  158. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +884 -0
  159. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +840 -0
  160. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
  161. package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
  162. package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
  163. package/.claude/skills/cfn-loop-validation/SKILL.md +353 -0
  164. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +31 -0
  165. package/.claude/skills/cfn-loop-validation/config.json +161 -0
  166. package/.claude/skills/cfn-loop-validation/consensus-calculator.js +477 -0
  167. package/.claude/skills/cfn-loop-validation/evidence-chain.sql +163 -0
  168. package/.claude/skills/cfn-loop-validation/examples/README.md +453 -0
  169. package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +234 -0
  170. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +132 -0
  171. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +115 -0
  172. package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +186 -0
  173. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -0
  174. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +134 -0
  175. package/.claude/skills/cfn-process-lifecycle/SKILL.md +39 -0
  176. package/.claude/skills/cfn-process-lifecycle/check-dependencies.sh +58 -0
  177. package/.claude/skills/cfn-process-lifecycle/config.json +39 -0
  178. package/.claude/skills/cfn-process-lifecycle/process-manager.sh +144 -0
  179. package/.claude/skills/cfn-product-owner-decision/SKILL.md +332 -0
  180. package/.claude/skills/cfn-product-owner-decision/execute-decision.sh +176 -0
  181. package/.claude/skills/cfn-product-owner-decision/parse-decision.sh +66 -0
  182. package/.claude/skills/cfn-product-owner-decision/validate-deliverables.sh +82 -0
  183. package/.claude/skills/cfn-redis-coordination/AGENT_LOGGING.md +280 -0
  184. package/.claude/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +209 -0
  185. package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +57 -0
  186. package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +267 -0
  187. package/.claude/skills/cfn-redis-coordination/LOGGING.md +260 -0
  188. package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +25 -0
  189. package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +164 -0
  190. package/.claude/skills/cfn-redis-coordination/SKILL.md +720 -0
  191. package/.claude/skills/cfn-redis-coordination/agent-log.sh +124 -0
  192. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +75 -0
  193. package/.claude/skills/cfn-redis-coordination/analyze-task-complexity.sh +277 -0
  194. package/.claude/skills/cfn-redis-coordination/cancel-swarm.sh +221 -0
  195. package/.claude/skills/cfn-redis-coordination/cfn-loop-exec.sh +468 -0
  196. package/.claude/skills/cfn-redis-coordination/cfn-loop-relaunch.sh +29 -0
  197. package/.claude/skills/cfn-redis-coordination/check-dependencies.sh +32 -0
  198. package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +179 -0
  199. package/.claude/skills/cfn-redis-coordination/collect-results.sh +75 -0
  200. package/.claude/skills/cfn-redis-coordination/complete-swarm.sh +75 -0
  201. package/.claude/skills/cfn-redis-coordination/config.json +61 -0
  202. package/.claude/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
  203. package/.claude/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +82 -0
  204. package/.claude/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +274 -0
  205. package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +276 -0
  206. package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +129 -0
  207. package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +320 -0
  208. package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +249 -0
  209. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +148 -0
  210. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +163 -0
  211. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +138 -0
  212. package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +81 -0
  213. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +45 -0
  214. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +68 -0
  215. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +56 -0
  216. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +81 -0
  217. package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +57 -0
  218. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +187 -0
  219. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +160 -0
  220. package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +97 -0
  221. package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +97 -0
  222. package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +59 -0
  223. package/.claude/skills/cfn-redis-coordination/examples/README.md +73 -0
  224. package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +352 -0
  225. package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +127 -0
  226. package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +171 -0
  227. package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +227 -0
  228. package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +239 -0
  229. package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +258 -0
  230. package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +177 -0
  231. package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +137 -0
  232. package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +106 -0
  233. package/.claude/skills/cfn-redis-coordination/heartbeat.sh +126 -0
  234. package/.claude/skills/cfn-redis-coordination/init-swarm.sh +148 -0
  235. package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +220 -0
  236. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +283 -0
  237. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
  238. package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +147 -0
  239. package/.claude/skills/cfn-redis-coordination/log-event.sh +109 -0
  240. package/.claude/skills/cfn-redis-coordination/metrics-export.sh +674 -0
  241. package/.claude/skills/cfn-redis-coordination/metrics-schema.json +66 -0
  242. package/.claude/skills/cfn-redis-coordination/metrics-storage.md +31 -0
  243. package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +391 -0
  244. package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +101 -0
  245. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
  246. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +31 -0
  247. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
  248. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
  249. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
  250. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
  251. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
  252. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
  253. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  254. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
  255. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
  256. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
  257. package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +75 -0
  258. package/.claude/skills/cfn-redis-coordination/priority_wake.py +134 -0
  259. package/.claude/skills/cfn-redis-coordination/query-dlq.sh +162 -0
  260. package/.claude/skills/cfn-redis-coordination/query-logs.sh +103 -0
  261. package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +619 -0
  262. package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +58 -0
  263. package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +371 -0
  264. package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +252 -0
  265. package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +165 -0
  266. package/.claude/skills/cfn-redis-coordination/signal.sh +38 -0
  267. package/.claude/skills/cfn-redis-coordination/store-context.sh +86 -0
  268. package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +123 -0
  269. package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +354 -0
  270. package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +513 -0
  271. package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +15 -0
  272. package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +102 -0
  273. package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +99 -0
  274. package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +170 -0
  275. package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +82 -0
  276. package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +92 -0
  277. package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +4 -0
  278. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +418 -0
  279. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +124 -0
  280. package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +166 -0
  281. package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +54 -0
  282. package/.claude/skills/cfn-redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
  283. package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +49 -0
  284. package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +76 -0
  285. package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +492 -0
  286. package/.claude/skills/cfn-sqlite-memory/IMPLEMENTATION_REPORT.md +393 -0
  287. package/.claude/skills/cfn-sqlite-memory/QUICK_REFERENCE.md +204 -0
  288. package/.claude/skills/cfn-sqlite-memory/SKILL.md +415 -0
  289. package/.claude/skills/cfn-sqlite-memory/acl-queries.sql +452 -0
  290. package/.claude/skills/cfn-sqlite-memory/check-dependencies.sh +36 -0
  291. package/.claude/skills/cfn-sqlite-memory/config.json +45 -0
  292. package/.claude/skills/cfn-sqlite-memory/memory-cli.sh +88 -0
  293. package/.claude/skills/cfn-sqlite-memory/test-state-persistence.js +187 -0
  294. package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +274 -0
  295. package/.claude/skills/cfn-test-execution/SKILL.md +128 -0
  296. package/.claude/skills/cfn-test-execution/check-dependencies.sh +36 -0
  297. package/.claude/skills/cfn-test-execution/test-cache-reader.sh +134 -0
  298. package/.claude/skills/cfn-test-execution/test-concurrent-conflicts.sh +115 -0
  299. package/.claude/skills/cfn-test-execution/test-coordinator-pattern.sh +109 -0
  300. package/.claude/skills/cfn-transparency-middleware/Cargo.toml +18 -0
  301. package/.claude/skills/cfn-transparency-middleware/SECURITY.md +41 -0
  302. package/.claude/skills/cfn-transparency-middleware/SKILL.md +91 -0
  303. package/.claude/skills/cfn-transparency-middleware/TEST_RESULTS.md +174 -0
  304. package/.claude/skills/cfn-transparency-middleware/config.json +31 -0
  305. package/.claude/skills/cfn-transparency-middleware/examples/basic-usage.ts +39 -0
  306. package/.claude/skills/cfn-transparency-middleware/examples/batch-processing.ts +52 -0
  307. package/.claude/skills/cfn-transparency-middleware/examples/custom-filtering.ts +61 -0
  308. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-filter.sh +98 -0
  309. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-init.sh +224 -0
  310. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-level.sh +333 -0
  311. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-metrics.sh +345 -0
  312. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-observe.sh +140 -0
  313. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-stop.sh +235 -0
  314. package/.claude/skills/cfn-transparency-middleware/memory_query.rs +85 -0
  315. package/.claude/skills/cfn-transparency-middleware/memory_repository.rs +140 -0
  316. package/.claude/skills/cfn-transparency-middleware/memory_schema.rs +64 -0
  317. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +29 -0
  318. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +79 -0
  319. package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +406 -0
  320. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +162 -0
  321. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +368 -0
  322. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh.unix +126 -0
  323. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +93 -0
  324. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +132 -0
  325. package/.claude/skills/cfn-webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
  326. package/.claude/skills/cfn-webapp-testing/SKILL.md +877 -0
  327. package/.claude/skills/cfn-webapp-testing/capture-screenshot.sh +238 -0
  328. package/.claude/skills/cfn-webapp-testing/cfn-loop-integration.sh +265 -0
  329. package/.claude/skills/cfn-webapp-testing/compare-screenshots.sh +199 -0
  330. package/.claude/skills/cfn-webapp-testing/init-storage.sh +150 -0
  331. package/.claude/skills/cfn-webapp-testing/set-baseline.sh +196 -0
  332. package/.claude/skills/cfn-webapp-testing/test-webapp-testing.sh +233 -0
  333. package/README.md +51 -2
  334. package/dist/ace/ace-reflector.js +109 -10
  335. package/dist/ace/ace-reflector.js.map +1 -1
  336. package/dist/agents/agent-loader.js +165 -146
  337. package/dist/agents/agent-loader.js.map +1 -1
  338. package/dist/cli/agent-executor.js +1 -1
  339. package/dist/cli/agent-executor.js.map +1 -1
  340. package/dist/cli/config-manager.js +109 -91
  341. package/dist/cli/config-manager.js.map +1 -1
  342. package/package.json +43 -7
  343. package/readme/README.md +15 -4
  344. package/scripts/init-project.js +84 -29
  345. package/scripts/run-marketing-tests.sh +43 -0
  346. package/scripts/update_paths.sh +47 -0
  347. package/tools/install-lizard.sh +37 -0
  348. package/tools/simple-complexity.sh +44 -0
  349. package/.claude/agents/cfn-dev-team/developers/coder.md +0 -270
  350. package/.claude/agents/cfn-dev-team/developers/state-architect.md +0 -127
  351. package/.claude/agents/cfn-dev-team/reviewers/code-quality-validator.md +0 -128
  352. /package/.claude/agents/cfn-dev-team/developers/{ui-designer.md → frontend/ui-designer.md} +0 -0
  353. /package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner-agent.md +0 -0
@@ -0,0 +1,619 @@
1
+ #!/bin/bash
2
+ #
3
+ # Redis Coordination Pattern CLI Wrapper
4
+ #
5
+ # Enables agents to use Redis coordination patterns via simple CLI interface.
6
+ # Supports: chain, hierarchical, mesh, waiting, and wake patterns.
7
+ #
8
+ # Usage:
9
+ # ./redis-pattern.sh --pattern chain --channel task-queue --message "data" --timeout 300
10
+ # ./redis-pattern.sh --pattern waiting --channel task-queue --agent-id coder-1
11
+ # ./redis-pattern.sh --pattern wake --channel task-queue --message "start"
12
+ # ./redis-pattern.sh --pattern hierarchical --channel coordinator --agent-ids agent1,agent2,agent3
13
+ # ./redis-pattern.sh --pattern mesh --channel validator --agent-ids agent1,agent2,agent3
14
+ #
15
+ # Exit codes:
16
+ # 0 - Success
17
+ # 1 - Error (validation, redis, etc.)
18
+ # 2 - Timeout
19
+
20
+ set -euo pipefail
21
+
22
+ # ============================================================================
23
+ # CONFIGURATION
24
+ # ============================================================================
25
+
26
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
27
+ CONFIG_FILE="$SCRIPT_DIR/config.json"
28
+
29
+ # Colors for output
30
+ RED='\033[0;31m'
31
+ GREEN='\033[0;32m'
32
+ YELLOW='\033[1;33m'
33
+ BLUE='\033[0;34m'
34
+ NC='\033[0m' # No Color
35
+
36
+ # Default values
37
+ DEFAULT_TIMEOUT=300
38
+ DEFAULT_BLOCKING_TIMEOUT=0
39
+ REDIS_URL="${REDIS_URL:-redis://localhost:6379}"
40
+
41
+ # ============================================================================
42
+ # HELPER FUNCTIONS
43
+ # ============================================================================
44
+
45
+ log_info() {
46
+ echo -e "${BLUE}[INFO]${NC} $1" >&2
47
+ }
48
+
49
+ log_success() {
50
+ echo -e "${GREEN}[SUCCESS]${NC} $1" >&2
51
+ }
52
+
53
+ log_warning() {
54
+ echo -e "${YELLOW}[WARNING]${NC} $1" >&2
55
+ }
56
+
57
+ log_error() {
58
+ echo -e "${RED}[ERROR]${NC} $1" >&2
59
+ }
60
+
61
+ output_json() {
62
+ local status="$1"
63
+ local data="$2"
64
+ local error="${3:-}"
65
+
66
+ jq -n \
67
+ --arg status "$status" \
68
+ --argjson data "$data" \
69
+ --arg error "$error" \
70
+ --arg timestamp "$(date +%s)" \
71
+ '{
72
+ status: $status,
73
+ data: $data,
74
+ error: $error,
75
+ timestamp: ($timestamp | tonumber)
76
+ }'
77
+ }
78
+
79
+ check_redis() {
80
+ if ! command -v redis-cli &> /dev/null; then
81
+ log_error "redis-cli not found. Please install Redis."
82
+ log_info "Installation: https://redis.io/docs/getting-started/installation/"
83
+ exit 1
84
+ fi
85
+
86
+ if ! redis-cli ping &> /dev/null; then
87
+ log_error "Redis server not reachable at $REDIS_URL"
88
+ log_info "Start Redis server: redis-server"
89
+ exit 1
90
+ fi
91
+ }
92
+
93
+ load_config() {
94
+ if [[ -f "$CONFIG_FILE" ]]; then
95
+ log_info "Loaded configuration from $CONFIG_FILE"
96
+ else
97
+ log_warning "Configuration file not found: $CONFIG_FILE"
98
+ log_info "Using default configuration"
99
+ fi
100
+ }
101
+
102
+ show_usage() {
103
+ cat <<EOF
104
+ Redis Coordination Pattern CLI Wrapper
105
+
106
+ USAGE:
107
+ $(basename "$0") --pattern <pattern> [OPTIONS]
108
+
109
+ PATTERNS:
110
+ chain Sequential chain coordination (A → B → C)
111
+ hierarchical 1:Many broadcast coordination (Coordinator → Multiple Agents)
112
+ mesh Many:1 aggregation coordination (Multiple Agents → Validator)
113
+ waiting Zero-token waiting mode (agent blocks until woken)
114
+ wake Wake up waiting agents
115
+
116
+ COMMON OPTIONS:
117
+ --pattern <name> Coordination pattern to use (REQUIRED)
118
+ --channel <channel> Redis channel/key name (REQUIRED)
119
+ --message <data> Message data to send (JSON string)
120
+ --timeout <seconds> Timeout in seconds (default: 300, 0 = infinite)
121
+ --agent-id <id> Agent identifier
122
+ --task-id <id> Task identifier
123
+ --config <file> Path to config file (default: ./config.json)
124
+ --json Output JSON format
125
+ --help Show this help message
126
+
127
+ PATTERN-SPECIFIC OPTIONS:
128
+
129
+ Chain Pattern:
130
+ --channel <channel> Channel to push/pop from
131
+ --message <data> Data to push
132
+ --timeout <seconds> Wait timeout (default: 300)
133
+
134
+ Hierarchical Pattern:
135
+ --channel <channel> Coordinator's output channel
136
+ --agent-ids <ids> Comma-separated agent IDs to broadcast to
137
+ --message <data> Data to broadcast
138
+
139
+ Mesh Pattern:
140
+ --channel <channel> Aggregation channel
141
+ --agent-ids <ids> Comma-separated agent IDs to collect from
142
+ --timeout <seconds> Wait timeout per agent (default: 300)
143
+
144
+ Waiting Pattern:
145
+ --task-id <id> Task identifier
146
+ --agent-id <id> Agent identifier
147
+ --context <context> Context string (e.g., "iteration-1")
148
+ --timeout <seconds> Wait timeout (0 = infinite, default)
149
+
150
+ Wake Pattern:
151
+ --task-id <id> Task identifier
152
+ --agent-id <id> Agent identifier to wake
153
+ --reason <reason> Wake reason (cfn_loop_iteration, incomplete_work, etc.)
154
+ --iteration <n> Iteration number (optional)
155
+ --feedback <items> Comma-separated feedback items (optional)
156
+
157
+ EXAMPLES:
158
+
159
+ # Chain: Agent pushes data and waits for next agent
160
+ $(basename "$0") --pattern chain --channel "auth:coder:done" --message '{"status":"complete"}'
161
+
162
+ # Chain: Agent waits for previous agent's data
163
+ $(basename "$0") --pattern chain --channel "auth:researcher:done" --timeout 300
164
+
165
+ # Hierarchical: Coordinator broadcasts to multiple agents
166
+ $(basename "$0") --pattern hierarchical --channel "auth:researcher:done" \\
167
+ --agent-ids "analyzer,architect,coder" --message '{"findings":"JWT recommended"}'
168
+
169
+ # Mesh: Validator collects results from multiple agents
170
+ $(basename "$0") --pattern mesh --channel "auth:validator" \\
171
+ --agent-ids "coder,tester,reviewer" --timeout 300
172
+
173
+ # Waiting: Agent enters waiting mode (zero token cost)
174
+ $(basename "$0") --pattern waiting --task-id auth-system --agent-id coder-1 \\
175
+ --context "iteration-1"
176
+
177
+ # Wake: Coordinator wakes agent for next iteration
178
+ $(basename "$0") --pattern wake --task-id auth-system --agent-id coder-1 \\
179
+ --reason cfn_loop_iteration --iteration 2 --feedback "Add error handling,Improve tests"
180
+
181
+ EXIT CODES:
182
+ 0 - Success
183
+ 1 - Error (validation, redis connection, etc.)
184
+ 2 - Timeout exceeded
185
+
186
+ OUTPUT:
187
+ Default: Human-readable text to stderr, data to stdout
188
+ --json: JSON object with status, data, error, and timestamp
189
+
190
+ EOF
191
+ }
192
+
193
+ # ============================================================================
194
+ # PATTERN IMPLEMENTATIONS
195
+ # ============================================================================
196
+
197
+ pattern_chain() {
198
+ local channel="$1"
199
+ local message="${2:-}"
200
+ local timeout="${3:-$DEFAULT_TIMEOUT}"
201
+
202
+ check_redis
203
+
204
+ if [[ -n "$message" ]]; then
205
+ # Push mode: Send message to channel
206
+ log_info "Chain pattern: Pushing to channel '$channel'"
207
+
208
+ echo "$message" | redis-cli -x LPUSH "$channel" >/dev/null
209
+
210
+ log_success "Message pushed successfully"
211
+
212
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
213
+ output_json "success" '{"action":"push","channel":"'"$channel"'"}' ""
214
+ else
215
+ echo "pushed"
216
+ fi
217
+ else
218
+ # Pop mode: Wait for message from channel
219
+ log_info "Chain pattern: Waiting on channel '$channel' (timeout: ${timeout}s)"
220
+
221
+ local result
222
+ if result=$(timeout "$timeout" redis-cli --csv BLPOP "$channel" 0 2>&1); then
223
+ # BLPOP returns: "channel","message"
224
+ # Extract message (second element)
225
+ local extracted_message
226
+ extracted_message=$(echo "$result" | awk -F',' '{print $2}' | sed 's/"//g')
227
+
228
+ log_success "Message received from channel '$channel'"
229
+
230
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
231
+ output_json "success" "$extracted_message" ""
232
+ else
233
+ echo "$extracted_message"
234
+ fi
235
+ else
236
+ log_error "Timeout waiting for message on channel '$channel'"
237
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
238
+ output_json "timeout" "null" "Timeout after ${timeout}s"
239
+ fi
240
+ exit 2
241
+ fi
242
+ fi
243
+ }
244
+
245
+ pattern_hierarchical() {
246
+ local coordinator_channel="$1"
247
+ local agent_ids="$2"
248
+ local message="${3:-}"
249
+
250
+ check_redis
251
+
252
+ if [[ -z "$message" ]]; then
253
+ log_error "Hierarchical pattern requires --message"
254
+ exit 1
255
+ fi
256
+
257
+ log_info "Hierarchical pattern: Broadcasting from '$coordinator_channel' to agents"
258
+
259
+ # Split agent IDs
260
+ IFS=',' read -ra AGENTS <<< "$agent_ids"
261
+
262
+ # Broadcast to each agent's inbox
263
+ local broadcast_count=0
264
+ for agent_id in "${AGENTS[@]}"; do
265
+ agent_id=$(echo "$agent_id" | xargs) # Trim whitespace
266
+ local inbox_key="${coordinator_channel}:${agent_id}:inbox"
267
+
268
+ echo "$message" | redis-cli -x LPUSH "$inbox_key" >/dev/null
269
+ log_info " Broadcasted to agent: $agent_id"
270
+ ((broadcast_count++))
271
+ done
272
+
273
+ log_success "Broadcast complete: $broadcast_count agents"
274
+
275
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
276
+ output_json "success" '{"action":"broadcast","agents":'"$broadcast_count"'}' ""
277
+ else
278
+ echo "broadcasted:$broadcast_count"
279
+ fi
280
+ }
281
+
282
+ pattern_mesh() {
283
+ local aggregation_channel="$1"
284
+ local agent_ids="$2"
285
+ local timeout="${3:-$DEFAULT_TIMEOUT}"
286
+
287
+ check_redis
288
+
289
+ log_info "Mesh pattern: Aggregating results from agents (timeout: ${timeout}s per agent)"
290
+
291
+ # Split agent IDs
292
+ IFS=',' read -ra AGENTS <<< "$agent_ids"
293
+
294
+ local results=()
295
+ local confidences=()
296
+
297
+ for agent_id in "${AGENTS[@]}"; do
298
+ agent_id=$(echo "$agent_id" | xargs) # Trim whitespace
299
+ local result_key="${aggregation_channel}:${agent_id}:result"
300
+
301
+ log_info " Waiting for agent: $agent_id"
302
+
303
+ # Try BLPOP first (for first waiter), then fallback to GET (for persistent data)
304
+ local result
305
+ if result=$(redis-cli BLPOP "$result_key" "$timeout" 2>/dev/null); then
306
+ # BLPOP succeeded
307
+ local extracted_result
308
+ extracted_result=$(echo "$result" | tail -n 1)
309
+ results+=("$extracted_result")
310
+
311
+ # Extract confidence if available
312
+ if confidence=$(echo "$extracted_result" | jq -r '.confidence // empty' 2>/dev/null); then
313
+ [[ -n "$confidence" ]] && confidences+=("$confidence")
314
+ fi
315
+ else
316
+ # Fallback to GET (for hybrid LPUSH+SET pattern)
317
+ log_info " Trying persistent key: ${result_key}"
318
+ local persistent_key="${aggregation_channel}:${agent_id}:result"
319
+
320
+ for ((i=1; i<=timeout; i++)); do
321
+ if result=$(redis-cli GET "$persistent_key" 2>/dev/null); then
322
+ if [[ -n "$result" ]] && [[ "$result" != "(nil)" ]]; then
323
+ results+=("$result")
324
+
325
+ # Extract confidence if available
326
+ if confidence=$(echo "$result" | jq -r '.confidence // empty' 2>/dev/null); then
327
+ [[ -n "$confidence" ]] && confidences+=("$confidence")
328
+ fi
329
+ break
330
+ fi
331
+ fi
332
+ sleep 1
333
+ done
334
+
335
+ if [[ ${#results[@]} -eq 0 ]] || [[ "${results[-1]}" == "" ]]; then
336
+ log_warning " Timeout waiting for agent: $agent_id"
337
+ fi
338
+ fi
339
+ done
340
+
341
+ # Calculate consensus if confidences available
342
+ local consensus="null"
343
+ if [[ ${#confidences[@]} -gt 0 ]]; then
344
+ local sum=0
345
+ for conf in "${confidences[@]}"; do
346
+ sum=$(echo "$sum + $conf" | bc)
347
+ done
348
+ consensus=$(echo "scale=4; $sum / ${#confidences[@]}" | bc)
349
+ log_info "Calculated consensus: $consensus"
350
+ fi
351
+
352
+ log_success "Aggregation complete: ${#results[@]} results collected"
353
+
354
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
355
+ local results_json
356
+ results_json=$(printf '%s\n' "${results[@]}" | jq -s '.')
357
+ jq -n \
358
+ --argjson results "$results_json" \
359
+ --arg consensus "$consensus" \
360
+ --arg count "${#results[@]}" \
361
+ '{results: $results, consensus: ($consensus | tonumber), count: ($count | tonumber)}'
362
+ else
363
+ printf '%s\n' "${results[@]}"
364
+ echo "consensus:$consensus"
365
+ fi
366
+ }
367
+
368
+ pattern_waiting() {
369
+ local task_id="$1"
370
+ local agent_id="$2"
371
+ local context="${3:-default}"
372
+ local timeout="${4:-$DEFAULT_BLOCKING_TIMEOUT}"
373
+
374
+ check_redis
375
+
376
+ local ready_key="swarm:${task_id}:${agent_id}:ready"
377
+ local wake_key="swarm:${task_id}:${agent_id}:wake"
378
+
379
+ log_info "Waiting pattern: Agent '$agent_id' entering waiting mode"
380
+ log_info " Task: $task_id"
381
+ log_info " Context: $context"
382
+ log_info " Timeout: $([ "$timeout" -eq 0 ] && echo "infinite" || echo "${timeout}s")"
383
+
384
+ # Publish ready status
385
+ local ready_msg
386
+ ready_msg=$(jq -n \
387
+ --arg status "waiting" \
388
+ --arg context "$context" \
389
+ --arg ts "$(date +%s)" \
390
+ '{status: $status, context: $context, timestamp: ($ts | tonumber)}')
391
+
392
+ echo "$ready_msg" | redis-cli -x LPUSH "$ready_key" >/dev/null
393
+
394
+ log_info "Agent ready, blocking on wake channel: $wake_key"
395
+ log_success "Zero token cost while waiting..."
396
+
397
+ # Block on wake channel
398
+ local wake_result
399
+ if [[ "$timeout" -eq 0 ]]; then
400
+ wake_result=$(redis-cli BLPOP "$wake_key" 0 2>&1)
401
+ else
402
+ if ! wake_result=$(timeout "$timeout" redis-cli BLPOP "$wake_key" 0 2>&1); then
403
+ log_error "Wake-up timeout exceeded"
404
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
405
+ output_json "timeout" "null" "Wake-up timeout after ${timeout}s"
406
+ fi
407
+ exit 2
408
+ fi
409
+ fi
410
+
411
+ # Parse wake message (BLPOP returns: key \n message)
412
+ local wake_msg
413
+ wake_msg=$(echo "$wake_result" | tail -n 1)
414
+
415
+ log_success "Agent woken up!"
416
+
417
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
418
+ output_json "success" "$wake_msg" ""
419
+ else
420
+ echo "$wake_msg"
421
+ fi
422
+ }
423
+
424
+ pattern_wake() {
425
+ local task_id="$1"
426
+ local agent_id="$2"
427
+ local reason="$3"
428
+ local iteration="${4:-0}"
429
+ local feedback="${5:-}"
430
+ local task_desc="${6:-}"
431
+
432
+ check_redis
433
+
434
+ local wake_key="swarm:${task_id}:${agent_id}:wake"
435
+
436
+ log_info "Wake pattern: Waking agent '$agent_id'"
437
+ log_info " Task: $task_id"
438
+ log_info " Reason: $reason"
439
+ [[ -n "$iteration" ]] && [[ "$iteration" != "0" ]] && log_info " Iteration: $iteration"
440
+
441
+ # Build wake message
442
+ local wake_msg
443
+ wake_msg=$(jq -n \
444
+ --arg reason "$reason" \
445
+ --arg iteration "$iteration" \
446
+ --arg task "$task_desc" \
447
+ --arg feedback "$feedback" \
448
+ --arg ts "$(date +%s)" \
449
+ '{
450
+ reason: $reason,
451
+ iteration: ($iteration | tonumber),
452
+ task: $task,
453
+ feedback: ($feedback | split(",") | map(select(length > 0))),
454
+ timestamp: ($ts | tonumber)
455
+ }')
456
+
457
+ echo "$wake_msg" | redis-cli -x LPUSH "$wake_key" >/dev/null
458
+
459
+ log_success "Wake signal sent to agent '$agent_id'"
460
+
461
+ if [[ "$OUTPUT_JSON" == "true" ]]; then
462
+ output_json "success" '{"action":"wake","agentId":"'"$agent_id"'"}' ""
463
+ else
464
+ echo "woken:$agent_id"
465
+ fi
466
+ }
467
+
468
+ # ============================================================================
469
+ # MAIN
470
+ # ============================================================================
471
+
472
+ main() {
473
+ # Parse arguments
474
+ local pattern=""
475
+ local channel=""
476
+ local message=""
477
+ local timeout="$DEFAULT_TIMEOUT"
478
+ local agent_id=""
479
+ local agent_ids=""
480
+ local task_id=""
481
+ local context="default"
482
+ local reason=""
483
+ local iteration="0"
484
+ local feedback=""
485
+ local task_desc=""
486
+ OUTPUT_JSON="false"
487
+
488
+ while [[ $# -gt 0 ]]; do
489
+ case $1 in
490
+ --pattern)
491
+ pattern="$2"
492
+ shift 2
493
+ ;;
494
+ --channel)
495
+ channel="$2"
496
+ shift 2
497
+ ;;
498
+ --message)
499
+ message="$2"
500
+ shift 2
501
+ ;;
502
+ --timeout)
503
+ timeout="$2"
504
+ shift 2
505
+ ;;
506
+ --agent-id)
507
+ agent_id="$2"
508
+ shift 2
509
+ ;;
510
+ --agent-ids)
511
+ agent_ids="$2"
512
+ shift 2
513
+ ;;
514
+ --task-id)
515
+ task_id="$2"
516
+ shift 2
517
+ ;;
518
+ --context)
519
+ context="$2"
520
+ shift 2
521
+ ;;
522
+ --reason)
523
+ reason="$2"
524
+ shift 2
525
+ ;;
526
+ --iteration)
527
+ iteration="$2"
528
+ shift 2
529
+ ;;
530
+ --feedback)
531
+ feedback="$2"
532
+ shift 2
533
+ ;;
534
+ --task)
535
+ task_desc="$2"
536
+ shift 2
537
+ ;;
538
+ --config)
539
+ CONFIG_FILE="$2"
540
+ shift 2
541
+ ;;
542
+ --json)
543
+ OUTPUT_JSON="true"
544
+ shift
545
+ ;;
546
+ --help|-h)
547
+ show_usage
548
+ exit 0
549
+ ;;
550
+ *)
551
+ log_error "Unknown option: $1"
552
+ show_usage
553
+ exit 1
554
+ ;;
555
+ esac
556
+ done
557
+
558
+ # Load configuration
559
+ load_config
560
+
561
+ # Validate required arguments
562
+ if [[ -z "$pattern" ]]; then
563
+ log_error "Missing required argument: --pattern"
564
+ show_usage
565
+ exit 1
566
+ fi
567
+
568
+ # Execute pattern
569
+ case "$pattern" in
570
+ chain)
571
+ if [[ -z "$channel" ]]; then
572
+ log_error "Chain pattern requires --channel"
573
+ exit 1
574
+ fi
575
+ pattern_chain "$channel" "$message" "$timeout"
576
+ ;;
577
+
578
+ hierarchical)
579
+ if [[ -z "$channel" ]] || [[ -z "$agent_ids" ]]; then
580
+ log_error "Hierarchical pattern requires --channel and --agent-ids"
581
+ exit 1
582
+ fi
583
+ pattern_hierarchical "$channel" "$agent_ids" "$message"
584
+ ;;
585
+
586
+ mesh)
587
+ if [[ -z "$channel" ]] || [[ -z "$agent_ids" ]]; then
588
+ log_error "Mesh pattern requires --channel and --agent-ids"
589
+ exit 1
590
+ fi
591
+ pattern_mesh "$channel" "$agent_ids" "$timeout"
592
+ ;;
593
+
594
+ waiting)
595
+ if [[ -z "$task_id" ]] || [[ -z "$agent_id" ]]; then
596
+ log_error "Waiting pattern requires --task-id and --agent-id"
597
+ exit 1
598
+ fi
599
+ pattern_waiting "$task_id" "$agent_id" "$context" "$timeout"
600
+ ;;
601
+
602
+ wake)
603
+ if [[ -z "$task_id" ]] || [[ -z "$agent_id" ]] || [[ -z "$reason" ]]; then
604
+ log_error "Wake pattern requires --task-id, --agent-id, and --reason"
605
+ exit 1
606
+ fi
607
+ pattern_wake "$task_id" "$agent_id" "$reason" "$iteration" "$feedback" "$task_desc"
608
+ ;;
609
+
610
+ *)
611
+ log_error "Unknown pattern: $pattern"
612
+ log_info "Available patterns: chain, hierarchical, mesh, waiting, wake"
613
+ exit 1
614
+ ;;
615
+ esac
616
+ }
617
+
618
+ # Run main function
619
+ main "$@"
@@ -0,0 +1,58 @@
1
+ #!/bin/bash
2
+
3
+ # Redis Context Retrieval Primitive
4
+ # Updated interface to match orchestrator expectations
5
+ # Supports both legacy (--key) and new (--task-id --key --namespace) interfaces
6
+
7
+ # Initialize variables
8
+ task_id=""
9
+ key=""
10
+ namespace="swarm"
11
+
12
+ # Parse arguments
13
+ while [[ $# -gt 0 ]]; do
14
+ case "$1" in
15
+ --task-id)
16
+ task_id="$2"
17
+ shift 2
18
+ ;;
19
+ --key)
20
+ key="$2"
21
+ shift 2
22
+ ;;
23
+ --namespace)
24
+ namespace="$2"
25
+ shift 2
26
+ ;;
27
+ *)
28
+ echo "Unknown argument: $1" >&2
29
+ exit 1
30
+ ;;
31
+ esac
32
+ done
33
+
34
+ # Construct Redis key based on interface mode
35
+ if [[ -n "$task_id" ]]; then
36
+ # New interface: {namespace}:{task_id}:{key}
37
+ redis_key="${namespace}:${task_id}:${key}"
38
+ else
39
+ # Legacy interface: key is used directly
40
+ redis_key="$key"
41
+ fi
42
+
43
+ # Validate required arguments
44
+ if [[ -z "$redis_key" ]]; then
45
+ echo "Error: Key is required" >&2
46
+ echo "Usage: $0 --task-id <id> --key <key> [--namespace <ns>]" >&2
47
+ echo " or: $0 --key <full-key>" >&2
48
+ exit 1
49
+ fi
50
+
51
+ # Retrieve context from Redis
52
+ context=$(redis-cli get "$redis_key" 2>/dev/null)
53
+
54
+ # Print the context (if exists)
55
+ echo "$context"
56
+
57
+ # Exit successfully
58
+ exit 0