@wildorder/nightshift 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +269 -1
- package/dist/agent-runner.d.ts +41 -3
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +197 -12
- package/dist/agent-runner.js.map +1 -1
- package/dist/agent-session.d.ts +123 -0
- package/dist/agent-session.d.ts.map +1 -0
- package/dist/agent-session.js +114 -0
- package/dist/agent-session.js.map +1 -0
- package/dist/atomic-write.d.ts +18 -0
- package/dist/atomic-write.d.ts.map +1 -0
- package/dist/atomic-write.js +74 -0
- package/dist/atomic-write.js.map +1 -0
- package/dist/author.d.ts +112 -6
- package/dist/author.d.ts.map +1 -1
- package/dist/author.js +597 -137
- package/dist/author.js.map +1 -1
- package/dist/causal-analysis.d.ts +6 -2
- package/dist/causal-analysis.d.ts.map +1 -1
- package/dist/causal-analysis.js +55 -2
- package/dist/causal-analysis.js.map +1 -1
- package/dist/cli.js +22 -2
- package/dist/cli.js.map +1 -1
- package/dist/concurrency.d.ts +24 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +28 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/decider-review.d.ts +10 -3
- package/dist/decider-review.d.ts.map +1 -1
- package/dist/decider-review.js +6 -4
- package/dist/decider-review.js.map +1 -1
- package/dist/decision-ledger.d.ts +7 -0
- package/dist/decision-ledger.d.ts.map +1 -1
- package/dist/decision-ledger.js +25 -10
- package/dist/decision-ledger.js.map +1 -1
- package/dist/detect-package-manager.d.ts +10 -0
- package/dist/detect-package-manager.d.ts.map +1 -1
- package/dist/detect-package-manager.js +12 -0
- package/dist/detect-package-manager.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +24 -5
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +254 -108
- package/dist/manifest.js.map +1 -1
- package/dist/permits.d.ts +18 -0
- package/dist/permits.d.ts.map +1 -1
- package/dist/permits.js +155 -0
- package/dist/permits.js.map +1 -1
- package/dist/preflight.d.ts +2 -2
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js.map +1 -1
- package/dist/review-pass.d.ts +52 -10
- package/dist/review-pass.d.ts.map +1 -1
- package/dist/review-pass.js +114 -30
- package/dist/review-pass.js.map +1 -1
- package/dist/run-analytics-report.d.ts +114 -1
- package/dist/run-analytics-report.d.ts.map +1 -1
- package/dist/run-analytics-report.js +606 -14
- package/dist/run-analytics-report.js.map +1 -1
- package/dist/run-analytics.d.ts +107 -1
- package/dist/run-analytics.d.ts.map +1 -1
- package/dist/run-analytics.js +257 -25
- package/dist/run-analytics.js.map +1 -1
- package/dist/run-log.d.ts +16 -0
- package/dist/run-log.d.ts.map +1 -0
- package/dist/run-log.js +32 -0
- package/dist/run-log.js.map +1 -0
- package/dist/run-program.d.ts +203 -7
- package/dist/run-program.d.ts.map +1 -1
- package/dist/run-program.js +1526 -320
- package/dist/run-program.js.map +1 -1
- package/dist/scheduler.d.ts +75 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +126 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/verify-cache.d.ts +64 -0
- package/dist/verify-cache.d.ts.map +1 -0
- package/dist/verify-cache.js +56 -0
- package/dist/verify-cache.js.map +1 -0
- package/dist/whole-program-review.d.ts +2 -2
- package/dist/whole-program-review.d.ts.map +1 -1
- package/dist/whole-program-review.js.map +1 -1
- package/dist/worktree.d.ts +124 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +397 -0
- package/dist/worktree.js.map +1 -0
- package/dist/write-queue.d.ts +25 -0
- package/dist/write-queue.d.ts.map +1 -0
- package/dist/write-queue.js +52 -0
- package/dist/write-queue.js.map +1 -0
- package/package.json +2 -2
- package/skills/plan-program/SKILL.md +37 -5
- package/dist/worktree-guard.d.ts +0 -40
- package/dist/worktree-guard.d.ts.map +0 -1
- package/dist/worktree-guard.js +0 -91
- package/dist/worktree-guard.js.map +0 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/** Anything with an id and declared dependencies on other items' ids. */
|
|
2
|
+
export interface SchedulableItem {
|
|
3
|
+
id: string;
|
|
4
|
+
dependencies: readonly string[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* What the caller wants done with an admissible item, decided fresh on every
|
|
8
|
+
* scheduling pass until the item is dispatched.
|
|
9
|
+
*/
|
|
10
|
+
export type Disposition = "launch" | "settle";
|
|
11
|
+
export interface ReadySetOptions<T extends SchedulableItem> {
|
|
12
|
+
/**
|
|
13
|
+
* Items in their canonical input order. Ties are broken by this order,
|
|
14
|
+
* which is what makes `cap: 1` reproduce a plain dependency-first walk
|
|
15
|
+
* (`stableTopologicalOrder`).
|
|
16
|
+
*/
|
|
17
|
+
items: readonly T[];
|
|
18
|
+
/** Maximum `launch` flows in flight at once. `Infinity` for unbounded;
|
|
19
|
+
* must be >= 1 — see {@link normalizeMaxParallel}. */
|
|
20
|
+
cap: number;
|
|
21
|
+
/** Monotonic clock, for the wait measurements handed to the hooks. */
|
|
22
|
+
monotonic: () => number;
|
|
23
|
+
/** Consulted on every pass for every admissible, undispatched item. */
|
|
24
|
+
classify: (item: T) => Disposition;
|
|
25
|
+
/** The item's real flow. Occupies one slot for its whole duration. */
|
|
26
|
+
launch: (item: T) => Promise<void>;
|
|
27
|
+
/** Disposes of an item `classify` refused. Occupies no slot. */
|
|
28
|
+
settle: (item: T) => Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Fires once per item, the first pass at which it is admissible *and*
|
|
31
|
+
* classifies `launch`. An instant, not an interval: the caller records
|
|
32
|
+
* *when* the item became ready, and the artifact's own offset is the
|
|
33
|
+
* dependency wait. No duration is passed, because any the scheduler could
|
|
34
|
+
* compute would duplicate a fact already recorded by the caller.
|
|
35
|
+
*/
|
|
36
|
+
onAdmissible?: (item: T) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Fires immediately before `launch`. `cappedMs` is the time since
|
|
39
|
+
* `onAdmissible` fired for this item — the item's concurrency-cap wait,
|
|
40
|
+
* and the whole of the interval between ready and scheduled. Exactly `0`
|
|
41
|
+
* when the item launches on the same pass it became admissible (the
|
|
42
|
+
* common case at an unbounded cap), computed from a single clock read so
|
|
43
|
+
* it is never a rounding artifact of two.
|
|
44
|
+
*/
|
|
45
|
+
onLaunch?: (item: T, cappedMs: number) => void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Thrown when the loop drains with items still undispatched — a bug in the
|
|
49
|
+
* admissibility predicate, never a state a run should tolerate. The graph
|
|
50
|
+
* this scheduler walks is assumed acyclic (checked upstream, before any
|
|
51
|
+
* scheduler is constructed); this is a backstop for that assumption, not a
|
|
52
|
+
* substitute for it.
|
|
53
|
+
*/
|
|
54
|
+
export declare class SchedulerStuckError extends Error {
|
|
55
|
+
readonly pending: string[];
|
|
56
|
+
constructor(pending: string[]);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* `undefined`, or anything below 1, means unbounded — the dependency graph
|
|
60
|
+
* is the only serializer. A finite value >= 1 is floored. Shared by both
|
|
61
|
+
* schedulers this program runs (build here, authoring in `src/author.ts`)
|
|
62
|
+
* until WS-05 unifies them into one normalisation site.
|
|
63
|
+
*/
|
|
64
|
+
export declare function normalizeMaxParallel(value: number | undefined): number;
|
|
65
|
+
/**
|
|
66
|
+
* Runs every item in `items` through `launch` (bounded by `cap`) or `settle`
|
|
67
|
+
* (unbounded, decided by `classify`), respecting `dependencies`, and
|
|
68
|
+
* resolves once every item has settled. See the module-level design notes in
|
|
69
|
+
* the WS-04 spec for the admissibility, termination and error-draining
|
|
70
|
+
* argument; the shape in one line: an item launches as soon as every
|
|
71
|
+
* dependency has settled and a slot is free, ties break on `items` order,
|
|
72
|
+
* and a flow's rejection drains every in-flight sibling before rethrowing.
|
|
73
|
+
*/
|
|
74
|
+
export declare function runReadySet<T extends SchedulableItem>(options: ReadySetOptions<T>): Promise<void>;
|
|
75
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,eAAe;IACxD;;;;OAIG;IACH,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB;2DACuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,WAAW,CAAC;IACnC,sEAAsE;IACtE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gEAAgE;IAChE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,OAAO,EAAE,MAAM,EAAE;CAK9B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAItE;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,eAAe,EACzD,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgGf"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { createDeferred } from "./concurrency.js";
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the loop drains with items still undispatched — a bug in the
|
|
4
|
+
* admissibility predicate, never a state a run should tolerate. The graph
|
|
5
|
+
* this scheduler walks is assumed acyclic (checked upstream, before any
|
|
6
|
+
* scheduler is constructed); this is a backstop for that assumption, not a
|
|
7
|
+
* substitute for it.
|
|
8
|
+
*/
|
|
9
|
+
export class SchedulerStuckError extends Error {
|
|
10
|
+
pending;
|
|
11
|
+
constructor(pending) {
|
|
12
|
+
super(`Scheduler stuck with item(s) never dispatched: ${pending.join(", ")}`);
|
|
13
|
+
this.name = "SchedulerStuckError";
|
|
14
|
+
this.pending = pending;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* `undefined`, or anything below 1, means unbounded — the dependency graph
|
|
19
|
+
* is the only serializer. A finite value >= 1 is floored. Shared by both
|
|
20
|
+
* schedulers this program runs (build here, authoring in `src/author.ts`)
|
|
21
|
+
* until WS-05 unifies them into one normalisation site.
|
|
22
|
+
*/
|
|
23
|
+
export function normalizeMaxParallel(value) {
|
|
24
|
+
return value !== undefined && Number.isFinite(value) && value >= 1
|
|
25
|
+
? Math.floor(value)
|
|
26
|
+
: Infinity;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Runs every item in `items` through `launch` (bounded by `cap`) or `settle`
|
|
30
|
+
* (unbounded, decided by `classify`), respecting `dependencies`, and
|
|
31
|
+
* resolves once every item has settled. See the module-level design notes in
|
|
32
|
+
* the WS-04 spec for the admissibility, termination and error-draining
|
|
33
|
+
* argument; the shape in one line: an item launches as soon as every
|
|
34
|
+
* dependency has settled and a slot is free, ties break on `items` order,
|
|
35
|
+
* and a flow's rejection drains every in-flight sibling before rethrowing.
|
|
36
|
+
*/
|
|
37
|
+
export async function runReadySet(options) {
|
|
38
|
+
const { items, cap, monotonic, classify, launch, settle, onAdmissible, onLaunch } = options;
|
|
39
|
+
const known = new Set(items.map((item) => item.id));
|
|
40
|
+
const settled = new Set();
|
|
41
|
+
const dispatched = new Set();
|
|
42
|
+
const admissibleAt = new Map();
|
|
43
|
+
let inFlight = 0; // slot-holding (`launch`) flows only — what `cap` bounds
|
|
44
|
+
// Every dispatched flow, launch or settle — what the loop's termination and
|
|
45
|
+
// drain-before-rethrow conditions are keyed on. `inFlight` alone undercounts
|
|
46
|
+
// this: a settle flow holds no slot, so if it were the only outstanding
|
|
47
|
+
// flow left, `inFlight === 0` would be true while it was still running,
|
|
48
|
+
// and the loop could exit — or rethrow — before it finished.
|
|
49
|
+
let pendingFlows = 0;
|
|
50
|
+
let hasError = false;
|
|
51
|
+
let firstError;
|
|
52
|
+
// Re-armed every time a dispatched flow settles — what the loop awaits
|
|
53
|
+
// between passes instead of polling.
|
|
54
|
+
let roundDeferred = createDeferred();
|
|
55
|
+
function isAdmissible(item) {
|
|
56
|
+
return item.dependencies.every((dependency) => settled.has(dependency) || !known.has(dependency));
|
|
57
|
+
}
|
|
58
|
+
// Awaits `run()`, then — on every path, including a rejection — marks the
|
|
59
|
+
// item settled, releases its slot if it held one, and wakes the loop. This
|
|
60
|
+
// `finally` is what makes the termination argument a proof rather than a
|
|
61
|
+
// hope: every dispatched item settles, no matter what.
|
|
62
|
+
function flow(item, run, holdsSlot) {
|
|
63
|
+
pendingFlows += 1;
|
|
64
|
+
void run()
|
|
65
|
+
.catch((error) => {
|
|
66
|
+
if (!hasError) {
|
|
67
|
+
hasError = true;
|
|
68
|
+
firstError = error;
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
.finally(() => {
|
|
72
|
+
settled.add(item.id);
|
|
73
|
+
if (holdsSlot)
|
|
74
|
+
inFlight -= 1;
|
|
75
|
+
pendingFlows -= 1;
|
|
76
|
+
const deferred = roundDeferred;
|
|
77
|
+
roundDeferred = createDeferred();
|
|
78
|
+
deferred.resolve();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function pass() {
|
|
82
|
+
let dispatchedAny = false;
|
|
83
|
+
for (const item of items) {
|
|
84
|
+
// Once an error has landed, stop dispatching anything new — settle or
|
|
85
|
+
// launch alike — and let the loop drain what is already in flight.
|
|
86
|
+
if (hasError || dispatched.has(item.id) || !isAdmissible(item))
|
|
87
|
+
continue;
|
|
88
|
+
if (classify(item) === "settle") {
|
|
89
|
+
dispatched.add(item.id);
|
|
90
|
+
dispatchedAny = true;
|
|
91
|
+
flow(item, () => settle(item), false);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
// One clock read, reused for both the admissible-at stamp (if this is
|
|
95
|
+
// the first pass this item is admissible) and the capped-wait
|
|
96
|
+
// computation below — so a same-pass launch always measures exactly
|
|
97
|
+
// zero, never a two-read rounding artifact.
|
|
98
|
+
const now = monotonic();
|
|
99
|
+
if (!admissibleAt.has(item.id)) {
|
|
100
|
+
admissibleAt.set(item.id, now);
|
|
101
|
+
onAdmissible?.(item);
|
|
102
|
+
}
|
|
103
|
+
if (inFlight >= cap)
|
|
104
|
+
continue; // capped; retried next pass
|
|
105
|
+
dispatched.add(item.id);
|
|
106
|
+
dispatchedAny = true;
|
|
107
|
+
inFlight += 1;
|
|
108
|
+
const cappedMs = now - admissibleAt.get(item.id);
|
|
109
|
+
onLaunch?.(item, cappedMs);
|
|
110
|
+
flow(item, () => launch(item), true);
|
|
111
|
+
}
|
|
112
|
+
return dispatchedAny;
|
|
113
|
+
}
|
|
114
|
+
for (;;) {
|
|
115
|
+
const dispatchedThisPass = pass();
|
|
116
|
+
if (pendingFlows === 0 && (hasError || !dispatchedThisPass))
|
|
117
|
+
break;
|
|
118
|
+
await roundDeferred.promise;
|
|
119
|
+
}
|
|
120
|
+
if (hasError)
|
|
121
|
+
throw firstError;
|
|
122
|
+
const pending = items.filter((item) => !settled.has(item.id)).map((item) => item.id);
|
|
123
|
+
if (pending.length > 0)
|
|
124
|
+
throw new SchedulerStuckError(pending);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAmDlD;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,OAAO,CAAW;IAE3B,YAAY,OAAiB;QAC3B,KAAK,CAAC,kDAAkD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAyB;IAC5D,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE5F,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,yDAAyD;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,wEAAwE;IACxE,wEAAwE;IACxE,6DAA6D;IAC7D,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAmB,CAAC;IAExB,uEAAuE;IACvE,qCAAqC;IACrC,IAAI,aAAa,GAAG,cAAc,EAAQ,CAAC;IAE3C,SAAS,YAAY,CAAC,IAAO;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAC5B,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,uDAAuD;IACvD,SAAS,IAAI,CAAC,IAAO,EAAE,GAAwB,EAAE,SAAkB;QACjE,YAAY,IAAI,CAAC,CAAC;QAClB,KAAK,GAAG,EAAE;aACP,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,SAAS;gBAAE,QAAQ,IAAI,CAAC,CAAC;YAC7B,YAAY,IAAI,CAAC,CAAC;YAClB,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC/B,aAAa,GAAG,cAAc,EAAQ,CAAC;YACvC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,IAAI;QACX,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,sEAAsE;YACtE,mEAAmE;YACnE,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEzE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAChC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,aAAa,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;gBACtC,SAAS;YACX,CAAC;YAED,sEAAsE;YACtE,8DAA8D;YAC9D,oEAAoE;YACpE,4CAA4C;YAC5C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC/B,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,QAAQ,IAAI,GAAG;gBAAE,SAAS,CAAC,4BAA4B;YAE3D,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxB,aAAa,GAAG,IAAI,CAAC;YACrB,QAAQ,IAAI,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,GAAG,GAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAY,CAAC;YAC7D,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,SAAS,CAAC;QACR,MAAM,kBAAkB,GAAG,IAAI,EAAE,CAAC;QAClC,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC;YAAE,MAAM;QACnE,MAAM,aAAa,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QAAE,MAAM,UAAU,CAAC;IAE/B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { EvidenceReference } from "./run-analytics.js";
|
|
2
|
+
/**
|
|
3
|
+
* The per-run verify-result cache (WS-09, SC-14): an identical tree is never
|
|
4
|
+
* verified twice in one run. A leaf module — it declares the minimal
|
|
5
|
+
* structural shape it needs from `GitOps` rather than importing
|
|
6
|
+
* `run-program.ts`, which imports this module instead (the same
|
|
7
|
+
* dependency-direction trick WS-08 used for `ContinuitySpawnResult`).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* The one thing this module needs from `GitOps`. Declared structurally so
|
|
11
|
+
* this module stays a leaf: `run-program.ts` imports *this*, never the
|
|
12
|
+
* reverse. `GitOps` satisfies it once its own `treeHash` method is added.
|
|
13
|
+
*/
|
|
14
|
+
export interface VerifyTreeHasher {
|
|
15
|
+
/**
|
|
16
|
+
* The tree at `cwd` with every path in `exclude` removed. `exclude` is
|
|
17
|
+
* always passed explicitly — the hasher has no exclusion of its own, so
|
|
18
|
+
* the verification-input contract lives in exactly one place and is
|
|
19
|
+
* visible at every call site.
|
|
20
|
+
*/
|
|
21
|
+
treeHash?(cwd: string, exclude: readonly string[]): Promise<string | undefined>;
|
|
22
|
+
}
|
|
23
|
+
/** What one green pass proved, kept so a skipped pass can cite it. */
|
|
24
|
+
export interface VerifyCacheEntry {
|
|
25
|
+
/** Evidence refs from the green pass, keyed by configured command name. */
|
|
26
|
+
evidence: Map<string, EvidenceReference[]>;
|
|
27
|
+
/** The `phase` the green pass ran under (`baseline`, `post-implementer`, …). */
|
|
28
|
+
phase: string;
|
|
29
|
+
}
|
|
30
|
+
export interface VerifyCache {
|
|
31
|
+
/**
|
|
32
|
+
* The cache key for the tree at `cwd`, or `undefined` when it cannot be
|
|
33
|
+
* computed (no hasher, not a repository, a git failure). `undefined`
|
|
34
|
+
* always means "do not skip and do not store" — never a shared key.
|
|
35
|
+
*/
|
|
36
|
+
keyFor(cwd: string): Promise<string | undefined>;
|
|
37
|
+
get(key: string): VerifyCacheEntry | undefined;
|
|
38
|
+
/** Stores a green pass. Callers must never store a red one. */
|
|
39
|
+
set(key: string, entry: VerifyCacheEntry): void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The **ordered** entries of the configured verify command map, hashed —
|
|
43
|
+
* `Object.entries` through `JSON.stringify` then sha256. The map is an
|
|
44
|
+
* ordered contract ("first non-zero wins"), so reordering it is a different
|
|
45
|
+
* verification and must produce a different key.
|
|
46
|
+
*/
|
|
47
|
+
export declare function verifyCommandsHash(commands: Record<string, string>): string;
|
|
48
|
+
/**
|
|
49
|
+
* The bookkeeping files this runner writes for `programId` while a run is in
|
|
50
|
+
* flight — the only paths the verify cache's key excludes from the tree
|
|
51
|
+
* hash. Derived from the program id, so another program's artifacts and
|
|
52
|
+
* every hand-written file under `docs/programs/` stay in the key. Keep in
|
|
53
|
+
* step with `DOCS_PROGRAMS_SUFFIXES` (`run-program.ts`) and
|
|
54
|
+
* `program-memory.ts`; `-program.md` is deliberately absent — the planner
|
|
55
|
+
* writes it, the runner does not, so a change to it is a real input change.
|
|
56
|
+
*/
|
|
57
|
+
export declare function runnerOwnedVerifyPaths(programId: string): string[];
|
|
58
|
+
export declare function createVerifyCache(args: {
|
|
59
|
+
git: VerifyTreeHasher;
|
|
60
|
+
commands: Record<string, string>;
|
|
61
|
+
/** Usually `runnerOwnedVerifyPaths(programId)`; `[]` hashes the exact tree. */
|
|
62
|
+
exclude?: readonly string[];
|
|
63
|
+
}): VerifyCache;
|
|
64
|
+
//# sourceMappingURL=verify-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-cache.d.ts","sourceRoot":"","sources":["../src/verify-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjF;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC3C,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC/C,+DAA+D;IAC/D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI3E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CASlE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,GAAG,WAAW,CAoBd"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* The **ordered** entries of the configured verify command map, hashed —
|
|
4
|
+
* `Object.entries` through `JSON.stringify` then sha256. The map is an
|
|
5
|
+
* ordered contract ("first non-zero wins"), so reordering it is a different
|
|
6
|
+
* verification and must produce a different key.
|
|
7
|
+
*/
|
|
8
|
+
export function verifyCommandsHash(commands) {
|
|
9
|
+
return createHash("sha256")
|
|
10
|
+
.update(JSON.stringify(Object.entries(commands)))
|
|
11
|
+
.digest("hex");
|
|
12
|
+
}
|
|
13
|
+
function stableListHash(values) {
|
|
14
|
+
return createHash("sha256").update(JSON.stringify([...values].sort())).digest("hex");
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The bookkeeping files this runner writes for `programId` while a run is in
|
|
18
|
+
* flight — the only paths the verify cache's key excludes from the tree
|
|
19
|
+
* hash. Derived from the program id, so another program's artifacts and
|
|
20
|
+
* every hand-written file under `docs/programs/` stay in the key. Keep in
|
|
21
|
+
* step with `DOCS_PROGRAMS_SUFFIXES` (`run-program.ts`) and
|
|
22
|
+
* `program-memory.ts`; `-program.md` is deliberately absent — the planner
|
|
23
|
+
* writes it, the runner does not, so a change to it is a real input change.
|
|
24
|
+
*/
|
|
25
|
+
export function runnerOwnedVerifyPaths(programId) {
|
|
26
|
+
return [
|
|
27
|
+
`docs/programs/${programId}-manifest.json`,
|
|
28
|
+
`docs/programs/${programId}-decisions.jsonl`,
|
|
29
|
+
`docs/programs/${programId}-memory.jsonl`,
|
|
30
|
+
`docs/programs/${programId}-memory.json`,
|
|
31
|
+
`docs/programs/${programId}-run-report.md`,
|
|
32
|
+
`docs/programs/${programId}-run-analytics.json`,
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
export function createVerifyCache(args) {
|
|
36
|
+
const { git, commands } = args;
|
|
37
|
+
const exclude = args.exclude ?? [];
|
|
38
|
+
const commandsHash = verifyCommandsHash(commands);
|
|
39
|
+
const excludeHash = stableListHash(exclude);
|
|
40
|
+
const store = new Map();
|
|
41
|
+
return {
|
|
42
|
+
async keyFor(cwd) {
|
|
43
|
+
const treeHash = await git.treeHash?.(cwd, exclude);
|
|
44
|
+
if (treeHash === undefined)
|
|
45
|
+
return undefined;
|
|
46
|
+
return [cwd, treeHash, commandsHash, excludeHash].join("\u0000");
|
|
47
|
+
},
|
|
48
|
+
get(key) {
|
|
49
|
+
return store.get(key);
|
|
50
|
+
},
|
|
51
|
+
set(key, entry) {
|
|
52
|
+
store.set(key, entry);
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=verify-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-cache.js","sourceRoot":"","sources":["../src/verify-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA8CzC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgC;IACjE,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;SAChD,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,MAAyB;IAC/C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO;QACL,iBAAiB,SAAS,gBAAgB;QAC1C,iBAAiB,SAAS,kBAAkB;QAC5C,iBAAiB,SAAS,eAAe;QACzC,iBAAiB,SAAS,cAAc;QACxC,iBAAiB,SAAS,gBAAgB;QAC1C,iBAAiB,SAAS,qBAAqB;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAKjC;IACC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAElD,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,GAAW;YACtB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC7C,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC;QACD,GAAG,CAAC,GAAW;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,GAAG,CAAC,GAAW,EAAE,KAAuB;YACtC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -3,7 +3,7 @@ import type { NightshiftConfig } from "./config.js";
|
|
|
3
3
|
import { type PermitsContext } from "./permits.js";
|
|
4
4
|
import { type Finding, type Severity } from "./findings.js";
|
|
5
5
|
import type { ProgramManifest } from "./manifest.js";
|
|
6
|
-
import { type
|
|
6
|
+
import { type SpanScope } from "./run-analytics.js";
|
|
7
7
|
/**
|
|
8
8
|
* The whole-program review pass: a single-shot, never-throwing read of the
|
|
9
9
|
* repository as it stands at the end of a run, regenerating
|
|
@@ -47,7 +47,7 @@ export interface WholeProgramReviewOptions {
|
|
|
47
47
|
/** Progress line sink, matching the runner's `log`. Optional. */
|
|
48
48
|
log?: (line: string) => void;
|
|
49
49
|
/** The run's analytics recorder (WS-01); a caller with no run-scoped recorder gets a shared no-op default. */
|
|
50
|
-
recorder?:
|
|
50
|
+
recorder?: SpanScope;
|
|
51
51
|
}
|
|
52
52
|
export interface AsBuiltFs {
|
|
53
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whole-program-review.d.ts","sourceRoot":"","sources":["../src/whole-program-review.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQrD,OAAO,EAAqB,KAAK,
|
|
1
|
+
{"version":3,"file":"whole-program-review.d.ts","sourceRoot":"","sources":["../src/whole-program-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whole-program-review.js","sourceRoot":"","sources":["../src/whole-program-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,IAAI,GAGL,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,cAAc,CAAC;AACzE,OAAO,EACL,OAAO,EACP,eAAe,EACf,QAAQ,GAGT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAoB,MAAM,oBAAoB,CAAC;AAkEzE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,KAAK,CAAC,QAAQ,CAAC,IAAI;QACjB,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO;QAC3B,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,IAAI;QACd,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,SAAS,GAAG,SAAS;SACxB,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC;SACjC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzB,OAAO,2BAA2B,SAAS,KAAK,CAAC;AACnD,CAAC;AA0DD,SAAS,mBAAmB;IAC1B,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,mBAAmB,EAAE;QACrC,aAAa,EAAE,KAAK;QACpB,kBAAkB,EAAE,EAAE;QACtB,YAAY,EAAE,KAAK;QACnB,MAAM,EACJ,qEAAqE;YACrE,4EAA4E;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAc,EACd,YAAqB,EACrB,IAAa;IAEb,OAAO;QACL,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,mBAAmB,EAAE;QACrC,aAAa,EAAE,KAAK;QACpB,kBAAkB,EAAE,EAAE;QACtB,YAAY;QACZ,MAAM;QACN,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,2EAA2E;AAC3E,yEAAyE;AACzE,8DAA8D;AAC9D,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAE/C,SAAS,aAAa,CACpB,IAAY,EACZ,KAAa;IAEb,IAAI,IAAI,CAAC,MAAM,IAAI,+BAA+B;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpF,OAAO;QACL,IAAI,EACF,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,+BAA+B,CAAC,QAAQ,KAAK,cAAc;YAC5E,GAAG,+BAA+B,4CAA4C,KAAK,GAAG;QACxF,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;iDAEiD;AACjD,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AACxD,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,gBAAgB,GACpB,gEAAgE,CAAC;AACnE,MAAM,yBAAyB,GAC7B,4DAA4D,CAAC;AAO/D,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,KAAK,yBAAyB;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAElD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,sBAAsB,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACvD,CAAC;AAcD,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,aAAa,CACpB,QAAgB,EAChB,QAAuC;IAEvC,MAAM,aAAa,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,IAAI,UAAU,IAAI,YAAY;YAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;;YACzD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,QAAyB;IAC5C,OAAO,QAAQ,CAAC,WAAW;SACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;SACpF,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAyB;IACrD,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IACD,OAAO,QAAQ,CAAC,eAAe;SAC5B,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;SACrE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAuC;IACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,uBAAuB,EAAE,EAAE,EAAE,6CAA6C,EAAE,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO;QACL,uBAAuB;QACvB,EAAE;QACF,sEAAsE;QACtE,sEAAsE;QACtE,uBAAuB;QACvB,EAAE;QACF,GAAG,QAAQ,CAAC,GAAG,CACb,CAAC,UAAU,EAAE,EAAE,CACb,OAAO,UAAU,CAAC,EAAE,MAAM,UAAU,CAAC,IAAI,MAAM,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAC3F;QACD,EAAE;QACF,iEAAiE;QACjE,qEAAqE;QACrE,sEAAsE;QACtE,6CAA6C;QAC7C,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAOvC;IACC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5E,OAAO;QACL,2BAA2B,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,GAAG;QACjE,EAAE;QACF,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,6DAA6D;QAC7D,EAAE;QACF,8BAA8B;QAC9B,EAAE;QACF,uEAAuE;QACvE,mEAAmE;QACnE,qEAAqE;QACrE,qCAAqC;QACrC,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,oBAAoB,CAAC,QAAQ,CAAC;QAC9B,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,WAAW,CAAC,QAAQ,CAAC;QACrB,EAAE;QACF,GAAG,oBAAoB,CAAC,QAAQ,CAAC;QACjC,uBAAuB;QACvB,EAAE;QACF,kEAAkE;QAClE,oEAAoE;QACpE,iDAAiD;QACjD,EAAE;QACF,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ;QACzD,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,UAAU,CAAC,CAAC,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC,CAAC,kBAAkB;QAC9D,EAAE;QACF,SAAS;QACT,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI;QACjD,KAAK;QACL,EAAE;QACF,gCAAgC;QAChC,EAAE;QACF,kEAAkE;QAClE,oEAAoE;QACpE,wBAAwB;QACxB,mEAAmE;QACnE,iEAAiE;QACjE,+DAA+D;QAC/D,qEAAqE;QACrE,wDAAwD;QACxD,mEAAmE;QACnE,oEAAoE;QACpE,sEAAsE;QACtE,mEAAmE;QACnE,qDAAqD;QACrD,iCAAiC,mBAAmB,oBAAoB;QACxE,mEAAmE;QACnE,EAAE;QACF,8BAA8B;QAC9B,EAAE;QACF,sEAAsE;QACtE,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,uEAAuE;QACvE,2DAA2D;QAC3D,EAAE;QACF,sEAAsE;QACtE,8DAA8D;QAC9D,qEAAqE;QACrE,EAAE;QACF,UAAU;QACV,EAAE;QACF,2CAA2C;QAC3C,sEAAsE;QACtE,+DAA+D;QAC/D,8CAA8C;QAC9C,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,sEAAsE;QACtE,eAAe;QACf,EAAE;QACF,qBAAqB;QACrB,yBAAyB;QACzB,mBAAmB;QACnB,EAAE;QACF,uEAAuE;QACvE,uEAAuE;QACvE,EAAE;QACF,gBAAgB,EAAE;QAClB,EAAE;QACF,eAAe,EAAE;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACrC,OAAO;YACL,qEAAqE;YACrE,wEAAwE;YACxE,OAAO,CAAC,MAAM,IAAI,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;QAC7C,OAAO;YACL,6BAA6B,aAAa,4BAA4B;YACtE,6DAA6D;YAC7D,4BAA4B;YAC5B,OAAO,CAAC,MAAM,IAAI,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,IACE,OAAO,CAAC,MAAM,KAAK,gBAAgB;QACnC,OAAO,CAAC,MAAM,KAAK,aAAa;QAChC,OAAO,CAAC,MAAM,KAAK,cAAc,EACjC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC5E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CACR,sEAAsE,EACtE,kEAAkE,CACnE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,UAAU;YAChB,CAAC,CAAC,6EAA6E,OAAO,CAAC,UAAU,KAAK;YACtG,CAAC,CAAC,8EAA8E,CACnF,CAAC;QACF,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CACR,+BAA+B,OAAO,CAAC,aAAa,QAAQ;gBAC1D,CAAC,OAAO,CAAC,aAAa;oBACpB,CAAC,CAAC,cAAc,mBAAmB,4BAA4B;oBAC/D,CAAC,CAAC,GAAG,CAAC,CACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IACE,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC;QAClE,OAAO,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EACrC,CAAC;QACD,KAAK,CAAC,IAAI,CACR,wDAAwD,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrF,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CACR,oBAAoB,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,QAAQ,YAAY,CACzH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAkC;IAElC,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,CAAC,aAAa;QAAE,OAAO,oBAAoB,EAAE,CAAC;IAElD,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,aAAa,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,GAAE,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IAEvD,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,qBAAqB;YAC7B,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,mBAAmB,EAAE;YACrC,aAAa,EAAE,KAAK;YACpB,kBAAkB,EAAE,EAAE;YACtB,YAAY,EAAE,KAAK;YACnB,MAAM,EACJ,GAAG,aAAa,kCAAmC,KAAe,CAAC,OAAO,KAAK;gBAC/E,6EAA6E;gBAC7E,qEAAqE;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;IAC1E,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IAChH,IAAI,QAAQ,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACzD,QAAQ,CAAC,KAAK,CACZ,iBAAiB,CAAC,8BAA8B,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAC1G,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,uBAAuB,CAAC;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;QACtE,QAAQ;KACT,CAAC,CAAC;IAEH,GAAG,CAAC,4CAA4C,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,oBAAoB,CAAC;IACxD,MAAM,OAAO,GAAmB;QAC9B,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,wBAAwB;QAC/B,GAAG;KACJ,CAAC;IACF,IAAI,UAAgD,CAAC;IACrD,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,WAAW,CAC5B,OAAO,CAAC,WAAW,EACnB,aAAa,EACb,KAAK,EACL,IAAI,EACJ,OAAO,EACP,eAAe,EACf,OAAO,EACP,QAAQ,EACR,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAClC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,oBAAoB,CACzB,kCAAmC,KAAe,CAAC,OAAO,EAAE,EAC5D,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CACzB,iCAAiC,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAClF,YAAY,EACZ,OAAO,CAAC,IAAI,CACb,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE5D,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;QACvD,OAAO,oBAAoB,CACzB,0EAA0E;YACxE,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EACrC,YAAY,EACZ,OAAO,CAAC,IAAI,CACb,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACxE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CACzB,CAAC;IAEF,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO;YACL,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC;YACjD,aAAa,EAAE,KAAK;YACpB,kBAAkB,EAAE,EAAE;YACtB,YAAY;YACZ,MAAM,EAAE,qDAAqD;YAC7D,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC7C,OAAO;YACL,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC;YACjD,aAAa,EAAE,KAAK;YACpB,kBAAkB,EAAE,EAAE;YACtB,YAAY;YACZ,MAAM,EACJ,6DAA6D;gBAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,MAAM,cAAc,GAAc,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAExD,IAAI,aAAa,GAAG,mBAAmB,EAAE,CAAC;QACxC,aAAa,GAAG,IAAI,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,0BAA0B;YACnC,OAAO,EACL,+BAA+B,aAAa,mBAAmB;gBAC/D,GAAG,mBAAmB,oDAAoD;gBAC1E,0CAA0C;YAC5C,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,4BAA4B;YACrC,OAAO,EACL,2CAA2C,KAAK,CAAC,OAAO,CAAC,MAAM,iBAAiB;gBAChF,0BAA0B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;gBAClF,gFAAgF;gBAChF,iFAAiF;gBACjF,wBAAwB;YAC1B,QAAQ,EAAE;gBACR,OAAO,CAAC,gDAAgD,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpF;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO;YACL,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;YAC/C,aAAa;YACb,aAAa;YACb,kBAAkB,EAAE,KAAK,CAAC,OAAO;YACjC,YAAY;YACZ,MAAM,EACJ,mFAAmF;YACrF,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,UAA8B,CAAC;IAEnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE,KAAK;gBAChB,YAAY;gBACZ,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;gBAC/C,aAAa;gBACb,aAAa;gBACb,kBAAkB,EAAE,KAAK,CAAC,OAAO;gBACjC,YAAY;gBACZ,MAAM,EAAE,iDAAkD,KAAe,CAAC,OAAO,EAAE;gBACnF,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,UAAU,GAAG,WAAW,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,KAAK;YAChB,YAAY;YACZ,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;YAC/C,aAAa;YACb,aAAa;YACb,kBAAkB,EAAE,KAAK,CAAC,OAAO;YACjC,YAAY;YACZ,MAAM,EAAE,yCAA0C,KAAe,CAAC,OAAO,EAAE;YAC3E,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEjC,OAAO;QACL,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,IAAI;QACf,YAAY;QACZ,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,cAAc,EAAE,eAAe,CAAC,cAAc,CAAC;QAC/C,aAAa;QACb,aAAa;QACb,kBAAkB,EAAE,KAAK,CAAC,OAAO;QACjC,YAAY;QACZ,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"whole-program-review.js","sourceRoot":"","sources":["../src/whole-program-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/** The fixed prefix for every runner-created worktree branch. Not a config key. */
|
|
2
|
+
export declare const WORKTREE_BRANCH_PREFIX = "nightshift/";
|
|
3
|
+
/** `nightshift/<programId>/<workstreamId>` — a branch under refs/heads/. Ids are lowercased so a case-insensitive filesystem can never make two refs collide. */
|
|
4
|
+
export declare function worktreeBranchName(programId: string, workstreamId: string): string;
|
|
5
|
+
/** Every branch this program's worktrees may use, for prefix-matched reaping. */
|
|
6
|
+
export declare function worktreeBranchPrefix(programId: string): string;
|
|
7
|
+
/** `refs/nightshift/<programId>/<workstreamId>` — where a verified-but-unintegrated commit is retained. */
|
|
8
|
+
export declare function retainedRefName(programId: string, workstreamId: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Where a workstream's worktree lives: `<base>/<programId>-<hash8>/<workstreamId>`,
|
|
11
|
+
* where `hash8` is derived from the repository's own realpath — see
|
|
12
|
+
* `resolveWorktreeBase`'s doc comment for why this segment is load-bearing.
|
|
13
|
+
*/
|
|
14
|
+
export declare function worktreePathFor(base: string, programId: string, workstreamId: string, repoHash: string): string;
|
|
15
|
+
export interface ResolvedWorktreeBase {
|
|
16
|
+
base: string;
|
|
17
|
+
/** The 8-hex-character hash of the repository's realpath, shared by every workstream's path this run. */
|
|
18
|
+
repoHash: string;
|
|
19
|
+
/** True when the sibling-of-repo location was not writable and the OS-temp fallback was used. */
|
|
20
|
+
usedFallback: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolves the base directory under which this run's worktrees are created,
|
|
24
|
+
* once per run: `<dirname(realpath(repoRoot))>/.nightshift-worktrees`, or —
|
|
25
|
+
* when that parent is not writable (a read-only mount, a container) —
|
|
26
|
+
* `<os tmpdir>/nightshift-worktrees`. Eagerly `mkdir -p`s the chosen base so
|
|
27
|
+
* the fallback decision is made once, up front, rather than discovered mid-run.
|
|
28
|
+
*
|
|
29
|
+
* The `hash8(realpath(repoRoot))` segment (folded into every returned path via
|
|
30
|
+
* `repoHash`) is load-bearing, not decoration: without it, two checkouts of
|
|
31
|
+
* the same repository — or two test fixtures sharing an OS temp directory and
|
|
32
|
+
* the same programId — would resolve to the same worktree path and the
|
|
33
|
+
* second `git worktree add` would fail with `already exists`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveWorktreeBase(repoRoot: string, override?: string): Promise<ResolvedWorktreeBase>;
|
|
36
|
+
/** The install command for a worktree, or undefined when there is no lockfile. */
|
|
37
|
+
export declare function worktreeInstallCommand(worktreeRoot: string): string | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* True for a path the runner owns in the tree being inspected. `git status
|
|
40
|
+
* --porcelain` paths are relative to that tree's root — the root checkout
|
|
41
|
+
* during the report commit, the worktree during a build. In a worktree the
|
|
42
|
+
* runner writes nothing here, so this only ever fires when an agent itself
|
|
43
|
+
* edited planning artifacts, which is equally not the work it was asked to
|
|
44
|
+
* do.
|
|
45
|
+
*/
|
|
46
|
+
export declare function isRunnerOwnedArtifactPath(path: string): boolean;
|
|
47
|
+
export interface WorktreeInfo {
|
|
48
|
+
/** Absolute path as git reports it — realpath-resolved. */
|
|
49
|
+
path: string;
|
|
50
|
+
/** Full refname of the checked-out branch, or undefined when detached. */
|
|
51
|
+
branch?: string;
|
|
52
|
+
head: string;
|
|
53
|
+
/** git's own `prunable` marker: the directory is gone. */
|
|
54
|
+
prunable?: boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface MergeResult {
|
|
57
|
+
ok: boolean;
|
|
58
|
+
/** Paths left conflicted; empty when ok. */
|
|
59
|
+
conflicts: string[];
|
|
60
|
+
/** git's own stdout+stderr, for the diagnosis and the recovery brief. */
|
|
61
|
+
output: string;
|
|
62
|
+
}
|
|
63
|
+
export interface WorktreeOps {
|
|
64
|
+
/** `git worktree add -b <branch> <path> <commitish>`; creates parent dirs. */
|
|
65
|
+
add(root: string, path: string, branch: string, commitish: string): Promise<void>;
|
|
66
|
+
list(root: string): Promise<WorktreeInfo[]>;
|
|
67
|
+
/** `git worktree remove --force <path>`; tolerates an already-missing path. */
|
|
68
|
+
remove(root: string, path: string): Promise<void>;
|
|
69
|
+
/** `git worktree prune` — reclaims administrative entries for deleted directories. */
|
|
70
|
+
prune(root: string): Promise<void>;
|
|
71
|
+
/** Branch names under a prefix, for reaping orphans. */
|
|
72
|
+
branchesUnder(root: string, prefix: string): Promise<string[]>;
|
|
73
|
+
/** `git branch -D <branch>`; tolerates an absent branch. */
|
|
74
|
+
deleteBranch(root: string, branch: string): Promise<void>;
|
|
75
|
+
/** `git merge --no-edit -m <message> <commitish>` inside `worktree`. */
|
|
76
|
+
mergeInto(worktree: string, commitish: string, message: string): Promise<MergeResult>;
|
|
77
|
+
/** `git merge --abort` inside `worktree`; never throws. */
|
|
78
|
+
abortMerge(worktree: string): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* `git merge --squash <commitish>` then `git commit -m <message> -- <paths>`
|
|
81
|
+
* in `cwd`. The pathspec is mandatory, not an optimisation: a plain commit
|
|
82
|
+
* would sweep whatever was already staged in `cwd` into the integration
|
|
83
|
+
* commit. On refusal or conflict: `git reset --merge`, then `ok: false`.
|
|
84
|
+
*/
|
|
85
|
+
squashIntegrate(cwd: string, commitish: string, message: string, paths: string[]): Promise<{
|
|
86
|
+
ok: true;
|
|
87
|
+
commit: string | undefined;
|
|
88
|
+
} | {
|
|
89
|
+
ok: false;
|
|
90
|
+
output: string;
|
|
91
|
+
}>;
|
|
92
|
+
/**
|
|
93
|
+
* `git diff --name-only -z --no-renames <a> <b>` — repo-root-relative
|
|
94
|
+
* paths, both sides of a rename, NUL-delimited so odd names survive.
|
|
95
|
+
*/
|
|
96
|
+
changedPaths(cwd: string, a: string, b: string): Promise<string[]>;
|
|
97
|
+
/**
|
|
98
|
+
* `git rev-parse --verify <rev>^{commit}` in `cwd`; undefined when it does
|
|
99
|
+
* not resolve.
|
|
100
|
+
*/
|
|
101
|
+
resolveCommit(cwd: string, rev: string): Promise<string | undefined>;
|
|
102
|
+
/**
|
|
103
|
+
* Discards runner-owned artifacts in a worktree: `git checkout --
|
|
104
|
+
* ':(top)docs/programs'` followed by `git clean -fd --
|
|
105
|
+
* ':(top)docs/programs'`. Returns the paths it discarded, for the log.
|
|
106
|
+
* Never throws — a repository with nothing tracked under `docs/programs`
|
|
107
|
+
* makes the checkout exit non-zero, which is an ordinary case.
|
|
108
|
+
*/
|
|
109
|
+
discardRunnerArtifacts(worktree: string): Promise<string[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Salvage seam for reaping (see `reapProgramWorktrees`): `git add -A` and
|
|
112
|
+
* commit everything in `worktree`, tolerating "nothing to commit", and
|
|
113
|
+
* return the resulting HEAD; undefined when HEAD cannot be resolved.
|
|
114
|
+
* Optional so `WorktreeOps` doubles written before it existed keep
|
|
115
|
+
* compiling — reaping salvages only when the seam is present.
|
|
116
|
+
*/
|
|
117
|
+
commitEverything?(worktree: string, message: string): Promise<string | undefined>;
|
|
118
|
+
/** `git update-ref <ref> <commit>` in `root`. */
|
|
119
|
+
updateRef?(root: string, ref: string, commit: string): Promise<void>;
|
|
120
|
+
/** `git merge-base --is-ancestor <ancestor> <descendant>` in `root`. */
|
|
121
|
+
isAncestor?(root: string, ancestor: string, descendant: string): Promise<boolean>;
|
|
122
|
+
}
|
|
123
|
+
export declare const defaultWorktreeOps: WorktreeOps;
|
|
124
|
+
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"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"}
|