@superdurable/dex-agents 0.1.0 → 0.3.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.
Files changed (168) hide show
  1. package/README.md +1608 -64
  2. package/dist/src/agent-built-in-tools.d.ts +81 -0
  3. package/dist/src/agent-built-in-tools.js +246 -0
  4. package/dist/src/agent-built-in-tools.js.map +1 -0
  5. package/dist/src/agent-context-compaction.d.ts +254 -0
  6. package/dist/src/agent-context-compaction.js +287 -0
  7. package/dist/src/agent-context-compaction.js.map +1 -0
  8. package/dist/src/agent-framework-runner.d.ts +456 -16
  9. package/dist/src/agent-framework-runner.js +4 -3
  10. package/dist/src/agent-framework-runner.js.map +1 -1
  11. package/dist/src/agent-plans.d.ts +48 -0
  12. package/dist/src/agent-plans.js +86 -0
  13. package/dist/src/agent-plans.js.map +1 -0
  14. package/dist/src/agent-session-cancellation-steps.d.ts +28 -0
  15. package/dist/src/agent-session-cancellation-steps.js +154 -0
  16. package/dist/src/agent-session-cancellation-steps.js.map +1 -0
  17. package/dist/src/agent-session-codecs.d.ts +65 -4
  18. package/dist/src/agent-session-codecs.js +343 -8
  19. package/dist/src/agent-session-codecs.js.map +1 -1
  20. package/dist/src/agent-session-failure.d.ts +58 -0
  21. package/dist/src/agent-session-failure.js +126 -0
  22. package/dist/src/agent-session-failure.js.map +1 -0
  23. package/dist/src/agent-session-flow-graph-cli.d.ts +2 -0
  24. package/dist/src/agent-session-flow-graph-cli.js +47 -0
  25. package/dist/src/agent-session-flow-graph-cli.js.map +1 -0
  26. package/dist/src/agent-session-flow-graph.d.ts +38 -0
  27. package/dist/src/agent-session-flow-graph.js +54 -0
  28. package/dist/src/agent-session-flow-graph.js.map +1 -0
  29. package/dist/src/agent-session-flow-graph.json +2187 -0
  30. package/dist/src/agent-session-flow.d.ts +317 -28
  31. package/dist/src/agent-session-flow.js +373 -21
  32. package/dist/src/agent-session-flow.js.map +1 -1
  33. package/dist/src/agent-session-persistence.d.ts +81 -4
  34. package/dist/src/agent-session-persistence.js +33 -2
  35. package/dist/src/agent-session-persistence.js.map +1 -1
  36. package/dist/src/agent-session-settings.d.ts +58 -0
  37. package/dist/src/agent-session-settings.js +81 -0
  38. package/dist/src/agent-session-settings.js.map +1 -0
  39. package/dist/src/agent-session-spend-limit.d.ts +156 -0
  40. package/dist/src/agent-session-spend-limit.js +42 -0
  41. package/dist/src/agent-session-spend-limit.js.map +1 -0
  42. package/dist/src/agent-session-start.d.ts +49 -0
  43. package/dist/src/agent-session-start.js +67 -0
  44. package/dist/src/agent-session-start.js.map +1 -0
  45. package/dist/src/agent-session-step-options.d.ts +78 -0
  46. package/dist/src/agent-session-step-options.js +71 -0
  47. package/dist/src/agent-session-step-options.js.map +1 -0
  48. package/dist/src/agent-session-step-types.d.ts +20 -0
  49. package/dist/src/agent-session-step-types.js +28 -0
  50. package/dist/src/agent-session-step-types.js.map +1 -0
  51. package/dist/src/agent-session-steps.d.ts +103 -8
  52. package/dist/src/agent-session-steps.js +997 -197
  53. package/dist/src/agent-session-steps.js.map +1 -1
  54. package/dist/src/agent-session-tracer.d.ts +61 -0
  55. package/dist/src/agent-session-tracer.js +608 -0
  56. package/dist/src/agent-session-tracer.js.map +1 -0
  57. package/dist/src/agent-session-transitions.d.ts +200 -26
  58. package/dist/src/agent-session-transitions.js +732 -32
  59. package/dist/src/agent-session-transitions.js.map +1 -1
  60. package/dist/src/agent-session-values.d.ts +696 -30
  61. package/dist/src/agent-session-values.js +39 -4
  62. package/dist/src/agent-session-values.js.map +1 -1
  63. package/dist/src/agent-session-wait-steps.d.ts +53 -0
  64. package/dist/src/agent-session-wait-steps.js +389 -0
  65. package/dist/src/agent-session-wait-steps.js.map +1 -0
  66. package/dist/src/agent-tracing-options.d.ts +107 -0
  67. package/dist/src/agent-tracing-options.js +20 -0
  68. package/dist/src/agent-tracing-options.js.map +1 -0
  69. package/dist/src/ai-sdk/ai-sdk-model-client.d.ts +40 -0
  70. package/dist/src/ai-sdk/ai-sdk-model-client.js +235 -0
  71. package/dist/src/ai-sdk/ai-sdk-model-client.js.map +1 -0
  72. package/dist/src/ai-sdk/index.d.ts +1 -0
  73. package/dist/src/ai-sdk/index.js +9 -0
  74. package/dist/src/ai-sdk/index.js.map +1 -0
  75. package/dist/src/index.d.ts +14 -3
  76. package/dist/src/index.js +12 -2
  77. package/dist/src/index.js.map +1 -1
  78. package/dist/src/mcp/index.d.ts +3 -0
  79. package/dist/src/mcp/index.js +10 -0
  80. package/dist/src/mcp/index.js.map +1 -0
  81. package/dist/src/mcp/mcp-resource-and-prompt-tools.d.ts +29 -0
  82. package/dist/src/mcp/mcp-resource-and-prompt-tools.js +185 -0
  83. package/dist/src/mcp/mcp-resource-and-prompt-tools.js.map +1 -0
  84. package/dist/src/mcp/mcp-server-config.d.ts +86 -0
  85. package/dist/src/mcp/mcp-server-config.js +38 -0
  86. package/dist/src/mcp/mcp-server-config.js.map +1 -0
  87. package/dist/src/mcp/mcp-tool-source.d.ts +470 -0
  88. package/dist/src/mcp/mcp-tool-source.js +1204 -0
  89. package/dist/src/mcp/mcp-tool-source.js.map +1 -0
  90. package/dist/src/stepwise/agent-definition.d.ts +166 -0
  91. package/dist/src/stepwise/agent-definition.js +9 -0
  92. package/dist/src/stepwise/agent-definition.js.map +1 -0
  93. package/dist/src/stepwise/function-tool.d.ts +130 -0
  94. package/dist/src/stepwise/function-tool.js +75 -0
  95. package/dist/src/stepwise/function-tool.js.map +1 -0
  96. package/dist/src/stepwise/index.d.ts +8 -0
  97. package/dist/src/stepwise/index.js +13 -0
  98. package/dist/src/stepwise/index.js.map +1 -0
  99. package/dist/src/stepwise/json-schema-validation.d.ts +9 -0
  100. package/dist/src/stepwise/json-schema-validation.js +141 -0
  101. package/dist/src/stepwise/json-schema-validation.js.map +1 -0
  102. package/dist/src/stepwise/model-client.d.ts +194 -0
  103. package/dist/src/stepwise/model-client.js +9 -0
  104. package/dist/src/stepwise/model-client.js.map +1 -0
  105. package/dist/src/stepwise/scripted-model-client.d.ts +99 -0
  106. package/dist/src/stepwise/scripted-model-client.js +156 -0
  107. package/dist/src/stepwise/scripted-model-client.js.map +1 -0
  108. package/dist/src/stepwise/stepwise-agent-runner.d.ts +171 -0
  109. package/dist/src/stepwise/stepwise-agent-runner.js +777 -0
  110. package/dist/src/stepwise/stepwise-agent-runner.js.map +1 -0
  111. package/dist/src/stepwise/stepwise-agent-session-flow.d.ts +35 -0
  112. package/dist/src/stepwise/stepwise-agent-session-flow.js +57 -0
  113. package/dist/src/stepwise/stepwise-agent-session-flow.js.map +1 -0
  114. package/dist/src/stepwise/stepwise-input-items.d.ts +12 -0
  115. package/dist/src/stepwise/stepwise-input-items.js +172 -0
  116. package/dist/src/stepwise/stepwise-input-items.js.map +1 -0
  117. package/dist/src/stepwise/tool-source.d.ts +103 -0
  118. package/dist/src/stepwise/tool-source.js +9 -0
  119. package/dist/src/stepwise/tool-source.js.map +1 -0
  120. package/dist/src/testing/agent-session-test-client.d.ts +65 -8
  121. package/dist/src/testing/agent-session-test-client.js +92 -22
  122. package/dist/src/testing/agent-session-test-client.js.map +1 -1
  123. package/dist/src/testing/context-window.d.ts +194 -0
  124. package/dist/src/testing/context-window.js +360 -0
  125. package/dist/src/testing/context-window.js.map +1 -0
  126. package/dist/src/testing/index.d.ts +2 -0
  127. package/dist/src/testing/index.js +2 -0
  128. package/dist/src/testing/index.js.map +1 -1
  129. package/dist/src/testing/private-dex-engine.d.ts +9 -0
  130. package/dist/src/testing/private-dex-engine.js +9 -1
  131. package/dist/src/testing/private-dex-engine.js.map +1 -1
  132. package/dist/src/testing/scripted-model-client.d.ts +1 -0
  133. package/dist/src/testing/scripted-model-client.js +10 -0
  134. package/dist/src/testing/scripted-model-client.js.map +1 -0
  135. package/dist/src/ui-stream/agent-event-json.d.ts +30 -0
  136. package/dist/src/ui-stream/agent-event-json.js +64 -0
  137. package/dist/src/ui-stream/agent-event-json.js.map +1 -0
  138. package/dist/src/ui-stream/agent-event-sse.d.ts +155 -0
  139. package/dist/src/ui-stream/agent-event-sse.js +167 -0
  140. package/dist/src/ui-stream/agent-event-sse.js.map +1 -0
  141. package/dist/src/ui-stream/agent-event-stream-positions.d.ts +42 -0
  142. package/dist/src/ui-stream/agent-event-stream-positions.js +153 -0
  143. package/dist/src/ui-stream/agent-event-stream-positions.js.map +1 -0
  144. package/dist/src/ui-stream/agent-session-record-reader.d.ts +74 -0
  145. package/dist/src/ui-stream/agent-session-record-reader.js +246 -0
  146. package/dist/src/ui-stream/agent-session-record-reader.js.map +1 -0
  147. package/dist/src/ui-stream/agent-ui-message-stream-responses.d.ts +219 -0
  148. package/dist/src/ui-stream/agent-ui-message-stream-responses.js +441 -0
  149. package/dist/src/ui-stream/agent-ui-message-stream-responses.js.map +1 -0
  150. package/dist/src/ui-stream/agent-ui-message-stream.d.ts +138 -0
  151. package/dist/src/ui-stream/agent-ui-message-stream.js +695 -0
  152. package/dist/src/ui-stream/agent-ui-message-stream.js.map +1 -0
  153. package/dist/src/ui-stream/agent-ui-message-types.d.ts +238 -0
  154. package/dist/src/ui-stream/agent-ui-message-types.js +57 -0
  155. package/dist/src/ui-stream/agent-ui-message-types.js.map +1 -0
  156. package/dist/src/ui-stream/agent-ui-messages.d.ts +68 -0
  157. package/dist/src/ui-stream/agent-ui-messages.js +222 -0
  158. package/dist/src/ui-stream/agent-ui-messages.js.map +1 -0
  159. package/dist/src/ui-stream/agent-ui-stream-cursor.d.ts +64 -0
  160. package/dist/src/ui-stream/agent-ui-stream-cursor.js +186 -0
  161. package/dist/src/ui-stream/agent-ui-stream-cursor.js.map +1 -0
  162. package/dist/src/ui-stream/index.d.ts +14 -0
  163. package/dist/src/ui-stream/index.js +22 -0
  164. package/dist/src/ui-stream/index.js.map +1 -0
  165. package/dist/src/ui-stream/server-sent-event-responses.d.ts +6 -0
  166. package/dist/src/ui-stream/server-sent-event-responses.js +34 -0
  167. package/dist/src/ui-stream/server-sent-event-responses.js.map +1 -0
  168. package/package.json +44 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepwise-agent-runner.js","sourceRoot":"","sources":["../../../src/stepwise/stepwise-agent-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { type AgentSessionFlow } from "../agent-session-flow.js";
2
+ import type { AgentDefinition } from "./agent-definition.js";
3
+ import { StepwiseAgentRunner } from "./stepwise-agent-runner.js";
4
+ /**
5
+ * Creates the agent session Flow for an agent defined in Dex terms, run by the built-in Stepwise loop.
6
+ *
7
+ * It builds the session Flow with a {@link StepwiseAgentRunner} and derives the session options from
8
+ * the definition, so tool policies, built-in tools, plan mode, the deadlines, and compaction are declared once. The Flow is the
9
+ * same session Flow every adapter uses, with the same Steps, RPCs, and events. Construct it once at
10
+ * application startup and register the same object in the Worker and Client Registry.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const supportAgentFlow = createStepwiseAgentSessionFlow(
15
+ * {
16
+ * name: "support",
17
+ * instructions: "You help customers with their orders.",
18
+ * model: createAiSdkModelClient(openai("gpt-5-mini")),
19
+ * tools: [lookupOrder, refundOrder],
20
+ * builtInTools: ["ask_user", "durable_wait"],
21
+ * interruptDeadlineMs: 24 * 60 * 60 * 1000,
22
+ * },
23
+ * "SupportAgent",
24
+ * );
25
+ * const registry = new Registry([supportAgentFlow]);
26
+ * await client.startFlow(supportAgentFlow, sessionId, { initialMessage: "Where is order 42?" });
27
+ * ```
28
+ * @param definition - The agent definition.
29
+ * @param flowType - Flow type, unique within the Registry. Keep it stable: running sessions resume by it.
30
+ * @returns A new Flow; its `runner` is the {@link StepwiseAgentRunner}.
31
+ * @throws {TypeError} When the definition is invalid; see {@link StepwiseAgentRunner} and
32
+ * `createAgentSessionFlow`.
33
+ * @throws {RangeError} When a limit or deadline in the definition is out of range.
34
+ */
35
+ export declare function createStepwiseAgentSessionFlow(definition: AgentDefinition, flowType: string): AgentSessionFlow<StepwiseAgentRunner>;
@@ -0,0 +1,57 @@
1
+ // Copyright (c) 2026 Super Durable, Inc.
2
+ //
3
+ // Licensed under the Sustainable Use License 1.0.
4
+ // You may not use this file except in compliance with the License.
5
+ // See the LICENSE file in the repository root.
6
+ //
7
+ // SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
8
+ import { createAgentSessionFlow } from "../agent-session-flow.js";
9
+ import { StepwiseAgentRunner } from "./stepwise-agent-runner.js";
10
+ /**
11
+ * Creates the agent session Flow for an agent defined in Dex terms, run by the built-in Stepwise loop.
12
+ *
13
+ * It builds the session Flow with a {@link StepwiseAgentRunner} and derives the session options from
14
+ * the definition, so tool policies, built-in tools, plan mode, the deadlines, and compaction are declared once. The Flow is the
15
+ * same session Flow every adapter uses, with the same Steps, RPCs, and events. Construct it once at
16
+ * application startup and register the same object in the Worker and Client Registry.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const supportAgentFlow = createStepwiseAgentSessionFlow(
21
+ * {
22
+ * name: "support",
23
+ * instructions: "You help customers with their orders.",
24
+ * model: createAiSdkModelClient(openai("gpt-5-mini")),
25
+ * tools: [lookupOrder, refundOrder],
26
+ * builtInTools: ["ask_user", "durable_wait"],
27
+ * interruptDeadlineMs: 24 * 60 * 60 * 1000,
28
+ * },
29
+ * "SupportAgent",
30
+ * );
31
+ * const registry = new Registry([supportAgentFlow]);
32
+ * await client.startFlow(supportAgentFlow, sessionId, { initialMessage: "Where is order 42?" });
33
+ * ```
34
+ * @param definition - The agent definition.
35
+ * @param flowType - Flow type, unique within the Registry. Keep it stable: running sessions resume by it.
36
+ * @returns A new Flow; its `runner` is the {@link StepwiseAgentRunner}.
37
+ * @throws {TypeError} When the definition is invalid; see {@link StepwiseAgentRunner} and
38
+ * `createAgentSessionFlow`.
39
+ * @throws {RangeError} When a limit or deadline in the definition is out of range.
40
+ */
41
+ export function createStepwiseAgentSessionFlow(definition, flowType) {
42
+ const runner = new StepwiseAgentRunner(definition);
43
+ const options = {
44
+ ...(definition.toolPolicies === undefined ? {} : { toolPolicies: definition.toolPolicies }),
45
+ ...(definition.defaultToolEffect === undefined ? {} : { defaultToolEffect: definition.defaultToolEffect }),
46
+ ...(definition.builtInTools === undefined ? {} : { builtInTools: definition.builtInTools }),
47
+ ...(definition.planModeEnabled === undefined ? {} : { planModeEnabled: definition.planModeEnabled }),
48
+ ...(definition.interruptDeadlineMs === undefined ? {} : { interruptDeadlineMs: definition.interruptDeadlineMs }),
49
+ ...(definition.eventStreamCapacityBytes === undefined
50
+ ? {}
51
+ : { eventStreamCapacityBytes: definition.eventStreamCapacityBytes }),
52
+ ...(definition.compaction === undefined ? {} : { compaction: definition.compaction }),
53
+ ...(definition.spendLimit === undefined ? {} : { spendLimit: definition.spendLimit }),
54
+ };
55
+ return createAgentSessionFlow(runner, flowType, options);
56
+ }
57
+ //# sourceMappingURL=stepwise-agent-session-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepwise-agent-session-flow.js","sourceRoot":"","sources":["../../../src/stepwise/stepwise-agent-session-flow.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D,OAAO,EAAE,sBAAsB,EAAmD,MAAM,0BAA0B,CAAC;AAEnH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAA2B,EAC3B,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAwB;QACnC,GAAG,CAAC,UAAU,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC;QAC3F,GAAG,CAAC,UAAU,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAC1G,GAAG,CAAC,UAAU,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC;QAC3F,GAAG,CAAC,UAAU,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,eAAe,EAAE,CAAC;QACpG,GAAG,CAAC,UAAU,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,UAAU,CAAC,mBAAmB,EAAE,CAAC;QAChH,GAAG,CAAC,UAAU,CAAC,wBAAwB,KAAK,SAAS;YACnD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,wBAAwB,EAAE,UAAU,CAAC,wBAAwB,EAAE,CAAC;QACtE,GAAG,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;QACrF,GAAG,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;KACtF,CAAC;IACF,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type AgentMessage, type FrameworkMessage } from "../agent-session-values.js";
2
+ import type { ModelInputItem } from "./model-client.js";
3
+ /** Returns the session message that stores one item; `frameworkItem` is the item's compact snake_case JSON. */
4
+ export declare function toStepwiseFrameworkMessage(item: ModelInputItem): FrameworkMessage;
5
+ /** Reads the Stepwise item stored in one session message. */
6
+ export declare function readStoredModelInputItem(message: AgentMessage): ModelInputItem;
7
+ /**
8
+ * Returns the items with exactly one result after every tool call. A call without a result, such as one
9
+ * whose turn failed before it was stored, gets the outcome-unknown text before the next user text; a
10
+ * result without its call is dropped. Providers reject either kind of orphan.
11
+ */
12
+ export declare function pairToolCallsWithResults(items: readonly ModelInputItem[]): ModelInputItem[];
@@ -0,0 +1,172 @@
1
+ // Copyright (c) 2026 Super Durable, Inc.
2
+ //
3
+ // Licensed under the Sustainable Use License 1.0.
4
+ // You may not use this file except in compliance with the License.
5
+ // See the LICENSE file in the repository root.
6
+ //
7
+ // SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
8
+ import { outcomeUnknownToolResult } from "../agent-session-values.js";
9
+ /** Returns the session message that stores one item; `frameworkItem` is the item's compact snake_case JSON. */
10
+ export function toStepwiseFrameworkMessage(item) {
11
+ switch (item.type) {
12
+ case "user_text":
13
+ return {
14
+ ...emptyProjection,
15
+ role: "user",
16
+ text: item.text,
17
+ frameworkItem: JSON.stringify({ type: "user_text", text: item.text }),
18
+ };
19
+ case "tool_result":
20
+ return {
21
+ ...emptyProjection,
22
+ role: "tool",
23
+ toolCallId: item.toolCallId,
24
+ toolName: item.toolName,
25
+ toolOutput: item.output,
26
+ frameworkItem: JSON.stringify({
27
+ type: "tool_result",
28
+ tool_call_id: item.toolCallId,
29
+ tool_name: item.toolName,
30
+ output: item.output,
31
+ }),
32
+ };
33
+ case "model_output": {
34
+ const singleToolCall = item.toolCalls.length === 1 ? item.toolCalls[0] : undefined;
35
+ return {
36
+ ...emptyProjection,
37
+ role: "assistant",
38
+ text: item.text,
39
+ toolCallId: singleToolCall?.toolCallId ?? null,
40
+ toolName: singleToolCall?.toolName ?? null,
41
+ toolArguments: singleToolCall?.arguments ?? null,
42
+ frameworkItem: JSON.stringify({
43
+ type: "model_output",
44
+ provider: item.provider,
45
+ api: item.api,
46
+ item: item.item,
47
+ text: item.text,
48
+ tool_calls: item.toolCalls.map((toolCall) => ({
49
+ tool_call_id: toolCall.toolCallId,
50
+ tool_name: toolCall.toolName,
51
+ arguments: toolCall.arguments,
52
+ })),
53
+ }),
54
+ };
55
+ }
56
+ }
57
+ }
58
+ /** Reads the Stepwise item stored in one session message. */
59
+ export function readStoredModelInputItem(message) {
60
+ try {
61
+ return decodeModelInputItem(JSON.parse(message.frameworkItem));
62
+ }
63
+ catch (error) {
64
+ throw new TypeError(`message ${message.sequence} is not a Stepwise item`, { cause: error });
65
+ }
66
+ }
67
+ /**
68
+ * Returns the items with exactly one result after every tool call. A call without a result, such as one
69
+ * whose turn failed before it was stored, gets the outcome-unknown text before the next user text; a
70
+ * result without its call is dropped. Providers reject either kind of orphan.
71
+ */
72
+ export function pairToolCallsWithResults(items) {
73
+ const paired = [];
74
+ const openToolCalls = new Map();
75
+ const closeOpenToolCalls = () => {
76
+ for (const toolCall of openToolCalls.values()) {
77
+ paired.push(createOutcomeUnknownResult(toolCall));
78
+ }
79
+ openToolCalls.clear();
80
+ };
81
+ for (const item of items) {
82
+ switch (item.type) {
83
+ case "model_output":
84
+ paired.push(item);
85
+ for (const toolCall of item.toolCalls) {
86
+ openToolCalls.set(toolCall.toolCallId, toolCall);
87
+ }
88
+ break;
89
+ case "tool_result":
90
+ if (openToolCalls.delete(item.toolCallId)) {
91
+ paired.push(item);
92
+ }
93
+ break;
94
+ case "user_text":
95
+ closeOpenToolCalls();
96
+ paired.push(item);
97
+ break;
98
+ }
99
+ }
100
+ closeOpenToolCalls();
101
+ return paired;
102
+ }
103
+ function createOutcomeUnknownResult(toolCall) {
104
+ return {
105
+ type: "tool_result",
106
+ toolCallId: toolCall.toolCallId,
107
+ toolName: toolCall.toolName,
108
+ output: outcomeUnknownToolResult,
109
+ };
110
+ }
111
+ function decodeModelInputItem(value) {
112
+ const record = requireRecord(value, "Stepwise item");
113
+ switch (record["type"]) {
114
+ case "user_text":
115
+ return { type: "user_text", text: requireString(record, "text") };
116
+ case "tool_result":
117
+ return {
118
+ type: "tool_result",
119
+ toolCallId: requireString(record, "tool_call_id"),
120
+ toolName: requireString(record, "tool_name"),
121
+ output: requireString(record, "output"),
122
+ };
123
+ case "model_output": {
124
+ const text = record["text"] ?? null;
125
+ if (text !== null && typeof text !== "string") {
126
+ throw new TypeError("model_output.text must be a string or null");
127
+ }
128
+ const toolCalls = record["tool_calls"] ?? [];
129
+ if (!Array.isArray(toolCalls)) {
130
+ throw new TypeError("model_output.tool_calls must be an array");
131
+ }
132
+ return {
133
+ type: "model_output",
134
+ provider: requireString(record, "provider"),
135
+ api: requireString(record, "api"),
136
+ item: requireString(record, "item"),
137
+ text,
138
+ toolCalls: toolCalls.map((toolCall) => {
139
+ const toolCallRecord = requireRecord(toolCall, "model_output.tool_calls item");
140
+ return {
141
+ toolCallId: requireString(toolCallRecord, "tool_call_id"),
142
+ toolName: requireString(toolCallRecord, "tool_name"),
143
+ arguments: requireString(toolCallRecord, "arguments"),
144
+ };
145
+ }),
146
+ };
147
+ }
148
+ default:
149
+ throw new TypeError(`unknown Stepwise item type ${JSON.stringify(record["type"])}`);
150
+ }
151
+ }
152
+ const emptyProjection = {
153
+ text: null,
154
+ toolCallId: null,
155
+ toolName: null,
156
+ toolArguments: null,
157
+ toolOutput: null,
158
+ };
159
+ function requireRecord(value, typeName) {
160
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
161
+ throw new TypeError(`${typeName} must be a JSON object`);
162
+ }
163
+ return value;
164
+ }
165
+ function requireString(record, field) {
166
+ const value = record[field];
167
+ if (typeof value !== "string") {
168
+ throw new TypeError(`${field} must be a string`);
169
+ }
170
+ return value;
171
+ }
172
+ //# sourceMappingURL=stepwise-input-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepwise-input-items.js","sourceRoot":"","sources":["../../../src/stepwise/stepwise-input-items.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import type { AgentTurnContext, DeferredToolCall, DeferredToolExecution, DeferredToolOutcome, ToolTaskCancellation, ToolTaskPoll, ToolTaskPollOutcome } from "../agent-framework-runner.js";
2
+ /**
3
+ * One tool that a {@link ToolSource} lists, as the model sees it. `McpTool` satisfies it; the runner reads only
4
+ * these three fields.
5
+ */
6
+ export interface SourceToolDefinition {
7
+ /**
8
+ * Tool name the model calls. It must not repeat a function tool, an enabled built-in tool, or another
9
+ * source's tool.
10
+ */
11
+ readonly name: string;
12
+ /** Tool description for the model. */
13
+ readonly description: string;
14
+ /** JSON Schema of the tool's arguments object. */
15
+ readonly inputSchema: Readonly<Record<string, unknown>>;
16
+ }
17
+ /**
18
+ * Tools that a Stepwise agent lists at run time, such as an MCP server's tools, run one tool Step per call.
19
+ *
20
+ * Put a source in `AgentDefinition.toolSources`. `McpToolSource` from `@superdurable/dex-agents/mcp`
21
+ * implements it. In every `RunModel` of a chat or executing turn, the runner awaits {@link listTools} and
22
+ * offers the listed tools after the function tools and before the built-in tools, waiting at most
23
+ * `AgentDefinition.toolSourceListingTimeoutMs`. A source whose listing throws or takes longer offers no tools in
24
+ * that model call, so a down server never fails a turn; cache the listing per Worker and keep it cheap, as
25
+ * `McpToolSource` does. A planning turn and a turn past its model call limit list nothing.
26
+ *
27
+ * When the model calls a listed tool, the runner returns the source's {@link deferredToolCall}, so the source
28
+ * picks the policy, the effect, and the `toolSourceReference`. The runner passes the tool definition it offered as
29
+ * `listedTool`, so a refresh during the model call cannot change it. The runner stores the source's
30
+ * {@link sourceName} with that reference, so the tool Step and `PollToolTask` reach the same source, with the
31
+ * source's own reference, on any Worker, without a listing, and whatever the order of `toolSources`. Keep
32
+ * `sourceName` stable across deploys: a stored call whose source name no Worker has throws a `RangeError`, so its
33
+ * effect decides its outcome. The call then runs in its own tool Step through {@link executeDeferredToolCall},
34
+ * after an approval when its policy needs one, and a tool task that it starts is polled through
35
+ * {@link pollToolTask}. A name that no listing offered fails as an unknown tool without an approval; it never
36
+ * reaches a source.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const tools = new McpToolSource([{ name: "files", transport: "stdio", command: "mcp-files" }]);
41
+ * const flow = createStepwiseAgentSessionFlow(
42
+ * { name: "files", instructions: "You manage reports.", model, toolSources: [tools] },
43
+ * "FilesAgent",
44
+ * );
45
+ * ```
46
+ */
47
+ export interface ToolSource {
48
+ /** The source's stable, non-blank name, unique within one agent definition. Stored calls are routed by it. */
49
+ readonly sourceName: string;
50
+ /**
51
+ * Returns the tools to offer now, in the order the model sees them.
52
+ * @returns The tools.
53
+ * @throws Any error, which fails the `RunModel` attempt so that it retries.
54
+ */
55
+ listTools(): Promise<readonly SourceToolDefinition[]>;
56
+ /**
57
+ * Builds the deferred call for one model call of a listed tool. Resolve the policy with
58
+ * `turn.resolveToolPolicy`, so session policies win.
59
+ * @param turn - The `RunModel` context.
60
+ * @param call - Model tool call ID, the listed tool name the model called, the arguments as JSON text, and
61
+ * `listedTool`, the definition this source listed for this model call. Build from it, not from a cache a refresh
62
+ * may change.
63
+ * @returns The deferred call.
64
+ */
65
+ deferredToolCall(turn: AgentTurnContext, call: {
66
+ readonly toolCallId: string;
67
+ readonly toolName: string;
68
+ readonly arguments: string;
69
+ readonly listedTool: SourceToolDefinition;
70
+ }): DeferredToolCall;
71
+ /**
72
+ * Runs one call of a listed tool in its tool Step.
73
+ * @param call - The approved call.
74
+ * @returns The tool's outcome.
75
+ * @throws {ToolExecutionError} For a failure the model sees.
76
+ */
77
+ executeDeferredToolCall(call: DeferredToolExecution): Promise<DeferredToolOutcome>;
78
+ /**
79
+ * Polls a tool task that {@link executeDeferredToolCall} started, once.
80
+ * @param poll - The call's record.
81
+ * @returns The outcome of this poll.
82
+ */
83
+ pollToolTask(poll: ToolTaskPoll): Promise<ToolTaskPollOutcome>;
84
+ /**
85
+ * Optional: names this source always lists, whatever its servers offer, so the runner refuses a collision when
86
+ * it is constructed instead of on every model call. `McpToolSource` returns its resource and prompt tool names.
87
+ * @returns The names.
88
+ */
89
+ declaredToolNames?(): ReadonlySet<string>;
90
+ /**
91
+ * Optional: the last listing without I/O, so `estimateInputTokens` counts the source's tools before the runner
92
+ * has listed them on this Worker.
93
+ * @returns The cached tools, or none.
94
+ */
95
+ cachedTools?(): readonly SourceToolDefinition[];
96
+ /**
97
+ * Optional: cancels a task that `cancel_turn` abandoned, as {@link AgentFrameworkRunner.cancelToolTask}
98
+ * describes. A source without it leaves the task running. `McpToolSource` sends `tasks/cancel`.
99
+ * @param cancellation - The abandoned call's record.
100
+ * @returns A Promise that resolves once the remote system took the cancellation.
101
+ */
102
+ cancelToolTask?(cancellation: ToolTaskCancellation): Promise<void>;
103
+ }
@@ -0,0 +1,9 @@
1
+ // Copyright (c) 2026 Super Durable, Inc.
2
+ //
3
+ // Licensed under the Sustainable Use License 1.0.
4
+ // You may not use this file except in compliance with the License.
5
+ // See the LICENSE file in the repository root.
6
+ //
7
+ // SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
8
+ export {};
9
+ //# sourceMappingURL=tool-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-source.js","sourceRoot":"","sources":["../../../src/stepwise/tool-source.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D"}
@@ -1,6 +1,7 @@
1
1
  import { type Client, type StartFlowOptions } from "@superdurable/dex";
2
+ import type { AgentFrameworkRunner, DeferredToolOutcome } from "../agent-framework-runner.js";
2
3
  import type { AgentSessionFlow } from "../agent-session-flow.js";
3
- import type { AgentEvent, AgentInterrupt, AgentMessagesPage, AgentSnapshot, AgentState, AgentToolCall } from "../agent-session-values.js";
4
+ import type { AgentEvent, AgentInterrupt, AgentMessagesPage, AgentSnapshot, AgentState, AgentToolCallRecord, SessionSettings } from "../agent-session-values.js";
4
5
  /** Options of the `waitFor*` methods of {@link AgentSessionTestClient}. */
5
6
  export interface AgentSessionWaitOptions {
6
7
  /** Total milliseconds to wait. Defaults to 60,000. */
@@ -26,7 +27,7 @@ export declare class AgentSessionTestClient {
26
27
  /** Client used for every call. */
27
28
  readonly client: Client;
28
29
  /** Flow whose sessions this helper drives. */
29
- readonly flow: AgentSessionFlow;
30
+ readonly flow: AgentSessionFlow<AgentFrameworkRunner<DeferredToolOutcome>>;
30
31
  /**
31
32
  * Creates the helper.
32
33
  * @param client - Client whose Registry contains `flow`.
@@ -36,22 +37,70 @@ export declare class AgentSessionTestClient {
36
37
  /** Client used for every call. */
37
38
  client: Client,
38
39
  /** Flow whose sessions this helper drives. */
39
- flow: AgentSessionFlow);
40
+ flow: AgentSessionFlow<AgentFrameworkRunner<DeferredToolOutcome>>);
40
41
  /**
41
42
  * Starts a session.
42
43
  * @param sessionId - Flow ID of the new session.
43
44
  * @param initialMessage - First user message, or `null` to start idle. Defaults to `null`.
44
45
  * @param startFlowOptions - Start options, such as a `configOverride` with `stepDurability`.
46
+ * @param sessionSettings - The session's settings, or `null` to start without settings. Defaults to `null`.
45
47
  * @returns A Promise that resolves after Dex accepted the start.
48
+ * @throws {TypeError | RangeError} From `validateSessionSettings`, before anything is sent.
46
49
  */
47
- startSession(sessionId: string, initialMessage?: string | null, startFlowOptions?: StartFlowOptions): Promise<void>;
50
+ startSession(sessionId: string, initialMessage?: string | null, startFlowOptions?: StartFlowOptions, sessionSettings?: SessionSettings | null): Promise<void>;
51
+ /**
52
+ * Calls `update_session_settings`.
53
+ * @param sessionId - Session Flow ID.
54
+ * @param sessionSettings - The complete new settings; `{}` clears them.
55
+ * @returns The RPC result: `false` before the session initialized or for settings over the limit.
56
+ */
57
+ updateSessionSettings(sessionId: string, sessionSettings: SessionSettings): Promise<boolean>;
48
58
  /**
49
59
  * Calls `send_user_message`.
50
60
  * @param sessionId - Session Flow ID.
51
61
  * @param text - Message text.
52
- * @returns The RPC result: `false` for blank text.
62
+ * @param planMode - Whether the message starts a planning turn. Defaults to `false`.
63
+ * @returns The RPC result: `false` for blank text, or for a `planMode` message when plan mode is off.
64
+ */
65
+ sendUserMessage(sessionId: string, text: string, planMode?: boolean): Promise<boolean>;
66
+ /**
67
+ * Calls `execute_plan`, retrying an `RpcLockConflictError` for up to 30 seconds.
68
+ * @param sessionId - Session Flow ID.
69
+ * @param revision - Plan revision to execute.
70
+ * @returns The RPC result: `false` when the revision is stale, already pending, or the session is busy.
53
71
  */
54
- sendUserMessage(sessionId: string, text: string): Promise<boolean>;
72
+ executePlan(sessionId: string, revision: number): Promise<boolean>;
73
+ /**
74
+ * Calls `steer_user_message` with new text; while no turn is active, the RPC queues it.
75
+ * @param sessionId - Session Flow ID.
76
+ * @param text - Text of the steered message.
77
+ * @returns The RPC result: `false` for blank text or a turn that does not accept steering.
78
+ */
79
+ steerUserMessage(sessionId: string, text: string): Promise<boolean>;
80
+ /**
81
+ * Calls `steer_user_message` with a queued message's ID, which moves that message.
82
+ * @param sessionId - Session Flow ID.
83
+ * @param messageId - {@link PendingUserMessage.messageId} of a queued message.
84
+ * @returns The RPC result: `false` when the message is no longer queued.
85
+ * @throws {ChannelMessageNotFoundError} When the session consumed the message while the RPC ran.
86
+ */
87
+ steerQueuedMessage(sessionId: string, messageId: string): Promise<boolean>;
88
+ /**
89
+ * Calls `delete_queued_message`.
90
+ * @param sessionId - Session Flow ID.
91
+ * @param messageId - {@link PendingUserMessage.messageId} of a queued message.
92
+ * @returns The RPC result: `false` when the message is no longer queued.
93
+ * @throws {ChannelMessageNotFoundError} When the session consumed the message while the RPC ran.
94
+ */
95
+ deleteQueuedMessage(sessionId: string, messageId: string): Promise<boolean>;
96
+ /**
97
+ * Calls `cancel_turn`, retrying an `RpcLockConflictError` for up to 30 seconds.
98
+ * @param sessionId - Session Flow ID.
99
+ * @param turnId - The turn to stop, or `null` for the active turn. Defaults to `null`.
100
+ * @returns The RPC result: `false` when no turn is active, `turnId` names another turn, or the turn does not
101
+ * accept cancellation.
102
+ */
103
+ cancelTurn(sessionId: string, turnId?: string | null): Promise<boolean>;
55
104
  /**
56
105
  * Calls `resolve_interrupt`, retrying an `RpcLockConflictError` for up to 30 seconds.
57
106
  * @param sessionId - Session Flow ID.
@@ -61,6 +110,14 @@ export declare class AgentSessionTestClient {
61
110
  * @returns The RPC result: `false` when the interrupt was not pending.
62
111
  */
63
112
  resolveInterrupt(sessionId: string, interruptId: string, approved: boolean, rejectionMessage?: string | null): Promise<boolean>;
113
+ /**
114
+ * Calls `answer_question`, retrying an `RpcLockConflictError` for up to 30 seconds.
115
+ * @param sessionId - Session Flow ID.
116
+ * @param interruptId - Pending `question` interrupt to answer.
117
+ * @param answer - The answer text.
118
+ * @returns The RPC result: `false` when the question was not pending or the answer was refused.
119
+ */
120
+ answerQuestion(sessionId: string, interruptId: string, answer: string): Promise<boolean>;
64
121
  /**
65
122
  * Calls `get_agent_snapshot`.
66
123
  * @param sessionId - Session Flow ID.
@@ -87,7 +144,7 @@ export declare class AgentSessionTestClient {
87
144
  * @param toolCallId - Tool call ID.
88
145
  * @returns The record, or `undefined` when it does not exist or its turn completed.
89
146
  */
90
- readToolCall(sessionId: string, toolCallId: string): Promise<AgentToolCall | undefined>;
147
+ readToolCall(sessionId: string, toolCallId: string): Promise<AgentToolCallRecord | undefined>;
91
148
  /**
92
149
  * Reads the committed `PendingInterrupts` without a Worker.
93
150
  * @param sessionId - Session Flow ID.
@@ -138,7 +195,7 @@ export declare class AgentSessionTestClient {
138
195
  * @param options - Timeout.
139
196
  * @returns The first matching record.
140
197
  */
141
- waitForToolCall(sessionId: string, toolCallId: string, predicate: (toolCall: AgentToolCall) => boolean, options?: AgentSessionWaitOptions): Promise<AgentToolCall>;
198
+ waitForToolCall(sessionId: string, toolCallId: string, predicate: (toolCall: AgentToolCallRecord) => boolean, options?: AgentSessionWaitOptions): Promise<AgentToolCallRecord>;
142
199
  /**
143
200
  * Reads every retained `AgentEvents` message, oldest first.
144
201
  * @param sessionId - Session Flow ID.