@markusylisiurunen/tau 0.3.18 → 0.3.20
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 +22 -48
- package/dist/core/cli.js +6 -39
- package/dist/core/cli.js.map +1 -1
- package/dist/core/commands/index.js +1 -1
- package/dist/core/commands/index.js.map +1 -1
- package/dist/core/commands/registry.js +5 -76
- package/dist/core/commands/registry.js.map +1 -1
- package/dist/core/config/builtin_themes.js +0 -62
- package/dist/core/config/builtin_themes.js.map +1 -1
- package/dist/core/config/content_loader.js +4 -7
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/diff_tool.js +1 -1
- package/dist/core/config/diff_tool.js.map +1 -1
- package/dist/core/config/runtime.js +1 -1
- package/dist/core/config/runtime.js.map +1 -1
- package/dist/core/config/runtime_config_snapshot.js +1 -1
- package/dist/core/config/runtime_config_snapshot.js.map +1 -1
- package/dist/core/config/schema.js +10 -43
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/skill_parser.js +1 -1
- package/dist/core/config/skill_parser.js.map +1 -1
- package/dist/core/config/virtual_defaults.js +0 -1
- package/dist/core/config/virtual_defaults.js.map +1 -1
- package/dist/core/debug.js +1 -7
- package/dist/core/debug.js.map +1 -1
- package/dist/core/diff_review/bridge.js +1 -3
- package/dist/core/diff_review/bridge.js.map +1 -1
- package/dist/core/diff_review/index.js.map +1 -1
- package/dist/core/diff_review/protocol.js +13 -13
- package/dist/core/diff_review/protocol.js.map +1 -1
- package/dist/core/diff_review/review_instructions.js +48 -0
- package/dist/core/diff_review/review_instructions.js.map +1 -0
- package/dist/core/events/index.js.map +1 -1
- package/dist/core/events/parser.js +161 -38
- package/dist/core/events/parser.js.map +1 -1
- package/dist/core/events/types.js +1 -1
- package/dist/core/events/types.js.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/models/catalog.js +4 -4
- package/dist/core/models/catalog.js.map +1 -1
- package/dist/core/nook/cli.js +10 -0
- package/dist/core/nook/cli.js.map +1 -1
- package/dist/core/nook/client.js +59 -16
- package/dist/core/nook/client.js.map +1 -1
- package/dist/core/nook/index.js.map +1 -1
- package/dist/core/personas.js +29 -14
- package/dist/core/personas.js.map +1 -1
- package/dist/core/runtime/chat_runtime.js +12 -34
- package/dist/core/runtime/chat_runtime.js.map +1 -1
- package/dist/core/runtime/conversation_turn_runtime.js +0 -4
- package/dist/core/runtime/conversation_turn_runtime.js.map +1 -1
- package/dist/core/runtime/runtime_bootstrap.js +191 -317
- package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
- package/dist/core/runtime/session_prompt_composer.js +2 -6
- package/dist/core/runtime/session_prompt_composer.js.map +1 -1
- package/dist/core/session/core_session.js +2 -5
- package/dist/core/session/core_session.js.map +1 -1
- package/dist/core/session/message_accumulator.js +6 -0
- package/dist/core/session/message_accumulator.js.map +1 -1
- package/dist/core/session/runner.js +137 -32
- package/dist/core/session/runner.js.map +1 -1
- package/dist/core/session/session_engine.js +365 -120
- package/dist/core/session/session_engine.js.map +1 -1
- package/dist/core/static/index.js +0 -11
- package/dist/core/static/index.js.map +1 -1
- package/dist/core/subagents/registry.js +0 -2
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/subagents/subagent_engine.js +1 -3
- package/dist/core/subagents/subagent_engine.js.map +1 -1
- package/dist/core/telegram/adapter.js +34 -2
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/config.js +3 -13
- package/dist/core/telegram/config.js.map +1 -1
- package/dist/core/telegram/session_manager.js +16 -5
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/tools/bash.js +6 -21
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.js +1 -4
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/emit_output.js +1 -1
- package/dist/core/tools/emit_output.js.map +1 -1
- package/dist/core/tools/execution_backend.js +3 -1
- package/dist/core/tools/execution_backend.js.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/list.js +1 -1
- package/dist/core/tools/list.js.map +1 -1
- package/dist/core/tools/nook.js +29 -15
- package/dist/core/tools/nook.js.map +1 -1
- package/dist/core/tools/read.js +1 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/core/tools/send_input_to_agent.js +1 -1
- package/dist/core/tools/send_input_to_agent.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +40 -88
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/tools/terminate_agent.js +1 -1
- package/dist/core/tools/terminate_agent.js.map +1 -1
- package/dist/core/tools/view_image.js +1 -1
- package/dist/core/tools/view_image.js.map +1 -1
- package/dist/core/tools/wait_for_agents.js +1 -1
- package/dist/core/tools/wait_for_agents.js.map +1 -1
- package/dist/core/tools/web_fetch.js +1 -1
- package/dist/core/tools/web_fetch.js.map +1 -1
- package/dist/core/tools/web_search.js +1 -1
- package/dist/core/tools/web_search.js.map +1 -1
- package/dist/core/tools/write.js +1 -4
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/types.js +0 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/context.js +1 -1
- package/dist/core/utils/context.js.map +1 -1
- package/dist/core/utils/context_builder.js +1 -15
- package/dist/core/utils/context_builder.js.map +1 -1
- package/dist/core/utils/user_metadata.js +13 -19
- package/dist/core/utils/user_metadata.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/execution/cloudflare_sandbox_execution_environment.js +15 -10
- package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
- package/dist/execution/fly_sprite_execution_environment.js +9 -1
- package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
- package/dist/execution/local_execution_environment.js +9 -55
- package/dist/execution/local_execution_environment.js.map +1 -1
- package/dist/execution/tool_backend_execution_environment.js +7 -10
- package/dist/execution/tool_backend_execution_environment.js.map +1 -1
- package/dist/host/client_tool_broker.js +1 -1
- package/dist/host/client_tool_broker.js.map +1 -1
- package/dist/host/execution_runtime.js +35 -0
- package/dist/host/execution_runtime.js.map +1 -0
- package/dist/host/hosted_ephemeral_agent_session.js +20 -11
- package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
- package/dist/host/local_session_host.js +117 -109
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/host/session_protocol_handler.js +0 -10
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/main.js +31 -63
- package/dist/main.js.map +1 -1
- package/dist/nook/README.md +4 -1
- package/dist/nook/worker/index.js +41 -1
- package/dist/nook/worker/index.js.map +1 -1
- package/dist/protocol/index.d.ts +1 -1
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/session_protocol.d.ts +1 -11
- package/dist/protocol/session_protocol.js +242 -343
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/client.js +2 -24
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/session.js +0 -9
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +0 -4
- package/dist/starter/skills/guided-review/SKILL.md +1 -1
- package/dist/tui/chat_controller/command_hints.js +0 -2
- package/dist/tui/chat_controller/command_hints.js.map +1 -1
- package/dist/tui/chat_view.js +0 -2
- package/dist/tui/chat_view.js.map +1 -1
- package/dist/tui/session_chat_app.js +1 -1
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +2 -38
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/ui/custom_editor.js +0 -5
- package/dist/tui/ui/custom_editor.js.map +1 -1
- package/dist/tui/ui/footer.js +4 -37
- package/dist/tui/ui/footer.js.map +1 -1
- package/dist/tui/ui/slash_autocomplete.js +2 -33
- package/dist/tui/ui/slash_autocomplete.js.map +1 -1
- package/dist/tui/ui/theme/palette.js +0 -2
- package/dist/tui/ui/theme/palette.js.map +1 -1
- package/dist/tui/ui/theme/theme.js.map +1 -1
- package/package.json +4 -4
- package/dist/core/diff_review/review_thread.js +0 -264
- package/dist/core/diff_review/review_thread.js.map +0 -1
- package/dist/core/static/prompts/diff-review-wrapper.md +0 -26
|
@@ -15,7 +15,6 @@ export const SESSION_PROTOCOL_METHODS = [
|
|
|
15
15
|
"session.exec",
|
|
16
16
|
"session.interrupt",
|
|
17
17
|
"session.snapshot",
|
|
18
|
-
"session.setRisk",
|
|
19
18
|
"session.setReasoning",
|
|
20
19
|
"session.setPersona",
|
|
21
20
|
"session.resolvePrompt",
|
|
@@ -90,7 +89,7 @@ const sessionProtocolReadyMessageSchema = z
|
|
|
90
89
|
type: z.literal("ready"),
|
|
91
90
|
methods: sessionProtocolMethodListSchema,
|
|
92
91
|
})
|
|
93
|
-
.
|
|
92
|
+
.strip();
|
|
94
93
|
const sessionProtocolClientToolCallMessageSchema = z
|
|
95
94
|
.object({
|
|
96
95
|
version: z.literal(SESSION_PROTOCOL_VERSION),
|
|
@@ -102,7 +101,7 @@ const sessionProtocolClientToolCallMessageSchema = z
|
|
|
102
101
|
ackDeadlineMs: z.number().int().positive(),
|
|
103
102
|
executionDeadlineMs: z.number().int().positive(),
|
|
104
103
|
})
|
|
105
|
-
.
|
|
104
|
+
.strip();
|
|
106
105
|
const sessionProtocolClientToolCancelMessageSchema = z
|
|
107
106
|
.object({
|
|
108
107
|
version: z.literal(SESSION_PROTOCOL_VERSION),
|
|
@@ -111,7 +110,7 @@ const sessionProtocolClientToolCancelMessageSchema = z
|
|
|
111
110
|
callId: nonEmptyStringSchema,
|
|
112
111
|
reason: z.enum(["aborted", "timeout", "client-detached"]),
|
|
113
112
|
})
|
|
114
|
-
.
|
|
113
|
+
.strip();
|
|
115
114
|
const sessionProtocolClientToolMessageSchema = z.discriminatedUnion("type", [
|
|
116
115
|
sessionProtocolClientToolCallMessageSchema,
|
|
117
116
|
sessionProtocolClientToolCancelMessageSchema,
|
|
@@ -124,7 +123,7 @@ const sessionProtocolRequestEnvelopeSchema = z
|
|
|
124
123
|
method: z.string(),
|
|
125
124
|
params: z.unknown(),
|
|
126
125
|
})
|
|
127
|
-
.
|
|
126
|
+
.strip();
|
|
128
127
|
const sessionProtocolOutgoingRoutingSchema = z
|
|
129
128
|
.object({
|
|
130
129
|
version: z.literal(SESSION_PROTOCOL_VERSION),
|
|
@@ -138,11 +137,11 @@ const sessionProtocolOutgoingRoutingSchema = z
|
|
|
138
137
|
"response",
|
|
139
138
|
]),
|
|
140
139
|
})
|
|
141
|
-
.
|
|
142
|
-
const sessionProtocolIdFieldSchema = z.object({ id: z.unknown() }).
|
|
143
|
-
const sessionProtocolOkFieldSchema = z.object({ ok: z.unknown() }).
|
|
144
|
-
const sessionProtocolVersionFieldSchema = z.object({ version: z.unknown() }).
|
|
145
|
-
const sessionProtocolTypeFieldSchema = z.object({ type: z.unknown() }).
|
|
140
|
+
.strip();
|
|
141
|
+
const sessionProtocolIdFieldSchema = z.object({ id: z.unknown() }).strip();
|
|
142
|
+
const sessionProtocolOkFieldSchema = z.object({ ok: z.unknown() }).strip();
|
|
143
|
+
const sessionProtocolVersionFieldSchema = z.object({ version: z.unknown() }).strip();
|
|
144
|
+
const sessionProtocolTypeFieldSchema = z.object({ type: z.unknown() }).strip();
|
|
146
145
|
const sessionProtocolResponseSuccessSchema = z
|
|
147
146
|
.object({
|
|
148
147
|
version: z.literal(SESSION_PROTOCOL_VERSION),
|
|
@@ -151,7 +150,7 @@ const sessionProtocolResponseSuccessSchema = z
|
|
|
151
150
|
ok: z.literal(true),
|
|
152
151
|
result: z.unknown(),
|
|
153
152
|
})
|
|
154
|
-
.
|
|
153
|
+
.strip();
|
|
155
154
|
const sessionProtocolResponseErrorSchema = z
|
|
156
155
|
.object({
|
|
157
156
|
version: z.literal(SESSION_PROTOCOL_VERSION),
|
|
@@ -164,9 +163,9 @@ const sessionProtocolResponseErrorSchema = z
|
|
|
164
163
|
message: z.string(),
|
|
165
164
|
data: z.unknown().optional(),
|
|
166
165
|
})
|
|
167
|
-
.
|
|
166
|
+
.strip(),
|
|
168
167
|
})
|
|
169
|
-
.
|
|
168
|
+
.strip();
|
|
170
169
|
const sessionProtocolClientToolDefinitionSchema = z
|
|
171
170
|
.object({
|
|
172
171
|
name: nonEmptyStringSchema,
|
|
@@ -174,7 +173,7 @@ const sessionProtocolClientToolDefinitionSchema = z
|
|
|
174
173
|
parameters: z.unknown(),
|
|
175
174
|
executionTimeoutMs: z.number().int().positive().optional(),
|
|
176
175
|
})
|
|
177
|
-
.
|
|
176
|
+
.strip();
|
|
178
177
|
const sessionProtocolInitializeParamsSchema = z
|
|
179
178
|
.object({
|
|
180
179
|
client: z
|
|
@@ -183,16 +182,16 @@ const sessionProtocolInitializeParamsSchema = z
|
|
|
183
182
|
version: nonEmptyStringSchema,
|
|
184
183
|
tools: z.array(sessionProtocolClientToolDefinitionSchema).optional(),
|
|
185
184
|
})
|
|
186
|
-
.
|
|
185
|
+
.strip(),
|
|
187
186
|
})
|
|
188
|
-
.
|
|
187
|
+
.strip();
|
|
189
188
|
const sessionProtocolUserMessageParamsSchema = z
|
|
190
189
|
.object({
|
|
191
190
|
sessionId: nonEmptyStringSchema,
|
|
192
191
|
text: z.string(),
|
|
193
192
|
historyEntryId: nonEmptyStringSchema.optional(),
|
|
194
193
|
})
|
|
195
|
-
.
|
|
194
|
+
.strip();
|
|
196
195
|
const sessionProtocolRecordParamsSchema = sessionProtocolUserMessageParamsSchema;
|
|
197
196
|
const sessionProtocolExecParamsSchema = z
|
|
198
197
|
.object({
|
|
@@ -201,18 +200,12 @@ const sessionProtocolExecParamsSchema = z
|
|
|
201
200
|
cwd: nonEmptyStringSchema.optional(),
|
|
202
201
|
timeoutMs: z.number().int().positive().optional(),
|
|
203
202
|
})
|
|
204
|
-
.
|
|
203
|
+
.strip();
|
|
205
204
|
const sessionProtocolSessionIdParamsSchema = z
|
|
206
205
|
.object({
|
|
207
206
|
sessionId: nonEmptyStringSchema,
|
|
208
207
|
})
|
|
209
|
-
.
|
|
210
|
-
const sessionProtocolSetRiskParamsSchema = z
|
|
211
|
-
.object({
|
|
212
|
-
sessionId: nonEmptyStringSchema,
|
|
213
|
-
riskLevel: z.enum(["read-only", "read-write"]),
|
|
214
|
-
})
|
|
215
|
-
.strict();
|
|
208
|
+
.strip();
|
|
216
209
|
const sessionProtocolReasoningEffortSchema = z.enum([
|
|
217
210
|
"none",
|
|
218
211
|
"minimal",
|
|
@@ -227,33 +220,33 @@ const sessionProtocolSetReasoningParamsSchema = z
|
|
|
227
220
|
sessionId: nonEmptyStringSchema,
|
|
228
221
|
reasoning: sessionProtocolReasoningEffortSchema,
|
|
229
222
|
})
|
|
230
|
-
.
|
|
223
|
+
.strip();
|
|
231
224
|
const sessionProtocolSetPersonaParamsSchema = z
|
|
232
225
|
.object({
|
|
233
226
|
sessionId: nonEmptyStringSchema,
|
|
234
227
|
personaId: nonEmptyStringSchema,
|
|
235
228
|
})
|
|
236
|
-
.
|
|
229
|
+
.strip();
|
|
237
230
|
const sessionProtocolResolvePromptParamsSchema = z
|
|
238
231
|
.object({
|
|
239
232
|
sessionId: nonEmptyStringSchema,
|
|
240
233
|
promptId: nonEmptyStringSchema,
|
|
241
234
|
})
|
|
242
|
-
.
|
|
235
|
+
.strip();
|
|
243
236
|
const sessionProtocolAutocompletePathsParamsSchema = z
|
|
244
237
|
.object({
|
|
245
238
|
sessionId: nonEmptyStringSchema,
|
|
246
239
|
query: z.string(),
|
|
247
240
|
limit: z.number().int().positive().max(100),
|
|
248
241
|
})
|
|
249
|
-
.
|
|
242
|
+
.strip();
|
|
250
243
|
const sessionProtocolCompactParamsSchema = z
|
|
251
244
|
.object({
|
|
252
245
|
sessionId: nonEmptyStringSchema,
|
|
253
246
|
mode: z.enum(["summary-only", "summary-and-last"]),
|
|
254
247
|
guidance: z.string().optional(),
|
|
255
248
|
})
|
|
256
|
-
.
|
|
249
|
+
.strip();
|
|
257
250
|
const sessionProtocolPruneParamsSchema = z
|
|
258
251
|
.object({
|
|
259
252
|
sessionId: nonEmptyStringSchema,
|
|
@@ -261,19 +254,19 @@ const sessionProtocolPruneParamsSchema = z
|
|
|
261
254
|
fraction: z.number().min(0).max(1),
|
|
262
255
|
guidance: z.string().optional(),
|
|
263
256
|
})
|
|
264
|
-
.
|
|
257
|
+
.strip();
|
|
265
258
|
const sessionProtocolRewindParamsSchema = z
|
|
266
259
|
.object({
|
|
267
260
|
sessionId: nonEmptyStringSchema,
|
|
268
261
|
historyEntryId: nonEmptyStringSchema,
|
|
269
262
|
})
|
|
270
|
-
.
|
|
263
|
+
.strip();
|
|
271
264
|
const sessionProtocolTerminateSubagentParamsSchema = z
|
|
272
265
|
.object({
|
|
273
266
|
sessionId: nonEmptyStringSchema,
|
|
274
267
|
subagentId: nonEmptyStringSchema,
|
|
275
268
|
})
|
|
276
|
-
.
|
|
269
|
+
.strip();
|
|
277
270
|
const sessionProtocolEphemeralAgentToolSchema = z.enum([
|
|
278
271
|
"bash",
|
|
279
272
|
"write",
|
|
@@ -287,9 +280,8 @@ const sessionProtocolEphemeralCreateParamsSchema = z
|
|
|
287
280
|
sessionId: nonEmptyStringSchema,
|
|
288
281
|
instructions: nonEmptyStringSchema,
|
|
289
282
|
tools: z.array(sessionProtocolEphemeralAgentToolSchema),
|
|
290
|
-
riskLevel: z.enum(["read-only", "read-write"]),
|
|
291
283
|
})
|
|
292
|
-
.
|
|
284
|
+
.strip();
|
|
293
285
|
const sessionProtocolEphemeralSubmitParamsSchema = z
|
|
294
286
|
.object({
|
|
295
287
|
sessionId: nonEmptyStringSchema,
|
|
@@ -298,19 +290,19 @@ const sessionProtocolEphemeralSubmitParamsSchema = z
|
|
|
298
290
|
forkFromThreadId: nonEmptyStringSchema.optional(),
|
|
299
291
|
message: nonEmptyStringSchema,
|
|
300
292
|
})
|
|
301
|
-
.
|
|
293
|
+
.strip();
|
|
302
294
|
const sessionProtocolEphemeralCloseParamsSchema = z
|
|
303
295
|
.object({
|
|
304
296
|
sessionId: nonEmptyStringSchema,
|
|
305
297
|
contextId: nonEmptyStringSchema,
|
|
306
298
|
})
|
|
307
|
-
.
|
|
299
|
+
.strip();
|
|
308
300
|
const sessionProtocolClientToolAckParamsSchema = z
|
|
309
301
|
.object({
|
|
310
302
|
sessionId: nonEmptyStringSchema,
|
|
311
303
|
callId: nonEmptyStringSchema,
|
|
312
304
|
})
|
|
313
|
-
.
|
|
305
|
+
.strip();
|
|
314
306
|
const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
|
|
315
307
|
z
|
|
316
308
|
.object({
|
|
@@ -319,7 +311,7 @@ const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
|
|
|
319
311
|
ok: z.literal(true),
|
|
320
312
|
content: z.string(),
|
|
321
313
|
})
|
|
322
|
-
.
|
|
314
|
+
.strip(),
|
|
323
315
|
z
|
|
324
316
|
.object({
|
|
325
317
|
sessionId: nonEmptyStringSchema,
|
|
@@ -327,7 +319,7 @@ const sessionProtocolClientToolResultParamsSchema = z.discriminatedUnion("ok", [
|
|
|
327
319
|
ok: z.literal(false),
|
|
328
320
|
error: z.string(),
|
|
329
321
|
})
|
|
330
|
-
.
|
|
322
|
+
.strip(),
|
|
331
323
|
]);
|
|
332
324
|
const absolutePathSchema = nonEmptyStringSchema.refine((value) => value.startsWith("/"));
|
|
333
325
|
const sessionProtocolLocalExecutionEnvironmentInputSchema = z
|
|
@@ -335,7 +327,7 @@ const sessionProtocolLocalExecutionEnvironmentInputSchema = z
|
|
|
335
327
|
kind: z.literal("local"),
|
|
336
328
|
cwd: absolutePathSchema,
|
|
337
329
|
})
|
|
338
|
-
.
|
|
330
|
+
.strip();
|
|
339
331
|
const sessionProtocolCloudflareSandboxExecutionEnvironmentInputSchema = z
|
|
340
332
|
.object({
|
|
341
333
|
kind: z.literal("cloudflare-sandbox"),
|
|
@@ -343,7 +335,7 @@ const sessionProtocolCloudflareSandboxExecutionEnvironmentInputSchema = z
|
|
|
343
335
|
sandboxId: nonEmptyStringSchema,
|
|
344
336
|
cwd: absolutePathSchema,
|
|
345
337
|
})
|
|
346
|
-
.
|
|
338
|
+
.strip();
|
|
347
339
|
const sessionProtocolFlySpriteExecutionEnvironmentInputSchema = z
|
|
348
340
|
.object({
|
|
349
341
|
kind: z.literal("fly-sprite"),
|
|
@@ -351,7 +343,7 @@ const sessionProtocolFlySpriteExecutionEnvironmentInputSchema = z
|
|
|
351
343
|
spriteName: nonEmptyStringSchema,
|
|
352
344
|
cwd: absolutePathSchema,
|
|
353
345
|
})
|
|
354
|
-
.
|
|
346
|
+
.strip();
|
|
355
347
|
const sessionProtocolExecutionEnvironmentInputSchema = z.discriminatedUnion("kind", [
|
|
356
348
|
sessionProtocolLocalExecutionEnvironmentInputSchema,
|
|
357
349
|
sessionProtocolCloudflareSandboxExecutionEnvironmentInputSchema,
|
|
@@ -361,17 +353,16 @@ const sessionProtocolCreateParamsSchema = z
|
|
|
361
353
|
.object({
|
|
362
354
|
executionEnvironment: sessionProtocolExecutionEnvironmentInputSchema,
|
|
363
355
|
personaId: nonEmptyStringSchema.optional(),
|
|
364
|
-
riskLevel: z.enum(["read-only", "read-write"]).optional(),
|
|
365
356
|
reasoning: sessionProtocolReasoningEffortSchema.optional(),
|
|
366
357
|
})
|
|
367
|
-
.
|
|
368
|
-
const sessionProtocolEmptyParamsSchema = z.object({}).
|
|
358
|
+
.strip();
|
|
359
|
+
const sessionProtocolEmptyParamsSchema = z.object({}).strip();
|
|
369
360
|
const sessionProtocolSessionSummarySchema = z
|
|
370
361
|
.object({
|
|
371
362
|
sessionId: nonEmptyStringSchema,
|
|
372
363
|
lifecycle: sessionProtocolSessionLifecycleSchema,
|
|
373
364
|
})
|
|
374
|
-
.
|
|
365
|
+
.strip();
|
|
375
366
|
const sessionProtocolServiceTierSchema = z.enum(["priority", "flex"]);
|
|
376
367
|
const sessionProtocolModelSnapshotSchema = z
|
|
377
368
|
.object({
|
|
@@ -400,30 +391,29 @@ const sessionProtocolModelSnapshotSchema = z
|
|
|
400
391
|
cacheRead: z.number().nonnegative(),
|
|
401
392
|
cacheWrite: z.number().nonnegative(),
|
|
402
393
|
})
|
|
403
|
-
.
|
|
394
|
+
.strip())
|
|
404
395
|
.optional(),
|
|
405
396
|
})
|
|
406
|
-
.
|
|
397
|
+
.strip(),
|
|
407
398
|
contextWindow: z.number().int().positive(),
|
|
408
399
|
maxTokens: z.number().int().positive(),
|
|
409
400
|
compat: z.unknown().optional(),
|
|
410
401
|
})
|
|
411
|
-
.
|
|
402
|
+
.strip();
|
|
412
403
|
const sessionProtocolPersonaSettingsSnapshotSchema = z
|
|
413
404
|
.object({
|
|
414
405
|
reasoning: sessionProtocolReasoningEffortSchema.optional(),
|
|
415
406
|
interleavedThinking: z.boolean().optional(),
|
|
416
407
|
serviceTier: sessionProtocolServiceTierSchema.optional(),
|
|
417
408
|
})
|
|
418
|
-
.
|
|
409
|
+
.strip();
|
|
419
410
|
const sessionProtocolSubagentSnapshotSchema = z
|
|
420
411
|
.object({
|
|
421
412
|
description: z.string().optional(),
|
|
422
413
|
tools: z.array(nonEmptyStringSchema).optional(),
|
|
423
|
-
riskLevel: z.enum(["read-only", "read-write"]).optional(),
|
|
424
414
|
launchModels: z.array(nonEmptyStringSchema).optional(),
|
|
425
415
|
})
|
|
426
|
-
.
|
|
416
|
+
.strip();
|
|
427
417
|
const sessionProtocolPersonaSnapshotSchema = z
|
|
428
418
|
.object({
|
|
429
419
|
id: nonEmptyStringSchema,
|
|
@@ -435,36 +425,35 @@ const sessionProtocolPersonaSnapshotSchema = z
|
|
|
435
425
|
skills: z.union([z.literal("*"), z.array(nonEmptyStringSchema)]),
|
|
436
426
|
source: z.enum(["builtin", "user", "project"]),
|
|
437
427
|
})
|
|
438
|
-
.
|
|
428
|
+
.strip();
|
|
439
429
|
const sessionProtocolPromptTemplateSnapshotSchema = z
|
|
440
430
|
.object({
|
|
441
431
|
id: nonEmptyStringSchema,
|
|
442
432
|
label: z.string().optional(),
|
|
443
433
|
description: z.string().optional(),
|
|
444
434
|
})
|
|
445
|
-
.
|
|
435
|
+
.strip();
|
|
446
436
|
const sessionProtocolSkillSnapshotSchema = z
|
|
447
437
|
.object({
|
|
448
438
|
name: nonEmptyStringSchema,
|
|
449
439
|
description: nonEmptyStringSchema,
|
|
450
440
|
path: nonEmptyStringSchema,
|
|
451
441
|
})
|
|
452
|
-
.
|
|
442
|
+
.strip();
|
|
453
443
|
const sessionProtocolContentCatalogSnapshotSchema = z
|
|
454
444
|
.object({
|
|
455
445
|
personas: z.array(sessionProtocolPersonaSnapshotSchema),
|
|
456
446
|
prompts: z.array(sessionProtocolPromptTemplateSnapshotSchema),
|
|
457
447
|
skills: z.array(sessionProtocolSkillSnapshotSchema),
|
|
458
448
|
})
|
|
459
|
-
.
|
|
449
|
+
.strip();
|
|
460
450
|
const sessionProtocolSettingsSnapshotSchema = z
|
|
461
451
|
.object({
|
|
462
452
|
personaId: nonEmptyStringSchema,
|
|
463
|
-
riskLevel: z.enum(["read-only", "read-write"]),
|
|
464
453
|
reasoning: sessionProtocolReasoningEffortSchema.optional(),
|
|
465
454
|
serviceTier: sessionProtocolServiceTierSchema.optional(),
|
|
466
455
|
})
|
|
467
|
-
.
|
|
456
|
+
.strip();
|
|
468
457
|
const sessionProtocolBootstrapSnapshotSchema = z
|
|
469
458
|
.object({
|
|
470
459
|
model: sessionProtocolModelSnapshotSchema,
|
|
@@ -473,16 +462,16 @@ const sessionProtocolBootstrapSnapshotSchema = z
|
|
|
473
462
|
environmentTag: nonEmptyStringSchema,
|
|
474
463
|
subagentPrompts: z.record(z.string(), z.string()),
|
|
475
464
|
})
|
|
476
|
-
.
|
|
465
|
+
.strip(),
|
|
477
466
|
})
|
|
478
|
-
.
|
|
467
|
+
.strip();
|
|
479
468
|
const sessionProtocolLocalExecutionEnvironmentSnapshotSchema = z
|
|
480
469
|
.object({
|
|
481
470
|
kind: z.literal("local"),
|
|
482
471
|
cwd: nonEmptyStringSchema,
|
|
483
472
|
home: nonEmptyStringSchema,
|
|
484
473
|
})
|
|
485
|
-
.
|
|
474
|
+
.strip();
|
|
486
475
|
const sessionProtocolCloudflareSandboxExecutionEnvironmentSnapshotSchema = z
|
|
487
476
|
.object({
|
|
488
477
|
kind: z.literal("cloudflare-sandbox"),
|
|
@@ -491,7 +480,7 @@ const sessionProtocolCloudflareSandboxExecutionEnvironmentSnapshotSchema = z
|
|
|
491
480
|
cwd: nonEmptyStringSchema,
|
|
492
481
|
home: nonEmptyStringSchema,
|
|
493
482
|
})
|
|
494
|
-
.
|
|
483
|
+
.strip();
|
|
495
484
|
const sessionProtocolFlySpriteExecutionEnvironmentSnapshotSchema = z
|
|
496
485
|
.object({
|
|
497
486
|
kind: z.literal("fly-sprite"),
|
|
@@ -500,7 +489,7 @@ const sessionProtocolFlySpriteExecutionEnvironmentSnapshotSchema = z
|
|
|
500
489
|
cwd: nonEmptyStringSchema,
|
|
501
490
|
home: nonEmptyStringSchema,
|
|
502
491
|
})
|
|
503
|
-
.
|
|
492
|
+
.strip();
|
|
504
493
|
const sessionProtocolExecutionEnvironmentSnapshotSchema = z.discriminatedUnion("kind", [
|
|
505
494
|
sessionProtocolLocalExecutionEnvironmentSnapshotSchema,
|
|
506
495
|
sessionProtocolCloudflareSandboxExecutionEnvironmentSnapshotSchema,
|
|
@@ -512,14 +501,14 @@ const sessionProtocolSystemMessageSchema = z
|
|
|
512
501
|
content: z.string(),
|
|
513
502
|
timestamp: z.number().finite(),
|
|
514
503
|
})
|
|
515
|
-
.
|
|
504
|
+
.strip();
|
|
516
505
|
const sessionProtocolDraftAssistantMessageSchema = z
|
|
517
506
|
.object({
|
|
518
507
|
role: z.literal("assistant"),
|
|
519
508
|
content: z.array(z.unknown()),
|
|
520
509
|
timestamp: z.number().finite(),
|
|
521
510
|
})
|
|
522
|
-
.
|
|
511
|
+
.strip();
|
|
523
512
|
const sessionProtocolMessagePayloadSchema = z.union([
|
|
524
513
|
sessionProtocolSystemMessageSchema,
|
|
525
514
|
messageSchema,
|
|
@@ -532,14 +521,14 @@ const sessionProtocolMessageSchema = z
|
|
|
532
521
|
modelVisible: z.boolean(),
|
|
533
522
|
message: sessionProtocolMessagePayloadSchema,
|
|
534
523
|
})
|
|
535
|
-
.
|
|
524
|
+
.strip();
|
|
536
525
|
const sessionProtocolNoticeSchema = z
|
|
537
526
|
.object({
|
|
538
527
|
severity: z.enum(["info", "warn", "error"]),
|
|
539
528
|
text: z.string(),
|
|
540
529
|
timestamp: z.number().finite(),
|
|
541
530
|
})
|
|
542
|
-
.
|
|
531
|
+
.strip();
|
|
543
532
|
const sessionProtocolOperationSchema = z
|
|
544
533
|
.object({
|
|
545
534
|
kind: z.enum(["auto-compaction", "manual-compaction", "prune", "reload", "rewind"]),
|
|
@@ -550,7 +539,7 @@ const sessionProtocolOperationSchema = z
|
|
|
550
539
|
error: z.string().optional(),
|
|
551
540
|
data: z.record(z.string(), z.unknown()).optional(),
|
|
552
541
|
})
|
|
553
|
-
.
|
|
542
|
+
.strip();
|
|
554
543
|
const sessionProtocolTimelineItemSchema = z.discriminatedUnion("type", [
|
|
555
544
|
z
|
|
556
545
|
.object({
|
|
@@ -558,21 +547,21 @@ const sessionProtocolTimelineItemSchema = z.discriminatedUnion("type", [
|
|
|
558
547
|
id: nonEmptyStringSchema,
|
|
559
548
|
messageId: nonEmptyStringSchema,
|
|
560
549
|
})
|
|
561
|
-
.
|
|
550
|
+
.strip(),
|
|
562
551
|
z
|
|
563
552
|
.object({
|
|
564
553
|
type: z.literal("notice"),
|
|
565
554
|
id: nonEmptyStringSchema,
|
|
566
555
|
notice: sessionProtocolNoticeSchema,
|
|
567
556
|
})
|
|
568
|
-
.
|
|
557
|
+
.strip(),
|
|
569
558
|
z
|
|
570
559
|
.object({
|
|
571
560
|
type: z.literal("operation"),
|
|
572
561
|
id: nonEmptyStringSchema,
|
|
573
562
|
operation: sessionProtocolOperationSchema,
|
|
574
563
|
})
|
|
575
|
-
.
|
|
564
|
+
.strip(),
|
|
576
565
|
]);
|
|
577
566
|
const sessionProtocolToolRunSchema = z
|
|
578
567
|
.object({
|
|
@@ -584,7 +573,7 @@ const sessionProtocolToolRunSchema = z
|
|
|
584
573
|
messageId: nonEmptyStringSchema,
|
|
585
574
|
contentIndex: z.number().int().nonnegative(),
|
|
586
575
|
})
|
|
587
|
-
.
|
|
576
|
+
.strip(),
|
|
588
577
|
status: z.enum(["queued", "running", "succeeded", "failed", "blocked", "cancelled"]),
|
|
589
578
|
startedAt: z.number().finite().optional(),
|
|
590
579
|
finishedAt: z.number().finite().optional(),
|
|
@@ -593,7 +582,7 @@ const sessionProtocolToolRunSchema = z
|
|
|
593
582
|
error: z.string().optional(),
|
|
594
583
|
facetIds: z.array(nonEmptyStringSchema),
|
|
595
584
|
})
|
|
596
|
-
.
|
|
585
|
+
.strip();
|
|
597
586
|
const sessionProtocolAgentUsageSchema = z
|
|
598
587
|
.object({
|
|
599
588
|
input: z.number().finite(),
|
|
@@ -603,7 +592,7 @@ const sessionProtocolAgentUsageSchema = z
|
|
|
603
592
|
contextWindowUsageTokens: z.number().finite(),
|
|
604
593
|
contextWindow: z.number().finite(),
|
|
605
594
|
})
|
|
606
|
-
.
|
|
595
|
+
.strip();
|
|
607
596
|
const sessionProtocolAgentRunSchema = z
|
|
608
597
|
.object({
|
|
609
598
|
id: nonEmptyStringSchema,
|
|
@@ -623,13 +612,13 @@ const sessionProtocolAgentRunSchema = z
|
|
|
623
612
|
finalText: z.string().optional(),
|
|
624
613
|
error: z.string().optional(),
|
|
625
614
|
})
|
|
626
|
-
.
|
|
615
|
+
.strip();
|
|
627
616
|
const sessionProtocolFacetSubjectSchema = z.discriminatedUnion("type", [
|
|
628
|
-
z.object({ type: z.literal("session") }).
|
|
629
|
-
z.object({ type: z.literal("message"), id: nonEmptyStringSchema }).
|
|
630
|
-
z.object({ type: z.literal("tool"), id: nonEmptyStringSchema }).
|
|
631
|
-
z.object({ type: z.literal("agent"), id: nonEmptyStringSchema }).
|
|
632
|
-
z.object({ type: z.literal("operation"), id: nonEmptyStringSchema }).
|
|
617
|
+
z.object({ type: z.literal("session") }).strip(),
|
|
618
|
+
z.object({ type: z.literal("message"), id: nonEmptyStringSchema }).strip(),
|
|
619
|
+
z.object({ type: z.literal("tool"), id: nonEmptyStringSchema }).strip(),
|
|
620
|
+
z.object({ type: z.literal("agent"), id: nonEmptyStringSchema }).strip(),
|
|
621
|
+
z.object({ type: z.literal("operation"), id: nonEmptyStringSchema }).strip(),
|
|
633
622
|
]);
|
|
634
623
|
const sessionProtocolFacetSchema = z
|
|
635
624
|
.object({
|
|
@@ -639,7 +628,7 @@ const sessionProtocolFacetSchema = z
|
|
|
639
628
|
version: z.number().int().positive(),
|
|
640
629
|
data: z.record(z.string(), z.unknown()),
|
|
641
630
|
})
|
|
642
|
-
.
|
|
631
|
+
.strip();
|
|
643
632
|
const sessionProtocolSnapshotSchema = z
|
|
644
633
|
.object({
|
|
645
634
|
sessionId: nonEmptyStringSchema,
|
|
@@ -656,7 +645,7 @@ const sessionProtocolSnapshotSchema = z
|
|
|
656
645
|
agents: z.record(nonEmptyStringSchema, sessionProtocolAgentRunSchema),
|
|
657
646
|
facets: z.record(nonEmptyStringSchema, sessionProtocolFacetSchema),
|
|
658
647
|
})
|
|
659
|
-
.
|
|
648
|
+
.strip()
|
|
660
649
|
.superRefine((snapshot, ctx) => {
|
|
661
650
|
const messageIds = new Set();
|
|
662
651
|
for (const message of snapshot.messages) {
|
|
@@ -706,32 +695,32 @@ const sessionProtocolChangeSchema = z.discriminatedUnion("type", [
|
|
|
706
695
|
type: z.literal("lifecycle.set"),
|
|
707
696
|
lifecycle: sessionProtocolSessionLifecycleSchema,
|
|
708
697
|
})
|
|
709
|
-
.
|
|
698
|
+
.strip(),
|
|
710
699
|
z
|
|
711
700
|
.object({
|
|
712
701
|
type: z.literal("cost.set"),
|
|
713
702
|
costTotal: z.number().nonnegative(),
|
|
714
703
|
})
|
|
715
|
-
.
|
|
704
|
+
.strip(),
|
|
716
705
|
z
|
|
717
706
|
.object({
|
|
718
707
|
type: z.literal("settings.set"),
|
|
719
708
|
settings: sessionProtocolSettingsSnapshotSchema,
|
|
720
709
|
})
|
|
721
|
-
.
|
|
710
|
+
.strip(),
|
|
722
711
|
z
|
|
723
712
|
.object({
|
|
724
713
|
type: z.literal("message.append"),
|
|
725
714
|
message: sessionProtocolMessageSchema,
|
|
726
715
|
timelineItem: sessionProtocolTimelineItemSchema.optional(),
|
|
727
716
|
})
|
|
728
|
-
.
|
|
717
|
+
.strip(),
|
|
729
718
|
z
|
|
730
719
|
.object({
|
|
731
720
|
type: z.literal("message.replace"),
|
|
732
721
|
message: sessionProtocolMessageSchema,
|
|
733
722
|
})
|
|
734
|
-
.
|
|
723
|
+
.strip(),
|
|
735
724
|
z
|
|
736
725
|
.object({
|
|
737
726
|
type: z.literal("message.content.append"),
|
|
@@ -740,61 +729,61 @@ const sessionProtocolChangeSchema = z.discriminatedUnion("type", [
|
|
|
740
729
|
thinking: z.string().optional(),
|
|
741
730
|
timestamp: z.number().finite(),
|
|
742
731
|
})
|
|
743
|
-
.
|
|
732
|
+
.strip(),
|
|
744
733
|
z
|
|
745
734
|
.object({
|
|
746
735
|
type: z.literal("timeline.append"),
|
|
747
736
|
item: sessionProtocolTimelineItemSchema,
|
|
748
737
|
})
|
|
749
|
-
.
|
|
738
|
+
.strip(),
|
|
750
739
|
z
|
|
751
740
|
.object({
|
|
752
741
|
type: z.literal("timeline.replace"),
|
|
753
742
|
item: sessionProtocolTimelineItemSchema,
|
|
754
743
|
})
|
|
755
|
-
.
|
|
744
|
+
.strip(),
|
|
756
745
|
z
|
|
757
746
|
.object({
|
|
758
747
|
type: z.literal("timeline.remove"),
|
|
759
748
|
id: nonEmptyStringSchema,
|
|
760
749
|
})
|
|
761
|
-
.
|
|
750
|
+
.strip(),
|
|
762
751
|
z
|
|
763
752
|
.object({
|
|
764
753
|
type: z.literal("tool.set"),
|
|
765
754
|
tool: sessionProtocolToolRunSchema,
|
|
766
755
|
})
|
|
767
|
-
.
|
|
756
|
+
.strip(),
|
|
768
757
|
z
|
|
769
758
|
.object({
|
|
770
759
|
type: z.literal("tool.remove"),
|
|
771
760
|
id: nonEmptyStringSchema,
|
|
772
761
|
})
|
|
773
|
-
.
|
|
762
|
+
.strip(),
|
|
774
763
|
z
|
|
775
764
|
.object({
|
|
776
765
|
type: z.literal("agent.set"),
|
|
777
766
|
agent: sessionProtocolAgentRunSchema,
|
|
778
767
|
})
|
|
779
|
-
.
|
|
768
|
+
.strip(),
|
|
780
769
|
z
|
|
781
770
|
.object({
|
|
782
771
|
type: z.literal("agent.remove"),
|
|
783
772
|
id: nonEmptyStringSchema,
|
|
784
773
|
})
|
|
785
|
-
.
|
|
774
|
+
.strip(),
|
|
786
775
|
z
|
|
787
776
|
.object({
|
|
788
777
|
type: z.literal("facet.set"),
|
|
789
778
|
facet: sessionProtocolFacetSchema,
|
|
790
779
|
})
|
|
791
|
-
.
|
|
780
|
+
.strip(),
|
|
792
781
|
z
|
|
793
782
|
.object({
|
|
794
783
|
type: z.literal("facet.remove"),
|
|
795
784
|
id: nonEmptyStringSchema,
|
|
796
785
|
})
|
|
797
|
-
.
|
|
786
|
+
.strip(),
|
|
798
787
|
]);
|
|
799
788
|
const sessionProtocolDeltaSchema = z.discriminatedUnion("type", [
|
|
800
789
|
z
|
|
@@ -802,13 +791,13 @@ const sessionProtocolDeltaSchema = z.discriminatedUnion("type", [
|
|
|
802
791
|
type: z.literal("snapshot.patch"),
|
|
803
792
|
changes: z.array(sessionProtocolChangeSchema),
|
|
804
793
|
})
|
|
805
|
-
.
|
|
794
|
+
.strip(),
|
|
806
795
|
z
|
|
807
796
|
.object({
|
|
808
797
|
type: z.literal("snapshot.reset"),
|
|
809
798
|
snapshot: sessionProtocolSnapshotSchema,
|
|
810
799
|
})
|
|
811
|
-
.
|
|
800
|
+
.strip(),
|
|
812
801
|
]);
|
|
813
802
|
const sessionProtocolDeltaMessageSchema = z
|
|
814
803
|
.object({
|
|
@@ -820,7 +809,7 @@ const sessionProtocolDeltaMessageSchema = z
|
|
|
820
809
|
reason: sessionProtocolDeltaReasonSchema,
|
|
821
810
|
delta: sessionProtocolDeltaSchema,
|
|
822
811
|
})
|
|
823
|
-
.
|
|
812
|
+
.strip()
|
|
824
813
|
.superRefine((message, ctx) => {
|
|
825
814
|
if (message.delta.type === "snapshot.patch" && message.fromRevision === null) {
|
|
826
815
|
ctx.addIssue({
|
|
@@ -871,9 +860,9 @@ const sessionProtocolEphemeralAgentThreadUpdateEventSchema = z
|
|
|
871
860
|
usage: sessionProtocolAgentUsageSchema,
|
|
872
861
|
lastActivityText: z.string().optional(),
|
|
873
862
|
})
|
|
874
|
-
.
|
|
863
|
+
.strip(),
|
|
875
864
|
})
|
|
876
|
-
.
|
|
865
|
+
.strip();
|
|
877
866
|
const sessionProtocolEphemeralEventSchema = sessionProtocolEphemeralAgentThreadUpdateEventSchema;
|
|
878
867
|
const sessionProtocolEphemeralMessageSchema = z
|
|
879
868
|
.object({
|
|
@@ -882,20 +871,20 @@ const sessionProtocolEphemeralMessageSchema = z
|
|
|
882
871
|
sessionId: nonEmptyStringSchema,
|
|
883
872
|
event: sessionProtocolEphemeralEventSchema,
|
|
884
873
|
})
|
|
885
|
-
.
|
|
874
|
+
.strip();
|
|
886
875
|
const sessionProtocolPendingUserMessageSchema = z
|
|
887
876
|
.object({
|
|
888
877
|
id: nonEmptyStringSchema,
|
|
889
878
|
mode: z.enum(["queue", "steer"]),
|
|
890
879
|
text: nonEmptyStringSchema,
|
|
891
880
|
})
|
|
892
|
-
.
|
|
881
|
+
.strip();
|
|
893
882
|
const sessionProtocolPendingUserMessagesStateSchema = z
|
|
894
883
|
.object({
|
|
895
884
|
revision: z.number().int().positive(),
|
|
896
885
|
messages: z.array(sessionProtocolPendingUserMessageSchema),
|
|
897
886
|
})
|
|
898
|
-
.
|
|
887
|
+
.strip()
|
|
899
888
|
.superRefine((state, ctx) => {
|
|
900
889
|
const ids = new Set();
|
|
901
890
|
for (const message of state.messages) {
|
|
@@ -916,30 +905,30 @@ const sessionProtocolPendingUserMessagesMessageSchema = z
|
|
|
916
905
|
sessionId: nonEmptyStringSchema,
|
|
917
906
|
state: sessionProtocolPendingUserMessagesStateSchema,
|
|
918
907
|
})
|
|
919
|
-
.
|
|
908
|
+
.strip();
|
|
920
909
|
const sessionProtocolInitializeResultSchema = z
|
|
921
910
|
.object({
|
|
922
911
|
protocolVersion: z.literal(SESSION_PROTOCOL_VERSION),
|
|
923
912
|
methods: sessionProtocolMethodListSchema,
|
|
924
913
|
alreadyInitialized: z.boolean(),
|
|
925
914
|
})
|
|
926
|
-
.
|
|
915
|
+
.strip();
|
|
927
916
|
const sessionProtocolCreateResultSchema = z
|
|
928
917
|
.object({
|
|
929
918
|
sessionId: nonEmptyStringSchema,
|
|
930
919
|
})
|
|
931
|
-
.
|
|
920
|
+
.strip();
|
|
932
921
|
const sessionProtocolObserveResultSchema = z
|
|
933
922
|
.object({
|
|
934
923
|
snapshot: sessionProtocolSnapshotSchema,
|
|
935
924
|
pendingUserMessages: sessionProtocolPendingUserMessagesStateSchema,
|
|
936
925
|
})
|
|
937
|
-
.
|
|
926
|
+
.strip();
|
|
938
927
|
const sessionProtocolListResultSchema = z
|
|
939
928
|
.object({
|
|
940
929
|
sessions: z.array(sessionProtocolSessionSummarySchema),
|
|
941
930
|
})
|
|
942
|
-
.
|
|
931
|
+
.strip();
|
|
943
932
|
const sessionProtocolSubmitResultSchema = z
|
|
944
933
|
.object({
|
|
945
934
|
turn: z
|
|
@@ -950,30 +939,30 @@ const sessionProtocolSubmitResultSchema = z
|
|
|
950
939
|
reason: z.literal("auto-compaction-failed"),
|
|
951
940
|
message: z.string(),
|
|
952
941
|
})
|
|
953
|
-
.
|
|
942
|
+
.strip()
|
|
954
943
|
.optional(),
|
|
955
944
|
})
|
|
956
|
-
.
|
|
945
|
+
.strip(),
|
|
957
946
|
})
|
|
958
|
-
.
|
|
947
|
+
.strip();
|
|
959
948
|
const sessionProtocolTurnResultSchema = sessionProtocolSubmitResultSchema;
|
|
960
949
|
const sessionProtocolRetryResultSchema = sessionProtocolTurnResultSchema;
|
|
961
950
|
const sessionProtocolSubmitWithUserResultSchema = sessionProtocolTurnResultSchema
|
|
962
951
|
.extend({
|
|
963
952
|
userHistoryEntryId: nonEmptyStringSchema,
|
|
964
953
|
})
|
|
965
|
-
.
|
|
954
|
+
.strip();
|
|
966
955
|
const sessionProtocolCancelPendingMessagesResultSchema = z
|
|
967
956
|
.object({
|
|
968
957
|
cancelled: z.array(sessionProtocolPendingUserMessageSchema),
|
|
969
958
|
})
|
|
970
|
-
.
|
|
959
|
+
.strip();
|
|
971
960
|
const sessionProtocolRecordResultSchema = z
|
|
972
961
|
.object({
|
|
973
962
|
snapshot: sessionProtocolSnapshotSchema,
|
|
974
963
|
userHistoryEntryId: nonEmptyStringSchema,
|
|
975
964
|
})
|
|
976
|
-
.
|
|
965
|
+
.strip();
|
|
977
966
|
const sessionProtocolExecResultSchema = z
|
|
978
967
|
.object({
|
|
979
968
|
output: z.string(),
|
|
@@ -982,26 +971,26 @@ const sessionProtocolExecResultSchema = z
|
|
|
982
971
|
exitCode: z.number().int().nullable(),
|
|
983
972
|
truncated: z.boolean(),
|
|
984
973
|
})
|
|
985
|
-
.
|
|
974
|
+
.strip();
|
|
986
975
|
const sessionProtocolInterruptResultSchema = z
|
|
987
976
|
.object({
|
|
988
977
|
interrupted: z.boolean(),
|
|
989
978
|
isTurnRunning: z.boolean(),
|
|
990
979
|
})
|
|
991
|
-
.
|
|
980
|
+
.strip();
|
|
992
981
|
const sessionProtocolSettingsUpdateResultSchema = z
|
|
993
982
|
.object({
|
|
994
983
|
revision: z.number().int().positive(),
|
|
995
984
|
settings: sessionProtocolSettingsSnapshotSchema,
|
|
996
985
|
})
|
|
997
|
-
.
|
|
986
|
+
.strip();
|
|
998
987
|
const sessionProtocolCompactResultSchema = z
|
|
999
988
|
.object({
|
|
1000
989
|
snapshot: sessionProtocolSnapshotSchema,
|
|
1001
990
|
compactionMessage: nonEmptyStringSchema,
|
|
1002
991
|
includedLastAssistant: z.boolean(),
|
|
1003
992
|
})
|
|
1004
|
-
.
|
|
993
|
+
.strip();
|
|
1005
994
|
const sessionProtocolPruneResultSchema = z
|
|
1006
995
|
.object({
|
|
1007
996
|
snapshot: sessionProtocolSnapshotSchema,
|
|
@@ -1012,7 +1001,7 @@ const sessionProtocolPruneResultSchema = z
|
|
|
1012
1001
|
editResultsPruned: z.number().int().nonnegative(),
|
|
1013
1002
|
bytesPruned: z.number().int().nonnegative(),
|
|
1014
1003
|
})
|
|
1015
|
-
.
|
|
1004
|
+
.strip();
|
|
1016
1005
|
const sessionProtocolRewindResultSchema = z
|
|
1017
1006
|
.object({
|
|
1018
1007
|
snapshot: sessionProtocolSnapshotSchema,
|
|
@@ -1020,7 +1009,7 @@ const sessionProtocolRewindResultSchema = z
|
|
|
1020
1009
|
text: z.string(),
|
|
1021
1010
|
removedEntryIds: z.array(nonEmptyStringSchema),
|
|
1022
1011
|
})
|
|
1023
|
-
.
|
|
1012
|
+
.strip();
|
|
1024
1013
|
const sessionProtocolReloadResultSchema = z
|
|
1025
1014
|
.object({
|
|
1026
1015
|
snapshot: sessionProtocolSnapshotSchema,
|
|
@@ -1031,56 +1020,56 @@ const sessionProtocolReloadResultSchema = z
|
|
|
1031
1020
|
prompts: z.number().int().nonnegative(),
|
|
1032
1021
|
skills: z.number().int().nonnegative(),
|
|
1033
1022
|
})
|
|
1034
|
-
.
|
|
1023
|
+
.strip(),
|
|
1035
1024
|
})
|
|
1036
|
-
.
|
|
1025
|
+
.strip();
|
|
1037
1026
|
const sessionProtocolResolvePromptResultSchema = z
|
|
1038
1027
|
.object({
|
|
1039
1028
|
promptId: nonEmptyStringSchema,
|
|
1040
1029
|
text: z.string(),
|
|
1041
1030
|
})
|
|
1042
|
-
.
|
|
1031
|
+
.strip();
|
|
1043
1032
|
const sessionProtocolAutocompletePathsResultSchema = z
|
|
1044
1033
|
.object({
|
|
1045
1034
|
paths: z.array(z.string()),
|
|
1046
1035
|
})
|
|
1047
|
-
.
|
|
1036
|
+
.strip();
|
|
1048
1037
|
const sessionProtocolUnobserveResultSchema = z
|
|
1049
1038
|
.object({
|
|
1050
1039
|
unobserved: z.literal(true),
|
|
1051
1040
|
})
|
|
1052
|
-
.
|
|
1041
|
+
.strip();
|
|
1053
1042
|
const sessionProtocolTerminateSubagentResultSchema = z
|
|
1054
1043
|
.object({
|
|
1055
1044
|
found: z.boolean(),
|
|
1056
1045
|
})
|
|
1057
|
-
.
|
|
1046
|
+
.strip();
|
|
1058
1047
|
const sessionProtocolEphemeralCreateResultSchema = z
|
|
1059
1048
|
.object({
|
|
1060
1049
|
contextId: nonEmptyStringSchema,
|
|
1061
1050
|
})
|
|
1062
|
-
.
|
|
1051
|
+
.strip();
|
|
1063
1052
|
const sessionProtocolEphemeralSubmitResultSchema = z
|
|
1064
1053
|
.object({
|
|
1065
1054
|
threadId: nonEmptyStringSchema,
|
|
1066
1055
|
response: z.string(),
|
|
1067
1056
|
})
|
|
1068
|
-
.
|
|
1057
|
+
.strip();
|
|
1069
1058
|
const sessionProtocolEphemeralCloseResultSchema = z
|
|
1070
1059
|
.object({
|
|
1071
1060
|
closed: z.boolean(),
|
|
1072
1061
|
})
|
|
1073
|
-
.
|
|
1062
|
+
.strip();
|
|
1074
1063
|
const sessionProtocolClientToolAckResultSchema = z
|
|
1075
1064
|
.object({
|
|
1076
1065
|
accepted: z.boolean(),
|
|
1077
1066
|
})
|
|
1078
|
-
.
|
|
1067
|
+
.strip();
|
|
1079
1068
|
const sessionProtocolClientToolResultResultSchema = z
|
|
1080
1069
|
.object({
|
|
1081
1070
|
accepted: z.boolean(),
|
|
1082
1071
|
})
|
|
1083
|
-
.
|
|
1072
|
+
.strip();
|
|
1084
1073
|
export function isSessionProtocolMethod(value) {
|
|
1085
1074
|
return typeof value === "string" && SESSION_PROTOCOL_METHOD_SET.has(value);
|
|
1086
1075
|
}
|
|
@@ -1430,13 +1419,6 @@ export function parseSessionProtocolRequestLine(line) {
|
|
|
1430
1419
|
error: createSessionProtocolError(SESSION_PROTOCOL_ERROR_CODES.invalidRequest, "request id must be a non-empty string"),
|
|
1431
1420
|
};
|
|
1432
1421
|
}
|
|
1433
|
-
if (hasIssue(requestEnvelope.error, [], "unrecognized_keys")) {
|
|
1434
|
-
return {
|
|
1435
|
-
ok: false,
|
|
1436
|
-
id: requestId,
|
|
1437
|
-
error: createSessionProtocolError(SESSION_PROTOCOL_ERROR_CODES.invalidRequest, "request contains unsupported top-level fields"),
|
|
1438
|
-
};
|
|
1439
|
-
}
|
|
1440
1422
|
if (hasIssue(requestEnvelope.error, ["version"])) {
|
|
1441
1423
|
const parsedVersionField = sessionProtocolVersionFieldSchema.safeParse(parsed);
|
|
1442
1424
|
const version = parsedVersionField.success ? parsedVersionField.data.version : undefined;
|
|
@@ -1602,8 +1584,6 @@ export function validateSessionProtocolParams(method, params) {
|
|
|
1602
1584
|
case "session.snapshot":
|
|
1603
1585
|
case "session.reload":
|
|
1604
1586
|
return validateSessionIdParams(method, params);
|
|
1605
|
-
case "session.setRisk":
|
|
1606
|
-
return validateSetRiskParams(params);
|
|
1607
1587
|
case "session.setReasoning":
|
|
1608
1588
|
return validateSetReasoningParams(params);
|
|
1609
1589
|
case "session.setPersona":
|
|
@@ -1641,7 +1621,6 @@ export function validateSessionProtocolResult(method, result) {
|
|
|
1641
1621
|
case "session.observe":
|
|
1642
1622
|
return validateResult(method, result, sessionProtocolObserveResultSchema);
|
|
1643
1623
|
case "session.snapshot":
|
|
1644
|
-
case "session.setRisk":
|
|
1645
1624
|
case "session.setPersona":
|
|
1646
1625
|
return validateResult(method, result, sessionProtocolSnapshotSchema);
|
|
1647
1626
|
case "session.setReasoning":
|
|
@@ -1695,11 +1674,9 @@ function validateSessionIdParams(method, params) {
|
|
|
1695
1674
|
if (!parsed.success) {
|
|
1696
1675
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1697
1676
|
? `${method} params must be an object`
|
|
1698
|
-
: hasIssue(parsed.error, [
|
|
1699
|
-
? `${method} params
|
|
1700
|
-
:
|
|
1701
|
-
? `${method} params.sessionId must be a non-empty string`
|
|
1702
|
-
: `${method} params are invalid: ${formatZodError(parsed.error)}`;
|
|
1677
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1678
|
+
? `${method} params.sessionId must be a non-empty string`
|
|
1679
|
+
: `${method} params are invalid: ${formatZodError(parsed.error)}`;
|
|
1703
1680
|
return invalidParams(message);
|
|
1704
1681
|
}
|
|
1705
1682
|
return {
|
|
@@ -1714,7 +1691,7 @@ function validateInitializeParams(params) {
|
|
|
1714
1691
|
if (!parsed.success) {
|
|
1715
1692
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1716
1693
|
? "initialize params must be an object with client metadata"
|
|
1717
|
-
: hasIssue(parsed.error, ["client"])
|
|
1694
|
+
: hasIssue(parsed.error, ["client"])
|
|
1718
1695
|
? "initialize.client must be an object with name/version strings and optional tools"
|
|
1719
1696
|
: hasIssue(parsed.error, ["client", "name"])
|
|
1720
1697
|
? "initialize.client.name must be a non-empty string"
|
|
@@ -1739,15 +1716,13 @@ function validateUserMessageParams(method, params) {
|
|
|
1739
1716
|
if (!parsed.success) {
|
|
1740
1717
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1741
1718
|
? `${method} params must be an object`
|
|
1742
|
-
: hasIssue(parsed.error, [
|
|
1743
|
-
? `${method} params
|
|
1744
|
-
: hasIssue(parsed.error, ["
|
|
1745
|
-
? `${method} params.
|
|
1746
|
-
: hasIssue(parsed.error, ["
|
|
1747
|
-
? `${method} params.
|
|
1748
|
-
:
|
|
1749
|
-
? `${method} params.historyEntryId must be a non-empty string when provided`
|
|
1750
|
-
: `${method} params are invalid: ${formatZodError(parsed.error)}`;
|
|
1719
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1720
|
+
? `${method} params.sessionId must be a non-empty string`
|
|
1721
|
+
: hasIssue(parsed.error, ["text"])
|
|
1722
|
+
? `${method} params.text must be a string`
|
|
1723
|
+
: hasIssue(parsed.error, ["historyEntryId"])
|
|
1724
|
+
? `${method} params.historyEntryId must be a non-empty string when provided`
|
|
1725
|
+
: `${method} params are invalid: ${formatZodError(parsed.error)}`;
|
|
1751
1726
|
return invalidParams(message);
|
|
1752
1727
|
}
|
|
1753
1728
|
return {
|
|
@@ -1766,15 +1741,13 @@ function validateRecordParams(params) {
|
|
|
1766
1741
|
if (!parsed.success) {
|
|
1767
1742
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1768
1743
|
? "session.record params must be an object"
|
|
1769
|
-
: hasIssue(parsed.error, [
|
|
1770
|
-
? "session.record params
|
|
1771
|
-
: hasIssue(parsed.error, ["
|
|
1772
|
-
? "session.record params.
|
|
1773
|
-
: hasIssue(parsed.error, ["
|
|
1774
|
-
? "session.record params.
|
|
1775
|
-
:
|
|
1776
|
-
? "session.record params.historyEntryId must be a non-empty string when provided"
|
|
1777
|
-
: `session.record params are invalid: ${formatZodError(parsed.error)}`;
|
|
1744
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1745
|
+
? "session.record params.sessionId must be a non-empty string"
|
|
1746
|
+
: hasIssue(parsed.error, ["text"])
|
|
1747
|
+
? "session.record params.text must be a string"
|
|
1748
|
+
: hasIssue(parsed.error, ["historyEntryId"])
|
|
1749
|
+
? "session.record params.historyEntryId must be a non-empty string when provided"
|
|
1750
|
+
: `session.record params are invalid: ${formatZodError(parsed.error)}`;
|
|
1778
1751
|
return invalidParams(message);
|
|
1779
1752
|
}
|
|
1780
1753
|
return {
|
|
@@ -1793,17 +1766,15 @@ function validateExecParams(params) {
|
|
|
1793
1766
|
if (!parsed.success) {
|
|
1794
1767
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1795
1768
|
? "session.exec params must be an object"
|
|
1796
|
-
: hasIssue(parsed.error, [
|
|
1797
|
-
? "session.exec params
|
|
1798
|
-
: hasIssue(parsed.error, ["
|
|
1799
|
-
? "session.exec params.
|
|
1800
|
-
: hasIssue(parsed.error, ["
|
|
1801
|
-
? "session.exec params.
|
|
1802
|
-
: hasIssue(parsed.error, ["
|
|
1803
|
-
? "session.exec params.
|
|
1804
|
-
:
|
|
1805
|
-
? "session.exec params.timeoutMs must be a positive integer when provided"
|
|
1806
|
-
: `session.exec params are invalid: ${formatZodError(parsed.error)}`;
|
|
1769
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1770
|
+
? "session.exec params.sessionId must be a non-empty string"
|
|
1771
|
+
: hasIssue(parsed.error, ["command"])
|
|
1772
|
+
? "session.exec params.command must be a non-empty string"
|
|
1773
|
+
: hasIssue(parsed.error, ["cwd"])
|
|
1774
|
+
? "session.exec params.cwd must be a non-empty string when provided"
|
|
1775
|
+
: hasIssue(parsed.error, ["timeoutMs"])
|
|
1776
|
+
? "session.exec params.timeoutMs must be a positive integer when provided"
|
|
1777
|
+
: `session.exec params are invalid: ${formatZodError(parsed.error)}`;
|
|
1807
1778
|
return invalidParams(message);
|
|
1808
1779
|
}
|
|
1809
1780
|
return {
|
|
@@ -1816,40 +1787,16 @@ function validateExecParams(params) {
|
|
|
1816
1787
|
},
|
|
1817
1788
|
};
|
|
1818
1789
|
}
|
|
1819
|
-
function validateSetRiskParams(params) {
|
|
1820
|
-
const parsed = sessionProtocolSetRiskParamsSchema.safeParse(params);
|
|
1821
|
-
if (!parsed.success) {
|
|
1822
|
-
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1823
|
-
? "session.setRisk params must be an object"
|
|
1824
|
-
: hasIssue(parsed.error, [], "unrecognized_keys")
|
|
1825
|
-
? "session.setRisk params only support sessionId and riskLevel"
|
|
1826
|
-
: hasIssue(parsed.error, ["sessionId"])
|
|
1827
|
-
? "session.setRisk params.sessionId must be a non-empty string"
|
|
1828
|
-
: hasIssue(parsed.error, ["riskLevel"])
|
|
1829
|
-
? "session.setRisk params.riskLevel must be 'read-only' or 'read-write'"
|
|
1830
|
-
: `session.setRisk params are invalid: ${formatZodError(parsed.error)}`;
|
|
1831
|
-
return invalidParams(message);
|
|
1832
|
-
}
|
|
1833
|
-
return {
|
|
1834
|
-
ok: true,
|
|
1835
|
-
value: {
|
|
1836
|
-
sessionId: parsed.data.sessionId,
|
|
1837
|
-
riskLevel: parsed.data.riskLevel,
|
|
1838
|
-
},
|
|
1839
|
-
};
|
|
1840
|
-
}
|
|
1841
1790
|
function validateSetReasoningParams(params) {
|
|
1842
1791
|
const parsed = sessionProtocolSetReasoningParamsSchema.safeParse(params);
|
|
1843
1792
|
if (!parsed.success) {
|
|
1844
1793
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1845
1794
|
? "session.setReasoning params must be an object"
|
|
1846
|
-
: hasIssue(parsed.error, [
|
|
1847
|
-
? "session.setReasoning params
|
|
1848
|
-
: hasIssue(parsed.error, ["
|
|
1849
|
-
? "session.setReasoning params.
|
|
1850
|
-
:
|
|
1851
|
-
? "session.setReasoning params.reasoning must be one of none, minimal, low, medium, high, xhigh, or max"
|
|
1852
|
-
: `session.setReasoning params are invalid: ${formatZodError(parsed.error)}`;
|
|
1795
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1796
|
+
? "session.setReasoning params.sessionId must be a non-empty string"
|
|
1797
|
+
: hasIssue(parsed.error, ["reasoning"])
|
|
1798
|
+
? "session.setReasoning params.reasoning must be one of none, minimal, low, medium, high, xhigh, or max"
|
|
1799
|
+
: `session.setReasoning params are invalid: ${formatZodError(parsed.error)}`;
|
|
1853
1800
|
return invalidParams(message);
|
|
1854
1801
|
}
|
|
1855
1802
|
return {
|
|
@@ -1865,13 +1812,11 @@ function validateSetPersonaParams(params) {
|
|
|
1865
1812
|
if (!parsed.success) {
|
|
1866
1813
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1867
1814
|
? "session.setPersona params must be an object"
|
|
1868
|
-
: hasIssue(parsed.error, [
|
|
1869
|
-
? "session.setPersona params
|
|
1870
|
-
: hasIssue(parsed.error, ["
|
|
1871
|
-
? "session.setPersona params.
|
|
1872
|
-
:
|
|
1873
|
-
? "session.setPersona params.personaId must be a non-empty string"
|
|
1874
|
-
: `session.setPersona params are invalid: ${formatZodError(parsed.error)}`;
|
|
1815
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1816
|
+
? "session.setPersona params.sessionId must be a non-empty string"
|
|
1817
|
+
: hasIssue(parsed.error, ["personaId"])
|
|
1818
|
+
? "session.setPersona params.personaId must be a non-empty string"
|
|
1819
|
+
: `session.setPersona params are invalid: ${formatZodError(parsed.error)}`;
|
|
1875
1820
|
return invalidParams(message);
|
|
1876
1821
|
}
|
|
1877
1822
|
return {
|
|
@@ -1887,13 +1832,11 @@ function validateResolvePromptParams(params) {
|
|
|
1887
1832
|
if (!parsed.success) {
|
|
1888
1833
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1889
1834
|
? "session.resolvePrompt params must be an object"
|
|
1890
|
-
: hasIssue(parsed.error, [
|
|
1891
|
-
? "session.resolvePrompt params
|
|
1892
|
-
: hasIssue(parsed.error, ["
|
|
1893
|
-
? "session.resolvePrompt params.
|
|
1894
|
-
:
|
|
1895
|
-
? "session.resolvePrompt params.promptId must be a non-empty string"
|
|
1896
|
-
: `session.resolvePrompt params are invalid: ${formatZodError(parsed.error)}`;
|
|
1835
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1836
|
+
? "session.resolvePrompt params.sessionId must be a non-empty string"
|
|
1837
|
+
: hasIssue(parsed.error, ["promptId"])
|
|
1838
|
+
? "session.resolvePrompt params.promptId must be a non-empty string"
|
|
1839
|
+
: `session.resolvePrompt params are invalid: ${formatZodError(parsed.error)}`;
|
|
1897
1840
|
return invalidParams(message);
|
|
1898
1841
|
}
|
|
1899
1842
|
return {
|
|
@@ -1909,15 +1852,13 @@ function validateAutocompletePathsParams(params) {
|
|
|
1909
1852
|
if (!parsed.success) {
|
|
1910
1853
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1911
1854
|
? "session.autocompletePaths params must be an object"
|
|
1912
|
-
: hasIssue(parsed.error, [
|
|
1913
|
-
? "session.autocompletePaths params
|
|
1914
|
-
: hasIssue(parsed.error, ["
|
|
1915
|
-
? "session.autocompletePaths params.
|
|
1916
|
-
: hasIssue(parsed.error, ["
|
|
1917
|
-
? "session.autocompletePaths params.
|
|
1918
|
-
:
|
|
1919
|
-
? "session.autocompletePaths params.limit must be a positive integer up to 100"
|
|
1920
|
-
: `session.autocompletePaths params are invalid: ${formatZodError(parsed.error)}`;
|
|
1855
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1856
|
+
? "session.autocompletePaths params.sessionId must be a non-empty string"
|
|
1857
|
+
: hasIssue(parsed.error, ["query"])
|
|
1858
|
+
? "session.autocompletePaths params.query must be a string"
|
|
1859
|
+
: hasIssue(parsed.error, ["limit"])
|
|
1860
|
+
? "session.autocompletePaths params.limit must be a positive integer up to 100"
|
|
1861
|
+
: `session.autocompletePaths params are invalid: ${formatZodError(parsed.error)}`;
|
|
1921
1862
|
return invalidParams(message);
|
|
1922
1863
|
}
|
|
1923
1864
|
return {
|
|
@@ -1934,15 +1875,13 @@ function validateCompactParams(params) {
|
|
|
1934
1875
|
if (!parsed.success) {
|
|
1935
1876
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1936
1877
|
? "session.compact params must be an object"
|
|
1937
|
-
: hasIssue(parsed.error, [
|
|
1938
|
-
? "session.compact params
|
|
1939
|
-
: hasIssue(parsed.error, ["
|
|
1940
|
-
? "session.compact params.
|
|
1941
|
-
: hasIssue(parsed.error, ["
|
|
1942
|
-
? "session.compact params.
|
|
1943
|
-
:
|
|
1944
|
-
? "session.compact params.guidance must be a string when provided"
|
|
1945
|
-
: `session.compact params are invalid: ${formatZodError(parsed.error)}`;
|
|
1878
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1879
|
+
? "session.compact params.sessionId must be a non-empty string"
|
|
1880
|
+
: hasIssue(parsed.error, ["mode"])
|
|
1881
|
+
? "session.compact params.mode must be 'summary-only' or 'summary-and-last'"
|
|
1882
|
+
: hasIssue(parsed.error, ["guidance"])
|
|
1883
|
+
? "session.compact params.guidance must be a string when provided"
|
|
1884
|
+
: `session.compact params are invalid: ${formatZodError(parsed.error)}`;
|
|
1946
1885
|
return invalidParams(message);
|
|
1947
1886
|
}
|
|
1948
1887
|
return {
|
|
@@ -1959,17 +1898,15 @@ function validatePruneParams(params) {
|
|
|
1959
1898
|
if (!parsed.success) {
|
|
1960
1899
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1961
1900
|
? "session.prune params must be an object"
|
|
1962
|
-
: hasIssue(parsed.error, [
|
|
1963
|
-
? "session.prune params
|
|
1964
|
-
: hasIssue(parsed.error, ["
|
|
1965
|
-
? "session.prune params.
|
|
1966
|
-
: hasIssue(parsed.error, ["
|
|
1967
|
-
? "session.prune params.
|
|
1968
|
-
: hasIssue(parsed.error, ["
|
|
1969
|
-
? "session.prune params.
|
|
1970
|
-
:
|
|
1971
|
-
? "session.prune params.guidance must be a string when provided"
|
|
1972
|
-
: `session.prune params are invalid: ${formatZodError(parsed.error)}`;
|
|
1901
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1902
|
+
? "session.prune params.sessionId must be a non-empty string"
|
|
1903
|
+
: hasIssue(parsed.error, ["strategy"])
|
|
1904
|
+
? "session.prune params.strategy must be 'earliest', 'largest', or 'smart'"
|
|
1905
|
+
: hasIssue(parsed.error, ["fraction"])
|
|
1906
|
+
? "session.prune params.fraction must be a number between 0 and 1"
|
|
1907
|
+
: hasIssue(parsed.error, ["guidance"])
|
|
1908
|
+
? "session.prune params.guidance must be a string when provided"
|
|
1909
|
+
: `session.prune params are invalid: ${formatZodError(parsed.error)}`;
|
|
1973
1910
|
return invalidParams(message);
|
|
1974
1911
|
}
|
|
1975
1912
|
return {
|
|
@@ -1987,13 +1924,11 @@ function validateRewindParams(params) {
|
|
|
1987
1924
|
if (!parsed.success) {
|
|
1988
1925
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
1989
1926
|
? "session.rewind params must be an object"
|
|
1990
|
-
: hasIssue(parsed.error, [
|
|
1991
|
-
? "session.rewind params
|
|
1992
|
-
: hasIssue(parsed.error, ["
|
|
1993
|
-
? "session.rewind params.
|
|
1994
|
-
:
|
|
1995
|
-
? "session.rewind params.historyEntryId must be a non-empty string"
|
|
1996
|
-
: `session.rewind params are invalid: ${formatZodError(parsed.error)}`;
|
|
1927
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1928
|
+
? "session.rewind params.sessionId must be a non-empty string"
|
|
1929
|
+
: hasIssue(parsed.error, ["historyEntryId"])
|
|
1930
|
+
? "session.rewind params.historyEntryId must be a non-empty string"
|
|
1931
|
+
: `session.rewind params are invalid: ${formatZodError(parsed.error)}`;
|
|
1997
1932
|
return invalidParams(message);
|
|
1998
1933
|
}
|
|
1999
1934
|
return {
|
|
@@ -2009,13 +1944,11 @@ function validateTerminateSubagentParams(params) {
|
|
|
2009
1944
|
if (!parsed.success) {
|
|
2010
1945
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2011
1946
|
? "session.terminateSubagent params must be an object"
|
|
2012
|
-
: hasIssue(parsed.error, [
|
|
2013
|
-
? "session.terminateSubagent params
|
|
2014
|
-
: hasIssue(parsed.error, ["
|
|
2015
|
-
? "session.terminateSubagent params.
|
|
2016
|
-
:
|
|
2017
|
-
? "session.terminateSubagent params.subagentId must be a non-empty string"
|
|
2018
|
-
: `session.terminateSubagent params are invalid: ${formatZodError(parsed.error)}`;
|
|
1947
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1948
|
+
? "session.terminateSubagent params.sessionId must be a non-empty string"
|
|
1949
|
+
: hasIssue(parsed.error, ["subagentId"])
|
|
1950
|
+
? "session.terminateSubagent params.subagentId must be a non-empty string"
|
|
1951
|
+
: `session.terminateSubagent params are invalid: ${formatZodError(parsed.error)}`;
|
|
2019
1952
|
return invalidParams(message);
|
|
2020
1953
|
}
|
|
2021
1954
|
return {
|
|
@@ -2031,17 +1964,13 @@ function validateEphemeralCreateParams(params) {
|
|
|
2031
1964
|
if (!parsed.success) {
|
|
2032
1965
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2033
1966
|
? "session.ephemeral.create params must be an object"
|
|
2034
|
-
: hasIssue(parsed.error, [
|
|
2035
|
-
? "session.ephemeral.create params
|
|
2036
|
-
: hasIssue(parsed.error, ["
|
|
2037
|
-
? "session.ephemeral.create params.
|
|
2038
|
-
: hasIssue(parsed.error, ["
|
|
2039
|
-
? "session.ephemeral.create params.
|
|
2040
|
-
:
|
|
2041
|
-
? "session.ephemeral.create params.tools are invalid"
|
|
2042
|
-
: hasIssue(parsed.error, ["riskLevel"])
|
|
2043
|
-
? "session.ephemeral.create params.riskLevel must be read-only or read-write"
|
|
2044
|
-
: `session.ephemeral.create params are invalid: ${formatZodError(parsed.error)}`;
|
|
1967
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1968
|
+
? "session.ephemeral.create params.sessionId must be a non-empty string"
|
|
1969
|
+
: hasIssue(parsed.error, ["instructions"])
|
|
1970
|
+
? "session.ephemeral.create params.instructions must be a non-empty string"
|
|
1971
|
+
: hasIssue(parsed.error, ["tools"])
|
|
1972
|
+
? "session.ephemeral.create params.tools are invalid"
|
|
1973
|
+
: `session.ephemeral.create params are invalid: ${formatZodError(parsed.error)}`;
|
|
2045
1974
|
return invalidParams(message);
|
|
2046
1975
|
}
|
|
2047
1976
|
return { ok: true, value: parsed.data };
|
|
@@ -2051,19 +1980,17 @@ function validateEphemeralSubmitParams(params) {
|
|
|
2051
1980
|
if (!parsed.success) {
|
|
2052
1981
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2053
1982
|
? "session.ephemeral.submit params must be an object"
|
|
2054
|
-
: hasIssue(parsed.error, [
|
|
2055
|
-
? "session.ephemeral.submit params
|
|
2056
|
-
: hasIssue(parsed.error, ["
|
|
2057
|
-
? "session.ephemeral.submit params.
|
|
2058
|
-
: hasIssue(parsed.error, ["
|
|
2059
|
-
? "session.ephemeral.submit params.
|
|
2060
|
-
: hasIssue(parsed.error, ["
|
|
2061
|
-
? "session.ephemeral.submit params.
|
|
2062
|
-
: hasIssue(parsed.error, ["
|
|
2063
|
-
? "session.ephemeral.submit params.
|
|
2064
|
-
:
|
|
2065
|
-
? "session.ephemeral.submit params.message must be a non-empty string"
|
|
2066
|
-
: `session.ephemeral.submit params are invalid: ${formatZodError(parsed.error)}`;
|
|
1983
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
1984
|
+
? "session.ephemeral.submit params.sessionId must be a non-empty string"
|
|
1985
|
+
: hasIssue(parsed.error, ["contextId"])
|
|
1986
|
+
? "session.ephemeral.submit params.contextId must be a non-empty string"
|
|
1987
|
+
: hasIssue(parsed.error, ["threadId"])
|
|
1988
|
+
? "session.ephemeral.submit params.threadId must be a non-empty string"
|
|
1989
|
+
: hasIssue(parsed.error, ["forkFromThreadId"])
|
|
1990
|
+
? "session.ephemeral.submit params.forkFromThreadId must be a non-empty string when provided"
|
|
1991
|
+
: hasIssue(parsed.error, ["message"])
|
|
1992
|
+
? "session.ephemeral.submit params.message must be a non-empty string"
|
|
1993
|
+
: `session.ephemeral.submit params are invalid: ${formatZodError(parsed.error)}`;
|
|
2067
1994
|
return invalidParams(message);
|
|
2068
1995
|
}
|
|
2069
1996
|
return {
|
|
@@ -2084,13 +2011,11 @@ function validateEphemeralCloseParams(params) {
|
|
|
2084
2011
|
if (!parsed.success) {
|
|
2085
2012
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2086
2013
|
? "session.ephemeral.close params must be an object"
|
|
2087
|
-
: hasIssue(parsed.error, [
|
|
2088
|
-
? "session.ephemeral.close params
|
|
2089
|
-
: hasIssue(parsed.error, ["
|
|
2090
|
-
? "session.ephemeral.close params.
|
|
2091
|
-
:
|
|
2092
|
-
? "session.ephemeral.close params.contextId must be a non-empty string"
|
|
2093
|
-
: `session.ephemeral.close params are invalid: ${formatZodError(parsed.error)}`;
|
|
2014
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
2015
|
+
? "session.ephemeral.close params.sessionId must be a non-empty string"
|
|
2016
|
+
: hasIssue(parsed.error, ["contextId"])
|
|
2017
|
+
? "session.ephemeral.close params.contextId must be a non-empty string"
|
|
2018
|
+
: `session.ephemeral.close params are invalid: ${formatZodError(parsed.error)}`;
|
|
2094
2019
|
return invalidParams(message);
|
|
2095
2020
|
}
|
|
2096
2021
|
return { ok: true, value: parsed.data };
|
|
@@ -2100,13 +2025,11 @@ function validateClientToolAckParams(params) {
|
|
|
2100
2025
|
if (!parsed.success) {
|
|
2101
2026
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2102
2027
|
? "session.clientTool.ack params must be an object"
|
|
2103
|
-
: hasIssue(parsed.error, [
|
|
2104
|
-
? "session.clientTool.ack params
|
|
2105
|
-
: hasIssue(parsed.error, ["
|
|
2106
|
-
? "session.clientTool.ack params.
|
|
2107
|
-
:
|
|
2108
|
-
? "session.clientTool.ack params.callId must be a non-empty string"
|
|
2109
|
-
: `session.clientTool.ack params are invalid: ${formatZodError(parsed.error)}`;
|
|
2028
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
2029
|
+
? "session.clientTool.ack params.sessionId must be a non-empty string"
|
|
2030
|
+
: hasIssue(parsed.error, ["callId"])
|
|
2031
|
+
? "session.clientTool.ack params.callId must be a non-empty string"
|
|
2032
|
+
: `session.clientTool.ack params are invalid: ${formatZodError(parsed.error)}`;
|
|
2110
2033
|
return invalidParams(message);
|
|
2111
2034
|
}
|
|
2112
2035
|
return { ok: true, value: parsed.data };
|
|
@@ -2116,13 +2039,11 @@ function validateClientToolResultParams(params) {
|
|
|
2116
2039
|
if (!parsed.success) {
|
|
2117
2040
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2118
2041
|
? "session.clientTool.result params must be an object"
|
|
2119
|
-
: hasIssue(parsed.error, [
|
|
2120
|
-
? "session.clientTool.result params
|
|
2121
|
-
: hasIssue(parsed.error, ["
|
|
2122
|
-
? "session.clientTool.result params.
|
|
2123
|
-
:
|
|
2124
|
-
? "session.clientTool.result params.callId must be a non-empty string"
|
|
2125
|
-
: `session.clientTool.result params are invalid: ${formatZodError(parsed.error)}`;
|
|
2042
|
+
: hasIssue(parsed.error, ["sessionId"])
|
|
2043
|
+
? "session.clientTool.result params.sessionId must be a non-empty string"
|
|
2044
|
+
: hasIssue(parsed.error, ["callId"])
|
|
2045
|
+
? "session.clientTool.result params.callId must be a non-empty string"
|
|
2046
|
+
: `session.clientTool.result params are invalid: ${formatZodError(parsed.error)}`;
|
|
2126
2047
|
return invalidParams(message);
|
|
2127
2048
|
}
|
|
2128
2049
|
return { ok: true, value: parsed.data };
|
|
@@ -2132,21 +2053,17 @@ function validateCreateParams(params) {
|
|
|
2132
2053
|
if (!parsed.success) {
|
|
2133
2054
|
const message = hasIssue(parsed.error, [], "invalid_type")
|
|
2134
2055
|
? "session.create params must be an object"
|
|
2135
|
-
: hasIssue(parsed.error, [
|
|
2136
|
-
? "session.create params
|
|
2137
|
-
: hasIssue(parsed.error, ["executionEnvironment"])
|
|
2138
|
-
? "session.create params.executionEnvironment must be
|
|
2139
|
-
: hasIssue(parsed.error, ["executionEnvironment", "
|
|
2140
|
-
? "session.create params.executionEnvironment.
|
|
2141
|
-
: hasIssue(parsed.error, ["
|
|
2142
|
-
? "session.create params.
|
|
2143
|
-
: hasIssue(parsed.error, ["
|
|
2144
|
-
? "session.create params.
|
|
2145
|
-
:
|
|
2146
|
-
? "session.create params.riskLevel must be 'read-only' or 'read-write'"
|
|
2147
|
-
: hasIssue(parsed.error, ["reasoning"])
|
|
2148
|
-
? "session.create params.reasoning must be one of none, minimal, low, medium, high, xhigh, or max"
|
|
2149
|
-
: `session.create params are invalid: ${formatZodError(parsed.error)}`;
|
|
2056
|
+
: hasIssue(parsed.error, ["executionEnvironment"])
|
|
2057
|
+
? "session.create params.executionEnvironment must be an object"
|
|
2058
|
+
: hasIssue(parsed.error, ["executionEnvironment", "kind"])
|
|
2059
|
+
? "session.create params.executionEnvironment.kind must be 'local', 'cloudflare-sandbox', or 'fly-sprite'"
|
|
2060
|
+
: hasIssue(parsed.error, ["executionEnvironment", "cwd"])
|
|
2061
|
+
? "session.create params.executionEnvironment.cwd must be an absolute path"
|
|
2062
|
+
: hasIssue(parsed.error, ["personaId"])
|
|
2063
|
+
? "session.create params.personaId must be a non-empty string"
|
|
2064
|
+
: hasIssue(parsed.error, ["reasoning"])
|
|
2065
|
+
? "session.create params.reasoning must be one of none, minimal, low, medium, high, xhigh, or max"
|
|
2066
|
+
: `session.create params are invalid: ${formatZodError(parsed.error)}`;
|
|
2150
2067
|
return invalidParams(message);
|
|
2151
2068
|
}
|
|
2152
2069
|
return {
|
|
@@ -2192,9 +2109,6 @@ function parseSessionProtocolDeltaMessage(payload) {
|
|
|
2192
2109
|
const fail = (message) => outgoingParseFailure("session.delta", null, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message);
|
|
2193
2110
|
const deltaMessage = sessionProtocolDeltaMessageSchema.safeParse(payload);
|
|
2194
2111
|
if (!deltaMessage.success) {
|
|
2195
|
-
if (hasIssue(deltaMessage.error, [], "unrecognized_keys")) {
|
|
2196
|
-
return fail("session.delta message contains unsupported fields");
|
|
2197
|
-
}
|
|
2198
2112
|
if (hasIssue(deltaMessage.error, ["sessionId"])) {
|
|
2199
2113
|
return fail("session.delta.sessionId must be a non-empty string");
|
|
2200
2114
|
}
|
|
@@ -2233,9 +2147,6 @@ function parseSessionProtocolClientToolMessage(payload) {
|
|
|
2233
2147
|
const fail = (message) => outgoingParseFailure(messageType, null, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message);
|
|
2234
2148
|
const message = sessionProtocolClientToolMessageSchema.safeParse(payload);
|
|
2235
2149
|
if (!message.success) {
|
|
2236
|
-
if (hasIssue(message.error, [], "unrecognized_keys")) {
|
|
2237
|
-
return fail(`${String(messageType)} message contains unsupported fields`);
|
|
2238
|
-
}
|
|
2239
2150
|
return fail(`invalid ${String(messageType)} message: ${formatZodError(message.error)}`);
|
|
2240
2151
|
}
|
|
2241
2152
|
return {
|
|
@@ -2247,9 +2158,6 @@ function parseSessionProtocolEphemeralMessage(payload) {
|
|
|
2247
2158
|
const fail = (message) => outgoingParseFailure("session.ephemeral", null, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message);
|
|
2248
2159
|
const ephemeralMessage = sessionProtocolEphemeralMessageSchema.safeParse(payload);
|
|
2249
2160
|
if (!ephemeralMessage.success) {
|
|
2250
|
-
if (hasIssue(ephemeralMessage.error, [], "unrecognized_keys")) {
|
|
2251
|
-
return fail("session.ephemeral message contains unsupported fields");
|
|
2252
|
-
}
|
|
2253
2161
|
if (hasIssue(ephemeralMessage.error, ["sessionId"])) {
|
|
2254
2162
|
return fail("session.ephemeral.sessionId must be a non-empty string");
|
|
2255
2163
|
}
|
|
@@ -2267,9 +2175,6 @@ function parseSessionProtocolPendingUserMessagesMessage(payload) {
|
|
|
2267
2175
|
const fail = (message) => outgoingParseFailure("session.pendingUserMessages", null, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message);
|
|
2268
2176
|
const message = sessionProtocolPendingUserMessagesMessageSchema.safeParse(payload);
|
|
2269
2177
|
if (!message.success) {
|
|
2270
|
-
if (hasIssue(message.error, [], "unrecognized_keys")) {
|
|
2271
|
-
return fail("session.pendingUserMessages message contains unsupported fields");
|
|
2272
|
-
}
|
|
2273
2178
|
if (hasIssue(message.error, ["sessionId"])) {
|
|
2274
2179
|
return fail("session.pendingUserMessages.sessionId must be a non-empty string");
|
|
2275
2180
|
}
|
|
@@ -2296,9 +2201,6 @@ function parseSessionProtocolResponseMessage(payload) {
|
|
|
2296
2201
|
if (ok === true) {
|
|
2297
2202
|
const successResponse = sessionProtocolResponseSuccessSchema.safeParse(payload);
|
|
2298
2203
|
if (!successResponse.success) {
|
|
2299
|
-
if (hasIssue(successResponse.error, [], "unrecognized_keys")) {
|
|
2300
|
-
return fail("successful response must only include result payload");
|
|
2301
|
-
}
|
|
2302
2204
|
if (hasIssue(successResponse.error, ["result"], "invalid_type")) {
|
|
2303
2205
|
return fail("successful response must include result");
|
|
2304
2206
|
}
|
|
@@ -2323,9 +2225,6 @@ function parseSessionProtocolResponseMessage(payload) {
|
|
|
2323
2225
|
}
|
|
2324
2226
|
const errorResponse = sessionProtocolResponseErrorSchema.safeParse(payload);
|
|
2325
2227
|
if (!errorResponse.success) {
|
|
2326
|
-
if (hasIssue(errorResponse.error, [], "unrecognized_keys")) {
|
|
2327
|
-
return fail("error response must only include error payload");
|
|
2328
|
-
}
|
|
2329
2228
|
if (hasIssue(errorResponse.error, ["error"])) {
|
|
2330
2229
|
return fail("error response.error must be an object");
|
|
2331
2230
|
}
|