claude-flow-novice 2.15.11 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. package/.claude/cfn-extras/agents/cfn-v3-coordinator.md +517 -0
  2. package/.claude/commands/cfn-loop-cli.md +158 -464
  3. package/.claude/commands/cfn-loop-trigger.md +114 -0
  4. package/.claude/hooks/cfn-invoke-post-edit-ts.sh +100 -0
  5. package/.claude/hooks/cfn-invoke-post-edit-ts.sh.backup +78 -0
  6. package/.claude/hooks/cfn-invoke-post-edit.sh +22 -0
  7. package/.claude/hooks/cfn-invoke-post-edit.sh.backup +87 -0
  8. package/.claude/hooks/cfn-invoke-pre-edit-ts.sh +116 -0
  9. package/.claude/hooks/cfn-invoke-pre-edit-ts.sh.backup +94 -0
  10. package/.claude/hooks/cfn-invoke-pre-edit.sh +22 -0
  11. package/.claude/hooks/cfn-invoke-pre-edit.sh.backup +88 -0
  12. package/.claude/skills/cfn-agent-spawning/SKILL.md +48 -1
  13. package/.claude/skills/cfn-agent-spawning/SKILL.md.backup +135 -0
  14. package/.claude/skills/cfn-agent-spawning/TYPESCRIPT_MIGRATION.md +567 -0
  15. package/.claude/skills/cfn-agent-spawning/check-dependencies.sh +22 -0
  16. package/.claude/skills/{cfn-redis-coordination/check-dependencies.sh → cfn-agent-spawning/check-dependencies.sh.backup} +3 -5
  17. package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -0
  18. package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh.backup +127 -0
  19. package/.claude/skills/cfn-agent-spawning/parse-agent-provider.sh +22 -0
  20. package/.claude/skills/cfn-agent-spawning/parse-agent-provider.sh.backup +59 -0
  21. package/.claude/skills/cfn-agent-spawning/spawn-agent-wrapper.sh +63 -0
  22. package/.claude/skills/cfn-agent-spawning/spawn-agent-wrapper.sh.backup +41 -0
  23. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +26 -1
  24. package/.claude/skills/cfn-agent-spawning/spawn-templates.sh +22 -0
  25. package/.claude/skills/cfn-agent-spawning/spawn-templates.sh.backup +613 -0
  26. package/.claude/skills/cfn-agent-spawning/spawn-worker.sh +22 -0
  27. package/.claude/skills/cfn-agent-spawning/spawn-worker.sh.backup +176 -0
  28. package/.claude/skills/cfn-loop-orchestration/.backups/unknown/1763619700_33aff4a69b99159e4e849107ebc4d09f/metadata.json +8 -0
  29. package/.claude/skills/cfn-loop-orchestration/.backups/unknown/1763619700_33aff4a69b99159e4e849107ebc4d09f/original +271 -0
  30. package/.claude/skills/cfn-loop-orchestration/.backups/unknown/1763619700_33aff4a69b99159e4e849107ebc4d09f/revert.sh +7 -0
  31. package/.claude/skills/cfn-loop-orchestration/.backups/unknown/1763671642_06496e8c399a79db08167cc00ed4b31e/metadata.json +8 -0
  32. package/.claude/skills/cfn-loop-orchestration/.backups/unknown/1763671642_06496e8c399a79db08167cc00ed4b31e/original +325 -0
  33. package/.claude/skills/cfn-loop-orchestration/.backups/unknown/1763671642_06496e8c399a79db08167cc00ed4b31e/revert.sh +7 -0
  34. package/.claude/skills/cfn-loop-orchestration/CLI_IMPLEMENTATION_SUMMARY.md +330 -0
  35. package/.claude/skills/cfn-loop-orchestration/CONFIGURATION_IMPROVEMENTS.md +318 -0
  36. package/.claude/skills/cfn-loop-orchestration/CONTEXT_LOOKUP_MIGRATION.md +308 -0
  37. package/.claude/skills/cfn-loop-orchestration/CONTEXT_LOOKUP_QUICK_START.md +378 -0
  38. package/.claude/skills/cfn-loop-orchestration/E2E_VALIDATION_REPORT.md +262 -0
  39. package/.claude/skills/cfn-loop-orchestration/IMPLEMENTATION_SUMMARY.md +319 -519
  40. package/.claude/skills/cfn-loop-orchestration/NORTH_STAR_E2E_REPORT.md +299 -0
  41. package/.claude/skills/cfn-loop-orchestration/NORTH_STAR_EXECUTION_SUMMARY.md +403 -0
  42. package/.claude/skills/cfn-loop-orchestration/NORTH_STAR_INDEX.md +323 -0
  43. package/.claude/skills/cfn-loop-orchestration/SKILL.md +159 -48
  44. package/.claude/skills/cfn-loop-orchestration/SPAWN_AGENTS_IMPLEMENTATION.md +188 -0
  45. package/.claude/skills/cfn-loop-orchestration/TEST_COVERAGE_REPORT.md +335 -0
  46. package/.claude/skills/cfn-loop-orchestration/TEST_COVERAGE_SUMMARY.md +456 -0
  47. package/.claude/skills/cfn-loop-orchestration/TYPESCRIPT_INTEGRATION_REPORT.md +709 -0
  48. package/.claude/skills/cfn-loop-orchestration/TYPESCRIPT_INTEGRATION_SUMMARY.md +257 -0
  49. package/.claude/skills/cfn-loop-orchestration/VALIDATION_REPORT.md +572 -0
  50. package/.claude/skills/cfn-loop-orchestration/VALIDATION_SUMMARY.txt +196 -0
  51. package/.claude/skills/cfn-loop-orchestration/VALIDATOR_MODULE_GUIDE.md +526 -0
  52. package/.claude/skills/cfn-loop-orchestration/archive/legacy-bash/README.md +167 -0
  53. package/.claude/skills/cfn-loop-orchestration/archive/legacy-bash/orchestrate-enhanced.sh +548 -0
  54. package/{claude-assets/skills/cfn-loop-orchestration → .claude/skills/cfn-loop-orchestration/archive/legacy-bash}/orchestrate-wrapper.sh +11 -1
  55. package/.claude/skills/cfn-loop-orchestration/archive/legacy-bash/orchestrate.sh +182 -0
  56. package/.claude/skills/cfn-loop-orchestration/e2e-validation-fixed.js +240 -0
  57. package/.claude/skills/cfn-loop-orchestration/e2e-validation.js +213 -0
  58. package/.claude/skills/cfn-loop-orchestration/package-lock.json +3 -0
  59. package/.claude/skills/cfn-loop-orchestration/package.json +4 -0
  60. package/.claude/skills/cfn-loop-orchestration/run-north-star-e2e.ts +210 -0
  61. package/.claude/skills/cfn-loop-orchestration/src/cli/orchestrator-cli.ts +396 -0
  62. package/.claude/skills/cfn-loop-orchestration/src/helpers/CONFIDENCE_AGGREGATOR.md +564 -0
  63. package/.claude/skills/cfn-loop-orchestration/src/helpers/CONFIDENCE_AGGREGATOR_QUICK_REF.md +241 -0
  64. package/.claude/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_IMPLEMENTATION.md +375 -0
  65. package/.claude/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_QUICK_REFERENCE.md +362 -0
  66. package/.claude/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_README.md +307 -0
  67. package/.claude/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_USAGE_GUIDE.md +508 -0
  68. package/.claude/skills/cfn-loop-orchestration/src/helpers/confidence-aggregator.ts +473 -0
  69. package/.claude/skills/cfn-loop-orchestration/src/helpers/consensus.ts +1 -1
  70. package/.claude/skills/cfn-loop-orchestration/src/helpers/context-injector.ts +349 -0
  71. package/.claude/skills/cfn-loop-orchestration/src/helpers/context-lookup.ts +486 -0
  72. package/.claude/skills/cfn-loop-orchestration/src/helpers/deliverable-verifier.ts +6 -2
  73. package/.claude/skills/cfn-loop-orchestration/src/helpers/gate-check.ts +1 -1
  74. package/.claude/skills/cfn-loop-orchestration/src/helpers/product-owner-decision.ts +316 -0
  75. package/.claude/skills/cfn-loop-orchestration/src/helpers/spawn-agents.ts +357 -0
  76. package/.claude/skills/cfn-loop-orchestration/src/helpers/validator.ts +276 -0
  77. package/.claude/skills/cfn-loop-orchestration/src/index.ts +2 -0
  78. package/.claude/skills/cfn-loop-orchestration/src/orchestrate.ts +743 -2
  79. package/.claude/skills/cfn-loop-orchestration/src/types.ts +56 -0
  80. package/.claude/skills/cfn-loop-orchestration/test-cli.sh +92 -0
  81. package/.claude/skills/cfn-loop-orchestration/test-typescript-integration.sh +442 -0
  82. package/.claude/skills/cfn-loop-orchestration/tests/agent-spawner.test.ts +124 -0
  83. package/.claude/skills/cfn-loop-orchestration/tests/confidence-aggregator.test.ts +604 -0
  84. package/.claude/skills/cfn-loop-orchestration/tests/context-injector.test.ts +561 -0
  85. package/.claude/skills/cfn-loop-orchestration/tests/context-lookup.test.ts +661 -0
  86. package/.claude/skills/cfn-loop-orchestration/tests/deliverable-verifier.test.ts +2 -2
  87. package/.claude/skills/cfn-loop-orchestration/tests/gate-check-edge-cases.test.ts +422 -0
  88. package/.claude/skills/cfn-loop-orchestration/tests/gate-checker.test.ts +276 -0
  89. package/.claude/skills/cfn-loop-orchestration/tests/logger.test.ts +291 -0
  90. package/.claude/skills/cfn-loop-orchestration/tests/north-star-e2e.test.ts +334 -0
  91. package/.claude/skills/cfn-loop-orchestration/tests/redis-coordinator.test.ts +321 -0
  92. package/.claude/skills/cfn-loop-orchestration/tests/spawn-agents.test.ts +284 -0
  93. package/.claude/skills/cfn-loop-orchestration/tests/validator.test.ts +643 -0
  94. package/.claude/skills/cfn-loop-validation/IMPLEMENTATION_SUMMARY.md +672 -0
  95. package/.claude/skills/cfn-loop-validation/INDEX.md +531 -0
  96. package/.claude/skills/cfn-loop-validation/README_TYPESCRIPT.md +454 -0
  97. package/.claude/skills/cfn-loop-validation/SKILL.md +48 -1
  98. package/.claude/skills/cfn-loop-validation/SKILL.md.backup +353 -0
  99. package/.claude/skills/cfn-loop-validation/SKILL_TYPESCRIPT.md +782 -0
  100. package/.claude/skills/cfn-loop-validation/VAPOR_DETECTION_EXAMPLES.md +598 -0
  101. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +22 -0
  102. package/{claude-assets/skills/cfn-redis-coordination/check-dependencies.sh → .claude/skills/cfn-loop-validation/check-dependencies.sh.backup} +4 -5
  103. package/.claude/skills/cfn-loop-validation/detect-vapor.sh +59 -0
  104. package/.claude/skills/cfn-loop-validation/detect-vapor.sh.backup +37 -0
  105. package/.claude/skills/cfn-loop-validation/dist/.tsbuildinfo +1 -0
  106. package/.claude/skills/cfn-loop-validation/dist/cli/detect-vapor.d.ts +14 -0
  107. package/.claude/skills/cfn-loop-validation/dist/cli/detect-vapor.d.ts.map +1 -0
  108. package/.claude/skills/cfn-loop-validation/dist/cli/detect-vapor.js +185 -0
  109. package/.claude/skills/cfn-loop-validation/dist/cli/detect-vapor.js.map +1 -0
  110. package/.claude/skills/cfn-loop-validation/dist/cli/validate-deliverables.d.ts +14 -0
  111. package/.claude/skills/cfn-loop-validation/dist/cli/validate-deliverables.d.ts.map +1 -0
  112. package/.claude/skills/cfn-loop-validation/dist/cli/validate-deliverables.js +176 -0
  113. package/.claude/skills/cfn-loop-validation/dist/cli/validate-deliverables.js.map +1 -0
  114. package/.claude/skills/cfn-loop-validation/dist/cli/validate-gate.d.ts +19 -0
  115. package/.claude/skills/cfn-loop-validation/dist/cli/validate-gate.d.ts.map +1 -0
  116. package/.claude/skills/cfn-loop-validation/dist/cli/validate-gate.js +123 -0
  117. package/.claude/skills/cfn-loop-validation/dist/cli/validate-gate.js.map +1 -0
  118. package/.claude/skills/cfn-loop-validation/dist/types.d.ts +156 -0
  119. package/.claude/skills/cfn-loop-validation/dist/types.d.ts.map +1 -0
  120. package/.claude/skills/cfn-loop-validation/dist/types.js +66 -0
  121. package/.claude/skills/cfn-loop-validation/dist/types.js.map +1 -0
  122. package/.claude/skills/cfn-loop-validation/dist/validator.d.ts +85 -0
  123. package/.claude/skills/cfn-loop-validation/dist/validator.d.ts.map +1 -0
  124. package/.claude/skills/cfn-loop-validation/dist/validator.js +411 -0
  125. package/.claude/skills/cfn-loop-validation/dist/validator.js.map +1 -0
  126. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +22 -0
  127. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh.backup +252 -0
  128. package/.claude/skills/cfn-loop-validation/package.json +93 -0
  129. package/.claude/skills/cfn-loop-validation/src/cli/detect-vapor.ts +177 -0
  130. package/.claude/skills/cfn-loop-validation/src/cli/validate-deliverables.ts +161 -0
  131. package/.claude/skills/cfn-loop-validation/src/cli/validate-gate.ts +139 -0
  132. package/.claude/skills/cfn-loop-validation/src/types.ts +215 -0
  133. package/.claude/skills/cfn-loop-validation/src/validator.ts +503 -0
  134. package/.claude/skills/cfn-loop-validation/tests/validator.test.ts +537 -0
  135. package/.claude/skills/{cfn-redis-coordination → cfn-loop-validation}/tsconfig.json +34 -31
  136. package/.claude/skills/cfn-loop-validation/validate-deliverables.sh +59 -0
  137. package/.claude/skills/cfn-loop-validation/validate-deliverables.sh.backup +37 -0
  138. package/.claude/skills/cfn-loop-validation/validate-gate.sh +63 -0
  139. package/.claude/skills/cfn-loop-validation/validate-gate.sh.backup +41 -0
  140. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +22 -0
  141. package/.claude/skills/cfn-loop-validation/validate-iteration.sh.backup +134 -0
  142. package/.claude/skills/cfn-product-owner-decision/SKILL.md +479 -147
  143. package/.claude/skills/cfn-product-owner-decision/TYPESCRIPT_IMPLEMENTATION.md +653 -0
  144. package/{claude-assets/skills/cfn-product-owner-decision → .claude/skills/cfn-product-owner-decision/archive/legacy-bash}/execute-decision.sh +24 -2
  145. package/.claude/skills/pre-edit-backup/SKILL.md +324 -0
  146. package/.claude/skills/pre-edit-backup/SKILL.md.backup +277 -0
  147. package/.claude/skills/pre-edit-backup/backup.sh +22 -0
  148. package/.claude/skills/pre-edit-backup/backup.sh.backup +107 -0
  149. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +1 -0
  150. package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +1 -0
  151. package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +1 -0
  152. package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +1 -0
  153. package/claude-assets/agents/cfn-dev-team/dev-ops/devops-engineer.md +10 -0
  154. package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +56 -33
  155. package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +46 -36
  156. package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +9 -0
  157. package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +17 -17
  158. package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +40 -58
  159. package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +18 -20
  160. package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +19 -28
  161. package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +15 -19
  162. package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +15 -10
  163. package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +15 -10
  164. package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +15 -25
  165. package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +17 -21
  166. package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +17 -21
  167. package/claude-assets/agents/cfn-dev-team/product-owners/product-owner.md +1 -5
  168. package/claude-assets/agents/cfn-dev-team/reviewers/code-reviewer.md +20 -51
  169. package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +22 -71
  170. package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +21 -64
  171. package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +22 -67
  172. package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +23 -67
  173. package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +7 -35
  174. package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +8 -37
  175. package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +16 -54
  176. package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +17 -55
  177. package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +9 -37
  178. package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +17 -55
  179. package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +17 -48
  180. package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +8 -37
  181. package/claude-assets/agents/cfn-dev-team/testers/tester.md +7 -27
  182. package/claude-assets/agents/cfn-dev-team/utility/analyst.md +12 -28
  183. package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +13 -13
  184. package/claude-assets/agents/cfn-dev-team/utility/context-curator.md +7 -2
  185. package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +5 -10
  186. package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +120 -714
  187. package/claude-assets/agents/cfn-dev-team/utility/researcher.md +12 -21
  188. package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +146 -572
  189. package/claude-assets/agents/custom/cfn-docker-expert.md +102 -0
  190. package/claude-assets/agents/custom/cfn-loops-cli-expert.md +129 -0
  191. package/claude-assets/cfn-extras/agents/cfn-v3-coordinator.md +517 -0
  192. package/claude-assets/commands/cfn-loop-cli.md +158 -464
  193. package/claude-assets/commands/cfn-loop-trigger.md +114 -0
  194. package/claude-assets/hooks/SKILL.md +518 -0
  195. package/claude-assets/hooks/SKILL.md.backup +471 -0
  196. package/claude-assets/hooks/cfn-invoke-post-edit-ts.sh +100 -0
  197. package/claude-assets/hooks/cfn-invoke-post-edit-ts.sh.backup +78 -0
  198. package/claude-assets/hooks/cfn-invoke-post-edit.sh +22 -0
  199. package/claude-assets/hooks/cfn-invoke-post-edit.sh.backup +87 -0
  200. package/claude-assets/hooks/cfn-invoke-pre-edit-ts.sh +116 -0
  201. package/claude-assets/hooks/cfn-invoke-pre-edit-ts.sh.backup +94 -0
  202. package/claude-assets/hooks/cfn-invoke-pre-edit.sh +22 -0
  203. package/claude-assets/hooks/cfn-invoke-pre-edit.sh.backup +88 -0
  204. package/claude-assets/skills/cfn-agent-selection-with-fallback/DELIVERABLES.md +409 -0
  205. package/claude-assets/skills/cfn-agent-selection-with-fallback/IMPLEMENTATION_SUMMARY.md +396 -0
  206. package/claude-assets/skills/cfn-agent-selection-with-fallback/INTEGRATION_GUIDE.md +308 -0
  207. package/claude-assets/skills/cfn-agent-selection-with-fallback/QUICK_REFERENCE.md +239 -0
  208. package/claude-assets/skills/cfn-agent-selection-with-fallback/SKILL.md +107 -1
  209. package/claude-assets/skills/cfn-agent-selection-with-fallback/SKILL.md.backup +302 -0
  210. package/claude-assets/skills/cfn-agent-selection-with-fallback/TYPESCRIPT_MIGRATION.md +295 -0
  211. package/claude-assets/skills/cfn-agent-selection-with-fallback/dist/agent-selector.cjs +297 -0
  212. package/claude-assets/skills/cfn-agent-selection-with-fallback/dist/agent-selector.js +297 -0
  213. package/claude-assets/skills/cfn-agent-selection-with-fallback/dist/cli.cjs +96 -0
  214. package/claude-assets/skills/cfn-agent-selection-with-fallback/dist/cli.js +96 -0
  215. package/claude-assets/skills/cfn-agent-selection-with-fallback/select-agents-ts.sh +45 -0
  216. package/claude-assets/skills/cfn-agent-selection-with-fallback/select-agents-ts.sh.backup +23 -0
  217. package/claude-assets/skills/cfn-agent-selection-with-fallback/select-agents.sh +22 -0
  218. package/claude-assets/skills/cfn-agent-selection-with-fallback/select-agents.sh.backup +173 -0
  219. package/claude-assets/skills/cfn-agent-selection-with-fallback/src/agent-selector.test.ts +357 -0
  220. package/claude-assets/skills/cfn-agent-selection-with-fallback/src/agent-selector.ts +350 -0
  221. package/claude-assets/skills/cfn-agent-selection-with-fallback/src/cli.ts +74 -0
  222. package/claude-assets/skills/cfn-agent-selection-with-fallback/task-classifier.sh +22 -0
  223. package/claude-assets/skills/cfn-agent-selection-with-fallback/task-classifier.sh.backup +71 -0
  224. package/claude-assets/skills/cfn-agent-selection-with-fallback/tsconfig.json +18 -0
  225. package/claude-assets/skills/cfn-agent-spawning/SKILL.md +48 -1
  226. package/claude-assets/skills/cfn-agent-spawning/SKILL.md.backup +135 -0
  227. package/claude-assets/skills/cfn-agent-spawning/TYPESCRIPT_MIGRATION.md +567 -0
  228. package/claude-assets/skills/cfn-agent-spawning/check-dependencies.sh +22 -0
  229. package/claude-assets/skills/cfn-agent-spawning/check-dependencies.sh.backup +30 -0
  230. package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -0
  231. package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh.backup +127 -0
  232. package/claude-assets/skills/cfn-agent-spawning/parse-agent-provider.sh +22 -0
  233. package/claude-assets/skills/cfn-agent-spawning/parse-agent-provider.sh.backup +59 -0
  234. package/claude-assets/skills/cfn-agent-spawning/spawn-agent-wrapper.sh +63 -0
  235. package/claude-assets/skills/cfn-agent-spawning/spawn-agent-wrapper.sh.backup +41 -0
  236. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +26 -1
  237. package/claude-assets/skills/cfn-agent-spawning/spawn-templates.sh +22 -0
  238. package/claude-assets/skills/cfn-agent-spawning/spawn-templates.sh.backup +613 -0
  239. package/claude-assets/skills/cfn-agent-spawning/spawn-worker.sh +22 -0
  240. package/claude-assets/skills/cfn-agent-spawning/spawn-worker.sh.backup +176 -0
  241. package/claude-assets/skills/cfn-coordination/agent-completion.sh.backup +36 -0
  242. package/claude-assets/skills/cfn-coordination/coordination-signal.sh.backup +36 -0
  243. package/claude-assets/skills/cfn-coordination/coordination-wait.sh.backup +36 -0
  244. package/claude-assets/skills/cfn-dependency-ingestion/README.md +101 -0
  245. package/claude-assets/skills/cfn-dependency-ingestion/SKILL.md +369 -0
  246. package/claude-assets/skills/cfn-dependency-ingestion/build.sh +23 -0
  247. package/claude-assets/skills/cfn-dependency-ingestion/dist/ingest-dependencies.js +478 -0
  248. package/claude-assets/skills/cfn-dependency-ingestion/ingest-dependencies.sh +295 -0
  249. package/claude-assets/skills/cfn-dependency-ingestion/src/ingest-dependencies.ts +563 -0
  250. package/claude-assets/skills/cfn-loop-orchestration/.backups/unknown/1763619700_33aff4a69b99159e4e849107ebc4d09f/metadata.json +8 -0
  251. package/claude-assets/skills/cfn-loop-orchestration/.backups/unknown/1763619700_33aff4a69b99159e4e849107ebc4d09f/original +271 -0
  252. package/claude-assets/skills/cfn-loop-orchestration/.backups/unknown/1763619700_33aff4a69b99159e4e849107ebc4d09f/revert.sh +7 -0
  253. package/claude-assets/skills/cfn-loop-orchestration/.backups/unknown/1763671642_06496e8c399a79db08167cc00ed4b31e/metadata.json +8 -0
  254. package/claude-assets/skills/cfn-loop-orchestration/.backups/unknown/1763671642_06496e8c399a79db08167cc00ed4b31e/original +325 -0
  255. package/claude-assets/skills/cfn-loop-orchestration/.backups/unknown/1763671642_06496e8c399a79db08167cc00ed4b31e/revert.sh +7 -0
  256. package/claude-assets/skills/cfn-loop-orchestration/CLI_IMPLEMENTATION_SUMMARY.md +330 -0
  257. package/claude-assets/skills/cfn-loop-orchestration/CONFIGURATION_IMPROVEMENTS.md +318 -0
  258. package/claude-assets/skills/cfn-loop-orchestration/CONTEXT_LOOKUP_MIGRATION.md +308 -0
  259. package/claude-assets/skills/cfn-loop-orchestration/CONTEXT_LOOKUP_QUICK_START.md +378 -0
  260. package/claude-assets/skills/cfn-loop-orchestration/E2E_VALIDATION_REPORT.md +262 -0
  261. package/claude-assets/skills/cfn-loop-orchestration/IMPLEMENTATION_SUMMARY.md +319 -519
  262. package/claude-assets/skills/cfn-loop-orchestration/NORTH_STAR_E2E_REPORT.md +299 -0
  263. package/claude-assets/skills/cfn-loop-orchestration/NORTH_STAR_EXECUTION_SUMMARY.md +403 -0
  264. package/claude-assets/skills/cfn-loop-orchestration/NORTH_STAR_INDEX.md +323 -0
  265. package/claude-assets/skills/cfn-loop-orchestration/SKILL.md +159 -48
  266. package/claude-assets/skills/cfn-loop-orchestration/SPAWN_AGENTS_IMPLEMENTATION.md +188 -0
  267. package/claude-assets/skills/cfn-loop-orchestration/TEST_COVERAGE_REPORT.md +335 -0
  268. package/claude-assets/skills/cfn-loop-orchestration/TEST_COVERAGE_SUMMARY.md +456 -0
  269. package/claude-assets/skills/cfn-loop-orchestration/TYPESCRIPT_INTEGRATION_REPORT.md +709 -0
  270. package/claude-assets/skills/cfn-loop-orchestration/TYPESCRIPT_INTEGRATION_SUMMARY.md +257 -0
  271. package/claude-assets/skills/cfn-loop-orchestration/VALIDATION_REPORT.md +572 -0
  272. package/claude-assets/skills/cfn-loop-orchestration/VALIDATION_SUMMARY.txt +196 -0
  273. package/claude-assets/skills/cfn-loop-orchestration/VALIDATOR_MODULE_GUIDE.md +526 -0
  274. package/claude-assets/skills/cfn-loop-orchestration/archive/legacy-bash/README.md +167 -0
  275. package/claude-assets/skills/cfn-loop-orchestration/archive/legacy-bash/orchestrate-enhanced.sh +548 -0
  276. package/{.claude/skills/cfn-loop-orchestration → claude-assets/skills/cfn-loop-orchestration/archive/legacy-bash}/orchestrate-wrapper.sh +11 -1
  277. package/claude-assets/skills/cfn-loop-orchestration/archive/legacy-bash/orchestrate.sh +182 -0
  278. package/claude-assets/skills/cfn-loop-orchestration/e2e-validation-fixed.js +240 -0
  279. package/claude-assets/skills/cfn-loop-orchestration/e2e-validation.js +213 -0
  280. package/claude-assets/skills/cfn-loop-orchestration/package-lock.json +3 -0
  281. package/claude-assets/skills/cfn-loop-orchestration/package.json +4 -0
  282. package/claude-assets/skills/cfn-loop-orchestration/run-north-star-e2e.ts +210 -0
  283. package/claude-assets/skills/cfn-loop-orchestration/src/cli/orchestrator-cli.ts +396 -0
  284. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/CONFIDENCE_AGGREGATOR.md +564 -0
  285. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/CONFIDENCE_AGGREGATOR_QUICK_REF.md +241 -0
  286. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_IMPLEMENTATION.md +375 -0
  287. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_QUICK_REFERENCE.md +362 -0
  288. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_README.md +307 -0
  289. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/CONTEXT_INJECTOR_USAGE_GUIDE.md +508 -0
  290. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/confidence-aggregator.ts +473 -0
  291. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/consensus.ts +1 -1
  292. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/context-injector.ts +349 -0
  293. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/context-lookup.ts +486 -0
  294. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/deliverable-verifier.ts +6 -2
  295. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/gate-check.ts +1 -1
  296. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/product-owner-decision.ts +316 -0
  297. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/spawn-agents.ts +357 -0
  298. package/claude-assets/skills/cfn-loop-orchestration/src/helpers/validator.ts +276 -0
  299. package/claude-assets/skills/cfn-loop-orchestration/src/index.ts +2 -0
  300. package/claude-assets/skills/cfn-loop-orchestration/src/orchestrate.ts +743 -2
  301. package/claude-assets/skills/cfn-loop-orchestration/src/types.ts +56 -0
  302. package/claude-assets/skills/cfn-loop-orchestration/test-cli.sh +92 -0
  303. package/claude-assets/skills/cfn-loop-orchestration/test-typescript-integration.sh +442 -0
  304. package/claude-assets/skills/cfn-loop-orchestration/tests/agent-spawner.test.ts +124 -0
  305. package/claude-assets/skills/cfn-loop-orchestration/tests/confidence-aggregator.test.ts +604 -0
  306. package/claude-assets/skills/cfn-loop-orchestration/tests/context-injector.test.ts +561 -0
  307. package/claude-assets/skills/cfn-loop-orchestration/tests/context-lookup.test.ts +661 -0
  308. package/claude-assets/skills/cfn-loop-orchestration/tests/deliverable-verifier.test.ts +2 -2
  309. package/claude-assets/skills/cfn-loop-orchestration/tests/gate-check-edge-cases.test.ts +422 -0
  310. package/claude-assets/skills/cfn-loop-orchestration/tests/gate-checker.test.ts +276 -0
  311. package/claude-assets/skills/cfn-loop-orchestration/tests/logger.test.ts +291 -0
  312. package/claude-assets/skills/cfn-loop-orchestration/tests/north-star-e2e.test.ts +334 -0
  313. package/claude-assets/skills/cfn-loop-orchestration/tests/redis-coordinator.test.ts +321 -0
  314. package/claude-assets/skills/cfn-loop-orchestration/tests/spawn-agents.test.ts +284 -0
  315. package/claude-assets/skills/cfn-loop-orchestration/tests/validator.test.ts +643 -0
  316. package/claude-assets/skills/cfn-loop-output-processing/.eslintrc.json +33 -0
  317. package/claude-assets/skills/cfn-loop-output-processing/DELIVERY_SUMMARY.txt +462 -0
  318. package/claude-assets/skills/cfn-loop-output-processing/DEPRECATION_NOTICE.md +183 -0
  319. package/claude-assets/skills/cfn-loop-output-processing/EXAMPLES.md +609 -0
  320. package/claude-assets/skills/cfn-loop-output-processing/IMPLEMENTATION_SUMMARY.md +418 -0
  321. package/claude-assets/skills/cfn-loop-output-processing/INDEX.md +531 -0
  322. package/claude-assets/skills/cfn-loop-output-processing/MIGRATION.md +362 -0
  323. package/claude-assets/skills/cfn-loop-output-processing/README.md +114 -0
  324. package/claude-assets/skills/cfn-loop-output-processing/SKILL.md +633 -0
  325. package/{.claude/skills/cfn-docker-redis-coordination → claude-assets/skills/cfn-loop-output-processing}/jest.config.js +7 -15
  326. package/claude-assets/skills/cfn-loop-output-processing/package.json +50 -0
  327. package/claude-assets/skills/cfn-loop-output-processing/src/cli/process-loop2.ts +195 -0
  328. package/claude-assets/skills/cfn-loop-output-processing/src/cli/process-loop3.ts +157 -0
  329. package/claude-assets/skills/cfn-loop-output-processing/src/output-processor.ts +632 -0
  330. package/claude-assets/skills/cfn-loop-output-processing/tests/output-processor.test.ts +617 -0
  331. package/claude-assets/skills/{cfn-docker-redis-coordination → cfn-loop-output-processing}/tsconfig.json +16 -7
  332. package/claude-assets/skills/cfn-loop-validation/IMPLEMENTATION_SUMMARY.md +672 -0
  333. package/claude-assets/skills/cfn-loop-validation/INDEX.md +531 -0
  334. package/claude-assets/skills/cfn-loop-validation/README_TYPESCRIPT.md +454 -0
  335. package/claude-assets/skills/cfn-loop-validation/SKILL.md +48 -1
  336. package/claude-assets/skills/cfn-loop-validation/SKILL.md.backup +353 -0
  337. package/claude-assets/skills/cfn-loop-validation/SKILL_TYPESCRIPT.md +782 -0
  338. package/claude-assets/skills/cfn-loop-validation/VAPOR_DETECTION_EXAMPLES.md +598 -0
  339. package/claude-assets/skills/cfn-loop-validation/check-dependencies.sh +22 -0
  340. package/claude-assets/skills/cfn-loop-validation/check-dependencies.sh.backup +31 -0
  341. package/claude-assets/skills/cfn-loop-validation/detect-vapor.sh +59 -0
  342. package/claude-assets/skills/cfn-loop-validation/detect-vapor.sh.backup +37 -0
  343. package/claude-assets/skills/cfn-loop-validation/dist/.tsbuildinfo +1 -0
  344. package/claude-assets/skills/cfn-loop-validation/dist/cli/detect-vapor.d.ts +14 -0
  345. package/claude-assets/skills/cfn-loop-validation/dist/cli/detect-vapor.d.ts.map +1 -0
  346. package/claude-assets/skills/cfn-loop-validation/dist/cli/detect-vapor.js +185 -0
  347. package/claude-assets/skills/cfn-loop-validation/dist/cli/detect-vapor.js.map +1 -0
  348. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-deliverables.d.ts +14 -0
  349. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-deliverables.d.ts.map +1 -0
  350. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-deliverables.js +176 -0
  351. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-deliverables.js.map +1 -0
  352. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-gate.d.ts +19 -0
  353. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-gate.d.ts.map +1 -0
  354. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-gate.js +123 -0
  355. package/claude-assets/skills/cfn-loop-validation/dist/cli/validate-gate.js.map +1 -0
  356. package/claude-assets/skills/cfn-loop-validation/dist/types.d.ts +156 -0
  357. package/claude-assets/skills/cfn-loop-validation/dist/types.d.ts.map +1 -0
  358. package/claude-assets/skills/cfn-loop-validation/dist/types.js +66 -0
  359. package/claude-assets/skills/cfn-loop-validation/dist/types.js.map +1 -0
  360. package/claude-assets/skills/cfn-loop-validation/dist/validator.d.ts +85 -0
  361. package/claude-assets/skills/cfn-loop-validation/dist/validator.d.ts.map +1 -0
  362. package/claude-assets/skills/cfn-loop-validation/dist/validator.js +411 -0
  363. package/claude-assets/skills/cfn-loop-validation/dist/validator.js.map +1 -0
  364. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +22 -0
  365. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh.backup +252 -0
  366. package/claude-assets/skills/cfn-loop-validation/package.json +93 -0
  367. package/claude-assets/skills/cfn-loop-validation/src/cli/detect-vapor.ts +177 -0
  368. package/claude-assets/skills/cfn-loop-validation/src/cli/validate-deliverables.ts +161 -0
  369. package/claude-assets/skills/cfn-loop-validation/src/cli/validate-gate.ts +139 -0
  370. package/claude-assets/skills/cfn-loop-validation/src/types.ts +215 -0
  371. package/claude-assets/skills/cfn-loop-validation/src/validator.ts +503 -0
  372. package/claude-assets/skills/cfn-loop-validation/tests/validator.test.ts +537 -0
  373. package/claude-assets/skills/{cfn-redis-coordination → cfn-loop-validation}/tsconfig.json +34 -31
  374. package/claude-assets/skills/cfn-loop-validation/validate-deliverables.sh +59 -0
  375. package/claude-assets/skills/cfn-loop-validation/validate-deliverables.sh.backup +37 -0
  376. package/claude-assets/skills/cfn-loop-validation/validate-gate.sh +63 -0
  377. package/claude-assets/skills/cfn-loop-validation/validate-gate.sh.backup +41 -0
  378. package/claude-assets/skills/cfn-loop-validation/validate-iteration.sh +22 -0
  379. package/claude-assets/skills/cfn-loop-validation/validate-iteration.sh.backup +134 -0
  380. package/claude-assets/skills/cfn-product-owner-decision/SKILL.md +479 -147
  381. package/claude-assets/skills/cfn-product-owner-decision/TYPESCRIPT_IMPLEMENTATION.md +653 -0
  382. package/{.claude/skills/cfn-product-owner-decision → claude-assets/skills/cfn-product-owner-decision/archive/legacy-bash}/execute-decision.sh +24 -2
  383. package/claude-assets/skills/cfn-provider-routing/README.md +129 -0
  384. package/claude-assets/skills/cfn-provider-routing/SKILL.md +192 -0
  385. package/claude-assets/skills/cfn-provider-routing/resolve-provider-model.ts +223 -0
  386. package/claude-assets/skills/pre-edit-backup/SKILL.md +324 -0
  387. package/claude-assets/skills/pre-edit-backup/SKILL.md.backup +277 -0
  388. package/claude-assets/skills/pre-edit-backup/backup.sh +22 -0
  389. package/claude-assets/skills/pre-edit-backup/backup.sh.backup +107 -0
  390. package/dist/agents/agent-loader.js +146 -165
  391. package/dist/agents/agent-loader.js.map +1 -1
  392. package/dist/api/auth-endpoints.js +415 -0
  393. package/dist/api/auth-endpoints.js.map +1 -0
  394. package/dist/api/task-endpoints.js +562 -0
  395. package/dist/api/task-endpoints.js.map +1 -0
  396. package/dist/backend/server.js +418 -0
  397. package/dist/backend/server.js.map +1 -0
  398. package/dist/cfn-loop/product-owner/decision-parser.js +356 -0
  399. package/dist/cfn-loop/product-owner/decision-parser.js.map +1 -0
  400. package/dist/cfn-loop/product-owner/index.js +1 -0
  401. package/dist/cfn-loop/product-owner/index.js.map +1 -1
  402. package/dist/cli/agent-command.js +1 -1
  403. package/dist/cli/agent-command.js.map +1 -1
  404. package/dist/cli/agent-completion.js +273 -0
  405. package/dist/cli/agent-completion.js.map +1 -0
  406. package/dist/cli/agent-prompt-builder.js +83 -48
  407. package/dist/cli/agent-prompt-builder.js.map +1 -1
  408. package/dist/cli/agent-spawner.js +499 -0
  409. package/dist/cli/agent-spawner.js.map +1 -0
  410. package/dist/cli/anthropic-client.js +10 -3
  411. package/dist/cli/anthropic-client.js.map +1 -1
  412. package/dist/cli/config-manager.js +91 -109
  413. package/dist/cli/index.js +11 -0
  414. package/dist/cli/index.js.map +1 -1
  415. package/dist/cli/parse-decision-cli.js +268 -0
  416. package/dist/cli/parse-decision-cli.js.map +1 -0
  417. package/dist/cli/post-edit-hook.js +83 -0
  418. package/dist/cli/post-edit-hook.js.map +1 -0
  419. package/dist/cli/pre-edit-hook.js +77 -0
  420. package/dist/cli/pre-edit-hook.js.map +1 -0
  421. package/dist/cli/spawn-agent-cli.js +209 -0
  422. package/dist/cli/spawn-agent-cli.js.map +1 -0
  423. package/dist/coordination/coordination-wrapper.js +383 -0
  424. package/dist/coordination/coordination-wrapper.js.map +1 -0
  425. package/dist/coordination/store-success-criteria.js +68 -0
  426. package/dist/coordination/store-success-criteria.js.map +1 -0
  427. package/dist/coordination/store-task-context.js +65 -0
  428. package/dist/coordination/store-task-context.js.map +1 -0
  429. package/dist/hooks/backup-manager.js +273 -0
  430. package/dist/hooks/backup-manager.js.map +1 -0
  431. package/dist/hooks/post-edit-validator.js +388 -0
  432. package/dist/hooks/post-edit-validator.js.map +1 -0
  433. package/dist/integration/index.js +19 -0
  434. package/dist/integration/index.js.map +1 -0
  435. package/dist/integration/task-mode-adapter.js +297 -0
  436. package/dist/integration/task-mode-adapter.js.map +1 -0
  437. package/dist/integration/trigger-dev-client.js +253 -0
  438. package/dist/integration/trigger-dev-client.js.map +1 -0
  439. package/dist/integration/trigger-dev-webhooks.js +362 -0
  440. package/dist/integration/trigger-dev-webhooks.js.map +1 -0
  441. package/dist/lib/path-validator.js +14 -5
  442. package/dist/lib/path-validator.js.map +1 -1
  443. package/dist/lib/redis-queue-manager.js +5 -1
  444. package/dist/lib/redis-queue-manager.js.map +1 -1
  445. package/dist/middleware/authentication.js +317 -0
  446. package/dist/middleware/authentication.js.map +1 -0
  447. package/dist/services/authentication.js +669 -0
  448. package/dist/services/authentication.js.map +1 -0
  449. package/dist/services/session-management.js +436 -0
  450. package/dist/services/session-management.js.map +1 -0
  451. package/dist/services/skill-deployment.js +8 -6
  452. package/dist/services/skill-deployment.js.map +1 -1
  453. package/dist/services/user-service.js +710 -0
  454. package/dist/services/user-service.js.map +1 -0
  455. package/dist/types/trigger-dev-events.d.js +10 -0
  456. package/dist/types/trigger-dev-events.d.js.map +1 -0
  457. package/docs/README.md +240 -0
  458. package/package.json +13 -4
  459. package/scripts/compare-workflow-performance.sh +556 -0
  460. package/scripts/migrate-to-optimized-workflows.sh +438 -0
  461. package/scripts/organize-docs.sh +338 -0
  462. package/scripts/trigger-dev-setup.sh +267 -0
  463. package/.claude/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +0 -348
  464. package/.claude/skills/cfn-docker-redis-coordination/README.md +0 -294
  465. package/.claude/skills/cfn-docker-redis-coordination/SKILL.md +0 -435
  466. package/.claude/skills/cfn-docker-redis-coordination/coordinate.sh +0 -650
  467. package/.claude/skills/cfn-docker-redis-coordination/coordinate.sh.backup-1763145142 +0 -641
  468. package/.claude/skills/cfn-docker-redis-coordination/package-lock.json +0 -5259
  469. package/.claude/skills/cfn-docker-redis-coordination/package.json +0 -40
  470. package/.claude/skills/cfn-docker-redis-coordination/src/coordinator.ts +0 -801
  471. package/.claude/skills/cfn-docker-redis-coordination/src/index.ts +0 -42
  472. package/.claude/skills/cfn-docker-redis-coordination/src/types.ts +0 -351
  473. package/.claude/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +0 -1464
  474. package/.claude/skills/cfn-docker-redis-coordination/tsconfig.json +0 -30
  475. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +0 -228
  476. package/.claude/skills/cfn-loop-orchestration/helpers/consensus-ts.sh +0 -104
  477. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +0 -94
  478. package/.claude/skills/cfn-loop-orchestration/helpers/context-injection.sh +0 -142
  479. package/.claude/skills/cfn-loop-orchestration/helpers/context-lookup.sh +0 -359
  480. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier-ts.sh +0 -123
  481. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +0 -71
  482. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +0 -56
  483. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager-ts.sh +0 -89
  484. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +0 -87
  485. package/.claude/skills/cfn-loop-orchestration/helpers/orchestrate-ts.sh +0 -104
  486. package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +0 -56
  487. package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +0 -290
  488. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator-ts.sh +0 -47
  489. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +0 -51
  490. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +0 -1345
  491. package/.claude/skills/cfn-redis-coordination/AGENT_LOGGING.md +0 -280
  492. package/.claude/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +0 -209
  493. package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +0 -319
  494. package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +0 -124
  495. package/.claude/skills/cfn-redis-coordination/config.json +0 -61
  496. package/.claude/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +0 -82
  497. package/.claude/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +0 -274
  498. package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -0
  499. package/.claude/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +0 -553
  500. package/.claude/skills/cfn-redis-coordination/jest.config.js +0 -23
  501. package/.claude/skills/cfn-redis-coordination/package-lock.json +0 -5272
  502. package/.claude/skills/cfn-redis-coordination/package.json +0 -45
  503. package/.claude/skills/cfn-redis-coordination/src/agent-logger.ts +0 -446
  504. package/.claude/skills/cfn-redis-coordination/src/agent-recovery.ts +0 -454
  505. package/.claude/skills/cfn-redis-coordination/src/completion-reporter.ts +0 -396
  506. package/.claude/skills/cfn-redis-coordination/src/context-manager.ts +0 -327
  507. package/.claude/skills/cfn-redis-coordination/src/index.ts +0 -82
  508. package/.claude/skills/cfn-redis-coordination/src/mode-detector.ts +0 -155
  509. package/.claude/skills/cfn-redis-coordination/src/redis/redis-client.ts +0 -305
  510. package/.claude/skills/cfn-redis-coordination/src/redis/redis-functions.ts +0 -283
  511. package/.claude/skills/cfn-redis-coordination/src/redis-client.ts +0 -654
  512. package/.claude/skills/cfn-redis-coordination/src/result-collector.ts +0 -437
  513. package/.claude/skills/cfn-redis-coordination/src/swarm-manager.ts +0 -494
  514. package/.claude/skills/cfn-redis-coordination/src/task-analyzer.ts +0 -404
  515. package/.claude/skills/cfn-redis-coordination/src/task-executor.ts +0 -423
  516. package/.claude/skills/cfn-redis-coordination/src/types.ts +0 -235
  517. package/.claude/skills/cfn-redis-coordination/src/waiting-coordinator.ts +0 -587
  518. package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +0 -85
  519. package/.claude/skills/cfn-redis-coordination/test-connection-attempts.js +0 -70
  520. package/.claude/skills/cfn-redis-coordination/test-mode-simple.js +0 -121
  521. package/.claude/skills/cfn-redis-coordination/test-redis-check.js +0 -84
  522. package/.claude/skills/cfn-redis-coordination/test-task-mode-redis.cjs +0 -391
  523. package/.claude/skills/cfn-redis-coordination/tests/coordination.test.ts +0 -788
  524. package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +0 -67
  525. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +0 -980
  526. package/claude-assets/agents/typescript-specialist.md +0 -280
  527. package/claude-assets/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +0 -348
  528. package/claude-assets/skills/cfn-docker-redis-coordination/README.md +0 -294
  529. package/claude-assets/skills/cfn-docker-redis-coordination/SKILL.md +0 -435
  530. package/claude-assets/skills/cfn-docker-redis-coordination/coordinate.sh +0 -650
  531. package/claude-assets/skills/cfn-docker-redis-coordination/coordinate.sh.backup-1763145142 +0 -641
  532. package/claude-assets/skills/cfn-docker-redis-coordination/jest.config.js +0 -37
  533. package/claude-assets/skills/cfn-docker-redis-coordination/package-lock.json +0 -5259
  534. package/claude-assets/skills/cfn-docker-redis-coordination/package.json +0 -40
  535. package/claude-assets/skills/cfn-docker-redis-coordination/src/coordinator.ts +0 -801
  536. package/claude-assets/skills/cfn-docker-redis-coordination/src/index.ts +0 -42
  537. package/claude-assets/skills/cfn-docker-redis-coordination/src/types.ts +0 -351
  538. package/claude-assets/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +0 -1464
  539. package/claude-assets/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +0 -228
  540. package/claude-assets/skills/cfn-loop-orchestration/helpers/consensus-ts.sh +0 -104
  541. package/claude-assets/skills/cfn-loop-orchestration/helpers/consensus.sh +0 -94
  542. package/claude-assets/skills/cfn-loop-orchestration/helpers/context-injection.sh +0 -142
  543. package/claude-assets/skills/cfn-loop-orchestration/helpers/context-lookup.sh +0 -359
  544. package/claude-assets/skills/cfn-loop-orchestration/helpers/deliverable-verifier-ts.sh +0 -123
  545. package/claude-assets/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +0 -71
  546. package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +0 -56
  547. package/claude-assets/skills/cfn-loop-orchestration/helpers/iteration-manager-ts.sh +0 -89
  548. package/claude-assets/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +0 -87
  549. package/claude-assets/skills/cfn-loop-orchestration/helpers/orchestrate-ts.sh +0 -104
  550. package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +0 -56
  551. package/claude-assets/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +0 -290
  552. package/claude-assets/skills/cfn-loop-orchestration/helpers/timeout-calculator-ts.sh +0 -47
  553. package/claude-assets/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +0 -51
  554. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +0 -1345
  555. package/claude-assets/skills/cfn-redis-cleanup/cleanup-redis.sh +0 -130
  556. package/claude-assets/skills/cfn-redis-coordination/AGENT_LOGGING.md +0 -280
  557. package/claude-assets/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +0 -209
  558. package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +0 -319
  559. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +0 -124
  560. package/claude-assets/skills/cfn-redis-coordination/config.json +0 -61
  561. package/claude-assets/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +0 -82
  562. package/claude-assets/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +0 -274
  563. package/claude-assets/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +0 -0
  564. package/claude-assets/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +0 -553
  565. package/claude-assets/skills/cfn-redis-coordination/jest.config.js +0 -23
  566. package/claude-assets/skills/cfn-redis-coordination/package-lock.json +0 -5272
  567. package/claude-assets/skills/cfn-redis-coordination/package.json +0 -45
  568. package/claude-assets/skills/cfn-redis-coordination/src/agent-logger.ts +0 -446
  569. package/claude-assets/skills/cfn-redis-coordination/src/agent-recovery.ts +0 -454
  570. package/claude-assets/skills/cfn-redis-coordination/src/completion-reporter.ts +0 -396
  571. package/claude-assets/skills/cfn-redis-coordination/src/context-manager.ts +0 -327
  572. package/claude-assets/skills/cfn-redis-coordination/src/index.ts +0 -82
  573. package/claude-assets/skills/cfn-redis-coordination/src/mode-detector.ts +0 -155
  574. package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-client.ts +0 -305
  575. package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-functions.ts +0 -283
  576. package/claude-assets/skills/cfn-redis-coordination/src/redis-client.ts +0 -654
  577. package/claude-assets/skills/cfn-redis-coordination/src/result-collector.ts +0 -437
  578. package/claude-assets/skills/cfn-redis-coordination/src/swarm-manager.ts +0 -494
  579. package/claude-assets/skills/cfn-redis-coordination/src/task-analyzer.ts +0 -404
  580. package/claude-assets/skills/cfn-redis-coordination/src/task-executor.ts +0 -423
  581. package/claude-assets/skills/cfn-redis-coordination/src/types.ts +0 -235
  582. package/claude-assets/skills/cfn-redis-coordination/src/waiting-coordinator.ts +0 -587
  583. package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +0 -85
  584. package/claude-assets/skills/cfn-redis-coordination/test-connection-attempts.js +0 -70
  585. package/claude-assets/skills/cfn-redis-coordination/test-mode-simple.js +0 -121
  586. package/claude-assets/skills/cfn-redis-coordination/test-redis-check.js +0 -84
  587. package/claude-assets/skills/cfn-redis-coordination/test-task-mode-redis.cjs +0 -391
  588. package/claude-assets/skills/cfn-redis-coordination/tests/coordination.test.ts +0 -788
  589. package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +0 -67
  590. package/claude-assets/skills/cfn-redis-data-extraction/SKILL.md +0 -442
  591. package/claude-assets/skills/cfn-redis-data-extraction/extract.sh +0 -306
  592. package/dist/coordination/index.js +0 -25
  593. package/dist/coordination/index.js.map +0 -1
  594. package/docs/BUG_19_MEMORY_LEAK_TASK_MODE.md +0 -405
  595. package/docs/MEMORY_CLEANUP_GUIDE.md +0 -358
  596. package/docs/MEMORY_LEAK_FIX_SUMMARY.md +0 -322
  597. package/docs/REDIS_CLEANUP_EXECUTIVE_SUMMARY.md +0 -319
  598. package/docs/REDIS_CLEANUP_VERIFICATION_REPORT.md +0 -574
  599. /package/.claude/skills/cfn-loop-orchestration/{inject-loop-context.sh → archive/legacy-bash/inject-loop-context.sh} +0 -0
  600. /package/.claude/skills/cfn-loop-orchestration/{monitor-execution.sh → archive/legacy-bash/monitor-execution.sh} +0 -0
  601. /package/.claude/skills/cfn-redis-coordination/{agent-log.sh → agent-log.sh.backup} +0 -0
  602. /package/.claude/skills/cfn-redis-coordination/{agent-recovery.sh → agent-recovery.sh.backup} +0 -0
  603. /package/.claude/skills/cfn-redis-coordination/{analyze-task-complexity.sh → analyze-task-complexity.sh.backup} +0 -0
  604. /package/.claude/skills/cfn-redis-coordination/bash-wrappers/{store-context.sh → store-context.sh.backup} +0 -0
  605. /package/.claude/skills/cfn-redis-coordination/{cancel-swarm.sh → cancel-swarm.sh.backup} +0 -0
  606. /package/.claude/skills/cfn-redis-coordination/{cfn-loop-exec.sh → cfn-loop-exec.sh.backup} +0 -0
  607. /package/.claude/skills/cfn-redis-coordination/{cfn-loop-relaunch.sh → cfn-loop-relaunch.sh.backup} +0 -0
  608. /package/.claude/skills/cfn-redis-coordination/{collect-confidence-scores.sh → collect-confidence-scores.sh.backup} +0 -0
  609. /package/.claude/skills/cfn-redis-coordination/{collect-results.sh → collect-results.sh.backup} +0 -0
  610. /package/.claude/skills/cfn-redis-coordination/{complete-swarm.sh → complete-swarm.sh.backup} +0 -0
  611. /package/.claude/skills/cfn-redis-coordination/{get-context.sh → get-context.sh.backup} +0 -0
  612. /package/.claude/skills/cfn-redis-coordination/{get-success-criteria.sh → get-success-criteria.sh.backup} +0 -0
  613. /package/.claude/skills/cfn-redis-coordination/{invoke-waiting-mode.sh → invoke-waiting-mode.sh.backup} +0 -0
  614. /package/.claude/skills/cfn-redis-coordination/{redis-cli-wrapper.sh → redis-cli-wrapper.sh.backup} +0 -0
  615. /package/.claude/skills/cfn-redis-coordination/{redis-functions.sh → redis-functions.sh.backup} +0 -0
  616. /package/.claude/skills/cfn-redis-coordination/{report-completion.sh → report-completion.sh.backup} +0 -0
  617. /package/.claude/skills/cfn-redis-coordination/{store-context.sh → store-context.sh.backup} +0 -0
  618. /package/claude-assets/skills/cfn-loop-orchestration/{inject-loop-context.sh → archive/legacy-bash/inject-loop-context.sh} +0 -0
  619. /package/claude-assets/skills/cfn-loop-orchestration/{monitor-execution.sh → archive/legacy-bash/monitor-execution.sh} +0 -0
  620. /package/claude-assets/skills/cfn-redis-coordination/{agent-log.sh → agent-log.sh.backup} +0 -0
  621. /package/claude-assets/skills/cfn-redis-coordination/{agent-recovery.sh → agent-recovery.sh.backup} +0 -0
  622. /package/claude-assets/skills/cfn-redis-coordination/{analyze-task-complexity.sh → analyze-task-complexity.sh.backup} +0 -0
  623. /package/claude-assets/skills/cfn-redis-coordination/bash-wrappers/{store-context.sh → store-context.sh.backup} +0 -0
  624. /package/claude-assets/skills/cfn-redis-coordination/{cancel-swarm.sh → cancel-swarm.sh.backup} +0 -0
  625. /package/claude-assets/skills/cfn-redis-coordination/{cfn-loop-exec.sh → cfn-loop-exec.sh.backup} +0 -0
  626. /package/claude-assets/skills/cfn-redis-coordination/{cfn-loop-relaunch.sh → cfn-loop-relaunch.sh.backup} +0 -0
  627. /package/claude-assets/skills/cfn-redis-coordination/{collect-confidence-scores.sh → collect-confidence-scores.sh.backup} +0 -0
  628. /package/claude-assets/skills/cfn-redis-coordination/{collect-results.sh → collect-results.sh.backup} +0 -0
  629. /package/claude-assets/skills/cfn-redis-coordination/{complete-swarm.sh → complete-swarm.sh.backup} +0 -0
  630. /package/claude-assets/skills/cfn-redis-coordination/{get-context.sh → get-context.sh.backup} +0 -0
  631. /package/claude-assets/skills/cfn-redis-coordination/{get-success-criteria.sh → get-success-criteria.sh.backup} +0 -0
  632. /package/claude-assets/skills/cfn-redis-coordination/{invoke-waiting-mode.sh → invoke-waiting-mode.sh.backup} +0 -0
  633. /package/claude-assets/skills/cfn-redis-coordination/{redis-cli-wrapper.sh → redis-cli-wrapper.sh.backup} +0 -0
  634. /package/claude-assets/skills/cfn-redis-coordination/{redis-functions.sh → redis-functions.sh.backup} +0 -0
  635. /package/claude-assets/skills/cfn-redis-coordination/{report-completion.sh → report-completion.sh.backup} +0 -0
  636. /package/claude-assets/skills/cfn-redis-coordination/{store-context.sh → store-context.sh.backup} +0 -0
@@ -0,0 +1,297 @@
1
+ /**
2
+ * Task Mode Adapter - In-Memory and Hybrid Coordination
3
+ *
4
+ * Provides task mode coordination that works with or without trigger.dev:
5
+ * - In-memory event queuing when trigger.dev unavailable
6
+ * - Hybrid mode using trigger.dev webhooks for event notifications
7
+ * - Fallback to memory when API calls fail
8
+ *
9
+ * Configuration:
10
+ * - TASK_MODE_USE_MEMORY: Force memory mode (default: auto-detect)
11
+ * - TASK_MODE_TIMEOUT_MS: Default timeout for agent completion waits
12
+ */ import { EventEmitter } from 'node:events';
13
+ import TriggerDevClient from './trigger-dev-client.js';
14
+ /**
15
+ * Task mode event storage (FIFO queue)
16
+ */ export class TaskModeEventQueue {
17
+ queue = [];
18
+ eventEmitter = new EventEmitter();
19
+ /**
20
+ * Enqueue event for later processing
21
+ */ enqueue(event) {
22
+ this.queue.push(event);
23
+ this.eventEmitter.emit('event-added', event);
24
+ }
25
+ /**
26
+ * Dequeue next event (FIFO)
27
+ */ dequeue() {
28
+ return this.queue.shift();
29
+ }
30
+ /**
31
+ * Get all events of specific type
32
+ */ getByType(type) {
33
+ return this.queue.filter((e)=>e.type === type);
34
+ }
35
+ /**
36
+ * Get all events for task
37
+ */ getByTaskId(taskId) {
38
+ return this.queue.filter((e)=>e.taskId === taskId);
39
+ }
40
+ /**
41
+ * Clear all events
42
+ */ clear() {
43
+ this.queue = [];
44
+ }
45
+ /**
46
+ * Get queue size
47
+ */ size() {
48
+ return this.queue.length;
49
+ }
50
+ /**
51
+ * Subscribe to new events
52
+ */ on(event, listener) {
53
+ this.eventEmitter.on(event, listener);
54
+ }
55
+ /**
56
+ * Unsubscribe from events
57
+ */ off(event, listener) {
58
+ this.eventEmitter.off(event, listener);
59
+ }
60
+ }
61
+ /**
62
+ * TaskModeCoordinator - In-memory and hybrid coordination
63
+ *
64
+ * Provides task mode without Redis/external coordination:
65
+ * - Spawns agents with in-memory tracking
66
+ * - Waits for completion via event listeners
67
+ * - Falls back to memory if trigger.dev unavailable
68
+ * - Optionally uses trigger.dev for webhook notifications
69
+ */ export class TaskModeCoordinator {
70
+ config;
71
+ triggerDevClient;
72
+ eventQueue = new TaskModeEventQueue();
73
+ pendingCompletions = new Map();
74
+ constructor(options){
75
+ this.config = {
76
+ useMemory: options?.useMemory !== undefined ? options.useMemory : process.env.TASK_MODE_USE_MEMORY === 'true' || !process.env.TRIGGER_API_URL,
77
+ defaultTimeoutMs: options?.defaultTimeoutMs || 30000,
78
+ useTriggerDev: Boolean(process.env.TRIGGER_API_URL)
79
+ };
80
+ // Initialize trigger.dev client if configured
81
+ if (this.config.useTriggerDev && !this.config.useMemory) {
82
+ try {
83
+ this.triggerDevClient = new TriggerDevClient(options?.triggerDevConfig);
84
+ } catch (error) {
85
+ // Fall back to memory mode if trigger.dev config fails
86
+ console.warn('Trigger.dev initialization failed, using memory mode:', error);
87
+ this.config.useMemory = true;
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * Spawn agent and wait for completion
93
+ *
94
+ * TODO: RUNTIME_TEST: Verify agent spawning works in memory mode
95
+ * TODO: RUNTIME_TEST: Test timeout behavior with slow agents
96
+ *
97
+ * @param agentType Type of agent to spawn
98
+ * @param taskId Task ID
99
+ * @param payload Agent configuration
100
+ * @param timeoutMs Optional timeout override
101
+ * @returns Promise resolving to agent result
102
+ * @throws Error on spawn failure or timeout
103
+ */ async spawnAgent(agentType, taskId, payload, timeoutMs) {
104
+ const agentId = this.generateAgentId(agentType);
105
+ const timeout = timeoutMs || this.config.defaultTimeoutMs;
106
+ try {
107
+ // If using trigger.dev, trigger the run
108
+ if (this.triggerDevClient && !this.config.useMemory) {
109
+ await this.triggerViaTriggerDev(agentType, taskId, payload);
110
+ }
111
+ // Wait for completion either via webhook or event queue
112
+ const result = await this.waitForCompletion(agentId, timeout);
113
+ return result;
114
+ } catch (error) {
115
+ if (error instanceof Error) {
116
+ throw error;
117
+ }
118
+ throw new Error(`Agent spawn failed: ${String(error)}`);
119
+ }
120
+ }
121
+ /**
122
+ * Register agent completion event
123
+ *
124
+ * Used by webhook handlers to signal completion
125
+ */ registerAgentComplete(payload) {
126
+ this.eventQueue.enqueue({
127
+ type: 'agent-complete',
128
+ taskId: payload.taskId,
129
+ payload,
130
+ timestamp: Date.now()
131
+ });
132
+ // Resolve pending completion if waiting
133
+ const pending = this.pendingCompletions.get(payload.agentId);
134
+ if (pending) {
135
+ clearTimeout(pending.timeoutHandle);
136
+ pending.resolve({
137
+ agentId: payload.agentId,
138
+ agentType: payload.agentType,
139
+ success: payload.status === 'success',
140
+ output: payload.output,
141
+ confidenceScore: payload.confidenceScore,
142
+ executionTimeMs: payload.executionTimeMs
143
+ });
144
+ this.pendingCompletions.delete(payload.agentId);
145
+ }
146
+ return {
147
+ success: true,
148
+ message: 'Agent completion registered',
149
+ data: {
150
+ agentId: payload.agentId
151
+ }
152
+ };
153
+ }
154
+ /**
155
+ * Register gate result
156
+ */ registerGateResult(payload) {
157
+ this.eventQueue.enqueue({
158
+ type: 'gate-result',
159
+ taskId: payload.taskId,
160
+ payload,
161
+ timestamp: Date.now()
162
+ });
163
+ return {
164
+ success: true,
165
+ message: 'Gate result registered',
166
+ data: {
167
+ taskId: payload.taskId,
168
+ passed: payload.passed
169
+ }
170
+ };
171
+ }
172
+ /**
173
+ * Register consensus result
174
+ */ registerConsensusResult(payload) {
175
+ this.eventQueue.enqueue({
176
+ type: 'consensus-result',
177
+ taskId: payload.taskId,
178
+ payload,
179
+ timestamp: Date.now()
180
+ });
181
+ return {
182
+ success: true,
183
+ message: 'Consensus result registered',
184
+ data: {
185
+ taskId: payload.taskId,
186
+ consensusScore: payload.consensusScore
187
+ }
188
+ };
189
+ }
190
+ /**
191
+ * Register PO decision
192
+ */ registerPODecision(payload) {
193
+ this.eventQueue.enqueue({
194
+ type: 'po-decision',
195
+ taskId: payload.taskId,
196
+ payload,
197
+ timestamp: Date.now()
198
+ });
199
+ return {
200
+ success: true,
201
+ message: 'PO decision registered',
202
+ data: {
203
+ taskId: payload.taskId,
204
+ decision: payload.decision
205
+ }
206
+ };
207
+ }
208
+ /**
209
+ * Get event queue (for testing and inspection)
210
+ */ getEventQueue() {
211
+ return this.eventQueue;
212
+ }
213
+ /**
214
+ * Get all events for task
215
+ */ getTaskEvents(taskId) {
216
+ return this.eventQueue.getByTaskId(taskId);
217
+ }
218
+ /**
219
+ * Check if using memory mode
220
+ */ isMemoryMode() {
221
+ return this.config.useMemory;
222
+ }
223
+ /**
224
+ * Internal: Trigger agent run via trigger.dev
225
+ *
226
+ * @private
227
+ */ async triggerViaTriggerDev(agentType, taskId, payload) {
228
+ if (!this.triggerDevClient) {
229
+ return;
230
+ }
231
+ try {
232
+ // TODO: RUNTIME_TEST: Verify trigger.dev API call succeeds
233
+ await this.triggerDevClient.triggerCFNLoop({
234
+ taskId,
235
+ description: `Task mode agent: ${agentType}`,
236
+ mode: 'standard',
237
+ successCriteria: {
238
+ gate: 'test-pass-rate >= 0.95',
239
+ consensusThreshold: 0.9,
240
+ testPassRateThreshold: 0.95
241
+ },
242
+ context: {
243
+ agentType,
244
+ payload
245
+ }
246
+ });
247
+ } catch (error) {
248
+ // Fall back to memory mode if trigger.dev fails
249
+ console.warn('Trigger.dev trigger failed, continuing in memory mode:', error);
250
+ }
251
+ }
252
+ /**
253
+ * Internal: Wait for agent completion
254
+ *
255
+ * @private
256
+ */ waitForCompletion(agentId, timeoutMs) {
257
+ return new Promise((resolve, reject)=>{
258
+ const timeoutHandle = setTimeout(()=>{
259
+ this.pendingCompletions.delete(agentId);
260
+ reject(new Error(`Agent ${agentId} did not complete within ${timeoutMs}ms`));
261
+ }, timeoutMs);
262
+ this.pendingCompletions.set(agentId, {
263
+ agentId,
264
+ resolve,
265
+ reject,
266
+ timeoutHandle
267
+ });
268
+ });
269
+ }
270
+ /**
271
+ * Internal: Generate unique agent ID
272
+ *
273
+ * @private
274
+ */ generateAgentId(agentType) {
275
+ return `${agentType}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
276
+ }
277
+ }
278
+ /**
279
+ * Create task mode coordinator singleton
280
+ */ let coordinatorInstance = null;
281
+ export const createTaskModeCoordinator = (options)=>{
282
+ if (!coordinatorInstance) {
283
+ coordinatorInstance = new TaskModeCoordinator(options);
284
+ }
285
+ return coordinatorInstance;
286
+ };
287
+ /**
288
+ * Get existing coordinator instance or create new one
289
+ */ export const getTaskModeCoordinator = ()=>{
290
+ if (!coordinatorInstance) {
291
+ coordinatorInstance = new TaskModeCoordinator();
292
+ }
293
+ return coordinatorInstance;
294
+ };
295
+ export default TaskModeCoordinator;
296
+
297
+ //# sourceMappingURL=task-mode-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/integration/task-mode-adapter.ts"],"sourcesContent":["/**\r\n * Task Mode Adapter - In-Memory and Hybrid Coordination\r\n *\r\n * Provides task mode coordination that works with or without trigger.dev:\r\n * - In-memory event queuing when trigger.dev unavailable\r\n * - Hybrid mode using trigger.dev webhooks for event notifications\r\n * - Fallback to memory when API calls fail\r\n *\r\n * Configuration:\r\n * - TASK_MODE_USE_MEMORY: Force memory mode (default: auto-detect)\r\n * - TASK_MODE_TIMEOUT_MS: Default timeout for agent completion waits\r\n */\r\n\r\nimport { EventEmitter } from 'node:events';\r\nimport type {\r\n TaskModeSpawnRequest,\r\n TaskModeAgentResult,\r\n TaskModeEvent,\r\n AgentCompletePayload,\r\n GateResultPayload,\r\n ConsensusResultPayload,\r\n PODecisionPayload,\r\n AgentType,\r\n} from '../types/trigger-dev-events.d.js';\r\nimport TriggerDevClient, { TriggerDevError } from './trigger-dev-client.js';\r\n\r\n// TODO: RUNTIME_TEST: Verify EventEmitter imports work in Node.js environment\r\n\r\n/**\r\n * Task mode coordination result\r\n */\r\nexport interface TaskModeCoordinationResult {\r\n success: boolean;\r\n message: string;\r\n data?: unknown;\r\n}\r\n\r\n/**\r\n * Pending agent completion waiter\r\n */\r\ninterface PendingCompletion {\r\n agentId: string;\r\n resolve: (result: TaskModeAgentResult) => void;\r\n reject: (error: Error) => void;\r\n timeoutHandle: ReturnType<typeof setTimeout>;\r\n}\r\n\r\n/**\r\n * Task mode event storage (FIFO queue)\r\n */\r\nexport class TaskModeEventQueue {\r\n private queue: TaskModeEvent[] = [];\r\n private eventEmitter: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n * Enqueue event for later processing\r\n */\r\n enqueue(event: TaskModeEvent): void {\r\n this.queue.push(event);\r\n this.eventEmitter.emit('event-added', event);\r\n }\r\n\r\n /**\r\n * Dequeue next event (FIFO)\r\n */\r\n dequeue(): TaskModeEvent | undefined {\r\n return this.queue.shift();\r\n }\r\n\r\n /**\r\n * Get all events of specific type\r\n */\r\n getByType(type: TaskModeEvent['type']): TaskModeEvent[] {\r\n return this.queue.filter(e => e.type === type);\r\n }\r\n\r\n /**\r\n * Get all events for task\r\n */\r\n getByTaskId(taskId: string): TaskModeEvent[] {\r\n return this.queue.filter(e => e.taskId === taskId);\r\n }\r\n\r\n /**\r\n * Clear all events\r\n */\r\n clear(): void {\r\n this.queue = [];\r\n }\r\n\r\n /**\r\n * Get queue size\r\n */\r\n size(): number {\r\n return this.queue.length;\r\n }\r\n\r\n /**\r\n * Subscribe to new events\r\n */\r\n on(event: string, listener: Function): void {\r\n this.eventEmitter.on(event, listener as any);\r\n }\r\n\r\n /**\r\n * Unsubscribe from events\r\n */\r\n off(event: string, listener: Function): void {\r\n this.eventEmitter.off(event, listener as any);\r\n }\r\n}\r\n\r\n/**\r\n * TaskModeCoordinator - In-memory and hybrid coordination\r\n *\r\n * Provides task mode without Redis/external coordination:\r\n * - Spawns agents with in-memory tracking\r\n * - Waits for completion via event listeners\r\n * - Falls back to memory if trigger.dev unavailable\r\n * - Optionally uses trigger.dev for webhook notifications\r\n */\r\nexport class TaskModeCoordinator {\r\n private readonly config: {\r\n useMemory: boolean;\r\n defaultTimeoutMs: number;\r\n useTriggerDev: boolean;\r\n };\r\n\r\n private triggerDevClient?: TriggerDevClient;\r\n private eventQueue: TaskModeEventQueue = new TaskModeEventQueue();\r\n private pendingCompletions: Map<string, PendingCompletion> = new Map();\r\n\r\n constructor(options?: {\r\n useMemory?: boolean;\r\n defaultTimeoutMs?: number;\r\n triggerDevConfig?: any;\r\n }) {\r\n this.config = {\r\n useMemory:\r\n options?.useMemory !== undefined\r\n ? options.useMemory\r\n : (process.env.TASK_MODE_USE_MEMORY === 'true' || !process.env.TRIGGER_API_URL),\r\n defaultTimeoutMs: options?.defaultTimeoutMs || 30000,\r\n useTriggerDev: Boolean(process.env.TRIGGER_API_URL),\r\n };\r\n\r\n // Initialize trigger.dev client if configured\r\n if (this.config.useTriggerDev && !this.config.useMemory) {\r\n try {\r\n this.triggerDevClient = new TriggerDevClient(options?.triggerDevConfig);\r\n } catch (error) {\r\n // Fall back to memory mode if trigger.dev config fails\r\n console.warn('Trigger.dev initialization failed, using memory mode:', error);\r\n this.config.useMemory = true;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Spawn agent and wait for completion\r\n *\r\n * TODO: RUNTIME_TEST: Verify agent spawning works in memory mode\r\n * TODO: RUNTIME_TEST: Test timeout behavior with slow agents\r\n *\r\n * @param agentType Type of agent to spawn\r\n * @param taskId Task ID\r\n * @param payload Agent configuration\r\n * @param timeoutMs Optional timeout override\r\n * @returns Promise resolving to agent result\r\n * @throws Error on spawn failure or timeout\r\n */\r\n async spawnAgent(\r\n agentType: AgentType,\r\n taskId: string,\r\n payload: Record<string, unknown>,\r\n timeoutMs?: number\r\n ): Promise<TaskModeAgentResult> {\r\n const agentId = this.generateAgentId(agentType);\r\n const timeout = timeoutMs || this.config.defaultTimeoutMs;\r\n\r\n try {\r\n // If using trigger.dev, trigger the run\r\n if (this.triggerDevClient && !this.config.useMemory) {\r\n await this.triggerViaTriggerDev(agentType, taskId, payload);\r\n }\r\n\r\n // Wait for completion either via webhook or event queue\r\n const result = await this.waitForCompletion(agentId, timeout);\r\n return result;\r\n } catch (error) {\r\n if (error instanceof Error) {\r\n throw error;\r\n }\r\n throw new Error(`Agent spawn failed: ${String(error)}`);\r\n }\r\n }\r\n\r\n /**\r\n * Register agent completion event\r\n *\r\n * Used by webhook handlers to signal completion\r\n */\r\n registerAgentComplete(payload: AgentCompletePayload): TaskModeCoordinationResult {\r\n this.eventQueue.enqueue({\r\n type: 'agent-complete',\r\n taskId: payload.taskId,\r\n payload,\r\n timestamp: Date.now(),\r\n });\r\n\r\n // Resolve pending completion if waiting\r\n const pending = this.pendingCompletions.get(payload.agentId);\r\n if (pending) {\r\n clearTimeout(pending.timeoutHandle);\r\n pending.resolve({\r\n agentId: payload.agentId,\r\n agentType: payload.agentType,\r\n success: payload.status === 'success',\r\n output: payload.output,\r\n confidenceScore: payload.confidenceScore,\r\n executionTimeMs: payload.executionTimeMs,\r\n });\r\n this.pendingCompletions.delete(payload.agentId);\r\n }\r\n\r\n return {\r\n success: true,\r\n message: 'Agent completion registered',\r\n data: { agentId: payload.agentId },\r\n };\r\n }\r\n\r\n /**\r\n * Register gate result\r\n */\r\n registerGateResult(payload: GateResultPayload): TaskModeCoordinationResult {\r\n this.eventQueue.enqueue({\r\n type: 'gate-result',\r\n taskId: payload.taskId,\r\n payload,\r\n timestamp: Date.now(),\r\n });\r\n\r\n return {\r\n success: true,\r\n message: 'Gate result registered',\r\n data: { taskId: payload.taskId, passed: payload.passed },\r\n };\r\n }\r\n\r\n /**\r\n * Register consensus result\r\n */\r\n registerConsensusResult(payload: ConsensusResultPayload): TaskModeCoordinationResult {\r\n this.eventQueue.enqueue({\r\n type: 'consensus-result',\r\n taskId: payload.taskId,\r\n payload,\r\n timestamp: Date.now(),\r\n });\r\n\r\n return {\r\n success: true,\r\n message: 'Consensus result registered',\r\n data: {\r\n taskId: payload.taskId,\r\n consensusScore: payload.consensusScore,\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Register PO decision\r\n */\r\n registerPODecision(payload: PODecisionPayload): TaskModeCoordinationResult {\r\n this.eventQueue.enqueue({\r\n type: 'po-decision',\r\n taskId: payload.taskId,\r\n payload,\r\n timestamp: Date.now(),\r\n });\r\n\r\n return {\r\n success: true,\r\n message: 'PO decision registered',\r\n data: { taskId: payload.taskId, decision: payload.decision },\r\n };\r\n }\r\n\r\n /**\r\n * Get event queue (for testing and inspection)\r\n */\r\n getEventQueue(): TaskModeEventQueue {\r\n return this.eventQueue;\r\n }\r\n\r\n /**\r\n * Get all events for task\r\n */\r\n getTaskEvents(taskId: string): TaskModeEvent[] {\r\n return this.eventQueue.getByTaskId(taskId);\r\n }\r\n\r\n /**\r\n * Check if using memory mode\r\n */\r\n isMemoryMode(): boolean {\r\n return this.config.useMemory;\r\n }\r\n\r\n /**\r\n * Internal: Trigger agent run via trigger.dev\r\n *\r\n * @private\r\n */\r\n private async triggerViaTriggerDev(\r\n agentType: AgentType,\r\n taskId: string,\r\n payload: Record<string, unknown>\r\n ): Promise<void> {\r\n if (!this.triggerDevClient) {\r\n return;\r\n }\r\n\r\n try {\r\n // TODO: RUNTIME_TEST: Verify trigger.dev API call succeeds\r\n await this.triggerDevClient.triggerCFNLoop({\r\n taskId,\r\n description: `Task mode agent: ${agentType}`,\r\n mode: 'standard',\r\n successCriteria: {\r\n gate: 'test-pass-rate >= 0.95',\r\n consensusThreshold: 0.9,\r\n testPassRateThreshold: 0.95,\r\n },\r\n context: {\r\n agentType,\r\n payload,\r\n },\r\n });\r\n } catch (error) {\r\n // Fall back to memory mode if trigger.dev fails\r\n console.warn('Trigger.dev trigger failed, continuing in memory mode:', error);\r\n }\r\n }\r\n\r\n /**\r\n * Internal: Wait for agent completion\r\n *\r\n * @private\r\n */\r\n private waitForCompletion(agentId: string, timeoutMs: number): Promise<TaskModeAgentResult> {\r\n return new Promise((resolve, reject) => {\r\n const timeoutHandle = setTimeout(() => {\r\n this.pendingCompletions.delete(agentId);\r\n reject(new Error(`Agent ${agentId} did not complete within ${timeoutMs}ms`));\r\n }, timeoutMs);\r\n\r\n this.pendingCompletions.set(agentId, {\r\n agentId,\r\n resolve,\r\n reject,\r\n timeoutHandle,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Internal: Generate unique agent ID\r\n *\r\n * @private\r\n */\r\n private generateAgentId(agentType: AgentType): string {\r\n return `${agentType}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\r\n }\r\n}\r\n\r\n/**\r\n * Create task mode coordinator singleton\r\n */\r\nlet coordinatorInstance: TaskModeCoordinator | null = null;\r\n\r\nexport const createTaskModeCoordinator = (options?: {\r\n useMemory?: boolean;\r\n defaultTimeoutMs?: number;\r\n triggerDevConfig?: any;\r\n}): TaskModeCoordinator => {\r\n if (!coordinatorInstance) {\r\n coordinatorInstance = new TaskModeCoordinator(options);\r\n }\r\n return coordinatorInstance;\r\n};\r\n\r\n/**\r\n * Get existing coordinator instance or create new one\r\n */\r\nexport const getTaskModeCoordinator = (): TaskModeCoordinator => {\r\n if (!coordinatorInstance) {\r\n coordinatorInstance = new TaskModeCoordinator();\r\n }\r\n return coordinatorInstance;\r\n};\r\n\r\nexport default TaskModeCoordinator;\r\n"],"names":["EventEmitter","TriggerDevClient","TaskModeEventQueue","queue","eventEmitter","enqueue","event","push","emit","dequeue","shift","getByType","type","filter","e","getByTaskId","taskId","clear","size","length","on","listener","off","TaskModeCoordinator","config","triggerDevClient","eventQueue","pendingCompletions","Map","options","useMemory","undefined","process","env","TASK_MODE_USE_MEMORY","TRIGGER_API_URL","defaultTimeoutMs","useTriggerDev","Boolean","triggerDevConfig","error","console","warn","spawnAgent","agentType","payload","timeoutMs","agentId","generateAgentId","timeout","triggerViaTriggerDev","result","waitForCompletion","Error","String","registerAgentComplete","timestamp","Date","now","pending","get","clearTimeout","timeoutHandle","resolve","success","status","output","confidenceScore","executionTimeMs","delete","message","data","registerGateResult","passed","registerConsensusResult","consensusScore","registerPODecision","decision","getEventQueue","getTaskEvents","isMemoryMode","triggerCFNLoop","description","mode","successCriteria","gate","consensusThreshold","testPassRateThreshold","context","Promise","reject","setTimeout","set","Math","random","toString","substr","coordinatorInstance","createTaskModeCoordinator","getTaskModeCoordinator"],"mappings":"AAAA;;;;;;;;;;;CAWC,GAED,SAASA,YAAY,QAAQ,cAAc;AAW3C,OAAOC,sBAA2C,0BAA0B;AAuB5E;;CAEC,GACD,OAAO,MAAMC;IACHC,QAAyB,EAAE,CAAC;IAC5BC,eAA6B,IAAIJ,eAAe;IAExD;;GAEC,GACDK,QAAQC,KAAoB,EAAQ;QAClC,IAAI,CAACH,KAAK,CAACI,IAAI,CAACD;QAChB,IAAI,CAACF,YAAY,CAACI,IAAI,CAAC,eAAeF;IACxC;IAEA;;GAEC,GACDG,UAAqC;QACnC,OAAO,IAAI,CAACN,KAAK,CAACO,KAAK;IACzB;IAEA;;GAEC,GACDC,UAAUC,IAA2B,EAAmB;QACtD,OAAO,IAAI,CAACT,KAAK,CAACU,MAAM,CAACC,CAAAA,IAAKA,EAAEF,IAAI,KAAKA;IAC3C;IAEA;;GAEC,GACDG,YAAYC,MAAc,EAAmB;QAC3C,OAAO,IAAI,CAACb,KAAK,CAACU,MAAM,CAACC,CAAAA,IAAKA,EAAEE,MAAM,KAAKA;IAC7C;IAEA;;GAEC,GACDC,QAAc;QACZ,IAAI,CAACd,KAAK,GAAG,EAAE;IACjB;IAEA;;GAEC,GACDe,OAAe;QACb,OAAO,IAAI,CAACf,KAAK,CAACgB,MAAM;IAC1B;IAEA;;GAEC,GACDC,GAAGd,KAAa,EAAEe,QAAkB,EAAQ;QAC1C,IAAI,CAACjB,YAAY,CAACgB,EAAE,CAACd,OAAOe;IAC9B;IAEA;;GAEC,GACDC,IAAIhB,KAAa,EAAEe,QAAkB,EAAQ;QAC3C,IAAI,CAACjB,YAAY,CAACkB,GAAG,CAAChB,OAAOe;IAC/B;AACF;AAEA;;;;;;;;CAQC,GACD,OAAO,MAAME;IACMC,OAIf;IAEMC,iBAAoC;IACpCC,aAAiC,IAAIxB,qBAAqB;IAC1DyB,qBAAqD,IAAIC,MAAM;IAEvE,YAAYC,OAIX,CAAE;QACD,IAAI,CAACL,MAAM,GAAG;YACZM,WACED,SAASC,cAAcC,YACnBF,QAAQC,SAAS,GAChBE,QAAQC,GAAG,CAACC,oBAAoB,KAAK,UAAU,CAACF,QAAQC,GAAG,CAACE,eAAe;YAClFC,kBAAkBP,SAASO,oBAAoB;YAC/CC,eAAeC,QAAQN,QAAQC,GAAG,CAACE,eAAe;QACpD;QAEA,8CAA8C;QAC9C,IAAI,IAAI,CAACX,MAAM,CAACa,aAAa,IAAI,CAAC,IAAI,CAACb,MAAM,CAACM,SAAS,EAAE;YACvD,IAAI;gBACF,IAAI,CAACL,gBAAgB,GAAG,IAAIxB,iBAAiB4B,SAASU;YACxD,EAAE,OAAOC,OAAO;gBACd,uDAAuD;gBACvDC,QAAQC,IAAI,CAAC,yDAAyDF;gBACtE,IAAI,CAAChB,MAAM,CAACM,SAAS,GAAG;YAC1B;QACF;IACF;IAEA;;;;;;;;;;;;GAYC,GACD,MAAMa,WACJC,SAAoB,EACpB5B,MAAc,EACd6B,OAAgC,EAChCC,SAAkB,EACY;QAC9B,MAAMC,UAAU,IAAI,CAACC,eAAe,CAACJ;QACrC,MAAMK,UAAUH,aAAa,IAAI,CAACtB,MAAM,CAACY,gBAAgB;QAEzD,IAAI;YACF,wCAAwC;YACxC,IAAI,IAAI,CAACX,gBAAgB,IAAI,CAAC,IAAI,CAACD,MAAM,CAACM,SAAS,EAAE;gBACnD,MAAM,IAAI,CAACoB,oBAAoB,CAACN,WAAW5B,QAAQ6B;YACrD;YAEA,wDAAwD;YACxD,MAAMM,SAAS,MAAM,IAAI,CAACC,iBAAiB,CAACL,SAASE;YACrD,OAAOE;QACT,EAAE,OAAOX,OAAO;YACd,IAAIA,iBAAiBa,OAAO;gBAC1B,MAAMb;YACR;YACA,MAAM,IAAIa,MAAM,CAAC,oBAAoB,EAAEC,OAAOd,QAAQ;QACxD;IACF;IAEA;;;;GAIC,GACDe,sBAAsBV,OAA6B,EAA8B;QAC/E,IAAI,CAACnB,UAAU,CAACrB,OAAO,CAAC;YACtBO,MAAM;YACNI,QAAQ6B,QAAQ7B,MAAM;YACtB6B;YACAW,WAAWC,KAAKC,GAAG;QACrB;QAEA,wCAAwC;QACxC,MAAMC,UAAU,IAAI,CAAChC,kBAAkB,CAACiC,GAAG,CAACf,QAAQE,OAAO;QAC3D,IAAIY,SAAS;YACXE,aAAaF,QAAQG,aAAa;YAClCH,QAAQI,OAAO,CAAC;gBACdhB,SAASF,QAAQE,OAAO;gBACxBH,WAAWC,QAAQD,SAAS;gBAC5BoB,SAASnB,QAAQoB,MAAM,KAAK;gBAC5BC,QAAQrB,QAAQqB,MAAM;gBACtBC,iBAAiBtB,QAAQsB,eAAe;gBACxCC,iBAAiBvB,QAAQuB,eAAe;YAC1C;YACA,IAAI,CAACzC,kBAAkB,CAAC0C,MAAM,CAACxB,QAAQE,OAAO;QAChD;QAEA,OAAO;YACLiB,SAAS;YACTM,SAAS;YACTC,MAAM;gBAAExB,SAASF,QAAQE,OAAO;YAAC;QACnC;IACF;IAEA;;GAEC,GACDyB,mBAAmB3B,OAA0B,EAA8B;QACzE,IAAI,CAACnB,UAAU,CAACrB,OAAO,CAAC;YACtBO,MAAM;YACNI,QAAQ6B,QAAQ7B,MAAM;YACtB6B;YACAW,WAAWC,KAAKC,GAAG;QACrB;QAEA,OAAO;YACLM,SAAS;YACTM,SAAS;YACTC,MAAM;gBAAEvD,QAAQ6B,QAAQ7B,MAAM;gBAAEyD,QAAQ5B,QAAQ4B,MAAM;YAAC;QACzD;IACF;IAEA;;GAEC,GACDC,wBAAwB7B,OAA+B,EAA8B;QACnF,IAAI,CAACnB,UAAU,CAACrB,OAAO,CAAC;YACtBO,MAAM;YACNI,QAAQ6B,QAAQ7B,MAAM;YACtB6B;YACAW,WAAWC,KAAKC,GAAG;QACrB;QAEA,OAAO;YACLM,SAAS;YACTM,SAAS;YACTC,MAAM;gBACJvD,QAAQ6B,QAAQ7B,MAAM;gBACtB2D,gBAAgB9B,QAAQ8B,cAAc;YACxC;QACF;IACF;IAEA;;GAEC,GACDC,mBAAmB/B,OAA0B,EAA8B;QACzE,IAAI,CAACnB,UAAU,CAACrB,OAAO,CAAC;YACtBO,MAAM;YACNI,QAAQ6B,QAAQ7B,MAAM;YACtB6B;YACAW,WAAWC,KAAKC,GAAG;QACrB;QAEA,OAAO;YACLM,SAAS;YACTM,SAAS;YACTC,MAAM;gBAAEvD,QAAQ6B,QAAQ7B,MAAM;gBAAE6D,UAAUhC,QAAQgC,QAAQ;YAAC;QAC7D;IACF;IAEA;;GAEC,GACDC,gBAAoC;QAClC,OAAO,IAAI,CAACpD,UAAU;IACxB;IAEA;;GAEC,GACDqD,cAAc/D,MAAc,EAAmB;QAC7C,OAAO,IAAI,CAACU,UAAU,CAACX,WAAW,CAACC;IACrC;IAEA;;GAEC,GACDgE,eAAwB;QACtB,OAAO,IAAI,CAACxD,MAAM,CAACM,SAAS;IAC9B;IAEA;;;;GAIC,GACD,MAAcoB,qBACZN,SAAoB,EACpB5B,MAAc,EACd6B,OAAgC,EACjB;QACf,IAAI,CAAC,IAAI,CAACpB,gBAAgB,EAAE;YAC1B;QACF;QAEA,IAAI;YACF,2DAA2D;YAC3D,MAAM,IAAI,CAACA,gBAAgB,CAACwD,cAAc,CAAC;gBACzCjE;gBACAkE,aAAa,CAAC,iBAAiB,EAAEtC,WAAW;gBAC5CuC,MAAM;gBACNC,iBAAiB;oBACfC,MAAM;oBACNC,oBAAoB;oBACpBC,uBAAuB;gBACzB;gBACAC,SAAS;oBACP5C;oBACAC;gBACF;YACF;QACF,EAAE,OAAOL,OAAO;YACd,gDAAgD;YAChDC,QAAQC,IAAI,CAAC,0DAA0DF;QACzE;IACF;IAEA;;;;GAIC,GACD,AAAQY,kBAAkBL,OAAe,EAAED,SAAiB,EAAgC;QAC1F,OAAO,IAAI2C,QAAQ,CAAC1B,SAAS2B;YAC3B,MAAM5B,gBAAgB6B,WAAW;gBAC/B,IAAI,CAAChE,kBAAkB,CAAC0C,MAAM,CAACtB;gBAC/B2C,OAAO,IAAIrC,MAAM,CAAC,MAAM,EAAEN,QAAQ,yBAAyB,EAAED,UAAU,EAAE,CAAC;YAC5E,GAAGA;YAEH,IAAI,CAACnB,kBAAkB,CAACiE,GAAG,CAAC7C,SAAS;gBACnCA;gBACAgB;gBACA2B;gBACA5B;YACF;QACF;IACF;IAEA;;;;GAIC,GACD,AAAQd,gBAAgBJ,SAAoB,EAAU;QACpD,OAAO,GAAGA,UAAU,CAAC,EAAEa,KAAKC,GAAG,GAAG,CAAC,EAAEmC,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,MAAM,CAAC,GAAG,IAAI;IAChF;AACF;AAEA;;CAEC,GACD,IAAIC,sBAAkD;AAEtD,OAAO,MAAMC,4BAA4B,CAACrE;IAKxC,IAAI,CAACoE,qBAAqB;QACxBA,sBAAsB,IAAI1E,oBAAoBM;IAChD;IACA,OAAOoE;AACT,EAAE;AAEF;;CAEC,GACD,OAAO,MAAME,yBAAyB;IACpC,IAAI,CAACF,qBAAqB;QACxBA,sBAAsB,IAAI1E;IAC5B;IACA,OAAO0E;AACT,EAAE;AAEF,eAAe1E,oBAAoB"}
@@ -0,0 +1,253 @@
1
+ /**
2
+ * TriggerDevClient - Type-safe wrapper for trigger.dev SDK
3
+ * Handles CFN Loop orchestration via trigger.dev API
4
+ *
5
+ * Configuration via environment variables:
6
+ * - TRIGGER_API_URL: Base URL for trigger.dev API
7
+ * - TRIGGER_API_KEY: Authentication token
8
+ * - TRIGGER_ENVIRONMENT_ID: Environment ID for deployments
9
+ */ /**
10
+ * Typed error class for trigger.dev operations
11
+ */ export class TriggerDevError extends Error {
12
+ code;
13
+ statusCode;
14
+ details;
15
+ constructor(message, code, statusCode, details){
16
+ super(message), this.code = code, this.statusCode = statusCode, this.details = details;
17
+ this.name = 'TriggerDevError';
18
+ }
19
+ }
20
+ /**
21
+ * TriggerDevClient - Type-safe integration with trigger.dev
22
+ *
23
+ * Provides methods for:
24
+ * - Triggering CFN Loop runs
25
+ * - Monitoring run status
26
+ * - Canceling runs
27
+ * - Querying run history
28
+ */ export class TriggerDevClient {
29
+ config;
30
+ baseUrl;
31
+ headers;
32
+ constructor(config){
33
+ const apiUrl = config?.apiUrl || process.env.TRIGGER_API_URL;
34
+ const apiKey = config?.apiKey || process.env.TRIGGER_API_KEY;
35
+ const environmentId = config?.environmentId || process.env.TRIGGER_ENVIRONMENT_ID;
36
+ if (!apiUrl || !apiKey || !environmentId) {
37
+ throw new TriggerDevError('Missing trigger.dev configuration', 'CONFIGURATION_ERROR', undefined, {
38
+ apiUrl: Boolean(apiUrl),
39
+ apiKey: Boolean(apiKey),
40
+ environmentId: Boolean(environmentId)
41
+ });
42
+ }
43
+ this.config = {
44
+ apiUrl,
45
+ apiKey,
46
+ environmentId,
47
+ timeoutMs: config?.timeoutMs || 30000,
48
+ retryAttempts: config?.retryAttempts || 3
49
+ };
50
+ this.baseUrl = `${apiUrl}/v1`;
51
+ this.headers = {
52
+ 'Authorization': `Bearer ${apiKey}`,
53
+ 'Content-Type': 'application/json',
54
+ 'X-Environment-Id': environmentId
55
+ };
56
+ }
57
+ /**
58
+ * Trigger a CFN Loop run via trigger.dev
59
+ *
60
+ * TODO: RUNTIME_TEST: Verify webhook signature validation in trigger.dev
61
+ * TODO: RUNTIME_TEST: Test retry logic with transient API failures
62
+ *
63
+ * @param payload CFN Loop trigger payload
64
+ * @returns Promise resolving to run ID
65
+ * @throws TriggerDevError on API failure
66
+ */ async triggerCFNLoop(payload) {
67
+ const endpoint = `${this.baseUrl}/tasks/cfn-loop/runs`;
68
+ try {
69
+ const response = await this.makeRequest('POST', endpoint, {
70
+ payload: {
71
+ taskId: payload.taskId,
72
+ description: payload.description,
73
+ mode: payload.mode,
74
+ successCriteria: payload.successCriteria,
75
+ context: payload.context || {},
76
+ webhookUrl: payload.webhookUrl
77
+ }
78
+ });
79
+ if (!response.id) {
80
+ throw new TriggerDevError('Invalid response format from trigger.dev', 'INVALID_RESPONSE', undefined, {
81
+ response
82
+ });
83
+ }
84
+ return response.id;
85
+ } catch (error) {
86
+ if (error instanceof TriggerDevError) {
87
+ throw error;
88
+ }
89
+ throw new TriggerDevError(`Failed to trigger CFN Loop: ${error instanceof Error ? error.message : String(error)}`, 'TRIGGER_FAILED', undefined, {
90
+ originalError: error
91
+ });
92
+ }
93
+ }
94
+ /**
95
+ * Get run status from trigger.dev
96
+ *
97
+ * TODO: RUNTIME_TEST: Verify polling behavior matches trigger.dev API
98
+ *
99
+ * @param runId Run ID from trigger.dev
100
+ * @returns Promise resolving to run status
101
+ * @throws TriggerDevError if run not found
102
+ */ async getRunStatus(runId) {
103
+ if (!runId || typeof runId !== 'string') {
104
+ throw new TriggerDevError('Invalid run ID', 'INVALID_RUN_ID', undefined, {
105
+ runId
106
+ });
107
+ }
108
+ const endpoint = `${this.baseUrl}/runs/${runId}`;
109
+ try {
110
+ const response = await this.makeRequest('GET', endpoint);
111
+ if (!response.status) {
112
+ throw new TriggerDevError('Invalid run response', 'INVALID_RESPONSE', undefined, {
113
+ response
114
+ });
115
+ }
116
+ return response;
117
+ } catch (error) {
118
+ if (error instanceof TriggerDevError) {
119
+ throw error;
120
+ }
121
+ throw new TriggerDevError(`Failed to get run status: ${error instanceof Error ? error.message : String(error)}`, 'STATUS_FETCH_FAILED', undefined, {
122
+ runId,
123
+ originalError: error
124
+ });
125
+ }
126
+ }
127
+ /**
128
+ * Cancel a trigger.dev run
129
+ *
130
+ * TODO: RUNTIME_TEST: Verify cancellation propagates to agent processes
131
+ *
132
+ * @param runId Run ID to cancel
133
+ * @throws TriggerDevError on cancellation failure
134
+ */ async cancelRun(runId) {
135
+ if (!runId || typeof runId !== 'string') {
136
+ throw new TriggerDevError('Invalid run ID', 'INVALID_RUN_ID', undefined, {
137
+ runId
138
+ });
139
+ }
140
+ const endpoint = `${this.baseUrl}/runs/${runId}/cancel`;
141
+ try {
142
+ await this.makeRequest('POST', endpoint);
143
+ } catch (error) {
144
+ if (error instanceof TriggerDevError) {
145
+ throw error;
146
+ }
147
+ throw new TriggerDevError(`Failed to cancel run: ${error instanceof Error ? error.message : String(error)}`, 'CANCEL_FAILED', undefined, {
148
+ runId,
149
+ originalError: error
150
+ });
151
+ }
152
+ }
153
+ /**
154
+ * List runs with optional filtering
155
+ *
156
+ * TODO: RUNTIME_TEST: Test pagination with large result sets
157
+ *
158
+ * @param filters Optional filter criteria
159
+ * @returns Promise resolving to array of runs
160
+ * @throws TriggerDevError on query failure
161
+ */ async listRuns(filters) {
162
+ const endpoint = `${this.baseUrl}/runs`;
163
+ const params = new URLSearchParams();
164
+ if (filters?.taskId) {
165
+ params.append('taskId', filters.taskId);
166
+ }
167
+ if (filters?.status) {
168
+ params.append('status', filters.status);
169
+ }
170
+ if (filters?.agentType) {
171
+ params.append('agentType', filters.agentType);
172
+ }
173
+ if (filters?.limit) {
174
+ params.append('limit', String(filters.limit));
175
+ }
176
+ if (filters?.offset) {
177
+ params.append('offset', String(filters.offset));
178
+ }
179
+ const queryString = params.toString();
180
+ const url = queryString ? `${endpoint}?${queryString}` : endpoint;
181
+ try {
182
+ const response = await this.makeRequest('GET', url);
183
+ if (!Array.isArray(response)) {
184
+ throw new TriggerDevError('Invalid response format', 'INVALID_RESPONSE', undefined, {
185
+ response
186
+ });
187
+ }
188
+ return response;
189
+ } catch (error) {
190
+ if (error instanceof TriggerDevError) {
191
+ throw error;
192
+ }
193
+ throw new TriggerDevError(`Failed to list runs: ${error instanceof Error ? error.message : String(error)}`, 'LIST_FAILED', undefined, {
194
+ filters,
195
+ originalError: error
196
+ });
197
+ }
198
+ }
199
+ /**
200
+ * Internal HTTP request handler with retry logic
201
+ *
202
+ * @private
203
+ * @param method HTTP method
204
+ * @param url Full URL
205
+ * @param body Optional request body
206
+ * @returns Promise resolving to response data
207
+ * @throws TriggerDevError on all retries exhausted
208
+ */ async makeRequest(method, url, body) {
209
+ let lastError = null;
210
+ for(let attempt = 0; attempt <= this.config.retryAttempts; attempt++){
211
+ try {
212
+ const response = await fetch(url, {
213
+ method,
214
+ headers: this.headers,
215
+ body: body ? JSON.stringify(body) : undefined,
216
+ signal: AbortSignal.timeout(this.config.timeoutMs)
217
+ });
218
+ if (!response.ok) {
219
+ const errorBody = await response.text();
220
+ throw new TriggerDevError(`HTTP ${response.status}: ${response.statusText}`, 'HTTP_ERROR', response.status, {
221
+ url,
222
+ method,
223
+ body: errorBody
224
+ });
225
+ }
226
+ return await response.json();
227
+ } catch (error) {
228
+ lastError = error instanceof Error ? error : new Error(String(error));
229
+ // Don't retry on validation errors
230
+ if (error instanceof TriggerDevError && error.code === 'INVALID_RUN_ID') {
231
+ throw error;
232
+ }
233
+ // Exponential backoff: 100ms * 2^attempt
234
+ if (attempt < this.config.retryAttempts) {
235
+ const delayMs = 100 * Math.pow(2, attempt);
236
+ await new Promise((resolve)=>setTimeout(resolve, delayMs));
237
+ }
238
+ }
239
+ }
240
+ throw new TriggerDevError(`Request failed after ${this.config.retryAttempts + 1} attempts`, 'REQUEST_FAILED', undefined, {
241
+ lastError: lastError?.message
242
+ });
243
+ }
244
+ }
245
+ /**
246
+ * Create and export singleton instance
247
+ * Uses environment variable configuration
248
+ */ export const createTriggerDevClient = ()=>{
249
+ return new TriggerDevClient();
250
+ };
251
+ export default TriggerDevClient;
252
+
253
+ //# sourceMappingURL=trigger-dev-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/integration/trigger-dev-client.ts"],"sourcesContent":["/**\r\n * TriggerDevClient - Type-safe wrapper for trigger.dev SDK\r\n * Handles CFN Loop orchestration via trigger.dev API\r\n *\r\n * Configuration via environment variables:\r\n * - TRIGGER_API_URL: Base URL for trigger.dev API\r\n * - TRIGGER_API_KEY: Authentication token\r\n * - TRIGGER_ENVIRONMENT_ID: Environment ID for deployments\r\n */\r\n\r\nimport {\r\n CFNLoopPayload,\r\n Run,\r\n RunStatusResponse,\r\n RunStatusType,\r\n AgentType,\r\n} from '../types/trigger-dev-events.d.js';\r\n\r\n/**\r\n * Typed error class for trigger.dev operations\r\n */\r\nexport class TriggerDevError extends Error {\r\n constructor(\r\n message: string,\r\n public readonly code: string,\r\n public readonly statusCode?: number,\r\n public readonly details?: Record<string, unknown>\r\n ) {\r\n super(message);\r\n this.name = 'TriggerDevError';\r\n }\r\n}\r\n\r\n/**\r\n * Run filter options for querying runs\r\n */\r\nexport interface RunFilterOptions {\r\n taskId?: string;\r\n status?: RunStatusType;\r\n limit?: number;\r\n offset?: number;\r\n agentType?: AgentType;\r\n}\r\n\r\n/**\r\n * Configuration for TriggerDevClient\r\n */\r\nexport interface TriggerDevConfig {\r\n apiUrl: string;\r\n apiKey: string;\r\n environmentId: string;\r\n timeoutMs?: number;\r\n retryAttempts?: number;\r\n}\r\n\r\n/**\r\n * TriggerDevClient - Type-safe integration with trigger.dev\r\n *\r\n * Provides methods for:\r\n * - Triggering CFN Loop runs\r\n * - Monitoring run status\r\n * - Canceling runs\r\n * - Querying run history\r\n */\r\nexport class TriggerDevClient {\r\n private readonly config: TriggerDevConfig;\r\n private readonly baseUrl: string;\r\n private readonly headers: Record<string, string>;\r\n\r\n constructor(config?: Partial<TriggerDevConfig>) {\r\n const apiUrl = config?.apiUrl || process.env.TRIGGER_API_URL;\r\n const apiKey = config?.apiKey || process.env.TRIGGER_API_KEY;\r\n const environmentId = config?.environmentId || process.env.TRIGGER_ENVIRONMENT_ID;\r\n\r\n if (!apiUrl || !apiKey || !environmentId) {\r\n throw new TriggerDevError(\r\n 'Missing trigger.dev configuration',\r\n 'CONFIGURATION_ERROR',\r\n undefined,\r\n {\r\n apiUrl: Boolean(apiUrl),\r\n apiKey: Boolean(apiKey),\r\n environmentId: Boolean(environmentId),\r\n }\r\n );\r\n }\r\n\r\n this.config = {\r\n apiUrl,\r\n apiKey,\r\n environmentId,\r\n timeoutMs: config?.timeoutMs || 30000,\r\n retryAttempts: config?.retryAttempts || 3,\r\n };\r\n\r\n this.baseUrl = `${apiUrl}/v1`;\r\n this.headers = {\r\n 'Authorization': `Bearer ${apiKey}`,\r\n 'Content-Type': 'application/json',\r\n 'X-Environment-Id': environmentId,\r\n };\r\n }\r\n\r\n /**\r\n * Trigger a CFN Loop run via trigger.dev\r\n *\r\n * TODO: RUNTIME_TEST: Verify webhook signature validation in trigger.dev\r\n * TODO: RUNTIME_TEST: Test retry logic with transient API failures\r\n *\r\n * @param payload CFN Loop trigger payload\r\n * @returns Promise resolving to run ID\r\n * @throws TriggerDevError on API failure\r\n */\r\n async triggerCFNLoop(payload: CFNLoopPayload): Promise<string> {\r\n const endpoint = `${this.baseUrl}/tasks/cfn-loop/runs`;\r\n\r\n try {\r\n const response = await this.makeRequest('POST', endpoint, {\r\n payload: {\r\n taskId: payload.taskId,\r\n description: payload.description,\r\n mode: payload.mode,\r\n successCriteria: payload.successCriteria,\r\n context: payload.context || {},\r\n webhookUrl: payload.webhookUrl,\r\n },\r\n });\r\n\r\n if (!response.id) {\r\n throw new TriggerDevError(\r\n 'Invalid response format from trigger.dev',\r\n 'INVALID_RESPONSE',\r\n undefined,\r\n { response }\r\n );\r\n }\r\n\r\n return response.id;\r\n } catch (error) {\r\n if (error instanceof TriggerDevError) {\r\n throw error;\r\n }\r\n\r\n throw new TriggerDevError(\r\n `Failed to trigger CFN Loop: ${error instanceof Error ? error.message : String(error)}`,\r\n 'TRIGGER_FAILED',\r\n undefined,\r\n { originalError: error }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Get run status from trigger.dev\r\n *\r\n * TODO: RUNTIME_TEST: Verify polling behavior matches trigger.dev API\r\n *\r\n * @param runId Run ID from trigger.dev\r\n * @returns Promise resolving to run status\r\n * @throws TriggerDevError if run not found\r\n */\r\n async getRunStatus(runId: string): Promise<RunStatusResponse> {\r\n if (!runId || typeof runId !== 'string') {\r\n throw new TriggerDevError(\r\n 'Invalid run ID',\r\n 'INVALID_RUN_ID',\r\n undefined,\r\n { runId }\r\n );\r\n }\r\n\r\n const endpoint = `${this.baseUrl}/runs/${runId}`;\r\n\r\n try {\r\n const response = await this.makeRequest('GET', endpoint);\r\n\r\n if (!response.status) {\r\n throw new TriggerDevError(\r\n 'Invalid run response',\r\n 'INVALID_RESPONSE',\r\n undefined,\r\n { response }\r\n );\r\n }\r\n\r\n return response;\r\n } catch (error) {\r\n if (error instanceof TriggerDevError) {\r\n throw error;\r\n }\r\n\r\n throw new TriggerDevError(\r\n `Failed to get run status: ${error instanceof Error ? error.message : String(error)}`,\r\n 'STATUS_FETCH_FAILED',\r\n undefined,\r\n { runId, originalError: error }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Cancel a trigger.dev run\r\n *\r\n * TODO: RUNTIME_TEST: Verify cancellation propagates to agent processes\r\n *\r\n * @param runId Run ID to cancel\r\n * @throws TriggerDevError on cancellation failure\r\n */\r\n async cancelRun(runId: string): Promise<void> {\r\n if (!runId || typeof runId !== 'string') {\r\n throw new TriggerDevError(\r\n 'Invalid run ID',\r\n 'INVALID_RUN_ID',\r\n undefined,\r\n { runId }\r\n );\r\n }\r\n\r\n const endpoint = `${this.baseUrl}/runs/${runId}/cancel`;\r\n\r\n try {\r\n await this.makeRequest('POST', endpoint);\r\n } catch (error) {\r\n if (error instanceof TriggerDevError) {\r\n throw error;\r\n }\r\n\r\n throw new TriggerDevError(\r\n `Failed to cancel run: ${error instanceof Error ? error.message : String(error)}`,\r\n 'CANCEL_FAILED',\r\n undefined,\r\n { runId, originalError: error }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * List runs with optional filtering\r\n *\r\n * TODO: RUNTIME_TEST: Test pagination with large result sets\r\n *\r\n * @param filters Optional filter criteria\r\n * @returns Promise resolving to array of runs\r\n * @throws TriggerDevError on query failure\r\n */\r\n async listRuns(filters?: RunFilterOptions): Promise<Run[]> {\r\n const endpoint = `${this.baseUrl}/runs`;\r\n const params = new URLSearchParams();\r\n\r\n if (filters?.taskId) {\r\n params.append('taskId', filters.taskId);\r\n }\r\n if (filters?.status) {\r\n params.append('status', filters.status);\r\n }\r\n if (filters?.agentType) {\r\n params.append('agentType', filters.agentType);\r\n }\r\n if (filters?.limit) {\r\n params.append('limit', String(filters.limit));\r\n }\r\n if (filters?.offset) {\r\n params.append('offset', String(filters.offset));\r\n }\r\n\r\n const queryString = params.toString();\r\n const url = queryString ? `${endpoint}?${queryString}` : endpoint;\r\n\r\n try {\r\n const response = await this.makeRequest('GET', url);\r\n\r\n if (!Array.isArray(response)) {\r\n throw new TriggerDevError(\r\n 'Invalid response format',\r\n 'INVALID_RESPONSE',\r\n undefined,\r\n { response }\r\n );\r\n }\r\n\r\n return response;\r\n } catch (error) {\r\n if (error instanceof TriggerDevError) {\r\n throw error;\r\n }\r\n\r\n throw new TriggerDevError(\r\n `Failed to list runs: ${error instanceof Error ? error.message : String(error)}`,\r\n 'LIST_FAILED',\r\n undefined,\r\n { filters, originalError: error }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Internal HTTP request handler with retry logic\r\n *\r\n * @private\r\n * @param method HTTP method\r\n * @param url Full URL\r\n * @param body Optional request body\r\n * @returns Promise resolving to response data\r\n * @throws TriggerDevError on all retries exhausted\r\n */\r\n private async makeRequest(\r\n method: string,\r\n url: string,\r\n body?: Record<string, unknown>\r\n ): Promise<any> {\r\n let lastError: Error | null = null;\r\n\r\n for (let attempt = 0; attempt <= this.config.retryAttempts!; attempt++) {\r\n try {\r\n const response = await fetch(url, {\r\n method,\r\n headers: this.headers,\r\n body: body ? JSON.stringify(body) : undefined,\r\n signal: AbortSignal.timeout(this.config.timeoutMs!),\r\n });\r\n\r\n if (!response.ok) {\r\n const errorBody = await response.text();\r\n throw new TriggerDevError(\r\n `HTTP ${response.status}: ${response.statusText}`,\r\n 'HTTP_ERROR',\r\n response.status,\r\n {\r\n url,\r\n method,\r\n body: errorBody,\r\n }\r\n );\r\n }\r\n\r\n return await response.json();\r\n } catch (error) {\r\n lastError = error instanceof Error ? error : new Error(String(error));\r\n\r\n // Don't retry on validation errors\r\n if (error instanceof TriggerDevError && error.code === 'INVALID_RUN_ID') {\r\n throw error;\r\n }\r\n\r\n // Exponential backoff: 100ms * 2^attempt\r\n if (attempt < this.config.retryAttempts!) {\r\n const delayMs = 100 * Math.pow(2, attempt);\r\n await new Promise(resolve => setTimeout(resolve, delayMs));\r\n }\r\n }\r\n }\r\n\r\n throw new TriggerDevError(\r\n `Request failed after ${this.config.retryAttempts! + 1} attempts`,\r\n 'REQUEST_FAILED',\r\n undefined,\r\n { lastError: lastError?.message }\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Create and export singleton instance\r\n * Uses environment variable configuration\r\n */\r\nexport const createTriggerDevClient = (): TriggerDevClient => {\r\n return new TriggerDevClient();\r\n};\r\n\r\nexport default TriggerDevClient;\r\n"],"names":["TriggerDevError","Error","message","code","statusCode","details","name","TriggerDevClient","config","baseUrl","headers","apiUrl","process","env","TRIGGER_API_URL","apiKey","TRIGGER_API_KEY","environmentId","TRIGGER_ENVIRONMENT_ID","undefined","Boolean","timeoutMs","retryAttempts","triggerCFNLoop","payload","endpoint","response","makeRequest","taskId","description","mode","successCriteria","context","webhookUrl","id","error","String","originalError","getRunStatus","runId","status","cancelRun","listRuns","filters","params","URLSearchParams","append","agentType","limit","offset","queryString","toString","url","Array","isArray","method","body","lastError","attempt","fetch","JSON","stringify","signal","AbortSignal","timeout","ok","errorBody","text","statusText","json","delayMs","Math","pow","Promise","resolve","setTimeout","createTriggerDevClient"],"mappings":"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"}