pipeline-worker 0.1.26 → 0.1.28
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/README.md +6 -2
- package/dist/agent/claude.js +32 -1
- package/dist/agent/claude.js.map +1 -1
- package/dist/agent/types.d.ts +18 -0
- package/dist/cli.js +30 -4
- package/dist/cli.js.map +1 -1
- package/dist/config/loader.js +25 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/forge/github.js +7 -0
- package/dist/forge/github.js.map +1 -1
- package/dist/forge/gitlab.js +7 -0
- package/dist/forge/gitlab.js.map +1 -1
- package/dist/forge/types.d.ts +9 -0
- package/dist/state/runState.d.ts +10 -1
- package/dist/state/runState.js +20 -2
- package/dist/state/runState.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/ui/format.d.ts +19 -0
- package/dist/ui/format.js +89 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/renderer.d.ts +41 -0
- package/dist/ui/renderer.js +93 -0
- package/dist/ui/renderer.js.map +1 -0
- package/dist/ui/runTree.d.ts +106 -0
- package/dist/ui/runTree.js +133 -0
- package/dist/ui/runTree.js.map +1 -0
- package/dist/ui/sessions.js +11 -4
- package/dist/ui/sessions.js.map +1 -1
- package/dist/ui/steps.d.ts +92 -35
- package/dist/ui/steps.js +177 -93
- package/dist/ui/steps.js.map +1 -1
- package/dist/ui/treeRenderer.d.ts +89 -0
- package/dist/ui/treeRenderer.js +271 -0
- package/dist/ui/treeRenderer.js.map +1 -0
- package/dist/ui/welcome.js +15 -9
- package/dist/ui/welcome.js.map +1 -1
- package/dist/workflow/adoptBranch.js +16 -10
- package/dist/workflow/adoptBranch.js.map +1 -1
- package/dist/workflow/captureIntent.d.ts +7 -2
- package/dist/workflow/captureIntent.js +1 -25
- package/dist/workflow/captureIntent.js.map +1 -1
- package/dist/workflow/openMergeRequest.d.ts +1 -1
- package/dist/workflow/openMergeRequest.js +8 -7
- package/dist/workflow/openMergeRequest.js.map +1 -1
- package/dist/workflow/orchestrate.d.ts +1 -1
- package/dist/workflow/orchestrate.js +61 -39
- package/dist/workflow/orchestrate.js.map +1 -1
- package/dist/workflow/runPlan.d.ts +18 -0
- package/dist/workflow/runPlan.js +53 -0
- package/dist/workflow/runPlan.js.map +1 -0
- package/dist/workflow/syncTargetBranch.d.ts +37 -0
- package/dist/workflow/syncTargetBranch.js +83 -0
- package/dist/workflow/syncTargetBranch.js.map +1 -0
- package/dist/workflow/watchPipeline.js +61 -23
- package/dist/workflow/watchPipeline.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/** Top-level control flow wiring the user's workflow
|
|
1
|
+
/** Top-level control flow wiring the user's workflow steps together — see workflow/runPlan.ts for the full step skeleton. */
|
|
2
|
+
import { basename } from 'node:path';
|
|
2
3
|
import { loadConfig } from '../config/loader.js';
|
|
3
4
|
import { createForge } from '../forge/index.js';
|
|
4
5
|
import { selectAgent } from '../agent/index.js';
|
|
@@ -12,10 +13,12 @@ import { runChecks } from './runChecks.js';
|
|
|
12
13
|
import { updateChangelog } from './updateChangelog.js';
|
|
13
14
|
import { openMergeRequest } from './openMergeRequest.js';
|
|
14
15
|
import { watchPipeline } from './watchPipeline.js';
|
|
15
|
-
import {
|
|
16
|
+
import { maybeSyncTargetBranch } from './syncTargetBranch.js';
|
|
17
|
+
import { recordEvent, recordAgentTokens } from '../state/runState.js';
|
|
16
18
|
import { acquireLock } from '../state/lock.js';
|
|
17
19
|
import { makeIdempotentCleanup, registerExitSignals } from '../process/signalCleanup.js';
|
|
18
|
-
import {
|
|
20
|
+
import { beginRun, endRun, runStep, skipStep, addDynamicStep, setRunHeader, note, noteRisk, reportAgentInvocation } from '../ui/steps.js';
|
|
21
|
+
import { freshRunSkeleton } from './runPlan.js';
|
|
19
22
|
import { printWelcome } from '../ui/welcome.js';
|
|
20
23
|
/** Function-boundary read so TS reports the declared RunPhase union, not a narrowed literal. */
|
|
21
24
|
function readPhase(state) {
|
|
@@ -45,9 +48,11 @@ function buildApplyConflictPrompt(conflictedFiles) {
|
|
|
45
48
|
* nothing to leave an escalation comment on if the agent can't resolve it —
|
|
46
49
|
* fail the run clearly instead so the user can intervene manually.
|
|
47
50
|
*/
|
|
48
|
-
async function resolveApplyConflicts(agent, worktreePath, conflictedFiles) {
|
|
49
|
-
|
|
51
|
+
async function resolveApplyConflicts(agent, repoRoot, state, worktreePath, conflictedFiles) {
|
|
52
|
+
addDynamicStep('apply', 'apply/conflicts', 'conflicts');
|
|
53
|
+
const agentResult = await runStep('apply/conflicts', `asking the agent to resolve ${conflictedFiles.length} conflicted file(s)`, () => agent.invoke({ prompt: buildApplyConflictPrompt(conflictedFiles), cwd: worktreePath, permissionMode: 'acceptEdits' }));
|
|
50
54
|
reportAgentInvocation(agentResult, worktreePath);
|
|
55
|
+
recordAgentTokens(repoRoot, state, 'resolve diff-apply conflicts', agentResult.usage);
|
|
51
56
|
const stillConflicted = findUnresolvedConflictMarkers(worktreePath, conflictedFiles);
|
|
52
57
|
if (stillConflicted.length > 0) {
|
|
53
58
|
throw new Error(`pipeline-worker: could not automatically resolve conflicts applying your diff — ${stillConflicted.join(', ')} ` +
|
|
@@ -55,36 +60,36 @@ async function resolveApplyConflicts(agent, worktreePath, conflictedFiles) {
|
|
|
55
60
|
}
|
|
56
61
|
await stageAll(worktreePath);
|
|
57
62
|
}
|
|
58
|
-
/**
|
|
63
|
+
/** Step 'capture': read the uncommitted diff, or null (already reported) when there's nothing to process. */
|
|
59
64
|
async function captureRunDiff(repoRoot) {
|
|
60
|
-
const { diffText, changedFiles, untrackedFiles } = await runStep(
|
|
65
|
+
const { diffText, changedFiles, untrackedFiles } = await runStep('capture', 'reading uncommitted edits and untracked files from your repo', () => captureDiff(repoRoot));
|
|
61
66
|
if (diffText.trim().length === 0 && untrackedFiles.length === 0) {
|
|
62
|
-
console.log('pipeline-worker: no changes to process.');
|
|
63
67
|
return null;
|
|
64
68
|
}
|
|
65
69
|
note(`${untrackedFiles.length} new file(s), ${diffText.split('\n').length} line(s) of diff`);
|
|
66
70
|
return { diffText, changedFiles, untrackedFiles };
|
|
67
71
|
}
|
|
68
72
|
/** Stages 3-4: sync the worktree with origin, replay the captured diff, and resolve any resulting conflicts. */
|
|
69
|
-
async function applyCapturedDiff(agent, repoRoot, worktreePath, targetBranch, diffText, untrackedFiles) {
|
|
70
|
-
await runStep(
|
|
71
|
-
const applyResult = await runStep(
|
|
73
|
+
async function applyCapturedDiff(agent, repoRoot, state, worktreePath, targetBranch, diffText, untrackedFiles) {
|
|
74
|
+
await runStep('sync', `pull --rebase origin ${targetBranch}, so the diff lands on the latest base`, () => syncWithOrigin(worktreePath, targetBranch));
|
|
75
|
+
const applyResult = await runStep('apply', 'replay your diff and untracked files into the new worktree', () => applyDiffToWorktree(worktreePath, diffText, untrackedFiles, repoRoot));
|
|
72
76
|
if (applyResult.conflicted) {
|
|
73
77
|
note(`conflict in: ${applyResult.conflictedFiles.join(', ')}`);
|
|
74
|
-
await resolveApplyConflicts(agent, worktreePath, applyResult.conflictedFiles);
|
|
78
|
+
await resolveApplyConflicts(agent, repoRoot, state, worktreePath, applyResult.conflictedFiles);
|
|
75
79
|
}
|
|
76
80
|
}
|
|
77
81
|
/** Stages 5-6: ask the agent to infer intent from the change, then rename the worktree to the resulting feature branch. */
|
|
78
82
|
async function captureIntentAndBranch(agent, config, options, worktreePath, changedFiles, untrackedFiles) {
|
|
79
|
-
const intent = await runStep(
|
|
83
|
+
const { intent, usage } = await runStep('intent', `ask ${config.agent} to infer a change type, branch slug, commit message, and summary`, () => captureIntent(agent, [...changedFiles, ...untrackedFiles], worktreePath, config.intentModel));
|
|
80
84
|
note(`${config.agent} says: ${intent.summary}`);
|
|
81
85
|
noteRisk(intent.risk, intent.riskReason);
|
|
82
86
|
const branchName = buildBranchName(config.branchPattern, { type: intent.changeType, ticket: options.ticket, name: intent.branchSlug });
|
|
83
|
-
const actualBranchName = await runStep(
|
|
87
|
+
const actualBranchName = await runStep('branch', `switch to feature branch ${branchName}`, () => renameBranch(worktreePath, branchName));
|
|
84
88
|
if (actualBranchName !== branchName) {
|
|
85
89
|
note(`"${branchName}" already exists locally — using "${actualBranchName}" instead`);
|
|
86
90
|
}
|
|
87
|
-
|
|
91
|
+
setRunHeader({ title: actualBranchName });
|
|
92
|
+
return { intent, intentTokens: usage?.totalTokens, actualBranchName };
|
|
88
93
|
}
|
|
89
94
|
/**
|
|
90
95
|
* Stage 7: run build/lint/test, reporting and recording the outcome. Returns
|
|
@@ -93,13 +98,14 @@ async function captureIntentAndBranch(agent, config, options, worktreePath, chan
|
|
|
93
98
|
* stage before opening a new PR/MR for a branch pipeline-worker never created.
|
|
94
99
|
*/
|
|
95
100
|
export async function runAndReportChecks(config, worktreePath, state, repoRoot) {
|
|
96
|
-
const checks = await runStep(
|
|
101
|
+
const checks = await runStep('checks', 'build, lint, and test — whichever your repo has configured', () => runChecks(config, worktreePath));
|
|
97
102
|
for (const check of checks)
|
|
98
103
|
note(`${check.name}: ${check.ok ? 'passed' : 'failed'} (${(check.durationMs / 1000).toFixed(1)}s)`);
|
|
99
104
|
const failedCheck = checks.find((c) => !c.ok);
|
|
100
105
|
if (failedCheck) {
|
|
101
106
|
console.error(`pipeline-worker: ${failedCheck.name} failed, aborting before opening a merge request.\n${failedCheck.stderr}`);
|
|
102
107
|
recordEvent(repoRoot, state, `${failedCheck.name} check failed, aborted before opening a merge request`, 'error');
|
|
108
|
+
endRun('failed', `${failedCheck.name} failed — aborted before opening a merge request`);
|
|
103
109
|
process.exitCode = 1;
|
|
104
110
|
return null;
|
|
105
111
|
}
|
|
@@ -113,18 +119,18 @@ export async function runAndReportChecks(config, worktreePath, state, repoRoot)
|
|
|
113
119
|
*/
|
|
114
120
|
export async function maybeUpdateChangelog(config, worktreePath, intent) {
|
|
115
121
|
if (config.updateChangelog) {
|
|
116
|
-
await runStep(
|
|
122
|
+
await runStep('changelog', "add a bullet under CHANGELOG.md's [Unreleased] section", async () => {
|
|
117
123
|
updateChangelog(worktreePath, intent);
|
|
118
124
|
await stageAll(worktreePath);
|
|
119
125
|
});
|
|
120
126
|
}
|
|
121
127
|
else {
|
|
122
|
-
skipStep(
|
|
128
|
+
skipStep('changelog', 'config.updateChangelog is disabled');
|
|
123
129
|
}
|
|
124
130
|
}
|
|
125
131
|
/** Stage 9 + opening the MR/PR: commit everything staged so far, then open the merge request and record it on state. */
|
|
126
132
|
async function commitAndOpenMr(forge, worktreePath, state, targetBranch, intent, config, checks, repoRoot) {
|
|
127
|
-
await runStep(
|
|
133
|
+
await runStep('commit', `commit message: "${intent.commitMessage}"`,
|
|
128
134
|
// applyDiffToWorktree (and, if enabled, the changelog step above) left
|
|
129
135
|
// everything staged; without this commit the push would carry no
|
|
130
136
|
// changes and the MR would be empty.
|
|
@@ -144,7 +150,7 @@ async function commitAndOpenMr(forge, worktreePath, state, targetBranch, intent,
|
|
|
144
150
|
*/
|
|
145
151
|
async function maybeCleanupEarly(config, repoRoot, untrackedFiles, branch, releaseLock) {
|
|
146
152
|
if (config.cleanupOnSuccess && config.cleanupEarly) {
|
|
147
|
-
await runStep(
|
|
153
|
+
await runStep('cleanup', `reset to HEAD — your changes are now safely pushed to ${branch} (MR open)`, () => resetRepo(repoRoot, untrackedFiles));
|
|
148
154
|
releaseLock();
|
|
149
155
|
}
|
|
150
156
|
}
|
|
@@ -157,12 +163,13 @@ async function maybeCleanupEarly(config, repoRoot, untrackedFiles, branch, relea
|
|
|
157
163
|
* shows up here as a push failure and is logged as a no-op, not an error.
|
|
158
164
|
*/
|
|
159
165
|
async function maybeSquashCommits(config, worktreePath, branch, targetBranch, intent) {
|
|
166
|
+
addDynamicStep('ci-watch', 'ci-watch/squash', 'squash');
|
|
160
167
|
if (!config.squashOnMerge) {
|
|
161
|
-
skipStep('
|
|
168
|
+
skipStep('ci-watch/squash', 'config.squashOnMerge is disabled');
|
|
162
169
|
return;
|
|
163
170
|
}
|
|
164
171
|
try {
|
|
165
|
-
await runStep('
|
|
172
|
+
await runStep('ci-watch/squash', `collapsing into one commit: "${intent.commitMessage}"`, async () => {
|
|
166
173
|
await squashCommitsSinceMergeBase(worktreePath, targetBranch, intent.commitMessage);
|
|
167
174
|
await forcePushWithLease(worktreePath, 'origin', branch);
|
|
168
175
|
});
|
|
@@ -172,27 +179,30 @@ async function maybeSquashCommits(config, worktreePath, branch, targetBranch, in
|
|
|
172
179
|
noteRisk('low', `could not squash run commits (${message}) — likely already merged; leaving history as-is`);
|
|
173
180
|
}
|
|
174
181
|
}
|
|
175
|
-
/** After watchPipeline settles: report the final outcome
|
|
182
|
+
/** After watchPipeline settles: report the final outcome, run stage 13's cleanup if it hasn't already run early, then stage 14's local target-branch sync. */
|
|
176
183
|
// fallow-ignore-next-line complexity
|
|
177
|
-
async function finalizeRun(finalPhase, config, mr, state, repoRoot, untrackedFiles, worktreePath, targetBranch, intent) {
|
|
184
|
+
async function finalizeRun(finalPhase, forge, config, mr, state, repoRoot, untrackedFiles, worktreePath, targetBranch, intent) {
|
|
178
185
|
if (finalPhase === 'done') {
|
|
179
186
|
await maybeSquashCommits(config, worktreePath, state.branch, targetBranch, intent);
|
|
180
|
-
const detail = state.pipelineId !== undefined ? `MR ${mr.webUrl} passed CI` : `MR ${mr.webUrl} opened — no CI pipeline found, nothing to watch`;
|
|
181
|
-
step('🎉', 'Done', detail);
|
|
182
187
|
if (config.cleanupOnSuccess) {
|
|
183
|
-
// Only run
|
|
184
|
-
// no skip announcement needed in that case, since it did run,
|
|
185
|
-
// sooner than usual, not never.
|
|
188
|
+
// Only run the cleanup step here when it hasn't already run early,
|
|
189
|
+
// above — no skip announcement needed in that case, since it did run,
|
|
190
|
+
// just sooner than usual, not never.
|
|
186
191
|
if (!config.cleanupEarly) {
|
|
187
|
-
await runStep(
|
|
192
|
+
await runStep('cleanup', `reset to HEAD — your changes are now safely on ${state.branch}`, () => resetRepo(repoRoot, untrackedFiles));
|
|
188
193
|
}
|
|
189
194
|
}
|
|
190
195
|
else {
|
|
191
|
-
skipStep(
|
|
196
|
+
skipStep('cleanup', 'config.cleanupOnSuccess is disabled — leaving your changes on the local repo for you to inspect');
|
|
192
197
|
}
|
|
198
|
+
// After cleanup on purpose: with cleanupOnSuccess on, the working tree is
|
|
199
|
+
// clean by now, so the fast-forward can't collide with leftover local edits.
|
|
200
|
+
await maybeSyncTargetBranch(forge, config, repoRoot, targetBranch, mr.iid);
|
|
201
|
+
const detail = state.pipelineId !== undefined ? `MR ${mr.webUrl} passed CI` : `MR ${mr.webUrl} opened — no CI pipeline found, nothing to watch`;
|
|
202
|
+
endRun('done', detail);
|
|
193
203
|
}
|
|
194
204
|
else if (finalPhase === 'escalated') {
|
|
195
|
-
|
|
205
|
+
endRun('escalated', `see ${mr.webUrl} for what was tried and why`);
|
|
196
206
|
process.exitCode = 1;
|
|
197
207
|
}
|
|
198
208
|
}
|
|
@@ -210,17 +220,28 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
210
220
|
const forge = createForge(config);
|
|
211
221
|
const agent = selectAgent(config);
|
|
212
222
|
await printWelcome(config, repoRoot);
|
|
223
|
+
// The skeleton needs the target branch for its sync/merge details, so
|
|
224
|
+
// read it before the first step renders (both are read-only).
|
|
225
|
+
const targetBranch = await currentBranch(repoRoot);
|
|
226
|
+
beginRun(freshRunSkeleton(targetBranch, config.agent), { title: basename(repoRoot) });
|
|
213
227
|
const diff = await captureRunDiff(repoRoot);
|
|
214
|
-
if (!diff)
|
|
228
|
+
if (!diff) {
|
|
229
|
+
endRun('done', 'no changes to process — your working tree is clean');
|
|
215
230
|
return;
|
|
231
|
+
}
|
|
216
232
|
const { diffText, changedFiles, untrackedFiles } = diff;
|
|
217
|
-
const targetBranch = await currentBranch(repoRoot);
|
|
218
233
|
const tempBranch = generateTempBranchName();
|
|
219
|
-
const worktreePath = await runStep(
|
|
234
|
+
const worktreePath = await runStep('worktree', `create worktree with name ${tempBranch}`, () => createWorktree(repoRoot, tempBranch));
|
|
235
|
+
// The uuid tail of the temp branch, shortened, doubles as the header's
|
|
236
|
+
// worktree identifier (the mock's 'worktree a91f').
|
|
237
|
+
setRunHeader({ worktreeShortId: tempBranch.slice(-4) });
|
|
220
238
|
let state = { branch: tempBranch, targetBranch, worktreePath, ciFixAttempt: 0, conflictAttempt: 0, phase: 'diff' };
|
|
221
239
|
recordEvent(repoRoot, state, `Created worktree at ${worktreePath} (temp branch ${tempBranch})`);
|
|
222
240
|
const { cleanup, markDone } = makeIdempotentCleanup(() => removeWorktree(repoRoot, worktreePath));
|
|
223
241
|
registerExitSignals((exitCode) => {
|
|
242
|
+
// Settle the run display first so the terminal is left readable (and,
|
|
243
|
+
// under the live TTY renderer, the cursor is restored).
|
|
244
|
+
endRun('interrupted', shouldPreserveWorktreeOnInterrupt(state.phase) ? `resume with: pipeline-worker resume --branch ${state.branch}` : undefined);
|
|
224
245
|
// process.exit() below terminates immediately without unwinding the
|
|
225
246
|
// suspended runWorkflow() call stack, so the outer `finally { releaseLock() }`
|
|
226
247
|
// never runs — release it explicitly here first in both branches.
|
|
@@ -239,10 +260,10 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
239
260
|
});
|
|
240
261
|
});
|
|
241
262
|
try {
|
|
242
|
-
await applyCapturedDiff(agent, repoRoot, worktreePath, targetBranch, diffText, untrackedFiles);
|
|
243
|
-
const { intent, actualBranchName } = await captureIntentAndBranch(agent, config, options, worktreePath, changedFiles, untrackedFiles);
|
|
263
|
+
await applyCapturedDiff(agent, repoRoot, state, worktreePath, targetBranch, diffText, untrackedFiles);
|
|
264
|
+
const { intent, intentTokens, actualBranchName } = await captureIntentAndBranch(agent, config, options, worktreePath, changedFiles, untrackedFiles);
|
|
244
265
|
state = { ...state, branch: actualBranchName, phase: 'intent' };
|
|
245
|
-
recordEvent(repoRoot, state, `Captured intent; renamed to feature branch ${actualBranchName}
|
|
266
|
+
recordEvent(repoRoot, state, `Captured intent; renamed to feature branch ${actualBranchName}`, 'info', intentTokens);
|
|
246
267
|
const checks = await runAndReportChecks(config, worktreePath, state, repoRoot);
|
|
247
268
|
if (!checks)
|
|
248
269
|
return;
|
|
@@ -257,11 +278,12 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
257
278
|
// boundary so TS uses the declared RunPhase return type instead of the
|
|
258
279
|
// 'mr' literal it narrowed state.phase to just before the call.
|
|
259
280
|
const finalPhase = readPhase(state);
|
|
260
|
-
await finalizeRun(finalPhase, config, mr, state, repoRoot, untrackedFiles, worktreePath, targetBranch, intent);
|
|
281
|
+
await finalizeRun(finalPhase, forge, config, mr, state, repoRoot, untrackedFiles, worktreePath, targetBranch, intent);
|
|
261
282
|
}
|
|
262
283
|
catch (error) {
|
|
263
284
|
const message = error instanceof Error ? error.message : String(error);
|
|
264
285
|
recordEvent(repoRoot, state, `Run failed: ${message}`, 'error');
|
|
286
|
+
endRun('failed', message);
|
|
265
287
|
throw error;
|
|
266
288
|
}
|
|
267
289
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/workflow/orchestrate.ts"],"names":[],"mappings":"AAAA,yIAAyI;AAEzI,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC/I,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMhD,gGAAgG;AAChG,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED,2FAA2F;AAC3F,MAAM,gBAAgB,GAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAAe;IAC/D,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,wBAAwB,CAAC,eAAyB;IACzD,OAAO,CACL,yGAAyG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACvI,iHAAiH;QACjH,mEAAmE,CACpE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,qBAAqB,CAAC,KAAmB,EAAE,YAAoB,EAAE,eAAyB;IACvG,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,KAAK,EACL,IAAI,EACJ,qBAAqB,EACrB,+BAA+B,eAAe,CAAC,MAAM,qBAAqB,EAC1E,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAC5H,CAAC;IACF,qBAAqB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,6BAA6B,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACrF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,mFAAmF,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9G,+DAA+D,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC/B,CAAC;AAOD,uGAAuG;AACvG,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,CAC9D,CAAC,EACD,IAAI,EACJ,wBAAwB,EACxB,8DAA8D,EAC9D,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC5B,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,iBAAiB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAC7F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AACpD,CAAC;AAED,gHAAgH;AAChH,KAAK,UAAU,iBAAiB,CAC9B,KAAmB,EACnB,QAAgB,EAChB,YAAoB,EACpB,YAAoB,EACpB,QAAgB,EAChB,cAAwB;IAExB,MAAM,OAAO,CACX,CAAC,EACD,IAAI,EACJ,8BAA8B,EAC9B,wBAAwB,YAAY,wCAAwC,EAC5E,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CACjD,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,CAAC,EACD,IAAI,EACJ,uBAAuB,EACvB,4DAA4D,EAC5D,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAC5E,CAAC;IACF,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,2HAA2H;AAC3H,KAAK,UAAU,sBAAsB,CACnC,KAAmB,EACnB,MAA4B,EAC5B,OAA2B,EAC3B,YAAoB,EACpB,YAAsB,EACtB,cAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,CAAC,EACD,IAAI,EACJ,4BAA4B,EAC5B,OAAO,MAAM,CAAC,KAAK,mEAAmE,EACtF,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CACnG,CAAC;IACF,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACvI,MAAM,gBAAgB,GAAG,MAAM,OAAO,CACpC,CAAC,EACD,IAAI,EACJ,yBAAyB,EACzB,4BAA4B,UAAU,EAAE,EACxC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAC7C,CAAC;IACF,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,UAAU,qCAAqC,gBAAgB,WAAW,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA4B,EAAE,YAAoB,EAAE,KAAe,EAAE,QAAgB;IAC5H,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,CAAC,EACD,GAAG,EACH,gBAAgB,EAChB,4DAA4D,EAC5D,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CACtC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChI,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CACX,oBAAoB,WAAW,CAAC,IAAI,sDAAsD,WAAW,CAAC,MAAM,EAAE,CAC/G,CAAC;QACF,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,uDAAuD,EAAE,OAAO,CAAC,CAAC;QAClH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACvB,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,kBAAkB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA4B,EAAE,YAAoB,EAAE,MAAsB;IACnH,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,MAAM,OAAO,CACX,CAAC,EACD,IAAI,EACJ,oBAAoB,EACpB,wDAAwD,EACxD,KAAK,IAAI,EAAE;YACT,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,oCAAoC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,wHAAwH;AACxH,KAAK,UAAU,eAAe,CAC5B,KAAkB,EAClB,YAAoB,EACpB,KAAe,EACf,YAAoB,EACpB,MAAsB,EACtB,MAA4B,EAC5B,MAAqB,EACrB,QAAgB;IAEhB,MAAM,OAAO,CACX,CAAC,EACD,IAAI,EACJ,oBAAoB,EACpB,oBAAoB,MAAM,CAAC,aAAa,GAAG;IAC3C,uEAAuE;IACvE,iEAAiE;IACjE,qCAAqC;IACrC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CACjD,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9J,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC;IACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAAC,MAA4B,EAAE,QAAgB,EAAE,cAAwB,EAAE,MAAc,EAAE,WAAuB;IAChJ,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACnD,MAAM,OAAO,CACX,EAAE,EACF,IAAI,EACJ,uBAAuB,EACvB,yDAAyD,MAAM,YAAY,EAC3E,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,CAC1C,CAAC;QACF,WAAW,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAA4B,EAAE,YAAoB,EAAE,MAAc,EAAE,YAAoB,EAAE,MAAsB;IAChJ,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,kCAAkC,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,gCAAgC,MAAM,CAAC,aAAa,GAAG,EAAE,KAAK,IAAI,EAAE;YACvH,MAAM,2BAA2B,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YACpF,MAAM,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,QAAQ,CAAC,KAAK,EAAE,iCAAiC,OAAO,kDAAkD,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC;AAED,uHAAuH;AACvH,qCAAqC;AACrC,KAAK,UAAU,WAAW,CACxB,UAAoB,EACpB,MAA4B,EAC5B,EAAgB,EAChB,KAAe,EACf,QAAgB,EAChB,cAAwB,EACxB,YAAoB,EACpB,YAAoB,EACpB,MAAsB;IAEtB,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAEnF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,kDAAkD,CAAC;QAChJ,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,mEAAmE;YACnE,mEAAmE;YACnE,gCAAgC;YAChC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,OAAO,CACX,EAAE,EACF,IAAI,EACJ,uBAAuB,EACvB,kDAAkD,KAAK,CAAC,MAAM,EAAE,EAChE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,iGAAiG,CAAC,CAAC;QACjJ,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,MAAM,6BAA6B,CAAC,CAAC;QACtF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,UAA8B,EAAE;IAClF,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,wEAAwE;IACxE,wEAAwE;IACxE,yBAAyB;IACzB,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAExD,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAChC,CAAC,EACD,IAAI,EACJ,mBAAmB,EACnB,6BAA6B,UAAU,EAAE,EACzC,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAC3C,CAAC;QAEF,IAAI,KAAK,GAAa,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC7H,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,uBAAuB,YAAY,iBAAiB,UAAU,GAAG,CAAC,CAAC;QAEhG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QAClG,mBAAmB,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/B,oEAAoE;YACpE,+EAA+E;YAC/E,kEAAkE;YAClE,IAAI,iCAAiC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,sEAAsE;gBACtE,oEAAoE;gBACpE,0BAA0B;gBAC1B,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,KAAK,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YAE/F,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;YACtI,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,8CAA8C,gBAAgB,EAAE,CAAC,CAAC;YAE/F,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/E,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,MAAM,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAEzD,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE7G,qEAAqE;YACrE,sEAAsE;YACtE,gEAAgE;YAChE,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAErF,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAE7G,oEAAoE;YACpE,uEAAuE;YACvE,gEAAgE;YAChE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QACjH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,WAAW,EAAE,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/workflow/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declares the step skeletons each entry point renders as its run tree —
|
|
3
|
+
* kept out of orchestrate.ts so the control flow stays control flow and the
|
|
4
|
+
* tree shape is one readable literal per entry point.
|
|
5
|
+
*
|
|
6
|
+
* Ids are the contract between skeletons and the workflow code that starts/
|
|
7
|
+
* finishes steps (ui/steps.ts facade). Shared helpers (runAndReportChecks,
|
|
8
|
+
* maybeUpdateChangelog, openMergeRequest, watchPipeline, maybeSyncTargetBranch)
|
|
9
|
+
* reference the ids 'checks', 'changelog', 'push', 'mr', 'ci-watch', and
|
|
10
|
+
* 'merge' — any skeleton whose flow reaches those helpers must declare them.
|
|
11
|
+
*/
|
|
12
|
+
import type { StepSeed } from '../ui/runTree.js';
|
|
13
|
+
/** A fresh `pipeline-worker run`: the full capture-to-merge sequence. */
|
|
14
|
+
export declare function freshRunSkeleton(targetBranch: string, agentName: string): StepSeed[];
|
|
15
|
+
/** `pipeline-worker resume` on a run with persisted state: only the watch tail actually executes — faking the earlier steps as done would lie. */
|
|
16
|
+
export declare function resumeSkeleton(targetBranch: string): StepSeed[];
|
|
17
|
+
/** `pipeline-worker resume` adopting a branch with no persisted state: inspect it, open/refresh its MR/PR, then the watch tail. */
|
|
18
|
+
export declare function adoptSkeleton(branch: string): StepSeed[];
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declares the step skeletons each entry point renders as its run tree —
|
|
3
|
+
* kept out of orchestrate.ts so the control flow stays control flow and the
|
|
4
|
+
* tree shape is one readable literal per entry point.
|
|
5
|
+
*
|
|
6
|
+
* Ids are the contract between skeletons and the workflow code that starts/
|
|
7
|
+
* finishes steps (ui/steps.ts facade). Shared helpers (runAndReportChecks,
|
|
8
|
+
* maybeUpdateChangelog, openMergeRequest, watchPipeline, maybeSyncTargetBranch)
|
|
9
|
+
* reference the ids 'checks', 'changelog', 'push', 'mr', 'ci-watch', and
|
|
10
|
+
* 'merge' — any skeleton whose flow reaches those helpers must declare them.
|
|
11
|
+
*/
|
|
12
|
+
/** A fresh `pipeline-worker run`: the full capture-to-merge sequence. */
|
|
13
|
+
export function freshRunSkeleton(targetBranch, agentName) {
|
|
14
|
+
return [
|
|
15
|
+
{ id: 'capture', label: 'capture', detail: 'staged + unstaged diff' },
|
|
16
|
+
{ id: 'worktree', label: 'worktree', detail: 'disposable copy on a temp branch' },
|
|
17
|
+
{ id: 'sync', label: 'sync', detail: `pull --rebase origin ${targetBranch}` },
|
|
18
|
+
{ id: 'apply', label: 'apply', detail: 'replay diff into the worktree' },
|
|
19
|
+
{ id: 'intent', label: 'intent', detail: `${agentName} infers type · slug · commit message` },
|
|
20
|
+
{ id: 'branch', label: 'branch', detail: 'checkout feature branch' },
|
|
21
|
+
{ id: 'checks', label: 'checks', detail: 'build · lint · test' },
|
|
22
|
+
{ id: 'changelog', label: 'changelog', detail: 'CHANGELOG.md bullet' },
|
|
23
|
+
{ id: 'commit', label: 'commit', detail: 'commit the applied changes' },
|
|
24
|
+
{ id: 'push', label: 'push', detail: 'push the feature branch to origin' },
|
|
25
|
+
{ id: 'mr', label: 'mr', detail: 'open the merge request' },
|
|
26
|
+
{ id: 'ci-watch', label: 'ci-watch', detail: 'watch CI · fix failures · resolve conflicts' },
|
|
27
|
+
{ id: 'cleanup', label: 'cleanup', detail: 'reset your repo to HEAD' },
|
|
28
|
+
{ id: 'merge', label: 'merge', detail: `auto-merge + sync local ${targetBranch}` },
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
/** `pipeline-worker resume` on a run with persisted state: only the watch tail actually executes — faking the earlier steps as done would lie. */
|
|
32
|
+
export function resumeSkeleton(targetBranch) {
|
|
33
|
+
return [
|
|
34
|
+
{ id: 'resume', label: 'resume', detail: 'reattach to the persisted run' },
|
|
35
|
+
{ id: 'ci-watch', label: 'ci-watch', detail: 'watch CI · fix failures · resolve conflicts' },
|
|
36
|
+
{ id: 'merge', label: 'merge', detail: `auto-merge + sync local ${targetBranch}` },
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
/** `pipeline-worker resume` adopting a branch with no persisted state: inspect it, open/refresh its MR/PR, then the watch tail. */
|
|
40
|
+
export function adoptSkeleton(branch) {
|
|
41
|
+
return [
|
|
42
|
+
{ id: 'adopt', label: 'adopt', detail: `fetch + checkout origin/${branch}` },
|
|
43
|
+
{ id: 'inspect', label: 'inspect', detail: 'diff the branch against its target' },
|
|
44
|
+
{ id: 'checks', label: 'checks', detail: 'build · lint · test' },
|
|
45
|
+
{ id: 'intent', label: 'intent', detail: 'infer summary · risk · file breakdown' },
|
|
46
|
+
{ id: 'changelog', label: 'changelog', detail: 'CHANGELOG.md bullet' },
|
|
47
|
+
{ id: 'push', label: 'push', detail: 'push the branch to origin' },
|
|
48
|
+
{ id: 'mr', label: 'mr', detail: 'open or refresh the merge request' },
|
|
49
|
+
{ id: 'ci-watch', label: 'ci-watch', detail: 'watch CI · fix failures · resolve conflicts' },
|
|
50
|
+
{ id: 'merge', label: 'merge', detail: 'auto-merge + sync local target' },
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=runPlan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runPlan.js","sourceRoot":"","sources":["../../src/workflow/runPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage 14 (gated on config.autoMergeOnGreen): once the forge has actually
|
|
3
|
+
* auto-merged the MR/PR, bring the user's own repo up to date — wait for the
|
|
4
|
+
* forge to confirm the merge, give its target-branch ref a few seconds to
|
|
5
|
+
* settle, then fast-forward repoRoot's checked-out target branch from origin
|
|
6
|
+
* so the merged result is already on the user's local main when the run ends.
|
|
7
|
+
*
|
|
8
|
+
* Best-effort by design, like maybeSquashCommits: the run has already
|
|
9
|
+
* succeeded by the time this stage runs, so nothing here may fail it. Every
|
|
10
|
+
* way this can go sideways (auto-merge held up by required approvals, the
|
|
11
|
+
* user switched branches mid-run, a dirty/diverged local target branch that
|
|
12
|
+
* refuses a fast-forward) degrades to a note telling the user to `git pull`
|
|
13
|
+
* themselves.
|
|
14
|
+
*/
|
|
15
|
+
import type { ForgeClient } from '../forge/types.js';
|
|
16
|
+
import type { PipelineWorkerConfig } from '../types.js';
|
|
17
|
+
/** All delays in one injectable bundle so tests never wait out real seconds. */
|
|
18
|
+
export interface SyncTiming {
|
|
19
|
+
/** How often to re-ask the forge whether the MR/PR has actually merged. */
|
|
20
|
+
pollMs: number;
|
|
21
|
+
/** Give up waiting for the merge after this long — auto-merge can be held indefinitely by required approvals, and this stage must not hang the run on that. */
|
|
22
|
+
timeoutMs: number;
|
|
23
|
+
/** Grace delay between the forge confirming the merge and fetching, so the freshly written target-branch ref is what the fetch actually sees. */
|
|
24
|
+
settleMs: number;
|
|
25
|
+
}
|
|
26
|
+
export declare const DEFAULT_SYNC_TIMING: SyncTiming;
|
|
27
|
+
export type SyncOutcome = 'updated' | 'merge-timeout' | 'not-on-target-branch';
|
|
28
|
+
/**
|
|
29
|
+
* The stage's actual work, throwing on git failures (a dirty or diverged
|
|
30
|
+
* local target branch makes `merge --ff-only` refuse) — the wrapper below
|
|
31
|
+
* catches those. `--ff-only` is what makes this safe to run against the
|
|
32
|
+
* user's own repo: it can only ever move the branch forward onto what origin
|
|
33
|
+
* already has, never create a merge commit or touch conflicting local work.
|
|
34
|
+
*/
|
|
35
|
+
export declare function syncTargetBranchAfterMerge(forge: ForgeClient, repoRoot: string, targetBranch: string, mrIid: number, timing?: SyncTiming): Promise<SyncOutcome>;
|
|
36
|
+
/** Step 'merge': announces the skip when auto-merge is off, otherwise runs the sync and reduces any failure to a low-risk note. */
|
|
37
|
+
export declare function maybeSyncTargetBranch(forge: ForgeClient, config: PipelineWorkerConfig, repoRoot: string, targetBranch: string, mrIid: number, timing?: SyncTiming): Promise<void>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage 14 (gated on config.autoMergeOnGreen): once the forge has actually
|
|
3
|
+
* auto-merged the MR/PR, bring the user's own repo up to date — wait for the
|
|
4
|
+
* forge to confirm the merge, give its target-branch ref a few seconds to
|
|
5
|
+
* settle, then fast-forward repoRoot's checked-out target branch from origin
|
|
6
|
+
* so the merged result is already on the user's local main when the run ends.
|
|
7
|
+
*
|
|
8
|
+
* Best-effort by design, like maybeSquashCommits: the run has already
|
|
9
|
+
* succeeded by the time this stage runs, so nothing here may fail it. Every
|
|
10
|
+
* way this can go sideways (auto-merge held up by required approvals, the
|
|
11
|
+
* user switched branches mid-run, a dirty/diverged local target branch that
|
|
12
|
+
* refuses a fast-forward) degrades to a note telling the user to `git pull`
|
|
13
|
+
* themselves.
|
|
14
|
+
*/
|
|
15
|
+
import { execFile } from 'node:child_process';
|
|
16
|
+
import { promisify } from 'node:util';
|
|
17
|
+
import { currentBranch } from '../git/commit.js';
|
|
18
|
+
import { runStep, skipStep, updateStep, note, noteRisk } from '../ui/steps.js';
|
|
19
|
+
const execFileAsync = promisify(execFile);
|
|
20
|
+
export const DEFAULT_SYNC_TIMING = { pollMs: 3000, timeoutMs: 60000, settleMs: 3000 };
|
|
21
|
+
function sleep(ms) {
|
|
22
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
23
|
+
}
|
|
24
|
+
/** Polls forge.isMrMerged until it confirms, or timing.timeoutMs elapses (false — the MR/PR never merged within the window). */
|
|
25
|
+
async function waitForMerge(forge, mrIid, timing) {
|
|
26
|
+
const deadline = Date.now() + timing.timeoutMs;
|
|
27
|
+
for (;;) {
|
|
28
|
+
if (await forge.isMrMerged(mrIid))
|
|
29
|
+
return true;
|
|
30
|
+
if (Date.now() + timing.pollMs > deadline)
|
|
31
|
+
return false;
|
|
32
|
+
await sleep(timing.pollMs);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The stage's actual work, throwing on git failures (a dirty or diverged
|
|
37
|
+
* local target branch makes `merge --ff-only` refuse) — the wrapper below
|
|
38
|
+
* catches those. `--ff-only` is what makes this safe to run against the
|
|
39
|
+
* user's own repo: it can only ever move the branch forward onto what origin
|
|
40
|
+
* already has, never create a merge commit or touch conflicting local work.
|
|
41
|
+
*/
|
|
42
|
+
export async function syncTargetBranchAfterMerge(forge, repoRoot, targetBranch, mrIid, timing = DEFAULT_SYNC_TIMING) {
|
|
43
|
+
if (!(await waitForMerge(forge, mrIid, timing)))
|
|
44
|
+
return 'merge-timeout';
|
|
45
|
+
await sleep(timing.settleMs);
|
|
46
|
+
if ((await currentBranch(repoRoot)) !== targetBranch)
|
|
47
|
+
return 'not-on-target-branch';
|
|
48
|
+
await execFileAsync('git', ['fetch', 'origin', targetBranch], { cwd: repoRoot });
|
|
49
|
+
await execFileAsync('git', ['merge', '--ff-only', `origin/${targetBranch}`], { cwd: repoRoot });
|
|
50
|
+
return 'updated';
|
|
51
|
+
}
|
|
52
|
+
/** Explains each outcome on the merge step's own row and as a note; every non-'updated' branch ends in "you can still just git pull". */
|
|
53
|
+
function reportOutcome(outcome, targetBranch, timing) {
|
|
54
|
+
if (outcome === 'updated') {
|
|
55
|
+
updateStep('merge', { detail: `merged + local ${targetBranch} synced` });
|
|
56
|
+
note(`local ${targetBranch} now includes the merged MR/PR`);
|
|
57
|
+
}
|
|
58
|
+
else if (outcome === 'merge-timeout') {
|
|
59
|
+
updateStep('merge', { detail: `not merged after ${Math.round(timing.timeoutMs / 1000)}s — git pull ${targetBranch} once it lands` });
|
|
60
|
+
note(`the forge had not merged the MR/PR after ${Math.round(timing.timeoutMs / 1000)}s (required approvals still pending?) — ` +
|
|
61
|
+
`run 'git pull' on ${targetBranch} once it merges`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
updateStep('merge', { detail: `repo no longer on ${targetBranch} — git pull it yourself` });
|
|
65
|
+
note(`your repo is no longer on ${targetBranch} — skipped; run 'git pull' on ${targetBranch} yourself`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** Step 'merge': announces the skip when auto-merge is off, otherwise runs the sync and reduces any failure to a low-risk note. */
|
|
69
|
+
export async function maybeSyncTargetBranch(forge, config, repoRoot, targetBranch, mrIid, timing = DEFAULT_SYNC_TIMING) {
|
|
70
|
+
if (!config.autoMergeOnGreen) {
|
|
71
|
+
skipStep('merge', 'config.autoMergeOnGreen is disabled — nothing was merged for this run to pull back');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const outcome = await runStep('merge', `wait for the forge to auto-merge the MR/PR, then fast-forward ${targetBranch} from origin`, () => syncTargetBranchAfterMerge(forge, repoRoot, targetBranch, mrIid, timing));
|
|
76
|
+
reportOutcome(outcome, targetBranch, timing);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
80
|
+
noteRisk('low', `could not fast-forward local ${targetBranch} (${message}) — run 'git pull' there yourself`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=syncTargetBranch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncTargetBranch.js","sourceRoot":"","sources":["../../src/workflow/syncTargetBranch.ts"],"names":[],"mappings":"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"}
|