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,291 @@
1
+ /**
2
+ * StandardAdapter.ts - Reference implementation of standardized integration patterns
3
+ *
4
+ * Features:
5
+ * - Standard data envelope (wrap/unwrap)
6
+ * - Standard error handling (try/catch/log/rethrow)
7
+ * - Standard logging (structured JSON)
8
+ * - Standard retry logic (exponential backoff)
9
+ * - Standard correlation tracking (task_id, agent_id)
10
+ */ import { createHash } from 'crypto';
11
+ /**
12
+ * Default JSON logger implementation
13
+ */ export class JSONLogger {
14
+ formatLog(level, message, context) {
15
+ return JSON.stringify({
16
+ level,
17
+ message,
18
+ timestamp: new Date().toISOString(),
19
+ ...context
20
+ });
21
+ }
22
+ info(message, context) {
23
+ console.log(this.formatLog('INFO', message, context));
24
+ }
25
+ warn(message, context) {
26
+ console.warn(this.formatLog('WARN', message, context));
27
+ }
28
+ error(message, context) {
29
+ console.error(this.formatLog('ERROR', message, context));
30
+ }
31
+ debug(message, context) {
32
+ console.debug(this.formatLog('DEBUG', message, context));
33
+ }
34
+ }
35
+ /**
36
+ * StandardAdapter - Reference implementation for integration patterns
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const adapter = new StandardAdapter({
41
+ * task_id: 'task-123',
42
+ * agent_id: 'agent-456',
43
+ * logger: new JSONLogger(),
44
+ * });
45
+ *
46
+ * // Wrap data
47
+ * const envelope = adapter.wrap({ user: 'john', action: 'login' });
48
+ *
49
+ * // Unwrap data with validation
50
+ * const data = adapter.unwrap(envelope);
51
+ *
52
+ * // Execute with retry
53
+ * const result = await adapter.withRetry(async () => {
54
+ * return await externalApiCall();
55
+ * });
56
+ * ```
57
+ */ export class StandardAdapter {
58
+ task_id;
59
+ agent_id;
60
+ logger;
61
+ default_retry_config;
62
+ constructor(config){
63
+ this.task_id = config.task_id;
64
+ this.agent_id = config.agent_id;
65
+ this.logger = config.logger || new JSONLogger();
66
+ this.default_retry_config = {
67
+ max_attempts: 3,
68
+ initial_delay_ms: 100,
69
+ max_delay_ms: 10000,
70
+ backoff_multiplier: 2,
71
+ jitter_factor: 0.1,
72
+ ...config.retry_config
73
+ };
74
+ }
75
+ /**
76
+ * Wrap payload in standard data envelope
77
+ *
78
+ * @param payload - Data to wrap
79
+ * @param metadata - Optional metadata
80
+ * @returns Standardized data envelope
81
+ */ wrap(payload, metadata) {
82
+ const correlation_id = this.generateCorrelationId();
83
+ const timestamp = new Date().toISOString();
84
+ const content_hash = this.generateContentHash(payload);
85
+ const envelope = {
86
+ correlation_id,
87
+ task_id: this.task_id,
88
+ agent_id: this.agent_id,
89
+ timestamp,
90
+ payload,
91
+ metadata,
92
+ content_hash
93
+ };
94
+ this.logger.debug('Data wrapped in envelope', {
95
+ correlation_id,
96
+ task_id: this.task_id,
97
+ content_hash
98
+ });
99
+ return envelope;
100
+ }
101
+ /**
102
+ * Unwrap and validate data envelope
103
+ *
104
+ * @param envelope - Data envelope to unwrap
105
+ * @returns Validated payload
106
+ * @throws Error if envelope is invalid or hash mismatch
107
+ */ unwrap(envelope) {
108
+ try {
109
+ // Validate required fields
110
+ if (!envelope.correlation_id || !envelope.task_id || !envelope.payload) {
111
+ throw new Error('Invalid envelope: missing required fields');
112
+ }
113
+ // Verify content hash
114
+ const computed_hash = this.generateContentHash(envelope.payload);
115
+ if (computed_hash !== envelope.content_hash) {
116
+ throw new Error(`Content hash mismatch: expected ${envelope.content_hash}, got ${computed_hash}`);
117
+ }
118
+ this.logger.debug('Data unwrapped from envelope', {
119
+ correlation_id: envelope.correlation_id,
120
+ task_id: envelope.task_id
121
+ });
122
+ return envelope.payload;
123
+ } catch (error) {
124
+ this.logger.error('Failed to unwrap envelope', {
125
+ error: error instanceof Error ? error.message : String(error),
126
+ correlation_id: envelope.correlation_id
127
+ });
128
+ throw error;
129
+ }
130
+ }
131
+ /**
132
+ * Execute function with retry logic and exponential backoff
133
+ *
134
+ * @param fn - Function to execute
135
+ * @param config - Optional retry configuration
136
+ * @returns Result from successful execution
137
+ * @throws Error if all retry attempts fail
138
+ */ async withRetry(fn, config) {
139
+ const retry_config = {
140
+ ...this.default_retry_config,
141
+ ...config
142
+ };
143
+ let last_error = null;
144
+ let attempt = 0;
145
+ while(attempt < retry_config.max_attempts){
146
+ try {
147
+ attempt++;
148
+ this.logger.debug('Executing with retry', {
149
+ task_id: this.task_id,
150
+ attempt,
151
+ max_attempts: retry_config.max_attempts
152
+ });
153
+ const result = await fn();
154
+ if (attempt > 1) {
155
+ this.logger.info('Retry succeeded', {
156
+ task_id: this.task_id,
157
+ attempt
158
+ });
159
+ }
160
+ return result;
161
+ } catch (error) {
162
+ last_error = error instanceof Error ? error : new Error(String(error));
163
+ this.logger.warn('Execution failed, will retry', {
164
+ task_id: this.task_id,
165
+ attempt,
166
+ max_attempts: retry_config.max_attempts,
167
+ error: last_error.message
168
+ });
169
+ // Don't delay after the last attempt
170
+ if (attempt < retry_config.max_attempts) {
171
+ const delay = this.calculateBackoffDelay(attempt, retry_config);
172
+ await this.sleep(delay);
173
+ }
174
+ }
175
+ }
176
+ // All retries exhausted
177
+ this.logger.error('All retry attempts exhausted', {
178
+ task_id: this.task_id,
179
+ attempts: retry_config.max_attempts,
180
+ error: last_error?.message
181
+ });
182
+ throw last_error || new Error('All retry attempts failed');
183
+ }
184
+ /**
185
+ * Execute function with standard error handling
186
+ * Catches errors, logs them, and rethrows with additional context
187
+ *
188
+ * @param fn - Function to execute
189
+ * @param context - Error context information
190
+ * @returns Result from successful execution
191
+ * @throws Error with enriched context
192
+ */ async withErrorHandling(fn, context = {}) {
193
+ try {
194
+ return await fn();
195
+ } catch (error) {
196
+ const error_envelope = {
197
+ correlation_id: this.generateCorrelationId(),
198
+ task_id: this.task_id,
199
+ error_code: 'EXECUTION_ERROR',
200
+ error_message: error instanceof Error ? error.message : String(error),
201
+ error_stack: error instanceof Error ? error.stack : undefined,
202
+ timestamp: new Date().toISOString(),
203
+ metadata: context
204
+ };
205
+ this.logger.error('Execution failed with error', error_envelope);
206
+ // Rethrow with enriched context
207
+ const enriched_error = new Error(error_envelope.error_message);
208
+ enriched_error.envelope = error_envelope;
209
+ throw enriched_error;
210
+ }
211
+ }
212
+ /**
213
+ * Generate unique correlation ID for request tracking
214
+ * Format: {task_id}-{timestamp}-{random}
215
+ */ generateCorrelationId() {
216
+ const timestamp = Date.now();
217
+ const random = Math.random().toString(36).substring(2, 10);
218
+ return `${this.task_id}-${timestamp}-${random}`;
219
+ }
220
+ /**
221
+ * Generate SHA256 hash of payload for integrity verification
222
+ */ generateContentHash(payload) {
223
+ const content = JSON.stringify(payload);
224
+ return createHash('sha256').update(content).digest('hex');
225
+ }
226
+ /**
227
+ * Calculate exponential backoff delay with jitter
228
+ */ calculateBackoffDelay(attempt, config) {
229
+ // Exponential backoff: initial_delay * (multiplier ^ (attempt - 1))
230
+ const base_delay = config.initial_delay_ms * Math.pow(config.backoff_multiplier, attempt - 1);
231
+ // Cap at max delay
232
+ const capped_delay = Math.min(base_delay, config.max_delay_ms);
233
+ // Add jitter to prevent thundering herd
234
+ const jitter = capped_delay * config.jitter_factor * Math.random();
235
+ return Math.floor(capped_delay + jitter);
236
+ }
237
+ /**
238
+ * Sleep for specified milliseconds
239
+ */ sleep(ms) {
240
+ return new Promise((resolve)=>setTimeout(resolve, ms));
241
+ }
242
+ /**
243
+ * Get current task context
244
+ */ getContext() {
245
+ return {
246
+ task_id: this.task_id,
247
+ agent_id: this.agent_id
248
+ };
249
+ }
250
+ } /**
251
+ * USAGE EXAMPLE - Before (Ad-hoc pattern):
252
+ *
253
+ * ```typescript
254
+ * // ❌ Ad-hoc error handling, no correlation, no retry
255
+ * async function processData(data: any) {
256
+ * try {
257
+ * const result = await externalApi.send(data);
258
+ * console.log('Success:', result);
259
+ * return result;
260
+ * } catch (err) {
261
+ * console.error('Error:', err);
262
+ * throw err;
263
+ * }
264
+ * }
265
+ * ```
266
+ *
267
+ * USAGE EXAMPLE - After (Standardized pattern):
268
+ *
269
+ * ```typescript
270
+ * // ✅ Standardized with correlation, retry, structured logging
271
+ * const adapter = new StandardAdapter({
272
+ * task_id: 'data-processing-123',
273
+ * agent_id: 'processor-agent-1',
274
+ * });
275
+ *
276
+ * async function processData(data: any) {
277
+ * const envelope = adapter.wrap(data, { source: 'user_input' });
278
+ *
279
+ * const result = await adapter.withRetry(async () => {
280
+ * return await adapter.withErrorHandling(
281
+ * async () => externalApi.send(envelope),
282
+ * { operation: 'external_api_call' }
283
+ * );
284
+ * });
285
+ *
286
+ * return adapter.unwrap(result);
287
+ * }
288
+ * ```
289
+ */
290
+
291
+ //# sourceMappingURL=StandardAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/integration/StandardAdapter.ts"],"sourcesContent":["/**\r\n * StandardAdapter.ts - Reference implementation of standardized integration patterns\r\n *\r\n * Features:\r\n * - Standard data envelope (wrap/unwrap)\r\n * - Standard error handling (try/catch/log/rethrow)\r\n * - Standard logging (structured JSON)\r\n * - Standard retry logic (exponential backoff)\r\n * - Standard correlation tracking (task_id, agent_id)\r\n */\r\n\r\nimport { createHash } from 'crypto';\r\n\r\n/**\r\n * Standard data envelope for all integrations\r\n */\r\nexport interface DataEnvelope<T> {\r\n /** Unique correlation ID for request tracking */\r\n correlation_id: string;\r\n /** Task ID for workflow correlation */\r\n task_id: string;\r\n /** Agent ID for agent correlation */\r\n agent_id?: string;\r\n /** ISO 8601 timestamp */\r\n timestamp: string;\r\n /** Actual payload data */\r\n payload: T;\r\n /** Optional metadata for extensibility */\r\n metadata?: Record<string, unknown>;\r\n /** Content hash for integrity verification */\r\n content_hash: string;\r\n}\r\n\r\n/**\r\n * Standard error envelope for consistent error handling\r\n */\r\nexport interface ErrorEnvelope {\r\n correlation_id: string;\r\n task_id: string;\r\n error_code: string;\r\n error_message: string;\r\n error_stack?: string;\r\n timestamp: string;\r\n retry_count?: number;\r\n metadata?: Record<string, unknown>;\r\n}\r\n\r\n/**\r\n * Configuration for retry logic\r\n */\r\nexport interface RetryConfig {\r\n /** Maximum number of retry attempts */\r\n max_attempts: number;\r\n /** Initial backoff delay in milliseconds */\r\n initial_delay_ms: number;\r\n /** Maximum backoff delay in milliseconds */\r\n max_delay_ms: number;\r\n /** Backoff multiplier (exponential growth) */\r\n backoff_multiplier: number;\r\n /** Jitter factor (0-1) to prevent thundering herd */\r\n jitter_factor: number;\r\n}\r\n\r\n/**\r\n * Standard logger interface for structured logging\r\n */\r\nexport interface Logger {\r\n info(message: string, context?: Record<string, unknown>): void;\r\n warn(message: string, context?: Record<string, unknown>): void;\r\n error(message: string, context?: Record<string, unknown>): void;\r\n debug(message: string, context?: Record<string, unknown>): void;\r\n}\r\n\r\n/**\r\n * Default JSON logger implementation\r\n */\r\nexport class JSONLogger implements Logger {\r\n private formatLog(level: string, message: string, context?: Record<string, unknown>): string {\r\n return JSON.stringify({\r\n level,\r\n message,\r\n timestamp: new Date().toISOString(),\r\n ...context,\r\n });\r\n }\r\n\r\n info(message: string, context?: Record<string, unknown>): void {\r\n console.log(this.formatLog('INFO', message, context));\r\n }\r\n\r\n warn(message: string, context?: Record<string, unknown>): void {\r\n console.warn(this.formatLog('WARN', message, context));\r\n }\r\n\r\n error(message: string, context?: Record<string, unknown>): void {\r\n console.error(this.formatLog('ERROR', message, context));\r\n }\r\n\r\n debug(message: string, context?: Record<string, unknown>): void {\r\n console.debug(this.formatLog('DEBUG', message, context));\r\n }\r\n}\r\n\r\n/**\r\n * StandardAdapter - Reference implementation for integration patterns\r\n *\r\n * @example\r\n * ```typescript\r\n * const adapter = new StandardAdapter({\r\n * task_id: 'task-123',\r\n * agent_id: 'agent-456',\r\n * logger: new JSONLogger(),\r\n * });\r\n *\r\n * // Wrap data\r\n * const envelope = adapter.wrap({ user: 'john', action: 'login' });\r\n *\r\n * // Unwrap data with validation\r\n * const data = adapter.unwrap(envelope);\r\n *\r\n * // Execute with retry\r\n * const result = await adapter.withRetry(async () => {\r\n * return await externalApiCall();\r\n * });\r\n * ```\r\n */\r\nexport class StandardAdapter {\r\n private task_id: string;\r\n private agent_id?: string;\r\n private logger: Logger;\r\n private default_retry_config: RetryConfig;\r\n\r\n constructor(config: {\r\n task_id: string;\r\n agent_id?: string;\r\n logger?: Logger;\r\n retry_config?: Partial<RetryConfig>;\r\n }) {\r\n this.task_id = config.task_id;\r\n this.agent_id = config.agent_id;\r\n this.logger = config.logger || new JSONLogger();\r\n this.default_retry_config = {\r\n max_attempts: 3,\r\n initial_delay_ms: 100,\r\n max_delay_ms: 10000,\r\n backoff_multiplier: 2,\r\n jitter_factor: 0.1,\r\n ...config.retry_config,\r\n };\r\n }\r\n\r\n /**\r\n * Wrap payload in standard data envelope\r\n *\r\n * @param payload - Data to wrap\r\n * @param metadata - Optional metadata\r\n * @returns Standardized data envelope\r\n */\r\n wrap<T>(payload: T, metadata?: Record<string, unknown>): DataEnvelope<T> {\r\n const correlation_id = this.generateCorrelationId();\r\n const timestamp = new Date().toISOString();\r\n const content_hash = this.generateContentHash(payload);\r\n\r\n const envelope: DataEnvelope<T> = {\r\n correlation_id,\r\n task_id: this.task_id,\r\n agent_id: this.agent_id,\r\n timestamp,\r\n payload,\r\n metadata,\r\n content_hash,\r\n };\r\n\r\n this.logger.debug('Data wrapped in envelope', {\r\n correlation_id,\r\n task_id: this.task_id,\r\n content_hash,\r\n });\r\n\r\n return envelope;\r\n }\r\n\r\n /**\r\n * Unwrap and validate data envelope\r\n *\r\n * @param envelope - Data envelope to unwrap\r\n * @returns Validated payload\r\n * @throws Error if envelope is invalid or hash mismatch\r\n */\r\n unwrap<T>(envelope: DataEnvelope<T>): T {\r\n try {\r\n // Validate required fields\r\n if (!envelope.correlation_id || !envelope.task_id || !envelope.payload) {\r\n throw new Error('Invalid envelope: missing required fields');\r\n }\r\n\r\n // Verify content hash\r\n const computed_hash = this.generateContentHash(envelope.payload);\r\n if (computed_hash !== envelope.content_hash) {\r\n throw new Error(\r\n `Content hash mismatch: expected ${envelope.content_hash}, got ${computed_hash}`\r\n );\r\n }\r\n\r\n this.logger.debug('Data unwrapped from envelope', {\r\n correlation_id: envelope.correlation_id,\r\n task_id: envelope.task_id,\r\n });\r\n\r\n return envelope.payload;\r\n } catch (error) {\r\n this.logger.error('Failed to unwrap envelope', {\r\n error: error instanceof Error ? error.message : String(error),\r\n correlation_id: envelope.correlation_id,\r\n });\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Execute function with retry logic and exponential backoff\r\n *\r\n * @param fn - Function to execute\r\n * @param config - Optional retry configuration\r\n * @returns Result from successful execution\r\n * @throws Error if all retry attempts fail\r\n */\r\n async withRetry<T>(\r\n fn: () => Promise<T>,\r\n config?: Partial<RetryConfig>\r\n ): Promise<T> {\r\n const retry_config = { ...this.default_retry_config, ...config };\r\n let last_error: Error | null = null;\r\n let attempt = 0;\r\n\r\n while (attempt < retry_config.max_attempts) {\r\n try {\r\n attempt++;\r\n this.logger.debug('Executing with retry', {\r\n task_id: this.task_id,\r\n attempt,\r\n max_attempts: retry_config.max_attempts,\r\n });\r\n\r\n const result = await fn();\r\n\r\n if (attempt > 1) {\r\n this.logger.info('Retry succeeded', {\r\n task_id: this.task_id,\r\n attempt,\r\n });\r\n }\r\n\r\n return result;\r\n } catch (error) {\r\n last_error = error instanceof Error ? error : new Error(String(error));\r\n\r\n this.logger.warn('Execution failed, will retry', {\r\n task_id: this.task_id,\r\n attempt,\r\n max_attempts: retry_config.max_attempts,\r\n error: last_error.message,\r\n });\r\n\r\n // Don't delay after the last attempt\r\n if (attempt < retry_config.max_attempts) {\r\n const delay = this.calculateBackoffDelay(attempt, retry_config);\r\n await this.sleep(delay);\r\n }\r\n }\r\n }\r\n\r\n // All retries exhausted\r\n this.logger.error('All retry attempts exhausted', {\r\n task_id: this.task_id,\r\n attempts: retry_config.max_attempts,\r\n error: last_error?.message,\r\n });\r\n\r\n throw last_error || new Error('All retry attempts failed');\r\n }\r\n\r\n /**\r\n * Execute function with standard error handling\r\n * Catches errors, logs them, and rethrows with additional context\r\n *\r\n * @param fn - Function to execute\r\n * @param context - Error context information\r\n * @returns Result from successful execution\r\n * @throws Error with enriched context\r\n */\r\n async withErrorHandling<T>(\r\n fn: () => Promise<T>,\r\n context: Record<string, unknown> = {}\r\n ): Promise<T> {\r\n try {\r\n return await fn();\r\n } catch (error) {\r\n const error_envelope: ErrorEnvelope = {\r\n correlation_id: this.generateCorrelationId(),\r\n task_id: this.task_id,\r\n error_code: 'EXECUTION_ERROR',\r\n error_message: error instanceof Error ? error.message : String(error),\r\n error_stack: error instanceof Error ? error.stack : undefined,\r\n timestamp: new Date().toISOString(),\r\n metadata: context,\r\n };\r\n\r\n this.logger.error('Execution failed with error', error_envelope);\r\n\r\n // Rethrow with enriched context\r\n const enriched_error = new Error(error_envelope.error_message);\r\n (enriched_error as any).envelope = error_envelope;\r\n throw enriched_error;\r\n }\r\n }\r\n\r\n /**\r\n * Generate unique correlation ID for request tracking\r\n * Format: {task_id}-{timestamp}-{random}\r\n */\r\n private generateCorrelationId(): string {\r\n const timestamp = Date.now();\r\n const random = Math.random().toString(36).substring(2, 10);\r\n return `${this.task_id}-${timestamp}-${random}`;\r\n }\r\n\r\n /**\r\n * Generate SHA256 hash of payload for integrity verification\r\n */\r\n private generateContentHash<T>(payload: T): string {\r\n const content = JSON.stringify(payload);\r\n return createHash('sha256').update(content).digest('hex');\r\n }\r\n\r\n /**\r\n * Calculate exponential backoff delay with jitter\r\n */\r\n private calculateBackoffDelay(attempt: number, config: RetryConfig): number {\r\n // Exponential backoff: initial_delay * (multiplier ^ (attempt - 1))\r\n const base_delay = config.initial_delay_ms * Math.pow(config.backoff_multiplier, attempt - 1);\r\n\r\n // Cap at max delay\r\n const capped_delay = Math.min(base_delay, config.max_delay_ms);\r\n\r\n // Add jitter to prevent thundering herd\r\n const jitter = capped_delay * config.jitter_factor * Math.random();\r\n\r\n return Math.floor(capped_delay + jitter);\r\n }\r\n\r\n /**\r\n * Sleep for specified milliseconds\r\n */\r\n private sleep(ms: number): Promise<void> {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n /**\r\n * Get current task context\r\n */\r\n getContext(): { task_id: string; agent_id?: string } {\r\n return {\r\n task_id: this.task_id,\r\n agent_id: this.agent_id,\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * USAGE EXAMPLE - Before (Ad-hoc pattern):\r\n *\r\n * ```typescript\r\n * // ❌ Ad-hoc error handling, no correlation, no retry\r\n * async function processData(data: any) {\r\n * try {\r\n * const result = await externalApi.send(data);\r\n * console.log('Success:', result);\r\n * return result;\r\n * } catch (err) {\r\n * console.error('Error:', err);\r\n * throw err;\r\n * }\r\n * }\r\n * ```\r\n *\r\n * USAGE EXAMPLE - After (Standardized pattern):\r\n *\r\n * ```typescript\r\n * // ✅ Standardized with correlation, retry, structured logging\r\n * const adapter = new StandardAdapter({\r\n * task_id: 'data-processing-123',\r\n * agent_id: 'processor-agent-1',\r\n * });\r\n *\r\n * async function processData(data: any) {\r\n * const envelope = adapter.wrap(data, { source: 'user_input' });\r\n *\r\n * const result = await adapter.withRetry(async () => {\r\n * return await adapter.withErrorHandling(\r\n * async () => externalApi.send(envelope),\r\n * { operation: 'external_api_call' }\r\n * );\r\n * });\r\n *\r\n * return adapter.unwrap(result);\r\n * }\r\n * ```\r\n */\r\n"],"names":["createHash","JSONLogger","formatLog","level","message","context","JSON","stringify","timestamp","Date","toISOString","info","console","log","warn","error","debug","StandardAdapter","task_id","agent_id","logger","default_retry_config","config","max_attempts","initial_delay_ms","max_delay_ms","backoff_multiplier","jitter_factor","retry_config","wrap","payload","metadata","correlation_id","generateCorrelationId","content_hash","generateContentHash","envelope","unwrap","Error","computed_hash","String","withRetry","fn","last_error","attempt","result","delay","calculateBackoffDelay","sleep","attempts","withErrorHandling","error_envelope","error_code","error_message","error_stack","stack","undefined","enriched_error","now","random","Math","toString","substring","content","update","digest","base_delay","pow","capped_delay","min","jitter","floor","ms","Promise","resolve","setTimeout","getContext"],"mappings":"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"}