@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.
- package/dist/bounded-execution/index.d.ts +2 -0
- package/dist/bounded-execution/index.d.ts.map +1 -1
- package/dist/bounded-execution/index.js +2 -0
- package/dist/bounded-execution/index.js.map +1 -1
- package/dist/bounded-execution/safety-max-turns.d.ts +17 -0
- package/dist/bounded-execution/safety-max-turns.d.ts.map +1 -0
- package/dist/bounded-execution/safety-max-turns.js +17 -0
- package/dist/bounded-execution/safety-max-turns.js.map +1 -0
- package/dist/bounded-execution/stall-watchdog.d.ts +16 -0
- package/dist/bounded-execution/stall-watchdog.d.ts.map +1 -0
- package/dist/bounded-execution/stall-watchdog.js +69 -0
- package/dist/bounded-execution/stall-watchdog.js.map +1 -0
- package/dist/intake/brief-compiler-slots/delegate.d.ts +18 -0
- package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -1
- package/dist/intake/brief-compiler-slots/delegate.js +36 -3
- package/dist/intake/brief-compiler-slots/delegate.js.map +1 -1
- package/dist/lifecycle/handlers/execution-context-builder.d.ts.map +1 -1
- package/dist/lifecycle/handlers/execution-context-builder.js +2 -1
- package/dist/lifecycle/handlers/execution-context-builder.js.map +1 -1
- package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/quality-chain-handlers.js +10 -1
- package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -1
- package/dist/lifecycle/parallel-criteria-dispatcher.d.ts +62 -0
- package/dist/lifecycle/parallel-criteria-dispatcher.d.ts.map +1 -0
- package/dist/lifecycle/parallel-criteria-dispatcher.js +328 -0
- package/dist/lifecycle/parallel-criteria-dispatcher.js.map +1 -0
- package/dist/lifecycle/parallel-criteria-routes.d.ts +16 -0
- package/dist/lifecycle/parallel-criteria-routes.d.ts.map +1 -0
- package/dist/lifecycle/parallel-criteria-routes.js +147 -0
- package/dist/lifecycle/parallel-criteria-routes.js.map +1 -0
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +268 -97
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/providers/anthropic-messages-adapter.d.ts.map +1 -1
- package/dist/providers/anthropic-messages-adapter.js +8 -1
- package/dist/providers/anthropic-messages-adapter.js.map +1 -1
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +2 -1
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/runner-adapter.d.ts +8 -0
- package/dist/providers/runner-adapter.d.ts.map +1 -1
- package/dist/providers/runner-shell-types.d.ts +7 -0
- package/dist/providers/runner-shell-types.d.ts.map +1 -1
- package/dist/providers/runner-shell.d.ts +51 -1
- package/dist/providers/runner-shell.d.ts.map +1 -1
- package/dist/providers/runner-shell.js +130 -0
- package/dist/providers/runner-shell.js.map +1 -1
- package/dist/reporting/report-parser-slots/investigate-report.d.ts.map +1 -1
- package/dist/reporting/report-parser-slots/investigate-report.js +41 -2
- package/dist/reporting/report-parser-slots/investigate-report.js.map +1 -1
- package/dist/review/annotator-engine.d.ts +7 -1
- package/dist/review/annotator-engine.d.ts.map +1 -1
- package/dist/review/annotator-engine.js +15 -2
- package/dist/review/annotator-engine.js.map +1 -1
- package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
- package/dist/review/annotator-prompt-builder.js +10 -2
- package/dist/review/annotator-prompt-builder.js.map +1 -1
- package/dist/review/reviewer-engine.d.ts.map +1 -1
- package/dist/review/reviewer-engine.js +4 -3
- package/dist/review/reviewer-engine.js.map +1 -1
- package/dist/review/templates/annotator-audit.d.ts.map +1 -1
- package/dist/review/templates/annotator-audit.js +5 -3
- package/dist/review/templates/annotator-audit.js.map +1 -1
- package/dist/review/templates/annotator-debug.d.ts.map +1 -1
- package/dist/review/templates/annotator-debug.js +11 -7
- package/dist/review/templates/annotator-debug.js.map +1 -1
- package/dist/review/templates/annotator-investigate.d.ts.map +1 -1
- package/dist/review/templates/annotator-investigate.js +6 -3
- package/dist/review/templates/annotator-investigate.js.map +1 -1
- package/dist/review/templates/annotator-review.d.ts.map +1 -1
- package/dist/review/templates/annotator-review.js +13 -6
- package/dist/review/templates/annotator-review.js.map +1 -1
- package/dist/review/templates/annotator-shared.d.ts +8 -1
- package/dist/review/templates/annotator-shared.d.ts.map +1 -1
- package/dist/review/templates/annotator-shared.js.map +1 -1
- package/dist/review/templates/annotator-verify.d.ts.map +1 -1
- package/dist/review/templates/annotator-verify.js +11 -5
- package/dist/review/templates/annotator-verify.js.map +1 -1
- package/dist/tools/audit/implementer-criteria.d.ts +60 -4
- package/dist/tools/audit/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/audit/implementer-criteria.js +118 -11
- package/dist/tools/audit/implementer-criteria.js.map +1 -1
- package/dist/tools/audit/schema.d.ts +3 -10
- package/dist/tools/audit/schema.d.ts.map +1 -1
- package/dist/tools/audit/schema.js +3 -4
- package/dist/tools/audit/schema.js.map +1 -1
- package/dist/tools/audit/tool-config.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.js +70 -36
- package/dist/tools/audit/tool-config.js.map +1 -1
- package/dist/tools/criteria-types.d.ts +27 -0
- package/dist/tools/criteria-types.d.ts.map +1 -0
- package/dist/tools/criteria-types.js +25 -0
- package/dist/tools/criteria-types.js.map +1 -0
- package/dist/tools/debug/implementer-criteria.d.ts +47 -4
- package/dist/tools/debug/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/debug/implementer-criteria.js +104 -13
- package/dist/tools/debug/implementer-criteria.js.map +1 -1
- package/dist/tools/debug/tool-config.d.ts.map +1 -1
- package/dist/tools/debug/tool-config.js +31 -4
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/delegate/implementer-criteria.d.ts +62 -0
- package/dist/tools/delegate/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/delegate/implementer-criteria.js +114 -0
- package/dist/tools/delegate/implementer-criteria.js.map +1 -0
- package/dist/tools/execute-plan/implementer-criteria.d.ts +52 -0
- package/dist/tools/execute-plan/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/execute-plan/implementer-criteria.js +104 -0
- package/dist/tools/execute-plan/implementer-criteria.js.map +1 -0
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +17 -3
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/investigate/implementer-criteria.d.ts +51 -5
- package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/investigate/implementer-criteria.js +109 -13
- package/dist/tools/investigate/implementer-criteria.js.map +1 -1
- package/dist/tools/investigate/tool-config.d.ts.map +1 -1
- package/dist/tools/investigate/tool-config.js +20 -8
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/parallel-criteria-prompt.d.ts +106 -0
- package/dist/tools/parallel-criteria-prompt.d.ts.map +1 -0
- package/dist/tools/parallel-criteria-prompt.js +86 -0
- package/dist/tools/parallel-criteria-prompt.js.map +1 -0
- package/dist/tools/review/implementer-criteria.d.ts +50 -1
- package/dist/tools/review/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/review/implementer-criteria.js +113 -9
- package/dist/tools/review/implementer-criteria.js.map +1 -1
- package/dist/tools/review/tool-config.d.ts.map +1 -1
- package/dist/tools/review/tool-config.js +50 -7
- package/dist/tools/review/tool-config.js.map +1 -1
- package/dist/tools/verify/implementer-criteria.d.ts +49 -0
- package/dist/tools/verify/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/verify/implementer-criteria.js +104 -8
- package/dist/tools/verify/implementer-criteria.js.map +1 -1
- package/dist/tools/verify/tool-config.d.ts.map +1 -1
- package/dist/tools/verify/tool-config.js +22 -2
- package/dist/tools/verify/tool-config.js.map +1 -1
- package/dist/types/run-result.d.ts +18 -0
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/task-spec.d.ts +11 -0
- package/dist/types/task-spec.d.ts.map +1 -1
- 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,
|
|
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;
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAehE,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAC3D,MAAM,WAAW,GAAG,gEAAgE,CAAC;AACrF,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEzC,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,KAAM,GAAG,GAAI;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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:
|
|
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;
|
|
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,
|
|
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
|
-
${
|
|
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;
|
|
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":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAwB,KAAK,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
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:
|
|
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:
|
|
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:
|
|
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":"AAEA,OAAO,EAAE,oBAAoB,EAA0D,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"reviewer-engine.js","sourceRoot":"","sources":["../../src/review/reviewer-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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
|
|
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
|
-
'-
|
|
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,
|
|
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,
|
|
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"}
|