@tangle-network/agent-runtime 6.0.4 → 6.0.5

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 (41) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{activation-DNqjZEo7.js → activation-kpRQffeo.js} +2 -2
  3. package/dist/{activation-DNqjZEo7.js.map → activation-kpRQffeo.js.map} +1 -1
  4. package/dist/agent.js +2 -2
  5. package/dist/{coordination-manager-CYElgkMI.js → coordination-manager-ds4pn4IC.js} +2 -2
  6. package/dist/{coordination-manager-CYElgkMI.js.map → coordination-manager-ds4pn4IC.js.map} +1 -1
  7. package/dist/{delegate-dW2jsqFF.js → delegate-B2Z1CueR.js} +2 -2
  8. package/dist/{delegate-dW2jsqFF.js.map → delegate-B2Z1CueR.js.map} +1 -1
  9. package/dist/durable.js +4 -4
  10. package/dist/{graph-A7AvOP1I.js → graph-flrNgUfu.js} +4 -4
  11. package/dist/{graph-A7AvOP1I.js.map → graph-flrNgUfu.js.map} +1 -1
  12. package/dist/{improve-4qJclc9J.js → improve-DEkdGeQV.js} +5 -5
  13. package/dist/{improve-4qJclc9J.js.map → improve-DEkdGeQV.js.map} +1 -1
  14. package/dist/index.js +7 -7
  15. package/dist/intelligence.js +3 -3
  16. package/dist/kernel.js +10 -10
  17. package/dist/{loop-runner-DZxVXLLU.js → loop-runner-CrEq3gmu.js} +2 -2
  18. package/dist/{loop-runner-DZxVXLLU.js.map → loop-runner-CrEq3gmu.js.map} +1 -1
  19. package/dist/loop-runner-bin.js +1 -1
  20. package/dist/mcp/bin.js +2 -2
  21. package/dist/mcp/index.js +4 -4
  22. package/dist/{provision-supervisor-CBeTMpMY.js → provision-supervisor-CuX82sFT.js} +3 -3
  23. package/dist/{provision-supervisor-CBeTMpMY.js.map → provision-supervisor-CuX82sFT.js.map} +1 -1
  24. package/dist/{run-state-Dn2AIE5m.js → run-state-Dt-v0Fr8.js} +2 -2
  25. package/dist/{run-state-Dn2AIE5m.js.map → run-state-Dt-v0Fr8.js.map} +1 -1
  26. package/dist/{runtime-D5eL70Is.js → runtime-BNSsSOZ7.js} +10 -10
  27. package/dist/{runtime-D5eL70Is.js.map → runtime-BNSsSOZ7.js.map} +1 -1
  28. package/dist/{search-executor-1qaSeY70.js → search-executor-CpQIJAdh.js} +2 -2
  29. package/dist/{search-executor-1qaSeY70.js.map → search-executor-CpQIJAdh.js.map} +1 -1
  30. package/dist/{server-Dp4JKuTZ.js → server-umzSNbPI.js} +2 -2
  31. package/dist/{server-Dp4JKuTZ.js.map → server-umzSNbPI.js.map} +1 -1
  32. package/dist/{structural-rollout-BwyAIuww.js → structural-rollout-B8PkKbfv.js} +2 -2
  33. package/dist/{structural-rollout-BwyAIuww.js.map → structural-rollout-B8PkKbfv.js.map} +1 -1
  34. package/dist/{supervise-C2Do7hEd.js → supervise-B3hzcqVU.js} +40 -80
  35. package/dist/supervise-B3hzcqVU.js.map +1 -0
  36. package/dist/{supervisor-jXN2xXiU.js → supervisor-DpWSUrwB.js} +2 -2
  37. package/dist/{supervisor-jXN2xXiU.js.map → supervisor-DpWSUrwB.js.map} +1 -1
  38. package/dist/testing.js +11 -11
  39. package/dist/tui/index.js +1 -1
  40. package/package.json +2 -2
  41. package/dist/supervise-C2Do7hEd.js.map +0 -1
@@ -3,12 +3,12 @@ import { f as RuntimeRunStateError, i as ConfigError, m as ValidationError } fro
3
3
  import { A as withBudgetResources, D as addResourceSpend, I as armDeadlineTimer, P as DEFAULT_SUCCESSFUL_SHUTDOWN_MS, S as unmeteredSpend, T as zeroSpend, V as teardownExecutor, c as errorMessage, f as isAsyncIterable, i as chargedTokens, k as resourceTelemetry, m as promptCacheTokenClasses, n as addSpend, v as sleep, w as withTimeout, z as isDeadlineAbortReason } from "./util-C_cdPNC4.js";
4
4
  import { $ as assertValidBudget, C as jitteredMs, D as unavailableResumeAt, E as unavailablePauseMs, L as turnFailureOf, M as contentAddress, P as executorFailure, Q as spendFromUsageTotals, R as turnFailurePolicy, S as cappedDoublingMs, T as reportedResetAt, X as newUsageTotals, Y as meterUsageEvent, _ as registerRetainedExecutorPreparation, u as RetainedExecutionPendingError, wt as recordValue, y as retainedExecutorSeamKey } from "./failure-cause-BzjUUsRz.js";
5
5
  import { a as errMessage, c as errorText, i as causeChain, l as defaultRedactor, n as detachedSnapshot, o as errorHttpStatus } from "./snapshot-Cgj2Wzi6.js";
6
- import { $t as promptModelProfileMaterialization, At as bridgeModelRouteRefusal, B as createRouterTranscript, C as createExecutor, Ct as admitContinuationPolicy, Et as createContinuationKeeper, F as codeModeArguments, I as codeModeModelOutput, Jt as controlProfileMaterialization, Kt as assertProfileMaterialization, L as createCodeModeTools, Qt as promptControlProfileMaterialization, Rt as bridgeRuntimeAttachmentsKey, S as captureReusableExecutorConfig, St as CONTINUATIONS_DIR, Tt as checkVerdictOf, U as resolveAgentEnvironmentProvider, V as routerBrain, X as createInbox, Xt as fullProfileMaterialization, Y as INBOX_RECEIPT_KEY, Yt as defineProfileMaterializationContract, Zt as profileMaterializationAxes$1, _t as CheckUnavailableError, a as assertRunParking, c as sleepScopeWait, ct as HarnessTurnFailedError, d as runFinalizer, dt as isContentFilterRefusal, en as renderUnsupported, et as PEER_MAIL_WIRE_KEY, f as runTree, ft as summarizeDriverAttempts, g as isDriverSpec, gt as preflightPublicCoordination, h as driverExecutorFactory, ht as upstreamUnavailableSignal, i as RunParkedError, in as worktreeCliProfileMaterialization, kt as bridgeAdmissionRefusal, l as withRunParking, lt as abandonablePending, m as driverChild, mt as undispatchedCredentialExit, n as createSupervisor, nn as sandboxProfileMaterialization, o as bindScopeParkingDrain, p as createRootHandle, pt as transientFailureKind, rn as unsupportedProfileDimensions, rt as isPeerMailEnvelope, st as DriverAttemptsExhaustedError, u as bestDelivered, ut as classifyDriverFailure, vt as gateFactoryOnDeliverable, w as snapshotExecutorConfig, wt as bestComposite, x as bindReusableExecutorExecutionId, z as toolResultText, zt as bridgeStopSignalKey } from "./supervisor-jXN2xXiU.js";
6
+ import { $t as renderUnsupported, B as createRouterTranscript, C as createExecutor, Ct as bestComposite, F as codeModeArguments, Gt as assertProfileMaterialization, I as codeModeModelOutput, Jt as defineProfileMaterializationContract, L as createCodeModeTools, Lt as bridgeRuntimeAttachmentsKey, Ot as bridgeAdmissionRefusal, Qt as promptModelProfileMaterialization, Rt as bridgeStopSignalKey, S as captureReusableExecutorConfig, St as admitContinuationPolicy, Tt as createContinuationKeeper, U as resolveAgentEnvironmentProvider, V as routerBrain, X as createInbox, Xt as profileMaterializationAxes$1, Y as INBOX_RECEIPT_KEY, Yt as fullProfileMaterialization, Zt as promptControlProfileMaterialization, _t as gateFactoryOnDeliverable, a as assertRunParking, c as sleepScopeWait, ct as HarnessTurnFailedError, d as runFinalizer, dt as summarizeDriverAttempts, et as PEER_MAIL_WIRE_KEY, f as runTree, ft as transientFailureKind, g as isDriverSpec, gt as CheckUnavailableError, h as driverExecutorFactory, ht as preflightPublicCoordination, i as RunParkedError, kt as bridgeModelRouteRefusal, l as withRunParking, lt as abandonablePending, m as driverChild, mt as upstreamUnavailableSignal, n as createSupervisor, nn as unsupportedProfileDimensions, o as bindScopeParkingDrain, p as createRootHandle, pt as undispatchedCredentialExit, qt as controlProfileMaterialization, rn as worktreeCliProfileMaterialization, rt as isPeerMailEnvelope, st as DriverAttemptsExhaustedError, tn as sandboxProfileMaterialization, u as bestDelivered, ut as classifyDriverFailure, w as snapshotExecutorConfig, wt as checkVerdictOf, x as bindReusableExecutorExecutionId, xt as CONTINUATIONS_DIR, z as toolResultText } from "./supervisor-DpWSUrwB.js";
7
7
  import { _ as agentHarness, a as concreteProfileModel, c as profileModelExecutionSettings, l as profileProviderModel, n as assertModelAllowed, o as enforceTokenLimits, r as assertProfileModelsAllowed, s as profileBridgeWireModel, t as assertExecutableAgentProfile, v as harnessRunsAgent } from "./model-policy-JOcg3NRs.js";
8
8
  import { n as createStdioToolServer } from "./tool-server-B9q2dtnW.js";
9
9
  import { t as composeRuntimeHooks } from "./runtime-hooks-CsW2pfFk.js";
10
10
  import { _ as workerAssignmentNamespace, c as writeRunCancellation, d as coordinationEventId, f as externalExecutionId, g as supervisionRunNamespace, h as rootCoordinationOwner, i as readRunCancellation, l as canonicalExecution, m as freezeDetachedProfile, p as freezeDetached, r as readRunCancelRequest, s as watchRunCancellation, t as applyRunCancellation, u as childCoordinationOwner } from "./run-cancellation-ZmRSYLu5.js";
11
- import { c as createSteerAcknowledger, d as coordinationVerbNames, f as createFileRunContext, l as budgetOverspendText, m as withRunContext, n as createCoordinationToolsForManager, p as createInMemoryRunContext, s as createCancelAcknowledger, t as createCoordinationTools, u as normalizeAnalyzeOnSettle } from "./coordination-manager-CYElgkMI.js";
11
+ import { c as createSteerAcknowledger, d as coordinationVerbNames, f as createFileRunContext, l as budgetOverspendText, m as withRunContext, n as createCoordinationToolsForManager, p as createInMemoryRunContext, s as createCancelAcknowledger, t as createCoordinationTools, u as normalizeAnalyzeOnSettle } from "./coordination-manager-ds4pn4IC.js";
12
12
  import { o as safeJsonText } from "./coordination-map-routing-CKRNZSaV.js";
13
13
  import { a as graphRegistry, c as loadGraph } from "./graph-registry-DbCwfHMY.js";
14
14
  import { ATTR, LINK_KIND_ATTR, agentIdentityAttributes } from "@tangle-network/agent-trace-contract";
@@ -5003,8 +5003,6 @@ const BARREN_PAUSE_MAX_MS = 36e5;
5003
5003
  const PAUSED_STOPS = /* @__PURE__ */ new Set([
5004
5004
  "no-progress",
5005
5005
  "max-attempts",
5006
- "repeated-failure",
5007
- "pending-unresolved",
5008
5006
  "budget-exhausted"
5009
5007
  ]);
5010
5008
  /** The pause before a continuation after `streak` barren re-entries: 5 minutes at `maxBarren`,
@@ -5012,29 +5010,11 @@ const PAUSED_STOPS = /* @__PURE__ */ new Set([
5012
5010
  function barrenPauseMs(streak, maxBarren) {
5013
5011
  return cappedDoublingMs(streak - maxBarren + 1, BARREN_PAUSE_FIRST_MS, BARREN_PAUSE_MAX_MS);
5014
5012
  }
5015
- /**
5016
- * {@link REPEATED_FAILURE_LIMIT} attempts in a row failing alike within {@link INSTANT_FAILURE_MS}
5017
- * over {@link REPEATED_FAILURE_WINDOW_MS} stop with `repeated-failure` though progress reads
5018
- * run-wide (magnetar-rust-20261017c failed 1,258 of 2,069 root attempts on one ECONNREFUSED).
5019
- */
5020
- const INSTANT_FAILURE_MS = 3e4;
5021
- const REPEATED_FAILURE_LIMIT = 10;
5022
- const REPEATED_FAILURE_WINDOW_MS = 3e5;
5023
- /**
5024
- * Content-filter refusals in a row (any other outcome resets) that stop an agent with
5025
- * `repeated-failure`; an opted-in root pauses and re-enters. One prompt is not refused every time:
5026
- * on Discovery run magnetar-rust-sandbox-20261031f agents passed after up to 6 in a row (`:s0:s1`
5027
- * on its 7th identical send), and the loops that never passed ran 9 and 10.
5028
- */
5029
- const CONTENT_FILTER_REFUSAL_LIMIT = 8;
5030
5013
  /** Consecutive identical reconciliation failures of one pending invocation that resolve it. */
5031
5014
  const SAME_PENDING_LIMIT = 2;
5032
- /**
5033
- * Invocations in a row ending in one deterministic failure with nothing gained that stop the agent
5034
- * with no window, so its parent acts at once: a second proves what a third repeats. Over the week
5035
- * to 2026-11-04, us-legal-exploits-20261103b:s1 retried one harness refusal for 2 hours and
5036
- * queens21-h22-capture-root-1-20261019c re-entered four failed boxes 154 times in 37 minutes.
5037
- */
5015
+ /** No unchanged no-progress failure earns a fourth drive, including root pauses and capacity. */
5016
+ const SAME_CAUSE_LIMIT = 3;
5017
+ /** Deterministic failures without progress stop on their second identical cause. */
5038
5018
  const SAME_DETERMINISTIC_LIMIT = 2;
5039
5019
  /** `deadline` when a deadline cut the run, else `aborted`. Read before classification, which calls
5040
5020
  * every failure after an abort terminal: 61 of 62 `terminal-error` runs were a cut deadline. */
@@ -5083,18 +5063,20 @@ function driverRetryLimits(run) {
5083
5063
  transientOutage: Math.max(0, policy.transientOutageMs ?? DEFAULT_TRANSIENT_OUTAGE_MS)
5084
5064
  };
5085
5065
  }
5086
- /** A failure compares by the first cause under any pending-reconciliation wrapper. The stream
5087
- * codes a refusal and the exact result does not, so an absent code matches any. */
5088
- function extend(streak, error, at) {
5066
+ /** Compare the underlying cause, excluding changing observation/reconciliation wrappers. */
5067
+ function extend(streak, error) {
5089
5068
  const chain = causeChain(error);
5090
- const root = chain.find((cause) => !(cause instanceof RetainedExecutionPendingError)) ?? error;
5091
- const code = turnFailureOf(error)?.code ?? chain.find((cause) => cause instanceof HarnessTurnFailedError)?.errorCode;
5069
+ const root = chain.filter((cause) => cause instanceof Error && !(cause instanceof RetainedExecutionPendingError)).at(-1) ?? error;
5070
+ let code = turnFailureOf(error)?.code ?? chain.find((cause) => cause instanceof HarnessTurnFailedError)?.errorCode;
5071
+ if (code === void 0) try {
5072
+ const value = Reflect.get(root, "code");
5073
+ if (typeof value === "string") code = value;
5074
+ } catch {}
5092
5075
  const text = (code ? errMessage(root).replace(` (${code})`, "") : errMessage(root)).replace(/\d{4}-\d\d-\d\dT[\d:.]+Z?/gu, "<time>").replace(/\b(?=[\da-f-]*\d)[\da-f]{8,}(?:-[\da-f]{4,})*\b/giu, "<id>").replace(/\d{6,}/gu, "<n>");
5093
5076
  if (streak?.error !== text || (streak.code ?? code) !== (code ?? streak.code)) return {
5094
5077
  error: text,
5095
5078
  code,
5096
- count: 1,
5097
- since: at
5079
+ count: 1
5098
5080
  };
5099
5081
  return {
5100
5082
  ...streak,
@@ -5102,8 +5084,6 @@ function extend(streak, error, at) {
5102
5084
  count: streak.count + 1
5103
5085
  };
5104
5086
  }
5105
- /** True once a streak has run {@link REPEATED_FAILURE_LIMIT} alike over the window by `at`. */
5106
- const repeatedBy = (streak, at) => streak !== void 0 && streak.count >= REPEATED_FAILURE_LIMIT && at - streak.since >= REPEATED_FAILURE_WINDOW_MS;
5107
5087
  /** The retry loop's streaks and counters, and the decision each drive's outcome makes with them. */
5108
5088
  var DriverRetryLoop = class {
5109
5089
  run;
@@ -5115,11 +5095,8 @@ var DriverRetryLoop = class {
5115
5095
  chargedFailures = 0;
5116
5096
  outageSince;
5117
5097
  consecutivePauses = 0;
5118
- samePending;
5119
5098
  pendingTries = 0;
5120
- sameFailure;
5121
5099
  sameIdle;
5122
- refusals = 0;
5123
5100
  abandonments = 0;
5124
5101
  stopPauses = 0;
5125
5102
  pauses = 0;
@@ -5228,10 +5205,7 @@ var DriverRetryLoop = class {
5228
5205
  }
5229
5206
  this.chargedFailures = 0;
5230
5207
  this.consecutiveBarren = 0;
5231
- this.sameFailure = void 0;
5232
- this.sameIdle = void 0;
5233
- this.refusals = 0;
5234
- this.samePending = void 0;
5208
+ this.pendingTries = 0;
5235
5209
  this.abandonments = 0;
5236
5210
  this.outageSince = void 0;
5237
5211
  if (record.error !== void 0) this.reentry = {
@@ -5263,7 +5237,6 @@ var DriverRetryLoop = class {
5263
5237
  async afterFailure(error, attempt, before, startedAt) {
5264
5238
  const durationMs = this.limits.now() - startedAt;
5265
5239
  const classification = classifyDriverFailure(error, this.run.signal, this.run.stopSignal);
5266
- this.refusals = isContentFilterRefusal(error) ? this.refusals + 1 : 0;
5267
5240
  const after = this.run.progress();
5268
5241
  const progressed = madeProgress(before, after);
5269
5242
  if (progressed) {
@@ -5283,19 +5256,18 @@ var DriverRetryLoop = class {
5283
5256
  progressed,
5284
5257
  pending
5285
5258
  };
5286
- if (progressed) this.samePending = void 0;
5287
- else if (pending !== void 0 && classification === "transient") {
5288
- const same = this.samePending?.error === pending.pendingCause ? this.samePending : void 0;
5289
- this.pendingTries = same === void 0 ? 1 : this.pendingTries + 1;
5290
- this.samePending = same ? {
5291
- ...same,
5292
- count: same.count + 1
5293
- } : {
5294
- error: pending.pendingCause,
5295
- count: 1,
5296
- since: startedAt + durationMs
5297
- };
5259
+ this.sameIdle = progressed ? void 0 : extend(this.sameIdle, error);
5260
+ if (classification !== "terminal" && !this.run.signal.aborted && budgetStop(this.run.budget(), this.limits.now()) === void 0 && (this.sameIdle?.count ?? 0) >= SAME_CAUSE_LIMIT) {
5261
+ const stop = pending === void 0 || classification === "unavailable" ? "repeated-failure" : "pending-unresolved";
5262
+ await this.emit({
5263
+ ...this.failureRecord(failure),
5264
+ stop,
5265
+ ...error instanceof RetainedExecutionPendingError ? { pendingCause: error.pendingCause } : {}
5266
+ });
5267
+ throw new DriverAttemptsExhaustedError(error, this.attempts, stop);
5298
5268
  }
5269
+ if (progressed) this.pendingTries = 0;
5270
+ else if (pending !== void 0 && classification === "transient") this.pendingTries = this.sameIdle?.count === 1 ? 1 : this.pendingTries + 1;
5299
5271
  if (classification === "unavailable") await this.pause(failure);
5300
5272
  else await this.retry(failure);
5301
5273
  }
@@ -5352,11 +5324,8 @@ var DriverRetryLoop = class {
5352
5324
  this.failures += 1;
5353
5325
  const failedAt = limits.now();
5354
5326
  const stop = this.failureStop(failure, failedAt);
5355
- const same = failure.pending && this.samePending;
5356
- const repeated = repeatedBy(same, failedAt);
5357
- const abandoned = !repeated && await this.abandonPending(failure, stop);
5358
- const unresolved = !abandoned && same !== void 0 && (stop === void 0 || stop === "no-progress") && (repeated || run.resolvePending !== void 0 && this.abandonments >= limits.maxConsecutive && this.pendingTries >= SAME_PENDING_LIMIT);
5359
- const retryStop = abandoned ? void 0 : unresolved ? "pending-unresolved" : stop;
5327
+ const abandoned = await this.abandonPending(failure, stop);
5328
+ const retryStop = abandoned ? void 0 : failure.pending && stop === "no-progress" ? "pending-unresolved" : stop;
5360
5329
  if (progressed) this.barrenReentries = 0;
5361
5330
  if (retryStop !== void 0) {
5362
5331
  await this.stopOrPause(error, retryStop, {
@@ -5390,27 +5359,21 @@ var DriverRetryLoop = class {
5390
5359
  else this.outageSince ??= failedAt;
5391
5360
  const inOutage = idle && failedAt - (this.outageSince ?? failedAt) < limits.transientOutage;
5392
5361
  if (!inOutage) this.chargedFailures += 1;
5393
- const sameFailure = failure.durationMs >= INSTANT_FAILURE_MS ? void 0 : extend(this.sameFailure, error, failedAt);
5394
- this.sameFailure = sameFailure;
5395
- if (progressed || kind === void 0 || isContentFilterRefusal(error)) this.sameIdle = void 0;
5396
- else if (failure.pending === void 0) this.sameIdle = extend(this.sameIdle, error, failedAt);
5397
- const sameIdle = this.sameIdle;
5398
5362
  if (run.signal.aborted) return abortStop(run.signal);
5399
5363
  if (classification === "terminal") return "terminal-error";
5400
5364
  if (!limits.retryEnabled) return "retry-disabled";
5401
5365
  const byBudget = budgetStop(run.budget(), failedAt);
5402
5366
  if (byBudget) return byBudget;
5403
- if (this.refusals >= CONTENT_FILTER_REFUSAL_LIMIT) return "repeated-failure";
5404
- if (sameIdle !== void 0 && (kind === "deterministic" ? sameIdle.count >= SAME_DETERMINISTIC_LIMIT : run.nested === true && repeatedBy(sameIdle, failedAt))) return "repeated-failure";
5367
+ if (kind === "deterministic" && failure.pending === void 0 && (this.sameIdle?.count ?? 0) >= SAME_DETERMINISTIC_LIMIT) return "repeated-failure";
5405
5368
  if (inOutage) return void 0;
5406
5369
  if (this.chargedFailures >= limits.maxAttempts) return "max-attempts";
5407
- if (progressed) return repeatedBy(sameFailure, failedAt) ? "repeated-failure" : void 0;
5370
+ if (progressed) return void 0;
5408
5371
  return this.consecutiveBarren + 1 >= limits.maxConsecutive ? "no-progress" : void 0;
5409
5372
  }
5410
5373
  async abandonPending(failure, stop) {
5411
5374
  const { run, limits } = this;
5412
5375
  const { pending } = failure;
5413
- if (pending === void 0 || this.samePending === void 0 || run.resolvePending === void 0 || !limits.retryEnabled || run.signal.aborted || this.abandonments >= limits.maxConsecutive || !(stop === "no-progress" || stop === void 0 && this.pendingTries >= SAME_PENDING_LIMIT)) return false;
5376
+ if (pending === void 0 || this.sameIdle === void 0 || run.resolvePending === void 0 || !limits.retryEnabled || run.signal.aborted || this.abandonments >= limits.maxConsecutive || !(stop === "no-progress" || stop === void 0 && this.pendingTries >= SAME_PENDING_LIMIT)) return false;
5414
5377
  const abandoned = await run.resolvePending(pending, this.pendingTries);
5415
5378
  if (abandoned) {
5416
5379
  this.abandonments += 1;
@@ -5483,10 +5446,8 @@ var DriverRetryLoop = class {
5483
5446
  this.consecutiveBarren = 0;
5484
5447
  this.consecutivePauses = 0;
5485
5448
  this.outageSince = void 0;
5486
- this.samePending = void 0;
5487
- this.sameFailure = void 0;
5449
+ this.pendingTries = 0;
5488
5450
  this.sameIdle = void 0;
5489
- this.refusals = 0;
5490
5451
  this.abandonments = 0;
5491
5452
  const durationMs = this.limits.now() - startedAt;
5492
5453
  let after = run.progress();
@@ -5612,19 +5573,19 @@ var DriverRetryLoop = class {
5612
5573
  *
5613
5574
  * Runtime refusals and cancellation stay terminal. Canonical producer failures distinguish caller,
5614
5575
  * capacity, infrastructure and work; legacy transport/harness evidence remains a fallback.
5615
- * Capacity pauses do not consume failure allowances. A seat-bearing drive first lets its existing
5616
- * chain rotate; the chain owns its exhausted-seat wait, while the run's bounds still apply.
5576
+ * Capacity pauses do not consume failure allowances. Three unchanged failures without progress
5577
+ * settle even an opted-in root; a different cause or progress resets that streak.
5617
5578
  *
5618
- * Only idle infrastructure failures earn an outage window. Repeated deterministic failures with
5619
- * no progress stop inside that window; work failures consume the normal attempt/barren bounds.
5579
+ * Only idle infrastructure failures earn an outage window, still bounded by the unchanged cause.
5580
+ * Repeated deterministic failures stop sooner; work failures consume the normal attempt bounds.
5620
5581
  * With a declared check, progress means delivery or an improved verdict, not spend alone.
5621
5582
  *
5622
5583
  * Completed drives with an unmet contract continue with Runtime's note. Barren continuations
5623
5584
  * wait with increasing backoff; progress resets their streak. A resumed run first receives its
5624
5585
  * open workers, and counts barren drives only after a model event in this process.
5625
5586
  *
5626
- * Opted-in root stop-pauses alarm and wait instead of settling recoverable stops. Cancellation
5627
- * ends the wait; a steer wakes it but grants no admission. The next attempt rechecks the budget.
5587
+ * Root stop-pauses wait on recoverable stops; they cannot reset an unchanged failure streak.
5588
+ * Cancellation ends the wait; a steer wakes it but grants no admission.
5628
5589
  */
5629
5590
  function assertContinuationPolicy(continuation) {
5630
5591
  if (continuation === void 0) return;
@@ -5641,8 +5602,7 @@ function assertContinuationPolicy(continuation) {
5641
5602
  * `deadline` when a deadline cut it and `aborted` otherwise, never `terminal-error`. Throws
5642
5603
  * `DriverAttemptsExhaustedError` (cause = the last real failure) when a FAILURE ends the loop; a
5643
5604
  * completed drive returns, met contract or not, because deciding what an undelivered run is worth
5644
- * belongs to the finalizer, not to this loop. With `stopPause`, every stop but `completed`,
5645
- * `aborted` and a declared `deadline` pauses instead (STOP-PAUSE in the header).
5605
+ * belongs to the finalizer. Root stop-pauses never override the unchanged-failure ceiling.
5646
5606
  */
5647
5607
  async function runDriverWithRetry(run) {
5648
5608
  const limits = driverRetryLimits(run);
@@ -9447,4 +9407,4 @@ function superviseWithContext(profile, task, opts, brain) {
9447
9407
  }
9448
9408
  export { dumbContinuationPassPrompt as A, areaUnderCurve as B, defaultEdgeTraversalCap as C, createPromptRegistry as D, analyzesFindingsReportPrompt as E, allWorkersStalled as F, plateauLength as H, anyOf as I, noProgressFor as L, kernelPromptRegistry as M, naiveContinuationPrompt as N, delegatesWorkerBriefPrompt as O, promptHandle as P, plateau as R, validateFlowGraph as S, validateGraphTopology as T, renderAnytimeTable as U, bestSoFar as V, createSupervisorSpanRecorder as W, GraphRouteError as _, superviseRootProfile as a, journaledGateDecider as b, supervisorAgentWithTestBrain as c, composeReentryTask as d, serveCoordinationMcp as f, createGraphOverlay as g, runBrainLoop as h, profileGuidanceComposer as i, formatPromptHandle as j, dumbContinuationFailPrompt as k, runToolSpans as l, driverAgent as m, superviseFleetCapabilities as n, workerFromBackend as o, coordinationControlToolNames as p, superviseWithTestBrain as r, supervisorAgent as s, supervise as t, UNPROVEN_CONTINUITY as u, createFlowRun as v, graphRootProfile as w, routeFlowOf as x, flowRootProfile as y, anytimeReport as z };
9449
9409
 
9450
- //# sourceMappingURL=supervise-C2Do7hEd.js.map
9410
+ //# sourceMappingURL=supervise-B3hzcqVU.js.map