@tokenfactory/acc-runner 0.42.0 → 0.43.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.
Files changed (68) hide show
  1. package/dist/engines/account-probe.d.ts +24 -0
  2. package/dist/engines/account-probe.d.ts.map +1 -1
  3. package/dist/engines/account-probe.js +18 -1
  4. package/dist/engines/account-probe.js.map +1 -1
  5. package/dist/machine-capabilities/index.d.ts +21 -0
  6. package/dist/machine-capabilities/index.d.ts.map +1 -0
  7. package/dist/machine-capabilities/index.js +21 -0
  8. package/dist/machine-capabilities/index.js.map +1 -0
  9. package/dist/machine-capabilities/probe.d.ts +61 -0
  10. package/dist/machine-capabilities/probe.d.ts.map +1 -0
  11. package/dist/machine-capabilities/probe.js +243 -0
  12. package/dist/machine-capabilities/probe.js.map +1 -0
  13. package/dist/machine-capabilities/redact.d.ts +42 -0
  14. package/dist/machine-capabilities/redact.d.ts.map +1 -0
  15. package/dist/machine-capabilities/redact.js +160 -0
  16. package/dist/machine-capabilities/redact.js.map +1 -0
  17. package/dist/machine-capabilities/report.d.ts +107 -0
  18. package/dist/machine-capabilities/report.d.ts.map +1 -0
  19. package/dist/machine-capabilities/report.js +211 -0
  20. package/dist/machine-capabilities/report.js.map +1 -0
  21. package/dist/machine-capabilities/types.d.ts +115 -0
  22. package/dist/machine-capabilities/types.d.ts.map +1 -0
  23. package/dist/machine-capabilities/types.js +11 -0
  24. package/dist/machine-capabilities/types.js.map +1 -0
  25. package/dist/migration-seq-guard.d.ts +78 -0
  26. package/dist/migration-seq-guard.d.ts.map +1 -0
  27. package/dist/migration-seq-guard.js +304 -0
  28. package/dist/migration-seq-guard.js.map +1 -0
  29. package/dist/node-version.d.ts +132 -0
  30. package/dist/node-version.d.ts.map +1 -0
  31. package/dist/node-version.js +318 -0
  32. package/dist/node-version.js.map +1 -0
  33. package/dist/prepr-gate.d.ts +120 -0
  34. package/dist/prepr-gate.d.ts.map +1 -1
  35. package/dist/prepr-gate.js +202 -3
  36. package/dist/prepr-gate.js.map +1 -1
  37. package/dist/program.d.ts.map +1 -1
  38. package/dist/program.js +13 -0
  39. package/dist/program.js.map +1 -1
  40. package/dist/runtime/review-chunking.d.ts +101 -0
  41. package/dist/runtime/review-chunking.d.ts.map +1 -0
  42. package/dist/runtime/review-chunking.js +192 -0
  43. package/dist/runtime/review-chunking.js.map +1 -0
  44. package/dist/runtime/review-diff.d.ts +30 -0
  45. package/dist/runtime/review-diff.d.ts.map +1 -0
  46. package/dist/runtime/review-diff.js +59 -0
  47. package/dist/runtime/review-diff.js.map +1 -0
  48. package/dist/runtime/reviewer.d.ts +40 -19
  49. package/dist/runtime/reviewer.d.ts.map +1 -1
  50. package/dist/runtime/reviewer.js +252 -51
  51. package/dist/runtime/reviewer.js.map +1 -1
  52. package/dist/serve-scope/command.d.ts +12 -0
  53. package/dist/serve-scope/command.d.ts.map +1 -0
  54. package/dist/serve-scope/command.js +89 -0
  55. package/dist/serve-scope/command.js.map +1 -0
  56. package/dist/serve-scope/index.d.ts +130 -0
  57. package/dist/serve-scope/index.d.ts.map +1 -0
  58. package/dist/serve-scope/index.js +148 -0
  59. package/dist/serve-scope/index.js.map +1 -0
  60. package/dist/task-runner.d.ts +11 -0
  61. package/dist/task-runner.d.ts.map +1 -1
  62. package/dist/task-runner.js +69 -0
  63. package/dist/task-runner.js.map +1 -1
  64. package/dist/watch.d.ts +8 -0
  65. package/dist/watch.d.ts.map +1 -1
  66. package/dist/watch.js +28 -0
  67. package/dist/watch.js.map +1 -1
  68. package/package.json +1 -1
@@ -0,0 +1,192 @@
1
+ /**
2
+ * REVIEWER-DIFF-CAP — make a large PR REVIEWABLE instead of unreviewable.
3
+ *
4
+ * MEASURED FAULT (PR #1815, 140,456 chars / 13 files against a 60,000-char cap):
5
+ * the runner-local reviewer truncated the diff, then spent three review cycles
6
+ * turning that truncation into code verdicts —
7
+ * 1. an advisory hold (infra),
8
+ * 2. a reject citing files "not present in the reviewable diff",
9
+ * 3. a reject stating "more than half the PR is not visible and cannot be
10
+ * verified".
11
+ * Zero defects were ever demonstrated, the PR deadlocked mergeable, and the
12
+ * rework loop it triggered could never succeed — reworking code does not shrink
13
+ * a diff. A reviewer must never convert its own tooling limitation into a code
14
+ * verdict.
15
+ *
16
+ * This module is the pure half of the fix. It provides:
17
+ *
18
+ * 1. `planReviewChunks` — split an over-cap diff into whole-file chunks that
19
+ * each fit under the cap, so EVERY file is actually read by some pass. The
20
+ * split is BYTE-EXACT: `chunks.map(c => c.text).join("") === diff`, which is
21
+ * what makes "nothing was withheld" a provable property rather than a claim.
22
+ * 2. The ABSENCE-CLAIM guard — patterns + partitioner that recognise a reason
23
+ * asserting content is missing/invisible/unverifiable. The runner had no such
24
+ * guard (the server path has had one since the #1665/#1679/#1690 wave); that
25
+ * absence is why #1815's two rejects stood.
26
+ *
27
+ * The absence-claim half is a MIRROR of `api/_lib/reviewer/absence-claims.ts` —
28
+ * the runner is a standalone published package and cannot import from `api/_lib`.
29
+ * // keep in sync with api/_lib/reviewer/absence-claims.ts
30
+ *
31
+ * PURE. No I/O, no clock, no client. The wiring lives in `reviewer.ts`.
32
+ */
33
+ import { splitDiffByFile } from "./review-diff.js";
34
+ /**
35
+ * Hard ceiling on chunk count. A diff needing more passes than this is not a
36
+ * review problem the runner can solve by spending more subscription budget — it
37
+ * is reported as an INFRA outcome by the caller (never a reject), so the
38
+ * escalation path owns it. 8 chunks × 60,000 chars ≈ 480 KB of diff.
39
+ */
40
+ export const MAX_REVIEW_CHUNKS = 8;
41
+ /**
42
+ * Split `diff` into chunks that each fit within `maxChars`, cutting at whole-file
43
+ * boundaries wherever possible.
44
+ *
45
+ * INVARIANTS (all asserted by the wave's tests):
46
+ * - byte-exact: `chunks.map(c => c.text).join("") === diff`;
47
+ * - every chunk's `text.length <= maxChars` (except the degenerate `maxChars <= 0`);
48
+ * - a diff at or under the cap yields exactly ONE chunk holding the whole diff,
49
+ * so the caller's single-pass path stays byte-identical to before.
50
+ *
51
+ * A file larger than `maxChars` on its own is sliced into contiguous parts rather
52
+ * than dropped — a partly-shown file across two passes still gets fully read,
53
+ * which a truncating cap never achieved.
54
+ */
55
+ export function planReviewChunks(diff, maxChars) {
56
+ const src = diff ?? "";
57
+ const cap = Number.isFinite(maxChars) && maxChars > 0 ? Math.floor(maxChars) : src.length;
58
+ if (src.length === 0)
59
+ return [];
60
+ if (src.length <= cap) {
61
+ return [{ index: 1, total: 1, paths: diffPathsOf(src), text: src, partial: false }];
62
+ }
63
+ // Units are the atoms we pack: the (usually empty) pre-first-file preamble,
64
+ // then one unit per `diff --git` file block. Concatenating every unit in order
65
+ // reproduces `src` exactly, which is what carries the byte-exactness invariant
66
+ // through the packing below.
67
+ const { preamble, files } = splitDiffByFile(src);
68
+ const units = files.length === 0
69
+ ? [{ path: null, text: src }]
70
+ : [
71
+ ...(preamble.length > 0 ? [{ path: null, text: preamble }] : []),
72
+ ...files.map((f) => ({ path: f.path, text: f.text })),
73
+ ];
74
+ const chunks = [];
75
+ let open = null;
76
+ const flush = () => {
77
+ if (open && open.text.length > 0) {
78
+ chunks.push({ paths: open.paths, text: open.text, partial: false });
79
+ }
80
+ open = null;
81
+ };
82
+ for (const unit of units) {
83
+ if (unit.text.length > cap) {
84
+ // Oversized single unit: close the open chunk, then emit contiguous slices.
85
+ flush();
86
+ for (let at = 0; at < unit.text.length; at += cap) {
87
+ chunks.push({
88
+ paths: unit.path ? [unit.path] : [],
89
+ text: unit.text.slice(at, at + cap),
90
+ partial: true,
91
+ });
92
+ }
93
+ continue;
94
+ }
95
+ if (open && open.text.length + unit.text.length > cap)
96
+ flush();
97
+ if (!open)
98
+ open = { paths: [], text: "" };
99
+ if (unit.path)
100
+ open.paths.push(unit.path);
101
+ open.text += unit.text;
102
+ }
103
+ flush();
104
+ const total = chunks.length;
105
+ return chunks.map((c, i) => ({ ...c, index: i + 1, total }));
106
+ }
107
+ /** File paths a diff slice names, used to label a chunk. */
108
+ function diffPathsOf(diff) {
109
+ return splitDiffByFile(diff).files.map((f) => f.path);
110
+ }
111
+ /* ─────────────────────────── absence-claim detection ─────────────────────────
112
+ *
113
+ * // keep in sync with api/_lib/reviewer/absence-claims.ts ABSENCE_CLAIM_PATTERNS
114
+ *
115
+ * Each pattern is anchored on a visibility verb ("present", "visible", "shown",
116
+ * "included", "listed") or on an explicit diff subject, so a BEHAVIOURAL finding
117
+ * ("the handler does not rethrow") is never matched. Callers gate on
118
+ * not-full-coverage, which is what makes keeping these broad safe: on a complete
119
+ * single-pass review nothing here fires and the verdict is unchanged.
120
+ */
121
+ export const ABSENCE_CLAIM_PATTERNS = [
122
+ /\bnot\s+shown\s+to\s+(?:exist|be)\b/i,
123
+ /\bnot\s+(?:fully\s+|clearly\s+|actually\s+|explicitly\s+|anywhere\s+)?(?:present|visible|shown|included|listed)\b/i,
124
+ /\b(?:absent|missing)\s+from\s+(?:the\s+)?(?:visible\s+|provided\s+|supplied\s+|shown\s+|reviewable\s+)?(?:diff|patch|changeset|pull\s+request|PR)\b/i,
125
+ /\b(?:diff|patch|changeset|pull\s+request)\b[^.;]{0,80}?\b(?:does|do|did)\s+not\s+(?:show|contain|include|reveal)\b/i,
126
+ /\bnowhere\s+(?:in|within)\s+(?:the\s+)?(?:visible\s+|provided\s+)?(?:diff|patch|changeset|PR)\b/i,
127
+ /\b(?:no|neither)\s+(?:such\s+)?(?:file|test|test\s+file|symbol|function|export|import|definition|proof)\b[^.;]{0,60}?\b(?:in|within)\s+the\s+(?:visible\s+|provided\s+)?(?:diff|patch|changeset|PR)\b/i,
128
+ /\bnot\s+(?:seen|observed)\s+in\s+the\s+(?:visible\s+|provided\s+)?(?:diff|patch|changeset|PR)\b/i,
129
+ /\bcould\s+not\s+(?:find|locate)\b[^.;]{0,60}?\b(?:in|within)\s+the\s+(?:visible\s+|provided\s+)?(?:diff|patch|changeset|PR)\b/i,
130
+ ];
131
+ /**
132
+ * RUNNER-ONLY addition (no server counterpart): #1815's second reject read
133
+ * "more than half the PR is not visible and cannot be verified". The
134
+ * "cannot be verified" half is the class the task names explicitly, and the
135
+ * server patterns above only catch it via the "not visible" clause that happened
136
+ * to sit next to it. These two regexes catch it on its own — but ONLY in
137
+ * conjunction (both must match the same reason), so "the migration cannot be
138
+ * verified without a rollback plan" is a defect claim and stays a defect claim.
139
+ */
140
+ const UNVERIFIABLE_RE = /\b(?:cannot|can\s?not|can't|could\s?not|couldn't|unable\s+to|no\s+way\s+to)\s+(?:be\s+)?(?:verif|confirm|assess|evaluat|review|read|inspect|judge|check)/i;
141
+ const VISIBILITY_SUBJECT_RE = /\b(?:truncat\w*|withheld|(?:in)?visible|not\s+shown|beyond\s+the\s+\w+|review\s+size\s+limit|diff\s+size|size\s+limit|reviewable\s+diff|60[,_]?000|60\s?k)\b/i;
142
+ /**
143
+ * True when one reviewer reason asserts that content is ABSENT from — or
144
+ * unverifiable within — what the reviewer was shown, rather than describing a
145
+ * defect in what it read. Only meaningful when coverage was incomplete; callers
146
+ * MUST gate on that before acting on it.
147
+ */
148
+ export function isAbsenceClaimReason(reason) {
149
+ const text = reason ?? "";
150
+ if (text.trim().length === 0)
151
+ return false;
152
+ if (ABSENCE_CLAIM_PATTERNS.some((re) => re.test(text)))
153
+ return true;
154
+ return UNVERIFIABLE_RE.test(text) && VISIBILITY_SUBJECT_RE.test(text);
155
+ }
156
+ /** Sub-marker identifying this class inside the escalation headline. */
157
+ export const TRUNCATED_ABSENCE_MARKER = "truncated-diff absence claim";
158
+ /**
159
+ * Headline stamped on a verdict the absence guard escalates. Opens with RR-3's
160
+ * `reviewer tooling failure:` marker so every existing consumer
161
+ * (`isToolingFailureReviewerOutcome`, the budget exemption in
162
+ * `countReviewerErrors`, the neutral `acc/review` publish) routes it as INFRA.
163
+ *
164
+ * Phrased to match none of the patterns above (asserted by the wave's test), so
165
+ * a re-scan of a stored row can never re-classify our own headline as a claim.
166
+ */
167
+ export const REVIEWER_ABSENCE_ESCALATION_REASON = `reviewer tooling failure: ${TRUNCATED_ABSENCE_MARKER} — every blocking reason this ` +
168
+ "review produced was a statement about what the harness did or did not show it, not a " +
169
+ "defect in the code. A reviewer may not convert its own read-coverage limit into a " +
170
+ "verdict: reworking the branch cannot shrink a diff, so such a reject deadlocks a " +
171
+ "mergeable PR (see #1815). Escalated to a budget-exempt infra outcome with acc/review " +
172
+ "held neutral. Remedy: widen review coverage; never re-assert the claim.";
173
+ /** Prefix marking a discarded claim in the audit trail (never re-emitted as a finding). */
174
+ export const DISCARDED_CLAIM_PREFIX = "discarded (unsound — a read-coverage claim, not a defect): ";
175
+ /** True when a completed review row is an absence-guard escalation. */
176
+ export function isAbsenceEscalatedOutcome(decision, reasons) {
177
+ if (decision !== "reviewer_error")
178
+ return false;
179
+ return (reasons ?? []).some((r) => typeof r === "string" && r.includes(TRUNCATED_ABSENCE_MARKER));
180
+ }
181
+ /** Split a reason list into the substantive findings and the absence claims. */
182
+ export function partitionAbsenceClaims(reasons) {
183
+ const substantive = [];
184
+ const absence = [];
185
+ for (const r of reasons ?? []) {
186
+ if (typeof r !== "string")
187
+ continue;
188
+ (isAbsenceClaimReason(r) ? absence : substantive).push(r);
189
+ }
190
+ return { substantive, absence };
191
+ }
192
+ //# sourceMappingURL=review-chunking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-chunking.js","sourceRoot":"","sources":["../../src/runtime/review-chunking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Unified-diff structure helpers shared by the reviewer's truncation path
3
+ * (`reviewer.ts`) and its chunk planner (`review-chunking.ts`).
4
+ *
5
+ * Extracted verbatim from `reviewer.ts` so the two consumers share ONE parser
6
+ * instead of a copy each — `reviewer.ts` re-exports both names, so its public
7
+ * surface (and every test importing them from there) is unchanged.
8
+ *
9
+ * PURE. No I/O.
10
+ */
11
+ /**
12
+ * RF-3: the file paths a unified diff touches, in order, from its
13
+ * `diff --git a/<path> b/<path>` headers (falling back to `+++ b/<path>`).
14
+ * Pure; tolerant of malformed headers (skips what it can't parse).
15
+ * // keep in sync with api/_lib/reviewer-agent.ts diffFilePaths
16
+ */
17
+ export declare function diffFilePaths(diff: string): string[];
18
+ /**
19
+ * RF-3: split a unified diff into its per-file blocks. Byte-exact —
20
+ * `preamble + files.map(f => f.text).join("")` reproduces the input — so a
21
+ * reordered diff is still the same bytes, just in a different file order.
22
+ */
23
+ export declare function splitDiffByFile(diff: string): {
24
+ preamble: string;
25
+ files: Array<{
26
+ path: string;
27
+ text: string;
28
+ }>;
29
+ };
30
+ //# sourceMappingURL=review-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-diff.d.ts","sourceRoot":"","sources":["../../src/runtime/review-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBpD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAcpE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Unified-diff structure helpers shared by the reviewer's truncation path
3
+ * (`reviewer.ts`) and its chunk planner (`review-chunking.ts`).
4
+ *
5
+ * Extracted verbatim from `reviewer.ts` so the two consumers share ONE parser
6
+ * instead of a copy each — `reviewer.ts` re-exports both names, so its public
7
+ * surface (and every test importing them from there) is unchanged.
8
+ *
9
+ * PURE. No I/O.
10
+ */
11
+ /**
12
+ * RF-3: the file paths a unified diff touches, in order, from its
13
+ * `diff --git a/<path> b/<path>` headers (falling back to `+++ b/<path>`).
14
+ * Pure; tolerant of malformed headers (skips what it can't parse).
15
+ * // keep in sync with api/_lib/reviewer-agent.ts diffFilePaths
16
+ */
17
+ export function diffFilePaths(diff) {
18
+ const paths = [];
19
+ const seen = new Set();
20
+ for (const line of (diff ?? "").split("\n")) {
21
+ let p = null;
22
+ const git = /^diff --git a\/(.+?) b\/(.+)$/.exec(line);
23
+ if (git)
24
+ p = git[2];
25
+ else {
26
+ const plus = /^\+\+\+ b\/(.+)$/.exec(line);
27
+ if (plus && plus[1] !== "/dev/null")
28
+ p = plus[1];
29
+ }
30
+ if (p && !seen.has(p)) {
31
+ seen.add(p);
32
+ paths.push(p);
33
+ }
34
+ }
35
+ return paths;
36
+ }
37
+ /**
38
+ * RF-3: split a unified diff into its per-file blocks. Byte-exact —
39
+ * `preamble + files.map(f => f.text).join("")` reproduces the input — so a
40
+ * reordered diff is still the same bytes, just in a different file order.
41
+ */
42
+ export function splitDiffByFile(diff) {
43
+ const src = diff ?? "";
44
+ const headerRe = /^diff --git a\/(.+?) b\/(.+)$/gm;
45
+ const starts = [];
46
+ let m;
47
+ while ((m = headerRe.exec(src)) !== null)
48
+ starts.push({ index: m.index, path: m[2] });
49
+ if (starts.length === 0)
50
+ return { preamble: src, files: [] };
51
+ return {
52
+ preamble: src.slice(0, starts[0].index),
53
+ files: starts.map((s, i) => ({
54
+ path: s.path,
55
+ text: src.slice(s.index, i + 1 < starts.length ? starts[i + 1].index : src.length),
56
+ })),
57
+ };
58
+ }
59
+ //# sourceMappingURL=review-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-diff.js","sourceRoot":"","sources":["../../src/runtime/review-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAkB,IAAI,CAAC;QAC5B,MAAM,GAAG,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,GAAG;YAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aACf,CAAC;YACJ,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;gBAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,iCAAiC,CAAC;IACnD,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC7D,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;SACnF,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import { type ExecaChildProcess } from "execa";
18
18
  import { type ReviewerProbeResult } from "../failure-classifier.js";
19
+ import { type ReviewChunk } from "./review-chunking.js";
19
20
  import { type TolerantRemoveResult } from "../review-worktree-cleanup.js";
20
21
  import type { RunnerSupabaseClient } from "../supabase.js";
21
22
  export interface ReviewAssignment {
@@ -102,25 +103,7 @@ export declare function normalizeReportHeading(line: string): string | null;
102
103
  */
103
104
  export declare function scanCompletionSignals(prBody: string): CompletionSignalHit[];
104
105
  export declare const REVIEWER_MAX_DIFF_CHARS = 60000;
105
- /**
106
- * RF-3: the file paths a unified diff touches, in order, from its
107
- * `diff --git a/<path> b/<path>` headers (falling back to `+++ b/<path>`).
108
- * Pure; tolerant of malformed headers (skips what it can't parse).
109
- * // keep in sync with api/_lib/reviewer-agent.ts diffFilePaths
110
- */
111
- export declare function diffFilePaths(diff: string): string[];
112
- /**
113
- * RF-3: split a unified diff into its per-file blocks. Byte-exact —
114
- * `preamble + files.map(f => f.text).join("")` reproduces the input — so a
115
- * reordered diff is still the same bytes, just in a different file order.
116
- */
117
- export declare function splitDiffByFile(diff: string): {
118
- preamble: string;
119
- files: Array<{
120
- path: string;
121
- text: string;
122
- }>;
123
- };
106
+ export { diffFilePaths, splitDiffByFile } from "./review-diff.js";
124
107
  /**
125
108
  * RF-3: the file paths the acceptance criteria explicitly NAME. These are the
126
109
  * reviewer's proof files — an AC that says "a test proves X" and names the test
@@ -222,6 +205,44 @@ export declare function renderReviewerPrompt(args: {
222
205
  pr_body: string;
223
206
  pr_diff: string;
224
207
  }): string;
208
+ /** The chunk-scope override appended to a PART pass's prompt. */
209
+ export declare function chunkScopeNotice(chunk: ReviewChunk): string;
210
+ /** The synthesis override appended to the FINAL pass's prompt. */
211
+ export declare function synthesisScopeNotice(totalChunks: number): string;
212
+ /**
213
+ * The evidence block the synthesis pass reads in place of a diff: the complete
214
+ * file inventory (so every path the PR touches is named) followed by each part
215
+ * pass's decision and findings.
216
+ */
217
+ export declare function renderSynthesisEvidence(chunks: ReviewChunk[], passes: Array<{
218
+ decision: string;
219
+ reasons: string[];
220
+ confidence: number;
221
+ }>, allPaths: string[]): string;
222
+ /**
223
+ * REVIEWER-DIFF-CAP: one machine-readable coverage line, appended to every
224
+ * verdict a chunked review produces. Deliberately word-free of every
225
+ * absence-claim pattern (asserted by the wave's test) so this telemetry can
226
+ * never be re-read as a finding.
227
+ */
228
+ export declare function chunkedCoverageReason(chunkCount: number, fileCount: number, diffChars: number): string;
229
+ /**
230
+ * REVIEWER-DIFF-CAP — the guard that makes the measured #1815 verdict
231
+ * IMPOSSIBLE: a reject whose reasons are exclusively read-coverage claims
232
+ * becomes an INFRA outcome (`reviewer_error`), never a code verdict.
233
+ *
234
+ * Applied ONLY when coverage was not a single full-diff pass, so a normal
235
+ * small-diff review is byte-identical to before (pinned by test). Within that
236
+ * gate:
237
+ * - reject, all reasons are coverage claims → `reviewer_error` (infra retry,
238
+ * budget-exempt via the RR-3 tooling-failure marker), claims kept as a
239
+ * DISCARDED audit trail rather than re-emitted as findings;
240
+ * - reject with at least one substantive defect → the reject STANDS on the
241
+ * substantive reasons alone (the coverage claims are still discarded);
242
+ * - approve → coverage claims stripped; the approve stands, because on the
243
+ * chunked path everything really was read.
244
+ */
245
+ export declare function guardCoverageClaims(outcome: ReviewerOutcome): ReviewerOutcome;
225
246
  export declare function extractReviewerDecision(text: string): {
226
247
  decision: "approve" | "reject";
227
248
  reasons: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../src/runtime/reviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../src/runtime/reviewer.ts"],"names":[],"mappings":"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"}