@superdurable/dex-agents 0.1.0 → 0.2.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 (149) hide show
  1. package/README.md +1568 -62
  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 +108 -0
  6. package/dist/src/agent-context-compaction.js +39 -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 +342 -8
  19. package/dist/src/agent-session-codecs.js.map +1 -1
  20. package/dist/src/agent-session-flow.d.ts +295 -27
  21. package/dist/src/agent-session-flow.js +368 -21
  22. package/dist/src/agent-session-flow.js.map +1 -1
  23. package/dist/src/agent-session-persistence.d.ts +81 -4
  24. package/dist/src/agent-session-persistence.js +33 -2
  25. package/dist/src/agent-session-persistence.js.map +1 -1
  26. package/dist/src/agent-session-settings.d.ts +58 -0
  27. package/dist/src/agent-session-settings.js +81 -0
  28. package/dist/src/agent-session-settings.js.map +1 -0
  29. package/dist/src/agent-session-step-options.d.ts +27 -0
  30. package/dist/src/agent-session-step-options.js +39 -0
  31. package/dist/src/agent-session-step-options.js.map +1 -0
  32. package/dist/src/agent-session-step-types.d.ts +20 -0
  33. package/dist/src/agent-session-step-types.js +28 -0
  34. package/dist/src/agent-session-step-types.js.map +1 -0
  35. package/dist/src/agent-session-steps.d.ts +101 -8
  36. package/dist/src/agent-session-steps.js +936 -197
  37. package/dist/src/agent-session-steps.js.map +1 -1
  38. package/dist/src/agent-session-tracer.d.ts +61 -0
  39. package/dist/src/agent-session-tracer.js +608 -0
  40. package/dist/src/agent-session-tracer.js.map +1 -0
  41. package/dist/src/agent-session-transitions.d.ts +189 -26
  42. package/dist/src/agent-session-transitions.js +680 -32
  43. package/dist/src/agent-session-transitions.js.map +1 -1
  44. package/dist/src/agent-session-values.d.ts +690 -29
  45. package/dist/src/agent-session-values.js +39 -4
  46. package/dist/src/agent-session-values.js.map +1 -1
  47. package/dist/src/agent-session-wait-steps.d.ts +53 -0
  48. package/dist/src/agent-session-wait-steps.js +389 -0
  49. package/dist/src/agent-session-wait-steps.js.map +1 -0
  50. package/dist/src/agent-tracing-options.d.ts +107 -0
  51. package/dist/src/agent-tracing-options.js +20 -0
  52. package/dist/src/agent-tracing-options.js.map +1 -0
  53. package/dist/src/ai-sdk/ai-sdk-model-client.d.ts +40 -0
  54. package/dist/src/ai-sdk/ai-sdk-model-client.js +235 -0
  55. package/dist/src/ai-sdk/ai-sdk-model-client.js.map +1 -0
  56. package/dist/src/ai-sdk/index.d.ts +1 -0
  57. package/dist/src/ai-sdk/index.js +9 -0
  58. package/dist/src/ai-sdk/index.js.map +1 -0
  59. package/dist/src/index.d.ts +9 -3
  60. package/dist/src/index.js +7 -2
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/mcp/index.d.ts +3 -0
  63. package/dist/src/mcp/index.js +10 -0
  64. package/dist/src/mcp/index.js.map +1 -0
  65. package/dist/src/mcp/mcp-resource-and-prompt-tools.d.ts +29 -0
  66. package/dist/src/mcp/mcp-resource-and-prompt-tools.js +185 -0
  67. package/dist/src/mcp/mcp-resource-and-prompt-tools.js.map +1 -0
  68. package/dist/src/mcp/mcp-server-config.d.ts +86 -0
  69. package/dist/src/mcp/mcp-server-config.js +38 -0
  70. package/dist/src/mcp/mcp-server-config.js.map +1 -0
  71. package/dist/src/mcp/mcp-tool-source.d.ts +470 -0
  72. package/dist/src/mcp/mcp-tool-source.js +1204 -0
  73. package/dist/src/mcp/mcp-tool-source.js.map +1 -0
  74. package/dist/src/stepwise/agent-definition.d.ts +158 -0
  75. package/dist/src/stepwise/agent-definition.js +9 -0
  76. package/dist/src/stepwise/agent-definition.js.map +1 -0
  77. package/dist/src/stepwise/function-tool.d.ts +130 -0
  78. package/dist/src/stepwise/function-tool.js +75 -0
  79. package/dist/src/stepwise/function-tool.js.map +1 -0
  80. package/dist/src/stepwise/index.d.ts +7 -0
  81. package/dist/src/stepwise/index.js +12 -0
  82. package/dist/src/stepwise/index.js.map +1 -0
  83. package/dist/src/stepwise/json-schema-validation.d.ts +9 -0
  84. package/dist/src/stepwise/json-schema-validation.js +141 -0
  85. package/dist/src/stepwise/json-schema-validation.js.map +1 -0
  86. package/dist/src/stepwise/model-client.d.ts +194 -0
  87. package/dist/src/stepwise/model-client.js +9 -0
  88. package/dist/src/stepwise/model-client.js.map +1 -0
  89. package/dist/src/stepwise/scripted-model-client.d.ts +99 -0
  90. package/dist/src/stepwise/scripted-model-client.js +156 -0
  91. package/dist/src/stepwise/scripted-model-client.js.map +1 -0
  92. package/dist/src/stepwise/stepwise-agent-runner.d.ts +189 -0
  93. package/dist/src/stepwise/stepwise-agent-runner.js +804 -0
  94. package/dist/src/stepwise/stepwise-agent-runner.js.map +1 -0
  95. package/dist/src/stepwise/stepwise-agent-session-flow.d.ts +35 -0
  96. package/dist/src/stepwise/stepwise-agent-session-flow.js +56 -0
  97. package/dist/src/stepwise/stepwise-agent-session-flow.js.map +1 -0
  98. package/dist/src/stepwise/stepwise-input-items.d.ts +12 -0
  99. package/dist/src/stepwise/stepwise-input-items.js +172 -0
  100. package/dist/src/stepwise/stepwise-input-items.js.map +1 -0
  101. package/dist/src/stepwise/tool-source.d.ts +103 -0
  102. package/dist/src/stepwise/tool-source.js +9 -0
  103. package/dist/src/stepwise/tool-source.js.map +1 -0
  104. package/dist/src/testing/agent-session-test-client.d.ts +65 -8
  105. package/dist/src/testing/agent-session-test-client.js +95 -22
  106. package/dist/src/testing/agent-session-test-client.js.map +1 -1
  107. package/dist/src/testing/index.d.ts +1 -0
  108. package/dist/src/testing/index.js +1 -0
  109. package/dist/src/testing/index.js.map +1 -1
  110. package/dist/src/testing/private-dex-engine.d.ts +9 -0
  111. package/dist/src/testing/private-dex-engine.js +9 -1
  112. package/dist/src/testing/private-dex-engine.js.map +1 -1
  113. package/dist/src/testing/scripted-model-client.d.ts +1 -0
  114. package/dist/src/testing/scripted-model-client.js +10 -0
  115. package/dist/src/testing/scripted-model-client.js.map +1 -0
  116. package/dist/src/ui-stream/agent-event-json.d.ts +30 -0
  117. package/dist/src/ui-stream/agent-event-json.js +64 -0
  118. package/dist/src/ui-stream/agent-event-json.js.map +1 -0
  119. package/dist/src/ui-stream/agent-event-sse.d.ts +154 -0
  120. package/dist/src/ui-stream/agent-event-sse.js +159 -0
  121. package/dist/src/ui-stream/agent-event-sse.js.map +1 -0
  122. package/dist/src/ui-stream/agent-event-stream-positions.d.ts +42 -0
  123. package/dist/src/ui-stream/agent-event-stream-positions.js +153 -0
  124. package/dist/src/ui-stream/agent-event-stream-positions.js.map +1 -0
  125. package/dist/src/ui-stream/agent-session-record-reader.d.ts +72 -0
  126. package/dist/src/ui-stream/agent-session-record-reader.js +241 -0
  127. package/dist/src/ui-stream/agent-session-record-reader.js.map +1 -0
  128. package/dist/src/ui-stream/agent-ui-message-stream-responses.d.ts +219 -0
  129. package/dist/src/ui-stream/agent-ui-message-stream-responses.js +440 -0
  130. package/dist/src/ui-stream/agent-ui-message-stream-responses.js.map +1 -0
  131. package/dist/src/ui-stream/agent-ui-message-stream.d.ts +138 -0
  132. package/dist/src/ui-stream/agent-ui-message-stream.js +681 -0
  133. package/dist/src/ui-stream/agent-ui-message-stream.js.map +1 -0
  134. package/dist/src/ui-stream/agent-ui-message-types.d.ts +238 -0
  135. package/dist/src/ui-stream/agent-ui-message-types.js +57 -0
  136. package/dist/src/ui-stream/agent-ui-message-types.js.map +1 -0
  137. package/dist/src/ui-stream/agent-ui-messages.d.ts +66 -0
  138. package/dist/src/ui-stream/agent-ui-messages.js +220 -0
  139. package/dist/src/ui-stream/agent-ui-messages.js.map +1 -0
  140. package/dist/src/ui-stream/agent-ui-stream-cursor.d.ts +64 -0
  141. package/dist/src/ui-stream/agent-ui-stream-cursor.js +186 -0
  142. package/dist/src/ui-stream/agent-ui-stream-cursor.js.map +1 -0
  143. package/dist/src/ui-stream/index.d.ts +14 -0
  144. package/dist/src/ui-stream/index.js +22 -0
  145. package/dist/src/ui-stream/index.js.map +1 -0
  146. package/dist/src/ui-stream/server-sent-event-responses.d.ts +6 -0
  147. package/dist/src/ui-stream/server-sent-event-responses.js +34 -0
  148. package/dist/src/ui-stream/server-sent-event-responses.js.map +1 -0
  149. package/package.json +41 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-ui-message-stream.js","sourceRoot":"","sources":["../../../src/ui-stream/agent-ui-message-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * HTTP headers of an AI SDK UI message stream response, protocol version `v1`.
3
+ *
4
+ * {@link createAgentUIMessageStreamResponse} and the other Response helpers set them. Use them when you
5
+ * write the Server-Sent Events of {@link streamAgentUIMessageChunks} to a response yourself.
6
+ */
7
+ export declare const agentUIMessageStreamHeaders: Readonly<Record<string, string>>;
8
+ /**
9
+ * Type of the transient data part that carries the UI stream resume token after each translated event.
10
+ *
11
+ * The AI SDK passes transient data parts to the `onData` callback of `useChat` and never stores them in
12
+ * a message. Keep the latest `data` in memory and send it back as the `resumeToken` of a reconnect, so the
13
+ * stream continues after the last event the browser received.
14
+ */
15
+ export declare const agentResumeTokenDataPartType = "data-agent-resume-token";
16
+ /**
17
+ * Type of the transient data part that carries an `AgentEvent` with no other UI message mapping.
18
+ *
19
+ * It carries `usage_recorded`, `tool_call_started`, text written by a tool Step, and adapter-specific
20
+ * events such as `openai_agents.handoff`. Read it in the `onData` callback of `useChat`.
21
+ */
22
+ export declare const agentEventDataPartType = "data-agent-event";
23
+ /**
24
+ * One `AgentEvent` in its snake_case wire format, the same JSON in the TypeScript and Python cores.
25
+ *
26
+ * `payload` stays JSON object text, as on the `AgentEvents` Stream. Parse it with `JSON.parse`.
27
+ */
28
+ export interface AgentEventJson {
29
+ /** An `AgentEventType` or an adapter-specific type. */
30
+ readonly type: string;
31
+ /** Turn the event belongs to, or `null`. */
32
+ readonly turn_id: string | null;
33
+ /** One-based attempt of the Step that wrote the event. */
34
+ readonly attempt: number;
35
+ /** Dex Step execution ID, `StepType-Number`, of the Step that wrote the event; `""` when absent. */
36
+ readonly step_execution_id: string;
37
+ /** Event payload as JSON object text. */
38
+ readonly payload: string;
39
+ }
40
+ /**
41
+ * Reason in the `finish` part of an agent UI message stream.
42
+ *
43
+ * - `stop`: the turn completed.
44
+ * - `tool-calls`: the turn waits only for tool approvals; the stream ends so `useChat` can send them.
45
+ * - `error`: the turn failed; an `error` part with the failure text comes first.
46
+ * - `other`: the turn ended through steering or `cancel_turn`, or without its end event on the Stream, or the
47
+ * session Flow closed.
48
+ */
49
+ export type AgentUIMessageFinishReason = "stop" | "tool-calls" | "error" | "other";
50
+ /**
51
+ * One part of an AI SDK UI message stream (protocol `v1`) that the agent UI stream adapters emit.
52
+ *
53
+ * Each member is a structural subset of the AI SDK `UIMessageChunk` type, so a stream of these parts can be
54
+ * passed to AI SDK functions such as `createUIMessageStreamResponse` and `readUIMessageStream`.
55
+ *
56
+ * - `start` opens the turn's assistant message; its `messageId` is {@link agentAssistantUIMessageId}.
57
+ * - `start-step`, `finish-step`, and `reset-step` frame one `RunModel` Step execution. `reset-step` removes
58
+ * the parts of an interrupted attempt when a new attempt of the same Step execution starts.
59
+ * - `text-*` and `reasoning-*` carry the model call's live text.
60
+ * - `tool-*` parts follow each tool call as a dynamic tool: requested, waiting for approval, approved or
61
+ * rejected, and finished.
62
+ * - Transient data parts carry the resume token and unmapped events.
63
+ * - `error` and `finish` end the stream.
64
+ */
65
+ export type AgentUIMessageChunk = {
66
+ readonly type: "start";
67
+ readonly messageId: string;
68
+ } | {
69
+ readonly type: "start-step";
70
+ } | {
71
+ readonly type: "finish-step";
72
+ } | {
73
+ readonly type: "reset-step";
74
+ } | {
75
+ readonly type: "text-start";
76
+ readonly id: string;
77
+ } | {
78
+ readonly type: "text-delta";
79
+ readonly id: string;
80
+ readonly delta: string;
81
+ } | {
82
+ readonly type: "text-end";
83
+ readonly id: string;
84
+ } | {
85
+ readonly type: "reasoning-start";
86
+ readonly id: string;
87
+ } | {
88
+ readonly type: "reasoning-delta";
89
+ readonly id: string;
90
+ readonly delta: string;
91
+ } | {
92
+ readonly type: "reasoning-end";
93
+ readonly id: string;
94
+ } | {
95
+ readonly type: "tool-input-available";
96
+ readonly toolCallId: string;
97
+ readonly toolName: string;
98
+ readonly input: unknown;
99
+ readonly dynamic: true;
100
+ } | {
101
+ readonly type: "tool-approval-request";
102
+ readonly approvalId: string;
103
+ readonly toolCallId: string;
104
+ } | {
105
+ readonly type: "tool-approval-response";
106
+ readonly approvalId: string;
107
+ readonly approved: boolean;
108
+ readonly reason?: string;
109
+ } | {
110
+ readonly type: "tool-output-available";
111
+ readonly toolCallId: string;
112
+ readonly output: unknown;
113
+ readonly dynamic: true;
114
+ } | {
115
+ readonly type: "tool-output-error";
116
+ readonly toolCallId: string;
117
+ readonly errorText: string;
118
+ readonly dynamic: true;
119
+ } | {
120
+ readonly type: "tool-output-denied";
121
+ readonly toolCallId: string;
122
+ } | {
123
+ readonly type: typeof agentResumeTokenDataPartType;
124
+ readonly data: string;
125
+ readonly transient: true;
126
+ } | {
127
+ readonly type: typeof agentEventDataPartType;
128
+ readonly data: AgentEventJson;
129
+ readonly transient: true;
130
+ } | {
131
+ readonly type: "error";
132
+ readonly errorText: string;
133
+ } | {
134
+ readonly type: "finish";
135
+ readonly finishReason: AgentUIMessageFinishReason;
136
+ };
137
+ /**
138
+ * One tool call of an agent session as an AI SDK dynamic tool part.
139
+ *
140
+ * `state` follows the AI SDK tool part states. Every state carries `input`, the parsed tool arguments, or
141
+ * the arguments text when it is not JSON. `output-available` carries `output`, the tool output text.
142
+ * `output-error` carries `errorText`, the text the model saw for a `failed` or `outcome_unknown` call.
143
+ * `approval` appears on calls that needed approval. Its `id` is the `interrupt_id` for `resolve_interrupt`,
144
+ * `approved` is the decision once made, and `reason` is the rejection message.
145
+ */
146
+ export type AgentDynamicToolUIPart = {
147
+ /** Always `dynamic-tool`: the browser needs no tool schema to render it. */
148
+ readonly type: "dynamic-tool";
149
+ /** Tool name the model called. */
150
+ readonly toolName: string;
151
+ /** Framework tool call ID; equal to the approval ID of a call that needs approval. */
152
+ readonly toolCallId: string;
153
+ } & ({
154
+ readonly state: "input-available";
155
+ readonly input: unknown;
156
+ } | {
157
+ readonly state: "approval-requested";
158
+ readonly input: unknown;
159
+ readonly approval: {
160
+ readonly id: string;
161
+ };
162
+ } | {
163
+ readonly state: "approval-responded";
164
+ readonly input: unknown;
165
+ readonly approval: {
166
+ readonly id: string;
167
+ readonly approved: boolean;
168
+ };
169
+ } | {
170
+ readonly state: "output-available";
171
+ readonly input: unknown;
172
+ readonly output: unknown;
173
+ readonly approval?: {
174
+ readonly id: string;
175
+ readonly approved: true;
176
+ };
177
+ } | {
178
+ readonly state: "output-error";
179
+ readonly input: unknown;
180
+ readonly errorText: string;
181
+ readonly approval?: {
182
+ readonly id: string;
183
+ readonly approved: true;
184
+ };
185
+ } | {
186
+ readonly state: "output-denied";
187
+ readonly input: unknown;
188
+ readonly approval: {
189
+ readonly id: string;
190
+ readonly approved: false;
191
+ readonly reason?: string;
192
+ };
193
+ });
194
+ /**
195
+ * One part of an {@link AgentUIMessage}.
196
+ *
197
+ * `step-start` opens one model call. `text` is one finished model text in `text`. A dynamic tool part is one
198
+ * tool call; see {@link AgentDynamicToolUIPart}.
199
+ */
200
+ export type AgentUIMessagePart = {
201
+ readonly type: "step-start";
202
+ } | {
203
+ readonly type: "text";
204
+ readonly text: string;
205
+ readonly state: "done";
206
+ } | AgentDynamicToolUIPart;
207
+ /**
208
+ * One stored agent message as an AI SDK `UIMessage`.
209
+ *
210
+ * A user message holds one text part. An assistant message holds every model text and tool call of one
211
+ * turn, with a `step-start` part before each model call. It is a structural subset of the AI SDK
212
+ * `UIMessage` type, so the array can be passed to `useChat` as its initial `messages`.
213
+ */
214
+ export interface AgentUIMessage {
215
+ /** {@link agentUserUIMessageId} for a user message, {@link agentAssistantUIMessageId} for an assistant message. */
216
+ readonly id: string;
217
+ /** Message author. */
218
+ readonly role: "user" | "assistant";
219
+ /** Message parts in order. */
220
+ parts: AgentUIMessagePart[];
221
+ }
222
+ /**
223
+ * Returns the AI SDK message ID of a turn's assistant message.
224
+ *
225
+ * The live UI message stream and {@link convertAgentSnapshotToUIMessages} use the same ID, so a stored
226
+ * message replaces the streamed one in place.
227
+ *
228
+ * @param turnId - Turn ID, such as `"turn-3"`.
229
+ * @returns `<turnId>-assistant`, such as `"turn-3-assistant"`.
230
+ */
231
+ export declare function agentAssistantUIMessageId(turnId: string): string;
232
+ /**
233
+ * Returns the AI SDK message ID of a stored user message.
234
+ *
235
+ * @param sequence - Stored message sequence.
236
+ * @returns `message-<sequence>`, such as `"message-7"`.
237
+ */
238
+ export declare function agentUserUIMessageId(sequence: number): string;
@@ -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
+ /**
9
+ * HTTP headers of an AI SDK UI message stream response, protocol version `v1`.
10
+ *
11
+ * {@link createAgentUIMessageStreamResponse} and the other Response helpers set them. Use them when you
12
+ * write the Server-Sent Events of {@link streamAgentUIMessageChunks} to a response yourself.
13
+ */
14
+ export const agentUIMessageStreamHeaders = Object.freeze({
15
+ "content-type": "text/event-stream",
16
+ "cache-control": "no-cache",
17
+ connection: "keep-alive",
18
+ "x-vercel-ai-ui-message-stream": "v1",
19
+ "x-accel-buffering": "no",
20
+ });
21
+ /**
22
+ * Type of the transient data part that carries the UI stream resume token after each translated event.
23
+ *
24
+ * The AI SDK passes transient data parts to the `onData` callback of `useChat` and never stores them in
25
+ * a message. Keep the latest `data` in memory and send it back as the `resumeToken` of a reconnect, so the
26
+ * stream continues after the last event the browser received.
27
+ */
28
+ export const agentResumeTokenDataPartType = "data-agent-resume-token";
29
+ /**
30
+ * Type of the transient data part that carries an `AgentEvent` with no other UI message mapping.
31
+ *
32
+ * It carries `usage_recorded`, `tool_call_started`, text written by a tool Step, and adapter-specific
33
+ * events such as `openai_agents.handoff`. Read it in the `onData` callback of `useChat`.
34
+ */
35
+ export const agentEventDataPartType = "data-agent-event";
36
+ /**
37
+ * Returns the AI SDK message ID of a turn's assistant message.
38
+ *
39
+ * The live UI message stream and {@link convertAgentSnapshotToUIMessages} use the same ID, so a stored
40
+ * message replaces the streamed one in place.
41
+ *
42
+ * @param turnId - Turn ID, such as `"turn-3"`.
43
+ * @returns `<turnId>-assistant`, such as `"turn-3-assistant"`.
44
+ */
45
+ export function agentAssistantUIMessageId(turnId) {
46
+ return `${turnId}-assistant`;
47
+ }
48
+ /**
49
+ * Returns the AI SDK message ID of a stored user message.
50
+ *
51
+ * @param sequence - Stored message sequence.
52
+ * @returns `message-<sequence>`, such as `"message-7"`.
53
+ */
54
+ export function agentUserUIMessageId(sequence) {
55
+ return `message-${sequence}`;
56
+ }
57
+ //# sourceMappingURL=agent-ui-message-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-ui-message-types.js","sourceRoot":"","sources":["../../../src/ui-stream/agent-ui-message-types.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqC,MAAM,CAAC,MAAM,CAAC;IACzF,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,UAAU;IAC3B,UAAU,EAAE,YAAY;IACxB,+BAA+B,EAAE,IAAI;IACrC,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAmKzD;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,OAAO,GAAG,MAAM,YAAY,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,WAAW,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,66 @@
1
+ import type { Client } from "@superdurable/dex";
2
+ import type { AgentFrameworkRunner, DeferredToolOutcome } from "../agent-framework-runner.js";
3
+ import type { AgentSessionFlow } from "../agent-session-flow.js";
4
+ import { type AgentSnapshot } from "../agent-session-values.js";
5
+ import { type AgentUIMessage } from "./agent-ui-message-types.js";
6
+ /** The stored conversation of a session as AI SDK messages, and the token that streams its active turn. */
7
+ export interface AgentSessionUIMessages {
8
+ /** Messages from {@link convertAgentSnapshotToUIMessages}. */
9
+ readonly messages: AgentUIMessage[];
10
+ /**
11
+ * UI stream resume token that replays the active turn from its first retained event, or `null` when no
12
+ * turn is active or the Stream no longer holds the active turn. With `null` and an active turn, the
13
+ * messages still show the turn's tool calls and approvals; poll this function until the turn ends.
14
+ */
15
+ readonly resumeToken: string | null;
16
+ }
17
+ /**
18
+ * Converts a `get_agent_snapshot` result to AI SDK `UIMessage` objects for `useChat`.
19
+ *
20
+ * Each stored user message becomes a user message with ID {@link agentUserUIMessageId}. The stored
21
+ * assistant and tool messages of one turn become one assistant message with ID
22
+ * {@link agentAssistantUIMessageId}: a `step-start` part before each model call, a text part per model
23
+ * text, and a dynamic tool part per tool call. A stored tool result shows the text the model saw, so a
24
+ * failed or rejected call appears as `output-available` with that text. A turn-failure note is a stored
25
+ * user message and appears as one.
26
+ *
27
+ * The session stores a turn's messages when the turn ends, or after each model call for a runner such as
28
+ * the Stepwise runner. For the active turn the function shows each tool call of `snapshot.toolCalls` once in
29
+ * the turn's assistant message: a stored call without a result takes the record's state, and a call not
30
+ * stored yet is added. Approvals waiting for `resolve_interrupt` are `approval-requested`, running calls
31
+ * are `input-available` or `approval-responded`, and finished calls show their result. The active turn's
32
+ * live text exists only on the Stream; a UI message stream started without a token replays it and
33
+ * replaces this message.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const snapshot = await client.invokeRPC(flow.getAgentSnapshot, sessionId);
38
+ * const messages = convertAgentSnapshotToUIMessages(snapshot);
39
+ * ```
40
+ * @param snapshot - Output of the `get_agent_snapshot` RPC; it holds the last 200 messages.
41
+ * @returns New messages in conversation order. The function does not change `snapshot`.
42
+ */
43
+ export declare function convertAgentSnapshotToUIMessages(snapshot: AgentSnapshot): AgentUIMessage[];
44
+ /**
45
+ * Reads an agent session as AI SDK messages and the UI stream resume token of its active turn.
46
+ *
47
+ * Load it when a page opens. Pass `messages` to `useChat` as its initial messages, and when `resumeToken`
48
+ * is not `null`, resume the stream with it, so the active turn's live text replays into the turn's
49
+ * assistant message. The token stays valid after the turn ends; the replay then finishes at once. The
50
+ * `get_agent_snapshot` RPC needs a running Worker.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * // GET /api/chat/:id
55
+ * const { messages, resumeToken } = await readAgentSessionUIMessages({ client, flow, flowId: sessionId });
56
+ * return Response.json({ messages, resumeToken });
57
+ * ```
58
+ * @param options - Client, Flow, and session ID.
59
+ * @returns The messages and the resume token.
60
+ * @throws {DexServiceError} When the RPC or a Stream read fails.
61
+ */
62
+ export declare function readAgentSessionUIMessages(options: {
63
+ readonly client: Client;
64
+ readonly flow: AgentSessionFlow<AgentFrameworkRunner<DeferredToolOutcome>>;
65
+ readonly flowId: string;
66
+ }): Promise<AgentSessionUIMessages>;
@@ -0,0 +1,220 @@
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 { describeToolCallOutcome, } from "../agent-session-values.js";
9
+ import { createTurnReplayCursor, parseToolArguments } from "./agent-ui-message-stream.js";
10
+ import { agentAssistantUIMessageId, agentUserUIMessageId, } from "./agent-ui-message-types.js";
11
+ import { encodeAgentUIStreamCursor } from "./agent-ui-stream-cursor.js";
12
+ /**
13
+ * Converts a `get_agent_snapshot` result to AI SDK `UIMessage` objects for `useChat`.
14
+ *
15
+ * Each stored user message becomes a user message with ID {@link agentUserUIMessageId}. The stored
16
+ * assistant and tool messages of one turn become one assistant message with ID
17
+ * {@link agentAssistantUIMessageId}: a `step-start` part before each model call, a text part per model
18
+ * text, and a dynamic tool part per tool call. A stored tool result shows the text the model saw, so a
19
+ * failed or rejected call appears as `output-available` with that text. A turn-failure note is a stored
20
+ * user message and appears as one.
21
+ *
22
+ * The session stores a turn's messages when the turn ends, or after each model call for a runner such as
23
+ * the Stepwise runner. For the active turn the function shows each tool call of `snapshot.toolCalls` once in
24
+ * the turn's assistant message: a stored call without a result takes the record's state, and a call not
25
+ * stored yet is added. Approvals waiting for `resolve_interrupt` are `approval-requested`, running calls
26
+ * are `input-available` or `approval-responded`, and finished calls show their result. The active turn's
27
+ * live text exists only on the Stream; a UI message stream started without a token replays it and
28
+ * replaces this message.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const snapshot = await client.invokeRPC(flow.getAgentSnapshot, sessionId);
33
+ * const messages = convertAgentSnapshotToUIMessages(snapshot);
34
+ * ```
35
+ * @param snapshot - Output of the `get_agent_snapshot` RPC; it holds the last 200 messages.
36
+ * @returns New messages in conversation order. The function does not change `snapshot`.
37
+ */
38
+ export function convertAgentSnapshotToUIMessages(snapshot) {
39
+ const uiMessages = [];
40
+ let assistantMessage;
41
+ for (const message of snapshot.messages) {
42
+ if (message.role === "user") {
43
+ assistantMessage = undefined;
44
+ uiMessages.push({
45
+ id: agentUserUIMessageId(message.sequence),
46
+ role: "user",
47
+ parts: [{ type: "text", text: message.text ?? "", state: "done" }],
48
+ });
49
+ continue;
50
+ }
51
+ if (assistantMessage?.turnId !== message.turnId) {
52
+ assistantMessage = new AgentAssistantUIMessageBuilder(message.turnId);
53
+ uiMessages.push(assistantMessage.message);
54
+ }
55
+ assistantMessage.appendStoredMessage(message);
56
+ }
57
+ const activeTurnId = snapshot.state?.activeTurnId ?? null;
58
+ if (activeTurnId !== null && snapshot.toolCalls.length > 0) {
59
+ if (assistantMessage?.turnId !== activeTurnId) {
60
+ assistantMessage = new AgentAssistantUIMessageBuilder(activeTurnId);
61
+ uiMessages.push(assistantMessage.message);
62
+ }
63
+ assistantMessage.appendActiveToolCalls(snapshot.toolCalls);
64
+ }
65
+ return uiMessages;
66
+ }
67
+ /**
68
+ * Reads an agent session as AI SDK messages and the UI stream resume token of its active turn.
69
+ *
70
+ * Load it when a page opens. Pass `messages` to `useChat` as its initial messages, and when `resumeToken`
71
+ * is not `null`, resume the stream with it, so the active turn's live text replays into the turn's
72
+ * assistant message. The token stays valid after the turn ends; the replay then finishes at once. The
73
+ * `get_agent_snapshot` RPC needs a running Worker.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * // GET /api/chat/:id
78
+ * const { messages, resumeToken } = await readAgentSessionUIMessages({ client, flow, flowId: sessionId });
79
+ * return Response.json({ messages, resumeToken });
80
+ * ```
81
+ * @param options - Client, Flow, and session ID.
82
+ * @returns The messages and the resume token.
83
+ * @throws {DexServiceError} When the RPC or a Stream read fails.
84
+ */
85
+ export async function readAgentSessionUIMessages(options) {
86
+ const { client, flow, flowId } = options;
87
+ const snapshot = await client.invokeRPC(flow.getAgentSnapshot, flowId);
88
+ const messages = convertAgentSnapshotToUIMessages(snapshot);
89
+ const activeTurnId = snapshot.state?.activeTurnId ?? null;
90
+ if (activeTurnId === null) {
91
+ return { messages, resumeToken: null };
92
+ }
93
+ const cursor = await createTurnReplayCursor(client, flow, flowId, activeTurnId, null);
94
+ return { messages, resumeToken: cursor === undefined ? null : encodeAgentUIStreamCursor(cursor) };
95
+ }
96
+ /** Collects one turn's stored assistant and tool messages into one assistant message. */
97
+ class AgentAssistantUIMessageBuilder {
98
+ turnId;
99
+ message;
100
+ isAfterToolResult = false;
101
+ constructor(turnId) {
102
+ this.turnId = turnId;
103
+ this.message = {
104
+ id: agentAssistantUIMessageId(turnId),
105
+ role: "assistant",
106
+ parts: [{ type: "step-start" }],
107
+ };
108
+ }
109
+ appendStoredMessage(message) {
110
+ if (message.role === "tool") {
111
+ this.appendToolResult(message);
112
+ this.isAfterToolResult = true;
113
+ return;
114
+ }
115
+ // A model call follows the tool results it received.
116
+ if (this.isAfterToolResult) {
117
+ this.message.parts.push({ type: "step-start" });
118
+ this.isAfterToolResult = false;
119
+ }
120
+ if (message.text !== null && message.text !== "") {
121
+ this.message.parts.push({ type: "text", text: message.text, state: "done" });
122
+ }
123
+ if (message.toolCallId !== null) {
124
+ this.message.parts.push({
125
+ type: "dynamic-tool",
126
+ toolName: message.toolName ?? "",
127
+ toolCallId: message.toolCallId,
128
+ state: "input-available",
129
+ input: parseToolArguments(message.toolArguments),
130
+ });
131
+ }
132
+ }
133
+ appendActiveToolCalls(toolCalls) {
134
+ let hasStepStart = this.message.parts.at(-1)?.type === "step-start";
135
+ for (const toolCall of toolCalls) {
136
+ const index = this.message.parts.findIndex((part) => part.type === "dynamic-tool" && part.toolCallId === toolCall.toolCallId);
137
+ const storedPart = this.message.parts[index];
138
+ if (storedPart === undefined) {
139
+ if (!hasStepStart) {
140
+ this.message.parts.push({ type: "step-start" });
141
+ hasStepStart = true;
142
+ }
143
+ this.message.parts.push(convertToolCallRecordToUIPart(toolCall));
144
+ }
145
+ else if (storedPart.type === "dynamic-tool" && storedPart.state === "input-available") {
146
+ // A runner that stores each model call mid-turn already holds the call; only its result is missing.
147
+ this.message.parts[index] = convertToolCallRecordToUIPart(toolCall);
148
+ }
149
+ }
150
+ }
151
+ appendToolResult(message) {
152
+ const toolCallId = message.toolCallId ?? "";
153
+ const index = this.message.parts.findIndex((part) => part.type === "dynamic-tool" && part.toolCallId === toolCallId);
154
+ const toolCallPart = this.message.parts[index];
155
+ const requestedPart = toolCallPart?.type === "dynamic-tool" ? toolCallPart : undefined;
156
+ const resultPart = {
157
+ type: "dynamic-tool",
158
+ toolName: message.toolName ?? requestedPart?.toolName ?? "",
159
+ toolCallId,
160
+ state: "output-available",
161
+ input: requestedPart?.input,
162
+ output: message.toolOutput ?? message.text ?? "",
163
+ };
164
+ if (requestedPart === undefined) {
165
+ this.message.parts.push(resultPart);
166
+ }
167
+ else {
168
+ this.message.parts[index] = resultPart;
169
+ }
170
+ }
171
+ }
172
+ function convertToolCallRecordToUIPart(toolCall) {
173
+ const toolPart = {
174
+ type: "dynamic-tool",
175
+ toolName: toolCall.toolName,
176
+ toolCallId: toolCall.toolCallId,
177
+ input: parseToolArguments(toolCall.arguments),
178
+ };
179
+ // A tool approval's interrupt ID is its tool call ID.
180
+ const approvalId = toolCall.toolCallId;
181
+ const grantedApproval = toolCall.requiresApproval
182
+ ? { approval: { id: approvalId, approved: true } }
183
+ : {};
184
+ switch (toolCall.status) {
185
+ case "awaiting_approval":
186
+ return { ...toolPart, state: "approval-requested", approval: { id: approvalId } };
187
+ case "approved":
188
+ return toolCall.requiresApproval
189
+ ? { ...toolPart, state: "approval-responded", approval: { id: approvalId, approved: true } }
190
+ : { ...toolPart, state: "input-available" };
191
+ case "awaiting_answer":
192
+ case "waiting_for_timer":
193
+ case "waiting_for_task":
194
+ // A question, a durable wait, or a remote task holds the call; the browser shows it running, as for an approved call.
195
+ return toolCall.requiresApproval
196
+ ? { ...toolPart, state: "approval-responded", approval: { id: approvalId, approved: true } }
197
+ : { ...toolPart, state: "input-available" };
198
+ case "succeeded":
199
+ return { ...toolPart, state: "output-available", output: toolCall.output ?? "", ...grantedApproval };
200
+ case "failed":
201
+ case "outcome_unknown":
202
+ return {
203
+ ...toolPart,
204
+ state: "output-error",
205
+ errorText: describeToolCallOutcome(toolCall),
206
+ ...grantedApproval,
207
+ };
208
+ case "rejected":
209
+ return {
210
+ ...toolPart,
211
+ state: "output-denied",
212
+ approval: {
213
+ id: approvalId,
214
+ approved: false,
215
+ ...(toolCall.rejectionMessage === null ? {} : { reason: toolCall.rejectionMessage }),
216
+ },
217
+ };
218
+ }
219
+ }
220
+ //# sourceMappingURL=agent-ui-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-ui-messages.js","sourceRoot":"","sources":["../../../src/ui-stream/agent-ui-messages.ts"],"names":[],"mappings":"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"}