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,369 @@
1
+ #!/bin/bash
2
+ #
3
+ # File Operations Skill - Test Suite
4
+ #
5
+ # Tests file locking and atomic write operations.
6
+ # Part of Task 4.2: Centralized File Locking & Atomic Operations
7
+ #
8
+
9
+ set -euo pipefail
10
+
11
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12
+ SKILL="$SCRIPT_DIR/execute.sh"
13
+ TEST_DIR="/tmp/cfn-file-ops-test-$$"
14
+ LOCK_DIR="/tmp/cfn-locks-test-$$"
15
+
16
+ export CFN_LOCK_DIR="$LOCK_DIR"
17
+
18
+ # Colors for output
19
+ RED='\033[0;31m'
20
+ GREEN='\033[0;32m'
21
+ YELLOW='\033[1;33m'
22
+ NC='\033[0m' # No Color
23
+
24
+ # Test counters
25
+ TESTS_RUN=0
26
+ TESTS_PASSED=0
27
+ TESTS_FAILED=0
28
+
29
+ #
30
+ # Setup test environment
31
+ #
32
+ setup() {
33
+ echo "Setting up test environment..."
34
+ mkdir -p "$TEST_DIR"
35
+ mkdir -p "$LOCK_DIR"
36
+ }
37
+
38
+ #
39
+ # Cleanup test environment
40
+ #
41
+ cleanup() {
42
+ echo "Cleaning up test environment..."
43
+ rm -rf "$TEST_DIR"
44
+ rm -rf "$LOCK_DIR"
45
+ }
46
+
47
+ #
48
+ # Assert helper
49
+ #
50
+ assert() {
51
+ local description="$1"
52
+ local command="$2"
53
+
54
+ TESTS_RUN=$((TESTS_RUN + 1))
55
+ echo -n " Test $TESTS_RUN: $description... "
56
+
57
+ if eval "$command" > /dev/null 2>&1; then
58
+ echo -e "${GREEN}PASS${NC}"
59
+ TESTS_PASSED=$((TESTS_PASSED + 1))
60
+ return 0
61
+ else
62
+ echo -e "${RED}FAIL${NC}"
63
+ TESTS_FAILED=$((TESTS_FAILED + 1))
64
+ return 1
65
+ fi
66
+ }
67
+
68
+ #
69
+ # Test: Lock acquisition and release
70
+ #
71
+ test_lock_acquisition() {
72
+ echo -e "\n${YELLOW}Test Suite: Lock Acquisition${NC}"
73
+
74
+ local test_file="$TEST_DIR/lock-test.txt"
75
+ touch "$test_file"
76
+
77
+ # Test 1: Acquire lock
78
+ assert "Can acquire lock" "
79
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id test-agent)
80
+ [ -n \"\$LOCK_INFO\" ]
81
+ "
82
+
83
+ # Test 2: Lock file exists
84
+ assert "Lock file created" "
85
+ $SKILL acquire-lock '$test_file' --agent-id test-agent > /tmp/lock-info-$$.txt
86
+ LOCK_INFO=\$(cat /tmp/lock-info-$$.txt)
87
+ LOCK_PATH=\"\${LOCK_INFO#*:}\"
88
+ [ -f \"\$LOCK_PATH\" ]
89
+ "
90
+
91
+ # Test 3: Release lock
92
+ assert "Can release lock" "
93
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id test-agent)
94
+ $SKILL release-lock \"\$LOCK_INFO\"
95
+ "
96
+
97
+ # Test 4: Lock file removed after release
98
+ assert "Lock file removed after release" "
99
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id test-agent)
100
+ LOCK_PATH=\"\${LOCK_INFO#*:}\"
101
+ $SKILL release-lock \"\$LOCK_INFO\"
102
+ [ ! -f \"\$LOCK_PATH\" ]
103
+ "
104
+ }
105
+
106
+ #
107
+ # Test: Lock renewal
108
+ #
109
+ test_lock_renewal() {
110
+ echo -e "\n${YELLOW}Test Suite: Lock Renewal${NC}"
111
+
112
+ local test_file="$TEST_DIR/renewal-test.txt"
113
+ touch "$test_file"
114
+
115
+ # Test 5: Renew lock
116
+ assert "Can renew lock" "
117
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id test-agent)
118
+ $SKILL renew-lock \"\$LOCK_INFO\" --extension 60000
119
+ $SKILL release-lock \"\$LOCK_INFO\"
120
+ "
121
+
122
+ # Test 6: Renewal count increases
123
+ assert "Renewal count increases" "
124
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id test-agent)
125
+ LOCK_PATH=\"\${LOCK_INFO#*:}\"
126
+ BEFORE=\$(jq -r '.renewalCount' \"\$LOCK_PATH\")
127
+ $SKILL renew-lock \"\$LOCK_INFO\" --extension 60000
128
+ AFTER=\$(jq -r '.renewalCount' \"\$LOCK_PATH\")
129
+ $SKILL release-lock \"\$LOCK_INFO\"
130
+ [ \"\$AFTER\" -gt \"\$BEFORE\" ]
131
+ "
132
+ }
133
+
134
+ #
135
+ # Test: Atomic writes
136
+ #
137
+ test_atomic_writes() {
138
+ echo -e "\n${YELLOW}Test Suite: Atomic Writes${NC}"
139
+
140
+ local test_file="$TEST_DIR/write-test.txt"
141
+
142
+ # Test 7: Basic write
143
+ assert "Can write file atomically" "
144
+ $SKILL atomic-write '$test_file' 'Hello World'
145
+ [ -f '$test_file' ]
146
+ [ \"\$(cat '$test_file')\" = 'Hello World' ]
147
+ "
148
+
149
+ # Test 8: Write with checksum
150
+ assert "Write with checksum verification" "
151
+ $SKILL atomic-write '$test_file' 'Test content' --checksum
152
+ [ -f '$test_file' ]
153
+ "
154
+
155
+ # Test 9: Write with backup
156
+ assert "Write creates backup" "
157
+ echo 'Original' > '$test_file'
158
+ RESULT=\$($SKILL atomic-write '$test_file' 'Updated' --backup)
159
+ BACKUP_PATH=\$(echo \"\$RESULT\" | jq -r '.backupPath')
160
+ [ -f \"\$BACKUP_PATH\" ]
161
+ [ \"\$(cat \"\$BACKUP_PATH\")\" = 'Original' ]
162
+ "
163
+ }
164
+
165
+ #
166
+ # Test: Atomic reads
167
+ #
168
+ test_atomic_reads() {
169
+ echo -e "\n${YELLOW}Test Suite: Atomic Reads${NC}"
170
+
171
+ local test_file="$TEST_DIR/read-test.txt"
172
+
173
+ # Test 10: Read file
174
+ assert "Can read file atomically" "
175
+ echo 'Test content' > '$test_file'
176
+ RESULT=\$($SKILL atomic-read '$test_file')
177
+ CONTENT=\$(echo \"\$RESULT\" | jq -r '.content')
178
+ [ \"\$CONTENT\" = 'Test content' ]
179
+ "
180
+
181
+ # Test 11: Read returns checksum
182
+ assert "Read returns checksum" "
183
+ echo 'Test' > '$test_file'
184
+ RESULT=\$($SKILL atomic-read '$test_file')
185
+ CHECKSUM=\$(echo \"\$RESULT\" | jq -r '.checksum')
186
+ [ -n \"\$CHECKSUM\" ]
187
+ [ \"\${#CHECKSUM}\" -eq 64 ]
188
+ "
189
+ }
190
+
191
+ #
192
+ # Test: Checksum verification
193
+ #
194
+ test_checksum() {
195
+ echo -e "\n${YELLOW}Test Suite: Checksum Verification${NC}"
196
+
197
+ local test_file="$TEST_DIR/checksum-test.txt"
198
+
199
+ # Test 12: Verify checksum
200
+ assert "Can verify file checksum" "
201
+ echo -n 'Test' > '$test_file'
202
+ EXPECTED=\$(echo -n 'Test' | sha256sum | awk '{print \$1}')
203
+ RESULT=\$($SKILL verify-checksum '$test_file' \"\$EXPECTED\")
204
+ MATCHES=\$(echo \"\$RESULT\" | jq -r '.matches')
205
+ [ \"\$MATCHES\" = \"1\" ]
206
+ "
207
+
208
+ # Test 13: Detect checksum mismatch
209
+ assert "Detects checksum mismatch" "
210
+ echo -n 'Test' > '$test_file'
211
+ WRONG='0000000000000000000000000000000000000000000000000000000000000000'
212
+ RESULT=\$($SKILL verify-checksum '$test_file' \"\$WRONG\")
213
+ MATCHES=\$(echo \"\$RESULT\" | jq -r '.matches')
214
+ [ \"\$MATCHES\" = \"0\" ]
215
+ "
216
+ }
217
+
218
+ #
219
+ # Test: Concurrent access
220
+ #
221
+ test_concurrent_access() {
222
+ echo -e "\n${YELLOW}Test Suite: Concurrent Access${NC}"
223
+
224
+ local test_file="$TEST_DIR/concurrent-test.txt"
225
+ touch "$test_file"
226
+
227
+ # Test 14: Second acquire waits for first release
228
+ assert "Second lock waits for first" "
229
+ # Acquire lock in background, hold for 2 seconds
230
+ (
231
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id agent-1)
232
+ sleep 2
233
+ $SKILL release-lock \"\$LOCK_INFO\"
234
+ ) &
235
+
236
+ # Wait a bit for first lock to acquire
237
+ sleep 0.5
238
+
239
+ # Try to acquire second lock (should wait)
240
+ START=\$(date +%s)
241
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id agent-2 --timeout 5000)
242
+ END=\$(date +%s)
243
+ WAIT_TIME=\$((END - START))
244
+
245
+ $SKILL release-lock \"\$LOCK_INFO\"
246
+
247
+ # Should have waited at least 1 second
248
+ [ \"\$WAIT_TIME\" -ge 1 ]
249
+ "
250
+ }
251
+
252
+ #
253
+ # Test: Force release
254
+ #
255
+ test_force_release() {
256
+ echo -e "\n${YELLOW}Test Suite: Force Release${NC}"
257
+
258
+ local test_file="$TEST_DIR/force-test.txt"
259
+ touch "$test_file"
260
+
261
+ # Test 15: Force release removes lock
262
+ assert "Force release removes lock" "
263
+ LOCK_INFO=\$($SKILL acquire-lock '$test_file' --agent-id test-agent)
264
+ LOCK_PATH=\"\${LOCK_INFO#*:}\"
265
+ $SKILL force-release \"\$LOCK_PATH\"
266
+ [ ! -f \"\$LOCK_PATH\" ]
267
+ "
268
+ }
269
+
270
+ #
271
+ # Test: Metrics
272
+ #
273
+ test_metrics() {
274
+ echo -e "\n${YELLOW}Test Suite: Metrics${NC}"
275
+
276
+ local test_file="$TEST_DIR/metrics-test.txt"
277
+ touch "$test_file"
278
+
279
+ # Test 16: Get metrics
280
+ assert "Can retrieve metrics" "
281
+ METRICS=\$($SKILL get-metrics)
282
+ ACTIVE=\$(echo \"\$METRICS\" | jq -r '.activeLocks')
283
+ [ -n \"\$ACTIVE\" ]
284
+ "
285
+
286
+ # Test 17: Metrics reflect active locks
287
+ assert "Metrics reflect active locks" "
288
+ # Clean start
289
+ rm -rf '$LOCK_DIR'/*.lock 2>/dev/null || true
290
+
291
+ LOCK_INFO_1=\$($SKILL acquire-lock '$test_file.1' --agent-id agent-1)
292
+ LOCK_INFO_2=\$($SKILL acquire-lock '$test_file.2' --agent-id agent-2)
293
+
294
+ METRICS=\$($SKILL get-metrics)
295
+ ACTIVE=\$(echo \"\$METRICS\" | jq -r '.activeLocks')
296
+
297
+ $SKILL release-lock \"\$LOCK_INFO_1\"
298
+ $SKILL release-lock \"\$LOCK_INFO_2\"
299
+
300
+ [ \"\$ACTIVE\" -ge 2 ]
301
+ "
302
+ }
303
+
304
+ #
305
+ # Test: Error handling
306
+ #
307
+ test_error_handling() {
308
+ echo -e "\n${YELLOW}Test Suite: Error Handling${NC}"
309
+
310
+ # Test 18: Missing file path
311
+ assert "Rejects missing file path" "
312
+ ! $SKILL acquire-lock '' --agent-id test-agent
313
+ "
314
+
315
+ # Test 19: Invalid lock ID
316
+ assert "Rejects invalid lock ID" "
317
+ ! $SKILL release-lock 'invalid-lock-id'
318
+ "
319
+
320
+ # Test 20: Timeout handling
321
+ assert "Handles lock timeout" "
322
+ LOCK_INFO=\$($SKILL acquire-lock '$TEST_DIR/timeout-test.txt' --agent-id agent-1)
323
+ ! $SKILL acquire-lock '$TEST_DIR/timeout-test.txt' --agent-id agent-2 --timeout 500
324
+ $SKILL release-lock \"\$LOCK_INFO\"
325
+ "
326
+ }
327
+
328
+ #
329
+ # Main test runner
330
+ #
331
+ main() {
332
+ echo "========================================"
333
+ echo "File Operations Skill - Test Suite"
334
+ echo "========================================"
335
+
336
+ setup
337
+
338
+ test_lock_acquisition
339
+ test_lock_renewal
340
+ test_atomic_writes
341
+ test_atomic_reads
342
+ test_checksum
343
+ test_concurrent_access
344
+ test_force_release
345
+ test_metrics
346
+ test_error_handling
347
+
348
+ cleanup
349
+
350
+ echo ""
351
+ echo "========================================"
352
+ echo "Test Results"
353
+ echo "========================================"
354
+ echo "Total tests: $TESTS_RUN"
355
+ echo -e "Passed: ${GREEN}$TESTS_PASSED${NC}"
356
+ echo -e "Failed: ${RED}$TESTS_FAILED${NC}"
357
+ echo ""
358
+
359
+ if [ "$TESTS_FAILED" -eq 0 ]; then
360
+ echo -e "${GREEN}All tests passed!${NC}"
361
+ exit 0
362
+ else
363
+ echo -e "${RED}Some tests failed.${NC}"
364
+ exit 1
365
+ fi
366
+ }
367
+
368
+ # Run tests
369
+ main
@@ -1,52 +1,52 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # Hybrid Routing Skill Dependency Checker
5
-
6
- DEPENDENCIES=(
7
- "jq"
8
- "redis-cli"
9
- "openssl"
10
- )
11
-
12
- OPTIONAL_DEPENDENCIES=(
13
- "websocketd"
14
- )
15
-
16
- check_dependency() {
17
- local dep="$1"
18
- if ! command -v "$dep" &> /dev/null; then
19
- echo "Error: Dependency '$dep' not found."
20
- return 1
21
- fi
22
- }
23
-
24
- main() {
25
- echo "Checking Required Dependencies for Hybrid Routing Skill..."
26
-
27
- # Check required dependencies
28
- for dep in "${DEPENDENCIES[@]}"; do
29
- if ! check_dependency "$dep"; then
30
- echo "CRITICAL: Unable to proceed without $dep"
31
- exit 1
32
- fi
33
- done
34
-
35
- # Check optional dependencies
36
- for dep in "${OPTIONAL_DEPENDENCIES[@]}"; do
37
- if ! command -v "$dep" &> /dev/null; then
38
- echo "Warning: Optional dependency '$dep' not found. Some advanced routing features may be limited."
39
- fi
40
- done
41
-
42
- # Additional Redis connectivity check
43
- if ! redis-cli ping &> /dev/null; then
44
- echo "Error: Cannot connect to Redis server"
45
- exit 1
46
- fi
47
-
48
- echo "✅ All dependencies validated successfully"
49
- exit 0
50
- }
51
-
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Hybrid Routing Skill Dependency Checker
5
+
6
+ DEPENDENCIES=(
7
+ "jq"
8
+ "redis-cli"
9
+ "openssl"
10
+ )
11
+
12
+ OPTIONAL_DEPENDENCIES=(
13
+ "websocketd"
14
+ )
15
+
16
+ check_dependency() {
17
+ local dep="$1"
18
+ if ! command -v "$dep" &> /dev/null; then
19
+ echo "Error: Dependency '$dep' not found."
20
+ return 1
21
+ fi
22
+ }
23
+
24
+ main() {
25
+ echo "Checking Required Dependencies for Hybrid Routing Skill..."
26
+
27
+ # Check required dependencies
28
+ for dep in "${DEPENDENCIES[@]}"; do
29
+ if ! check_dependency "$dep"; then
30
+ echo "CRITICAL: Unable to proceed without $dep"
31
+ exit 1
32
+ fi
33
+ done
34
+
35
+ # Check optional dependencies
36
+ for dep in "${OPTIONAL_DEPENDENCIES[@]}"; do
37
+ if ! command -v "$dep" &> /dev/null; then
38
+ echo "Warning: Optional dependency '$dep' not found. Some advanced routing features may be limited."
39
+ fi
40
+ done
41
+
42
+ # Additional Redis connectivity check
43
+ if ! redis-cli ping &> /dev/null; then
44
+ echo "Error: Cannot connect to Redis server"
45
+ exit 1
46
+ fi
47
+
48
+ echo "✅ All dependencies validated successfully"
49
+ exit 0
50
+ }
51
+
52
52
  main "$@"
@@ -1,111 +1,111 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # Parse arguments
5
- while [[ $# -gt 0 ]]; do
6
- case "$1" in
7
- --iteration) ITERATION="$2"; shift 2 ;;
8
- --confidence-history) IFS=',' read -ra CONFIDENCE_HISTORY <<< "$2"; shift 2 ;;
9
- --feedback-history) IFS=';' read -ra FEEDBACK_HISTORY <<< "$2"; shift 2 ;;
10
- *) echo "Unknown parameter: $1"; exit 1 ;;
11
- esac
12
- done
13
-
14
- # Configuration
15
- CONFIDENCE_DELTA_THRESHOLD=0.05
16
- RECURRING_FEEDBACK_THRESHOLD=3
17
-
18
- # Confidence Plateau Detection
19
- detect_confidence_plateau() {
20
- if [[ ${#CONFIDENCE_HISTORY[@]} -lt 2 ]]; then
21
- echo "false"
22
- return
23
- fi
24
-
25
- local last_index=$((${#CONFIDENCE_HISTORY[@]} - 1))
26
- local delta=$(echo "${CONFIDENCE_HISTORY[last_index]} - ${CONFIDENCE_HISTORY[last_index-1]}" | bc)
27
-
28
- if (( $(echo "$delta < $CONFIDENCE_DELTA_THRESHOLD" | bc -l) )); then
29
- echo "true"
30
- else
31
- echo "false"
32
- fi
33
- }
34
-
35
- # Recurring Feedback Detection
36
- detect_recurring_feedback() {
37
- declare -A feedback_counts
38
-
39
- for theme in "${FEEDBACK_HISTORY[@]}"; do
40
- # Extract main theme/keyword
41
- cleaned_theme=$(echo "$theme" | cut -d'|' -f1)
42
- feedback_counts["$cleaned_theme"]=$((${feedback_counts["$cleaned_theme"]} + 1))
43
- done
44
-
45
- for count in "${feedback_counts[@]}"; do
46
- if [[ $count -ge $RECURRING_FEEDBACK_THRESHOLD ]]; then
47
- echo "true"
48
- return
49
- fi
50
- done
51
-
52
- echo "false"
53
- }
54
-
55
- # Deliverables Stuck Detection
56
- detect_deliverables_stuck() {
57
- # In a real implementation, this would check actual file creation
58
- echo "false"
59
- }
60
-
61
- # Main Intervention Detection
62
- intervention_needed=false
63
- trigger=""
64
- details=""
65
-
66
- if [[ $(detect_confidence_plateau) == "true" ]]; then
67
- intervention_needed=true
68
- trigger="confidence_plateau"
69
- details=$(jq -n \
70
- --arg iterations 2 \
71
- --arg delta "$(echo "${CONFIDENCE_HISTORY[${#CONFIDENCE_HISTORY[@]}-1]} - ${CONFIDENCE_HISTORY[${#CONFIDENCE_HISTORY[@]}-2]}" | bc)" \
72
- --arg threshold "$CONFIDENCE_DELTA_THRESHOLD" \
73
- '{
74
- "iterations_stuck": $iterations,
75
- "confidence_delta": $delta,
76
- "threshold": $threshold
77
- }')
78
- fi
79
-
80
- if [[ -z "$trigger" ]] && [[ $(detect_recurring_feedback) == "true" ]]; then
81
- intervention_needed=true
82
- trigger="recurring_feedback"
83
- details=$(jq -n \
84
- --arg threshold "$RECURRING_FEEDBACK_THRESHOLD" \
85
- '{
86
- "recurring_themes_count": $threshold
87
- }')
88
- fi
89
-
90
- # Generate JSON output
91
- jq -n \
92
- --arg intervention_needed "$intervention_needed" \
93
- --arg trigger "$trigger" \
94
- --argjson details "${details:-null}" \
95
- '{
96
- "intervention_needed": ($intervention_needed == "true"),
97
- "trigger": $trigger,
98
- "details": $details,
99
- "recommended_action":
100
- if $trigger == "confidence_plateau" then "swap_agent"
101
- elif $trigger == "recurring_feedback" then "add_specialist"
102
- else null
103
- end,
104
- "reasoning":
105
- if $trigger == "confidence_plateau" then "Confidence improving too slowly, underperforming agent detected"
106
- elif $trigger == "recurring_feedback" then "Persistent feedback theme requires specialist intervention"
107
- else null
108
- end
109
- }'
110
-
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Parse arguments
5
+ while [[ $# -gt 0 ]]; do
6
+ case "$1" in
7
+ --iteration) ITERATION="$2"; shift 2 ;;
8
+ --confidence-history) IFS=',' read -ra CONFIDENCE_HISTORY <<< "$2"; shift 2 ;;
9
+ --feedback-history) IFS=';' read -ra FEEDBACK_HISTORY <<< "$2"; shift 2 ;;
10
+ *) echo "Unknown parameter: $1"; exit 1 ;;
11
+ esac
12
+ done
13
+
14
+ # Configuration
15
+ CONFIDENCE_DELTA_THRESHOLD=0.05
16
+ RECURRING_FEEDBACK_THRESHOLD=3
17
+
18
+ # Confidence Plateau Detection
19
+ detect_confidence_plateau() {
20
+ if [[ ${#CONFIDENCE_HISTORY[@]} -lt 2 ]]; then
21
+ echo "false"
22
+ return
23
+ fi
24
+
25
+ local last_index=$((${#CONFIDENCE_HISTORY[@]} - 1))
26
+ local delta=$(echo "${CONFIDENCE_HISTORY[last_index]} - ${CONFIDENCE_HISTORY[last_index-1]}" | bc)
27
+
28
+ if (( $(echo "$delta < $CONFIDENCE_DELTA_THRESHOLD" | bc -l) )); then
29
+ echo "true"
30
+ else
31
+ echo "false"
32
+ fi
33
+ }
34
+
35
+ # Recurring Feedback Detection
36
+ detect_recurring_feedback() {
37
+ declare -A feedback_counts
38
+
39
+ for theme in "${FEEDBACK_HISTORY[@]}"; do
40
+ # Extract main theme/keyword
41
+ cleaned_theme=$(echo "$theme" | cut -d'|' -f1)
42
+ feedback_counts["$cleaned_theme"]=$((${feedback_counts["$cleaned_theme"]} + 1))
43
+ done
44
+
45
+ for count in "${feedback_counts[@]}"; do
46
+ if [[ $count -ge $RECURRING_FEEDBACK_THRESHOLD ]]; then
47
+ echo "true"
48
+ return
49
+ fi
50
+ done
51
+
52
+ echo "false"
53
+ }
54
+
55
+ # Deliverables Stuck Detection
56
+ detect_deliverables_stuck() {
57
+ # In a real implementation, this would check actual file creation
58
+ echo "false"
59
+ }
60
+
61
+ # Main Intervention Detection
62
+ intervention_needed=false
63
+ trigger=""
64
+ details=""
65
+
66
+ if [[ $(detect_confidence_plateau) == "true" ]]; then
67
+ intervention_needed=true
68
+ trigger="confidence_plateau"
69
+ details=$(jq -n \
70
+ --arg iterations 2 \
71
+ --arg delta "$(echo "${CONFIDENCE_HISTORY[${#CONFIDENCE_HISTORY[@]}-1]} - ${CONFIDENCE_HISTORY[${#CONFIDENCE_HISTORY[@]}-2]}" | bc)" \
72
+ --arg threshold "$CONFIDENCE_DELTA_THRESHOLD" \
73
+ '{
74
+ "iterations_stuck": $iterations,
75
+ "confidence_delta": $delta,
76
+ "threshold": $threshold
77
+ }')
78
+ fi
79
+
80
+ if [[ -z "$trigger" ]] && [[ $(detect_recurring_feedback) == "true" ]]; then
81
+ intervention_needed=true
82
+ trigger="recurring_feedback"
83
+ details=$(jq -n \
84
+ --arg threshold "$RECURRING_FEEDBACK_THRESHOLD" \
85
+ '{
86
+ "recurring_themes_count": $threshold
87
+ }')
88
+ fi
89
+
90
+ # Generate JSON output
91
+ jq -n \
92
+ --arg intervention_needed "$intervention_needed" \
93
+ --arg trigger "$trigger" \
94
+ --argjson details "${details:-null}" \
95
+ '{
96
+ "intervention_needed": ($intervention_needed == "true"),
97
+ "trigger": $trigger,
98
+ "details": $details,
99
+ "recommended_action":
100
+ if $trigger == "confidence_plateau" then "swap_agent"
101
+ elif $trigger == "recurring_feedback" then "add_specialist"
102
+ else null
103
+ end,
104
+ "reasoning":
105
+ if $trigger == "confidence_plateau" then "Confidence improving too slowly, underperforming agent detected"
106
+ elif $trigger == "recurring_feedback" then "Persistent feedback theme requires specialist intervention"
107
+ else null
108
+ end
109
+ }'
110
+
111
111
  exit 0