@phamvuhoang/otto-core 0.19.0 → 0.21.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.
Files changed (70) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/journal-config.d.ts +9 -0
  6. package/dist/journal-config.d.ts.map +1 -0
  7. package/dist/journal-config.js +31 -0
  8. package/dist/journal-config.js.map +1 -0
  9. package/dist/journal-gate.d.ts +46 -0
  10. package/dist/journal-gate.d.ts.map +1 -0
  11. package/dist/journal-gate.js +135 -0
  12. package/dist/journal-gate.js.map +1 -0
  13. package/dist/journal-ledger.d.ts +13 -0
  14. package/dist/journal-ledger.d.ts.map +1 -0
  15. package/dist/journal-ledger.js +33 -0
  16. package/dist/journal-ledger.js.map +1 -0
  17. package/dist/journal-source.d.ts +19 -0
  18. package/dist/journal-source.d.ts.map +1 -0
  19. package/dist/journal-source.js +38 -0
  20. package/dist/journal-source.js.map +1 -0
  21. package/dist/journal.d.ts +46 -0
  22. package/dist/journal.d.ts.map +1 -0
  23. package/dist/journal.js +158 -0
  24. package/dist/journal.js.map +1 -0
  25. package/dist/loop.d.ts.map +1 -1
  26. package/dist/loop.js +31 -3
  27. package/dist/loop.js.map +1 -1
  28. package/dist/model-tier.d.ts +5 -0
  29. package/dist/model-tier.d.ts.map +1 -1
  30. package/dist/model-tier.js +13 -0
  31. package/dist/model-tier.js.map +1 -1
  32. package/dist/panel.d.ts +37 -3
  33. package/dist/panel.d.ts.map +1 -1
  34. package/dist/panel.js +126 -39
  35. package/dist/panel.js.map +1 -1
  36. package/dist/render.d.ts.map +1 -1
  37. package/dist/render.js +3 -1
  38. package/dist/render.js.map +1 -1
  39. package/dist/review-severity.d.ts +41 -0
  40. package/dist/review-severity.d.ts.map +1 -0
  41. package/dist/review-severity.js +101 -0
  42. package/dist/review-severity.js.map +1 -0
  43. package/dist/risk.d.ts +3 -2
  44. package/dist/risk.d.ts.map +1 -1
  45. package/dist/risk.js +8 -7
  46. package/dist/risk.js.map +1 -1
  47. package/dist/run-bin.js +1 -1
  48. package/dist/run-bin.js.map +1 -1
  49. package/dist/run-report.d.ts +8 -0
  50. package/dist/run-report.d.ts.map +1 -1
  51. package/dist/run-report.js.map +1 -1
  52. package/dist/stages.d.ts +10 -0
  53. package/dist/stages.d.ts.map +1 -1
  54. package/dist/stages.js +13 -0
  55. package/dist/stages.js.map +1 -1
  56. package/dist/threads-api.d.ts +46 -0
  57. package/dist/threads-api.d.ts.map +1 -0
  58. package/dist/threads-api.js +101 -0
  59. package/dist/threads-api.js.map +1 -0
  60. package/package.json +1 -1
  61. package/templates/journal-screen.md +19 -0
  62. package/templates/journal-write.md +16 -0
  63. package/templates/lens-guidance/correctness.md +1 -0
  64. package/templates/lens-guidance/security.md +1 -0
  65. package/templates/lens-guidance/structural.md +25 -0
  66. package/templates/lens-guidance/task-fit.md +1 -0
  67. package/templates/lens-guidance/tests.md +1 -0
  68. package/templates/review-lens.md +16 -1
  69. package/templates/review-synth.md +18 -2
  70. package/templates/review-verify.md +11 -6
package/dist/panel.js CHANGED
@@ -1,9 +1,64 @@
1
1
  import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
2
  import { join, posix } from "node:path";
3
+ import { DEFAULT_AGENT } from "./agent-runtime.js";
3
4
  import { git } from "./git.js";
4
5
  import { executeStage } from "./stage-exec.js";
6
+ import { tierForLens } from "./model-tier.js";
5
7
  import { sleep } from "./pacing.js";
8
+ import { classifyRisk, reviewDepthForLevel, selectLenses } from "./risk.js";
9
+ import { dedupeFindings, parseFindings, severityCounts, } from "./review-severity.js";
6
10
  import { bold, dim, green, red, SYM } from "./stream-render.js";
11
+ import { emptyTokenUsage } from "./tokens.js";
12
+ /** Which lenses actually run this iteration. Router off → the full configured
13
+ * pool (today's behavior). Router on → risk-routed subset (Task 5). */
14
+ export function routedLenses(changedPaths, available, adaptiveRouter) {
15
+ if (!adaptiveRouter)
16
+ return [...available];
17
+ const depth = reviewDepthForLevel(classifyRisk(changedPaths).level);
18
+ const routed = selectLenses(depth, available);
19
+ if (routed.length)
20
+ return routed;
21
+ // depth === "single" → no lens subset, but the panel always runs ≥1 lens.
22
+ // Fall back to the medium subset (correctness/tests/task-fit — drops the
23
+ // strong-tier structural/security lenses, matching the low-risk depth) before
24
+ // the full pool, so a low-risk change still gets a proportionate review.
25
+ const medium = selectLenses("lenses", available);
26
+ return medium.length ? medium : [...available];
27
+ }
28
+ /** Parse every lens's findings file, tag with its lens, and dedupe across lenses
29
+ * so the verifier sees each issue once. `total` is the pre-dedupe count. */
30
+ export function mergeLensFindings(files) {
31
+ const all = [];
32
+ for (const { lens, text } of files)
33
+ all.push(...parseFindings(text, lens).findings);
34
+ return { findings: dedupeFindings(all), total: all.length };
35
+ }
36
+ /** Serialize a deduped finding back to a wire-format line:
37
+ * `SEVERITY | file:line | claim | why | fix?` (the trailing `| fix` is omitted
38
+ * when there is no suggested fix). The verifier globs `findings-*.md`, so the
39
+ * single merged file matches and is read exactly once. */
40
+ function findingToWire(f) {
41
+ const loc = f.line ? `${f.file}:${f.line}` : f.file;
42
+ const head = `${f.severity} | ${loc} | ${f.claim} | ${f.why}`;
43
+ return f.suggestedFix ? `${head} | ${f.suggestedFix}` : head;
44
+ }
45
+ /** Bounded-concurrency map over `items` (inline to avoid coupling to fanout.ts).
46
+ * Preserves input order in the result array regardless of completion order. */
47
+ async function boundedMap(items, limit, fn) {
48
+ const out = new Array(items.length);
49
+ let next = 0;
50
+ const width = Math.max(1, Math.min(limit, items.length));
51
+ const worker = async () => {
52
+ while (next < items.length) {
53
+ const i = next++;
54
+ out[i] = await fn(items[i], i);
55
+ }
56
+ };
57
+ await Promise.all(Array.from({ length: width }, worker));
58
+ return out;
59
+ }
60
+ /** Max lens agents run concurrently (independent read-only reviews of one HEAD). */
61
+ const LENS_CONCURRENCY = 4;
7
62
  const LENS_STAGE = {
8
63
  name: "review-lens",
9
64
  template: "review-lens.md",
@@ -28,19 +83,6 @@ function outcomeLine(note, ok = true) {
28
83
  const mark = ok ? green(SYM.check) : red(SYM.cross);
29
84
  process.stderr.write(`${dim(SYM.cont)} ${mark} ${dim(note)}\n`);
30
85
  }
31
- /** Human count of a lens's findings from its free-form output ("skip" = no commit to review). */
32
- function findingsNote(result) {
33
- const t = result.trim();
34
- if (/<lens>\s*SKIP\s*<\/lens>/i.test(t))
35
- return "skipped (no commit)";
36
- const n = t
37
- .split("\n")
38
- .map((l) => l.trim())
39
- .filter((l) => /^[-*]\s+\S/.test(l)).length;
40
- if (n === 0)
41
- return "no findings";
42
- return `${n} finding${n === 1 ? "" : "s"}`;
43
- }
44
86
  function readVerdicts(panelHostDir) {
45
87
  try {
46
88
  const txt = readFileSync(join(panelHostDir, "verdicts.md"), "utf8");
@@ -75,7 +117,9 @@ function lensMutatedRepo(workspaceDir, baseHead) {
75
117
  }
76
118
  /** Harness-orchestrated reviewer panel: read-only lens reviews → one synth fix(review) commit. */
77
119
  export async function runPanel(opts) {
78
- const { lenses, workspaceDir, packageDir, iteration, maxRetries, cooldownMs, tokenMode = "off", signal, agentId, resumeNote = "", onStage, recordStage, } = opts;
120
+ const { workspaceDir, packageDir, iteration, maxRetries, cooldownMs, tokenMode = "off", signal, agentId, resumeNote = "", onStage, recordStage, } = opts;
121
+ // Router off → the full configured pool (today's behavior); on → risk-routed.
122
+ const lenses = routedLenses(opts.changedPaths ?? [], opts.lenses, opts.adaptiveRouter ?? false);
79
123
  const isoNow = () => new Date().toISOString();
80
124
  const panelRel = `panel-${process.pid}-${iteration}-${Date.now()}`;
81
125
  const panelHostDir = join(workspaceDir, ".otto-tmp", panelRel);
@@ -104,33 +148,76 @@ export async function runPanel(opts) {
104
148
  return false;
105
149
  };
106
150
  try {
107
- // 1. Lenses — each finds defects through one lens, read-only.
108
- for (let i = 0; i < lenses.length; i++) {
109
- const lens = lenses[i];
110
- phaseLine(`${lens} lens (${i + 1}/${lenses.length})`);
111
- const lensStartedAt = isoNow();
112
- const sr = await executeStage({
113
- stage: LENS_STAGE,
114
- vars: { LENS: lens, RESUME: resumeNote },
115
- workspaceDir,
116
- packageDir,
117
- iteration,
118
- maxRetries,
119
- tokenMode,
120
- signal,
121
- agentId,
122
- logLabel: `lens-${lens}`,
123
- });
124
- restoreIfMutated(`lens ${lens}`);
125
- writeFileSync(join(panelHostDir, `findings-${lens}.md`), sr.result, "utf8");
126
- outcomeLine(findingsNote(sr.result));
151
+ // 1. Lenses — each finds defects through one lens, read-only. Run them
152
+ // concurrently (bounded) since they are independent reads of the same
153
+ // HEAD. The per-lens reset guard is UNSAFE while siblings run, so we do
154
+ // NOT restore inside the parallel region — the worktree started
155
+ // tracked-clean (when enforceReadOnly), so a single end-of-batch reset
156
+ // below undoes any read-only violation by any lens before verify runs.
157
+ phaseLine(`${lenses.length} lenses (parallel): ${lenses.join(", ")}`);
158
+ const lensStartedAt = isoNow();
159
+ // boundedMap preserves input (lens-index) order in `results`.
160
+ const results = await boundedMap(lenses, LENS_CONCURRENCY, (lens) => executeStage({
161
+ stage: { ...LENS_STAGE, tier: tierForLens(lens) },
162
+ vars: { LENS: lens, RESUME: resumeNote },
163
+ workspaceDir,
164
+ packageDir,
165
+ iteration,
166
+ maxRetries,
167
+ tokenMode,
168
+ signal,
169
+ agentId,
170
+ logLabel: `lens-${lens}`,
171
+ modelRouting: opts.modelRouting,
172
+ tierLadder: opts.tierLadder,
173
+ riskAssessment: opts.riskAssessment,
174
+ }).then((sr) => ({ lens, sr })));
175
+ // One reset for the whole batch: undoes any tracked mutation/commit a lens
176
+ // made in violation of the read-only contract, before the verifier reads.
177
+ restoreIfMutated("lenses");
178
+ // Emit evidence + budget control in lens-INDEX order (deterministic), even
179
+ // though the agents ran concurrently. onStage still owns the budget stop —
180
+ // but since every lens already ran, a stop just skips verify + synth.
181
+ let stop = false;
182
+ let cooldownFactor = 1;
183
+ for (const { lens, sr } of results) {
184
+ const parsed = parseFindings(sr.result, lens).findings.length;
185
+ outcomeLine(/<lens>\s*SKIP\s*<\/lens>/i.test(sr.result.trim())
186
+ ? "skipped (no commit)"
187
+ : `${parsed} finding${parsed === 1 ? "" : "s"}`);
127
188
  recordStage?.(lens, sr, lensStartedAt);
128
189
  const ctrl = onStage?.(sr) ?? { stop: false, cooldownFactor: 1 };
129
190
  if (ctrl.stop)
130
- return sr; // budget exhausted — skip remaining lenses + verify + synth
131
- if (cooldownMs > 0)
132
- await sleep(cooldownMs * ctrl.cooldownFactor, signal);
191
+ stop = true;
192
+ // Lenses ran concurrently, so there is one batch cooldown — pace it by the
193
+ // most-throttled lens (max factor) to honor adaptive backoff.
194
+ cooldownFactor = Math.max(cooldownFactor, ctrl.cooldownFactor);
195
+ }
196
+ if (stop) {
197
+ // Budget exhausted — skip verify + synth, return the last lens result.
198
+ return results[results.length - 1].sr;
133
199
  }
200
+ // Merge + dedupe across lenses into a single findings-merged.md so the
201
+ // verifier (which globs findings-*.md) reads each issue exactly once. We
202
+ // deliberately do NOT also write per-lens findings-<lens>.md files — both
203
+ // would double-count under the glob.
204
+ const { findings } = mergeLensFindings(results.map((r) => ({ lens: r.lens, text: r.sr.result })));
205
+ const counts = severityCounts(findings);
206
+ if (findings.length === 0) {
207
+ // Nothing to verify or fix — return a synthetic clean result.
208
+ outcomeLine("no findings — skipping verify + synth");
209
+ return {
210
+ result: "<review>OK</review>",
211
+ costUsd: 0,
212
+ isError: false,
213
+ apiErrorStatus: null,
214
+ usage: emptyTokenUsage(),
215
+ runtimeId: agentId ?? DEFAULT_AGENT,
216
+ };
217
+ }
218
+ writeFileSync(join(panelHostDir, "findings-merged.md"), findings.map(findingToWire).join("\n") + "\n", "utf8");
219
+ if (cooldownMs > 0)
220
+ await sleep(cooldownMs * cooldownFactor, signal);
134
221
  // 2. Adversarial verify — a skeptic refutes the lens findings, writing
135
222
  // verdicts.md (CONFIRMED/REJECTED) so synth only fixes survivors.
136
223
  phaseLine("adversarial verify");
@@ -148,7 +235,7 @@ export async function runPanel(opts) {
148
235
  logLabel: "verify",
149
236
  });
150
237
  restoreIfMutated("verify");
151
- recordStage?.(VERIFY_STAGE.name, verify, verifyStartedAt);
238
+ recordStage?.(VERIFY_STAGE.name, verify, verifyStartedAt, counts);
152
239
  const verdicts = readVerdicts(panelHostDir);
153
240
  if (verdicts.exists) {
154
241
  outcomeLine(`${verdicts.confirmed} confirmed, ${verdicts.rejected} rejected`);
@@ -204,7 +291,7 @@ export async function runPanel(opts) {
204
291
  else {
205
292
  outcomeLine("clean — no fix needed");
206
293
  }
207
- recordStage?.(SYNTH_STAGE.name, synth, synthStartedAt);
294
+ recordStage?.(SYNTH_STAGE.name, synth, synthStartedAt, counts);
208
295
  onStage?.(synth);
209
296
  return synth;
210
297
  }
package/dist/panel.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAuB5B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,MAAM,CAAC,EAAE,YAAY,CAAC;IAItB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,wBAAgB,YAAY,IAAI,MAAM,CAUrC;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE,aAAkB,GACvB,MAAM,CAmIR"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAuB5B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,MAAM,CAAC,EAAE,YAAY,CAAC;IAItB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,wBAAgB,YAAY,IAAI,MAAM,CAUrC;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE,aAAkB,GACvB,MAAM,CAuIR"}
package/dist/render.js CHANGED
@@ -53,9 +53,11 @@ export function renderTemplate(templatePath, vars, opts = {}) {
53
53
  };
54
54
  // Expand @include directives recursively until no directives remain.
55
55
  // Each pass resolves relative paths against the including file's directory.
56
+ // vars are substituted into the path so @include:lens-guidance/{{ LENS }}.md works.
56
57
  function expandIncludes(text, fromDir) {
57
58
  const expanded = text.replace(INCLUDE_TAG, (_match, rel) => {
58
- const target = isAbsolute(rel) ? rel : resolve(fromDir, rel);
59
+ const resolvedRel = rel.replace(/\{\{\s*([A-Z0-9_]+)\s*\}\}/g, (m, k) => Object.prototype.hasOwnProperty.call(vars, k) ? vars[k] : m);
60
+ const target = isAbsolute(resolvedRel) ? resolvedRel : resolve(fromDir, resolvedRel);
59
61
  const content = readFileSync(target, "utf8").replace(/\r?\n$/, "");
60
62
  // Recurse so includes within included files are resolved relative to
61
63
  // the included file's own directory.
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Severity model + structured-finding plumbing for the review panel (P14).
3
+ * Pure — no I/O. Lenses and the verifier emit pipe-delimited finding lines;
4
+ * this module parses, ranks, dedupes, and applies the nit-suppression rule.
5
+ */
6
+ export type Severity = "blocker" | "major" | "minor" | "nit";
7
+ export type Finding = {
8
+ severity: Severity;
9
+ file: string;
10
+ line?: string;
11
+ claim: string;
12
+ why: string;
13
+ suggestedFix?: string;
14
+ lens?: string;
15
+ };
16
+ /** Wire format, one finding per line: `SEVERITY | file:line | claim | why | fix?`
17
+ * `file:line` may be just `file`; the trailing `fix` field is optional. A line
18
+ * that does not yield a valid severity + ≥4 fields is dropped (counted). */
19
+ export declare function parseFindings(text: string, lens?: string): {
20
+ findings: Finding[];
21
+ dropped: number;
22
+ };
23
+ /** Stable sort by severity (blocker first); input order preserved within a tier. */
24
+ export declare function rankFindings(findings: Finding[]): Finding[];
25
+ /** Cursor output hierarchy: if any blocker/major exists, drop nits so synth and
26
+ * the report stay high-signal. Minors are kept (they are cheap and often real). */
27
+ export declare function suppressLowValue(findings: Finding[]): {
28
+ kept: Finding[];
29
+ suppressed: number;
30
+ };
31
+ /** Tally findings by severity and count how many nits were suppressed by the
32
+ * low-value suppression rule (i.e. how many nits would be dropped when a
33
+ * blocker or major is present). */
34
+ export declare function severityCounts(findings: Finding[]): Record<Severity, number> & {
35
+ suppressed: number;
36
+ };
37
+ /** Merge findings pointing at the same place: same file, overlapping line range,
38
+ * and the same normalized claim. Keeps the highest severity, unions the raising
39
+ * lenses (comma-joined, de-duped, sorted), and concatenates distinct why-text. */
40
+ export declare function dedupeFindings(findings: Finding[]): Finding[];
41
+ //# sourceMappingURL=review-severity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-severity.d.ts","sourceRoot":"","sources":["../src/review-severity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAE7D,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAUF;;6EAE6E;AAC7E,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAmB1C;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAK3D;AAED;oFACoF;AACpF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG;IACrD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAOA;AAmBD;;oCAEoC;AACpC,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,OAAO,EAAE,GAClB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAKnD;AAED;;mFAEmF;AACnF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAsB7D"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Severity model + structured-finding plumbing for the review panel (P14).
3
+ * Pure — no I/O. Lenses and the verifier emit pipe-delimited finding lines;
4
+ * this module parses, ranks, dedupes, and applies the nit-suppression rule.
5
+ */
6
+ const ORDER = ["blocker", "major", "minor", "nit"];
7
+ const RANK = { blocker: 0, major: 1, minor: 2, nit: 3 };
8
+ function asSeverity(token) {
9
+ const t = token.trim().toLowerCase();
10
+ return ORDER.includes(t) ? t : null;
11
+ }
12
+ /** Wire format, one finding per line: `SEVERITY | file:line | claim | why | fix?`
13
+ * `file:line` may be just `file`; the trailing `fix` field is optional. A line
14
+ * that does not yield a valid severity + ≥4 fields is dropped (counted). */
15
+ export function parseFindings(text, lens) {
16
+ const findings = [];
17
+ let dropped = 0;
18
+ for (const raw of text.split("\n")) {
19
+ if (!raw.includes("|"))
20
+ continue;
21
+ const parts = raw.split("|").map((p) => p.trim());
22
+ const severity = asSeverity(parts[0]);
23
+ if (!severity || parts.length < 4) {
24
+ dropped++;
25
+ continue;
26
+ }
27
+ const [fileRaw, claim, why] = [parts[1], parts[2], parts[3]];
28
+ const fix = parts[4]?.length ? parts[4] : undefined;
29
+ const m = fileRaw.match(/^(.*?):(\d+(?:-\d+)?)$/);
30
+ const file = m ? m[1] : fileRaw;
31
+ const line = m ? m[2] : undefined;
32
+ findings.push({ severity, file, line, claim, why, suggestedFix: fix, lens });
33
+ }
34
+ return { findings, dropped };
35
+ }
36
+ /** Stable sort by severity (blocker first); input order preserved within a tier. */
37
+ export function rankFindings(findings) {
38
+ return findings
39
+ .map((f, i) => ({ f, i }))
40
+ .sort((a, b) => RANK[a.f.severity] - RANK[b.f.severity] || a.i - b.i)
41
+ .map((x) => x.f);
42
+ }
43
+ /** Cursor output hierarchy: if any blocker/major exists, drop nits so synth and
44
+ * the report stay high-signal. Minors are kept (they are cheap and often real). */
45
+ export function suppressLowValue(findings) {
46
+ const hasHigh = findings.some((f) => f.severity === "blocker" || f.severity === "major");
47
+ if (!hasHigh)
48
+ return { kept: findings, suppressed: 0 };
49
+ const kept = findings.filter((f) => f.severity !== "nit");
50
+ return { kept, suppressed: findings.length - kept.length };
51
+ }
52
+ function range(line) {
53
+ if (!line)
54
+ return null;
55
+ const m = line.match(/^(\d+)(?:-(\d+))?$/);
56
+ if (!m)
57
+ return null;
58
+ const lo = Number(m[1]);
59
+ return [lo, m[2] ? Number(m[2]) : lo];
60
+ }
61
+ function overlaps(a, b) {
62
+ const ra = range(a);
63
+ const rb = range(b);
64
+ if (!ra || !rb)
65
+ return a === b; // no parsable range → exact-string match
66
+ return ra[0] <= rb[1] && rb[0] <= ra[1];
67
+ }
68
+ const norm = (s) => s.toLowerCase().replace(/\s+/g, " ").trim();
69
+ /** Tally findings by severity and count how many nits were suppressed by the
70
+ * low-value suppression rule (i.e. how many nits would be dropped when a
71
+ * blocker or major is present). */
72
+ export function severityCounts(findings) {
73
+ const counts = { blocker: 0, major: 0, minor: 0, nit: 0, suppressed: 0 };
74
+ for (const f of findings)
75
+ counts[f.severity]++;
76
+ counts.suppressed = suppressLowValue(findings).suppressed;
77
+ return counts;
78
+ }
79
+ /** Merge findings pointing at the same place: same file, overlapping line range,
80
+ * and the same normalized claim. Keeps the highest severity, unions the raising
81
+ * lenses (comma-joined, de-duped, sorted), and concatenates distinct why-text. */
82
+ export function dedupeFindings(findings) {
83
+ const out = [];
84
+ for (const f of findings) {
85
+ const hit = out.find((g) => g.file === f.file &&
86
+ norm(g.claim) === norm(f.claim) &&
87
+ overlaps(g.line, f.line));
88
+ if (!hit) {
89
+ out.push({ ...f });
90
+ continue;
91
+ }
92
+ if (RANK[f.severity] < RANK[hit.severity])
93
+ hit.severity = f.severity;
94
+ const lenses = new Set([hit.lens, f.lens].filter(Boolean).flatMap((l) => l.split(", ")));
95
+ hit.lens = [...lenses].sort().join(", ") || undefined;
96
+ if (f.why && !hit.why.includes(f.why))
97
+ hit.why = hit.why ? `${hit.why}; ${f.why}` : f.why;
98
+ }
99
+ return out;
100
+ }
101
+ //# sourceMappingURL=review-severity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-severity.js","sourceRoot":"","sources":["../src/review-severity.ts"],"names":[],"mappings":"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"}
package/dist/risk.d.ts CHANGED
@@ -30,8 +30,9 @@ export declare function classifyRisk(changedPaths: string[]): RiskAssessment;
30
30
  export declare function reviewDepthForLevel(level: RiskLevel): ReviewDepth;
31
31
  /**
32
32
  * Choose which review lenses run at a {@link ReviewDepth}, drawn (in order) from
33
- * the available pool: `single` → none (a plain single reviewer), `lenses` → a
34
- * capped medium subset, `panel` the full pool. Pure.
33
+ * the available pool: `single` → none (a plain single reviewer), `lenses` → the
34
+ * medium subset (correctness, tests, task-fit excludes security and structural),
35
+ * `panel` → the full pool including structural. Pure.
35
36
  */
36
37
  export declare function selectLenses(depth: ReviewDepth, available: string[]): string[];
37
38
  /** A per-iteration review-routing decision: how deep, which lenses, and why. */
@@ -1 +1 @@
1
- {"version":3,"file":"risk.d.ts","sourceRoot":"","sources":["../src/risk.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gEAAgE;AAChE,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,WAAW,GACX,aAAa,GACb,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,CAAC;AAEd,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAElD,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAwCF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,cAAc,CAiCnE;AAMD,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CASjE;AAKD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS9E;AAED,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB,aAAa,CAIf;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAU3D"}
1
+ {"version":3,"file":"risk.d.ts","sourceRoot":"","sources":["../src/risk.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gEAAgE;AAChE,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,WAAW,GACX,aAAa,GACb,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,CAAC;AAEd,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAElD,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAwCF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,cAAc,CAiCnE;AAMD,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CASjE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAW9E;AAED,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB,aAAa,CAIf;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAU3D"}
package/dist/risk.js CHANGED
@@ -82,21 +82,22 @@ export function reviewDepthForLevel(level) {
82
82
  return "panel";
83
83
  }
84
84
  }
85
- /** Lenses to run at a given review depth, drawn from the available pool. */
86
- const LENSES_DEPTH_CAP = 2;
87
85
  /**
88
86
  * Choose which review lenses run at a {@link ReviewDepth}, drawn (in order) from
89
- * the available pool: `single` → none (a plain single reviewer), `lenses` → a
90
- * capped medium subset, `panel` the full pool. Pure.
87
+ * the available pool: `single` → none (a plain single reviewer), `lenses` → the
88
+ * medium subset (correctness, tests, task-fit excludes security and structural),
89
+ * `panel` → the full pool including structural. Pure.
91
90
  */
92
91
  export function selectLenses(depth, available) {
93
92
  switch (depth) {
94
93
  case "single":
95
94
  return [];
96
- case "lenses":
97
- return available.slice(0, LENSES_DEPTH_CAP);
95
+ case "lenses": {
96
+ const medium = ["correctness", "tests", "task-fit"];
97
+ return available.filter((l) => medium.includes(l));
98
+ }
98
99
  case "panel":
99
- return available;
100
+ return [...available];
100
101
  }
101
102
  }
102
103
  /**
package/dist/risk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"risk.js","sourceRoot":"","sources":["../src/risk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"risk.js","sourceRoot":"","sources":["../src/risk.ts"],"names":[],"mappings":"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"}
package/dist/run-bin.js CHANGED
@@ -25,7 +25,7 @@ function ensureStateGitignored(workspaceDir) {
25
25
  let existing = existsSync(gitignorePath)
26
26
  ? readFileSync(gitignorePath, "utf8")
27
27
  : "";
28
- for (const entry of [".otto/state.json", ".otto/runs/"]) {
28
+ for (const entry of [".otto/state.json", ".otto/runs/", ".otto/journal/"]) {
29
29
  const alreadyPresent = existing
30
30
  .split("\n")
31
31
  .some((line) => line.trim() === entry);