@generacy-ai/orchestrator 0.6.0 → 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.
- package/dist/config/schema.d.ts +7 -7
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +5 -0
- package/dist/routes/health.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +130 -26
- package/dist/server.js.map +1 -1
- package/dist/services/base-advance-monitor-service.d.ts +78 -0
- package/dist/services/base-advance-monitor-service.d.ts.map +1 -0
- package/dist/services/base-advance-monitor-service.js +233 -0
- package/dist/services/base-advance-monitor-service.js.map +1 -0
- package/dist/services/boot-resume-service.d.ts +19 -0
- package/dist/services/boot-resume-service.d.ts.map +1 -0
- package/dist/services/boot-resume-service.js +87 -0
- package/dist/services/boot-resume-service.js.map +1 -0
- package/dist/services/epic-completion-monitor-service.d.ts.map +1 -1
- package/dist/services/epic-completion-monitor-service.js +2 -0
- package/dist/services/epic-completion-monitor-service.js.map +1 -1
- package/dist/services/in-memory-queue-adapter.d.ts +4 -0
- package/dist/services/in-memory-queue-adapter.d.ts.map +1 -1
- package/dist/services/in-memory-queue-adapter.js +30 -3
- package/dist/services/in-memory-queue-adapter.js.map +1 -1
- package/dist/services/label-monitor-service.d.ts +3 -3
- package/dist/services/label-monitor-service.d.ts.map +1 -1
- package/dist/services/label-monitor-service.js +58 -41
- package/dist/services/label-monitor-service.js.map +1 -1
- package/dist/services/label-sync-service.d.ts.map +1 -1
- package/dist/services/label-sync-service.js +45 -10
- package/dist/services/label-sync-service.js.map +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts +73 -0
- package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -0
- package/dist/services/merge-conflict-monitor-service.js +295 -0
- package/dist/services/merge-conflict-monitor-service.js.map +1 -0
- package/dist/services/orchestrator-version.d.ts +2 -0
- package/dist/services/orchestrator-version.d.ts.map +1 -0
- package/dist/services/orchestrator-version.js +23 -0
- package/dist/services/orchestrator-version.js.map +1 -0
- package/dist/services/phase-tracker-service.d.ts +10 -0
- package/dist/services/phase-tracker-service.d.ts.map +1 -1
- package/dist/services/phase-tracker-service.js +38 -0
- package/dist/services/phase-tracker-service.js.map +1 -1
- package/dist/services/post-activation-dispatch.d.ts +18 -0
- package/dist/services/post-activation-dispatch.d.ts.map +1 -0
- package/dist/services/post-activation-dispatch.js +30 -0
- package/dist/services/post-activation-dispatch.js.map +1 -0
- package/dist/services/pr-feedback-monitor-service.d.ts +13 -4
- package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
- package/dist/services/pr-feedback-monitor-service.js +212 -26
- package/dist/services/pr-feedback-monitor-service.js.map +1 -1
- package/dist/services/redis-queue-adapter.d.ts +4 -0
- package/dist/services/redis-queue-adapter.d.ts.map +1 -1
- package/dist/services/redis-queue-adapter.js +90 -10
- package/dist/services/redis-queue-adapter.js.map +1 -1
- package/dist/services/worker-dispatcher.d.ts +14 -2
- package/dist/services/worker-dispatcher.d.ts.map +1 -1
- package/dist/services/worker-dispatcher.js +55 -2
- package/dist/services/worker-dispatcher.js.map +1 -1
- package/dist/types/api.d.ts +3 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +1 -0
- package/dist/types/api.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/monitor.d.ts +72 -4
- package/dist/types/monitor.d.ts.map +1 -1
- package/dist/worker/base-merge.d.ts +54 -0
- package/dist/worker/base-merge.d.ts.map +1 -0
- package/dist/worker/base-merge.js +99 -0
- package/dist/worker/base-merge.js.map +1 -0
- package/dist/worker/clarification-markers.d.ts +29 -0
- package/dist/worker/clarification-markers.d.ts.map +1 -0
- package/dist/worker/clarification-markers.js +44 -0
- package/dist/worker/clarification-markers.js.map +1 -0
- package/dist/worker/clarification-poster.d.ts.map +1 -1
- package/dist/worker/clarification-poster.js +266 -25
- package/dist/worker/clarification-poster.js.map +1 -1
- package/dist/worker/claude-cli-worker.d.ts +21 -2
- package/dist/worker/claude-cli-worker.d.ts.map +1 -1
- package/dist/worker/claude-cli-worker.js +149 -4
- package/dist/worker/claude-cli-worker.js.map +1 -1
- package/dist/worker/cli-spawner.d.ts +4 -0
- package/dist/worker/cli-spawner.d.ts.map +1 -1
- package/dist/worker/cli-spawner.js +51 -7
- package/dist/worker/cli-spawner.js.map +1 -1
- package/dist/worker/config.d.ts +24 -8
- package/dist/worker/config.d.ts.map +1 -1
- package/dist/worker/config.js +37 -2
- package/dist/worker/config.js.map +1 -1
- package/dist/worker/evidence-hash.d.ts +32 -0
- package/dist/worker/evidence-hash.d.ts.map +1 -0
- package/dist/worker/evidence-hash.js +139 -0
- package/dist/worker/evidence-hash.js.map +1 -0
- package/dist/worker/handler-outcome-assertion.d.ts +38 -0
- package/dist/worker/handler-outcome-assertion.d.ts.map +1 -0
- package/dist/worker/handler-outcome-assertion.js +58 -0
- package/dist/worker/handler-outcome-assertion.js.map +1 -0
- package/dist/worker/handler-outcome.d.ts +50 -0
- package/dist/worker/handler-outcome.d.ts.map +1 -0
- package/dist/worker/handler-outcome.js +2 -0
- package/dist/worker/handler-outcome.js.map +1 -0
- package/dist/worker/label-manager.d.ts +58 -2
- package/dist/worker/label-manager.d.ts.map +1 -1
- package/dist/worker/label-manager.js +225 -27
- package/dist/worker/label-manager.js.map +1 -1
- package/dist/worker/merge-conflict-handler.d.ts +141 -0
- package/dist/worker/merge-conflict-handler.d.ts.map +1 -0
- package/dist/worker/merge-conflict-handler.js +642 -0
- package/dist/worker/merge-conflict-handler.js.map +1 -0
- package/dist/worker/merge-conflict-prompt.d.ts +35 -0
- package/dist/worker/merge-conflict-prompt.d.ts.map +1 -0
- package/dist/worker/merge-conflict-prompt.js +71 -0
- package/dist/worker/merge-conflict-prompt.js.map +1 -0
- package/dist/worker/merge-conflict-remedy.d.ts +42 -0
- package/dist/worker/merge-conflict-remedy.d.ts.map +1 -0
- package/dist/worker/merge-conflict-remedy.js +28 -0
- package/dist/worker/merge-conflict-remedy.js.map +1 -0
- package/dist/worker/output-tail-synthesis.d.ts +15 -0
- package/dist/worker/output-tail-synthesis.d.ts.map +1 -0
- package/dist/worker/output-tail-synthesis.js +25 -0
- package/dist/worker/output-tail-synthesis.js.map +1 -0
- package/dist/worker/output-tail.d.ts +13 -0
- package/dist/worker/output-tail.d.ts.map +1 -0
- package/dist/worker/output-tail.js +31 -0
- package/dist/worker/output-tail.js.map +1 -0
- package/dist/worker/pause-context.d.ts +30 -0
- package/dist/worker/pause-context.d.ts.map +1 -0
- package/dist/worker/pause-context.js +98 -0
- package/dist/worker/pause-context.js.map +1 -0
- package/dist/worker/phase-loop.d.ts +66 -0
- package/dist/worker/phase-loop.d.ts.map +1 -1
- package/dist/worker/phase-loop.js +295 -29
- package/dist/worker/phase-loop.js.map +1 -1
- package/dist/worker/pr-feedback-handler.d.ts +46 -46
- package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
- package/dist/worker/pr-feedback-handler.js +276 -105
- package/dist/worker/pr-feedback-handler.js.map +1 -1
- package/dist/worker/pr-manager.d.ts +5 -0
- package/dist/worker/pr-manager.d.ts.map +1 -1
- package/dist/worker/pr-manager.js +7 -0
- package/dist/worker/pr-manager.js.map +1 -1
- package/dist/worker/product-diff.d.ts +39 -0
- package/dist/worker/product-diff.d.ts.map +1 -0
- package/dist/worker/product-diff.js +43 -0
- package/dist/worker/product-diff.js.map +1 -0
- package/dist/worker/provisioning-failure.d.ts +14 -0
- package/dist/worker/provisioning-failure.d.ts.map +1 -0
- package/dist/worker/provisioning-failure.js +2 -0
- package/dist/worker/provisioning-failure.js.map +1 -0
- package/dist/worker/repo-checkout.d.ts +14 -0
- package/dist/worker/repo-checkout.d.ts.map +1 -1
- package/dist/worker/repo-checkout.js +19 -1
- package/dist/worker/repo-checkout.js.map +1 -1
- package/dist/worker/stage-comment-manager.d.ts +42 -1
- package/dist/worker/stage-comment-manager.d.ts.map +1 -1
- package/dist/worker/stage-comment-manager.js +205 -1
- package/dist/worker/stage-comment-manager.js.map +1 -1
- package/dist/worker/terminal-label-op-error.d.ts +23 -0
- package/dist/worker/terminal-label-op-error.d.ts.map +1 -0
- package/dist/worker/terminal-label-op-error.js +27 -0
- package/dist/worker/terminal-label-op-error.js.map +1 -0
- package/dist/worker/types.d.ts +161 -2
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/types.js +11 -0
- package/dist/worker/types.js.map +1 -1
- package/dist/worker/validate-fix-handler.d.ts +79 -0
- package/dist/worker/validate-fix-handler.d.ts.map +1 -0
- package/dist/worker/validate-fix-handler.js +320 -0
- package/dist/worker/validate-fix-handler.js.map +1 -0
- package/dist/worker/worker-result.d.ts +39 -0
- package/dist/worker/worker-result.d.ts.map +1 -0
- package/dist/worker/worker-result.js +10 -0
- package/dist/worker/worker-result.js.map +1 -0
- package/package.json +6 -5
|
@@ -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":"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"}
|
|
@@ -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,
|
|
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"}
|