@on-par/factory-core 0.9.27-next.7 → 0.9.27
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/checkers/baseline.d.ts +2 -0
- package/dist/checkers/baseline.d.ts.map +1 -1
- package/dist/checkers/baseline.js +20 -7
- package/dist/checkers/baseline.js.map +1 -1
- package/dist/checkers/preview-check.d.ts +24 -0
- package/dist/checkers/preview-check.d.ts.map +1 -0
- package/dist/checkers/preview-check.js +57 -0
- package/dist/checkers/preview-check.js.map +1 -0
- package/dist/checkers/preview-evidence.d.ts +26 -0
- package/dist/checkers/preview-evidence.d.ts.map +1 -0
- package/dist/checkers/preview-evidence.js +57 -0
- package/dist/checkers/preview-evidence.js.map +1 -0
- package/dist/checkers/preview-pin.d.ts +16 -0
- package/dist/checkers/preview-pin.d.ts.map +1 -0
- package/dist/checkers/preview-pin.js +47 -0
- package/dist/checkers/preview-pin.js.map +1 -0
- package/dist/checkers/preview-receipt.d.ts +7 -0
- package/dist/checkers/preview-receipt.d.ts.map +1 -0
- package/dist/checkers/preview-receipt.js +33 -0
- package/dist/checkers/preview-receipt.js.map +1 -0
- package/dist/checkers/preview-source-octokit.d.ts +4 -0
- package/dist/checkers/preview-source-octokit.d.ts.map +1 -0
- package/dist/checkers/preview-source-octokit.js +47 -0
- package/dist/checkers/preview-source-octokit.js.map +1 -0
- package/dist/checkers/preview-source.d.ts +35 -0
- package/dist/checkers/preview-source.d.ts.map +1 -0
- package/dist/checkers/preview-source.js +45 -0
- package/dist/checkers/preview-source.js.map +1 -0
- package/dist/checkers/preview-url-guard.d.ts +5 -0
- package/dist/checkers/preview-url-guard.d.ts.map +1 -0
- package/dist/checkers/preview-url-guard.js +84 -0
- package/dist/checkers/preview-url-guard.js.map +1 -0
- package/dist/checkers/preview-wait.d.ts +26 -0
- package/dist/checkers/preview-wait.d.ts.map +1 -0
- package/dist/checkers/preview-wait.js +43 -0
- package/dist/checkers/preview-wait.js.map +1 -0
- package/dist/config/config-lint.d.ts +1 -1
- package/dist/config/config-lint.d.ts.map +1 -1
- package/dist/config/config-lint.js +1 -1
- package/dist/config/config-lint.js.map +1 -1
- package/dist/config/config-schema-lint.d.ts +11 -0
- package/dist/config/config-schema-lint.d.ts.map +1 -1
- package/dist/config/config-schema-lint.js +38 -0
- package/dist/config/config-schema-lint.js.map +1 -1
- package/dist/config/example.d.ts.map +1 -1
- package/dist/config/example.js +1 -0
- package/dist/config/example.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/optional-sections.d.ts +22 -0
- package/dist/config/optional-sections.d.ts.map +1 -1
- package/dist/config/optional-sections.js +7 -1
- package/dist/config/optional-sections.js.map +1 -1
- package/dist/config/preview-section.d.ts +49 -0
- package/dist/config/preview-section.d.ts.map +1 -0
- package/dist/config/preview-section.js +72 -0
- package/dist/config/preview-section.js.map +1 -0
- package/dist/config/repo.d.ts +22 -0
- package/dist/config/repo.d.ts.map +1 -1
- package/dist/config/size-gate.d.ts +13 -2
- package/dist/config/size-gate.d.ts.map +1 -1
- package/dist/config/size-gate.js +45 -3
- package/dist/config/size-gate.js.map +1 -1
- package/dist/daemon/execution-config.d.ts +22 -0
- package/dist/daemon/execution-config.d.ts.map +1 -1
- package/dist/daemon/run-runtime.d.ts +22 -0
- package/dist/daemon/run-runtime.d.ts.map +1 -1
- package/dist/fakes/fake-github.d.ts +18 -0
- package/dist/fakes/fake-github.d.ts.map +1 -0
- package/dist/fakes/fake-github.js +28 -0
- package/dist/fakes/fake-github.js.map +1 -0
- package/dist/internal.d.ts +6 -2
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -2
- package/dist/internal.js.map +1 -1
- package/dist/kpis/tier-demotion.d.ts +42 -0
- package/dist/kpis/tier-demotion.d.ts.map +1 -0
- package/dist/kpis/tier-demotion.js +121 -0
- package/dist/kpis/tier-demotion.js.map +1 -0
- package/dist/kpis/tier-evidence.d.ts +72 -0
- package/dist/kpis/tier-evidence.d.ts.map +1 -0
- package/dist/kpis/tier-evidence.js +162 -0
- package/dist/kpis/tier-evidence.js.map +1 -0
- package/dist/phases/check.d.ts +2 -0
- package/dist/phases/check.d.ts.map +1 -1
- package/dist/phases/check.js +1 -0
- package/dist/phases/check.js.map +1 -1
- package/dist/phases/environment-release.d.ts.map +1 -1
- package/dist/phases/environment-release.js +6 -0
- package/dist/phases/environment-release.js.map +1 -1
- package/dist/phases/ship-preview.d.ts +18 -0
- package/dist/phases/ship-preview.d.ts.map +1 -0
- package/dist/phases/ship-preview.js +38 -0
- package/dist/phases/ship-preview.js.map +1 -0
- package/dist/phases/ship.d.ts +6 -1
- package/dist/phases/ship.d.ts.map +1 -1
- package/dist/phases/ship.js +33 -4
- package/dist/phases/ship.js.map +1 -1
- package/dist/public-api-keys.d.ts.map +1 -1
- package/dist/public-api-keys.js +2 -0
- package/dist/public-api-keys.js.map +1 -1
- package/dist/review/marked-block.d.ts +6 -0
- package/dist/review/marked-block.d.ts.map +1 -0
- package/dist/review/marked-block.js +22 -0
- package/dist/review/marked-block.js.map +1 -0
- package/dist/review/risk-receipt.d.ts.map +1 -1
- package/dist/review/risk-receipt.js +2 -19
- package/dist/review/risk-receipt.js.map +1 -1
- package/dist/run/ci-rework-loop.d.ts +3 -1
- package/dist/run/ci-rework-loop.d.ts.map +1 -1
- package/dist/run/ci-rework-loop.js +150 -136
- package/dist/run/ci-rework-loop.js.map +1 -1
- package/dist/run/ci-rework-round.d.ts +41 -0
- package/dist/run/ci-rework-round.d.ts.map +1 -0
- package/dist/run/ci-rework-round.js +60 -0
- package/dist/run/ci-rework-round.js.map +1 -0
- package/dist/run/ci-rework-test-helpers.d.ts +35 -0
- package/dist/run/ci-rework-test-helpers.d.ts.map +1 -0
- package/dist/run/ci-rework-test-helpers.js +120 -0
- package/dist/run/ci-rework-test-helpers.js.map +1 -0
- package/dist/run/resume-context.d.ts +28 -0
- package/dist/run/resume-context.d.ts.map +1 -1
- package/dist/run/resume-context.js +48 -3
- package/dist/run/resume-context.js.map +1 -1
- package/dist/run/run-issue.d.ts.map +1 -1
- package/dist/run/run-issue.js +5 -1
- package/dist/run/run-issue.js.map +1 -1
- package/dist/run/ship-park.d.ts.map +1 -1
- package/dist/run/ship-park.js +2 -0
- package/dist/run/ship-park.js.map +1 -1
- package/dist/testing.d.ts +2 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -0
- package/dist/testing.js.map +1 -1
- package/dist/utils/required-checks.d.ts +3 -3
- package/dist/utils/required-checks.d.ts.map +1 -1
- package/dist/utils/required-checks.js +10 -10
- package/dist/utils/required-checks.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PreviewConfig } from '../config/preview-section.js';
|
|
1
2
|
import { type checkPhase as checkPhaseDefault, type CheckPhaseResult, reworkWorker as reworkWorkerDefault } from '../phases/check.js';
|
|
2
3
|
import type { PlanResult } from '../phases/plan.js';
|
|
3
4
|
import type { shipPhase as shipPhaseDefault, ShipResult } from '../phases/ship.js';
|
|
@@ -6,7 +7,7 @@ import type { CiFailureEvidence, Constitution } from '../types/index.js';
|
|
|
6
7
|
import { collectFailingJobLogs as collectFailingJobLogsDefault } from '../utils/ci-evidence.js';
|
|
7
8
|
import { listBaseCodeqlAlerts as listBaseCodeqlAlertsDefault, listBaseFailingChecks as listBaseFailingChecksDefault, listPrChangedFiles as listPrChangedFilesDefault } from './ci-rework.js';
|
|
8
9
|
import { mergeBaseIntoWorktree as mergeBaseIntoWorktreeDefault, readReworkDiff as readReworkDiffDefault, readWorktreeHead as readWorktreeHeadDefault } from './ci-suppression-guard.js';
|
|
9
|
-
import {
|
|
10
|
+
import type { BuildRoute, ParkReason, RunOutcome } from './outcome.js';
|
|
10
11
|
import type { RunPorts, RunRequest } from './run-issue.js';
|
|
11
12
|
import type { RunPolicy } from './policy.js';
|
|
12
13
|
/** Injectable seams for the CI rework loop; RunPorts extends this. */
|
|
@@ -29,6 +30,7 @@ export interface CiReworkPorts {
|
|
|
29
30
|
collectFailingJobLogs?: typeof collectFailingJobLogsDefault;
|
|
30
31
|
/** Aborts when the lane loses this issue's claim lease (#3146): phase boundaries, push, PR creation and merge refuse to run. */
|
|
31
32
|
claimSignal?: AbortSignal;
|
|
33
|
+
loadPreviewConfig?: (worktree: string) => PreviewConfig | undefined;
|
|
32
34
|
}
|
|
33
35
|
export interface CiReworkLoopContext {
|
|
34
36
|
request: RunRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-rework-loop.d.ts","sourceRoot":"","sources":["../../src/run/ci-rework-loop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ci-rework-loop.d.ts","sourceRoot":"","sources":["../../src/run/ci-rework-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
// packages/core/src/run/ci-rework-loop.ts — SHIP with a bounded CI rework loop (#2816)
|
|
2
|
+
import { PREVIEW_REWORK_INSTRUCTIONS, previewReworkSummary, runPreviewCheck } from '../checkers/preview-check.js';
|
|
3
|
+
import { createOctokitPreviewGitHub } from '../checkers/preview-source-octokit.js';
|
|
4
|
+
import { loadRepoConfig } from '../config/repo.js';
|
|
2
5
|
import { workKeyFromIssue } from '../work/work-key.js';
|
|
3
6
|
import { reworkWorker as reworkWorkerDefault, } from '../phases/check.js';
|
|
4
7
|
import { claimGuardedRunner } from '../phases/ship-git.js';
|
|
5
8
|
import { stackPositionFor } from '../phases/stack-order.js';
|
|
6
9
|
import { collectFailingJobLogs as collectFailingJobLogsDefault } from '../utils/ci-evidence.js';
|
|
7
10
|
import { attributableCodeqlAlerts, attributeCiFailure, CI_CHECK_REWORK_INSTRUCTIONS, CI_REWORK_INSTRUCTIONS, ciCheckReworkSummary, ciReworkSummary, listBaseCodeqlAlerts as listBaseCodeqlAlertsDefault, listBaseFailingChecks as listBaseFailingChecksDefault, listPrChangedFiles as listPrChangedFilesDefault, needsBaseAlerts, needsBaseChecks, resolveMaxCiReworkRounds, } from './ci-rework.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
11
|
+
import { runCiReworkRound } from './ci-rework-round.js';
|
|
12
|
+
import { describeSuppression, mergeBaseIntoWorktree as mergeBaseIntoWorktreeDefault, readReworkDiff as readReworkDiffDefault, readWorktreeHead as readWorktreeHeadDefault, } from './ci-suppression-guard.js';
|
|
10
13
|
import { shipParkReason } from './ship-park.js';
|
|
11
14
|
const errorMessage = (err) => (err instanceof Error ? err.message : String(err));
|
|
12
15
|
/** Failing checks the PR caused (not failing on base) that are not CodeQL, in ship.ciFailure order. */
|
|
@@ -16,12 +19,8 @@ function attributableNonCodeqlChecks(evidence, items) {
|
|
|
16
19
|
const names = new Set(items.filter((i) => i.kind === 'check' && i.attributable).map((i) => i.ref));
|
|
17
20
|
return evidence.failingChecks.filter((c) => names.has(c.name) && !/codeql/i.test(c.name));
|
|
18
21
|
}
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
rule: 'guard-error',
|
|
22
|
-
file: '(unknown)',
|
|
23
|
-
match,
|
|
24
|
-
});
|
|
22
|
+
const isPreviewRework = (ship) => !!ship.previewCheck && ship.previewCheck.status !== 'pass' && !ship.ciPending;
|
|
23
|
+
const loadPreviewConfigDefault = (worktree) => loadRepoConfig(worktree)?.preview;
|
|
25
24
|
/**
|
|
26
25
|
* Runs SHIP. When the CI watch fails on CodeQL alerts the PR introduced (on changed files, or not open on base), feeds them to the
|
|
27
26
|
* BUILD rework worker, re-runs CHECK and re-enters SHIP on the same PR, up to
|
|
@@ -33,7 +32,7 @@ const guardError = (match) => ({
|
|
|
33
32
|
* or an unreadable diff, parks ci-failed before the re-CHECK, push or re-watch.
|
|
34
33
|
*/
|
|
35
34
|
export async function shipWithCiRework(ctx, inputs) {
|
|
36
|
-
const { request, ports, shipPhase,
|
|
35
|
+
const { request, ports, shipPhase, check } = ctx;
|
|
37
36
|
const rework = ports.reworkWorker ?? reworkWorkerDefault;
|
|
38
37
|
const listChanged = ports.listPrChangedFiles ?? listPrChangedFilesDefault;
|
|
39
38
|
const listBase = ports.listBaseFailingChecks ?? listBaseFailingChecksDefault;
|
|
@@ -44,6 +43,21 @@ export async function shipWithCiRework(ctx, inputs) {
|
|
|
44
43
|
const collectLogs = ports.collectFailingJobLogs ?? collectFailingJobLogsDefault;
|
|
45
44
|
const { builtRoute, builtModel, planSlice } = inputs;
|
|
46
45
|
const log = ports.events();
|
|
46
|
+
const [owner, repoName] = request.repo.split('/');
|
|
47
|
+
const previewConfig = (ports.loadPreviewConfig ?? loadPreviewConfigDefault)(ports.workspace.path);
|
|
48
|
+
const previewGate = previewConfig
|
|
49
|
+
? (pr) => runPreviewCheck({
|
|
50
|
+
config: previewConfig,
|
|
51
|
+
github: createOctokitPreviewGitHub(ports.octokit),
|
|
52
|
+
owner,
|
|
53
|
+
repo: repoName,
|
|
54
|
+
prNumber: pr.prNumber,
|
|
55
|
+
headSha: pr.headSha,
|
|
56
|
+
worktree: ports.workspace.path,
|
|
57
|
+
logsDir: request.logsDir,
|
|
58
|
+
onPgid: ctx.onPgid,
|
|
59
|
+
})
|
|
60
|
+
: undefined;
|
|
47
61
|
const shipOpts = {
|
|
48
62
|
issue: workKeyFromIssue(request.issue),
|
|
49
63
|
repo: request.repo,
|
|
@@ -65,6 +79,7 @@ export async function shipWithCiRework(ctx, inputs) {
|
|
|
65
79
|
logsDir: request.logsDir,
|
|
66
80
|
work: request.work,
|
|
67
81
|
...(ports.claimSignal ? { run: claimGuardedRunner(ports.claimSignal) } : {}),
|
|
82
|
+
...(previewGate ? { previewGate } : {}),
|
|
68
83
|
laneId: request.lane,
|
|
69
84
|
reviewRouting: inputs.reviewRouting,
|
|
70
85
|
...(inputs.pinNote ? { pinNotes: [inputs.pinNote] } : {}),
|
|
@@ -79,152 +94,151 @@ export async function shipWithCiRework(ctx, inputs) {
|
|
|
79
94
|
ports.claimSignal?.throwIfAborted();
|
|
80
95
|
let ship = await shipPhase({ ...shipOpts, checkSummary: check.summary, reworkRounds: check.reworkRounds });
|
|
81
96
|
ports.claimSignal?.throwIfAborted();
|
|
82
|
-
const [owner, repoName] = request.repo.split('/');
|
|
83
97
|
const maxRounds = resolveMaxCiReworkRounds();
|
|
84
98
|
let rounds = 0;
|
|
85
99
|
let lastCiFailure = ship.ciFailure;
|
|
86
100
|
let suffix = '';
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
101
|
+
const suppressionPark = (findings) => {
|
|
102
|
+
const described = describeSuppression(findings);
|
|
103
|
+
ports.events('ship')('ship', `${described} after CI rework round ${rounds} (PR #${ship.prNumber})`);
|
|
104
|
+
const message = ship.reason
|
|
105
|
+
? `ship phase failed: ${ship.reason} — ${described}`
|
|
106
|
+
: `ship phase failed — ${described}`;
|
|
107
|
+
const base = lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false };
|
|
108
|
+
return { ship, parked: { reason: 'ci-failed', message, ciFailure: { ...base, suppressionAttempt: findings } } };
|
|
109
|
+
};
|
|
110
|
+
const roundPorts = {
|
|
111
|
+
ctx,
|
|
112
|
+
rework,
|
|
113
|
+
readHead,
|
|
114
|
+
readDiff,
|
|
115
|
+
builtRoute,
|
|
116
|
+
builtModel,
|
|
117
|
+
reship: (recheck, reentry) => shipPhase({ ...shipOpts, checkSummary: recheck.summary, reworkRounds: recheck.reworkRounds, reentry }),
|
|
118
|
+
};
|
|
119
|
+
while (!ship.ok && ship.prNumber !== undefined && (ship.ciOutcome === 'failure' || isPreviewRework(ship))) {
|
|
120
|
+
let plan;
|
|
121
|
+
if (ship.previewCheck && isPreviewRework(ship)) {
|
|
122
|
+
if (rounds >= maxRounds) {
|
|
123
|
+
suffix = ` — preview rework budget exhausted after ${rounds} round${rounds === 1 ? '' : 's'}`;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
rounds++;
|
|
127
|
+
log('rework', `CI rework round ${rounds}/${maxRounds}: preview check ${ship.previewCheck.status} on PR #${ship.prNumber}`);
|
|
128
|
+
plan = {
|
|
129
|
+
label: 'preview',
|
|
130
|
+
round: rounds,
|
|
131
|
+
reentry: { prNumber: ship.prNumber, previousHeadSha: ship.headSha },
|
|
132
|
+
summary: {
|
|
133
|
+
failures: 1,
|
|
134
|
+
passes: 0,
|
|
135
|
+
skips: 0,
|
|
136
|
+
total: 1,
|
|
137
|
+
results: [{ checker: 'preview_check', result: 'FAIL', details: previewReworkSummary(ship.previewCheck) }],
|
|
138
|
+
},
|
|
139
|
+
extraInstructions: PREVIEW_REWORK_INSTRUCTIONS,
|
|
140
|
+
};
|
|
97
141
|
}
|
|
98
|
-
|
|
99
|
-
|
|
142
|
+
else {
|
|
143
|
+
lastCiFailure = ship.ciFailure ?? lastCiFailure;
|
|
144
|
+
let changed;
|
|
100
145
|
try {
|
|
101
|
-
|
|
146
|
+
changed = await listChanged(ports.octokit, owner, repoName, ship.prNumber);
|
|
102
147
|
}
|
|
103
148
|
catch (err) {
|
|
104
|
-
|
|
149
|
+
const msg = `could not list PR #${ship.prNumber} files for CI attribution: ${errorMessage(err)}`;
|
|
150
|
+
ports.events('ship')('ship', msg);
|
|
151
|
+
break;
|
|
105
152
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
153
|
+
let base;
|
|
154
|
+
if (needsBaseChecks(ship.ciFailure)) {
|
|
155
|
+
try {
|
|
156
|
+
base = await listBase(ports.octokit, owner, repoName, ship.prNumber);
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
ports.events('ship')('ship', `could not read base checks for PR #${ship.prNumber}: ${errorMessage(err)}`);
|
|
160
|
+
}
|
|
111
161
|
}
|
|
112
|
-
|
|
113
|
-
|
|
162
|
+
let baseAlerts;
|
|
163
|
+
if (needsBaseAlerts(ship.ciFailure, changed)) {
|
|
164
|
+
try {
|
|
165
|
+
baseAlerts = await listBaseAlerts(ports.octokit, owner, repoName, ship.prNumber);
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
ports.events('ship')('ship', `could not read base CodeQL alerts for PR #${ship.prNumber}: ${errorMessage(err)}`);
|
|
169
|
+
}
|
|
114
170
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
const attributable = attributableCodeqlAlerts(ship.ciFailure, changed, baseAlerts);
|
|
126
|
-
const failingChecks = attributable.length === 0 && base ? attributableNonCodeqlChecks(ship.ciFailure, attribution.items) : [];
|
|
127
|
-
if (attributable.length === 0 && failingChecks.length === 0)
|
|
128
|
-
break;
|
|
129
|
-
if (rounds >= maxRounds) {
|
|
130
|
-
suffix = ` — CI rework budget exhausted after ${rounds} round${rounds === 1 ? '' : 's'}`;
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
rounds++;
|
|
134
|
-
const skipped = attribution.items.filter((i) => !i.attributable).map((i) => i.ref);
|
|
135
|
-
const what = attributable.length > 0
|
|
136
|
-
? `${attributable.length} attributable CodeQL alert(s)`
|
|
137
|
-
: `attributable failing check(s) ${failingChecks.map((c) => c.name).join(', ')}`;
|
|
138
|
-
log('rework', `CI rework round ${rounds}/${maxRounds}: ${what} on PR #${ship.prNumber}` +
|
|
139
|
-
(skipped.length > 0 ? `; non-attributable: ${skipped.join(', ')}` : ''), lastCiFailure ? { ciFailure: lastCiFailure } : undefined);
|
|
140
|
-
const suppressionPark = (findings) => {
|
|
141
|
-
const described = describeSuppression(findings);
|
|
142
|
-
ports.events('ship')('ship', `${described} after CI rework round ${rounds} (PR #${ship.prNumber})`);
|
|
143
|
-
const message = ship.reason
|
|
144
|
-
? `ship phase failed: ${ship.reason} — ${described}`
|
|
145
|
-
: `ship phase failed — ${described}`;
|
|
146
|
-
const base = lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false };
|
|
147
|
-
return { ship, parked: { reason: 'ci-failed', message, ciFailure: { ...base, suppressionAttempt: findings } } };
|
|
148
|
-
};
|
|
149
|
-
let logs = { jobLogs: [], errors: [] };
|
|
150
|
-
if (attributable.length === 0 && base) {
|
|
151
|
-
const merge = await mergeBase(ports.workspace.path, base.baseRef);
|
|
152
|
-
if (!merge.ok && merge.conflict) {
|
|
153
|
-
const message = `merge of origin/${base.baseRef} into ${request.branch} conflicts before CI rework round ${rounds}: ${merge.paths.join(', ')}`;
|
|
154
|
-
ports.events('ship')('ship', message);
|
|
155
|
-
return { ship, parked: { reason: 'conflict', message, ciFailure: lastCiFailure } };
|
|
171
|
+
const attribution = attributeCiFailure(ship.ciFailure, changed, base, baseAlerts);
|
|
172
|
+
if (ship.ciFailure)
|
|
173
|
+
lastCiFailure = { ...ship.ciFailure, attribution };
|
|
174
|
+
if (attribution.baseline) {
|
|
175
|
+
const note = 'baseline: no CI failure is attributable to this PR';
|
|
176
|
+
suffix = ` — ${note}`;
|
|
177
|
+
ports.events('ship')('ship', `${note} (PR #${ship.prNumber})`);
|
|
178
|
+
break;
|
|
156
179
|
}
|
|
157
|
-
|
|
158
|
-
|
|
180
|
+
const attributable = attributableCodeqlAlerts(ship.ciFailure, changed, baseAlerts);
|
|
181
|
+
const failingChecks = attributable.length === 0 && base ? attributableNonCodeqlChecks(ship.ciFailure, attribution.items) : [];
|
|
182
|
+
if (attributable.length === 0 && failingChecks.length === 0)
|
|
183
|
+
break;
|
|
184
|
+
if (rounds >= maxRounds) {
|
|
185
|
+
suffix = ` — CI rework budget exhausted after ${rounds} round${rounds === 1 ? '' : 's'}`;
|
|
159
186
|
break;
|
|
160
187
|
}
|
|
161
|
-
|
|
162
|
-
|
|
188
|
+
rounds++;
|
|
189
|
+
const skipped = attribution.items.filter((i) => !i.attributable).map((i) => i.ref);
|
|
190
|
+
const what = attributable.length > 0
|
|
191
|
+
? `${attributable.length} attributable CodeQL alert(s)`
|
|
192
|
+
: `attributable failing check(s) ${failingChecks.map((c) => c.name).join(', ')}`;
|
|
193
|
+
log('rework', `CI rework round ${rounds}/${maxRounds}: ${what} on PR #${ship.prNumber}` +
|
|
194
|
+
(skipped.length > 0 ? `; non-attributable: ${skipped.join(', ')}` : ''), lastCiFailure ? { ciFailure: lastCiFailure } : undefined);
|
|
195
|
+
let logs = { jobLogs: [], errors: [] };
|
|
196
|
+
if (attributable.length === 0 && base) {
|
|
197
|
+
const merge = await mergeBase(ports.workspace.path, base.baseRef);
|
|
198
|
+
if (!merge.ok && merge.conflict) {
|
|
199
|
+
const message = `merge of origin/${base.baseRef} into ${request.branch} conflicts before CI rework round ${rounds}: ${merge.paths.join(', ')}`;
|
|
200
|
+
ports.events('ship')('ship', message);
|
|
201
|
+
return { ship, parked: { reason: 'conflict', message, ciFailure: lastCiFailure } };
|
|
202
|
+
}
|
|
203
|
+
if (!merge.ok) {
|
|
204
|
+
suffix = ` — could not merge origin/${base.baseRef}: ${merge.message}`;
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
if (merge.merged) {
|
|
208
|
+
ports.events('ship')('ship', `merged origin/${base.baseRef} into ${request.branch} before CI rework round ${rounds}`);
|
|
209
|
+
}
|
|
210
|
+
logs = await collectLogs({
|
|
211
|
+
octokit: ports.octokit,
|
|
212
|
+
owner,
|
|
213
|
+
repo: repoName,
|
|
214
|
+
ref: ship.headSha ?? request.branch,
|
|
215
|
+
checkNames: failingChecks.map((c) => c.name),
|
|
216
|
+
});
|
|
217
|
+
lastCiFailure = {
|
|
218
|
+
...(lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false }),
|
|
219
|
+
jobLogs: logs.jobLogs,
|
|
220
|
+
};
|
|
163
221
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
...(lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false }),
|
|
173
|
-
jobLogs: logs.jobLogs,
|
|
222
|
+
plan = {
|
|
223
|
+
label: 'CI',
|
|
224
|
+
round: rounds,
|
|
225
|
+
reentry: { prNumber: ship.prNumber, previousHeadSha: ship.headSha },
|
|
226
|
+
summary: attributable.length > 0
|
|
227
|
+
? ciReworkSummary(attributable)
|
|
228
|
+
: ciCheckReworkSummary(failingChecks, logs.jobLogs, logs.errors),
|
|
229
|
+
extraInstructions: attributable.length > 0 ? CI_REWORK_INSTRUCTIONS : CI_CHECK_REWORK_INSTRUCTIONS,
|
|
174
230
|
};
|
|
175
231
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
const worked = await rework({
|
|
184
|
-
issue: workKeyFromIssue(request.issue),
|
|
185
|
-
worktree: ports.workspace.path,
|
|
186
|
-
specPath: request.specPath,
|
|
187
|
-
summary: attributable.length > 0
|
|
188
|
-
? ciReworkSummary(attributable)
|
|
189
|
-
: ciCheckReworkSummary(failingChecks, logs.jobLogs, logs.errors),
|
|
190
|
-
constitution: ctx.constitution,
|
|
191
|
-
router: ports.router,
|
|
192
|
-
log: ports.events('build'),
|
|
193
|
-
buildTimeoutSeconds: request.timeouts.build,
|
|
194
|
-
sandbox: request.sandboxPolicy,
|
|
195
|
-
appPort: ctx.appPort,
|
|
196
|
-
appBaseUrl: ctx.appBaseUrl,
|
|
197
|
-
onPgid: ctx.onPgid,
|
|
198
|
-
...reworkRouteFor(builtRoute, builtModel),
|
|
199
|
-
runId: ctx.runId,
|
|
200
|
-
onWorkerResult: ctx.checkOpts.onWorkerResult,
|
|
201
|
-
extraInstructions: attributable.length > 0 ? CI_REWORK_INSTRUCTIONS : CI_CHECK_REWORK_INSTRUCTIONS,
|
|
202
|
-
});
|
|
203
|
-
if (!worked.modelCompleted) {
|
|
204
|
-
suffix = ' — CI rework worker never ran';
|
|
232
|
+
const step = await runCiReworkRound(roundPorts, plan);
|
|
233
|
+
if (step.kind === 'suppressed')
|
|
234
|
+
return suppressionPark(step.findings);
|
|
235
|
+
if (step.kind === 'ended')
|
|
236
|
+
return { ship, outcome: step.outcome };
|
|
237
|
+
if (step.kind === 'never-ran') {
|
|
238
|
+
suffix = ` — ${plan.label} rework worker never ran`;
|
|
205
239
|
break;
|
|
206
240
|
}
|
|
207
|
-
|
|
208
|
-
try {
|
|
209
|
-
findings = scanReworkDiff(await readDiff(ports.workspace.path, beforeSha));
|
|
210
|
-
}
|
|
211
|
-
catch (err) {
|
|
212
|
-
findings = [guardError(`could not read the CI rework diff: ${errorMessage(err)}`)];
|
|
213
|
-
}
|
|
214
|
-
if (findings.length > 0)
|
|
215
|
-
return suppressionPark(findings);
|
|
216
|
-
const recheck = await checkPhase(ctx.checkOpts);
|
|
217
|
-
const ended = await ctx.onRecheck(recheck, rounds);
|
|
218
|
-
if (ended)
|
|
219
|
-
return { ship, outcome: ended };
|
|
220
|
-
ports.claimSignal?.throwIfAborted();
|
|
221
|
-
ship = await shipPhase({
|
|
222
|
-
...shipOpts,
|
|
223
|
-
checkSummary: recheck.summary,
|
|
224
|
-
reworkRounds: recheck.reworkRounds,
|
|
225
|
-
reentry: { prNumber: ship.prNumber, previousHeadSha: ship.headSha },
|
|
226
|
-
});
|
|
227
|
-
ports.claimSignal?.throwIfAborted();
|
|
241
|
+
ship = step.ship;
|
|
228
242
|
}
|
|
229
243
|
if (ship.ok)
|
|
230
244
|
return { ship };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-rework-loop.js","sourceRoot":"","sources":["../../src/run/ci-rework-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ci-rework-loop.js","sourceRoot":"","sources":["../../src/run/ci-rework-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { CheckPhaseResult, reworkWorker as reworkWorkerDefault } from '../phases/check.js';
|
|
2
|
+
import type { ShipResult } from '../phases/ship.js';
|
|
3
|
+
import type { CiSuppressionFinding } from '../types/index.js';
|
|
4
|
+
import type { readReworkDiff, readWorktreeHead } from './ci-suppression-guard.js';
|
|
5
|
+
import type { CiReworkLoopContext } from './ci-rework-loop.js';
|
|
6
|
+
import { type BuildRoute, type RunOutcome } from './outcome.js';
|
|
7
|
+
type ReworkInput = Parameters<typeof reworkWorkerDefault>[0];
|
|
8
|
+
export interface CiReworkRoundPorts {
|
|
9
|
+
ctx: CiReworkLoopContext;
|
|
10
|
+
rework: typeof reworkWorkerDefault;
|
|
11
|
+
readHead: typeof readWorktreeHead;
|
|
12
|
+
readDiff: typeof readReworkDiff;
|
|
13
|
+
builtRoute: BuildRoute;
|
|
14
|
+
builtModel: string;
|
|
15
|
+
reship: (recheck: CheckPhaseResult, reentry: CiReworkReentry) => Promise<ShipResult>;
|
|
16
|
+
}
|
|
17
|
+
export interface CiReworkReentry {
|
|
18
|
+
prNumber: number;
|
|
19
|
+
previousHeadSha: string | undefined;
|
|
20
|
+
}
|
|
21
|
+
export interface CiReworkRoundPlan {
|
|
22
|
+
round: number;
|
|
23
|
+
reentry: CiReworkReentry;
|
|
24
|
+
summary: ReworkInput['summary'];
|
|
25
|
+
extraInstructions: string;
|
|
26
|
+
}
|
|
27
|
+
export type CiReworkRoundOutcome = {
|
|
28
|
+
kind: 'shipped';
|
|
29
|
+
ship: ShipResult;
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'never-ran';
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'suppressed';
|
|
34
|
+
findings: CiSuppressionFinding[];
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'ended';
|
|
37
|
+
outcome: RunOutcome;
|
|
38
|
+
};
|
|
39
|
+
export declare function runCiReworkRound(ports: CiReworkRoundPorts, plan: CiReworkRoundPlan): Promise<CiReworkRoundOutcome>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=ci-rework-round.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-rework-round.d.ts","sourceRoot":"","sources":["../../src/run/ci-rework-round.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEhF,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,mBAAmB,CAAC;IACzB,MAAM,EAAE,OAAO,mBAAmB,CAAC;IACnC,QAAQ,EAAE,OAAO,gBAAgB,CAAC;IAClC,QAAQ,EAAE,OAAO,cAAc,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAW3C,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,oBAAoB,CAAC,CA2C/B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { workKeyFromIssue } from '../work/work-key.js';
|
|
2
|
+
import { scanReworkDiff } from './ci-suppression-guard.js';
|
|
3
|
+
import { reworkRouteFor } from './outcome.js';
|
|
4
|
+
const errorMessage = (err) => (err instanceof Error ? err.message : String(err));
|
|
5
|
+
const guardError = (match) => ({
|
|
6
|
+
kind: 'path',
|
|
7
|
+
rule: 'guard-error',
|
|
8
|
+
file: '(unknown)',
|
|
9
|
+
match,
|
|
10
|
+
});
|
|
11
|
+
export async function runCiReworkRound(ports, plan) {
|
|
12
|
+
const { ctx } = ports;
|
|
13
|
+
const { request } = ctx;
|
|
14
|
+
const worktree = ctx.ports.workspace.path;
|
|
15
|
+
let before;
|
|
16
|
+
try {
|
|
17
|
+
before = await ports.readHead(worktree);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return { kind: 'suppressed', findings: [guardError(`could not read the worktree HEAD: ${errorMessage(err)}`)] };
|
|
21
|
+
}
|
|
22
|
+
const worked = await ports.rework({
|
|
23
|
+
issue: workKeyFromIssue(request.issue),
|
|
24
|
+
worktree,
|
|
25
|
+
specPath: request.specPath,
|
|
26
|
+
summary: plan.summary,
|
|
27
|
+
constitution: ctx.constitution,
|
|
28
|
+
router: ctx.ports.router,
|
|
29
|
+
log: ctx.ports.events('build'),
|
|
30
|
+
buildTimeoutSeconds: request.timeouts.build,
|
|
31
|
+
sandbox: request.sandboxPolicy,
|
|
32
|
+
appPort: ctx.appPort,
|
|
33
|
+
appBaseUrl: ctx.appBaseUrl,
|
|
34
|
+
onPgid: ctx.onPgid,
|
|
35
|
+
...reworkRouteFor(ports.builtRoute, ports.builtModel),
|
|
36
|
+
runId: ctx.runId,
|
|
37
|
+
onWorkerResult: ctx.checkOpts.onWorkerResult,
|
|
38
|
+
extraInstructions: plan.extraInstructions,
|
|
39
|
+
});
|
|
40
|
+
if (!worked.modelCompleted)
|
|
41
|
+
return { kind: 'never-ran' };
|
|
42
|
+
let findings;
|
|
43
|
+
try {
|
|
44
|
+
findings = scanReworkDiff(await ports.readDiff(worktree, before));
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
findings = [guardError(`could not read the CI rework diff: ${errorMessage(err)}`)];
|
|
48
|
+
}
|
|
49
|
+
if (findings.length > 0)
|
|
50
|
+
return { kind: 'suppressed', findings };
|
|
51
|
+
const recheck = await ctx.checkPhase(ctx.checkOpts);
|
|
52
|
+
const ended = await ctx.onRecheck(recheck, plan.round);
|
|
53
|
+
if (ended)
|
|
54
|
+
return { kind: 'ended', outcome: ended };
|
|
55
|
+
ctx.ports.claimSignal?.throwIfAborted();
|
|
56
|
+
const ship = await ports.reship(recheck, plan.reentry);
|
|
57
|
+
ctx.ports.claimSignal?.throwIfAborted();
|
|
58
|
+
return { kind: 'shipped', ship };
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=ci-rework-round.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-rework-round.js","sourceRoot":"","sources":["../../src/run/ci-rework-round.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ModelsConfig, RoutesConfig } from '../config/index.js';
|
|
2
|
+
import type { BuildResult, buildPhase as realBuildPhase } from '../phases/build.js';
|
|
3
|
+
import type { CheckPhaseResult, checkPhase as realCheckPhase } from '../phases/check.js';
|
|
4
|
+
import type { PlanResult, planPhase as realPlanPhase } from '../phases/plan.js';
|
|
5
|
+
import type { shipPhase as realShipPhase } from '../phases/ship.js';
|
|
6
|
+
import type { WorkRequest } from '../work/index.js';
|
|
7
|
+
import type { RunPolicy } from './policy.js';
|
|
8
|
+
import type { reworkWorker as realReworkWorker } from '../phases/check.js';
|
|
9
|
+
import type { RunPorts, RunRequest } from './run-issue.js';
|
|
10
|
+
export declare const planPhase: import("vitest").Mock<typeof realPlanPhase>;
|
|
11
|
+
export declare const buildPhase: import("vitest").Mock<typeof realBuildPhase>;
|
|
12
|
+
export declare const checkPhase: import("vitest").Mock<typeof realCheckPhase>;
|
|
13
|
+
export declare const shipPhase: import("vitest").Mock<typeof realShipPhase>;
|
|
14
|
+
export declare const reworkWorker: import("vitest").Mock<typeof realReworkWorker>;
|
|
15
|
+
export declare const readWorktreeHead: import("vitest").Mock<(worktree: string) => Promise<string>>;
|
|
16
|
+
export declare const readReworkDiff: import("vitest").Mock<(worktree: string, fromSha: string) => Promise<string>>;
|
|
17
|
+
export declare const mergeBaseIntoWorktree: import("vitest").Mock<typeof import("./ci-suppression-guard.js").mergeBaseIntoWorktree>;
|
|
18
|
+
export declare const collectFailingJobLogs: import("vitest").Mock<typeof import("../utils/ci-evidence.js").collectFailingJobLogs>;
|
|
19
|
+
export declare const listPrChangedFiles: import("vitest").Mock<typeof import("./ci-rework.js").listPrChangedFiles>;
|
|
20
|
+
export declare const listBaseFailingChecks: import("vitest").Mock<typeof import("./ci-rework.js").listBaseFailingChecks>;
|
|
21
|
+
export declare const listBaseCodeqlAlerts: import("vitest").Mock<typeof import("./ci-rework.js").listBaseCodeqlAlerts>;
|
|
22
|
+
export declare const PLAN_OK: PlanResult;
|
|
23
|
+
export declare const BUILD_OK: BuildResult;
|
|
24
|
+
export declare const CHECK_OK: CheckPhaseResult;
|
|
25
|
+
export declare const WORK: WorkRequest;
|
|
26
|
+
export declare const request: RunRequest;
|
|
27
|
+
export declare const ROUTES: RoutesConfig;
|
|
28
|
+
export declare const MODELS: ModelsConfig;
|
|
29
|
+
export declare const policy: RunPolicy;
|
|
30
|
+
export declare const tmp: import("../testing.js").TempDirs;
|
|
31
|
+
export declare const breakerDir: string;
|
|
32
|
+
export type Log = ReturnType<RunPorts['events']>;
|
|
33
|
+
export declare function ports(log: Log): RunPorts;
|
|
34
|
+
export declare function resetCiReworkMocks(): void;
|
|
35
|
+
//# sourceMappingURL=ci-rework-test-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-rework-test-helpers.d.ts","sourceRoot":"","sources":["../../src/run/ci-rework-test-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,SAAS,6CAAgC,CAAC;AACvD,eAAO,MAAM,UAAU,8CAAiC,CAAC;AACzD,eAAO,MAAM,UAAU,8CAAiC,CAAC;AACzD,eAAO,MAAM,SAAS,6CAAgC,CAAC;AACvD,eAAO,MAAM,YAAY,gDAAmC,CAAC;AAC7D,eAAO,MAAM,gBAAgB,mCAAoB,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAG,CAAC;AAC/E,eAAO,MAAM,cAAc,mCAAoB,MAAM,WAAW,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAG,CAAC;AAC9F,eAAO,MAAM,qBAAqB,yFAA0D,CAAC;AAC7F,eAAO,MAAM,qBAAqB,uFAA0D,CAAC;AAC7F,eAAO,MAAM,kBAAkB,2EAAuD,CAAC;AACvF,eAAO,MAAM,qBAAqB,8EAA0D,CAAC;AAC7F,eAAO,MAAM,oBAAoB,6EAAyD,CAAC;AAE3F,eAAO,MAAM,OAAO,EAAE,UAMrB,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,WAAsD,CAAC;AAC9E,eAAO,MAAM,QAAQ,EAAE,gBAItB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,WAMlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAerB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,YAAyC,CAAC;AAC/D,eAAO,MAAM,MAAM,EAAE,YAMpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,SAYpB,CAAC;AAEF,eAAO,MAAM,GAAG,kCAAmB,CAAC;AACpC,eAAO,MAAM,UAAU,QAAuC,CAAC;AAI/D,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjD,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAqBxC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAkBzC"}
|