@slopus/happy-agent-base 0.0.26 → 0.0.28
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/Agent.d.ts +5 -0
- package/dist/Agent.d.ts.map +1 -1
- package/dist/Agent.js +8 -0
- package/dist/Agent.js.map +1 -1
- package/dist/AgentBase.d.ts +8 -0
- package/dist/AgentBase.d.ts.map +1 -1
- package/dist/AgentBase.js +98 -37
- package/dist/AgentBase.js.map +1 -1
- package/dist/AgentProviders.d.ts +9 -1
- package/dist/AgentProviders.d.ts.map +1 -1
- package/dist/AgentProviders.js +28 -0
- package/dist/AgentProviders.js.map +1 -1
- package/dist/AgentSystem.d.ts +21 -0
- package/dist/AgentSystem.d.ts.map +1 -1
- package/dist/AgentSystemLocal.d.ts +9 -1
- package/dist/AgentSystemLocal.d.ts.map +1 -1
- package/dist/AgentSystemLocal.js +56 -1
- package/dist/AgentSystemLocal.js.map +1 -1
- package/dist/AgentToolArgumentsError.d.ts +4 -0
- package/dist/AgentToolArgumentsError.d.ts.map +1 -0
- package/dist/AgentToolArgumentsError.js +148 -0
- package/dist/AgentToolArgumentsError.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/Agent.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { AgentKV } from "./AgentKV.js";
|
|
|
8
8
|
import type { AgentMetadata } from "./AgentMetadata.js";
|
|
9
9
|
import type { AgentMessageAcceptance } from "./AgentMessageAcceptance.js";
|
|
10
10
|
import type { AnyAgentTool } from "./AgentTool.js";
|
|
11
|
+
import type { AgentBasePendingStage } from "./AgentBasePending.js";
|
|
11
12
|
/**
|
|
12
13
|
* Everything `AgentBase` is constructed with, except its hooks: an agent's behavior comes from
|
|
13
14
|
* its modules, and the singular hooks the base runs with are merged from them.
|
|
@@ -63,6 +64,8 @@ export declare class Agent<Tool extends AnyAgentTool = AnyAgentTool, Database ex
|
|
|
63
64
|
get id(): string;
|
|
64
65
|
/** Whether durable state says this agent still has work to resume. */
|
|
65
66
|
get active(): boolean;
|
|
67
|
+
/** The durable stage this agent is finishing while a drain is pending. */
|
|
68
|
+
get drainStage(): AgentBasePendingStage | undefined;
|
|
66
69
|
/**
|
|
67
70
|
* The module this agent runs under `name`, when it has one. An individual module holds the
|
|
68
71
|
* state of the single agent it was built for, so this is how that agent's owner reaches what
|
|
@@ -83,6 +86,8 @@ export declare class Agent<Tool extends AnyAgentTool = AnyAgentTool, Database ex
|
|
|
83
86
|
updateMetadata(ctx: Context, update: AgentMetadata): Promise<void>;
|
|
84
87
|
/** Start the loop without a new message, continuing a turn an earlier run left unfinished. */
|
|
85
88
|
start(): void;
|
|
89
|
+
/** Stop the loop at its next durable edge without cancelling its current operation. */
|
|
90
|
+
drain(): Promise<void>;
|
|
86
91
|
/** Wait until the agent has nothing left to do, including work it accepted but never began. */
|
|
87
92
|
waitForIdle(): Promise<void>;
|
|
88
93
|
/** Ask for the conversation to be replaced by the provider's summary of it. */
|
package/dist/Agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAa,KAAK,uBAAuB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgBhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAoB,MAAM,kBAAkB,CAAC;AAE1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
|
package/dist/Agent.js
CHANGED
|
@@ -63,6 +63,10 @@ export class Agent {
|
|
|
63
63
|
get active() {
|
|
64
64
|
return this.#base.active;
|
|
65
65
|
}
|
|
66
|
+
/** The durable stage this agent is finishing while a drain is pending. */
|
|
67
|
+
get drainStage() {
|
|
68
|
+
return this.#base.drainStage;
|
|
69
|
+
}
|
|
66
70
|
/**
|
|
67
71
|
* The module this agent runs under `name`, when it has one. An individual module holds the
|
|
68
72
|
* state of the single agent it was built for, so this is how that agent's owner reaches what
|
|
@@ -95,6 +99,10 @@ export class Agent {
|
|
|
95
99
|
start() {
|
|
96
100
|
this.#base.start();
|
|
97
101
|
}
|
|
102
|
+
/** Stop the loop at its next durable edge without cancelling its current operation. */
|
|
103
|
+
drain() {
|
|
104
|
+
return this.#base.drain();
|
|
105
|
+
}
|
|
98
106
|
/** Wait until the agent has nothing left to do, including work it accepted but never began. */
|
|
99
107
|
async waitForIdle() {
|
|
100
108
|
await this.#base.waitForIdle();
|
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":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAuD,MAAM,gBAAgB,CAAC;AAChG,OAAO,EACH,aAAa,EACb,WAAW,EACX,cAAc,EACd,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,cAAc,GACjB,MAAM,oBAAoB,CAAC;AA+B5B;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,KAAK;IAId,yFAAyF;IAChF,KAAK,CAAY;IAC1B,gGAAgG;IACvF,QAAQ,CAAgD;IAEjE;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAGjB,GAAY,EAAE,OAAqC;QACjD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAIb,GAAY,EACZ,OAAqC,EACrC,OAAiB;QAEjB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAInB,GAAY,EACZ,OAAqC;QAErC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,YAAoB,IAAe,EAAE,OAAsD;QACvF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,+DAA+D;IAC/D,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,0EAA0E;IAC1E,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,KAAK,CACP,GAAY,EACZ,OAA2B,EAC3B,OAAiC;QAEjC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,IAAI,CACN,GAAY,EACZ,OAA2B,EAC3B,OAAiC;QAEjC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,cAAc,CAAC,GAAY,EAAE,MAAqB;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,8FAA8F;IAC9F,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,uFAAuF;IACvF,KAAK;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,WAAW;QACb,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,OAAO,CAAC,GAAY;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,KAAK,CAAC,GAAY;QACpB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACf,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;CACJ;AAED;;;;GAIG;AACH;;;;GAIG;AACH,SAAS,KAAK,CACV,OAAqC;IAErC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/B,OAAO;QACH,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;KACtE,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CACjB,OAAsD,EACtD,OAAqC,EACrC,QAAiB;IAEjB,6EAA6E;IAC7E,MAAM,OAAO,GAAG,CACZ,GAAY,EACZ,MAA0C,EAChB,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;IAC7F,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC/E,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CACrC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CACxD,CAAC;IACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IAClF,oFAAoF;IACpF,+CAA+C;IAC/C,MAAM,MAAM,GAAG,CACX,IAQe,EACkD,EAAE;QACnE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;QAC3E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;gBAChF,CAAC;gBAAC,MAAM,CAAC;oBACL,sEAAsE;gBAC1E,CAAC;YACL,CAAC;QACL,CAAC,CAAC;IACN,CAAC,CAAC;IACF,yFAAyF;IACzF,0FAA0F;IAC1F,6EAA6E;IAC7E,MAAM,KAAK,GAAG,CACV,IAQe,EACkD,EAAE;QACnE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;QAC3E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YAChF,CAAC;QACL,CAAC,CAAC;IACN,CAAC,CAAC;IACF,uFAAuF;IACvF,eAAe;IACf,MAAM,OAAO,GAAG,CACZ,IAQe,EAGH,EAAE;QACd,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;QAC3E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACD,OAAO,CAAC,IAAI,CACR,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CACrB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EACtB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EACpB,GAAG,IAAI,CACV,CAAC,IAAI,EAAE,CAAC,CACZ,CAAC;gBACN,CAAC;gBAAC,MAAM,CAAC;oBACL,kEAAkE;gBACtE,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC;IACN,CAAC,CAAC;IACF,OAAO;QACH,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;oBAC3B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACD,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACxB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EACtB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EACpB,KAAK,CACR,CAAC;wBACN,CAAC;wBAAC,MAAM,CAAC;4BACL,4DAA4D;4BAC5D,YAAY;wBAChB,CAAC;oBACL,CAAC;gBACL,CAAC,CAAqC;aACzC,CAAC;QACR,GAAG,MAAM,CACL,iBAAiB,EACjB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAClD;QACD,GAAG,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAC7B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,oEAAoE;gBACpE,YAAY,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;oBACjC,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;wBACpC,KAAK,CAAC,IAAI,CACN,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAC9B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EACtB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CACvB,CAAC,IAAI,EAAE,CACX,CAAC;oBACN,CAAC;oBACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChE,CAAC;aACJ,CAAC;QACR,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,wEAAwE;gBACxE,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;oBAC1B,MAAM,KAAK,GAAmB,EAAE,CAAC;oBACjC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;wBAC7B,KAAK,CAAC,IAAI,CACN,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EACtB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CACvB,CAAC,IAAI,EAAE,CAAC,CACZ,CAAC;oBACN,CAAC;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC;aACJ,CAAC;QACR,GAAG,MAAM,CACL,kBAAkB,EAClB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CACpD;QACD,GAAG,MAAM,CACL,uBAAuB,EACvB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CACxD;QACD,GAAG,MAAM,CACL,iBAAiB,EACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnD;QACD,GAAG,MAAM,CACL,wBAAwB,EACxB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACzD;QACD,GAAG,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,+EAA+E;gBAC/E,4EAA4E;gBAC5E,4BAA4B;gBAC5B,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBAChC,IAAI,OAAO,GAAG,IAAI,CAAC;oBACnB,yEAAyE;oBACzE,yEAAyE;oBACzE,IAAI,cAA+C,CAAC;oBACpD,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;wBACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAChD,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EACtB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EACpB,OAAO,CACV,CAAC;wBACF,IAAI,QAAQ,KAAK,SAAS;4BAAE,SAAS;wBACrC,+DAA+D;wBAC/D,6CAA6C;wBAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ;4BAAE,OAAO,QAAQ,CAAC;wBAChD,OAAO,GAAG;4BACN,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;4BACnC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;yBACrD,CAAC;wBACF,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC;oBAC/D,CAAC;oBACD,IACI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;wBAC1B,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;wBACpC,cAAc,KAAK,SAAS,EAC9B,CAAC;wBACC,OAAO,SAAS,CAAC;oBACrB,CAAC;oBACD,OAAO;wBACH,IAAI,EAAE,KAAK;wBACX,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;wBAC7D,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;4BACpC,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;wBACvC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;qBAC9D,CAAC;gBACN,CAAC;aACJ,CAAC;QACR,GAAG,MAAM,CACL,eAAe,EACf,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CACjD;QACD,GAAG,MAAM,CACL,uBAAuB,EACvB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CACxD;QACD,GAAG,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAC7B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;oBAChC,IAAI,QAA0C,CAAC;oBAC/C,IAAI,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,OAAgB,CAAC;oBACrB,mEAAmE;oBACnE,mCAAmC;oBACnC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;wBACpC,IAAI,CAAC;4BACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAC7C,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EACtB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EACpB,MAAM,CACT,CAAC;4BACF,QAAQ,KAAK,OAAO,CAAC;wBACzB,CAAC;wBAAC,OAAO,KAAc,EAAE,CAAC;4BACtB,IAAI,CAAC,MAAM,EAAE,CAAC;gCACV,MAAM,GAAG,IAAI,CAAC;gCACd,OAAO,GAAG,KAAK,CAAC;4BACpB,CAAC;wBACL,CAAC;oBACL,CAAC;oBACD,qEAAqE;oBACrE,qEAAqE;oBACrE,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ;wBAAE,MAAM,OAAO,CAAC;oBAC7C,OAAO,QAAQ,CAAC;gBACpB,CAAC;aACJ,CAAC;QACR,GAAG,MAAM,CACL,yBAAyB,EACzB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAC1D;QACD,GAAG,MAAM,CACL,iBAAiB,EACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnD;QACD,GAAG,MAAM,CACL,+BAA+B,EAC/B,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAChE;QACD,GAAG,MAAM,CACL,uBAAuB,EACvB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CACzD;QACD,GAAG,MAAM,CACL,yBAAyB,EACzB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAC1D;QACD,GAAG,MAAM,CACL,iBAAiB,EACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnD;QACD,GAAG,MAAM,CACL,6BAA6B,EAC7B,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAC9D;QACD,GAAG,MAAM,CACL,yBAAyB,EACzB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAC1D;QACD,GAAG,MAAM,CACL,iBAAiB,EACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnD;QACD,GAAG,MAAM,CACL,oBAAoB,EACpB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CACrD;QACD,GAAG,MAAM,CACL,YAAY,EACZ,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAC/C;QACD,GAAG,MAAM,CACL,yBAAyB,EACzB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAC1D;QACD,GAAG,MAAM,CACL,iBAAiB,EACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnD;QACD,GAAG,MAAM,CACL,wBAAwB,EACxB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACzD;QACD,GAAG,MAAM,CACL,gBAAgB,EAChB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAClD;QACD,GAAG,MAAM,CACL,mBAAmB,EACnB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACpD;QACD,GAAG,MAAM,CACL,WAAW,EACX,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAC9C;QACD,GAAG,MAAM,CACL,wBAAwB,EACxB,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACzD;QACD,GAAG,MAAM,CACL,gBAAgB,EAChB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CACnD;QACD,GAAG,MAAM,CACL,2BAA2B,EAC3B,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAC5D;QACD,GAAG,MAAM,CACL,mBAAmB,EACnB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACrD;KACJ,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,GAAY,EAAE,MAAiC;IAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,MAAM,WAAW,GACb,SAAS,KAAK,SAAS;QACnB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAChB,GAAY,EACZ,MAAiC,EACjC,OAAqC,EACrC,QAAiB;IAEjB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,IACI,EAAE,KAAK,SAAS;QAChB,SAAS,KAAK,SAAS;QACvB,KAAK,KAAK,SAAS;QACnB,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAClC,CAAC;QACC,MAAM,IAAI,KAAK,CACX,eAAe,MAAM,CAAC,IAAI,iDAAiD,CAC9E,CAAC;IACN,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;IACxD,OAAO;QACH,KAAK,EAAE;YACH,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ;YACpC,QAAQ;YACR,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS;YAC7D,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK;YACvC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM;YAC1C,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW;YAClD,cAAc,EAAE,mBAAmB,CAAC,GAAG,CAAC;SAC3C;QACD,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;QACpC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;QAC1C,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;KACrD,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,MAAM,CACX,GAAQ,EACR,KAAwB;IAExB,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAA4B,CAAC;AAClF,CAAC"}
|
package/dist/AgentBase.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SessionReasoningEffort, SessionServiceTier } from "@slopus/happy-providers";
|
|
2
2
|
import { type Context } from "@steve.kite/stdlib";
|
|
3
|
+
import { type AgentBasePendingStage } from "./AgentBasePending.js";
|
|
3
4
|
import type { AgentBaseHooks } from "./AgentBaseHooks.js";
|
|
4
5
|
import type { AgentPersistence } from "./AgentPersistence.js";
|
|
5
6
|
import { type AgentMessageMetadata, type AgentMetadata } from "./AgentMetadata.js";
|
|
@@ -267,6 +268,8 @@ export declare class AgentBase {
|
|
|
267
268
|
* for the owner deciding which agents a restarted process has to resume.
|
|
268
269
|
*/
|
|
269
270
|
get active(): boolean;
|
|
271
|
+
/** The durable stage still running while this agent is moving toward its drain edge. */
|
|
272
|
+
get drainStage(): AgentBasePendingStage | undefined;
|
|
270
273
|
/**
|
|
271
274
|
* Queue a message that injects as soon as the current assistant response and its tool
|
|
272
275
|
* batch finish; steering always takes precedence over sent messages. Returns once the message
|
|
@@ -294,6 +297,11 @@ export declare class AgentBase {
|
|
|
294
297
|
* message — continue it to completion. On an idle history this loads and does nothing more.
|
|
295
298
|
*/
|
|
296
299
|
start(): void;
|
|
300
|
+
/**
|
|
301
|
+
* Stop this loop at its next durable edge without cancelling its current operation. The mode
|
|
302
|
+
* is sticky: later queue writes remain durable but cannot start another run in this process.
|
|
303
|
+
*/
|
|
304
|
+
drain(): Promise<void>;
|
|
297
305
|
/**
|
|
298
306
|
* Wait until the agent has nothing left to do. That includes work it has taken on but not yet
|
|
299
307
|
* started: an operation whose caller did not wait for it is registered from the moment it is
|
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,EAKrB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAOH,KAAK,OAAO,EACf,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentBase.d.ts","sourceRoot":"","sources":["../sources/AgentBase.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentBase.js
CHANGED
|
@@ -13,6 +13,7 @@ import { AGENT_BASE_PENDING_KEY, agentBasePendingStateOf, } from "./AgentBasePen
|
|
|
13
13
|
import { cuid2Schema, ownAgentMessageMetadata, ownAgentMetadata, } from "./AgentMetadata.js";
|
|
14
14
|
import { DEFAULT_AGENT_PERMISSION_MODE, isAgentPermissionMode, } from "./AgentPermissionMode.js";
|
|
15
15
|
import { AgentProviders } from "./AgentProviders.js";
|
|
16
|
+
import { agentToolArgumentsError } from "./AgentToolArgumentsError.js";
|
|
16
17
|
import { setAgentSpanAttributes } from "./AgentSpanAttributes.js";
|
|
17
18
|
/** Race winner when an abort interrupts a wait on the stream or a running tool. */
|
|
18
19
|
const ABORTED = Symbol("aborted");
|
|
@@ -376,6 +377,12 @@ export class AgentBase {
|
|
|
376
377
|
#turnRequested = false;
|
|
377
378
|
/** The run loop while it is running; the field is cleared once it has actually stopped. */
|
|
378
379
|
#runPromise;
|
|
380
|
+
/** Sticky for this instance: once requested, no later operation starts another run. */
|
|
381
|
+
#draining = false;
|
|
382
|
+
/** The shared barrier that resolves when the current run reaches a durable edge. */
|
|
383
|
+
#drainPromise;
|
|
384
|
+
/** Whether the shared drain barrier has reached its edge. */
|
|
385
|
+
#drainFinished = false;
|
|
379
386
|
/** The barrier: true from the moment close is called, and nothing new is admitted after it. */
|
|
380
387
|
#closed = false;
|
|
381
388
|
/** The one shutdown every closing caller shares, so a session is never destroyed twice. */
|
|
@@ -594,6 +601,12 @@ export class AgentBase {
|
|
|
594
601
|
get active() {
|
|
595
602
|
return this.#pending !== undefined;
|
|
596
603
|
}
|
|
604
|
+
/** The durable stage still running while this agent is moving toward its drain edge. */
|
|
605
|
+
get drainStage() {
|
|
606
|
+
if (!this.#draining || this.#drainFinished)
|
|
607
|
+
return undefined;
|
|
608
|
+
return (this.#pending?.stage ?? (this.#settlementId === undefined ? "inference" : "settlement"));
|
|
609
|
+
}
|
|
597
610
|
/**
|
|
598
611
|
* Record what the agent is doing, so a process that dies here is discovered owing exactly
|
|
599
612
|
* this. Writing runs on the caller's context: given a transaction's context it commits with
|
|
@@ -1122,6 +1135,28 @@ export class AgentBase {
|
|
|
1122
1135
|
throw new Error("The agent has been closed.");
|
|
1123
1136
|
this.#startRun();
|
|
1124
1137
|
}
|
|
1138
|
+
/**
|
|
1139
|
+
* Stop this loop at its next durable edge without cancelling its current operation. The mode
|
|
1140
|
+
* is sticky: later queue writes remain durable but cannot start another run in this process.
|
|
1141
|
+
*/
|
|
1142
|
+
drain() {
|
|
1143
|
+
this.#draining = true;
|
|
1144
|
+
this.#drainPromise ??= this.#finishDrain();
|
|
1145
|
+
return this.#drainPromise;
|
|
1146
|
+
}
|
|
1147
|
+
/** Wait for operations already handed to this agent and the run they may have started. */
|
|
1148
|
+
async #finishDrain() {
|
|
1149
|
+
try {
|
|
1150
|
+
await Promise.resolve();
|
|
1151
|
+
while (this.#admitted.size > 0 || this.#runPromise !== undefined) {
|
|
1152
|
+
await Promise.allSettled(this.#admitted);
|
|
1153
|
+
await this.#runPromise?.catch(() => undefined);
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1156
|
+
finally {
|
|
1157
|
+
this.#drainFinished = true;
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1125
1160
|
/**
|
|
1126
1161
|
* Wait until the agent has nothing left to do. That includes work it has taken on but not yet
|
|
1127
1162
|
* started: an operation whose caller did not wait for it is registered from the moment it is
|
|
@@ -1319,7 +1354,7 @@ export class AgentBase {
|
|
|
1319
1354
|
// Graceful shutdown stops at the next operation boundary. Do not abort a tool that is
|
|
1320
1355
|
// already running; the coordinator's timeout and the daemon's hard exit bound one that
|
|
1321
1356
|
// never returns.
|
|
1322
|
-
if (!fromInsideOwnLoop && !this.#
|
|
1357
|
+
if (!fromInsideOwnLoop && !this.#stopAtSafeEdgeRequested()) {
|
|
1323
1358
|
this.#closeController.abort();
|
|
1324
1359
|
}
|
|
1325
1360
|
// The barrier is published before any of the shutdown runs. Destroying the provider
|
|
@@ -1383,7 +1418,7 @@ export class AgentBase {
|
|
|
1383
1418
|
* next pass, so this never starts a second one.
|
|
1384
1419
|
*/
|
|
1385
1420
|
#startRun() {
|
|
1386
|
-
if (this.#runPromise !== undefined)
|
|
1421
|
+
if (this.#runPromise !== undefined || this.#draining)
|
|
1387
1422
|
return;
|
|
1388
1423
|
// The loop is a lifetime of its own, so it marks itself rather than inheriting whatever
|
|
1389
1424
|
// happened to start it — a tool of another agent, most often, which will be long gone.
|
|
@@ -1394,7 +1429,7 @@ export class AgentBase {
|
|
|
1394
1429
|
// A request that arrived while the loop was settling would otherwise be stranded:
|
|
1395
1430
|
// the loop had stopped checking, and the caller's own `#startRun` saw a run still
|
|
1396
1431
|
// in flight. Waiters re-check the field, so they pick this continuation up.
|
|
1397
|
-
if (this.#turnRequested && !this.#closed) {
|
|
1432
|
+
if (this.#turnRequested && !this.#closed && !this.#draining) {
|
|
1398
1433
|
this.#startRun();
|
|
1399
1434
|
return;
|
|
1400
1435
|
}
|
|
@@ -1416,7 +1451,7 @@ export class AgentBase {
|
|
|
1416
1451
|
}
|
|
1417
1452
|
/** The run itself, on the context of the span the whole of it belongs to. */
|
|
1418
1453
|
async #runTurns(ctx) {
|
|
1419
|
-
if (this.#
|
|
1454
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1420
1455
|
return;
|
|
1421
1456
|
if (this.#pending?.stage === "settlement") {
|
|
1422
1457
|
// A prior implementation could advance to settlement while a dispatched tool was
|
|
@@ -1479,7 +1514,7 @@ export class AgentBase {
|
|
|
1479
1514
|
*/
|
|
1480
1515
|
async #runLoops(ctx) {
|
|
1481
1516
|
do {
|
|
1482
|
-
if (this.#
|
|
1517
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1483
1518
|
return "shutdown";
|
|
1484
1519
|
this.#loopId ??= createId();
|
|
1485
1520
|
const loop = { loopId: this.#loopId };
|
|
@@ -1496,7 +1531,7 @@ export class AgentBase {
|
|
|
1496
1531
|
? undefined
|
|
1497
1532
|
: (hookCtx) => this.#hooks.beforeAgentLoopTransact?.(hookCtx, loop));
|
|
1498
1533
|
await this.#invokeHook(ctx, this.#hooks.beforeAgentLoop, loop);
|
|
1499
|
-
if (this.#
|
|
1534
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1500
1535
|
return "shutdown";
|
|
1501
1536
|
do {
|
|
1502
1537
|
const outcome = await this.#span(ctx, "agent.turn", { "agent.loop.id": loop.loopId }, (turnCtx) => this.#runTurn(turnCtx, loop, abort));
|
|
@@ -1514,6 +1549,8 @@ export class AgentBase {
|
|
|
1514
1549
|
? undefined
|
|
1515
1550
|
: (hookCtx) => this.#hooks.afterAgentLoopTransact?.(hookCtx, loop));
|
|
1516
1551
|
await this.#applyActions(ctx, this.#hooks.afterAgentLoop, abort.signal, loop);
|
|
1552
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1553
|
+
return "shutdown";
|
|
1517
1554
|
} while (this.#turnRequested && (!this.#closed || this.#hasNoticeWorkToFinish()));
|
|
1518
1555
|
return "settling";
|
|
1519
1556
|
}
|
|
@@ -1565,7 +1602,7 @@ export class AgentBase {
|
|
|
1565
1602
|
? undefined
|
|
1566
1603
|
: (hookCtx) => this.#hooks.beforeTurnTransact?.(hookCtx, turnStart));
|
|
1567
1604
|
await this.#applyActions(ctx, this.#hooks.beforeTurn, abort.signal, turnStart);
|
|
1568
|
-
if (this.#
|
|
1605
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1569
1606
|
return "shutdown";
|
|
1570
1607
|
if ((await this.#runInference(ctx, abort)) === "shutdown")
|
|
1571
1608
|
return "shutdown";
|
|
@@ -1589,6 +1626,8 @@ export class AgentBase {
|
|
|
1589
1626
|
throw error;
|
|
1590
1627
|
}
|
|
1591
1628
|
await this.#applyActions(ctx, this.#hooks.afterTurn, abort.signal, turn);
|
|
1629
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1630
|
+
return "shutdown";
|
|
1592
1631
|
if (!this.#turnRequested || (this.#closed && !this.#hasNoticeWorkToFinish())) {
|
|
1593
1632
|
return "stop";
|
|
1594
1633
|
}
|
|
@@ -1824,7 +1863,7 @@ export class AgentBase {
|
|
|
1824
1863
|
abort.signal.addEventListener("abort", () => resolve(ABORTED), { once: true });
|
|
1825
1864
|
});
|
|
1826
1865
|
try {
|
|
1827
|
-
if (this.#
|
|
1866
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1828
1867
|
return "shutdown";
|
|
1829
1868
|
await this.#ensureLoaded(ctx);
|
|
1830
1869
|
// Resume a tool batch that was dispatched but cut off before its results landed, so
|
|
@@ -1840,20 +1879,22 @@ export class AgentBase {
|
|
|
1840
1879
|
if ((await Promise.race([this.#settled(), abortPromise])) === ABORTED) {
|
|
1841
1880
|
return "complete";
|
|
1842
1881
|
}
|
|
1882
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1883
|
+
return "shutdown";
|
|
1843
1884
|
// A batch that was never committed has certainly not run — the commit precedes
|
|
1844
1885
|
// every execution — so it is dispatched as the fresh batch it never got to be,
|
|
1845
1886
|
// rather than resumed, which would refuse the non-durable calls.
|
|
1846
1887
|
if (await this.#runToolBatch(ctx, resumed, !undispatched, abort.signal, abortPromise)) {
|
|
1847
|
-
return this.#
|
|
1888
|
+
return this.#stopAtSafeEdgeRequested() ? "shutdown" : "complete";
|
|
1848
1889
|
}
|
|
1849
|
-
if (this.#
|
|
1890
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1850
1891
|
return "shutdown";
|
|
1851
1892
|
}
|
|
1852
1893
|
let needsInference = resumed.length > 0;
|
|
1853
1894
|
// A requested compaction runs before this turn's first inference, so the model
|
|
1854
1895
|
// always receives a settled conversation — never one still owing tool results.
|
|
1855
1896
|
await this.#runCompaction(ctx, abort.signal);
|
|
1856
|
-
if (this.#
|
|
1897
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1857
1898
|
return "shutdown";
|
|
1858
1899
|
// An inference is needed without any injection when tool results from a resumed batch
|
|
1859
1900
|
// end the context, or — checked once, against the freshly loaded durable state —
|
|
@@ -1874,7 +1915,7 @@ export class AgentBase {
|
|
|
1874
1915
|
// surfaces it to the context as a system message.
|
|
1875
1916
|
let pendingError;
|
|
1876
1917
|
while (true) {
|
|
1877
|
-
if (this.#
|
|
1918
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1878
1919
|
return "shutdown";
|
|
1879
1920
|
// An abort during the tool batch ends the turn here, before the next inference.
|
|
1880
1921
|
// A cancellation arriving when the turn has nothing left to do cancels nothing:
|
|
@@ -1894,6 +1935,8 @@ export class AgentBase {
|
|
|
1894
1935
|
// batch. Its results are settled now, so replace the measured context before
|
|
1895
1936
|
// another inference iteration or newly queued input can enter it.
|
|
1896
1937
|
await this.#runCompaction(ctx, abort.signal);
|
|
1938
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1939
|
+
return "shutdown";
|
|
1897
1940
|
await this.#finishAdmittedQueueWrites();
|
|
1898
1941
|
// A message accepted through an outer transaction becomes visible only after
|
|
1899
1942
|
// that transaction commits. Merge those durable queue entries here, at the same
|
|
@@ -1902,6 +1945,8 @@ export class AgentBase {
|
|
|
1902
1945
|
// rebuilding unrelated conversation or tool state in the middle of the turn.
|
|
1903
1946
|
if (this.#committedQueueDirty)
|
|
1904
1947
|
await this.#refreshCommittedQueues(ctx);
|
|
1948
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1949
|
+
return "shutdown";
|
|
1905
1950
|
let injected = await this.#consumeQueue(ctx, this.#steering, this.#steeringMode, "steering");
|
|
1906
1951
|
if (!injected && !needsInference) {
|
|
1907
1952
|
injected = await this.#consumeQueue(ctx, this.#sends, this.#sendMode, "send");
|
|
@@ -1912,7 +1957,7 @@ export class AgentBase {
|
|
|
1912
1957
|
// Nothing to answer — a start() on an idle history, or the queues ran dry.
|
|
1913
1958
|
if (!this.#noticeAwaitingResponse && !injected && !needsInference)
|
|
1914
1959
|
break;
|
|
1915
|
-
if (this.#
|
|
1960
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1916
1961
|
return "shutdown";
|
|
1917
1962
|
const response = await this.#span(ctx, "agent.inference", {}, (inferenceCtx) => this.#requestInference(inferenceCtx, abortPromise));
|
|
1918
1963
|
// A cancellation arrived before the request was made, so the turn cycles rather
|
|
@@ -1933,7 +1978,7 @@ export class AgentBase {
|
|
|
1933
1978
|
}
|
|
1934
1979
|
}
|
|
1935
1980
|
if (state === "tool_call") {
|
|
1936
|
-
if (this.#
|
|
1981
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1937
1982
|
return "shutdown";
|
|
1938
1983
|
const calls = content.filter((block) => block.type === "tool_call" && block.server !== true);
|
|
1939
1984
|
if (calls.length === 0)
|
|
@@ -1941,7 +1986,7 @@ export class AgentBase {
|
|
|
1941
1986
|
const closedDuringTools = await this.#runToolBatch(ctx, calls.map((call, index) => this.#newToolEntry(index, call)), false, abort.signal, abortPromise);
|
|
1942
1987
|
if (closedDuringTools)
|
|
1943
1988
|
break;
|
|
1944
|
-
if (this.#
|
|
1989
|
+
if (this.#stopAtSafeEdgeRequested())
|
|
1945
1990
|
return "shutdown";
|
|
1946
1991
|
needsInference = true;
|
|
1947
1992
|
continue;
|
|
@@ -1979,11 +2024,11 @@ export class AgentBase {
|
|
|
1979
2024
|
this.#clearTurnRequestIfNoPendingInput();
|
|
1980
2025
|
}
|
|
1981
2026
|
this.#turnAborted = abort.signal.aborted;
|
|
1982
|
-
return this.#
|
|
2027
|
+
return this.#stopAtSafeEdgeRequested() ? "shutdown" : "complete";
|
|
1983
2028
|
}
|
|
1984
|
-
/** Whether the stdlib coordinator
|
|
1985
|
-
#
|
|
1986
|
-
return shutdown.get(this.#ctx)?.shuttingDown === true;
|
|
2029
|
+
/** Whether a sticky drain or the stdlib coordinator has asked for the next durable edge. */
|
|
2030
|
+
#stopAtSafeEdgeRequested() {
|
|
2031
|
+
return this.#draining || shutdown.get(this.#ctx)?.shuttingDown === true;
|
|
1987
2032
|
}
|
|
1988
2033
|
/**
|
|
1989
2034
|
* Let queue writes already admitted by a re-entrant hook publish before deciding the queues
|
|
@@ -2028,6 +2073,11 @@ export class AgentBase {
|
|
|
2028
2073
|
? undefined
|
|
2029
2074
|
: (hookCtx) => this.#hooks.beforeInferenceTransact?.(hookCtx, inferenceStart));
|
|
2030
2075
|
await this.#invokeHook(ctx, this.#hooks.beforeInference, inferenceStart);
|
|
2076
|
+
// Explicit drain takes the earliest pre-request edge. Preserve the stdlib coordinator's
|
|
2077
|
+
// established behavior: once its inference hook has begun, graceful shutdown lets that
|
|
2078
|
+
// operation proceed through the provider request before stopping.
|
|
2079
|
+
if (this.#draining)
|
|
2080
|
+
return undefined;
|
|
2031
2081
|
const stream = session.run(this.#workContext(ctx), {
|
|
2032
2082
|
context: {
|
|
2033
2083
|
instructions,
|
|
@@ -2490,18 +2540,27 @@ export class AgentBase {
|
|
|
2490
2540
|
if (this.#model !== undefined && model !== undefined) {
|
|
2491
2541
|
const previousType = this.#providers.typeOf(this.#providerId);
|
|
2492
2542
|
const nextType = this.#providers.typeOf(provider);
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2543
|
+
if (previousType === null || nextType === null || previousType !== nextType) {
|
|
2544
|
+
reset = true;
|
|
2545
|
+
}
|
|
2546
|
+
else {
|
|
2547
|
+
const [previousKey, nextKey] = await Promise.all([
|
|
2548
|
+
this.#providers.contextCompatibilityKeyOf(this.#providerId, this.#model),
|
|
2549
|
+
this.#providers.contextCompatibilityKeyOf(provider, model),
|
|
2550
|
+
]);
|
|
2551
|
+
reset =
|
|
2552
|
+
previousKey === null ||
|
|
2553
|
+
nextKey === null ||
|
|
2554
|
+
!areProviderModelsCompatible({
|
|
2555
|
+
modelId: this.#model,
|
|
2556
|
+
providerId: previousKey,
|
|
2557
|
+
providerType: previousType,
|
|
2558
|
+
}, {
|
|
2559
|
+
modelId: model,
|
|
2560
|
+
providerId: nextKey,
|
|
2561
|
+
providerType: nextType,
|
|
2562
|
+
});
|
|
2563
|
+
}
|
|
2505
2564
|
}
|
|
2506
2565
|
else {
|
|
2507
2566
|
// A selection without a model on either side cannot be judged compatible.
|
|
@@ -3138,8 +3197,10 @@ export class AgentBase {
|
|
|
3138
3197
|
return failure(`The arguments for "${call.name}" were not valid JSON.`);
|
|
3139
3198
|
}
|
|
3140
3199
|
}
|
|
3141
|
-
if (tool.parameters !== undefined
|
|
3142
|
-
|
|
3200
|
+
if (tool.parameters !== undefined) {
|
|
3201
|
+
const argumentError = agentToolArgumentsError(call.name, tool.parameters, args);
|
|
3202
|
+
if (argumentError !== undefined)
|
|
3203
|
+
return failure(argumentError);
|
|
3143
3204
|
}
|
|
3144
3205
|
const callKV = this.#kv.scoped("call", entry.id);
|
|
3145
3206
|
const callLifetime = new AbortController();
|
|
@@ -3249,10 +3310,10 @@ export class AgentBase {
|
|
|
3249
3310
|
ranArguments = decision.arguments;
|
|
3250
3311
|
// An amended call is validated again: the schema that mattered is the one belonging
|
|
3251
3312
|
// to the tool that is about to run, on the arguments it is about to receive.
|
|
3252
|
-
if ((ran !== tool || ranArguments !== args) &&
|
|
3253
|
-
ran.parameters
|
|
3254
|
-
|
|
3255
|
-
|
|
3313
|
+
if ((ran !== tool || ranArguments !== args) && ran.parameters !== undefined) {
|
|
3314
|
+
const argumentError = agentToolArgumentsError(ran.name, ran.parameters, ranArguments);
|
|
3315
|
+
if (argumentError !== undefined)
|
|
3316
|
+
throw new Error(argumentError);
|
|
3256
3317
|
}
|
|
3257
3318
|
const runCtx = decision?.permissionMode === undefined
|
|
3258
3319
|
? callCtx
|