@tokenfactory/acc-runner 0.44.1 → 0.44.3
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 +20 -1
- package/dist/bin-resolve.d.ts +39 -3
- package/dist/bin-resolve.d.ts.map +1 -1
- package/dist/bin-resolve.js +176 -12
- package/dist/bin-resolve.js.map +1 -1
- package/dist/build-fingerprint.d.ts +66 -0
- package/dist/build-fingerprint.d.ts.map +1 -0
- package/dist/build-fingerprint.js +70 -0
- package/dist/build-fingerprint.js.map +1 -0
- package/dist/build-info.generated.d.ts +3 -0
- package/dist/build-info.generated.d.ts.map +1 -0
- package/dist/build-info.generated.js +3 -0
- package/dist/build-info.generated.js.map +1 -0
- package/dist/capacity/resume-controller.d.ts +5 -3
- package/dist/capacity/resume-controller.d.ts.map +1 -1
- package/dist/capacity/resume-controller.js +9 -0
- package/dist/capacity/resume-controller.js.map +1 -1
- package/dist/chat-delegation-guard.d.ts +23 -0
- package/dist/chat-delegation-guard.d.ts.map +1 -0
- package/dist/chat-delegation-guard.js +62 -0
- package/dist/chat-delegation-guard.js.map +1 -0
- package/dist/chat-lane.d.ts +17 -6
- package/dist/chat-lane.d.ts.map +1 -1
- package/dist/chat-lane.js +29 -8
- package/dist/chat-lane.js.map +1 -1
- package/dist/companion-identity.d.ts +37 -0
- package/dist/companion-identity.d.ts.map +1 -1
- package/dist/companion-identity.js +98 -29
- package/dist/companion-identity.js.map +1 -1
- package/dist/companion-run.d.ts +1 -50
- package/dist/companion-run.d.ts.map +1 -1
- package/dist/companion-run.js +48 -105
- package/dist/companion-run.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -3
- package/dist/config.js.map +1 -1
- package/dist/conformance.d.ts +49 -0
- package/dist/conformance.d.ts.map +1 -0
- package/dist/conformance.js +121 -0
- package/dist/conformance.js.map +1 -0
- package/dist/cost-pricing.d.ts +46 -0
- package/dist/cost-pricing.d.ts.map +1 -1
- package/dist/cost-pricing.js +58 -1
- package/dist/cost-pricing.js.map +1 -1
- package/dist/credential-identity.d.ts +70 -0
- package/dist/credential-identity.d.ts.map +1 -0
- package/dist/credential-identity.js +128 -0
- package/dist/credential-identity.js.map +1 -0
- package/dist/doctor.d.ts +33 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +284 -44
- package/dist/doctor.js.map +1 -1
- package/dist/engines/chat-stream.d.ts +71 -1
- package/dist/engines/chat-stream.d.ts.map +1 -1
- package/dist/engines/chat-stream.js +126 -8
- package/dist/engines/chat-stream.js.map +1 -1
- package/dist/engines/claude-code-chat.d.ts +11 -1
- package/dist/engines/claude-code-chat.d.ts.map +1 -1
- package/dist/engines/claude-code-chat.js +69 -5
- package/dist/engines/claude-code-chat.js.map +1 -1
- package/dist/engines/claude-code.d.ts.map +1 -1
- package/dist/engines/claude-code.js +30 -6
- package/dist/engines/claude-code.js.map +1 -1
- package/dist/engines/codex.d.ts.map +1 -1
- package/dist/engines/codex.js +18 -5
- package/dist/engines/codex.js.map +1 -1
- package/dist/engines/registry.d.ts +26 -0
- package/dist/engines/registry.d.ts.map +1 -1
- package/dist/engines/registry.js +37 -0
- package/dist/engines/registry.js.map +1 -1
- package/dist/engines/types.d.ts +5 -0
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/failure-classifier.d.ts +1 -1
- package/dist/failure-classifier.d.ts.map +1 -1
- package/dist/failure-classifier.js +65 -12
- package/dist/failure-classifier.js.map +1 -1
- package/dist/gh.d.ts +15 -0
- package/dist/gh.d.ts.map +1 -1
- package/dist/gh.js +18 -0
- package/dist/gh.js.map +1 -1
- package/dist/git.d.ts +6 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +27 -1
- package/dist/git.js.map +1 -1
- package/dist/keychain.d.ts +17 -0
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +30 -0
- package/dist/keychain.js.map +1 -1
- package/dist/loc-advisory.d.ts +70 -0
- package/dist/loc-advisory.d.ts.map +1 -0
- package/dist/loc-advisory.js +196 -0
- package/dist/loc-advisory.js.map +1 -0
- package/dist/locks/claim-lock-policy.d.ts +67 -0
- package/dist/locks/claim-lock-policy.d.ts.map +1 -0
- package/dist/locks/claim-lock-policy.js +132 -0
- package/dist/locks/claim-lock-policy.js.map +1 -0
- package/dist/login.d.ts +59 -2
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +87 -7
- package/dist/login.js.map +1 -1
- package/dist/mcp-spawn.d.ts +54 -0
- package/dist/mcp-spawn.d.ts.map +1 -1
- package/dist/mcp-spawn.js +88 -4
- package/dist/mcp-spawn.js.map +1 -1
- package/dist/migration-seq-guard.d.ts +28 -1
- package/dist/migration-seq-guard.d.ts.map +1 -1
- package/dist/migration-seq-guard.js +111 -6
- package/dist/migration-seq-guard.js.map +1 -1
- package/dist/output-diagnostics.d.ts +15 -0
- package/dist/output-diagnostics.d.ts.map +1 -0
- package/dist/output-diagnostics.js +95 -0
- package/dist/output-diagnostics.js.map +1 -0
- package/dist/pr-open-guard.d.ts +67 -0
- package/dist/pr-open-guard.d.ts.map +1 -0
- package/dist/pr-open-guard.js +79 -0
- package/dist/pr-open-guard.js.map +1 -0
- package/dist/prepr-gate.d.ts +229 -1
- package/dist/prepr-gate.d.ts.map +1 -1
- package/dist/prepr-gate.js +406 -3
- package/dist/prepr-gate.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +30 -5
- package/dist/program.js.map +1 -1
- package/dist/provider-auth.d.ts +8 -0
- package/dist/provider-auth.d.ts.map +1 -1
- package/dist/provider-auth.js +10 -0
- package/dist/provider-auth.js.map +1 -1
- package/dist/runtime/quarantine.d.ts +11 -0
- package/dist/runtime/quarantine.d.ts.map +1 -1
- package/dist/runtime/quarantine.js +16 -1
- package/dist/runtime/quarantine.js.map +1 -1
- package/dist/runtime/reviewer.d.ts +90 -2
- package/dist/runtime/reviewer.d.ts.map +1 -1
- package/dist/runtime/reviewer.js +547 -46
- package/dist/runtime/reviewer.js.map +1 -1
- package/dist/runtime/running-build.d.ts +24 -0
- package/dist/runtime/running-build.d.ts.map +1 -0
- package/dist/runtime/running-build.js +62 -0
- package/dist/runtime/running-build.js.map +1 -0
- package/dist/runtime/worktree.d.ts +45 -0
- package/dist/runtime/worktree.d.ts.map +1 -1
- package/dist/runtime/worktree.js +174 -5
- package/dist/runtime/worktree.js.map +1 -1
- package/dist/task-runner.d.ts +126 -5
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +1219 -127
- package/dist/task-runner.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/watch-chat/wire.d.ts +80 -0
- package/dist/watch-chat/wire.d.ts.map +1 -1
- package/dist/watch-chat/wire.js +203 -43
- package/dist/watch-chat/wire.js.map +1 -1
- package/dist/watch.d.ts +70 -16
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +501 -89
- package/dist/watch.js.map +1 -1
- package/package.json +2 -2
|
@@ -108,6 +108,38 @@ async function defaultListAddedMigrations(workdir, baseRef) {
|
|
|
108
108
|
.map((s) => s.trim())
|
|
109
109
|
.filter((s) => s.toLowerCase().endsWith(".sql"));
|
|
110
110
|
}
|
|
111
|
+
async function defaultReadWorkingFile(workdir, file) {
|
|
112
|
+
try {
|
|
113
|
+
return await (await import("node:fs/promises")).readFile(path.join(workdir, file), "utf8");
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async function defaultReadRefFile(workdir, ref, file) {
|
|
120
|
+
const res = await execa("git", ["show", `${ref}:${file}`], {
|
|
121
|
+
cwd: workdir,
|
|
122
|
+
env: buildEnv(),
|
|
123
|
+
reject: false,
|
|
124
|
+
// git show emits the blob verbatim; execa would otherwise strip the trailing
|
|
125
|
+
// newline that fs.readFile keeps, making a byte-identical inherited file
|
|
126
|
+
// compare UNEQUAL to its working-tree copy (the #2132 identity check).
|
|
127
|
+
stripFinalNewline: false,
|
|
128
|
+
});
|
|
129
|
+
return res.exitCode === 0 ? (res.stdout ?? "") : null;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* True when two migration bodies are the SAME migration modulo their seq number
|
|
133
|
+
* — the branch merely INHERITED this file from the target (a merge brought it in
|
|
134
|
+
* unchanged), so renaming it would corrupt an already-merged, already-applied
|
|
135
|
+
* migration (#2132). A same-seq file with different content is a genuine
|
|
136
|
+
* collision and returns false, so it still renumbers (AC2). The seq token (both
|
|
137
|
+
* zero-padded and bare) is neutralised in both sides before the compare.
|
|
138
|
+
*/
|
|
139
|
+
export function sameMigrationModuloSeq(a, b, seq) {
|
|
140
|
+
const norm = (s) => s.split(String(seq).padStart(4, "0")).join("§").split(String(seq)).join("§");
|
|
141
|
+
return norm(a) === norm(b);
|
|
142
|
+
}
|
|
111
143
|
async function defaultRunRenumber(workdir, files, baselineSeqs) {
|
|
112
144
|
const script = path.join(workdir, "scripts", "ci", "migration-lint.mjs");
|
|
113
145
|
const args = ["--renumber"];
|
|
@@ -137,6 +169,21 @@ async function defaultIsDirty(workdir) {
|
|
|
137
169
|
});
|
|
138
170
|
return (res.stdout ?? "").trim().length > 0;
|
|
139
171
|
}
|
|
172
|
+
async function defaultListChangedFiles(workdir) {
|
|
173
|
+
const res = await execa("git", ["status", "--porcelain"], {
|
|
174
|
+
cwd: workdir,
|
|
175
|
+
env: buildEnv(),
|
|
176
|
+
reject: false,
|
|
177
|
+
});
|
|
178
|
+
if (res.exitCode !== 0)
|
|
179
|
+
return [];
|
|
180
|
+
// Porcelain: "XY <path>" or "R <old> -> <new>" (renames — take the new path).
|
|
181
|
+
return (res.stdout ?? "")
|
|
182
|
+
.split("\n")
|
|
183
|
+
.map((l) => l.slice(3).trim())
|
|
184
|
+
.filter(Boolean)
|
|
185
|
+
.map((p) => (p.includes(" -> ") ? p.split(" -> ")[1].trim() : p));
|
|
186
|
+
}
|
|
140
187
|
async function defaultCommit(workdir, message) {
|
|
141
188
|
await execa("git", ["add", "-A"], { cwd: workdir, env: buildEnv(), reject: false });
|
|
142
189
|
await execa("git", ["commit", "-m", message], {
|
|
@@ -204,10 +251,13 @@ export async function revalidateMigrationSeq(workdir, opts, deps = {}) {
|
|
|
204
251
|
? ["FETCH_HEAD", `${remote}/${opts.integrationBranch}`]
|
|
205
252
|
: [`${remote}/${opts.integrationBranch}`];
|
|
206
253
|
let remoteFiles = null;
|
|
254
|
+
let chosenRef = refs[0];
|
|
207
255
|
for (const ref of refs) {
|
|
208
256
|
remoteFiles = await listRemote(workdir, ref);
|
|
209
|
-
if (remoteFiles && remoteFiles.length > 0)
|
|
257
|
+
if (remoteFiles && remoteFiles.length > 0) {
|
|
258
|
+
chosenRef = ref;
|
|
210
259
|
break;
|
|
260
|
+
}
|
|
211
261
|
}
|
|
212
262
|
if (!remoteFiles || remoteFiles.length === 0) {
|
|
213
263
|
return {
|
|
@@ -222,10 +272,14 @@ export async function revalidateMigrationSeq(workdir, opts, deps = {}) {
|
|
|
222
272
|
// seqs, plus the live ledger when the caller could read it (a migration can
|
|
223
273
|
// be applied before its file merges).
|
|
224
274
|
const claimed = new Set();
|
|
275
|
+
const remoteBySeq = new Map();
|
|
225
276
|
for (const f of remoteFiles) {
|
|
226
277
|
const n = migrationSeq(f);
|
|
227
|
-
if (n !== null)
|
|
278
|
+
if (n !== null) {
|
|
228
279
|
claimed.add(n);
|
|
280
|
+
if (!remoteBySeq.has(n))
|
|
281
|
+
remoteBySeq.set(n, f);
|
|
282
|
+
}
|
|
229
283
|
}
|
|
230
284
|
for (const n of opts.appliedSeqs ?? []) {
|
|
231
285
|
if (Number.isFinite(n) && n > 0)
|
|
@@ -249,27 +303,74 @@ export async function revalidateMigrationSeq(workdir, opts, deps = {}) {
|
|
|
249
303
|
remoteMaxSeq,
|
|
250
304
|
};
|
|
251
305
|
}
|
|
306
|
+
// #2132: a stale `baseRef` (a rework's local integration ref) makes the diff
|
|
307
|
+
// above count migrations the branch only INHERITED (a sibling merged them
|
|
308
|
+
// upstream, then an integration sync pulled them into this branch) as
|
|
309
|
+
// migrations the branch ADDED. Renaming one rewrites an already-merged,
|
|
310
|
+
// already-applied migration and every reference to it (incl. tests). So drop
|
|
311
|
+
// any candidate whose file the fresh target head ALREADY carries at that seq
|
|
312
|
+
// with identical content (modulo seq refs) — the belt-and-suspenders identity
|
|
313
|
+
// check (A + C): reachable-from-target AND unchanged ⇒ inherited, never a
|
|
314
|
+
// rename. A same-seq file that DIFFERS is a genuine collision and stays.
|
|
315
|
+
const readWorking = deps.readWorkingFile ?? defaultReadWorkingFile;
|
|
316
|
+
const readRef = deps.readRefFile ?? defaultReadRefFile;
|
|
317
|
+
const classify = new Map();
|
|
318
|
+
const own = [];
|
|
319
|
+
const inherited = [];
|
|
320
|
+
for (const f of stale) {
|
|
321
|
+
const n = migrationSeq(f);
|
|
322
|
+
const remoteAtSeq = remoteBySeq.get(n) ?? null;
|
|
323
|
+
const reachable = remoteAtSeq === f;
|
|
324
|
+
let identical = false;
|
|
325
|
+
if (remoteAtSeq) {
|
|
326
|
+
const [mine, theirs] = await Promise.all([
|
|
327
|
+
readWorking(workdir, f),
|
|
328
|
+
readRef(workdir, chosenRef, remoteAtSeq),
|
|
329
|
+
]);
|
|
330
|
+
identical = mine !== null && theirs !== null && sameMigrationModuloSeq(mine, theirs, n);
|
|
331
|
+
}
|
|
332
|
+
classify.set(f, { upstreamSeq: remoteAtSeq ? n : null, identical, reachable });
|
|
333
|
+
if (identical)
|
|
334
|
+
inherited.push(f);
|
|
335
|
+
else
|
|
336
|
+
own.push(f);
|
|
337
|
+
}
|
|
338
|
+
if (own.length === 0) {
|
|
339
|
+
return {
|
|
340
|
+
renumbered: false,
|
|
341
|
+
skipped: "inherited-only",
|
|
342
|
+
detail: `migration(s) ${inherited.join(", ")} are inherited from a fresh ` +
|
|
343
|
+
`${remote}/${opts.integrationBranch} (already merged there, identical modulo seq) — ` +
|
|
344
|
+
`NOT this branch's to renumber; pushing unchanged`,
|
|
345
|
+
remoteMaxSeq,
|
|
346
|
+
};
|
|
347
|
+
}
|
|
252
348
|
const runRenumber = deps.runRenumber ?? defaultRunRenumber;
|
|
253
349
|
const isDirty = deps.isDirty ?? defaultIsDirty;
|
|
254
350
|
const commit = deps.commit ?? defaultCommit;
|
|
255
|
-
|
|
351
|
+
// Renumber only the branch's OWN colliding migrations — never an inherited one.
|
|
352
|
+
const { output } = await runRenumber(workdir, own, baselineSeqs);
|
|
256
353
|
if (!(await isDirty(workdir))) {
|
|
257
354
|
return {
|
|
258
355
|
renumbered: false,
|
|
259
356
|
skipped: "renumber-noop",
|
|
260
357
|
// Carry the tool's own log: "left unchanged" is either a genuine no-op
|
|
261
358
|
// or a renumber that could not run, and only the log tells them apart.
|
|
262
|
-
detail: `renumber left the worktree unchanged — seq kept: ${
|
|
359
|
+
detail: `renumber left the worktree unchanged — seq kept: ${own.join(", ")}; ` +
|
|
263
360
|
`tool said: ${output.slice(-500) || "(no output)"}`,
|
|
264
361
|
remoteMaxSeq,
|
|
265
362
|
};
|
|
266
363
|
}
|
|
267
|
-
// `move` describes the FIRST
|
|
364
|
+
// `move` describes the FIRST own file. A branch adding several colliding
|
|
268
365
|
// migrations at once is vanishingly rare, and the renumber tool chains them
|
|
269
366
|
// correctly anyway (each pass re-reads the directory, so the second lands
|
|
270
367
|
// above the first). The full tool log rides along in `move.output`, so the
|
|
271
368
|
// event is never lossy even then.
|
|
272
|
-
|
|
369
|
+
// AC5: name the files the renumber touched OUTSIDE supabase/migrations/ (a
|
|
370
|
+
// sibling test / contract fixture) so the seq text-substitution is never silent.
|
|
371
|
+
const listChanged = deps.listChangedFiles ?? defaultListChangedFiles;
|
|
372
|
+
const refsRewrittenOutside = (await listChanged(workdir)).filter((p) => !p.replace(/\\/g, "/").startsWith(`${MIGRATIONS_DIR}/`));
|
|
373
|
+
const first = own[0];
|
|
273
374
|
const fromSeq = migrationSeq(first);
|
|
274
375
|
// The tool's own log names the move (`0315 → 0316`); prefer it, and fall
|
|
275
376
|
// back to the arithmetic the tool would have used so the event is never
|
|
@@ -288,6 +389,10 @@ export async function revalidateMigrationSeq(workdir, opts, deps = {}) {
|
|
|
288
389
|
newFile,
|
|
289
390
|
fromSeq,
|
|
290
391
|
toSeq,
|
|
392
|
+
upstreamSeq: classify.get(first)?.upstreamSeq ?? null,
|
|
393
|
+
identicalModuloSeq: classify.get(first)?.identical ?? false,
|
|
394
|
+
reachableFromTarget: classify.get(first)?.reachable ?? false,
|
|
395
|
+
refsRewrittenOutside,
|
|
291
396
|
output: output.slice(-OUTPUT_TAIL),
|
|
292
397
|
},
|
|
293
398
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-seq-guard.js","sourceRoot":"","sources":["../src/migration-seq-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migration-seq-guard.js","sourceRoot":"","sources":["../src/migration-seq-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const FAILURE_OUTPUT_TAIL_BYTES = 4000;
|
|
2
|
+
export interface FailureDiagnostics {
|
|
3
|
+
reasons: string[];
|
|
4
|
+
stdoutTail: string;
|
|
5
|
+
stderrTail: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function failureDiagnostics(args: {
|
|
8
|
+
exitCode: number | null;
|
|
9
|
+
stdout: string;
|
|
10
|
+
stderr: string;
|
|
11
|
+
detail?: string;
|
|
12
|
+
label?: string;
|
|
13
|
+
cap?: number;
|
|
14
|
+
}): FailureDiagnostics;
|
|
15
|
+
//# sourceMappingURL=output-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-diagnostics.d.ts","sourceRoot":"","sources":["../src/output-diagnostics.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAgB9C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0DD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,kBAAkB,CAerB"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { maskGitCredentials } from "./git-auth/probe.js";
|
|
2
|
+
export const FAILURE_OUTPUT_TAIL_BYTES = 4000;
|
|
3
|
+
const REDACTED = "[redacted credential]";
|
|
4
|
+
const BENIGN_BANNERS = [/^Reading prompt from stdin\.\.\.?$/i];
|
|
5
|
+
const SECRET_PATTERNS = [
|
|
6
|
+
/gh[posru]_[A-Za-z0-9]{16,}/g,
|
|
7
|
+
/github_pat_[A-Za-z0-9_]{20,}/g,
|
|
8
|
+
/sk-ant-[A-Za-z0-9_-]{16,}/g,
|
|
9
|
+
/sk-proj-[A-Za-z0-9_-]{16,}/g,
|
|
10
|
+
/sk-[A-Za-z0-9]{32,}/g,
|
|
11
|
+
/AIza[0-9A-Za-z_-]{30,}/g,
|
|
12
|
+
/xox[baprse]-[A-Za-z0-9-]{10,}/g,
|
|
13
|
+
/eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]*/g,
|
|
14
|
+
/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g,
|
|
15
|
+
];
|
|
16
|
+
function scrub(text) {
|
|
17
|
+
let out = maskGitCredentials(text);
|
|
18
|
+
for (const re of SECRET_PATTERNS)
|
|
19
|
+
out = out.replace(re, REDACTED);
|
|
20
|
+
return out;
|
|
21
|
+
}
|
|
22
|
+
function tail(text, cap = FAILURE_OUTPUT_TAIL_BYTES) {
|
|
23
|
+
const cleaned = scrub(text);
|
|
24
|
+
if (cleaned.length <= cap)
|
|
25
|
+
return cleaned;
|
|
26
|
+
return `[truncated to last ${cap} bytes]\n${cleaned.slice(-cap)}`;
|
|
27
|
+
}
|
|
28
|
+
function asRecord(value) {
|
|
29
|
+
return typeof value === "object" && value !== null ? value : null;
|
|
30
|
+
}
|
|
31
|
+
function pickString(obj, keys) {
|
|
32
|
+
for (const key of keys) {
|
|
33
|
+
const value = obj[key];
|
|
34
|
+
if (typeof value === "string" && value.trim())
|
|
35
|
+
return value.trim();
|
|
36
|
+
const nested = asRecord(value);
|
|
37
|
+
if (nested) {
|
|
38
|
+
const picked = pickString(nested, ["message", "error", "detail", "reason"]);
|
|
39
|
+
if (picked)
|
|
40
|
+
return picked;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
function parseStructuredErrors(stdout) {
|
|
46
|
+
const errors = [];
|
|
47
|
+
for (const raw of stdout.trim().split(/\r?\n/)) {
|
|
48
|
+
const line = raw.trim();
|
|
49
|
+
if (!line.startsWith("{"))
|
|
50
|
+
continue;
|
|
51
|
+
try {
|
|
52
|
+
const obj = asRecord(JSON.parse(line));
|
|
53
|
+
if (!obj)
|
|
54
|
+
continue;
|
|
55
|
+
const type = typeof obj.type === "string" ? obj.type : "";
|
|
56
|
+
const isError = obj.is_error === true || /(?:failed|error)$/i.test(type);
|
|
57
|
+
if (!isError)
|
|
58
|
+
continue;
|
|
59
|
+
const msg = pickString(obj, ["error", "message", "result", "detail", "reason"]);
|
|
60
|
+
if (msg)
|
|
61
|
+
errors.push(msg);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Plain output is handled by the raw tails.
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return errors;
|
|
68
|
+
}
|
|
69
|
+
function firstUsefulLine(text) {
|
|
70
|
+
for (const line of scrub(text).split(/\r?\n/).map((l) => l.trim()).filter(Boolean)) {
|
|
71
|
+
if (!BENIGN_BANNERS.some((re) => re.test(line)))
|
|
72
|
+
return line;
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
export function failureDiagnostics(args) {
|
|
77
|
+
const cap = args.cap ?? FAILURE_OUTPUT_TAIL_BYTES;
|
|
78
|
+
const stdoutTail = tail(args.stdout, cap);
|
|
79
|
+
const stderrTail = tail(args.stderr, cap);
|
|
80
|
+
const structured = parseStructuredErrors(args.stdout).map(scrub);
|
|
81
|
+
const exitReason = `${args.label ?? "child"} exited ${args.exitCode ?? "unknown"}`;
|
|
82
|
+
const reasons = structured.length > 0 ? [...structured, exitReason] : [exitReason];
|
|
83
|
+
if (structured.length === 0) {
|
|
84
|
+
const stdoutLine = firstUsefulLine(args.stdout);
|
|
85
|
+
const stderrLine = firstUsefulLine(args.stderr);
|
|
86
|
+
if (stdoutLine)
|
|
87
|
+
reasons.push(`stdout: ${stdoutLine.slice(0, 300)}`);
|
|
88
|
+
if (stderrLine)
|
|
89
|
+
reasons.push(`stderr: ${stderrLine.slice(0, 300)}`);
|
|
90
|
+
if (!stdoutLine && !stderrLine && args.detail)
|
|
91
|
+
reasons.push(args.detail);
|
|
92
|
+
}
|
|
93
|
+
return { reasons: Array.from(new Set(reasons)), stdoutTail, stderrTail };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=output-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-diagnostics.js","sourceRoot":"","sources":["../src/output-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ORPHAN-PR-GUARD-1 (prevent leg) — never open a SECOND PR for a
|
|
3
|
+
* (task_id, branch) that already has one, nor for an already-terminal task.
|
|
4
|
+
*
|
|
5
|
+
* Live 2026-08-28: one task pushed once and got TWO PRs off the SAME branch —
|
|
6
|
+
* #2071 merged 10:23, #2073 opened 10:26 — and #2073 then sat open, green and
|
|
7
|
+
* review-less forever because every sweep that would notice keys off a
|
|
8
|
+
* NON-terminal task (same class as #422 / #423). The only prior defence,
|
|
9
|
+
* `gh.findOpenPR`, ran ONLY on a push failure, and `--state open` cannot see the
|
|
10
|
+
* merged PR that makes a second open one an orphan. This probes immediately
|
|
11
|
+
* before the open call (so a merge landing mid-push is still seen) across PRs in
|
|
12
|
+
* EVERY state plus the task's own status. Fail-open: a probe leg that errors
|
|
13
|
+
* contributes nothing, so a flaky read never blocks a legitimate first PR. A
|
|
14
|
+
* GitHub rate limit is the exception and propagates — reading "no PR exists" off
|
|
15
|
+
* a rate limit is exactly how a twin is born.
|
|
16
|
+
*/
|
|
17
|
+
import type { BranchPr, GhRunner } from "./gh.js";
|
|
18
|
+
export declare const TERMINAL_TASK_STATUSES: readonly ["merged", "done", "archived"];
|
|
19
|
+
/** acc.task_events kind (<=32 chars, per append_task_event). */
|
|
20
|
+
export declare const PR_OPEN_SKIPPED_EVENT_KIND = "pr-open-skipped";
|
|
21
|
+
export type PrOpenSkipReason = "branch_already_merged" | "open_pr_exists" | "task_terminal";
|
|
22
|
+
/** The acc.prs columns the guard reads. */
|
|
23
|
+
export interface GuardPrRow {
|
|
24
|
+
number?: number | null;
|
|
25
|
+
state?: string | null;
|
|
26
|
+
branch?: string | null;
|
|
27
|
+
merged_at?: string | null;
|
|
28
|
+
github_url?: string | null;
|
|
29
|
+
}
|
|
30
|
+
/** taskStatus null = unreadable (fail open). prRows/githubPrs: ANY state. */
|
|
31
|
+
export interface PrOpenProbe {
|
|
32
|
+
taskStatus: string | null;
|
|
33
|
+
prRows: GuardPrRow[];
|
|
34
|
+
githubPrs: BranchPr[];
|
|
35
|
+
}
|
|
36
|
+
export interface PrOpenGuardDecision {
|
|
37
|
+
proceed: boolean;
|
|
38
|
+
reason: PrOpenSkipReason | null;
|
|
39
|
+
existingPrUrl: string | null;
|
|
40
|
+
existingPrNumber: number | null;
|
|
41
|
+
/** The existing PR is still OPEN — safe to adopt as this run's PR. */
|
|
42
|
+
adoptable: boolean;
|
|
43
|
+
taskStatus: string | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Pure decision. Order is deliberate: a MERGED PR on this exact branch is the
|
|
47
|
+
* strongest signal (the #2073 case, never adoptable), an OPEN one is next
|
|
48
|
+
* (adoptable — link to it rather than mint a twin), and a terminal task status
|
|
49
|
+
* is the backstop for a merge whose acc.prs row has not synced yet.
|
|
50
|
+
*/
|
|
51
|
+
export declare function decidePrOpen(branch: string, probe: PrOpenProbe): PrOpenGuardDecision;
|
|
52
|
+
type SupabaseLike = any;
|
|
53
|
+
export interface PrOpenGuardArgs {
|
|
54
|
+
supabase: SupabaseLike;
|
|
55
|
+
gh: Pick<GhRunner, "findPrsForBranch">;
|
|
56
|
+
repoPath: string;
|
|
57
|
+
taskId: string;
|
|
58
|
+
branch: string;
|
|
59
|
+
}
|
|
60
|
+
/** Gather the probe. Each DB leg is best-effort; a rate limit is rethrown. */
|
|
61
|
+
export declare function probePrOpen(args: PrOpenGuardArgs): Promise<PrOpenProbe>;
|
|
62
|
+
/** Probe + decide. Throws only on a propagated GitHub rate limit. */
|
|
63
|
+
export declare function guardPrOpen(args: PrOpenGuardArgs): Promise<PrOpenGuardDecision>;
|
|
64
|
+
/** Structured payload for the skip event (task event + activity event). */
|
|
65
|
+
export declare function prOpenSkippedPayload(d: PrOpenGuardDecision, taskId: string, branch: string): Record<string, unknown>;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=pr-open-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-open-guard.d.ts","sourceRoot":"","sources":["../src/pr-open-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,sBAAsB,yCAA0C,CAAC;AAC9E,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GACxB,uBAAuB,GACvB,gBAAgB,GAChB,eAAe,CAAC;AAEpB,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAiCpF;AAID,KAAK,YAAY,GAAG,GAAG,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAmB7E;AAED,qEAAqE;AACrE,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAErF;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GACrD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export const TERMINAL_TASK_STATUSES = ["merged", "done", "archived"];
|
|
2
|
+
/** acc.task_events kind (<=32 chars, per append_task_event). */
|
|
3
|
+
export const PR_OPEN_SKIPPED_EVENT_KIND = "pr-open-skipped";
|
|
4
|
+
const merged = (state, at) => at != null || /^merged$/i.test(state ?? "");
|
|
5
|
+
const open = (state) => /^open$/i.test(state ?? "");
|
|
6
|
+
/**
|
|
7
|
+
* Pure decision. Order is deliberate: a MERGED PR on this exact branch is the
|
|
8
|
+
* strongest signal (the #2073 case, never adoptable), an OPEN one is next
|
|
9
|
+
* (adoptable — link to it rather than mint a twin), and a terminal task status
|
|
10
|
+
* is the backstop for a merge whose acc.prs row has not synced yet.
|
|
11
|
+
*/
|
|
12
|
+
export function decidePrOpen(branch, probe) {
|
|
13
|
+
const rows = probe.prRows.filter((r) => (r.branch ?? "") === branch);
|
|
14
|
+
const skip = (reason, row, ghPr, adoptable) => ({
|
|
15
|
+
proceed: false,
|
|
16
|
+
reason,
|
|
17
|
+
existingPrUrl: row?.github_url ?? ghPr?.url ?? null,
|
|
18
|
+
existingPrNumber: row?.number ?? ghPr?.number ?? null,
|
|
19
|
+
adoptable,
|
|
20
|
+
taskStatus: probe.taskStatus,
|
|
21
|
+
});
|
|
22
|
+
const mRow = rows.find((r) => merged(r.state, r.merged_at));
|
|
23
|
+
const mGh = probe.githubPrs.find((p) => merged(p.state, p.mergedAt));
|
|
24
|
+
if (mRow || mGh)
|
|
25
|
+
return skip("branch_already_merged", mRow, mGh, false);
|
|
26
|
+
const oRow = rows.find((r) => open(r.state));
|
|
27
|
+
const oGh = probe.githubPrs.find((p) => open(p.state));
|
|
28
|
+
if (oRow || oGh)
|
|
29
|
+
return skip("open_pr_exists", oRow, oGh, true);
|
|
30
|
+
const status = probe.taskStatus;
|
|
31
|
+
const terminal = TERMINAL_TASK_STATUSES;
|
|
32
|
+
if (status != null && terminal.includes(status)) {
|
|
33
|
+
return skip("task_terminal", undefined, undefined, false);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
proceed: true, reason: null, existingPrUrl: null,
|
|
37
|
+
existingPrNumber: null, adoptable: false, taskStatus: status,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** Gather the probe. Each DB leg is best-effort; a rate limit is rethrown. */
|
|
41
|
+
export async function probePrOpen(args) {
|
|
42
|
+
const read = async (fn) => {
|
|
43
|
+
try {
|
|
44
|
+
return await fn();
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
const tasks = await read(async () => {
|
|
51
|
+
const q = await args.supabase.from("tasks").select("status")
|
|
52
|
+
.eq("id", args.taskId).limit(1);
|
|
53
|
+
return q.data ?? [];
|
|
54
|
+
});
|
|
55
|
+
const prRows = await read(async () => {
|
|
56
|
+
const q = await args.supabase.from("prs")
|
|
57
|
+
.select("number, state, branch, merged_at, github_url")
|
|
58
|
+
.eq("task_id", args.taskId).limit(50);
|
|
59
|
+
return q.data ?? [];
|
|
60
|
+
});
|
|
61
|
+
const githubPrs = args.gh.findPrsForBranch
|
|
62
|
+
? await args.gh.findPrsForBranch(args.repoPath, args.branch)
|
|
63
|
+
: [];
|
|
64
|
+
return { taskStatus: tasks[0]?.status ?? null, prRows, githubPrs };
|
|
65
|
+
}
|
|
66
|
+
/** Probe + decide. Throws only on a propagated GitHub rate limit. */
|
|
67
|
+
export async function guardPrOpen(args) {
|
|
68
|
+
return decidePrOpen(args.branch, await probePrOpen(args));
|
|
69
|
+
}
|
|
70
|
+
/** Structured payload for the skip event (task event + activity event). */
|
|
71
|
+
export function prOpenSkippedPayload(d, taskId, branch) {
|
|
72
|
+
return {
|
|
73
|
+
task_id: taskId, branch, reason: d.reason,
|
|
74
|
+
existing_pr_url: d.existingPrUrl, existing_pr_number: d.existingPrNumber,
|
|
75
|
+
task_status: d.taskStatus, adopted: d.adoptable && d.existingPrUrl != null,
|
|
76
|
+
guard: "ORPHAN-PR-GUARD-1",
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=pr-open-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-open-guard.js","sourceRoot":"","sources":["../src/pr-open-guard.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AAC9E,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAiC5D,MAAM,MAAM,GAAG,CAAC,KAAqB,EAAE,EAAkB,EAAW,EAAE,CACpE,EAAE,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,CAAC,KAAqB,EAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,KAAkB;IAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,CACX,MAAwB,EACxB,GAA2B,EAC3B,IAA0B,EAC1B,SAAkB,EACG,EAAE,CAAC,CAAC;QACzB,OAAO,EAAE,KAAK;QACd,MAAM;QACN,aAAa,EAAE,GAAG,EAAE,UAAU,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI;QACnD,gBAAgB,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI;QACrD,SAAS;QACT,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,uBAAuB,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAExE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,MAAM,QAAQ,GAAG,sBAA2C,CAAC;IAC7D,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI;QAChD,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM;KAC7D,CAAC;AACJ,CAAC;AAcD,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,IAAI,GAAG,KAAK,EAAK,EAAsB,EAAgB,EAAE;QAC7D,IAAI,CAAC;YAAC,OAAO,MAAM,EAAE,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACjD,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAA6B,KAAK,IAAI,EAAE;QAC9D,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;aACzD,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAa,KAAK,IAAI,EAAE;QAC/C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;aACtC,MAAM,CAAC,8CAA8C,CAAC;aACtD,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB;QACxC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACrE,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAClC,CAAsB,EAAE,MAAc,EAAE,MAAc;IAEtD,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;QACzC,eAAe,EAAE,CAAC,CAAC,aAAa,EAAE,kBAAkB,EAAE,CAAC,CAAC,gBAAgB;QACxE,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI;QAC1E,KAAK,EAAE,mBAAmB;KAC3B,CAAC;AACJ,CAAC"}
|