@superdurable/dex-agents 0.0.0-stage → 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.
- package/LICENSE +105 -0
- package/README.md +1981 -2
- 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 +108 -0
- package/dist/src/agent-context-compaction.js +39 -0
- package/dist/src/agent-context-compaction.js.map +1 -0
- package/dist/src/agent-event-writer.d.ts +26 -0
- package/dist/src/agent-event-writer.js +110 -0
- package/dist/src/agent-event-writer.js.map +1 -0
- package/dist/src/agent-framework-runner.d.ts +808 -0
- package/dist/src/agent-framework-runner.js +82 -0
- package/dist/src/agent-framework-runner.js.map +1 -0
- 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 +105 -0
- package/dist/src/agent-session-codecs.js +689 -0
- package/dist/src/agent-session-codecs.js.map +1 -0
- package/dist/src/agent-session-flow.d.ts +416 -0
- package/dist/src/agent-session-flow.js +623 -0
- package/dist/src/agent-session-flow.js.map +1 -0
- package/dist/src/agent-session-persistence.d.ts +133 -0
- package/dist/src/agent-session-persistence.js +74 -0
- package/dist/src/agent-session-persistence.js.map +1 -0
- 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-step-options.d.ts +27 -0
- package/dist/src/agent-session-step-options.js +39 -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 +179 -0
- package/dist/src/agent-session-steps.js +1272 -0
- package/dist/src/agent-session-steps.js.map +1 -0
- 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 +224 -0
- package/dist/src/agent-session-transitions.js +850 -0
- package/dist/src/agent-session-transitions.js.map +1 -0
- package/dist/src/agent-session-values.d.ts +998 -0
- package/dist/src/agent-session-values.js +162 -0
- package/dist/src/agent-session-values.js.map +1 -0
- 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 +10 -0
- package/dist/src/index.js +17 -0
- package/dist/src/index.js.map +1 -0
- 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 +158 -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 +7 -0
- package/dist/src/stepwise/index.js +12 -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 +189 -0
- package/dist/src/stepwise/stepwise-agent-runner.js +804 -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 +56 -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 +205 -0
- package/dist/src/testing/agent-session-test-client.js +290 -0
- package/dist/src/testing/agent-session-test-client.js.map +1 -0
- package/dist/src/testing/agent-test-environment.d.ts +52 -0
- package/dist/src/testing/agent-test-environment.js +86 -0
- package/dist/src/testing/agent-test-environment.js.map +1 -0
- package/dist/src/testing/agent-worker-process.d.ts +91 -0
- package/dist/src/testing/agent-worker-process.js +150 -0
- package/dist/src/testing/agent-worker-process.js.map +1 -0
- package/dist/src/testing/child-process-group.d.ts +33 -0
- package/dist/src/testing/child-process-group.js +164 -0
- package/dist/src/testing/child-process-group.js.map +1 -0
- package/dist/src/testing/coordination.d.ts +99 -0
- package/dist/src/testing/coordination.js +155 -0
- package/dist/src/testing/coordination.js.map +1 -0
- package/dist/src/testing/index.d.ts +8 -0
- package/dist/src/testing/index.js +16 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/polling.d.ts +31 -0
- package/dist/src/testing/polling.js +51 -0
- package/dist/src/testing/polling.js.map +1 -0
- package/dist/src/testing/private-dex-engine.d.ts +101 -0
- package/dist/src/testing/private-dex-engine.js +223 -0
- package/dist/src/testing/private-dex-engine.js.map +1 -0
- 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/testing/step-history.d.ts +40 -0
- package/dist/src/testing/step-history.js +59 -0
- package/dist/src/testing/step-history.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 +154 -0
- package/dist/src/ui-stream/agent-event-sse.js +159 -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 +72 -0
- package/dist/src/ui-stream/agent-session-record-reader.js +241 -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 +440 -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 +681 -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 +66 -0
- package/dist/src/ui-stream/agent-ui-messages.js +220 -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 +86 -4
|
@@ -0,0 +1,689 @@
|
|
|
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 { jsonCodec } from "@superdurable/dex";
|
|
9
|
+
// Wire values are snake_case JSON shared with the Python core; TypeScript values are camelCase.
|
|
10
|
+
const agentSessionStatuses = [
|
|
11
|
+
"waiting_for_user_message",
|
|
12
|
+
"running_model",
|
|
13
|
+
"running_tools",
|
|
14
|
+
"compacting_context",
|
|
15
|
+
];
|
|
16
|
+
const agentMessageRoles = ["user", "assistant", "tool"];
|
|
17
|
+
const toolEffects = [
|
|
18
|
+
"read",
|
|
19
|
+
"idempotent_write",
|
|
20
|
+
"non_idempotent_write",
|
|
21
|
+
"unclassified",
|
|
22
|
+
];
|
|
23
|
+
const agentToolCallStatuses = [
|
|
24
|
+
"awaiting_approval",
|
|
25
|
+
"approved",
|
|
26
|
+
"awaiting_answer",
|
|
27
|
+
"waiting_for_timer",
|
|
28
|
+
"waiting_for_task",
|
|
29
|
+
"rejected",
|
|
30
|
+
"succeeded",
|
|
31
|
+
"failed",
|
|
32
|
+
"outcome_unknown",
|
|
33
|
+
];
|
|
34
|
+
const agentInterruptKinds = ["tool_approval", "question"];
|
|
35
|
+
const interactionModes = ["chat", "planning", "executing"];
|
|
36
|
+
const planStatuses = ["draft", "active", "completed", "cleared"];
|
|
37
|
+
const planTaskStatuses = ["pending", "in_progress", "completed"];
|
|
38
|
+
const toolCallCancellationReasons = ["steered", "turn_cancelled"];
|
|
39
|
+
const turnControlKinds = ["steer", "cancel_turn"];
|
|
40
|
+
const questionResolutions = ["answered", "declined", "deadline_passed"];
|
|
41
|
+
class WireRecordReader {
|
|
42
|
+
typeName;
|
|
43
|
+
record;
|
|
44
|
+
constructor(value, typeName) {
|
|
45
|
+
this.typeName = typeName;
|
|
46
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
47
|
+
throw new TypeError(`${typeName} must be a JSON object`);
|
|
48
|
+
}
|
|
49
|
+
this.record = value;
|
|
50
|
+
}
|
|
51
|
+
readString(field) {
|
|
52
|
+
const value = this.record[field];
|
|
53
|
+
if (typeof value !== "string") {
|
|
54
|
+
throw new TypeError(`${this.typeName}.${field} must be a string`);
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
readNullableString(field) {
|
|
59
|
+
const value = this.record[field];
|
|
60
|
+
if (value === undefined || value === null) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (typeof value !== "string") {
|
|
64
|
+
throw new TypeError(`${this.typeName}.${field} must be a string or null`);
|
|
65
|
+
}
|
|
66
|
+
return value;
|
|
67
|
+
}
|
|
68
|
+
readInteger(field) {
|
|
69
|
+
const value = this.record[field];
|
|
70
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value)) {
|
|
71
|
+
throw new TypeError(`${this.typeName}.${field} must be an integer`);
|
|
72
|
+
}
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
75
|
+
readIntegerOrDefault(field, defaultValue) {
|
|
76
|
+
const value = this.record[field];
|
|
77
|
+
return value === undefined || value === null ? defaultValue : this.readInteger(field);
|
|
78
|
+
}
|
|
79
|
+
readNullableInteger(field) {
|
|
80
|
+
const value = this.record[field];
|
|
81
|
+
if (value === undefined || value === null) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return this.readInteger(field);
|
|
85
|
+
}
|
|
86
|
+
readBooleanOrDefault(field, defaultValue) {
|
|
87
|
+
const value = this.record[field];
|
|
88
|
+
return value === undefined || value === null ? defaultValue : this.readBoolean(field);
|
|
89
|
+
}
|
|
90
|
+
readStringArrayOrEmpty(field) {
|
|
91
|
+
const value = this.record[field];
|
|
92
|
+
if (value === undefined || value === null) {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
if (!Array.isArray(value) || !value.every((item) => typeof item === "string")) {
|
|
96
|
+
throw new TypeError(`${this.typeName}.${field} must be an array of strings`);
|
|
97
|
+
}
|
|
98
|
+
return value;
|
|
99
|
+
}
|
|
100
|
+
readArrayOrEmpty(field) {
|
|
101
|
+
const value = this.record[field];
|
|
102
|
+
return value === undefined || value === null ? [] : this.readArray(field);
|
|
103
|
+
}
|
|
104
|
+
readBoolean(field) {
|
|
105
|
+
const value = this.record[field];
|
|
106
|
+
if (typeof value !== "boolean") {
|
|
107
|
+
throw new TypeError(`${this.typeName}.${field} must be a boolean`);
|
|
108
|
+
}
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
readEnumOrDefault(field, allowed, defaultValue) {
|
|
112
|
+
const value = this.record[field];
|
|
113
|
+
return value === undefined || value === null ? defaultValue : this.readEnum(field, allowed);
|
|
114
|
+
}
|
|
115
|
+
readNullableEnum(field, allowed) {
|
|
116
|
+
const value = this.record[field];
|
|
117
|
+
return value === undefined || value === null ? null : this.readEnum(field, allowed);
|
|
118
|
+
}
|
|
119
|
+
readEnum(field, allowed) {
|
|
120
|
+
const value = this.readString(field);
|
|
121
|
+
if (!allowed.includes(value)) {
|
|
122
|
+
throw new TypeError(`${this.typeName}.${field} has unknown value ${value}`);
|
|
123
|
+
}
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
readArray(field) {
|
|
127
|
+
const value = this.record[field];
|
|
128
|
+
if (!Array.isArray(value)) {
|
|
129
|
+
throw new TypeError(`${this.typeName}.${field} must be an array`);
|
|
130
|
+
}
|
|
131
|
+
return value;
|
|
132
|
+
}
|
|
133
|
+
readObject(field) {
|
|
134
|
+
return this.record[field];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export function encodeAgentSessionStartInput(value) {
|
|
138
|
+
return { initial_message: value.initialMessage, session_settings: value.sessionSettings ?? null };
|
|
139
|
+
}
|
|
140
|
+
export function decodeAgentSessionStartInput(value) {
|
|
141
|
+
if (value === null || value === undefined) {
|
|
142
|
+
return { initialMessage: null, sessionSettings: null };
|
|
143
|
+
}
|
|
144
|
+
const reader = new WireRecordReader(value, "AgentSessionStartInput");
|
|
145
|
+
const sessionSettings = reader.readObject("session_settings");
|
|
146
|
+
return {
|
|
147
|
+
initialMessage: reader.readNullableString("initial_message"),
|
|
148
|
+
// Kept as sent: StartAgentSession refuses a value that is not an object, failing the session at once.
|
|
149
|
+
sessionSettings: sessionSettings == null ? null : sessionSettings,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
export function encodeSessionSettings(value) {
|
|
153
|
+
return value;
|
|
154
|
+
}
|
|
155
|
+
export function decodeSessionSettings(value) {
|
|
156
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
157
|
+
throw new TypeError("SessionSettings must be a JSON object");
|
|
158
|
+
}
|
|
159
|
+
return value;
|
|
160
|
+
}
|
|
161
|
+
export function encodeUpdateSessionSettingsRequest(value) {
|
|
162
|
+
return { session_settings: value.sessionSettings };
|
|
163
|
+
}
|
|
164
|
+
export function decodeUpdateSessionSettingsRequest(value) {
|
|
165
|
+
const reader = new WireRecordReader(value, "UpdateSessionSettingsRequest");
|
|
166
|
+
const sessionSettings = reader.readObject("session_settings");
|
|
167
|
+
// Kept as sent: the RPC returns false for null or a value that is not an object.
|
|
168
|
+
return { sessionSettings: sessionSettings == null ? null : sessionSettings };
|
|
169
|
+
}
|
|
170
|
+
export function encodeTurnSessionSettings(value) {
|
|
171
|
+
return { turn_id: value.turnId, session_settings: value.sessionSettings };
|
|
172
|
+
}
|
|
173
|
+
export function decodeTurnSessionSettings(value) {
|
|
174
|
+
const reader = new WireRecordReader(value, "TurnSessionSettings");
|
|
175
|
+
return {
|
|
176
|
+
turnId: reader.readString("turn_id"),
|
|
177
|
+
sessionSettings: decodeSessionSettings(reader.readObject("session_settings")),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
export function encodeAgentState(value) {
|
|
181
|
+
return {
|
|
182
|
+
status: value.status,
|
|
183
|
+
turn_count: value.turnCount,
|
|
184
|
+
active_turn_id: value.activeTurnId,
|
|
185
|
+
next_message_sequence: value.nextMessageSequence,
|
|
186
|
+
last_turn_error: value.lastTurnError,
|
|
187
|
+
interaction_mode: value.interactionMode ?? "chat",
|
|
188
|
+
accepts_turn_control: value.acceptsTurnControl ?? false,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
export function decodeAgentState(value) {
|
|
192
|
+
const reader = new WireRecordReader(value, "AgentState");
|
|
193
|
+
const interactionMode = reader.readEnumOrDefault("interaction_mode", interactionModes, "chat");
|
|
194
|
+
const acceptsTurnControl = reader.readBooleanOrDefault("accepts_turn_control", false);
|
|
195
|
+
return {
|
|
196
|
+
status: reader.readEnum("status", agentSessionStatuses),
|
|
197
|
+
turnCount: reader.readInteger("turn_count"),
|
|
198
|
+
activeTurnId: reader.readNullableString("active_turn_id"),
|
|
199
|
+
nextMessageSequence: reader.readInteger("next_message_sequence"),
|
|
200
|
+
lastTurnError: reader.readNullableString("last_turn_error"),
|
|
201
|
+
// Fields that plans added are omitted at their defaults, so a session without plans decodes to its 0.1.0 shape.
|
|
202
|
+
...(interactionMode === "chat" ? {} : { interactionMode }),
|
|
203
|
+
...(acceptsTurnControl ? { acceptsTurnControl } : {}),
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
export function encodeAgentMessage(value) {
|
|
207
|
+
return {
|
|
208
|
+
sequence: value.sequence,
|
|
209
|
+
turn_id: value.turnId,
|
|
210
|
+
role: value.role,
|
|
211
|
+
text: value.text,
|
|
212
|
+
tool_call_id: value.toolCallId,
|
|
213
|
+
tool_name: value.toolName,
|
|
214
|
+
tool_arguments: value.toolArguments,
|
|
215
|
+
tool_output: value.toolOutput,
|
|
216
|
+
framework_item: value.frameworkItem,
|
|
217
|
+
created_at: value.createdAt,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
export function decodeAgentMessage(value) {
|
|
221
|
+
const reader = new WireRecordReader(value, "AgentMessage");
|
|
222
|
+
return {
|
|
223
|
+
sequence: reader.readInteger("sequence"),
|
|
224
|
+
turnId: reader.readString("turn_id"),
|
|
225
|
+
role: reader.readEnum("role", agentMessageRoles),
|
|
226
|
+
text: reader.readNullableString("text"),
|
|
227
|
+
toolCallId: reader.readNullableString("tool_call_id"),
|
|
228
|
+
toolName: reader.readNullableString("tool_name"),
|
|
229
|
+
toolArguments: reader.readNullableString("tool_arguments"),
|
|
230
|
+
toolOutput: reader.readNullableString("tool_output"),
|
|
231
|
+
frameworkItem: reader.readString("framework_item"),
|
|
232
|
+
createdAt: reader.readString("created_at"),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
export function encodeAgentToolCall(value) {
|
|
236
|
+
return {
|
|
237
|
+
tool_call_id: value.toolCallId,
|
|
238
|
+
turn_id: value.turnId,
|
|
239
|
+
tool_name: value.toolName,
|
|
240
|
+
arguments: value.arguments,
|
|
241
|
+
effect: value.effect,
|
|
242
|
+
requires_approval: value.requiresApproval,
|
|
243
|
+
status: value.status,
|
|
244
|
+
output: value.output,
|
|
245
|
+
error: value.error,
|
|
246
|
+
rejection_message: value.rejectionMessage,
|
|
247
|
+
deferral_order: value.deferralOrder,
|
|
248
|
+
tool_source_reference: value.toolSourceReference ?? null,
|
|
249
|
+
trace_context: value.traceContext ?? null,
|
|
250
|
+
wait_until: value.waitUntil,
|
|
251
|
+
input_continuation: value.inputContinuation,
|
|
252
|
+
input_answers: value.inputAnswers.map(encodeQuestionAnswer),
|
|
253
|
+
input_question: value.inputQuestion,
|
|
254
|
+
input_choices: [...value.inputChoices],
|
|
255
|
+
input_allows_free_text: value.inputAllowsFreeText,
|
|
256
|
+
cancellation_reason: value.cancellationReason ?? null,
|
|
257
|
+
task_id: value.taskId ?? null,
|
|
258
|
+
task_poll_interval_seconds: value.taskPollIntervalSeconds ?? null,
|
|
259
|
+
task_answer_pending: value.taskAnswerPending ?? false,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
export function decodeAgentToolCall(value) {
|
|
263
|
+
const reader = new WireRecordReader(value, "AgentToolCall");
|
|
264
|
+
const traceContext = reader.readNullableString("trace_context");
|
|
265
|
+
const toolCall = {
|
|
266
|
+
toolCallId: reader.readString("tool_call_id"),
|
|
267
|
+
turnId: reader.readString("turn_id"),
|
|
268
|
+
toolName: reader.readString("tool_name"),
|
|
269
|
+
arguments: reader.readString("arguments"),
|
|
270
|
+
effect: reader.readEnum("effect", toolEffects),
|
|
271
|
+
requiresApproval: reader.readBoolean("requires_approval"),
|
|
272
|
+
status: reader.readEnum("status", agentToolCallStatuses),
|
|
273
|
+
output: reader.readNullableString("output"),
|
|
274
|
+
error: reader.readNullableString("error"),
|
|
275
|
+
rejectionMessage: reader.readNullableString("rejection_message"),
|
|
276
|
+
deferralOrder: reader.readIntegerOrDefault("deferral_order", 0),
|
|
277
|
+
waitUntil: reader.readNullableString("wait_until"),
|
|
278
|
+
inputContinuation: reader.readNullableString("input_continuation"),
|
|
279
|
+
inputAnswers: reader.readArrayOrEmpty("input_answers").map(decodeQuestionAnswer),
|
|
280
|
+
inputQuestion: reader.readNullableString("input_question"),
|
|
281
|
+
inputChoices: reader.readStringArrayOrEmpty("input_choices"),
|
|
282
|
+
inputAllowsFreeText: reader.readBooleanOrDefault("input_allows_free_text", true),
|
|
283
|
+
cancellationReason: reader.readNullableEnum("cancellation_reason", toolCallCancellationReasons),
|
|
284
|
+
taskId: reader.readNullableString("task_id"),
|
|
285
|
+
taskPollIntervalSeconds: reader.readNullableInteger("task_poll_interval_seconds"),
|
|
286
|
+
taskAnswerPending: reader.readBooleanOrDefault("task_answer_pending", false),
|
|
287
|
+
...(traceContext === null ? {} : { traceContext }),
|
|
288
|
+
};
|
|
289
|
+
const toolSourceReference = reader.readNullableString("tool_source_reference");
|
|
290
|
+
return toolSourceReference === null ? toolCall : { ...toolCall, toolSourceReference };
|
|
291
|
+
}
|
|
292
|
+
export function encodeQuestionAnswer(value) {
|
|
293
|
+
return {
|
|
294
|
+
interrupt_id: value.interruptId,
|
|
295
|
+
question: value.question,
|
|
296
|
+
answer: value.answer,
|
|
297
|
+
resolution: value.resolution ?? "answered",
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
export function decodeQuestionAnswer(value) {
|
|
301
|
+
const reader = new WireRecordReader(value, "QuestionAnswer");
|
|
302
|
+
return {
|
|
303
|
+
interruptId: reader.readString("interrupt_id"),
|
|
304
|
+
question: reader.readString("question"),
|
|
305
|
+
answer: reader.readString("answer"),
|
|
306
|
+
resolution: reader.readNullableString("resolution") === null ? "answered" : reader.readEnum("resolution", questionResolutions),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
export function encodeAgentInterrupt(value) {
|
|
310
|
+
return {
|
|
311
|
+
interrupt_id: value.interruptId,
|
|
312
|
+
kind: value.kind,
|
|
313
|
+
tool_call_id: value.toolCallId,
|
|
314
|
+
tool_name: value.toolName,
|
|
315
|
+
arguments: value.arguments,
|
|
316
|
+
created_at: value.createdAt,
|
|
317
|
+
deadline: value.deadline,
|
|
318
|
+
question: value.question ?? null,
|
|
319
|
+
choices: [...(value.choices ?? [])],
|
|
320
|
+
allows_free_text: value.allowsFreeText ?? true,
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
export function decodeAgentInterrupt(value) {
|
|
324
|
+
const reader = new WireRecordReader(value, "AgentInterrupt");
|
|
325
|
+
return {
|
|
326
|
+
interruptId: reader.readString("interrupt_id"),
|
|
327
|
+
kind: reader.readEnum("kind", agentInterruptKinds),
|
|
328
|
+
toolCallId: reader.readString("tool_call_id"),
|
|
329
|
+
toolName: reader.readString("tool_name"),
|
|
330
|
+
arguments: reader.readString("arguments"),
|
|
331
|
+
createdAt: reader.readString("created_at"),
|
|
332
|
+
deadline: reader.readNullableString("deadline"),
|
|
333
|
+
question: reader.readNullableString("question"),
|
|
334
|
+
choices: reader.readStringArrayOrEmpty("choices"),
|
|
335
|
+
allowsFreeText: reader.readBooleanOrDefault("allows_free_text", true),
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
export function encodeAgentInterruptResolution(value) {
|
|
339
|
+
return { approved: value.approved, rejection_message: value.rejectionMessage, answer: value.answer ?? null };
|
|
340
|
+
}
|
|
341
|
+
export function decodeAgentInterruptResolution(value) {
|
|
342
|
+
const reader = new WireRecordReader(value, "AgentInterruptResolution");
|
|
343
|
+
return {
|
|
344
|
+
approved: reader.readBoolean("approved"),
|
|
345
|
+
rejectionMessage: reader.readNullableString("rejection_message"),
|
|
346
|
+
answer: reader.readNullableString("answer"),
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
export function encodeAnswerQuestionRequest(value) {
|
|
350
|
+
return { interrupt_id: value.interruptId, answer: value.answer };
|
|
351
|
+
}
|
|
352
|
+
export function decodeAnswerQuestionRequest(value) {
|
|
353
|
+
const reader = new WireRecordReader(value, "AnswerQuestionRequest");
|
|
354
|
+
return { interruptId: reader.readString("interrupt_id"), answer: reader.readString("answer") };
|
|
355
|
+
}
|
|
356
|
+
export function encodeAgentUsage(value) {
|
|
357
|
+
return {
|
|
358
|
+
model_calls: value.modelCalls,
|
|
359
|
+
input_tokens: value.inputTokens,
|
|
360
|
+
output_tokens: value.outputTokens,
|
|
361
|
+
cached_input_tokens: value.cachedInputTokens,
|
|
362
|
+
reasoning_tokens: value.reasoningTokens,
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
export function decodeAgentUsage(value) {
|
|
366
|
+
const reader = new WireRecordReader(value, "AgentUsage");
|
|
367
|
+
return {
|
|
368
|
+
modelCalls: reader.readInteger("model_calls"),
|
|
369
|
+
inputTokens: reader.readInteger("input_tokens"),
|
|
370
|
+
outputTokens: reader.readInteger("output_tokens"),
|
|
371
|
+
cachedInputTokens: reader.readInteger("cached_input_tokens"),
|
|
372
|
+
reasoningTokens: reader.readInteger("reasoning_tokens"),
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
export function encodeAgentUserMessage(value) {
|
|
376
|
+
return { text: value.text, plan_mode: value.planMode ?? false };
|
|
377
|
+
}
|
|
378
|
+
export function decodeAgentUserMessage(value) {
|
|
379
|
+
const reader = new WireRecordReader(value, "AgentUserMessage");
|
|
380
|
+
const planMode = reader.readBooleanOrDefault("plan_mode", false);
|
|
381
|
+
return { text: reader.readString("text"), ...(planMode ? { planMode } : {}) };
|
|
382
|
+
}
|
|
383
|
+
export function encodeAgentPlan(value) {
|
|
384
|
+
return {
|
|
385
|
+
revision: value.revision,
|
|
386
|
+
status: value.status,
|
|
387
|
+
tasks: value.tasks.map(encodeAgentPlanTask),
|
|
388
|
+
updated_at: value.updatedAt,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
export function decodeAgentPlan(value) {
|
|
392
|
+
const reader = new WireRecordReader(value, "AgentPlan");
|
|
393
|
+
return {
|
|
394
|
+
revision: reader.readInteger("revision"),
|
|
395
|
+
status: reader.readEnum("status", planStatuses),
|
|
396
|
+
tasks: reader.readArrayOrEmpty("tasks").map(decodeAgentPlanTask),
|
|
397
|
+
updatedAt: reader.readString("updated_at"),
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
export function encodeAgentPlanTask(value) {
|
|
401
|
+
return { content: value.content, status: value.status };
|
|
402
|
+
}
|
|
403
|
+
export function decodeAgentPlanTask(value) {
|
|
404
|
+
const reader = new WireRecordReader(value, "AgentPlanTask");
|
|
405
|
+
return { content: reader.readString("content"), status: reader.readEnum("status", planTaskStatuses) };
|
|
406
|
+
}
|
|
407
|
+
export function encodePlanRevisionRequest(value) {
|
|
408
|
+
return { revision: value.revision };
|
|
409
|
+
}
|
|
410
|
+
export function decodePlanRevisionRequest(value) {
|
|
411
|
+
const reader = new WireRecordReader(value, "PlanExecutionRequest");
|
|
412
|
+
return { revision: reader.readInteger("revision") };
|
|
413
|
+
}
|
|
414
|
+
export function encodePendingUserMessage(value) {
|
|
415
|
+
return { message_id: value.messageId, message: encodeAgentUserMessage(value.message) };
|
|
416
|
+
}
|
|
417
|
+
export function decodePendingUserMessage(value) {
|
|
418
|
+
const reader = new WireRecordReader(value, "PendingUserMessage");
|
|
419
|
+
return { messageId: reader.readString("message_id"), message: decodeAgentUserMessage(reader.readObject("message")) };
|
|
420
|
+
}
|
|
421
|
+
export function encodeSteerUserMessageRequest(value) {
|
|
422
|
+
return { message_id: value.messageId, text: value.text };
|
|
423
|
+
}
|
|
424
|
+
export function decodeSteerUserMessageRequest(value) {
|
|
425
|
+
const reader = new WireRecordReader(value, "SteerUserMessageRequest");
|
|
426
|
+
return { messageId: reader.readNullableString("message_id"), text: reader.readNullableString("text") };
|
|
427
|
+
}
|
|
428
|
+
export function encodeDeleteQueuedMessageRequest(value) {
|
|
429
|
+
return { message_id: value.messageId };
|
|
430
|
+
}
|
|
431
|
+
export function decodeDeleteQueuedMessageRequest(value) {
|
|
432
|
+
const reader = new WireRecordReader(value, "DeleteQueuedMessageRequest");
|
|
433
|
+
return { messageId: reader.readString("message_id") };
|
|
434
|
+
}
|
|
435
|
+
export function encodeCancelTurnRequest(value) {
|
|
436
|
+
return { turn_id: value.turnId };
|
|
437
|
+
}
|
|
438
|
+
export function decodeCancelTurnRequest(value) {
|
|
439
|
+
if (value === null || value === undefined) {
|
|
440
|
+
return { turnId: null };
|
|
441
|
+
}
|
|
442
|
+
const reader = new WireRecordReader(value, "CancelTurnRequest");
|
|
443
|
+
return { turnId: reader.readNullableString("turn_id") };
|
|
444
|
+
}
|
|
445
|
+
export function encodeTurnControlRequest(value) {
|
|
446
|
+
return { kind: value.kind };
|
|
447
|
+
}
|
|
448
|
+
export function decodeTurnControlRequest(value) {
|
|
449
|
+
const reader = new WireRecordReader(value, "TurnControlRequest");
|
|
450
|
+
return { kind: reader.readEnum("kind", turnControlKinds) };
|
|
451
|
+
}
|
|
452
|
+
export function encodeTurnCancellationRequest(value) {
|
|
453
|
+
return { turn_id: value.turnId, requested_at: value.requestedAt };
|
|
454
|
+
}
|
|
455
|
+
export function decodeTurnCancellationRequest(value) {
|
|
456
|
+
const reader = new WireRecordReader(value, "TurnCancellationRequest");
|
|
457
|
+
return { turnId: reader.readString("turn_id"), requestedAt: reader.readString("requested_at") };
|
|
458
|
+
}
|
|
459
|
+
export function encodeToolCallCancellation(value) {
|
|
460
|
+
return { reason: value.reason };
|
|
461
|
+
}
|
|
462
|
+
export function decodeToolCallCancellation(value) {
|
|
463
|
+
const reader = new WireRecordReader(value, "ToolCallCancellation");
|
|
464
|
+
return { reason: reader.readEnum("reason", toolCallCancellationReasons) };
|
|
465
|
+
}
|
|
466
|
+
export function encodeToolCallCompleted(value) {
|
|
467
|
+
return { tool_call_id: value.toolCallId };
|
|
468
|
+
}
|
|
469
|
+
export function decodeToolCallCompleted(value) {
|
|
470
|
+
const reader = new WireRecordReader(value, "ToolCallCompleted");
|
|
471
|
+
return { toolCallId: reader.readString("tool_call_id") };
|
|
472
|
+
}
|
|
473
|
+
export function encodeAgentEvent(value) {
|
|
474
|
+
return {
|
|
475
|
+
type: value.type,
|
|
476
|
+
turn_id: value.turnId,
|
|
477
|
+
attempt: value.attempt,
|
|
478
|
+
step_execution_id: value.stepExecutionId,
|
|
479
|
+
payload: value.payload,
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
export function decodeAgentEvent(value) {
|
|
483
|
+
const reader = new WireRecordReader(value, "AgentEvent");
|
|
484
|
+
return {
|
|
485
|
+
type: reader.readString("type"),
|
|
486
|
+
turnId: reader.readNullableString("turn_id"),
|
|
487
|
+
attempt: reader.readInteger("attempt"),
|
|
488
|
+
stepExecutionId: reader.readNullableString("step_execution_id") ?? "",
|
|
489
|
+
payload: reader.readString("payload"),
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
export function encodeResolveInterruptInput(value) {
|
|
493
|
+
return {
|
|
494
|
+
interrupt_id: value.interruptId,
|
|
495
|
+
approved: value.approved,
|
|
496
|
+
rejection_message: value.rejectionMessage,
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
export function decodeResolveInterruptInput(value) {
|
|
500
|
+
const reader = new WireRecordReader(value, "ResolveInterruptInput");
|
|
501
|
+
return {
|
|
502
|
+
interruptId: reader.readString("interrupt_id"),
|
|
503
|
+
approved: reader.readBoolean("approved"),
|
|
504
|
+
rejectionMessage: reader.readNullableString("rejection_message"),
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
export function encodeContextSummary(value) {
|
|
508
|
+
return {
|
|
509
|
+
generation: value.generation,
|
|
510
|
+
first_sequence: value.firstSequence,
|
|
511
|
+
last_sequence: value.lastSequence,
|
|
512
|
+
text: value.text,
|
|
513
|
+
created_at: value.createdAt,
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
export function decodeContextSummary(value) {
|
|
517
|
+
const reader = new WireRecordReader(value, "ContextSummary");
|
|
518
|
+
return {
|
|
519
|
+
generation: reader.readInteger("generation"),
|
|
520
|
+
firstSequence: reader.readInteger("first_sequence"),
|
|
521
|
+
lastSequence: reader.readInteger("last_sequence"),
|
|
522
|
+
text: reader.readString("text"),
|
|
523
|
+
createdAt: reader.readString("created_at"),
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
export function encodeAgentMessageChunk(value) {
|
|
527
|
+
return { messages: value.messages.map(encodeAgentMessage) };
|
|
528
|
+
}
|
|
529
|
+
export function decodeAgentMessageChunk(value) {
|
|
530
|
+
const reader = new WireRecordReader(value, "AgentMessageChunk");
|
|
531
|
+
return { messages: reader.readArray("messages").map(decodeAgentMessage) };
|
|
532
|
+
}
|
|
533
|
+
export function encodeAgentMessageChunkRange(value) {
|
|
534
|
+
return { first_sequence: value.firstSequence, last_sequence: value.lastSequence };
|
|
535
|
+
}
|
|
536
|
+
export function decodeAgentMessageChunkRange(value) {
|
|
537
|
+
const reader = new WireRecordReader(value, "AgentMessageChunkRange");
|
|
538
|
+
return {
|
|
539
|
+
firstSequence: reader.readInteger("first_sequence"),
|
|
540
|
+
lastSequence: reader.readInteger("last_sequence"),
|
|
541
|
+
};
|
|
542
|
+
}
|
|
543
|
+
export function encodeAgentMessageIndex(value) {
|
|
544
|
+
return {
|
|
545
|
+
chunks: value.chunks.map(encodeAgentMessageChunkRange),
|
|
546
|
+
first_sequence: value.firstSequence,
|
|
547
|
+
window_first_sequence: value.windowFirstSequence,
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
export function decodeAgentMessageIndex(value) {
|
|
551
|
+
const reader = new WireRecordReader(value, "AgentMessageIndex");
|
|
552
|
+
return {
|
|
553
|
+
chunks: reader.readArray("chunks").map(decodeAgentMessageChunkRange),
|
|
554
|
+
firstSequence: reader.readInteger("first_sequence"),
|
|
555
|
+
windowFirstSequence: reader.readInteger("window_first_sequence"),
|
|
556
|
+
};
|
|
557
|
+
}
|
|
558
|
+
export function encodeTurnReplySequence(value) {
|
|
559
|
+
return { turn_id: value.turnId, sequence: value.sequence };
|
|
560
|
+
}
|
|
561
|
+
export function decodeTurnReplySequence(value) {
|
|
562
|
+
const reader = new WireRecordReader(value, "TurnReplySequence");
|
|
563
|
+
return { turnId: reader.readString("turn_id"), sequence: reader.readInteger("sequence") };
|
|
564
|
+
}
|
|
565
|
+
export function encodeCompactContextInput(value) {
|
|
566
|
+
return { through_sequence: value.throughSequence };
|
|
567
|
+
}
|
|
568
|
+
export function decodeCompactContextInput(value) {
|
|
569
|
+
const reader = new WireRecordReader(value, "CompactContextInput");
|
|
570
|
+
return { throughSequence: reader.readInteger("through_sequence") };
|
|
571
|
+
}
|
|
572
|
+
export function encodeAgentSnapshot(value) {
|
|
573
|
+
return {
|
|
574
|
+
state: value.state === null ? null : encodeAgentState(value.state),
|
|
575
|
+
messages: value.messages.map(encodeAgentMessage),
|
|
576
|
+
pending_interrupts: value.pendingInterrupts.map(encodeAgentInterrupt),
|
|
577
|
+
tool_calls: value.toolCalls.map(encodeAgentToolCall),
|
|
578
|
+
usage: encodeAgentUsage(value.usage),
|
|
579
|
+
queued_message_count: value.queuedMessageCount,
|
|
580
|
+
plan: value.plan == null ? null : encodeAgentPlan(value.plan),
|
|
581
|
+
queued_messages: (value.queuedMessages ?? []).map(encodePendingUserMessage),
|
|
582
|
+
steered_messages: (value.steeredMessages ?? []).map(encodePendingUserMessage),
|
|
583
|
+
context_summary: value.contextSummary === undefined || value.contextSummary === null
|
|
584
|
+
? null
|
|
585
|
+
: encodeContextSummary(value.contextSummary),
|
|
586
|
+
session_settings: value.sessionSettings ?? null,
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
export function decodeAgentSnapshot(value) {
|
|
590
|
+
const reader = new WireRecordReader(value, "AgentSnapshot");
|
|
591
|
+
return {
|
|
592
|
+
state: reader.readObject("state") == null ? null : decodeAgentState(reader.readObject("state")),
|
|
593
|
+
messages: reader.readArray("messages").map(decodeAgentMessage),
|
|
594
|
+
pendingInterrupts: reader.readArray("pending_interrupts").map(decodeAgentInterrupt),
|
|
595
|
+
toolCalls: reader.readArray("tool_calls").map(decodeAgentToolCall),
|
|
596
|
+
usage: decodeAgentUsage(reader.readObject("usage")),
|
|
597
|
+
queuedMessageCount: reader.readIntegerOrDefault("queued_message_count", 0),
|
|
598
|
+
...(reader.readObject("plan") == null ? {} : { plan: decodeAgentPlan(reader.readObject("plan")) }),
|
|
599
|
+
queuedMessages: reader.readArrayOrEmpty("queued_messages").map(decodePendingUserMessage),
|
|
600
|
+
steeredMessages: reader.readArrayOrEmpty("steered_messages").map(decodePendingUserMessage),
|
|
601
|
+
contextSummary: reader.readObject("context_summary") == null
|
|
602
|
+
? null
|
|
603
|
+
: decodeContextSummary(reader.readObject("context_summary")),
|
|
604
|
+
sessionSettings: reader.readObject("session_settings") == null
|
|
605
|
+
? null
|
|
606
|
+
: decodeSessionSettings(reader.readObject("session_settings")),
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
export function encodeListAgentMessagesInput(value) {
|
|
610
|
+
return { before_sequence: value.beforeSequence, limit: value.limit };
|
|
611
|
+
}
|
|
612
|
+
export function decodeListAgentMessagesInput(value) {
|
|
613
|
+
const reader = new WireRecordReader(value, "ListAgentMessagesInput");
|
|
614
|
+
return {
|
|
615
|
+
beforeSequence: reader.readNullableInteger("before_sequence"),
|
|
616
|
+
limit: reader.readIntegerOrDefault("limit", 50),
|
|
617
|
+
};
|
|
618
|
+
}
|
|
619
|
+
export function encodeAgentMessagesPage(value) {
|
|
620
|
+
return {
|
|
621
|
+
messages: value.messages.map(encodeAgentMessage),
|
|
622
|
+
next_before_sequence: value.nextBeforeSequence,
|
|
623
|
+
deleted_before_sequence: value.deletedBeforeSequence ?? null,
|
|
624
|
+
};
|
|
625
|
+
}
|
|
626
|
+
export function decodeAgentMessagesPage(value) {
|
|
627
|
+
const reader = new WireRecordReader(value, "AgentMessagesPage");
|
|
628
|
+
return {
|
|
629
|
+
messages: reader.readArray("messages").map(decodeAgentMessage),
|
|
630
|
+
nextBeforeSequence: reader.readNullableInteger("next_before_sequence"),
|
|
631
|
+
deletedBeforeSequence: reader.readNullableInteger("deleted_before_sequence"),
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
function snakeCaseJsonCodec(typeName, encode, decode) {
|
|
635
|
+
return jsonCodec({ typeName, encode, decode });
|
|
636
|
+
}
|
|
637
|
+
export const agentSessionStartInputCodec = snakeCaseJsonCodec("AgentSessionStartInput", encodeAgentSessionStartInput, decodeAgentSessionStartInput);
|
|
638
|
+
export const agentStateCodec = snakeCaseJsonCodec("AgentState", encodeAgentState, decodeAgentState);
|
|
639
|
+
export const agentMessageCodec = snakeCaseJsonCodec("AgentMessage", encodeAgentMessage, decodeAgentMessage);
|
|
640
|
+
export const agentToolCallCodec = snakeCaseJsonCodec("AgentToolCall", encodeAgentToolCall, decodeAgentToolCall);
|
|
641
|
+
export const agentInterruptListCodec = snakeCaseJsonCodec("AgentInterruptList", (value) => value.map(encodeAgentInterrupt), (value) => {
|
|
642
|
+
if (!Array.isArray(value)) {
|
|
643
|
+
throw new TypeError("PendingInterrupts must be a JSON array");
|
|
644
|
+
}
|
|
645
|
+
return value.map(decodeAgentInterrupt);
|
|
646
|
+
});
|
|
647
|
+
export const agentInterruptResolutionCodec = snakeCaseJsonCodec("AgentInterruptResolution", encodeAgentInterruptResolution, decodeAgentInterruptResolution);
|
|
648
|
+
export const agentUsageCodec = snakeCaseJsonCodec("AgentUsage", encodeAgentUsage, decodeAgentUsage);
|
|
649
|
+
export const agentUserMessageCodec = snakeCaseJsonCodec("AgentUserMessage", encodeAgentUserMessage, decodeAgentUserMessage);
|
|
650
|
+
export const agentPlanCodec = snakeCaseJsonCodec("AgentPlan", encodeAgentPlan, decodeAgentPlan);
|
|
651
|
+
export const planExecutionRequestCodec = snakeCaseJsonCodec("PlanExecutionRequest", encodePlanRevisionRequest, decodePlanRevisionRequest);
|
|
652
|
+
export const executePlanRequestCodec = snakeCaseJsonCodec("ExecutePlanRequest", encodePlanRevisionRequest, decodePlanRevisionRequest);
|
|
653
|
+
export const toolCallCompletedCodec = snakeCaseJsonCodec("ToolCallCompleted", encodeToolCallCompleted, decodeToolCallCompleted);
|
|
654
|
+
export const agentEventCodec = snakeCaseJsonCodec("AgentEvent", encodeAgentEvent, decodeAgentEvent);
|
|
655
|
+
export const resolveInterruptInputCodec = snakeCaseJsonCodec("ResolveInterruptInput", encodeResolveInterruptInput, decodeResolveInterruptInput);
|
|
656
|
+
export const answerQuestionRequestCodec = snakeCaseJsonCodec("AnswerQuestionRequest", encodeAnswerQuestionRequest, decodeAnswerQuestionRequest);
|
|
657
|
+
export const steerUserMessageRequestCodec = snakeCaseJsonCodec("SteerUserMessageRequest", encodeSteerUserMessageRequest, decodeSteerUserMessageRequest);
|
|
658
|
+
export const deleteQueuedMessageRequestCodec = snakeCaseJsonCodec("DeleteQueuedMessageRequest", encodeDeleteQueuedMessageRequest, decodeDeleteQueuedMessageRequest);
|
|
659
|
+
export const cancelTurnRequestCodec = snakeCaseJsonCodec("CancelTurnRequest", encodeCancelTurnRequest, decodeCancelTurnRequest);
|
|
660
|
+
export const turnControlRequestCodec = snakeCaseJsonCodec("TurnControlRequest", encodeTurnControlRequest, decodeTurnControlRequest);
|
|
661
|
+
export const turnCancellationRequestCodec = snakeCaseJsonCodec("TurnCancellationRequest", encodeTurnCancellationRequest, decodeTurnCancellationRequest);
|
|
662
|
+
export const toolCallCancellationCodec = snakeCaseJsonCodec("ToolCallCancellation", encodeToolCallCancellation, decodeToolCallCancellation);
|
|
663
|
+
export const agentSnapshotCodec = snakeCaseJsonCodec("AgentSnapshot", encodeAgentSnapshot, decodeAgentSnapshot);
|
|
664
|
+
export const listAgentMessagesInputCodec = snakeCaseJsonCodec("ListAgentMessagesInput", encodeListAgentMessagesInput, decodeListAgentMessagesInput);
|
|
665
|
+
export const agentMessagesPageCodec = snakeCaseJsonCodec("AgentMessagesPage", encodeAgentMessagesPage, decodeAgentMessagesPage);
|
|
666
|
+
export const sessionSettingsCodec = snakeCaseJsonCodec("SessionSettings", encodeSessionSettings, decodeSessionSettings);
|
|
667
|
+
export const turnSessionSettingsCodec = snakeCaseJsonCodec("TurnSessionSettings", encodeTurnSessionSettings, decodeTurnSessionSettings);
|
|
668
|
+
export const updateSessionSettingsRequestCodec = snakeCaseJsonCodec("UpdateSessionSettingsRequest", encodeUpdateSessionSettingsRequest, decodeUpdateSessionSettingsRequest);
|
|
669
|
+
export const agentMessageChunkCodec = snakeCaseJsonCodec("AgentMessageChunk", encodeAgentMessageChunk, decodeAgentMessageChunk);
|
|
670
|
+
export const agentMessageIndexCodec = snakeCaseJsonCodec("AgentMessageIndex", encodeAgentMessageIndex, decodeAgentMessageIndex);
|
|
671
|
+
export const turnReplySequenceCodec = snakeCaseJsonCodec("TurnReplySequence", encodeTurnReplySequence, decodeTurnReplySequence);
|
|
672
|
+
export const contextSummaryCodec = snakeCaseJsonCodec("ContextSummary", encodeContextSummary, decodeContextSummary);
|
|
673
|
+
/** Input of `CompactContext` and `RecordTurnFailure`: a `CompactContextInput`, or `RunModel`'s JSON `null` as `undefined`. */
|
|
674
|
+
export const turnFailureRouteInputCodec = {
|
|
675
|
+
typeName: "TurnFailureRouteInput",
|
|
676
|
+
wireKind: "json",
|
|
677
|
+
encode: (value) => ({
|
|
678
|
+
kind: "json",
|
|
679
|
+
data: value === undefined ? "null" : JSON.stringify(encodeCompactContextInput(value)),
|
|
680
|
+
}),
|
|
681
|
+
decode: (value) => {
|
|
682
|
+
if (value.kind !== "json") {
|
|
683
|
+
throw new TypeError(`TurnFailureRouteInput requires JSON, got ${value.kind}`);
|
|
684
|
+
}
|
|
685
|
+
const parsed = JSON.parse(String(value.data));
|
|
686
|
+
return parsed === null ? undefined : decodeCompactContextInput(parsed);
|
|
687
|
+
},
|
|
688
|
+
};
|
|
689
|
+
//# sourceMappingURL=agent-session-codecs.js.map
|