@zephyrdeng/pi-review 0.18.0 → 0.18.2

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.
@@ -0,0 +1,2 @@
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ export default function piReviewExtension(pi: ExtensionAPI): void;
@@ -0,0 +1,22 @@
1
+ import { buildRvOrchestrationPrompt, parseRvArgs, RV_COMPLETIONS } from "./rv-prompts.js";
2
+ export default function piReviewExtension(pi) {
3
+ pi.registerCommand("rv", {
4
+ description: "Delegate pi-review to the agent (English prompts). Usage: /rv [--mode plan|challenge] [--model id] [--keep-session] @file-or-text | models",
5
+ getArgumentCompletions: (prefix) => {
6
+ const filtered = RV_COMPLETIONS.filter((item) => item.value.startsWith(prefix));
7
+ return filtered.length
8
+ ? filtered.map(({ value, hint }) => ({ value, label: value, description: hint }))
9
+ : null;
10
+ },
11
+ handler: async (rawArgs, ctx) => {
12
+ const trimmed = rawArgs.trim();
13
+ const parsed = parseRvArgs(trimmed);
14
+ const prompt = buildRvOrchestrationPrompt(parsed);
15
+ if (!trimmed && !parsed.modelsOnly) {
16
+ ctx.ui.notify("/rv needs a target or `models`. Try: /rv @path or /rv models", "warning");
17
+ return;
18
+ }
19
+ pi.sendUserMessage(prompt);
20
+ },
21
+ });
22
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * English orchestration prompts for /rv — parent Pi agent runs pi-review per skill.
3
+ * Child review sessions use presets in resources/review-presets.json (also English).
4
+ */
5
+ export type RvParsed = {
6
+ mode: "code" | "plan" | "challenge";
7
+ model?: string;
8
+ keepSession: boolean;
9
+ continueHandle?: string;
10
+ modelsOnly: boolean;
11
+ target: string;
12
+ };
13
+ export declare function parseRvArgs(raw: string): RvParsed;
14
+ export declare function buildRvOrchestrationPrompt(parsed: RvParsed): string;
15
+ /** Short labels for TUI completions (English). */
16
+ export declare const RV_COMPLETIONS: {
17
+ value: string;
18
+ hint: string;
19
+ }[];
@@ -0,0 +1,132 @@
1
+ /**
2
+ * English orchestration prompts for /rv — parent Pi agent runs pi-review per skill.
3
+ * Child review sessions use presets in resources/review-presets.json (also English).
4
+ */
5
+ export function parseRvArgs(raw) {
6
+ const tokens = raw.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) ?? [];
7
+ const cleaned = tokens.map((t) => t.replace(/^['"]|['"]$/g, ""));
8
+ let mode = "code";
9
+ let model;
10
+ let keepSession = false;
11
+ let continueHandle;
12
+ let modelsOnly = false;
13
+ const rest = [];
14
+ for (let i = 0; i < cleaned.length; i++) {
15
+ const t = cleaned[i];
16
+ if (t === "models" && rest.length === 0 && i === cleaned.length - 1) {
17
+ modelsOnly = true;
18
+ continue;
19
+ }
20
+ if (t === "--keep-session") {
21
+ keepSession = true;
22
+ continue;
23
+ }
24
+ if (t === "--mode" && cleaned[i + 1]) {
25
+ const m = cleaned[++i];
26
+ if (m === "plan" || m === "challenge" || m === "code")
27
+ mode = m;
28
+ continue;
29
+ }
30
+ if (t === "--model" && cleaned[i + 1]) {
31
+ model = cleaned[++i];
32
+ continue;
33
+ }
34
+ if (t === "--continue" && cleaned[i + 1]) {
35
+ continueHandle = cleaned[++i];
36
+ continue;
37
+ }
38
+ rest.push(t);
39
+ }
40
+ return {
41
+ mode,
42
+ model,
43
+ keepSession,
44
+ continueHandle,
45
+ modelsOnly,
46
+ target: rest.join(" ").trim(),
47
+ };
48
+ }
49
+ function baseRules() {
50
+ return [
51
+ "Follow the pi-review skill.",
52
+ "Run pi-review in an isolated child session; return only the review conclusion.",
53
+ "Do not edit, patch, commit, or implement findings unless the user asks separately.",
54
+ "Preserve the final PI_REVIEW_META line from pi-review output.",
55
+ ].join(" ");
56
+ }
57
+ export function buildRvOrchestrationPrompt(parsed) {
58
+ if (parsed.modelsOnly) {
59
+ return [
60
+ "Run the pi-review model catalog step.",
61
+ baseRules(),
62
+ "Execute: pi-review models",
63
+ "Present a short English summary: how many providers, suggest 2–3 IDs suited for code review vs plan/challenge.",
64
+ "Do not start a review until the user supplies a target (@path or text).",
65
+ ].join("\n\n");
66
+ }
67
+ if (parsed.continueHandle) {
68
+ return [
69
+ "Continue a prior pi-review session.",
70
+ baseRules(),
71
+ `Execute: pi-review --continue ${parsed.continueHandle} -- ${parsed.target || "follow up on the previous review"}`,
72
+ "Answer the follow-up in English; keep the same review-only scope.",
73
+ ].join("\n\n");
74
+ }
75
+ if (!parsed.target) {
76
+ return [
77
+ "The /rv command needs a review target.",
78
+ "Tell the user (in English): usage is /rv [--mode code|plan|challenge] [--model provider/model] [--keep-session] -- @files-or-brief",
79
+ "Examples: /rv @src/foo.ts | /rv --mode challenge @docs/design.md | /rv models",
80
+ ].join("\n\n");
81
+ }
82
+ const modeBlock = {
83
+ code: [
84
+ "Mode: code (default).",
85
+ "Focus: correctness, regressions, security, concurrency, API contracts, edge cases, tests.",
86
+ "Use read-only inspection via pi-review; no file mutations.",
87
+ ].join(" "),
88
+ plan: [
89
+ "Mode: plan.",
90
+ "Review architecture, design, or strategy through engineering, product, security, QA, ops, and DX lenses.",
91
+ "Identify fatal flaws, trade-offs, sequencing risks, and minimal changes to de-risk the plan.",
92
+ ].join(" "),
93
+ challenge: [
94
+ "Mode: challenge (adversarial).",
95
+ "Pressure-test assumptions, boundaries, dependencies, failure modes, migration, and missing evidence.",
96
+ "One-shot conclusion; do not run a live Q&A interview.",
97
+ ].join(" "),
98
+ };
99
+ const cliParts = ["pi-review"];
100
+ if (parsed.mode !== "code")
101
+ cliParts.push(`--mode ${parsed.mode}`);
102
+ if (parsed.model)
103
+ cliParts.push(`--model ${parsed.model}`);
104
+ if (parsed.keepSession)
105
+ cliParts.push("--keep-session");
106
+ cliParts.push("--", parsed.target);
107
+ const modelStep = parsed.model
108
+ ? `Use model exactly as given: ${parsed.model} (must appear in pi-review models output).`
109
+ : "Run pi-review models first if needed; pick a suitable listed ID or omit --model for Pi default.";
110
+ return [
111
+ "Run pi-review for the target below.",
112
+ baseRules(),
113
+ modeBlock[parsed.mode],
114
+ modelStep,
115
+ parsed.keepSession
116
+ ? "Use --keep-session so the user can follow up with /rv --continue <handle>."
117
+ : "",
118
+ `Execute:\n${cliParts.join(" ")}`,
119
+ ]
120
+ .filter(Boolean)
121
+ .join("\n\n");
122
+ }
123
+ /** Short labels for TUI completions (English). */
124
+ export const RV_COMPLETIONS = [
125
+ { value: "@", hint: "file path after @ (e.g. @src/foo.ts)" },
126
+ { value: "models", hint: "list pi-review models only" },
127
+ { value: "--mode code", hint: "code / diff / MR review" },
128
+ { value: "--mode plan", hint: "architecture or plan review" },
129
+ { value: "--mode challenge", hint: "adversarial plan review" },
130
+ { value: "--model ", hint: "provider/model from pi-review models" },
131
+ { value: "--keep-session", hint: "persist session for follow-up" },
132
+ ];
package/dist/jev.d.ts CHANGED
@@ -31,7 +31,9 @@ export interface JevConnection {
31
31
  */
32
32
  export declare function resolveJevConnection(env?: NodeJS.ProcessEnv): JevConnection | undefined;
33
33
  export declare class JevError extends Error {
34
- constructor(message: string);
34
+ /** Allowlisted server error code (e.g. `max_tokens_exceeded`); never raw body content. */
35
+ readonly code?: string;
36
+ constructor(message: string, code?: string);
35
37
  }
36
38
  export interface JevUsage {
37
39
  inputTokens: number;
package/dist/jev.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jev.d.ts","sourceRoot":"","sources":["../src/jev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jev.d.ts","sourceRoot":"","sources":["../src/jev.ts"],"names":[],"mappings":"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"}
package/dist/jev.js CHANGED
@@ -48,9 +48,25 @@ export function resolveJevConnection(env = process.env) {
48
48
  };
49
49
  }
50
50
  export class JevError extends Error {
51
- constructor(message) {
51
+ /** Allowlisted server error code (e.g. `max_tokens_exceeded`); never raw body content. */
52
+ code;
53
+ constructor(message, code) {
52
54
  super(message);
53
55
  this.name = "JevError";
56
+ if (code)
57
+ this.code = code;
58
+ }
59
+ }
60
+ const SAFE_ERROR_CODE = /^[a-z][a-z0-9_]{0,63}$/;
61
+ /** Only `detail.error_type` matching SAFE_ERROR_CODE survives; anything else in the body is dropped. */
62
+ async function readErrorCode(response) {
63
+ try {
64
+ const body = (await response.json());
65
+ const code = body?.detail?.error_type;
66
+ return typeof code === "string" && SAFE_ERROR_CODE.test(code) ? code : undefined;
67
+ }
68
+ catch {
69
+ return undefined;
54
70
  }
55
71
  }
56
72
  const NOUL_CRITERIA = {
@@ -96,7 +112,8 @@ async function callSystemOne(connection, state, questionBody, fetchImpl) {
96
112
  break;
97
113
  }
98
114
  if (!response.ok) {
99
- throw new JevError(`typesafe api http ${response.status}`);
115
+ const code = await readErrorCode(response);
116
+ throw new JevError(`typesafe api http ${response.status}${code ? ` (${code})` : ""}`, code);
100
117
  }
101
118
  let body;
102
119
  try {
package/dist/jev.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jev.js","sourceRoot":"","sources":["../src/jev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jev.js","sourceRoot":"","sources":["../src/jev.ts"],"names":[],"mappings":"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"}
package/dist/jev.test.js CHANGED
@@ -249,4 +249,20 @@ test("withUncertaintyEscalation skips the strong tier when nothing is borderline
249
249
  });
250
250
  assert.equal(called, false);
251
251
  });
252
+ test("evaluateNouls surfaces only an allowlisted server error code", async () => {
253
+ const withCode = mockFetch(400, { detail: { error_type: "max_tokens_exceeded" } });
254
+ await assert.rejects(evaluateNouls(CONN, {}, { q: "x" }, withCode), (error) => {
255
+ assert.ok(error instanceof JevError);
256
+ assert.equal(error.message, "typesafe api http 400 (max_tokens_exceeded)");
257
+ assert.equal(error.code, "max_tokens_exceeded");
258
+ return true;
259
+ });
260
+ const unsafe = mockFetch(400, { detail: { error_type: "Bearer sk-secret <script>", input: "private source" } });
261
+ await assert.rejects(evaluateNouls(CONN, {}, { q: "x" }, unsafe), (error) => {
262
+ assert.ok(error instanceof JevError);
263
+ assert.equal(error.message, "typesafe api http 400");
264
+ assert.equal(error.code, undefined);
265
+ return true;
266
+ });
267
+ });
252
268
  //# sourceMappingURL=jev.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jev.test.js","sourceRoot":"","sources":["../src/jev.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jev.test.js","sourceRoot":"","sources":["../src/jev.test.ts"],"names":[],"mappings":"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"}
package/dist/screen.d.ts CHANGED
@@ -7,6 +7,21 @@ export declare const SCREEN_THRESHOLD = 0.6;
7
7
  export declare const MAX_HUNKS_PER_FILE = 40;
8
8
  /** The screening API accepted 561 Nouls in one call; chunk with headroom below that. */
9
9
  export declare const MAX_QUESTIONS_PER_CALL = 480;
10
+ /**
11
+ * Per-request token budgets at 75% of jev-1.13's documented limits
12
+ * (docs.typesafe.ai/models): 64k for state + all questions, 32k for state +
13
+ * the longest question. See docs/research/jev-screen-token-budget.md.
14
+ */
15
+ export declare const BATCH_TOKEN_BUDGET = 48000;
16
+ export declare const STATE_TOKEN_BUDGET = 24000;
17
+ /** Line-halving levels per piece after the server still reports max_tokens_exceeded. */
18
+ export declare const MAX_REACTIVE_SPLITS = 3;
19
+ /**
20
+ * shortcut: chars-per-token heuristic (ASCII/3, other UTF-16 units 1:1) — the API has no
21
+ * token-count endpoint and reactive halving covers underestimates; calibrate from
22
+ * usage.input_tokens if it proves too conservative.
23
+ */
24
+ export declare function estimateTokens(text: string): number;
10
25
  export interface ScreenPattern {
11
26
  title: string;
12
27
  severity: string;
@@ -37,10 +52,21 @@ export interface ScreenHunkReport {
37
52
  /** Matched pattern ids, highest probability first. */
38
53
  patterns: string[];
39
54
  }
55
+ /** A hunk piece the API kept rejecting as too large; its coverage is missing. */
56
+ export interface ScreenUnscreened {
57
+ id: string;
58
+ path: string;
59
+ startLine: number;
60
+ endLine: number;
61
+ reason: string;
62
+ }
40
63
  export interface ScreenResult {
41
- status: "clean" | "has_findings";
64
+ /** `incomplete`: no findings, but some code went unscreened — never a pass. */
65
+ status: "clean" | "has_findings" | "incomplete";
42
66
  findings: ReviewFinding[];
67
+ /** One report per input hunk; pieces of a split hunk merge into it. */
43
68
  hunkReports: ScreenHunkReport[];
69
+ unscreened?: ScreenUnscreened[];
44
70
  questions: number;
45
71
  calls: number;
46
72
  durationMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"AAkBA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EASL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,mHAAmH;AACnH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;IACnE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAkIzD,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA2B,GAAG,UAAU,EAAE,CA6C1G;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,GAAG,cAAc,CAAC;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAiCD,0GAA0G;AAC1G,wBAAsB,WAAW,CAC/B,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAAO,GAC/E,OAAO,CAAC,YAAY,CAAC,CAkFvB;AAOD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,iBAAiB,EAAE,CAgBlG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG;IAC/D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAiBA;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAmB9D;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CA8ClE;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,KAAK,CAuB3E"}
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"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"}
package/dist/screen.js CHANGED
@@ -1,10 +1,11 @@
1
1
  // pi-review screen: gate-grade Jev screening — typed judgments only, no LLM
2
2
  // prose generation on this path.
3
3
  //
4
- // Each file is sliced into declaration-level hunks deterministically; one
5
- // System One call fans out a catch-all Noul plus one Noul per catalog defect
6
- // pattern per hunk; hits assemble ReviewFinding-shaped results from pattern
7
- // templates. Catalog misses still surface as "unmatched defect signal"
4
+ // Each file is sliced into declaration-level hunks deterministically; System
5
+ // One calls fan out a catch-all Noul plus one Noul per catalog defect pattern
6
+ // per hunk, batched under Jev token budgets with only each batch's hunks in
7
+ // state (docs/research/jev-screen-token-budget.md); hits assemble
8
+ // ReviewFinding-shaped results from pattern templates. Catalog misses still surface as "unmatched defect signal"
8
9
  // findings, so the gate never silently drops a strong catch-all signal —
9
10
  // deeper review (full `pi-review`) is the escape hatch, not silent loss.
10
11
  // Mechanism and measurements: docs/research/jev-screening-case.md.
@@ -14,7 +15,7 @@
14
15
  // recurring unmatched signals can be promoted into patterns — see
15
16
  // screen-memory.ts and `pi-review screen-memory`.
16
17
  import fs from "node:fs";
17
- import { evaluateNouls, resolveJevConnection, GENERIC_NOUL_CRITERIA, } from "./jev.js";
18
+ import { evaluateNouls, resolveJevConnection, GENERIC_NOUL_CRITERIA, JevError, } from "./jev.js";
18
19
  import { aggregateScreenMemory, formatScreenMemoryAscii, loadUserPatterns, readScreenMemory, recordScreenMemory, screenMemoryEnabled, screenMemoryFilePath, screenPatternsFilePath, } from "./screen-memory.js";
19
20
  import { expandMaybeHome, fail } from "./utils.js";
20
21
  /** Probability floor for both the catch-all and per-pattern questions. */
@@ -23,6 +24,32 @@ export const SCREEN_THRESHOLD = 0.6;
23
24
  export const MAX_HUNKS_PER_FILE = 40;
24
25
  /** The screening API accepted 561 Nouls in one call; chunk with headroom below that. */
25
26
  export const MAX_QUESTIONS_PER_CALL = 480;
27
+ /**
28
+ * Per-request token budgets at 75% of jev-1.13's documented limits
29
+ * (docs.typesafe.ai/models): 64k for state + all questions, 32k for state +
30
+ * the longest question. See docs/research/jev-screen-token-budget.md.
31
+ */
32
+ export const BATCH_TOKEN_BUDGET = 48_000;
33
+ export const STATE_TOKEN_BUDGET = 24_000;
34
+ /** Line-halving levels per piece after the server still reports max_tokens_exceeded. */
35
+ export const MAX_REACTIVE_SPLITS = 3;
36
+ const SCREEN_TASK = "Screen code hunks for real defects worth blocking a merge on. Judge each hunk independently against the supplied code.";
37
+ /**
38
+ * shortcut: chars-per-token heuristic (ASCII/3, other UTF-16 units 1:1) — the API has no
39
+ * token-count endpoint and reactive halving covers underestimates; calibrate from
40
+ * usage.input_tokens if it proves too conservative.
41
+ */
42
+ export function estimateTokens(text) {
43
+ let ascii = 0;
44
+ let other = 0;
45
+ for (let i = 0; i < text.length; i++) {
46
+ if (text.charCodeAt(i) < 128)
47
+ ascii++;
48
+ else
49
+ other++;
50
+ }
51
+ return Math.ceil(ascii / 3) + other;
52
+ }
26
53
  /**
27
54
  * Defect-pattern catalog. Coverage is the product knob: a hit assembles the
28
55
  * finding from the template with zero LLM prose; a miss falls back to the
@@ -220,60 +247,187 @@ export function sliceHunks(path, text, maxHunks = MAX_HUNKS_PER_FILE) {
220
247
  }
221
248
  return hunks;
222
249
  }
250
+ function pieceStateEntry(piece) {
251
+ return { id: piece.id, path: piece.path, lines: `${piece.startLine}-${piece.endLine}`, code: piece.code };
252
+ }
253
+ /** Halve by lines, or by characters for a single line; undefined when it cannot shrink. Whitespace-only halves drop. */
254
+ function halvePiece(piece) {
255
+ const lines = piece.code.split("\n");
256
+ let halves;
257
+ if (lines.length > 1) {
258
+ const mid = Math.ceil(lines.length / 2);
259
+ halves = [
260
+ { ...piece, id: `${piece.id}/1`, endLine: piece.startLine + mid - 1, code: lines.slice(0, mid).join("\n") },
261
+ { ...piece, id: `${piece.id}/2`, startLine: piece.startLine + mid, code: lines.slice(mid).join("\n") },
262
+ ];
263
+ }
264
+ else {
265
+ const chars = Array.from(piece.code);
266
+ if (chars.length < 2)
267
+ return undefined;
268
+ const mid = Math.ceil(chars.length / 2);
269
+ halves = [
270
+ { ...piece, id: `${piece.id}/1`, code: chars.slice(0, mid).join("") },
271
+ { ...piece, id: `${piece.id}/2`, code: chars.slice(mid).join("") },
272
+ ];
273
+ }
274
+ return halves.filter((half) => half.code.trim());
275
+ }
223
276
  /**
224
- * Fan out every question in one call, chunking sequentially past
225
- * MAX_QUESTIONS_PER_CALL. Missing answers read as "no" (conservative).
277
+ * One batch: state carries only this batch's pieces; questions chunk past
278
+ * MAX_QUESTIONS_PER_CALL or the token budget left after state. Probabilities
279
+ * commit only when every chunk succeeds, so a rejected batch leaves no partial
280
+ * answers behind; usage and calls count as they happen. Missing answers read as
281
+ * "no" (conservative).
226
282
  */
227
- async function evaluateChunked(connection, state, questions, fetchImpl) {
228
- const entries = Object.entries(questions);
283
+ async function evaluateBatch(connection, batch, taskTokens, totals, fetchImpl) {
284
+ const state = { task: SCREEN_TASK, hunks: batch.map((unit) => pieceStateEntry(unit.piece)) };
285
+ const questionBudget = BATCH_TOKEN_BUDGET - (taskTokens + batch.reduce((sum, unit) => sum + unit.stateTokens, 0));
286
+ const all = batch.flatMap((unit) => unit.questions);
287
+ const chunks = [];
288
+ let chunk = [];
289
+ let chunkTokens = 0;
290
+ for (const question of all) {
291
+ if (chunk.length > 0 && (chunk.length >= MAX_QUESTIONS_PER_CALL || chunkTokens + question.tokens > questionBudget)) {
292
+ chunks.push(chunk);
293
+ chunk = [];
294
+ chunkTokens = 0;
295
+ }
296
+ chunk.push(question);
297
+ chunkTokens += question.tokens;
298
+ }
299
+ if (chunk.length > 0)
300
+ chunks.push(chunk);
229
301
  const probabilities = {};
230
- let calls = 0;
231
- let usage;
232
- let model;
233
- for (let offset = 0; offset < entries.length; offset += MAX_QUESTIONS_PER_CALL) {
234
- const chunk = Object.fromEntries(entries.slice(offset, offset + MAX_QUESTIONS_PER_CALL));
235
- const result = await evaluateNouls(connection, state, chunk, fetchImpl ?? fetch, GENERIC_NOUL_CRITERIA);
302
+ for (const part of chunks) {
303
+ const questions = Object.fromEntries(part.map((question) => [question.id, question.text]));
304
+ const result = await evaluateNouls(connection, state, questions, fetchImpl, GENERIC_NOUL_CRITERIA);
236
305
  Object.assign(probabilities, result.probabilities);
237
- calls += 1;
306
+ totals.calls += 1;
238
307
  if (result.usage) {
239
- usage = {
240
- inputTokens: (usage?.inputTokens ?? 0) + result.usage.inputTokens,
241
- outputTokens: (usage?.outputTokens ?? 0) + result.usage.outputTokens,
308
+ totals.usage = {
309
+ inputTokens: (totals.usage?.inputTokens ?? 0) + result.usage.inputTokens,
310
+ outputTokens: (totals.usage?.outputTokens ?? 0) + result.usage.outputTokens,
242
311
  };
243
312
  }
244
- model = result.model ?? model;
313
+ totals.model = result.model ?? totals.model;
245
314
  }
246
- return { probabilities, calls, ...(usage ? { usage } : {}), ...(model ? { model } : {}) };
315
+ Object.assign(totals.probabilities, probabilities);
316
+ totals.questions += all.length;
247
317
  }
248
318
  /** Screen pre-sliced hunks; pure of filesystem and process exit so tests drive it with a mocked fetch. */
249
319
  export async function screenHunks(connection, hunks, options = {}) {
250
320
  const startedAt = Date.now();
321
+ const fetchImpl = options.fetchImpl ?? fetch;
251
322
  const catalog = options.patterns ?? SCREEN_PATTERNS;
252
323
  const patternIds = Object.keys(catalog);
253
- const questions = {};
254
- hunks.forEach((hunk, i) => {
255
- questions[`d${i}`] =
256
- `Does hunk "${hunk.id}" contain a real correctness, security, or data-loss defect that should block merge? ` +
257
- "Ignore style and hypothetical concerns.";
258
- patternIds.forEach((patternId, p) => {
259
- questions[`p${i}_${p}`] = `Does hunk "${hunk.id}" contain this defect: ${catalog[patternId].title}?`;
260
- });
261
- });
262
- const state = {
263
- task: "Screen code hunks for real defects worth blocking a merge on. Judge each hunk independently against the supplied code.",
264
- hunks: hunks.map((hunk) => ({
265
- id: hunk.id,
266
- path: hunk.path,
267
- lines: `${hunk.startLine}-${hunk.endLine}`,
268
- code: hunk.code,
269
- })),
324
+ const taskTokens = estimateTokens(JSON.stringify({ task: SCREEN_TASK, hunks: [] }));
325
+ const questionTokens = (text) => estimateTokens(JSON.stringify({ type: "noul", instructions: text, criteria: GENERIC_NOUL_CRITERIA })) + 4;
326
+ let nextKey = 0;
327
+ const toUnit = (piece, key = nextKey++) => {
328
+ const texts = [
329
+ [
330
+ `d${key}`,
331
+ `Does hunk "${piece.id}" contain a real correctness, security, or data-loss defect that should block merge? ` +
332
+ "Ignore style and hypothetical concerns.",
333
+ ],
334
+ ...patternIds.map((patternId, p) => [
335
+ `p${key}_${p}`,
336
+ `Does hunk "${piece.id}" contain this defect: ${catalog[patternId].title}?`,
337
+ ]),
338
+ ];
339
+ return {
340
+ piece,
341
+ key,
342
+ questions: texts.map(([id, text]) => ({ id, text, tokens: questionTokens(text) })),
343
+ stateTokens: estimateTokens(JSON.stringify(pieceStateEntry(piece))) + 1,
344
+ };
345
+ };
346
+ const maxQuestion = (unit) => Math.max(...unit.questions.map((question) => question.tokens));
347
+ const fitsAlone = (unit) => taskTokens + unit.stateTokens + maxQuestion(unit) <= STATE_TOKEN_BUDGET;
348
+ // Pre-split hunks whose code alone breaks the state budget; keys stay sequential so
349
+ // inputs that fit produce exactly the pre-batching request.
350
+ const preSplit = (piece) => {
351
+ if (fitsAlone(toUnit(piece, -1)))
352
+ return [piece];
353
+ const halves = halvePiece(piece);
354
+ return halves ? halves.flatMap(preSplit) : [piece];
270
355
  };
271
- const result = await evaluateChunked(connection, state, questions, options.fetchImpl);
356
+ const units = hunks
357
+ .flatMap((hunk, hunkIndex) => preSplit({ hunkIndex, id: hunk.id, path: hunk.path, startLine: hunk.startLine, endLine: hunk.endLine, code: hunk.code, splits: 0 }))
358
+ .map((piece) => toUnit(piece));
359
+ // Greedy source-order packing under both token budgets and the question cap.
360
+ const batches = [];
361
+ let current = [];
362
+ let stateTokens = taskTokens;
363
+ let questionTotal = 0;
364
+ let questionCount = 0;
365
+ let longest = 0;
366
+ for (const unit of units) {
367
+ const unitQuestions = unit.questions.reduce((sum, question) => sum + question.tokens, 0);
368
+ const unitLongest = maxQuestion(unit);
369
+ if (current.length > 0 &&
370
+ (stateTokens + unit.stateTokens + Math.max(longest, unitLongest) > STATE_TOKEN_BUDGET ||
371
+ stateTokens + unit.stateTokens + questionTotal + unitQuestions > BATCH_TOKEN_BUDGET ||
372
+ questionCount + unit.questions.length > MAX_QUESTIONS_PER_CALL)) {
373
+ batches.push(current);
374
+ current = [];
375
+ stateTokens = taskTokens;
376
+ questionTotal = 0;
377
+ questionCount = 0;
378
+ longest = 0;
379
+ }
380
+ current.push(unit);
381
+ stateTokens += unit.stateTokens;
382
+ questionTotal += unitQuestions;
383
+ questionCount += unit.questions.length;
384
+ longest = Math.max(longest, unitLongest);
385
+ }
386
+ if (current.length > 0)
387
+ batches.push(current);
388
+ // Degrade on max_tokens_exceeded only: halve the batch, then halve the piece by lines;
389
+ // never resend an identical request. Any other error aborts the screen.
390
+ const totals = { probabilities: {}, calls: 0, questions: 0 };
391
+ const screened = [];
392
+ const unscreened = [];
393
+ while (batches.length > 0) {
394
+ const batch = batches.shift();
395
+ try {
396
+ await evaluateBatch(connection, batch, taskTokens, totals, fetchImpl);
397
+ screened.push(...batch);
398
+ continue;
399
+ }
400
+ catch (error) {
401
+ if (!(error instanceof JevError) || error.code !== "max_tokens_exceeded")
402
+ throw error;
403
+ }
404
+ if (batch.length > 1) {
405
+ const mid = Math.ceil(batch.length / 2);
406
+ batches.unshift(batch.slice(0, mid), batch.slice(mid));
407
+ continue;
408
+ }
409
+ const { piece } = batch[0];
410
+ const halves = piece.splits < MAX_REACTIVE_SPLITS ? halvePiece(piece) : undefined;
411
+ if (halves && halves.length > 0) {
412
+ batches.unshift(...halves.map((half) => [toUnit({ ...half, splits: piece.splits + 1 })]));
413
+ continue;
414
+ }
415
+ unscreened.push({
416
+ id: piece.id,
417
+ path: piece.path,
418
+ startLine: piece.startLine,
419
+ endLine: piece.endLine,
420
+ reason: "max_tokens_exceeded",
421
+ });
422
+ }
423
+ screened.sort((a, b) => a.piece.hunkIndex - b.piece.hunkIndex ||
424
+ a.piece.startLine - b.piece.startLine ||
425
+ (a.piece.id < b.piece.id ? -1 : a.piece.id > b.piece.id ? 1 : 0));
272
426
  const findings = [];
273
- const hunkReports = [];
274
- hunks.forEach((hunk, i) => {
275
- const catchAll = result.probabilities[`d${i}`];
276
- const hits = patternIds.map((patternId, p) => ({ patternId, probability: result.probabilities[`p${i}_${p}`] }))
427
+ const merged = hunks.map(() => ({ catchAll: undefined, patterns: new Map() }));
428
+ for (const { piece, key } of screened) {
429
+ const catchAll = totals.probabilities[`d${key}`];
430
+ const hits = patternIds.map((patternId, p) => ({ patternId, probability: totals.probabilities[`p${key}_${p}`] }))
277
431
  .filter((hit) => hit.probability !== undefined && hit.probability >= SCREEN_THRESHOLD)
278
432
  .sort((a, b) => b.probability - a.probability);
279
433
  for (const hit of hits) {
@@ -281,46 +435,56 @@ export async function screenHunks(connection, hunks, options = {}) {
281
435
  findings.push({
282
436
  id: `S${findings.length + 1}`,
283
437
  severity: pattern.severity,
284
- path: hunk.path,
438
+ path: piece.path,
285
439
  summary: pattern.title,
286
440
  actionable: true,
287
- details: `Evidence: hunk "${hunk.id}" (${hunk.path}:${hunk.startLine}-${hunk.endLine}) matched defect pattern ` +
441
+ details: `Evidence: hunk "${piece.id}" (${piece.path}:${piece.startLine}-${piece.endLine}) matched defect pattern ` +
288
442
  `"${hit.patternId}" (p=${hit.probability.toFixed(2)}, category=${pattern.category}).`,
289
443
  recommendation: pattern.recommendation,
290
- location: { startLine: hunk.startLine, endLine: hunk.endLine },
444
+ location: { startLine: piece.startLine, endLine: piece.endLine },
291
445
  });
292
446
  }
293
447
  if (hits.length === 0 && catchAll !== undefined && catchAll >= SCREEN_THRESHOLD) {
294
448
  findings.push({
295
449
  id: `S${findings.length + 1}`,
296
450
  severity: "major",
297
- path: hunk.path,
298
- summary: `Possible defect in "${hunk.id}" matched no known pattern — needs deeper review`,
451
+ path: piece.path,
452
+ summary: `Possible defect in "${piece.id}" matched no known pattern — needs deeper review`,
299
453
  actionable: true,
300
- details: `Evidence: the screening catch-all scored p=${catchAll.toFixed(2)} for hunk "${hunk.id}" ` +
301
- `(${hunk.path}:${hunk.startLine}-${hunk.endLine}) but every catalog pattern scored below ${SCREEN_THRESHOLD}.`,
454
+ details: `Evidence: the screening catch-all scored p=${catchAll.toFixed(2)} for hunk "${piece.id}" ` +
455
+ `(${piece.path}:${piece.startLine}-${piece.endLine}) but every catalog pattern scored below ${SCREEN_THRESHOLD}.`,
302
456
  recommendation: "Run a full `pi-review` on this file for evidence-backed findings.",
303
- location: { startLine: hunk.startLine, endLine: hunk.endLine },
457
+ location: { startLine: piece.startLine, endLine: piece.endLine },
304
458
  });
305
459
  }
306
- hunkReports.push({
460
+ const report = merged[piece.hunkIndex];
461
+ if (catchAll !== undefined)
462
+ report.catchAll = Math.max(report.catchAll ?? 0, catchAll);
463
+ for (const hit of hits) {
464
+ report.patterns.set(hit.patternId, Math.max(report.patterns.get(hit.patternId) ?? 0, hit.probability));
465
+ }
466
+ }
467
+ const hunkReports = hunks.map((hunk, i) => {
468
+ const report = merged[i];
469
+ return {
307
470
  id: hunk.id,
308
471
  path: hunk.path,
309
472
  startLine: hunk.startLine,
310
473
  endLine: hunk.endLine,
311
- ...(catchAll !== undefined ? { defectProbability: catchAll } : {}),
312
- patterns: hits.map((hit) => hit.patternId),
313
- });
474
+ ...(report.catchAll !== undefined ? { defectProbability: report.catchAll } : {}),
475
+ patterns: [...report.patterns].sort((a, b) => b[1] - a[1]).map(([patternId]) => patternId),
476
+ };
314
477
  });
315
478
  return {
316
- status: findings.length > 0 ? "has_findings" : "clean",
479
+ status: findings.length > 0 ? "has_findings" : unscreened.length > 0 ? "incomplete" : "clean",
317
480
  findings,
318
481
  hunkReports,
319
- questions: Object.keys(questions).length,
320
- calls: result.calls,
482
+ ...(unscreened.length > 0 ? { unscreened } : {}),
483
+ questions: totals.questions,
484
+ calls: totals.calls,
321
485
  durationMs: Date.now() - startedAt,
322
- ...(result.model ? { model: result.model } : {}),
323
- ...(result.usage ? { usage: result.usage } : {}),
486
+ ...(totals.model ? { model: totals.model } : {}),
487
+ ...(totals.usage ? { usage: totals.usage } : {}),
324
488
  };
325
489
  }
326
490
  /** The flag rule shared by the ASCII report and memory capture. */
@@ -387,6 +551,14 @@ export function formatScreenAscii(result) {
387
551
  lines.push(` ${finding.summary}`);
388
552
  }
389
553
  }
554
+ const unscreened = result.unscreened ?? [];
555
+ if (unscreened.length > 0) {
556
+ lines.push("");
557
+ lines.push(` Unscreened ${unscreened.length} piece${unscreened.length === 1 ? "" : "s"} exceeded the Jev token limit — coverage incomplete, not a pass`);
558
+ for (const piece of unscreened) {
559
+ lines.push(` ${piece.path}:${piece.startLine}-${piece.endLine} (${piece.id})`);
560
+ }
561
+ }
390
562
  lines.push("─".repeat(39));
391
563
  return lines.join("\n");
392
564
  }
@@ -430,7 +602,7 @@ export async function runScreen(parsed) {
430
602
  recordScreenMemory(collectFlaggedHunks(result, hunks), process.env);
431
603
  process.stdout.write(`${formatScreenAscii(result)}\n`);
432
604
  process.stderr.write(`PI_REVIEW_SCREEN_JSON: ${JSON.stringify(result)}\n`);
433
- process.exit(result.status === "clean" ? 0 : 1);
605
+ process.exit(result.status === "clean" ? 0 : result.status === "has_findings" ? 1 : 4);
434
606
  }
435
607
  /** `pi-review screen-memory`: report the accumulated signal log and catalog state. */
436
608
  export function runScreenMemory(env = process.env) {
@@ -1 +1 @@
1
- {"version":3,"file":"screen.js","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screen.js","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@ import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
  import { test } from "vitest";
6
- import { sliceHunks, screenHunks, formatScreenAscii, effectiveScreenPatterns, collectFlaggedHunks, SCREEN_PATTERNS, SCREEN_THRESHOLD, MAX_QUESTIONS_PER_CALL, } from "./screen.js";
6
+ import { sliceHunks, screenHunks, formatScreenAscii, effectiveScreenPatterns, collectFlaggedHunks, SCREEN_PATTERNS, SCREEN_THRESHOLD, MAX_QUESTIONS_PER_CALL, BATCH_TOKEN_BUDGET, STATE_TOKEN_BUDGET, estimateTokens, } from "./screen.js";
7
+ import { GENERIC_NOUL_CRITERIA } from "./jev.js";
7
8
  const CONN = { apiKey: "test-key", baseUrl: "https://example.test", model: "jev-test" };
8
9
  const FIXTURE = `import { randomUUID } from "node:crypto";
9
10
 
@@ -221,4 +222,146 @@ test("formatScreenAscii renders status, hunks, and finding lines", () => {
221
222
  assert.ok(text.includes("a.ts:3-9"));
222
223
  assert.ok(SCREEN_THRESHOLD > 0 && SCREEN_THRESHOLD < 1);
223
224
  });
225
+ /**
226
+ * Recording mock: answers every question with `prob(text, request)` unless
227
+ * `reject(request)` says the request is too large (400 max_tokens_exceeded).
228
+ */
229
+ function budgetFetch(requests, options = {}) {
230
+ return (async (_url, init) => {
231
+ const body = JSON.parse(init.body);
232
+ const request = {
233
+ body: init.body,
234
+ hunkIds: body.state.hunks.map((h) => h.id),
235
+ questionIds: Object.keys(body.questions),
236
+ questionTexts: Object.values(body.questions).map((q) => q.instructions),
237
+ };
238
+ requests.push(request);
239
+ const code = body.state.hunks.map((h) => h.code).join("\n");
240
+ if (options.reject?.(request, code)) {
241
+ return { ok: false, status: 400, json: async () => ({ detail: { error_type: "max_tokens_exceeded" } }) };
242
+ }
243
+ const answers = {};
244
+ for (const [id, q] of Object.entries(body.questions)) {
245
+ answers[id] = { type: "noul", noul: options.prob?.(q.instructions, code) ?? 0.05 };
246
+ }
247
+ return { ok: true, status: 200, json: async () => ({ model: "jev-1.13.0", answers, usage: { input_tokens: 10, output_tokens: 1 } }) };
248
+ });
249
+ }
250
+ function bigHunk(path, id, startLine, lineCount, marker) {
251
+ const lines = Array.from({ length: lineCount }, (_, i) => marker && i === marker.line ? marker.text : ` const value${i} = compute(${i}, "padding-padding-padding");`);
252
+ return { id, path, startLine, endLine: startLine + lineCount - 1, code: lines.join("\n") };
253
+ }
254
+ test("screenHunks keeps the legacy single request when the input fits one budget", async () => {
255
+ const hunks = sliceHunks("order-service.ts", FIXTURE);
256
+ const requests = [];
257
+ await screenHunks(CONN, hunks, { fetchImpl: budgetFetch(requests) });
258
+ assert.equal(requests.length, 1);
259
+ const patternTitles = Object.values(SCREEN_PATTERNS).map((p) => p.title);
260
+ const questions = {};
261
+ hunks.forEach((hunk, i) => {
262
+ questions[`d${i}`] = {
263
+ type: "noul",
264
+ instructions: `Does hunk "${hunk.id}" contain a real correctness, security, or data-loss defect that should block merge? ` +
265
+ "Ignore style and hypothetical concerns.",
266
+ criteria: { ...GENERIC_NOUL_CRITERIA },
267
+ };
268
+ patternTitles.forEach((title, p) => {
269
+ questions[`p${i}_${p}`] = { type: "noul", instructions: `Does hunk "${hunk.id}" contain this defect: ${title}?`, criteria: { ...GENERIC_NOUL_CRITERIA } };
270
+ });
271
+ });
272
+ const legacy = JSON.stringify({
273
+ model: CONN.model,
274
+ state: {
275
+ task: "Screen code hunks for real defects worth blocking a merge on. Judge each hunk independently against the supplied code.",
276
+ hunks: hunks.map((h) => ({ id: h.id, path: h.path, lines: `${h.startLine}-${h.endLine}`, code: h.code })),
277
+ },
278
+ questions,
279
+ });
280
+ assert.equal(requests[0].body, legacy);
281
+ });
282
+ test("screenHunks batches large inputs with only the referenced hunks per request, within budget", async () => {
283
+ // 12 hunks x ~9k chars each: individually fine, far over one request together.
284
+ const hunks = Array.from({ length: 12 }, (_, i) => bigHunk(`f${i % 3}.swift`, `h${i}`, 1 + i * 200, 150));
285
+ const requests = [];
286
+ const result = await screenHunks(CONN, hunks, { fetchImpl: budgetFetch(requests) });
287
+ assert.ok(requests.length > 1);
288
+ assert.equal(result.calls, requests.length);
289
+ assert.equal(result.status, "clean");
290
+ assert.equal(result.hunkReports.length, hunks.length);
291
+ assert.equal(result.questions, hunks.length * (Object.keys(SCREEN_PATTERNS).length + 1));
292
+ const asked = new Set();
293
+ for (const request of requests) {
294
+ const referenced = new Set(request.questionTexts.map((text) => /hunk "([^"]+)"/.exec(text)[1]));
295
+ assert.deepEqual([...referenced].sort(), [...request.hunkIds].sort());
296
+ assert.ok(estimateTokens(request.body) <= BATCH_TOKEN_BUDGET * 1.05, `request ~${estimateTokens(request.body)} tokens`);
297
+ assert.ok(request.questionIds.length <= MAX_QUESTIONS_PER_CALL);
298
+ request.hunkIds.forEach((id) => asked.add(id));
299
+ }
300
+ assert.deepEqual([...asked].sort(), hunks.map((h) => h.id).sort());
301
+ });
302
+ test("screenHunks pre-splits an oversized hunk into fitting pieces with exact line ranges", async () => {
303
+ const hunk = bigHunk("big.swift", "tail", 10, 2000, { line: 1500, text: " let total = price * 0.1 // MARKER" });
304
+ const requests = [];
305
+ const result = await screenHunks(CONN, [hunk], {
306
+ fetchImpl: budgetFetch(requests, { prob: (text, code) => (text.includes("block merge") && code.includes("MARKER") ? 0.9 : 0.05) }),
307
+ });
308
+ assert.ok(requests.length > 1);
309
+ for (const request of requests) {
310
+ const state = JSON.parse(request.body).state;
311
+ assert.ok(estimateTokens(JSON.stringify(state)) <= STATE_TOKEN_BUDGET, "state over budget");
312
+ }
313
+ // Pieces tile the hunk exactly.
314
+ const ranges = requests
315
+ .flatMap((r) => JSON.parse(r.body).state.hunks.map((h) => h.lines.split("-").map(Number)))
316
+ .sort((a, b) => a[0] - b[0]);
317
+ assert.equal(ranges[0][0], hunk.startLine);
318
+ assert.equal(ranges[ranges.length - 1][1], hunk.endLine);
319
+ ranges.slice(1).forEach((range, i) => assert.equal(range[0], ranges[i][1] + 1));
320
+ // The finding points at the piece holding the marker; the hunk report stays whole.
321
+ assert.equal(result.status, "has_findings");
322
+ assert.equal(result.findings.length, 1);
323
+ const { startLine, endLine } = result.findings[0].location;
324
+ assert.ok(startLine <= 1510 && 1510 <= endLine && endLine - startLine < hunk.endLine - hunk.startLine);
325
+ assert.deepEqual([result.hunkReports.length, result.hunkReports[0].startLine, result.hunkReports[0].endLine], [1, 10, 2009]);
326
+ assert.equal(result.hunkReports[0].defectProbability, 0.9);
327
+ });
328
+ test("screenHunks halves batches on max_tokens_exceeded without resending identical requests", async () => {
329
+ const hunks = Array.from({ length: 6 }, (_, i) => bigHunk("a.ts", `h${i}`, 1 + i * 100, 60));
330
+ const requests = [];
331
+ // Server limit tighter than the estimate: more than 2 hunks per request is rejected.
332
+ const result = await screenHunks(CONN, hunks, { fetchImpl: budgetFetch(requests, { reject: (r) => r.hunkIds.length > 2 }) });
333
+ assert.equal(result.status, "clean");
334
+ assert.equal(result.unscreened, undefined);
335
+ assert.equal(new Set(requests.map((r) => r.body)).size, requests.length);
336
+ assert.equal(result.questions, hunks.length * (Object.keys(SCREEN_PATTERNS).length + 1));
337
+ assert.ok(result.hunkReports.every((h) => h.defectProbability === 0.05));
338
+ });
339
+ test("screenHunks reports a persistently rejected piece as incomplete, never clean", async () => {
340
+ const hunks = [bigHunk("a.ts", "ok", 1, 40), bigHunk("a.ts", "poison", 41, 40, { line: 7, text: "POISON" })];
341
+ const requests = [];
342
+ const result = await screenHunks(CONN, hunks, {
343
+ fetchImpl: budgetFetch(requests, { reject: (_r, code) => code.includes("POISON") }),
344
+ });
345
+ assert.equal(result.status, "incomplete");
346
+ assert.equal(new Set(requests.map((r) => r.body)).size, requests.length);
347
+ assert.equal(result.unscreened.length, 1);
348
+ const piece = result.unscreened[0];
349
+ assert.equal(piece.reason, "max_tokens_exceeded");
350
+ assert.ok(piece.startLine <= 48 && 48 <= piece.endLine && piece.endLine - piece.startLine < 39);
351
+ assert.ok(formatScreenAscii(result).includes("coverage incomplete"));
352
+ // With a finding elsewhere the gate already blocks: has_findings, still listing coverage gaps.
353
+ const flagged = await screenHunks(CONN, hunks, {
354
+ fetchImpl: budgetFetch([], {
355
+ reject: (_r, code) => code.includes("POISON"),
356
+ prob: (text) => (text.includes('"ok"') && text.includes("block merge") ? 0.9 : 0.05),
357
+ }),
358
+ });
359
+ assert.equal(flagged.status, "has_findings");
360
+ assert.equal(flagged.unscreened.length, 1);
361
+ });
362
+ test("screenHunks still aborts on errors other than max_tokens_exceeded", async () => {
363
+ const hunks = sliceHunks("order-service.ts", FIXTURE);
364
+ const fetchImpl = (async () => ({ ok: false, status: 400, json: async () => ({ detail: { error_type: "invalid_model" } }) }));
365
+ await assert.rejects(screenHunks(CONN, hunks, { fetchImpl }), /http 400 \(invalid_model\)/);
366
+ });
224
367
  //# sourceMappingURL=screen.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screen.test.js","sourceRoot":"","sources":["../src/screen.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screen.test.js","sourceRoot":"","sources":["../src/screen.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zephyrdeng/pi-review",
3
- "version": "0.18.0",
3
+ "version": "0.18.2",
4
4
  "description": "Isolated AI-powered code and plan reviews from the command line",
5
5
  "type": "module",
6
6
  "author": "ZephyrDeng <zephyrTang@aliyun.com>",
@@ -51,7 +51,8 @@
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@earendil-works/pi-coding-agent": "*",
54
- "@earendil-works/pi-tui": "*"
54
+ "@earendil-works/pi-tui": "*",
55
+ "typebox": "*"
55
56
  },
56
57
  "peerDependenciesMeta": {
57
58
  "@earendil-works/pi-coding-agent": {
@@ -68,7 +69,8 @@
68
69
  "husky": "^9.1.7",
69
70
  "tsx": "^4.23.1",
70
71
  "typescript": "^5.8.0",
71
- "vitest": "^4.1.10"
72
+ "vitest": "^4.1.10",
73
+ "typebox": "^1.1.38"
72
74
  },
73
75
  "scripts": {
74
76
  "prepare": "husky",
@@ -83,8 +85,5 @@
83
85
  },
84
86
  "engines": {
85
87
  "node": ">=20"
86
- },
87
- "dependencies": {
88
- "typebox": "^1.1.38"
89
88
  }
90
89
  }