@zhixuan92/multi-model-agent-core 3.10.7 → 3.11.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 (155) hide show
  1. package/README.md +3 -3
  2. package/dist/config/schema.d.ts +15 -0
  3. package/dist/config/schema.d.ts.map +1 -1
  4. package/dist/config/schema.js +17 -2
  5. package/dist/config/schema.js.map +1 -1
  6. package/dist/diagnostics/types.d.ts +11 -0
  7. package/dist/diagnostics/types.d.ts.map +1 -1
  8. package/dist/escalation/fallback.d.ts +14 -0
  9. package/dist/escalation/fallback.d.ts.map +1 -1
  10. package/dist/escalation/fallback.js +254 -19
  11. package/dist/escalation/fallback.js.map +1 -1
  12. package/dist/executors/audit.d.ts.map +1 -1
  13. package/dist/executors/audit.js +6 -4
  14. package/dist/executors/audit.js.map +1 -1
  15. package/dist/executors/debug.d.ts.map +1 -1
  16. package/dist/executors/debug.js +5 -3
  17. package/dist/executors/debug.js.map +1 -1
  18. package/dist/executors/delegate.d.ts +12 -0
  19. package/dist/executors/delegate.d.ts.map +1 -1
  20. package/dist/executors/delegate.js +45 -11
  21. package/dist/executors/delegate.js.map +1 -1
  22. package/dist/executors/execute-plan.d.ts.map +1 -1
  23. package/dist/executors/execute-plan.js +6 -4
  24. package/dist/executors/execute-plan.js.map +1 -1
  25. package/dist/executors/retry.js +1 -1
  26. package/dist/executors/retry.js.map +1 -1
  27. package/dist/executors/review.js +1 -1
  28. package/dist/executors/review.js.map +1 -1
  29. package/dist/executors/shared-compute.js +4 -4
  30. package/dist/executors/shared-compute.js.map +1 -1
  31. package/dist/executors/types.d.ts +1 -1
  32. package/dist/executors/types.d.ts.map +1 -1
  33. package/dist/executors/verify.js +2 -2
  34. package/dist/executors/verify.js.map +1 -1
  35. package/dist/heartbeat.d.ts +5 -5
  36. package/dist/heartbeat.d.ts.map +1 -1
  37. package/dist/heartbeat.js +21 -17
  38. package/dist/heartbeat.js.map +1 -1
  39. package/dist/index.d.ts +4 -3
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +5 -3
  42. package/dist/index.js.map +1 -1
  43. package/dist/intake/compilers/audit.d.ts.map +1 -1
  44. package/dist/intake/compilers/audit.js +5 -2
  45. package/dist/intake/compilers/audit.js.map +1 -1
  46. package/dist/intake/compilers/debug.d.ts.map +1 -1
  47. package/dist/intake/compilers/debug.js +4 -0
  48. package/dist/intake/compilers/debug.js.map +1 -1
  49. package/dist/intake/compilers/delegate.d.ts +3 -0
  50. package/dist/intake/compilers/delegate.d.ts.map +1 -1
  51. package/dist/intake/compilers/delegate.js +5 -1
  52. package/dist/intake/compilers/delegate.js.map +1 -1
  53. package/dist/intake/compilers/execute-plan.d.ts.map +1 -1
  54. package/dist/intake/compilers/execute-plan.js +5 -0
  55. package/dist/intake/compilers/execute-plan.js.map +1 -1
  56. package/dist/intake/compilers/review.d.ts.map +1 -1
  57. package/dist/intake/compilers/review.js +3 -0
  58. package/dist/intake/compilers/review.js.map +1 -1
  59. package/dist/intake/compilers/verify.d.ts.map +1 -1
  60. package/dist/intake/compilers/verify.js +7 -0
  61. package/dist/intake/compilers/verify.js.map +1 -1
  62. package/dist/intake/force-clarification.d.ts +5 -0
  63. package/dist/intake/force-clarification.d.ts.map +1 -0
  64. package/dist/intake/force-clarification.js +44 -0
  65. package/dist/intake/force-clarification.js.map +1 -0
  66. package/dist/intake/pipeline.d.ts +1 -1
  67. package/dist/intake/pipeline.d.ts.map +1 -1
  68. package/dist/intake/pipeline.js +32 -1
  69. package/dist/intake/pipeline.js.map +1 -1
  70. package/dist/intake/resolve.d.ts.map +1 -1
  71. package/dist/intake/resolve.js +0 -1
  72. package/dist/intake/resolve.js.map +1 -1
  73. package/dist/observability/bus.d.ts.map +1 -1
  74. package/dist/observability/bus.js +20 -0
  75. package/dist/observability/bus.js.map +1 -1
  76. package/dist/observability/events.d.ts +81 -4
  77. package/dist/observability/events.d.ts.map +1 -1
  78. package/dist/observability/events.js +77 -2
  79. package/dist/observability/events.js.map +1 -1
  80. package/dist/provider.d.ts +1 -0
  81. package/dist/provider.d.ts.map +1 -1
  82. package/dist/provider.js +8 -1
  83. package/dist/provider.js.map +1 -1
  84. package/dist/review/diff-review.d.ts +1 -0
  85. package/dist/review/diff-review.d.ts.map +1 -1
  86. package/dist/review/diff-review.js +1 -0
  87. package/dist/review/diff-review.js.map +1 -1
  88. package/dist/review/quality-reviewer.d.ts +1 -1
  89. package/dist/review/quality-reviewer.d.ts.map +1 -1
  90. package/dist/review/quality-reviewer.js +6 -6
  91. package/dist/review/quality-reviewer.js.map +1 -1
  92. package/dist/review/spec-reviewer.d.ts +1 -1
  93. package/dist/review/spec-reviewer.d.ts.map +1 -1
  94. package/dist/review/spec-reviewer.js +3 -1
  95. package/dist/review/spec-reviewer.js.map +1 -1
  96. package/dist/routing/canonical-model-identity.d.ts +9 -0
  97. package/dist/routing/canonical-model-identity.d.ts.map +1 -0
  98. package/dist/routing/canonical-model-identity.js +54 -0
  99. package/dist/routing/canonical-model-identity.js.map +1 -0
  100. package/dist/run-tasks/execute-task.js +1 -1
  101. package/dist/run-tasks/execute-task.js.map +1 -1
  102. package/dist/run-tasks/index.js +1 -1
  103. package/dist/run-tasks/index.js.map +1 -1
  104. package/dist/run-tasks/reviewed-lifecycle.d.ts.map +1 -1
  105. package/dist/run-tasks/reviewed-lifecycle.js +145 -31
  106. package/dist/run-tasks/reviewed-lifecycle.js.map +1 -1
  107. package/dist/runners/base/result-builders.d.ts +13 -2
  108. package/dist/runners/base/result-builders.d.ts.map +1 -1
  109. package/dist/runners/base/result-builders.js +25 -1
  110. package/dist/runners/base/result-builders.js.map +1 -1
  111. package/dist/runners/base/time-check.d.ts +9 -0
  112. package/dist/runners/base/time-check.d.ts.map +1 -0
  113. package/dist/runners/base/time-check.js +18 -0
  114. package/dist/runners/base/time-check.js.map +1 -0
  115. package/dist/runners/base/usage-accumulator.d.ts +9 -0
  116. package/dist/runners/base/usage-accumulator.d.ts.map +1 -0
  117. package/dist/runners/base/usage-accumulator.js +19 -0
  118. package/dist/runners/base/usage-accumulator.js.map +1 -0
  119. package/dist/runners/claude-runner.d.ts.map +1 -1
  120. package/dist/runners/claude-runner.js +129 -175
  121. package/dist/runners/claude-runner.js.map +1 -1
  122. package/dist/runners/codex-runner.d.ts.map +1 -1
  123. package/dist/runners/codex-runner.js +96 -128
  124. package/dist/runners/codex-runner.js.map +1 -1
  125. package/dist/runners/error-classification.d.ts +11 -0
  126. package/dist/runners/error-classification.d.ts.map +1 -1
  127. package/dist/runners/error-classification.js +51 -0
  128. package/dist/runners/error-classification.js.map +1 -1
  129. package/dist/runners/openai-runner.d.ts.map +1 -1
  130. package/dist/runners/openai-runner.js +80 -171
  131. package/dist/runners/openai-runner.js.map +1 -1
  132. package/dist/runners/supervision.d.ts +0 -49
  133. package/dist/runners/supervision.d.ts.map +1 -1
  134. package/dist/runners/supervision.js +0 -67
  135. package/dist/runners/supervision.js.map +1 -1
  136. package/dist/runners/types.d.ts +12 -5
  137. package/dist/runners/types.d.ts.map +1 -1
  138. package/dist/telemetry/concern-classifier.d.ts +1 -1
  139. package/dist/telemetry/concern-classifier.d.ts.map +1 -1
  140. package/dist/telemetry/concern-classifier.js +5 -0
  141. package/dist/telemetry/concern-classifier.js.map +1 -1
  142. package/dist/telemetry/event-builder.d.ts.map +1 -1
  143. package/dist/telemetry/event-builder.js +5 -5
  144. package/dist/telemetry/event-builder.js.map +1 -1
  145. package/dist/telemetry/field-coverage.js +2 -2
  146. package/dist/telemetry/field-coverage.js.map +1 -1
  147. package/dist/telemetry/types.d.ts +139 -91
  148. package/dist/telemetry/types.d.ts.map +1 -1
  149. package/dist/telemetry/types.js +23 -17
  150. package/dist/telemetry/types.js.map +1 -1
  151. package/dist/types.d.ts +2 -2
  152. package/dist/types.d.ts.map +1 -1
  153. package/dist/types.js +5 -2
  154. package/dist/types.js.map +1 -1
  155. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { Agent, run as agentRun, setTracingDisabled, OpenAIChatCompletionsModel, MaxTurnsExceededError, } from '@openai/agents';
2
2
  import { createHash } from 'node:crypto';
3
- import { withTimeout, computeCostUSD, computeSavedCostUSD, } from '../types.js';
3
+ import { withTimeout, computeCostUSD, computeCostDeltaVsParentUSD, } from '../types.js';
4
4
  import { injectionTypeFor } from './injection-type.js';
5
5
  import { FileTracker } from '../tools/tracker.js';
6
6
  import { createToolImplementations } from '../tools/definitions.js';
@@ -8,11 +8,11 @@ import { createOpenAITools } from '../tools/openai-adapter.js';
8
8
  import { TextScratchpad } from '../tools/scratchpad.js';
9
9
  import { CostMeter } from '../cost/cost-meter.js';
10
10
  import { CallCache } from '../tools/call-cache.js';
11
- import { buildSystemPrompt, buildBudgetHint, buildReGroundingMessage, buildBudgetPressureNudge, buildFormatConstraintSuffix, RE_GROUNDING_INTERVAL_TURNS, } from './prevention.js';
12
- import { validateSubAgentOutput, buildRePrompt, sameDegenerateOutput, resolveInputTokenSoftLimit, checkWatchdogThreshold, logWatchdogEvent, THINKING_DIAGNOSTIC_MARKER, hasCompletedWork, MAX_DEGENERATE_RETRIES, STALL_DETECTION_TURNS, detectToolCallLoop, hasNewFileActivity, } from './supervision.js';
13
- import { classifyError, isRateLimit } from './error-classification.js';
14
- import { findModelProfile } from '../routing/model-profiles.js';
15
- import { buildOkResult as sharedBuildOkResult, buildIncompleteResult as sharedBuildIncompleteResult, buildForceSalvageResult as sharedBuildForceSalvageResult, } from './base/result-builders.js';
11
+ import { buildSystemPrompt, buildBudgetHint, buildReGroundingMessage, buildFormatConstraintSuffix, RE_GROUNDING_INTERVAL_TURNS, } from './prevention.js';
12
+ import { validateSubAgentOutput, buildRePrompt, sameDegenerateOutput, THINKING_DIAGNOSTIC_MARKER, hasCompletedWork, MAX_DEGENERATE_RETRIES, STALL_DETECTION_TURNS, detectToolCallLoop, hasNewFileActivity, } from './supervision.js';
13
+ import { classifyError, isRateLimit, isProviderContextLimit } from './error-classification.js';
14
+ import { buildOkResult as sharedBuildOkResult, buildIncompleteResult as sharedBuildIncompleteResult, buildTimeCeilingResult as sharedBuildTimeCeilingResult, } from './base/result-builders.js';
15
+ import { checkTimeCeiling } from './base/time-check.js';
16
16
  // Disable tracing — not all OpenAI-compatible providers support it
17
17
  setTracingDisabled(true);
18
18
  /**
@@ -187,13 +187,9 @@ export async function runOpenAI(prompt, options, runner) {
187
187
  tools,
188
188
  ...(Object.keys(modelSettings).length > 0 && { modelSettings }),
189
189
  });
190
- // --- Watchdog: resolve the input-token soft limit once per run ---
191
- const profile = findModelProfile(runner.providerConfig.model);
192
- const softLimit = resolveInputTokenSoftLimit(runner.providerConfig, profile);
193
190
  // --- Scratchpad: buffers assistant text across every agentRun() call so
194
- // that every termination path (ok/incomplete/max_turns/error/timeout/
195
- // force_salvage) can return the best text we heard, even if the final
196
- // message is junk. ---
191
+ // that every termination path (ok/incomplete/max_turns/error/timeout)
192
+ // can return the best text we heard, even if the final message is junk. ---
197
193
  const scratchpad = new TextScratchpad();
198
194
  /**
199
195
  * Build an AgentInputItem[] for continuing `prev` with a new user message.
@@ -233,6 +229,12 @@ export async function runOpenAI(prompt, options, runner) {
233
229
  * cumulative usage from `result.state.usage`.
234
230
  */
235
231
  const runTurnAndBuffer = async (input) => {
232
+ const ceilingMs = checkTimeCeiling(taskStartMs, timeoutMs);
233
+ if (ceilingMs !== null) {
234
+ const err = new Error('time_ceiling');
235
+ err.__timeCeiling = ceilingMs;
236
+ throw err;
237
+ }
236
238
  const nextTurn = (currentResult?.state.usage.requests ?? 0) + 1;
237
239
  emit({ kind: 'turn_start', turn: nextTurn, provider: 'openai-compatible', model: runner.providerConfig.model });
238
240
  const result = (await agentRun(agent, input, {
@@ -285,13 +287,6 @@ export async function runOpenAI(prompt, options, runner) {
285
287
  // would cause `sameDegenerateOutput('', '')` to fire on a first-
286
288
  // turn empty output and break the loop before retries run.
287
289
  let lastDegenerateOutput = null;
288
- // Track the input-token count at which we last fired a warning
289
- // nudge. This prevents nudging twice in a row for the same
290
- // `currentResult` when validation still fails after a nudge
291
- // response: the next loop iteration will see
292
- // `currentInputTokens <= lastWarnedInputTokens` and fall through
293
- // to validation / re-prompt instead of re-issuing the nudge.
294
- let lastWarnedInputTokens = -1;
295
290
  let lastValidationKind = undefined;
296
291
  /**
297
292
  * Check if we can afford the next turn based on previous turn cost estimate.
@@ -310,7 +305,7 @@ export async function runOpenAI(prompt, options, runner) {
310
305
  return {
311
306
  output: `Cost ceiling exceeded: maxCostUSD=${options.maxCostUSD}`,
312
307
  status: 'cost_exceeded',
313
- usage: { ...partial, savedCostUSD: 0 },
308
+ usage: { ...partial, costDeltaVsParentUSD: 0 },
314
309
  turns: turnsAtFailure,
315
310
  filesRead: tracker.getReads(),
316
311
  directoriesListed: tracker.getDirectoriesListed(),
@@ -339,74 +334,12 @@ export async function runOpenAI(prompt, options, runner) {
339
334
  }
340
335
  }
341
336
  // Supervision loop. On each iteration we:
342
- // 1. Check the watchdog (may force-terminate or nudge)
343
- // 2. Validate the final message (may re-prompt)
344
- // 3. Inject re-grounding every RE_GROUNDING_INTERVAL_TURNS turns
337
+ // 1. Validate the final message (may re-prompt)
338
+ // 2. Inject re-grounding every RE_GROUNDING_INTERVAL_TURNS turns
345
339
  // A single pass where validateCompletion returns `valid` is the clean
346
340
  // exit. Otherwise we either re-prompt (and loop) or salvage.
347
341
  // eslint-disable-next-line no-constant-condition
348
342
  while (true) {
349
- // --- Watchdog check ---
350
- const currentInputTokens = currentResult.state.usage.inputTokens;
351
- const watchdogStatus = checkWatchdogThreshold(currentInputTokens, softLimit);
352
- if (watchdogStatus !== 'ok') {
353
- logWatchdogEvent(watchdogStatus, {
354
- provider: 'openai-compatible',
355
- model: runner.providerConfig.model,
356
- turn: currentResult.state.usage.requests,
357
- inputTokens: currentInputTokens,
358
- softLimit,
359
- scratchpadChars: scratchpad.toString().length,
360
- });
361
- }
362
- if (watchdogStatus === 'force_salvage') {
363
- // `watchdog_force_salvage` is not an injected message — no
364
- // re-prompt is sent — but observers still want to see exactly
365
- // why the run is being killed. We emit the event with a
366
- // `contentLengthChars` of 0 to reflect the "nothing was
367
- // injected, we just terminated" semantics.
368
- emit({
369
- kind: 'injection',
370
- injectionType: 'watchdog_force_salvage',
371
- turn: currentResult.state.usage.requests,
372
- contentLengthChars: 0,
373
- });
374
- const salvaged = buildForceSalvageResult(currentResult, scratchpad, tracker, runner.providerConfig, softLimit, Date.now() - taskStartMs, parentModel);
375
- emit({ kind: 'done', status: salvaged.status });
376
- return salvaged;
377
- }
378
- // Warning-band nudge: fire at most once per distinct input-token
379
- // level. We dispatch the nudge turn, append to the scratchpad,
380
- // record the new high-watermark, and then FALL THROUGH to the
381
- // validation block below — the nudge response might itself be a
382
- // perfectly valid final answer, so we must validate it in the
383
- // SAME iteration. Without the fall-through, a valid nudge
384
- // response would be thrown away and the loop would grind until
385
- // force_salvage (pre-fix bug #1).
386
- if (watchdogStatus === 'warning' && currentInputTokens > lastWarnedInputTokens) {
387
- const warning = buildBudgetPressureNudge({
388
- inputTokens: currentInputTokens,
389
- softLimit,
390
- });
391
- emit({
392
- kind: 'injection',
393
- injectionType: 'watchdog_warning',
394
- turn: currentResult.state.usage.requests,
395
- contentLengthChars: warning.length,
396
- });
397
- lastWarnedInputTokens = currentInputTokens;
398
- if (!canAffordNextTurn()) {
399
- const costExceeded = buildCostExceededResult(currentResult.state.usage.requests);
400
- emit({ kind: 'done', status: costExceeded.status });
401
- return costExceeded;
402
- }
403
- const warningCont = await runContinuationTurn(currentResult, warning);
404
- if (!warningCont.ok) {
405
- supervisionExhausted = true;
406
- break;
407
- }
408
- currentResult = warningCont.result;
409
- }
410
343
  // --- Validation check ---
411
344
  const stripped = stripThinkingTags(currentResult.finalOutput ?? '');
412
345
  const validation = validateSubAgentOutput(stripped, {
@@ -572,7 +505,7 @@ export async function runOpenAI(prompt, options, runner) {
572
505
  const filesWritten = tracker.getWrites();
573
506
  const toolCalls = tracker.getToolCalls();
574
507
  const partial = partialUsage(currentResult, runner.providerConfig);
575
- const savedCostUSD = computeSavedCostUSD(partial.costUSD, partial.inputTokens, partial.outputTokens, parentModel);
508
+ const costDeltaVsParentUSD = computeCostDeltaVsParentUSD(partial.costUSD, partial.inputTokens, partial.outputTokens, parentModel);
576
509
  emit({ kind: 'done', status: 'incomplete' });
577
510
  const hasSalvage = !scratchpad.isEmpty();
578
511
  const turnsAtFailure = currentResult?.state.usage.requests ?? 0;
@@ -583,7 +516,7 @@ export async function runOpenAI(prompt, options, runner) {
583
516
  status: 'incomplete',
584
517
  errorCode: 'degenerate_exhausted',
585
518
  error: `agent exhausted time/cost budget after ${turnsAtFailure} turns`,
586
- usage: { ...partial, savedCostUSD },
519
+ usage: { ...partial, costDeltaVsParentUSD },
587
520
  turns: turnsAtFailure,
588
521
  filesRead,
589
522
  directoriesListed: tracker.getDirectoriesListed(),
@@ -594,74 +527,19 @@ export async function runOpenAI(prompt, options, runner) {
594
527
  durationMs: Date.now() - taskStartMs,
595
528
  };
596
529
  }
597
- function buildSupervisionExhaustedResult(currentResult, scratchpad, tracker, providerConfig, durationMs, parentModel, opts) {
598
- const usage = currentResult.state.usage;
599
- const filesRead = tracker.getReads();
600
- const filesWritten = tracker.getWrites();
601
- const toolCalls = tracker.getToolCalls();
602
- const costUSD = computeCostUSD(usage.inputTokens, usage.outputTokens, providerConfig);
603
- const savedCostUSD = computeSavedCostUSD(costUSD, usage.inputTokens, usage.outputTokens, parentModel);
604
- const hasSalvage = !scratchpad.isEmpty();
605
- return {
606
- output: hasSalvage
607
- ? scratchpad.latest()
608
- : buildIncompleteDiagnostic({
609
- providerLabel: 'openai-compatible',
610
- turns: usage.requests,
611
- inputTokens: usage.inputTokens,
612
- outputTokens: usage.outputTokens,
613
- filesRead,
614
- filesWritten,
615
- }),
616
- status: 'incomplete',
617
- errorCode: 'degenerate_exhausted',
618
- usage: {
619
- inputTokens: usage.inputTokens,
620
- outputTokens: usage.outputTokens,
621
- totalTokens: usage.totalTokens,
622
- costUSD,
623
- savedCostUSD,
624
- },
625
- turns: usage.requests,
626
- filesRead,
627
- directoriesListed: tracker.getDirectoriesListed(),
628
- filesWritten,
629
- toolCalls,
630
- outputIsDiagnostic: !hasSalvage,
631
- escalationLog: [],
632
- ...(opts?.reason && { error: opts.reason }),
633
- durationMs,
634
- };
635
- }
636
- function buildForceSalvageResult(currentResult, scratchpad, tracker, providerConfig, softLimit, durationMs, parentModel) {
637
- const usage = currentResult.state.usage;
638
- const filesRead = tracker.getReads();
639
- const filesWritten = tracker.getWrites();
640
- const toolCalls = tracker.getToolCalls();
641
- const costUSD = computeCostUSD(usage.inputTokens, usage.outputTokens, providerConfig);
642
- const savedCostUSD = computeSavedCostUSD(costUSD, usage.inputTokens, usage.outputTokens, parentModel);
643
- const hasSalvage = !scratchpad.isEmpty();
644
- return {
645
- output: hasSalvage
646
- ? scratchpad.latest()
647
- : `[openai-compatible sub-agent forcibly terminated at ${usage.inputTokens} input tokens (soft limit ${softLimit}). No usable text was buffered.]`,
648
- status: 'incomplete',
649
- usage: {
650
- inputTokens: usage.inputTokens,
651
- outputTokens: usage.outputTokens,
652
- totalTokens: usage.totalTokens,
653
- costUSD,
654
- savedCostUSD,
655
- },
656
- turns: usage.requests,
657
- filesRead,
658
- directoriesListed: tracker.getDirectoriesListed(),
659
- filesWritten,
660
- toolCalls,
661
- outputIsDiagnostic: !hasSalvage,
662
- escalationLog: [],
663
- durationMs,
664
- };
530
+ if (err instanceof Error && '__timeCeiling' in err) {
531
+ const ceilingMs = err.__timeCeiling;
532
+ emit({ kind: 'done', status: 'incomplete' });
533
+ const partial = partialUsage(currentResult, runner.providerConfig);
534
+ return sharedBuildTimeCeilingResult({
535
+ usage: { inputTokens: partial.inputTokens, outputTokens: partial.outputTokens, totalTokens: partial.totalTokens, costUSD: partial.costUSD, costDeltaVsParentUSD: partial.costDeltaVsParentUSD ?? null, cachedTokens: partial.cachedTokens ?? null, reasoningTokens: partial.reasoningTokens ?? null },
536
+ turns: currentResult?.state.usage.requests ?? 0,
537
+ tracker,
538
+ scratchpad,
539
+ wallClockMs: ceilingMs,
540
+ timeoutMs,
541
+ durationMs: Date.now() - taskStartMs,
542
+ });
665
543
  }
666
544
  // Classify the thrown error into a finer-grained RunStatus so the
667
545
  // escalation orchestrator (and downstream observers) can distinguish
@@ -674,11 +552,11 @@ export async function runOpenAI(prompt, options, runner) {
674
552
  emit({ kind: 'done', status });
675
553
  const hasSalvage = !scratchpad.isEmpty();
676
554
  const partial = partialUsage(currentResult, runner.providerConfig);
677
- const savedCostUSD = computeSavedCostUSD(partial.costUSD, partial.inputTokens, partial.outputTokens, parentModel);
555
+ const costDeltaVsParentUSD = computeCostDeltaVsParentUSD(partial.costUSD, partial.inputTokens, partial.outputTokens, parentModel);
678
556
  return {
679
557
  output: hasSalvage ? scratchpad.latest() : `Sub-agent error: ${msg}`,
680
558
  status,
681
- usage: { ...partial, savedCostUSD },
559
+ usage: { ...partial, costDeltaVsParentUSD },
682
560
  turns: currentResult?.state.usage.requests ?? 0,
683
561
  filesRead: tracker.getReads(),
684
562
  directoriesListed: tracker.getDirectoriesListed(),
@@ -691,6 +569,9 @@ export async function runOpenAI(prompt, options, runner) {
691
569
  ...(isRateLimit(err) && {
692
570
  structuredError: { code: 'rate_limit_exceeded', message: 'rate limited by provider', where: 'runner:openai-compatible' },
693
571
  }),
572
+ ...(isProviderContextLimit(err) && {
573
+ errorCode: 'provider_context_limit',
574
+ }),
694
575
  };
695
576
  }
696
577
  };
@@ -698,7 +579,7 @@ export async function runOpenAI(prompt, options, runner) {
698
579
  emit({ kind: 'done', status: 'timeout' });
699
580
  const hasSalvage = !scratchpad.isEmpty();
700
581
  const partial = partialUsage(currentResult, runner.providerConfig);
701
- const savedCostUSD = computeSavedCostUSD(partial.costUSD, partial.inputTokens, partial.outputTokens, parentModel);
582
+ const costDeltaVsParentUSD = computeCostDeltaVsParentUSD(partial.costUSD, partial.inputTokens, partial.outputTokens, parentModel);
702
583
  return {
703
584
  output: hasSalvage
704
585
  ? scratchpad.latest()
@@ -710,7 +591,7 @@ export async function runOpenAI(prompt, options, runner) {
710
591
  toolCalls: tracker.getToolCalls(),
711
592
  // Preserve partial usage from the last successful agentRun so the
712
593
  // caller sees real numbers, not zeros, on a timeout.
713
- usage: { ...partial, savedCostUSD },
594
+ usage: { ...partial, costDeltaVsParentUSD },
714
595
  turns: currentResult?.state.usage.requests ?? 0,
715
596
  outputIsDiagnostic: !hasSalvage,
716
597
  escalationLog: [],
@@ -719,15 +600,50 @@ export async function runOpenAI(prompt, options, runner) {
719
600
  }, abortController, options.abortSignal);
720
601
  }
721
602
  // --- Helpers: canonical return-shape builders -------------------------------
603
+ /**
604
+ * Extract cached/reasoning tokens into {@link CanonicalUsage} shape (§3.6).
605
+ *
606
+ * The @openai/agents SDK stores per-request detail records in
607
+ * `inputTokensDetails: Array<Record<string, number>>` and
608
+ * `outputTokensDetails: Array<Record<string, number>>`. The OpenAI API
609
+ * returns `cached_tokens` and `reasoning_tokens` as snake_case keys
610
+ * inside those detail objects. We sum across all requests; if the provider
611
+ * never exposed the detail field the result is null.
612
+ */
613
+ function extractCanonicalTokens(usage) {
614
+ let cachedTokens = 0;
615
+ let hasCached = false;
616
+ for (const d of usage.inputTokensDetails ?? []) {
617
+ if (typeof d.cached_tokens === 'number') {
618
+ cachedTokens += d.cached_tokens;
619
+ hasCached = true;
620
+ }
621
+ }
622
+ let reasoningTokens = 0;
623
+ let hasReasoning = false;
624
+ for (const d of usage.outputTokensDetails ?? []) {
625
+ if (typeof d.reasoning_tokens === 'number') {
626
+ reasoningTokens += d.reasoning_tokens;
627
+ hasReasoning = true;
628
+ }
629
+ }
630
+ return {
631
+ cachedTokens: hasCached ? cachedTokens : null,
632
+ reasoningTokens: hasReasoning ? reasoningTokens : null,
633
+ };
634
+ }
722
635
  function openAIUsage(currentResult, providerConfig, parentModel) {
723
636
  const u = currentResult.state.usage;
724
637
  const costUSD = computeCostUSD(u.inputTokens, u.outputTokens, providerConfig);
638
+ const { cachedTokens, reasoningTokens } = extractCanonicalTokens(u);
725
639
  return {
726
640
  inputTokens: u.inputTokens,
727
641
  outputTokens: u.outputTokens,
728
642
  totalTokens: u.totalTokens,
729
643
  costUSD,
730
- savedCostUSD: computeSavedCostUSD(costUSD, u.inputTokens, u.outputTokens, parentModel),
644
+ costDeltaVsParentUSD: computeCostDeltaVsParentUSD(costUSD, u.inputTokens, u.outputTokens, parentModel),
645
+ cachedTokens,
646
+ reasoningTokens,
731
647
  };
732
648
  }
733
649
  function buildOkResult(output, currentResult, tracker, providerConfig, durationMs, parentModel) {
@@ -751,17 +667,6 @@ function buildSupervisionExhaustedResult(currentResult, scratchpad, tracker, pro
751
667
  stampExhausted: true,
752
668
  });
753
669
  }
754
- function buildForceSalvageResult(currentResult, scratchpad, tracker, providerConfig, softLimit, durationMs, parentModel) {
755
- return sharedBuildForceSalvageResult({
756
- providerLabel: 'openai-compatible',
757
- usage: openAIUsage(currentResult, providerConfig, parentModel),
758
- turns: currentResult.state.usage.requests,
759
- tracker,
760
- scratchpad,
761
- softLimit,
762
- durationMs,
763
- });
764
- }
765
670
  /**
766
671
  * Synthesise a diagnostic message for runs that completed without producing
767
672
  * usable final output. Surfaces enough metadata for the caller to debug:
@@ -802,14 +707,18 @@ function formatFileList(files) {
802
707
  */
803
708
  function partialUsage(result, providerConfig) {
804
709
  if (!result) {
805
- return { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null };
710
+ return { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null, costDeltaVsParentUSD: null, cachedTokens: null, reasoningTokens: null };
806
711
  }
807
712
  const usage = result.state.usage;
713
+ const { cachedTokens, reasoningTokens } = extractCanonicalTokens(usage);
808
714
  return {
809
715
  inputTokens: usage.inputTokens,
810
716
  outputTokens: usage.outputTokens,
811
717
  totalTokens: usage.totalTokens,
812
718
  costUSD: computeCostUSD(usage.inputTokens, usage.outputTokens, providerConfig),
719
+ costDeltaVsParentUSD: null,
720
+ cachedTokens,
721
+ reasoningTokens,
813
722
  };
814
723
  }
815
724
  //# sourceMappingURL=openai-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-runner.js","sourceRoot":"","sources":["../../src/runners/openai-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-runner.js","sourceRoot":"","sources":["../../src/runners/openai-runner.ts"],"names":[],"mappings":"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"}
@@ -81,55 +81,6 @@ export declare function sameDegenerateOutput(a: string, b: string): boolean;
81
81
  * for unprofiled model IDs.
82
82
  */
83
83
  export declare function resolveInputTokenSoftLimit(config: ProviderConfig, profile: ModelProfile): number;
84
- export type WatchdogStatus = 'ok' | 'warning' | 'force_salvage';
85
- /**
86
- * Watchdog threshold ratios (fraction of the resolved `softLimit`).
87
- * Exported so tests can reference the exact boundary values.
88
- *
89
- * - At/above `WATCHDOG_WARNING_RATIO` (80%) the supervision loop nudges
90
- * the model toward salvage.
91
- * - At/above `WATCHDOG_FORCE_SALVAGE_RATIO` (95%) the loop is forcibly
92
- * terminated and the scratchpad is salvaged.
93
- */
94
- export declare const WATCHDOG_WARNING_RATIO = 0.8;
95
- export declare const WATCHDOG_FORCE_SALVAGE_RATIO = 0.95;
96
- /**
97
- * Given the cumulative input token usage and the resolved soft limit,
98
- * returns the watchdog status:
99
- * - 'ok' below 80%
100
- * - 'warning' at or above 80%, below 95% (model is nudged)
101
- * - 'force_salvage' at or above 95% (loop is forcibly terminated)
102
- *
103
- * Throws if `softLimit` is not a positive finite number. Runners call
104
- * this independently, so a silent `'ok'` on a bad limit would mask
105
- * upstream config bugs.
106
- */
107
- export declare function checkWatchdogThreshold(cumulativeInputTokens: number, softLimit: number): WatchdogStatus;
108
- export interface WatchdogEventDetails {
109
- provider: string;
110
- model: string;
111
- turn: number;
112
- inputTokens: number;
113
- softLimit: number;
114
- scratchpadChars: number;
115
- }
116
- /**
117
- * Emits a structured log line at watchdog threshold crossings.
118
- *
119
- * Gated on the `MULTI_MODEL_DEBUG` environment variable: the function is
120
- * a no-op unless `process.env.MULTI_MODEL_DEBUG === '1'`. Any other value
121
- * (including `'true'`, `'yes'`, or unset) suppresses the log.
122
- *
123
- * When enabled, a single line is written to `stderr` via `console.error`
124
- * of the form:
125
- * `[multi-model-agent] WATCHDOG <status>: provider=… model=… turn=… inputTokens=… softLimit=… percentOfLimit=… [scratchpadChars=…]`
126
- *
127
- * `scratchpadChars` is only appended when `status === 'force_salvage'`,
128
- * since that is the transition where salvage content size matters for
129
- * calibration. Used for empirical calibration of the 80% / 95%
130
- * thresholds. See spec Part A.1.4 calibration logging.
131
- */
132
- export declare function logWatchdogEvent(status: 'warning' | 'force_salvage', details: WatchdogEventDetails): void;
133
84
  /** camelCase tool names (matching tracker.trackToolCall format in definitions.ts)
134
85
  * that indicate meaningful completed work — file mutations or shell execution. */
135
86
  export declare const COMPLETED_WORK_TOOLS: Set<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"supervision.d.ts","sourceRoot":"","sources":["../../src/runners/supervision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervision.d.ts","sourceRoot":"","sources":["../../src/runners/supervision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,eAAe,GACf,UAAU,GACV,eAAe,GACf,uBAAuB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAClD,gBAAgB,CAqClB;AAUD;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,4FACoD,CAAC;AA0D5F,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,yBAA8B,GACnC,gBAAgB,CAoDlB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAqD9D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,YAAY,GACpB,MAAM,CAER;AAED;mFACmF;AACnF,eAAO,MAAM,oBAAoB,aAAiD,CAAC;AAEnF;;;;;;;gCAOgC;AAChC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,kGAAkG;AAClG,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAE7D;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CAQvF;AAED;qGACqG;AACrG,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,OAAO,CAET;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IACJ,gBAAgB,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,eAAe,GAAG,SAAS,CAAC;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACvB,GACL,gBAAgB,CAuClB"}
@@ -219,73 +219,6 @@ export function sameDegenerateOutput(a, b) {
219
219
  export function resolveInputTokenSoftLimit(config, profile) {
220
220
  return config.inputTokenSoftLimit ?? profile.inputTokenSoftLimit;
221
221
  }
222
- /**
223
- * Watchdog threshold ratios (fraction of the resolved `softLimit`).
224
- * Exported so tests can reference the exact boundary values.
225
- *
226
- * - At/above `WATCHDOG_WARNING_RATIO` (80%) the supervision loop nudges
227
- * the model toward salvage.
228
- * - At/above `WATCHDOG_FORCE_SALVAGE_RATIO` (95%) the loop is forcibly
229
- * terminated and the scratchpad is salvaged.
230
- */
231
- export const WATCHDOG_WARNING_RATIO = 0.80;
232
- export const WATCHDOG_FORCE_SALVAGE_RATIO = 0.95;
233
- /**
234
- * Given the cumulative input token usage and the resolved soft limit,
235
- * returns the watchdog status:
236
- * - 'ok' below 80%
237
- * - 'warning' at or above 80%, below 95% (model is nudged)
238
- * - 'force_salvage' at or above 95% (loop is forcibly terminated)
239
- *
240
- * Throws if `softLimit` is not a positive finite number. Runners call
241
- * this independently, so a silent `'ok'` on a bad limit would mask
242
- * upstream config bugs.
243
- */
244
- export function checkWatchdogThreshold(cumulativeInputTokens, softLimit) {
245
- if (!Number.isFinite(softLimit) || !(softLimit > 0)) {
246
- throw new Error(`checkWatchdogThreshold: softLimit must be a positive finite number, got ${softLimit}`);
247
- }
248
- const ratio = cumulativeInputTokens / softLimit;
249
- if (ratio >= WATCHDOG_FORCE_SALVAGE_RATIO)
250
- return 'force_salvage';
251
- if (ratio >= WATCHDOG_WARNING_RATIO)
252
- return 'warning';
253
- return 'ok';
254
- }
255
- /**
256
- * Emits a structured log line at watchdog threshold crossings.
257
- *
258
- * Gated on the `MULTI_MODEL_DEBUG` environment variable: the function is
259
- * a no-op unless `process.env.MULTI_MODEL_DEBUG === '1'`. Any other value
260
- * (including `'true'`, `'yes'`, or unset) suppresses the log.
261
- *
262
- * When enabled, a single line is written to `stderr` via `console.error`
263
- * of the form:
264
- * `[multi-model-agent] WATCHDOG <status>: provider=… model=… turn=… inputTokens=… softLimit=… percentOfLimit=… [scratchpadChars=…]`
265
- *
266
- * `scratchpadChars` is only appended when `status === 'force_salvage'`,
267
- * since that is the transition where salvage content size matters for
268
- * calibration. Used for empirical calibration of the 80% / 95%
269
- * thresholds. See spec Part A.1.4 calibration logging.
270
- */
271
- export function logWatchdogEvent(status, details) {
272
- if (process.env.MULTI_MODEL_DEBUG !== '1')
273
- return;
274
- const percent = Math.round((details.inputTokens / details.softLimit) * 100);
275
- const parts = [
276
- `[multi-model-agent] WATCHDOG ${status}:`,
277
- `provider=${details.provider}`,
278
- `model=${details.model}`,
279
- `turn=${details.turn}`,
280
- `inputTokens=${details.inputTokens}`,
281
- `softLimit=${details.softLimit}`,
282
- `percentOfLimit=${percent}`,
283
- ];
284
- if (status === 'force_salvage') {
285
- parts.push(`scratchpadChars=${details.scratchpadChars}`);
286
- }
287
- console.error(parts.join(' '));
288
- }
289
222
  /** camelCase tool names (matching tracker.trackToolCall format in definitions.ts)
290
223
  * that indicate meaningful completed work — file mutations or shell execution. */
291
224
  export const COMPLETED_WORK_TOOLS = new Set(['writeFile', 'editFile', 'runShell']);