revu-ai 0.2.2 → 0.3.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/CHANGELOG.md +18 -0
- package/README.md +14 -3
- package/dist/cli.js +20 -2
- package/dist/cli.js.map +1 -1
- package/dist/forges/post-cmd.js +7 -4
- package/dist/forges/post-cmd.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/mcp/aggregator.d.ts +23 -1
- package/dist/mcp/aggregator.js +71 -0
- package/dist/mcp/aggregator.js.map +1 -1
- package/dist/mcp/server.js +59 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +48 -0
- package/dist/mcp/tools.js +47 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/pretty.d.ts +17 -1
- package/dist/output/pretty.js +68 -1
- package/dist/output/pretty.js.map +1 -1
- package/dist/prompts/review-system.js +31 -3
- package/dist/prompts/review-system.js.map +1 -1
- package/dist/providers/claude-code.js +2 -0
- package/dist/providers/claude-code.js.map +1 -1
- package/dist/runner.d.ts +5 -1
- package/dist/runner.js +32 -1
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +42 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `revu-ai` are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project's pre-1.0 versioning treats minor bumps as breaking-change boundaries.
|
|
4
4
|
|
|
5
|
+
## 0.3.0 — 2026-05-24
|
|
6
|
+
|
|
7
|
+
### Breaking changes
|
|
8
|
+
|
|
9
|
+
- **`RunReport.schemaVersion` bumped from `2` to `3`.** New required fields on the contract: `summaryCount` and `checkCount` on every `RuleResult`; top-level `summaries: ReviewSummary[]` and `checks: Check[]` arrays. `revu-ai github post` accepts v1, v2, and v3 reports for back-compat.
|
|
10
|
+
- **Type exports added to the package's main export:** `Check`, `ReviewSummary`, `Resolution`. Consumers handling the new `RunReport.summaries` / `RunReport.checks` fields can now type them properly without reaching into `dist/types.js` paths.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`mcp__revu__report_review_summary` MCP tool — REQUIRED final sign-off.** Every review agent must call this exactly once before stopping; the call carries `outcome` ("pass" / "concerns"), `checked` (concrete description of what was inspected), and `rationale` (why the outcome holds). The runner uses the call's presence to detect agents that silently exited or never reached the MCP — a "no findings" run from an agent that didn't sign off is now flagged as a possibly-incomplete review rather than rendered as a clean tick.
|
|
15
|
+
- **`mcp__revu__report_check` MCP tool — incremental compliance evidence.** Agents call this as they work through the diff, once per concrete thing verified. Checks are NOT findings: they need no resolution, do not contribute to severity, and do not affect exit codes. The CLI streams a live `✓ <ruleId> <path>:<line> <message>` line for each check, and the final pretty output groups them under a per-rule "verified" block alongside the summary. The goal: a clean review now shows its working rather than just emitting a tick.
|
|
16
|
+
- **`RunReport.summaries` and `RunReport.checks` arrays** (additive). `RuleResult.summaryCount` and `RuleResult.checkCount` (always present on non-skipped rules).
|
|
17
|
+
- **Incomplete-review banner in pretty output.** When a healthy rule (not errored, not timed-out, not skipped) finishes without emitting a `report_review_summary`, a yellow banner names it explicitly so a "no findings" outcome can be trusted vs. treated as a possible false negative.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- **Review system prompt overhauled.** New REQUIRED sections describe the two tools above and the order they should be called in. The earlier "If you find nothing, just stop" instruction is replaced with explicit sign-off guidance: even when a rule is out of scope for the diff, the agent must call `report_review_summary` with `outcome: "pass"` and a `checked` / `rationale` explaining why the rule doesn't apply.
|
|
22
|
+
|
|
5
23
|
## 0.2.2 — 2026-05-23
|
|
6
24
|
|
|
7
25
|
### Added
|
package/README.md
CHANGED
|
@@ -192,20 +192,31 @@ The JSON shape is the stable contract for downstream tooling:
|
|
|
192
192
|
|
|
193
193
|
```json
|
|
194
194
|
{
|
|
195
|
-
"schemaVersion":
|
|
195
|
+
"schemaVersion": 3,
|
|
196
196
|
"runId": "...",
|
|
197
197
|
"startedAt": "...",
|
|
198
198
|
"completedAt": "...",
|
|
199
199
|
"reviewTarget": { "mode": "ref-range", "base": "origin/main", "baseSha": "...",
|
|
200
200
|
"head": "HEAD", "headSha": "...", "changedFiles": ["..."] },
|
|
201
201
|
"rules": [{ "id": "dead-code", "path": ".revu/dead-code.revu.md",
|
|
202
|
-
"ok": true, "durationMs": 12345, "findingCount": 1
|
|
202
|
+
"ok": true, "durationMs": 12345, "findingCount": 1,
|
|
203
|
+
"summaryCount": 1, "checkCount": 3 }],
|
|
203
204
|
"findings": [{ "ruleId": "dead-code", "severity": "high",
|
|
204
205
|
"path": "src/foo.ts", "line": 42, "lineEnd": 47,
|
|
205
|
-
"message": "...", "category": "unused-export"
|
|
206
|
+
"message": "...", "category": "unused-export",
|
|
207
|
+
"fingerprint": "a1b2c3d4e5f6" }],
|
|
208
|
+
"resolutions": [{ "ruleId": "dead-code", "fingerprint": "deadbeef0001",
|
|
209
|
+
"reason": "fixed", "resolvedAtSha": "..." }],
|
|
210
|
+
"summaries": [{ "ruleId": "dead-code", "outcome": "concerns",
|
|
211
|
+
"checked": "src/foo.ts exports vs prior shape",
|
|
212
|
+
"rationale": "one new export crosses the public surface" }],
|
|
213
|
+
"checks": [{ "ruleId": "dead-code", "path": "src/foo.ts", "line": 10,
|
|
214
|
+
"message": "internal helper remains unused outside this file" }]
|
|
206
215
|
}
|
|
207
216
|
```
|
|
208
217
|
|
|
218
|
+
The schema is additive across versions: v1 (initial), v2 (added `resolutions`, per-finding `fingerprint`/`priorFp`/`commentId`), v3 (added per-rule `summaryCount`/`checkCount` and top-level `summaries`/`checks`). The `revu-ai github post` step accepts v1, v2, and v3 reports.
|
|
219
|
+
|
|
209
220
|
## Forge integrations
|
|
210
221
|
|
|
211
222
|
revu-ai is forge-agnostic. The first integration ships GitHub; GitLab and others slot in via the same interface (the CLI grammar is `revu-ai <forge> post`).
|
package/dist/cli.js
CHANGED
|
@@ -186,8 +186,12 @@ program
|
|
|
186
186
|
onRuleStart: (id) => process.stderr.write(`${paint("cyan", "▶")} ${paint("bold", id)}\n`),
|
|
187
187
|
onActivity: showProgress
|
|
188
188
|
? (id, a) => {
|
|
189
|
-
if (a.kind === "tool" &&
|
|
190
|
-
|
|
189
|
+
if (a.kind === "tool" &&
|
|
190
|
+
(a.name === "mcp__revu__report_finding" ||
|
|
191
|
+
a.name === "mcp__revu__report_check" ||
|
|
192
|
+
a.name === "mcp__revu__report_review_summary")) {
|
|
193
|
+
// These get their own lines via onFinding / onCheck / onSummary
|
|
194
|
+
// — skip the duplicate tool-use noise.
|
|
191
195
|
return;
|
|
192
196
|
}
|
|
193
197
|
if (a.kind === "tool") {
|
|
@@ -205,6 +209,20 @@ program
|
|
|
205
209
|
process.stderr.write(` ${paint("dim", f.ruleId)} ${paint("bold", paint(SEV_COLOR[f.severity], "✱"))} ${sev} ${paint("bold", f.path)}${paint("dim", loc)}\n`);
|
|
206
210
|
}
|
|
207
211
|
: undefined,
|
|
212
|
+
onCheck: showProgress
|
|
213
|
+
? (chk) => {
|
|
214
|
+
const loc = chk.line !== undefined
|
|
215
|
+
? `:${chk.line}${chk.lineEnd && chk.lineEnd !== chk.line ? `-${chk.lineEnd}` : ""}`
|
|
216
|
+
: "";
|
|
217
|
+
process.stderr.write(` ${paint("dim", chk.ruleId)} ${paint("green", "✓")} ${paint("dim", `${chk.path}${loc}`)} ${chk.message}\n`);
|
|
218
|
+
}
|
|
219
|
+
: undefined,
|
|
220
|
+
onSummary: showProgress
|
|
221
|
+
? (s) => {
|
|
222
|
+
const tag = s.outcome === "pass" ? paint("green", "pass") : paint("yellow", "concerns");
|
|
223
|
+
process.stderr.write(` ${paint("dim", s.ruleId)} ${paint("bold", "▣ summary")} [${tag}] ${paint("dim", s.checked)}\n`);
|
|
224
|
+
}
|
|
225
|
+
: undefined,
|
|
208
226
|
onRuleEnd: (r) => {
|
|
209
227
|
const dur = paint("dim", `(${r.durationMs}ms)`);
|
|
210
228
|
let status;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAsC,CAAC;AACnG,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEvD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC5D,MAAM,CAAC,GAAG;IACR,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,UAAU;IACf,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,KAAY,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,6EAA6E;AAC7E,0EAA0E;AAC1E,0DAA0D;AAC1D,MAAM,SAAS,GAA4B;IACzC,SAAS,EAAE,MAAM;IACjB,GAAG,EAAE,MAAM;IACX,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,SAAS;CACpB,CAAC;AACF,MAAM,SAAS,GAA6B;IAC1C,SAAS,EAAE,MAAM;IACjB,GAAG,EAAE,MAAM;IACX,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;KACd,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;KAC5C,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,IAA2C,EAAE,EAAE;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6EAA6E,CAAC;KAC1F,MAAM,CAAC,SAAS,EAAE,yCAAyC,CAAC;KAC5D,MAAM,CAAC,kBAAkB,EAAE,sDAAsD,CAAC;KAClF,MAAM,CAAC,mBAAmB,EAAE,uEAAuE,CAAC;KACpG,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,6DAA6D,EAAE,WAAW,CAAC;KACvG,MAAM,CAAC,KAAK,EAAE,IAAkG,EAAE,EAAE;IACnH,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAChE,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACxE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,aAAa;YACtC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO;YACpC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;YACtH,UAAU,EAAE,YAAY;gBACtB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;oBACJ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC5C,sFAAsF;wBACtF,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClH,CAAC;yBAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;wBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7E,CAAC;gBACH,CAAC;gBACH,CAAC,CAAC,SAAS;YACb,aAAa,EAAE,YAAY;gBACzB,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;gBACnG,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;YACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5G,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,+BAA+B,CAAC,IAAI,CAAC,CAAC;gBACzG,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,YAAY,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,IAAI,CAC9N,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACxD,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACzH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,IAAK,CAAW,CAAC,OAAO,IAAI,CAAC,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACnC,WAAW,CAAC,cAAc,CAAC;KAC3B,MAAM,CAAC,cAAc,EAAE,6CAA6C,CAAC;KACrE,MAAM,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;KACnE,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAChD,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;KAC5C,MAAM,CAAC,kBAAkB,EAAE,sDAAsD,CAAC;KAClF,MAAM,CAAC,mBAAmB,EAAE,uEAAuE,CAAC;KACpG,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,WAAW,CAAC;KAC/D,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;KAClD,MAAM,CAAC,sBAAsB,EAAE,qCAAqC,CAAC;KACrE,MAAM,CAAC,sBAAsB,EAAE,yCAAyC,CAAC;KACzE,MAAM,CAAC,mBAAmB,EAAE,wEAAwE,EAAE,mBAAmB,CAAC;KAC1H,MAAM,CAAC,uBAAuB,EAAE,gFAAgF,CAAC;KACjH,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;KAC1D,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,IAAkB,EAAE,EAAE;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,qEAAqE;QACrE,wEAAwE;QACxE,sEAAsE;QACtE,iEAAiE;QACjE,8CAA8C;QAC9C,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAExE,sEAAsE;QACtE,IAAI,cAA0D,CAAC;QAC/D,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAmC,CAAC;YAC1G,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,CAAC;gBAC/C,IAAI,IAAI,KAAK,QAAQ;oBAAE,MAAM,CAAC,CAAC;gBAC/B,2EAA2E;gBAC3E,cAAc,GAAG,SAAS,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;YAC/C,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;YACtE,UAAU,EAAE,YAAY;gBACtB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oBACR,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,2BAA2B,EAAE,CAAC;wBAChE,uEAAuE;wBACvE,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9G,CAAC;oBACJ,CAAC;yBAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;wBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CACzE,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,YAAY;gBACrB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;oBACJ,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CACxI,CAAC;gBACJ,CAAC;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gBACf,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC;gBAChD,IAAI,MAAc,CAAC;gBACnB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACf,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChF,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrE,CAAC;qBAAM,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,EAAE,CAAC;gBAChF,CAAC;qBAAM,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;oBAChC,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC1I,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC;YACtE,CAAC;SACF,EAAE,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5F,IAAI,GAAG,KAAK,MAAM;YAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;aAChC,IAAI,GAAG,KAAK,QAAQ;YAAE,UAAU,CAAC,MAAM,CAAC,CAAC;;YACzC,UAAU,CAAC,MAAM,CAAC,CAAC;QAExB,iEAAiE;QACjE,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;QACnF,CAAC;QAED,qEAAqE;QACrE,yDAAyD;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YACvD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,QAAQ,MAAM,CAAC,MAAM,wBAAwB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACjG,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,QAAQ,MAAM,CAAC,MAAM,uBAAuB,KAAK,CAAC,KAAK,EAAE,4BAA4B,CAAC,IAAI,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,gEAAgE,CACjI,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;;gBACxC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,KAAK,CAAE,CAAW,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAK,UAAgC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAiB,CAAC;IAChF,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,uBAAuB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,KAAK,MAAM,SAAS,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAU,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,GAAG,SAAS,oBAAoB,CAAC,CAAC;QACvF,KAAK;aACF,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CACV,SAAS,KAAK,QAAQ;YACpB,CAAC,CAAC,uEAAuE;YACzE,CAAC,CAAC,gCAAgC,SAAS,wBAAwB,CACtE;aACA,cAAc,CAAC,iBAAiB,EAAE,gFAAgF,CAAC;aACnH,MAAM,CAAC,uBAAuB,EAAE,yFAAyF,CAAC;aAC1H,MAAM,CAAC,sBAAsB,EAAE,oGAAoG,CAAC;aACpI,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;aAChE,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;aAChE,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;aACjE,MAAM,CAAC,oBAAoB,EAAE,8DAA8D,CAAC;aAC5F,MAAM,CAAC,8BAA8B,EAAE,yDAAyD,EAAE,gBAAgB,CAAC;aACnH,MAAM,CAAC,WAAW,EAAE,+DAA+D,CAAC;aACpF,MAAM,CAAC,KAAK,EAAE,IAUd,EAAE,EAAE;YACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;oBAChC,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChF,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzE,KAAK,EAAE;wBACL,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpE;oBACD,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9F,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;iBAC7B,CAAC,CAAC;gBAEH,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,iBAAiB;oBACjD,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE;oBAC3E,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,eAAe,eAAe,MAAM,CAAC,YAAY,UAAU,CAAC,IAAI,CAClM,CAAC;gBACF,IAAI,MAAM,CAAC,SAAS;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAEpF,6DAA6D;gBAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,SAAS,QAAQ,CAAC,CAAC,IAAK,CAAW,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC/G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAE/B,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IAC3C,OAAO,CAAC,KAAK,CAAE,CAAW,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/forges/post-cmd.js
CHANGED
|
@@ -5,16 +5,16 @@ export async function runForgePost(options) {
|
|
|
5
5
|
? await (options.readStdin ?? defaultReadStdin)()
|
|
6
6
|
: readFileSync(options.reportPath, "utf8");
|
|
7
7
|
const report = JSON.parse(reportText);
|
|
8
|
-
if (report.schemaVersion
|
|
9
|
-
throw new Error(`Unsupported report schemaVersion ${String(report.schemaVersion)}; expected 1 or
|
|
8
|
+
if (!isSupportedSchemaVersion(report.schemaVersion)) {
|
|
9
|
+
throw new Error(`Unsupported report schemaVersion ${String(report.schemaVersion)}; expected 1, 2, or 3.`);
|
|
10
10
|
}
|
|
11
11
|
let priorReport;
|
|
12
12
|
if (options.priorReportPath) {
|
|
13
13
|
try {
|
|
14
14
|
const priorText = readFileSync(options.priorReportPath, "utf8");
|
|
15
15
|
priorReport = JSON.parse(priorText);
|
|
16
|
-
if (priorReport.schemaVersion
|
|
17
|
-
throw new Error(`Unsupported prior report schemaVersion ${String(priorReport.schemaVersion)}; expected 1 or
|
|
16
|
+
if (!isSupportedSchemaVersion(priorReport.schemaVersion)) {
|
|
17
|
+
throw new Error(`Unsupported prior report schemaVersion ${String(priorReport.schemaVersion)}; expected 1, 2, or 3.`);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
catch (e) {
|
|
@@ -40,6 +40,9 @@ export async function runForgePost(options) {
|
|
|
40
40
|
}
|
|
41
41
|
return result;
|
|
42
42
|
}
|
|
43
|
+
function isSupportedSchemaVersion(v) {
|
|
44
|
+
return v === 1 || v === 2 || v === 3;
|
|
45
|
+
}
|
|
43
46
|
function defaultReadStdin() {
|
|
44
47
|
return new Promise((resolve, reject) => {
|
|
45
48
|
let data = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-cmd.js","sourceRoot":"","sources":["../../src/forges/post-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAsBzC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,GAAG;QAC3C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,EAAE;QACjD,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAc,CAAC;IACnD,IAAI,
|
|
1
|
+
{"version":3,"file":"post-cmd.js","sourceRoot":"","sources":["../../src/forges/post-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export { startSidecar } from "./mcp/server.js";
|
|
|
6
6
|
export type { SidecarHandle } from "./mcp/server.js";
|
|
7
7
|
export { FindingsAggregator } from "./mcp/aggregator.js";
|
|
8
8
|
export { loadConfig, DEFAULT_CONFIG } from "./config.js";
|
|
9
|
-
export type { Finding, Severity, RuleFile, ReviewTarget, ResolvedTarget, RuleResult, RunReport, RevuConfig, } from "./types.js";
|
|
9
|
+
export type { Finding, Severity, RuleFile, ReviewTarget, ResolvedTarget, RuleResult, RunReport, RevuConfig, Resolution, ReviewSummary, Check, } from "./types.js";
|
package/dist/mcp/aggregator.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Finding, type Resolution, type Severity } from "../types.js";
|
|
1
|
+
import { type Check, type Finding, type Resolution, type ReviewSummary, type Severity } from "../types.js";
|
|
2
2
|
export declare class FindingsAggregator {
|
|
3
3
|
private byRule;
|
|
4
4
|
private dedupKeys;
|
|
@@ -6,14 +6,36 @@ export declare class FindingsAggregator {
|
|
|
6
6
|
private resolutionsByRule;
|
|
7
7
|
private resolutionDedupKeys;
|
|
8
8
|
private resolutionListeners;
|
|
9
|
+
private summaryByRule;
|
|
10
|
+
private summaryListeners;
|
|
11
|
+
private checksByRule;
|
|
12
|
+
private checkDedupKeys;
|
|
13
|
+
private checkListeners;
|
|
9
14
|
onAdd(listener: (f: Finding) => void): () => void;
|
|
10
15
|
onResolution(listener: (r: Resolution) => void): () => void;
|
|
16
|
+
onSummary(listener: (s: ReviewSummary) => void): () => void;
|
|
17
|
+
onCheck(listener: (c: Check) => void): () => void;
|
|
11
18
|
add(finding: Finding): boolean;
|
|
12
19
|
/** Record that a prior finding was resolved by the agent. */
|
|
13
20
|
markResolved(ruleId: string, fingerprint: string, reason: "fixed" | "stale", resolvedAtSha?: string): boolean;
|
|
14
21
|
countFor(ruleId: string): number;
|
|
15
22
|
resolutionsFor(ruleId: string): Resolution[];
|
|
23
|
+
/** Record a review summary. Only the first call per ruleId is kept — subsequent
|
|
24
|
+
* calls return false. The runner uses `summaryFor()` to detect rules that
|
|
25
|
+
* never signed off (likely incomplete reviews). */
|
|
26
|
+
addSummary(summary: ReviewSummary): boolean;
|
|
27
|
+
summaryFor(ruleId: string): ReviewSummary | undefined;
|
|
28
|
+
/** 1 if the rule emitted a summary, 0 otherwise. (Duplicate summaries are
|
|
29
|
+
* rejected, so this never exceeds 1.) */
|
|
30
|
+
summaryCountFor(ruleId: string): number;
|
|
16
31
|
all(): Finding[];
|
|
17
32
|
allResolutions(): Resolution[];
|
|
33
|
+
allSummaries(): ReviewSummary[];
|
|
34
|
+
/** Record an incremental compliance check. Dedups exact duplicates within a
|
|
35
|
+
* rule so a chatty agent doesn't fill the report with the same line twice. */
|
|
36
|
+
addCheck(check: Check): boolean;
|
|
37
|
+
checksFor(ruleId: string): Check[];
|
|
38
|
+
checkCountFor(ruleId: string): number;
|
|
39
|
+
allChecks(): Check[];
|
|
18
40
|
maxSeverity(): Severity | undefined;
|
|
19
41
|
}
|
package/dist/mcp/aggregator.js
CHANGED
|
@@ -6,6 +6,11 @@ export class FindingsAggregator {
|
|
|
6
6
|
resolutionsByRule = new Map();
|
|
7
7
|
resolutionDedupKeys = new Set();
|
|
8
8
|
resolutionListeners = new Set();
|
|
9
|
+
summaryByRule = new Map();
|
|
10
|
+
summaryListeners = new Set();
|
|
11
|
+
checksByRule = new Map();
|
|
12
|
+
checkDedupKeys = new Set();
|
|
13
|
+
checkListeners = new Set();
|
|
9
14
|
onAdd(listener) {
|
|
10
15
|
this.listeners.add(listener);
|
|
11
16
|
return () => this.listeners.delete(listener);
|
|
@@ -14,6 +19,14 @@ export class FindingsAggregator {
|
|
|
14
19
|
this.resolutionListeners.add(listener);
|
|
15
20
|
return () => this.resolutionListeners.delete(listener);
|
|
16
21
|
}
|
|
22
|
+
onSummary(listener) {
|
|
23
|
+
this.summaryListeners.add(listener);
|
|
24
|
+
return () => this.summaryListeners.delete(listener);
|
|
25
|
+
}
|
|
26
|
+
onCheck(listener) {
|
|
27
|
+
this.checkListeners.add(listener);
|
|
28
|
+
return () => this.checkListeners.delete(listener);
|
|
29
|
+
}
|
|
17
30
|
add(finding) {
|
|
18
31
|
const key = `${finding.ruleId}\0${finding.severity}\0${finding.path}\0${finding.line ?? ""}\0${finding.lineEnd ?? ""}\0${finding.message}`;
|
|
19
32
|
if (this.dedupKeys.has(key))
|
|
@@ -58,6 +71,29 @@ export class FindingsAggregator {
|
|
|
58
71
|
resolutionsFor(ruleId) {
|
|
59
72
|
return this.resolutionsByRule.get(ruleId) ?? [];
|
|
60
73
|
}
|
|
74
|
+
/** Record a review summary. Only the first call per ruleId is kept — subsequent
|
|
75
|
+
* calls return false. The runner uses `summaryFor()` to detect rules that
|
|
76
|
+
* never signed off (likely incomplete reviews). */
|
|
77
|
+
addSummary(summary) {
|
|
78
|
+
if (this.summaryByRule.has(summary.ruleId))
|
|
79
|
+
return false;
|
|
80
|
+
this.summaryByRule.set(summary.ruleId, summary);
|
|
81
|
+
for (const l of this.summaryListeners) {
|
|
82
|
+
try {
|
|
83
|
+
l(summary);
|
|
84
|
+
}
|
|
85
|
+
catch { /* listener errors must not affect aggregation */ }
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
summaryFor(ruleId) {
|
|
90
|
+
return this.summaryByRule.get(ruleId);
|
|
91
|
+
}
|
|
92
|
+
/** 1 if the rule emitted a summary, 0 otherwise. (Duplicate summaries are
|
|
93
|
+
* rejected, so this never exceeds 1.) */
|
|
94
|
+
summaryCountFor(ruleId) {
|
|
95
|
+
return this.summaryByRule.has(ruleId) ? 1 : 0;
|
|
96
|
+
}
|
|
61
97
|
all() {
|
|
62
98
|
const out = [];
|
|
63
99
|
for (const list of this.byRule.values())
|
|
@@ -70,6 +106,41 @@ export class FindingsAggregator {
|
|
|
70
106
|
out.push(...list);
|
|
71
107
|
return out;
|
|
72
108
|
}
|
|
109
|
+
allSummaries() {
|
|
110
|
+
return Array.from(this.summaryByRule.values());
|
|
111
|
+
}
|
|
112
|
+
/** Record an incremental compliance check. Dedups exact duplicates within a
|
|
113
|
+
* rule so a chatty agent doesn't fill the report with the same line twice. */
|
|
114
|
+
addCheck(check) {
|
|
115
|
+
const key = `${check.ruleId}\0${check.path}\0${check.line ?? ""}\0${check.lineEnd ?? ""}\0${check.message}`;
|
|
116
|
+
if (this.checkDedupKeys.has(key))
|
|
117
|
+
return false;
|
|
118
|
+
this.checkDedupKeys.add(key);
|
|
119
|
+
const list = this.checksByRule.get(check.ruleId);
|
|
120
|
+
if (list)
|
|
121
|
+
list.push(check);
|
|
122
|
+
else
|
|
123
|
+
this.checksByRule.set(check.ruleId, [check]);
|
|
124
|
+
for (const l of this.checkListeners) {
|
|
125
|
+
try {
|
|
126
|
+
l(check);
|
|
127
|
+
}
|
|
128
|
+
catch { /* listener errors must not affect aggregation */ }
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
checksFor(ruleId) {
|
|
133
|
+
return this.checksByRule.get(ruleId) ?? [];
|
|
134
|
+
}
|
|
135
|
+
checkCountFor(ruleId) {
|
|
136
|
+
return this.checksByRule.get(ruleId)?.length ?? 0;
|
|
137
|
+
}
|
|
138
|
+
allChecks() {
|
|
139
|
+
const out = [];
|
|
140
|
+
for (const list of this.checksByRule.values())
|
|
141
|
+
out.push(...list);
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
73
144
|
maxSeverity() {
|
|
74
145
|
let max = -1;
|
|
75
146
|
for (const f of this.all()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../src/mcp/aggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../src/mcp/aggregator.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -7,7 +7,7 @@ import { mkdir, writeFile } from "node:fs/promises";
|
|
|
7
7
|
import { ensureFingerprint } from "../findings.js";
|
|
8
8
|
import { FindingsAggregator } from "./aggregator.js";
|
|
9
9
|
import { isAllowedRuleFileWrite, toRepoRelative } from "../scaffold-paths.js";
|
|
10
|
-
import { ReportFindingShape, REPORT_FINDING_DESCRIPTION, MarkResolvedShape, MARK_RESOLVED_DESCRIPTION, WriteRuleFileShape, WRITE_RULE_FILE_DESCRIPTION, } from "./tools.js";
|
|
10
|
+
import { ReportFindingShape, REPORT_FINDING_DESCRIPTION, MarkResolvedShape, MARK_RESOLVED_DESCRIPTION, ReportReviewSummaryShape, REPORT_REVIEW_SUMMARY_DESCRIPTION, ReportCheckShape, REPORT_CHECK_DESCRIPTION, WriteRuleFileShape, WRITE_RULE_FILE_DESCRIPTION, } from "./tools.js";
|
|
11
11
|
export async function startSidecar(opts) {
|
|
12
12
|
const aggregator = new FindingsAggregator();
|
|
13
13
|
const authToken = randomBytes(24).toString("base64url");
|
|
@@ -119,6 +119,64 @@ function buildMcpServer(ruleId, ctx) {
|
|
|
119
119
|
],
|
|
120
120
|
};
|
|
121
121
|
});
|
|
122
|
+
server.registerTool("report_check", {
|
|
123
|
+
description: REPORT_CHECK_DESCRIPTION,
|
|
124
|
+
inputSchema: ReportCheckShape,
|
|
125
|
+
}, async (args) => {
|
|
126
|
+
if (args.lineEnd !== undefined && args.line === undefined) {
|
|
127
|
+
return errorResult("`line` is required when `lineEnd` is set.");
|
|
128
|
+
}
|
|
129
|
+
if (args.lineEnd !== undefined && args.line !== undefined && args.lineEnd < args.line) {
|
|
130
|
+
return errorResult("`lineEnd` must be >= `line`.");
|
|
131
|
+
}
|
|
132
|
+
const check = {
|
|
133
|
+
ruleId,
|
|
134
|
+
path: normalizePath(args.path, ctx.repoRoot),
|
|
135
|
+
message: args.message,
|
|
136
|
+
...(args.line !== undefined ? { line: args.line } : {}),
|
|
137
|
+
...(args.lineEnd !== undefined ? { lineEnd: args.lineEnd } : {}),
|
|
138
|
+
...(args.category !== undefined ? { category: args.category } : {}),
|
|
139
|
+
};
|
|
140
|
+
const accepted = ctx.aggregator.addCheck(check);
|
|
141
|
+
return {
|
|
142
|
+
content: [
|
|
143
|
+
{
|
|
144
|
+
type: "text",
|
|
145
|
+
text: accepted
|
|
146
|
+
? `Recorded check for ${check.path}.`
|
|
147
|
+
: `Duplicate check for ${check.path}; ignored.`,
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
};
|
|
151
|
+
});
|
|
152
|
+
server.registerTool("report_review_summary", {
|
|
153
|
+
description: REPORT_REVIEW_SUMMARY_DESCRIPTION,
|
|
154
|
+
inputSchema: ReportReviewSummaryShape,
|
|
155
|
+
}, async (args) => {
|
|
156
|
+
const summary = {
|
|
157
|
+
ruleId,
|
|
158
|
+
outcome: args.outcome,
|
|
159
|
+
checked: args.checked,
|
|
160
|
+
rationale: args.rationale,
|
|
161
|
+
};
|
|
162
|
+
const accepted = ctx.aggregator.addSummary(summary);
|
|
163
|
+
const findingCount = ctx.aggregator.countFor(ruleId);
|
|
164
|
+
const mismatch = (args.outcome === "pass" && findingCount > 0) ||
|
|
165
|
+
(args.outcome === "concerns" && findingCount === 0);
|
|
166
|
+
const mismatchNote = mismatch
|
|
167
|
+
? ` (note: outcome="${args.outcome}" but ${findingCount} finding(s) reported — check your interpretation)`
|
|
168
|
+
: "";
|
|
169
|
+
return {
|
|
170
|
+
content: [
|
|
171
|
+
{
|
|
172
|
+
type: "text",
|
|
173
|
+
text: accepted
|
|
174
|
+
? `Recorded review summary (${args.outcome}).${mismatchNote}`
|
|
175
|
+
: `Duplicate review summary for this rule; ignored. report_review_summary should be called exactly once per run.`,
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
};
|
|
179
|
+
});
|
|
122
180
|
if (ctx.scaffold) {
|
|
123
181
|
const scaffold = ctx.scaffold;
|
|
124
182
|
server.registerTool("write_rule_file", {
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools.d.ts
CHANGED
|
@@ -50,6 +50,54 @@ export declare const MarkResolvedObject: z.ZodObject<{
|
|
|
50
50
|
}>;
|
|
51
51
|
export type MarkResolvedInput = z.infer<typeof MarkResolvedObject>;
|
|
52
52
|
export declare const MARK_RESOLVED_DESCRIPTION = "Mark a previously-reported finding as resolved.\nUse this when reviewing prior findings provided in your system prompt: if the new commits in this PR have addressed an issue you flagged on a previous run, call this tool with the prior finding's fingerprint.\nDo NOT use this tool for findings that are still open at the same location \u2014 just stay silent and the runner will keep them open.\nDo NOT use this tool for findings that have moved to a new location \u2014 instead emit a fresh `report_finding` with the prior fingerprint passed via `priorFp`.";
|
|
53
|
+
export declare const ReportCheckShape: {
|
|
54
|
+
readonly path: z.ZodString;
|
|
55
|
+
readonly line: z.ZodOptional<z.ZodNumber>;
|
|
56
|
+
readonly lineEnd: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
readonly message: z.ZodString;
|
|
58
|
+
readonly category: z.ZodOptional<z.ZodString>;
|
|
59
|
+
};
|
|
60
|
+
export declare const ReportCheckObject: z.ZodObject<{
|
|
61
|
+
readonly path: z.ZodString;
|
|
62
|
+
readonly line: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
readonly lineEnd: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
readonly message: z.ZodString;
|
|
65
|
+
readonly category: z.ZodOptional<z.ZodString>;
|
|
66
|
+
}, "strip", z.ZodTypeAny, {
|
|
67
|
+
path: string;
|
|
68
|
+
message: string;
|
|
69
|
+
line?: number | undefined;
|
|
70
|
+
lineEnd?: number | undefined;
|
|
71
|
+
category?: string | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
path: string;
|
|
74
|
+
message: string;
|
|
75
|
+
line?: number | undefined;
|
|
76
|
+
lineEnd?: number | undefined;
|
|
77
|
+
category?: string | undefined;
|
|
78
|
+
}>;
|
|
79
|
+
export type ReportCheckInput = z.infer<typeof ReportCheckObject>;
|
|
80
|
+
export declare const REPORT_CHECK_DESCRIPTION = "Record a compliance check \u2014 a positive verification that some specific part of the change conforms to the rule. Call this as you go, NOT just at the end.\nChecks are NOT findings: they need no resolution, do not contribute to severity, and do not affect exit codes. Their purpose is to give the user live, granular evidence that the agent actually inspected the code (rather than guessing or skipping). Each call is a single \"yep, I verified X and it's good because Y\" note.\nUse freely as you work through the diff \u2014 one call per concrete thing you've verified. If you read a file and concluded that nothing in it violates the rule, that's worth a check. If you traced a contract through three files and they line up, that's a check (or several).\nAim for specific, evidence-backed messages, not vague ones. Bad: \"looks good.\" Good: \"no new global state introduced in src/runner.ts:95-160 \u2014 the new filePatterns branch is local to the rule loop.\"\n`report_review_summary` is still required at the end as the one-shot sign-off; `report_check` is the running commentary that gets you there.";
|
|
81
|
+
export declare const ReportReviewSummaryShape: {
|
|
82
|
+
readonly outcome: z.ZodEnum<["pass", "concerns"]>;
|
|
83
|
+
readonly checked: z.ZodString;
|
|
84
|
+
readonly rationale: z.ZodString;
|
|
85
|
+
};
|
|
86
|
+
export declare const ReportReviewSummaryObject: z.ZodObject<{
|
|
87
|
+
readonly outcome: z.ZodEnum<["pass", "concerns"]>;
|
|
88
|
+
readonly checked: z.ZodString;
|
|
89
|
+
readonly rationale: z.ZodString;
|
|
90
|
+
}, "strip", z.ZodTypeAny, {
|
|
91
|
+
outcome: "pass" | "concerns";
|
|
92
|
+
checked: string;
|
|
93
|
+
rationale: string;
|
|
94
|
+
}, {
|
|
95
|
+
outcome: "pass" | "concerns";
|
|
96
|
+
checked: string;
|
|
97
|
+
rationale: string;
|
|
98
|
+
}>;
|
|
99
|
+
export type ReportReviewSummaryInput = z.infer<typeof ReportReviewSummaryObject>;
|
|
100
|
+
export declare const REPORT_REVIEW_SUMMARY_DESCRIPTION = "Report a one-line review summary for this rule. REQUIRED: every review run MUST call this tool exactly once before stopping.\nThe runner uses this call to confirm the agent actually performed the review (vs. silently exiting, writing findings as prose, or never reaching the MCP). A run that emits no summary is flagged as a possibly-incomplete review.\nCall this AFTER you have reported any findings via `report_finding` (and any prior-finding resolutions via `mark_finding_resolved`). Pass `outcome` = \"pass\" when you reported zero findings, or \"concerns\" when you reported one or more.\nIf the rule is out of scope for the diff (e.g. the rule covers Python tests but no .py files changed), still call this with `outcome` = \"pass\" and a `checked` / `rationale` describing that you inspected the diff and concluded the rule does not apply.";
|
|
53
101
|
export declare const WriteRuleFileShape: {
|
|
54
102
|
readonly path: z.ZodString;
|
|
55
103
|
readonly content: z.ZodString;
|
package/dist/mcp/tools.js
CHANGED
|
@@ -41,6 +41,53 @@ export const MARK_RESOLVED_DESCRIPTION = `Mark a previously-reported finding as
|
|
|
41
41
|
Use this when reviewing prior findings provided in your system prompt: if the new commits in this PR have addressed an issue you flagged on a previous run, call this tool with the prior finding's fingerprint.
|
|
42
42
|
Do NOT use this tool for findings that are still open at the same location — just stay silent and the runner will keep them open.
|
|
43
43
|
Do NOT use this tool for findings that have moved to a new location — instead emit a fresh \`report_finding\` with the prior fingerprint passed via \`priorFp\`.`;
|
|
44
|
+
export const ReportCheckShape = {
|
|
45
|
+
path: z
|
|
46
|
+
.string()
|
|
47
|
+
.min(1)
|
|
48
|
+
.describe("Repo-relative file path you just verified, forward-slash separated."),
|
|
49
|
+
line: z
|
|
50
|
+
.number()
|
|
51
|
+
.int()
|
|
52
|
+
.positive()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe("Optional 1-indexed line where the verified area starts."),
|
|
55
|
+
lineEnd: z
|
|
56
|
+
.number()
|
|
57
|
+
.int()
|
|
58
|
+
.positive()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Optional 1-indexed line where the verified area ends. If set, line must also be set."),
|
|
61
|
+
message: z
|
|
62
|
+
.string()
|
|
63
|
+
.min(1)
|
|
64
|
+
.describe("What you verified and why it complies with the rule. Be specific — name the rule clause / contract / property you checked against. Example: 'public exports are unchanged: signatures of `Foo`, `Bar` in src/api.ts:45-92 match prior shape.'"),
|
|
65
|
+
category: z.string().optional().describe("Optional free-form category tag (same field as report_finding)."),
|
|
66
|
+
};
|
|
67
|
+
export const ReportCheckObject = z.object(ReportCheckShape);
|
|
68
|
+
export const REPORT_CHECK_DESCRIPTION = `Record a compliance check — a positive verification that some specific part of the change conforms to the rule. Call this as you go, NOT just at the end.
|
|
69
|
+
Checks are NOT findings: they need no resolution, do not contribute to severity, and do not affect exit codes. Their purpose is to give the user live, granular evidence that the agent actually inspected the code (rather than guessing or skipping). Each call is a single "yep, I verified X and it's good because Y" note.
|
|
70
|
+
Use freely as you work through the diff — one call per concrete thing you've verified. If you read a file and concluded that nothing in it violates the rule, that's worth a check. If you traced a contract through three files and they line up, that's a check (or several).
|
|
71
|
+
Aim for specific, evidence-backed messages, not vague ones. Bad: "looks good." Good: "no new global state introduced in src/runner.ts:95-160 — the new filePatterns branch is local to the rule loop."
|
|
72
|
+
\`report_review_summary\` is still required at the end as the one-shot sign-off; \`report_check\` is the running commentary that gets you there.`;
|
|
73
|
+
export const ReportReviewSummaryShape = {
|
|
74
|
+
outcome: z
|
|
75
|
+
.enum(["pass", "concerns"])
|
|
76
|
+
.describe("`pass` if you reported zero findings via report_finding for this rule; `concerns` if you reported one or more. This is your explicit declaration — the runner cross-checks it against the recorded finding count."),
|
|
77
|
+
checked: z
|
|
78
|
+
.string()
|
|
79
|
+
.min(1)
|
|
80
|
+
.describe("A concrete description of what you actually examined to reach your conclusion. List specific files, functions, or behaviors — not generic phrases like 'the diff' or 'the changes'. Example: 'src/runner.ts lines 95-160: the new filePatterns guard branch and its three failure paths; plus the corresponding test cases in tests/runner.test.ts.'"),
|
|
81
|
+
rationale: z
|
|
82
|
+
.string()
|
|
83
|
+
.min(1)
|
|
84
|
+
.describe("A brief explanation tying what you checked to why the outcome holds. For `pass`, state which aspect of the rule the code satisfies and on what evidence. For `concerns`, summarise any context not captured in individual findings. 1-3 sentences."),
|
|
85
|
+
};
|
|
86
|
+
export const ReportReviewSummaryObject = z.object(ReportReviewSummaryShape);
|
|
87
|
+
export const REPORT_REVIEW_SUMMARY_DESCRIPTION = `Report a one-line review summary for this rule. REQUIRED: every review run MUST call this tool exactly once before stopping.
|
|
88
|
+
The runner uses this call to confirm the agent actually performed the review (vs. silently exiting, writing findings as prose, or never reaching the MCP). A run that emits no summary is flagged as a possibly-incomplete review.
|
|
89
|
+
Call this AFTER you have reported any findings via \`report_finding\` (and any prior-finding resolutions via \`mark_finding_resolved\`). Pass \`outcome\` = "pass" when you reported zero findings, or "concerns" when you reported one or more.
|
|
90
|
+
If the rule is out of scope for the diff (e.g. the rule covers Python tests but no .py files changed), still call this with \`outcome\` = "pass" and a \`checked\` / \`rationale\` describing that you inspected the diff and concluded the rule does not apply.`;
|
|
44
91
|
export const WriteRuleFileShape = {
|
|
45
92
|
path: z
|
|
46
93
|
.string()
|