@zephyrdeng/pi-review 0.10.0 → 0.11.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 +28 -2
- package/README.zh-CN.md +8 -3
- package/dist/cli-exit.test.js +19 -1
- 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 +27 -1
- 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 +2 -1
- package/dist/panel.js.map +1 -1
- 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.map +1 -1
- package/dist/review.js +2 -0
- package/dist/review.js.map +1 -1
- package/dist/types.d.ts +50 -0
- 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/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Works as a standalone CLI, a Pi package (extension + skill), or integrated into
|
|
|
18
18
|
|
|
19
19
|
- **Isolated review sessions** — each review runs in a clean child process with no shared state
|
|
20
20
|
- **Multiple review modes** — code review, multi-lens plan review, adversarial challenge review
|
|
21
|
-
- **Structured output** — explicit `status`, structured findings, and a human-readable ASCII footer; one-line `PI_REVIEW_META_JSON` on stderr for automation
|
|
21
|
+
- **Structured output** — explicit `status`, structured findings (with optional per-finding `details`/`recommendation`/`location`), and a human-readable ASCII footer; one versioned, one-line `PI_REVIEW_META_JSON` on stderr for automation
|
|
22
22
|
- **Loop review gate** — bounded, isolated review rounds with `pi-review loop --max-rounds <n>`; the host remains the only editor
|
|
23
23
|
- **Model-agnostic** — use any model available in your Pi installation
|
|
24
24
|
- **Live streaming** — child review output is forwarded as it arrives (use `--no-stream` to buffer)
|
|
@@ -138,6 +138,8 @@ pi-review loop --mode challenge --max-rounds 2 -- @docs/design.md
|
|
|
138
138
|
|
|
139
139
|
Each round is review-only. The process never edits, patches, waits for filesystem changes, or asks the child session to fix findings. It stops immediately on `clean`, `needs_human`, or `blocked`; otherwise it stops when the round budget is exhausted. Every round emits one `PI_REVIEW_META_JSON` line in order, and the final human summary lists each round's status, verdict, duration, and finding counts.
|
|
140
140
|
|
|
141
|
+
Each round's `PI_REVIEW_META_JSON` line is the same enriched schema documented under [Machine finding schema](#machine-finding-schema) — `metaVersion`, per-finding `details`/`recommendation`/`location`, and (for panel rounds) `sourceFindings`. A consumer that wants enriched findings for a given round reads that round's stderr line directly, in emission order; no Markdown scraping and no change to `LoopRoundSummary` are needed.
|
|
142
|
+
|
|
141
143
|
This is a **host-driven gate**: if findings remain, the host or human fixes only accepted in-scope findings and invokes `loop` again. For patch-by-patch agent closeout, `--max-rounds 1` gives the host a fix point after each review. For an explicit clean goal with a hard ceiling, use `--until clean` (default budget 10 when `--max-rounds` is omitted; never unlimited). Clean means no gate-blocking findings (single: no actionable findings; panel: no confirmed actionable clusters; advisories may remain). `loop` accepts normal review target/model/progress options but rejects `--keep-session`, `--continue`, and `--name` in v1.
|
|
142
144
|
|
|
143
145
|
## Panel Review
|
|
@@ -178,6 +180,8 @@ Reviewer runs = `--reviewers <n>` × `--max-rounds` (loop); one adjudication cal
|
|
|
178
180
|
|
|
179
181
|
A panel evaluation emits **one** aggregate `PI_REVIEW_META_JSON` record with additive fields: `strategy: "panel"`, `configuredReviewers`, `successfulReviewers`, `consensusPolicy`, `consensusThreshold`, `panelHealth`, `confirmedClusters`, `advisories`, and per-`reviewers` outcomes. Top-level `findings` contain confirmed clusters only; advisories remain separate. Existing single-review keys remain unchanged, so older consumers can ignore the new fields. The panel-level `model` is each reviewer's effective model (configured, else the provider-reported `responseModel`) when they all agree, and the literal sentinel `"mixed"` when reviewers ran on different models — machine consumers parsing `model` must expect that value; per-reviewer entries keep their own `model`/`responseModel`.
|
|
180
182
|
|
|
183
|
+
Panel machine metadata additionally carries `sourceFindings`: every contributing reviewer's raw findings, each tagged with its globally unique `id` (e.g. `"r1#F1"`) and `reviewerId`. This resolves every id referenced by `confirmedClusters[].sourceFindingIds` and `advisories[].sourceFindingIds` to its full enriched finding — including `details`/`recommendation`/`location` when the reviewer's Markdown supplied them (see [Machine finding schema](#machine-finding-schema)). Cluster-level summaries stay as they are today: `summary`/`severity`/`path` only, no enrichment fields.
|
|
184
|
+
|
|
181
185
|
### Live Pi progress and event replay
|
|
182
186
|
|
|
183
187
|
In Pi, slash commands select strategy only:
|
|
@@ -225,6 +229,8 @@ approve | request_changes | needs_clarification | blocked
|
|
|
225
229
|
### F1: <summary>
|
|
226
230
|
- Severity: critical | high | medium | low
|
|
227
231
|
- Path: <path or none>
|
|
232
|
+
- Lines: <line or line-range in Path, or none>
|
|
233
|
+
- Side: base | working (optional; defaults to working)
|
|
228
234
|
- Actionable: yes | no
|
|
229
235
|
- Evidence: <concrete evidence>
|
|
230
236
|
- Impact: <why it matters>
|
|
@@ -255,11 +261,31 @@ The CLI appends a readable ASCII footer on **stdout**:
|
|
|
255
261
|
For scripts, parse **`PI_REVIEW_META_JSON:`** from **stderr**. Existing keys remain, with additive fields:
|
|
256
262
|
|
|
257
263
|
```json
|
|
258
|
-
{"reviewMode":"code","verdict":"request_changes","verdictSource":"parsed","status":"has_findings","findings":[{"id":"F1","severity":"high","path":"src/cli.ts","summary":"Dirty reviews exit zero","actionable":true}],"actionableCount":1,"durationMs":42300,"model":"provider/model","thinking":"xhigh","usage":{"input":18031,"output":512,"cacheRead":2048,"cacheWrite":0,"reasoning":0,"totalTokens":18591,"costTotal":0.05}}
|
|
264
|
+
{"metaVersion":1,"reviewMode":"code","verdict":"request_changes","verdictSource":"parsed","status":"has_findings","findings":[{"id":"F1","severity":"high","path":"src/cli.ts","summary":"Dirty reviews exit zero","actionable":true}],"actionableCount":1,"durationMs":42300,"model":"provider/model","thinking":"xhigh","usage":{"input":18031,"output":512,"cacheRead":2048,"cacheWrite":0,"reasoning":0,"totalTokens":18591,"costTotal":0.05}}
|
|
259
265
|
```
|
|
260
266
|
|
|
261
267
|
`status` is one of `clean`, `has_findings`, `needs_human`, or `blocked`: `approve` with no actionable findings is `clean`; `request_changes` or actionable findings are `has_findings`; `needs_clarification` is `needs_human`; runtime/fatal failures are `blocked`. Each finding always has `summary` and `actionable`; `id`, `severity`, and `path` are present when parsed. `thinking` and `usage` are additive and present when reported by the child; `usage` includes token totals and may include `costTotal`. The line remains a single additive JSON record, so older consumers can ignore unknown keys. Set `PI_REVIEW_META_STDOUT=1` to emit it on stdout instead.
|
|
262
268
|
|
|
269
|
+
### Machine finding schema
|
|
270
|
+
|
|
271
|
+
`PI_REVIEW_META_JSON` carries a top-level `metaVersion` schema discriminator (currently `1`). JSON emitted by pi-review versions before this field existed has no `metaVersion` key at all — treat that absence as the original, pre-enrichment contract. Every field below is additive under `metaVersion: 1`; a future breaking change to this shape would bump it.
|
|
272
|
+
|
|
273
|
+
Each finding gains three optional fields alongside the existing `{ id?, severity?, path?, summary, actionable }` shape:
|
|
274
|
+
|
|
275
|
+
| Field | Type | Present when |
|
|
276
|
+
|-------|------|--------------|
|
|
277
|
+
| `details` | `string` | At least one of the reviewer's Evidence/Impact fields parsed. Joins them as `"Evidence: <...>"` and/or `"Impact: <...>"` paragraphs separated by a blank line (`\n\n`); a finding with only one of the two carries only that labeled paragraph. Never fabricated. |
|
|
278
|
+
| `recommendation` | `string` | The reviewer's Recommendation field parsed, verbatim and kept separate from `details`. |
|
|
279
|
+
| `location` | `{ startLine: number; endLine?: number; side?: "base" \| "working" }` | The reviewer's `Lines` field held one positive integer (`42`) or a non-inverted positive range (`42-58`). Non-numeric, zero/negative, or inverted (`endLine < startLine`) values are dropped rather than guessed, so `location` is simply absent. `side` is only ever `"base"` (before the change); every other case — absent, unrecognized, or explicitly `"working"` — omits `side`, which means `"working"` (after the change). |
|
|
280
|
+
|
|
281
|
+
Example with all three populated:
|
|
282
|
+
|
|
283
|
+
```json
|
|
284
|
+
{"metaVersion":1,"reviewMode":"code","verdict":"request_changes","verdictSource":"parsed","status":"has_findings","findings":[{"id":"F1","severity":"high","path":"src/cli.ts","summary":"Dirty reviews exit zero","actionable":true,"details":"Evidence: runReview forwards the child exit code.\n\nImpact: A review gate passes with actionable findings.","recommendation":"Map structured status to a stable exit code.","location":{"startLine":42,"endLine":58}}],"actionableCount":1,"durationMs":42300,"model":"provider/model"}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
All three finding-level fields and `metaVersion` are additive: existing consumers reading only `{ id?, severity?, path?, summary, actionable }` are unaffected, and a file-level finding with no reliable line data simply omits `location` while `details`/`recommendation` still populate when Evidence/Impact/Recommendation parsed. This machine schema — including the panel `sourceFindings` fields documented under [Panel Review § Machine output](#machine-output) and the per-round stream documented under [Loop Review](#loop-review) — is a **supported integration surface**: renderers should read `PI_REVIEW_META_JSON` directly and never need to scrape review Markdown for Evidence/Impact/Recommendation/line data.
|
|
288
|
+
|
|
263
289
|
The parser prefers the exact `### F1` shape above but also accepts legacy `###` headings and top-level finding lists. When `Actionable` is missing, findings under `request_changes` default to actionable and other verdicts default to non-actionable. A missing/unrecognized verdict falls back to `needs_clarification` / `needs_human` and includes `parseError`; runtime failures always remain `blocked`.
|
|
264
290
|
|
|
265
291
|
### Exit codes
|
package/README.zh-CN.md
CHANGED
|
@@ -77,6 +77,8 @@ pi-review loop --until clean --max-rounds 10 -- @src
|
|
|
77
77
|
|
|
78
78
|
`loop` 复用普通审查的 mode/model/progress/target 参数;v1 明确不支持 `--keep-session`、`--continue`、`--name`。
|
|
79
79
|
|
|
80
|
+
每轮审查各自在 stderr 输出一条 `PI_REVIEW_META_JSON`,即[输出格式](#输出格式)里的富化 finding schema(`metaVersion`、每条 finding 的 `details`/`recommendation`/`location`、panel 轮次的 `sourceFindings`);消费者按输出顺序逐轮读取该行即可拿到完整 finding 数据,无需刮取 Markdown,逐轮摘要(`LoopRoundSummary`)保持只含计数。
|
|
81
|
+
|
|
80
82
|
## Panel Review(面板审查)
|
|
81
83
|
|
|
82
84
|
面板审查让多个**独立**审查者在隔离子会话中并行评审,再聚合为同一个门禁结论。审查者看不到彼此的发现,因此一致代表独立发现。
|
|
@@ -115,6 +117,8 @@ pi-review loop --reviewers 3 --consensus quorum --max-rounds 2 -- @src
|
|
|
115
117
|
|
|
116
118
|
一次面板评估只输出**一条**聚合 `PI_REVIEW_META_JSON`,新增字段:`strategy: "panel"`、`configuredReviewers`、`successfulReviewers`、`consensusPolicy`、`consensusThreshold`、`panelHealth`、`confirmedClusters`、`advisories` 以及每个 `reviewers` 的结果。顶层 `findings` 只含确认簇;advisory 单独存放。旧字段保留,老消费者可安全忽略新字段。面板级 `model` 取各审查者的有效模型(显式配置优先,否则取 provider 上报的 `responseModel`):全员一致时为该值,不一致时为字面量 `"mixed"` —— 解析 `model` 字段的机器消费方需要识别这个哨兵值;每个 reviewer 条目仍各自携带 `model`/`responseModel`。
|
|
117
119
|
|
|
120
|
+
面板机器元数据另携带 `sourceFindings`:每位贡献 reviewer 的原始 finding,各自带全局唯一 `id`(如 `"r1#F1"`)与 `reviewerId`,可把 `confirmedClusters[].sourceFindingIds` / `advisories[].sourceFindingIds` 引用的每个 id 解析回完整富化 finding(含 `details`/`recommendation`/`location`,见[输出格式](#输出格式));簇级摘要保持现状,只含 `summary`/`severity`/`path`,不携带富化字段。
|
|
121
|
+
|
|
118
122
|
### Pi 实时进度与事件回放
|
|
119
123
|
|
|
120
124
|
Pi 中执行 `/rv @target` 会调用原生 **Pi Review Panel** 工具(API 标识仍为 `pi_review`,界面不再直接展示下划线名称)。每位 reviewer 都有独立实时行,明确展示 `queued/running/completed/failed/cancelled` 状态、当前工具、耗时和 token 用量;按 `Ctrl+O` 可展开查看有界活动记录、最终发现、溯源、总耗时、token 总量和 cost。
|
|
@@ -164,16 +168,17 @@ CLI 会在 reviewer 启动前把 `PI_REVIEW_UI_URL: http://127.0.0.1:<port>/run/
|
|
|
164
168
|
|
|
165
169
|
## 输出格式
|
|
166
170
|
|
|
167
|
-
审查结果包含 `## Verdict`、`## Summary`、`## Findings` 等章节。每条 finding 使用 `F1 + Severity + Path + Actionable + Evidence + Impact + Recommendation`
|
|
171
|
+
审查结果包含 `## Verdict`、`## Summary`、`## Findings` 等章节。每条 finding 使用 `F1 + Severity + Path + Lines + Side + Actionable + Evidence + Impact + Recommendation` 结构;`Lines`/`Side` 可选,只在有可靠行号时给出(单行 `42` 或闭区间 `42-58`),`Side` 标注行号属于 diff 的哪一侧(`base` 改动前 / `working` 改动后,省略即 `working`)。ASCII 页脚会显示 Verdict、`Status`、finding 数量、Mode、总 token、cost、Duration/Session;Pi 面板展开结果也会包含同一组运行指标。
|
|
168
172
|
|
|
169
173
|
机器可读 JSON 仍在 **stderr** 的单行 `PI_REVIEW_META_JSON:` 中,并以新增字段提供:
|
|
170
174
|
|
|
175
|
+
- `metaVersion`: schema 版本判别字段(当前为 `1`);更早版本的输出没有此键,缺失即视为富化前的原始契约
|
|
171
176
|
- `status`: `clean | has_findings | needs_human | blocked`
|
|
172
|
-
- `findings`: `{ id?, severity?, path?, summary, actionable }[]`
|
|
177
|
+
- `findings`: `{ id?, severity?, path?, summary, actionable, details?, recommendation?, location? }[]` — `details` 把 reviewer 的 Evidence/Impact 以 `Evidence: ...`、`Impact: ...` 段落(空行分隔)原样保留,只有其一时仅含该段;`recommendation` 单独保留修复建议;`location` 为 `{ startLine, endLine?, side? }`,仅在行号可解析时出现,畸形值(非数字、零/负数、倒置区间)一律省略而非编造,`side` 缺省即 `working`
|
|
173
178
|
- `actionableCount`: 可操作问题数量
|
|
174
179
|
- `usage.totalTokens`: token 总量;`usage.costTotal`: provider 报告的 cost(若有)
|
|
175
180
|
|
|
176
|
-
|
|
181
|
+
该机器 finding schema(连同 panel 的 `sourceFindings` 与 loop 每轮的 meta 行)是**受支持的集成面**:渲染器直接读 `PI_REVIEW_META_JSON` 即可,无需刮取审查 Markdown;完整字段表见英文 README 的 "Machine finding schema" 一节。旧字段不删除;需改为写入 stdout 时设 `PI_REVIEW_META_STDOUT=1`。解析器优先识别上述 `### F1` 格式,也兼容旧的三级标题和顶层列表;缺少 `Actionable` 时,`request_changes` 下默认可操作,其它 verdict 默认不可操作。无法识别 verdict 时会回退到 `needs_human` 并附带 `parseError`,运行时失败始终保持 `blocked`。
|
|
177
182
|
|
|
178
183
|
退出码:`0` clean、`1` 最终状态为 `has_findings` / loop 预算耗尽、`2` 参数错误、`3` needs human、`4` blocked / 运行时失败。
|
|
179
184
|
|
package/dist/cli-exit.test.js
CHANGED
|
@@ -56,7 +56,7 @@ test("single-review CLI maps structured status to gate exit codes", () => {
|
|
|
56
56
|
fs.writeFileSync(fakePi, `#!/usr/bin/env node
|
|
57
57
|
const verdict = process.env.FAKE_REVIEW_VERDICT;
|
|
58
58
|
const findings = verdict === "request_changes"
|
|
59
|
-
? "### F1: Fix the gate\\n- Severity: high\\n- Path: src/cli.ts\\n- Actionable: yes"
|
|
59
|
+
? "### F1: Fix the gate\\n- Severity: high\\n- Path: src/cli.ts\\n- Lines: 10-20\\n- Side: base\\n- Actionable: yes\\n- Evidence: The gate returns 0 on a dirty verdict.\\n- Impact: CI reports success despite findings.\\n- Recommendation: Map status to a non-zero exit code."
|
|
60
60
|
: "No material findings.";
|
|
61
61
|
const text = "## Verdict\\n" + verdict + "\\n\\n## Summary\\n- Fixture.\\n\\n## Findings\\n" + findings + "\\n\\n## Risks and Blind Spots\\nNone.\\n\\n## Open Questions\\nNone.\\n";
|
|
62
62
|
function line(obj) { process.stdout.write(JSON.stringify(obj) + "\\n"); }
|
|
@@ -88,6 +88,24 @@ process.exit(Number(process.env.FAKE_REVIEW_EXIT ?? "0"));
|
|
|
88
88
|
assert.ok(metaLine, result.stderr);
|
|
89
89
|
const meta = JSON.parse(metaLine.slice("PI_REVIEW_META_JSON: ".length));
|
|
90
90
|
assert.equal(meta.status, scenario.expectedStatus);
|
|
91
|
+
// Issue #6: every emission carries the metaVersion discriminator, and the
|
|
92
|
+
// request_changes scenario's finding carries the enriched fields end to
|
|
93
|
+
// end (Markdown -> parser -> PI_REVIEW_META_JSON on stderr).
|
|
94
|
+
assert.equal(meta.metaVersion, 1);
|
|
95
|
+
if (scenario.verdict === "request_changes") {
|
|
96
|
+
assert.deepEqual(meta.findings, [
|
|
97
|
+
{
|
|
98
|
+
id: "F1",
|
|
99
|
+
severity: "high",
|
|
100
|
+
path: "src/cli.ts",
|
|
101
|
+
summary: "Fix the gate",
|
|
102
|
+
actionable: true,
|
|
103
|
+
details: "Evidence: The gate returns 0 on a dirty verdict.\n\nImpact: CI reports success despite findings.",
|
|
104
|
+
recommendation: "Map status to a non-zero exit code.",
|
|
105
|
+
location: { startLine: 10, endLine: 20, side: "base" },
|
|
106
|
+
},
|
|
107
|
+
]);
|
|
108
|
+
}
|
|
91
109
|
}
|
|
92
110
|
});
|
|
93
111
|
//# sourceMappingURL=cli-exit.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-exit.test.js","sourceRoot":"","sources":["../src/cli-exit.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-exit.test.js","sourceRoot":"","sources":["../src/cli-exit.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,8 +20,8 @@ export type { FindingMatcher, MatchResult, SemanticAdjudicator, AdjudicationRequ
|
|
|
20
20
|
export { resolvePanelConfig } from "./panel-config.js";
|
|
21
21
|
export type { ResolvedPanelConfig } from "./panel-config.js";
|
|
22
22
|
export { makeRunSessionDir, newestJsonl } from "./session.js";
|
|
23
|
-
export type { Verdict, ReviewStatus, ReviewFinding, ParsedArgs, ReviewPreset, VerdictInfo, StructuredReviewResult, ReviewMeta, ReviewRunResult, SplitPayload, ConsensusPolicy, SourceFinding, FindingCluster, PanelHealth, ReviewerOutcome, PanelFields, PanelAggregationResult, PanelReviewMeta, ReviewerSubmission, PanelReviewerSpec, PanelPreset, TokenUsage, } from "./types.js";
|
|
24
|
-
export { REVIEW_STATUSES, VERDICTS, CONSENSUS_POLICIES, MAX_REVIEWERS, PANEL_READ_ONLY_TOOLS, DEFAULT_PANEL_MIN_AGREE, } from "./types.js";
|
|
23
|
+
export type { Verdict, ReviewStatus, ReviewFinding, FindingLocation, ParsedArgs, ReviewPreset, VerdictInfo, StructuredReviewResult, ReviewMeta, ReviewRunResult, SplitPayload, ConsensusPolicy, SourceFinding, FindingCluster, PanelHealth, ReviewerOutcome, PanelFields, PanelAggregationResult, PanelReviewMeta, ReviewerSubmission, PanelReviewerSpec, PanelPreset, TokenUsage, } from "./types.js";
|
|
24
|
+
export { REVIEW_STATUSES, VERDICTS, CONSENSUS_POLICIES, MAX_REVIEWERS, PANEL_READ_ONLY_TOOLS, DEFAULT_PANEL_MIN_AGREE, REVIEW_META_VERSION, } from "./types.js";
|
|
25
25
|
export { fail, hasPathSeparator, expandMaybeHome, normalizeTools } from "./utils.js";
|
|
26
26
|
export { parseVerdict } from "./verdict.js";
|
|
27
27
|
export { parseReviewResult, reviewExitCode } from "./review-result.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC9J,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9J,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1K,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EACV,OAAO,EACP,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC9J,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9J,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1K,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EACV,OAAO,EACP,YAAY,EACZ,aAAa,EACb,eAAe,EACf,UAAU,EACV,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/L,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { aggregatePanel, effectiveThreshold } from "./panel-aggregate.js";
|
|
|
13
13
|
export { DeterministicMatcher, SemanticMatcher } from "./matcher.js";
|
|
14
14
|
export { resolvePanelConfig } from "./panel-config.js";
|
|
15
15
|
export { makeRunSessionDir, newestJsonl } from "./session.js";
|
|
16
|
-
export { REVIEW_STATUSES, VERDICTS, CONSENSUS_POLICIES, MAX_REVIEWERS, PANEL_READ_ONLY_TOOLS, DEFAULT_PANEL_MIN_AGREE, } from "./types.js";
|
|
16
|
+
export { REVIEW_STATUSES, VERDICTS, CONSENSUS_POLICIES, MAX_REVIEWERS, PANEL_READ_ONLY_TOOLS, DEFAULT_PANEL_MIN_AGREE, REVIEW_META_VERSION, } from "./types.js";
|
|
17
17
|
export { fail, hasPathSeparator, expandMaybeHome, normalizeTools } from "./utils.js";
|
|
18
18
|
export { parseVerdict } from "./verdict.js";
|
|
19
19
|
export { parseReviewResult, reviewExitCode } from "./review-result.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE9J,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE9J,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA0B9D,OAAO,EACL,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/L,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/loop.test.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
2
|
import { test } from "vitest";
|
|
3
3
|
import { formatLoopSummary, runReviewLoop } from "./loop.js";
|
|
4
|
+
import { REVIEW_META_VERSION } from "./types.js";
|
|
4
5
|
function meta(status, verdict, durationMs = 100) {
|
|
5
6
|
return {
|
|
7
|
+
metaVersion: REVIEW_META_VERSION,
|
|
6
8
|
reviewMode: "code",
|
|
7
9
|
verdict,
|
|
8
10
|
verdictSource: "parsed",
|
package/dist/loop.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.test.js","sourceRoot":"","sources":["../src/loop.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"loop.test.js","sourceRoot":"","sources":["../src/loop.test.ts"],"names":[],"mappings":"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"}
|
package/dist/meta-footer.test.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
2
|
import { test } from "vitest";
|
|
3
3
|
import { formatCost, formatDurationMs, formatPanelMetaAscii, formatReviewMetaAscii, formatReviewMetaJsonLine, formatTokens, formatUsage } from "./meta-footer.js";
|
|
4
|
+
import { REVIEW_META_VERSION } from "./types.js";
|
|
4
5
|
const sample = {
|
|
6
|
+
metaVersion: REVIEW_META_VERSION,
|
|
5
7
|
reviewMode: "code",
|
|
6
8
|
verdict: "request_changes",
|
|
7
9
|
verdictSource: "parsed",
|
|
@@ -13,6 +15,9 @@ const sample = {
|
|
|
13
15
|
path: "src/cli.ts",
|
|
14
16
|
summary: "Dirty reviews exit zero",
|
|
15
17
|
actionable: true,
|
|
18
|
+
details: "Evidence: runReview forwards the child exit code.\n\nImpact: A review gate passes with actionable findings.",
|
|
19
|
+
recommendation: "Map structured status to a stable exit code.",
|
|
20
|
+
location: { startLine: 42, endLine: 58 },
|
|
16
21
|
},
|
|
17
22
|
],
|
|
18
23
|
actionableCount: 1,
|
|
@@ -38,6 +43,7 @@ test("formatReviewMetaJsonLine is one JSON line", () => {
|
|
|
38
43
|
const line = formatReviewMetaJsonLine(sample);
|
|
39
44
|
assert.ok(line.startsWith("PI_REVIEW_META_JSON: "));
|
|
40
45
|
const json = JSON.parse(line.slice("PI_REVIEW_META_JSON: ".length).trim());
|
|
46
|
+
assert.equal(json.metaVersion, REVIEW_META_VERSION);
|
|
41
47
|
assert.equal(json.reviewMode, "code");
|
|
42
48
|
assert.equal(json.verdict, "request_changes");
|
|
43
49
|
assert.equal(json.verdictSource, "parsed");
|
|
@@ -47,6 +53,12 @@ test("formatReviewMetaJsonLine is one JSON line", () => {
|
|
|
47
53
|
assert.equal(json.status, "has_findings");
|
|
48
54
|
assert.equal(json.actionableCount, 1);
|
|
49
55
|
assert.deepEqual(json.findings, sample.findings);
|
|
56
|
+
// Issue #6 regression guard: enriched finding fields must round-trip through
|
|
57
|
+
// JSON.stringify/JSON.parse unchanged, so a future serialization path can't
|
|
58
|
+
// silently drop them.
|
|
59
|
+
assert.equal(json.findings[0].details, sample.findings[0].details);
|
|
60
|
+
assert.equal(json.findings[0].recommendation, sample.findings[0].recommendation);
|
|
61
|
+
assert.deepEqual(json.findings[0].location, sample.findings[0].location);
|
|
50
62
|
});
|
|
51
63
|
test("formatTokens scales with K/M/B units", () => {
|
|
52
64
|
assert.equal(formatTokens(0), "0");
|
|
@@ -77,6 +89,7 @@ test("ASCII footer shows thinking, tokens, cost, and duration when present", ()
|
|
|
77
89
|
assert.match(ascii, /Duration\s+6m 24s/);
|
|
78
90
|
});
|
|
79
91
|
const panelSample = {
|
|
92
|
+
metaVersion: REVIEW_META_VERSION,
|
|
80
93
|
strategy: "panel",
|
|
81
94
|
reviewMode: "code",
|
|
82
95
|
status: "has_findings",
|
|
@@ -98,7 +111,37 @@ const panelSample = {
|
|
|
98
111
|
{ reviewerId: "r2", role: "two", model: null, responseModel: "provider/model-a", durationMs: 100, status: "clean", verdict: "approve", verdictSource: "parsed", contributed: true },
|
|
99
112
|
],
|
|
100
113
|
adjudicationUsed: false,
|
|
114
|
+
sourceFindings: [
|
|
115
|
+
{
|
|
116
|
+
id: "r1#F1",
|
|
117
|
+
reviewerId: "r1",
|
|
118
|
+
finding: {
|
|
119
|
+
id: "F1",
|
|
120
|
+
severity: "high",
|
|
121
|
+
path: "src/cli.ts",
|
|
122
|
+
summary: "Off-by-one in loop",
|
|
123
|
+
actionable: true,
|
|
124
|
+
details: "Evidence: The loop reads one element past the end.\n\nImpact: The last page silently returns stale data.",
|
|
125
|
+
recommendation: "Clamp the upper bound to the page count.",
|
|
126
|
+
location: { startLine: 10, endLine: 20, side: "base" },
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
],
|
|
101
130
|
};
|
|
131
|
+
test("formatReviewMetaJsonLine round-trips panel sourceFindings intact (issue #6)", () => {
|
|
132
|
+
const line = formatReviewMetaJsonLine(panelSample);
|
|
133
|
+
const json = JSON.parse(line.slice("PI_REVIEW_META_JSON: ".length).trim());
|
|
134
|
+
assert.equal(json.strategy, "panel");
|
|
135
|
+
assert.deepEqual(json.sourceFindings, panelSample.sourceFindings);
|
|
136
|
+
// Spelled out too, so a future change to the enrichment fields specifically
|
|
137
|
+
// (not just sourceFindings as a whole) cannot silently regress unnoticed.
|
|
138
|
+
const resolved = json.sourceFindings[0];
|
|
139
|
+
assert.equal(resolved.id, "r1#F1");
|
|
140
|
+
assert.equal(resolved.reviewerId, "r1");
|
|
141
|
+
assert.equal(resolved.finding.details, panelSample.sourceFindings[0].finding.details);
|
|
142
|
+
assert.equal(resolved.finding.recommendation, panelSample.sourceFindings[0].finding.recommendation);
|
|
143
|
+
assert.deepEqual(resolved.finding.location, panelSample.sourceFindings[0].finding.location);
|
|
144
|
+
});
|
|
102
145
|
test("panel ASCII footer shows a top-level Model line when every reviewer's effective model agrees", () => {
|
|
103
146
|
const ascii = formatPanelMetaAscii(panelSample);
|
|
104
147
|
assert.match(ascii, /Model\s+provider\/model-a/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-footer.test.js","sourceRoot":"","sources":["../src/meta-footer.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"meta-footer.test.js","sourceRoot":"","sources":["../src/meta-footer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-aggregate.d.ts","sourceRoot":"","sources":["../src/panel-aggregate.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAI3B,KAAK,kBAAkB,EAIxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC,EACvE,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,GAAG,IAAI,CAQf;AA2GD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;CACzB;AAMD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"panel-aggregate.d.ts","sourceRoot":"","sources":["../src/panel-aggregate.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAI3B,KAAK,kBAAkB,EAIxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC,EACvE,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,GAAG,IAAI,CAQf;AA2GD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;CACzB;AAMD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuIlG"}
|
package/dist/panel-aggregate.js
CHANGED
|
@@ -260,6 +260,9 @@ export async function aggregatePanel(input) {
|
|
|
260
260
|
reviewers: reviewerOutcomes,
|
|
261
261
|
adjudicationUsed,
|
|
262
262
|
...(matcherErrors.length > 0 ? { adjudicationErrors: matcherErrors } : {}),
|
|
263
|
+
// Resolves every FindingCluster.sourceFindingIds entry (confirmed and
|
|
264
|
+
// advisory alike) to its full reviewer identity + enriched finding.
|
|
265
|
+
sourceFindings,
|
|
263
266
|
};
|
|
264
267
|
}
|
|
265
268
|
//# sourceMappingURL=panel-aggregate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-aggregate.js","sourceRoot":"","sources":["../src/panel-aggregate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"panel-aggregate.js","sourceRoot":"","sources":["../src/panel-aggregate.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ function finding(summary, opts = {}) {
|
|
|
9
9
|
...(opts.path ? { path: opts.path } : {}),
|
|
10
10
|
summary,
|
|
11
11
|
actionable: opts.actionable ?? true,
|
|
12
|
+
...(opts.details ? { details: opts.details } : {}),
|
|
13
|
+
...(opts.recommendation ? { recommendation: opts.recommendation } : {}),
|
|
14
|
+
...(opts.location ? { location: opts.location } : {}),
|
|
12
15
|
};
|
|
13
16
|
}
|
|
14
17
|
function review(status, findings, verdictSource = "parsed", parseError) {
|
|
@@ -366,6 +369,57 @@ test("top-level findings contain confirmed clusters only; advisories are separat
|
|
|
366
369
|
assert.equal(f.actionable, true);
|
|
367
370
|
assert.equal(result.advisories.every((c) => !c.confirmed), true);
|
|
368
371
|
});
|
|
372
|
+
test("sourceFindings resolves every id referenced by confirmedClusters and advisories (issue #6)", async () => {
|
|
373
|
+
const result = await aggregatePanel({
|
|
374
|
+
reviewers: matrixFixture(),
|
|
375
|
+
policy: "quorum",
|
|
376
|
+
minAgree: 2,
|
|
377
|
+
configuredReviewers: 3,
|
|
378
|
+
matcher: byPathSummary(),
|
|
379
|
+
});
|
|
380
|
+
const referencedIds = [...result.confirmedClusters, ...result.advisories].flatMap((c) => c.sourceFindingIds);
|
|
381
|
+
const byId = new Map(result.sourceFindings.map((sf) => [sf.id, sf]));
|
|
382
|
+
assert.equal(result.sourceFindings.length, referencedIds.length);
|
|
383
|
+
for (const id of referencedIds) {
|
|
384
|
+
const resolved = byId.get(id);
|
|
385
|
+
assert.ok(resolved, `expected sourceFindings to resolve ${id}`);
|
|
386
|
+
assert.equal(resolved.id, id);
|
|
387
|
+
assert.ok(resolved.reviewerId);
|
|
388
|
+
assert.ok(resolved.finding.summary);
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
test("sourceFindings preserves per-source details/recommendation/location while cluster-level shape stays summary-only", async () => {
|
|
392
|
+
const reviewers = [
|
|
393
|
+
submission("r1", review("has_findings", [
|
|
394
|
+
finding("Off-by-one in loop", {
|
|
395
|
+
id: "F1",
|
|
396
|
+
path: "src/cli.ts",
|
|
397
|
+
severity: "high",
|
|
398
|
+
details: "Evidence: e.\n\nImpact: i.",
|
|
399
|
+
recommendation: "Clamp the bound.",
|
|
400
|
+
location: { startLine: 10, endLine: 20 },
|
|
401
|
+
}),
|
|
402
|
+
])),
|
|
403
|
+
submission("r2", review("has_findings", [finding("Off-by-one in loop", { id: "F1", path: "src/cli.ts" })])),
|
|
404
|
+
];
|
|
405
|
+
const result = await aggregatePanel({
|
|
406
|
+
reviewers,
|
|
407
|
+
policy: "quorum",
|
|
408
|
+
minAgree: 2,
|
|
409
|
+
configuredReviewers: 2,
|
|
410
|
+
matcher: byPathSummary(),
|
|
411
|
+
});
|
|
412
|
+
assert.equal(result.confirmedClusters.length, 1);
|
|
413
|
+
const cluster = result.confirmedClusters[0];
|
|
414
|
+
// Cluster-level summaries stay as they are today: enrichment never leaks onto the cluster itself.
|
|
415
|
+
assert.ok(!("details" in cluster) && !("recommendation" in cluster) && !("location" in cluster));
|
|
416
|
+
const r1Source = result.sourceFindings.find((sf) => sf.id === "r1#F1");
|
|
417
|
+
const r2Source = result.sourceFindings.find((sf) => sf.id === "r2#F1");
|
|
418
|
+
assert.equal(r1Source.finding.details, "Evidence: e.\n\nImpact: i.");
|
|
419
|
+
assert.equal(r1Source.finding.recommendation, "Clamp the bound.");
|
|
420
|
+
assert.deepEqual(r1Source.finding.location, { startLine: 10, endLine: 20 });
|
|
421
|
+
assert.equal(r2Source.finding.details, undefined);
|
|
422
|
+
});
|
|
369
423
|
test("semantic matcher integration confirms a different-wording cluster through an injected adjudicator", async () => {
|
|
370
424
|
const reviewers = [
|
|
371
425
|
submission("r1", review("has_findings", [finding("loop bound is wrong", { id: "F1", path: "src/cli.ts" })])),
|