agent-pipeline 0.1.0 → 0.1.2

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 (331) hide show
  1. package/CLAUDE.md +4 -3
  2. package/{license → LICENSE} +1 -1
  3. package/README.md +120 -55
  4. package/dist/cli/commands/agent/info.js +1 -1
  5. package/dist/cli/commands/agent/info.js.map +1 -1
  6. package/dist/cli/commands/agent/list.js +1 -1
  7. package/dist/cli/commands/agent/list.js.map +1 -1
  8. package/dist/cli/commands/agent/pull.d.ts +1 -0
  9. package/dist/cli/commands/agent/pull.d.ts.map +1 -1
  10. package/dist/cli/commands/agent/pull.js +67 -44
  11. package/dist/cli/commands/agent/pull.js.map +1 -1
  12. package/dist/cli/commands/cleanup.d.ts +4 -0
  13. package/dist/cli/commands/cleanup.d.ts.map +1 -1
  14. package/dist/cli/commands/cleanup.js +197 -37
  15. package/dist/cli/commands/cleanup.js.map +1 -1
  16. package/dist/cli/commands/history.d.ts.map +1 -1
  17. package/dist/cli/commands/history.js +3 -22
  18. package/dist/cli/commands/history.js.map +1 -1
  19. package/dist/cli/commands/hooks.d.ts +10 -0
  20. package/dist/cli/commands/hooks.d.ts.map +1 -0
  21. package/dist/cli/commands/hooks.js +88 -0
  22. package/dist/cli/commands/hooks.js.map +1 -0
  23. package/dist/cli/commands/init.d.ts +1 -6
  24. package/dist/cli/commands/init.d.ts.map +1 -1
  25. package/dist/cli/commands/init.js +169 -88
  26. package/dist/cli/commands/init.js.map +1 -1
  27. package/dist/cli/commands/loop-context.d.ts +2 -0
  28. package/dist/cli/commands/loop-context.d.ts.map +1 -0
  29. package/dist/cli/commands/loop-context.js +88 -0
  30. package/dist/cli/commands/loop-context.js.map +1 -0
  31. package/dist/cli/commands/pipeline/create.d.ts.map +1 -1
  32. package/dist/cli/commands/pipeline/create.js +156 -68
  33. package/dist/cli/commands/pipeline/create.js.map +1 -1
  34. package/dist/cli/commands/run.d.ts +1 -1
  35. package/dist/cli/commands/run.d.ts.map +1 -1
  36. package/dist/cli/commands/run.js +29 -5
  37. package/dist/cli/commands/run.js.map +1 -1
  38. package/dist/cli/commands/schema.d.ts +9 -0
  39. package/dist/cli/commands/schema.d.ts.map +1 -0
  40. package/dist/cli/commands/schema.js +541 -0
  41. package/dist/cli/commands/schema.js.map +1 -0
  42. package/dist/cli/commands/status.d.ts.map +1 -1
  43. package/dist/cli/commands/status.js +0 -6
  44. package/dist/cli/commands/status.js.map +1 -1
  45. package/dist/cli/help/index.d.ts +6 -0
  46. package/dist/cli/help/index.d.ts.map +1 -0
  47. package/dist/cli/help/index.js +538 -0
  48. package/dist/cli/help/index.js.map +1 -0
  49. package/dist/cli/help/types.d.ts +22 -0
  50. package/dist/cli/help/types.d.ts.map +1 -0
  51. package/dist/cli/help/types.js +2 -0
  52. package/dist/cli/help/types.js.map +1 -0
  53. package/dist/cli/hooks.d.ts +5 -1
  54. package/dist/cli/hooks.d.ts.map +1 -1
  55. package/dist/cli/hooks.js +106 -12
  56. package/dist/cli/hooks.js.map +1 -1
  57. package/dist/cli/templates/agents/code-review-agents/code-reviewer.md +46 -0
  58. package/dist/cli/templates/agents/code-review-agents/memory-doc-updater.md +189 -0
  59. package/dist/cli/templates/agents/code-review-agents/quality-checker.md +52 -0
  60. package/dist/cli/templates/agents/frontend-agents/brutalist_purist.md +563 -0
  61. package/dist/cli/templates/agents/frontend-agents/cyberpunk_hacker.md +824 -0
  62. package/dist/cli/templates/agents/frontend-agents/frontend-pipeline-ref.md +32 -0
  63. package/dist/cli/templates/agents/frontend-agents/indie_game_dev.md +715 -0
  64. package/dist/cli/templates/agents/frontend-agents/luxury_editorial.md +628 -0
  65. package/dist/cli/templates/agents/frontend-agents/product_owner.md +159 -0
  66. package/dist/cli/templates/agents/frontend-agents/retro_90s_webmaster.md +385 -0
  67. package/dist/cli/templates/agents/frontend-agents/showcase.md +362 -0
  68. package/dist/cli/templates/agents/frontend-agents/swiss_modernist.md +716 -0
  69. package/dist/cli/templates/agents/loop-agents/socratic-explorer.md +91 -0
  70. package/dist/cli/templates/instructions/handover.md +40 -0
  71. package/dist/cli/templates/instructions/loop.md +39 -0
  72. package/dist/cli/templates/pipelines/front-end-parallel-example.yml +81 -0
  73. package/dist/cli/templates/pipelines/loop-example.yml +25 -0
  74. package/dist/cli/templates/pipelines/post-commit-example.yml +49 -58
  75. package/dist/cli/templates/schema/pipeline-config.schema.json +400 -0
  76. package/dist/cli/templates/schema/pipeline-config.schema.yaml +302 -0
  77. package/dist/cli/utils/agent-importer.d.ts +1 -0
  78. package/dist/cli/utils/agent-importer.d.ts.map +1 -1
  79. package/dist/cli/utils/agent-importer.js +67 -0
  80. package/dist/cli/utils/agent-importer.js.map +1 -1
  81. package/dist/cli/utils/interactive-prompts.d.ts +4 -0
  82. package/dist/cli/utils/interactive-prompts.d.ts.map +1 -1
  83. package/dist/cli/utils/interactive-prompts.js +59 -13
  84. package/dist/cli/utils/interactive-prompts.js.map +1 -1
  85. package/dist/config/pipeline-loader.d.ts +4 -1
  86. package/dist/config/pipeline-loader.d.ts.map +1 -1
  87. package/dist/config/pipeline-loader.js +58 -0
  88. package/dist/config/pipeline-loader.js.map +1 -1
  89. package/dist/config/schema.d.ts +64 -35
  90. package/dist/config/schema.d.ts.map +1 -1
  91. package/dist/core/abort-controller.d.ts +16 -0
  92. package/dist/core/abort-controller.d.ts.map +1 -0
  93. package/dist/core/abort-controller.js +52 -0
  94. package/dist/core/abort-controller.js.map +1 -0
  95. package/dist/core/agent-query-runner.d.ts +0 -1
  96. package/dist/core/agent-query-runner.d.ts.map +1 -1
  97. package/dist/core/agent-query-runner.js +0 -22
  98. package/dist/core/agent-query-runner.js.map +1 -1
  99. package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts +5 -1
  100. package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts.map +1 -1
  101. package/dist/core/agent-runtimes/claude-code-headless-runtime.js +127 -12
  102. package/dist/core/agent-runtimes/claude-code-headless-runtime.js.map +1 -1
  103. package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts +0 -2
  104. package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts.map +1 -1
  105. package/dist/core/agent-runtimes/claude-sdk-runtime.js +1 -22
  106. package/dist/core/agent-runtimes/claude-sdk-runtime.js.map +1 -1
  107. package/dist/core/agent-runtimes/codex-headless-runtime.d.ts +27 -0
  108. package/dist/core/agent-runtimes/codex-headless-runtime.d.ts.map +1 -0
  109. package/dist/core/agent-runtimes/codex-headless-runtime.js +623 -0
  110. package/dist/core/agent-runtimes/codex-headless-runtime.js.map +1 -0
  111. package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts +17 -0
  112. package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts.map +1 -0
  113. package/dist/core/agent-runtimes/openai-compatible-runtime.js +231 -0
  114. package/dist/core/agent-runtimes/openai-compatible-runtime.js.map +1 -0
  115. package/dist/core/branch-manager.d.ts +3 -1
  116. package/dist/core/branch-manager.d.ts.map +1 -1
  117. package/dist/core/branch-manager.js +11 -1
  118. package/dist/core/branch-manager.js.map +1 -1
  119. package/dist/core/git-manager.d.ts +17 -1
  120. package/dist/core/git-manager.d.ts.map +1 -1
  121. package/dist/core/git-manager.js +147 -3
  122. package/dist/core/git-manager.js.map +1 -1
  123. package/dist/core/group-execution-orchestrator.d.ts +4 -13
  124. package/dist/core/group-execution-orchestrator.d.ts.map +1 -1
  125. package/dist/core/group-execution-orchestrator.js +53 -142
  126. package/dist/core/group-execution-orchestrator.js.map +1 -1
  127. package/dist/core/handover-manager.d.ts +24 -0
  128. package/dist/core/handover-manager.d.ts.map +1 -0
  129. package/dist/core/handover-manager.js +214 -0
  130. package/dist/core/handover-manager.js.map +1 -0
  131. package/dist/core/instruction-loader.d.ts +23 -0
  132. package/dist/core/instruction-loader.d.ts.map +1 -0
  133. package/dist/core/instruction-loader.js +123 -0
  134. package/dist/core/instruction-loader.js.map +1 -0
  135. package/dist/core/loop-state-manager.d.ts +12 -7
  136. package/dist/core/loop-state-manager.d.ts.map +1 -1
  137. package/dist/core/loop-state-manager.js +49 -3
  138. package/dist/core/loop-state-manager.js.map +1 -1
  139. package/dist/core/parallel-executor.d.ts +8 -3
  140. package/dist/core/parallel-executor.d.ts.map +1 -1
  141. package/dist/core/parallel-executor.js +90 -16
  142. package/dist/core/parallel-executor.js.map +1 -1
  143. package/dist/core/pipeline-finalizer.d.ts +12 -4
  144. package/dist/core/pipeline-finalizer.d.ts.map +1 -1
  145. package/dist/core/pipeline-finalizer.js +244 -33
  146. package/dist/core/pipeline-finalizer.js.map +1 -1
  147. package/dist/core/pipeline-initializer.d.ts +13 -5
  148. package/dist/core/pipeline-initializer.d.ts.map +1 -1
  149. package/dist/core/pipeline-initializer.js +53 -25
  150. package/dist/core/pipeline-initializer.js.map +1 -1
  151. package/dist/core/pipeline-runner.d.ts +15 -1
  152. package/dist/core/pipeline-runner.d.ts.map +1 -1
  153. package/dist/core/pipeline-runner.js +434 -64
  154. package/dist/core/pipeline-runner.js.map +1 -1
  155. package/dist/core/pr-creator.d.ts +0 -1
  156. package/dist/core/pr-creator.d.ts.map +1 -1
  157. package/dist/core/pr-creator.js +12 -4
  158. package/dist/core/pr-creator.js.map +1 -1
  159. package/dist/core/stage-executor.d.ts +19 -11
  160. package/dist/core/stage-executor.d.ts.map +1 -1
  161. package/dist/core/stage-executor.js +151 -178
  162. package/dist/core/stage-executor.js.map +1 -1
  163. package/dist/core/types/agent-runtime.d.ts +3 -2
  164. package/dist/core/types/agent-runtime.d.ts.map +1 -1
  165. package/dist/core/worktree-manager.d.ts +21 -0
  166. package/dist/core/worktree-manager.d.ts.map +1 -0
  167. package/dist/core/worktree-manager.js +133 -0
  168. package/dist/core/worktree-manager.js.map +1 -0
  169. package/dist/index.js +147 -112
  170. package/dist/index.js.map +1 -1
  171. package/dist/notifications/notification-manager.d.ts +1 -0
  172. package/dist/notifications/notification-manager.d.ts.map +1 -1
  173. package/dist/notifications/notification-manager.js +17 -3
  174. package/dist/notifications/notification-manager.js.map +1 -1
  175. package/dist/notifications/notifiers/local-notifier.d.ts.map +1 -1
  176. package/dist/notifications/notifiers/local-notifier.js +5 -2
  177. package/dist/notifications/notifiers/local-notifier.js.map +1 -1
  178. package/dist/notifications/notifiers/slack-notifier.d.ts.map +1 -1
  179. package/dist/notifications/notifiers/slack-notifier.js +39 -8
  180. package/dist/notifications/notifiers/slack-notifier.js.map +1 -1
  181. package/dist/notifications/types.d.ts +1 -1
  182. package/dist/notifications/types.d.ts.map +1 -1
  183. package/dist/ui/components/execution-group.d.ts.map +1 -1
  184. package/dist/ui/components/execution-group.js +1 -1
  185. package/dist/ui/components/execution-group.js.map +1 -1
  186. package/dist/ui/components/interactive-summary.d.ts +9 -0
  187. package/dist/ui/components/interactive-summary.d.ts.map +1 -0
  188. package/dist/ui/components/interactive-summary.js +166 -0
  189. package/dist/ui/components/interactive-summary.js.map +1 -0
  190. package/dist/ui/components/keyboard-hints.d.ts +12 -0
  191. package/dist/ui/components/keyboard-hints.d.ts.map +1 -0
  192. package/dist/ui/components/keyboard-hints.js +13 -0
  193. package/dist/ui/components/keyboard-hints.js.map +1 -0
  194. package/dist/ui/components/live-timer.d.ts +9 -0
  195. package/dist/ui/components/live-timer.d.ts.map +1 -0
  196. package/dist/ui/components/live-timer.js +25 -0
  197. package/dist/ui/components/live-timer.js.map +1 -0
  198. package/dist/ui/components/loop-iteration-history.d.ts +8 -0
  199. package/dist/ui/components/loop-iteration-history.d.ts.map +1 -0
  200. package/dist/ui/components/loop-iteration-history.js +106 -0
  201. package/dist/ui/components/loop-iteration-history.js.map +1 -0
  202. package/dist/ui/components/loop-session-summary.d.ts +9 -0
  203. package/dist/ui/components/loop-session-summary.d.ts.map +1 -0
  204. package/dist/ui/components/loop-session-summary.js +39 -0
  205. package/dist/ui/components/loop-session-summary.js.map +1 -0
  206. package/dist/ui/components/stage-row.d.ts +0 -1
  207. package/dist/ui/components/stage-row.d.ts.map +1 -1
  208. package/dist/ui/components/stage-row.js +5 -15
  209. package/dist/ui/components/stage-row.js.map +1 -1
  210. package/dist/ui/components/status-badge.d.ts.map +1 -1
  211. package/dist/ui/components/status-badge.js +1 -0
  212. package/dist/ui/components/status-badge.js.map +1 -1
  213. package/dist/ui/pipeline-ui.d.ts +1 -0
  214. package/dist/ui/pipeline-ui.d.ts.map +1 -1
  215. package/dist/ui/pipeline-ui.js +22 -18
  216. package/dist/ui/pipeline-ui.js.map +1 -1
  217. package/dist/utils/error-factory.d.ts.map +1 -1
  218. package/dist/utils/error-factory.js +10 -2
  219. package/dist/utils/error-factory.js.map +1 -1
  220. package/dist/utils/pipeline-formatter.d.ts +8 -2
  221. package/dist/utils/pipeline-formatter.d.ts.map +1 -1
  222. package/dist/utils/pipeline-formatter.js +30 -26
  223. package/dist/utils/pipeline-formatter.js.map +1 -1
  224. package/dist/utils/pipeline-logger.d.ts +19 -0
  225. package/dist/utils/pipeline-logger.d.ts.map +1 -0
  226. package/dist/utils/pipeline-logger.js +80 -0
  227. package/dist/utils/pipeline-logger.js.map +1 -0
  228. package/dist/utils/platform-opener.d.ts +4 -0
  229. package/dist/utils/platform-opener.d.ts.map +1 -0
  230. package/dist/utils/platform-opener.js +52 -0
  231. package/dist/utils/platform-opener.js.map +1 -0
  232. package/dist/validators/agent-validator.d.ts +10 -0
  233. package/dist/validators/agent-validator.d.ts.map +1 -0
  234. package/dist/validators/agent-validator.js +87 -0
  235. package/dist/validators/agent-validator.js.map +1 -0
  236. package/dist/validators/dag-validator.d.ts +9 -0
  237. package/dist/validators/dag-validator.d.ts.map +1 -0
  238. package/dist/validators/dag-validator.js +51 -0
  239. package/dist/validators/dag-validator.js.map +1 -0
  240. package/dist/validators/environment-validator.d.ts +9 -0
  241. package/dist/validators/environment-validator.d.ts.map +1 -0
  242. package/dist/validators/environment-validator.js +35 -0
  243. package/dist/validators/environment-validator.js.map +1 -0
  244. package/dist/validators/execution-validator.d.ts +8 -0
  245. package/dist/validators/execution-validator.d.ts.map +1 -0
  246. package/dist/validators/execution-validator.js +51 -0
  247. package/dist/validators/execution-validator.js.map +1 -0
  248. package/dist/validators/git-validator.d.ts +13 -0
  249. package/dist/validators/git-validator.d.ts.map +1 -0
  250. package/dist/validators/git-validator.js +135 -0
  251. package/dist/validators/git-validator.js.map +1 -0
  252. package/dist/validators/notification-validator.d.ts +8 -0
  253. package/dist/validators/notification-validator.d.ts.map +1 -0
  254. package/dist/validators/notification-validator.js +27 -0
  255. package/dist/validators/notification-validator.js.map +1 -0
  256. package/dist/validators/pipeline-validator.d.ts +3 -26
  257. package/dist/validators/pipeline-validator.d.ts.map +1 -1
  258. package/dist/validators/pipeline-validator.js +5 -515
  259. package/dist/validators/pipeline-validator.js.map +1 -1
  260. package/dist/validators/retry-validator.d.ts +9 -0
  261. package/dist/validators/retry-validator.d.ts.map +1 -0
  262. package/dist/validators/retry-validator.js +34 -0
  263. package/dist/validators/retry-validator.js.map +1 -0
  264. package/dist/validators/runtime-validator.d.ts +9 -0
  265. package/dist/validators/runtime-validator.d.ts.map +1 -0
  266. package/dist/validators/runtime-validator.js +82 -0
  267. package/dist/validators/runtime-validator.js.map +1 -0
  268. package/dist/validators/structure-validator.d.ts +8 -0
  269. package/dist/validators/structure-validator.d.ts.map +1 -0
  270. package/dist/validators/structure-validator.js +39 -0
  271. package/dist/validators/structure-validator.js.map +1 -0
  272. package/dist/validators/types.d.ts +19 -0
  273. package/dist/validators/types.d.ts.map +1 -0
  274. package/dist/validators/types.js +2 -0
  275. package/dist/validators/types.js.map +1 -0
  276. package/dist/validators/validation-orchestrator.d.ts +9 -0
  277. package/dist/validators/validation-orchestrator.d.ts.map +1 -0
  278. package/dist/validators/validation-orchestrator.js +43 -0
  279. package/dist/validators/validation-orchestrator.js.map +1 -0
  280. package/package.json +18 -12
  281. package/dist/cli/commands/install.d.ts +0 -2
  282. package/dist/cli/commands/install.d.ts.map +0 -1
  283. package/dist/cli/commands/install.js +0 -15
  284. package/dist/cli/commands/install.js.map +0 -1
  285. package/dist/cli/commands/uninstall.d.ts +0 -2
  286. package/dist/cli/commands/uninstall.d.ts.map +0 -1
  287. package/dist/cli/commands/uninstall.js +0 -6
  288. package/dist/cli/commands/uninstall.js.map +0 -1
  289. package/dist/cli/templates/agents/cleanup-reporter.md +0 -107
  290. package/dist/cli/templates/agents/code-reducer.md +0 -51
  291. package/dist/cli/templates/agents/code-reviewer.md +0 -34
  292. package/dist/cli/templates/agents/context-reducer.md +0 -94
  293. package/dist/cli/templates/agents/dependency-auditor.md +0 -127
  294. package/dist/cli/templates/agents/detective-empath.md +0 -26
  295. package/dist/cli/templates/agents/detective-linguist.md +0 -26
  296. package/dist/cli/templates/agents/detective-logician.md +0 -26
  297. package/dist/cli/templates/agents/detective-skeptic.md +0 -26
  298. package/dist/cli/templates/agents/detective-statistician.md +0 -26
  299. package/dist/cli/templates/agents/doc-updater.md +0 -30
  300. package/dist/cli/templates/agents/judge.md +0 -27
  301. package/dist/cli/templates/agents/memory-updater.md +0 -72
  302. package/dist/cli/templates/agents/quality-checker.md +0 -32
  303. package/dist/cli/templates/agents/security-auditor.md +0 -32
  304. package/dist/cli/templates/agents/storyteller.md +0 -26
  305. package/dist/cli/templates/agents/summary.md +0 -32
  306. package/dist/cli/templates/agents/synthesizer.md +0 -26
  307. package/dist/cli/templates/pipelines/large-pipeline-example.yml +0 -178
  308. package/dist/cli/templates/pipelines/post-merge-example.yml +0 -78
  309. package/dist/cli/templates/pipelines/pre-commit-example.yml +0 -41
  310. package/dist/cli/templates/pipelines/pre-push-example.yml +0 -51
  311. package/dist/cli/templates/pipelines/test-pipeline.yml +0 -90
  312. package/dist/config/project-config-loader.d.ts +0 -11
  313. package/dist/config/project-config-loader.d.ts.map +0 -1
  314. package/dist/config/project-config-loader.js +0 -100
  315. package/dist/config/project-config-loader.js.map +0 -1
  316. package/dist/core/condition-evaluator.d.ts +0 -16
  317. package/dist/core/condition-evaluator.d.ts.map +0 -1
  318. package/dist/core/condition-evaluator.js +0 -121
  319. package/dist/core/condition-evaluator.js.map +0 -1
  320. package/dist/core/context-reducer.d.ts +0 -15
  321. package/dist/core/context-reducer.d.ts.map +0 -1
  322. package/dist/core/context-reducer.js +0 -224
  323. package/dist/core/context-reducer.js.map +0 -1
  324. package/dist/core/output-storage-manager.d.ts +0 -14
  325. package/dist/core/output-storage-manager.d.ts.map +0 -1
  326. package/dist/core/output-storage-manager.js +0 -68
  327. package/dist/core/output-storage-manager.js.map +0 -1
  328. package/dist/core/output-tool-builder.d.ts +0 -6
  329. package/dist/core/output-tool-builder.d.ts.map +0 -1
  330. package/dist/core/output-tool-builder.js +0 -50
  331. package/dist/core/output-tool-builder.js.map +0 -1
@@ -0,0 +1,123 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ export class InstructionLoader {
4
+ repoPath;
5
+ static DEFAULT_HANDOVER_PATH = '.agent-pipeline/instructions/handover.md';
6
+ static DEFAULT_LOOP_PATH = '.agent-pipeline/instructions/loop.md';
7
+ constructor(repoPath) {
8
+ this.repoPath = repoPath;
9
+ }
10
+ async loadHandoverInstructions(customPath, context) {
11
+ const content = await this.loadTemplate(customPath, InstructionLoader.DEFAULT_HANDOVER_PATH, this.getBuiltInHandoverTemplate());
12
+ return this.interpolate(content, context || {});
13
+ }
14
+ async loadLoopInstructions(customPath, context) {
15
+ const content = await this.loadTemplate(customPath, InstructionLoader.DEFAULT_LOOP_PATH, this.getBuiltInLoopTemplate());
16
+ return this.interpolate(content, context || {});
17
+ }
18
+ async loadTemplate(customPath, defaultPath, builtInTemplate) {
19
+ if (customPath) {
20
+ const fullPath = path.isAbsolute(customPath)
21
+ ? customPath
22
+ : path.join(this.repoPath, customPath);
23
+ try {
24
+ return await fs.readFile(fullPath, 'utf-8');
25
+ }
26
+ catch {
27
+ console.warn(`Custom instruction file not found: ${customPath}, falling back to default`);
28
+ }
29
+ }
30
+ const defaultFullPath = path.join(this.repoPath, defaultPath);
31
+ try {
32
+ return await fs.readFile(defaultFullPath, 'utf-8');
33
+ }
34
+ catch {
35
+ return builtInTemplate;
36
+ }
37
+ }
38
+ interpolate(template, context) {
39
+ return template.replace(/\{\{(\w+)\}\}/g, (match, key) => {
40
+ const value = context[key];
41
+ if (value === undefined || value === null) {
42
+ return match;
43
+ }
44
+ return String(value);
45
+ });
46
+ }
47
+ getBuiltInHandoverTemplate() {
48
+ return `## Pipeline Handover Context
49
+
50
+ **Handover Directory:** \`{{handoverDir}}\` *(absolute path - use exactly as shown)*
51
+
52
+ ### Required Reading
53
+ Before starting your task, read these files to understand the current state:
54
+ 1. \`{{handoverDir}}/HANDOVER.md\` - Current pipeline state and context
55
+ 2. \`{{handoverDir}}/execution-log.md\` - Execution history
56
+
57
+ ### Previous Stage Outputs
58
+ {{previousStagesSection}}
59
+
60
+ ### Your Output Requirements
61
+ When you complete your task, save your output to:
62
+ \`{{handoverDir}}/stages/{{stageName}}/output.md\`
63
+
64
+ > **Note:** This is an absolute path. You have permission to write here regardless of your current working directory.
65
+
66
+ Use this format:
67
+ \`\`\`markdown
68
+ # Stage: {{stageName}}
69
+
70
+ ## Summary
71
+ {1-2 sentences: what you accomplished}
72
+
73
+ ## Key Outputs
74
+ {bullet points of important results}
75
+
76
+ ## Files Created/Modified
77
+ {list files you changed}
78
+
79
+ ## Notes for Next Stage
80
+ {context the next agent needs}
81
+ \`\`\`
82
+
83
+ The orchestrator will update HANDOVER.md and execution-log.md automatically.
84
+ `;
85
+ }
86
+ getBuiltInLoopTemplate() {
87
+ return `## Loop Agent
88
+
89
+ This pipeline is running in LOOP MODE. You are the Loop Agent. Your ONLY task is to choose to create a new pipeline.yml file or not.
90
+
91
+ **To get current pipeline context:**
92
+ Run: \`agent-pipeline loop-context\`
93
+
94
+ This command shows:
95
+ - The current pipeline YAML (for reference/copying)
96
+ - Recommendations for creating the next pipeline
97
+ - The pending directory path
98
+
99
+ **Notes on creating new Pipelines:**
100
+ 1. When you are finishing a phase in a multi-phase plan and more phases remain
101
+ - Create a pipeline for the NEXT PHASE ONLY (not all remaining phases)
102
+
103
+ **When NOT to Create a Next Pipeline:**
104
+ - Subsequent work is better handled by a human
105
+ - You receive usage limit warnings or errors.
106
+
107
+ **To queue the next pipeline:**
108
+ - Write a valid pipeline YAML to: \`{{pendingDir}}\`
109
+ - Automatically picked up after this pipeline completes
110
+ - Run \`agent-pipeline loop-context\` to see the current pipeline structure
111
+
112
+ **Recommendations for next pipeline:**
113
+ 1. Keep structure identical unless another structure or file is given
114
+ 2. Looping config is saved from first pipeline - leave unchanged
115
+ 3. Only update customizations as needed (leave unchanged if no directions)
116
+
117
+ **Loop status:** Iteration {{currentIteration}}/{{maxIterations}}
118
+
119
+ **Your only task is to create a new pipeline.yml file when conditions warrant it, take no other action if no new pipeline.yml file is needed**
120
+ `;
121
+ }
122
+ }
123
+ //# sourceMappingURL=instruction-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruction-loader.js","sourceRoot":"","sources":["../../src/core/instruction-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAgB7B,MAAM,OAAO,iBAAiB;IACpB,QAAQ,CAAS;IAEjB,MAAM,CAAU,qBAAqB,GAAG,0CAA0C,CAAC;IACnF,MAAM,CAAU,iBAAiB,GAAG,sCAAsC,CAAC;IAEnF,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,wBAAwB,CAC5B,UAAmB,EACnB,OAA4B;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC,UAAU,EACV,iBAAiB,CAAC,qBAAqB,EACvC,IAAI,CAAC,0BAA0B,EAAE,CAClC,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAKD,KAAK,CAAC,oBAAoB,CACxB,UAAmB,EACnB,OAA4B;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC,UAAU,EACV,iBAAiB,CAAC,iBAAiB,EACnC,IAAI,CAAC,sBAAsB,EAAE,CAC9B,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAQO,KAAK,CAAC,YAAY,CACxB,UAA8B,EAC9B,WAAmB,EACnB,eAAuB;QAGvB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC1C,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,2BAA2B,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAGD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YAEP,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAKO,WAAW,CAAC,QAAgB,EAAE,OAA2B;QAC/D,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAA+B,CAAC,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAKO,0BAA0B;QAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCV,CAAC;IACA,CAAC;IAKO,sBAAsB;QAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCV,CAAC;IACA,CAAC"}
@@ -1,8 +1,9 @@
1
+ import { ResolvedLoopingConfig } from '../config/schema.js';
1
2
  export interface LoopSession {
2
3
  sessionId: string;
3
4
  startTime: string;
4
5
  endTime?: string;
5
- status: 'running' | 'completed' | 'failed' | 'limit-reached';
6
+ status: 'running' | 'completed' | 'failed' | 'aborted' | 'limit-reached';
6
7
  maxIterations: number;
7
8
  totalIterations: number;
8
9
  iterations: IterationSummary[];
@@ -10,20 +11,24 @@ export interface LoopSession {
10
11
  export interface IterationSummary {
11
12
  iterationNumber: number;
12
13
  pipelineName: string;
13
- runId: string;
14
- status: 'completed' | 'failed';
15
- duration: number;
16
- triggeredNext: boolean;
14
+ runId?: string;
15
+ status: 'in-progress' | 'completed' | 'failed' | 'aborted';
16
+ duration?: number;
17
+ triggeredNext?: boolean;
17
18
  }
18
19
  export declare class LoopStateManager {
19
20
  private loopsDir;
20
21
  private sessions;
21
22
  constructor(repoPath: string);
22
- startSession(maxIterations: number): LoopSession;
23
+ startSession(maxIterations: number): Promise<LoopSession>;
23
24
  appendIteration(sessionId: string, summary: IterationSummary): Promise<void>;
24
- completeSession(sessionId: string, status: 'completed' | 'failed' | 'limit-reached'): Promise<void>;
25
+ updateIteration(sessionId: string, iterationNumber: number, updates: Partial<IterationSummary>): Promise<boolean>;
26
+ completeSession(sessionId: string, status: 'completed' | 'failed' | 'aborted' | 'limit-reached'): Promise<void>;
25
27
  loadSession(sessionId: string): Promise<LoopSession | null>;
26
28
  getAllSessions(): Promise<LoopSession[]>;
27
29
  private saveSession;
30
+ private getSessionForUpdate;
31
+ createSessionDirectories(sessionId: string, basePath: string): Promise<ResolvedLoopingConfig['directories']>;
32
+ getSessionQueueDir(sessionId: string, basePath: string): string;
28
33
  }
29
34
  //# sourceMappingURL=loop-state-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-state-manager.d.ts","sourceRoot":"","sources":["../../src/core/loop-state-manager.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,eAAe,CAAC;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAuC;gBAE3C,QAAQ,EAAE,MAAM;IAO5B,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW;IAiB1C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5E,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,eAAe,GAC/C,OAAO,CAAC,IAAI,CAAC;IAgBV,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAc3D,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YA2BhC,WAAW;CAM1B"}
1
+ {"version":3,"file":"loop-state-manager.d.ts","sourceRoot":"","sources":["../../src/core/loop-state-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,eAAe,CAAC;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAuC;gBAE3C,QAAQ,EAAE,MAAM;IAOtB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBzD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5E,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACjC,OAAO,CAAC,OAAO,CAAC;IAmBb,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,eAAe,GAC3D,OAAO,CAAC,IAAI,CAAC;IAgBV,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAc3D,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YA2BhC,WAAW;YAOX,mBAAmB;IAqB3B,wBAAwB,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;IA8BhD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;CAGhE"}
@@ -7,7 +7,7 @@ export class LoopStateManager {
7
7
  constructor(repoPath) {
8
8
  this.loopsDir = path.join(repoPath, '.agent-pipeline', 'state', 'loops');
9
9
  }
10
- startSession(maxIterations) {
10
+ async startSession(maxIterations) {
11
11
  const session = {
12
12
  sessionId: randomUUID(),
13
13
  startTime: new Date().toISOString(),
@@ -17,10 +17,11 @@ export class LoopStateManager {
17
17
  iterations: []
18
18
  };
19
19
  this.sessions.set(session.sessionId, session);
20
+ await this.saveSession(session);
20
21
  return session;
21
22
  }
22
23
  async appendIteration(sessionId, summary) {
23
- const session = this.sessions.get(sessionId);
24
+ const session = await this.getSessionForUpdate(sessionId);
24
25
  if (!session) {
25
26
  throw new Error(`Loop session not found: ${sessionId}`);
26
27
  }
@@ -28,8 +29,21 @@ export class LoopStateManager {
28
29
  session.totalIterations = session.iterations.length;
29
30
  await this.saveSession(session);
30
31
  }
32
+ async updateIteration(sessionId, iterationNumber, updates) {
33
+ const session = await this.getSessionForUpdate(sessionId);
34
+ if (!session) {
35
+ throw new Error(`Loop session not found: ${sessionId}`);
36
+ }
37
+ const index = session.iterations.findIndex((iteration) => iteration.iterationNumber === iterationNumber);
38
+ if (index === -1) {
39
+ return false;
40
+ }
41
+ session.iterations[index] = { ...session.iterations[index], ...updates };
42
+ await this.saveSession(session);
43
+ return true;
44
+ }
31
45
  async completeSession(sessionId, status) {
32
- const session = this.sessions.get(sessionId);
46
+ const session = await this.getSessionForUpdate(sessionId);
33
47
  if (!session) {
34
48
  throw new Error(`Loop session not found: ${sessionId}`);
35
49
  }
@@ -74,5 +88,37 @@ export class LoopStateManager {
74
88
  const filePath = path.join(this.loopsDir, `${session.sessionId}.json`);
75
89
  await fs.writeFile(filePath, JSON.stringify(session, null, 2), 'utf-8');
76
90
  }
91
+ async getSessionForUpdate(sessionId) {
92
+ const cached = this.sessions.get(sessionId);
93
+ if (cached) {
94
+ return cached;
95
+ }
96
+ const loaded = await this.loadSession(sessionId);
97
+ if (loaded) {
98
+ this.sessions.set(sessionId, loaded);
99
+ }
100
+ return loaded;
101
+ }
102
+ async createSessionDirectories(sessionId, basePath) {
103
+ const sessionDir = path.join(basePath, '.agent-pipeline', 'loops', sessionId);
104
+ const dirs = {
105
+ pending: path.join(sessionDir, 'pending'),
106
+ running: path.join(sessionDir, 'running'),
107
+ finished: path.join(sessionDir, 'finished'),
108
+ failed: path.join(sessionDir, 'failed'),
109
+ };
110
+ await Promise.all(Object.values(dirs).map(d => fs.mkdir(d, { recursive: true })));
111
+ const gitignorePath = path.join(sessionDir, '.gitignore');
112
+ try {
113
+ await fs.access(gitignorePath);
114
+ }
115
+ catch {
116
+ await fs.writeFile(gitignorePath, '# Ignore loop queue contents\n*\n!.gitignore\n');
117
+ }
118
+ return dirs;
119
+ }
120
+ getSessionQueueDir(sessionId, basePath) {
121
+ return path.join(basePath, '.agent-pipeline', 'loops', sessionId);
122
+ }
77
123
  }
78
124
  //# sourceMappingURL=loop-state-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-state-manager.js","sourceRoot":"","sources":["../../src/core/loop-state-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-state-manager.js","sourceRoot":"","sources":["../../src/core/loop-state-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { AgentStageConfig, StageExecution, PipelineState } from '../config/schema.js';
2
2
  import { StageExecutor } from './stage-executor.js';
3
+ import { PipelineAbortController } from './abort-controller.js';
3
4
  export interface ParallelExecutionResult {
4
5
  executions: StageExecution[];
5
6
  allSucceeded: boolean;
@@ -9,13 +10,17 @@ export interface ParallelExecutionResult {
9
10
  export declare class ParallelExecutor {
10
11
  private stageExecutor;
11
12
  private onStateChange?;
12
- constructor(stageExecutor: StageExecutor, onStateChange?: ((state: PipelineState) => void) | undefined);
13
+ private abortController?;
14
+ constructor(stageExecutor: StageExecutor, onStateChange?: ((state: PipelineState) => void) | undefined, abortController?: PipelineAbortController | undefined);
13
15
  private emitStateChange;
16
+ private isAborted;
14
17
  private createFailedExecution;
15
18
  private createStageCallback;
16
19
  private buildExecutionResult;
17
- executeParallelGroup(stages: AgentStageConfig[], pipelineState: PipelineState, onOutputUpdate?: (stageName: string, output: string) => void): Promise<ParallelExecutionResult>;
18
- executeSequentialGroup(stages: AgentStageConfig[], pipelineState: PipelineState, onOutputUpdate?: (stageName: string, output: string) => void): Promise<ParallelExecutionResult>;
20
+ private addRunningStage;
21
+ private updateStageInState;
22
+ executeParallelGroup(stages: AgentStageConfig[], pipelineState: PipelineState, onOutputUpdate?: (stageName: string, output: string) => void, systemPromptOverrides?: Record<string, string>): Promise<ParallelExecutionResult>;
23
+ executeSequentialGroup(stages: AgentStageConfig[], pipelineState: PipelineState, onOutputUpdate?: (stageName: string, output: string) => void, systemPromptOverrides?: Record<string, string>): Promise<ParallelExecutionResult>;
19
24
  aggregateResults(result: ParallelExecutionResult): string;
20
25
  }
21
26
  //# sourceMappingURL=parallel-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-executor.d.ts","sourceRoot":"","sources":["../../src/core/parallel-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa,CAAC;gBADd,aAAa,EAAE,aAAa,EAC5B,aAAa,CAAC,GAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,aAAA;IAGxD,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB;IAwBtB,oBAAoB,CACxB,MAAM,EAAE,gBAAgB,EAAE,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAC3D,OAAO,CAAC,uBAAuB,CAAC;IA8C7B,sBAAsB,CAC1B,MAAM,EAAE,gBAAgB,EAAE,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAC3D,OAAO,CAAC,uBAAuB,CAAC;IA4BnC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM;CAO1D"}
1
+ {"version":3,"file":"parallel-executor.d.ts","sourceRoot":"","sources":["../../src/core/parallel-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAsB,MAAM,uBAAuB,CAAC;AAEpF,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,eAAe,CAAC;gBAFhB,aAAa,EAAE,aAAa,EAC5B,aAAa,CAAC,GAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,aAAA,EAC9C,eAAe,CAAC,EAAE,uBAAuB,YAAA;IAGnD,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,kBAAkB;IAmBpB,oBAAoB,CACxB,MAAM,EAAE,gBAAgB,EAAE,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAC5D,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7C,OAAO,CAAC,uBAAuB,CAAC;IAuE7B,sBAAsB,CAC1B,MAAM,EAAE,gBAAgB,EAAE,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAC5D,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7C,OAAO,CAAC,uBAAuB,CAAC;IAsEnC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM;CAO1D"}
@@ -1,16 +1,22 @@
1
1
  import { ErrorFactory } from '../utils/error-factory.js';
2
+ import { PipelineAbortError } from './abort-controller.js';
2
3
  export class ParallelExecutor {
3
4
  stageExecutor;
4
5
  onStateChange;
5
- constructor(stageExecutor, onStateChange) {
6
+ abortController;
7
+ constructor(stageExecutor, onStateChange, abortController) {
6
8
  this.stageExecutor = stageExecutor;
7
9
  this.onStateChange = onStateChange;
10
+ this.abortController = abortController;
8
11
  }
9
12
  emitStateChange(state) {
10
13
  if (this.onStateChange) {
11
14
  this.onStateChange(state);
12
15
  }
13
16
  }
17
+ isAborted() {
18
+ return this.abortController?.aborted ?? false;
19
+ }
14
20
  createFailedExecution(stageConfig, reason) {
15
21
  const timestamp = new Date().toISOString();
16
22
  return {
@@ -39,45 +45,113 @@ export class ParallelExecutor {
39
45
  duration
40
46
  };
41
47
  }
42
- async executeParallelGroup(stages, pipelineState, onOutputUpdate) {
48
+ addRunningStage(stageConfig, pipelineState) {
49
+ pipelineState.stages.push({
50
+ stageName: stageConfig.name,
51
+ status: 'running',
52
+ startTime: new Date().toISOString(),
53
+ retryAttempt: 0,
54
+ maxRetries: stageConfig.retry?.maxAttempts || 0
55
+ });
56
+ }
57
+ updateStageInState(execution, pipelineState) {
58
+ const index = pipelineState.stages.findIndex(s => s.stageName === execution.stageName);
59
+ if (index >= 0) {
60
+ pipelineState.stages[index] = execution;
61
+ }
62
+ }
63
+ async executeParallelGroup(stages, pipelineState, onOutputUpdate, systemPromptOverrides) {
43
64
  const startTime = Date.now();
65
+ if (this.isAborted()) {
66
+ const skipTimestamp = new Date().toISOString();
67
+ const skippedExecutions = stages.map(stage => ({
68
+ stageName: stage.name,
69
+ status: 'skipped',
70
+ startTime: skipTimestamp,
71
+ endTime: skipTimestamp,
72
+ duration: 0
73
+ }));
74
+ for (const execution of skippedExecutions) {
75
+ pipelineState.stages.push(execution);
76
+ }
77
+ this.emitStateChange(pipelineState);
78
+ return this.buildExecutionResult(skippedExecutions, startTime);
79
+ }
80
+ for (const stageConfig of stages) {
81
+ this.addRunningStage(stageConfig, pipelineState);
82
+ }
83
+ this.emitStateChange(pipelineState);
44
84
  const promises = stages.map(async (stageConfig) => {
45
85
  const stageOutputCallback = this.createStageCallback(stageConfig.name, onOutputUpdate);
46
86
  try {
47
- const execution = await this.stageExecutor.executeStage(stageConfig, pipelineState, stageOutputCallback);
87
+ const systemPromptOverride = systemPromptOverrides?.[stageConfig.name];
88
+ const execution = await this.stageExecutor.executeStage(stageConfig, pipelineState, stageOutputCallback, systemPromptOverride);
89
+ this.updateStageInState(execution, pipelineState);
48
90
  this.emitStateChange(pipelineState);
49
91
  return execution;
50
92
  }
51
93
  catch (error) {
94
+ if (error instanceof PipelineAbortError) {
95
+ const abortedExecution = this.createFailedExecution(stageConfig, error);
96
+ this.updateStageInState(abortedExecution, pipelineState);
97
+ this.emitStateChange(pipelineState);
98
+ throw error;
99
+ }
100
+ const failedExecution = this.createFailedExecution(stageConfig, error);
101
+ this.updateStageInState(failedExecution, pipelineState);
52
102
  this.emitStateChange(pipelineState);
53
- throw error;
54
- }
55
- });
56
- const results = await Promise.allSettled(promises);
57
- const executions = results.map((result, index) => {
58
- if (result.status === 'fulfilled') {
59
- return result.value;
60
- }
61
- else {
62
- const stageConfig = stages[index];
63
- return this.createFailedExecution(stageConfig, result.reason);
103
+ return failedExecution;
64
104
  }
65
105
  });
106
+ const executions = await Promise.all(promises);
66
107
  return this.buildExecutionResult(executions, startTime);
67
108
  }
68
- async executeSequentialGroup(stages, pipelineState, onOutputUpdate) {
109
+ async executeSequentialGroup(stages, pipelineState, onOutputUpdate, systemPromptOverrides) {
69
110
  const startTime = Date.now();
70
111
  const executions = [];
71
112
  for (const stageConfig of stages) {
113
+ if (this.isAborted()) {
114
+ const skipTimestamp = new Date().toISOString();
115
+ const skippedExecution = {
116
+ stageName: stageConfig.name,
117
+ status: 'skipped',
118
+ startTime: skipTimestamp,
119
+ endTime: skipTimestamp,
120
+ duration: 0
121
+ };
122
+ executions.push(skippedExecution);
123
+ pipelineState.stages.push(skippedExecution);
124
+ this.emitStateChange(pipelineState);
125
+ continue;
126
+ }
127
+ this.addRunningStage(stageConfig, pipelineState);
128
+ this.emitStateChange(pipelineState);
72
129
  const stageOutputCallback = this.createStageCallback(stageConfig.name, onOutputUpdate);
73
130
  try {
74
- const execution = await this.stageExecutor.executeStage(stageConfig, pipelineState, stageOutputCallback);
131
+ const systemPromptOverride = systemPromptOverrides?.[stageConfig.name];
132
+ const execution = await this.stageExecutor.executeStage(stageConfig, pipelineState, stageOutputCallback, systemPromptOverride);
75
133
  executions.push(execution);
134
+ this.updateStageInState(execution, pipelineState);
76
135
  this.emitStateChange(pipelineState);
77
136
  }
78
137
  catch (error) {
138
+ if (error instanceof PipelineAbortError) {
139
+ const abortedExecution = {
140
+ stageName: stageConfig.name,
141
+ status: 'failed',
142
+ startTime: new Date().toISOString(),
143
+ endTime: new Date().toISOString(),
144
+ duration: 0,
145
+ error: { message: 'Stage aborted', timestamp: new Date().toISOString() }
146
+ };
147
+ executions.push(abortedExecution);
148
+ this.updateStageInState(abortedExecution, pipelineState);
149
+ this.emitStateChange(pipelineState);
150
+ throw error;
151
+ }
79
152
  const failedExecution = this.createFailedExecution(stageConfig, error);
80
153
  executions.push(failedExecution);
154
+ this.updateStageInState(failedExecution, pipelineState);
81
155
  this.emitStateChange(pipelineState);
82
156
  }
83
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-executor.js","sourceRoot":"","sources":["../../src/core/parallel-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-executor.js","sourceRoot":"","sources":["../../src/core/parallel-executor.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { PRCreator } from './pr-creator.js';
4
4
  import { StateManager } from './state-manager.js';
5
5
  import { PipelineConfig, PipelineState } from '../config/schema.js';
6
6
  import { NotificationContext } from '../notifications/types.js';
7
+ import { PipelineLogger } from '../utils/pipeline-logger.js';
7
8
  export declare class PipelineFinalizer {
8
9
  private gitManager;
9
10
  private branchManager;
@@ -12,13 +13,20 @@ export declare class PipelineFinalizer {
12
13
  private repoPath;
13
14
  private dryRun;
14
15
  private shouldLog;
16
+ private worktreeManager;
15
17
  constructor(gitManager: GitManager, branchManager: BranchManager, prCreator: PRCreator, stateManager: StateManager, repoPath: string, dryRun: boolean, shouldLog: (interactive: boolean) => boolean);
16
- finalize(state: PipelineState, config: PipelineConfig, pipelineBranch: string | undefined, originalBranch: string, startTime: number, interactive: boolean, notifyCallback: (context: NotificationContext) => Promise<void>, stateChangeCallback: (state: PipelineState) => void): Promise<PipelineState>;
18
+ finalize(state: PipelineState, config: PipelineConfig, pipelineBranch: string | undefined, worktreePath: string | undefined, executionRepoPath: string, startTime: number, interactive: boolean, verbose: boolean, notifyCallback: (context: NotificationContext) => Promise<void>, stateChangeCallback: (state: PipelineState) => void, options?: {
19
+ suppressCompletionNotification?: boolean;
20
+ pipelineLogger?: PipelineLogger;
21
+ }): Promise<PipelineState>;
17
22
  private calculateMetrics;
18
- private saveOutputs;
19
- private handlePRCreation;
23
+ private handleMergeStrategy;
24
+ private handlePullRequest;
25
+ private handleLocalMerge;
20
26
  private notifyCompletion;
21
27
  private printSummary;
22
- private cleanup;
28
+ private calculateTotalTokens;
29
+ private copyHandoverToMainRepo;
30
+ private handleWorktreeCleanup;
23
31
  }
24
32
  //# sourceMappingURL=pipeline-finalizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-finalizer.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-finalizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;gBANT,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO;IAMhD,QAAQ,CACZ,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,cAAc,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/D,mBAAmB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAClD,OAAO,CAAC,aAAa,CAAC;YAiCX,gBAAgB;YAShB,WAAW;YAWX,gBAAgB;YA+DhB,gBAAgB;IAe9B,OAAO,CAAC,YAAY;YAON,OAAO;CAYtB"}
1
+ {"version":3,"file":"pipeline-finalizer.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-finalizer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAc7D,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,eAAe,CAAkB;gBAG/B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO;IAQhD,QAAQ,CACZ,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/D,mBAAmB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EACnD,OAAO,CAAC,EAAE;QAAE,8BAA8B,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,cAAc,CAAA;KAAE,GACtF,OAAO,CAAC,aAAa,CAAC;YA2FX,gBAAgB;YAkBhB,mBAAmB;YAqCnB,iBAAiB;YAwEjB,gBAAgB;YA8FhB,gBAAgB;IAe9B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,oBAAoB;YAmCd,sBAAsB;YAiCtB,qBAAqB;CAgDpC"}