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
@@ -1,5 +1,20 @@
1
- import { OutputStorageManager } from './output-storage-manager.js';
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import chalk from 'chalk';
4
+ import { GitManager } from './git-manager.js';
5
+ import { BranchManager } from './branch-manager.js';
6
+ import { WorktreeManager } from './worktree-manager.js';
2
7
  import { PipelineFormatter } from '../utils/pipeline-formatter.js';
8
+ const c = {
9
+ success: chalk.green,
10
+ warn: chalk.yellow,
11
+ error: chalk.red,
12
+ dim: chalk.dim,
13
+ cmd: chalk.cyan,
14
+ branch: chalk.magenta,
15
+ path: chalk.yellow,
16
+ header: chalk.bold.white,
17
+ };
3
18
  export class PipelineFinalizer {
4
19
  gitManager;
5
20
  branchManager;
@@ -8,6 +23,7 @@ export class PipelineFinalizer {
8
23
  repoPath;
9
24
  dryRun;
10
25
  shouldLog;
26
+ worktreeManager;
11
27
  constructor(gitManager, branchManager, prCreator, stateManager, repoPath, dryRun, shouldLog) {
12
28
  this.gitManager = gitManager;
13
29
  this.branchManager = branchManager;
@@ -16,49 +32,103 @@ export class PipelineFinalizer {
16
32
  this.repoPath = repoPath;
17
33
  this.dryRun = dryRun;
18
34
  this.shouldLog = shouldLog;
35
+ this.worktreeManager = new WorktreeManager(repoPath);
19
36
  }
20
- async finalize(state, config, pipelineBranch, originalBranch, startTime, interactive, notifyCallback, stateChangeCallback) {
21
- await this.calculateMetrics(state, startTime);
22
- await this.saveOutputs(state, config);
23
- if (pipelineBranch && config.git?.pullRequest?.autoCreate) {
24
- await this.handlePRCreation(config, pipelineBranch, state, interactive, notifyCallback);
37
+ async finalize(state, config, pipelineBranch, worktreePath, executionRepoPath, startTime, interactive, verbose, notifyCallback, stateChangeCallback, options) {
38
+ const { pipelineLogger } = options || {};
39
+ await this.calculateMetrics(state, startTime, executionRepoPath);
40
+ if (state.status === 'aborted') {
41
+ if (this.shouldLog(interactive)) {
42
+ console.log(`\n${c.warn('โš ')} ${c.warn('Pipeline aborted.')} Work preserved on branch: ${c.branch(pipelineBranch || '(current)')}`);
43
+ if (worktreePath) {
44
+ console.log(` ${c.dim('Worktree preserved for recovery:')} ${c.path(worktreePath)}`);
45
+ }
46
+ }
47
+ if (worktreePath && state.artifacts.mainRepoHandoverDir) {
48
+ await this.copyHandoverToMainRepo(state.artifacts.handoverDir, state.artifacts.mainRepoHandoverDir, interactive);
49
+ state.artifacts.handoverDir = state.artifacts.mainRepoHandoverDir;
50
+ }
51
+ await this.stateManager.saveState(state);
52
+ stateChangeCallback(state);
53
+ await notifyCallback({
54
+ event: 'pipeline.aborted',
55
+ pipelineState: state
56
+ });
57
+ return state;
58
+ }
59
+ if (pipelineBranch && config.git) {
60
+ const mergeStrategy = config.git.mergeStrategy || 'none';
61
+ await this.handleMergeStrategy(mergeStrategy, config, pipelineBranch, state, executionRepoPath, interactive, notifyCallback);
62
+ }
63
+ if (worktreePath && state.artifacts.mainRepoHandoverDir) {
64
+ await this.copyHandoverToMainRepo(state.artifacts.handoverDir, state.artifacts.mainRepoHandoverDir, interactive);
65
+ state.artifacts.handoverDir = state.artifacts.mainRepoHandoverDir;
25
66
  }
26
67
  await this.stateManager.saveState(state);
27
68
  stateChangeCallback(state);
28
- await this.notifyCompletion(state, notifyCallback);
69
+ if (!options?.suppressCompletionNotification) {
70
+ await this.notifyCompletion(state, notifyCallback);
71
+ }
29
72
  if (this.shouldLog(interactive)) {
30
- this.printSummary(state);
73
+ this.printSummary(state, worktreePath, verbose);
74
+ }
75
+ const prCreatedSuccessfully = !!state.artifacts.pullRequest?.url;
76
+ await this.handleWorktreeCleanup(worktreePath, config, state.status, interactive, prCreatedSuccessfully);
77
+ if (pipelineLogger) {
78
+ pipelineLogger.pipelineComplete(state.status, state.artifacts.totalDuration, state.stages.length);
79
+ pipelineLogger.close();
31
80
  }
32
- await this.cleanup(pipelineBranch, originalBranch, interactive);
33
81
  return state;
34
82
  }
35
- async calculateMetrics(state, startTime) {
83
+ async calculateMetrics(state, startTime, executionRepoPath) {
36
84
  const endTime = Date.now();
37
85
  state.artifacts.totalDuration = (endTime - startTime) / 1000;
38
- state.artifacts.finalCommit = await this.gitManager.getCurrentCommit();
86
+ const execGitManager = executionRepoPath !== this.repoPath
87
+ ? new GitManager(executionRepoPath)
88
+ : this.gitManager;
89
+ state.artifacts.finalCommit = await execGitManager.getCurrentCommit();
39
90
  }
40
- async saveOutputs(state, config) {
41
- if (config.settings?.contextReduction?.saveVerboseOutputs !== false) {
42
- const outputStorageManager = new OutputStorageManager(this.repoPath, state.runId);
43
- await outputStorageManager.savePipelineSummary(state.stages);
44
- await outputStorageManager.saveChangedFiles(state.artifacts.changedFiles);
91
+ async handleMergeStrategy(strategy, config, branchName, state, executionRepoPath, interactive, notifyCallback) {
92
+ const hasCommits = state.stages.some(s => s.commitSha);
93
+ if (!hasCommits && (strategy === 'pull-request' || strategy === 'local-merge')) {
94
+ if (this.shouldLog(interactive)) {
95
+ console.log(`\n${c.dim('๐Ÿ“ No commits to merge.')} Work preserved on branch: ${c.branch(branchName)}`);
96
+ }
97
+ return;
98
+ }
99
+ switch (strategy) {
100
+ case 'pull-request':
101
+ await this.handlePullRequest(config, branchName, state, executionRepoPath, interactive, notifyCallback);
102
+ break;
103
+ case 'local-merge':
104
+ await this.handleLocalMerge(config, branchName, interactive);
105
+ break;
106
+ case 'none':
107
+ if (this.shouldLog(interactive)) {
108
+ console.log(`\n${c.dim('๐Ÿ“ Work preserved on branch:')} ${c.branch(branchName)}`);
109
+ }
110
+ break;
45
111
  }
46
112
  }
47
- async handlePRCreation(config, branchName, state, interactive, notifyCallback) {
113
+ async handlePullRequest(config, branchName, state, executionRepoPath, interactive, notifyCallback) {
48
114
  try {
49
- await this.branchManager.pushBranch(branchName);
115
+ const pushBranchManager = executionRepoPath !== this.repoPath
116
+ ? new BranchManager(executionRepoPath)
117
+ : this.branchManager;
118
+ await pushBranchManager.pushBranch(branchName);
50
119
  const exists = await this.prCreator.prExists(branchName);
51
120
  if (exists) {
52
- if (this.shouldLog(interactive)) {
53
- console.log(`\nโœ… Pull request already exists for ${branchName}`);
54
- console.log(` View it with: gh pr view ${branchName}`);
55
- }
121
+ console.log(`\n${c.success('โœ“')} Pull request already exists for ${c.branch(branchName)}`);
122
+ console.log(` ${c.dim('View it with:')} ${c.cmd(`gh pr view ${branchName}`)}`);
56
123
  return;
57
124
  }
58
- const prConfig = config.git.pullRequest;
125
+ const prConfig = config.git?.pullRequest || {};
59
126
  const result = await this.prCreator.createPR(branchName, config.git?.baseBranch || 'main', prConfig, state);
60
127
  if (this.shouldLog(interactive)) {
61
- console.log(`\nโœ… Pull Request created: ${result.url}`);
128
+ const isComplete = state.status === 'completed';
129
+ const statusIcon = isComplete ? c.success('โœ“') : c.warn('โš ');
130
+ const statusSuffix = state.status === 'partial' ? c.dim(' (partial success)') : '';
131
+ console.log(`\n${statusIcon} Pull Request created${statusSuffix}: ${c.cmd(result.url)}`);
62
132
  }
63
133
  state.artifacts.pullRequest = {
64
134
  url: result.url,
@@ -73,11 +143,81 @@ export class PipelineFinalizer {
73
143
  });
74
144
  }
75
145
  catch (error) {
146
+ const errorMessage = error instanceof Error ? error.message : String(error);
147
+ state.artifacts.prError = errorMessage;
148
+ await this.stateManager.saveState(state);
149
+ console.log(`\n${c.error('โœ—')} ${c.error('Failed to create PR:')} ${c.dim(errorMessage)}`);
150
+ console.log(` ${c.dim('Branch')} ${c.branch(branchName)} ${c.dim('has been pushed to remote.')}`);
151
+ console.log(` ${c.dim('You can create the PR manually with:')} ${c.cmd('gh pr create')}`);
152
+ }
153
+ }
154
+ async handleLocalMerge(config, branchName, interactive) {
155
+ const baseBranch = config.git?.baseBranch || 'main';
156
+ const baseCheckedOutPath = await this.gitManager.isBranchCheckedOut(baseBranch);
157
+ let mergeWorktreePath = null;
158
+ let mergeAttemptedOnCheckedOutPath = false;
159
+ try {
160
+ if (baseCheckedOutPath) {
161
+ const checkedOutGitManager = new GitManager(baseCheckedOutPath);
162
+ const hasChanges = await checkedOutGitManager.hasUncommittedChanges();
163
+ if (hasChanges) {
164
+ if (this.shouldLog(interactive)) {
165
+ console.log(`\n${c.warn('โš ')} Cannot auto-merge: ${c.branch(baseBranch)} has uncommitted changes.`);
166
+ console.log(` ${c.dim('Pipeline completed successfully. Changes on branch:')} ${c.branch(branchName)}`);
167
+ console.log(`\n ${c.dim('Commit or stash your work, then run:')} ${c.cmd(`git merge ${branchName}`)}`);
168
+ }
169
+ return;
170
+ }
171
+ if (this.shouldLog(interactive)) {
172
+ console.log(`\n${c.dim('๐Ÿ”€ Merging')} ${c.branch(branchName)} ${c.dim('into')} ${c.branch(baseBranch)}${c.dim('...')}`);
173
+ }
174
+ try {
175
+ mergeAttemptedOnCheckedOutPath = true;
176
+ await checkedOutGitManager.merge(branchName);
177
+ console.log(`${c.success('โœ“')} Merged ${c.branch(branchName)} into ${c.branch(baseBranch)}`);
178
+ return;
179
+ }
180
+ catch (mergeError) {
181
+ if (this.shouldLog(interactive)) {
182
+ console.log(`\n${c.error('โœ—')} Failed to merge: ${mergeError instanceof Error ? mergeError.message : String(mergeError)}`);
183
+ console.log(` ${c.dim('To resolve:')} ${c.cmd('git status')} then fix conflicts and ${c.cmd('git commit')}`);
184
+ console.log(` ${c.dim('Or abort:')} ${c.cmd('git merge --abort')}`);
185
+ }
186
+ throw mergeError;
187
+ }
188
+ }
189
+ const worktreeBaseDir = this.worktreeManager.getWorktreeBaseDir();
190
+ await fs.mkdir(worktreeBaseDir, { recursive: true });
191
+ const safeBranchName = branchName.replace(/[\\/]/g, '-');
192
+ mergeWorktreePath = path.join(worktreeBaseDir, `merge-${safeBranchName}-${Date.now()}`);
193
+ await this.worktreeManager.createWorktree(mergeWorktreePath, baseBranch, baseBranch);
194
+ const mergeGitManager = new GitManager(mergeWorktreePath);
76
195
  if (this.shouldLog(interactive)) {
77
- console.error(`\nโŒ Failed to create PR: ${error instanceof Error ? error.message : String(error)}`);
78
- console.log(` Branch ${branchName} has been pushed to remote.`);
79
- console.log(` You can create the PR manually with: gh pr create`);
196
+ console.log(`\n${c.dim('๐Ÿ”€ Merging')} ${c.branch(branchName)} ${c.dim('into')} ${c.branch(baseBranch)}${c.dim('...')}`);
80
197
  }
198
+ await mergeGitManager.merge(branchName);
199
+ await this.worktreeManager.removeWorktree(mergeWorktreePath, true);
200
+ await this.worktreeManager.pruneWorktrees();
201
+ mergeWorktreePath = null;
202
+ console.log(`${c.success('โœ“')} Merged ${c.branch(branchName)} into ${c.branch(baseBranch)}`);
203
+ }
204
+ catch (error) {
205
+ if (mergeAttemptedOnCheckedOutPath) {
206
+ throw error;
207
+ }
208
+ if (this.shouldLog(interactive)) {
209
+ console.log(`\n${c.error('โœ—')} ${c.error('Failed to merge:')} ${c.dim(error instanceof Error ? error.message : String(error))}`);
210
+ console.log(` ${c.dim('Branch')} ${c.branch(branchName)} ${c.dim('still exists with your changes.')}`);
211
+ console.log('');
212
+ console.log(` ${c.dim('You can merge manually with:')}`);
213
+ console.log(` ${c.cmd(`git checkout ${baseBranch} && git merge ${branchName}`)}`);
214
+ if (mergeWorktreePath) {
215
+ console.log('');
216
+ console.log(` ${c.dim('Merge worktree preserved at:')} ${c.path(mergeWorktreePath)}`);
217
+ }
218
+ console.log('');
219
+ }
220
+ throw error;
81
221
  }
82
222
  }
83
223
  async notifyCompletion(state, notifyCallback) {
@@ -88,15 +228,86 @@ export class PipelineFinalizer {
88
228
  prUrl: state.artifacts.pullRequest?.url
89
229
  });
90
230
  }
91
- printSummary(state) {
92
- console.log(PipelineFormatter.formatSummary(state));
231
+ printSummary(state, worktreePath, verbose = false) {
232
+ const totals = this.calculateTotalTokens(state);
233
+ console.log(PipelineFormatter.formatSummary(state, verbose, totals));
234
+ if (worktreePath && verbose) {
235
+ console.log(`\n${c.dim('๐ŸŒณ Worktree location:')} ${c.path(worktreePath)}`);
236
+ }
237
+ }
238
+ calculateTotalTokens(state) {
239
+ let totalProcessed = 0;
240
+ let totalOutput = 0;
241
+ let totalTurns = 0;
242
+ let totalCacheRead = 0;
243
+ for (const stage of state.stages) {
244
+ if (stage.tokenUsage) {
245
+ const cacheRead = stage.tokenUsage.cache_read || 0;
246
+ const cacheCreation = stage.tokenUsage.cache_creation || 0;
247
+ const actualInput = stage.tokenUsage.actual_input || 0;
248
+ const cacheCreationIncluded = cacheCreation > 0 && actualInput >= cacheCreation;
249
+ const stageProcessed = actualInput + cacheRead + (cacheCreationIncluded ? 0 : cacheCreation);
250
+ totalProcessed += stageProcessed;
251
+ totalOutput += stage.tokenUsage.output || 0;
252
+ totalTurns += stage.tokenUsage.num_turns || 0;
253
+ totalCacheRead += cacheRead;
254
+ }
255
+ }
256
+ return { totalProcessed, totalOutput, totalTurns, totalCacheRead };
257
+ }
258
+ async copyHandoverToMainRepo(sourcePath, destPath, interactive) {
259
+ try {
260
+ await fs.mkdir(path.dirname(destPath), { recursive: true });
261
+ await fs.cp(sourcePath, destPath, { recursive: true });
262
+ if (this.shouldLog(interactive)) {
263
+ console.log(`\n${c.dim('๐Ÿ“‹ Copied handover files to:')} ${c.path(destPath)}`);
264
+ }
265
+ }
266
+ catch (error) {
267
+ if (this.shouldLog(interactive)) {
268
+ console.log(`\n${c.warn('โš ')} ${c.dim('Could not copy handover directory:')} ${c.dim(error instanceof Error ? error.message : String(error))}`);
269
+ console.log(` ${c.dim('Source:')} ${c.path(sourcePath)}`);
270
+ console.log(` ${c.dim('Destination:')} ${c.path(destPath)}`);
271
+ }
272
+ }
93
273
  }
94
- async cleanup(pipelineBranch, originalBranch, interactive) {
95
- if (pipelineBranch && originalBranch && !this.dryRun) {
274
+ async handleWorktreeCleanup(worktreePath, config, status, interactive, prCreatedSuccessfully = false) {
275
+ if (!worktreePath || this.dryRun) {
276
+ return;
277
+ }
278
+ const strategy = config.git?.branchStrategy || 'reusable';
279
+ const success = status === 'completed';
280
+ if (strategy === 'reusable') {
281
+ if (this.shouldLog(interactive)) {
282
+ console.log(`\n${c.dim('๐ŸŒณ Worktree preserved at:')} ${c.path(worktreePath)}`);
283
+ console.log(` ${c.dim('Use')} ${c.cmd('agent-pipeline cleanup --worktrees')} ${c.dim('to remove.')}`);
284
+ }
285
+ return;
286
+ }
287
+ if (strategy === 'unique-and-delete' && success) {
288
+ try {
289
+ await this.worktreeManager.cleanupWorktree(worktreePath, true, prCreatedSuccessfully);
290
+ if (this.shouldLog(interactive)) {
291
+ console.log(`\n${c.dim('๐Ÿ—‘๏ธ Cleaned up worktree:')} ${c.path(worktreePath)}`);
292
+ }
293
+ }
294
+ catch (error) {
295
+ if (this.shouldLog(interactive)) {
296
+ console.log(`\n${c.warn('โš ')} ${c.dim('Could not cleanup worktree:')} ${c.dim(error instanceof Error ? error.message : String(error))}`);
297
+ console.log(` ${c.dim('Worktree remains at:')} ${c.path(worktreePath)}`);
298
+ }
299
+ }
300
+ }
301
+ else if (strategy === 'unique-per-run' && success) {
302
+ if (this.shouldLog(interactive)) {
303
+ console.log(`\n${c.dim('๐ŸŒณ Worktree preserved at:')} ${c.path(worktreePath)}`);
304
+ console.log(` ${c.dim('Use')} ${c.cmd('agent-pipeline cleanup --worktrees')} ${c.dim('to remove.')}`);
305
+ }
306
+ }
307
+ else if (!success) {
96
308
  if (this.shouldLog(interactive)) {
97
- console.log(`\nโ†ฉ๏ธ Returning to branch: ${originalBranch}`);
309
+ console.log(`\n${c.dim('๐ŸŒณ Worktree preserved for debugging:')} ${c.path(worktreePath)}`);
98
310
  }
99
- await this.branchManager.checkoutBranch(originalBranch);
100
311
  }
101
312
  }
102
313
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-finalizer.js","sourceRoot":"","sources":["../../src/core/pipeline-finalizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-finalizer.js","sourceRoot":"","sources":["../../src/core/pipeline-finalizer.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,43 @@
1
1
  import { GitManager } from './git-manager.js';
2
- import { BranchManager } from './branch-manager.js';
3
2
  import { StageExecutor } from './stage-executor.js';
4
3
  import { ParallelExecutor } from './parallel-executor.js';
4
+ import { HandoverManager } from './handover-manager.js';
5
5
  import { AgentRuntime } from './types/agent-runtime.js';
6
6
  import { PipelineConfig, PipelineState, LoopContext, PipelineMetadata } from '../config/schema.js';
7
7
  import { NotificationManager } from '../notifications/notification-manager.js';
8
8
  import { NotificationContext } from '../notifications/types.js';
9
+ import { PipelineAbortController } from './abort-controller.js';
10
+ import { PipelineLogger } from '../utils/pipeline-logger.js';
9
11
  export interface InitializationResult {
10
12
  state: PipelineState;
11
13
  stageExecutor: StageExecutor;
12
14
  parallelExecutor: ParallelExecutor;
15
+ handoverManager: HandoverManager;
13
16
  pipelineBranch?: string;
14
- originalBranch: string;
17
+ worktreePath?: string;
18
+ executionRepoPath: string;
15
19
  notificationManager?: NotificationManager;
20
+ pipelineLogger: PipelineLogger;
16
21
  startTime: number;
22
+ verbose: boolean;
17
23
  }
18
24
  export declare class PipelineInitializer {
19
25
  private gitManager;
20
- private branchManager;
21
26
  private repoPath;
22
27
  private dryRun;
23
28
  private runtime;
24
- constructor(gitManager: GitManager, branchManager: BranchManager, repoPath: string, dryRun: boolean, runtime: AgentRuntime);
29
+ private worktreeManager;
30
+ constructor(gitManager: GitManager, repoPath: string, dryRun: boolean, runtime: AgentRuntime);
25
31
  initialize(config: PipelineConfig, options: {
26
32
  interactive?: boolean;
33
+ verbose?: boolean;
27
34
  notificationManager?: NotificationManager;
28
35
  loopContext?: LoopContext;
29
36
  loopSessionId?: string;
30
37
  metadata?: PipelineMetadata;
38
+ abortController?: PipelineAbortController;
31
39
  }, notifyCallback: (context: NotificationContext) => Promise<void>, stateChangeCallback: (state: PipelineState) => void): Promise<InitializationResult>;
32
- private setupBranchIsolation;
40
+ private setupWorktreeIsolation;
33
41
  private createInitialState;
34
42
  private logStartup;
35
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-initializer.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;gBAJP,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,YAAY;IAMzB,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,EACD,cAAc,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/D,mBAAmB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAClD,OAAO,CAAC,oBAAoB,CAAC;YA6ElB,oBAAoB;IA2BlC,OAAO,CAAC,kBAAkB;IAkD1B,OAAO,CAAC,UAAU;CAiBnB"}
1
+ {"version":3,"file":"pipeline-initializer.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,eAAe,CAAkB;gBAG/B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,YAAY;IAQzB,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,eAAe,CAAC,EAAE,uBAAuB,CAAC;KAC3C,EACD,cAAc,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/D,mBAAmB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAClD,OAAO,CAAC,oBAAoB,CAAC;YA8HlB,sBAAsB;IAqCpC,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,UAAU;CAuBnB"}
@@ -1,34 +1,50 @@
1
1
  import { v4 as uuidv4 } from 'uuid';
2
+ import { WorktreeManager } from './worktree-manager.js';
2
3
  import { StageExecutor } from './stage-executor.js';
3
4
  import { ParallelExecutor } from './parallel-executor.js';
5
+ import { HandoverManager } from './handover-manager.js';
4
6
  import { NotificationManager } from '../notifications/notification-manager.js';
7
+ import { PipelineLogger } from '../utils/pipeline-logger.js';
5
8
  export class PipelineInitializer {
6
9
  gitManager;
7
- branchManager;
8
10
  repoPath;
9
11
  dryRun;
10
12
  runtime;
11
- constructor(gitManager, branchManager, repoPath, dryRun, runtime) {
13
+ worktreeManager;
14
+ constructor(gitManager, repoPath, dryRun, runtime) {
12
15
  this.gitManager = gitManager;
13
- this.branchManager = branchManager;
14
16
  this.repoPath = repoPath;
15
17
  this.dryRun = dryRun;
16
18
  this.runtime = runtime;
19
+ this.worktreeManager = new WorktreeManager(repoPath);
17
20
  }
18
21
  async initialize(config, options, notifyCallback, stateChangeCallback) {
22
+ const verbose = options.verbose ?? false;
19
23
  const runId = uuidv4();
20
24
  const notificationManager = options.notificationManager ||
21
25
  (config.notifications
22
26
  ? new NotificationManager(config.notifications)
23
27
  : undefined);
24
- const originalBranch = await this.branchManager.getCurrentBranch();
25
- const pipelineBranch = await this.setupBranchIsolation(config, runId, options.interactive || false);
28
+ const pipelineLogger = new PipelineLogger(this.repoPath, config.name, options.interactive ?? true);
29
+ const isolation = await this.setupWorktreeIsolation(config, runId, options.interactive || false);
26
30
  const triggerCommit = await this.gitManager.getCurrentCommit();
27
31
  const changedFiles = await this.gitManager.getChangedFiles(triggerCommit);
28
32
  const state = this.createInitialState(config, runId, triggerCommit, changedFiles, options.loopContext, options.loopSessionId, options.metadata);
29
- const stageExecutor = new StageExecutor(this.gitManager, this.dryRun, state.runId, this.repoPath, this.runtime, options.loopContext);
30
- const parallelExecutor = new ParallelExecutor(stageExecutor, stateChangeCallback);
31
- this.logStartup(config, state, triggerCommit, options.interactive || false);
33
+ if (isolation.worktreePath) {
34
+ state.artifacts.worktreePath = isolation.worktreePath;
35
+ }
36
+ const handoverRepoPath = isolation.worktreePath || this.repoPath;
37
+ const handoverManager = new HandoverManager(handoverRepoPath, config.name, runId, config.handover);
38
+ await handoverManager.initialize();
39
+ state.artifacts.handoverDir = handoverManager.getHandoverDir();
40
+ state.artifacts.logPath = pipelineLogger.getLogPath();
41
+ if (isolation.worktreePath) {
42
+ const mainRepoHandoverManager = new HandoverManager(this.repoPath, config.name, runId, config.handover);
43
+ state.artifacts.mainRepoHandoverDir = mainRepoHandoverManager.getHandoverDir();
44
+ }
45
+ const stageExecutor = new StageExecutor(this.gitManager, this.dryRun, handoverManager, this.runtime, this.repoPath, isolation.executionRepoPath, { interactive: options.interactive ?? true, verbose }, options.abortController, pipelineLogger);
46
+ const parallelExecutor = new ParallelExecutor(stageExecutor, stateChangeCallback, options.abortController);
47
+ this.logStartup(config, state, triggerCommit, isolation, pipelineLogger, verbose);
32
48
  stateChangeCallback(state);
33
49
  await notifyCallback({
34
50
  event: 'pipeline.started',
@@ -39,21 +55,30 @@ export class PipelineInitializer {
39
55
  state,
40
56
  stageExecutor,
41
57
  parallelExecutor,
42
- pipelineBranch,
43
- originalBranch,
58
+ handoverManager,
59
+ pipelineBranch: isolation.branchName,
60
+ worktreePath: isolation.worktreePath,
61
+ executionRepoPath: isolation.executionRepoPath,
44
62
  notificationManager,
45
- startTime
63
+ pipelineLogger,
64
+ startTime,
65
+ verbose
46
66
  };
47
67
  }
48
- async setupBranchIsolation(config, runId, interactive) {
68
+ async setupWorktreeIsolation(config, runId, _interactive) {
49
69
  if (!config.git || this.dryRun) {
50
- return undefined;
51
- }
52
- const pipelineBranch = await this.branchManager.setupPipelineBranch(config.name, runId, config.git.baseBranch || 'main', config.git.branchStrategy || 'reusable', config.git.branchPrefix || 'pipeline');
53
- if (!interactive) {
54
- console.log(`๐Ÿ“ Running on branch: ${pipelineBranch}\n`);
70
+ return { executionRepoPath: this.repoPath };
55
71
  }
56
- return pipelineBranch;
72
+ const worktreeDir = config.git?.worktree?.directory;
73
+ const worktreeManager = worktreeDir
74
+ ? new WorktreeManager(this.repoPath, worktreeDir)
75
+ : this.worktreeManager;
76
+ const result = await worktreeManager.setupPipelineWorktree(config.name, runId, config.git.baseBranch || 'main', config.git.branchStrategy || 'reusable', config.git.branchPrefix || 'pipeline');
77
+ return {
78
+ worktreePath: result.worktreePath,
79
+ branchName: result.branchName,
80
+ executionRepoPath: result.worktreePath
81
+ };
57
82
  }
58
83
  createInitialState(config, runId, triggerCommit, changedFiles, loopContext, loopSessionId, metadata) {
59
84
  const stateLoopContext = loopContext
@@ -86,19 +111,22 @@ export class PipelineInitializer {
86
111
  artifacts: {
87
112
  initialCommit: triggerCommit,
88
113
  changedFiles,
89
- totalDuration: 0
114
+ totalDuration: 0,
115
+ handoverDir: ''
90
116
  },
91
117
  loopContext: stateLoopContext
92
118
  };
93
119
  }
94
- logStartup(config, state, triggerCommit, interactive) {
120
+ logStartup(config, state, triggerCommit, isolation, logger, verbose) {
121
+ logger.pipelineStart(config.name, state.runId, triggerCommit);
95
122
  if (this.dryRun) {
96
- console.log(`\n๐Ÿงช DRY RUN MODE - No commits will be created\n`);
123
+ logger.log('DRY RUN MODE - No commits will be created');
97
124
  }
98
- if (!interactive) {
99
- console.log(`\n๐Ÿš€ Starting pipeline: ${config.name}`);
100
- console.log(`๐Ÿ“ฆ Run ID: ${state.runId}`);
101
- console.log(`๐Ÿ“ Trigger commit: ${triggerCommit.substring(0, 7)}\n`);
125
+ if (verbose) {
126
+ if (isolation.worktreePath) {
127
+ logger.log(`Worktree: ${isolation.worktreePath}`);
128
+ logger.log(`Branch: ${isolation.branchName}`);
129
+ }
102
130
  }
103
131
  }
104
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-initializer.js","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-initializer.js","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { PipelineConfig, PipelineState, PipelineMetadata } from '../config/schema.js';
2
+ import { PipelineAbortController } from './abort-controller.js';
2
3
  export declare class PipelineRunner {
3
4
  private gitManager;
4
5
  private branchManager;
@@ -13,24 +14,37 @@ export declare class PipelineRunner {
13
14
  private repoPath;
14
15
  private runtime;
15
16
  private stateUpdateCallbacks;
16
- private projectConfigLoader;
17
17
  private loopStateManager;
18
+ private loopExecutionDirs?;
19
+ private loopMainDirs?;
18
20
  constructor(repoPath: string, dryRun?: boolean);
19
21
  private shouldLog;
20
22
  private notifyStageResults;
21
23
  runPipeline(config: PipelineConfig, options?: {
22
24
  interactive?: boolean;
25
+ verbose?: boolean;
23
26
  loop?: boolean;
24
27
  loopMetadata?: PipelineMetadata;
25
28
  maxLoopIterations?: number;
29
+ abortController?: PipelineAbortController;
26
30
  }): Promise<PipelineState>;
27
31
  private notifyStateChange;
28
32
  private notify;
29
33
  onStateChange(callback: (state: PipelineState) => void): void;
34
+ private getDefaultLoopingConfig;
35
+ private getSessionLoopDirs;
36
+ private resolveLoopDirectories;
37
+ private mapToExecutionDir;
38
+ private areSameLoopDirs;
39
+ private ensureLoopDirectoriesExist;
40
+ private copyLoopDirectories;
30
41
  private _findNextPipelineFile;
31
42
  private _getUniqueFilePath;
32
43
  private _moveFile;
33
44
  private _executeSinglePipeline;
34
45
  private recordIteration;
46
+ private injectLoopStageIntoConfig;
47
+ private getUniqueLoopStageName;
48
+ private getPipelineName;
35
49
  }
36
50
  //# sourceMappingURL=pipeline-runner.d.ts.map