@zephyrdeng/pi-review 0.10.0 → 0.12.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 +43 -6
- package/README.zh-CN.md +23 -4
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +8 -1
- package/dist/args.js.map +1 -1
- package/dist/args.test.js +10 -0
- package/dist/args.test.js.map +1 -1
- package/dist/cli-exit.test.js +76 -8
- package/dist/cli-exit.test.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loop.test.js +2 -0
- package/dist/loop.test.js.map +1 -1
- package/dist/meta-footer.test.js +43 -0
- package/dist/meta-footer.test.js.map +1 -1
- package/dist/panel-aggregate.d.ts.map +1 -1
- package/dist/panel-aggregate.js +3 -0
- package/dist/panel-aggregate.js.map +1 -1
- package/dist/panel-aggregate.test.js +54 -0
- package/dist/panel-aggregate.test.js.map +1 -1
- package/dist/panel-cli.test.js +83 -2
- package/dist/panel-cli.test.js.map +1 -1
- package/dist/panel-loop.test.js +2 -0
- package/dist/panel-loop.test.js.map +1 -1
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +23 -11
- package/dist/panel.js.map +1 -1
- package/dist/progress-log.d.ts +27 -0
- package/dist/progress-log.d.ts.map +1 -0
- package/dist/progress-log.js +117 -0
- package/dist/progress-log.js.map +1 -0
- package/dist/progress-log.test.d.ts +2 -0
- package/dist/progress-log.test.d.ts.map +1 -0
- package/dist/progress-log.test.js +191 -0
- package/dist/progress-log.test.js.map +1 -0
- package/dist/prompt.js +1 -1
- package/dist/prompt.js.map +1 -1
- package/dist/prompt.test.js +2 -0
- package/dist/prompt.test.js.map +1 -1
- package/dist/review-result.d.ts.map +1 -1
- package/dist/review-result.js +46 -1
- package/dist/review-result.js.map +1 -1
- package/dist/review-result.test.js +144 -0
- package/dist/review-result.test.js.map +1 -1
- package/dist/review.d.ts +1 -1
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +14 -16
- package/dist/review.js.map +1 -1
- package/dist/types.d.ts +58 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -1
- package/dist/ui-client.test.js +2 -0
- package/dist/ui-client.test.js.map +1 -1
- package/extensions/panel-tool.test.ts +5 -0
- package/package.json +1 -1
- package/resources/system-prompt.md +3 -1
- package/skills/pi-review/SKILL.md +1 -1
- package/skills/pi-review/references/codex-tools.md +1 -1
package/dist/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,SAAS,gBAAgB,CAAC,IAAY,EAAE,MAAoB;IAC1D,OAAO;QACL,oCAAoC,IAAI,KAAK;QAC7C,gKAAgK;QAChK,MAAM,CAAC,YAAY,IAAI,+DAA+D;QACtF,iFAAiF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.test.js
CHANGED
|
@@ -9,6 +9,8 @@ test("review prompt requests the parseable finding contract", () => {
|
|
|
9
9
|
assert.match(prompt, /### F1: <summary>/);
|
|
10
10
|
assert.match(prompt, /Severity: critical \| high \| medium \| low/);
|
|
11
11
|
assert.match(prompt, /Path: <path or none>/);
|
|
12
|
+
assert.match(prompt, /Lines: <line or line-range in Path, or none>/);
|
|
13
|
+
assert.match(prompt, /Side: base \| working \(optional; defaults to working\)/);
|
|
12
14
|
assert.match(prompt, /Actionable: yes \| no/);
|
|
13
15
|
assert.match(prompt, /No material findings\./);
|
|
14
16
|
});
|
package/dist/prompt.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../src/prompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3H,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,WAAW,CACxB,MAAM,EACN,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,EACzD,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAC3C,EAAE,CACH,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0EAA0E,EAAE,GAAG,EAAE;IACpF,MAAM,QAAQ,GAAsB,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAClF,MAAM,MAAM,GAAG,mBAAmB,CAChC,MAAM,EACN,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,EACzD,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAC3C,EAAE,EACF,QAAQ,CACT,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gFAAgF,EAAE,GAAG,EAAE;IAC1F,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC9G,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAChD,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6FAA6F,EAAE,GAAG,EAAE;IACvG,MAAM,QAAQ,GAAoB;QAChC,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;QACpH,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;KACtH,CAAC;IACF,MAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qDAAqD,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;IAC5D,kEAAkE;IAClE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../src/prompt.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-result.d.ts","sourceRoot":"","sources":["../src/review-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"review-result.d.ts","sourceRoot":"","sources":["../src/review-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA6HnG,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,WAAoC,GAChD,sBAAsB,CA4BxB"}
|
package/dist/review-result.js
CHANGED
|
@@ -11,6 +11,10 @@ function field(block, name) {
|
|
|
11
11
|
return block.match(new RegExp(`^\\s*[-*]\\s*(?:\\*\\*)?${escaped}(?:\\*\\*)?\\s*:\\s*(.+?)\\s*$`, "im"))?.[1]?.trim();
|
|
12
12
|
}
|
|
13
13
|
const SEVERITY_PREFIX = /^(critical|high|medium|low|info|warning)\s*[:—-]\s*/i;
|
|
14
|
+
/** Placeholder values that mean "not supplied" for optional single-value fields (Path, Lines). */
|
|
15
|
+
const NONE_PLACEHOLDER = /^(?:none|n\/a|-)$/i;
|
|
16
|
+
/** A single line ("42") or an inclusive line range ("42-58"); anything else is not parseable. */
|
|
17
|
+
const LINE_RANGE_PATTERN = /^(\d+)(?:\s*-\s*(\d+))?$/;
|
|
14
18
|
function findingBlocks(section) {
|
|
15
19
|
const headings = [...section.matchAll(/^###\s+(.+?)\s*$/gm)].map((match) => ({
|
|
16
20
|
header: match[1],
|
|
@@ -26,6 +30,41 @@ function findingBlocks(section) {
|
|
|
26
30
|
...(match[1] ? { listId: match[1] } : {}),
|
|
27
31
|
}));
|
|
28
32
|
}
|
|
33
|
+
/** Join the reviewer's Evidence/Impact fields into `details`, preserving labels and tolerating partial content. */
|
|
34
|
+
function joinDetails(evidence, impact) {
|
|
35
|
+
const parts = [];
|
|
36
|
+
if (evidence)
|
|
37
|
+
parts.push(`Evidence: ${evidence}`);
|
|
38
|
+
if (impact)
|
|
39
|
+
parts.push(`Impact: ${impact}`);
|
|
40
|
+
return parts.length > 0 ? parts.join("\n\n") : undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse the optional Lines/Side fields into a location. Non-numeric, zero,
|
|
44
|
+
* negative, or inverted (endLine < startLine) values are dropped rather than
|
|
45
|
+
* fabricated. `side` is only ever set to "base"; every other value (absent,
|
|
46
|
+
* unrecognized, or explicitly "working") is omitted, meaning "working".
|
|
47
|
+
*/
|
|
48
|
+
function parseFindingLocation(block) {
|
|
49
|
+
const raw = field(block, "Lines");
|
|
50
|
+
if (!raw || NONE_PLACEHOLDER.test(raw))
|
|
51
|
+
return undefined;
|
|
52
|
+
const match = raw.match(LINE_RANGE_PATTERN);
|
|
53
|
+
if (!match)
|
|
54
|
+
return undefined;
|
|
55
|
+
const startLine = Number(match[1]);
|
|
56
|
+
const endLine = match[2] !== undefined ? Number(match[2]) : undefined;
|
|
57
|
+
if (!Number.isSafeInteger(startLine) || startLine <= 0)
|
|
58
|
+
return undefined;
|
|
59
|
+
if (endLine !== undefined && (!Number.isSafeInteger(endLine) || endLine <= 0 || endLine < startLine))
|
|
60
|
+
return undefined;
|
|
61
|
+
const side = field(block, "Side")?.toLowerCase() === "base" ? "base" : undefined;
|
|
62
|
+
return {
|
|
63
|
+
startLine,
|
|
64
|
+
...(endLine !== undefined ? { endLine } : {}),
|
|
65
|
+
...(side ? { side } : {}),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
29
68
|
function parseStructuredFindings(markdown, verdictInfo) {
|
|
30
69
|
const section = markdownSection(markdown, "Findings");
|
|
31
70
|
const blocks = findingBlocks(section);
|
|
@@ -43,18 +82,24 @@ function parseStructuredFindings(markdown, verdictInfo) {
|
|
|
43
82
|
const block = section.slice(blockStart, blockEnd);
|
|
44
83
|
const severity = field(block, "Severity")?.toLowerCase() ?? severityFromHeader;
|
|
45
84
|
const rawPath = field(block, "Path")?.replace(/^`|`$/g, "") ?? pathFromHeader;
|
|
46
|
-
const findingPath = rawPath &&
|
|
85
|
+
const findingPath = rawPath && !NONE_PLACEHOLDER.test(rawPath) ? rawPath : undefined;
|
|
47
86
|
const actionableField = field(block, "Actionable");
|
|
48
87
|
const actionable = actionableField === undefined
|
|
49
88
|
? verdictInfo.verdict === "request_changes"
|
|
50
89
|
: /^(?:yes|true)$/i.test(actionableField);
|
|
51
90
|
const id = entry.listId ?? idParts?.[1];
|
|
91
|
+
const details = joinDetails(field(block, "Evidence"), field(block, "Impact"));
|
|
92
|
+
const recommendation = field(block, "Recommendation");
|
|
93
|
+
const location = parseFindingLocation(block);
|
|
52
94
|
return {
|
|
53
95
|
...(id ? { id } : {}),
|
|
54
96
|
...(severity ? { severity } : {}),
|
|
55
97
|
...(findingPath ? { path: findingPath } : {}),
|
|
56
98
|
summary: summary.replace(/[`*_]/g, "").trim(),
|
|
57
99
|
actionable,
|
|
100
|
+
...(details ? { details } : {}),
|
|
101
|
+
...(recommendation ? { recommendation } : {}),
|
|
102
|
+
...(location ? { location } : {}),
|
|
58
103
|
};
|
|
59
104
|
});
|
|
60
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-result.js","sourceRoot":"","sources":["../src/review-result.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,OAAe;IACxD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,kBAAkB,OAAO,qCAAqC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5H,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY;IACxC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,2BAA2B,OAAO,gCAAgC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AACxH,CAAC;AAED,MAAM,eAAe,GAAG,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"review-result.js","sourceRoot":"","sources":["../src/review-result.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,OAAe;IACxD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,kBAAkB,OAAO,qCAAqC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5H,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY;IACxC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,2BAA2B,OAAO,gCAAgC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AACxH,CAAC;AAED,MAAM,eAAe,GAAG,sDAAsD,CAAC;AAC/E,kGAAkG;AAClG,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,iGAAiG;AACjG,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAStD,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE;QACjB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;KACxB,CAAC,CAAC,CAAC;IACJ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChF,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE;QACjB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;QACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC;AAED,mHAAmH;AACnH,SAAS,WAAW,CAAC,QAA4B,EAAE,MAA0B;IAC3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACvH,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,OAAO;QACL,SAAS;QACT,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,WAAwB;IACzE,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvE,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAC9E,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,cAAc;YAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,kBAAkB,CAAC;QAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC;QAC9E,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,eAAe,KAAK,SAAS;YAC9C,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,iBAAiB;YAC3C,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAE7C,OAAO;YACL,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;YAC7C,UAAU;YACV,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,gBAAgB,GAAiC;IACrD,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,cAA2B,YAAY,CAAC,QAAQ,CAAC;IAEjD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAEhF,IAAI,MAAwC,CAAC;IAC7C,QAAQ,WAAW,CAAC,OAAO,EAAE,CAAC;QAC5B,KAAK,SAAS;YACZ,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM;QACR,KAAK,iBAAiB;YACpB,MAAM,GAAG,cAAc,CAAC;YACxB,MAAM;QACR,KAAK,qBAAqB;YACxB,MAAM,GAAG,aAAa,CAAC;YACvB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,GAAG,SAAS,CAAC;YACnB,MAAM;IACV,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,IAAI,eAAe,GAAG,CAAC;QAAE,MAAM,GAAG,cAAc,CAAC;IAEtF,OAAO;QACL,GAAG,WAAW;QACd,MAAM;QACN,QAAQ;QACR,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -54,6 +54,8 @@ None.
|
|
|
54
54
|
path: "src/args.ts",
|
|
55
55
|
summary: "Validate the round budget",
|
|
56
56
|
actionable: true,
|
|
57
|
+
details: "Evidence: Zero rounds bypasses the review gate.\n\nImpact: CI can report success without a review.",
|
|
58
|
+
recommendation: "Reject values below one.",
|
|
57
59
|
},
|
|
58
60
|
]);
|
|
59
61
|
assert.equal(result.actionableCount, 1);
|
|
@@ -84,6 +86,8 @@ None.
|
|
|
84
86
|
path: "src/args.ts",
|
|
85
87
|
summary: "accepts zero rounds",
|
|
86
88
|
actionable: true,
|
|
89
|
+
details: "Evidence: --max-rounds 0 reaches the runner.\n\nImpact: The gate can skip all reviews.",
|
|
90
|
+
recommendation: "Require a positive integer.",
|
|
87
91
|
},
|
|
88
92
|
]);
|
|
89
93
|
assert.equal(result.actionableCount, 1);
|
|
@@ -116,9 +120,149 @@ None.
|
|
|
116
120
|
path: "src/cli.ts",
|
|
117
121
|
summary: "Dirty reviews still exit zero",
|
|
118
122
|
actionable: true,
|
|
123
|
+
details: "Evidence: runReview forwards the child exit code.\n\nImpact: A review gate passes with actionable findings.",
|
|
124
|
+
recommendation: "Map structured status to a stable exit code.",
|
|
119
125
|
},
|
|
120
126
|
]);
|
|
121
127
|
});
|
|
128
|
+
test("a path, line range, and explicit base side produce a fully enriched finding (issue #6)", () => {
|
|
129
|
+
const result = parseReviewResult(`
|
|
130
|
+
## Verdict
|
|
131
|
+
request_changes
|
|
132
|
+
|
|
133
|
+
## Findings
|
|
134
|
+
### F1: Off-by-one in the paginator
|
|
135
|
+
- Severity: high
|
|
136
|
+
- Path: src/paginate.ts
|
|
137
|
+
- Lines: 12-40
|
|
138
|
+
- Side: base
|
|
139
|
+
- Actionable: yes
|
|
140
|
+
- Evidence: The loop reads one page past the last valid index.
|
|
141
|
+
- Impact: The final page silently returns stale data.
|
|
142
|
+
- Recommendation: Clamp the upper bound to the page count.
|
|
143
|
+
`);
|
|
144
|
+
assert.deepEqual(result.findings, [
|
|
145
|
+
{
|
|
146
|
+
id: "F1",
|
|
147
|
+
severity: "high",
|
|
148
|
+
path: "src/paginate.ts",
|
|
149
|
+
summary: "Off-by-one in the paginator",
|
|
150
|
+
actionable: true,
|
|
151
|
+
details: "Evidence: The loop reads one page past the last valid index.\n\nImpact: The final page silently returns stale data.",
|
|
152
|
+
recommendation: "Clamp the upper bound to the page count.",
|
|
153
|
+
location: { startLine: 12, endLine: 40, side: "base" },
|
|
154
|
+
},
|
|
155
|
+
]);
|
|
156
|
+
});
|
|
157
|
+
test("a single Lines value with no Side keeps only startLine (side defaults to working, omitted)", () => {
|
|
158
|
+
const result = parseReviewResult(`
|
|
159
|
+
## Verdict
|
|
160
|
+
request_changes
|
|
161
|
+
|
|
162
|
+
## Findings
|
|
163
|
+
### F1: Missing null check
|
|
164
|
+
- Path: src/util.ts
|
|
165
|
+
- Lines: 42
|
|
166
|
+
- Actionable: yes
|
|
167
|
+
- Evidence: The accessor runs before the null guard.
|
|
168
|
+
- Impact: A null dereference crashes the request handler.
|
|
169
|
+
- Recommendation: Move the guard above the accessor.
|
|
170
|
+
`);
|
|
171
|
+
assert.deepEqual(result.findings[0].location, { startLine: 42 });
|
|
172
|
+
});
|
|
173
|
+
test("an explicit Side: working omits the side key (documented as equivalent to the default)", () => {
|
|
174
|
+
const result = parseReviewResult(`
|
|
175
|
+
## Verdict
|
|
176
|
+
request_changes
|
|
177
|
+
|
|
178
|
+
## Findings
|
|
179
|
+
### F1: Off-by-one in the paginator
|
|
180
|
+
- Path: src/paginate.ts
|
|
181
|
+
- Lines: 10-20
|
|
182
|
+
- Side: working
|
|
183
|
+
- Actionable: yes
|
|
184
|
+
`);
|
|
185
|
+
const location = result.findings[0].location;
|
|
186
|
+
assert.deepEqual(location, { startLine: 10, endLine: 20 });
|
|
187
|
+
assert.ok(location && !("side" in location), "side must be omitted, not stored as the literal \"working\"");
|
|
188
|
+
});
|
|
189
|
+
test("a file-level finding without Lines omits location but keeps details/recommendation", () => {
|
|
190
|
+
const result = parseReviewResult(`
|
|
191
|
+
## Verdict
|
|
192
|
+
request_changes
|
|
193
|
+
|
|
194
|
+
## Findings
|
|
195
|
+
### F1: Missing test coverage for the export path
|
|
196
|
+
- Path: src/export.ts
|
|
197
|
+
- Actionable: yes
|
|
198
|
+
- Evidence: No test exercises the CSV export branch.
|
|
199
|
+
- Impact: A regression in export formatting would go undetected.
|
|
200
|
+
- Recommendation: Add a unit test for the CSV branch.
|
|
201
|
+
`);
|
|
202
|
+
const finding = result.findings[0];
|
|
203
|
+
assert.equal(finding.location, undefined);
|
|
204
|
+
assert.equal(finding.details, "Evidence: No test exercises the CSV export branch.\n\nImpact: A regression in export formatting would go undetected.");
|
|
205
|
+
assert.equal(finding.recommendation, "Add a unit test for the CSV branch.");
|
|
206
|
+
});
|
|
207
|
+
test("malformed or absent Lines values are dropped rather than fabricated", () => {
|
|
208
|
+
const locationFor = (lines) => parseReviewResult(`
|
|
209
|
+
## Verdict
|
|
210
|
+
request_changes
|
|
211
|
+
|
|
212
|
+
## Findings
|
|
213
|
+
### F1: Some finding
|
|
214
|
+
- Path: src/x.ts
|
|
215
|
+
- Lines: ${lines}
|
|
216
|
+
- Actionable: yes
|
|
217
|
+
`).findings[0].location;
|
|
218
|
+
assert.equal(locationFor("around line 12"), undefined, "non-numeric");
|
|
219
|
+
assert.equal(locationFor("0"), undefined, "zero");
|
|
220
|
+
assert.equal(locationFor("-5"), undefined, "negative");
|
|
221
|
+
assert.equal(locationFor("40-12"), undefined, "inverted range");
|
|
222
|
+
assert.equal(locationFor("0-10"), undefined, "non-positive start with an otherwise valid end");
|
|
223
|
+
assert.equal(locationFor("12.5"), undefined, "decimal is not a valid line number");
|
|
224
|
+
assert.equal(locationFor("12-40 approx"), undefined, "trailing text after a range is not parseable");
|
|
225
|
+
// NONE_PLACEHOLDER covers all three "not supplied" spellings, matching Path's own convention.
|
|
226
|
+
assert.equal(locationFor("none"), undefined, "explicit none is equivalent to omitting the field");
|
|
227
|
+
assert.equal(locationFor("n/a"), undefined, "n/a is equivalent to omitting the field");
|
|
228
|
+
assert.equal(locationFor("-"), undefined, "a bare dash is equivalent to omitting the field");
|
|
229
|
+
});
|
|
230
|
+
test("details tolerates partial Evidence/Impact content and omits itself when both are absent", () => {
|
|
231
|
+
const evidenceOnly = parseReviewResult(`
|
|
232
|
+
## Verdict
|
|
233
|
+
request_changes
|
|
234
|
+
|
|
235
|
+
## Findings
|
|
236
|
+
### F1: Evidence only
|
|
237
|
+
- Path: src/a.ts
|
|
238
|
+
- Actionable: yes
|
|
239
|
+
- Evidence: Only evidence was supplied.
|
|
240
|
+
`).findings[0];
|
|
241
|
+
assert.equal(evidenceOnly.details, "Evidence: Only evidence was supplied.");
|
|
242
|
+
assert.equal(evidenceOnly.recommendation, undefined);
|
|
243
|
+
const impactOnly = parseReviewResult(`
|
|
244
|
+
## Verdict
|
|
245
|
+
request_changes
|
|
246
|
+
|
|
247
|
+
## Findings
|
|
248
|
+
### F1: Impact only
|
|
249
|
+
- Path: src/b.ts
|
|
250
|
+
- Actionable: yes
|
|
251
|
+
- Impact: Only impact was supplied.
|
|
252
|
+
`).findings[0];
|
|
253
|
+
assert.equal(impactOnly.details, "Impact: Only impact was supplied.");
|
|
254
|
+
const neither = parseReviewResult(`
|
|
255
|
+
## Verdict
|
|
256
|
+
request_changes
|
|
257
|
+
|
|
258
|
+
## Findings
|
|
259
|
+
### F1: Neither
|
|
260
|
+
- Path: src/c.ts
|
|
261
|
+
- Actionable: yes
|
|
262
|
+
`).findings[0];
|
|
263
|
+
assert.equal(neither.details, undefined);
|
|
264
|
+
assert.equal(neither.recommendation, undefined);
|
|
265
|
+
});
|
|
122
266
|
test("an actionable finding overrides an approve verdict", () => {
|
|
123
267
|
const result = parseReviewResult(`
|
|
124
268
|
## Verdict
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-result.test.js","sourceRoot":"","sources":["../src/review-result.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC;;;;;;;;;;;;;;;CAelC,CAAC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;IAClE,MAAM,MAAM,GAAG,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBlC,CAAC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;QAChC;YACE,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,2BAA2B;YACpC,UAAU,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"review-result.test.js","sourceRoot":"","sources":["../src/review-result.test.ts"],"names":[],"mappings":"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"}
|
package/dist/review.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare function childEnv(piBin: string): NodeJS.ProcessEnv;
|
|
|
6
6
|
export declare function metaLinePrefix(childStdout: string, streamMode: boolean): string;
|
|
7
7
|
/** True when the final text must be printed after exit instead of having streamed live.
|
|
8
8
|
* With --mode json streaming, text deltas are forwarded live in streaming mode;
|
|
9
|
-
* --progress-log no longer forces buffering (it only tees the
|
|
9
|
+
* --progress-log no longer forces buffering (it only tees the event stream). */
|
|
10
10
|
export declare function progressLogBuffersOutput(streamMode: boolean, _hasProgressLog: boolean): boolean;
|
|
11
11
|
export declare function childRuntimeError(child: Pick<ChildRunResult, "status" | "signal" | "error">): string | undefined;
|
|
12
12
|
export declare function runModels(piBin: string, args: string[]): never;
|
package/dist/review.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAc,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAalG,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAczD;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAG/E;AAED;;gFAEgF;AAChF,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,OAAO,CAE/F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAKhH;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAM9D;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,SAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8L/G;AAED,+CAA+C;AAC/C,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAGlE"}
|
package/dist/review.js
CHANGED
|
@@ -3,12 +3,14 @@ import os from "node:os";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { Writable } from "node:stream";
|
|
5
5
|
import { spawnSync } from "node:child_process";
|
|
6
|
+
import { REVIEW_META_VERSION } from "./types.js";
|
|
6
7
|
import { spawnBufferedChild, spawnStreamingChild } from "./child-process.js";
|
|
7
8
|
import { loadPresets, loadSystemPrompt } from "./presets.js";
|
|
8
9
|
import { splitPayload, normalizePayloadRefs, buildPrompt } from "./prompt.js";
|
|
9
10
|
import { parseVerdict } from "./verdict.js";
|
|
10
11
|
import { parseReviewResult, reviewExitCode } from "./review-result.js";
|
|
11
12
|
import { extractFinalText, extractUsage, JsonEventStream } from "./json-events.js";
|
|
13
|
+
import { ProgressLogWriter } from "./progress-log.js";
|
|
12
14
|
import { makeRunSessionDir, newestJsonl } from "./session.js";
|
|
13
15
|
import { fail, hasPathSeparator, expandMaybeHome, normalizeTools } from "./utils.js";
|
|
14
16
|
import { resolveConfig } from "./config.js";
|
|
@@ -45,7 +47,7 @@ export function metaLinePrefix(childStdout, streamMode) {
|
|
|
45
47
|
}
|
|
46
48
|
/** True when the final text must be printed after exit instead of having streamed live.
|
|
47
49
|
* With --mode json streaming, text deltas are forwarded live in streaming mode;
|
|
48
|
-
* --progress-log no longer forces buffering (it only tees the
|
|
50
|
+
* --progress-log no longer forces buffering (it only tees the event stream). */
|
|
49
51
|
export function progressLogBuffersOutput(streamMode, _hasProgressLog) {
|
|
50
52
|
return !streamMode;
|
|
51
53
|
}
|
|
@@ -110,33 +112,28 @@ export async function runReviewOnce(parsed, stdinText = readReviewStdin()) {
|
|
|
110
112
|
args.push("--no-session");
|
|
111
113
|
}
|
|
112
114
|
args.push(...(payload.attachableFileRefs ?? payload.fileRefs), prompt);
|
|
113
|
-
let
|
|
114
|
-
let progressStreamError;
|
|
115
|
+
let progressWriter;
|
|
115
116
|
if (parsed.progressLog) {
|
|
116
117
|
try {
|
|
117
|
-
|
|
118
|
+
progressWriter = new ProgressLogWriter(parsed.progressLog, { raw: parsed.progressLogRaw });
|
|
118
119
|
}
|
|
119
120
|
catch (error) {
|
|
120
121
|
fail(`failed to prepare --progress-log directory: ${error.message}`);
|
|
121
122
|
}
|
|
122
|
-
progressStream = fs.createWriteStream(parsed.progressLog, { flags: "a" });
|
|
123
|
-
progressStream.on("error", (error) => {
|
|
124
|
-
progressStreamError = error;
|
|
125
|
-
});
|
|
126
123
|
}
|
|
127
124
|
const startedAt = Date.now();
|
|
128
125
|
// In streaming mode the child always emits --mode json. A JsonEventStream
|
|
129
126
|
// forwards readable text deltas to stdout and semantic milestones to stderr
|
|
130
|
-
// while accumulating token usage; the same
|
|
131
|
-
// progress-log file when --progress-log is set.
|
|
127
|
+
// while accumulating token usage; the same json lines also tee into the
|
|
128
|
+
// progress-log file when --progress-log is set (slimmed unless --progress-log-raw).
|
|
132
129
|
let streamParser;
|
|
133
130
|
let streamUsage;
|
|
134
131
|
const stdoutSink = parsed.stream
|
|
135
132
|
? new Writable({
|
|
136
133
|
write(chunk, _enc, cb) {
|
|
137
134
|
const text = String(chunk);
|
|
138
|
-
if (
|
|
139
|
-
|
|
135
|
+
if (progressWriter)
|
|
136
|
+
progressWriter.write(text);
|
|
140
137
|
if (!streamParser) {
|
|
141
138
|
streamParser = new JsonEventStream({
|
|
142
139
|
onText: (c) => process.stdout.write(c),
|
|
@@ -166,10 +163,10 @@ export async function runReviewOnce(parsed, stdinText = readReviewStdin()) {
|
|
|
166
163
|
if (child.stdout && !child.stdout.endsWith("\n"))
|
|
167
164
|
process.stdout.write("\n");
|
|
168
165
|
}
|
|
169
|
-
if (
|
|
170
|
-
|
|
171
|
-
if (
|
|
172
|
-
process.stderr.write(`pi-review: warning: --progress-log write failed: ${
|
|
166
|
+
if (progressWriter) {
|
|
167
|
+
const progressLogError = await progressWriter.end();
|
|
168
|
+
if (progressLogError) {
|
|
169
|
+
process.stderr.write(`pi-review: warning: --progress-log write failed: ${progressLogError.message}\n`);
|
|
173
170
|
}
|
|
174
171
|
}
|
|
175
172
|
let stdout = child.stdout || "";
|
|
@@ -230,6 +227,7 @@ export async function runReviewOnce(parsed, stdinText = readReviewStdin()) {
|
|
|
230
227
|
const structuredResult = parseReviewResult(stdout, verdictInfo);
|
|
231
228
|
const thinking = parsed.thinking || preset.thinking;
|
|
232
229
|
const meta = {
|
|
230
|
+
metaVersion: REVIEW_META_VERSION,
|
|
233
231
|
reviewMode: parsed.mode,
|
|
234
232
|
...structuredResult,
|
|
235
233
|
durationMs,
|
package/dist/review.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAuB,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEnF,MAAM,UAAU,eAAe;IAC7B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,WAAW,GAAG;QAClB,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;KACvB,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,OAAO;QACL,GAAG,OAAO,CAAC,GAAG;QACd,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,UAAmB;IACrE,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED;;gFAEgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,UAAmB,EAAE,eAAwB;IACpF,OAAO,CAAC,UAAU,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA0D;IAC1F,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,iCAAiC,KAAK,CAAC,MAAM,EAAE,CAAC;IACzE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,+BAA+B,KAAK,CAAC,MAAM,EAAE,CAAC;IACpF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,IAAc;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,EAAE;QAC1D,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAkB,EAAE,SAAS,GAAG,eAAe,EAAE;IACnF,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,wBAAwB,MAAM,CAAC,IAAI,sBAAsB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpE,6EAA6E;IAC7E,0EAA0E;IAC1E,2EAA2E;IAC3E,mCAAmC;IACnC,MAAM,IAAI,GAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;IAEpE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAE,CAAC,CAAC;IACvG,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC;IACxF,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAE,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEvC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,KAAK,CAAE,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,aAAiC,CAAC;IACtC,IAAI,aAAiC,CAAC;IAEtC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAc,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9B,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAEvE,IAAI,cAA6C,CAAC;IAClD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,+CAAgD,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,oFAAoF;IACpF,IAAI,YAAyC,CAAC;IAC9C,IAAI,WAAmC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM;QAC9B,CAAC,CAAC,IAAI,QAAQ,CAAC;YACX,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACnB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,cAAc;oBAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,eAAe,CAAC;wBACjC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;qBAClD,CAAC,CAAC;gBACL,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,EAAE,EAAE,CAAC;YACP,CAAC;SACF,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,SAAS,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;QACzB,CAAC,CAAC,MAAM,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;QAC1D,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAE1C,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,wEAAwE;QACxE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC;QACpD,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,gBAAgB,CAAC,OAAO,IAAI,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAClC,IAAI,cAAkC,CAAC;IACvC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAsC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,0EAA0E;QAC1E,2CAA2C;QAC3C,cAAc,GAAG,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;QACjC,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QAC5C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;QACxB,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;QACjC,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,YAAY,EAAE,CAAC;QACjB,WAAW,GAAG;YACZ,OAAO,EAAE,SAAS;YAClB,aAAa,EAAE,eAAe;YAC9B,UAAU,EAAE,YAAY;SACzB,CAAC;IACJ,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,WAAW,GAAG;YACZ,OAAO,EAAE,SAAS;YAClB,aAAa,EAAE,eAAe;YAC9B,UAAU,EAAE,cAAc;SAC3B,CAAC;IACJ,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,WAAW,GAAG;YACZ,GAAG,WAAW;YACd,UAAU,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAChF,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IACpD,MAAM,IAAI,GAAe;QACvB,WAAW,EAAE,mBAAmB;QAChC,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,GAAG,gBAAgB;QACnB,UAAU;QACV,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,aAAa,EAAE,aAAa,IAAI,SAAS;KAC1C,CAAC;IAEF,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,UAAU;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IACD,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -8,6 +8,36 @@ export interface ReviewFinding {
|
|
|
8
8
|
path?: string;
|
|
9
9
|
summary: string;
|
|
10
10
|
actionable: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Explanatory content behind the finding. At minimum, joins the reviewer
|
|
13
|
+
* output contract's required Evidence and Impact fields as
|
|
14
|
+
* `"Evidence: <...>"` and/or `"Impact: <...>"` paragraphs separated by a
|
|
15
|
+
* blank line (see `parseStructuredFindings` in review-result.ts and the
|
|
16
|
+
* README "Machine finding schema" section). Present only when at least
|
|
17
|
+
* one of Evidence/Impact was parseable; never fabricated.
|
|
18
|
+
*/
|
|
19
|
+
details?: string;
|
|
20
|
+
/** The reviewer's proposed remediation (the Recommendation field), kept separate from `details`. */
|
|
21
|
+
recommendation?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Line/range this finding refers to within `path`. Present only when the
|
|
24
|
+
* reviewer supplied one positive line number or a non-inverted positive
|
|
25
|
+
* range; malformed values (non-numeric, zero/negative, or endLine <
|
|
26
|
+
* startLine) are dropped rather than guessed.
|
|
27
|
+
*/
|
|
28
|
+
location?: FindingLocation;
|
|
29
|
+
}
|
|
30
|
+
/** A line or inclusive line range a `ReviewFinding` refers to within its `path`. */
|
|
31
|
+
export interface FindingLocation {
|
|
32
|
+
startLine: number;
|
|
33
|
+
endLine?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Which half of a diff the lines refer to: "base" (before the change) or
|
|
36
|
+
* "working" (after). Omitted when the reviewer's Side was absent,
|
|
37
|
+
* unrecognized, or explicitly "working" — treat a missing `side` as
|
|
38
|
+
* "working".
|
|
39
|
+
*/
|
|
40
|
+
side?: "base" | "working";
|
|
11
41
|
}
|
|
12
42
|
export interface StructuredReviewResult extends VerdictInfo {
|
|
13
43
|
status: ReviewStatus;
|
|
@@ -27,8 +57,15 @@ export interface ParsedArgs {
|
|
|
27
57
|
keepSession: boolean;
|
|
28
58
|
/** When false, buffer child output and print after exit (legacy / scripting). Default: stream. */
|
|
29
59
|
stream: boolean;
|
|
30
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* When set, stream the child's --mode json event log to this file path.
|
|
62
|
+
* Slimmed by default: message_update lines reduce their cumulative message
|
|
63
|
+
* snapshots to `usage`, since a verbatim tee grows O(n^2) with message
|
|
64
|
+
* length. See progressLogRaw.
|
|
65
|
+
*/
|
|
31
66
|
progressLog?: string;
|
|
67
|
+
/** With progressLog: tee the verbatim event stream instead of the slimmed one. */
|
|
68
|
+
progressLogRaw?: boolean;
|
|
32
69
|
/** Review budget for the loop command (hard ceiling). */
|
|
33
70
|
maxRounds?: number;
|
|
34
71
|
/** True when the user explicitly passed --max-rounds (vs default). */
|
|
@@ -87,7 +124,18 @@ export interface VerdictInfo {
|
|
|
87
124
|
verdictSource: "parsed" | "fallback" | "runtime_error";
|
|
88
125
|
parseError?: string;
|
|
89
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Schema version for `PI_REVIEW_META_JSON` (issue #6). JSON emitted by
|
|
129
|
+
* pi-review versions before this constant existed has no `metaVersion` key
|
|
130
|
+
* at all — treat that absence as the original, pre-enrichment contract.
|
|
131
|
+
* `ReviewFinding.details`/`recommendation`/`location` and panel
|
|
132
|
+
* `PanelFields.sourceFindings` are additive within version 1 and never
|
|
133
|
+
* require a bump on their own; bump only for a breaking shape change.
|
|
134
|
+
*/
|
|
135
|
+
export declare const REVIEW_META_VERSION: 1;
|
|
90
136
|
export interface ReviewMeta extends StructuredReviewResult {
|
|
137
|
+
/** Schema discriminator for `PI_REVIEW_META_JSON`; see `REVIEW_META_VERSION`. */
|
|
138
|
+
metaVersion: typeof REVIEW_META_VERSION;
|
|
91
139
|
reviewMode: string;
|
|
92
140
|
durationMs: number;
|
|
93
141
|
model: string | null;
|
|
@@ -189,6 +237,15 @@ export interface PanelFields {
|
|
|
189
237
|
reviewers: ReviewerOutcome[];
|
|
190
238
|
adjudicationUsed: boolean;
|
|
191
239
|
adjudicationErrors?: string[];
|
|
240
|
+
/**
|
|
241
|
+
* Every source finding a contributing reviewer produced during this
|
|
242
|
+
* evaluation, keyed by `SourceFinding.id` (e.g. "r1#F1"). Resolves every id
|
|
243
|
+
* referenced by `FindingCluster.sourceFindingIds` across both
|
|
244
|
+
* `confirmedClusters` and `advisories` to its full reviewer identity and
|
|
245
|
+
* enriched finding. Optional for backward compatibility; `aggregatePanel`
|
|
246
|
+
* always populates it (possibly `[]`).
|
|
247
|
+
*/
|
|
248
|
+
sourceFindings?: SourceFinding[];
|
|
192
249
|
}
|
|
193
250
|
/** Pure aggregate panel result (no Pi, no I/O). */
|
|
194
251
|
export interface PanelAggregationResult extends StructuredReviewResult, PanelFields {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,2EAA4E,CAAC;AAClG,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,eAAO,MAAM,eAAe,8DAA+D,CAAC;AAC5F,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|