@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
@@ -39,13 +39,31 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
39
39
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
40
40
  done = true;
41
41
  };
42
- import { StepList, booleanCodec, rpc, } from "@superdurable/dex";
43
- import { agentMessagesPageCodec, agentSnapshotCodec, agentUserMessageCodec, listAgentMessagesInputCodec, resolveInterruptInputCodec, } from "./agent-session-codecs.js";
44
- import { createAgentSessionPersistence, defaultAgentEventsCapacityBytes, } from "./agent-session-persistence.js";
45
- import { AwaitToolApprovalStep, AwaitUserMessageStep, RecordTurnFailureStep, ResumeTurnStep, RunModelStep, StartAgentSessionStep, ToolCallFailureRecordingStep, ToolCallStep, } from "./agent-session-steps.js";
46
- import { AgentSessionTransitions, agentSessionStepTypes, } from "./agent-session-transitions.js";
47
- const snapshotMessageLimit = 200;
48
- const messagePageLimit = 200;
42
+ import { StepList, StepRef, booleanCodec, rpc, } from "@superdurable/dex";
43
+ import { builtInToolNames, isBlankText } from "./agent-built-in-tools.js";
44
+ import { isContextCompactionRunner, resolveCompactionPolicy, } from "./agent-context-compaction.js";
45
+ import { agentMessagesPageCodec, agentSnapshotCodec, agentUserMessageCodec, answerQuestionRequestCodec, cancelTurnRequestCodec, deleteQueuedMessageRequestCodec, executePlanRequestCodec, listAgentMessagesInputCodec, resolveInterruptInputCodec, steerUserMessageRequestCodec, updateSessionSettingsRequestCodec, } from "./agent-session-codecs.js";
46
+ import { createAgentSessionPersistence, defaultAgentEventsCapacityBytes, planExecutionKey, } from "./agent-session-persistence.js";
47
+ import { checkStoredSessionSettings } from "./agent-session-settings.js";
48
+ import { resolveRunModelLimit } from "./agent-session-step-options.js";
49
+ import { ApplyTurnControlStep, AwaitToolApprovalStep, AwaitUserMessageStep, CompactContextStep, isExecutablePlanStatus, RecordTurnFailureStep, ResumeTurnStep, RunModelStep, StartAgentSessionStep, ToolCallFailureRecordingStep, ToolCallStep, } from "./agent-session-steps.js";
50
+ import { AgentSessionTracer } from "./agent-session-tracer.js";
51
+ import { CancelToolTaskStep, FinishTurnCancellationStep } from "./agent-session-cancellation-steps.js";
52
+ import { AwaitQuestionAnswerStep, AwaitTimerStep, PollToolTaskStep } from "./agent-session-wait-steps.js";
53
+ import { AgentSessionTransitions, agentSessionStepTypes, finishTurnCancellationMovement, messageRolloverMaxBytesPerCommit, messageRolloverMaxChunksPerCommit, } from "./agent-session-transitions.js";
54
+ import { genAISemanticConventionsSchemaUrls, } from "./agent-tracing-options.js";
55
+ export const snapshotMessageLimit = 200;
56
+ export const defaultMaxDurableWaitMs = 365 * 24 * 60 * 60 * 1_000;
57
+ export const messagePageLimit = 200;
58
+ /** Default {@link AgentSessionOptions.messageWindowSize}. */
59
+ export const defaultMessageWindowSize = 64;
60
+ /** Default {@link AgentSessionOptions.messageChunkSize}. */
61
+ export const defaultMessageChunkSize = 32;
62
+ /** Default {@link AgentSessionOptions.messageChunkMaxBytes}: 1 MiB. */
63
+ export const defaultMessageChunkMaxBytes = 1_048_576;
64
+ /** Default {@link AgentSessionOptions.retainedMessageLimit}. */
65
+ export const defaultRetainedMessageLimit = 1_000;
66
+ export { messageRolloverMaxBytesPerCommit, messageRolloverMaxChunksPerCommit };
49
67
  const toolEffects = [
50
68
  "read",
51
69
  "idempotent_write",
@@ -72,29 +90,52 @@ const toolEffects = [
72
90
  * const billing = createAgentSessionFlow(billingRunner, "BillingAgent");
73
91
  * const registry = new Registry([triage, billing]);
74
92
  * ```
93
+ * @typeParam Runner - Type of the runner, kept as the Flow's `runner` property type.
75
94
  * @param runner - Framework runner; the Flow owns no other dependency.
76
95
  * @param flowType - Flow type, unique within the Registry, such as `"TriageAgent"`. Keep it stable:
77
96
  * running sessions resume by it.
78
- * @param options - Tool policies, Stream capacity, and approval deadline. Defaults to all defaults.
97
+ * @param options - Tool policies, Stream capacity, approval deadline, and tracing. Defaults to all
98
+ * defaults.
79
99
  * @returns A new Flow to register in one Registry.
80
- * @throws {TypeError} When `flowType` is blank, the runner is incomplete, or an effect is unknown.
81
- * @throws {RangeError} When `eventStreamCapacityBytes` or `interruptDeadlineMs` is not positive.
100
+ * @throws {TypeError} When `flowType` is blank, the runner is incomplete, an effect or built-in tool is
101
+ * unknown, a tool policy names an enabled built-in tool, a tracing option is invalid, `planModeEnabled`
102
+ * is set without `write_todos` or for a runner without {@link AgentFrameworkRunner.supportsPlanMode}, or
103
+ * `compaction` is set for a runner without the compaction methods.
104
+ * @throws {RangeError} When `eventStreamCapacityBytes` or `interruptDeadlineMs` is not positive,
105
+ * `maxDurableWaitMs` is not a positive whole number of seconds, or the compaction policy is out of range.
82
106
  */
83
107
  export function createAgentSessionFlow(runner, flowType, options = {}) {
84
108
  const config = resolveAgentSessionConfig(runner, flowType, options);
85
109
  const persistence = createAgentSessionPersistence(config.eventStreamCapacityBytes);
86
- const transitions = new AgentSessionTransitions(persistence, runner, config);
110
+ const transitions = new AgentSessionTransitions(persistence, runner, config, new AgentSessionTracer(config.tracing, persistence));
87
111
  const resolvedOptions = Object.freeze({
88
112
  toolPolicies: config.toolPolicies,
89
113
  defaultToolEffect: config.defaultToolEffect,
90
114
  eventStreamCapacityBytes: config.eventStreamCapacityBytes,
91
115
  interruptDeadlineMs: config.interruptDeadlineMs,
116
+ tracing: config.tracing,
117
+ builtInTools: Object.freeze(builtInToolNames.filter((name) => config.builtInTools.has(name))),
118
+ maxDurableWaitMs: config.maxDurableWaitMs,
119
+ planModeEnabled: config.planModeEnabled,
120
+ ...(config.compaction === undefined ? {} : { compaction: config.compaction }),
121
+ messageWindowSize: config.messageWindowSize,
122
+ messageChunkSize: config.messageChunkSize,
123
+ messageChunkMaxBytes: config.messageChunkMaxBytes,
124
+ retainedMessageLimit: config.retainedMessageLimit,
125
+ runModelLimit: config.runModelLimit,
126
+ ...(config.spendLimit === undefined ? {} : { spendLimit: config.spendLimit }),
92
127
  });
93
128
  // A class per Flow gives each Flow its own RPC methods, which the Dex Client identifies by function.
94
129
  let AgentSessionFlowDefinition = (() => {
95
130
  let _instanceExtraInitializers = [];
96
131
  let _sendUserMessage_decorators;
132
+ let _executePlan_decorators;
133
+ let _steerUserMessage_decorators;
134
+ let _deleteQueuedMessage_decorators;
135
+ let _cancelTurn_decorators;
136
+ let _updateSessionSettings_decorators;
97
137
  let _resolveInterrupt_decorators;
138
+ let _answerQuestion_decorators;
98
139
  let _getAgentSnapshot_decorators;
99
140
  let _listAgentMessages_decorators;
100
141
  return class AgentSessionFlowDefinition {
@@ -104,6 +145,39 @@ export function createAgentSessionFlow(runner, flowType, options = {}) {
104
145
  name: "send_user_message",
105
146
  inputCodec: agentUserMessageCodec,
106
147
  outputCodec: booleanCodec,
148
+ isTransactional: true,
149
+ })];
150
+ _executePlan_decorators = [rpc({
151
+ name: "execute_plan",
152
+ inputCodec: executePlanRequestCodec,
153
+ outputCodec: booleanCodec,
154
+ lockAttributes: [persistence.pendingPlanExecution.lock()],
155
+ })];
156
+ _steerUserMessage_decorators = [rpc({
157
+ name: "steer_user_message",
158
+ inputCodec: steerUserMessageRequestCodec,
159
+ outputCodec: booleanCodec,
160
+ isTransactional: true,
161
+ loadChannels: [persistence.queuedUserMessages],
162
+ })];
163
+ _deleteQueuedMessage_decorators = [rpc({
164
+ name: "delete_queued_message",
165
+ inputCodec: deleteQueuedMessageRequestCodec,
166
+ outputCodec: booleanCodec,
167
+ isTransactional: true,
168
+ loadChannels: [persistence.queuedUserMessages],
169
+ })];
170
+ _cancelTurn_decorators = [rpc({
171
+ name: "cancel_turn",
172
+ inputCodec: cancelTurnRequestCodec,
173
+ outputCodec: booleanCodec,
174
+ lockAttributes: [persistence.turnCancellationRequest.lock(), persistence.pendingInterrupts.lock()],
175
+ })];
176
+ _updateSessionSettings_decorators = [rpc({
177
+ name: "update_session_settings",
178
+ inputCodec: updateSessionSettingsRequestCodec,
179
+ outputCodec: booleanCodec,
180
+ isTransactional: true,
107
181
  })];
108
182
  _resolveInterrupt_decorators = [rpc({
109
183
  name: "resolve_interrupt",
@@ -111,19 +185,32 @@ export function createAgentSessionFlow(runner, flowType, options = {}) {
111
185
  outputCodec: booleanCodec,
112
186
  lockAttributes: [persistence.pendingInterrupts.lock()],
113
187
  })];
188
+ _answerQuestion_decorators = [rpc({
189
+ name: "answer_question",
190
+ inputCodec: answerQuestionRequestCodec,
191
+ outputCodec: booleanCodec,
192
+ lockAttributes: [persistence.pendingInterrupts.lock()],
193
+ })];
114
194
  _getAgentSnapshot_decorators = [rpc({
115
195
  name: "get_agent_snapshot",
116
196
  outputCodec: agentSnapshotCodec,
117
- loadAttributeMaps: [persistence.agentMessages, persistence.agentToolCalls],
197
+ loadAttributeMaps: [persistence.agentMessages, persistence.agentMessageChunks, persistence.agentToolCalls],
198
+ loadChannels: [persistence.queuedUserMessages, persistence.steeredUserMessages],
118
199
  })];
119
200
  _listAgentMessages_decorators = [rpc({
120
201
  name: "list_agent_messages",
121
202
  inputCodec: listAgentMessagesInputCodec,
122
203
  outputCodec: agentMessagesPageCodec,
123
- loadAttributeMaps: [persistence.agentMessages],
204
+ loadAttributeMaps: [persistence.agentMessages, persistence.agentMessageChunks],
124
205
  })];
125
206
  __esDecorate(this, null, _sendUserMessage_decorators, { kind: "method", name: "sendUserMessage", static: false, private: false, access: { has: obj => "sendUserMessage" in obj, get: obj => obj.sendUserMessage }, metadata: _metadata }, null, _instanceExtraInitializers);
207
+ __esDecorate(this, null, _executePlan_decorators, { kind: "method", name: "executePlan", static: false, private: false, access: { has: obj => "executePlan" in obj, get: obj => obj.executePlan }, metadata: _metadata }, null, _instanceExtraInitializers);
208
+ __esDecorate(this, null, _steerUserMessage_decorators, { kind: "method", name: "steerUserMessage", static: false, private: false, access: { has: obj => "steerUserMessage" in obj, get: obj => obj.steerUserMessage }, metadata: _metadata }, null, _instanceExtraInitializers);
209
+ __esDecorate(this, null, _deleteQueuedMessage_decorators, { kind: "method", name: "deleteQueuedMessage", static: false, private: false, access: { has: obj => "deleteQueuedMessage" in obj, get: obj => obj.deleteQueuedMessage }, metadata: _metadata }, null, _instanceExtraInitializers);
210
+ __esDecorate(this, null, _cancelTurn_decorators, { kind: "method", name: "cancelTurn", static: false, private: false, access: { has: obj => "cancelTurn" in obj, get: obj => obj.cancelTurn }, metadata: _metadata }, null, _instanceExtraInitializers);
211
+ __esDecorate(this, null, _updateSessionSettings_decorators, { kind: "method", name: "updateSessionSettings", static: false, private: false, access: { has: obj => "updateSessionSettings" in obj, get: obj => obj.updateSessionSettings }, metadata: _metadata }, null, _instanceExtraInitializers);
126
212
  __esDecorate(this, null, _resolveInterrupt_decorators, { kind: "method", name: "resolveInterrupt", static: false, private: false, access: { has: obj => "resolveInterrupt" in obj, get: obj => obj.resolveInterrupt }, metadata: _metadata }, null, _instanceExtraInitializers);
213
+ __esDecorate(this, null, _answerQuestion_decorators, { kind: "method", name: "answerQuestion", static: false, private: false, access: { has: obj => "answerQuestion" in obj, get: obj => obj.answerQuestion }, metadata: _metadata }, null, _instanceExtraInitializers);
127
214
  __esDecorate(this, null, _getAgentSnapshot_decorators, { kind: "method", name: "getAgentSnapshot", static: false, private: false, access: { has: obj => "getAgentSnapshot" in obj, get: obj => obj.getAgentSnapshot }, metadata: _metadata }, null, _instanceExtraInitializers);
128
215
  __esDecorate(this, null, _listAgentMessages_decorators, { kind: "method", name: "listAgentMessages", static: false, private: false, access: { has: obj => "listAgentMessages" in obj, get: obj => obj.listAgentMessages }, metadata: _metadata }, null, _instanceExtraInitializers);
129
216
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -132,6 +219,8 @@ export function createAgentSessionFlow(runner, flowType, options = {}) {
132
219
  options = resolvedOptions;
133
220
  agentState = persistence.agentState;
134
221
  agentMessages = persistence.agentMessages;
222
+ agentMessageChunks = persistence.agentMessageChunks;
223
+ agentMessageIndex = persistence.agentMessageIndex;
135
224
  frameworkRunState = persistence.frameworkRunState;
136
225
  agentToolCalls = persistence.agentToolCalls;
137
226
  pendingInterrupts = persistence.pendingInterrupts;
@@ -139,37 +228,180 @@ export function createAgentSessionFlow(runner, flowType, options = {}) {
139
228
  queuedUserMessages = persistence.queuedUserMessages;
140
229
  interruptResolutions = persistence.interruptResolutions;
141
230
  toolCallResults = persistence.toolCallResults;
231
+ steeredUserMessages = persistence.steeredUserMessages;
232
+ turnControlRequests = persistence.turnControlRequests;
233
+ turnCancellationRequest = persistence.turnCancellationRequest;
234
+ toolCallCancellations = persistence.toolCallCancellations;
142
235
  agentEvents = persistence.agentEvents;
143
- steps = StepList.startStep(new StartAgentSessionStep(transitions)).otherSteps(new AwaitUserMessageStep(transitions), new RunModelStep(transitions), new AwaitToolApprovalStep(transitions), new ToolCallStep(transitions, agentSessionStepTypes.callTool), new ToolCallStep(transitions, agentSessionStepTypes.callSingleAttemptTool), new ToolCallFailureRecordingStep(transitions, agentSessionStepTypes.recordToolFailure, true), new ToolCallFailureRecordingStep(transitions, agentSessionStepTypes.recordToolOutcomeUnknown, false), new ResumeTurnStep(transitions), new RecordTurnFailureStep(transitions));
236
+ agentTraceContext = persistence.agentTraceContext;
237
+ agentPlan = persistence.agentPlan;
238
+ planExecutions = persistence.planExecutions;
239
+ pendingPlanExecution = persistence.pendingPlanExecution;
240
+ contextSummary = persistence.contextSummary;
241
+ sessionSettings = persistence.sessionSettings;
242
+ turnSessionSettings = persistence.turnSessionSettings;
243
+ /** The `TurnReplySequence` Attribute; see {@link AgentSessionPersistence.turnReplySequence}. */
244
+ turnReplySequence = persistence.turnReplySequence;
245
+ steps = StepList.startStep(new StartAgentSessionStep(transitions)).otherSteps(new AwaitUserMessageStep(transitions), new RunModelStep(transitions), new CompactContextStep(transitions), new AwaitToolApprovalStep(transitions), new AwaitQuestionAnswerStep(transitions), new AwaitTimerStep(transitions), new ToolCallStep(transitions, agentSessionStepTypes.callTool), new ToolCallStep(transitions, agentSessionStepTypes.callSingleAttemptTool), new PollToolTaskStep(transitions), new ToolCallFailureRecordingStep(transitions, agentSessionStepTypes.recordToolFailure, true), new ToolCallFailureRecordingStep(transitions, agentSessionStepTypes.recordToolOutcomeUnknown, false), new ResumeTurnStep(transitions), new ApplyTurnControlStep(transitions), new RecordTurnFailureStep(transitions), new FinishTurnCancellationStep(transitions), new CancelToolTaskStep(transitions));
144
246
  getFlowType() {
145
247
  return config.flowType;
146
248
  }
147
249
  getSteps() {
148
250
  return this.steps;
149
251
  }
252
+ // AgentTraceContext and ContextSummary are always registered, so Workers with and without tracing or
253
+ // compaction serve one Flow type.
150
254
  getPersistenceSchema() {
151
255
  return {
152
256
  attributes: [
153
257
  persistence.agentState,
154
258
  persistence.agentMessages,
259
+ persistence.agentMessageChunks,
260
+ persistence.agentMessageIndex,
155
261
  persistence.frameworkRunState,
156
262
  persistence.agentToolCalls,
157
263
  persistence.pendingInterrupts,
158
264
  persistence.agentUsage,
265
+ persistence.turnCancellationRequest,
266
+ persistence.agentTraceContext,
267
+ persistence.agentPlan,
268
+ persistence.pendingPlanExecution,
269
+ persistence.contextSummary,
270
+ persistence.sessionSettings,
271
+ persistence.turnSessionSettings,
272
+ persistence.turnReplySequence,
159
273
  ],
160
274
  channels: [
161
275
  persistence.queuedUserMessages,
162
276
  persistence.interruptResolutions,
163
277
  persistence.toolCallResults,
278
+ persistence.planExecutions,
279
+ persistence.steeredUserMessages,
280
+ persistence.turnControlRequests,
281
+ persistence.toolCallCancellations,
164
282
  ],
165
283
  streams: [persistence.agentEvents],
166
284
  };
167
285
  }
168
286
  sendUserMessage(context, message) {
169
- if (message.text.trim() === "") {
287
+ const planMode = message.planMode ?? false;
288
+ if (isBlankText(message.text) || (planMode && !config.planModeEnabled)) {
289
+ return { output: false };
290
+ }
291
+ persistence.queuedUserMessages.publish(context, { text: message.text, planMode });
292
+ return { output: true };
293
+ }
294
+ executePlan(context, input) {
295
+ const state = transitions.readOptionalAgentState(context);
296
+ const plan = transitions.readOptionalAgentPlan(context);
297
+ const pending = persistence.pendingPlanExecution.get(context);
298
+ if (state === null ||
299
+ state.status !== "waiting_for_user_message" ||
300
+ state.activeTurnId !== null ||
301
+ plan === null ||
302
+ plan.revision !== input.revision ||
303
+ !isExecutablePlanStatus(plan.status) ||
304
+ (pending !== undefined && pending.revision === plan.revision) ||
305
+ context.channelSize(persistence.queuedUserMessages) > 0 ||
306
+ context.channelSize(persistence.steeredUserMessages) > 0 ||
307
+ transitions.readPendingInterrupts(context).length > 0) {
308
+ return { output: false };
309
+ }
310
+ const request = { revision: plan.revision };
311
+ persistence.pendingPlanExecution.set(context, request);
312
+ persistence.planExecutions.publish(context, planExecutionKey(plan.revision), request);
313
+ return { output: true };
314
+ }
315
+ steerUserMessage(context, input) {
316
+ if ((input.messageId === null) === (input.text === null)) {
317
+ return { output: false };
318
+ }
319
+ const state = transitions.readOptionalAgentState(context);
320
+ if (state?.activeTurnId == null) {
321
+ // Any Worker version waits for queued messages while idle; a steer might wait forever.
322
+ if (input.text === null) {
323
+ return { output: findQueuedMessage(context, persistence, input.messageId ?? "") !== undefined };
324
+ }
325
+ return this.sendUserMessage(context, { text: input.text });
326
+ }
327
+ if (state.acceptsTurnControl !== true) {
328
+ return { output: false };
329
+ }
330
+ let steered;
331
+ if (input.text !== null) {
332
+ if (isBlankText(input.text)) {
333
+ return { output: false };
334
+ }
335
+ steered = { text: input.text };
336
+ }
337
+ else {
338
+ const queued = findQueuedMessage(context, persistence, input.messageId ?? "");
339
+ if (queued === undefined) {
340
+ return { output: false };
341
+ }
342
+ persistence.queuedUserMessages.delete(context, queued.messageId);
343
+ steered = queued.message;
344
+ }
345
+ persistence.steeredUserMessages.publish(context, steered);
346
+ persistence.turnControlRequests.publish(context, { kind: "steer" });
347
+ return { output: true };
348
+ }
349
+ deleteQueuedMessage(context, input) {
350
+ const queued = findQueuedMessage(context, persistence, input.messageId);
351
+ if (queued === undefined) {
352
+ return { output: false };
353
+ }
354
+ persistence.queuedUserMessages.delete(context, queued.messageId);
355
+ return { output: true };
356
+ }
357
+ // PendingInterrupts orders it with ResumeTurn, and TurnCancellationRequest with turn starts.
358
+ cancelTurn(context, input) {
359
+ const state = transitions.readOptionalAgentState(context);
360
+ const activeTurnId = state?.activeTurnId ?? null;
361
+ if (activeTurnId === null ||
362
+ state?.acceptsTurnControl !== true ||
363
+ (input.turnId !== null && input.turnId !== activeTurnId)) {
364
+ return { output: false };
365
+ }
366
+ if (transitions.isTurnCancelled(context, activeTurnId)) {
367
+ return { output: true };
368
+ }
369
+ persistence.turnCancellationRequest.set(context, {
370
+ turnId: activeTurnId,
371
+ requestedAt: new Date().toISOString(),
372
+ });
373
+ // Each cancelled Step has no outside effect or only waits; the model call's answer is lost.
374
+ return {
375
+ output: true,
376
+ nextSteps: [finishTurnCancellationMovement(activeTurnId)],
377
+ cancelingSteps: [
378
+ agentSessionStepTypes.runModel,
379
+ agentSessionStepTypes.compactContext,
380
+ agentSessionStepTypes.recordTurnFailure,
381
+ agentSessionStepTypes.awaitToolApproval,
382
+ agentSessionStepTypes.awaitQuestionAnswer,
383
+ agentSessionStepTypes.awaitTimer,
384
+ agentSessionStepTypes.pollToolTask,
385
+ ].map((stepType) => new StepRef(stepType)),
386
+ };
387
+ }
388
+ updateSessionSettings(context, input) {
389
+ const sessionSettings = input.sessionSettings;
390
+ if (transitions.readOptionalAgentState(context) === null || sessionSettings === null) {
170
391
  return { output: false };
171
392
  }
172
- persistence.queuedUserMessages.publish(context, { text: message.text });
393
+ try {
394
+ checkStoredSessionSettings(sessionSettings);
395
+ }
396
+ catch {
397
+ return { output: false };
398
+ }
399
+ if (Object.keys(sessionSettings).length > 0) {
400
+ persistence.sessionSettings.set(context, sessionSettings);
401
+ }
402
+ else if (transitions.readSessionSettings(context) !== null) {
403
+ persistence.sessionSettings.delete(context);
404
+ }
173
405
  return { output: true };
174
406
  }
175
407
  resolveInterrupt(context, input) {
@@ -177,13 +409,33 @@ export function createAgentSessionFlow(runner, flowType, options = {}) {
177
409
  const interrupt = pendingInterrupts.find((pending) => pending.interruptId === input.interruptId);
178
410
  // After the deadline, AwaitToolApproval rejects the call; a late answer must not win.
179
411
  if (interrupt === undefined ||
180
- (interrupt.deadline !== null && Date.parse(interrupt.deadline) <= Date.now())) {
412
+ (interrupt.deadline !== null && Date.parse(interrupt.deadline) <= Date.now()) ||
413
+ (interrupt.kind === "question" && input.approved)) {
181
414
  return { output: false };
182
415
  }
183
416
  persistence.pendingInterrupts.set(context, pendingInterrupts.filter((interrupt) => interrupt.interruptId !== input.interruptId));
184
417
  persistence.interruptResolutions.publish(context, input.interruptId, {
185
418
  approved: input.approved,
186
419
  rejectionMessage: input.approved ? null : input.rejectionMessage,
420
+ answer: null,
421
+ });
422
+ return { output: true };
423
+ }
424
+ answerQuestion(context, input) {
425
+ const pendingInterrupts = transitions.readPendingInterrupts(context);
426
+ const interrupt = pendingInterrupts.find((pending) => pending.interruptId === input.interruptId);
427
+ if (interrupt === undefined ||
428
+ interrupt.kind !== "question" ||
429
+ (interrupt.deadline !== null && Date.parse(interrupt.deadline) <= Date.now()) ||
430
+ isBlankText(input.answer) ||
431
+ isAnswerOutsideChoices(interrupt.choices ?? [], interrupt.allowsFreeText ?? true, input.answer)) {
432
+ return { output: false };
433
+ }
434
+ persistence.pendingInterrupts.set(context, pendingInterrupts.filter((pending) => pending.interruptId !== input.interruptId));
435
+ persistence.interruptResolutions.publish(context, input.interruptId, {
436
+ approved: true,
437
+ rejectionMessage: null,
438
+ answer: input.answer,
187
439
  });
188
440
  return { output: true };
189
441
  }
@@ -198,6 +450,11 @@ export function createAgentSessionFlow(runner, flowType, options = {}) {
198
450
  toolCalls: [],
199
451
  usage: transitions.readAgentUsage(context),
200
452
  queuedMessageCount: 0,
453
+ plan: null,
454
+ queuedMessages: [],
455
+ steeredMessages: [],
456
+ contextSummary: null,
457
+ sessionSettings: null,
201
458
  },
202
459
  };
203
460
  }
@@ -210,24 +467,31 @@ export function createAgentSessionFlow(runner, flowType, options = {}) {
210
467
  toolCalls: transitions.readTurnToolCalls(context, state.activeTurnId),
211
468
  usage: transitions.readAgentUsage(context),
212
469
  queuedMessageCount: context.channelSize(persistence.queuedUserMessages),
470
+ plan: transitions.readOptionalAgentPlan(context),
471
+ queuedMessages: readPendingUserMessages(context, persistence.queuedUserMessages),
472
+ steeredMessages: readPendingUserMessages(context, persistence.steeredUserMessages),
473
+ contextSummary: transitions.readContextSummary(context),
474
+ sessionSettings: transitions.readSessionSettings(context),
213
475
  },
214
476
  };
215
477
  }
216
478
  listAgentMessages(context, input) {
217
479
  const state = transitions.readOptionalAgentState(context);
218
480
  if (state === null) {
219
- return { output: { messages: [], nextBeforeSequence: null } };
481
+ return { output: { messages: [], nextBeforeSequence: null, deletedBeforeSequence: null } };
220
482
  }
221
483
  const limit = Math.max(1, Math.min(input.limit, messagePageLimit));
484
+ const firstSequence = transitions.readFirstStoredSequence(context);
222
485
  let end = state.nextMessageSequence;
223
486
  if (input.beforeSequence !== null) {
224
- end = Math.max(1, Math.min(input.beforeSequence, end));
487
+ end = Math.max(firstSequence, Math.min(input.beforeSequence, end));
225
488
  }
226
- const start = Math.max(1, end - limit);
489
+ const start = Math.max(firstSequence, end - limit);
227
490
  return {
228
491
  output: {
229
492
  messages: transitions.readMessages(context, start, end),
230
- nextBeforeSequence: start > 1 ? start : null,
493
+ nextBeforeSequence: start > firstSequence ? start : null,
494
+ deletedBeforeSequence: firstSequence > 1 ? firstSequence : null,
231
495
  },
232
496
  };
233
497
  }
@@ -260,14 +524,102 @@ function resolveAgentSessionConfig(runner, flowType, options) {
260
524
  (!Number.isFinite(interruptDeadlineMs) || interruptDeadlineMs <= 0)) {
261
525
  throw new RangeError("interruptDeadlineMs must be positive");
262
526
  }
527
+ const builtInTools = new Set();
528
+ for (const builtInTool of options.builtInTools ?? []) {
529
+ if (!builtInToolNames.includes(builtInTool)) {
530
+ throw new TypeError(`builtInTools has unknown built-in tool ${String(builtInTool)}`);
531
+ }
532
+ builtInTools.add(builtInTool);
533
+ }
534
+ for (const toolName of Object.keys(toolPolicies)) {
535
+ if (builtInTools.has(toolName)) {
536
+ throw new TypeError(`tool policy ${toolName} names an enabled built-in tool, whose policy is fixed`);
537
+ }
538
+ }
539
+ const planModeEnabled = options.planModeEnabled ?? false;
540
+ if (planModeEnabled && !builtInTools.has("write_todos")) {
541
+ throw new TypeError("planModeEnabled requires the write_todos built-in tool");
542
+ }
543
+ if (planModeEnabled && runner.supportsPlanMode !== true) {
544
+ throw new TypeError("planModeEnabled requires a runner that supports plan mode");
545
+ }
546
+ const maxDurableWaitMs = options.maxDurableWaitMs ?? defaultMaxDurableWaitMs;
547
+ if (!Number.isSafeInteger(maxDurableWaitMs) || maxDurableWaitMs < 1_000 || maxDurableWaitMs % 1_000 !== 0) {
548
+ throw new RangeError("maxDurableWaitMs must be a positive whole number of seconds, in milliseconds");
549
+ }
550
+ const compaction = options.compaction === undefined ? undefined : resolveCompactionPolicy(options.compaction);
551
+ if (compaction !== undefined && !isContextCompactionRunner(runner)) {
552
+ throw new TypeError("compaction needs a runner that implements estimateInputTokens, selectCompactionCutoff, and summarizeContext");
553
+ }
554
+ const messageChunkSize = options.messageChunkSize ?? defaultMessageChunkSize;
555
+ if (!Number.isSafeInteger(messageChunkSize) || messageChunkSize <= 0) {
556
+ throw new RangeError("messageChunkSize must be positive");
557
+ }
558
+ const messageWindowSize = options.messageWindowSize ?? defaultMessageWindowSize;
559
+ if (!Number.isSafeInteger(messageWindowSize) || messageWindowSize < messageChunkSize) {
560
+ throw new RangeError("messageWindowSize must be at least messageChunkSize");
561
+ }
562
+ const messageChunkMaxBytes = options.messageChunkMaxBytes ?? defaultMessageChunkMaxBytes;
563
+ if (!Number.isSafeInteger(messageChunkMaxBytes) ||
564
+ messageChunkMaxBytes < 1 ||
565
+ messageChunkMaxBytes > messageRolloverMaxBytesPerCommit) {
566
+ throw new RangeError(`messageChunkMaxBytes must be between 1 and ${messageRolloverMaxBytesPerCommit}`);
567
+ }
568
+ const retainedMessageLimit = options.retainedMessageLimit === undefined ? defaultRetainedMessageLimit : options.retainedMessageLimit;
569
+ if (retainedMessageLimit !== null && (!Number.isSafeInteger(retainedMessageLimit) || retainedMessageLimit < 0)) {
570
+ throw new RangeError("retainedMessageLimit must not be negative");
571
+ }
263
572
  return {
264
573
  flowType,
265
574
  toolPolicies: Object.freeze(toolPolicies),
266
575
  defaultToolEffect,
267
576
  eventStreamCapacityBytes,
268
577
  interruptDeadlineMs,
578
+ tracing: resolveAgentTracingOptions(flowType, options.tracing ?? {}),
579
+ builtInTools,
580
+ maxDurableWaitMs,
581
+ planModeEnabled,
582
+ compaction,
583
+ messageWindowSize,
584
+ messageChunkSize,
585
+ messageChunkMaxBytes,
586
+ retainedMessageLimit,
587
+ runModelLimit: resolveRunModelLimit(options.runModelLimit),
588
+ spendLimit: options.spendLimit,
269
589
  };
270
590
  }
591
+ function resolveAgentTracingOptions(flowType, tracing) {
592
+ const agentName = tracing.agentName ?? flowType;
593
+ if (typeof agentName !== "string" || agentName.trim() === "") {
594
+ throw new TypeError("tracing.agentName must be a non-blank string");
595
+ }
596
+ const semanticConventionsVersion = tracing.semanticConventionsVersion ?? "1.42.0-dev";
597
+ if (!Object.hasOwn(genAISemanticConventionsSchemaUrls, semanticConventionsVersion)) {
598
+ throw new TypeError(`tracing.semanticConventionsVersion ${String(semanticConventionsVersion)} is unknown`);
599
+ }
600
+ const tracerProvider = tracing.tracerProvider;
601
+ if (tracerProvider !== undefined && typeof tracerProvider?.getTracer !== "function") {
602
+ throw new TypeError("tracing.tracerProvider must be an OpenTelemetry TracerProvider");
603
+ }
604
+ return Object.freeze({
605
+ isEnabled: tracing.isEnabled ?? true,
606
+ tracerProvider,
607
+ agentName,
608
+ shouldCaptureMessageContent: tracing.shouldCaptureMessageContent ?? false,
609
+ semanticConventionsVersion,
610
+ });
611
+ }
612
+ function readPendingUserMessages(context, channel) {
613
+ return channel
614
+ .pendingMessages(context)
615
+ .map((pending) => ({ messageId: pending.messageId, message: pending.value }));
616
+ }
617
+ function findQueuedMessage(context, persistence, messageId) {
618
+ return readPendingUserMessages(context, persistence.queuedUserMessages).find((queued) => queued.messageId === messageId);
619
+ }
620
+ function isAnswerOutsideChoices(choices, allowsFreeText, answer) {
621
+ return choices.length > 0 && !allowsFreeText && !choices.includes(answer);
622
+ }
271
623
  function requireToolEffect(effect, description) {
272
624
  if (!toolEffects.includes(effect)) {
273
625
  throw new TypeError(`${description} has unknown tool effect ${String(effect)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-flow.js","sourceRoot":"","sources":["../../src/agent-session-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session-flow.js","sourceRoot":"","sources":["../../src/agent-session-flow.ts"],"names":[],"mappings":"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"}