@zhixuan92/multi-model-agent-core 3.8.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +1 -1
  2. package/dist/executors/_shared/findings-schema.d.ts +61 -21
  3. package/dist/executors/_shared/findings-schema.d.ts.map +1 -1
  4. package/dist/executors/_shared/findings-schema.js +27 -15
  5. package/dist/executors/_shared/findings-schema.js.map +1 -1
  6. package/dist/executors/investigate.d.ts.map +1 -1
  7. package/dist/executors/investigate.js +2 -1
  8. package/dist/executors/investigate.js.map +1 -1
  9. package/dist/intake/resolve.d.ts.map +1 -1
  10. package/dist/intake/resolve.js +19 -5
  11. package/dist/intake/resolve.js.map +1 -1
  12. package/dist/observability/events.d.ts +10 -17
  13. package/dist/observability/events.d.ts.map +1 -1
  14. package/dist/observability/events.js +3 -8
  15. package/dist/observability/events.js.map +1 -1
  16. package/dist/review/aggregate-result.d.ts +1 -1
  17. package/dist/review/aggregate-result.d.ts.map +1 -1
  18. package/dist/review/aggregate-result.js.map +1 -1
  19. package/dist/review/quality-only-prompts.d.ts +11 -5
  20. package/dist/review/quality-only-prompts.d.ts.map +1 -1
  21. package/dist/review/quality-only-prompts.js +98 -51
  22. package/dist/review/quality-only-prompts.js.map +1 -1
  23. package/dist/review/quality-reviewer.d.ts +51 -10
  24. package/dist/review/quality-reviewer.d.ts.map +1 -1
  25. package/dist/review/quality-reviewer.js +157 -18
  26. package/dist/review/quality-reviewer.js.map +1 -1
  27. package/dist/run-tasks/index.d.ts +1 -0
  28. package/dist/run-tasks/index.d.ts.map +1 -1
  29. package/dist/run-tasks/reviewed-lifecycle.d.ts +1 -0
  30. package/dist/run-tasks/reviewed-lifecycle.d.ts.map +1 -1
  31. package/dist/run-tasks/reviewed-lifecycle.js +81 -91
  32. package/dist/run-tasks/reviewed-lifecycle.js.map +1 -1
  33. package/dist/tool-schemas/audit.d.ts +2 -0
  34. package/dist/tool-schemas/audit.d.ts.map +1 -1
  35. package/dist/tool-schemas/debug.d.ts +2 -0
  36. package/dist/tool-schemas/debug.d.ts.map +1 -1
  37. package/dist/tool-schemas/delegate.d.ts +2 -0
  38. package/dist/tool-schemas/delegate.d.ts.map +1 -1
  39. package/dist/tool-schemas/execute-plan.d.ts +2 -0
  40. package/dist/tool-schemas/execute-plan.d.ts.map +1 -1
  41. package/dist/tool-schemas/investigate.d.ts +2 -0
  42. package/dist/tool-schemas/investigate.d.ts.map +1 -1
  43. package/dist/tool-schemas/retry.d.ts +2 -0
  44. package/dist/tool-schemas/retry.d.ts.map +1 -1
  45. package/dist/tool-schemas/review.d.ts +2 -0
  46. package/dist/tool-schemas/review.d.ts.map +1 -1
  47. package/dist/tool-schemas/shared-output.d.ts +2 -0
  48. package/dist/tool-schemas/shared-output.d.ts.map +1 -1
  49. package/dist/tool-schemas/shared-output.js +1 -1
  50. package/dist/tool-schemas/shared-output.js.map +1 -1
  51. package/dist/tool-schemas/verify.d.ts +2 -0
  52. package/dist/tool-schemas/verify.d.ts.map +1 -1
  53. package/dist/types.d.ts +2 -2
  54. package/dist/types.d.ts.map +1 -1
  55. package/package.json +1 -1
@@ -1,108 +1,155 @@
1
1
  /**
2
- * Quality-only review prompts for the 5 read-only mma-* routes.
2
+ * Quality-only review prompts for the 5 read-only mma-* routes (3.8.1+).
3
3
  *
4
- * Each prompt asks the reviewer:
5
- * (a) Schema check: confirm worker emitted a well-formed findings[] array.
6
- * (b) Per-finding judgment: is the finding the kind requested AND grounded?
4
+ * Each prompt asks the reviewer to ANNOTATE every worker finding with:
5
+ * - reviewerConfidence: integer 0–100, how confident YOU (reviewer) are that
6
+ * this finding is correct, on-brief, and well-grounded in the evidence.
7
+ * - reviewerSeverity (optional): only set when you disagree with the worker's
8
+ * severity. Workers tend to inflate; use this to dial down.
7
9
  *
8
- * If schema check fails, return changes_required immediately and skip per-finding review.
10
+ * The reviewer returns a single ```json fenced block containing a JSON array
11
+ * of {id, reviewerConfidence, reviewerSeverity?} objects, one per worker
12
+ * finding (matched by id). NO verdict, NO gate, NO rework signal.
9
13
  */
10
- const SCHEMA_PREAMBLE = `
11
- First, confirm the worker's output includes a well-formed \`findings[]\` array (a JSON array, possibly empty if the worker found nothing, but present as a parseable structure). If the array is missing, malformed, or returned as prose only, return \`changes_required\` with the reason "missing or malformed findings array" and do NOT proceed to per-finding review.
12
- `.trim();
13
- const COMMON_TAIL = `
14
- When re-reading files, treat \`findings[].line\` as 1-indexed (matches editor convention). For multi-line findings, \`line\` points to the start of the cited region; use \`sourceQuote\` (when present) for the full text.
14
+ const RUBRIC = `
15
+ ## How to score \`reviewerConfidence\` (integer 0-100)
16
+
17
+ You are scoring whether YOU would defend this finding if pushed. Not severity.
18
+ Not the worker's self-confidence.
19
+
20
+ 80-100: evidence directly supports the claim, on-brief, defend without hesitation
21
+ 60-79: evidence supports claim with minor gaps, on-brief, plausible
22
+ 40-59: claim plausible but evidence thin, partial, or requires inference
23
+ 20-39: claim weak, evidence does not back it up, OR off-brief
24
+ 0-19: unsupported, contradicted, fabricated, OR completely off-brief
25
+
26
+ ## How to use \`reviewerSeverity\` (optional)
27
+
28
+ Only set when you DISAGREE with the worker's \`severity\`. Workers tend to
29
+ inflate ("everything is high"); use \`reviewerSeverity\` to dial down. Omit
30
+ when you agree.
31
+
32
+ ## Output format (REQUIRED)
33
+
34
+ Respond with exactly one fenced JSON code block. The block must contain a
35
+ JSON array of objects, one entry per worker finding (matched by \`id\`). Example:
15
36
 
16
- Output a single verdict: \`approved\` (if every finding is on-brief and grounded) or \`changes_required\` (with per-finding feedback identifying which findings failed which check).
37
+ \`\`\`json
38
+ [
39
+ { "id": "F1", "reviewerConfidence": 85 },
40
+ { "id": "F2", "reviewerConfidence": 35, "reviewerSeverity": "low" },
41
+ { "id": "F3", "reviewerConfidence": 70 }
42
+ ]
43
+ \`\`\`
44
+
45
+ Every worker finding id must appear exactly once. No extra ids. No missing
46
+ ids. Surrounding prose is allowed but ignored by the parser.
17
47
  `.trim();
48
+ function renderFindings(findings) {
49
+ return JSON.stringify(findings, null, 2);
50
+ }
18
51
  export function buildAuditQualityPrompt(ctx) {
19
- return `${SCHEMA_PREAMBLE}
52
+ return `You are reviewing an audit produced by a worker.
20
53
 
21
54
  The user requested an audit. The brief was:
22
55
 
23
56
  ${ctx.brief}
24
57
 
25
- The worker produced a \`findings[]\` array. For each finding:
26
- (a) Is it of the requested audit type? (e.g., security audit -> security finding, not style nit)
27
- (b) Re-read the cited file at \`findings[].file\` (the audit target document) at the given \`findings[].line\`. Is the worker's claim true about that text?
58
+ ## On-brief check (per finding)
28
59
 
29
- Flag findings that are off-type, vague, unsupported, or misread the source.
60
+ For each worker finding, ask: is this the kind of issue the audit asked for?
61
+ A security audit should produce security findings, not style nits.
30
62
 
31
- ${COMMON_TAIL}
63
+ ## Worker findings to annotate
32
64
 
33
- Worker output:
34
- ${ctx.workerOutput}`;
65
+ \`\`\`json
66
+ ${renderFindings(ctx.workerFindings)}
67
+ \`\`\`
68
+
69
+ ${RUBRIC}`;
35
70
  }
36
71
  export function buildReviewQualityPrompt(ctx) {
37
- return `${SCHEMA_PREAMBLE}
72
+ return `You are reviewing a code review produced by a worker.
38
73
 
39
74
  The user requested a code review. The brief was:
40
75
 
41
76
  ${ctx.brief}
42
77
 
43
- The worker produced a \`findings[]\` array. For each finding:
44
- (a) Is it within the requested focus area? (e.g., security review -> security finding, not formatting nit)
45
- (b) Re-read the cited file/line. Does the worker's claim correctly describe the code's behavior?
78
+ ## On-brief check (per finding)
79
+
80
+ For each worker finding, ask: is this within the requested focus area?
81
+ A security review should produce security findings, not formatting nits.
46
82
 
47
- Flag findings that misread the code or stretch beyond what the cited lines support.
83
+ ## Worker findings to annotate
48
84
 
49
- ${COMMON_TAIL}
85
+ \`\`\`json
86
+ ${renderFindings(ctx.workerFindings)}
87
+ \`\`\`
50
88
 
51
- Worker output:
52
- ${ctx.workerOutput}`;
89
+ ${RUBRIC}`;
53
90
  }
54
91
  export function buildVerifyQualityPrompt(ctx) {
55
- return `${SCHEMA_PREAMBLE}
92
+ return `You are reviewing a verification report produced by a worker.
56
93
 
57
94
  The user provided a checklist of acceptance criteria. The brief was:
58
95
 
59
96
  ${ctx.brief}
60
97
 
61
- The worker produced a \`findings[]\` array, where each finding maps to one checklist item the worker judged as either met (no finding emitted, or a 'low'-severity confirmation) or unmet (a 'high'/'medium'-severity finding describing what's missing). For each finding:
62
- (a) Does the finding correspond to a real checklist item from the brief?
63
- (b) Re-read the cited evidence in \`findings[].file\` and \`findings[].sourceQuote\` (when present). Does the cited evidence actually demonstrate the worker's claim about that checklist item?
98
+ ## On-brief check (per finding)
64
99
 
65
- Also: confirm every checklist item from the brief is accounted for — if any checklist item has no corresponding entry in \`findings[]\` (and no implicit "met" claim), flag it.
100
+ Each finding should map to one checklist item with evidence the criterion was
101
+ met or unmet. Flag findings that don't correspond to any checklist item, or
102
+ whose evidence doesn't actually demonstrate the claimed pass/fail status.
66
103
 
67
- ${COMMON_TAIL}
104
+ ## Worker findings to annotate
68
105
 
69
- Worker output:
70
- ${ctx.workerOutput}`;
106
+ \`\`\`json
107
+ ${renderFindings(ctx.workerFindings)}
108
+ \`\`\`
109
+
110
+ ${RUBRIC}`;
71
111
  }
72
112
  export function buildInvestigateQualityPrompt(ctx) {
73
- return `${SCHEMA_PREAMBLE}
113
+ return `You are reviewing a codebase investigation produced by a worker.
74
114
 
75
115
  The user asked a question. The brief was:
76
116
 
77
117
  ${ctx.brief}
78
118
 
79
- The worker produced a synthesis with \`findings[]\` (each finding may have \`file\`, \`line\`, or both null for project-level claims). For each finding:
80
- (a) Is the finding relevant to the question?
81
- (b) When \`findings[].file\` is non-null, confirm the file exists. When \`findings[].line\` is also non-null, treat it as 1-indexed and re-read that location. Does the cited content support the finding's \`claim\`?
119
+ ## On-brief check (per finding)
120
+
121
+ Each finding should be relevant to the question. Findings may be code-level
122
+ (file:line cited in evidence) or project-level synthesis (what was searched,
123
+ what was not found). Flag findings whose evidence does not support the claim
124
+ or whose claim drifts from the question.
82
125
 
83
- Flag findings whose citations are fabricated, misquoted, or stretched beyond what the source supports. Also flag claims that aren't backed by any cited evidence.
126
+ ## Worker findings to annotate
84
127
 
85
- ${COMMON_TAIL}
128
+ \`\`\`json
129
+ ${renderFindings(ctx.workerFindings)}
130
+ \`\`\`
86
131
 
87
- Worker output:
88
- ${ctx.workerOutput}`;
132
+ ${RUBRIC}`;
89
133
  }
90
134
  export function buildDebugQualityPrompt(ctx) {
91
- return `${SCHEMA_PREAMBLE}
135
+ return `You are reviewing a debugging hypothesis produced by a worker.
92
136
 
93
137
  The user reported a failure. The brief was:
94
138
 
95
139
  ${ctx.brief}
96
140
 
97
- The worker produced a hypothesis and findings about cited evidence (reproducer, error pattern, code paths). For each cited piece of evidence:
98
- (a) Is it relevant to the reported failure?
99
- (b) Does the hypothesis logically follow from the evidence, or does it exceed what the trace actually shows?
141
+ ## On-brief check (per finding)
142
+
143
+ Each finding should be a hypothesis, root-cause claim, or evidence
144
+ (reproducer, error pattern, code path). Flag findings that don't logically
145
+ follow from cited evidence or that exceed what the trace actually shows.
100
146
 
101
- Flag claims that aren't supported by the cited evidence.
147
+ ## Worker findings to annotate
102
148
 
103
- ${COMMON_TAIL}
149
+ \`\`\`json
150
+ ${renderFindings(ctx.workerFindings)}
151
+ \`\`\`
104
152
 
105
- Worker output:
106
- ${ctx.workerOutput}`;
153
+ ${RUBRIC}`;
107
154
  }
108
155
  //# sourceMappingURL=quality-only-prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quality-only-prompts.js","sourceRoot":"","sources":["../../src/review/quality-only-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,eAAe,GAAG;;CAEvB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,WAAW,GAAG;;;;CAInB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,UAAU,uBAAuB,CAAC,GAAkB;IACxD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAkB;IACzD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAkB;IACzD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,GAAkB;IAC9D,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAkB;IACxD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"quality-only-prompts.js","sourceRoot":"","sources":["../../src/review/quality-only-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCd,CAAC,IAAI,EAAE,CAAC;AAET,SAAS,cAAc,CAAC,QAAyB;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAkB;IACxD,OAAO;;;;EAIP,GAAG,CAAC,KAAK;;;;;;;;;;EAUT,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;;;EAGlC,MAAM,EAAE,CAAC;AACX,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAkB;IACzD,OAAO;;;;EAIP,GAAG,CAAC,KAAK;;;;;;;;;;EAUT,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;;;EAGlC,MAAM,EAAE,CAAC;AACX,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAkB;IACzD,OAAO;;;;EAIP,GAAG,CAAC,KAAK;;;;;;;;;;;EAWT,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;;;EAGlC,MAAM,EAAE,CAAC;AACX,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,GAAkB;IAC9D,OAAO;;;;EAIP,GAAG,CAAC,KAAK;;;;;;;;;;;;EAYT,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;;;EAGlC,MAAM,EAAE,CAAC;AACX,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAkB;IACxD,OAAO;;;;EAIP,GAAG,CAAC,KAAK;;;;;;;;;;;EAWT,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;;;EAGlC,MAAM,EAAE,CAAC;AACX,CAAC"}
@@ -1,20 +1,59 @@
1
1
  import type { Provider } from '../types.js';
2
2
  import type { ParsedStructuredReport } from '../reporting/structured-report.js';
3
- import type { SkippedReviewResult } from './skipped-result.js';
3
+ import { type WorkerFinding, type AnnotatedFinding } from '../executors/_shared/findings-schema.js';
4
+ /**
5
+ * Result of the read-only annotation review pass.
6
+ * - 'annotated' — reviewer ran, every worker finding has reviewerConfidence (and optionally reviewerSeverity).
7
+ * - 'error' — reviewer crashed, output unparseable, or id-set mismatch with worker.
8
+ * - 'skipped' — kill switch, no provider, or worker emitted no findings (nothing to annotate).
9
+ *
10
+ * The legacy gating-style fields (`findings: string[]`, `report: ParsedStructuredReport`) are kept
11
+ * on the result for the artifact-route path which still uses the gating model.
12
+ */
13
+ /**
14
+ * Unified quality-review result. The status discriminates which fields are
15
+ * meaningful; consumers read either `annotatedFindings` (annotation path) or
16
+ * `findings` + `report` (gating path).
17
+ *
18
+ * - 'annotated' — read-only annotation path; populated `annotatedFindings`.
19
+ * - 'approved' / 'changes_required' — artifact-route gating path; `findings` +
20
+ * `report` carry the gating signal.
21
+ * - 'error' / 'api_error' / 'network_error' / 'timeout' — review failed.
22
+ * - 'skipped' — kill switch, no provider, or worker emitted no findings.
23
+ */
4
24
  export interface QualityReviewResult {
5
- status: 'approved' | 'changes_required' | 'error' | 'api_error' | 'network_error' | 'timeout';
25
+ status: 'approved' | 'changes_required' | 'annotated' | 'error' | 'api_error' | 'network_error' | 'timeout' | 'skipped';
26
+ annotatedFindings?: AnnotatedFinding[];
6
27
  report?: ParsedStructuredReport;
7
28
  findings: string[];
8
29
  errorReason?: string;
9
30
  reason?: string;
10
31
  }
11
- export type QualityReviewOrSkipped = QualityReviewResult | SkippedReviewResult;
12
- export type LegacyQualityReviewResult = QualityReviewOrSkipped | {
13
- status: 'skipped';
14
- report?: ParsedStructuredReport;
15
- findings: string[];
16
- errorReason?: string;
17
- };
32
+ /** Backward-compat alias kept until reviewed-lifecycle is migrated to the new shape (Task 6). */
33
+ export type LegacyQualityReviewResult = QualityReviewResult;
34
+ /**
35
+ * Parse worker findings from the worker's raw output. Looks for a ```json block whose
36
+ * content is an array passing workerFindingsSchema. Returns null if absent or invalid.
37
+ */
38
+ export declare function extractWorkerFindings(workerOutput: string): WorkerFinding[] | null;
39
+ interface AnnotationParseOk {
40
+ ok: true;
41
+ annotated: AnnotatedFinding[];
42
+ }
43
+ interface AnnotationParseErr {
44
+ ok: false;
45
+ reason: string;
46
+ }
47
+ /**
48
+ * Parse the reviewer's response, validate against the worker's findings,
49
+ * and merge to produce AnnotatedFinding[].
50
+ *
51
+ * Validation:
52
+ * - Reviewer output must contain exactly one ```json fenced block (we take the first).
53
+ * - Block content must be a JSON array passing annotationsArraySchema.
54
+ * - Annotation ids must be a permutation of worker ids: no missing, no duplicate, no extra.
55
+ */
56
+ export declare function parseAndMergeAnnotations(reviewerOutput: string, workerFindings: WorkerFinding[]): AnnotationParseOk | AnnotationParseErr;
18
57
  export declare function runQualityReview(reviewerProvider: Provider, packet: {
19
58
  prompt: string;
20
59
  scope: string[];
@@ -22,5 +61,7 @@ export declare function runQualityReview(reviewerProvider: Provider, packet: {
22
61
  }, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[], filesWritten: string[], evidenceBlock?: string, qualityReviewPromptBuilder?: (ctx: {
23
62
  workerOutput: string;
24
63
  brief: string;
25
- }) => string, workerOutput?: string): Promise<LegacyQualityReviewResult>;
64
+ workerFindings: WorkerFinding[];
65
+ }) => string, workerOutput?: string): Promise<QualityReviewResult>;
66
+ export {};
26
67
  //# sourceMappingURL=quality-reviewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quality-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;IAC9F,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElK,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAClE,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,CAAC,EAAE,MAAM,EACtB,0BAA0B,CAAC,EAAE,CAAC,GAAG,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,EACrF,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,yBAAyB,CAAC,CAqEpC"}
1
+ {"version":3,"file":"quality-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,yCAAyC,CAAC;AAEjD;;;;;;;;GAQG;AACH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;IACxH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iGAAiG;AACjG,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAkB5D;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,IAAI,CAalF;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AACD,UAAU,kBAAkB;IAC1B,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,aAAa,EAAE,GAC9B,iBAAiB,GAAG,kBAAkB,CAiDxC;AAED,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAClE,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,CAAC,EAAE,MAAM,EACtB,0BAA0B,CAAC,EAAE,CAAC,GAAG,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,aAAa,EAAE,CAAA;CAAE,KAAK,MAAM,EACtH,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,CA8D9B"}
@@ -1,23 +1,116 @@
1
+ import { z } from 'zod';
1
2
  import { delegateWithEscalation } from '../delegate-with-escalation.js';
2
3
  import { buildQualityReviewPrompt } from './reviewer-prompt.js';
3
4
  import { parseStructuredReport } from '../reporting/structured-report.js';
5
+ import { workerFindingsSchema, } from '../executors/_shared/findings-schema.js';
6
+ const annotationItemSchema = z.object({
7
+ id: z.string().min(1),
8
+ reviewerConfidence: z.number().int().min(0).max(100),
9
+ reviewerSeverity: z.enum(['high', 'medium', 'low']).optional(),
10
+ }).strict();
11
+ const annotationsArraySchema = z.array(annotationItemSchema);
12
+ /**
13
+ * Extract the first ```json fenced code block from a string, or `null` if none found.
14
+ */
15
+ function extractJsonBlock(output) {
16
+ const match = output.match(/```json\s*\n([\s\S]*?)\n```/);
17
+ return match ? match[1] : null;
18
+ }
19
+ /**
20
+ * Parse worker findings from the worker's raw output. Looks for a ```json block whose
21
+ * content is an array passing workerFindingsSchema. Returns null if absent or invalid.
22
+ */
23
+ export function extractWorkerFindings(workerOutput) {
24
+ // Try the first json block; if absent, also try matching multiple blocks for
25
+ // resilience against workers that emit example JSON before the real findings.
26
+ const blocks = [...workerOutput.matchAll(/```json\s*\n([\s\S]*?)\n```/g)].map(m => m[1]);
27
+ for (const raw of blocks) {
28
+ try {
29
+ const parsed = JSON.parse(raw);
30
+ if (!Array.isArray(parsed))
31
+ continue;
32
+ const validated = workerFindingsSchema.safeParse(parsed);
33
+ if (validated.success)
34
+ return validated.data;
35
+ }
36
+ catch { /* try next block */ }
37
+ }
38
+ return null;
39
+ }
40
+ /**
41
+ * Parse the reviewer's response, validate against the worker's findings,
42
+ * and merge to produce AnnotatedFinding[].
43
+ *
44
+ * Validation:
45
+ * - Reviewer output must contain exactly one ```json fenced block (we take the first).
46
+ * - Block content must be a JSON array passing annotationsArraySchema.
47
+ * - Annotation ids must be a permutation of worker ids: no missing, no duplicate, no extra.
48
+ */
49
+ export function parseAndMergeAnnotations(reviewerOutput, workerFindings) {
50
+ const block = extractJsonBlock(reviewerOutput);
51
+ if (block === null) {
52
+ return { ok: false, reason: 'reviewer output missing ```json fenced block' };
53
+ }
54
+ let parsed;
55
+ try {
56
+ parsed = JSON.parse(block);
57
+ }
58
+ catch (err) {
59
+ return { ok: false, reason: `reviewer JSON parse failed: ${err instanceof Error ? err.message : String(err)}` };
60
+ }
61
+ const validated = annotationsArraySchema.safeParse(parsed);
62
+ if (!validated.success) {
63
+ return { ok: false, reason: `annotation array validation failed: ${validated.error.message}` };
64
+ }
65
+ const annotations = validated.data;
66
+ const workerIds = new Set(workerFindings.map(f => f.id));
67
+ const reviewerIds = annotations.map(a => a.id);
68
+ const reviewerIdSet = new Set(reviewerIds);
69
+ if (reviewerIds.length !== reviewerIdSet.size) {
70
+ return { ok: false, reason: 'duplicate id in reviewer annotations' };
71
+ }
72
+ if (reviewerIdSet.size !== workerIds.size) {
73
+ return { ok: false, reason: `annotation count ${reviewerIdSet.size} does not match worker findings count ${workerIds.size}` };
74
+ }
75
+ for (const id of reviewerIdSet) {
76
+ if (!workerIds.has(id)) {
77
+ return { ok: false, reason: `reviewer annotated unknown id: ${id}` };
78
+ }
79
+ }
80
+ for (const id of workerIds) {
81
+ if (!reviewerIdSet.has(id)) {
82
+ return { ok: false, reason: `reviewer missing annotation for worker id: ${id}` };
83
+ }
84
+ }
85
+ const byId = new Map(annotations.map(a => [a.id, a]));
86
+ const merged = workerFindings.map(wf => {
87
+ const ann = byId.get(wf.id);
88
+ const out = {
89
+ ...wf,
90
+ reviewerConfidence: ann.reviewerConfidence,
91
+ };
92
+ if (ann.reviewerSeverity !== undefined)
93
+ out.reviewerSeverity = ann.reviewerSeverity;
94
+ return out;
95
+ });
96
+ return { ok: true, annotated: merged };
97
+ }
4
98
  export async function runQualityReview(reviewerProvider, packet, implReport, fileContents, toolCallLog, filesWritten, evidenceBlock, qualityReviewPromptBuilder, workerOutput) {
5
- if (filesWritten.length === 0 && !qualityReviewPromptBuilder) {
99
+ // Read-only annotation path: triggered when caller passed a prompt builder
100
+ // (these are the per-route quality_only prompts in quality-only-prompts.ts).
101
+ if (qualityReviewPromptBuilder && workerOutput !== undefined) {
102
+ return runAnnotationReview(reviewerProvider, packet, workerOutput, qualityReviewPromptBuilder);
103
+ }
104
+ // Artifact-route gating path: unchanged from prior behavior.
105
+ if (filesWritten.length === 0) {
6
106
  return { status: 'skipped', findings: [], errorReason: 'no files written by implementer' };
7
107
  }
8
- const corePrompt = qualityReviewPromptBuilder && workerOutput !== undefined
9
- ? qualityReviewPromptBuilder({ workerOutput, brief: packet.prompt })
10
- : buildQualityReviewPrompt(packet, implReport, fileContents, toolCallLog);
108
+ const corePrompt = buildQualityReviewPrompt(packet, implReport, fileContents, toolCallLog);
11
109
  const prompt = (evidenceBlock ? `${evidenceBlock}\n\n` : '') + corePrompt;
12
110
  const reviewerSlot = reviewerProvider.name === 'standard' ? 'standard' : 'complex';
13
111
  let result;
14
112
  try {
15
- result = await delegateWithEscalation({
16
- prompt,
17
- agentType: reviewerSlot,
18
- briefQualityPolicy: 'off',
19
- timeoutMs: 120_000,
20
- }, [reviewerProvider], { explicitlyPinned: true });
113
+ result = await delegateWithEscalation({ prompt, agentType: reviewerSlot, briefQualityPolicy: 'off', timeoutMs: 120_000 }, [reviewerProvider], { explicitlyPinned: true });
21
114
  }
22
115
  catch (err) {
23
116
  return { status: 'error', findings: [], errorReason: `review agent threw: ${err instanceof Error ? err.message : String(err)}` };
@@ -32,17 +125,13 @@ export async function runQualityReview(reviewerProvider, packet, implReport, fil
32
125
  if (!report.summary) {
33
126
  try {
34
127
  const retryResult = await delegateWithEscalation({
35
- prompt: prompt +
36
- '\n\nIMPORTANT: Your response MUST begin with a "## Summary" section containing either "approved" or "changes_required". Follow this exact format.',
37
- agentType: reviewerSlot,
38
- briefQualityPolicy: 'off',
39
- timeoutMs: 120_000,
128
+ prompt: prompt + '\n\nIMPORTANT: Your response MUST begin with a "## Summary" section containing either "approved" or "changes_required". Follow this exact format.',
129
+ agentType: reviewerSlot, briefQualityPolicy: 'off', timeoutMs: 120_000,
40
130
  }, [reviewerProvider], { explicitlyPinned: true });
41
- if (retryResult.status === 'ok') {
131
+ if (retryResult.status === 'ok')
42
132
  report = parseStructuredReport(retryResult.output);
43
- }
44
133
  }
45
- catch { /* fall through to error */ }
134
+ catch { /* fall through */ }
46
135
  if (!report.summary) {
47
136
  return { status: 'error', findings: [], errorReason: 'reviewer output missing ## Summary section (after retry)' };
48
137
  }
@@ -57,4 +146,54 @@ export async function runQualityReview(reviewerProvider, packet, implReport, fil
57
146
  }
58
147
  return { status: 'approved', report, findings: [] };
59
148
  }
149
+ async function runAnnotationReview(reviewerProvider, packet, workerOutput, qualityReviewPromptBuilder) {
150
+ // Step 1: extract worker findings from worker output.
151
+ const workerFindings = extractWorkerFindings(workerOutput);
152
+ if (workerFindings === null) {
153
+ return {
154
+ status: 'error',
155
+ findings: [],
156
+ errorReason: 'worker output missing or invalid findings[] JSON block',
157
+ };
158
+ }
159
+ // Step 2: short-circuit when worker found nothing — nothing to annotate.
160
+ if (workerFindings.length === 0) {
161
+ return {
162
+ status: 'annotated',
163
+ annotatedFindings: [],
164
+ findings: [],
165
+ };
166
+ }
167
+ // Step 3: build the route-specific prompt and call the reviewer.
168
+ const prompt = qualityReviewPromptBuilder({ workerOutput, brief: packet.prompt, workerFindings });
169
+ const reviewerSlot = reviewerProvider.name === 'standard' ? 'standard' : 'complex';
170
+ let result;
171
+ try {
172
+ result = await delegateWithEscalation({ prompt, agentType: reviewerSlot, briefQualityPolicy: 'off', timeoutMs: 120_000 }, [reviewerProvider], { explicitlyPinned: true });
173
+ }
174
+ catch (err) {
175
+ return {
176
+ status: 'error',
177
+ findings: [],
178
+ errorReason: `review agent threw: ${err instanceof Error ? err.message : String(err)}`,
179
+ };
180
+ }
181
+ if (result.status !== 'ok') {
182
+ return {
183
+ status: 'error',
184
+ findings: [],
185
+ errorReason: `review agent returned status: ${result.status}`,
186
+ };
187
+ }
188
+ // Step 4: parse + validate + merge annotations.
189
+ const merged = parseAndMergeAnnotations(result.output, workerFindings);
190
+ if (!merged.ok) {
191
+ return { status: 'error', findings: [], errorReason: merged.reason };
192
+ }
193
+ return {
194
+ status: 'annotated',
195
+ annotatedFindings: merged.annotated,
196
+ findings: [],
197
+ };
198
+ }
60
199
  //# sourceMappingURL=quality-reviewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quality-reviewer.js","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality-reviewer.js","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ export interface RunTasksOptions {
50
50
  qualityReviewPromptBuilder?: (ctx: {
51
51
  workerOutput: string;
52
52
  brief: string;
53
+ workerFindings: import('../executors/_shared/findings-schema.js').WorkerFinding[];
53
54
  }) => string;
54
55
  }
55
56
  export declare function runTasks(tasks: TaskSpec[], config: MultiModelConfig, options?: RunTasksOptions): Promise<RunResult[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run-tasks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAUxD,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QACT,mBAAmB,EAAE,CAAC,GAAG,EAAE;YACzB,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,QAAQ,CAAC;YACnB,SAAS,EAAE,SAAS,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC;YACf,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;SAC5B,KAAK,IAAI,CAAC;KACZ,CAAC;IACF,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,+EAA+E;IAC/E,0BAA0B,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CACvF;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAsHtB;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run-tasks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAUxD,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QACT,mBAAmB,EAAE,CAAC,GAAG,EAAE;YACzB,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,QAAQ,CAAC;YACnB,SAAS,EAAE,SAAS,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC;YACf,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;SAC5B,KAAK,IAAI,CAAC;KACZ,CAAC;IACF,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,+EAA+E;IAC/E,0BAA0B,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,yCAAyC,EAAE,aAAa,EAAE,CAAA;KAAE,KAAK,MAAM,CAAC;CAC1K;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAsHtB;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -36,5 +36,6 @@ export declare function executeReviewedLifecycle(task: TaskSpec, resolved: {
36
36
  }, _route?: string, _client?: string, _triggeringSkill?: string, bus?: import('../observability/bus.js').EventBus, qualityReviewPromptBuilder?: (ctx: {
37
37
  workerOutput: string;
38
38
  brief: string;
39
+ workerFindings: import('../executors/_shared/findings-schema.js').WorkerFinding[];
39
40
  }) => string): Promise<RunResult>;
40
41
  //# sourceMappingURL=reviewed-lifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reviewed-lifecycle.d.ts","sourceRoot":"","sources":["../../src/run-tasks/reviewed-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewed-lifecycle.d.ts","sourceRoot":"","sources":["../../src/run-tasks/reviewed-lifecycle.ts"],"names":[],"mappings":"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"}