@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 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 the loop at its next durable edge without cancelling its current operation. */
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>;
@@ -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 the loop at its next durable edge without cancelling its current operation. */
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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"}
@@ -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 non-durable tool never runs twice; a durable one may.
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 without cancelling its current operation. The mode
303
- * is sticky: later queue writes remain durable but cannot start another run in this process.
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBase.d.ts","sourceRoot":"","sources":["../sources/AgentBase.ts"],"names":[],"mappings":"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"}
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 non-durable tool never runs twice; a durable one may.
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
- await this.#activateCommittedMessages(offeredIds, staged);
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 without cancelling its current operation. The mode
1145
- * is sticky: later queue writes remain durable but cannot start another run in this process.
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 stops at the next operation boundary. Do not abort a tool that is
1360
- // already running; the coordinator's timeout and the daemon's hard exit bound one that
1361
- // never returns.
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, only durable tools execute again; the rest become error results. An abort
2937
- * settles every call still running as an aborted error result, so the batch always leaves a
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.#isDurable(ctx, entry.call))) {
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 be executed again after a restart interrupted it. */
3105
- async #isDurable(ctx, call) {
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 executionCtx = withLifetime(runCtx, AbortSignal.any(runCtx.lifetime === undefined
3410
- ? [callLifetime.signal]
3411
- : [runCtx.lifetime, callLifetime.signal]));
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
- const returned = ran.transactional === true
3418
- ? this.#persistence.transaction(executionCtx, async (txCtx) => {
3419
- const result = await ran.execute(txCtx, ranArguments, toolCall);
3420
- if (!Value.Check(ran.returnType, result)) {
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
- return await commit(txCtx, result);
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
- else {
3441
- if (!Value.Check(ran.returnType, settled.result)) {
3442
- throw new Error(`Tool "${ran.name}" returned an invalid result.`);
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
  {