@zhixuan92/multi-model-agent-core 3.6.7 → 3.8.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 (152) hide show
  1. package/README.md +4 -0
  2. package/dist/config/read-only-review-flag.d.ts +8 -0
  3. package/dist/config/read-only-review-flag.d.ts.map +1 -0
  4. package/dist/config/read-only-review-flag.js +13 -0
  5. package/dist/config/read-only-review-flag.js.map +1 -0
  6. package/dist/delegate-with-escalation.d.ts +7 -1
  7. package/dist/delegate-with-escalation.d.ts.map +1 -1
  8. package/dist/delegate-with-escalation.js +22 -4
  9. package/dist/delegate-with-escalation.js.map +1 -1
  10. package/dist/diagnostics/http-server-log.d.ts +63 -0
  11. package/dist/diagnostics/http-server-log.d.ts.map +1 -0
  12. package/dist/diagnostics/http-server-log.js +188 -0
  13. package/dist/diagnostics/http-server-log.js.map +1 -0
  14. package/dist/diagnostics/jsonl-writer.d.ts +24 -0
  15. package/dist/diagnostics/jsonl-writer.d.ts.map +1 -0
  16. package/dist/diagnostics/jsonl-writer.js +57 -0
  17. package/dist/diagnostics/jsonl-writer.js.map +1 -0
  18. package/dist/diagnostics/types.d.ts +54 -0
  19. package/dist/diagnostics/types.d.ts.map +1 -0
  20. package/dist/diagnostics/types.js +2 -0
  21. package/dist/diagnostics/types.js.map +1 -0
  22. package/dist/executors/_shared/findings-schema.d.ts +40 -0
  23. package/dist/executors/_shared/findings-schema.d.ts.map +1 -0
  24. package/dist/executors/_shared/findings-schema.js +23 -0
  25. package/dist/executors/_shared/findings-schema.js.map +1 -0
  26. package/dist/executors/_shared/review-verdict-mapping.d.ts +16 -0
  27. package/dist/executors/_shared/review-verdict-mapping.d.ts.map +1 -0
  28. package/dist/executors/_shared/review-verdict-mapping.js +24 -0
  29. package/dist/executors/_shared/review-verdict-mapping.js.map +1 -0
  30. package/dist/executors/audit.d.ts.map +1 -1
  31. package/dist/executors/audit.js +21 -5
  32. package/dist/executors/audit.js.map +1 -1
  33. package/dist/executors/debug.d.ts.map +1 -1
  34. package/dist/executors/debug.js +11 -2
  35. package/dist/executors/debug.js.map +1 -1
  36. package/dist/executors/execution-context.d.ts.map +1 -1
  37. package/dist/executors/execution-context.js +1 -0
  38. package/dist/executors/execution-context.js.map +1 -1
  39. package/dist/executors/investigate.d.ts.map +1 -1
  40. package/dist/executors/investigate.js +22 -17
  41. package/dist/executors/investigate.js.map +1 -1
  42. package/dist/executors/review.d.ts.map +1 -1
  43. package/dist/executors/review.js +48 -48
  44. package/dist/executors/review.js.map +1 -1
  45. package/dist/executors/types.d.ts +11 -4
  46. package/dist/executors/types.d.ts.map +1 -1
  47. package/dist/executors/verify.d.ts.map +1 -1
  48. package/dist/executors/verify.js +43 -8
  49. package/dist/executors/verify.js.map +1 -1
  50. package/dist/heartbeat.d.ts.map +1 -1
  51. package/dist/heartbeat.js +5 -0
  52. package/dist/heartbeat.js.map +1 -1
  53. package/dist/index.d.ts +11 -2
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +7 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/intake/compilers/audit.d.ts.map +1 -1
  58. package/dist/intake/compilers/audit.js +2 -0
  59. package/dist/intake/compilers/audit.js.map +1 -1
  60. package/dist/intake/compilers/debug.d.ts.map +1 -1
  61. package/dist/intake/compilers/debug.js +1 -0
  62. package/dist/intake/compilers/debug.js.map +1 -1
  63. package/dist/intake/compilers/investigate.d.ts.map +1 -1
  64. package/dist/intake/compilers/investigate.js +3 -4
  65. package/dist/intake/compilers/investigate.js.map +1 -1
  66. package/dist/intake/compilers/review.d.ts.map +1 -1
  67. package/dist/intake/compilers/review.js +2 -0
  68. package/dist/intake/compilers/review.js.map +1 -1
  69. package/dist/intake/resolve.d.ts.map +1 -1
  70. package/dist/intake/resolve.js +11 -10
  71. package/dist/intake/resolve.js.map +1 -1
  72. package/dist/intake/types.d.ts +2 -1
  73. package/dist/intake/types.d.ts.map +1 -1
  74. package/dist/observability/buckets.d.ts +3 -0
  75. package/dist/observability/buckets.d.ts.map +1 -0
  76. package/dist/observability/buckets.js +21 -0
  77. package/dist/observability/buckets.js.map +1 -0
  78. package/dist/observability/bus.d.ts +11 -0
  79. package/dist/observability/bus.d.ts.map +1 -0
  80. package/dist/observability/bus.js +17 -0
  81. package/dist/observability/bus.js.map +1 -0
  82. package/dist/observability/events.d.ts +932 -0
  83. package/dist/observability/events.d.ts.map +1 -0
  84. package/dist/observability/events.js +313 -0
  85. package/dist/observability/events.js.map +1 -0
  86. package/dist/observability/local-log-sink.d.ts +10 -0
  87. package/dist/observability/local-log-sink.d.ts.map +1 -0
  88. package/dist/observability/local-log-sink.js +11 -0
  89. package/dist/observability/local-log-sink.js.map +1 -0
  90. package/dist/observability/telemetry-sink.d.ts +12 -0
  91. package/dist/observability/telemetry-sink.d.ts.map +1 -0
  92. package/dist/observability/telemetry-sink.js +24 -0
  93. package/dist/observability/telemetry-sink.js.map +1 -0
  94. package/dist/review/quality-only-prompts.d.ts +20 -0
  95. package/dist/review/quality-only-prompts.d.ts.map +1 -0
  96. package/dist/review/quality-only-prompts.js +108 -0
  97. package/dist/review/quality-only-prompts.js.map +1 -0
  98. package/dist/review/quality-reviewer.d.ts +4 -1
  99. package/dist/review/quality-reviewer.d.ts.map +1 -1
  100. package/dist/review/quality-reviewer.js +6 -4
  101. package/dist/review/quality-reviewer.js.map +1 -1
  102. package/dist/run-tasks/index.d.ts +11 -3
  103. package/dist/run-tasks/index.d.ts.map +1 -1
  104. package/dist/run-tasks/index.js +1 -1
  105. package/dist/run-tasks/index.js.map +1 -1
  106. package/dist/run-tasks/reviewed-lifecycle.d.ts +5 -2
  107. package/dist/run-tasks/reviewed-lifecycle.d.ts.map +1 -1
  108. package/dist/run-tasks/reviewed-lifecycle.js +211 -130
  109. package/dist/run-tasks/reviewed-lifecycle.js.map +1 -1
  110. package/dist/runners/types.d.ts +6 -1
  111. package/dist/runners/types.d.ts.map +1 -1
  112. package/dist/telemetry/bucketing.d.ts +2 -0
  113. package/dist/telemetry/bucketing.d.ts.map +1 -1
  114. package/dist/telemetry/bucketing.js +9 -0
  115. package/dist/telemetry/bucketing.js.map +1 -1
  116. package/dist/telemetry/event-builder.d.ts.map +1 -1
  117. package/dist/telemetry/event-builder.js +19 -1
  118. package/dist/telemetry/event-builder.js.map +1 -1
  119. package/dist/telemetry/types.d.ts +131 -5
  120. package/dist/telemetry/types.d.ts.map +1 -1
  121. package/dist/telemetry/types.js +13 -1
  122. package/dist/telemetry/types.js.map +1 -1
  123. package/dist/tool-schemas/audit.d.ts +17 -0
  124. package/dist/tool-schemas/audit.d.ts.map +1 -1
  125. package/dist/tool-schemas/debug.d.ts +17 -0
  126. package/dist/tool-schemas/debug.d.ts.map +1 -1
  127. package/dist/tool-schemas/delegate.d.ts +17 -0
  128. package/dist/tool-schemas/delegate.d.ts.map +1 -1
  129. package/dist/tool-schemas/execute-plan.d.ts +17 -0
  130. package/dist/tool-schemas/execute-plan.d.ts.map +1 -1
  131. package/dist/tool-schemas/investigate.d.ts +17 -4
  132. package/dist/tool-schemas/investigate.d.ts.map +1 -1
  133. package/dist/tool-schemas/investigate.js +0 -1
  134. package/dist/tool-schemas/investigate.js.map +1 -1
  135. package/dist/tool-schemas/retry.d.ts +17 -0
  136. package/dist/tool-schemas/retry.d.ts.map +1 -1
  137. package/dist/tool-schemas/review.d.ts +17 -0
  138. package/dist/tool-schemas/review.d.ts.map +1 -1
  139. package/dist/tool-schemas/shared-output.d.ts +17 -0
  140. package/dist/tool-schemas/shared-output.d.ts.map +1 -1
  141. package/dist/tool-schemas/shared-output.js +6 -0
  142. package/dist/tool-schemas/shared-output.js.map +1 -1
  143. package/dist/tool-schemas/verify.d.ts +17 -0
  144. package/dist/tool-schemas/verify.d.ts.map +1 -1
  145. package/dist/types.d.ts +5 -1
  146. package/dist/types.d.ts.map +1 -1
  147. package/dist/types.js.map +1 -1
  148. package/package.json +25 -5
  149. package/dist/diagnostics/disconnect-log.d.ts +0 -143
  150. package/dist/diagnostics/disconnect-log.d.ts.map +0 -1
  151. package/dist/diagnostics/disconnect-log.js +0 -374
  152. package/dist/diagnostics/disconnect-log.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Structured finding shape emitted by all 5 read-only mma-* workers.
4
+ * Used by the quality-review stage to iterate per-finding judgments.
5
+ *
6
+ * - `severity` is lowercase to match RunResult.concerns[].severity.
7
+ * - `file` and `line` are independently nullable: project-level findings
8
+ * have both null; multi-line findings keep `line` pointing at the start
9
+ * of the cited region and use `sourceQuote` for the full text.
10
+ * - `line` is 1-indexed (editor convention).
11
+ * - `sourceQuote` and `suggestedFix` are optional.
12
+ */
13
+ export const findingSchema = z.object({
14
+ id: z.string().min(1),
15
+ severity: z.enum(['high', 'medium', 'low']),
16
+ file: z.string().nullable(),
17
+ line: z.number().int().min(1).nullable(),
18
+ claim: z.string().min(1),
19
+ sourceQuote: z.string().optional(),
20
+ suggestedFix: z.string().optional(),
21
+ });
22
+ export const findingsSchema = z.array(findingSchema);
23
+ //# sourceMappingURL=findings-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings-schema.js","sourceRoot":"","sources":["../../../src/executors/_shared/findings-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { RunResult, ReviewVerdict } from '../../types.js';
2
+ /**
3
+ * Map RunResult review fields (from executeReviewedLifecycle) into the
4
+ * ExecutorOutput envelope shape. Centralizes the rename + type-narrowing
5
+ * + roundsUsed computation across all 5 read-only executors.
6
+ *
7
+ * Note: specReviewStatus's union is narrower than ReviewVerdict (no 'concerns').
8
+ * For read-only routes (quality_only), specReviewStatus is always
9
+ * 'not_applicable', so the cast is safe in practice.
10
+ */
11
+ export declare function mapReviewVerdicts(result: RunResult, killSwitchActive: boolean): {
12
+ specReviewVerdict: ReviewVerdict;
13
+ qualityReviewVerdict: ReviewVerdict;
14
+ roundsUsed: number;
15
+ };
16
+ //# sourceMappingURL=review-verdict-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-verdict-mapping.d.ts","sourceRoot":"","sources":["../../../src/executors/_shared/review-verdict-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,gBAAgB,EAAE,OAAO,GACxB;IACD,iBAAiB,EAAE,aAAa,CAAC;IACjC,oBAAoB,EAAE,aAAa,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB,CAaA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Map RunResult review fields (from executeReviewedLifecycle) into the
3
+ * ExecutorOutput envelope shape. Centralizes the rename + type-narrowing
4
+ * + roundsUsed computation across all 5 read-only executors.
5
+ *
6
+ * Note: specReviewStatus's union is narrower than ReviewVerdict (no 'concerns').
7
+ * For read-only routes (quality_only), specReviewStatus is always
8
+ * 'not_applicable', so the cast is safe in practice.
9
+ */
10
+ export function mapReviewVerdicts(result, killSwitchActive) {
11
+ if (killSwitchActive) {
12
+ return { specReviewVerdict: 'skipped', qualityReviewVerdict: 'skipped', roundsUsed: 0 };
13
+ }
14
+ return {
15
+ specReviewVerdict: (result.specReviewStatus ?? 'not_applicable'),
16
+ qualityReviewVerdict: (result.qualityReviewStatus ?? 'not_applicable'),
17
+ // CRITICAL: reviewRounds.quality starts at 1 (initial quality review attempt) and
18
+ // increments per rework. So roundsUsed equals reviewRounds.quality directly —
19
+ // do NOT add 1. If reviewRounds is undefined (lifecycle didn't populate it on
20
+ // success path — see Task 3 Step 6), default to 1 (one attempt assumed).
21
+ roundsUsed: result.reviewRounds?.quality ?? 1,
22
+ };
23
+ }
24
+ //# sourceMappingURL=review-verdict-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-verdict-mapping.js","sourceRoot":"","sources":["../../../src/executors/_shared/review-verdict-mapping.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAiB,EACjB,gBAAyB;IAMzB,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO;QACL,iBAAiB,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,CAAkB;QACjF,oBAAoB,EAAE,CAAC,MAAM,CAAC,mBAAmB,IAAI,gBAAgB,CAAkB;QACvF,kFAAkF;QAClF,8EAA8E;QAC9E,8EAA8E;QAC9E,yEAAyE;QACzE,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,CAAC;KAC9C,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/executors/audit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAkGtD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,WAAW,CAAC,CAwFtB"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/executors/audit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAuGtD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,WAAW,CAAC,CAiHtB"}
@@ -1,9 +1,14 @@
1
1
  // packages/core/src/executors/audit.ts
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { runTasks } from '../run-tasks/index.js';
4
+ import { executeReviewedLifecycle } from '../run-tasks/reviewed-lifecycle.js';
5
+ import { resolveAgent } from '../routing/resolve-agent.js';
6
+ import { buildAuditQualityPrompt } from '../review/quality-only-prompts.js';
7
+ import { mapReviewVerdicts } from './_shared/review-verdict-mapping.js';
4
8
  import { computeTimings, computeAggregateCost } from './shared-compute.js';
5
9
  import { notApplicable } from '../reporting/not-applicable.js';
6
10
  import { composeTerminalHeadline } from '../reporting/compose-terminal-headline.js';
11
+ import { resolveReadOnlyReviewFlag } from '../config/read-only-review-flag.js';
7
12
  // --- Ported from packages/mcp/src/tools/audit-document.ts ---
8
13
  function resolveAuditTypeText(auditType) {
9
14
  if (auditType === 'general')
@@ -83,7 +88,7 @@ export async function executeAudit(ctx, input) {
83
88
  const parentModel = ctx.parentModel ?? config.defaults?.parentModel ?? undefined;
84
89
  const baseTaskSpec = {
85
90
  agentType: 'complex',
86
- reviewPolicy: 'off',
91
+ reviewPolicy: 'quality_only',
87
92
  briefQualityPolicy: 'off',
88
93
  done: resolveAuditDoneCondition(input.auditType, hasContextBlocks),
89
94
  tools: config.defaults?.tools ?? 'full',
@@ -107,7 +112,7 @@ export async function executeAudit(ctx, input) {
107
112
  const startMs = Date.now();
108
113
  let results;
109
114
  try {
110
- results = await runTasks(tasks, config, { runtime, ...(ctx.batchId !== undefined && { batchId: ctx.batchId }), ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }), logger: ctx.logger, ...(ctx.recorder !== undefined && { recorder: ctx.recorder }), ...(ctx.route !== undefined && { route: ctx.route }), ...(ctx.client !== undefined && { client: ctx.client }), ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }) });
115
+ results = await runTasks(tasks, config, { runtime, ...(ctx.batchId !== undefined && { batchId: ctx.batchId }), ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }), logger: ctx.logger, ...(ctx.recorder !== undefined && { recorder: ctx.recorder }), ...(ctx.route !== undefined && { route: ctx.route }), ...(ctx.client !== undefined && { client: ctx.client }), ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }), qualityReviewPromptBuilder: buildAuditQualityPrompt });
111
116
  }
112
117
  catch (e) {
113
118
  const msg = e instanceof Error ? e.message : String(e);
@@ -117,6 +122,9 @@ export async function executeAudit(ctx, input) {
117
122
  const ctxId = autoRegisterContextBlock(results, contextBlockStore);
118
123
  const batchTimings = computeTimings(wallClockMs, results);
119
124
  const costSummary = computeAggregateCost(results);
125
+ const flag = resolveReadOnlyReviewFlag();
126
+ const useQualityReview = flag.isEnabledFor('audit_document');
127
+ const verdicts = mapReviewVerdicts(results[0], !useQualityReview);
120
128
  return {
121
129
  headline: composeTerminalHeadline({ tool: 'audit', awaitingClarification: false, tasksTotal: tasks.length, tasksCompleted: results.length }),
122
130
  results,
@@ -128,23 +136,30 @@ export async function executeAudit(ctx, input) {
128
136
  batchId: randomUUID(),
129
137
  wallClockMs,
130
138
  parentModel,
139
+ ...verdicts,
131
140
  ...(ctxId !== undefined && { contextBlockId: ctxId }),
132
141
  };
133
142
  }
134
143
  // Single-task mode
135
144
  const auditTypeText = resolveAuditTypeText(input.auditType);
136
145
  const prompt = buildAuditPrompt(auditTypeText, input.document, input.filePaths, hasContextBlocks);
137
- let results;
146
+ const task = { ...baseTaskSpec, prompt };
147
+ let result;
138
148
  try {
139
- results = await runTasks([{ ...baseTaskSpec, prompt }], config, { runtime, ...(ctx.batchId !== undefined && { batchId: ctx.batchId }), ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }), logger: ctx.logger, ...(ctx.recorder !== undefined && { recorder: ctx.recorder }), ...(ctx.route !== undefined && { route: ctx.route }), ...(ctx.client !== undefined && { client: ctx.client }), ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }) });
149
+ const resolved = resolveAgent('complex', [], config);
150
+ result = await executeReviewedLifecycle(task, resolved, config, 0, undefined, { batchId: ctx.batchId, recordHeartbeat: ctx.recordHeartbeat }, { logger: ctx.logger, verbose: config.diagnostics?.verbose ?? false }, ctx.recorder, ctx.route ?? 'audit', ctx.client, ctx.triggeringSkill, ctx.bus, buildAuditQualityPrompt);
140
151
  }
141
152
  catch (e) {
142
153
  const msg = e instanceof Error ? e.message : String(e);
143
- results = [{ output: '', status: 'error', usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null }, turns: 0, filesRead: [], filesWritten: [], toolCalls: [], outputIsDiagnostic: false, escalationLog: [], error: msg, errorCode: 'executor_error', retryable: false, durationMs: 0, structuredError: { code: 'executor_error', message: msg, where: 'executor:audit' }, workerStatus: 'failed' }];
154
+ result = { output: '', status: 'error', usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null }, turns: 0, filesRead: [], filesWritten: [], toolCalls: [], outputIsDiagnostic: false, escalationLog: [], error: msg, errorCode: 'executor_error', retryable: false, durationMs: 0, structuredError: { code: 'executor_error', message: msg, where: 'executor:audit' }, workerStatus: 'failed' };
144
155
  }
156
+ const results = [result];
145
157
  const ctxId = autoRegisterContextBlock(results, contextBlockStore);
146
158
  const batchTimings = computeTimings(0, results);
147
159
  const costSummary = computeAggregateCost(results);
160
+ const flag2 = resolveReadOnlyReviewFlag();
161
+ const useQualityReview2 = flag2.isEnabledFor('audit_document');
162
+ const verdicts = mapReviewVerdicts(result, !useQualityReview2);
148
163
  return {
149
164
  headline: composeTerminalHeadline({ tool: 'audit', awaitingClarification: false, tasksTotal: 1, tasksCompleted: results.length }),
150
165
  results,
@@ -156,6 +171,7 @@ export async function executeAudit(ctx, input) {
156
171
  batchId: randomUUID(),
157
172
  wallClockMs: 0,
158
173
  parentModel,
174
+ ...verdicts,
159
175
  ...(ctxId !== undefined && { contextBlockId: ctxId }),
160
176
  };
161
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/executors/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/executors/audit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/executors/debug.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AA0BtD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,WAAW,CAAC,CAqDtB"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/executors/debug.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AA6BtD,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,WAAW,CAAC,CA2DtB"}
@@ -4,6 +4,9 @@ import { runTasks } from '../run-tasks/index.js';
4
4
  import { computeTimings, computeAggregateCost } from './shared-compute.js';
5
5
  import { notApplicable } from '../reporting/not-applicable.js';
6
6
  import { composeTerminalHeadline } from '../reporting/compose-terminal-headline.js';
7
+ import { buildDebugQualityPrompt } from '../review/quality-only-prompts.js';
8
+ import { mapReviewVerdicts } from './_shared/review-verdict-mapping.js';
9
+ import { resolveReadOnlyReviewFlag } from '../config/read-only-review-flag.js';
7
10
  // --- Ported from packages/mcp/src/tools/debug-task.ts ---
8
11
  function buildFilePathsPrompt(filePaths) {
9
12
  if (!filePaths || filePaths.length === 0)
@@ -35,7 +38,7 @@ export async function executeDebug(ctx, input) {
35
38
  const parentModel = ctx.parentModel ?? config.defaults?.parentModel ?? undefined;
36
39
  const taskSpec = {
37
40
  agentType: 'complex',
38
- reviewPolicy: 'full',
41
+ reviewPolicy: 'quality_only',
39
42
  briefQualityPolicy: 'off',
40
43
  done: 'Identify the root cause with evidence (file, line, mechanism). Propose a fix. Verify the fix resolves the problem.',
41
44
  tools: config.defaults?.tools ?? 'full',
@@ -50,7 +53,7 @@ export async function executeDebug(ctx, input) {
50
53
  const runtime = contextBlockStore ? { contextBlockStore } : undefined;
51
54
  let results;
52
55
  try {
53
- results = await runTasks([{ ...taskSpec, prompt }], config, { runtime, ...(ctx.batchId !== undefined && { batchId: ctx.batchId }), ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }), logger: ctx.logger, ...(ctx.recorder !== undefined && { recorder: ctx.recorder }), ...(ctx.route !== undefined && { route: ctx.route }), ...(ctx.client !== undefined && { client: ctx.client }), ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }) });
56
+ results = await runTasks([{ ...taskSpec, prompt }], config, { runtime, ...(ctx.batchId !== undefined && { batchId: ctx.batchId }), ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }), logger: ctx.logger, ...(ctx.recorder !== undefined && { recorder: ctx.recorder }), ...(ctx.route !== undefined && { route: ctx.route }), ...(ctx.client !== undefined && { client: ctx.client }), ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }), qualityReviewPromptBuilder: buildDebugQualityPrompt });
54
57
  }
55
58
  catch (e) {
56
59
  const msg = e instanceof Error ? e.message : String(e);
@@ -59,6 +62,9 @@ export async function executeDebug(ctx, input) {
59
62
  const ctxId = autoRegisterContextBlock(results, contextBlockStore);
60
63
  const batchTimings = computeTimings(0, results);
61
64
  const costSummary = computeAggregateCost(results);
65
+ const flag = resolveReadOnlyReviewFlag();
66
+ const useQualityReview = flag.isEnabledFor('debug_task');
67
+ const verdicts = mapReviewVerdicts(results[0], !useQualityReview);
62
68
  return {
63
69
  headline: composeTerminalHeadline({ tool: 'debug', awaitingClarification: false, tasksTotal: 1, tasksCompleted: results.length }),
64
70
  results,
@@ -70,6 +76,9 @@ export async function executeDebug(ctx, input) {
70
76
  batchId: randomUUID(),
71
77
  wallClockMs: 0,
72
78
  parentModel,
79
+ specReviewVerdict: verdicts.specReviewVerdict,
80
+ qualityReviewVerdict: verdicts.qualityReviewVerdict,
81
+ roundsUsed: verdicts.roundsUsed,
73
82
  ...(ctxId !== undefined && { contextBlockId: ctxId }),
74
83
  };
75
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/executors/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/executors/debug.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,2DAA2D;AAE3D,SAAS,oBAAoB,CAAC,SAAoB;IAChD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,OAAO,kCAAkC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAA0C,EAC1C,KAAgF;IAEhF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC;AACZ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAqB,EACrB,KAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC;IAE1C,MAAM,KAAK,GAAa,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,SAAS,CAAC;IAEjF,MAAM,QAAQ,GAAsB;QAClC,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,cAAc;QAC5B,kBAAkB,EAAE,KAAK;QACzB,IAAI,EAAE,oHAAoH;QAC1H,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM;QACvC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,SAAS;QAClD,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE;QAC7C,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;QAC3D,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG;QAC3B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,WAAW;QACX,UAAU,EAAE,KAAK;KAClB,CAAC;IACF,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAc,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACljB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAgB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,gBAAyB,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,QAAiB,EAAE,CAAC,CAAC;IAClb,CAAC;IACD,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAElE,OAAO;QACL,QAAQ,EAAE,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACjI,OAAO;QACP,YAAY;QACZ,WAAW;QACX,gBAAgB,EAAE,aAAa,CAAC,+CAA+C,CAAC;QAChF,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC;QACvC,sBAAsB,EAAE,aAAa,CAAC,kCAAkC,CAAC;QACzE,OAAO,EAAE,UAAU,EAAE;QACrB,WAAW,EAAE,CAAC;QACd,WAAW;QACX,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/executors/execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,GAAG,gBAAgB,CAkBpF"}
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/executors/execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,GAAG,gBAAgB,CAmBpF"}
@@ -19,6 +19,7 @@ export function buildExecutionContext(input) {
19
19
  ...(input.route !== undefined && { route: input.route }),
20
20
  ...(input.client !== undefined && { client: input.client }),
21
21
  ...(input.triggeringSkill !== undefined && { triggeringSkill: input.triggeringSkill }),
22
+ ...(input.bus !== undefined && { bus: input.bus }),
22
23
  };
23
24
  }
24
25
  //# sourceMappingURL=execution-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/executors/execution-context.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,KAA4B;IAChE,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC7F,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK,CAAC,iBAAiB;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACnG,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1E,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9D,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QACtF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACxD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/executors/execution-context.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,KAA4B;IAChE,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC7F,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK,CAAC,iBAAiB;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACnG,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1E,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9D,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QACtF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACxD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QACtF,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"investigate.d.ts","sourceRoot":"","sources":["../../src/executors/investigate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAK5D,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,oCAAoC,CAAC;AAK5C,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAiIzB"}
1
+ {"version":3,"file":"investigate.d.ts","sourceRoot":"","sources":["../../src/executors/investigate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAM5D,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,oCAAoC,CAAC;AAO5C,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAkJzB"}
@@ -1,36 +1,36 @@
1
1
  // packages/core/src/executors/investigate.ts
2
2
  import { randomUUID } from 'node:crypto';
3
- import { runTasks } from '../run-tasks/index.js';
3
+ import { executeReviewedLifecycle } from '../run-tasks/reviewed-lifecycle.js';
4
+ import { resolveAgent } from '../routing/resolve-agent.js';
4
5
  import { computeTimings, computeAggregateCost } from './shared-compute.js';
5
6
  import { notApplicable } from '../reporting/not-applicable.js';
6
7
  import { compileInvestigate, } from '../intake/compilers/investigate.js';
7
8
  import { parseInvestigationReport } from '../reporting/parse-investigation-report.js';
8
9
  import { deriveInvestigateWorkerStatus } from '../reporting/derive-investigate-status.js';
9
10
  import { composeInvestigateTerminalHeadline } from '../reporting/compose-investigate-headline.js';
11
+ import { mapReviewVerdicts } from './_shared/review-verdict-mapping.js';
12
+ import { resolveReadOnlyReviewFlag } from '../config/read-only-review-flag.js';
10
13
  export async function executeInvestigate(ctx, args) {
11
14
  const { config } = ctx;
12
15
  const cwd = ctx.projectContext.cwd;
13
16
  const spec = compileInvestigate(args.input, args.resolvedContextBlocks, args.canonicalizedFilePaths, args.relativeFilePathsForPrompt, cwd);
14
17
  const taskSpec = {
15
18
  ...spec,
19
+ agentType: 'complex',
20
+ reviewPolicy: 'quality_only',
16
21
  timeoutMs: config.defaults?.timeoutMs ?? 1_800_000,
17
22
  maxCostUSD: config.defaults?.maxCostUSD ?? 10,
18
23
  sandboxPolicy: config.defaults?.sandboxPolicy ?? 'cwd-only',
19
- briefQualityPolicy: 'off',
20
24
  };
25
+ const resolved = resolveAgent('complex', [], config);
21
26
  const startMs = Date.now();
22
- let results;
27
+ let result;
23
28
  let runtimeError;
24
29
  try {
25
- results = await runTasks([taskSpec], config, {
30
+ result = await executeReviewedLifecycle(taskSpec, resolved, config, 0, undefined, {
26
31
  ...(ctx.batchId !== undefined && { batchId: ctx.batchId }),
27
32
  ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }),
28
- logger: ctx.logger,
29
- ...(ctx.recorder !== undefined && { recorder: ctx.recorder }),
30
- ...(ctx.route !== undefined && { route: ctx.route }),
31
- ...(ctx.client !== undefined && { client: ctx.client }),
32
- ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }),
33
- });
33
+ }, { logger: ctx.logger }, ctx.recorder, ctx.route ?? 'investigate', ctx.client, ctx.triggeringSkill, ctx.bus);
34
34
  }
35
35
  catch (e) {
36
36
  runtimeError = e instanceof Error ? e : new Error(String(e));
@@ -65,11 +65,10 @@ export async function executeInvestigate(ctx, args) {
65
65
  },
66
66
  workerStatus: 'failed',
67
67
  };
68
- results = [fallback];
68
+ result = fallback;
69
69
  }
70
70
  const wallClockMs = Date.now() - startMs;
71
- const result = results[0];
72
- // Pull lifecycle signals (set by the lifecycle in Task 13a).
71
+ // Pull lifecycle signals (set by executeReviewedLifecycle).
73
72
  const capExhausted = result?.capExhausted;
74
73
  const workerError = runtimeError ?? result?.workerError;
75
74
  const lifecycleClarificationRequested = Boolean(result?.lifecycleClarificationRequested);
@@ -108,17 +107,23 @@ export async function executeInvestigate(ctx, args) {
108
107
  unresolvedCount: result?.structuredReport?.unresolved?.length ?? 0,
109
108
  ...(derived.incompleteReason !== undefined && { incompleteReason: derived.incompleteReason }),
110
109
  });
110
+ const flag = resolveReadOnlyReviewFlag();
111
+ const useQualityReview = flag.isEnabledFor('investigate_codebase');
112
+ const reviewVerdicts = mapReviewVerdicts(result, !useQualityReview);
111
113
  return {
112
114
  headline,
113
- results,
114
- batchTimings: computeTimings(wallClockMs, results),
115
- costSummary: computeAggregateCost(results),
115
+ results: [result],
116
+ batchTimings: computeTimings(wallClockMs, [result]),
117
+ costSummary: computeAggregateCost([result]),
116
118
  structuredReport: notApplicable('per-task structured report carried on result'),
117
119
  error: notApplicable('batch succeeded'),
118
120
  proposedInterpretation: notApplicable('batch not awaiting clarification'),
119
- batchId: ctx.batchId ?? randomUUID(), // Prefer dispatch-supplied batchId; fall back only if absent.
121
+ batchId: ctx.batchId ?? randomUUID(),
120
122
  wallClockMs,
121
123
  parentModel: ctx.parentModel ?? config.defaults?.parentModel,
124
+ specReviewVerdict: reviewVerdicts.specReviewVerdict,
125
+ qualityReviewVerdict: reviewVerdicts.qualityReviewVerdict,
126
+ roundsUsed: reviewVerdicts.roundsUsed,
122
127
  };
123
128
  }
124
129
  //# sourceMappingURL=investigate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"investigate.js","sourceRoot":"","sources":["../../src/executors/investigate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"investigate.js","sourceRoot":"","sources":["../../src/executors/investigate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/executors/review.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAyFvD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,YAAY,CAAC,CAoFvB"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/executors/review.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAkFvD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2BD,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,YAAY,CAAC,CA0FvB"}
@@ -1,9 +1,14 @@
1
1
  // packages/core/src/executors/review.ts
2
2
  import { randomUUID } from 'node:crypto';
3
- import { runTasks } from '../run-tasks/index.js';
3
+ import { resolveAgent } from '../routing/resolve-agent.js';
4
+ import { executeReviewedLifecycle } from '../run-tasks/reviewed-lifecycle.js';
5
+ import { buildReviewQualityPrompt } from '../review/quality-only-prompts.js';
6
+ import { mapReviewVerdicts } from './_shared/review-verdict-mapping.js';
4
7
  import { computeTimings, computeAggregateCost } from './shared-compute.js';
5
8
  import { notApplicable } from '../reporting/not-applicable.js';
6
9
  import { composeTerminalHeadline } from '../reporting/compose-terminal-headline.js';
10
+ import { expandContextBlocks } from '../context/expand-context-blocks.js';
11
+ import { resolveReadOnlyReviewFlag } from '../config/read-only-review-flag.js';
7
12
  // --- Ported from packages/mcp/src/tools/review-code.ts ---
8
13
  const REVIEW_DONE_CONDITIONS = {
9
14
  security: 'Identify security vulnerabilities with severity, location, and remediation.',
@@ -58,15 +63,9 @@ function resolveDispatchMode(inlineContent, filePaths) {
58
63
  return 'fan_out';
59
64
  return 'single';
60
65
  }
61
- function autoRegisterContextBlock(results, store) {
62
- if (!store)
63
- return undefined;
64
- const usable = results.filter(r => !r.outputIsDiagnostic && r.output.trim().length > 0);
65
- if (usable.length === 0)
66
- return undefined;
67
- const combined = usable.map(r => r.output).join('\n\n---\n\n');
68
- const { id } = store.register(combined);
69
- return id;
66
+ async function runSingleReview(task, agentType, config, ctx, taskIndex) {
67
+ const resolved = resolveAgent(agentType, [], config);
68
+ return executeReviewedLifecycle(task, resolved, config, taskIndex, undefined, { batchId: ctx.batchId, recordHeartbeat: ctx.recordHeartbeat }, { logger: ctx.logger }, ctx.recorder, ctx.route ?? 'review', ctx.client, ctx.triggeringSkill, ctx.bus, buildReviewQualityPrompt);
70
69
  }
71
70
  export async function executeReview(ctx, input) {
72
71
  const { config, contextBlockStore } = ctx;
@@ -74,7 +73,7 @@ export async function executeReview(ctx, input) {
74
73
  const parentModel = ctx.parentModel ?? config.defaults?.parentModel ?? undefined;
75
74
  const baseTaskSpec = {
76
75
  agentType: 'complex',
77
- reviewPolicy: 'full',
76
+ reviewPolicy: 'quality_only',
78
77
  briefQualityPolicy: 'off',
79
78
  done: resolveReviewDoneCondition(input.focus, hasContextBlocks),
80
79
  tools: config.defaults?.tools ?? 'full',
@@ -85,56 +84,55 @@ export async function executeReview(ctx, input) {
85
84
  contextBlockIds: input.contextBlockIds,
86
85
  parentModel,
87
86
  };
88
- const runtime = contextBlockStore ? { contextBlockStore } : undefined;
89
87
  const mode = resolveDispatchMode(input.code, input.filePaths);
88
+ // Build the list of tasks (fan_out creates one per file path, single creates one)
89
+ let taskSpecs;
90
90
  if (mode === 'fan_out') {
91
91
  const validPaths = input.filePaths.filter(p => p.trim().length > 0);
92
92
  const promptTemplate = buildReviewPrompt(undefined, undefined, input.focus, hasContextBlocks);
93
- const tasks = validPaths.map(fp => ({
93
+ taskSpecs = validPaths.map(fp => ({
94
94
  ...baseTaskSpec,
95
95
  prompt: buildPerFilePrompt(fp, promptTemplate),
96
96
  }));
97
- const startMs = Date.now();
98
- let results;
97
+ }
98
+ else {
99
+ const prompt = buildReviewPrompt(input.code, input.filePaths, input.focus, hasContextBlocks);
100
+ taskSpecs = [{ ...baseTaskSpec, prompt }];
101
+ }
102
+ // Expand context blocks for each task
103
+ const expandedTasks = taskSpecs.map(task => {
99
104
  try {
100
- results = await runTasks(tasks, config, { runtime, ...(ctx.batchId !== undefined && { batchId: ctx.batchId }), ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }), logger: ctx.logger, ...(ctx.recorder !== undefined && { recorder: ctx.recorder }), ...(ctx.route !== undefined && { route: ctx.route }), ...(ctx.client !== undefined && { client: ctx.client }), ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }) });
105
+ return expandContextBlocks(task, contextBlockStore);
101
106
  }
102
107
  catch (e) {
103
- const msg = e instanceof Error ? e.message : String(e);
104
- results = [{ output: '', status: 'error', usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null }, turns: 0, filesRead: [], filesWritten: [], toolCalls: [], outputIsDiagnostic: false, escalationLog: [], error: msg, errorCode: 'executor_error', retryable: false, durationMs: 0, structuredError: { code: 'executor_error', message: msg, where: 'executor:review' }, workerStatus: 'failed' }];
108
+ ctx.logger.error('expandContextBlocks_failed_review', e);
109
+ return task;
105
110
  }
106
- const wallClockMs = Date.now() - startMs;
107
- const ctxId = autoRegisterContextBlock(results, contextBlockStore);
108
- const batchTimings = computeTimings(wallClockMs, results);
109
- const costSummary = computeAggregateCost(results);
111
+ });
112
+ const startMs = Date.now();
113
+ const results = await Promise.all(expandedTasks.map((task, i) => runSingleReview(task, task.agentType ?? 'complex', config, ctx, i).catch((e) => {
114
+ const msg = e instanceof Error ? e.message : String(e);
110
115
  return {
111
- headline: composeTerminalHeadline({ tool: 'review', awaitingClarification: false, tasksTotal: tasks.length, tasksCompleted: results.length }),
112
- results,
113
- batchTimings,
114
- costSummary,
115
- structuredReport: notApplicable('no structured report emitted by this executor'),
116
- error: notApplicable('batch succeeded'),
117
- proposedInterpretation: notApplicable('batch not awaiting clarification'),
118
- batchId: randomUUID(),
119
- wallClockMs,
120
- parentModel,
121
- ...(ctxId !== undefined && { contextBlockId: ctxId }),
116
+ output: '', status: 'error',
117
+ usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null },
118
+ turns: 0, filesRead: [], filesWritten: [], toolCalls: [],
119
+ outputIsDiagnostic: false, escalationLog: [],
120
+ error: msg, errorCode: 'executor_error', retryable: false,
121
+ durationMs: 0,
122
+ structuredError: { code: 'executor_error', message: msg, where: 'executor:review' },
123
+ workerStatus: 'failed',
122
124
  };
123
- }
124
- const prompt = buildReviewPrompt(input.code, input.filePaths, input.focus, hasContextBlocks);
125
- let results;
126
- try {
127
- results = await runTasks([{ ...baseTaskSpec, prompt }], config, { runtime, ...(ctx.batchId !== undefined && { batchId: ctx.batchId }), ...(ctx.recordHeartbeat !== undefined && { recordHeartbeat: ctx.recordHeartbeat }), logger: ctx.logger, ...(ctx.recorder !== undefined && { recorder: ctx.recorder }), ...(ctx.route !== undefined && { route: ctx.route }), ...(ctx.client !== undefined && { client: ctx.client }), ...(ctx.triggeringSkill !== undefined && { triggeringSkill: ctx.triggeringSkill }) });
128
- }
129
- catch (e) {
130
- const msg = e instanceof Error ? e.message : String(e);
131
- results = [{ output: '', status: 'error', usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null }, turns: 0, filesRead: [], filesWritten: [], toolCalls: [], outputIsDiagnostic: false, escalationLog: [], error: msg, errorCode: 'executor_error', retryable: false, durationMs: 0, structuredError: { code: 'executor_error', message: msg, where: 'executor:review' }, workerStatus: 'failed' }];
132
- }
133
- const ctxId = autoRegisterContextBlock(results, contextBlockStore);
134
- const batchTimings = computeTimings(0, results);
125
+ })));
126
+ const wallClockMs = Date.now() - startMs;
127
+ const batchTimings = computeTimings(wallClockMs, results);
135
128
  const costSummary = computeAggregateCost(results);
129
+ // Surface review verdicts from the lifecycle
130
+ const primaryResult = results[0];
131
+ const flag = resolveReadOnlyReviewFlag();
132
+ const useQualityReview = flag.isEnabledFor('review_code');
133
+ const verdicts = mapReviewVerdicts(primaryResult ?? {}, !useQualityReview);
136
134
  return {
137
- headline: composeTerminalHeadline({ tool: 'review', awaitingClarification: false, tasksTotal: 1, tasksCompleted: results.length }),
135
+ headline: composeTerminalHeadline({ tool: 'review', awaitingClarification: false, tasksTotal: taskSpecs.length, tasksCompleted: results.length }),
138
136
  results,
139
137
  batchTimings,
140
138
  costSummary,
@@ -142,9 +140,11 @@ export async function executeReview(ctx, input) {
142
140
  error: notApplicable('batch succeeded'),
143
141
  proposedInterpretation: notApplicable('batch not awaiting clarification'),
144
142
  batchId: randomUUID(),
145
- wallClockMs: 0,
143
+ wallClockMs,
146
144
  parentModel,
147
- ...(ctxId !== undefined && { contextBlockId: ctxId }),
145
+ specReviewVerdict: verdicts.specReviewVerdict,
146
+ qualityReviewVerdict: verdicts.qualityReviewVerdict,
147
+ roundsUsed: verdicts.roundsUsed,
148
148
  };
149
149
  }
150
150
  //# sourceMappingURL=review.js.map