@zhixuan92/multi-model-agent-core 4.0.6 → 4.2.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 (141) hide show
  1. package/dist/bounded-execution/index.d.ts +2 -0
  2. package/dist/bounded-execution/index.d.ts.map +1 -1
  3. package/dist/bounded-execution/index.js +2 -0
  4. package/dist/bounded-execution/index.js.map +1 -1
  5. package/dist/bounded-execution/safety-max-turns.d.ts +17 -0
  6. package/dist/bounded-execution/safety-max-turns.d.ts.map +1 -0
  7. package/dist/bounded-execution/safety-max-turns.js +17 -0
  8. package/dist/bounded-execution/safety-max-turns.js.map +1 -0
  9. package/dist/bounded-execution/stall-watchdog.d.ts +16 -0
  10. package/dist/bounded-execution/stall-watchdog.d.ts.map +1 -0
  11. package/dist/bounded-execution/stall-watchdog.js +69 -0
  12. package/dist/bounded-execution/stall-watchdog.js.map +1 -0
  13. package/dist/intake/brief-compiler-slots/delegate.d.ts +18 -0
  14. package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -1
  15. package/dist/intake/brief-compiler-slots/delegate.js +36 -3
  16. package/dist/intake/brief-compiler-slots/delegate.js.map +1 -1
  17. package/dist/lifecycle/handlers/execution-context-builder.d.ts.map +1 -1
  18. package/dist/lifecycle/handlers/execution-context-builder.js +2 -1
  19. package/dist/lifecycle/handlers/execution-context-builder.js.map +1 -1
  20. package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -1
  21. package/dist/lifecycle/handlers/quality-chain-handlers.js +10 -1
  22. package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -1
  23. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts +62 -0
  24. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts.map +1 -0
  25. package/dist/lifecycle/parallel-criteria-dispatcher.js +328 -0
  26. package/dist/lifecycle/parallel-criteria-dispatcher.js.map +1 -0
  27. package/dist/lifecycle/parallel-criteria-routes.d.ts +16 -0
  28. package/dist/lifecycle/parallel-criteria-routes.d.ts.map +1 -0
  29. package/dist/lifecycle/parallel-criteria-routes.js +147 -0
  30. package/dist/lifecycle/parallel-criteria-routes.js.map +1 -0
  31. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  32. package/dist/lifecycle/task-runner.js +268 -97
  33. package/dist/lifecycle/task-runner.js.map +1 -1
  34. package/dist/providers/anthropic-messages-adapter.d.ts.map +1 -1
  35. package/dist/providers/anthropic-messages-adapter.js +8 -1
  36. package/dist/providers/anthropic-messages-adapter.js.map +1 -1
  37. package/dist/providers/provider-factory.d.ts.map +1 -1
  38. package/dist/providers/provider-factory.js +2 -1
  39. package/dist/providers/provider-factory.js.map +1 -1
  40. package/dist/providers/runner-adapter.d.ts +8 -0
  41. package/dist/providers/runner-adapter.d.ts.map +1 -1
  42. package/dist/providers/runner-shell-types.d.ts +7 -0
  43. package/dist/providers/runner-shell-types.d.ts.map +1 -1
  44. package/dist/providers/runner-shell.d.ts +51 -1
  45. package/dist/providers/runner-shell.d.ts.map +1 -1
  46. package/dist/providers/runner-shell.js +130 -0
  47. package/dist/providers/runner-shell.js.map +1 -1
  48. package/dist/reporting/report-parser-slots/investigate-report.d.ts.map +1 -1
  49. package/dist/reporting/report-parser-slots/investigate-report.js +41 -2
  50. package/dist/reporting/report-parser-slots/investigate-report.js.map +1 -1
  51. package/dist/review/annotator-engine.d.ts +7 -1
  52. package/dist/review/annotator-engine.d.ts.map +1 -1
  53. package/dist/review/annotator-engine.js +15 -2
  54. package/dist/review/annotator-engine.js.map +1 -1
  55. package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
  56. package/dist/review/annotator-prompt-builder.js +10 -2
  57. package/dist/review/annotator-prompt-builder.js.map +1 -1
  58. package/dist/review/reviewer-engine.d.ts.map +1 -1
  59. package/dist/review/reviewer-engine.js +4 -3
  60. package/dist/review/reviewer-engine.js.map +1 -1
  61. package/dist/review/templates/annotator-audit.d.ts.map +1 -1
  62. package/dist/review/templates/annotator-audit.js +5 -3
  63. package/dist/review/templates/annotator-audit.js.map +1 -1
  64. package/dist/review/templates/annotator-debug.d.ts.map +1 -1
  65. package/dist/review/templates/annotator-debug.js +11 -7
  66. package/dist/review/templates/annotator-debug.js.map +1 -1
  67. package/dist/review/templates/annotator-investigate.d.ts.map +1 -1
  68. package/dist/review/templates/annotator-investigate.js +6 -3
  69. package/dist/review/templates/annotator-investigate.js.map +1 -1
  70. package/dist/review/templates/annotator-review.d.ts.map +1 -1
  71. package/dist/review/templates/annotator-review.js +13 -6
  72. package/dist/review/templates/annotator-review.js.map +1 -1
  73. package/dist/review/templates/annotator-shared.d.ts +8 -1
  74. package/dist/review/templates/annotator-shared.d.ts.map +1 -1
  75. package/dist/review/templates/annotator-shared.js.map +1 -1
  76. package/dist/review/templates/annotator-verify.d.ts.map +1 -1
  77. package/dist/review/templates/annotator-verify.js +11 -5
  78. package/dist/review/templates/annotator-verify.js.map +1 -1
  79. package/dist/tools/audit/implementer-criteria.d.ts +60 -4
  80. package/dist/tools/audit/implementer-criteria.d.ts.map +1 -1
  81. package/dist/tools/audit/implementer-criteria.js +118 -11
  82. package/dist/tools/audit/implementer-criteria.js.map +1 -1
  83. package/dist/tools/audit/schema.d.ts +3 -10
  84. package/dist/tools/audit/schema.d.ts.map +1 -1
  85. package/dist/tools/audit/schema.js +3 -4
  86. package/dist/tools/audit/schema.js.map +1 -1
  87. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  88. package/dist/tools/audit/tool-config.js +70 -36
  89. package/dist/tools/audit/tool-config.js.map +1 -1
  90. package/dist/tools/criteria-types.d.ts +27 -0
  91. package/dist/tools/criteria-types.d.ts.map +1 -0
  92. package/dist/tools/criteria-types.js +25 -0
  93. package/dist/tools/criteria-types.js.map +1 -0
  94. package/dist/tools/debug/implementer-criteria.d.ts +47 -4
  95. package/dist/tools/debug/implementer-criteria.d.ts.map +1 -1
  96. package/dist/tools/debug/implementer-criteria.js +104 -13
  97. package/dist/tools/debug/implementer-criteria.js.map +1 -1
  98. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  99. package/dist/tools/debug/tool-config.js +31 -4
  100. package/dist/tools/debug/tool-config.js.map +1 -1
  101. package/dist/tools/delegate/implementer-criteria.d.ts +62 -0
  102. package/dist/tools/delegate/implementer-criteria.d.ts.map +1 -0
  103. package/dist/tools/delegate/implementer-criteria.js +114 -0
  104. package/dist/tools/delegate/implementer-criteria.js.map +1 -0
  105. package/dist/tools/execute-plan/implementer-criteria.d.ts +52 -0
  106. package/dist/tools/execute-plan/implementer-criteria.d.ts.map +1 -0
  107. package/dist/tools/execute-plan/implementer-criteria.js +104 -0
  108. package/dist/tools/execute-plan/implementer-criteria.js.map +1 -0
  109. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  110. package/dist/tools/execute-plan/tool-config.js +17 -3
  111. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  112. package/dist/tools/investigate/implementer-criteria.d.ts +51 -5
  113. package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -1
  114. package/dist/tools/investigate/implementer-criteria.js +109 -13
  115. package/dist/tools/investigate/implementer-criteria.js.map +1 -1
  116. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  117. package/dist/tools/investigate/tool-config.js +20 -8
  118. package/dist/tools/investigate/tool-config.js.map +1 -1
  119. package/dist/tools/parallel-criteria-prompt.d.ts +106 -0
  120. package/dist/tools/parallel-criteria-prompt.d.ts.map +1 -0
  121. package/dist/tools/parallel-criteria-prompt.js +86 -0
  122. package/dist/tools/parallel-criteria-prompt.js.map +1 -0
  123. package/dist/tools/review/implementer-criteria.d.ts +50 -1
  124. package/dist/tools/review/implementer-criteria.d.ts.map +1 -1
  125. package/dist/tools/review/implementer-criteria.js +113 -9
  126. package/dist/tools/review/implementer-criteria.js.map +1 -1
  127. package/dist/tools/review/tool-config.d.ts.map +1 -1
  128. package/dist/tools/review/tool-config.js +50 -7
  129. package/dist/tools/review/tool-config.js.map +1 -1
  130. package/dist/tools/verify/implementer-criteria.d.ts +49 -0
  131. package/dist/tools/verify/implementer-criteria.d.ts.map +1 -1
  132. package/dist/tools/verify/implementer-criteria.js +104 -8
  133. package/dist/tools/verify/implementer-criteria.js.map +1 -1
  134. package/dist/tools/verify/tool-config.d.ts.map +1 -1
  135. package/dist/tools/verify/tool-config.js +22 -2
  136. package/dist/tools/verify/tool-config.js.map +1 -1
  137. package/dist/types/run-result.d.ts +18 -0
  138. package/dist/types/run-result.d.ts.map +1 -1
  139. package/dist/types/task-spec.d.ts +11 -0
  140. package/dist/types/task-spec.d.ts.map +1 -1
  141. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { RunInput, RunResult } from './runner-shell-types.js';
2
- import type { RunnerAdapter } from './runner-adapter.js';
2
+ import type { RunnerAdapter, AdapterCapabilities } from './runner-adapter.js';
3
3
  export declare function shellCommandWritesFs(command: string): boolean;
4
4
  export declare class RunnerShell {
5
5
  private adapter;
@@ -13,5 +13,55 @@ export declare class RunnerShell {
13
13
  * so without this default every reviewer-side stage would record costUSD=null. */
14
14
  defaultModel?: string | undefined);
15
15
  run(input: RunInput): Promise<RunResult>;
16
+ /**
17
+ * Cache-warmer call: sends one minimal turn with the cached prefix so the
18
+ * upstream provider's prompt cache writes the prefix. Subsequent fan-out
19
+ * sub-workers using the same prefix serve from cache.
20
+ *
21
+ * The user message is a single token ("ready") and the assistant response
22
+ * is discarded. For providers that don't honor `cache_control` (codex,
23
+ * future providers), this still runs but produces no measurable cache
24
+ * benefit.
25
+ *
26
+ * Bounded by an internal 10-min hard cap (5-min soft warning) so a slow
27
+ * or hanging warmer cannot blow the route's overall wall-clock. On cap
28
+ * hit, the warmer returns with capHit=true and the dispatcher proceeds
29
+ * to fan-out WITHOUT cache priming — sub-workers will pay full input
30
+ * cost but the route still completes (correctness > optimization).
31
+ */
32
+ prime(systemPrompt: string, opts: PrimeOptions): Promise<PrimeResult>;
33
+ }
34
+ export interface PrimeOptions {
35
+ cwd: string;
36
+ cacheControl?: {
37
+ type: 'ephemeral';
38
+ };
39
+ abortSignal?: AbortSignal;
40
+ deadlineMs?: number;
41
+ capabilities?: AdapterCapabilities;
42
+ bus?: import('../events/event-emitter.js').EventEmitter;
43
+ batchId?: string;
44
+ taskIndex?: number;
45
+ tier?: string;
46
+ stageLabel?: string;
47
+ }
48
+ export interface PrimeResult {
49
+ /** Whether the warmer attempted to register a cacheable prefix
50
+ * (i.e. opts.cacheControl was set and the call returned). The actual
51
+ * cache effectiveness surfaces in subsequent sub-worker
52
+ * cachedReadTokens, NOT here — see criteria_fanout_summary's
53
+ * totalCachedReadTokens / cacheHitConfirmed. */
54
+ cacheControlSent: boolean;
55
+ /** True iff the warmer hit the 10-min hard cap and was force-aborted.
56
+ * Dispatcher proceeds to fan-out anyway; sub-workers pay full input
57
+ * cost since no cache was primed. */
58
+ capHit: boolean;
59
+ durationMs: number;
60
+ usage: {
61
+ inputTokens: number;
62
+ outputTokens: number;
63
+ cachedReadTokens: number;
64
+ cachedNonReadTokens: number;
65
+ };
16
66
  }
17
67
  //# sourceMappingURL=runner-shell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-shell.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAA8B,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAA6D,MAAM,qBAAqB,CAAC;AAoEpH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7D;AAaD,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;IACf;;uFAEmF;IACnF,OAAO,CAAC,YAAY,CAAC;gBAJb,OAAO,EAAE,aAAa;IAC9B;;uFAEmF;IAC3E,YAAY,CAAC,EAAE,MAAM,YAAA;IAGzB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAqN/C"}
1
+ {"version":3,"file":"runner-shell.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAA8B,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAwC,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAoEpH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7D;AAaD,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;IACf;;uFAEmF;IACnF,OAAO,CAAC,YAAY,CAAC;gBAJb,OAAO,EAAE,aAAa;IAC9B;;uFAEmF;IAC3E,YAAY,CAAC,EAAE,MAAM,YAAA;IAGzB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAuN9C;;;;;;;;;;;;;;;OAeG;IACG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;CA2G5E;AAQD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,GAAG,CAAC,EAAE,OAAO,4BAA4B,EAAE,YAAY,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;qDAIiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;0CAEsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7G"}
@@ -156,6 +156,7 @@ export class RunnerShell {
156
156
  capabilities: input.capabilities ?? DEFAULT_CAPABILITIES,
157
157
  abortSignal: input.abortSignal,
158
158
  deadlineMs: input.deadlineMs,
159
+ ...(input.cacheControl && { cacheControl: input.cacheControl }),
159
160
  });
160
161
  usage.inputTokens += turnResult.usage.inputTokens;
161
162
  usage.outputTokens += turnResult.usage.outputTokens;
@@ -301,7 +302,136 @@ export class RunnerShell {
301
302
  costUSD: computeCost(modelForCost, usage),
302
303
  };
303
304
  }
305
+ /**
306
+ * Cache-warmer call: sends one minimal turn with the cached prefix so the
307
+ * upstream provider's prompt cache writes the prefix. Subsequent fan-out
308
+ * sub-workers using the same prefix serve from cache.
309
+ *
310
+ * The user message is a single token ("ready") and the assistant response
311
+ * is discarded. For providers that don't honor `cache_control` (codex,
312
+ * future providers), this still runs but produces no measurable cache
313
+ * benefit.
314
+ *
315
+ * Bounded by an internal 10-min hard cap (5-min soft warning) so a slow
316
+ * or hanging warmer cannot blow the route's overall wall-clock. On cap
317
+ * hit, the warmer returns with capHit=true and the dispatcher proceeds
318
+ * to fan-out WITHOUT cache priming — sub-workers will pay full input
319
+ * cost but the route still completes (correctness > optimization).
320
+ */
321
+ async prime(systemPrompt, opts) {
322
+ const startMs = Date.now();
323
+ // Per-warmer wall-clock guard: own hard cap, independent of the
324
+ // task-level abortSignal. Combined into one signal that the adapter sees.
325
+ const warmerAbort = new AbortController();
326
+ const combinedAbort = new AbortController();
327
+ if (opts.abortSignal) {
328
+ if (opts.abortSignal.aborted)
329
+ combinedAbort.abort();
330
+ else
331
+ opts.abortSignal.addEventListener('abort', () => combinedAbort.abort(), { once: true });
332
+ }
333
+ warmerAbort.signal.addEventListener('abort', () => combinedAbort.abort(), { once: true });
334
+ let capHit = false;
335
+ const softTimer = setTimeout(() => {
336
+ opts.bus?.emit({
337
+ event: 'criteria_fanout_warm_soft_warning',
338
+ ts: new Date().toISOString(),
339
+ ...(opts.batchId !== undefined && { batchId: opts.batchId }),
340
+ ...(opts.taskIndex !== undefined && { taskIndex: opts.taskIndex }),
341
+ elapsedMs: WARMER_SOFT_WARN_MS,
342
+ remainingMs: WARMER_HARD_CAP_MS - WARMER_SOFT_WARN_MS,
343
+ });
344
+ }, WARMER_SOFT_WARN_MS);
345
+ const hardTimer = setTimeout(() => {
346
+ capHit = true;
347
+ opts.bus?.emit({
348
+ event: 'criteria_fanout_warm_cap_hit',
349
+ ts: new Date().toISOString(),
350
+ ...(opts.batchId !== undefined && { batchId: opts.batchId }),
351
+ ...(opts.taskIndex !== undefined && { taskIndex: opts.taskIndex }),
352
+ elapsedMs: WARMER_HARD_CAP_MS,
353
+ });
354
+ warmerAbort.abort();
355
+ }, WARMER_HARD_CAP_MS);
356
+ try {
357
+ const turnResult = await this.adapter.turn({
358
+ systemPrompt,
359
+ userMessage: 'ready',
360
+ priorTurns: [],
361
+ toolDefinitions: [],
362
+ capabilities: opts.capabilities ?? { ...DEFAULT_CAPABILITIES, thinking: false },
363
+ abortSignal: combinedAbort.signal,
364
+ ...(opts.deadlineMs !== undefined && { deadlineMs: opts.deadlineMs }),
365
+ ...(opts.cacheControl && { cacheControl: opts.cacheControl }),
366
+ });
367
+ const durationMs = Date.now() - startMs;
368
+ // The warmer can't reliably tell whether the upstream actually wrote
369
+ // the cache. cacheControlSent reports we ATTEMPTED to register;
370
+ // confirmation comes from sub-workers' cachedReadTokens.
371
+ const cacheControlSent = !capHit && opts.cacheControl !== undefined;
372
+ opts.bus?.emit({
373
+ event: 'criteria_fanout_warm_complete',
374
+ ts: new Date().toISOString(),
375
+ ...(opts.batchId !== undefined && { batchId: opts.batchId }),
376
+ ...(opts.taskIndex !== undefined && { taskIndex: opts.taskIndex }),
377
+ ...(opts.tier !== undefined && { tier: opts.tier }),
378
+ ...(opts.stageLabel !== undefined && { stageLabel: opts.stageLabel }),
379
+ durationMs,
380
+ cacheControlSent,
381
+ capHit,
382
+ warmerInputTokens: turnResult.usage.inputTokens,
383
+ warmerCachedNonReadTokens: turnResult.usage.cachedNonReadTokens ?? 0,
384
+ });
385
+ return {
386
+ cacheControlSent,
387
+ capHit,
388
+ durationMs,
389
+ usage: {
390
+ inputTokens: turnResult.usage.inputTokens,
391
+ outputTokens: turnResult.usage.outputTokens,
392
+ cachedReadTokens: turnResult.usage.cachedReadTokens ?? 0,
393
+ cachedNonReadTokens: turnResult.usage.cachedNonReadTokens ?? 0,
394
+ },
395
+ };
396
+ }
397
+ catch (err) {
398
+ const durationMs = Date.now() - startMs;
399
+ // On cap-hit, swallow the abort and return a synthesized result so
400
+ // the dispatcher proceeds to fan-out without cache (correct, just
401
+ // slower). Real errors (transport, etc.) re-throw — the dispatcher
402
+ // currently doesn't catch warmer errors but a future caller might.
403
+ if (capHit) {
404
+ opts.bus?.emit({
405
+ event: 'criteria_fanout_warm_complete',
406
+ ts: new Date().toISOString(),
407
+ ...(opts.batchId !== undefined && { batchId: opts.batchId }),
408
+ ...(opts.taskIndex !== undefined && { taskIndex: opts.taskIndex }),
409
+ durationMs,
410
+ cacheControlSent: false,
411
+ capHit: true,
412
+ warmerInputTokens: 0,
413
+ warmerCachedNonReadTokens: 0,
414
+ });
415
+ return {
416
+ cacheControlSent: false,
417
+ capHit: true,
418
+ durationMs,
419
+ usage: { inputTokens: 0, outputTokens: 0, cachedReadTokens: 0, cachedNonReadTokens: 0 },
420
+ };
421
+ }
422
+ throw err;
423
+ }
424
+ finally {
425
+ clearTimeout(softTimer);
426
+ clearTimeout(hardTimer);
427
+ }
428
+ }
304
429
  }
430
+ /** Per-warmer wall-clock guard. After this, the warmer's abortSignal
431
+ * fires and prime() returns with capHit=true; the dispatcher proceeds
432
+ * to fan-out without cache priming. */
433
+ const WARMER_HARD_CAP_MS = 10 * 60 * 1000;
434
+ const WARMER_SOFT_WARN_MS = 5 * 60 * 1000;
305
435
  function computeCost(model, usage) {
306
436
  const card = resolveRateCard(model ?? null);
307
437
  if (!card)
@@ -1 +1 @@
1
- {"version":3,"file":"runner-shell.js","sourceRoot":"","sources":["../../src/providers/runner-shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-shell.js","sourceRoot":"","sources":["../../src/providers/runner-shell.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"investigate-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAoBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAwBvE;AAID,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,CAcrE;AAID,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE;QACX,sBAAsB,EAAE,MAAM,CAAC;QAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,OAAO,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAAC;IACtE,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,mBAAmB,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC;AAkBxG,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,CAgEpF;AAID,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,uBAAuB,CAQzE,CAAC"}
1
+ {"version":3,"file":"investigate-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAiDD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAwBvE;AAID,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,CAyBrE;AAID,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE;QACX,sBAAsB,EAAE,MAAM,CAAC;QAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,OAAO,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAAC;IACtE,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,mBAAmB,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC;AAkBxG,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,CAgEpF;AAID,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,uBAAuB,CAQzE,CAAC"}
@@ -18,6 +18,34 @@ function isValidLineToken(token) {
18
18
  }
19
19
  return true;
20
20
  }
21
+ /**
22
+ * Strip leading/trailing backticks from a `file:line` token.
23
+ *
24
+ * Workers commonly wrap the file:line portion in backticks for visual
25
+ * styling (e.g. `` `src/foo.ts:42` ``). The CITATION_RE matches the raw
26
+ * pattern, so strip the backticks before matching. Without this, every
27
+ * backtick-wrapped citation would be flagged as malformed even though
28
+ * the content is correct.
29
+ */
30
+ function stripBacktickWrap(s) {
31
+ // Strip a leading backtick if it exists, and a trailing backtick at the
32
+ // end of the file:line portion (just before the em-dash separator). We
33
+ // do this conservatively: only strip when both ends actually have a
34
+ // backtick at expected positions, to avoid mangling claims that
35
+ // legitimately contain backticks (e.g. `` `auditType` is a parameter ``).
36
+ let out = s;
37
+ // Leading backtick: `path:line` ...
38
+ if (out.startsWith('`')) {
39
+ const closeIdx = out.indexOf('`', 1);
40
+ // Only strip if the closing backtick comes BEFORE the em-dash separator
41
+ // (i.e. it wraps just the path:line portion, not the whole line).
42
+ const sepIdx = out.search(/\s+(?:—|--)\s+/);
43
+ if (closeIdx !== -1 && (sepIdx === -1 || closeIdx < sepIdx)) {
44
+ out = out.slice(1, closeIdx) + out.slice(closeIdx + 1);
45
+ }
46
+ }
47
+ return out;
48
+ }
21
49
  export function parseCitations(rawLines) {
22
50
  const citations = [];
23
51
  let malformed = 0;
@@ -25,7 +53,7 @@ export function parseCitations(rawLines) {
25
53
  const trimmed = raw.trim();
26
54
  if (!trimmed)
27
55
  continue;
28
- const stripped = trimmed.replace(BULLET_RE, '');
56
+ const stripped = stripBacktickWrap(trimmed.replace(BULLET_RE, ''));
29
57
  const match = stripped.match(CITATION_RE);
30
58
  if (!match || !match.groups) {
31
59
  malformed++;
@@ -49,7 +77,18 @@ export function parseConfidence(rawLines) {
49
77
  const firstIdx = rawLines.findIndex(l => l.trim());
50
78
  if (firstIdx === -1)
51
79
  return null;
52
- const head = rawLines[firstIdx].trim();
80
+ // Strip a leading wrapping backtick if the worker styled the level
81
+ // (e.g. "`high` — rationale"). This mirrors stripBacktickWrap in the
82
+ // citation parser; without it, a backtick-styled level token is
83
+ // flagged as malformed even though the content is correct.
84
+ let head = rawLines[firstIdx].trim();
85
+ if (head.startsWith('`')) {
86
+ const closeIdx = head.indexOf('`', 1);
87
+ const sepIdx = head.search(/\s+(?:—|--)\s+/);
88
+ if (closeIdx !== -1 && (sepIdx === -1 || closeIdx < sepIdx)) {
89
+ head = head.slice(1, closeIdx) + head.slice(closeIdx + 1);
90
+ }
91
+ }
53
92
  const m = head.match(CONFIDENCE_HEAD_RE);
54
93
  if (!m)
55
94
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"investigate-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"investigate-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,13 @@ import type { RunnerShell } from '../providers/runner-shell.js';
2
2
  import { type AnnotatorRoute } from './annotator-prompt-builder.js';
3
3
  import { type AnnotatorParseResult } from './annotator-output-parser.js';
4
4
  export interface AnnotatorInput {
5
- workerOutput: string;
5
+ /** N parallel sub-worker narratives, one per criterion the dispatcher
6
+ * fanned out. With N=1 the engine behaves as a single-narrative
7
+ * annotator (legacy compatibility for any non-fan-out caller). */
8
+ workerOutputs: Array<{
9
+ criterion: string;
10
+ narrative: string;
11
+ }>;
6
12
  brief: string;
7
13
  cwd: string;
8
14
  route: AnnotatorRoute;
@@ -1 +1 @@
1
- {"version":3,"file":"annotator-engine.d.ts","sourceRoot":"","sources":["../../src/review/annotator-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAehG,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;wEACoE;IACpE,GAAG,CAAC,EAAE,OAAO,4BAA4B,EAAE,YAAY,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D;;sEAEkE;IAClE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAClJ;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAA2D;IAC1E,OAAO,CAAC,MAAM,CAA+B;IAEvC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAiBxF"}
1
+ {"version":3,"file":"annotator-engine.d.ts","sourceRoot":"","sources":["../../src/review/annotator-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAgBhG,MAAM,WAAW,cAAc;IAC7B;;uEAEmE;IACnE,aAAa,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;wEACoE;IACpE,GAAG,CAAC,EAAE,OAAO,4BAA4B,EAAE,YAAY,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D;;sEAEkE;IAClE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAClJ;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAA2D;IAC1E,OAAO,CAAC,MAAM,CAA+B;IAEvC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA2BxF"}
@@ -5,6 +5,7 @@ import { annotatorReviewTemplate } from './templates/annotator-review.js';
5
5
  import { annotatorVerifyTemplate } from './templates/annotator-verify.js';
6
6
  import { annotatorDebugTemplate } from './templates/annotator-debug.js';
7
7
  import { annotatorInvestigateTemplate } from './templates/annotator-investigate.js';
8
+ import { SAFETY_MAX_TURNS } from '../bounded-execution/safety-max-turns.js';
8
9
  const DEFAULT_ANNOTATOR_TEMPLATES = {
9
10
  audit: annotatorAuditTemplate,
10
11
  review: annotatorReviewTemplate,
@@ -12,16 +13,28 @@ const DEFAULT_ANNOTATOR_TEMPLATES = {
12
13
  debug: annotatorDebugTemplate,
13
14
  investigate: annotatorInvestigateTemplate,
14
15
  };
16
+ /** Sentinel narrative emitted by sub-workers when their criterion has no
17
+ * matches in the artifact. Filtered out before merging so the annotator
18
+ * doesn't waste tokens parsing empty content. */
19
+ const NO_FINDINGS_SENTINEL = 'No findings for this criterion.';
15
20
  export class AnnotatorEngine {
16
21
  builder = new AnnotatorPromptBuilder(DEFAULT_ANNOTATOR_TEMPLATES);
17
22
  parser = new AnnotatorOutputParser();
18
23
  async annotate(shell, input) {
19
- const prompt = this.builder.build(input.route, { workerOutput: input.workerOutput, brief: input.brief });
24
+ // Drop "No findings for this criterion." sentinels they're valid
25
+ // empty results, not findings to merge. If ALL narratives are empty
26
+ // sentinels, send a synthetic empty narrative so the annotator
27
+ // returns [] via its standard "no findings raised" path.
28
+ const usableOutputs = input.workerOutputs.filter(o => o.narrative.trim() !== NO_FINDINGS_SENTINEL);
29
+ const inputsForPrompt = usableOutputs.length > 0
30
+ ? usableOutputs
31
+ : [{ criterion: 'all sub-workers reported no findings', narrative: '(all sub-worker narratives were "No findings for this criterion." — return [])' }];
32
+ const prompt = this.builder.build(input.route, { workerOutputs: inputsForPrompt, brief: input.brief });
20
33
  const result = await shell.run({
21
34
  systemPrompt: prompt,
22
35
  userMessage: 'Annotate the findings above.',
23
36
  toolDefinitions: [],
24
- maxTurns: 5, cwd: input.cwd,
37
+ maxTurns: SAFETY_MAX_TURNS, cwd: input.cwd,
25
38
  abortSignal: input.abortSignal, deadlineMs: input.deadlineMs,
26
39
  ...(input.bus && { bus: input.bus }),
27
40
  ...(input.batchId !== undefined && { batchId: input.batchId }),
@@ -1 +1 @@
1
- {"version":3,"file":"annotator-engine.js","sourceRoot":"","sources":["../../src/review/annotator-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAuB,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAA6B,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,MAAM,2BAA2B,GAAG;IAClC,KAAK,EAAE,sBAAsB;IAC7B,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,4BAA4B;CACjC,CAAC;AA0BX,MAAM,OAAO,eAAe;IAClB,OAAO,GAAG,IAAI,sBAAsB,CAAC,2BAA2B,CAAC,CAAC;IAClE,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAE7C,KAAK,CAAC,QAAQ,CAAC,KAAkB,EAAE,KAAqB;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;YAC7B,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,8BAA8B;YAC3C,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG;YAC3B,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5D,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACpE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACjH,OAAO,EAAE,GAAG,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvG,CAAC;CACF;AAED,SAAS,WAAW,CAAC,CAAuN;IAC1O,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC;QACtC,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;QACxC,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QACvB,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI;QACjE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"annotator-engine.js","sourceRoot":"","sources":["../../src/review/annotator-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"annotator-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/review/annotator-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAE5H,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;AAErF,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAG9D,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,sBAAsB,GAAG,MAAM;CAGlE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B3D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,sBAAsB,GAAG,MAAM,CAoBxG"}
1
+ {"version":3,"file":"annotator-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/review/annotator-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAE5H,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;AAErF,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAG9D,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,sBAAsB,GAAG,MAAM;CAGlE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B3D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,sBAAsB,GAAG,MAAM,CAiCxG"}
@@ -60,6 +60,14 @@ export function assembleAnnotatorPrompt(template, ctx) {
60
60
  // duplicated by buildAnnotatorRubric below, so sending it again is
61
61
  // redundant + costly.
62
62
  const compactBrief = trimBriefForAnnotator(ctx.brief);
63
+ // Multi-narrative merge mode: each sub-worker covered ONE criterion.
64
+ // The annotator dedups overlapping findings and recalibrates severity
65
+ // against the shared SEVERITY_LADDER. Single-narrative inputs (e.g.
66
+ // a route that hasn't migrated to fan-out) take the same path with N=1.
67
+ const sections = ctx.workerOutputs.map(o => `--- Sub-worker for ${o.criterion} ---\n${o.narrative}`).join('\n\n');
68
+ const mergeInstructions = ctx.workerOutputs.length > 1
69
+ ? `\n## Merge instructions\n\nThe worker output below is N narratives, each from a sub-worker that covered ONE criterion of the failure-mode taxonomy. Your job:\n1. Combine findings across all narratives into one list.\n2. Group findings by (file, line, claim essence). When two sub-workers reported the same underlying issue from different angles, KEEP ONE — pick the higher-severity wording and merge any non-redundant evidence.\n3. Recalibrate severity using the shared severity ladder so a sub-worker that inflated within its narrow scope is rebucketed against the global picture.\n4. Drop any narrative that contained no findings (these are valid empty results, not parse failures).\n5. **DROP findings whose title starts with "[N/A]" — these are completeness signals from sub-workers reporting "this perspective does not apply." They MUST NOT appear in the final findings array; they exist only so the user can confirm every angle was attempted. Note the count of dropped [N/A] findings in your reasoning if useful, but never emit them as findings.**\n\n`
70
+ : '';
63
71
  return `You are reviewing a ${template.role} produced by a worker.
64
72
 
65
73
  The user requested a ${template.role}. The brief was:
@@ -69,10 +77,10 @@ ${compactBrief}
69
77
  ## On-brief check (per finding)
70
78
 
71
79
  ${template.onBriefCheck}
72
-
80
+ ${mergeInstructions}
73
81
  ## Worker output to extract findings from
74
82
 
75
- ${ctx.workerOutput}
83
+ ${sections}
76
84
 
77
85
  ${buildAnnotatorRubric(template)}`;
78
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"annotator-prompt-builder.js","sourceRoot":"","sources":["../../src/review/annotator-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuD,MAAM,iCAAiC,CAAC;AAI5H,MAAM,OAAO,sBAAsB;IAEvB;IADV,YACU,SAAoD;QAApD,cAAS,GAAT,SAAS,CAA2C;IAC3D,CAAC;IAEJ,KAAK,CAAC,KAAqB,EAAE,GAA2B;QACtD,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAElE,4DAA4D;IAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,iEAAiE;IACjE,+DAA+D;IAC/D,gBAAgB;IAChB,MAAM,OAAO,GAAG;QACd,oCAAoC;QACpC,4CAA4C;QAC5C,sCAAsC;QACtC,kBAAkB;QAClB,sCAAsC;KACvC,CAAC;IACF,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG;YAAE,GAAG,GAAG,GAAG,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAA2B,EAAE,GAA2B;IAC9F,8DAA8D;IAC9D,mEAAmE;IACnE,sBAAsB;IACtB,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,uBAAuB,QAAQ,CAAC,IAAI;;uBAEtB,QAAQ,CAAC,IAAI;;EAElC,YAAY;;;;EAIZ,QAAQ,CAAC,YAAY;;;;EAIrB,GAAG,CAAC,YAAY;;EAEhB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"annotator-prompt-builder.js","sourceRoot":"","sources":["../../src/review/annotator-prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuD,MAAM,iCAAiC,CAAC;AAI5H,MAAM,OAAO,sBAAsB;IAEvB;IADV,YACU,SAAoD;QAApD,cAAS,GAAT,SAAS,CAA2C;IAC3D,CAAC;IAEJ,KAAK,CAAC,KAAqB,EAAE,GAA2B;QACtD,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAElE,4DAA4D;IAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,iEAAiE;IACjE,+DAA+D;IAC/D,gBAAgB;IAChB,MAAM,OAAO,GAAG;QACd,oCAAoC;QACpC,4CAA4C;QAC5C,sCAAsC;QACtC,kBAAkB;QAClB,sCAAsC;KACvC,CAAC;IACF,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG;YAAE,GAAG,GAAG,GAAG,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAA2B,EAAE,GAA2B;IAC9F,8DAA8D;IAC9D,mEAAmE;IACnE,sBAAsB;IACtB,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtD,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,wEAAwE;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACzC,sBAAsB,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,SAAS,EAAE,CACxD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEf,MAAM,iBAAiB,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,miCAAmiC;QACriC,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,uBAAuB,QAAQ,CAAC,IAAI;;uBAEtB,QAAQ,CAAC,IAAI;;EAElC,YAAY;;;;EAIZ,QAAQ,CAAC,YAAY;EACrB,iBAAiB;;;EAGjB,QAAQ;;EAER,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-engine.d.ts","sourceRoot":"","sources":["../../src/review/reviewer-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewer-engine.d.ts","sourceRoot":"","sources":["../../src/review/reviewer-engine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ReviewerOutputParser, ReviewerParseError } from './reviewer-output-parser.js';
2
+ import { SAFETY_MAX_TURNS } from '../bounded-execution/safety-max-turns.js';
2
3
  export { specTemplate } from './templates/spec-review.js';
3
4
  export { qualityAPTemplate } from './templates/quality-review-artifact.js';
4
5
  export { diffTemplate } from './templates/diff-review.js';
@@ -18,7 +19,7 @@ export class ReviewerEngine {
18
19
  const { systemPrompt, userPrompt } = this.builder.buildSpec({ ...input });
19
20
  const result = await shell.run({
20
21
  systemPrompt, userMessage: userPrompt, toolDefinitions: [],
21
- maxTurns: 5, cwd: input.cwd,
22
+ maxTurns: SAFETY_MAX_TURNS, cwd: input.cwd,
22
23
  abortSignal: input.abortSignal, deadlineMs: input.deadlineMs,
23
24
  ...(input.bus && { bus: input.bus }),
24
25
  ...(input.batchId !== undefined && { batchId: input.batchId }),
@@ -33,7 +34,7 @@ export class ReviewerEngine {
33
34
  const { systemPrompt, userPrompt } = this.builder.buildQualityAP({ ...input });
34
35
  const result = await shell.run({
35
36
  systemPrompt, userMessage: userPrompt, toolDefinitions: [],
36
- maxTurns: 5, cwd: input.cwd,
37
+ maxTurns: SAFETY_MAX_TURNS, cwd: input.cwd,
37
38
  abortSignal: input.abortSignal, deadlineMs: input.deadlineMs,
38
39
  ...(input.bus && { bus: input.bus }),
39
40
  ...(input.batchId !== undefined && { batchId: input.batchId }),
@@ -48,7 +49,7 @@ export class ReviewerEngine {
48
49
  const { systemPrompt, userPrompt } = this.builder.buildDiff({ ...input });
49
50
  const result = await shell.run({
50
51
  systemPrompt, userMessage: userPrompt, toolDefinitions: [],
51
- maxTurns: 5, cwd: input.cwd,
52
+ maxTurns: SAFETY_MAX_TURNS, cwd: input.cwd,
52
53
  abortSignal: input.abortSignal, deadlineMs: input.deadlineMs,
53
54
  ...(input.bus && { bus: input.bus }),
54
55
  ...(input.batchId !== undefined && { batchId: input.batchId }),
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-engine.js","sourceRoot":"","sources":["../../src/review/reviewer-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewer-engine.js","sourceRoot":"","sources":["../../src/review/reviewer-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAA0D,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC/I,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAO5E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAgDrE,MAAM,OAAO,cAAc;IAEL;IADZ,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC5C,YAAoB,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAEtD,KAAK,CAAC,OAAO,CAAC,KAAkB,EAAE,KAAoB;QACpD,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;YAC7B,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;YAC1D,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG;YAC1C,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5D,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACpE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAkB,EAAE,KAAoB;QACzD,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;YAC7B,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;YAC1D,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG;YAC1C,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5D,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACpE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAkB,EAAE,KAAoB;QACpD,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;YAC7B,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;YAC1D,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG;YAC1C,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5D,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACpE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAClD,CAAC;CACF;AAED,SAAS,WAAW,CAAC,CAAuN;IAC1O,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC;QACtC,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;QACxC,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QACvB,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;QACvC,4FAA4F;QAC5F,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI;QACjE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"annotator-audit.d.ts","sourceRoot":"","sources":["../../../src/review/templates/annotator-audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,eAAO,MAAM,sBAAsB,EAAE,iBAgBpC,CAAC"}
1
+ {"version":3,"file":"annotator-audit.d.ts","sourceRoot":"","sources":["../../../src/review/templates/annotator-audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,eAAO,MAAM,sBAAsB,EAAE,iBAkBpC,CAAC"}
@@ -1,12 +1,14 @@
1
1
  export const annotatorAuditTemplate = {
2
2
  role: 'audit',
3
- onBriefCheck: 'For each finding, ask: is this the kind of issue the audit asked for? A security audit should produce security findings, not style nits.',
3
+ onBriefCheck: 'For each finding, ask: is this the kind of issue the audit asked for? A security audit should produce security findings, not style nits. AND: is this finding consistent with the doc-audit failure-mode taxonomy (recommendation-coherence, internal contradiction, cross-item duplication, independence-claimed-without-evidence, argument soundness, completeness against constraints, fix actionability, drift, scope-creep)? Findings that match the taxonomy and are backed by section references are valid even when they are reasoning-based rather than direct quotes — do NOT downgrade them as "speculation".',
4
4
  evidenceRule: [
5
- '- Audit findings come in three valid shapes:',
5
+ '- Audit findings come in FOUR valid shapes:',
6
6
  ' 1. Doc quote: a verbatim passage from the document showing the issue.',
7
7
  ' 2. Absence-reference: a precise pointer to where the doc *should* address something but doesn\'t (e.g. "Section 3.2 lists failure modes but is silent on queue overflow").',
8
8
  ' 3. Claim + contradiction: the doc\'s claim plus a quote from the source it contradicts.',
9
- '- A finding without one of these three forms is speculation; downgrade to low or drop.',
9
+ ' 4. Internal-coherence: a precise reference to two sections of the document that conflict — quote both, OR quote one and name the section ID of the other (e.g. "A8 fix says \'optionally auto-cancel\' but the next sentence says \'do NOT auto-escalate — that crosses into replacing caller judgment\'"). This shape is fully valid for recommendation-coherence, internal-contradiction, argument-soundness, and completeness-against-constraints findings.',
10
+ '- A finding without one of these four forms is speculation; downgrade to low or drop.',
11
+ '- Reasoning-based findings (e.g. "this fix relies on persistence which the doc forbids in Principle #6") are VALID when they cite both the recommendation and the constraint. Do NOT downgrade these as speculation — they are the highest-value kind of audit finding.',
10
12
  ].join('\n'),
11
13
  scopeRule: [
12
14
  '- The document and what it directly references are in scope.',
@@ -1 +1 @@
1
- {"version":3,"file":"annotator-audit.js","sourceRoot":"","sources":["../../../src/review/templates/annotator-audit.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,0IAA0I;IACxJ,YAAY,EAAE;QACZ,8CAA8C;QAC9C,yEAAyE;QACzE,8KAA8K;QAC9K,2FAA2F;QAC3F,wFAAwF;KACzF,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,SAAS,EAAE;QACT,8DAA8D;QAC9D,kGAAkG;QAClG,sHAAsH;QACtH,kGAAkG;KACnG,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CAAC"}
1
+ {"version":3,"file":"annotator-audit.js","sourceRoot":"","sources":["../../../src/review/templates/annotator-audit.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,0lBAA0lB;IACxmB,YAAY,EAAE;QACZ,6CAA6C;QAC7C,yEAAyE;QACzE,8KAA8K;QAC9K,2FAA2F;QAC3F,kcAAkc;QAClc,uFAAuF;QACvF,yQAAyQ;KAC1Q,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,SAAS,EAAE;QACT,8DAA8D;QAC9D,kGAAkG;QAClG,sHAAsH;QACtH,kGAAkG;KACnG,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"annotator-debug.d.ts","sourceRoot":"","sources":["../../../src/review/templates/annotator-debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,eAAO,MAAM,sBAAsB,EAAE,iBAapC,CAAC"}
1
+ {"version":3,"file":"annotator-debug.d.ts","sourceRoot":"","sources":["../../../src/review/templates/annotator-debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,eAAO,MAAM,sBAAsB,EAAE,iBAiBpC,CAAC"}