@tangle-network/agent-runtime 0.261.0 → 0.262.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/{activation-BwrMmguq.js → activation-C0AoYRgS.js} +2 -2
- package/dist/{activation-BwrMmguq.js.map → activation-C0AoYRgS.js.map} +1 -1
- package/dist/{activation-BpJ2CmXx.d.ts → activation-CozZXBTg.d.ts} +2 -2
- package/dist/agent.d.ts +2 -2
- package/dist/agent.js +2 -2
- package/dist/{coordination-driver-LmDxHvAO.js → coordination-driver-COGC8FK2.js} +302 -23
- package/dist/coordination-driver-COGC8FK2.js.map +1 -0
- package/dist/{delegate-rkhJf5w7.js → delegate-BC7Au73v.js} +2 -2
- package/dist/{delegate-rkhJf5w7.js.map → delegate-BC7Au73v.js.map} +1 -1
- package/dist/durable.d.ts +2 -2
- package/dist/durable.js +2 -2
- package/dist/{graph-Bn3wSH8-.js → graph-DgODOGWN.js} +3 -3
- package/dist/{graph-Bn3wSH8-.js.map → graph-DgODOGWN.js.map} +1 -1
- package/dist/{improvement-cycle-DYiwfjWY.js → improvement-cycle-DirqO-fX.js} +3 -3
- package/dist/{improvement-cycle-DYiwfjWY.js.map → improvement-cycle-DirqO-fX.js.map} +1 -1
- package/dist/{index-tubViIQJ.d.ts → index-B8tXCisZ.d.ts} +136 -288
- package/dist/index.d.ts +6 -6
- package/dist/index.js +7 -7
- package/dist/intelligence.d.ts +3 -3
- package/dist/intelligence.js +3 -3
- package/dist/kernel.d.ts +4 -4
- package/dist/kernel.js +9 -9
- package/dist/{loop-runner-bin-CL4W2pu1.d.ts → loop-runner-bin-BaZd1XIm.d.ts} +3 -3
- package/dist/{loop-runner-bin-Dxqxf91b.js → loop-runner-bin-C9P1ELVv.js} +3 -3
- package/dist/{loop-runner-bin-Dxqxf91b.js.map → loop-runner-bin-C9P1ELVv.js.map} +1 -1
- package/dist/loop-runner-bin.d.ts +1 -1
- package/dist/loop-runner-bin.js +1 -1
- package/dist/mcp/bin.js +3 -3
- package/dist/mcp/index.d.ts +6 -6
- package/dist/mcp/index.js +4 -4
- package/dist/{openai-tools-BlZHd0Nz.d.ts → openai-tools-CHwN_S24.d.ts} +2 -2
- package/dist/profiles.d.ts +2 -2
- package/dist/{provision-supervisor-By5oGk3t.js → provision-supervisor-9FMwo-Es.js} +3 -3
- package/dist/{provision-supervisor-By5oGk3t.js.map → provision-supervisor-9FMwo-Es.js.map} +1 -1
- package/dist/{runtime-BbQmK7qe.js → runtime-BXWVW51r.js} +8 -8
- package/dist/{runtime-BbQmK7qe.js.map → runtime-BXWVW51r.js.map} +1 -1
- package/dist/{server-CHlpLE22.js → server-6g6KFwUC.js} +3 -3
- package/dist/{server-CHlpLE22.js.map → server-6g6KFwUC.js.map} +1 -1
- package/dist/{stream-agent-turn-DTgxWXbR.d.ts → stream-agent-turn-u28hoxuR.d.ts} +2 -2
- package/dist/{structural-rollout-Dby60zHe.js → structural-rollout-WEfWpjub.js} +2 -2
- package/dist/{structural-rollout-Dby60zHe.js.map → structural-rollout-WEfWpjub.js.map} +1 -1
- package/dist/{substrate-CxwdhZri.d.ts → substrate-BeQiXkpa.d.ts} +2 -2
- package/dist/{supervise-1QzYAyS2.js → supervise-BeAI8-On.js} +221 -48
- package/dist/supervise-BeAI8-On.js.map +1 -0
- package/dist/{supervisor-yavsoQQo.js → supervisor-BGGvnXvV.js} +161 -17
- package/dist/{supervisor-yavsoQQo.js.map → supervisor-BGGvnXvV.js.map} +1 -1
- package/dist/testing.d.ts +2 -2
- package/dist/testing.js +12 -12
- package/dist/tui/index.d.ts +1 -1
- package/dist/tui/index.js +1 -1
- package/dist/{types-DNCNRu0E.d.ts → types-CP3iQ8Ji.d.ts} +354 -4
- package/package.json +2 -2
- package/dist/coordination-driver-LmDxHvAO.js.map +0 -1
- package/dist/supervise-1QzYAyS2.js.map +0 -1
|
@@ -16773,7 +16773,7 @@ var SpawnEventIndex = class {
|
|
|
16773
16773
|
/** Called only after validation and, for the file writer, a successful durable append. */
|
|
16774
16774
|
add(event) {
|
|
16775
16775
|
if (!outsideCursorNamespace(event)) this.cursors.add(event.seq);
|
|
16776
|
-
if (event.kind !== "spawned" && event.kind !== "materialized" && event.kind !== "execution-bound" && event.kind !== "execution-input" && event.kind !== "execution-admitted" && event.kind !== "execution-result" && !closesCursorSlot(event)) return;
|
|
16776
|
+
if (event.kind !== "spawned" && event.kind !== "materialized" && event.kind !== "execution-bound" && event.kind !== "execution-input" && event.kind !== "execution-admitted" && event.kind !== "execution-result" && event.kind !== "environment-teardown" && !closesCursorSlot(event)) return;
|
|
16777
16777
|
let node = this.nodes.get(event.id);
|
|
16778
16778
|
if (!node) {
|
|
16779
16779
|
node = {
|
|
@@ -16784,10 +16784,16 @@ var SpawnEventIndex = class {
|
|
|
16784
16784
|
inputs: /* @__PURE__ */ new Set(),
|
|
16785
16785
|
input: false,
|
|
16786
16786
|
result: false,
|
|
16787
|
-
admissions: /* @__PURE__ */ new Map()
|
|
16787
|
+
admissions: /* @__PURE__ */ new Map(),
|
|
16788
|
+
destroyedEnvironments: /* @__PURE__ */ new Set()
|
|
16788
16789
|
};
|
|
16789
16790
|
this.nodes.set(event.id, node);
|
|
16790
16791
|
}
|
|
16792
|
+
if (event.kind === "environment-teardown") {
|
|
16793
|
+
if (event.destroyed) node.destroyedEnvironments.add(event.environmentId);
|
|
16794
|
+
return;
|
|
16795
|
+
}
|
|
16796
|
+
if (event.kind === "execution-admitted" && event.admission.phase === "environment") node.lastEnvironmentId = event.admission.environmentId;
|
|
16791
16797
|
if (event.kind === "spawned") node.spawned = true;
|
|
16792
16798
|
else if (event.kind === "materialized") node.materialized = true;
|
|
16793
16799
|
else if (event.kind === "execution-bound") node.bindings.add(event.binding.attemptId);
|
|
@@ -16810,7 +16816,10 @@ var SpawnEventIndex = class {
|
|
|
16810
16816
|
if (event.kind === "execution-input") {
|
|
16811
16817
|
if (!/^sha256:[0-9a-f]{64}$/.test(event.taskRef)) fail("has an invalid task reference");
|
|
16812
16818
|
if (node.inputs.has(event.seq)) fail("has duplicate input sequence");
|
|
16813
|
-
|
|
16819
|
+
const environment = node.admissions.get("environment");
|
|
16820
|
+
const ranIn = environment?.phase === "environment" ? environment.environmentId : node.lastEnvironmentId;
|
|
16821
|
+
const abandoned = ranIn !== void 0 && node.destroyedEnvironments.has(ranIn);
|
|
16822
|
+
if (node.input && !node.result && !abandoned) fail("input replaces an unfinished invocation");
|
|
16814
16823
|
return;
|
|
16815
16824
|
}
|
|
16816
16825
|
if (event.kind === "execution-result") {
|
|
@@ -21732,6 +21741,86 @@ function hasDurableWorkspaceSnapshot(value) {
|
|
|
21732
21741
|
const parsed = agentCandidateWorkspaceSnapshotEvidenceSchema.safeParse(value);
|
|
21733
21742
|
return parsed.success && "locator" in parsed.data.manifest && "locator" in parsed.data.archive;
|
|
21734
21743
|
}
|
|
21744
|
+
/** Environment ids this owner's provider confirmed gone, from their teardown receipts. */
|
|
21745
|
+
function destroyedEnvironmentIds(owned) {
|
|
21746
|
+
return new Set(owned.flatMap((event) => event.kind === "environment-teardown" && event.destroyed ? [event.environmentId] : []));
|
|
21747
|
+
}
|
|
21748
|
+
/** The environment the owner's next invocation would continue in, when there is one: the latest
|
|
21749
|
+
* environment admission of this owner, which is either the current invocation's own (recovered
|
|
21750
|
+
* in place) or the one a deliberate later invocation reuses after an accepted result. `inFlight`
|
|
21751
|
+
* says whether the latest invocation has no result yet. */
|
|
21752
|
+
function continuedEnvironment(owned) {
|
|
21753
|
+
const latestInput = [...owned].reverse().find((event) => event.kind === "execution-input");
|
|
21754
|
+
if (latestInput === void 0) return void 0;
|
|
21755
|
+
const attempt = owned.slice(owned.indexOf(latestInput));
|
|
21756
|
+
const admission = [...owned].reverse().flatMap((event) => event.kind === "execution-admitted" && event.admission.phase === "environment" ? [event.admission] : [])[0];
|
|
21757
|
+
if (admission === void 0) return void 0;
|
|
21758
|
+
return {
|
|
21759
|
+
admission,
|
|
21760
|
+
inFlight: !attempt.some((event) => event.kind === "execution-result")
|
|
21761
|
+
};
|
|
21762
|
+
}
|
|
21763
|
+
/**
|
|
21764
|
+
* Confirm, before a new drive, that the environment the owner would continue in still exists.
|
|
21765
|
+
*
|
|
21766
|
+
* A retained invocation whose environment is gone can never be recovered: the retained path asked
|
|
21767
|
+
* the provider to reconnect, the provider answered `Sandbox not found`, and every later attempt
|
|
21768
|
+
* repeated that refusal until the barren streak ended the run. Measured on the real opencode path
|
|
21769
|
+
* (autopsy-a-before-20260924a, agent-runtime 5c22fbb2): the root sandbox was deleted 17 s after it
|
|
21770
|
+
* dispatched a child, four attempts in 64 s each refused "retained provider execution requires
|
|
21771
|
+
* reconciliation before replacement", and the run settled `driver-failed` while the child it had
|
|
21772
|
+
* commissioned settled `done` two minutes later, unread.
|
|
21773
|
+
*
|
|
21774
|
+
* The reconciliation refusal protects against paying twice for an execution that may still run.
|
|
21775
|
+
* An environment the provider no longer holds runs nothing, so there is nothing to reconcile: the
|
|
21776
|
+
* loss is journaled as a destroyed teardown receipt, and the next prepare starts a new invocation.
|
|
21777
|
+
*/
|
|
21778
|
+
async function reconcileScopeRetainedOwnerEnvironment(scope) {
|
|
21779
|
+
const state = owners.get(scope);
|
|
21780
|
+
if (!state?.provider) return { state: "none" };
|
|
21781
|
+
const { provider, args } = state;
|
|
21782
|
+
const owned = (await args.journal.loadTree(args.rootId) ?? []).filter((event) => event.id === args.nodeId);
|
|
21783
|
+
const continued = continuedEnvironment(owned);
|
|
21784
|
+
if (continued === void 0) return { state: "none" };
|
|
21785
|
+
const environmentId = continued.admission.environmentId;
|
|
21786
|
+
if (destroyedEnvironmentIds(owned).has(environmentId)) return {
|
|
21787
|
+
state: "lost",
|
|
21788
|
+
environmentId
|
|
21789
|
+
};
|
|
21790
|
+
if (!provider.get) return {
|
|
21791
|
+
state: "unknown",
|
|
21792
|
+
environmentId
|
|
21793
|
+
};
|
|
21794
|
+
let environment;
|
|
21795
|
+
try {
|
|
21796
|
+
environment = await runAbortable(() => provider.get(environmentId), AbortSignal.any([scope.signal, AbortSignal.timeout(3e4)]), "retained owner environment check timed out");
|
|
21797
|
+
} catch {
|
|
21798
|
+
return {
|
|
21799
|
+
state: "unknown",
|
|
21800
|
+
environmentId
|
|
21801
|
+
};
|
|
21802
|
+
}
|
|
21803
|
+
if (environment !== null) return {
|
|
21804
|
+
state: "live",
|
|
21805
|
+
environmentId,
|
|
21806
|
+
inFlight: continued.inFlight
|
|
21807
|
+
};
|
|
21808
|
+
scope.signal.throwIfAborted();
|
|
21809
|
+
await args.journal.appendEvent(args.rootId, {
|
|
21810
|
+
kind: "environment-teardown",
|
|
21811
|
+
id: args.nodeId,
|
|
21812
|
+
provider: provider.name,
|
|
21813
|
+
environmentId,
|
|
21814
|
+
destroyed: true,
|
|
21815
|
+
detail: "lost: the provider no longer holds this environment, so the next invocation starts in a new one",
|
|
21816
|
+
seq: state.nextSequence(),
|
|
21817
|
+
at: new Date(args.now()).toISOString()
|
|
21818
|
+
});
|
|
21819
|
+
return {
|
|
21820
|
+
state: "lost",
|
|
21821
|
+
environmentId
|
|
21822
|
+
};
|
|
21823
|
+
}
|
|
21735
21824
|
/** Resume the original backend prompt; rebuilt coordination observations cannot replace it. */
|
|
21736
21825
|
async function prepareScopeRetainedOwnerTask(scope, task) {
|
|
21737
21826
|
const state = owners.get(scope);
|
|
@@ -21748,6 +21837,14 @@ async function prepareScopeRetainedOwnerTask(scope, task) {
|
|
|
21748
21837
|
const accepted = [...attempt].reverse().find((event) => event.kind === "execution-result");
|
|
21749
21838
|
if (accepted?.kind === "execution-result") state.acceptedRef = accepted;
|
|
21750
21839
|
}
|
|
21840
|
+
const destroyed = destroyedEnvironmentIds(owned);
|
|
21841
|
+
const inFlight = continuedEnvironment(owned);
|
|
21842
|
+
if (inFlight?.inFlight && destroyed.has(inFlight.admission.environmentId)) {
|
|
21843
|
+
delete state.inputSequence;
|
|
21844
|
+
delete state.taskRef;
|
|
21845
|
+
state.admissions.length = 0;
|
|
21846
|
+
delete state.priorSession;
|
|
21847
|
+
}
|
|
21751
21848
|
if (state.prepared && state.acceptedRef && state.acceptedConsumed) {
|
|
21752
21849
|
const currentEnvironment = [...state.admissions].reverse().find((admission) => admission.phase === "environment");
|
|
21753
21850
|
if (currentEnvironment?.phase === "environment") state.priorSession = currentEnvironment;
|
|
@@ -21758,6 +21855,7 @@ async function prepareScopeRetainedOwnerTask(scope, task) {
|
|
|
21758
21855
|
state.admissions.length = 0;
|
|
21759
21856
|
delete state.acceptedConsumed;
|
|
21760
21857
|
}
|
|
21858
|
+
if (state.priorSession !== void 0 && destroyed.has(state.priorSession.environmentId)) delete state.priorSession;
|
|
21761
21859
|
state.prepared = true;
|
|
21762
21860
|
if (state.taskRef !== void 0) {
|
|
21763
21861
|
const original = await args.blobs.get(state.taskRef);
|
|
@@ -24778,9 +24876,22 @@ function unreportedSpend(total, prior) {
|
|
|
24778
24876
|
* driver that RETURNED with the contract unmet ended the run silently — 376 of 376 winning lab runs
|
|
24779
24877
|
* ended on this loop's own `stop: 'completed'`, with the completion gate left to label the result
|
|
24780
24878
|
* rather than to change it. A completed drive whose contract is unmet is now a first-class moment:
|
|
24781
|
-
* `reprompt.maxReprompts` re-enters the
|
|
24782
|
-
*
|
|
24783
|
-
*
|
|
24879
|
+
* `reprompt.maxReprompts` re-enters the driver with the unmet items, and every re-entry crosses the
|
|
24880
|
+
* same budget, deadline, and abort bounds. Successful continuations do not consume the failure
|
|
24881
|
+
* retry allowance.
|
|
24882
|
+
*
|
|
24883
|
+
* This loop decides WHETHER to re-enter; it does not know WHERE the next drive runs. Whether the
|
|
24884
|
+
* re-entered driver continues the same harness session, the same environment, or a replacement is
|
|
24885
|
+
* the drive harness's fact, and the caller composes the re-entry task from it (see
|
|
24886
|
+
* `./reentry.ts`). A re-prompt re-enters the same session only on a backend that proves it.
|
|
24887
|
+
*
|
|
24888
|
+
* Progress bounds the re-prompts too. The same delivery reading that resets the barren failure
|
|
24889
|
+
* counter decides whether a re-prompted drive earned another: `reprompt.maxBarren` consecutive
|
|
24890
|
+
* re-entered drives that completed without a delivery end the loop with `repromptRefusedBy:
|
|
24891
|
+
* 'no-progress'`. Before this, a completed drive reset the barren counter and `decideReprompt`
|
|
24892
|
+
* read only the count cap, budget, and deadline, so a director with `repromptOnUnmet: 100` or
|
|
24893
|
+
* `'until-complete'` that delivered nothing was re-prompted until the budget or deadline ended it;
|
|
24894
|
+
* the old prompt-owned loop logged 896 of 1,011 rounds with no progress.
|
|
24784
24895
|
*/
|
|
24785
24896
|
/**
|
|
24786
24897
|
* The instruction a completed-but-undelivered drive is re-entered with when the caller supplies no
|
|
@@ -24802,6 +24913,8 @@ function defaultUnmetContractSteer(context) {
|
|
|
24802
24913
|
}
|
|
24803
24914
|
const DEFAULT_MAX_CONSECUTIVE_FAILURES = 3;
|
|
24804
24915
|
const DEFAULT_MAX_ATTEMPTS = 8;
|
|
24916
|
+
/** Two re-prompted drives in a row that deliver nothing end the re-prompts. */
|
|
24917
|
+
const DEFAULT_MAX_BARREN_REPROMPTS = 2;
|
|
24805
24918
|
const DEFAULT_INITIAL_BACKOFF_MS = 2e3;
|
|
24806
24919
|
const DEFAULT_MAX_BACKOFF_MS = 3e4;
|
|
24807
24920
|
/**
|
|
@@ -24920,6 +25033,21 @@ var DriverAttemptsExhaustedError = class extends RuntimeRunStateError {
|
|
|
24920
25033
|
this.stop = stop;
|
|
24921
25034
|
}
|
|
24922
25035
|
};
|
|
25036
|
+
/** Count a loop's attempt records into its {@link DriverLoopRecord}. */
|
|
25037
|
+
function summarizeDriverAttempts(records) {
|
|
25038
|
+
let barren = 0;
|
|
25039
|
+
for (const record of records) if (record.madeProgress) barren = 0;
|
|
25040
|
+
else if (record.error === void 0 && record.reentry !== void 0 && record.contract === "unmet") barren += 1;
|
|
25041
|
+
const last = records.at(-1);
|
|
25042
|
+
return {
|
|
25043
|
+
attempts: records.length,
|
|
25044
|
+
reprompts: records.filter((record) => record.reprompted === true).length,
|
|
25045
|
+
failureRetries: records.filter((record) => record.error !== void 0 && record.retryInMs !== void 0).length,
|
|
25046
|
+
barrenReentries: barren,
|
|
25047
|
+
ended: last?.stop ?? "unrecorded",
|
|
25048
|
+
...last?.repromptRefusedBy === void 0 ? {} : { repromptRefusedBy: last.repromptRefusedBy }
|
|
25049
|
+
};
|
|
25050
|
+
}
|
|
24923
25051
|
async function defaultSleep(ms, signal) {
|
|
24924
25052
|
if (ms <= 0 || signal.aborted) return;
|
|
24925
25053
|
await sleep(ms, signal, false);
|
|
@@ -24946,14 +25074,21 @@ async function runDriverWithRetry(run) {
|
|
|
24946
25074
|
const deadline = run.budget().deadlineMs;
|
|
24947
25075
|
if (!Number.isFinite(deadline) || deadline <= 0) throw new ValidationError$1("runDriverWithRetry: until-complete requires a finite positive deadline");
|
|
24948
25076
|
}
|
|
25077
|
+
const maxBarren = Math.max(1, run.reprompt?.maxBarren ?? 2);
|
|
24949
25078
|
const attempts = [];
|
|
24950
25079
|
let consecutiveBarren = 0;
|
|
25080
|
+
let barrenReentries = 0;
|
|
24951
25081
|
let failures = 0;
|
|
24952
25082
|
let reprompts = 0;
|
|
24953
25083
|
let reentry;
|
|
24954
25084
|
const emit = async (record) => {
|
|
24955
|
-
|
|
24956
|
-
|
|
25085
|
+
const entered = reentry === void 0 ? {} : { reentry: reentry.reason };
|
|
25086
|
+
const stamped = {
|
|
25087
|
+
...record,
|
|
25088
|
+
...entered
|
|
25089
|
+
};
|
|
25090
|
+
attempts.push(stamped);
|
|
25091
|
+
await run.onAttempt?.(stamped);
|
|
24957
25092
|
};
|
|
24958
25093
|
/**
|
|
24959
25094
|
* Decide what a completed-but-undelivered drive does next. Every bound the FAILURE path applies
|
|
@@ -24962,6 +25097,7 @@ async function runDriverWithRetry(run) {
|
|
|
24962
25097
|
*/
|
|
24963
25098
|
const decideReprompt = async (attempt, after) => {
|
|
24964
25099
|
if (maxReprompts !== "until-complete" && reprompts >= maxReprompts) return { refusedBy: "reprompts-exhausted" };
|
|
25100
|
+
if (barrenReentries >= maxBarren) return { refusedBy: "no-progress" };
|
|
24965
25101
|
if (run.signal.aborted) return { refusedBy: "aborted" };
|
|
24966
25102
|
const byBudget = budgetStop(run.budget(), now());
|
|
24967
25103
|
if (byBudget === "deadline" || byBudget === "budget-exhausted") return { refusedBy: byBudget };
|
|
@@ -24971,7 +25107,8 @@ async function runDriverWithRetry(run) {
|
|
|
24971
25107
|
maxReprompts,
|
|
24972
25108
|
progress: after,
|
|
24973
25109
|
budget: run.budget(),
|
|
24974
|
-
...run.reprompt?.describe === void 0 ? {} : { describe: run.reprompt.describe }
|
|
25110
|
+
...run.reprompt?.describe === void 0 ? {} : { describe: run.reprompt.describe },
|
|
25111
|
+
barrenReentries
|
|
24975
25112
|
};
|
|
24976
25113
|
const decision = await run.reprompt?.onUnmetContract?.(context) ?? { steer: defaultUnmetContractSteer(context) };
|
|
24977
25114
|
if (decision === "stop") return { refusedBy: "caller-stop" };
|
|
@@ -25007,6 +25144,7 @@ async function runDriverWithRetry(run) {
|
|
|
25007
25144
|
if (progressed) return void 0;
|
|
25008
25145
|
return consecutiveBarren + 1 >= maxConsecutive ? "no-progress" : void 0;
|
|
25009
25146
|
})();
|
|
25147
|
+
if (progressed) barrenReentries = 0;
|
|
25010
25148
|
if (stop !== void 0) {
|
|
25011
25149
|
await emit({
|
|
25012
25150
|
attempt,
|
|
@@ -25019,7 +25157,6 @@ async function runDriverWithRetry(run) {
|
|
|
25019
25157
|
throw new DriverAttemptsExhaustedError(error, attempts, stop);
|
|
25020
25158
|
}
|
|
25021
25159
|
consecutiveBarren = progressed ? 0 : consecutiveBarren + 1;
|
|
25022
|
-
reentry = void 0;
|
|
25023
25160
|
const backoff = Math.min(maxBackoff, initialBackoff * 2 ** Math.max(0, consecutiveBarren - 1));
|
|
25024
25161
|
await emit({
|
|
25025
25162
|
attempt,
|
|
@@ -25029,6 +25166,11 @@ async function runDriverWithRetry(run) {
|
|
|
25029
25166
|
madeProgress: progressed,
|
|
25030
25167
|
retryInMs: backoff
|
|
25031
25168
|
});
|
|
25169
|
+
reentry = {
|
|
25170
|
+
reason: "driver-failure",
|
|
25171
|
+
failure: errMessage(error),
|
|
25172
|
+
retry: failures
|
|
25173
|
+
};
|
|
25032
25174
|
await sleep(backoff, run.signal);
|
|
25033
25175
|
if (run.signal.aborted) throw new DriverAttemptsExhaustedError(error, attempts, "aborted");
|
|
25034
25176
|
const afterWait = budgetStop(run.budget(), now());
|
|
@@ -25041,15 +25183,12 @@ async function runDriverWithRetry(run) {
|
|
|
25041
25183
|
const progressed = madeProgress(before, after);
|
|
25042
25184
|
const contract = contractOf(after);
|
|
25043
25185
|
const contractField = contract === "none" ? {} : { contract };
|
|
25186
|
+
if (progressed) barrenReentries = 0;
|
|
25187
|
+
else if (reentry !== void 0 && contract === "unmet") barrenReentries += 1;
|
|
25044
25188
|
if (contract === "unmet" && (maxReprompts === "until-complete" || maxReprompts > 0)) {
|
|
25045
25189
|
const decision = await decideReprompt(attempt, after);
|
|
25046
25190
|
if ("steer" in decision) {
|
|
25047
25191
|
reprompts += 1;
|
|
25048
|
-
reentry = {
|
|
25049
|
-
reason: "unmet-contract",
|
|
25050
|
-
steer: decision.steer,
|
|
25051
|
-
reprompt: reprompts
|
|
25052
|
-
};
|
|
25053
25192
|
await emit({
|
|
25054
25193
|
attempt,
|
|
25055
25194
|
durationMs,
|
|
@@ -25058,6 +25197,11 @@ async function runDriverWithRetry(run) {
|
|
|
25058
25197
|
reprompted: true,
|
|
25059
25198
|
retryInMs: 0
|
|
25060
25199
|
});
|
|
25200
|
+
reentry = {
|
|
25201
|
+
reason: "unmet-contract",
|
|
25202
|
+
steer: decision.steer,
|
|
25203
|
+
reprompt: reprompts
|
|
25204
|
+
};
|
|
25061
25205
|
continue;
|
|
25062
25206
|
}
|
|
25063
25207
|
await emit({
|
|
@@ -26105,6 +26249,6 @@ function isNonEmptySpend(s) {
|
|
|
26105
26249
|
return s.iterations > 0 || s.tokens.input > 0 || s.tokens.output > 0 || s.usd > 0 || s.ms > 0 || s.tokensKnown === false || s.usdKnown === false || Object.values(s.resources ?? {}).some((resource) => resource.amount > 0 || !resource.known);
|
|
26106
26250
|
}
|
|
26107
26251
|
//#endregion
|
|
26108
|
-
export {
|
|
26252
|
+
export { workerInteractiveBindingFile as $, throwIfAborted as $i, defaultRedactorIdentityMaterial as $n, validateProfileMaterialization as $r, PEER_MAIL_WIRE_KEY as $t, isWaitOutcome as A, assertSandboxServedModel as Ai, DEFAULT_SANDBOX_IDLE_TIMEOUT_SECONDS as An, createWorktree as Ar, captureWorkerTraceEvidence as At, scopeRetainedOwnerContext as B, sandboxProgressEvents as Bi, retainedExecutorSeamKey as Bn, assertProfileMaterialization as Br, spendFromUsageTotals as Bt, meterRuntimeOwnedAccounting as C, unknownMaterializationReceipt as Ci, acquireSandbox as Cn, createRuntimeStreamEventCollector as Cr, InMemorySpawnJournal as Ct, scopeOwnerExecutorNodeContext as D, detachedSnapshot as Di, runBrainLoop as Dn, runSettledCommand as Dr, pendingWaits as Dt, restoreScopeOwnerAcceptedExecution as E, detachedFrozen as Ei, routerBrain as En, sanitizeRuntimeStreamEvent as Er, materializeTreeView as Et, bindScopeRetainedOwnerEnvironmentId as F, isSandboxTerminalEvent as Fi, sandboxClientAsProvider as Fn, localHarnessExecutable as Fr, assertValidBudget as Ft, environmentReader as G, deleteBoxSafe as Gi, retainedCreateMaterial as Gn, promptControlProfileMaterialization as Gr, workerTraceSeamKey as Gt, scopeRetainedOwnerResourceReader as H, addSpend as Hi, recoverRetainedRun as Hn, defineProfileMaterializationContract as Hr, readWorkerTraceContext as Ht, bindScopeRetainedOwnerProvider as I, mapSandboxEvent as Ii, createPushTraceSource as In, parseCodexTokenUsage as Ir, createBudgetPool as It, interactiveAdmissionSeamKey as J, promptCacheTokenClasses as Ji, RunCancellationReason as Jn, promptResourceProfileMaterialization as Jr, createActivityLog as Jt, hostDirectoryReader as K, hasCompleteCacheBreakdown as Ki, destroyInteractiveEnvironment as Kn, promptModelProfileMaterialization as Kr, taskToPrompt as Kt, consumeScopeRetainedOwnerResult as L, mapSandboxToolEvent as Li, decodeToolPart as Ln, CodexExecutionDiagnosticError as Lr, meterUsageEvent as Lt, timerAt as M, createSandboxToolPartState as Mi, providerAsExecutor as Mn, DEFAULT_LOCAL_HARNESS as Mr, parseWorkerToolTraceArtifact as Mt, validateWaitSpec as N, createSandboxUsageLedger as Ni, providerAsSandboxClient as Nn, LOCAL_HARNESSES as Nr, workerTraceAnalysisStore as Nt, settledToIteration as O, projectSandboxOutcome as Oi, canonicalObservedModelParts as On, runWorktreeHarness as Or, replaySpawnTree as Ot, waitUntil as P, extractLlmCallEvent as Pi, resolveAgentEnvironmentProvider as Pn, harnessSupportsReasoningEffort as Pr, BudgetReconcileFault as Pt, readWorkerInteractiveBinding as Q, throwAbort as Qi, defaultRedactor as Qn, unsupportedProfileDimensions as Qr, DEFAULT_PEER_MAIL_LIMITS as Qt, prepareScopeRetainedOwnerTask as R, notifySandboxEventObserver as Ri, sandboxSessionTraceSource as Rn, terminateProcessTreeAndConfirm as Rr, newUsageTotals as Rt, deriveNodeExecutionIdentity as S, unknownExecutionBindingReceipt as Si, probeSandboxCapabilities as Sn, createRuntimeEventCollector as Sr, InMemoryResultBlobStore as St, recordScopeOwnerMaterialization as T, executableAgentSpecSnapshot as Ti, readPromptOptions as Tn, sanitizeKnowledgeReadinessReport as Tr, loadSpawnForest as Tt, scopeRetainedOwnerResult as U, chargedTokens as Ui, startRetainedRun as Un, fullProfileMaterialization as Ur, workerTraceEnv as Ut, scopeRetainedOwnerPriorSpend as V, sumSandboxUsage as Vi, reconnectRetainedRun as Vn, controlProfileMaterialization as Vr, WORKER_TRACE_PROPAGATION as Vt, SPAWN_RESOURCE_PATH_MAX_BYTES as W, cloneSpend as Wi, startRetainedRunInEnvironment as Wn, profileMaterializationAxes$1 as Wr, workerTraceHeaders as Wt, workerInteractiveAdmissionFile as X, sleep as Xi, linkAbort as Xn, renderUnsupported as Xr, createInbox as Xt, readWorkerInteractiveAdmissions as Y, randomSuffix as Yi, abortError as Yn, renderProfileMaterializationIssues as Yr, readWorkerProgress as Yt, attachWorker as Z, stringifySafe as Zi, runAbortable as Zn, sandboxActProfileMaterialization as Zr, AUTHORITY_MARKERS as Zt, isDriverSpec as _, runtimeOwnedExecutorExecutionBinding as _i, createSandboxForSpec as _n, generateSpanId as _r, DEFAULT_SANDBOX_STEERING_MAX_TURNS as _t, pickBestDelivered as a, withBudgetResources as aa, writeAllBytes as ai, isLiveNodeStatus as an, createPropagatingTraceEmitter as ar, effectiveConcurrency as at, beginScopeOwnerAttempt as b, runtimeOwnedPendingExecutorMaterialization as bi, runAgentRounds as bn, padTraceId as br, FileResultBlobStore as bt, DEFAULT_MAX_BARREN_REPROMPTS as c, awaitAbortable$1 as ca, authoredProfileDigest as ci, bridgeAdmissionRefusal as cn, traceContextToEnv as cr, rollingDispatch as ct, classifyDriverFailure as d, teardownExecutor as da, knownExecutionBindingReceipt as di, createCodexRolloutStoreReader as dn, buildLoopSpanNodes as dr, cliInPlaceExecutor as dt, unmeteredSpend as ea, worktreeCliProfileMaterialization as ei, claimsAuthority as en, resolveRedactor as er, workerInteractiveBindingsDir as et, defaultUnmetContractSteer as f, teardownSurfaces as fa, knownMaterializationReceipt as fi, harnessUsageIsEmpty as fn, buildRuntimeEventOtelSpans as fr, cliWorktreeExecutor as ft, driverExecutorFactory as g, runtimeOwnedDriveHarnessProviderEvidence as gi, TERMINAL_DECISIONS as gn, flatOtelSpan as gr, createWorktreeCliExecutor as gt, driverChild as h, providerMessageText as ha, recordRuntimeOwnedDriveHarnessProviderEvidence as hi, bridgeStopSignalKey as hn, exportEvalRuns as hr, snapshotExecutorConfig as ht, collectDelivered as i, resourceTelemetry as ia, readCommittedJsonLines as ii, peerMailVerbNames as in, contentAddress as ir, errMessage as it, pollFor as j, canonicalStreamEventFromSandboxEvent as ji, createAgentEnvironmentProviderRegistry as jn, removeWorktree as jr, isTraceAnalysisStore as jt, createWaitProbes as k, readSandboxOutcome as ki, observedModelMatchesDeclared as kn, captureWorktreeDiff as kr, WORKER_TOOL_TRACE_SCHEMA_VERSION as kt, DriverAttemptsExhaustedError as l, DEFAULT_SUCCESSFUL_SHUTDOWN_MS as la, finalizeRuntimeOwnedPendingExecutor as li, bridgeModelRouteRefusal as ln, INTELLIGENCE_WIRE_VERSION as lr, bindReusableExecutorExecutionId as lt, summarizeDriverAttempts as m, promptOptionsFromAgentTurnInput as ma, providerAttemptEvidence as mi, bridgeRuntimeAttachmentsKey as mn, createOtelExporter as mr, createExecutorRegistry as mt, createSupervisor as n, zeroSpend as na, parseCommittedJsonLines as ni, isPeerMailEnvelope as nn, harnessTranscriptArtifact as nr, recoverRetainedInteractiveRun as nt, runFinalizer as o, decodeHarnessUsage as oa, attestRuntimeOwnedPendingExecutor as oi, isTerminalNodeStatus as on, mergeTraceEnv as or, freeSlots as ot, runDriverWithRetry as p, promptFromAgentTurnInput as pa, newExecutionAttemptId as pi, readCodexRolloutSession as pn, createOpenInferenceFileExporter as pr, createExecutor as pt, resolveSpawnResourcePaths as q, isAbortError$2 as qi, environmentGone as qn, promptOnlyProfileMaterialization as qr, DEFAULT_STALL_AFTER_MS as qt, bestDelivered as r, addResourceSpend as ra, prepareJsonlAppend as ri, peerMailTools as rn, persistHarnessTranscript as rr, startRetainedInteractiveRun as rt, runTree as s, abortError$2 as sa, attestRuntimeOwnedScopeOwner as si, executorFailure as sn, readTraceContextFromEnv as sr, queueOf as st, createRootHandle as t, withTimeout as ta, isNoEntError as ti, createPeerMailbox as tn, captureHarnessTranscript as tr, reconnectRetainedInteractiveRun as tt, HarnessTurnFailedError as u, armDeadlineTimer as ua, inheritRuntimeOwnedExecutorAttestation as ui, addHarnessUsage as un, buildLoopOtelSpans as ur, captureReusableExecutorConfig as ut, withDriverExecutor as v, runtimeOwnedExecutorMaterialization as vi, defaultSelectWinner as vn, loopEventToOtelSpan as vr, createSteerableSandboxSession as vt, meterRuntimeOwnedProviderAttempt as w, executableAgentProfileSnapshot as wi, assertBoxlessPromptOptions as wn, sanitizeAgentRuntimeEvent as wr, insideCursorNamespace as wt, createScope as x, runtimeOwnedScopeOwnerRuntime as xi, createSandboxLineage as xn, toOtelAttributes as xr, FileSpawnJournal as xt, assertRecursiveReservationPolicy as y, runtimeOwnedExecutorProviderEvidence as yi, isTerminalDecision as yn, padSpanId as yr, createInPlaceCliExecutor as yt, reconcileScopeRetainedOwnerEnvironment as z, sandboxEventServedBackend as zi, registerRetainedExecutorPreparation as zn, AGENT_PROFILE_MATERIALIZATION_AXES as zr, spendFromUsageEvents as zt };
|
|
26109
26253
|
|
|
26110
|
-
//# sourceMappingURL=supervisor-
|
|
26254
|
+
//# sourceMappingURL=supervisor-BGGvnXvV.js.map
|