@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.
- package/README.md +1608 -64
- package/dist/src/agent-built-in-tools.d.ts +81 -0
- package/dist/src/agent-built-in-tools.js +246 -0
- package/dist/src/agent-built-in-tools.js.map +1 -0
- package/dist/src/agent-context-compaction.d.ts +254 -0
- package/dist/src/agent-context-compaction.js +287 -0
- package/dist/src/agent-context-compaction.js.map +1 -0
- package/dist/src/agent-framework-runner.d.ts +456 -16
- package/dist/src/agent-framework-runner.js +4 -3
- package/dist/src/agent-framework-runner.js.map +1 -1
- package/dist/src/agent-plans.d.ts +48 -0
- package/dist/src/agent-plans.js +86 -0
- package/dist/src/agent-plans.js.map +1 -0
- package/dist/src/agent-session-cancellation-steps.d.ts +28 -0
- package/dist/src/agent-session-cancellation-steps.js +154 -0
- package/dist/src/agent-session-cancellation-steps.js.map +1 -0
- package/dist/src/agent-session-codecs.d.ts +65 -4
- package/dist/src/agent-session-codecs.js +343 -8
- package/dist/src/agent-session-codecs.js.map +1 -1
- package/dist/src/agent-session-failure.d.ts +58 -0
- package/dist/src/agent-session-failure.js +126 -0
- package/dist/src/agent-session-failure.js.map +1 -0
- package/dist/src/agent-session-flow-graph-cli.d.ts +2 -0
- package/dist/src/agent-session-flow-graph-cli.js +47 -0
- package/dist/src/agent-session-flow-graph-cli.js.map +1 -0
- package/dist/src/agent-session-flow-graph.d.ts +38 -0
- package/dist/src/agent-session-flow-graph.js +54 -0
- package/dist/src/agent-session-flow-graph.js.map +1 -0
- package/dist/src/agent-session-flow-graph.json +2187 -0
- package/dist/src/agent-session-flow.d.ts +317 -28
- package/dist/src/agent-session-flow.js +373 -21
- package/dist/src/agent-session-flow.js.map +1 -1
- package/dist/src/agent-session-persistence.d.ts +81 -4
- package/dist/src/agent-session-persistence.js +33 -2
- package/dist/src/agent-session-persistence.js.map +1 -1
- package/dist/src/agent-session-settings.d.ts +58 -0
- package/dist/src/agent-session-settings.js +81 -0
- package/dist/src/agent-session-settings.js.map +1 -0
- package/dist/src/agent-session-spend-limit.d.ts +156 -0
- package/dist/src/agent-session-spend-limit.js +42 -0
- package/dist/src/agent-session-spend-limit.js.map +1 -0
- package/dist/src/agent-session-start.d.ts +49 -0
- package/dist/src/agent-session-start.js +67 -0
- package/dist/src/agent-session-start.js.map +1 -0
- package/dist/src/agent-session-step-options.d.ts +78 -0
- package/dist/src/agent-session-step-options.js +71 -0
- package/dist/src/agent-session-step-options.js.map +1 -0
- package/dist/src/agent-session-step-types.d.ts +20 -0
- package/dist/src/agent-session-step-types.js +28 -0
- package/dist/src/agent-session-step-types.js.map +1 -0
- package/dist/src/agent-session-steps.d.ts +103 -8
- package/dist/src/agent-session-steps.js +997 -197
- package/dist/src/agent-session-steps.js.map +1 -1
- package/dist/src/agent-session-tracer.d.ts +61 -0
- package/dist/src/agent-session-tracer.js +608 -0
- package/dist/src/agent-session-tracer.js.map +1 -0
- package/dist/src/agent-session-transitions.d.ts +200 -26
- package/dist/src/agent-session-transitions.js +732 -32
- package/dist/src/agent-session-transitions.js.map +1 -1
- package/dist/src/agent-session-values.d.ts +696 -30
- package/dist/src/agent-session-values.js +39 -4
- package/dist/src/agent-session-values.js.map +1 -1
- package/dist/src/agent-session-wait-steps.d.ts +53 -0
- package/dist/src/agent-session-wait-steps.js +389 -0
- package/dist/src/agent-session-wait-steps.js.map +1 -0
- package/dist/src/agent-tracing-options.d.ts +107 -0
- package/dist/src/agent-tracing-options.js +20 -0
- package/dist/src/agent-tracing-options.js.map +1 -0
- package/dist/src/ai-sdk/ai-sdk-model-client.d.ts +40 -0
- package/dist/src/ai-sdk/ai-sdk-model-client.js +235 -0
- package/dist/src/ai-sdk/ai-sdk-model-client.js.map +1 -0
- package/dist/src/ai-sdk/index.d.ts +1 -0
- package/dist/src/ai-sdk/index.js +9 -0
- package/dist/src/ai-sdk/index.js.map +1 -0
- package/dist/src/index.d.ts +14 -3
- package/dist/src/index.js +12 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/index.d.ts +3 -0
- package/dist/src/mcp/index.js +10 -0
- package/dist/src/mcp/index.js.map +1 -0
- package/dist/src/mcp/mcp-resource-and-prompt-tools.d.ts +29 -0
- package/dist/src/mcp/mcp-resource-and-prompt-tools.js +185 -0
- package/dist/src/mcp/mcp-resource-and-prompt-tools.js.map +1 -0
- package/dist/src/mcp/mcp-server-config.d.ts +86 -0
- package/dist/src/mcp/mcp-server-config.js +38 -0
- package/dist/src/mcp/mcp-server-config.js.map +1 -0
- package/dist/src/mcp/mcp-tool-source.d.ts +470 -0
- package/dist/src/mcp/mcp-tool-source.js +1204 -0
- package/dist/src/mcp/mcp-tool-source.js.map +1 -0
- package/dist/src/stepwise/agent-definition.d.ts +166 -0
- package/dist/src/stepwise/agent-definition.js +9 -0
- package/dist/src/stepwise/agent-definition.js.map +1 -0
- package/dist/src/stepwise/function-tool.d.ts +130 -0
- package/dist/src/stepwise/function-tool.js +75 -0
- package/dist/src/stepwise/function-tool.js.map +1 -0
- package/dist/src/stepwise/index.d.ts +8 -0
- package/dist/src/stepwise/index.js +13 -0
- package/dist/src/stepwise/index.js.map +1 -0
- package/dist/src/stepwise/json-schema-validation.d.ts +9 -0
- package/dist/src/stepwise/json-schema-validation.js +141 -0
- package/dist/src/stepwise/json-schema-validation.js.map +1 -0
- package/dist/src/stepwise/model-client.d.ts +194 -0
- package/dist/src/stepwise/model-client.js +9 -0
- package/dist/src/stepwise/model-client.js.map +1 -0
- package/dist/src/stepwise/scripted-model-client.d.ts +99 -0
- package/dist/src/stepwise/scripted-model-client.js +156 -0
- package/dist/src/stepwise/scripted-model-client.js.map +1 -0
- package/dist/src/stepwise/stepwise-agent-runner.d.ts +171 -0
- package/dist/src/stepwise/stepwise-agent-runner.js +777 -0
- package/dist/src/stepwise/stepwise-agent-runner.js.map +1 -0
- package/dist/src/stepwise/stepwise-agent-session-flow.d.ts +35 -0
- package/dist/src/stepwise/stepwise-agent-session-flow.js +57 -0
- package/dist/src/stepwise/stepwise-agent-session-flow.js.map +1 -0
- package/dist/src/stepwise/stepwise-input-items.d.ts +12 -0
- package/dist/src/stepwise/stepwise-input-items.js +172 -0
- package/dist/src/stepwise/stepwise-input-items.js.map +1 -0
- package/dist/src/stepwise/tool-source.d.ts +103 -0
- package/dist/src/stepwise/tool-source.js +9 -0
- package/dist/src/stepwise/tool-source.js.map +1 -0
- package/dist/src/testing/agent-session-test-client.d.ts +65 -8
- package/dist/src/testing/agent-session-test-client.js +92 -22
- package/dist/src/testing/agent-session-test-client.js.map +1 -1
- package/dist/src/testing/context-window.d.ts +194 -0
- package/dist/src/testing/context-window.js +360 -0
- package/dist/src/testing/context-window.js.map +1 -0
- package/dist/src/testing/index.d.ts +2 -0
- package/dist/src/testing/index.js +2 -0
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/testing/private-dex-engine.d.ts +9 -0
- package/dist/src/testing/private-dex-engine.js +9 -1
- package/dist/src/testing/private-dex-engine.js.map +1 -1
- package/dist/src/testing/scripted-model-client.d.ts +1 -0
- package/dist/src/testing/scripted-model-client.js +10 -0
- package/dist/src/testing/scripted-model-client.js.map +1 -0
- package/dist/src/ui-stream/agent-event-json.d.ts +30 -0
- package/dist/src/ui-stream/agent-event-json.js +64 -0
- package/dist/src/ui-stream/agent-event-json.js.map +1 -0
- package/dist/src/ui-stream/agent-event-sse.d.ts +155 -0
- package/dist/src/ui-stream/agent-event-sse.js +167 -0
- package/dist/src/ui-stream/agent-event-sse.js.map +1 -0
- package/dist/src/ui-stream/agent-event-stream-positions.d.ts +42 -0
- package/dist/src/ui-stream/agent-event-stream-positions.js +153 -0
- package/dist/src/ui-stream/agent-event-stream-positions.js.map +1 -0
- package/dist/src/ui-stream/agent-session-record-reader.d.ts +74 -0
- package/dist/src/ui-stream/agent-session-record-reader.js +246 -0
- package/dist/src/ui-stream/agent-session-record-reader.js.map +1 -0
- package/dist/src/ui-stream/agent-ui-message-stream-responses.d.ts +219 -0
- package/dist/src/ui-stream/agent-ui-message-stream-responses.js +441 -0
- package/dist/src/ui-stream/agent-ui-message-stream-responses.js.map +1 -0
- package/dist/src/ui-stream/agent-ui-message-stream.d.ts +138 -0
- package/dist/src/ui-stream/agent-ui-message-stream.js +695 -0
- package/dist/src/ui-stream/agent-ui-message-stream.js.map +1 -0
- package/dist/src/ui-stream/agent-ui-message-types.d.ts +238 -0
- package/dist/src/ui-stream/agent-ui-message-types.js +57 -0
- package/dist/src/ui-stream/agent-ui-message-types.js.map +1 -0
- package/dist/src/ui-stream/agent-ui-messages.d.ts +68 -0
- package/dist/src/ui-stream/agent-ui-messages.js +222 -0
- package/dist/src/ui-stream/agent-ui-messages.js.map +1 -0
- package/dist/src/ui-stream/agent-ui-stream-cursor.d.ts +64 -0
- package/dist/src/ui-stream/agent-ui-stream-cursor.js +186 -0
- package/dist/src/ui-stream/agent-ui-stream-cursor.js.map +1 -0
- package/dist/src/ui-stream/index.d.ts +14 -0
- package/dist/src/ui-stream/index.js +22 -0
- package/dist/src/ui-stream/index.js.map +1 -0
- package/dist/src/ui-stream/server-sent-event-responses.d.ts +6 -0
- package/dist/src/ui-stream/server-sent-event-responses.js +34 -0
- package/dist/src/ui-stream/server-sent-event-responses.js.map +1 -0
- 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 {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
|
|
48
|
-
|
|
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,
|
|
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,
|
|
81
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
487
|
+
end = Math.max(firstSequence, Math.min(input.beforeSequence, end));
|
|
225
488
|
}
|
|
226
|
-
const start = Math.max(
|
|
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 >
|
|
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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"}
|