@generacy-ai/orchestrator 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/config/loader.d.ts.map +1 -1
  2. package/dist/config/loader.js +25 -0
  3. package/dist/config/loader.js.map +1 -1
  4. package/dist/config/schema.d.ts +54 -7
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/index.d.ts +3 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/routes/health.d.ts.map +1 -1
  11. package/dist/routes/health.js +5 -0
  12. package/dist/routes/health.js.map +1 -1
  13. package/dist/server.d.ts.map +1 -1
  14. package/dist/server.js +130 -26
  15. package/dist/server.js.map +1 -1
  16. package/dist/services/base-advance-monitor-service.d.ts +78 -0
  17. package/dist/services/base-advance-monitor-service.d.ts.map +1 -0
  18. package/dist/services/base-advance-monitor-service.js +233 -0
  19. package/dist/services/base-advance-monitor-service.js.map +1 -0
  20. package/dist/services/boot-resume-service.d.ts +19 -0
  21. package/dist/services/boot-resume-service.d.ts.map +1 -0
  22. package/dist/services/boot-resume-service.js +87 -0
  23. package/dist/services/boot-resume-service.js.map +1 -0
  24. package/dist/services/epic-completion-monitor-service.d.ts.map +1 -1
  25. package/dist/services/epic-completion-monitor-service.js +2 -0
  26. package/dist/services/epic-completion-monitor-service.js.map +1 -1
  27. package/dist/services/in-memory-queue-adapter.d.ts +4 -0
  28. package/dist/services/in-memory-queue-adapter.d.ts.map +1 -1
  29. package/dist/services/in-memory-queue-adapter.js +30 -3
  30. package/dist/services/in-memory-queue-adapter.js.map +1 -1
  31. package/dist/services/label-monitor-service.d.ts +3 -3
  32. package/dist/services/label-monitor-service.d.ts.map +1 -1
  33. package/dist/services/label-monitor-service.js +58 -41
  34. package/dist/services/label-monitor-service.js.map +1 -1
  35. package/dist/services/label-sync-service.d.ts.map +1 -1
  36. package/dist/services/label-sync-service.js +45 -10
  37. package/dist/services/label-sync-service.js.map +1 -1
  38. package/dist/services/merge-conflict-monitor-service.d.ts +73 -0
  39. package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -0
  40. package/dist/services/merge-conflict-monitor-service.js +295 -0
  41. package/dist/services/merge-conflict-monitor-service.js.map +1 -0
  42. package/dist/services/orchestrator-version.d.ts +2 -0
  43. package/dist/services/orchestrator-version.d.ts.map +1 -0
  44. package/dist/services/orchestrator-version.js +23 -0
  45. package/dist/services/orchestrator-version.js.map +1 -0
  46. package/dist/services/phase-tracker-service.d.ts +10 -0
  47. package/dist/services/phase-tracker-service.d.ts.map +1 -1
  48. package/dist/services/phase-tracker-service.js +38 -0
  49. package/dist/services/phase-tracker-service.js.map +1 -1
  50. package/dist/services/post-activation-dispatch.d.ts +18 -0
  51. package/dist/services/post-activation-dispatch.d.ts.map +1 -0
  52. package/dist/services/post-activation-dispatch.js +30 -0
  53. package/dist/services/post-activation-dispatch.js.map +1 -0
  54. package/dist/services/pr-feedback-monitor-service.d.ts +13 -4
  55. package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
  56. package/dist/services/pr-feedback-monitor-service.js +212 -26
  57. package/dist/services/pr-feedback-monitor-service.js.map +1 -1
  58. package/dist/services/redis-queue-adapter.d.ts +4 -0
  59. package/dist/services/redis-queue-adapter.d.ts.map +1 -1
  60. package/dist/services/redis-queue-adapter.js +90 -10
  61. package/dist/services/redis-queue-adapter.js.map +1 -1
  62. package/dist/services/worker-dispatcher.d.ts +14 -2
  63. package/dist/services/worker-dispatcher.d.ts.map +1 -1
  64. package/dist/services/worker-dispatcher.js +55 -2
  65. package/dist/services/worker-dispatcher.js.map +1 -1
  66. package/dist/types/api.d.ts +3 -0
  67. package/dist/types/api.d.ts.map +1 -1
  68. package/dist/types/api.js +1 -0
  69. package/dist/types/api.js.map +1 -1
  70. package/dist/types/index.d.ts +1 -1
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/index.js.map +1 -1
  73. package/dist/types/monitor.d.ts +72 -4
  74. package/dist/types/monitor.d.ts.map +1 -1
  75. package/dist/worker/base-merge.d.ts +54 -0
  76. package/dist/worker/base-merge.d.ts.map +1 -0
  77. package/dist/worker/base-merge.js +99 -0
  78. package/dist/worker/base-merge.js.map +1 -0
  79. package/dist/worker/clarification-markers.d.ts +29 -0
  80. package/dist/worker/clarification-markers.d.ts.map +1 -0
  81. package/dist/worker/clarification-markers.js +44 -0
  82. package/dist/worker/clarification-markers.js.map +1 -0
  83. package/dist/worker/clarification-poster.d.ts.map +1 -1
  84. package/dist/worker/clarification-poster.js +266 -25
  85. package/dist/worker/clarification-poster.js.map +1 -1
  86. package/dist/worker/claude-cli-worker.d.ts +21 -2
  87. package/dist/worker/claude-cli-worker.d.ts.map +1 -1
  88. package/dist/worker/claude-cli-worker.js +149 -4
  89. package/dist/worker/claude-cli-worker.js.map +1 -1
  90. package/dist/worker/cli-spawner.d.ts +4 -0
  91. package/dist/worker/cli-spawner.d.ts.map +1 -1
  92. package/dist/worker/cli-spawner.js +51 -7
  93. package/dist/worker/cli-spawner.js.map +1 -1
  94. package/dist/worker/config.d.ts +101 -9
  95. package/dist/worker/config.d.ts.map +1 -1
  96. package/dist/worker/config.js +75 -4
  97. package/dist/worker/config.js.map +1 -1
  98. package/dist/worker/evidence-hash.d.ts +32 -0
  99. package/dist/worker/evidence-hash.d.ts.map +1 -0
  100. package/dist/worker/evidence-hash.js +139 -0
  101. package/dist/worker/evidence-hash.js.map +1 -0
  102. package/dist/worker/handler-outcome-assertion.d.ts +38 -0
  103. package/dist/worker/handler-outcome-assertion.d.ts.map +1 -0
  104. package/dist/worker/handler-outcome-assertion.js +58 -0
  105. package/dist/worker/handler-outcome-assertion.js.map +1 -0
  106. package/dist/worker/handler-outcome.d.ts +50 -0
  107. package/dist/worker/handler-outcome.d.ts.map +1 -0
  108. package/dist/worker/handler-outcome.js +2 -0
  109. package/dist/worker/handler-outcome.js.map +1 -0
  110. package/dist/worker/label-manager.d.ts +58 -2
  111. package/dist/worker/label-manager.d.ts.map +1 -1
  112. package/dist/worker/label-manager.js +225 -27
  113. package/dist/worker/label-manager.js.map +1 -1
  114. package/dist/worker/merge-conflict-handler.d.ts +141 -0
  115. package/dist/worker/merge-conflict-handler.d.ts.map +1 -0
  116. package/dist/worker/merge-conflict-handler.js +642 -0
  117. package/dist/worker/merge-conflict-handler.js.map +1 -0
  118. package/dist/worker/merge-conflict-prompt.d.ts +35 -0
  119. package/dist/worker/merge-conflict-prompt.d.ts.map +1 -0
  120. package/dist/worker/merge-conflict-prompt.js +71 -0
  121. package/dist/worker/merge-conflict-prompt.js.map +1 -0
  122. package/dist/worker/merge-conflict-remedy.d.ts +42 -0
  123. package/dist/worker/merge-conflict-remedy.d.ts.map +1 -0
  124. package/dist/worker/merge-conflict-remedy.js +28 -0
  125. package/dist/worker/merge-conflict-remedy.js.map +1 -0
  126. package/dist/worker/output-tail-synthesis.d.ts +15 -0
  127. package/dist/worker/output-tail-synthesis.d.ts.map +1 -0
  128. package/dist/worker/output-tail-synthesis.js +25 -0
  129. package/dist/worker/output-tail-synthesis.js.map +1 -0
  130. package/dist/worker/output-tail.d.ts +13 -0
  131. package/dist/worker/output-tail.d.ts.map +1 -0
  132. package/dist/worker/output-tail.js +31 -0
  133. package/dist/worker/output-tail.js.map +1 -0
  134. package/dist/worker/pause-context.d.ts +30 -0
  135. package/dist/worker/pause-context.d.ts.map +1 -0
  136. package/dist/worker/pause-context.js +98 -0
  137. package/dist/worker/pause-context.js.map +1 -0
  138. package/dist/worker/phase-loop.d.ts +66 -0
  139. package/dist/worker/phase-loop.d.ts.map +1 -1
  140. package/dist/worker/phase-loop.js +299 -31
  141. package/dist/worker/phase-loop.js.map +1 -1
  142. package/dist/worker/pr-feedback-handler.d.ts +46 -46
  143. package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
  144. package/dist/worker/pr-feedback-handler.js +276 -105
  145. package/dist/worker/pr-feedback-handler.js.map +1 -1
  146. package/dist/worker/pr-manager.d.ts +5 -0
  147. package/dist/worker/pr-manager.d.ts.map +1 -1
  148. package/dist/worker/pr-manager.js +7 -0
  149. package/dist/worker/pr-manager.js.map +1 -1
  150. package/dist/worker/product-diff.d.ts +39 -0
  151. package/dist/worker/product-diff.d.ts.map +1 -0
  152. package/dist/worker/product-diff.js +43 -0
  153. package/dist/worker/product-diff.js.map +1 -0
  154. package/dist/worker/provisioning-failure.d.ts +14 -0
  155. package/dist/worker/provisioning-failure.d.ts.map +1 -0
  156. package/dist/worker/provisioning-failure.js +2 -0
  157. package/dist/worker/provisioning-failure.js.map +1 -0
  158. package/dist/worker/repo-checkout.d.ts +14 -0
  159. package/dist/worker/repo-checkout.d.ts.map +1 -1
  160. package/dist/worker/repo-checkout.js +19 -1
  161. package/dist/worker/repo-checkout.js.map +1 -1
  162. package/dist/worker/stage-comment-manager.d.ts +42 -1
  163. package/dist/worker/stage-comment-manager.d.ts.map +1 -1
  164. package/dist/worker/stage-comment-manager.js +205 -1
  165. package/dist/worker/stage-comment-manager.js.map +1 -1
  166. package/dist/worker/terminal-label-op-error.d.ts +23 -0
  167. package/dist/worker/terminal-label-op-error.d.ts.map +1 -0
  168. package/dist/worker/terminal-label-op-error.js +27 -0
  169. package/dist/worker/terminal-label-op-error.js.map +1 -0
  170. package/dist/worker/types.d.ts +161 -2
  171. package/dist/worker/types.d.ts.map +1 -1
  172. package/dist/worker/types.js +11 -0
  173. package/dist/worker/types.js.map +1 -1
  174. package/dist/worker/validate-fix-handler.d.ts +79 -0
  175. package/dist/worker/validate-fix-handler.d.ts.map +1 -0
  176. package/dist/worker/validate-fix-handler.js +320 -0
  177. package/dist/worker/validate-fix-handler.js.map +1 -0
  178. package/dist/worker/worker-result.d.ts +39 -0
  179. package/dist/worker/worker-result.d.ts.map +1 -0
  180. package/dist/worker/worker-result.js +10 -0
  181. package/dist/worker/worker-result.js.map +1 -0
  182. package/package.json +7 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-conflict-handler.js","sourceRoot":"","sources":["../../src/worker/merge-conflict-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * #898 T010 — Bounded conflict-resolution prompt builder.
3
+ *
4
+ * Pure function used by `MergeConflictHandler` to render the agent-CLI prompt
5
+ * before the single autonomous attempt (Q4 → D). Handler contracts:
6
+ * `contracts/handler-contract.md` §"Sibling-owned path constraint".
7
+ *
8
+ * Structure of the emitted prompt:
9
+ * 1. Task framing (what we're resolving, on which branch, against which base).
10
+ * 2. Conflicted-path listing.
11
+ * 3. Sibling-owned constraint paragraph (only when siblingOwnedPaths is non-empty)
12
+ * forbidding `git checkout --theirs` / `--ours` on those paths.
13
+ * 4. Success predicate — the merge must be conflict-free and committed.
14
+ */
15
+ export interface MergeConflictPromptInput {
16
+ /** Paths reported by `git diff --name-only --diff-filter=U`. */
17
+ conflictedPaths: string[];
18
+ /**
19
+ * Subset of `conflictedPaths` that also appear in an open PR targeting the
20
+ * same base branch in the same repo (FR-005 / Q3 → A). These paths require
21
+ * a merged resolution — the agent MUST NOT use `git checkout --theirs` or
22
+ * `--ours` on them.
23
+ */
24
+ siblingOwnedPaths: string[];
25
+ /** Base ref being merged (e.g., `origin/main`). */
26
+ baseRef: string;
27
+ /** Feature branch name (e.g., `898-found-during-cockpit-v1`). */
28
+ branch: string;
29
+ }
30
+ /**
31
+ * Build the structured merge-conflict-resolution prompt. Deterministic and
32
+ * pure — the same input always produces the same string. No git or gh calls.
33
+ */
34
+ export declare function buildMergeConflictPrompt(input: MergeConflictPromptInput): string;
35
+ //# sourceMappingURL=merge-conflict-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-conflict-prompt.d.ts","sourceRoot":"","sources":["../../src/worker/merge-conflict-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CA+DhF"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * #898 T010 — Bounded conflict-resolution prompt builder.
3
+ *
4
+ * Pure function used by `MergeConflictHandler` to render the agent-CLI prompt
5
+ * before the single autonomous attempt (Q4 → D). Handler contracts:
6
+ * `contracts/handler-contract.md` §"Sibling-owned path constraint".
7
+ *
8
+ * Structure of the emitted prompt:
9
+ * 1. Task framing (what we're resolving, on which branch, against which base).
10
+ * 2. Conflicted-path listing.
11
+ * 3. Sibling-owned constraint paragraph (only when siblingOwnedPaths is non-empty)
12
+ * forbidding `git checkout --theirs` / `--ours` on those paths.
13
+ * 4. Success predicate — the merge must be conflict-free and committed.
14
+ */
15
+ /**
16
+ * Build the structured merge-conflict-resolution prompt. Deterministic and
17
+ * pure — the same input always produces the same string. No git or gh calls.
18
+ */
19
+ export function buildMergeConflictPrompt(input) {
20
+ const { conflictedPaths, siblingOwnedPaths, baseRef, branch } = input;
21
+ const lines = [];
22
+ lines.push(`# Task: resolve merge conflicts on branch \`${branch}\` (base: \`${baseRef}\`)`);
23
+ lines.push('');
24
+ lines.push('A `git merge ' + baseRef + '` on the feature branch produced conflicts. ' +
25
+ 'The merge is in progress (`.git/MERGE_HEAD` is present). Your task is to ' +
26
+ 'resolve the conflicts, stage the resolved files, and commit the merge.');
27
+ lines.push('');
28
+ lines.push('## Conflicted paths');
29
+ lines.push('');
30
+ if (conflictedPaths.length === 0) {
31
+ lines.push('(none reported — this should not happen; investigate git state)');
32
+ }
33
+ else {
34
+ for (const path of conflictedPaths) {
35
+ const sibling = siblingOwnedPaths.includes(path);
36
+ lines.push(`- \`${path}\`${sibling ? ' **[sibling-owned]**' : ''}`);
37
+ }
38
+ }
39
+ lines.push('');
40
+ if (siblingOwnedPaths.length > 0) {
41
+ lines.push('## Sibling-owned paths (FR-005)');
42
+ lines.push('');
43
+ lines.push('The paths tagged `[sibling-owned]` above are ALSO owned by open pull ' +
44
+ 'requests targeting the same base branch (`' + baseRef + '`) in this ' +
45
+ 'repository. On these paths, you MUST produce a **merged resolution** ' +
46
+ 'that preserves both sides\' semantics.');
47
+ lines.push('');
48
+ lines.push('- Do **NOT** run `git checkout --theirs <path>` on a sibling-owned path.');
49
+ lines.push('- Do **NOT** run `git checkout --ours <path>` on a sibling-owned path.');
50
+ lines.push('- Do **NOT** discard either side\'s changes wholesale.');
51
+ lines.push('');
52
+ lines.push('Edit the file by hand, resolve every conflict marker (`<<<<<<<`, ' +
53
+ '`=======`, `>>>>>>>`), and preserve the intent of both branches. The ' +
54
+ 'sibling PR will merge separately; your merge must not silently drop ' +
55
+ 'its work.');
56
+ lines.push('');
57
+ }
58
+ lines.push('## Success criteria');
59
+ lines.push('');
60
+ lines.push('When you are finished:');
61
+ lines.push('');
62
+ lines.push('1. No conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`) remain in any file.');
63
+ lines.push('2. `git diff --name-only --diff-filter=U` reports no unmerged paths.');
64
+ lines.push('3. `.git/MERGE_HEAD` no longer exists (the merge commit has been created).');
65
+ lines.push('4. `git status` reports a clean working tree on branch `' + branch + '`.');
66
+ lines.push('');
67
+ lines.push('Commit the merge with `git commit` (no `--amend`, no `--no-verify`). Do not ' +
68
+ 'push — the caller will push after verifying the merge state.');
69
+ return lines.join('\n');
70
+ }
71
+ //# sourceMappingURL=merge-conflict-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-conflict-prompt.js","sourceRoot":"","sources":["../../src/worker/merge-conflict-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkBH;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAA+B;IACtE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,+CAA+C,MAAM,eAAe,OAAO,KAAK,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,eAAe,GAAG,OAAO,GAAG,8CAA8C;QACxE,2EAA2E;QAC3E,wEAAwE,CAC3E,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,uEAAuE;YACrE,4CAA4C,GAAG,OAAO,GAAG,aAAa;YACtE,uEAAuE;YACvE,wCAAwC,CAC3C,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,mEAAmE;YACjE,uEAAuE;YACvE,sEAAsE;YACtE,WAAW,CACd,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,0DAA0D,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,8EAA8E;QAC5E,8DAA8D,CACjE,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Ship 1 template constant for the self-describing merge-conflicts pause
3
+ * remedy (#898 FR-011 / FR-012 / FR-014).
4
+ *
5
+ * When #864's pre-phase base-merge detects a conflict and pauses the workflow,
6
+ * the stage comment on the issue must render the three-step manual remedy
7
+ * verbatim, listing the conflicted paths and warning that advancing without
8
+ * resolving will re-pause.
9
+ *
10
+ * The template uses `<branch>`, `<base>`, and `<owner>/<repo>#<issue>`
11
+ * placeholders. `phase-loop.ts` substitutes these at build time before passing
12
+ * the payload to `stageCommentManager.updateStageComment`, keeping the
13
+ * renderer content-agnostic.
14
+ *
15
+ * Ship 1 remains permanently load-bearing after Ship 2's handler lands: when
16
+ * the handler's one autonomous attempt fails with
17
+ * `blocked:stuck-merge-conflicts`, the operator escalation path is exactly
18
+ * this remedy text.
19
+ */
20
+ /**
21
+ * Literal-string-typed template for the manual-remedy payload. The literal
22
+ * string types make the constant test-provable (see
23
+ * `__tests__/merge-conflict-remedy.test.ts`).
24
+ */
25
+ export interface MergeConflictRemedy {
26
+ /**
27
+ * Verbatim three-step remedy per FR-011. Ordered.
28
+ * The stage-comment renderer prints each as a numbered list item.
29
+ */
30
+ steps: [
31
+ 'Check out `<branch>`, merge `origin/<base>`, resolve conflicts, commit, push.',
32
+ 'Run `generacy cockpit advance <issue-ref> --gate merge-conflicts`.',
33
+ 'Phase re-runs; pre-merge now succeeds; phase proceeds.'
34
+ ];
35
+ /**
36
+ * Callout warning per FR-011 last line.
37
+ * The renderer prints this as a bold callout under the numbered list.
38
+ */
39
+ warning: 'Advancing without resolving first will re-pause with the same conflict.';
40
+ }
41
+ export declare const MERGE_CONFLICT_REMEDY: MergeConflictRemedy;
42
+ //# sourceMappingURL=merge-conflict-remedy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-conflict-remedy.d.ts","sourceRoot":"","sources":["../../src/worker/merge-conflict-remedy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,KAAK,EAAE;QACL,+EAA+E;QAC/E,oEAAoE;QACpE,wDAAwD;KACzD,CAAC;IACF;;;OAGG;IACH,OAAO,EAAE,yEAAyE,CAAC;CACpF;AAED,eAAO,MAAM,qBAAqB,EAAE,mBAOnC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Ship 1 template constant for the self-describing merge-conflicts pause
3
+ * remedy (#898 FR-011 / FR-012 / FR-014).
4
+ *
5
+ * When #864's pre-phase base-merge detects a conflict and pauses the workflow,
6
+ * the stage comment on the issue must render the three-step manual remedy
7
+ * verbatim, listing the conflicted paths and warning that advancing without
8
+ * resolving will re-pause.
9
+ *
10
+ * The template uses `<branch>`, `<base>`, and `<owner>/<repo>#<issue>`
11
+ * placeholders. `phase-loop.ts` substitutes these at build time before passing
12
+ * the payload to `stageCommentManager.updateStageComment`, keeping the
13
+ * renderer content-agnostic.
14
+ *
15
+ * Ship 1 remains permanently load-bearing after Ship 2's handler lands: when
16
+ * the handler's one autonomous attempt fails with
17
+ * `blocked:stuck-merge-conflicts`, the operator escalation path is exactly
18
+ * this remedy text.
19
+ */
20
+ export const MERGE_CONFLICT_REMEDY = {
21
+ steps: [
22
+ 'Check out `<branch>`, merge `origin/<base>`, resolve conflicts, commit, push.',
23
+ 'Run `generacy cockpit advance <issue-ref> --gate merge-conflicts`.',
24
+ 'Phase re-runs; pre-merge now succeeds; phase proceeds.',
25
+ ],
26
+ warning: 'Advancing without resolving first will re-pause with the same conflict.',
27
+ };
28
+ //# sourceMappingURL=merge-conflict-remedy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-conflict-remedy.js","sourceRoot":"","sources":["../../src/worker/merge-conflict-remedy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAwBH,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,KAAK,EAAE;QACL,+EAA+E;QAC/E,oEAAoE;QACpE,wDAAwD;KACzD;IACD,OAAO,EAAE,yEAAyE;CACnF,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { OutputChunk } from './types.js';
2
+ /**
3
+ * Synthesize a bounded output tail for a CLI phase's PhaseResult from its
4
+ * parsed OutputChunk[] transcript.
5
+ *
6
+ * Joins the `data.text` string of every chunk with `type === 'text'` in stored
7
+ * order (Claude CLI emits these in write order via `processChunk`), separated
8
+ * by newlines, then feeds through `boundOutputTail` for the 4 KiB cap.
9
+ *
10
+ * Non-text chunks (`init`, `tool_use`, `tool_result`, `complete`, `error`) are
11
+ * skipped — their content is either structural or already-summarized event JSON,
12
+ * which would clutter the tail without adding diagnostic value.
13
+ */
14
+ export declare function synthesizeOutputTail(chunks: OutputChunk[]): string;
15
+ //# sourceMappingURL=output-tail-synthesis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-tail-synthesis.d.ts","sourceRoot":"","sources":["../../src/worker/output-tail-synthesis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAQlE"}
@@ -0,0 +1,25 @@
1
+ import { boundOutputTail } from './output-tail.js';
2
+ /**
3
+ * Synthesize a bounded output tail for a CLI phase's PhaseResult from its
4
+ * parsed OutputChunk[] transcript.
5
+ *
6
+ * Joins the `data.text` string of every chunk with `type === 'text'` in stored
7
+ * order (Claude CLI emits these in write order via `processChunk`), separated
8
+ * by newlines, then feeds through `boundOutputTail` for the 4 KiB cap.
9
+ *
10
+ * Non-text chunks (`init`, `tool_use`, `tool_result`, `complete`, `error`) are
11
+ * skipped — their content is either structural or already-summarized event JSON,
12
+ * which would clutter the tail without adding diagnostic value.
13
+ */
14
+ export function synthesizeOutputTail(chunks) {
15
+ const texts = [];
16
+ for (const chunk of chunks) {
17
+ if (chunk.type !== 'text')
18
+ continue;
19
+ const data = chunk.data;
20
+ if (data && typeof data.text === 'string')
21
+ texts.push(data.text);
22
+ }
23
+ return boundOutputTail(texts.join('\n'));
24
+ }
25
+ //# sourceMappingURL=output-tail-synthesis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-tail-synthesis.js","sourceRoot":"","sources":["../../src/worker/output-tail-synthesis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAA6C,CAAC;QACjE,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Bound a raw merged stdout+stderr string into a compact tail suitable for a GitHub comment.
3
+ *
4
+ * Contract (see specs/890-found-during-cockpit-v1/data-model.md):
5
+ * - Empty input → literal `(no output on either stream)`.
6
+ * - Non-empty ≤ 4096 bytes after taking the last 30 lines → returned unchanged.
7
+ * - Non-empty > 4096 bytes → truncate-from-start of the last-30-lines slice to
8
+ * 4096 bytes; prepend `… truncated (kept last <N> lines / 4096 bytes) …\n`
9
+ * where `<N>` is the line count of the returned (post-cap) slice.
10
+ * - Holds ≤ ~4200 bytes for any input up to 100 MB.
11
+ */
12
+ export declare function boundOutputTail(raw: string): string;
13
+ //# sourceMappingURL=output-tail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-tail.d.ts","sourceRoot":"","sources":["../../src/worker/output-tail.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBnD"}
@@ -0,0 +1,31 @@
1
+ import { Buffer } from 'node:buffer';
2
+ const MAX_BYTES = 4096;
3
+ const LAST_N_LINES = 30;
4
+ const EMPTY_LITERAL = '(no output on either stream)';
5
+ /**
6
+ * Bound a raw merged stdout+stderr string into a compact tail suitable for a GitHub comment.
7
+ *
8
+ * Contract (see specs/890-found-during-cockpit-v1/data-model.md):
9
+ * - Empty input → literal `(no output on either stream)`.
10
+ * - Non-empty ≤ 4096 bytes after taking the last 30 lines → returned unchanged.
11
+ * - Non-empty > 4096 bytes → truncate-from-start of the last-30-lines slice to
12
+ * 4096 bytes; prepend `… truncated (kept last <N> lines / 4096 bytes) …\n`
13
+ * where `<N>` is the line count of the returned (post-cap) slice.
14
+ * - Holds ≤ ~4200 bytes for any input up to 100 MB.
15
+ */
16
+ export function boundOutputTail(raw) {
17
+ if (raw.length === 0)
18
+ return EMPTY_LITERAL;
19
+ const lines = raw.split('\n');
20
+ const last30 = lines.slice(-LAST_N_LINES).join('\n');
21
+ if (Buffer.byteLength(last30, 'utf8') <= MAX_BYTES) {
22
+ return last30;
23
+ }
24
+ const buf = Buffer.from(last30, 'utf8');
25
+ const trimmedBuf = buf.subarray(buf.length - MAX_BYTES);
26
+ const trimmed = trimmedBuf.toString('utf8');
27
+ const keptLines = trimmed.split('\n').length;
28
+ const marker = `… truncated (kept last ${keptLines} lines / ${MAX_BYTES} bytes) …`;
29
+ return `${marker}\n${trimmed}`;
30
+ }
31
+ //# sourceMappingURL=output-tail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-tail.js","sourceRoot":"","sources":["../../src/worker/output-tail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,aAAa,GAAG,8BAA8B,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAE3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,0BAA0B,SAAS,YAAY,SAAS,WAAW,CAAC;IACnF,OAAO,GAAG,MAAM,KAAK,OAAO,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ export declare const PauseContextSchema: z.ZodObject<{
3
+ phase: z.ZodEnum<["specify", "clarify", "plan", "tasks", "implement", "validate"]>;
4
+ writtenAt: z.ZodString;
5
+ issueRef: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
8
+ writtenAt: string;
9
+ issueRef: string;
10
+ }, {
11
+ phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
12
+ writtenAt: string;
13
+ issueRef: string;
14
+ }>;
15
+ export type PauseContext = z.infer<typeof PauseContextSchema>;
16
+ /**
17
+ * Write pause-context sidecar atomically (temp file + rename).
18
+ * Overwrites any existing file unconditionally — writes are idempotent.
19
+ */
20
+ export declare function writePauseContext(workdir: string, workflowId: string, ctx: PauseContext): Promise<void>;
21
+ /**
22
+ * Read pause-context sidecar. Returns `null` if missing, unreadable, invalid
23
+ * JSON, or schema-invalid — the caller treats absence as fail-loud path.
24
+ */
25
+ export declare function readPauseContext(workdir: string, workflowId: string): Promise<PauseContext | null>;
26
+ /**
27
+ * Delete pause-context sidecar. Idempotent — swallows ENOENT.
28
+ */
29
+ export declare function clearPauseContext(workdir: string, workflowId: string): Promise<void>;
30
+ //# sourceMappingURL=pause-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pause-context.d.ts","sourceRoot":"","sources":["../../src/worker/pause-context.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAe9D;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAsB9B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Pause-context sidecar (#902 Decision 2, FR-003).
3
+ *
4
+ * Small filesystem sidecar at
5
+ * `<workdir>/.generacy/pause-context-<sanitized-workflowId>.json` that carries
6
+ * the interrupted phase in-band from the phase-loop pause site to the
7
+ * MergeConflictHandler at dispatch time.
8
+ *
9
+ * Writer: `runPrePhaseBaseMerge` in `phase-loop.ts`, **before**
10
+ * `labelManager.onGateHit()`. If the write throws, the pause label is never
11
+ * applied, so the pause simply doesn't materialize — no dead-park class.
12
+ *
13
+ * Reader: `ClaudeCliWorker.handle` `case 'resolve-merge-conflicts'`, after
14
+ * checkout completes. Populates `item.metadata.phase`. Absence → handler's
15
+ * fail-loud path (FR-004) fires — never re-derived from labels.
16
+ *
17
+ * Layout mirrors `FilesystemWorkflowStore.getStateFilePath` sanitization
18
+ * (`[^a-zA-Z0-9_-]` → `_`).
19
+ */
20
+ import { promises as fs } from 'node:fs';
21
+ import path from 'node:path';
22
+ import { z } from 'zod';
23
+ const DEFAULT_STATE_DIR = '.generacy';
24
+ const PAUSE_CONTEXT_FILE_PREFIX = 'pause-context-';
25
+ const PAUSE_CONTEXT_FILE_EXT = '.json';
26
+ const WorkflowPhaseSchema = z.enum([
27
+ 'specify',
28
+ 'clarify',
29
+ 'plan',
30
+ 'tasks',
31
+ 'implement',
32
+ 'validate',
33
+ ]);
34
+ export const PauseContextSchema = z.object({
35
+ phase: WorkflowPhaseSchema,
36
+ writtenAt: z.string(),
37
+ issueRef: z.string(),
38
+ });
39
+ function sanitizeWorkflowId(workflowId) {
40
+ return workflowId.replace(/[^a-zA-Z0-9_-]/g, '_');
41
+ }
42
+ function getPauseContextPath(workdir, workflowId) {
43
+ const safeId = sanitizeWorkflowId(workflowId);
44
+ return path.join(workdir, DEFAULT_STATE_DIR, `${PAUSE_CONTEXT_FILE_PREFIX}${safeId}${PAUSE_CONTEXT_FILE_EXT}`);
45
+ }
46
+ /**
47
+ * Write pause-context sidecar atomically (temp file + rename).
48
+ * Overwrites any existing file unconditionally — writes are idempotent.
49
+ */
50
+ export async function writePauseContext(workdir, workflowId, ctx) {
51
+ const filePath = getPauseContextPath(workdir, workflowId);
52
+ const dirPath = path.dirname(filePath);
53
+ await fs.mkdir(dirPath, { recursive: true });
54
+ const tempPath = `${filePath}.tmp`;
55
+ await fs.writeFile(tempPath, JSON.stringify(ctx, null, 2), 'utf-8');
56
+ await fs.rename(tempPath, filePath);
57
+ }
58
+ /**
59
+ * Read pause-context sidecar. Returns `null` if missing, unreadable, invalid
60
+ * JSON, or schema-invalid — the caller treats absence as fail-loud path.
61
+ */
62
+ export async function readPauseContext(workdir, workflowId) {
63
+ const filePath = getPauseContextPath(workdir, workflowId);
64
+ let content;
65
+ try {
66
+ content = await fs.readFile(filePath, 'utf-8');
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ let raw;
72
+ try {
73
+ raw = JSON.parse(content);
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ const parsed = PauseContextSchema.safeParse(raw);
79
+ if (!parsed.success) {
80
+ return null;
81
+ }
82
+ return parsed.data;
83
+ }
84
+ /**
85
+ * Delete pause-context sidecar. Idempotent — swallows ENOENT.
86
+ */
87
+ export async function clearPauseContext(workdir, workflowId) {
88
+ const filePath = getPauseContextPath(workdir, workflowId);
89
+ try {
90
+ await fs.unlink(filePath);
91
+ }
92
+ catch (err) {
93
+ if (err.code !== 'ENOENT') {
94
+ throw err;
95
+ }
96
+ }
97
+ }
98
+ //# sourceMappingURL=pause-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pause-context.js","sourceRoot":"","sources":["../../src/worker/pause-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,iBAAiB,GAAG,WAAW,CAAC;AACtC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AACnD,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAEvC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,SAAS;IACT,SAAS;IACT,MAAM;IACN,OAAO;IACP,WAAW;IACX,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,OAAO,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,UAAkB;IAC9D,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,EACP,iBAAiB,EACjB,GAAG,yBAAyB,GAAG,MAAM,GAAG,sBAAsB,EAAE,CACjE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,UAAkB,EAClB,GAAiB;IAEjB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,GAAG,QAAQ,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,UAAkB;IAElB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE1D,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,UAAkB;IAElB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { WorkerContext, PhaseResult, Logger, WorkflowPhase, JobEventEmitter, PhaseAfterHandler } from './types.js';
2
+ import { type TerminalLabelOpSite } from './terminal-label-op-error.js';
2
3
  import type { WorkerConfig } from './config.js';
3
4
  import type { LabelManager } from './label-manager.js';
4
5
  import type { StageCommentManager } from './stage-comment-manager.js';
@@ -6,7 +7,9 @@ import type { GateChecker } from './gate-checker.js';
6
7
  import type { CliSpawner } from './cli-spawner.js';
7
8
  import type { OutputCapture } from './output-capture.js';
8
9
  import type { PrManager } from './pr-manager.js';
10
+ import type { ValidateFixHandler } from './validate-fix-handler.js';
9
11
  import type { ConversationLogger } from './conversation-logger.js';
12
+ import { type BaseMergeRunner } from './base-merge.js';
10
13
  /**
11
14
  * Dependencies injected into the PhaseLoop.
12
15
  */
@@ -22,7 +25,29 @@ export interface PhaseLoopDeps {
22
25
  jobEventEmitter?: JobEventEmitter;
23
26
  /** Optional callbacks invoked after each phase completes, before gate check */
24
27
  phaseAfterHandlers?: PhaseAfterHandler[];
28
+ /**
29
+ * Injected base-merge runner used by the pre-phase base-merge hook (#864).
30
+ * Defaults to `performBaseMerge` from `./base-merge.js`. Tests inject a fake
31
+ * that returns canned `BaseMergeResult` values without exercising real git.
32
+ */
33
+ baseMergeRunner?: BaseMergeRunner;
34
+ /**
35
+ * Bounded validate-fix cycle handler (#892). Invoked on the validate failure
36
+ * path ONLY when `context.resumeReason === 'base-advance'` — first-time reds
37
+ * continue to route through `LabelManager.onError('validate')` (D7).
38
+ */
39
+ validateFixHandler?: ValidateFixHandler;
25
40
  }
41
+ /**
42
+ * Discriminator for `PhaseLoopResult` (#889 additive extension).
43
+ *
44
+ * - `'completed'`: legacy shape (`completed: true`).
45
+ * - `'gate-hit'`: legacy shape (`gateHit: true`).
46
+ * - `'phase-failed'`: legacy shape (a phase produced `!result.success`).
47
+ * - `'failed-terminal'`: NEW in #889 — a `LabelManager` retry exhausted and
48
+ * raised `TerminalLabelOpError`. `failureMetadata` carries the alert payload.
49
+ */
50
+ export type PhaseLoopStatus = 'completed' | 'gate-hit' | 'phase-failed' | 'failed-terminal';
26
51
  /**
27
52
  * Result of a complete phase loop execution.
28
53
  */
@@ -35,6 +60,20 @@ export interface PhaseLoopResult {
35
60
  lastPhase: string;
36
61
  /** Whether the loop was stopped by a gate */
37
62
  gateHit: boolean;
63
+ /**
64
+ * #889 additive discriminator. Backwards-compatible with existing readers
65
+ * of `completed` / `gateHit` / `lastPhase`.
66
+ */
67
+ status?: PhaseLoopStatus;
68
+ /**
69
+ * Only populated when `status === 'failed-terminal'` (#889). Copied from the
70
+ * thrown `TerminalLabelOpError` and forwarded to the dispatcher.
71
+ */
72
+ failureMetadata?: {
73
+ site: TerminalLabelOpSite;
74
+ labelOp: string;
75
+ ghStderr: string;
76
+ };
38
77
  }
39
78
  /**
40
79
  * Iterates through workflow phases from the starting phase to completion.
@@ -62,6 +101,33 @@ export declare class PhaseLoop {
62
101
  * Defaults to the global PHASE_SEQUENCE for backward compatibility.
63
102
  */
64
103
  executeLoop(context: WorkerContext, config: WorkerConfig, deps: PhaseLoopDeps, phaseSequence?: WorkflowPhase[]): Promise<PhaseLoopResult>;
104
+ private executeLoopInner;
105
+ /**
106
+ * Run the pre-implement base-merge (#864, committed). On conflict, pause the
107
+ * workflow via `waiting-for:merge-conflicts` and return the pause result;
108
+ * on clean merge, return `undefined` so the caller proceeds with phase execution.
109
+ */
110
+ private runPreImplementBaseMerge;
111
+ /**
112
+ * Run the pre-validate/validate base-merge (#864, ephemeral). Symmetric with
113
+ * `runPreImplementBaseMerge` but `opts.commit === false` — the merge is left
114
+ * as an un-committed merge in the workspace and MUST be discarded by the next
115
+ * phase's reset-at-start (FR-006).
116
+ */
117
+ private runPreValidateBaseMerge;
118
+ /**
119
+ * Shared pre-phase base-merge implementation. Resolves the base ref, invokes
120
+ * the runner, and (on conflict) pauses with `waiting-for:merge-conflicts` +
121
+ * `errorEvidence.mergeConflict`. Reuses the existing gate-return path so
122
+ * #849's paired resume-dedupe clear applies symmetrically.
123
+ */
124
+ private runPrePhaseBaseMerge;
125
+ /**
126
+ * Build the `errorEvidence` payload rendered inside the stage comment on
127
+ * `status: 'error'` transitions. See specs/847-found-during-cockpit-v1/
128
+ * contracts/failure-evidence-block.md for the derivation rules.
129
+ */
130
+ private buildErrorEvidence;
65
131
  /**
66
132
  * Build a phase progress array for stage comment updates.
67
133
  *
@@ -1 +1 @@
1
- {"version":3,"file":"phase-loop.d.ts","sourceRoot":"","sources":["../../src/worker/phase-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAQnE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;;;;OAKG;IACG,WAAW,CACf,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,aAAa,EACnB,aAAa,CAAC,EAAE,aAAa,EAAE,GAC9B,OAAO,CAAC,eAAe,CAAC;IAud3B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA0B3B"}
1
+ {"version":3,"file":"phase-loop.d.ts","sourceRoot":"","sources":["../../src/worker/phase-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAkC,MAAM,YAAY,CAAC;AAExJ,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAOnE,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQ5F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;;;;OAKG;IACG,WAAW,CACf,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,aAAa,EACnB,aAAa,CAAC,EAAE,aAAa,EAAE,GAC9B,OAAO,CAAC,eAAe,CAAC;YAiCb,gBAAgB;IAkpB9B;;;;OAIG;YACW,wBAAwB;IAyBtC;;;;;OAKG;YACW,uBAAuB;IAyBrC;;;;;OAKG;YACW,oBAAoB;IAoHlC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA0B3B"}