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,287 @@
1
+ #!/bin/bash
2
+ # SQLite Parameterized Query Helper Library
3
+ # Provides secure parameter binding for SQLite queries to prevent SQL injection
4
+ #
5
+ # SECURITY: This library replaces manual SQL escaping (${var//\'/\'\'}) with
6
+ # proper parameterized queries using SQLite's .parameter command.
7
+ #
8
+ # SQLite Version Requirement: 3.32.0+ (for .parameter support)
9
+ # Check with: sqlite3 --version
10
+ #
11
+ # Usage:
12
+ # source ".claude/skills/bootstrap/sqlite-params.sh"
13
+ # sqlite_select "$DB_PATH" "SELECT * FROM table WHERE id = ?1" "$user_input"
14
+ # sqlite_insert "$DB_PATH" "INSERT INTO table (col1, col2) VALUES (?1, ?2)" "$val1" "$val2"
15
+ #
16
+ # Parameter Syntax:
17
+ # Positional: ?1, ?2, ?3, ... (recommended for positional args)
18
+ # Named: :name, @name, $name (use with associative arrays)
19
+ #
20
+ # Implementation Notes:
21
+ # - Uses .parameter init to create TEMP binding table
22
+ # - Uses .parameter set to bind values safely
23
+ # - All user input is treated as data, not SQL code
24
+ # - Prevents SQL injection attacks
25
+
26
+ set -euo pipefail
27
+
28
+ # Execute SELECT query with parameter binding
29
+ # Usage: sqlite_select <db_path> <query> [param1] [param2] ...
30
+ # Returns: Query result (stdout)
31
+ # Example: sqlite_select "$DB" "SELECT * FROM users WHERE id = ?1" "123"
32
+ sqlite_select() {
33
+ local db_path="$1"
34
+ local query="$2"
35
+ shift 2
36
+
37
+ if [[ ! -f "$db_path" ]]; then
38
+ echo "ERROR: Database not found: $db_path" >&2
39
+ return 1
40
+ fi
41
+
42
+ # Build parameter binding commands
43
+ # Use .parameter init to create binding table
44
+ # Use .parameter set for each positional parameter (?1, ?2, ?3, ...)
45
+ local param_count=1
46
+ local param_commands=".parameter init"$'\n'
47
+
48
+ for param in "$@"; do
49
+ # Escape double quotes in parameter value for heredoc safety
50
+ local escaped_param="${param//\"/\\\"}"
51
+ param_commands+=".parameter set ?${param_count} \"${escaped_param}\""$'\n'
52
+ ((param_count++))
53
+ done
54
+
55
+ # Execute query with parameter binding
56
+ sqlite3 "$db_path" <<EOF
57
+ ${param_commands}${query}
58
+ EOF
59
+ }
60
+
61
+ # Execute INSERT query with parameter binding
62
+ # Usage: sqlite_insert <db_path> <query> [param1] [param2] ...
63
+ # Returns: 0 on success, 1 on failure
64
+ # Example: sqlite_insert "$DB" "INSERT INTO users (name, email) VALUES (?1, ?2)" "Alice" "alice@example.com"
65
+ sqlite_insert() {
66
+ local db_path="$1"
67
+ local query="$2"
68
+ shift 2
69
+
70
+ if [[ ! -f "$db_path" ]]; then
71
+ echo "ERROR: Database not found: $db_path" >&2
72
+ return 1
73
+ fi
74
+
75
+ # Build parameter binding commands
76
+ local param_count=1
77
+ local param_commands=".parameter init"$'\n'
78
+
79
+ for param in "$@"; do
80
+ local escaped_param="${param//\"/\\\"}"
81
+ param_commands+=".parameter set ?${param_count} \"${escaped_param}\""$'\n'
82
+ ((param_count++))
83
+ done
84
+
85
+ sqlite3 "$db_path" <<EOF
86
+ ${param_commands}${query}
87
+ EOF
88
+
89
+ return $?
90
+ }
91
+
92
+ # Execute UPDATE query with parameter binding
93
+ # Usage: sqlite_update <db_path> <query> [param1] [param2] ...
94
+ # Returns: 0 on success, 1 on failure
95
+ # Example: sqlite_update "$DB" "UPDATE users SET email = ?1 WHERE id = ?2" "new@example.com" "123"
96
+ sqlite_update() {
97
+ local db_path="$1"
98
+ local query="$2"
99
+ shift 2
100
+
101
+ if [[ ! -f "$db_path" ]]; then
102
+ echo "ERROR: Database not found: $db_path" >&2
103
+ return 1
104
+ fi
105
+
106
+ # Build parameter binding commands
107
+ local param_count=1
108
+ local param_commands=".parameter init"$'\n'
109
+
110
+ for param in "$@"; do
111
+ local escaped_param="${param//\"/\\\"}"
112
+ param_commands+=".parameter set ?${param_count} \"${escaped_param}\""$'\n'
113
+ ((param_count++))
114
+ done
115
+
116
+ sqlite3 "$db_path" <<EOF
117
+ ${param_commands}${query}
118
+ EOF
119
+
120
+ return $?
121
+ }
122
+
123
+ # Execute DELETE query with parameter binding
124
+ # Usage: sqlite_delete <db_path> <query> [param1] [param2] ...
125
+ # Returns: 0 on success, 1 on failure
126
+ # Example: sqlite_delete "$DB" "DELETE FROM users WHERE id = ?1" "123"
127
+ sqlite_delete() {
128
+ local db_path="$1"
129
+ local query="$2"
130
+ shift 2
131
+
132
+ if [[ ! -f "$db_path" ]]; then
133
+ echo "ERROR: Database not found: $db_path" >&2
134
+ return 1
135
+ fi
136
+
137
+ # Build parameter binding commands
138
+ local param_count=1
139
+ local param_commands=".parameter init"$'\n'
140
+
141
+ for param in "$@"; do
142
+ local escaped_param="${param//\"/\\\"}"
143
+ param_commands+=".parameter set ?${param_count} \"${escaped_param}\""$'\n'
144
+ ((param_count++))
145
+ done
146
+
147
+ sqlite3 "$db_path" <<EOF
148
+ ${param_commands}${query}
149
+ EOF
150
+
151
+ return $?
152
+ }
153
+
154
+ # Execute generic query with parameter binding
155
+ # Usage: sqlite_exec <db_path> <query> [param1] [param2] ...
156
+ # Returns: Query result (stdout) or 0 on success
157
+ # Example: sqlite_exec "$DB" "CREATE INDEX IF NOT EXISTS idx_users_email ON users(email)"
158
+ sqlite_exec() {
159
+ local db_path="$1"
160
+ local query="$2"
161
+ shift 2
162
+
163
+ if [[ ! -f "$db_path" ]]; then
164
+ echo "ERROR: Database not found: $db_path" >&2
165
+ return 1
166
+ fi
167
+
168
+ # Build parameter binding commands (if parameters provided)
169
+ local param_commands=""
170
+ if [[ $# -gt 0 ]]; then
171
+ param_commands=".parameter init"$'\n'
172
+ local param_count=1
173
+ for param in "$@"; do
174
+ local escaped_param="${param//\"/\\\"}"
175
+ param_commands+=".parameter set ?${param_count} \"${escaped_param}\""$'\n'
176
+ ((param_count++))
177
+ done
178
+ fi
179
+
180
+ sqlite3 "$db_path" <<EOF
181
+ ${param_commands}${query}
182
+ EOF
183
+ }
184
+
185
+ # Execute INSERT OR REPLACE with parameter binding
186
+ # Usage: sqlite_upsert <db_path> <query> [param1] [param2] ...
187
+ # Returns: 0 on success, 1 on failure
188
+ # Example: sqlite_upsert "$DB" "INSERT OR REPLACE INTO users (id, name) VALUES (?1, ?2)" "1" "Alice"
189
+ sqlite_upsert() {
190
+ local db_path="$1"
191
+ local query="$2"
192
+ shift 2
193
+
194
+ # Validate query contains INSERT OR REPLACE
195
+ if [[ ! "$query" =~ INSERT[[:space:]]+OR[[:space:]]+REPLACE ]]; then
196
+ echo "ERROR: Query must be INSERT OR REPLACE" >&2
197
+ return 1
198
+ fi
199
+
200
+ sqlite_insert "$db_path" "$query" "$@"
201
+ }
202
+
203
+ # Helper: Test parameter binding with injection attempts
204
+ # Usage: test_param_binding
205
+ # Returns: 0 if all tests pass
206
+ test_param_binding() {
207
+ local test_db="/tmp/test-sqlite-params-$$.db"
208
+
209
+ # Create test database
210
+ sqlite3 "$test_db" "CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT, value TEXT);"
211
+
212
+ echo "Testing SQLite parameter binding security..."
213
+
214
+ # Test 1: Basic parameter binding
215
+ echo "Test 1: Basic INSERT with parameters"
216
+ sqlite_insert "$test_db" "INSERT INTO test (name, value) VALUES (?1, ?2)" "user1" "value1"
217
+ local count
218
+ count=$(sqlite_select "$test_db" "SELECT COUNT(*) FROM test WHERE name = ?1" "user1")
219
+ if [[ "$count" != "1" ]]; then
220
+ echo "FAIL: Expected 1 row, got $count" >&2
221
+ rm "$test_db"
222
+ return 1
223
+ fi
224
+ echo "PASS"
225
+
226
+ # Test 2: SQL injection attempt - DROP TABLE
227
+ echo "Test 2: SQL injection attempt - DROP TABLE"
228
+ local malicious_input="'; DROP TABLE test; --"
229
+ sqlite_insert "$test_db" "INSERT INTO test (name, value) VALUES (?1, ?2)" "$malicious_input" "value2"
230
+ count=$(sqlite_select "$test_db" "SELECT COUNT(*) FROM test")
231
+ if [[ "$count" != "2" ]]; then
232
+ echo "FAIL: Table was altered by injection! Count: $count" >&2
233
+ rm "$test_db"
234
+ return 1
235
+ fi
236
+ # Verify the malicious string was stored as literal data
237
+ local stored_value
238
+ stored_value=$(sqlite_select "$test_db" "SELECT name FROM test WHERE value = ?1" "value2")
239
+ if [[ "$stored_value" != "$malicious_input" ]]; then
240
+ echo "FAIL: Malicious input was not stored correctly" >&2
241
+ rm "$test_db"
242
+ return 1
243
+ fi
244
+ echo "PASS: Injection attempt was neutralized"
245
+
246
+ # Test 3: SQL injection attempt - OR 1=1
247
+ echo "Test 3: SQL injection attempt - OR 1=1"
248
+ malicious_input="' OR '1'='1"
249
+ count=$(sqlite_select "$test_db" "SELECT COUNT(*) FROM test WHERE name = ?1" "$malicious_input")
250
+ if [[ "$count" != "0" ]]; then
251
+ echo "FAIL: OR injection succeeded! Count: $count" >&2
252
+ rm "$test_db"
253
+ return 1
254
+ fi
255
+ echo "PASS: OR injection was neutralized"
256
+
257
+ # Test 4: UPDATE with parameters
258
+ echo "Test 4: UPDATE with parameters"
259
+ sqlite_update "$test_db" "UPDATE test SET value = ?1 WHERE name = ?2" "updated_value" "user1"
260
+ local updated_value
261
+ updated_value=$(sqlite_select "$test_db" "SELECT value FROM test WHERE name = ?1" "user1")
262
+ if [[ "$updated_value" != "updated_value" ]]; then
263
+ echo "FAIL: UPDATE failed" >&2
264
+ rm "$test_db"
265
+ return 1
266
+ fi
267
+ echo "PASS"
268
+
269
+ # Test 5: DELETE with parameters
270
+ echo "Test 5: DELETE with parameters"
271
+ sqlite_delete "$test_db" "DELETE FROM test WHERE name = ?1" "user1"
272
+ count=$(sqlite_select "$test_db" "SELECT COUNT(*) FROM test WHERE name = ?1" "user1")
273
+ if [[ "$count" != "0" ]]; then
274
+ echo "FAIL: DELETE failed" >&2
275
+ rm "$test_db"
276
+ return 1
277
+ fi
278
+ echo "PASS"
279
+
280
+ # Cleanup
281
+ rm "$test_db"
282
+ echo "All parameter binding tests passed!"
283
+ return 0
284
+ }
285
+
286
+ # Export functions for use in other scripts
287
+ export -f sqlite_select sqlite_insert sqlite_update sqlite_delete sqlite_exec sqlite_upsert
@@ -6,24 +6,26 @@
6
6
  set -euo pipefail
7
7
 
8
8
 
9
- # ⚠️ ANTI-023 MEMORY LEAK PROTECTION: Environment Sanitization
10
- # Load and apply environment sanitization to prevent memory leaks
11
- # shellcheck source=../cfn-environment-sanitization/sanitize-environment.sh
12
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
13
- if [[ -f "$SCRIPT_DIR/../cfn-environment-sanitization/sanitize-environment.sh" ]]; then
14
- source "$SCRIPT_DIR/../cfn-environment-sanitization/sanitize-environment.sh" --strict
15
- echo "✅ Agent spawning environment sanitized" >&2
16
- else
17
- echo "⚠️ Environment sanitization not available - proceeding without protection" >&2
18
- fi
19
-
20
9
  # ⚠️ ANTI-023 MEMORY LEAK PROTECTION: Block Task Mode agents
21
10
  # Task Mode agents spawn via Task() tool and should NOT use agent spawning CLI
22
- if [[ -z "${1:-}" || -z "${TASK_ID:-}" ]]; then
23
- echo "❌ TASK MODE DETECTED - Agent spawning CLI forbidden" >&2
11
+ # CLI mode requires TASK_ID environment variable (validates existence, not pattern)
12
+ if [[ -z "${TASK_ID:-}" ]]; then
13
+ echo "❌ ERROR: TASK_ID environment variable required for CLI mode" >&2
24
14
  echo "🚨 ANTI-023: This script is for CLI-spawned coordinators only" >&2
25
- echo "💡 Task Mode agent spawning should be handled directly by Main Chat" >&2
26
- echo "🔧 Agent spawned via Task() tool - use Task() tool for spawning instead" >&2
15
+ echo "💡 Task Mode agents should use Task() tool, not CLI spawning" >&2
16
+ exit 1
17
+ fi
18
+
19
+ # Sanitize TASK_ID to prevent command injection
20
+ if [[ "${TASK_ID}" =~ [^a-zA-Z0-9._-] ]]; then
21
+ echo "❌ ERROR: TASK_ID contains invalid characters: ${TASK_ID}" >&2
22
+ echo "Allowed: alphanumeric, dot, underscore, hyphen" >&2
23
+ exit 1
24
+ fi
25
+
26
+ # Validate required parameters for CLI mode
27
+ if [[ -z "${1:-}" ]]; then
28
+ echo "❌ ERROR: Agent type required" >&2
27
29
  exit 1
28
30
  fi
29
31
 
@@ -121,18 +123,14 @@ spawn_agents() {
121
123
  log_info "Spawning agents: $agents"
122
124
  log_info "Task: $task"
123
125
 
124
- # Build spawn command
125
- local spawn_cmd="npx claude-flow-spawn \"$task\" --agents=$agents --provider=$provider"
126
-
127
- # Add optional Redis channel
126
+ # Execute spawn command directly with proper quoting (no eval - prevents command injection)
127
+ local exit_code=0
128
128
  if [[ -n "$redis_channel" ]]; then
129
- spawn_cmd="$spawn_cmd --redis-channel=$redis_channel"
129
+ npx claude-flow-spawn "$task" --agents="$agents" --provider="$provider" --redis-channel="$redis_channel" || exit_code=$?
130
+ else
131
+ npx claude-flow-spawn "$task" --agents="$agents" --provider="$provider" || exit_code=$?
130
132
  fi
131
133
 
132
- # Execute spawn
133
- eval "$spawn_cmd"
134
- local exit_code=$?
135
-
136
134
  if [[ $exit_code -eq 0 ]]; then
137
135
  log_info "Agents spawned successfully"
138
136
  else
@@ -1,49 +1,49 @@
1
- #!/bin/bash
2
- # Saves agent output to SQLite via TypeScript adapter
3
-
4
- # Enable strict error handling
5
- set -euo pipefail
6
-
7
- # Input validation
8
- if [[ $# -lt 5 ]]; then
9
- echo "Usage: $0 <TASK_ID> <AGENT_ID> <AGENT_OUTPUT> <CONFIDENCE> <ITERATION>"
10
- exit 1
11
- fi
12
-
13
- TASK_ID="$1"
14
- AGENT_ID="$2"
15
- AGENT_OUTPUT="$3"
16
- CONFIDENCE="$4"
17
- ITERATION="$5"
18
-
19
- # Normalize confidence to float
20
- NORMALIZED_CONFIDENCE=$(printf "%.2f" "$CONFIDENCE")
21
-
22
- # Ensure output is properly escaped for JSON
23
- ESCAPED_OUTPUT=$(echo "$AGENT_OUTPUT" | jq -R -s '.')
24
-
25
- # Call TypeScript persistence layer
26
- node -e "
27
- const { SQLiteAdapter } = require('./src/cli/sqlite-adapter');
28
- const adapter = new SQLiteAdapter();
29
-
30
- const memoryKey = \`agent/${AGENT_ID}/output/${TASK_ID}\`;
31
- const outputRecord = {
32
- output: $ESCAPED_OUTPUT,
33
- confidence: parseFloat('$NORMALIZED_CONFIDENCE'),
34
- iteration: parseInt('$ITERATION'),
35
- timestamp: new Date().toISOString(),
36
- parsed_data: null // Optional: Add structured parsing logic here
37
- };
38
-
39
- try {
40
- adapter.set(memoryKey, outputRecord, {
41
- aclLevel: 1, // Read-only access
42
- tags: ['agent-output', \`agent-${AGENT_ID}\`, \`task-${TASK_ID}\`]
43
- });
44
- console.log(\`Successfully persisted output for agent ${AGENT_ID} in task ${TASK_ID}\`);
45
- } catch (error) {
46
- console.error('Memory persistence failed:', error);
47
- process.exit(1);
48
- }
1
+ #!/bin/bash
2
+ # Saves agent output to SQLite via TypeScript adapter
3
+
4
+ # Enable strict error handling
5
+ set -euo pipefail
6
+
7
+ # Input validation
8
+ if [[ $# -lt 5 ]]; then
9
+ echo "Usage: $0 <TASK_ID> <AGENT_ID> <AGENT_OUTPUT> <CONFIDENCE> <ITERATION>"
10
+ exit 1
11
+ fi
12
+
13
+ TASK_ID="$1"
14
+ AGENT_ID="$2"
15
+ AGENT_OUTPUT="$3"
16
+ CONFIDENCE="$4"
17
+ ITERATION="$5"
18
+
19
+ # Normalize confidence to float
20
+ NORMALIZED_CONFIDENCE=$(printf "%.2f" "$CONFIDENCE")
21
+
22
+ # Ensure output is properly escaped for JSON
23
+ ESCAPED_OUTPUT=$(echo "$AGENT_OUTPUT" | jq -R -s '.')
24
+
25
+ # Call TypeScript persistence layer
26
+ node -e "
27
+ const { SQLiteAdapter } = require('./src/cli/sqlite-adapter');
28
+ const adapter = new SQLiteAdapter();
29
+
30
+ const memoryKey = \`agent/${AGENT_ID}/output/${TASK_ID}\`;
31
+ const outputRecord = {
32
+ output: $ESCAPED_OUTPUT,
33
+ confidence: parseFloat('$NORMALIZED_CONFIDENCE'),
34
+ iteration: parseInt('$ITERATION'),
35
+ timestamp: new Date().toISOString(),
36
+ parsed_data: null // Optional: Add structured parsing logic here
37
+ };
38
+
39
+ try {
40
+ adapter.set(memoryKey, outputRecord, {
41
+ aclLevel: 1, // Read-only access
42
+ tags: ['agent-output', \`agent-${AGENT_ID}\`, \`task-${TASK_ID}\`]
43
+ });
44
+ console.log(\`Successfully persisted output for agent ${AGENT_ID} in task ${TASK_ID}\`);
45
+ } catch (error) {
46
+ console.error('Memory persistence failed:', error);
47
+ process.exit(1);
48
+ }
49
49
  "
@@ -1,35 +1,35 @@
1
- #!/bin/bash
2
- # Query agent output history from SQLite
3
-
4
- # Enable strict error handling
5
- set -euo pipefail
6
-
7
- # Input validation
8
- if [[ $# -lt 1 ]]; then
9
- echo "Usage: $0 <AGENT_ID> [TASK_ID] [MAX_ENTRIES]"
10
- exit 1
11
- fi
12
-
13
- AGENT_ID="$1"
14
- TASK_ID="${2:-}"
15
- MAX_ENTRIES="${3:-10}"
16
-
17
- # Call TypeScript query layer
18
- node -e "
19
- const { SQLiteAdapter } = require('./src/cli/sqlite-adapter');
20
- const adapter = new SQLiteAdapter();
21
-
22
- const queryPattern = '${AGENT_ID}' + (process.argv[2] ? '/output/${TASK_ID}' : '/output/*');
23
-
24
- try {
25
- const results = adapter.query(queryPattern, {
26
- limit: parseInt('${MAX_ENTRIES}'),
27
- order: 'timestamp DESC'
28
- });
29
-
30
- console.log(JSON.stringify(results, null, 2));
31
- } catch (error) {
32
- console.error('Query failed:', error);
33
- process.exit(1);
34
- }
1
+ #!/bin/bash
2
+ # Query agent output history from SQLite
3
+
4
+ # Enable strict error handling
5
+ set -euo pipefail
6
+
7
+ # Input validation
8
+ if [[ $# -lt 1 ]]; then
9
+ echo "Usage: $0 <AGENT_ID> [TASK_ID] [MAX_ENTRIES]"
10
+ exit 1
11
+ fi
12
+
13
+ AGENT_ID="$1"
14
+ TASK_ID="${2:-}"
15
+ MAX_ENTRIES="${3:-10}"
16
+
17
+ # Call TypeScript query layer
18
+ node -e "
19
+ const { SQLiteAdapter } = require('./src/cli/sqlite-adapter');
20
+ const adapter = new SQLiteAdapter();
21
+
22
+ const queryPattern = '${AGENT_ID}' + (process.argv[2] ? '/output/${TASK_ID}' : '/output/*');
23
+
24
+ try {
25
+ const results = adapter.query(queryPattern, {
26
+ limit: parseInt('${MAX_ENTRIES}'),
27
+ order: 'timestamp DESC'
28
+ });
29
+
30
+ console.log(JSON.stringify(results, null, 2));
31
+ } catch (error) {
32
+ console.error('Query failed:', error);
33
+ process.exit(1);
34
+ }
35
35
  " "${TASK_ID}"
@@ -3,6 +3,10 @@
3
3
 
4
4
  set -e
5
5
 
6
+ # Source parameterized query library for SQL injection prevention
7
+ PROJECT_ROOT="/mnt/c/Users/masha/Documents/claude-flow-novice"
8
+ source "$PROJECT_ROOT/.claude/skills/bootstrap/sqlite-params.sh"
9
+
6
10
  # Temporary test database
7
11
  TEST_DB="/tmp/test_memory_persistence_$(date +%s).sqlite"
8
12
 
@@ -22,7 +26,7 @@ CREATE INDEX idx_agent_task ON agent_outputs(agent_id, task_id);
22
26
  EOF
23
27
  }
24
28
 
25
- # Mock persist-agent-output.sh for testing
29
+ # Mock persist-agent-output.sh for testing - using parameterized query
26
30
  mock_persist_agent_output() {
27
31
  local task_id="$1"
28
32
  local agent_id="$2"
@@ -30,24 +34,19 @@ mock_persist_agent_output() {
30
34
  local confidence="$4"
31
35
  local iteration="$5"
32
36
 
33
- sqlite3 "$TEST_DB" << EOF
34
- INSERT OR REPLACE INTO agent_outputs
35
- (task_id, agent_id, output, confidence, iteration)
36
- VALUES
37
- ('$task_id', '$agent_id', '$output', $confidence, $iteration);
38
- EOF
37
+ sqlite_upsert "$TEST_DB" \
38
+ "INSERT OR REPLACE INTO agent_outputs (task_id, agent_id, output, confidence, iteration) VALUES (?1, ?2, ?3, ?4, ?5);" \
39
+ "$task_id" "$agent_id" "$output" "$confidence" "$iteration"
39
40
  }
40
41
 
41
- # Mock query-agent-history.sh for testing
42
+ # Mock query-agent-history.sh for testing - using parameterized query
42
43
  mock_query_agent_history() {
43
44
  local agent_id="$1"
44
45
  local task_id="$2"
45
46
 
46
- sqlite3 "$TEST_DB" << EOF
47
- SELECT task_id, agent_id, output, confidence, iteration
48
- FROM agent_outputs
49
- WHERE agent_id = '$agent_id' AND task_id = '$task_id';
50
- EOF
47
+ sqlite_select "$TEST_DB" \
48
+ "SELECT task_id, agent_id, output, confidence, iteration FROM agent_outputs WHERE agent_id = ?1 AND task_id = ?2;" \
49
+ "$agent_id" "$task_id"
51
50
  }
52
51
 
53
52
  # Test 1: Successful output persistence with complete fields
@@ -148,9 +147,11 @@ test_iteration_confidence_tracking() {
148
147
  mock_persist_agent_output "$task_id" "$agent_id" "${outputs[i]}" "${confidences[i]}" "${iterations[i]}"
149
148
  done
150
149
 
151
- # Verify iterations are tracked
150
+ # Verify iterations are tracked - using parameterized query
152
151
  local iteration_count
153
- iteration_count=$(sqlite3 "$TEST_DB" "SELECT COUNT(DISTINCT iteration) FROM agent_outputs WHERE task_id = '$task_id' AND agent_id = '$agent_id';")
152
+ iteration_count=$(sqlite_select "$TEST_DB" \
153
+ "SELECT COUNT(DISTINCT iteration) FROM agent_outputs WHERE task_id = ?1 AND agent_id = ?2;" \
154
+ "$task_id" "$agent_id")
154
155
 
155
156
  if [ "$iteration_count" -ne 3 ]; then
156
157
  echo "Test 4 failed: Incorrect iteration tracking"
@@ -232,4 +233,4 @@ main() {
232
233
  }
233
234
 
234
235
  # Execute main test runner
235
- main
236
+ main