@superdurable/dex-agents 0.4.0 → 0.6.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/README.md +616 -55
- package/dist/src/agent-approval-display.d.ts +135 -0
- package/dist/src/agent-approval-display.js +536 -0
- package/dist/src/agent-approval-display.js.map +1 -0
- package/dist/src/agent-context-compaction.d.ts +1 -1
- package/dist/src/agent-framework-runner.d.ts +160 -12
- package/dist/src/agent-framework-runner.js +4 -0
- package/dist/src/agent-framework-runner.js.map +1 -1
- package/dist/src/agent-local-directory-media-store.d.ts +111 -0
- package/dist/src/agent-local-directory-media-store.js +417 -0
- package/dist/src/agent-local-directory-media-store.js.map +1 -0
- package/dist/src/agent-media.d.ts +279 -0
- package/dist/src/agent-media.js +457 -0
- package/dist/src/agent-media.js.map +1 -0
- package/dist/src/agent-session-codecs.d.ts +5 -1
- package/dist/src/agent-session-codecs.js +76 -4
- package/dist/src/agent-session-codecs.js.map +1 -1
- package/dist/src/agent-session-failure.d.ts +4 -2
- package/dist/src/agent-session-failure.js +6 -2
- package/dist/src/agent-session-failure.js.map +1 -1
- package/dist/src/agent-session-flow-graph.d.ts +46 -0
- package/dist/src/agent-session-flow-graph.js +51 -0
- package/dist/src/agent-session-flow-graph.js.map +1 -1
- package/dist/src/agent-session-flow.d.ts +28 -3
- package/dist/src/agent-session-flow.js +21 -1
- package/dist/src/agent-session-flow.js.map +1 -1
- package/dist/src/agent-session-persistence.d.ts +33 -0
- package/dist/src/agent-session-persistence.js +22 -1
- package/dist/src/agent-session-persistence.js.map +1 -1
- package/dist/src/agent-session-start.d.ts +1 -1
- package/dist/src/agent-session-start.js +2 -2
- package/dist/src/agent-session-start.js.map +1 -1
- package/dist/src/agent-session-steps.d.ts +2 -0
- package/dist/src/agent-session-steps.js +74 -5
- package/dist/src/agent-session-steps.js.map +1 -1
- package/dist/src/agent-session-summary.d.ts +138 -0
- package/dist/src/agent-session-summary.js +151 -0
- package/dist/src/agent-session-summary.js.map +1 -0
- package/dist/src/agent-session-tracer.js +1 -1
- package/dist/src/agent-session-tracer.js.map +1 -1
- package/dist/src/agent-session-transitions.d.ts +11 -3
- package/dist/src/agent-session-transitions.js +58 -6
- package/dist/src/agent-session-transitions.js.map +1 -1
- package/dist/src/agent-session-values.d.ts +179 -2
- package/dist/src/agent-session-values.js.map +1 -1
- package/dist/src/agent-session-wait-steps.js +14 -2
- package/dist/src/agent-session-wait-steps.js.map +1 -1
- package/dist/src/ai-sdk/ai-sdk-model-client.d.ts +15 -3
- package/dist/src/ai-sdk/ai-sdk-model-client.js +36 -7
- package/dist/src/ai-sdk/ai-sdk-model-client.js.map +1 -1
- package/dist/src/ai-sdk/index.d.ts +1 -1
- package/dist/src/ai-sdk/index.js +1 -1
- package/dist/src/ai-sdk/index.js.map +1 -1
- package/dist/src/{stepwise → builtin-loop}/agent-definition.d.ts +120 -5
- package/dist/src/builtin-loop/agent-definition.js.map +1 -0
- package/dist/src/builtin-loop/builtin-agent-session-flow.d.ts +77 -0
- package/dist/src/{stepwise/stepwise-agent-session-flow.js → builtin-loop/builtin-agent-session-flow.js} +19 -9
- package/dist/src/builtin-loop/builtin-agent-session-flow.js.map +1 -0
- package/dist/src/{stepwise/stepwise-agent-runner.d.ts → builtin-loop/builtin-loop-agent-runner.d.ts} +72 -14
- package/dist/src/{stepwise/stepwise-agent-runner.js → builtin-loop/builtin-loop-agent-runner.js} +284 -41
- package/dist/src/builtin-loop/builtin-loop-agent-runner.js.map +1 -0
- package/dist/src/{stepwise/stepwise-input-items.d.ts → builtin-loop/builtin-loop-input-items.d.ts} +7 -3
- package/dist/src/{stepwise/stepwise-input-items.js → builtin-loop/builtin-loop-input-items.js} +57 -10
- package/dist/src/builtin-loop/builtin-loop-input-items.js.map +1 -0
- package/dist/src/builtin-loop/function-tool.d.ts +282 -0
- package/dist/src/{stepwise → builtin-loop}/function-tool.js +63 -3
- package/dist/src/builtin-loop/function-tool.js.map +1 -0
- package/dist/src/builtin-loop/index.d.ts +8 -0
- package/dist/src/builtin-loop/index.js +13 -0
- package/dist/src/builtin-loop/index.js.map +1 -0
- package/dist/src/builtin-loop/json-schema-validation.js.map +1 -0
- package/dist/src/{stepwise → builtin-loop}/model-client.d.ts +36 -7
- package/dist/src/builtin-loop/model-client.js.map +1 -0
- package/dist/src/{stepwise → builtin-loop}/scripted-model-client.d.ts +8 -5
- package/dist/src/{stepwise → builtin-loop}/scripted-model-client.js +8 -5
- package/dist/src/builtin-loop/scripted-model-client.js.map +1 -0
- package/dist/src/{stepwise → builtin-loop}/tool-source.d.ts +2 -2
- package/dist/src/builtin-loop/tool-source.js.map +1 -0
- package/dist/src/connectors/connector-input-schema.js +1 -1
- package/dist/src/connectors/connector-input-schema.js.map +1 -1
- package/dist/src/connectors/connector-step-context.d.ts +19 -2
- package/dist/src/connectors/connector-step-context.js +61 -5
- package/dist/src/connectors/connector-step-context.js.map +1 -1
- package/dist/src/connectors/connector-tool-source.d.ts +63 -14
- package/dist/src/connectors/connector-tool-source.js +124 -25
- package/dist/src/connectors/connector-tool-source.js.map +1 -1
- package/dist/src/index.d.ts +8 -4
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/index.d.ts +1 -0
- package/dist/src/mcp/index.js +1 -0
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/mcp-dex-conventions.d.ts +57 -0
- package/dist/src/mcp/mcp-dex-conventions.js +90 -0
- package/dist/src/mcp/mcp-dex-conventions.js.map +1 -0
- package/dist/src/mcp/mcp-image-content.d.ts +20 -0
- package/dist/src/mcp/mcp-image-content.js +82 -0
- package/dist/src/mcp/mcp-image-content.js.map +1 -0
- package/dist/src/mcp/mcp-tool-source.d.ts +205 -18
- package/dist/src/mcp/mcp-tool-source.js +289 -47
- package/dist/src/mcp/mcp-tool-source.js.map +1 -1
- package/dist/src/s3/index.d.ts +1 -0
- package/dist/src/s3/index.js +9 -0
- package/dist/src/s3/index.js.map +1 -0
- package/dist/src/s3/s3-media-store.d.ts +138 -0
- package/dist/src/s3/s3-media-store.js +255 -0
- package/dist/src/s3/s3-media-store.js.map +1 -0
- package/dist/src/stepwise/index.d.ts +41 -8
- package/dist/src/stepwise/index.js +35 -5
- package/dist/src/stepwise/index.js.map +1 -1
- package/dist/src/testing/agent-session-test-client.d.ts +6 -3
- package/dist/src/testing/agent-session-test-client.js +10 -3
- package/dist/src/testing/agent-session-test-client.js.map +1 -1
- package/dist/src/testing/private-dex-engine.d.ts +8 -0
- package/dist/src/testing/private-dex-engine.js +17 -1
- package/dist/src/testing/private-dex-engine.js.map +1 -1
- package/dist/src/testing/scripted-model-client.d.ts +1 -1
- package/dist/src/testing/scripted-model-client.js +2 -2
- package/dist/src/testing/scripted-model-client.js.map +1 -1
- package/dist/src/tool-source-router.d.ts +3 -3
- package/dist/src/tool-source-router.js +2 -2
- package/dist/src/ui-stream/agent-event-json.d.ts +2 -1
- package/dist/src/ui-stream/agent-event-json.js +3 -1
- package/dist/src/ui-stream/agent-event-json.js.map +1 -1
- package/dist/src/ui-stream/agent-ui-messages.d.ts +11 -3
- package/dist/src/ui-stream/agent-ui-messages.js +29 -5
- package/dist/src/ui-stream/agent-ui-messages.js.map +1 -1
- package/package.json +17 -4
- package/dist/src/stepwise/agent-definition.js.map +0 -1
- package/dist/src/stepwise/function-tool.d.ts +0 -130
- package/dist/src/stepwise/function-tool.js.map +0 -1
- package/dist/src/stepwise/json-schema-validation.js.map +0 -1
- package/dist/src/stepwise/model-client.js.map +0 -1
- package/dist/src/stepwise/scripted-model-client.js.map +0 -1
- package/dist/src/stepwise/stepwise-agent-runner.js.map +0 -1
- package/dist/src/stepwise/stepwise-agent-session-flow.d.ts +0 -35
- package/dist/src/stepwise/stepwise-agent-session-flow.js.map +0 -1
- package/dist/src/stepwise/stepwise-input-items.js.map +0 -1
- package/dist/src/stepwise/tool-source.js.map +0 -1
- /package/dist/src/{stepwise → builtin-loop}/agent-definition.js +0 -0
- /package/dist/src/{stepwise → builtin-loop}/json-schema-validation.d.ts +0 -0
- /package/dist/src/{stepwise → builtin-loop}/json-schema-validation.js +0 -0
- /package/dist/src/{stepwise → builtin-loop}/model-client.js +0 -0
- /package/dist/src/{stepwise → builtin-loop}/tool-source.js +0 -0
|
@@ -1,8 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated alias of `@superdurable/dex-agents/builtin-loop`, the built-in agent loop.
|
|
3
|
+
*
|
|
4
|
+
* Every name it exported still works and refers to the same value. Two names changed:
|
|
5
|
+
* `StepwiseAgentRunner` is `BuiltinLoopAgentRunner`, and `createStepwiseAgentSessionFlow` is
|
|
6
|
+
* `createBuiltinAgentSessionFlow`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* // Before
|
|
11
|
+
* import { createStepwiseAgentSessionFlow } from "@superdurable/dex-agents/stepwise";
|
|
12
|
+
* // After
|
|
13
|
+
* import { createBuiltinAgentSessionFlow } from "@superdurable/dex-agents/builtin-loop";
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @deprecated Since 0.5.0. Import from `@superdurable/dex-agents/builtin-loop` instead.
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import { createBuiltinAgentSessionFlow } from "../builtin-loop/builtin-agent-session-flow.js";
|
|
20
|
+
import { BuiltinLoopAgentRunner } from "../builtin-loop/builtin-loop-agent-runner.js";
|
|
21
|
+
export * from "../builtin-loop/index.js";
|
|
22
|
+
/**
|
|
23
|
+
* The {@link BuiltinLoopAgentRunner} under its old name.
|
|
24
|
+
*
|
|
25
|
+
* @deprecated Since 0.5.0. Use `BuiltinLoopAgentRunner` from `@superdurable/dex-agents/builtin-loop`; it is the
|
|
26
|
+
* same class.
|
|
27
|
+
*/
|
|
28
|
+
export declare const StepwiseAgentRunner: typeof BuiltinLoopAgentRunner;
|
|
29
|
+
/**
|
|
30
|
+
* The {@link BuiltinLoopAgentRunner} type under its old name.
|
|
31
|
+
*
|
|
32
|
+
* @deprecated Since 0.5.0. Use `BuiltinLoopAgentRunner` from `@superdurable/dex-agents/builtin-loop`.
|
|
33
|
+
*/
|
|
34
|
+
export type StepwiseAgentRunner = BuiltinLoopAgentRunner;
|
|
35
|
+
/**
|
|
36
|
+
* {@link createBuiltinAgentSessionFlow} under its old name.
|
|
37
|
+
*
|
|
38
|
+
* @deprecated Since 0.5.0. Use `createBuiltinAgentSessionFlow` from `@superdurable/dex-agents/builtin-loop`; it
|
|
39
|
+
* is the same function.
|
|
40
|
+
*/
|
|
41
|
+
export declare const createStepwiseAgentSessionFlow: typeof createBuiltinAgentSessionFlow;
|
|
@@ -5,9 +5,39 @@
|
|
|
5
5
|
// See the LICENSE file in the repository root.
|
|
6
6
|
//
|
|
7
7
|
// SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Deprecated alias of `@superdurable/dex-agents/builtin-loop`, the built-in agent loop.
|
|
10
|
+
*
|
|
11
|
+
* Every name it exported still works and refers to the same value. Two names changed:
|
|
12
|
+
* `StepwiseAgentRunner` is `BuiltinLoopAgentRunner`, and `createStepwiseAgentSessionFlow` is
|
|
13
|
+
* `createBuiltinAgentSessionFlow`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Before
|
|
18
|
+
* import { createStepwiseAgentSessionFlow } from "@superdurable/dex-agents/stepwise";
|
|
19
|
+
* // After
|
|
20
|
+
* import { createBuiltinAgentSessionFlow } from "@superdurable/dex-agents/builtin-loop";
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @deprecated Since 0.5.0. Import from `@superdurable/dex-agents/builtin-loop` instead.
|
|
24
|
+
* @module
|
|
25
|
+
*/
|
|
26
|
+
import { createBuiltinAgentSessionFlow } from "../builtin-loop/builtin-agent-session-flow.js";
|
|
27
|
+
import { BuiltinLoopAgentRunner } from "../builtin-loop/builtin-loop-agent-runner.js";
|
|
28
|
+
export * from "../builtin-loop/index.js";
|
|
29
|
+
/**
|
|
30
|
+
* The {@link BuiltinLoopAgentRunner} under its old name.
|
|
31
|
+
*
|
|
32
|
+
* @deprecated Since 0.5.0. Use `BuiltinLoopAgentRunner` from `@superdurable/dex-agents/builtin-loop`; it is the
|
|
33
|
+
* same class.
|
|
34
|
+
*/
|
|
35
|
+
export const StepwiseAgentRunner = BuiltinLoopAgentRunner;
|
|
36
|
+
/**
|
|
37
|
+
* {@link createBuiltinAgentSessionFlow} under its old name.
|
|
38
|
+
*
|
|
39
|
+
* @deprecated Since 0.5.0. Use `createBuiltinAgentSessionFlow` from `@superdurable/dex-agents/builtin-loop`; it
|
|
40
|
+
* is the same function.
|
|
41
|
+
*/
|
|
42
|
+
export const createStepwiseAgentSessionFlow = createBuiltinAgentSessionFlow;
|
|
13
43
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stepwise/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stepwise/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAEtF,cAAc,0BAA0B,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAS1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,6BAA6B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Client, type StartFlowOptions } from "@superdurable/dex";
|
|
2
2
|
import type { AgentFrameworkRunner, DeferredToolOutcome } from "../agent-framework-runner.js";
|
|
3
3
|
import type { AgentSessionFlow } from "../agent-session-flow.js";
|
|
4
|
-
import type { AgentEvent, AgentInterrupt, AgentMessagesPage, AgentSnapshot, AgentState, AgentToolCallRecord, SessionSettings } from "../agent-session-values.js";
|
|
4
|
+
import type { AgentEvent, AgentImageReference, AgentInterrupt, AgentMessagesPage, AgentSnapshot, AgentState, AgentToolCallRecord, SessionSettings } from "../agent-session-values.js";
|
|
5
5
|
/** Options of the `waitFor*` methods of {@link AgentSessionTestClient}. */
|
|
6
6
|
export interface AgentSessionWaitOptions {
|
|
7
7
|
/** Total milliseconds to wait. Defaults to 60,000. */
|
|
@@ -60,9 +60,12 @@ export declare class AgentSessionTestClient {
|
|
|
60
60
|
* @param sessionId - Session Flow ID.
|
|
61
61
|
* @param text - Message text.
|
|
62
62
|
* @param planMode - Whether the message starts a planning turn. Defaults to `false`.
|
|
63
|
-
* @
|
|
63
|
+
* @param images - Images of the message, uploaded first; none by default. The client does not check them, so a
|
|
64
|
+
* test can send references that the session refuses. Since 0.5.0.
|
|
65
|
+
* @returns The RPC result: `false` for blank text, for a `planMode` message when plan mode is off, or for images
|
|
66
|
+
* that the session refuses.
|
|
64
67
|
*/
|
|
65
|
-
sendUserMessage(sessionId: string, text: string, planMode?: boolean): Promise<boolean>;
|
|
68
|
+
sendUserMessage(sessionId: string, text: string, planMode?: boolean, images?: readonly AgentImageReference[]): Promise<boolean>;
|
|
66
69
|
/**
|
|
67
70
|
* Calls `execute_plan`, retrying an `RpcLockConflictError` for up to 30 seconds.
|
|
68
71
|
* @param sessionId - Session Flow ID.
|
|
@@ -70,10 +70,17 @@ export class AgentSessionTestClient {
|
|
|
70
70
|
* @param sessionId - Session Flow ID.
|
|
71
71
|
* @param text - Message text.
|
|
72
72
|
* @param planMode - Whether the message starts a planning turn. Defaults to `false`.
|
|
73
|
-
* @
|
|
73
|
+
* @param images - Images of the message, uploaded first; none by default. The client does not check them, so a
|
|
74
|
+
* test can send references that the session refuses. Since 0.5.0.
|
|
75
|
+
* @returns The RPC result: `false` for blank text, for a `planMode` message when plan mode is off, or for images
|
|
76
|
+
* that the session refuses.
|
|
74
77
|
*/
|
|
75
|
-
sendUserMessage(sessionId, text, planMode = false) {
|
|
76
|
-
return this.client.invokeRPC(this.flow.sendUserMessage, sessionId, {
|
|
78
|
+
sendUserMessage(sessionId, text, planMode = false, images = []) {
|
|
79
|
+
return this.client.invokeRPC(this.flow.sendUserMessage, sessionId, {
|
|
80
|
+
text,
|
|
81
|
+
planMode,
|
|
82
|
+
...(images.length > 0 ? { images } : {}),
|
|
83
|
+
});
|
|
77
84
|
}
|
|
78
85
|
/**
|
|
79
86
|
* Calls `execute_plan`, retrying an `RpcLockConflictError` for up to 30 seconds.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session-test-client.js","sourceRoot":"","sources":["../../../src/testing/agent-session-test-client.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAsC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-session-test-client.js","sourceRoot":"","sources":["../../../src/testing/agent-session-test-client.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAsC,MAAM,mBAAmB,CAAC;AAe7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAC1C,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,cAAc,GAAG,GAAG,CAAC;AAQ3B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,sBAAsB;IAQf;IAEA;IATlB;;;;OAIG;IACH;IACE,kCAAkC;IAClB,MAAc;IAC9B,8CAA8C;IAC9B,IAAiE;QAFjE,WAAM,GAAN,MAAM,CAAQ;QAEd,SAAI,GAAJ,IAAI,CAA6D;IAChF,CAAC;IAEJ;;;;;;;;OAQG;IACI,KAAK,CAAC,YAAY,CACvB,SAAiB,EACjB,iBAAgC,IAAI,EACpC,mBAAqC,EAAE,EACvC,kBAA0C,IAAI;QAE9C,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACpH,CAAC;IAED;;;;;OAKG;IACI,qBAAqB,CAAC,SAAiB,EAAE,eAAgC;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;;;;OASG;IACI,eAAe,CACpB,SAAiB,EACjB,IAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,SAAyC,EAAE;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE;YACjE,IAAI;YACJ,QAAQ;YACR,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,SAAiB,EAAE,QAAgB;QACpD,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzG,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,SAAiB,EAAE,IAAY;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;OAMG;IACI,kBAAkB,CAAC,SAAiB,EAAE,SAAiB;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;OAMG;IACI,mBAAmB,CAAC,SAAiB,EAAE,SAAiB;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;OAMG;IACI,UAAU,CAAC,SAAiB,EAAE,SAAwB,IAAI;QAC/D,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;;OAOG;IACI,gBAAgB,CACrB,SAAiB,EACjB,WAAmB,EACnB,QAAiB,EACjB,mBAAkC,IAAI;QAEtC,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAC1G,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,SAAiB,EAAE,WAAmB,EAAE,MAAc;QAC1E,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CACpF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;OAMG;IACI,iBAAiB,CACtB,SAAiB,EACjB,cAA6B,EAC7B,KAAa;QAEb,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,SAAiB;QAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,UAAkB;QAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAChD,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC9C,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QAClD,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAClD,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAC5B,CAAC;QACF,OAAO,UAAU,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACI,oBAAoB,CACzB,SAAiB,EACjB,SAA+C,EAC/C,WAAmB,EACnB,UAAmC,EAAE;QAErC,OAAO,SAAS,CACd,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxD,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC,EACD,EAAE,WAAW,EAAE,GAAG,WAAW,eAAe,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CACtE,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,iBAAiB,CACtB,SAAiB,EACjB,SAAyC,EACzC,WAAmB,EACnB,UAAmC,EAAE;QAErC,OAAO,SAAS,CACd,KAAK,IAAI,EAAE;YACT,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACnD,OAAO,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC,EACD,EAAE,WAAW,EAAE,GAAG,WAAW,eAAe,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CACtE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,qBAAqB,CAC1B,SAAiB,EACjB,SAAiB,EACjB,UAAmC,EAAE;QAErC,OAAO,IAAI,CAAC,iBAAiB,CAC3B,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,0BAA0B,IAAI,KAAK,CAAC,SAAS,IAAI,SAAS,EACtF,GAAG,SAAS,iBAAiB,EAC7B,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,uBAAuB,CAC5B,SAAiB,EACjB,QAAiB,EACjB,UAAmC,EAAE;QAErC,OAAO,SAAS,CACd,KAAK,IAAI,EAAE,CACT,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAChD,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CACzE,EACH,EAAE,WAAW,EAAE,yBAAyB,QAAQ,IAAI,UAAU,eAAe,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CACvG,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,eAAe,CACpB,SAAiB,EACjB,UAAkB,EAClB,SAAqD,EACrD,UAAmC,EAAE;QAErC,OAAO,SAAS,CACd,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChE,OAAO,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,CAAC,EACD,EAAE,WAAW,EAAE,aAAa,UAAU,eAAe,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CAC/E,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,SAAiB;QAC5C,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,GAAG,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC/C,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,cAAc,EACd,SAAS,CACV,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,CAAC,QAAQ,SAAS,KAAK,EAAE,EAAE;QAC3B,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;CACF;AAED,KAAK,UAAU,kBAAkB,CAAC,MAA8B;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,0BAA0B,CAAC;IACzD,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,KAAK,YAAY,oBAAoB,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACvE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
|
|
@@ -34,6 +34,14 @@ export interface PrivateDexEngineOptions {
|
|
|
34
34
|
* never share state. The engine runs in its own process group; {@link stop} ends `dexcli` and
|
|
35
35
|
* `dex-server-zd` together. Engines still running when the test process exits receive SIGKILL.
|
|
36
36
|
*
|
|
37
|
+
* The engine runs `dexcli dev` with `HOME` set to `<stateDirectory>/home`, so it never reads or writes the
|
|
38
|
+
* user's `~/.dex`. It also sets `DEX_CONNECTORS_MCP_BINARY` to a file that does not exist, so the engine never
|
|
39
|
+
* downloads a published Connectors MCP release and has no working `/mcp`. Start a fake MCP server when a test
|
|
40
|
+
* needs connector tools.
|
|
41
|
+
*
|
|
42
|
+
* Changed in 0.6.0: the engine no longer downloads or runs a Connectors MCP server, and no longer uses the
|
|
43
|
+
* user's `HOME`.
|
|
44
|
+
*
|
|
37
45
|
* @example
|
|
38
46
|
* ```ts
|
|
39
47
|
* import { before, after } from "node:test";
|
|
@@ -21,6 +21,14 @@ const processCrashSafeServerZdConfig = "dev:\n durabilityMode: processCrashSafe
|
|
|
21
21
|
* never share state. The engine runs in its own process group; {@link stop} ends `dexcli` and
|
|
22
22
|
* `dex-server-zd` together. Engines still running when the test process exits receive SIGKILL.
|
|
23
23
|
*
|
|
24
|
+
* The engine runs `dexcli dev` with `HOME` set to `<stateDirectory>/home`, so it never reads or writes the
|
|
25
|
+
* user's `~/.dex`. It also sets `DEX_CONNECTORS_MCP_BINARY` to a file that does not exist, so the engine never
|
|
26
|
+
* downloads a published Connectors MCP release and has no working `/mcp`. Start a fake MCP server when a test
|
|
27
|
+
* needs connector tools.
|
|
28
|
+
*
|
|
29
|
+
* Changed in 0.6.0: the engine no longer downloads or runs a Connectors MCP server, and no longer uses the
|
|
30
|
+
* user's `HOME`.
|
|
31
|
+
*
|
|
24
32
|
* @example
|
|
25
33
|
* ```ts
|
|
26
34
|
* import { before, after } from "node:test";
|
|
@@ -76,6 +84,9 @@ export class PrivateDexEngine {
|
|
|
76
84
|
configPath = join(stateDirectory, "zd-overrides.yaml");
|
|
77
85
|
writeFileSync(configPath, processCrashSafeServerZdConfig);
|
|
78
86
|
}
|
|
87
|
+
// A private HOME keeps dexcli dev out of the user's ~/.dex.
|
|
88
|
+
const homeDirectory = join(stateDirectory, "home");
|
|
89
|
+
mkdirSync(homeDirectory, { recursive: true });
|
|
79
90
|
let lastFailure;
|
|
80
91
|
for (let attempt = 1; attempt <= startAttempts; attempt += 1) {
|
|
81
92
|
const [dexPort, webPort] = await findFreeLoopbackPorts(2);
|
|
@@ -107,7 +118,12 @@ export class PrivateDexEngine {
|
|
|
107
118
|
description: "dexcli dev",
|
|
108
119
|
command: dexcliPath,
|
|
109
120
|
commandArguments,
|
|
110
|
-
environment:
|
|
121
|
+
environment: {
|
|
122
|
+
...process.env,
|
|
123
|
+
HOME: homeDirectory,
|
|
124
|
+
// A missing binary makes dexcli skip the published release; older dexcli ignores it.
|
|
125
|
+
DEX_CONNECTORS_MCP_BINARY: join(stateDirectory, "dex-connectors-mcp-not-installed"),
|
|
126
|
+
},
|
|
111
127
|
logPath,
|
|
112
128
|
readyLine: engineReadyLine,
|
|
113
129
|
readyTimeoutMs: options.readyTimeoutMs ?? 60_000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-dex-engine.js","sourceRoot":"","sources":["../../../src/testing/private-dex-engine.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,YAAY,EAAe,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAC/D,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,2EAA2E;AAC3E,MAAM,8BAA8B,GAAG,4CAA4C,CAAC;AAgCpF
|
|
1
|
+
{"version":3,"file":"private-dex-engine.js","sourceRoot":"","sources":["../../../src/testing/private-dex-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { ScriptedModelClient, scriptedModelApi, scriptedModelProvider, type ScriptedModelReply, type ScriptedModelResponder, type ScriptedToolCall, } from "../
|
|
1
|
+
export { ScriptedModelClient, scriptedModelApi, scriptedModelProvider, type ScriptedModelReply, type ScriptedModelResponder, type ScriptedToolCall, } from "../builtin-loop/scripted-model-client.js";
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
// See the LICENSE file in the repository root.
|
|
6
6
|
//
|
|
7
7
|
// SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
|
|
8
|
-
// The scripted model client lives in the
|
|
9
|
-
export { ScriptedModelClient, scriptedModelApi, scriptedModelProvider, } from "../
|
|
8
|
+
// The scripted model client lives in the builtin-loop entry point; this path keeps the 0.1.0 module.
|
|
9
|
+
export { ScriptedModelClient, scriptedModelApi, scriptedModelProvider, } from "../builtin-loop/scripted-model-client.js";
|
|
10
10
|
//# sourceMappingURL=scripted-model-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripted-model-client.js","sourceRoot":"","sources":["../../../src/testing/scripted-model-client.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAG1D,
|
|
1
|
+
{"version":3,"file":"scripted-model-client.js","sourceRoot":"","sources":["../../../src/testing/scripted-model-client.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAG1D,qGAAqG;AACrG,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,0CAA0C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AgentTurnContext, type DeferredToolCall, type DeferredToolExecution, type DeferredToolOutcome, type ToolCallStepOptions, type ToolExecutionResult, type ToolTaskCancellation, type ToolTaskPoll, type ToolTaskPollOutcome } from "./agent-framework-runner.js";
|
|
2
2
|
import type { AgentToolCall } from "./agent-session-values.js";
|
|
3
|
-
import type { SourceToolDefinition, ToolSource } from "./
|
|
3
|
+
import type { SourceToolDefinition, ToolSource } from "./builtin-loop/tool-source.js";
|
|
4
4
|
/**
|
|
5
5
|
* Default `AgentDefinition.toolSourceListingTimeoutMs`: 10 seconds. It is also the default time one model call of a
|
|
6
6
|
* framework adapter waits for each tool source's listing. Exported from the package root since 0.4.0.
|
|
@@ -42,7 +42,7 @@ export interface ToolSourceRouterOptions {
|
|
|
42
42
|
readonly listingTimeoutMs?: number;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
* Serves {@link ToolSource}s from a framework runner, so their calls run in tool Steps as the
|
|
45
|
+
* Serves {@link ToolSource}s from a framework runner, so their calls run in tool Steps as the built-in loop runner runs
|
|
46
46
|
* them.
|
|
47
47
|
*
|
|
48
48
|
* A framework adapter that implements {@link AgentFrameworkRunner} builds one router from its `toolSources`. In each
|
|
@@ -53,7 +53,7 @@ export interface ToolSourceRouterOptions {
|
|
|
53
53
|
* {@link executeDeferredToolCall} on any Worker, with the full execution: the Step context, the heartbeat
|
|
54
54
|
* checkpoint, and the attempt. {@link toolCallStepOptions}, {@link pollToolTask}, and {@link cancelToolTask} route
|
|
55
55
|
* the same way. A runner whose `executeDeferredToolCall` returns only results, and so polls no tool tasks, uses
|
|
56
|
-
* {@link executeDeferredToolCallForResult} instead. `
|
|
56
|
+
* {@link executeDeferredToolCallForResult} instead. `BuiltinLoopAgentRunner` uses a router too.
|
|
57
57
|
*
|
|
58
58
|
* Construction refuses a source without a {@link ToolSource} method or a non-blank, unique `sourceName`, and a
|
|
59
59
|
* name that a source declares through `declaredToolNames` when it repeats a local tool, a built-in tool, or another
|
|
@@ -14,7 +14,7 @@ export const defaultToolSourceListingTimeoutMs = 10_000;
|
|
|
14
14
|
const toolSourceMethods = ["listTools", "deferredToolCall", "executeDeferredToolCall", "pollToolTask"];
|
|
15
15
|
const toolSourceReferenceKey = "reference";
|
|
16
16
|
/**
|
|
17
|
-
* Serves {@link ToolSource}s from a framework runner, so their calls run in tool Steps as the
|
|
17
|
+
* Serves {@link ToolSource}s from a framework runner, so their calls run in tool Steps as the built-in loop runner runs
|
|
18
18
|
* them.
|
|
19
19
|
*
|
|
20
20
|
* A framework adapter that implements {@link AgentFrameworkRunner} builds one router from its `toolSources`. In each
|
|
@@ -25,7 +25,7 @@ const toolSourceReferenceKey = "reference";
|
|
|
25
25
|
* {@link executeDeferredToolCall} on any Worker, with the full execution: the Step context, the heartbeat
|
|
26
26
|
* checkpoint, and the attempt. {@link toolCallStepOptions}, {@link pollToolTask}, and {@link cancelToolTask} route
|
|
27
27
|
* the same way. A runner whose `executeDeferredToolCall` returns only results, and so polls no tool tasks, uses
|
|
28
|
-
* {@link executeDeferredToolCallForResult} instead. `
|
|
28
|
+
* {@link executeDeferredToolCallForResult} instead. `BuiltinLoopAgentRunner` uses a router too.
|
|
29
29
|
*
|
|
30
30
|
* Construction refuses a source without a {@link ToolSource} method or a non-blank, unique `sourceName`, and a
|
|
31
31
|
* name that a source declares through `declaredToolNames` when it repeats a local tool, a built-in tool, or another
|
|
@@ -18,7 +18,8 @@ export declare function convertAgentEventToJson(event: AgentEvent): AgentEventJs
|
|
|
18
18
|
* Use it when a browser shared with Python backends reads the snapshot. It is the `get_agent_snapshot` wire
|
|
19
19
|
* format without the fields only the session's Steps use. Messages leave out `framework_item`, the
|
|
20
20
|
* framework's replay data, which can hold the agent's instructions. Tool calls leave out
|
|
21
|
-
* `tool_source_reference`, `trace_context`, `input_continuation`, `input_answers`,
|
|
21
|
+
* `tool_source_reference`, `trace_context`, `input_continuation`, `input_answers`, `task_answer_pending`, and
|
|
22
|
+
* `runner_tool_state`.
|
|
22
23
|
*
|
|
23
24
|
* `session_settings` is included as stored, so the browser sees the settings the next turn starts with. Keep
|
|
24
25
|
* anything a browser must not see out of session settings, or remove the key before serving the JSON.
|
|
@@ -34,6 +34,7 @@ const workerOnlyToolCallFieldNames = new Set([
|
|
|
34
34
|
"input_continuation",
|
|
35
35
|
"input_answers",
|
|
36
36
|
"task_answer_pending",
|
|
37
|
+
"runner_tool_state",
|
|
37
38
|
]);
|
|
38
39
|
/**
|
|
39
40
|
* Converts an `AgentSnapshot` to the snake_case JSON a browser reads, the same JSON the Python core produces.
|
|
@@ -41,7 +42,8 @@ const workerOnlyToolCallFieldNames = new Set([
|
|
|
41
42
|
* Use it when a browser shared with Python backends reads the snapshot. It is the `get_agent_snapshot` wire
|
|
42
43
|
* format without the fields only the session's Steps use. Messages leave out `framework_item`, the
|
|
43
44
|
* framework's replay data, which can hold the agent's instructions. Tool calls leave out
|
|
44
|
-
* `tool_source_reference`, `trace_context`, `input_continuation`, `input_answers`,
|
|
45
|
+
* `tool_source_reference`, `trace_context`, `input_continuation`, `input_answers`, `task_answer_pending`, and
|
|
46
|
+
* `runner_tool_state`.
|
|
45
47
|
*
|
|
46
48
|
* `session_settings` is included as stored, so the browser sees the settings the next turn starts with. Keep
|
|
47
49
|
* anything a browser must not see out of session settings, or remove the key before serving the JSON.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-event-json.js","sourceRoot":"","sources":["../../../src/ui-stream/agent-event-json.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIjE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,iBAAiB,EAAE,KAAK,CAAC,eAAe;QACxC,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACrF,MAAM,4BAA4B,GAAwB,IAAI,GAAG,CAAC;IAChE,uBAAuB;IACvB,eAAe;IACf,oBAAoB;IACpB,eAAe;IACf,qBAAqB;
|
|
1
|
+
{"version":3,"file":"agent-event-json.js","sourceRoot":"","sources":["../../../src/ui-stream/agent-event-json.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIjE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,iBAAiB,EAAE,KAAK,CAAC,eAAe;QACxC,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACrF,MAAM,4BAA4B,GAAwB,IAAI,GAAG,CAAC;IAChE,uBAAuB;IACvB,eAAe;IACf,oBAAoB;IACpB,eAAe;IACf,qBAAqB;IACrB,mBAAmB;CACpB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAuB;IAChE,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAA4B,CAAC;IAC9E,OAAO;QACL,GAAG,YAAY;QACf,QAAQ,EAAG,YAAY,CAAC,UAAU,CAA+B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAChF,cAAc,CAAC,OAAO,EAAE,2BAA2B,CAAC,CACrD;QACD,UAAU,EAAG,YAAY,CAAC,YAAY,CAA+B,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrF,cAAc,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CACvD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,KAA8B,EAC9B,UAA+B;IAE/B,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC"}
|
|
@@ -23,11 +23,19 @@ export interface AgentSessionUIMessages {
|
|
|
23
23
|
* assistant and tool messages of one turn become one assistant message with ID
|
|
24
24
|
* {@link agentAssistantUIMessageId}: a `step-start` part before each model call, a text part per model
|
|
25
25
|
* text, and a dynamic tool part per tool call. A stored tool result shows the text the model saw, so a
|
|
26
|
-
* failed or rejected call appears as `output-available` with that text. A turn-failure
|
|
27
|
-
* user message and appears as
|
|
26
|
+
* failed or rejected call appears as `output-available` with that text. A turn-failure, steered, or cancelled
|
|
27
|
+
* note is the last stored user message of a turn that has ended, and it appears as a user message. Any other user
|
|
28
|
+
* message after the turn's first model output, such as the message of a built-in loop continuation, is not shown;
|
|
29
|
+
* it starts the step of the next model call, also while that call is still running, as the UI stream does.
|
|
30
|
+
* Changed in 0.5.0: such a message no longer appears as a user message that splits the turn.
|
|
31
|
+
*
|
|
32
|
+
* The UI stream starts a step for every `RunModel` Step, and this function one for every model call. They differ
|
|
33
|
+
* only where a `RunModel` makes no model call, such as when `decideTurnContinuation` ends a turn after its tools:
|
|
34
|
+
* the stream then sends one more `start-step` and `finish-step` with no visible part, which leaves no part in the
|
|
35
|
+
* AI SDK message, so the message still matches the converted snapshot.
|
|
28
36
|
*
|
|
29
37
|
* The session stores a turn's messages when the turn ends, or after each model call for a runner such as
|
|
30
|
-
* the
|
|
38
|
+
* the built-in loop runner. For the active turn the function shows each tool call of `snapshot.toolCalls` once in
|
|
31
39
|
* the turn's assistant message: a stored call without a result takes the record's state, and a call not
|
|
32
40
|
* stored yet is added. Approvals waiting for `resolve_interrupt` are `approval-requested`, running calls
|
|
33
41
|
* are `input-available` or `approval-responded`, and finished calls show their result. The active turn's
|
|
@@ -17,11 +17,19 @@ import { encodeAgentUIStreamCursor } from "./agent-ui-stream-cursor.js";
|
|
|
17
17
|
* assistant and tool messages of one turn become one assistant message with ID
|
|
18
18
|
* {@link agentAssistantUIMessageId}: a `step-start` part before each model call, a text part per model
|
|
19
19
|
* text, and a dynamic tool part per tool call. A stored tool result shows the text the model saw, so a
|
|
20
|
-
* failed or rejected call appears as `output-available` with that text. A turn-failure
|
|
21
|
-
* user message and appears as
|
|
20
|
+
* failed or rejected call appears as `output-available` with that text. A turn-failure, steered, or cancelled
|
|
21
|
+
* note is the last stored user message of a turn that has ended, and it appears as a user message. Any other user
|
|
22
|
+
* message after the turn's first model output, such as the message of a built-in loop continuation, is not shown;
|
|
23
|
+
* it starts the step of the next model call, also while that call is still running, as the UI stream does.
|
|
24
|
+
* Changed in 0.5.0: such a message no longer appears as a user message that splits the turn.
|
|
25
|
+
*
|
|
26
|
+
* The UI stream starts a step for every `RunModel` Step, and this function one for every model call. They differ
|
|
27
|
+
* only where a `RunModel` makes no model call, such as when `decideTurnContinuation` ends a turn after its tools:
|
|
28
|
+
* the stream then sends one more `start-step` and `finish-step` with no visible part, which leaves no part in the
|
|
29
|
+
* AI SDK message, so the message still matches the converted snapshot.
|
|
22
30
|
*
|
|
23
31
|
* The session stores a turn's messages when the turn ends, or after each model call for a runner such as
|
|
24
|
-
* the
|
|
32
|
+
* the built-in loop runner. For the active turn the function shows each tool call of `snapshot.toolCalls` once in
|
|
25
33
|
* the turn's assistant message: a stored call without a result takes the record's state, and a call not
|
|
26
34
|
* stored yet is added. Approvals waiting for `resolve_interrupt` are `approval-requested`, running calls
|
|
27
35
|
* are `input-available` or `approval-responded`, and finished calls show their result. The active turn's
|
|
@@ -38,9 +46,14 @@ import { encodeAgentUIStreamCursor } from "./agent-ui-stream-cursor.js";
|
|
|
38
46
|
*/
|
|
39
47
|
export function convertAgentSnapshotToUIMessages(snapshot) {
|
|
40
48
|
const uiMessages = [];
|
|
49
|
+
const activeTurnId = snapshot.state?.activeTurnId ?? null;
|
|
41
50
|
let assistantMessage;
|
|
42
|
-
for (const message of snapshot.messages) {
|
|
51
|
+
for (const [index, message] of snapshot.messages.entries()) {
|
|
43
52
|
if (message.role === "user") {
|
|
53
|
+
if (assistantMessage?.turnId === message.turnId && !isTurnEndingNote(snapshot, index, activeTurnId)) {
|
|
54
|
+
assistantMessage.startModelCall();
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
44
57
|
assistantMessage = undefined;
|
|
45
58
|
uiMessages.push({
|
|
46
59
|
id: agentUserUIMessageId(message.sequence),
|
|
@@ -55,7 +68,6 @@ export function convertAgentSnapshotToUIMessages(snapshot) {
|
|
|
55
68
|
}
|
|
56
69
|
assistantMessage.appendStoredMessage(message);
|
|
57
70
|
}
|
|
58
|
-
const activeTurnId = snapshot.state?.activeTurnId ?? null;
|
|
59
71
|
if (activeTurnId !== null && snapshot.toolCalls.length > 0) {
|
|
60
72
|
if (assistantMessage?.turnId !== activeTurnId) {
|
|
61
73
|
assistantMessage = new AgentAssistantUIMessageBuilder(activeTurnId);
|
|
@@ -65,6 +77,13 @@ export function convertAgentSnapshotToUIMessages(snapshot) {
|
|
|
65
77
|
}
|
|
66
78
|
return uiMessages;
|
|
67
79
|
}
|
|
80
|
+
/** Whether a user message after the turn's model output is a note: the last stored message of an ended turn. */
|
|
81
|
+
function isTurnEndingNote(snapshot, index, activeTurnId) {
|
|
82
|
+
const message = snapshot.messages[index];
|
|
83
|
+
const following = snapshot.messages[index + 1];
|
|
84
|
+
const isLastOfTurn = following === undefined || following.turnId !== message.turnId;
|
|
85
|
+
return isLastOfTurn && message.turnId !== activeTurnId;
|
|
86
|
+
}
|
|
68
87
|
/**
|
|
69
88
|
* Reads an agent session as AI SDK messages and the UI stream resume token of its active turn.
|
|
70
89
|
*
|
|
@@ -108,6 +127,11 @@ class AgentAssistantUIMessageBuilder {
|
|
|
108
127
|
parts: [{ type: "step-start" }],
|
|
109
128
|
};
|
|
110
129
|
}
|
|
130
|
+
/** Starts the step of a model call that follows a user message within the turn. */
|
|
131
|
+
startModelCall() {
|
|
132
|
+
this.message.parts.push({ type: "step-start" });
|
|
133
|
+
this.isAfterToolResult = false;
|
|
134
|
+
}
|
|
111
135
|
appendStoredMessage(message) {
|
|
112
136
|
if (message.role === "tool") {
|
|
113
137
|
this.appendToolResult(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-ui-messages.js","sourceRoot":"","sources":["../../../src/ui-stream/agent-ui-messages.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAK1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EACL,uBAAuB,GAIxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAGrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAgBxE
|
|
1
|
+
{"version":3,"file":"agent-ui-messages.js","sourceRoot":"","sources":["../../../src/ui-stream/agent-ui-messages.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdurable/dex-agents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Durable agent sessions for Dex, shared by the Dex TypeScript agent framework adapters",
|
|
5
5
|
"license": "LicenseRef-Sustainable-Use-1.0",
|
|
6
6
|
"repository": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"types": "./dist/src/index.d.ts",
|
|
20
20
|
"engines": {
|
|
21
|
-
"node": "^22.0.0 || ^24.0.0"
|
|
21
|
+
"node": "^22.0.0 || ^24.0.0 || ^26.0.0"
|
|
22
22
|
},
|
|
23
23
|
"files": [
|
|
24
24
|
"dist/src",
|
|
@@ -46,6 +46,10 @@
|
|
|
46
46
|
"types": "./dist/src/ui-stream/index.d.ts",
|
|
47
47
|
"import": "./dist/src/ui-stream/index.js"
|
|
48
48
|
},
|
|
49
|
+
"./builtin-loop": {
|
|
50
|
+
"types": "./dist/src/builtin-loop/index.d.ts",
|
|
51
|
+
"import": "./dist/src/builtin-loop/index.js"
|
|
52
|
+
},
|
|
49
53
|
"./stepwise": {
|
|
50
54
|
"types": "./dist/src/stepwise/index.d.ts",
|
|
51
55
|
"import": "./dist/src/stepwise/index.js"
|
|
@@ -53,6 +57,10 @@
|
|
|
53
57
|
"./ai-sdk": {
|
|
54
58
|
"types": "./dist/src/ai-sdk/index.d.ts",
|
|
55
59
|
"import": "./dist/src/ai-sdk/index.js"
|
|
60
|
+
},
|
|
61
|
+
"./s3": {
|
|
62
|
+
"types": "./dist/src/s3/index.d.ts",
|
|
63
|
+
"import": "./dist/src/s3/index.js"
|
|
56
64
|
}
|
|
57
65
|
},
|
|
58
66
|
"scripts": {
|
|
@@ -62,13 +70,17 @@
|
|
|
62
70
|
"test:long": "npm run build && node --test --test-concurrency=1 --test-timeout=1800000 'dist/test/long/*.integration.test.js'"
|
|
63
71
|
},
|
|
64
72
|
"peerDependencies": {
|
|
73
|
+
"@aws-sdk/client-s3": "^3.700.0",
|
|
65
74
|
"@modelcontextprotocol/sdk": "^1.32.2",
|
|
66
75
|
"@opentelemetry/api": "^1.3.0",
|
|
67
76
|
"@superdurable/connectors-sdk": "0.9.0",
|
|
68
|
-
"@superdurable/dex": "1.
|
|
77
|
+
"@superdurable/dex": "1.45.0",
|
|
69
78
|
"ai": "^7.0.159"
|
|
70
79
|
},
|
|
71
80
|
"peerDependenciesMeta": {
|
|
81
|
+
"@aws-sdk/client-s3": {
|
|
82
|
+
"optional": true
|
|
83
|
+
},
|
|
72
84
|
"@modelcontextprotocol/sdk": {
|
|
73
85
|
"optional": true
|
|
74
86
|
},
|
|
@@ -83,11 +95,12 @@
|
|
|
83
95
|
}
|
|
84
96
|
},
|
|
85
97
|
"devDependencies": {
|
|
98
|
+
"@aws-sdk/client-s3": "3.1155.0",
|
|
86
99
|
"@modelcontextprotocol/sdk": "1.32.2",
|
|
87
100
|
"@opentelemetry/api": "1.9.1",
|
|
88
101
|
"@opentelemetry/sdk-trace-base": "2.12.0",
|
|
89
102
|
"@superdurable/connectors-sdk": "0.9.0",
|
|
90
|
-
"@superdurable/dex": "1.
|
|
103
|
+
"@superdurable/dex": "1.45.0",
|
|
91
104
|
"@types/node": "22.20.5",
|
|
92
105
|
"ai": "7.0.159",
|
|
93
106
|
"typescript": "5.9.3",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-definition.js","sourceRoot":"","sources":["../../../src/stepwise/agent-definition.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D"}
|