@slopus/happy-agent-base 0.0.34 → 0.0.35
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/README.md +7 -0
- package/dist/Agent.d.ts +1 -1
- package/dist/Agent.d.ts.map +1 -1
- package/dist/Agent.js +1 -1
- package/dist/Agent.js.map +1 -1
- package/dist/AgentBase.d.ts +4 -3
- package/dist/AgentBase.d.ts.map +1 -1
- package/dist/AgentBase.js +142 -44
- package/dist/AgentBase.js.map +1 -1
- package/dist/AgentSystem.d.ts +1 -1
- package/dist/AgentSystemLocal.d.ts +4 -3
- package/dist/AgentSystemLocal.d.ts.map +1 -1
- package/dist/AgentSystemLocal.js +4 -3
- package/dist/AgentSystemLocal.js.map +1 -1
- package/dist/AgentTool.d.ts +13 -0
- package/dist/AgentTool.d.ts.map +1 -1
- package/dist/AgentTool.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -95,6 +95,13 @@ Setting a tool's optional `transactional` property to `true` wraps its `execute`
|
|
|
95
95
|
validation, rendering, and automatic result commit in one outer transaction. It defaults to
|
|
96
96
|
`false`.
|
|
97
97
|
|
|
98
|
+
Tool lifetime flags describe distinct interruption guarantees. `durable` means an unfinished call
|
|
99
|
+
may execute again after a crash. `reloadable` additionally lets graceful drain abandon the live
|
|
100
|
+
execution without writing a result, leaving the same call ID pending for the next process; it is
|
|
101
|
+
therefore retry-safe even when `durable` is omitted. `steerable` lets newly accepted steering abort
|
|
102
|
+
the execution lifetime, and lets drain settle the interrupted call instead of waiting. Ordinary
|
|
103
|
+
tools finish before graceful drain reaches its edge.
|
|
104
|
+
|
|
98
105
|
Modules may provide an ordered array of `[key, migration]` tuples. Agent base tracks each
|
|
99
106
|
successful key and runs every missing migration transactionally before any `beforeStart` hook; a
|
|
100
107
|
failure aborts system startup. Every module migration and hook context carries the common Drizzle
|
package/dist/Agent.d.ts
CHANGED
|
@@ -86,7 +86,7 @@ export declare class Agent<Tool extends AnyAgentTool = AnyAgentTool, Database ex
|
|
|
86
86
|
updateMetadata(ctx: Context, update: AgentMetadata): Promise<void>;
|
|
87
87
|
/** Start the loop without a new message, continuing a turn an earlier run left unfinished. */
|
|
88
88
|
start(): void;
|
|
89
|
-
/** Stop
|
|
89
|
+
/** Stop at the next durable edge, interrupting tools that opt into stop or reload behavior. */
|
|
90
90
|
drain(): Promise<void>;
|
|
91
91
|
/** Wait until the agent has nothing left to do, including work it accepted but never began. */
|
|
92
92
|
waitForIdle(): Promise<void>;
|
package/dist/Agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
|
package/dist/Agent.js
CHANGED
|
@@ -99,7 +99,7 @@ export class Agent {
|
|
|
99
99
|
start() {
|
|
100
100
|
this.#base.start();
|
|
101
101
|
}
|
|
102
|
-
/** Stop
|
|
102
|
+
/** Stop at the next durable edge, interrupting tools that opt into stop or reload behavior. */
|
|
103
103
|
drain() {
|
|
104
104
|
return this.#base.drain();
|
|
105
105
|
}
|
package/dist/Agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentBase.d.ts
CHANGED
|
@@ -122,7 +122,7 @@ export interface AgentBaseOptions {
|
|
|
122
122
|
* results, settle their own calls with error results before appending anything behind them.
|
|
123
123
|
* - A conversation loaded with a call stranded under later messages is repaired atomically at
|
|
124
124
|
* load, since the answer belongs beside its call rather than at the end.
|
|
125
|
-
* - A
|
|
125
|
+
* - A tool that is neither durable nor reloadable never runs twice; either retry-safe flag may.
|
|
126
126
|
*
|
|
127
127
|
* ## Compaction
|
|
128
128
|
*
|
|
@@ -299,8 +299,9 @@ export declare class AgentBase {
|
|
|
299
299
|
*/
|
|
300
300
|
start(): void;
|
|
301
301
|
/**
|
|
302
|
-
* Stop this loop at its next durable edge
|
|
303
|
-
*
|
|
302
|
+
* Stop this loop at its next durable edge. Ordinary current operations finish; a steerable
|
|
303
|
+
* tool receives a cancelled lifetime and is no longer awaited. The mode is sticky: later
|
|
304
|
+
* queue writes remain durable but cannot start another run in this process.
|
|
304
305
|
*/
|
|
305
306
|
drain(): Promise<void>;
|
|
306
307
|
/**
|
package/dist/AgentBase.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBase.d.ts","sourceRoot":"","sources":["../sources/AgentBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMR,sBAAsB,EACtB,kBAAkB,EAMrB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAOH,KAAK,OAAO,EACf,MAAM,oBAAoB,CAAC;AAkB5B,OAAO,EAGH,KAAK,qBAAqB,EAE7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAIR,cAAc,EAQjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,uBAAuB,CAAC;AAU3E,OAAO,EAIH,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAGH,KAAK,mBAAmB,EAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentBase.d.ts","sourceRoot":"","sources":["../sources/AgentBase.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentBase.js
CHANGED
|
@@ -18,6 +18,10 @@ import { agentToolArgumentsError } from "./AgentToolArgumentsError.js";
|
|
|
18
18
|
import { setAgentSpanAttributes } from "./AgentSpanAttributes.js";
|
|
19
19
|
/** Race winner when an abort interrupts a wait on the stream or a running tool. */
|
|
20
20
|
const ABORTED = Symbol("aborted");
|
|
21
|
+
/** Race winner when drain or shutdown stops waiting for a steerable tool execution. */
|
|
22
|
+
const STEERABLE_STOPPED = Symbol("steerable-stopped");
|
|
23
|
+
/** Race winner when drain or shutdown leaves a reloadable call for the next process. */
|
|
24
|
+
const RELOADABLE_STOPPED = Symbol("reloadable-stopped");
|
|
21
25
|
/** Marks a provider context measurement that inference preparation has not evaluated yet. */
|
|
22
26
|
const UNPREPARED_CONTEXT = Symbol("unprepared context");
|
|
23
27
|
/**
|
|
@@ -122,7 +126,7 @@ const storedToolResultSchema = Type.Object({
|
|
|
122
126
|
* results, settle their own calls with error results before appending anything behind them.
|
|
123
127
|
* - A conversation loaded with a call stranded under later messages is repaired atomically at
|
|
124
128
|
* load, since the answer belongs beside its call rather than at the end.
|
|
125
|
-
* - A
|
|
129
|
+
* - A tool that is neither durable nor reloadable never runs twice; either retry-safe flag may.
|
|
126
130
|
*
|
|
127
131
|
* ## Compaction
|
|
128
132
|
*
|
|
@@ -277,6 +281,8 @@ export class AgentBase {
|
|
|
277
281
|
#providerToolIds = new Map();
|
|
278
282
|
/** The durable steering queue, in the order its keys sort. */
|
|
279
283
|
#steering = [];
|
|
284
|
+
/** Steering IDs accepted but not consumed, including ones not yet merged into memory. */
|
|
285
|
+
#pendingSteeringInterruptions = new Set();
|
|
280
286
|
/** The durable send queue, in the order its keys sort. */
|
|
281
287
|
#sends = [];
|
|
282
288
|
/** A committed outer-transaction queue write not yet merged into the in-memory queues. */
|
|
@@ -396,6 +402,20 @@ export class AgentBase {
|
|
|
396
402
|
#admitted = new Set();
|
|
397
403
|
/** Queue acceptances the run loop must publish before it may decide its queues are empty. */
|
|
398
404
|
#messageAdmissions = new Set();
|
|
405
|
+
/** Active tool executions whose own definition opts into cooperative steering cancellation. */
|
|
406
|
+
#steerableToolExecutions = new Set();
|
|
407
|
+
/** Raised once sticky drain or shutdown stops accepting steerable execution latency. */
|
|
408
|
+
#stopSteerableToolsController = new AbortController();
|
|
409
|
+
/** One shared race edge, so completed tools do not leave listeners behind until shutdown. */
|
|
410
|
+
#stopSteerableTools = new Promise((resolve) => {
|
|
411
|
+
this.#stopSteerableToolsController.signal.addEventListener("abort", () => resolve(STEERABLE_STOPPED), { once: true });
|
|
412
|
+
});
|
|
413
|
+
/** Raised once drain or shutdown may leave reloadable calls pending for the next process. */
|
|
414
|
+
#stopReloadableToolsController = new AbortController();
|
|
415
|
+
/** One shared reload edge, avoiding one shutdown listener per completed reloadable tool. */
|
|
416
|
+
#stopReloadableTools = new Promise((resolve) => {
|
|
417
|
+
this.#stopReloadableToolsController.signal.addEventListener("abort", () => resolve(RELOADABLE_STOPPED), { once: true });
|
|
418
|
+
});
|
|
399
419
|
/**
|
|
400
420
|
* Work from an earlier response that is still unwinding: a provider stream that has not
|
|
401
421
|
* finished closing, or a tool that was settled in the conversation by an abort and is still
|
|
@@ -978,9 +998,15 @@ export class AgentBase {
|
|
|
978
998
|
: { metadata: request.metadata }),
|
|
979
999
|
options: request.options,
|
|
980
1000
|
});
|
|
1001
|
+
if (request.kind === "steering") {
|
|
1002
|
+
this.#pendingSteeringInterruptions.add(request.id);
|
|
1003
|
+
}
|
|
981
1004
|
}
|
|
982
1005
|
this.#turnRequested = true;
|
|
983
1006
|
this.#startRun();
|
|
1007
|
+
if (accepted.some(({ request }) => request.kind === "steering")) {
|
|
1008
|
+
this.#interruptSteerableTools();
|
|
1009
|
+
}
|
|
984
1010
|
});
|
|
985
1011
|
});
|
|
986
1012
|
return results;
|
|
@@ -1026,8 +1052,14 @@ export class AgentBase {
|
|
|
1026
1052
|
if (staged?.activated === true)
|
|
1027
1053
|
await this.#announceActivation(ctx, false);
|
|
1028
1054
|
const offeredIds = batch.map(({ id }) => id);
|
|
1055
|
+
const acceptedSteeringIds = results.flatMap((result, index) => result.accepted === "created" && result.delivery === "steer" ? [batch[index].id] : []);
|
|
1029
1056
|
afterCommit(ctx, async () => {
|
|
1030
|
-
|
|
1057
|
+
for (const id of acceptedSteeringIds)
|
|
1058
|
+
this.#pendingSteeringInterruptions.add(id);
|
|
1059
|
+
const activated = this.#activateCommittedMessages(offeredIds, staged);
|
|
1060
|
+
if (acceptedSteeringIds.length > 0)
|
|
1061
|
+
this.#interruptSteerableTools();
|
|
1062
|
+
await activated;
|
|
1031
1063
|
});
|
|
1032
1064
|
return results;
|
|
1033
1065
|
}
|
|
@@ -1061,6 +1093,9 @@ export class AgentBase {
|
|
|
1061
1093
|
this.#offeredMessageIds.add(id);
|
|
1062
1094
|
if (staged === undefined)
|
|
1063
1095
|
return;
|
|
1096
|
+
// The queue already committed. Raise the merge marker synchronously so a steerable tool
|
|
1097
|
+
// woken by that commit cannot reach the next inference before the message is visible.
|
|
1098
|
+
this.#committedQueueDirty = true;
|
|
1064
1099
|
// The commit published the staged activation announcement along with the batch, so the
|
|
1065
1100
|
// current active period is now an announced one.
|
|
1066
1101
|
if (staged.activated) {
|
|
@@ -1083,11 +1118,15 @@ export class AgentBase {
|
|
|
1083
1118
|
if (this.#runPromise === undefined) {
|
|
1084
1119
|
this.#adoptPendingState(pending);
|
|
1085
1120
|
}
|
|
1086
|
-
this.#committedQueueDirty = true;
|
|
1087
1121
|
});
|
|
1088
1122
|
this.#turnRequested = true;
|
|
1089
1123
|
this.#startRun();
|
|
1090
1124
|
}
|
|
1125
|
+
/** Abort only active tool execution signals that explicitly opted into steering. */
|
|
1126
|
+
#interruptSteerableTools() {
|
|
1127
|
+
for (const execution of this.#steerableToolExecutions)
|
|
1128
|
+
execution.abort();
|
|
1129
|
+
}
|
|
1091
1130
|
/** Make one committed pending record the exact in-memory lifecycle state. */
|
|
1092
1131
|
#adoptPendingState(pending) {
|
|
1093
1132
|
this.#pending = pending;
|
|
@@ -1141,11 +1180,14 @@ export class AgentBase {
|
|
|
1141
1180
|
this.#startRun();
|
|
1142
1181
|
}
|
|
1143
1182
|
/**
|
|
1144
|
-
* Stop this loop at its next durable edge
|
|
1145
|
-
*
|
|
1183
|
+
* Stop this loop at its next durable edge. Ordinary current operations finish; a steerable
|
|
1184
|
+
* tool receives a cancelled lifetime and is no longer awaited. The mode is sticky: later
|
|
1185
|
+
* queue writes remain durable but cannot start another run in this process.
|
|
1146
1186
|
*/
|
|
1147
1187
|
drain() {
|
|
1148
1188
|
this.#draining = true;
|
|
1189
|
+
this.#stopSteerableToolsController.abort();
|
|
1190
|
+
this.#stopReloadableToolsController.abort();
|
|
1149
1191
|
this.#drainPromise ??= this.#finishDrain();
|
|
1150
1192
|
return this.#drainPromise;
|
|
1151
1193
|
}
|
|
@@ -1356,9 +1398,10 @@ export class AgentBase {
|
|
|
1356
1398
|
// because the work it would abandon is the caller itself.
|
|
1357
1399
|
const fromInsideOwnLoop = this.#insideOwnLoop();
|
|
1358
1400
|
this.#closed = true;
|
|
1359
|
-
// Graceful shutdown
|
|
1360
|
-
//
|
|
1361
|
-
|
|
1401
|
+
// Graceful shutdown lets ordinary tools reach the next durable edge, but steerable tools
|
|
1402
|
+
// explicitly opt out of holding shutdown open. A direct close still abandons every tool.
|
|
1403
|
+
this.#stopSteerableToolsController.abort();
|
|
1404
|
+
this.#stopReloadableToolsController.abort();
|
|
1362
1405
|
if (!fromInsideOwnLoop && !this.#stopAtSafeEdgeRequested()) {
|
|
1363
1406
|
this.#closeController.abort();
|
|
1364
1407
|
}
|
|
@@ -2571,8 +2614,16 @@ export class AgentBase {
|
|
|
2571
2614
|
// The durable queue, not memory, decides what is left to consume after a restart.
|
|
2572
2615
|
const durable = new Set((await this.#persistence.readValues(lockCtx, prefix)).map(({ key }) => key));
|
|
2573
2616
|
const remaining = queue.filter((entry) => durable.has(entry.key));
|
|
2574
|
-
if (remaining.length !== queue.length)
|
|
2617
|
+
if (remaining.length !== queue.length) {
|
|
2618
|
+
if (kind === "steering") {
|
|
2619
|
+
for (const entry of queue) {
|
|
2620
|
+
if (!durable.has(entry.key)) {
|
|
2621
|
+
this.#pendingSteeringInterruptions.delete(entry.id);
|
|
2622
|
+
}
|
|
2623
|
+
}
|
|
2624
|
+
}
|
|
2575
2625
|
queue.splice(0, queue.length, ...remaining);
|
|
2626
|
+
}
|
|
2576
2627
|
if (queue.length === 0)
|
|
2577
2628
|
return false;
|
|
2578
2629
|
const count = mode === "all" ? queue.length : 1;
|
|
@@ -2771,6 +2822,10 @@ export class AgentBase {
|
|
|
2771
2822
|
...(entry.metadata === undefined ? {} : { metadata: entry.metadata }),
|
|
2772
2823
|
})));
|
|
2773
2824
|
queue.splice(0, count);
|
|
2825
|
+
if (kind === "steering") {
|
|
2826
|
+
for (const entry of batch)
|
|
2827
|
+
this.#pendingSteeringInterruptions.delete(entry.id);
|
|
2828
|
+
}
|
|
2774
2829
|
if (reset) {
|
|
2775
2830
|
this.#messages = injected === undefined ? [] : [injected];
|
|
2776
2831
|
this.#providerToolIds.clear();
|
|
@@ -2887,6 +2942,9 @@ export class AgentBase {
|
|
|
2887
2942
|
const measured = context[0]?.value;
|
|
2888
2943
|
this.#contextTokens = measured?.tokens;
|
|
2889
2944
|
this.#steering = steering.map(({ key, value }) => this.#restoreQueueEntry(key, value));
|
|
2945
|
+
for (const entry of this.#steering) {
|
|
2946
|
+
this.#pendingSteeringInterruptions.add(entry.id);
|
|
2947
|
+
}
|
|
2890
2948
|
this.#sends = sends.map(({ key, value }) => this.#restoreQueueEntry(key, value));
|
|
2891
2949
|
this.#injections = injections.map(({ key, value }) => ({
|
|
2892
2950
|
key,
|
|
@@ -2933,9 +2991,9 @@ export class AgentBase {
|
|
|
2933
2991
|
* result. All calls run in parallel, but results land strictly in call order: a finished
|
|
2934
2992
|
* result waits until every earlier call in the batch has committed, and each commit appends
|
|
2935
2993
|
* the tool record and removes the pending entry in one transaction before memory changes.
|
|
2936
|
-
* On resume,
|
|
2937
|
-
* settles every call still running as an aborted error result, so the batch always
|
|
2938
|
-
* complete context behind.
|
|
2994
|
+
* On resume, durable and reloadable tools execute again; the rest become error results. An
|
|
2995
|
+
* abort settles every call still running as an aborted error result, so the batch always
|
|
2996
|
+
* leaves a complete context behind.
|
|
2939
2997
|
*/
|
|
2940
2998
|
async #runToolBatch(ctx, entries, resume, signal, abortPromise) {
|
|
2941
2999
|
return await this.#span(ctx, "agent.tools", { "agent.tool.count": entries.length, "agent.tool.resume": resume }, (batchCtx) => this.#dispatchToolBatch(batchCtx, entries, resume, signal, abortPromise));
|
|
@@ -2966,6 +3024,7 @@ export class AgentBase {
|
|
|
2966
3024
|
// Every execution actually started, whether or not its result reached the conversation.
|
|
2967
3025
|
const running = [];
|
|
2968
3026
|
let closedDuringTools = false;
|
|
3027
|
+
let reloadableStopped = false;
|
|
2969
3028
|
let committed = 0;
|
|
2970
3029
|
// A failed commit blocks the turn with its pending calls intact for resume. A sibling
|
|
2971
3030
|
// still running at that moment no longer owns the append-only tail: its result could
|
|
@@ -3037,7 +3096,7 @@ export class AgentBase {
|
|
|
3037
3096
|
if (entry.committed !== undefined) {
|
|
3038
3097
|
outcome = entry.committed;
|
|
3039
3098
|
}
|
|
3040
|
-
else if (resume && !(await this.#
|
|
3099
|
+
else if (resume && !(await this.#isRetryable(ctx, entry.call))) {
|
|
3041
3100
|
outcome = toolFailure(entry.id, "The tool call was interrupted by a restart and was not retried.");
|
|
3042
3101
|
}
|
|
3043
3102
|
else {
|
|
@@ -3055,6 +3114,10 @@ export class AgentBase {
|
|
|
3055
3114
|
running.push(execution);
|
|
3056
3115
|
outcome = await Promise.race([execution, abortPromise, this.#closingTools()]);
|
|
3057
3116
|
}
|
|
3117
|
+
if (outcome === RELOADABLE_STOPPED) {
|
|
3118
|
+
reloadableStopped = true;
|
|
3119
|
+
return;
|
|
3120
|
+
}
|
|
3058
3121
|
if (outcome === ABORTED && !signal.aborted)
|
|
3059
3122
|
closedDuringTools = true;
|
|
3060
3123
|
results[index] =
|
|
@@ -3085,7 +3148,7 @@ export class AgentBase {
|
|
|
3085
3148
|
// An abort or failure may settle the conversation or block the batch without settling the
|
|
3086
3149
|
// actual execution. Track that unwinding so another in-process attempt cannot overlap it;
|
|
3087
3150
|
// the batch itself does not wait, so an uncooperative tool cannot hold this turn open.
|
|
3088
|
-
return closedDuringTools;
|
|
3151
|
+
return closedDuringTools || reloadableStopped;
|
|
3089
3152
|
}
|
|
3090
3153
|
/**
|
|
3091
3154
|
* Settles once close begins, so a batch stops waiting for tools that a shutdown may itself
|
|
@@ -3101,10 +3164,10 @@ export class AgentBase {
|
|
|
3101
3164
|
});
|
|
3102
3165
|
});
|
|
3103
3166
|
}
|
|
3104
|
-
/** Whether this call's tool may safely
|
|
3105
|
-
async #
|
|
3167
|
+
/** Whether this call's tool may safely execute again after a crash or deliberate reload. */
|
|
3168
|
+
async #isRetryable(ctx, call) {
|
|
3106
3169
|
const tool = (await this.#tools(ctx)).find((candidate) => candidate.name === call.name && candidate.namespace === call.namespace);
|
|
3107
|
-
return tool?.durable === true;
|
|
3170
|
+
return tool?.durable === true || tool?.reloadable === true;
|
|
3108
3171
|
}
|
|
3109
3172
|
/** Every client tool call in the conversation that has no matching result yet. */
|
|
3110
3173
|
#unansweredCalls(messages) {
|
|
@@ -3406,46 +3469,81 @@ export class AgentBase {
|
|
|
3406
3469
|
const runCtx = decision?.permissionMode === undefined
|
|
3407
3470
|
? callCtx
|
|
3408
3471
|
: withAgentPermissionMode(callCtx, decision.permissionMode);
|
|
3409
|
-
const
|
|
3410
|
-
|
|
3411
|
-
|
|
3472
|
+
const reloadable = ran.reloadable === true;
|
|
3473
|
+
const steeringLifetime = ran.steerable === true ? new AbortController() : undefined;
|
|
3474
|
+
const executionCtx = withLifetime(runCtx, AbortSignal.any([
|
|
3475
|
+
...(runCtx.lifetime === undefined ? [] : [runCtx.lifetime]),
|
|
3476
|
+
callLifetime.signal,
|
|
3477
|
+
...(steeringLifetime === undefined
|
|
3478
|
+
? []
|
|
3479
|
+
: [steeringLifetime.signal, this.#stopSteerableToolsController.signal]),
|
|
3480
|
+
...(reloadable ? [this.#stopReloadableToolsController.signal] : []),
|
|
3481
|
+
]));
|
|
3412
3482
|
const toolCall = {
|
|
3413
3483
|
id: entry.id,
|
|
3414
3484
|
kv: boundedCallKV,
|
|
3415
3485
|
commit,
|
|
3416
3486
|
};
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3487
|
+
if (steeringLifetime !== undefined) {
|
|
3488
|
+
this.#steerableToolExecutions.add(steeringLifetime);
|
|
3489
|
+
if (this.#pendingSteeringInterruptions.size > 0)
|
|
3490
|
+
steeringLifetime.abort();
|
|
3491
|
+
}
|
|
3492
|
+
try {
|
|
3493
|
+
const returned = ran.transactional === true
|
|
3494
|
+
? this.#persistence.transaction(executionCtx, async (txCtx) => {
|
|
3495
|
+
const result = await ran.execute(txCtx, ranArguments, toolCall);
|
|
3496
|
+
if (!Value.Check(ran.returnType, result)) {
|
|
3497
|
+
throw new Error(`Tool "${ran.name}" returned an invalid result.`);
|
|
3498
|
+
}
|
|
3499
|
+
return await commit(txCtx, result);
|
|
3500
|
+
})
|
|
3501
|
+
: Promise.resolve(ran.execute(executionCtx, ranArguments, toolCall));
|
|
3502
|
+
const execution = returned.then((result) => ({ type: "returned", result }), (error) => ({ type: "threw", error }));
|
|
3503
|
+
const settled = await Promise.race([
|
|
3504
|
+
execution,
|
|
3505
|
+
committed.then((committed) => ({ type: "committed", committed })),
|
|
3506
|
+
...(reloadable
|
|
3507
|
+
? [this.#stopReloadableTools]
|
|
3508
|
+
: steeringLifetime === undefined
|
|
3509
|
+
? []
|
|
3510
|
+
: [this.#stopSteerableTools]),
|
|
3511
|
+
]);
|
|
3512
|
+
if (settled === RELOADABLE_STOPPED) {
|
|
3513
|
+
throw RELOADABLE_STOPPED;
|
|
3514
|
+
}
|
|
3515
|
+
else if (settled === STEERABLE_STOPPED) {
|
|
3516
|
+
throw new Error("The tool call was interrupted while the agent was stopping.");
|
|
3517
|
+
}
|
|
3518
|
+
else if (settled.type === "committed") {
|
|
3519
|
+
outcome = settled.committed;
|
|
3520
|
+
}
|
|
3521
|
+
else if (settled.type === "threw") {
|
|
3522
|
+
throw settled.error;
|
|
3523
|
+
}
|
|
3524
|
+
else if (committedOutcome !== undefined) {
|
|
3525
|
+
outcome = committedOutcome;
|
|
3526
|
+
}
|
|
3527
|
+
else {
|
|
3528
|
+
if (!Value.Check(ran.returnType, settled.result)) {
|
|
3421
3529
|
throw new Error(`Tool "${ran.name}" returned an invalid result.`);
|
|
3422
3530
|
}
|
|
3423
|
-
|
|
3424
|
-
}
|
|
3425
|
-
: Promise.resolve(ran.execute(executionCtx, ranArguments, toolCall));
|
|
3426
|
-
const execution = returned.then((result) => ({ type: "returned", result }), (error) => ({ type: "threw", error }));
|
|
3427
|
-
const settled = await Promise.race([
|
|
3428
|
-
execution,
|
|
3429
|
-
committed.then((committed) => ({ type: "committed", committed })),
|
|
3430
|
-
]);
|
|
3431
|
-
if (settled.type === "committed") {
|
|
3432
|
-
outcome = settled.committed;
|
|
3433
|
-
}
|
|
3434
|
-
else if (settled.type === "threw") {
|
|
3435
|
-
throw settled.error;
|
|
3436
|
-
}
|
|
3437
|
-
else if (committedOutcome !== undefined) {
|
|
3438
|
-
outcome = committedOutcome;
|
|
3531
|
+
outcome = outcomeFor(settled.result);
|
|
3532
|
+
}
|
|
3439
3533
|
}
|
|
3440
|
-
|
|
3441
|
-
if (
|
|
3442
|
-
|
|
3534
|
+
finally {
|
|
3535
|
+
if (steeringLifetime !== undefined) {
|
|
3536
|
+
this.#steerableToolExecutions.delete(steeringLifetime);
|
|
3537
|
+
steeringLifetime.abort();
|
|
3443
3538
|
}
|
|
3444
|
-
outcome = outcomeFor(settled.result);
|
|
3445
3539
|
}
|
|
3446
3540
|
}
|
|
3447
3541
|
}
|
|
3448
3542
|
catch (error) {
|
|
3543
|
+
if (error === RELOADABLE_STOPPED) {
|
|
3544
|
+
callLifetime.abort();
|
|
3545
|
+
return RELOADABLE_STOPPED;
|
|
3546
|
+
}
|
|
3449
3547
|
outcome =
|
|
3450
3548
|
committedOutcome ??
|
|
3451
3549
|
{
|