@zephyrdeng/pi-review 0.14.0 → 0.15.1
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 +77 -5
- package/README.zh-CN.md +72 -3
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +22 -0
- package/dist/args.js.map +1 -1
- package/dist/child-isolation.test.js +25 -7
- package/dist/child-isolation.test.js.map +1 -1
- package/dist/classify.d.ts +36 -0
- package/dist/classify.d.ts.map +1 -0
- package/dist/classify.js +171 -0
- package/dist/classify.js.map +1 -0
- package/dist/classify.test.d.ts +2 -0
- package/dist/classify.test.d.ts.map +1 -0
- package/dist/classify.test.js +76 -0
- package/dist/classify.test.js.map +1 -0
- package/dist/cli.js +41 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/jev.d.ts +100 -0
- package/dist/jev.d.ts.map +1 -0
- package/dist/jev.js +250 -0
- package/dist/jev.js.map +1 -0
- package/dist/jev.test.d.ts +2 -0
- package/dist/jev.test.d.ts.map +1 -0
- package/dist/jev.test.js +154 -0
- package/dist/jev.test.js.map +1 -0
- package/dist/loop.d.ts +18 -1
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +39 -0
- package/dist/loop.js.map +1 -1
- package/dist/loop.test.js +36 -0
- package/dist/loop.test.js.map +1 -1
- package/dist/matcher.d.ts +16 -3
- package/dist/matcher.d.ts.map +1 -1
- package/dist/matcher.js +31 -12
- package/dist/matcher.js.map +1 -1
- package/dist/matcher.test.js +30 -6
- package/dist/matcher.test.js.map +1 -1
- package/dist/meta-footer.d.ts.map +1 -1
- package/dist/meta-footer.js +6 -2
- package/dist/meta-footer.js.map +1 -1
- package/dist/panel-cli.test.js +145 -3
- package/dist/panel-cli.test.js.map +1 -1
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +41 -4
- package/dist/panel.js.map +1 -1
- package/dist/pi-config.d.ts +61 -0
- package/dist/pi-config.d.ts.map +1 -0
- package/dist/pi-config.js +95 -0
- package/dist/pi-config.js.map +1 -0
- package/dist/pi-config.test.d.ts +2 -0
- package/dist/pi-config.test.d.ts.map +1 -0
- package/dist/pi-config.test.js +78 -0
- package/dist/pi-config.test.js.map +1 -0
- package/dist/review.d.ts +14 -3
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +22 -11
- package/dist/review.js.map +1 -1
- package/dist/round-compare.d.ts +23 -0
- package/dist/round-compare.d.ts.map +1 -0
- package/dist/round-compare.js +45 -0
- package/dist/round-compare.js.map +1 -0
- package/dist/round-compare.test.d.ts +2 -0
- package/dist/round-compare.test.d.ts.map +1 -0
- package/dist/round-compare.test.js +63 -0
- package/dist/round-compare.test.js.map +1 -0
- package/dist/skill-protocol.test.js +13 -0
- package/dist/skill-protocol.test.js.map +1 -1
- package/dist/types.d.ts +17 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/extensions/review.test.ts +8 -0
- package/extensions/review.ts +11 -0
- package/extensions/rv-config.test.ts +90 -0
- package/extensions/rv-config.ts +166 -0
- package/extensions/rv-prompts.ts +1 -1
- package/package.json +1 -1
- package/resources/providers/orcarouter.json +28 -0
- package/resources/providers/orcarouter.toml +11 -0
- package/skills/pi-review/SKILL.md +28 -2
- package/skills/pi-review/references/codex-tools.md +2 -0
- package/skills/pi-review/references/model-selection.md +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
/**
|
|
5
|
+
* Persistent pi-review settings. The config file is the durable home for
|
|
6
|
+
* behavior defaults (currently one key: childExtensions); environment
|
|
7
|
+
* variables only override it for a single process. The file is machine-level:
|
|
8
|
+
* any pi-review invocation on this machine reads the same settings.
|
|
9
|
+
*
|
|
10
|
+
* The config never blocks core functionality: any problem in it (unknown key,
|
|
11
|
+
* wrong-typed value, invalid JSON) degrades to a stderr warning plus fallback,
|
|
12
|
+
* never a crash — a config file written by a newer version must not brick an
|
|
13
|
+
* older pi-review.
|
|
14
|
+
*/
|
|
15
|
+
export const DEFAULT_CONFIG_PATH = path.join(os.homedir(), ".pi", "pi-review", "config.json");
|
|
16
|
+
export function configFilePath(env = process.env) {
|
|
17
|
+
return env.PI_REVIEW_CONFIG || DEFAULT_CONFIG_PATH;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parse and validate config file text — lenient by design.
|
|
21
|
+
*
|
|
22
|
+
* - Unknown keys are ignored (forward compat with newer config files).
|
|
23
|
+
* - null and any non-boolean value for a known key warn and count as unset
|
|
24
|
+
* (forward compat: a future schema change must degrade, not crash).
|
|
25
|
+
* - Invalid JSON / non-object root warns and yields the empty config.
|
|
26
|
+
* Nothing throws: the config is advisory, never a core-functionality gate.
|
|
27
|
+
*/
|
|
28
|
+
export function parseReviewConfig(text) {
|
|
29
|
+
const warnings = [];
|
|
30
|
+
let raw;
|
|
31
|
+
try {
|
|
32
|
+
raw = JSON.parse(text);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return {
|
|
36
|
+
config: {},
|
|
37
|
+
warnings: [`config file is not valid JSON (${error.message}); treating it as empty`],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
|
|
41
|
+
return { config: {}, warnings: ["config file must contain a JSON object; treating it as empty"] };
|
|
42
|
+
}
|
|
43
|
+
const record = raw;
|
|
44
|
+
const config = {};
|
|
45
|
+
if (record.childExtensions !== undefined && record.childExtensions !== null) {
|
|
46
|
+
if (typeof record.childExtensions === "boolean") {
|
|
47
|
+
config.childExtensions = record.childExtensions;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
warnings.push(`"childExtensions" must be true or false, got ${JSON.stringify(record.childExtensions)}; ignoring it`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (record.jev !== undefined && record.jev !== null) {
|
|
54
|
+
if (typeof record.jev === "boolean") {
|
|
55
|
+
config.jev = record.jev;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
warnings.push(`"jev" must be true or false, got ${JSON.stringify(record.jev)}; ignoring it`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return { config, warnings };
|
|
62
|
+
}
|
|
63
|
+
/** Load the config file; a missing file is the empty config with no warnings. */
|
|
64
|
+
export function loadReviewConfigFile(file) {
|
|
65
|
+
if (!fs.existsSync(file))
|
|
66
|
+
return { config: {}, warnings: [] };
|
|
67
|
+
return parseReviewConfig(fs.readFileSync(file, "utf8"));
|
|
68
|
+
}
|
|
69
|
+
let cached;
|
|
70
|
+
/** Memoized per-process config load (the file is stable during one run). */
|
|
71
|
+
export function currentConfig(env = process.env) {
|
|
72
|
+
const file = configFilePath(env);
|
|
73
|
+
if (cached?.file === file)
|
|
74
|
+
return cached.load;
|
|
75
|
+
const load = loadReviewConfigFile(file);
|
|
76
|
+
cached = { file, load };
|
|
77
|
+
return load;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Effective childExtensions for this process: env (1/true/keep enable,
|
|
81
|
+
* any other set value disables) overrides the config file, which overrides the
|
|
82
|
+
* built-in default of false (children isolated with --no-extensions, issue #8).
|
|
83
|
+
* An empty or whitespace-only env value counts as unset and falls through.
|
|
84
|
+
*/
|
|
85
|
+
export function resolveChildExtensions(env, cfg) {
|
|
86
|
+
const raw = env.PI_REVIEW_CHILD_EXTENSIONS?.trim().toLowerCase();
|
|
87
|
+
if (raw === "1" || raw === "true" || raw === "keep")
|
|
88
|
+
return { enabled: true, source: "env" };
|
|
89
|
+
if (raw !== undefined && raw !== "")
|
|
90
|
+
return { enabled: false, source: "env" };
|
|
91
|
+
if (cfg.childExtensions !== undefined)
|
|
92
|
+
return { enabled: cfg.childExtensions, source: "config" };
|
|
93
|
+
return { enabled: false, source: "default" };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=pi-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-config.js","sourceRoot":"","sources":["../src/pi-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-config.test.d.ts","sourceRoot":"","sources":["../src/pi-config.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { test } from "vitest";
|
|
6
|
+
import { configFilePath, loadReviewConfigFile, parseReviewConfig, resolveChildExtensions, } from "./pi-config.js";
|
|
7
|
+
test("parseReviewConfig accepts an empty or full valid config", () => {
|
|
8
|
+
assert.deepEqual(parseReviewConfig("{}"), { config: {}, warnings: [] });
|
|
9
|
+
assert.deepEqual(parseReviewConfig('{"childExtensions": true}'), { config: { childExtensions: true }, warnings: [] });
|
|
10
|
+
assert.deepEqual(parseReviewConfig('{"childExtensions": false}'), { config: { childExtensions: false }, warnings: [] });
|
|
11
|
+
});
|
|
12
|
+
test("parseReviewConfig ignores unknown keys for forward compatibility", () => {
|
|
13
|
+
assert.deepEqual(parseReviewConfig('{"childExtensions": true, "futureKey": 42}'), {
|
|
14
|
+
config: { childExtensions: true },
|
|
15
|
+
warnings: [],
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
test("parseReviewConfig treats null as explicitly unset", () => {
|
|
19
|
+
assert.deepEqual(parseReviewConfig('{"childExtensions": null}'), { config: {}, warnings: [] });
|
|
20
|
+
});
|
|
21
|
+
test("parseReviewConfig leniently ignores a non-boolean value with a warning", () => {
|
|
22
|
+
const load = parseReviewConfig('{"childExtensions": "true"}');
|
|
23
|
+
assert.deepEqual(load.config, {});
|
|
24
|
+
assert.equal(load.warnings.length, 1);
|
|
25
|
+
assert.match(load.warnings[0], /childExtensions/);
|
|
26
|
+
assert.match(load.warnings[0], /ignoring it/);
|
|
27
|
+
const num = parseReviewConfig('{"childExtensions": 1}');
|
|
28
|
+
assert.deepEqual(num.config, {});
|
|
29
|
+
assert.equal(num.warnings.length, 1);
|
|
30
|
+
});
|
|
31
|
+
test("parseReviewConfig leniently handles invalid JSON and non-object roots with a warning", () => {
|
|
32
|
+
const badJson = parseReviewConfig("not json");
|
|
33
|
+
assert.deepEqual(badJson.config, {});
|
|
34
|
+
assert.equal(badJson.warnings.length, 1);
|
|
35
|
+
assert.match(badJson.warnings[0], /not valid JSON/);
|
|
36
|
+
const arr = parseReviewConfig("[1, 2]");
|
|
37
|
+
assert.deepEqual(arr.config, {});
|
|
38
|
+
assert.equal(arr.warnings.length, 1);
|
|
39
|
+
const nul = parseReviewConfig("null");
|
|
40
|
+
assert.deepEqual(nul.config, {});
|
|
41
|
+
assert.equal(nul.warnings.length, 1);
|
|
42
|
+
});
|
|
43
|
+
test("loadReviewConfigFile treats a missing file as the empty config with no warnings", () => {
|
|
44
|
+
const missing = path.join(os.tmpdir(), `pi-review-config-missing-${Date.now()}.json`);
|
|
45
|
+
assert.deepEqual(loadReviewConfigFile(missing), { config: {}, warnings: [] });
|
|
46
|
+
});
|
|
47
|
+
test("loadReviewConfigFile loads and validates an existing file", () => {
|
|
48
|
+
const file = path.join(os.tmpdir(), `pi-review-config-${Date.now()}.json`);
|
|
49
|
+
fs.writeFileSync(file, '{"childExtensions": true}');
|
|
50
|
+
try {
|
|
51
|
+
assert.deepEqual(loadReviewConfigFile(file), { config: { childExtensions: true }, warnings: [] });
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
fs.rmSync(file, { force: true });
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
test("configFilePath defaults under the pi data dir and honors PI_REVIEW_CONFIG", () => {
|
|
58
|
+
assert.equal(configFilePath({}), path.join(os.homedir(), ".pi", "pi-review", "config.json"));
|
|
59
|
+
assert.equal(configFilePath({ PI_REVIEW_CONFIG: "/tmp/custom.json" }), "/tmp/custom.json");
|
|
60
|
+
});
|
|
61
|
+
test("resolveChildExtensions: env truthy values override config and default", () => {
|
|
62
|
+
for (const value of ["1", "true", "KEEP", " 1 "]) {
|
|
63
|
+
assert.deepEqual(resolveChildExtensions({ PI_REVIEW_CHILD_EXTENSIONS: value }, {}), { enabled: true, source: "env" });
|
|
64
|
+
assert.deepEqual(resolveChildExtensions({ PI_REVIEW_CHILD_EXTENSIONS: value }, { childExtensions: false }), { enabled: true, source: "env" });
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
test("resolveChildExtensions: env set to a non-truthy value forces isolation", () => {
|
|
68
|
+
assert.deepEqual(resolveChildExtensions({ PI_REVIEW_CHILD_EXTENSIONS: "0" }, { childExtensions: true }), { enabled: false, source: "env" });
|
|
69
|
+
assert.deepEqual(resolveChildExtensions({ PI_REVIEW_CHILD_EXTENSIONS: "no" }, { childExtensions: true }), { enabled: false, source: "env" });
|
|
70
|
+
});
|
|
71
|
+
test("resolveChildExtensions: unset or empty env falls through to config, then default", () => {
|
|
72
|
+
assert.deepEqual(resolveChildExtensions({}, { childExtensions: true }), { enabled: true, source: "config" });
|
|
73
|
+
assert.deepEqual(resolveChildExtensions({}, { childExtensions: false }), { enabled: false, source: "config" });
|
|
74
|
+
assert.deepEqual(resolveChildExtensions({ PI_REVIEW_CHILD_EXTENSIONS: "" }, { childExtensions: true }), { enabled: true, source: "config" });
|
|
75
|
+
assert.deepEqual(resolveChildExtensions({ PI_REVIEW_CHILD_EXTENSIONS: " " }, { childExtensions: true }), { enabled: true, source: "config" });
|
|
76
|
+
assert.deepEqual(resolveChildExtensions({}, {}), { enabled: false, source: "default" });
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=pi-config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-config.test.js","sourceRoot":"","sources":["../src/pi-config.test.ts"],"names":[],"mappings":"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"}
|
package/dist/review.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ParsedArgs, ReviewRunResult, StructuredReviewResult } from "./types.js";
|
|
2
2
|
import { type ChildRunResult } from "./child-process.js";
|
|
3
|
+
import type { PiReviewConfig } from "./pi-config.js";
|
|
3
4
|
export declare function readReviewStdin(): string;
|
|
4
5
|
export declare function childEnv(piBin: string): NodeJS.ProcessEnv;
|
|
5
6
|
/**
|
|
@@ -51,10 +52,20 @@ export declare function configBlockForProvider(piBin: string, provider: string |
|
|
|
51
52
|
* ctx and touch it after session dispose/reload. That throws Pi's stale-context
|
|
52
53
|
* error and can crash an otherwise successful reviewer child (issue #8).
|
|
53
54
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
55
|
+
* The effective value comes from the persistent review config
|
|
56
|
+
* (childExtensions, ~/.pi/pi-review/config.json), overridden per process by
|
|
57
|
+
* PI_REVIEW_CHILD_EXTENSIONS (1/true/keep enable, any other set value
|
|
58
|
+
* disables). Bare CLI stays isolated (--no-extensions) until the config says
|
|
59
|
+
* otherwise.
|
|
56
60
|
*/
|
|
57
|
-
export declare function childIsolationArgs(env?: NodeJS.ProcessEnv): string[];
|
|
61
|
+
export declare function childIsolationArgs(env?: NodeJS.ProcessEnv, cfg?: PiReviewConfig): string[];
|
|
62
|
+
/**
|
|
63
|
+
* Build the catalog command args so the models command shows the same catalog
|
|
64
|
+
* an actual review child would see: the effective isolation config applies
|
|
65
|
+
* here too (F2: catalog and review must agree on extension-registered
|
|
66
|
+
* providers).
|
|
67
|
+
*/
|
|
68
|
+
export declare function modelsArgs(args: string[], env?: NodeJS.ProcessEnv, cfg?: PiReviewConfig): string[];
|
|
58
69
|
/** Prefer the larger of two captured stderr buffers; keep a readable stack tail. */
|
|
59
70
|
export declare const CHILD_STDERR_DIAGNOSTIC_LIMIT = 12000;
|
|
60
71
|
export declare function formatChildRuntimeDetail(runtimeError: string, stderr: string, limit?: number): string;
|
package/dist/review.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAc,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAclG,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAczD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAc1D;AAkCD,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAQxF;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS9D;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,sBAAsB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,KAAK,CAAC,EAAE,MAAM,GACb,mBAAmB,GAAG,SAAS,CAoBjC;AAED
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAc,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAclG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAczD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAc1D;AAkCD,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAQxF;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS9D;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,sBAAsB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,KAAK,CAAC,EAAE,MAAM,GACb,mBAAmB,GAAG,SAAS,CAoBjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,EAAE,CAGvG;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,EAAE,CAE/G;AAED,oFAAoF;AACpF,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAgC,GAAG,MAAM,CAK5H;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,CAiO/G;AAED,+CAA+C;AAC/C,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAGlE"}
|
package/dist/review.js
CHANGED
|
@@ -16,6 +16,7 @@ import { fail, hasPathSeparator, expandMaybeHome, normalizeTools } from "./utils
|
|
|
16
16
|
import { resolveConfig } from "./config.js";
|
|
17
17
|
import { splitModelProvider } from "./panel-config.js";
|
|
18
18
|
import { formatReviewMetaAscii, formatReviewMetaJsonLine } from "./meta-footer.js";
|
|
19
|
+
import { currentConfig, resolveChildExtensions } from "./pi-config.js";
|
|
19
20
|
export function readReviewStdin() {
|
|
20
21
|
if (process.stdin.isTTY)
|
|
21
22
|
return "";
|
|
@@ -114,9 +115,9 @@ export function extensionOnlyHintText(provider) {
|
|
|
114
115
|
`provider "${provider}" is registered by a Pi extension, but review children`,
|
|
115
116
|
`run isolated with --no-extensions (issue #8).`,
|
|
116
117
|
"",
|
|
117
|
-
"
|
|
118
|
-
`
|
|
119
|
-
"(
|
|
118
|
+
"Enable extension-registered providers persistently in the review config:",
|
|
119
|
+
` ~/.pi/pi-review/config.json → { "childExtensions": true }`,
|
|
120
|
+
"(or override one run: PI_REVIEW_CHILD_EXTENSIONS=1 pi-review ...)",
|
|
120
121
|
].join("\n");
|
|
121
122
|
}
|
|
122
123
|
/** Human-readable message for a provider missing from the catalog entirely. */
|
|
@@ -155,14 +156,24 @@ export function configBlockForProvider(piBin, provider, model) {
|
|
|
155
156
|
* ctx and touch it after session dispose/reload. That throws Pi's stale-context
|
|
156
157
|
* error and can crash an otherwise successful reviewer child (issue #8).
|
|
157
158
|
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
159
|
+
* The effective value comes from the persistent review config
|
|
160
|
+
* (childExtensions, ~/.pi/pi-review/config.json), overridden per process by
|
|
161
|
+
* PI_REVIEW_CHILD_EXTENSIONS (1/true/keep enable, any other set value
|
|
162
|
+
* disables). Bare CLI stays isolated (--no-extensions) until the config says
|
|
163
|
+
* otherwise.
|
|
160
164
|
*/
|
|
161
|
-
export function childIsolationArgs(env = process.env) {
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
165
|
+
export function childIsolationArgs(env = process.env, cfg) {
|
|
166
|
+
const decision = resolveChildExtensions(env, cfg ?? currentConfig(env).config);
|
|
167
|
+
return decision.enabled ? [] : ["--no-extensions"];
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Build the catalog command args so the models command shows the same catalog
|
|
171
|
+
* an actual review child would see: the effective isolation config applies
|
|
172
|
+
* here too (F2: catalog and review must agree on extension-registered
|
|
173
|
+
* providers).
|
|
174
|
+
*/
|
|
175
|
+
export function modelsArgs(args, env = process.env, cfg) {
|
|
176
|
+
return ["--list-models", ...childIsolationArgs(env, cfg), ...args];
|
|
166
177
|
}
|
|
167
178
|
/** Prefer the larger of two captured stderr buffers; keep a readable stack tail. */
|
|
168
179
|
export const CHILD_STDERR_DIAGNOSTIC_LIMIT = 12_000;
|
|
@@ -195,7 +206,7 @@ export function childRuntimeError(child) {
|
|
|
195
206
|
return undefined;
|
|
196
207
|
}
|
|
197
208
|
export function runModels(piBin, args) {
|
|
198
|
-
const result = spawnSync(piBin,
|
|
209
|
+
const result = spawnSync(piBin, modelsArgs(args), {
|
|
199
210
|
stdio: "inherit",
|
|
200
211
|
env: childEnv(piBin),
|
|
201
212
|
});
|
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":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { FindingMatcher } from "./matcher.js";
|
|
2
|
+
/** Minimal finding shape needed for cross-round comparison. */
|
|
3
|
+
export interface RoundFindingRef {
|
|
4
|
+
id: string;
|
|
5
|
+
summary: string;
|
|
6
|
+
path?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RoundComparison {
|
|
9
|
+
/** Current-round findings semantically present in the previous round too. */
|
|
10
|
+
persisting: number;
|
|
11
|
+
/** Current-round findings with no previous-round counterpart. */
|
|
12
|
+
added: number;
|
|
13
|
+
/** Previous-round findings with no current-round counterpart. */
|
|
14
|
+
resolved: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Compare two rounds' actionable findings through the injected matcher.
|
|
18
|
+
* Advisory by construction: ids are namespaced by round, so a match can never
|
|
19
|
+
* invent or lose findings — worst case is a missed merge (reported as
|
|
20
|
+
* added+resolved), never a false one.
|
|
21
|
+
*/
|
|
22
|
+
export declare function compareRoundFindings(previous: RoundFindingRef[], current: RoundFindingRef[], matcher: FindingMatcher): Promise<RoundComparison>;
|
|
23
|
+
//# sourceMappingURL=round-compare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round-compare.d.ts","sourceRoot":"","sources":["../src/round-compare.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,EAAE,eAAe,EAAE,EAC1B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAsB1B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Cross-round finding comparison for loop review.
|
|
2
|
+
//
|
|
3
|
+
// Reuses the panel matcher's "same underlying issue?" machinery verbatim: the
|
|
4
|
+
// previous round's actionable findings and the current round's are tagged as
|
|
5
|
+
// two pseudo-reviewers ("prev" / "curr") and run through the same
|
|
6
|
+
// deterministic-first, optionally Jev-adjudicated matching. A group spanning
|
|
7
|
+
// both rounds is a persisting finding; curr-only is new; prev-only is no
|
|
8
|
+
// longer detected.
|
|
9
|
+
//
|
|
10
|
+
// Within one loop process the tree never changes between rounds, so this
|
|
11
|
+
// measures finding *stability* across independent review sessions — which is
|
|
12
|
+
// also the non-convergence signal: an identical actionable set twice in a row
|
|
13
|
+
// means further rounds on the same tree cannot change the gate.
|
|
14
|
+
/**
|
|
15
|
+
* Compare two rounds' actionable findings through the injected matcher.
|
|
16
|
+
* Advisory by construction: ids are namespaced by round, so a match can never
|
|
17
|
+
* invent or lose findings — worst case is a missed merge (reported as
|
|
18
|
+
* added+resolved), never a false one.
|
|
19
|
+
*/
|
|
20
|
+
export async function compareRoundFindings(previous, current, matcher) {
|
|
21
|
+
const tag = (round) => (f) => ({
|
|
22
|
+
id: `${round}#${f.id}`,
|
|
23
|
+
reviewerId: round,
|
|
24
|
+
finding: { summary: f.summary, actionable: true, ...(f.path ? { path: f.path } : {}) },
|
|
25
|
+
});
|
|
26
|
+
const result = await matcher.match([...previous.map(tag("prev")), ...current.map(tag("curr"))]);
|
|
27
|
+
const prevMatched = new Set();
|
|
28
|
+
const currMatched = new Set();
|
|
29
|
+
for (const group of result.groups) {
|
|
30
|
+
const prevIds = group.filter((id) => id.startsWith("prev#"));
|
|
31
|
+
const currIds = group.filter((id) => id.startsWith("curr#"));
|
|
32
|
+
if (prevIds.length === 0 || currIds.length === 0)
|
|
33
|
+
continue;
|
|
34
|
+
for (const id of prevIds)
|
|
35
|
+
prevMatched.add(id);
|
|
36
|
+
for (const id of currIds)
|
|
37
|
+
currMatched.add(id);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
persisting: currMatched.size,
|
|
41
|
+
added: current.length - currMatched.size,
|
|
42
|
+
resolved: previous.length - prevMatched.size,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=round-compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round-compare.js","sourceRoot":"","sources":["../src/round-compare.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,kEAAkE;AAClE,6EAA6E;AAC7E,yEAAyE;AACzE,mBAAmB;AACnB,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,gEAAgE;AAqBhE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAA2B,EAC3B,OAA0B,EAC1B,OAAuB;IAEvB,MAAM,GAAG,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,CAAC,CAAkB,EAAiB,EAAE,CAAC,CAAC;QAC9E,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE;QACtB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KACvF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC3D,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO;QACL,UAAU,EAAE,WAAW,CAAC,IAAI;QAC5B,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI;QACxC,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round-compare.test.d.ts","sourceRoot":"","sources":["../src/round-compare.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import { test } from "vitest";
|
|
3
|
+
import { compareRoundFindings } from "./round-compare.js";
|
|
4
|
+
import { DeterministicMatcher, SemanticMatcher } from "./matcher.js";
|
|
5
|
+
const det = new DeterministicMatcher();
|
|
6
|
+
test("identical sets: all persisting, nothing added or resolved", async () => {
|
|
7
|
+
const prev = [{ id: "F1", summary: "Off-by-one in loop", path: "src/cli.ts" }];
|
|
8
|
+
const curr = [{ id: "F1", summary: "off-by-one in loop", path: "./src/cli.ts" }];
|
|
9
|
+
const result = await compareRoundFindings(prev, curr, det);
|
|
10
|
+
assert.deepEqual(result, { persisting: 1, added: 0, resolved: 0 });
|
|
11
|
+
});
|
|
12
|
+
test("disjoint sets: everything added and resolved", async () => {
|
|
13
|
+
const prev = [{ id: "F1", summary: "Off-by-one", path: "src/a.ts" }];
|
|
14
|
+
const curr = [{ id: "F1", summary: "SQL injection", path: "src/b.ts" }];
|
|
15
|
+
const result = await compareRoundFindings(prev, curr, det);
|
|
16
|
+
assert.deepEqual(result, { persisting: 0, added: 1, resolved: 1 });
|
|
17
|
+
});
|
|
18
|
+
test("partial overlap: one persists, one resolved, one added", async () => {
|
|
19
|
+
const prev = [
|
|
20
|
+
{ id: "F1", summary: "Off-by-one", path: "src/a.ts" },
|
|
21
|
+
{ id: "F2", summary: "Old bug now fixed", path: "src/b.ts" },
|
|
22
|
+
];
|
|
23
|
+
const curr = [
|
|
24
|
+
{ id: "F1", summary: "Off-by-one", path: "src/a.ts" },
|
|
25
|
+
{ id: "F2", summary: "Brand new bug", path: "src/c.ts" },
|
|
26
|
+
];
|
|
27
|
+
const result = await compareRoundFindings(prev, curr, det);
|
|
28
|
+
assert.deepEqual(result, { persisting: 1, added: 1, resolved: 1 });
|
|
29
|
+
});
|
|
30
|
+
test("wording drift across rounds merges via a Jev-style adjudicator", async () => {
|
|
31
|
+
// Deterministic matching cannot merge these; a semantic adjudicator can.
|
|
32
|
+
const adjudicator = {
|
|
33
|
+
adjudicate: async () => ({ merges: [{ sourceFindingIds: ["prev#F1", "curr#F1"], confidence: 0.9 }] }),
|
|
34
|
+
};
|
|
35
|
+
const matcher = new SemanticMatcher(adjudicator);
|
|
36
|
+
const prev = [{ id: "F1", summary: "Off-by-one in loop bound", path: "src/cli.ts" }];
|
|
37
|
+
const curr = [{ id: "F1", summary: "Loop can iterate past the array end", path: "src/cli.ts" }];
|
|
38
|
+
const result = await compareRoundFindings(prev, curr, matcher);
|
|
39
|
+
assert.deepEqual(result, { persisting: 1, added: 0, resolved: 0 });
|
|
40
|
+
});
|
|
41
|
+
test("a persisting finding reported by two rounds counts once per round", async () => {
|
|
42
|
+
// Round N had two reviewers' worth of duplicates collapsed upstream; here
|
|
43
|
+
// prev has one finding, curr has two differently-worded instances of it.
|
|
44
|
+
const adjudicator = {
|
|
45
|
+
adjudicate: async ({ candidates }) => ({
|
|
46
|
+
merges: [{ sourceFindingIds: candidates.flatMap((c) => c.findings.map((f) => f.id)), confidence: 0.9 }],
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
const matcher = new SemanticMatcher(adjudicator);
|
|
50
|
+
const prev = [{ id: "F1", summary: "eval executes user input", path: "src/x.ts" }];
|
|
51
|
+
const curr = [
|
|
52
|
+
{ id: "F1", summary: "arbitrary code execution via eval", path: "src/x.ts" },
|
|
53
|
+
{ id: "F2", summary: "unsanitized string reaches eval", path: "src/x.ts" },
|
|
54
|
+
];
|
|
55
|
+
const result = await compareRoundFindings(prev, curr, matcher);
|
|
56
|
+
assert.deepEqual(result, { persisting: 2, added: 0, resolved: 0 });
|
|
57
|
+
});
|
|
58
|
+
test("empty previous round: everything is added", async () => {
|
|
59
|
+
const curr = [{ id: "F1", summary: "Bug", path: "src/a.ts" }];
|
|
60
|
+
const result = await compareRoundFindings([], curr, det);
|
|
61
|
+
assert.deepEqual(result, { persisting: 0, added: 1, resolved: 0 });
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=round-compare.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round-compare.test.js","sourceRoot":"","sources":["../src/round-compare.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,19 @@ test("shipped skill defines bounded host-owned loop closeout", () => {
|
|
|
17
17
|
assert.match(skill, new RegExp(required, "i"));
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
|
+
test("shipped skill defaults to config-file managed registered providers", () => {
|
|
21
|
+
const skill = fs.readFileSync(skillPath, "utf8");
|
|
22
|
+
for (const required of [
|
|
23
|
+
"Registered providers",
|
|
24
|
+
"childExtensions",
|
|
25
|
+
"~/.pi/pi-review/config.json",
|
|
26
|
+
"/rv-config",
|
|
27
|
+
"extension-registered providers",
|
|
28
|
+
"PI_REVIEW_CHILD_EXTENSIONS=0",
|
|
29
|
+
]) {
|
|
30
|
+
assert.match(skill, new RegExp(required.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "i"), `skill missing: ${required}`);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
20
33
|
test("shipped skill documents Panel Review, consensus, and advisories", () => {
|
|
21
34
|
const skill = fs.readFileSync(skillPath, "utf8");
|
|
22
35
|
for (const required of [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-protocol.test.js","sourceRoot":"","sources":["../src/skill-protocol.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1F,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;IAClE,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI;QACrB,2BAA2B;QAC3B,kBAAkB;QAClB,WAAW;QACX,mBAAmB;QACnB,oBAAoB;QACpB,uDAAuD;QACvD,2BAA2B;KAC5B,EAAE,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI;QACrB,cAAc;QACd,mBAAmB;QACnB,UAAU;QACV,QAAQ;QACR,UAAU;QACV,WAAW;QACX,iBAAiB;QACjB,cAAc;KACf,EAAE,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"skill-protocol.test.js","sourceRoot":"","sources":["../src/skill-protocol.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1F,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;IAClE,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI;QACrB,2BAA2B;QAC3B,kBAAkB;QAClB,WAAW;QACX,mBAAmB;QACnB,oBAAoB;QACpB,uDAAuD;QACvD,2BAA2B;KAC5B,EAAE,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;IAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI;QACrB,sBAAsB;QACtB,iBAAiB;QACjB,6BAA6B;QAC7B,YAAY;QACZ,gCAAgC;QAChC,8BAA8B;KAC/B,EAAE,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IACtH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI;QACrB,cAAc;QACd,mBAAmB;QACnB,UAAU;QACV,QAAQ;QACR,UAAU;QACV,WAAW;QACX,iBAAiB;QACjB,cAAc;KACf,EAAE,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export interface StructuredReviewResult extends VerdictInfo {
|
|
|
45
45
|
actionableCount: number;
|
|
46
46
|
}
|
|
47
47
|
export interface ParsedArgs {
|
|
48
|
-
command: "review" | "loop" | "models" | "install" | "install-skill" | "uninstall-skill" | "update";
|
|
48
|
+
command: "review" | "loop" | "classify" | "models" | "install" | "install-skill" | "uninstall-skill" | "update";
|
|
49
49
|
/** For `install`: run `pi install npm:@zephyrdeng/pi-review` */
|
|
50
50
|
installPi?: boolean;
|
|
51
51
|
/** For `install`: run agent skill install (skills CLI / Claude + agy direct fallback) */
|
|
@@ -109,6 +109,10 @@ export interface ParsedArgs {
|
|
|
109
109
|
uiTtlSeconds?: number;
|
|
110
110
|
/** Panel: auto-open the dashboard URL in the default browser (default: true; --no-ui-open sets false). */
|
|
111
111
|
uiOpen?: boolean;
|
|
112
|
+
/** Classify: frozen task/scope baseline (literal text or @file). */
|
|
113
|
+
baseline?: string;
|
|
114
|
+
/** Classify: path to a file containing a review's PI_REVIEW_META_JSON (default: stdin). */
|
|
115
|
+
metaFile?: string;
|
|
112
116
|
}
|
|
113
117
|
export interface ReviewPreset {
|
|
114
118
|
description: string;
|
|
@@ -252,6 +256,12 @@ export interface PanelFields {
|
|
|
252
256
|
advisories: FindingCluster[];
|
|
253
257
|
reviewers: ReviewerOutcome[];
|
|
254
258
|
adjudicationUsed: boolean;
|
|
259
|
+
/**
|
|
260
|
+
* Which engine ran semantic adjudication: a Jev (TypeSafe System One)
|
|
261
|
+
* typed-decision call, or a review-only Pi child. Present only when
|
|
262
|
+
* adjudicationUsed is true. Absent on metas written before Jev support.
|
|
263
|
+
*/
|
|
264
|
+
adjudicationEngine?: "jev" | "pi";
|
|
255
265
|
adjudicationErrors?: string[];
|
|
256
266
|
/**
|
|
257
267
|
* Every source finding a contributing reviewer produced during this
|
|
@@ -262,6 +272,12 @@ export interface PanelFields {
|
|
|
262
272
|
* always populates it (possibly `[]`).
|
|
263
273
|
*/
|
|
264
274
|
sourceFindings?: SourceFinding[];
|
|
275
|
+
/**
|
|
276
|
+
* Present when the Jev adjudication enhancement could not run (no API key,
|
|
277
|
+
* or the Jev call failed and the Pi adjudicator took over). Absent on a
|
|
278
|
+
* clean Jev or plain-Pi adjudication.
|
|
279
|
+
*/
|
|
280
|
+
adjudicationFallbackNote?: string;
|
|
265
281
|
}
|
|
266
282
|
/** Pure aggregate panel result (no Pi, no I/O). */
|
|
267
283
|
export interface PanelAggregationResult extends StructuredReviewResult, PanelFields {
|