@wildorder/nightshift 0.7.2 → 0.9.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.
@@ -1,10 +1,11 @@
1
1
  import { type AgentRunner, type VerifyRunner } from "./agent-runner.js";
2
2
  import { type AuthorStageResult } from "./author.js";
3
- import type { NightshiftConfig } from "./config.js";
3
+ import type { AgentConfig, NightshiftConfig } from "./config.js";
4
4
  import { type DecisionLedgerView } from "./decision-ledger.js";
5
5
  import { type RenderableRecord } from "./decision-view.js";
6
6
  import { type ReviewPassOutcome } from "./review-pass.js";
7
7
  import { type ProgramManifest, type Workstream } from "./manifest.js";
8
+ import { type AsBuiltFs, type WholeProgramReviewOutcome } from "./whole-program-review.js";
8
9
  /**
9
10
  * Git operations the runner needs, injectable so tests drive a real
10
11
  * temporary repository or a fake. The runner owns commits — workstream
@@ -32,6 +33,8 @@ export interface GitOps {
32
33
  dirtyPaths(cwd: string): Promise<string[]>;
33
34
  /** True when `ancestor` is an ancestor of (or equal to) `descendant`. */
34
35
  isAncestor(cwd: string, ancestor: string, descendant: string): Promise<boolean>;
36
+ /** `git merge-base <a> <b>`; undefined when they share no ancestor or either is unknown. */
37
+ mergeBase(cwd: string, a: string, b: string): Promise<string | undefined>;
35
38
  /** Moves the current branch to `commit`, discarding the working tree. */
36
39
  resetHard(cwd: string, commit: string): Promise<void>;
37
40
  /** Points `ref` at `commit`, creating or moving it. */
@@ -75,6 +78,16 @@ export interface WorkstreamResult {
75
78
  testCritique?: ReviewPassOutcome;
76
79
  /** True when the reviewer saw a diff clipped for length in at least one round. */
77
80
  testCritiqueDiffClipped?: boolean;
81
+ /**
82
+ * Reviewer reads of failed attempts, made on the red path before each
83
+ * retry — the diagnosis that retry was briefed with. Kept on success and
84
+ * failure alike: a recovered workstream's near-miss belongs in the run
85
+ * report as much as a parked one's dead end.
86
+ */
87
+ failureDiagnoses?: Array<{
88
+ attempt: string;
89
+ verdict: string;
90
+ }>;
78
91
  }
79
92
  export interface RunProgramResult {
80
93
  programId: string;
@@ -85,6 +98,8 @@ export interface RunProgramResult {
85
98
  * same set the run report's "Needs your attention" section renders. */
86
99
  escalations: RenderableRecord[];
87
100
  reportPath: string;
101
+ /** The end-of-run whole-program review stage's result, for a caller that wants the snapshot commit. */
102
+ wholeProgramReview?: WholeProgramStageResult;
88
103
  }
89
104
  /** Every workstream in the transitive downstream cone of the given ids. */
90
105
  export declare function downstreamCone(workstreams: readonly Workstream[], rootIds: readonly string[]): Set<string>;
@@ -99,6 +114,65 @@ export declare function downstreamCone(workstreams: readonly Workstream[], rootI
99
114
  * verify commands itself, and writes the run report last, whatever happened.
100
115
  */
101
116
  export declare function runProgram(options: RunProgramOptions): Promise<RunProgramResult>;
117
+ /**
118
+ * Resolves the program's diff base for the whole-program review: the
119
+ * merge-base with the default branch, when it exists and differs from HEAD
120
+ * (the program's real branch point — the same range a pull request shows a
121
+ * human); otherwise `runStartCommit`, when it differs from HEAD (a
122
+ * `--force` run made directly on the default branch, where the merge-base is
123
+ * HEAD itself); otherwise `undefined` — an ordinary outcome, not a failure.
124
+ */
125
+ export declare function resolveProgramDiffBase(args: {
126
+ root: string;
127
+ git: GitOps;
128
+ isRepository: boolean;
129
+ /** HEAD as it stood before the run's first agent ran. */
130
+ runStartCommit: string | undefined;
131
+ }): Promise<string | undefined>;
132
+ /** The synthetic workstream id whole-program findings are journaled under (SC-07). */
133
+ export declare const WHOLE_PROGRAM_SUBJECT = "whole-program";
134
+ export interface WholeProgramStageResult {
135
+ outcome: WholeProgramReviewOutcome;
136
+ /** The snapshot commit, when one landed. */
137
+ commit?: string;
138
+ /** True when a commit was skipped because the tree is not a git repository. */
139
+ commitSkipped: boolean;
140
+ /**
141
+ * Ledger ids this stage journaled, for the fix-now cross-reference. Empty
142
+ * when the append failed — these are ids that are *in* the ledger.
143
+ */
144
+ findingIds: string[];
145
+ /** Post-pass failures — commit, ledger append, triage. Reported, never fatal. */
146
+ errors: string[];
147
+ }
148
+ /**
149
+ * The end-of-run whole-program review stage: establishes the diff base,
150
+ * calls WS-01's never-throwing pass exactly once, commits exactly what it
151
+ * wrote, and routes its findings through the existing findings path. Every
152
+ * risky step around the pass gets its own catch so a stage failure is a
153
+ * sentence in the report, never a change to the run's outcome (SC-05,
154
+ * SC-12) — see the outer catch below for the belt-and-braces case where a
155
+ * bug in this function's own body throws before the pass has even run.
156
+ */
157
+ export declare function runWholeProgramStage(args: {
158
+ root: string;
159
+ programId: string;
160
+ manifest: ProgramManifest;
161
+ config: NightshiftConfig;
162
+ agentRunner: AgentRunner;
163
+ git: GitOps;
164
+ isRepository: boolean;
165
+ results: WorkstreamResult[];
166
+ authorResult: AuthorStageResult;
167
+ runStartCommit: string | undefined;
168
+ decider: AgentConfig | undefined;
169
+ reviewed: Set<string>;
170
+ triaged: Set<string>;
171
+ now: () => Date;
172
+ log: (line: string) => void;
173
+ /** Test seam only; production never sets it. Passed straight to the pass. */
174
+ fs?: AsBuiltFs;
175
+ }): Promise<WholeProgramStageResult>;
102
176
  export interface FixAttempt {
103
177
  /** "kept" = the attempt verified clean under the runner's configured
104
178
  * commands; "failed" = it did not. Mirrors the critique loop's existing
@@ -116,5 +190,5 @@ export interface FixAttempt {
116
190
  /** The verification diagnosis, present only when `outcome === "failed"`. */
117
191
  failure?: string;
118
192
  }
119
- export declare function renderRunReport(manifest: ProgramManifest, results: WorkstreamResult[], ledger: DecisionLedgerView, triagedThisRun: ReadonlySet<string>, authorResult: AuthorStageResult, at: Date): string;
193
+ export declare function renderRunReport(manifest: ProgramManifest, results: WorkstreamResult[], ledger: DecisionLedgerView, triagedThisRun: ReadonlySet<string>, authorResult: AuthorStageResult, at: Date, wholeProgram?: WholeProgramStageResult): string;
120
194
  //# sourceMappingURL=run-program.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-program.d.ts","sourceRoot":"","sources":["../src/run-program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-program.d.ts","sourceRoot":"","sources":["../src/run-program.ts"],"names":[],"mappings":"AAIA,OAAO,EAUL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOjE,OAAO,EAGL,KAAK,kBAAkB,EAIxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAUL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAIL,KAAK,SAAS,EAEd,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAOnC;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,oEAAoE;IACpE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,+EAA+E;IAC/E,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrE;;;;;;;OAOG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxF,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,oEAAoE;IACpE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,yEAAyE;IACzE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,4FAA4F;IAC5F,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1E,yEAAyE;IACzE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,uDAAuD;IACvD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,aAAa,EAAE,MAqH3B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gEAAgE;IAChE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wFAAwF;IACxF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,kFAAkF;IAClF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC;4EACwE;IACxE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAkJD,2EAA2E;AAC3E,wBAAgB,cAAc,CAC5B,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,GAAG,CAAC,MAAM,CAAC,CAeb;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA0oB3B;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc9B;AAED,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,yBAAyB,CAAC;IACnC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,aAAa,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iFAAiF;IACjF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAmDD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,iBAAiB,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,6EAA6E;IAC7E,EAAE,CAAC,EAAE,SAAS,CAAC;CAChB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA6InC;AA4TD,MAAM,WAAW,UAAU;IACzB;;8CAE0C;IAC1C,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB;;;8BAG0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsfD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,MAAM,EAAE,kBAAkB,EAC1B,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,EACnC,YAAY,EAAE,iBAAiB,EAC/B,EAAE,EAAE,IAAI,EACR,YAAY,CAAC,EAAE,uBAAuB,GACrC,MAAM,CAgJR"}