@agentknight/sdk 0.9.35
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 +201 -0
- package/dist/chunks/acp-adapter-4N2QCTAL.js +936 -0
- package/dist/chunks/chunk-AHJSR7OY.js +24 -0
- package/dist/chunks/chunk-ATMWDEPF.js +1017 -0
- package/dist/chunks/chunk-C7XDS2KG.js +24 -0
- package/dist/chunks/chunk-JFHUAIRY.js +2659 -0
- package/dist/chunks/chunk-MVUOCZFL.js +47 -0
- package/dist/chunks/chunk-SJHJER3B.js +340 -0
- package/dist/chunks/chunk-W3PG2W3C.js +139 -0
- package/dist/chunks/chunk-ZKAN2FO7.js +2654 -0
- package/dist/chunks/copilot-adapter-CLIDIK2S.js +5179 -0
- package/dist/chunks/managed-agent-adapter-HP5VE3AH.js +1252 -0
- package/dist/chunks/pi-adapter-GSDVA7EG.js +1177 -0
- package/dist/index.d.ts +1962 -0
- package/dist/index.js +9187 -0
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.js +13 -0
- package/package.json +65 -0
|
@@ -0,0 +1,2654 @@
|
|
|
1
|
+
// ../protocol/dist/sessions/sessions.js
|
|
2
|
+
import { z as z3 } from "zod";
|
|
3
|
+
|
|
4
|
+
// ../protocol/dist/common/primitives.js
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
var IdSchema = z.string().trim().min(1).max(256);
|
|
7
|
+
var IsoDateSchema = z.iso.datetime({ offset: true });
|
|
8
|
+
var Base64UrlKeyIdSchema = z.string().regex(/^[A-Za-z0-9_-]{22}$/u, "Expected a 16-byte base64url key ID");
|
|
9
|
+
var UsernameSchema = z.string().trim().min(1).max(120);
|
|
10
|
+
|
|
11
|
+
// ../protocol/dist/common/errors.js
|
|
12
|
+
import { z as z2 } from "zod";
|
|
13
|
+
var ProtocolFailureSchema = z2.object({
|
|
14
|
+
code: IdSchema,
|
|
15
|
+
message: z2.string().min(1).max(1024)
|
|
16
|
+
});
|
|
17
|
+
var OperationAckSchema = z2.discriminatedUnion("ok", [
|
|
18
|
+
z2.object({ ok: z2.literal(true), capabilities: z2.array(IdSchema).max(64).optional() }),
|
|
19
|
+
z2.object({
|
|
20
|
+
ok: z2.literal(false),
|
|
21
|
+
code: IdSchema,
|
|
22
|
+
message: z2.string().min(1).max(1024)
|
|
23
|
+
})
|
|
24
|
+
]);
|
|
25
|
+
var ProtocolErrorSchema = z2.object({
|
|
26
|
+
event: z2.string().min(1).max(128),
|
|
27
|
+
code: IdSchema,
|
|
28
|
+
message: z2.string().min(1).max(1024)
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// ../protocol/dist/sessions/sessions.js
|
|
32
|
+
var SESSION_DELETE_CAPABILITY = "session-delete";
|
|
33
|
+
var SESSION_LIST_UPDATES_CAPABILITY = "session-list-updates";
|
|
34
|
+
var SESSION_WORKTREE_CREATION_CAPABILITY = "session-worktree-creation";
|
|
35
|
+
var MANAGED_SESSION_SELECTION_CAPABILITY = "coding-agent:managed";
|
|
36
|
+
var AGENT_CONTROLS_CAPABILITY = "coding-agent-controls-v1";
|
|
37
|
+
var GroupChatParticipantSchema = z3.object({
|
|
38
|
+
sessionId: IdSchema,
|
|
39
|
+
title: z3.string().trim().min(1).max(260)
|
|
40
|
+
}).strict();
|
|
41
|
+
var GroupChatInfoSchema = z3.object({
|
|
42
|
+
participants: z3.array(GroupChatParticipantSchema).length(2).refine((participants) => new Set(participants.map((participant) => participant.sessionId)).size === 2, "A group requires two different sessions"),
|
|
43
|
+
state: z3.enum(["ready", "running", "paused", "blocked"])
|
|
44
|
+
}).strict();
|
|
45
|
+
var SessionSummarySchema = z3.object({
|
|
46
|
+
userId: IdSchema,
|
|
47
|
+
sessionId: IdSchema,
|
|
48
|
+
machineId: IdSchema,
|
|
49
|
+
summary: z3.string().max(4096).optional(),
|
|
50
|
+
renameSupported: z3.boolean().optional(),
|
|
51
|
+
workingDirectory: z3.string().max(32768).optional(),
|
|
52
|
+
gitRoot: z3.string().max(32768).optional(),
|
|
53
|
+
repository: z3.string().max(1024).optional(),
|
|
54
|
+
gitRemoteUrl: z3.string().max(32768).optional(),
|
|
55
|
+
branch: z3.string().max(1024).optional(),
|
|
56
|
+
isRemote: z3.boolean(),
|
|
57
|
+
createdAt: IsoDateSchema,
|
|
58
|
+
modifiedAt: IsoDateSchema,
|
|
59
|
+
groupChat: GroupChatInfoSchema.optional()
|
|
60
|
+
});
|
|
61
|
+
var SessionsSnapshotSchema = z3.object({
|
|
62
|
+
userId: IdSchema,
|
|
63
|
+
machineId: IdSchema,
|
|
64
|
+
machineName: z3.string().trim().min(1).max(120),
|
|
65
|
+
platform: z3.string().trim().min(1).max(64),
|
|
66
|
+
agentRunId: IdSchema,
|
|
67
|
+
sequence: z3.number().int().positive(),
|
|
68
|
+
generatedAt: IsoDateSchema,
|
|
69
|
+
complete: z3.boolean(),
|
|
70
|
+
totalCount: z3.number().int().nonnegative(),
|
|
71
|
+
nextCursor: z3.string().min(1).max(1024).optional(),
|
|
72
|
+
sessions: z3.array(SessionSummarySchema)
|
|
73
|
+
}).superRefine((snapshot, context) => {
|
|
74
|
+
if (snapshot.totalCount < snapshot.sessions.length) {
|
|
75
|
+
context.addIssue({
|
|
76
|
+
code: "custom",
|
|
77
|
+
message: "Snapshot totalCount cannot be smaller than its session page",
|
|
78
|
+
path: ["totalCount"]
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (snapshot.complete === (snapshot.nextCursor !== void 0)) {
|
|
82
|
+
context.addIssue({
|
|
83
|
+
code: "custom",
|
|
84
|
+
message: "Incomplete snapshots require a nextCursor",
|
|
85
|
+
path: ["nextCursor"]
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const sessionIds = /* @__PURE__ */ new Set();
|
|
89
|
+
for (const [index, session] of snapshot.sessions.entries()) {
|
|
90
|
+
if (session.machineId !== snapshot.machineId) {
|
|
91
|
+
context.addIssue({
|
|
92
|
+
code: "custom",
|
|
93
|
+
message: "Session machineId must match snapshot machineId",
|
|
94
|
+
path: ["sessions", index, "machineId"]
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
if (session.userId !== snapshot.userId) {
|
|
98
|
+
context.addIssue({
|
|
99
|
+
code: "custom",
|
|
100
|
+
message: "Session userId must match snapshot userId",
|
|
101
|
+
path: ["sessions", index, "userId"]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (sessionIds.has(session.sessionId)) {
|
|
105
|
+
context.addIssue({
|
|
106
|
+
code: "custom",
|
|
107
|
+
message: "Session IDs must be unique within a snapshot",
|
|
108
|
+
path: ["sessions", index, "sessionId"]
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
sessionIds.add(session.sessionId);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
var SessionListRequestSchema = z3.object({
|
|
115
|
+
requestId: IdSchema,
|
|
116
|
+
machineId: IdSchema,
|
|
117
|
+
cursor: z3.string().min(1).max(1024).optional()
|
|
118
|
+
});
|
|
119
|
+
var SessionListResultSchema = z3.discriminatedUnion("ok", [
|
|
120
|
+
z3.object({
|
|
121
|
+
ok: z3.literal(true),
|
|
122
|
+
requestId: IdSchema,
|
|
123
|
+
machineId: IdSchema,
|
|
124
|
+
snapshot: SessionsSnapshotSchema
|
|
125
|
+
}),
|
|
126
|
+
z3.object({
|
|
127
|
+
ok: z3.literal(false),
|
|
128
|
+
requestId: IdSchema,
|
|
129
|
+
machineId: IdSchema,
|
|
130
|
+
error: ProtocolFailureSchema
|
|
131
|
+
})
|
|
132
|
+
]);
|
|
133
|
+
var SessionAgentModeSchema = z3.enum([
|
|
134
|
+
"interactive",
|
|
135
|
+
"plan",
|
|
136
|
+
"autopilot"
|
|
137
|
+
]);
|
|
138
|
+
var AgentConfigurationOptionSchema = z3.object({
|
|
139
|
+
id: IdSchema,
|
|
140
|
+
name: z3.string().trim().min(1).max(260),
|
|
141
|
+
value: z3.string().min(1).max(256),
|
|
142
|
+
options: z3.array(z3.object({
|
|
143
|
+
value: z3.string().min(1).max(256),
|
|
144
|
+
name: z3.string().trim().min(1).max(260)
|
|
145
|
+
}).strict()).min(1).max(100)
|
|
146
|
+
}).strict();
|
|
147
|
+
var AgentConfigurationChangeSchema = z3.object({
|
|
148
|
+
id: IdSchema,
|
|
149
|
+
value: z3.string().min(1).max(256)
|
|
150
|
+
}).strict();
|
|
151
|
+
var WorkspaceOptionSchema = z3.object({
|
|
152
|
+
id: IdSchema,
|
|
153
|
+
name: z3.string().trim().min(1).max(260),
|
|
154
|
+
path: z3.string().trim().min(1).max(32768)
|
|
155
|
+
});
|
|
156
|
+
var REASONING_EFFORTS = [
|
|
157
|
+
"low",
|
|
158
|
+
"medium",
|
|
159
|
+
"high",
|
|
160
|
+
"xhigh",
|
|
161
|
+
"max"
|
|
162
|
+
];
|
|
163
|
+
var ReasoningEffortSchema = z3.enum(REASONING_EFFORTS);
|
|
164
|
+
var CopilotModelOptionSchema = z3.object({
|
|
165
|
+
id: IdSchema,
|
|
166
|
+
name: z3.string().trim().min(1).max(260),
|
|
167
|
+
isDefault: z3.boolean(),
|
|
168
|
+
supportedReasoningEfforts: z3.array(ReasoningEffortSchema).optional(),
|
|
169
|
+
defaultReasoningEffort: ReasoningEffortSchema.optional(),
|
|
170
|
+
creation: z3.object({
|
|
171
|
+
agentId: IdSchema,
|
|
172
|
+
agentName: z3.string().trim().min(1).max(260),
|
|
173
|
+
modelName: z3.string().trim().min(1).max(260),
|
|
174
|
+
agentModes: z3.array(SessionAgentModeSchema).min(1),
|
|
175
|
+
reasoningEffortConfigurationSupported: z3.boolean(),
|
|
176
|
+
isDefault: z3.boolean()
|
|
177
|
+
}).strict().optional()
|
|
178
|
+
});
|
|
179
|
+
var SessionReasoningEffortSchema = z3.enum([
|
|
180
|
+
"default",
|
|
181
|
+
...REASONING_EFFORTS
|
|
182
|
+
]);
|
|
183
|
+
var CurrentReasoningEffortSchema = z3.string().trim().min(1).max(64);
|
|
184
|
+
var SessionToolInfoSchema = z3.object({
|
|
185
|
+
name: z3.string().trim().min(1).max(260),
|
|
186
|
+
description: z3.string().trim().min(1).max(4096).optional(),
|
|
187
|
+
deferred: z3.boolean().optional()
|
|
188
|
+
});
|
|
189
|
+
var SessionSlashCommandInfoSchema = z3.object({
|
|
190
|
+
name: z3.string().trim().min(1).max(260),
|
|
191
|
+
description: z3.string().trim().min(1).max(4096).optional(),
|
|
192
|
+
kind: z3.enum(["builtin", "skill", "client"])
|
|
193
|
+
});
|
|
194
|
+
var SessionSkillInfoSchema = z3.object({
|
|
195
|
+
name: z3.string().trim().min(1).max(260),
|
|
196
|
+
description: z3.string().trim().min(1).max(4096).optional(),
|
|
197
|
+
source: z3.string().trim().min(1).max(260),
|
|
198
|
+
enabled: z3.boolean(),
|
|
199
|
+
userInvocable: z3.boolean(),
|
|
200
|
+
commandName: z3.string().trim().min(1).max(260).optional()
|
|
201
|
+
});
|
|
202
|
+
var SessionEnvironmentInfoSchema = z3.object({
|
|
203
|
+
tools: z3.array(SessionToolInfoSchema).max(512),
|
|
204
|
+
slashCommands: z3.array(SessionSlashCommandInfoSchema).max(512),
|
|
205
|
+
skills: z3.array(SessionSkillInfoSchema).max(512)
|
|
206
|
+
});
|
|
207
|
+
var SessionOptionsRequestSchema = z3.object({
|
|
208
|
+
requestId: IdSchema,
|
|
209
|
+
machineId: IdSchema,
|
|
210
|
+
sessionId: IdSchema.optional(),
|
|
211
|
+
workspaceId: IdSchema.optional(),
|
|
212
|
+
capabilities: z3.array(IdSchema).max(64).optional()
|
|
213
|
+
});
|
|
214
|
+
var SessionOptionsResultSchema = z3.discriminatedUnion("ok", [
|
|
215
|
+
z3.object({
|
|
216
|
+
ok: z3.literal(true),
|
|
217
|
+
requestId: IdSchema,
|
|
218
|
+
machineId: IdSchema,
|
|
219
|
+
sessionId: IdSchema.optional(),
|
|
220
|
+
workspaces: z3.array(WorkspaceOptionSchema),
|
|
221
|
+
models: z3.array(CopilotModelOptionSchema).min(1),
|
|
222
|
+
modelRefreshError: z3.string().min(1).max(4096).optional(),
|
|
223
|
+
agentModes: z3.array(SessionAgentModeSchema).min(1),
|
|
224
|
+
reasoningEffortConfigurationSupported: z3.literal(true).optional(),
|
|
225
|
+
fileAttachmentsSupported: z3.boolean().optional(),
|
|
226
|
+
worktreeCreationSupported: z3.literal(true).optional(),
|
|
227
|
+
worktreeBranches: z3.array(z3.string().min(1).max(1024)).optional(),
|
|
228
|
+
worktreeCurrentBranch: z3.string().min(1).max(1024).optional(),
|
|
229
|
+
currentModelId: IdSchema.optional(),
|
|
230
|
+
currentAgentMode: SessionAgentModeSchema.optional(),
|
|
231
|
+
currentReasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
232
|
+
environment: SessionEnvironmentInfoSchema.optional(),
|
|
233
|
+
agentName: z3.string().trim().min(1).max(260).optional(),
|
|
234
|
+
configOptions: z3.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
235
|
+
}),
|
|
236
|
+
z3.object({
|
|
237
|
+
ok: z3.literal(false),
|
|
238
|
+
requestId: IdSchema,
|
|
239
|
+
machineId: IdSchema,
|
|
240
|
+
sessionId: IdSchema.optional(),
|
|
241
|
+
error: ProtocolFailureSchema
|
|
242
|
+
})
|
|
243
|
+
]);
|
|
244
|
+
var SessionCreateRequestSchema = z3.object({
|
|
245
|
+
requestId: IdSchema,
|
|
246
|
+
machineId: IdSchema,
|
|
247
|
+
workspaceId: IdSchema,
|
|
248
|
+
modelId: IdSchema,
|
|
249
|
+
agentMode: SessionAgentModeSchema,
|
|
250
|
+
reasoningEffort: SessionReasoningEffortSchema.optional(),
|
|
251
|
+
worktree: z3.object({
|
|
252
|
+
branchName: z3.string().trim().min(1).max(120).optional(),
|
|
253
|
+
baseBranch: z3.string().trim().min(1).max(1024).optional()
|
|
254
|
+
}).strict().optional()
|
|
255
|
+
});
|
|
256
|
+
var SessionCreateResultSchema = z3.discriminatedUnion("ok", [
|
|
257
|
+
z3.object({
|
|
258
|
+
ok: z3.literal(true),
|
|
259
|
+
requestId: IdSchema,
|
|
260
|
+
machineId: IdSchema,
|
|
261
|
+
session: SessionSummarySchema,
|
|
262
|
+
modelId: IdSchema,
|
|
263
|
+
agentMode: SessionAgentModeSchema,
|
|
264
|
+
reasoningEffort: SessionReasoningEffortSchema.optional()
|
|
265
|
+
}),
|
|
266
|
+
z3.object({
|
|
267
|
+
ok: z3.literal(false),
|
|
268
|
+
requestId: IdSchema,
|
|
269
|
+
machineId: IdSchema,
|
|
270
|
+
error: ProtocolFailureSchema
|
|
271
|
+
})
|
|
272
|
+
]);
|
|
273
|
+
var SessionDeleteRequestSchema = z3.object({
|
|
274
|
+
requestId: IdSchema,
|
|
275
|
+
machineId: IdSchema,
|
|
276
|
+
sessionId: IdSchema
|
|
277
|
+
}).strict();
|
|
278
|
+
var SessionDeleteResultSchema = z3.discriminatedUnion("ok", [
|
|
279
|
+
z3.object({
|
|
280
|
+
ok: z3.literal(true),
|
|
281
|
+
requestId: IdSchema,
|
|
282
|
+
machineId: IdSchema,
|
|
283
|
+
sessionId: IdSchema
|
|
284
|
+
}).strict(),
|
|
285
|
+
z3.object({
|
|
286
|
+
ok: z3.literal(false),
|
|
287
|
+
requestId: IdSchema,
|
|
288
|
+
machineId: IdSchema,
|
|
289
|
+
sessionId: IdSchema,
|
|
290
|
+
error: ProtocolFailureSchema
|
|
291
|
+
}).strict()
|
|
292
|
+
]);
|
|
293
|
+
var SessionConfigureRequestSchema = z3.object({
|
|
294
|
+
requestId: IdSchema,
|
|
295
|
+
machineId: IdSchema,
|
|
296
|
+
sessionId: IdSchema,
|
|
297
|
+
modelId: IdSchema.optional(),
|
|
298
|
+
agentMode: SessionAgentModeSchema.optional(),
|
|
299
|
+
reasoningEffort: SessionReasoningEffortSchema.optional(),
|
|
300
|
+
configOption: AgentConfigurationChangeSchema.optional()
|
|
301
|
+
}).refine((request) => request.modelId !== void 0 || request.agentMode !== void 0 || request.reasoningEffort !== void 0 || request.configOption !== void 0, { message: "A modelId, agentMode, reasoningEffort, or configOption change is required" });
|
|
302
|
+
var SessionConfigureResultSchema = z3.discriminatedUnion("ok", [
|
|
303
|
+
z3.object({
|
|
304
|
+
ok: z3.literal(true),
|
|
305
|
+
requestId: IdSchema,
|
|
306
|
+
machineId: IdSchema,
|
|
307
|
+
sessionId: IdSchema,
|
|
308
|
+
modelId: IdSchema.optional(),
|
|
309
|
+
agentMode: SessionAgentModeSchema,
|
|
310
|
+
reasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
311
|
+
configOptions: z3.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
312
|
+
}),
|
|
313
|
+
z3.object({
|
|
314
|
+
ok: z3.literal(false),
|
|
315
|
+
requestId: IdSchema,
|
|
316
|
+
machineId: IdSchema,
|
|
317
|
+
sessionId: IdSchema,
|
|
318
|
+
error: ProtocolFailureSchema
|
|
319
|
+
})
|
|
320
|
+
]);
|
|
321
|
+
var SessionRemoteActionSchema = z3.enum([
|
|
322
|
+
"status",
|
|
323
|
+
"enable",
|
|
324
|
+
"disable"
|
|
325
|
+
]);
|
|
326
|
+
var SessionRemoteStateSchema = z3.enum([
|
|
327
|
+
"off",
|
|
328
|
+
"connecting",
|
|
329
|
+
"active",
|
|
330
|
+
"error"
|
|
331
|
+
]);
|
|
332
|
+
var SessionRemoteRequestSchema = z3.object({
|
|
333
|
+
requestId: IdSchema,
|
|
334
|
+
machineId: IdSchema,
|
|
335
|
+
sessionId: IdSchema,
|
|
336
|
+
action: SessionRemoteActionSchema
|
|
337
|
+
});
|
|
338
|
+
var SessionRemoteStatusSchema = z3.object({
|
|
339
|
+
state: SessionRemoteStateSchema,
|
|
340
|
+
attachedSessionId: IdSchema.optional(),
|
|
341
|
+
url: z3.url().max(32768).optional(),
|
|
342
|
+
steerable: z3.boolean(),
|
|
343
|
+
error: ProtocolFailureSchema.optional()
|
|
344
|
+
});
|
|
345
|
+
var SessionRemoteResultSchema = z3.discriminatedUnion("ok", [
|
|
346
|
+
z3.object({
|
|
347
|
+
ok: z3.literal(true),
|
|
348
|
+
requestId: IdSchema,
|
|
349
|
+
machineId: IdSchema,
|
|
350
|
+
sessionId: IdSchema,
|
|
351
|
+
status: SessionRemoteStatusSchema
|
|
352
|
+
}),
|
|
353
|
+
z3.object({
|
|
354
|
+
ok: z3.literal(false),
|
|
355
|
+
requestId: IdSchema,
|
|
356
|
+
machineId: IdSchema,
|
|
357
|
+
sessionId: IdSchema,
|
|
358
|
+
error: ProtocolFailureSchema
|
|
359
|
+
})
|
|
360
|
+
]);
|
|
361
|
+
|
|
362
|
+
// ../protocol/dist/conversation/attachments.js
|
|
363
|
+
import { z as z4 } from "zod";
|
|
364
|
+
var MAX_INLINE_IMAGE_BYTES = 3 * 1024 * 1024;
|
|
365
|
+
var MAX_INLINE_HTML_BYTES = 512 * 1024;
|
|
366
|
+
var MAX_PROMPT_FILE_BYTES = 1024 * 1024;
|
|
367
|
+
var InlineImageMimeTypeSchema = z4.enum([
|
|
368
|
+
"image/gif",
|
|
369
|
+
"image/jpeg",
|
|
370
|
+
"image/png",
|
|
371
|
+
"image/webp"
|
|
372
|
+
]);
|
|
373
|
+
var Base64DataSchema = z4.string().min(4).max(Math.ceil(MAX_INLINE_IMAGE_BYTES / 3) * 4).regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/, "Expected canonical base64 data");
|
|
374
|
+
var Sha256Schema = z4.string().regex(/^[a-f0-9]{64}$/);
|
|
375
|
+
function decodedBase64ByteLength(value) {
|
|
376
|
+
const padding = value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0;
|
|
377
|
+
return value.length / 4 * 3 - padding;
|
|
378
|
+
}
|
|
379
|
+
var PromptImageAttachmentSchema = z4.object({
|
|
380
|
+
name: z4.string().trim().min(1).max(255),
|
|
381
|
+
mimeType: z4.enum(["image/jpeg", "image/png", "image/webp"]),
|
|
382
|
+
data: Base64DataSchema,
|
|
383
|
+
byteLength: z4.number().int().positive().max(MAX_INLINE_IMAGE_BYTES),
|
|
384
|
+
sha256: Sha256Schema
|
|
385
|
+
}).strict().superRefine((attachment, context) => {
|
|
386
|
+
if (decodedBase64ByteLength(attachment.data) !== attachment.byteLength) {
|
|
387
|
+
context.addIssue({
|
|
388
|
+
code: "custom",
|
|
389
|
+
path: ["byteLength"],
|
|
390
|
+
message: "byteLength does not match the base64 payload"
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
var PromptFileAttachmentSchema = z4.object({
|
|
395
|
+
name: z4.string().trim().min(1).max(255).regex(/^[^\\/\x00-\x1f\x7f]+$/).refine((name) => name !== "." && name !== "..", "Expected a filename"),
|
|
396
|
+
mimeType: z4.string().max(256).regex(/^[a-zA-Z0-9!#$&^_.+-]+\/[a-zA-Z0-9!#$&^_.+-]+$/),
|
|
397
|
+
data: Base64DataSchema.max(Math.ceil(MAX_PROMPT_FILE_BYTES / 3) * 4),
|
|
398
|
+
byteLength: z4.number().int().positive().max(MAX_PROMPT_FILE_BYTES),
|
|
399
|
+
sha256: Sha256Schema
|
|
400
|
+
}).strict().superRefine((attachment, context) => {
|
|
401
|
+
if (decodedBase64ByteLength(attachment.data) !== attachment.byteLength) {
|
|
402
|
+
context.addIssue({
|
|
403
|
+
code: "custom",
|
|
404
|
+
path: ["byteLength"],
|
|
405
|
+
message: "byteLength does not match the base64 payload"
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
var ConversationAttachmentSchema = z4.object({
|
|
410
|
+
kind: z4.enum([
|
|
411
|
+
"file",
|
|
412
|
+
"image",
|
|
413
|
+
"html",
|
|
414
|
+
"selection",
|
|
415
|
+
"github-reference",
|
|
416
|
+
"unknown"
|
|
417
|
+
]),
|
|
418
|
+
name: z4.string().trim().min(1).max(1024),
|
|
419
|
+
mimeType: z4.string().trim().min(1).max(256).optional(),
|
|
420
|
+
uri: z4.string().trim().min(1).max(32768).optional(),
|
|
421
|
+
data: Base64DataSchema.optional(),
|
|
422
|
+
byteLength: z4.number().int().positive().max(MAX_INLINE_IMAGE_BYTES).optional(),
|
|
423
|
+
sha256: Sha256Schema.optional(),
|
|
424
|
+
imageRef: z4.literal("sha256").optional()
|
|
425
|
+
}).strict().superRefine((attachment, context) => {
|
|
426
|
+
if (attachment.imageRef !== void 0) {
|
|
427
|
+
if (attachment.kind !== "image" || attachment.data !== void 0 || attachment.sha256 === void 0 || attachment.byteLength === void 0 || !InlineImageMimeTypeSchema.safeParse(attachment.mimeType).success) {
|
|
428
|
+
context.addIssue({
|
|
429
|
+
code: "custom",
|
|
430
|
+
message: "Image references require image metadata and must not carry inline data"
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
const contentFields = [
|
|
436
|
+
attachment.data,
|
|
437
|
+
attachment.byteLength,
|
|
438
|
+
attachment.sha256
|
|
439
|
+
];
|
|
440
|
+
const contentFieldCount = contentFields.filter((field) => field !== void 0).length;
|
|
441
|
+
if (contentFieldCount !== 0 && contentFieldCount !== contentFields.length) {
|
|
442
|
+
context.addIssue({
|
|
443
|
+
code: "custom",
|
|
444
|
+
message: "Inline attachment content requires data, byteLength, and sha256"
|
|
445
|
+
});
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
if (attachment.data === void 0 || attachment.byteLength === void 0) {
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
if (attachment.kind !== "image" && attachment.kind !== "html") {
|
|
452
|
+
context.addIssue({
|
|
453
|
+
code: "custom",
|
|
454
|
+
path: ["data"],
|
|
455
|
+
message: "Only image and html attachments may carry inline content"
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
if (attachment.kind === "image" && !InlineImageMimeTypeSchema.safeParse(attachment.mimeType).success) {
|
|
459
|
+
context.addIssue({
|
|
460
|
+
code: "custom",
|
|
461
|
+
path: ["mimeType"],
|
|
462
|
+
message: "Inline images must be GIF, JPEG, PNG, or WebP"
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
if (attachment.kind === "html" && (attachment.mimeType !== "text/html" || attachment.byteLength > MAX_INLINE_HTML_BYTES)) {
|
|
466
|
+
context.addIssue({
|
|
467
|
+
code: "custom",
|
|
468
|
+
path: ["mimeType"],
|
|
469
|
+
message: "HTML content must be text/html and at most 512 KiB"
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
if (decodedBase64ByteLength(attachment.data) !== attachment.byteLength) {
|
|
473
|
+
context.addIssue({
|
|
474
|
+
code: "custom",
|
|
475
|
+
path: ["byteLength"],
|
|
476
|
+
message: "byteLength does not match the base64 payload"
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
|
|
481
|
+
// ../protocol/dist/conversation/conversation.js
|
|
482
|
+
import { z as z5 } from "zod";
|
|
483
|
+
var CONVERSATION_ACTIVITY_STEP_LIMIT = 1e3;
|
|
484
|
+
var CONVERSATION_SOURCE_ID_LIMIT = 1e3;
|
|
485
|
+
var ConversationItemBaseShape = {
|
|
486
|
+
id: IdSchema,
|
|
487
|
+
revision: z5.number().int().positive(),
|
|
488
|
+
turnId: IdSchema,
|
|
489
|
+
timestamp: IsoDateSchema,
|
|
490
|
+
sourceEventIds: z5.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT),
|
|
491
|
+
sourceMessageIds: z5.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT).optional(),
|
|
492
|
+
sourceInteractionIds: z5.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT).optional()
|
|
493
|
+
};
|
|
494
|
+
var MAX_INLINE_IMAGE_MESSAGE_BYTES = 3 * 1024 * 1024;
|
|
495
|
+
var MAX_INLINE_IMAGES_PER_MESSAGE = 4;
|
|
496
|
+
var ActivityStepTimeShape = {
|
|
497
|
+
// First observed event time; completion updates must not move an existing call.
|
|
498
|
+
timestamp: IsoDateSchema.optional()
|
|
499
|
+
};
|
|
500
|
+
var ConversationToolStepSchema = z5.object({
|
|
501
|
+
id: IdSchema,
|
|
502
|
+
kind: z5.literal("tool"),
|
|
503
|
+
name: z5.string().trim().min(1).max(256),
|
|
504
|
+
status: z5.enum(["running", "completed", "failed"]),
|
|
505
|
+
...ActivityStepTimeShape
|
|
506
|
+
}).strict();
|
|
507
|
+
var ConversationSkillStepSchema = z5.object({
|
|
508
|
+
id: IdSchema,
|
|
509
|
+
kind: z5.literal("skill"),
|
|
510
|
+
name: z5.string().trim().min(1).max(256),
|
|
511
|
+
status: z5.literal("completed"),
|
|
512
|
+
description: z5.string().trim().min(1).max(2048).optional(),
|
|
513
|
+
source: z5.string().trim().min(1).max(256).optional(),
|
|
514
|
+
...ActivityStepTimeShape
|
|
515
|
+
}).strict();
|
|
516
|
+
var ConversationSubagentStepSchema = z5.object({
|
|
517
|
+
id: IdSchema,
|
|
518
|
+
kind: z5.literal("subagent"),
|
|
519
|
+
name: z5.string().trim().min(1).max(256),
|
|
520
|
+
status: z5.enum(["running", "completed", "failed"]),
|
|
521
|
+
description: z5.string().trim().min(1).max(2048).optional(),
|
|
522
|
+
model: z5.string().trim().min(1).max(256).optional(),
|
|
523
|
+
durationMs: z5.number().int().nonnegative().optional(),
|
|
524
|
+
resultSummary: z5.string().max(4096).optional(),
|
|
525
|
+
error: z5.string().max(4096).optional(),
|
|
526
|
+
...ActivityStepTimeShape
|
|
527
|
+
}).strict();
|
|
528
|
+
var ConversationPermissionStepSchema = z5.object({
|
|
529
|
+
id: IdSchema,
|
|
530
|
+
kind: z5.literal("permission"),
|
|
531
|
+
name: z5.string().trim().min(1).max(256),
|
|
532
|
+
status: z5.enum(["running", "completed", "failed"]),
|
|
533
|
+
description: z5.string().trim().min(1).max(2048).optional(),
|
|
534
|
+
resultSummary: z5.string().max(4096).optional(),
|
|
535
|
+
error: z5.string().max(4096).optional(),
|
|
536
|
+
...ActivityStepTimeShape
|
|
537
|
+
}).strict();
|
|
538
|
+
var ConversationActivityStepSchema = z5.discriminatedUnion("kind", [
|
|
539
|
+
ConversationToolStepSchema,
|
|
540
|
+
ConversationSkillStepSchema,
|
|
541
|
+
ConversationSubagentStepSchema,
|
|
542
|
+
ConversationPermissionStepSchema
|
|
543
|
+
]);
|
|
544
|
+
var ConversationHumanMessageSchema = z5.object({
|
|
545
|
+
...ConversationItemBaseShape,
|
|
546
|
+
kind: z5.literal("human-message"),
|
|
547
|
+
actor: z5.literal("human"),
|
|
548
|
+
content: z5.string().max(1e5),
|
|
549
|
+
attachments: z5.array(ConversationAttachmentSchema).max(100),
|
|
550
|
+
operationId: IdSchema.optional()
|
|
551
|
+
}).strict();
|
|
552
|
+
var ConversationAssistantMessageSchema = z5.object({
|
|
553
|
+
...ConversationItemBaseShape,
|
|
554
|
+
kind: z5.literal("assistant-message"),
|
|
555
|
+
actor: z5.enum(["assistant", "subagent"]),
|
|
556
|
+
content: z5.string().max(5e5),
|
|
557
|
+
attachments: z5.array(ConversationAttachmentSchema).max(100).optional(),
|
|
558
|
+
model: z5.string().trim().min(1).max(256).optional(),
|
|
559
|
+
agentId: IdSchema.optional(),
|
|
560
|
+
final: z5.boolean()
|
|
561
|
+
}).strict().superRefine((message, context) => {
|
|
562
|
+
const inlineImages = message.attachments?.filter((attachment) => attachment.kind === "image" && attachment.data !== void 0) ?? [];
|
|
563
|
+
if (inlineImages.length > MAX_INLINE_IMAGES_PER_MESSAGE) {
|
|
564
|
+
context.addIssue({
|
|
565
|
+
code: "custom",
|
|
566
|
+
path: ["attachments"],
|
|
567
|
+
message: "Assistant messages may contain at most 4 inline images"
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
const inlineImageBytes = inlineImages.reduce((total, attachment) => total + (attachment.byteLength ?? 0), 0);
|
|
571
|
+
if (inlineImageBytes > MAX_INLINE_IMAGE_MESSAGE_BYTES) {
|
|
572
|
+
context.addIssue({
|
|
573
|
+
code: "custom",
|
|
574
|
+
path: ["attachments"],
|
|
575
|
+
message: "Assistant message images exceed the 3 MiB total limit"
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
var ConversationActivityGroupSchema = z5.object({
|
|
580
|
+
...ConversationItemBaseShape,
|
|
581
|
+
kind: z5.literal("activity-group"),
|
|
582
|
+
actor: z5.enum(["assistant", "subagent"]),
|
|
583
|
+
status: z5.enum(["running", "completed", "failed"]),
|
|
584
|
+
steps: z5.array(ConversationActivityStepSchema).max(CONVERSATION_ACTIVITY_STEP_LIMIT)
|
|
585
|
+
}).strict();
|
|
586
|
+
var ConversationNoticeSchema = z5.object({
|
|
587
|
+
...ConversationItemBaseShape,
|
|
588
|
+
kind: z5.literal("notice"),
|
|
589
|
+
actor: z5.enum(["system", "assistant", "subagent"]),
|
|
590
|
+
severity: z5.enum(["info", "success", "warning", "error"]),
|
|
591
|
+
title: z5.string().trim().min(1).max(256),
|
|
592
|
+
content: z5.string().max(4096),
|
|
593
|
+
presentation: z5.literal("compact").optional()
|
|
594
|
+
}).strict();
|
|
595
|
+
var ConversationPlanTodoSchema = z5.object({
|
|
596
|
+
id: IdSchema,
|
|
597
|
+
title: z5.string().trim().min(1).max(1024),
|
|
598
|
+
description: z5.string().max(4096).optional(),
|
|
599
|
+
status: z5.string().trim().min(1).max(64),
|
|
600
|
+
dependsOn: z5.array(IdSchema).max(100)
|
|
601
|
+
}).strict();
|
|
602
|
+
var ConversationPlanUpdateSchema = z5.object({
|
|
603
|
+
...ConversationItemBaseShape,
|
|
604
|
+
kind: z5.literal("plan-update"),
|
|
605
|
+
actor: z5.enum(["assistant", "subagent"]),
|
|
606
|
+
operation: z5.enum(["created", "updated", "deleted"]),
|
|
607
|
+
content: z5.string().max(1e5),
|
|
608
|
+
todos: z5.array(ConversationPlanTodoSchema).max(1e3)
|
|
609
|
+
}).strict();
|
|
610
|
+
var ConversationItemSchema = z5.discriminatedUnion("kind", [
|
|
611
|
+
ConversationHumanMessageSchema,
|
|
612
|
+
ConversationAssistantMessageSchema,
|
|
613
|
+
ConversationActivityGroupSchema,
|
|
614
|
+
ConversationNoticeSchema,
|
|
615
|
+
ConversationPlanUpdateSchema
|
|
616
|
+
]);
|
|
617
|
+
var ConversationItemUpsertSchema = z5.object({
|
|
618
|
+
userId: IdSchema,
|
|
619
|
+
machineId: IdSchema,
|
|
620
|
+
sessionId: IdSchema,
|
|
621
|
+
item: ConversationItemSchema
|
|
622
|
+
});
|
|
623
|
+
var ConversationActivityStepUpsertSchema = z5.object({
|
|
624
|
+
userId: IdSchema,
|
|
625
|
+
machineId: IdSchema,
|
|
626
|
+
sessionId: IdSchema,
|
|
627
|
+
activityId: IdSchema,
|
|
628
|
+
revision: z5.number().int().positive(),
|
|
629
|
+
turnId: IdSchema,
|
|
630
|
+
timestamp: IsoDateSchema,
|
|
631
|
+
actor: z5.enum(["assistant", "subagent"]),
|
|
632
|
+
status: z5.enum(["running", "completed", "failed"]),
|
|
633
|
+
sourceEventId: IdSchema,
|
|
634
|
+
step: ConversationActivityStepSchema
|
|
635
|
+
}).strict();
|
|
636
|
+
|
|
637
|
+
// ../protocol/dist/conversation/timeline.js
|
|
638
|
+
import { z as z6 } from "zod";
|
|
639
|
+
var SESSION_ASSISTANT_PREVIEW_CAPABILITY = "session-assistant-preview-v1";
|
|
640
|
+
var SessionUserPreviewSchema = z6.object({
|
|
641
|
+
id: IdSchema,
|
|
642
|
+
revision: z6.number().int().positive(),
|
|
643
|
+
timestamp: IsoDateSchema,
|
|
644
|
+
text: z6.string().max(4096)
|
|
645
|
+
});
|
|
646
|
+
var SessionAssistantPreviewSchema = z6.object({
|
|
647
|
+
id: IdSchema,
|
|
648
|
+
revision: z6.number().int().positive(),
|
|
649
|
+
timestamp: IsoDateSchema,
|
|
650
|
+
sourceEventIds: z6.array(IdSchema).min(1).max(1e3),
|
|
651
|
+
text: z6.string().max(4096),
|
|
652
|
+
final: z6.boolean(),
|
|
653
|
+
attachments: z6.array(ConversationAttachmentSchema.refine((attachment) => attachment.kind === "image" && attachment.imageRef === "sha256", "Assistant previews contain image references only")).max(4)
|
|
654
|
+
});
|
|
655
|
+
var SESSION_TIMELINE_PAGE_SIZE = 100;
|
|
656
|
+
var SessionTimelinePageRequestSchema = z6.object({
|
|
657
|
+
requestId: IdSchema,
|
|
658
|
+
machineId: IdSchema,
|
|
659
|
+
sessionId: IdSchema,
|
|
660
|
+
cursor: z6.string().max(32768).optional(),
|
|
661
|
+
metadataOnly: z6.boolean().optional(),
|
|
662
|
+
acceptContentEncodings: z6.array(z6.string().min(1).max(32)).max(8).optional(),
|
|
663
|
+
imageReferences: z6.boolean().optional(),
|
|
664
|
+
pageSize: z6.number().int().min(1).max(SESSION_TIMELINE_PAGE_SIZE).default(SESSION_TIMELINE_PAGE_SIZE),
|
|
665
|
+
assistantPreview: z6.boolean().optional()
|
|
666
|
+
});
|
|
667
|
+
var SessionWatchRequestSchema = z6.object({
|
|
668
|
+
requestId: IdSchema,
|
|
669
|
+
machineId: IdSchema,
|
|
670
|
+
sessionId: IdSchema,
|
|
671
|
+
watching: z6.boolean()
|
|
672
|
+
}).strict();
|
|
673
|
+
var SessionWatchResultSchema = z6.discriminatedUnion("ok", [
|
|
674
|
+
z6.object({
|
|
675
|
+
ok: z6.literal(true),
|
|
676
|
+
requestId: IdSchema,
|
|
677
|
+
machineId: IdSchema,
|
|
678
|
+
sessionId: IdSchema,
|
|
679
|
+
watching: z6.boolean()
|
|
680
|
+
}).strict(),
|
|
681
|
+
z6.object({
|
|
682
|
+
ok: z6.literal(false),
|
|
683
|
+
requestId: IdSchema,
|
|
684
|
+
machineId: IdSchema,
|
|
685
|
+
sessionId: IdSchema,
|
|
686
|
+
watching: z6.boolean(),
|
|
687
|
+
error: ProtocolFailureSchema
|
|
688
|
+
}).strict()
|
|
689
|
+
]);
|
|
690
|
+
var SessionTimelinePageSchema = z6.object({
|
|
691
|
+
items: z6.array(ConversationItemSchema).max(SESSION_TIMELINE_PAGE_SIZE),
|
|
692
|
+
cursor: z6.string().max(32768),
|
|
693
|
+
hasMore: z6.boolean(),
|
|
694
|
+
cursorStatus: z6.enum(["ok", "expired"]),
|
|
695
|
+
assistantPreview: SessionAssistantPreviewSchema.optional(),
|
|
696
|
+
userPreview: SessionUserPreviewSchema.optional(),
|
|
697
|
+
previewsComplete: z6.boolean().optional()
|
|
698
|
+
});
|
|
699
|
+
var SessionTimelinePageResultSchema = z6.discriminatedUnion("ok", [
|
|
700
|
+
z6.object({
|
|
701
|
+
ok: z6.literal(true),
|
|
702
|
+
requestId: IdSchema,
|
|
703
|
+
machineId: IdSchema,
|
|
704
|
+
sessionId: IdSchema,
|
|
705
|
+
page: SessionTimelinePageSchema
|
|
706
|
+
}),
|
|
707
|
+
z6.object({
|
|
708
|
+
ok: z6.literal(false),
|
|
709
|
+
requestId: IdSchema,
|
|
710
|
+
machineId: IdSchema,
|
|
711
|
+
sessionId: IdSchema,
|
|
712
|
+
error: ProtocolFailureSchema
|
|
713
|
+
})
|
|
714
|
+
]);
|
|
715
|
+
var SessionTimelineInvalidatedSchema = z6.object({
|
|
716
|
+
userId: IdSchema,
|
|
717
|
+
machineId: IdSchema,
|
|
718
|
+
sessionId: IdSchema,
|
|
719
|
+
reason: z6.enum(["clear", "rewind"]),
|
|
720
|
+
sourceEventId: IdSchema,
|
|
721
|
+
timestamp: IsoDateSchema
|
|
722
|
+
}).strict();
|
|
723
|
+
|
|
724
|
+
// ../protocol/dist/sessions/interactions.js
|
|
725
|
+
import { z as z7 } from "zod";
|
|
726
|
+
var MOBILE_INTERACTION_PERSISTENCE_CAPABILITY = "interaction-persistence";
|
|
727
|
+
var INTERACTION_DISMISS_RESPONSE_CAPABILITY = "interaction-dismiss-response";
|
|
728
|
+
var INTERACTION_SUPERSEDED_ERROR_CODE = "INTERACTION_SUPERSEDED";
|
|
729
|
+
var InteractionFormFieldSchema = z7.object({
|
|
730
|
+
id: IdSchema,
|
|
731
|
+
label: z7.string().trim().min(1).max(1024),
|
|
732
|
+
description: z7.string().max(2048).optional(),
|
|
733
|
+
inputType: z7.enum([
|
|
734
|
+
"text",
|
|
735
|
+
"number",
|
|
736
|
+
"integer",
|
|
737
|
+
"boolean",
|
|
738
|
+
"select",
|
|
739
|
+
"multi-select"
|
|
740
|
+
]),
|
|
741
|
+
required: z7.boolean(),
|
|
742
|
+
options: z7.array(z7.string().max(1024)).max(100),
|
|
743
|
+
defaultValue: z7.union([
|
|
744
|
+
z7.string().max(4096),
|
|
745
|
+
z7.number().finite(),
|
|
746
|
+
z7.boolean(),
|
|
747
|
+
z7.array(z7.string().max(1024)).max(100)
|
|
748
|
+
]).optional(),
|
|
749
|
+
minimum: z7.number().finite().optional(),
|
|
750
|
+
maximum: z7.number().finite().optional(),
|
|
751
|
+
minLength: z7.number().int().nonnegative().max(1e6).optional(),
|
|
752
|
+
maxLength: z7.number().int().nonnegative().max(1e6).optional(),
|
|
753
|
+
minItems: z7.number().int().nonnegative().max(100).optional(),
|
|
754
|
+
maxItems: z7.number().int().nonnegative().max(100).optional(),
|
|
755
|
+
format: z7.enum(["email", "uri", "date", "date-time"]).optional()
|
|
756
|
+
}).strict();
|
|
757
|
+
var InteractionPermissionRequestSchema = z7.object({
|
|
758
|
+
kind: z7.literal("permission"),
|
|
759
|
+
permissionKind: IdSchema,
|
|
760
|
+
title: z7.string().trim().min(1).max(256),
|
|
761
|
+
description: z7.string().max(4096),
|
|
762
|
+
canApproveSession: z7.boolean(),
|
|
763
|
+
canApproveAlways: z7.boolean().optional(),
|
|
764
|
+
approvalScope: z7.string().trim().min(1).max(4096).optional()
|
|
765
|
+
}).strict();
|
|
766
|
+
var InteractionUserInputRequestSchema = z7.object({
|
|
767
|
+
kind: z7.literal("user_input"),
|
|
768
|
+
question: z7.string().trim().min(1).max(4096),
|
|
769
|
+
choices: z7.array(z7.string().max(1024)).max(100),
|
|
770
|
+
allowFreeform: z7.boolean()
|
|
771
|
+
}).strict();
|
|
772
|
+
var InteractionElicitationRequestSchema = z7.object({
|
|
773
|
+
kind: z7.literal("elicitation"),
|
|
774
|
+
message: z7.string().trim().min(1).max(4096),
|
|
775
|
+
mode: z7.enum(["form", "url"]),
|
|
776
|
+
source: z7.string().trim().min(1).max(256).optional(),
|
|
777
|
+
url: z7.url().max(32768).optional(),
|
|
778
|
+
fields: z7.array(InteractionFormFieldSchema).max(100)
|
|
779
|
+
}).strict();
|
|
780
|
+
var InteractionMcpOauthRequestSchema = z7.object({
|
|
781
|
+
kind: z7.literal("mcp_oauth"),
|
|
782
|
+
serverName: z7.string().trim().min(1).max(256),
|
|
783
|
+
serverUrl: z7.url().max(32768),
|
|
784
|
+
reason: z7.enum(["initial", "refresh", "reauth", "upscope"]),
|
|
785
|
+
responseMode: z7.literal("cancel-only")
|
|
786
|
+
}).strict();
|
|
787
|
+
var InteractionMcpHeadersRequestSchema = z7.object({
|
|
788
|
+
kind: z7.literal("mcp_headers"),
|
|
789
|
+
serverName: z7.string().trim().min(1).max(256),
|
|
790
|
+
serverUrl: z7.url().max(32768),
|
|
791
|
+
reason: z7.string().trim().min(1).max(256),
|
|
792
|
+
responseMode: z7.literal("none-only")
|
|
793
|
+
}).strict();
|
|
794
|
+
var InteractionAutoModeSwitchRequestSchema = z7.object({
|
|
795
|
+
kind: z7.literal("auto_mode_switch"),
|
|
796
|
+
errorCode: IdSchema.optional(),
|
|
797
|
+
retryAfterSeconds: z7.number().int().nonnegative().optional()
|
|
798
|
+
}).strict();
|
|
799
|
+
var InteractionSessionLimitsRequestSchema = z7.object({
|
|
800
|
+
kind: z7.literal("session_limits"),
|
|
801
|
+
maxAiCredits: z7.number().finite().nonnegative(),
|
|
802
|
+
usedAiCredits: z7.number().finite().nonnegative()
|
|
803
|
+
}).strict();
|
|
804
|
+
var InteractionExitPlanRequestSchema = z7.object({
|
|
805
|
+
kind: z7.literal("exit_plan"),
|
|
806
|
+
summary: z7.string().max(4096),
|
|
807
|
+
planContent: z7.string().max(1e5).optional(),
|
|
808
|
+
actions: z7.array(IdSchema).min(1).max(20),
|
|
809
|
+
recommendedAction: IdSchema
|
|
810
|
+
}).strict();
|
|
811
|
+
var InteractionRequestSchema = z7.discriminatedUnion("kind", [
|
|
812
|
+
InteractionPermissionRequestSchema,
|
|
813
|
+
InteractionUserInputRequestSchema,
|
|
814
|
+
InteractionElicitationRequestSchema,
|
|
815
|
+
InteractionMcpOauthRequestSchema,
|
|
816
|
+
InteractionMcpHeadersRequestSchema,
|
|
817
|
+
InteractionAutoModeSwitchRequestSchema,
|
|
818
|
+
InteractionSessionLimitsRequestSchema,
|
|
819
|
+
InteractionExitPlanRequestSchema
|
|
820
|
+
]);
|
|
821
|
+
var InteractionPermissionResponseSchema = z7.object({
|
|
822
|
+
kind: z7.literal("permission"),
|
|
823
|
+
decision: z7.enum(["approve-once", "approve-for-session", "approve-always", "reject"]),
|
|
824
|
+
feedback: z7.string().trim().min(1).max(2048).optional()
|
|
825
|
+
}).strict();
|
|
826
|
+
var InteractionUserInputResponseSchema = z7.object({
|
|
827
|
+
kind: z7.literal("user_input"),
|
|
828
|
+
answer: z7.string().max(1e5),
|
|
829
|
+
wasFreeform: z7.boolean()
|
|
830
|
+
}).strict();
|
|
831
|
+
var InteractionFieldValueSchema = z7.union([
|
|
832
|
+
z7.string().max(4096),
|
|
833
|
+
z7.number(),
|
|
834
|
+
z7.boolean(),
|
|
835
|
+
z7.array(z7.string().max(1024)).max(100)
|
|
836
|
+
]);
|
|
837
|
+
var InteractionElicitationResponseSchema = z7.object({
|
|
838
|
+
kind: z7.literal("elicitation"),
|
|
839
|
+
action: z7.enum(["accept", "decline", "cancel"]),
|
|
840
|
+
values: z7.record(z7.string().max(256), InteractionFieldValueSchema)
|
|
841
|
+
}).strict();
|
|
842
|
+
var InteractionMcpOauthResponseSchema = z7.object({
|
|
843
|
+
kind: z7.literal("mcp_oauth"),
|
|
844
|
+
action: z7.literal("cancel")
|
|
845
|
+
}).strict();
|
|
846
|
+
var InteractionMcpHeadersResponseSchema = z7.object({
|
|
847
|
+
kind: z7.literal("mcp_headers"),
|
|
848
|
+
action: z7.literal("none")
|
|
849
|
+
}).strict();
|
|
850
|
+
var InteractionAutoModeSwitchResponseSchema = z7.object({
|
|
851
|
+
kind: z7.literal("auto_mode_switch"),
|
|
852
|
+
action: z7.enum(["yes", "yes_always", "no"])
|
|
853
|
+
}).strict();
|
|
854
|
+
var InteractionSessionLimitsResponseSchema = z7.object({
|
|
855
|
+
kind: z7.literal("session_limits"),
|
|
856
|
+
action: z7.enum(["add", "set", "unset", "cancel"]),
|
|
857
|
+
additionalAiCredits: z7.number().positive().optional(),
|
|
858
|
+
maxAiCredits: z7.number().positive().optional()
|
|
859
|
+
}).strict().superRefine((response, context) => {
|
|
860
|
+
if (response.action === "add" && response.additionalAiCredits === void 0) {
|
|
861
|
+
context.addIssue({
|
|
862
|
+
code: z7.ZodIssueCode.custom,
|
|
863
|
+
path: ["additionalAiCredits"],
|
|
864
|
+
message: "additionalAiCredits is required for add"
|
|
865
|
+
});
|
|
866
|
+
}
|
|
867
|
+
if (response.action === "set" && response.maxAiCredits === void 0) {
|
|
868
|
+
context.addIssue({
|
|
869
|
+
code: z7.ZodIssueCode.custom,
|
|
870
|
+
path: ["maxAiCredits"],
|
|
871
|
+
message: "maxAiCredits is required for set"
|
|
872
|
+
});
|
|
873
|
+
}
|
|
874
|
+
if (response.action !== "add" && response.additionalAiCredits !== void 0) {
|
|
875
|
+
context.addIssue({
|
|
876
|
+
code: z7.ZodIssueCode.custom,
|
|
877
|
+
path: ["additionalAiCredits"],
|
|
878
|
+
message: "additionalAiCredits is only valid for add"
|
|
879
|
+
});
|
|
880
|
+
}
|
|
881
|
+
if (response.action !== "set" && response.maxAiCredits !== void 0) {
|
|
882
|
+
context.addIssue({
|
|
883
|
+
code: z7.ZodIssueCode.custom,
|
|
884
|
+
path: ["maxAiCredits"],
|
|
885
|
+
message: "maxAiCredits is only valid for set"
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
});
|
|
889
|
+
var InteractionExitPlanResponseSchema = z7.object({
|
|
890
|
+
kind: z7.literal("exit_plan"),
|
|
891
|
+
approved: z7.boolean(),
|
|
892
|
+
selectedAction: IdSchema.optional(),
|
|
893
|
+
feedback: z7.string().trim().min(1).max(4096).optional()
|
|
894
|
+
}).strict();
|
|
895
|
+
var InteractionResponseSchema = z7.discriminatedUnion("kind", [
|
|
896
|
+
InteractionPermissionResponseSchema,
|
|
897
|
+
InteractionUserInputResponseSchema,
|
|
898
|
+
InteractionElicitationResponseSchema,
|
|
899
|
+
InteractionMcpOauthResponseSchema,
|
|
900
|
+
InteractionMcpHeadersResponseSchema,
|
|
901
|
+
InteractionAutoModeSwitchResponseSchema,
|
|
902
|
+
InteractionSessionLimitsResponseSchema,
|
|
903
|
+
InteractionExitPlanResponseSchema
|
|
904
|
+
]);
|
|
905
|
+
var InteractionRequestPayloadSchema = z7.object({
|
|
906
|
+
interactionRequestId: IdSchema,
|
|
907
|
+
userId: IdSchema,
|
|
908
|
+
machineId: IdSchema,
|
|
909
|
+
sessionId: IdSchema,
|
|
910
|
+
request: InteractionRequestSchema
|
|
911
|
+
}).strict();
|
|
912
|
+
var InteractionRespondRequestSchema = z7.object({
|
|
913
|
+
requestId: IdSchema,
|
|
914
|
+
interactionRequestId: IdSchema,
|
|
915
|
+
machineId: IdSchema,
|
|
916
|
+
sessionId: IdSchema,
|
|
917
|
+
response: InteractionResponseSchema
|
|
918
|
+
}).strict();
|
|
919
|
+
var InteractionRespondResultSchema = z7.discriminatedUnion("ok", [
|
|
920
|
+
z7.object({
|
|
921
|
+
ok: z7.literal(true),
|
|
922
|
+
requestId: IdSchema,
|
|
923
|
+
interactionRequestId: IdSchema,
|
|
924
|
+
machineId: IdSchema,
|
|
925
|
+
sessionId: IdSchema
|
|
926
|
+
}).strict(),
|
|
927
|
+
z7.object({
|
|
928
|
+
ok: z7.literal(false),
|
|
929
|
+
requestId: IdSchema,
|
|
930
|
+
interactionRequestId: IdSchema,
|
|
931
|
+
machineId: IdSchema,
|
|
932
|
+
sessionId: IdSchema,
|
|
933
|
+
error: ProtocolFailureSchema
|
|
934
|
+
}).strict()
|
|
935
|
+
]);
|
|
936
|
+
var PermissionRequestPayloadSchema = z7.object({
|
|
937
|
+
permissionRequestId: IdSchema,
|
|
938
|
+
userId: IdSchema,
|
|
939
|
+
machineId: IdSchema,
|
|
940
|
+
sessionId: IdSchema,
|
|
941
|
+
request: z7.record(z7.string(), z7.unknown())
|
|
942
|
+
});
|
|
943
|
+
var PermissionRespondRequestSchema = z7.object({
|
|
944
|
+
requestId: IdSchema,
|
|
945
|
+
permissionRequestId: IdSchema,
|
|
946
|
+
machineId: IdSchema,
|
|
947
|
+
sessionId: IdSchema,
|
|
948
|
+
decision: z7.enum(["approve-once", "reject"]),
|
|
949
|
+
feedback: z7.string().trim().min(1).max(2048).optional()
|
|
950
|
+
});
|
|
951
|
+
var PermissionRespondResultSchema = z7.discriminatedUnion("ok", [
|
|
952
|
+
z7.object({
|
|
953
|
+
ok: z7.literal(true),
|
|
954
|
+
requestId: IdSchema,
|
|
955
|
+
permissionRequestId: IdSchema,
|
|
956
|
+
machineId: IdSchema,
|
|
957
|
+
sessionId: IdSchema
|
|
958
|
+
}),
|
|
959
|
+
z7.object({
|
|
960
|
+
ok: z7.literal(false),
|
|
961
|
+
requestId: IdSchema,
|
|
962
|
+
permissionRequestId: IdSchema,
|
|
963
|
+
machineId: IdSchema,
|
|
964
|
+
sessionId: IdSchema,
|
|
965
|
+
error: ProtocolFailureSchema
|
|
966
|
+
})
|
|
967
|
+
]);
|
|
968
|
+
|
|
969
|
+
// ../protocol/dist/common/version.js
|
|
970
|
+
import { z as z8 } from "zod";
|
|
971
|
+
var LEGACY_PROTOCOL_VERSION = 10;
|
|
972
|
+
var PROTOCOL_VERSION = 11;
|
|
973
|
+
var OLDEST_SUPPORTED_PROTOCOL_VERSION = 9;
|
|
974
|
+
var SupportedProtocolVersionSchema = z8.union([
|
|
975
|
+
z8.literal(OLDEST_SUPPORTED_PROTOCOL_VERSION),
|
|
976
|
+
z8.literal(LEGACY_PROTOCOL_VERSION),
|
|
977
|
+
z8.literal(PROTOCOL_VERSION)
|
|
978
|
+
]);
|
|
979
|
+
var TRANSPORT_V2 = 2;
|
|
980
|
+
var SECURE_SOCKET_IO_NAMESPACE = "/v2";
|
|
981
|
+
|
|
982
|
+
// ../protocol/dist/auth/authentication.js
|
|
983
|
+
import { z as z9 } from "zod";
|
|
984
|
+
var UserRoleSchema = z9.enum(["admin", "user"]);
|
|
985
|
+
var PasswordSchema = z9.string().min(1).max(4096);
|
|
986
|
+
var PcTokenLabelSchema = z9.string().trim().min(1).max(120);
|
|
987
|
+
var AuthUserSchema = z9.object({
|
|
988
|
+
userId: IdSchema,
|
|
989
|
+
username: UsernameSchema,
|
|
990
|
+
role: UserRoleSchema
|
|
991
|
+
}).strict();
|
|
992
|
+
var LoginRequestSchema = z9.object({
|
|
993
|
+
username: UsernameSchema,
|
|
994
|
+
password: PasswordSchema
|
|
995
|
+
});
|
|
996
|
+
var LoginResultSchema = z9.discriminatedUnion("ok", [
|
|
997
|
+
z9.object({
|
|
998
|
+
ok: z9.literal(true),
|
|
999
|
+
accessToken: z9.string().min(32),
|
|
1000
|
+
expiresAt: z9.number().int().positive(),
|
|
1001
|
+
user: AuthUserSchema
|
|
1002
|
+
}),
|
|
1003
|
+
z9.object({
|
|
1004
|
+
ok: z9.literal(false),
|
|
1005
|
+
error: ProtocolFailureSchema
|
|
1006
|
+
})
|
|
1007
|
+
]);
|
|
1008
|
+
var MobileLoginRequestSchema = z9.object({
|
|
1009
|
+
mobileCredential: z9.string().min(64).max(4096),
|
|
1010
|
+
clientId: IdSchema
|
|
1011
|
+
});
|
|
1012
|
+
var PcAccountRequestSchema = z9.object({
|
|
1013
|
+
userId: IdSchema,
|
|
1014
|
+
machineId: IdSchema
|
|
1015
|
+
}).strict();
|
|
1016
|
+
var PcAccountResultSchema = z9.discriminatedUnion("ok", [
|
|
1017
|
+
z9.object({
|
|
1018
|
+
ok: z9.literal(true),
|
|
1019
|
+
user: AuthUserSchema,
|
|
1020
|
+
method: z9.enum(["microsoft", "token"])
|
|
1021
|
+
}).strict(),
|
|
1022
|
+
z9.object({
|
|
1023
|
+
ok: z9.literal(false),
|
|
1024
|
+
error: ProtocolFailureSchema
|
|
1025
|
+
}).strict()
|
|
1026
|
+
]);
|
|
1027
|
+
var AdminUserSummarySchema = z9.object({
|
|
1028
|
+
userId: IdSchema,
|
|
1029
|
+
username: UsernameSchema,
|
|
1030
|
+
role: UserRoleSchema,
|
|
1031
|
+
createdAt: z9.number().int().nonnegative(),
|
|
1032
|
+
updatedAt: z9.number().int().nonnegative(),
|
|
1033
|
+
disabledAt: z9.number().int().nonnegative().nullable()
|
|
1034
|
+
}).strict();
|
|
1035
|
+
var AdminFailureResultSchema = z9.object({
|
|
1036
|
+
ok: z9.literal(false),
|
|
1037
|
+
error: ProtocolFailureSchema
|
|
1038
|
+
}).strict();
|
|
1039
|
+
var AdminUserListResultSchema = z9.discriminatedUnion("ok", [
|
|
1040
|
+
z9.object({
|
|
1041
|
+
ok: z9.literal(true),
|
|
1042
|
+
users: z9.array(AdminUserSummarySchema)
|
|
1043
|
+
}).strict(),
|
|
1044
|
+
AdminFailureResultSchema
|
|
1045
|
+
]);
|
|
1046
|
+
var AdminUserCreateRequestSchema = z9.object({
|
|
1047
|
+
username: UsernameSchema,
|
|
1048
|
+
password: PasswordSchema
|
|
1049
|
+
}).strict();
|
|
1050
|
+
var AdminUserCreateResultSchema = z9.discriminatedUnion("ok", [
|
|
1051
|
+
z9.object({
|
|
1052
|
+
ok: z9.literal(true),
|
|
1053
|
+
user: AdminUserSummarySchema
|
|
1054
|
+
}).strict(),
|
|
1055
|
+
AdminFailureResultSchema
|
|
1056
|
+
]);
|
|
1057
|
+
var AdminUserStatusRequestSchema = z9.object({
|
|
1058
|
+
userId: IdSchema,
|
|
1059
|
+
disabled: z9.boolean()
|
|
1060
|
+
}).strict();
|
|
1061
|
+
var AdminUserStatusResultSchema = z9.discriminatedUnion("ok", [
|
|
1062
|
+
z9.object({
|
|
1063
|
+
ok: z9.literal(true),
|
|
1064
|
+
user: AdminUserSummarySchema
|
|
1065
|
+
}).strict(),
|
|
1066
|
+
AdminFailureResultSchema
|
|
1067
|
+
]);
|
|
1068
|
+
var AdminUserPasswordRequestSchema = z9.object({
|
|
1069
|
+
userId: IdSchema,
|
|
1070
|
+
password: PasswordSchema
|
|
1071
|
+
}).strict();
|
|
1072
|
+
var AdminUserPasswordResultSchema = z9.discriminatedUnion("ok", [
|
|
1073
|
+
z9.object({
|
|
1074
|
+
ok: z9.literal(true),
|
|
1075
|
+
user: AdminUserSummarySchema
|
|
1076
|
+
}).strict(),
|
|
1077
|
+
AdminFailureResultSchema
|
|
1078
|
+
]);
|
|
1079
|
+
var PcServiceTokenSummarySchema = z9.object({
|
|
1080
|
+
tokenId: IdSchema,
|
|
1081
|
+
userId: IdSchema,
|
|
1082
|
+
label: PcTokenLabelSchema,
|
|
1083
|
+
createdAt: z9.number().int().nonnegative(),
|
|
1084
|
+
lastUsedAt: z9.number().int().nonnegative().nullable(),
|
|
1085
|
+
revokedAt: z9.number().int().nonnegative().nullable()
|
|
1086
|
+
}).strict();
|
|
1087
|
+
var AdminPcTokenListRequestSchema = z9.object({
|
|
1088
|
+
userId: IdSchema
|
|
1089
|
+
}).strict();
|
|
1090
|
+
var AdminPcTokenListResultSchema = z9.discriminatedUnion("ok", [
|
|
1091
|
+
z9.object({
|
|
1092
|
+
ok: z9.literal(true),
|
|
1093
|
+
tokens: z9.array(PcServiceTokenSummarySchema)
|
|
1094
|
+
}).strict(),
|
|
1095
|
+
AdminFailureResultSchema
|
|
1096
|
+
]);
|
|
1097
|
+
var AdminPcTokenIssueRequestSchema = z9.object({
|
|
1098
|
+
userId: IdSchema,
|
|
1099
|
+
label: PcTokenLabelSchema
|
|
1100
|
+
}).strict();
|
|
1101
|
+
var AdminPcTokenIssueResultSchema = z9.discriminatedUnion("ok", [
|
|
1102
|
+
z9.object({
|
|
1103
|
+
ok: z9.literal(true),
|
|
1104
|
+
token: z9.string().min(32).max(256),
|
|
1105
|
+
pcToken: PcServiceTokenSummarySchema
|
|
1106
|
+
}).strict(),
|
|
1107
|
+
AdminFailureResultSchema
|
|
1108
|
+
]);
|
|
1109
|
+
var AdminPcTokenRevokeRequestSchema = z9.object({
|
|
1110
|
+
tokenId: IdSchema
|
|
1111
|
+
}).strict();
|
|
1112
|
+
var AdminPcTokenRevokeResultSchema = z9.discriminatedUnion("ok", [
|
|
1113
|
+
z9.object({
|
|
1114
|
+
ok: z9.literal(true),
|
|
1115
|
+
pcToken: PcServiceTokenSummarySchema
|
|
1116
|
+
}).strict(),
|
|
1117
|
+
AdminFailureResultSchema
|
|
1118
|
+
]);
|
|
1119
|
+
|
|
1120
|
+
// ../protocol/dist/auth/pairing.js
|
|
1121
|
+
import { z as z10 } from "zod";
|
|
1122
|
+
var PAIRING_URI_SCHEME = "agentknight";
|
|
1123
|
+
var PAIRING_URI_HOST = "pair";
|
|
1124
|
+
var MOBILE_TRANSFER_MAX_PARTS = 64;
|
|
1125
|
+
var MOBILE_TRANSFER_PART_DATA_MAX_LENGTH = 2600;
|
|
1126
|
+
var MOBILE_TRANSFER_RELAY_TTL_MS = 10 * 60 * 1e3;
|
|
1127
|
+
var MOBILE_TRANSFER_RELAY_MAX_CIPHERTEXT_LENGTH = 128 * 1024;
|
|
1128
|
+
var PairingCreateRequestSchema = z10.object({
|
|
1129
|
+
userId: IdSchema,
|
|
1130
|
+
machineId: IdSchema,
|
|
1131
|
+
stableDeviceId: IdSchema.optional(),
|
|
1132
|
+
machineName: z10.string().trim().min(1).max(120),
|
|
1133
|
+
keyId: Base64UrlKeyIdSchema.optional()
|
|
1134
|
+
});
|
|
1135
|
+
var PairingCreateResultSchema = z10.discriminatedUnion("ok", [
|
|
1136
|
+
z10.object({
|
|
1137
|
+
ok: z10.literal(true),
|
|
1138
|
+
code: z10.string().min(32).max(256),
|
|
1139
|
+
expiresAt: z10.number().int().positive()
|
|
1140
|
+
}),
|
|
1141
|
+
z10.object({
|
|
1142
|
+
ok: z10.literal(false),
|
|
1143
|
+
error: ProtocolFailureSchema
|
|
1144
|
+
})
|
|
1145
|
+
]);
|
|
1146
|
+
var PairingExchangeRequestSchema = z10.object({
|
|
1147
|
+
code: z10.string().min(32).max(256),
|
|
1148
|
+
clientId: IdSchema
|
|
1149
|
+
});
|
|
1150
|
+
var PairingExchangeResultSchema = z10.discriminatedUnion("ok", [
|
|
1151
|
+
z10.object({
|
|
1152
|
+
ok: z10.literal(true),
|
|
1153
|
+
accessToken: z10.string().min(32),
|
|
1154
|
+
expiresAt: z10.number().int().positive(),
|
|
1155
|
+
mobileCredential: z10.string().min(64).max(4096),
|
|
1156
|
+
mobileCredentialExpiresAt: z10.number().int().positive(),
|
|
1157
|
+
stableDeviceId: IdSchema.optional(),
|
|
1158
|
+
user: AuthUserSchema
|
|
1159
|
+
}),
|
|
1160
|
+
z10.object({
|
|
1161
|
+
ok: z10.literal(false),
|
|
1162
|
+
error: ProtocolFailureSchema
|
|
1163
|
+
})
|
|
1164
|
+
]);
|
|
1165
|
+
var MobileTransferMachineSchema = z10.object({
|
|
1166
|
+
machineId: IdSchema,
|
|
1167
|
+
mobileCredential: z10.string().min(64).max(4096),
|
|
1168
|
+
contentKey: z10.string().regex(/^[A-Za-z0-9_-]{43}$/u, "Expected a 32-byte base64url key"),
|
|
1169
|
+
relayUrl: z10.url().max(2048).optional(),
|
|
1170
|
+
relayUsername: UsernameSchema.optional(),
|
|
1171
|
+
stableDeviceId: IdSchema.optional(),
|
|
1172
|
+
pairedAt: z10.number().int().nonnegative().optional(),
|
|
1173
|
+
lastSeenAt: z10.number().int().nonnegative().optional(),
|
|
1174
|
+
sleeping: z10.boolean().optional(),
|
|
1175
|
+
selected: z10.boolean().optional()
|
|
1176
|
+
}).strict();
|
|
1177
|
+
var MobileTransferPayloadSchema = z10.object({
|
|
1178
|
+
relayUrl: z10.url().max(2048),
|
|
1179
|
+
username: UsernameSchema,
|
|
1180
|
+
machines: z10.array(MobileTransferMachineSchema).min(1).max(32)
|
|
1181
|
+
}).strict().superRefine((payload, context) => {
|
|
1182
|
+
const normalizeEndpoint = (value) => value.trim().replace(/\/+$/u, "").replace(/^(https?):\/\/(\[[^\]]+\]|[^:/?#]+)(?::([0-9]+))?(?=\/|$)/iu, (_match, scheme, host, rawPort) => {
|
|
1183
|
+
const protocol = scheme.toLowerCase();
|
|
1184
|
+
const port = rawPort === void 0 ? void 0 : Number(rawPort);
|
|
1185
|
+
const isDefaultPort = protocol === "http" && port === 80 || protocol === "https" && port === 443;
|
|
1186
|
+
const authorityPort = port === void 0 || isDefaultPort ? "" : `:${port}`;
|
|
1187
|
+
return `${protocol}://${host.toLowerCase()}${authorityPort}`;
|
|
1188
|
+
});
|
|
1189
|
+
const defaultEndpoint = normalizeEndpoint(payload.relayUrl);
|
|
1190
|
+
const identities = /* @__PURE__ */ new Set();
|
|
1191
|
+
const devices = /* @__PURE__ */ new Map();
|
|
1192
|
+
payload.machines.forEach((machine, index) => {
|
|
1193
|
+
const endpoint = normalizeEndpoint(machine.relayUrl ?? payload.relayUrl);
|
|
1194
|
+
const account = machine.relayUsername ?? (endpoint === defaultEndpoint ? payload.username : null);
|
|
1195
|
+
const identity2 = JSON.stringify([machine.machineId, endpoint, account]);
|
|
1196
|
+
if (identities.has(identity2)) {
|
|
1197
|
+
context.addIssue({
|
|
1198
|
+
code: "custom",
|
|
1199
|
+
message: "Transfer contains duplicate PC authorizations",
|
|
1200
|
+
path: ["machines", index]
|
|
1201
|
+
});
|
|
1202
|
+
}
|
|
1203
|
+
identities.add(identity2);
|
|
1204
|
+
const deviceId = machine.stableDeviceId ?? machine.machineId;
|
|
1205
|
+
const connections = devices.get(deviceId) ?? [];
|
|
1206
|
+
connections.push(machine);
|
|
1207
|
+
devices.set(deviceId, connections);
|
|
1208
|
+
});
|
|
1209
|
+
for (const connections of devices.values()) {
|
|
1210
|
+
if (connections.some((machine) => machine.selected !== void 0) && connections.filter((machine) => machine.selected !== false).length > 1) {
|
|
1211
|
+
context.addIssue({
|
|
1212
|
+
code: "custom",
|
|
1213
|
+
message: "Transfer selects multiple connections for one PC",
|
|
1214
|
+
path: ["machines"]
|
|
1215
|
+
});
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
});
|
|
1219
|
+
var MobileTransferPartSchema = z10.object({
|
|
1220
|
+
transferId: z10.string().regex(/^[A-Za-z0-9_-]{43}$/u, "Expected a SHA-256 base64url digest"),
|
|
1221
|
+
part: z10.number().int().min(1).max(MOBILE_TRANSFER_MAX_PARTS),
|
|
1222
|
+
total: z10.number().int().min(2).max(MOBILE_TRANSFER_MAX_PARTS),
|
|
1223
|
+
data: z10.string().min(1).max(MOBILE_TRANSFER_PART_DATA_MAX_LENGTH).regex(/^[A-Za-z0-9_-]+$/u, "Expected base64url data")
|
|
1224
|
+
}).strict().refine(({ part, total }) => part <= total, {
|
|
1225
|
+
message: "Part number must not exceed total parts",
|
|
1226
|
+
path: ["part"]
|
|
1227
|
+
});
|
|
1228
|
+
var MobileTransferUploadRequestSchema = z10.object({
|
|
1229
|
+
ciphertext: z10.string().min(1).max(MOBILE_TRANSFER_RELAY_MAX_CIPHERTEXT_LENGTH).regex(/^[A-Za-z0-9_-]+$/u, "Expected base64url ciphertext")
|
|
1230
|
+
}).strict();
|
|
1231
|
+
var MobileTransferUploadResultSchema = z10.object({
|
|
1232
|
+
token: z10.string().regex(/^[A-Za-z0-9_-]{43}$/u, "Expected a 32-byte base64url token"),
|
|
1233
|
+
expiresAt: z10.number().int().positive()
|
|
1234
|
+
}).strict();
|
|
1235
|
+
var MobileTransferDownloadResultSchema = z10.object({
|
|
1236
|
+
ciphertext: z10.string().min(1).max(MOBILE_TRANSFER_RELAY_MAX_CIPHERTEXT_LENGTH).regex(/^[A-Za-z0-9_-]+$/u, "Expected base64url ciphertext")
|
|
1237
|
+
}).strict();
|
|
1238
|
+
|
|
1239
|
+
// ../protocol/dist/auth/microsoft-enrollment.js
|
|
1240
|
+
import { z as z11 } from "zod";
|
|
1241
|
+
var MicrosoftIdentityReferenceSchema = z11.object({
|
|
1242
|
+
issuer: z11.literal("https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0"),
|
|
1243
|
+
clientId: z11.uuid(),
|
|
1244
|
+
subject: z11.string().min(1).max(255).regex(/^[\x21-\x7e]+$/)
|
|
1245
|
+
}).strict();
|
|
1246
|
+
var PcEnrollmentIdSchema = z11.uuid();
|
|
1247
|
+
var PcEnrollmentStateSchema = z11.enum([
|
|
1248
|
+
"pending",
|
|
1249
|
+
"approved",
|
|
1250
|
+
"issued",
|
|
1251
|
+
"confirmed",
|
|
1252
|
+
"cancelled",
|
|
1253
|
+
"expired"
|
|
1254
|
+
]);
|
|
1255
|
+
var PcEnrollmentStartRequestSchema = z11.object({
|
|
1256
|
+
machineId: z11.string().min(1).max(128).regex(/^[A-Za-z0-9._:-]+$/),
|
|
1257
|
+
deviceName: z11.string().trim().min(1).max(120).regex(/^[^\x00-\x1f\x7f]+$/),
|
|
1258
|
+
codeChallenge: z11.string().regex(/^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/)
|
|
1259
|
+
}).strict();
|
|
1260
|
+
var PcEnrollmentVerifierRequestSchema = z11.object({
|
|
1261
|
+
verifier: z11.string().regex(/^[A-Za-z0-9._~-]{43,128}$/)
|
|
1262
|
+
}).strict();
|
|
1263
|
+
var MicrosoftCsrfRequestSchema = z11.object({
|
|
1264
|
+
csrfToken: z11.string().min(1).max(256)
|
|
1265
|
+
}).strict();
|
|
1266
|
+
var PcEnrollmentApproveRequestSchema = MicrosoftCsrfRequestSchema.extend({
|
|
1267
|
+
confirmationCode: z11.string().regex(/^[A-F0-9]{8}$/),
|
|
1268
|
+
localCredentials: z11.object({
|
|
1269
|
+
username: z11.string().trim().min(1).max(120),
|
|
1270
|
+
password: z11.string().min(1).max(4096)
|
|
1271
|
+
}).strict().optional()
|
|
1272
|
+
}).strict();
|
|
1273
|
+
var MicrosoftEnrollmentFailureSchema = z11.object({
|
|
1274
|
+
ok: z11.literal(false),
|
|
1275
|
+
error: z11.object({
|
|
1276
|
+
code: z11.string().min(1).max(128),
|
|
1277
|
+
message: z11.string().min(1).max(1024)
|
|
1278
|
+
}).strict()
|
|
1279
|
+
}).strict();
|
|
1280
|
+
var MicrosoftMutationResultSchema = z11.discriminatedUnion("ok", [
|
|
1281
|
+
z11.object({ ok: z11.literal(true) }).strict(),
|
|
1282
|
+
MicrosoftEnrollmentFailureSchema
|
|
1283
|
+
]);
|
|
1284
|
+
var PcEnrollmentStartResultSchema = z11.discriminatedUnion("ok", [
|
|
1285
|
+
z11.object({
|
|
1286
|
+
ok: z11.literal(true),
|
|
1287
|
+
enrollmentId: PcEnrollmentIdSchema,
|
|
1288
|
+
confirmationCode: z11.string().regex(/^[A-F0-9]{8}$/),
|
|
1289
|
+
verificationUri: z11.url(),
|
|
1290
|
+
expiresAt: z11.number().int().positive(),
|
|
1291
|
+
intervalSeconds: z11.number().int().positive()
|
|
1292
|
+
}).strict(),
|
|
1293
|
+
MicrosoftEnrollmentFailureSchema
|
|
1294
|
+
]);
|
|
1295
|
+
var PcEnrollmentStatusResultSchema = z11.discriminatedUnion("ok", [
|
|
1296
|
+
z11.object({
|
|
1297
|
+
ok: z11.literal(true),
|
|
1298
|
+
state: PcEnrollmentStateSchema,
|
|
1299
|
+
expiresAt: z11.number().int().positive()
|
|
1300
|
+
}).strict(),
|
|
1301
|
+
MicrosoftEnrollmentFailureSchema
|
|
1302
|
+
]);
|
|
1303
|
+
var PcEnrollmentExchangeResultSchema = z11.discriminatedUnion("ok", [
|
|
1304
|
+
z11.object({
|
|
1305
|
+
ok: z11.literal(true),
|
|
1306
|
+
token: z11.string().min(32).max(4096),
|
|
1307
|
+
tokenId: z11.string().min(1).max(256),
|
|
1308
|
+
grantId: z11.uuid(),
|
|
1309
|
+
machineId: PcEnrollmentStartRequestSchema.shape.machineId,
|
|
1310
|
+
user: AuthUserSchema,
|
|
1311
|
+
confirmBy: z11.number().int().positive()
|
|
1312
|
+
}).strict(),
|
|
1313
|
+
MicrosoftEnrollmentFailureSchema
|
|
1314
|
+
]);
|
|
1315
|
+
var PcBrowserRedirectUriSchema = z11.string().regex(/^http:\/\/127\.0\.0\.1:(?:[1-9]\d{0,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])\/relay-login\/callback$/);
|
|
1316
|
+
var PcBrowserStateSchema = PcEnrollmentStartRequestSchema.shape.codeChallenge;
|
|
1317
|
+
var PcBrowserAuthorizationCodeSchema = PcEnrollmentStartRequestSchema.shape.codeChallenge;
|
|
1318
|
+
var PcBrowserAuthorizationStartRequestSchema = PcEnrollmentStartRequestSchema.extend({
|
|
1319
|
+
redirectUri: PcBrowserRedirectUriSchema,
|
|
1320
|
+
state: PcBrowserStateSchema
|
|
1321
|
+
}).strict();
|
|
1322
|
+
var PcBrowserAuthorizationStartResultSchema = z11.discriminatedUnion("ok", [
|
|
1323
|
+
z11.object({
|
|
1324
|
+
ok: z11.literal(true),
|
|
1325
|
+
enrollmentId: PcEnrollmentIdSchema,
|
|
1326
|
+
verificationUri: z11.url(),
|
|
1327
|
+
expiresAt: z11.number().int().positive()
|
|
1328
|
+
}).strict(),
|
|
1329
|
+
MicrosoftEnrollmentFailureSchema
|
|
1330
|
+
]);
|
|
1331
|
+
var PcBrowserAuthorizationExchangeRequestSchema = PcEnrollmentVerifierRequestSchema.extend({
|
|
1332
|
+
code: PcBrowserAuthorizationCodeSchema,
|
|
1333
|
+
redirectUri: PcBrowserRedirectUriSchema
|
|
1334
|
+
}).strict();
|
|
1335
|
+
var PcBrowserAuthorizationCallbackSchema = z11.union([
|
|
1336
|
+
z11.object({ state: PcBrowserStateSchema, code: PcBrowserAuthorizationCodeSchema }).strict(),
|
|
1337
|
+
z11.object({
|
|
1338
|
+
state: PcBrowserStateSchema,
|
|
1339
|
+
error: z11.enum(["access_denied", "expired", "cancelled"])
|
|
1340
|
+
}).strict()
|
|
1341
|
+
]);
|
|
1342
|
+
var MicrosoftDeviceSchema = z11.object({
|
|
1343
|
+
grantId: z11.uuid(),
|
|
1344
|
+
tokenId: z11.string().min(1).max(256),
|
|
1345
|
+
machineId: PcEnrollmentStartRequestSchema.shape.machineId,
|
|
1346
|
+
deviceName: PcEnrollmentStartRequestSchema.shape.deviceName,
|
|
1347
|
+
createdAt: z11.number().int().nonnegative(),
|
|
1348
|
+
revokedAt: z11.number().int().nonnegative().nullable()
|
|
1349
|
+
}).strict();
|
|
1350
|
+
var MicrosoftDevicesResultSchema = z11.discriminatedUnion("ok", [
|
|
1351
|
+
z11.object({
|
|
1352
|
+
ok: z11.literal(true),
|
|
1353
|
+
identity: MicrosoftIdentityReferenceSchema,
|
|
1354
|
+
devices: z11.array(MicrosoftDeviceSchema)
|
|
1355
|
+
}).strict(),
|
|
1356
|
+
MicrosoftEnrollmentFailureSchema
|
|
1357
|
+
]);
|
|
1358
|
+
var MicrosoftIdentitySummarySchema = MicrosoftIdentityReferenceSchema.extend({
|
|
1359
|
+
identityId: z11.uuid(),
|
|
1360
|
+
userId: z11.string().min(1).max(256).nullable(),
|
|
1361
|
+
allowed: z11.boolean(),
|
|
1362
|
+
decidedBy: z11.string().min(1).max(256),
|
|
1363
|
+
decidedAt: z11.number().int().nonnegative(),
|
|
1364
|
+
createdAt: z11.number().int().nonnegative(),
|
|
1365
|
+
lastLoginAt: z11.number().int().nonnegative().nullable()
|
|
1366
|
+
}).strict();
|
|
1367
|
+
var MicrosoftIdentityAllowRequestSchema = z11.object({
|
|
1368
|
+
identity: MicrosoftIdentityReferenceSchema,
|
|
1369
|
+
allowed: z11.boolean()
|
|
1370
|
+
}).strict();
|
|
1371
|
+
var MicrosoftIdentityAllowResultSchema = z11.discriminatedUnion("ok", [
|
|
1372
|
+
z11.object({ ok: z11.literal(true), identity: MicrosoftIdentitySummarySchema }).strict(),
|
|
1373
|
+
MicrosoftEnrollmentFailureSchema
|
|
1374
|
+
]);
|
|
1375
|
+
var MicrosoftIdentitiesResultSchema = z11.discriminatedUnion("ok", [
|
|
1376
|
+
z11.object({ ok: z11.literal(true), identities: z11.array(MicrosoftIdentitySummarySchema) }).strict(),
|
|
1377
|
+
MicrosoftEnrollmentFailureSchema
|
|
1378
|
+
]);
|
|
1379
|
+
var MicrosoftInvitationEmailSchema = z11.email().max(254).regex(/^[\x21-\x7e]+$/);
|
|
1380
|
+
var MicrosoftInvitationCodeSchema = z11.string().length(24).regex(/^[A-F0-9]{24}$/);
|
|
1381
|
+
var MicrosoftInvitationCreateRequestSchema = z11.object({
|
|
1382
|
+
email: MicrosoftInvitationEmailSchema
|
|
1383
|
+
}).strict();
|
|
1384
|
+
var MicrosoftInvitationCreateResultSchema = z11.discriminatedUnion("ok", [
|
|
1385
|
+
z11.object({
|
|
1386
|
+
ok: z11.literal(true),
|
|
1387
|
+
invitationId: z11.uuid(),
|
|
1388
|
+
email: MicrosoftInvitationEmailSchema,
|
|
1389
|
+
code: MicrosoftInvitationCodeSchema,
|
|
1390
|
+
expiresAt: z11.number().int().nonnegative(),
|
|
1391
|
+
invitationUri: z11.url()
|
|
1392
|
+
}).strict(),
|
|
1393
|
+
MicrosoftEnrollmentFailureSchema
|
|
1394
|
+
]);
|
|
1395
|
+
var MicrosoftInvitationAcceptRequestSchema = MicrosoftCsrfRequestSchema.extend({
|
|
1396
|
+
code: MicrosoftInvitationCodeSchema
|
|
1397
|
+
}).strict();
|
|
1398
|
+
|
|
1399
|
+
// ../protocol/dist/transport/event-names.js
|
|
1400
|
+
import { z as z12 } from "zod";
|
|
1401
|
+
var PcSecureEventNameSchema = z12.enum([
|
|
1402
|
+
"session.communication",
|
|
1403
|
+
"session.list.result",
|
|
1404
|
+
"session.options.result",
|
|
1405
|
+
"session.create.result",
|
|
1406
|
+
"session.delete.result",
|
|
1407
|
+
"session.configure.result",
|
|
1408
|
+
"session.remote.result",
|
|
1409
|
+
"session.timeline.page.result",
|
|
1410
|
+
"session.watch.result",
|
|
1411
|
+
"session.prompt.result",
|
|
1412
|
+
"session.activity",
|
|
1413
|
+
"session.abort.result",
|
|
1414
|
+
"conversation.item.upsert",
|
|
1415
|
+
"conversation.activity.step.upsert",
|
|
1416
|
+
"session.timeline.invalidated",
|
|
1417
|
+
"interaction.request",
|
|
1418
|
+
"interaction.respond.result",
|
|
1419
|
+
"permission.request",
|
|
1420
|
+
"permission.respond.result",
|
|
1421
|
+
"sessions.snapshot"
|
|
1422
|
+
]);
|
|
1423
|
+
var MobileSecureEventNameSchema = z12.enum([
|
|
1424
|
+
"session.communication",
|
|
1425
|
+
"session.list",
|
|
1426
|
+
"session.options",
|
|
1427
|
+
"session.create",
|
|
1428
|
+
"session.delete",
|
|
1429
|
+
"session.configure",
|
|
1430
|
+
"session.remote",
|
|
1431
|
+
"session.timeline.page",
|
|
1432
|
+
"session.watch",
|
|
1433
|
+
"session.prompt",
|
|
1434
|
+
"session.abort",
|
|
1435
|
+
"interaction.respond",
|
|
1436
|
+
"permission.respond"
|
|
1437
|
+
]);
|
|
1438
|
+
var SecureEventNameSchema = z12.enum([
|
|
1439
|
+
"session.communication",
|
|
1440
|
+
"session.list.result",
|
|
1441
|
+
"session.options.result",
|
|
1442
|
+
"session.create.result",
|
|
1443
|
+
"session.delete.result",
|
|
1444
|
+
"session.configure.result",
|
|
1445
|
+
"session.remote.result",
|
|
1446
|
+
"session.timeline.page.result",
|
|
1447
|
+
"session.watch.result",
|
|
1448
|
+
"session.prompt.result",
|
|
1449
|
+
"session.activity",
|
|
1450
|
+
"session.abort.result",
|
|
1451
|
+
"conversation.item.upsert",
|
|
1452
|
+
"conversation.activity.step.upsert",
|
|
1453
|
+
"session.timeline.invalidated",
|
|
1454
|
+
"interaction.request",
|
|
1455
|
+
"interaction.respond.result",
|
|
1456
|
+
"permission.request",
|
|
1457
|
+
"permission.respond.result",
|
|
1458
|
+
"sessions.snapshot",
|
|
1459
|
+
"session.list",
|
|
1460
|
+
"session.options",
|
|
1461
|
+
"session.create",
|
|
1462
|
+
"session.delete",
|
|
1463
|
+
"session.configure",
|
|
1464
|
+
"session.remote",
|
|
1465
|
+
"session.timeline.page",
|
|
1466
|
+
"session.watch",
|
|
1467
|
+
"session.prompt",
|
|
1468
|
+
"session.abort",
|
|
1469
|
+
"interaction.respond",
|
|
1470
|
+
"permission.respond"
|
|
1471
|
+
]);
|
|
1472
|
+
|
|
1473
|
+
// ../protocol/dist/transport/transport.js
|
|
1474
|
+
import { z as z13 } from "zod";
|
|
1475
|
+
var RoleSchema = z13.enum(["pc", "mobile"]);
|
|
1476
|
+
var V2SocketAuthBaseShape = {
|
|
1477
|
+
transportVersion: z13.coerce.number().pipe(z13.literal(TRANSPORT_V2)),
|
|
1478
|
+
protocolVersion: z13.coerce.number().pipe(SupportedProtocolVersionSchema),
|
|
1479
|
+
token: z13.string().min(1),
|
|
1480
|
+
clientId: IdSchema,
|
|
1481
|
+
machineId: IdSchema,
|
|
1482
|
+
keyId: Base64UrlKeyIdSchema
|
|
1483
|
+
};
|
|
1484
|
+
var V2PcSocketAuthSchema = z13.object({
|
|
1485
|
+
...V2SocketAuthBaseShape,
|
|
1486
|
+
role: z13.literal("pc"),
|
|
1487
|
+
userId: IdSchema
|
|
1488
|
+
}).strict();
|
|
1489
|
+
var V2MobileSocketAuthSchema = z13.object({
|
|
1490
|
+
...V2SocketAuthBaseShape,
|
|
1491
|
+
role: z13.literal("mobile"),
|
|
1492
|
+
mobileCredential: z13.string().min(64).max(4096)
|
|
1493
|
+
}).strict();
|
|
1494
|
+
var V2SocketAuthSchema = z13.discriminatedUnion("role", [
|
|
1495
|
+
V2PcSocketAuthSchema,
|
|
1496
|
+
V2MobileSocketAuthSchema
|
|
1497
|
+
]);
|
|
1498
|
+
var SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH = 16e6;
|
|
1499
|
+
var SecureMessageBaseShape = {
|
|
1500
|
+
version: z13.literal(1),
|
|
1501
|
+
algorithm: z13.literal("A256GCM"),
|
|
1502
|
+
messageId: IdSchema,
|
|
1503
|
+
machineId: IdSchema,
|
|
1504
|
+
clientId: IdSchema,
|
|
1505
|
+
recipientClientId: IdSchema.optional(),
|
|
1506
|
+
keyId: Base64UrlKeyIdSchema,
|
|
1507
|
+
sentAt: z13.number().int().nonnegative(),
|
|
1508
|
+
nonce: z13.string().regex(/^[A-Za-z0-9_-]{16}$/u, "Expected a 12-byte base64url nonce"),
|
|
1509
|
+
ciphertext: z13.string().min(22).max(SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH).regex(/^[A-Za-z0-9_-]+$/u, "Expected base64url ciphertext")
|
|
1510
|
+
};
|
|
1511
|
+
var SecureMessageSchema = z13.discriminatedUnion("sender", [
|
|
1512
|
+
z13.object({
|
|
1513
|
+
...SecureMessageBaseShape,
|
|
1514
|
+
sender: z13.literal("pc"),
|
|
1515
|
+
event: PcSecureEventNameSchema
|
|
1516
|
+
}).strict(),
|
|
1517
|
+
z13.object({
|
|
1518
|
+
...SecureMessageBaseShape,
|
|
1519
|
+
sender: z13.literal("mobile"),
|
|
1520
|
+
event: MobileSecureEventNameSchema
|
|
1521
|
+
}).strict()
|
|
1522
|
+
]);
|
|
1523
|
+
var SecureDeliveryErrorSchema = z13.object({
|
|
1524
|
+
messageId: IdSchema,
|
|
1525
|
+
event: SecureEventNameSchema,
|
|
1526
|
+
machineId: IdSchema,
|
|
1527
|
+
code: z13.enum([
|
|
1528
|
+
"MACHINE_OFFLINE",
|
|
1529
|
+
"IDENTITY_MISMATCH",
|
|
1530
|
+
"KEY_ID_MISMATCH",
|
|
1531
|
+
"INVALID_PAYLOAD",
|
|
1532
|
+
"SESSION_DELETE_UNSUPPORTED",
|
|
1533
|
+
"SESSION_COMMUNICATION_UNSUPPORTED"
|
|
1534
|
+
]),
|
|
1535
|
+
message: z13.string().min(1).max(1024)
|
|
1536
|
+
}).strict();
|
|
1537
|
+
|
|
1538
|
+
// ../protocol/dist/transport/machines.js
|
|
1539
|
+
import { z as z14 } from "zod";
|
|
1540
|
+
var MOBILE_CONNECTED_REPLAY_CAPABILITY = "mobile-connected-replay";
|
|
1541
|
+
var MACHINE_HELLO_SDK_COMPAT_VERSION = "1.0.9";
|
|
1542
|
+
var MachineHelloBaseShape = {
|
|
1543
|
+
userId: IdSchema,
|
|
1544
|
+
machineId: IdSchema,
|
|
1545
|
+
machineName: z14.string().trim().min(1).max(120),
|
|
1546
|
+
platform: z14.string().trim().min(1).max(64),
|
|
1547
|
+
agentRunId: IdSchema,
|
|
1548
|
+
sdkVersion: z14.literal(MACHINE_HELLO_SDK_COMPAT_VERSION),
|
|
1549
|
+
clientVersion: z14.string().trim().min(1).max(64).optional(),
|
|
1550
|
+
capabilities: z14.array(IdSchema).max(64).optional()
|
|
1551
|
+
};
|
|
1552
|
+
var OldestSupportedMachineHelloSchema = z14.object({
|
|
1553
|
+
...MachineHelloBaseShape,
|
|
1554
|
+
protocolVersion: z14.literal(OLDEST_SUPPORTED_PROTOCOL_VERSION)
|
|
1555
|
+
});
|
|
1556
|
+
var LegacyMachineHelloSchema = z14.object({
|
|
1557
|
+
...MachineHelloBaseShape,
|
|
1558
|
+
protocolVersion: z14.literal(LEGACY_PROTOCOL_VERSION)
|
|
1559
|
+
});
|
|
1560
|
+
var MachineHelloSchema = z14.object({
|
|
1561
|
+
...MachineHelloBaseShape,
|
|
1562
|
+
protocolVersion: z14.literal(PROTOCOL_VERSION)
|
|
1563
|
+
});
|
|
1564
|
+
var CompatibleMachineHelloSchema = z14.union([
|
|
1565
|
+
OldestSupportedMachineHelloSchema,
|
|
1566
|
+
LegacyMachineHelloSchema,
|
|
1567
|
+
MachineHelloSchema
|
|
1568
|
+
]);
|
|
1569
|
+
var V2MachineHelloSchema = z14.union([
|
|
1570
|
+
OldestSupportedMachineHelloSchema.strict(),
|
|
1571
|
+
LegacyMachineHelloSchema.strict(),
|
|
1572
|
+
MachineHelloSchema.strict()
|
|
1573
|
+
]);
|
|
1574
|
+
var MachineHeartbeatSchema = z14.object({
|
|
1575
|
+
userId: IdSchema,
|
|
1576
|
+
machineId: IdSchema,
|
|
1577
|
+
agentRunId: IdSchema,
|
|
1578
|
+
sentAt: z14.number().int().nonnegative()
|
|
1579
|
+
});
|
|
1580
|
+
var MachinePresenceStateShape = {
|
|
1581
|
+
online: z14.literal(true),
|
|
1582
|
+
connectedAt: z14.number().int().nonnegative(),
|
|
1583
|
+
lastSeen: z14.number().int().nonnegative()
|
|
1584
|
+
};
|
|
1585
|
+
var MachinePresenceSchema = z14.union([
|
|
1586
|
+
OldestSupportedMachineHelloSchema.extend(MachinePresenceStateShape),
|
|
1587
|
+
LegacyMachineHelloSchema.extend(MachinePresenceStateShape),
|
|
1588
|
+
MachineHelloSchema.extend(MachinePresenceStateShape)
|
|
1589
|
+
]);
|
|
1590
|
+
var MachineOfflineSchema = z14.object({
|
|
1591
|
+
userId: IdSchema,
|
|
1592
|
+
machineId: IdSchema,
|
|
1593
|
+
agentRunId: IdSchema,
|
|
1594
|
+
disconnectedAt: z14.number().int().nonnegative()
|
|
1595
|
+
});
|
|
1596
|
+
var MobileDisconnectedSchema = z14.object({
|
|
1597
|
+
clientId: IdSchema,
|
|
1598
|
+
machineId: IdSchema,
|
|
1599
|
+
disconnectedAt: z14.number().int().nonnegative()
|
|
1600
|
+
});
|
|
1601
|
+
var MobileConnectedSchema = z14.object({
|
|
1602
|
+
clientId: IdSchema,
|
|
1603
|
+
machineId: IdSchema,
|
|
1604
|
+
connectedAt: z14.number().int().nonnegative(),
|
|
1605
|
+
capabilities: z14.array(IdSchema).max(64).optional()
|
|
1606
|
+
});
|
|
1607
|
+
var MachineListRequestSchema = z14.object({
|
|
1608
|
+
requestId: IdSchema
|
|
1609
|
+
});
|
|
1610
|
+
var MachineListResultSchema = z14.object({
|
|
1611
|
+
requestId: IdSchema,
|
|
1612
|
+
machines: z14.array(MachinePresenceSchema),
|
|
1613
|
+
// Absent on older relays; PC presence capabilities alone do not negotiate routing.
|
|
1614
|
+
relayCapabilities: z14.array(IdSchema).max(64).optional()
|
|
1615
|
+
});
|
|
1616
|
+
|
|
1617
|
+
// ../protocol/dist/transport/peer-message.js
|
|
1618
|
+
import { z as z15 } from "zod";
|
|
1619
|
+
var PC_PEER_CHAT_CAPABILITY = "pc-peer-chat-v1";
|
|
1620
|
+
var PeerTextSchema = z15.string().max(16e3).refine((value) => value.trim().length > 0);
|
|
1621
|
+
var PeerMessageBaseShape = {
|
|
1622
|
+
version: z15.literal(1),
|
|
1623
|
+
messageId: IdSchema,
|
|
1624
|
+
sourceSessionId: IdSchema,
|
|
1625
|
+
targetMachineId: IdSchema,
|
|
1626
|
+
targetSessionId: IdSchema
|
|
1627
|
+
};
|
|
1628
|
+
var PeerMessageSchema = z15.discriminatedUnion("kind", [
|
|
1629
|
+
z15.object({
|
|
1630
|
+
...PeerMessageBaseShape,
|
|
1631
|
+
kind: z15.literal("request"),
|
|
1632
|
+
content: PeerTextSchema,
|
|
1633
|
+
timeoutMs: z15.number().int().min(1e3).max(12e4)
|
|
1634
|
+
}).strict(),
|
|
1635
|
+
z15.object({
|
|
1636
|
+
...PeerMessageBaseShape,
|
|
1637
|
+
kind: z15.literal("response"),
|
|
1638
|
+
requestId: IdSchema,
|
|
1639
|
+
content: PeerTextSchema
|
|
1640
|
+
}).strict(),
|
|
1641
|
+
z15.object({
|
|
1642
|
+
...PeerMessageBaseShape,
|
|
1643
|
+
kind: z15.literal("error"),
|
|
1644
|
+
requestId: IdSchema,
|
|
1645
|
+
code: z15.string().trim().min(1).max(80),
|
|
1646
|
+
message: z15.string().trim().min(1).max(1024)
|
|
1647
|
+
}).strict(),
|
|
1648
|
+
z15.object({
|
|
1649
|
+
...PeerMessageBaseShape,
|
|
1650
|
+
kind: z15.literal("cancel"),
|
|
1651
|
+
requestId: IdSchema
|
|
1652
|
+
}).strict()
|
|
1653
|
+
]);
|
|
1654
|
+
var PeerDeliverySchema = z15.object({
|
|
1655
|
+
sourceMachineId: IdSchema,
|
|
1656
|
+
message: PeerMessageSchema
|
|
1657
|
+
}).strict();
|
|
1658
|
+
|
|
1659
|
+
// ../protocol/dist/transport/a2a.js
|
|
1660
|
+
import { z as z16 } from "zod";
|
|
1661
|
+
var PC_A2A_CAPABILITY = "pc-a2a-v1";
|
|
1662
|
+
var A2A_BODY_MAX_LENGTH = 65536;
|
|
1663
|
+
var A2aRelayRequestSchema = z16.object({
|
|
1664
|
+
userId: IdSchema,
|
|
1665
|
+
sourceMachineId: IdSchema,
|
|
1666
|
+
targetSessionId: IdSchema,
|
|
1667
|
+
endpointUrl: z16.url().max(2048),
|
|
1668
|
+
kind: z16.enum(["card", "rpc"]),
|
|
1669
|
+
body: z16.string().max(A2A_BODY_MAX_LENGTH),
|
|
1670
|
+
protocolVersion: z16.string().max(32).optional()
|
|
1671
|
+
}).strict().refine((request) => request.kind !== "card" || request.body === "", {
|
|
1672
|
+
path: ["body"],
|
|
1673
|
+
message: "Agent card requests must have an empty body"
|
|
1674
|
+
});
|
|
1675
|
+
var A2aRelayResponseSchema = z16.object({
|
|
1676
|
+
status: z16.number().int().min(200).max(599),
|
|
1677
|
+
body: z16.string().max(A2A_BODY_MAX_LENGTH)
|
|
1678
|
+
}).strict();
|
|
1679
|
+
|
|
1680
|
+
// ../protocol/dist/sessions/session-communication.js
|
|
1681
|
+
import { z as z17 } from "zod";
|
|
1682
|
+
var SESSION_COMMUNICATION_CAPABILITY = "session.communication.v1";
|
|
1683
|
+
var SessionCommunicationIdSchema = z17.string().min(1).max(256).refine((value) => value === value.trim(), "Expected an unpadded identity");
|
|
1684
|
+
var SessionCommunicationIdentityShape = {
|
|
1685
|
+
requestId: SessionCommunicationIdSchema,
|
|
1686
|
+
machineId: SessionCommunicationIdSchema,
|
|
1687
|
+
sessionId: SessionCommunicationIdSchema,
|
|
1688
|
+
operation: z17.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/u),
|
|
1689
|
+
version: z17.number().int().positive().max(2147483647)
|
|
1690
|
+
};
|
|
1691
|
+
var SessionCommunicationDataSchema = z17.record(z17.string(), z17.json());
|
|
1692
|
+
var SessionCommunicationRequestSchema = z17.object({
|
|
1693
|
+
...SessionCommunicationIdentityShape,
|
|
1694
|
+
kind: z17.literal("request"),
|
|
1695
|
+
data: SessionCommunicationDataSchema
|
|
1696
|
+
}).strict();
|
|
1697
|
+
var SessionCommunicationResponseSchema = z17.object({
|
|
1698
|
+
...SessionCommunicationIdentityShape,
|
|
1699
|
+
kind: z17.literal("response"),
|
|
1700
|
+
data: SessionCommunicationDataSchema
|
|
1701
|
+
}).strict();
|
|
1702
|
+
var SessionCommunicationErrorSchema = z17.object({
|
|
1703
|
+
...SessionCommunicationIdentityShape,
|
|
1704
|
+
kind: z17.literal("error"),
|
|
1705
|
+
error: ProtocolFailureSchema
|
|
1706
|
+
}).strict();
|
|
1707
|
+
var SessionCommunicationSchema = z17.discriminatedUnion("kind", [
|
|
1708
|
+
SessionCommunicationRequestSchema,
|
|
1709
|
+
SessionCommunicationResponseSchema,
|
|
1710
|
+
SessionCommunicationErrorSchema
|
|
1711
|
+
]);
|
|
1712
|
+
function sessionCommunicationOperationCapability(operation, version) {
|
|
1713
|
+
return `${operation}.v${version}`;
|
|
1714
|
+
}
|
|
1715
|
+
function sessionCommunicationError(request, error) {
|
|
1716
|
+
const { data: _data, ...identity2 } = request;
|
|
1717
|
+
return { ...identity2, kind: "error", error };
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
// ../protocol/dist/sessions/session-workspace.js
|
|
1721
|
+
import { z as z18 } from "zod";
|
|
1722
|
+
var SESSION_PROJECT_IDENTITY_OPERATION = "session.project.identity";
|
|
1723
|
+
var SESSION_PROJECT_IDENTITY_VERSION = 1;
|
|
1724
|
+
var SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH = 32768;
|
|
1725
|
+
var SESSION_PROJECT_IDENTITY_MAX_RESPONSE_BYTES = 640 * 1024;
|
|
1726
|
+
var SESSION_DIRECTORY_LIST_OPERATION = "session.directory.list";
|
|
1727
|
+
var SESSION_DIRECTORY_LIST_VERSION = 1;
|
|
1728
|
+
var SESSION_DIRECTORY_MAX_PATH_LENGTH = 1024;
|
|
1729
|
+
var SESSION_DIRECTORY_MAX_DEPTH = 32;
|
|
1730
|
+
var SESSION_DIRECTORY_MAX_ENTRIES = 500;
|
|
1731
|
+
var SESSION_DIRECTORY_MAX_RESPONSE_BYTES = 128 * 1024;
|
|
1732
|
+
var SESSION_FILE_READ_OPERATION = "session.file.read";
|
|
1733
|
+
var SESSION_FILE_READ_VERSION = 1;
|
|
1734
|
+
var SESSION_FILE_MAX_ORIGINAL_BYTES = 500 * 1024;
|
|
1735
|
+
var SESSION_FILE_GZIP_THRESHOLD_BYTES = 20 * 1024;
|
|
1736
|
+
var SESSION_FILE_MAX_IMAGE_BYTES = 100 * 1024;
|
|
1737
|
+
var SESSION_FILE_MAX_IMAGE_EDGE = 1280;
|
|
1738
|
+
var SESSION_FILE_MAX_IMAGE_PIXELS = 16 * 1024 * 1024;
|
|
1739
|
+
var SESSION_FILE_MAX_TRANSFER_BYTES = SESSION_FILE_MAX_ORIGINAL_BYTES + 1024;
|
|
1740
|
+
var SESSION_FILE_MAX_BASE64_LENGTH = Math.ceil(SESSION_FILE_MAX_TRANSFER_BYTES / 3) * 4;
|
|
1741
|
+
var SESSION_FILE_MAX_RESPONSE_BYTES = SESSION_FILE_MAX_BASE64_LENGTH + 8192;
|
|
1742
|
+
var SESSION_FILE_MEDIA_TYPES = [
|
|
1743
|
+
"text/plain",
|
|
1744
|
+
"text/html",
|
|
1745
|
+
"text/markdown",
|
|
1746
|
+
"text/css",
|
|
1747
|
+
"text/javascript",
|
|
1748
|
+
"application/json",
|
|
1749
|
+
"application/xml",
|
|
1750
|
+
"text/xml",
|
|
1751
|
+
"application/yaml",
|
|
1752
|
+
"image/webp"
|
|
1753
|
+
];
|
|
1754
|
+
function isSafeSessionDirectoryPath(path) {
|
|
1755
|
+
if (path === "")
|
|
1756
|
+
return true;
|
|
1757
|
+
if (path.length > SESSION_DIRECTORY_MAX_PATH_LENGTH)
|
|
1758
|
+
return false;
|
|
1759
|
+
const segments = path.split("/");
|
|
1760
|
+
return segments.length <= SESSION_DIRECTORY_MAX_DEPTH && segments.every((segment) => segment.length > 0 && segment.length <= 255 && segment !== "." && segment !== ".." && !/[\\:<>"|?*\u0000-\u001f\u007f]/u.test(segment) && !/[. ]$/u.test(segment) && !/~[0-9]/u.test(segment) && !/^(?:con|prn|aux|nul|com[0-9¹²³]|lpt[0-9¹²³])(?:[ .]|$)/iu.test(segment) && !/^(?:conin\$|conout\$)$/iu.test(segment));
|
|
1761
|
+
}
|
|
1762
|
+
var SessionDirectoryListRequestSchema = z18.object({
|
|
1763
|
+
requestId: IdSchema,
|
|
1764
|
+
machineId: IdSchema,
|
|
1765
|
+
sessionId: IdSchema,
|
|
1766
|
+
path: z18.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH)
|
|
1767
|
+
}).strict();
|
|
1768
|
+
var SessionDirectoryEntrySchema = z18.object({
|
|
1769
|
+
name: z18.string().min(1).max(255),
|
|
1770
|
+
kind: z18.enum(["directory", "file", "blocked"])
|
|
1771
|
+
}).strict();
|
|
1772
|
+
var SessionDirectoryListDataSchema = SessionDirectoryListRequestSchema.pick({ path: true });
|
|
1773
|
+
var SessionDirectoryListResultDataSchema = z18.object({
|
|
1774
|
+
path: z18.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH),
|
|
1775
|
+
rootRevision: z18.string().min(1).max(128),
|
|
1776
|
+
entries: z18.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES)
|
|
1777
|
+
}).strict();
|
|
1778
|
+
var SessionDirectoryListResponseSchema = SessionDirectoryListRequestSchema.extend({
|
|
1779
|
+
rootRevision: z18.string().min(1).max(128).optional(),
|
|
1780
|
+
entries: z18.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES).optional(),
|
|
1781
|
+
error: ProtocolFailureSchema.optional()
|
|
1782
|
+
}).superRefine((response, context) => {
|
|
1783
|
+
if (response.error === void 0 ? response.entries === void 0 || response.rootRevision === void 0 : response.entries !== void 0 || response.rootRevision !== void 0) {
|
|
1784
|
+
context.addIssue({ code: "custom", message: "Expected directory success or failure" });
|
|
1785
|
+
}
|
|
1786
|
+
});
|
|
1787
|
+
var SessionFileReadDataSchema = z18.object({
|
|
1788
|
+
path: z18.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
|
|
1789
|
+
rootRevision: z18.string().regex(/^[A-Za-z0-9_-]{43}$/u)
|
|
1790
|
+
}).strict();
|
|
1791
|
+
var SessionFileReadResultDataSchema = z18.object({
|
|
1792
|
+
path: SessionFileReadDataSchema.shape.path,
|
|
1793
|
+
rootRevision: SessionFileReadDataSchema.shape.rootRevision,
|
|
1794
|
+
mediaType: z18.enum(SESSION_FILE_MEDIA_TYPES),
|
|
1795
|
+
originalByteLength: z18.number().int().min(0).max(SESSION_FILE_MAX_ORIGINAL_BYTES),
|
|
1796
|
+
// Canonical length after decompression, not the length of the transport bytes.
|
|
1797
|
+
byteLength: z18.number().int().min(0).max(SESSION_FILE_MAX_ORIGINAL_BYTES),
|
|
1798
|
+
encoding: z18.enum(["identity", "gzip"]),
|
|
1799
|
+
data: z18.string().max(SESSION_FILE_MAX_BASE64_LENGTH)
|
|
1800
|
+
}).strict().superRefine((result, context) => {
|
|
1801
|
+
const invalid = () => context.addIssue({ code: "custom", message: "Invalid file content" });
|
|
1802
|
+
if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_FILE_GZIP_THRESHOLD_BYTES)
|
|
1803
|
+
invalid();
|
|
1804
|
+
if (result.mediaType === "image/webp" ? result.byteLength === 0 || result.byteLength > SESSION_FILE_MAX_IMAGE_BYTES || result.originalByteLength === 0 : result.byteLength !== result.originalByteLength)
|
|
1805
|
+
invalid();
|
|
1806
|
+
const base64 = result.data;
|
|
1807
|
+
const padding = base64.endsWith("==") ? 2 : base64.endsWith("=") ? 1 : 0;
|
|
1808
|
+
const length = base64.length / 4 * 3 - padding;
|
|
1809
|
+
if (base64.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(base64) || length > SESSION_FILE_MAX_TRANSFER_BYTES || padding === 2 && !/[AQgw]==$/u.test(base64) || padding === 1 && !/[AEIMQUYcgkosw048]=$/u.test(base64) || (result.encoding === "identity" ? length !== result.byteLength : length < 20))
|
|
1810
|
+
invalid();
|
|
1811
|
+
});
|
|
1812
|
+
var SessionGitProjectSchema = z18.object({
|
|
1813
|
+
localRepositoryKey: z18.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/),
|
|
1814
|
+
worktreeRoot: z18.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH),
|
|
1815
|
+
mainWorktreeRoot: z18.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional(),
|
|
1816
|
+
gitRemoteUrl: z18.string().max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional()
|
|
1817
|
+
}).strict();
|
|
1818
|
+
var SessionProjectIdentityRequestDataSchema = z18.object({}).strict();
|
|
1819
|
+
var SessionProjectIdentityResultDataSchema = z18.object({
|
|
1820
|
+
project: SessionGitProjectSchema.optional()
|
|
1821
|
+
}).strict();
|
|
1822
|
+
|
|
1823
|
+
// ../protocol/dist/sessions/session-resource.js
|
|
1824
|
+
import { z as z19 } from "zod";
|
|
1825
|
+
var SESSION_RESOURCE_READ_OPERATION = "session.resource.read";
|
|
1826
|
+
var SESSION_RESOURCE_READ_VERSION = 1;
|
|
1827
|
+
var SESSION_RESOURCE_MAX_ORIGINAL_BYTES = 499999;
|
|
1828
|
+
var SESSION_RESOURCE_GZIP_THRESHOLD_BYTES = 20 * 1024;
|
|
1829
|
+
var SESSION_RESOURCE_MAX_IMAGE_PIXELS = 16 * 1024 * 1024;
|
|
1830
|
+
var SESSION_RESOURCE_MAX_TRANSFER_BYTES = SESSION_RESOURCE_MAX_ORIGINAL_BYTES + 1024;
|
|
1831
|
+
var SESSION_RESOURCE_MAX_BASE64_LENGTH = Math.ceil(SESSION_RESOURCE_MAX_TRANSFER_BYTES / 3) * 4;
|
|
1832
|
+
var SESSION_RESOURCE_MAX_RESPONSE_BYTES = SESSION_RESOURCE_MAX_BASE64_LENGTH + 8192;
|
|
1833
|
+
var SESSION_RESOURCE_MEDIA_TYPES = [
|
|
1834
|
+
"image/jpeg",
|
|
1835
|
+
"image/png",
|
|
1836
|
+
"image/webp",
|
|
1837
|
+
"text/css",
|
|
1838
|
+
"text/javascript"
|
|
1839
|
+
];
|
|
1840
|
+
var SessionResourceReadDataSchema = z19.object({
|
|
1841
|
+
path: z19.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
|
|
1842
|
+
rootRevision: z19.string().regex(/^[A-Za-z0-9_-]{43}$/u)
|
|
1843
|
+
}).strict();
|
|
1844
|
+
var SessionResourceReadResultDataSchema = z19.object({
|
|
1845
|
+
path: SessionResourceReadDataSchema.shape.path,
|
|
1846
|
+
rootRevision: SessionResourceReadDataSchema.shape.rootRevision,
|
|
1847
|
+
mediaType: z19.enum(SESSION_RESOURCE_MEDIA_TYPES),
|
|
1848
|
+
originalByteLength: z19.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
|
|
1849
|
+
byteLength: z19.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
|
|
1850
|
+
encoding: z19.enum(["identity", "gzip"]),
|
|
1851
|
+
data: z19.string().max(SESSION_RESOURCE_MAX_BASE64_LENGTH)
|
|
1852
|
+
}).strict().superRefine((result, context) => {
|
|
1853
|
+
const invalid = () => context.addIssue({ code: "custom", message: "Invalid resource content" });
|
|
1854
|
+
if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_RESOURCE_GZIP_THRESHOLD_BYTES || result.byteLength !== result.originalByteLength || result.mediaType.startsWith("image/") && result.byteLength === 0)
|
|
1855
|
+
invalid();
|
|
1856
|
+
const base64 = result.data;
|
|
1857
|
+
const padding = base64.endsWith("==") ? 2 : base64.endsWith("=") ? 1 : 0;
|
|
1858
|
+
const length = base64.length / 4 * 3 - padding;
|
|
1859
|
+
if (base64.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(base64) || length > SESSION_RESOURCE_MAX_TRANSFER_BYTES || padding === 2 && !/[AQgw]==$/u.test(base64) || padding === 1 && !/[AEIMQUYcgkosw048]=$/u.test(base64) || (result.encoding === "identity" ? length !== result.byteLength : length < 20))
|
|
1860
|
+
invalid();
|
|
1861
|
+
});
|
|
1862
|
+
|
|
1863
|
+
// ../protocol/dist/sessions/session-rename.js
|
|
1864
|
+
import { z as z20 } from "zod";
|
|
1865
|
+
var SESSION_RENAME_OPERATION = "session.rename";
|
|
1866
|
+
var SESSION_RENAME_VERSION = 1;
|
|
1867
|
+
var SESSION_RENAME_CAPABILITY = sessionCommunicationOperationCapability(SESSION_RENAME_OPERATION, SESSION_RENAME_VERSION);
|
|
1868
|
+
var SESSION_NAME_MAX_LENGTH = 100;
|
|
1869
|
+
var SessionNameSchema = z20.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
|
|
1870
|
+
var SessionRenameDataSchema = z20.object({ name: SessionNameSchema }).strict();
|
|
1871
|
+
var SessionRenameResultDataSchema = z20.object({ name: SessionNameSchema }).strict();
|
|
1872
|
+
|
|
1873
|
+
// ../protocol/dist/sessions/group-chat.js
|
|
1874
|
+
import { z as z21 } from "zod";
|
|
1875
|
+
var GROUP_CHAT_CREATE_OPERATION = "group-chat.create";
|
|
1876
|
+
var GROUP_CHAT_CREATE_VERSION = 1;
|
|
1877
|
+
var GROUP_CHAT_CREATE_CAPABILITY = sessionCommunicationOperationCapability(GROUP_CHAT_CREATE_OPERATION, GROUP_CHAT_CREATE_VERSION);
|
|
1878
|
+
var GroupChatCreateDataSchema = z21.object({
|
|
1879
|
+
peerSessionId: IdSchema
|
|
1880
|
+
}).strict();
|
|
1881
|
+
var GroupChatCreateResultDataSchema = z21.object({
|
|
1882
|
+
session: SessionSummarySchema.refine((session) => session.groupChat !== void 0, "Group creation must return a virtual group session")
|
|
1883
|
+
}).strict();
|
|
1884
|
+
|
|
1885
|
+
// ../protocol/dist/sessions/prompts.js
|
|
1886
|
+
import { z as z22 } from "zod";
|
|
1887
|
+
var SESSION_FILE_ATTACHMENTS_CAPABILITY = "session-file-attachments";
|
|
1888
|
+
var SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY = "session-prompt-submission-time";
|
|
1889
|
+
var MAX_PROMPT_IMAGE_BYTES = 3 * 1024 * 1024;
|
|
1890
|
+
var SessionPromptRequestSchema = z22.object({
|
|
1891
|
+
requestId: IdSchema,
|
|
1892
|
+
operationId: IdSchema,
|
|
1893
|
+
machineId: IdSchema,
|
|
1894
|
+
sessionId: IdSchema,
|
|
1895
|
+
prompt: z22.string().trim().max(1e5),
|
|
1896
|
+
attachments: z22.array(PromptImageAttachmentSchema).max(4).optional(),
|
|
1897
|
+
fileAttachments: z22.array(PromptFileAttachmentSchema).max(4).optional(),
|
|
1898
|
+
mode: z22.enum(["enqueue", "immediate"]).default("enqueue")
|
|
1899
|
+
}).strict().superRefine((request, context) => {
|
|
1900
|
+
if (request.prompt.length === 0 && (request.attachments?.length ?? 0) === 0 && (request.fileAttachments?.length ?? 0) === 0) {
|
|
1901
|
+
context.addIssue({
|
|
1902
|
+
code: "custom",
|
|
1903
|
+
path: ["prompt"],
|
|
1904
|
+
message: "A prompt or attachment is required"
|
|
1905
|
+
});
|
|
1906
|
+
}
|
|
1907
|
+
const attachments = [...request.attachments ?? [], ...request.fileAttachments ?? []];
|
|
1908
|
+
if (attachments.length > 4) {
|
|
1909
|
+
context.addIssue({
|
|
1910
|
+
code: "custom",
|
|
1911
|
+
path: ["fileAttachments"],
|
|
1912
|
+
message: "A prompt supports at most 4 attachments"
|
|
1913
|
+
});
|
|
1914
|
+
}
|
|
1915
|
+
const attachmentBytes = attachments.reduce((total, attachment) => total + attachment.byteLength, 0) ?? 0;
|
|
1916
|
+
if (attachmentBytes > MAX_PROMPT_IMAGE_BYTES) {
|
|
1917
|
+
context.addIssue({
|
|
1918
|
+
code: "custom",
|
|
1919
|
+
path: ["attachments"],
|
|
1920
|
+
message: "Prompt attachments exceed the 3 MiB total limit"
|
|
1921
|
+
});
|
|
1922
|
+
}
|
|
1923
|
+
});
|
|
1924
|
+
var SessionPromptResultSchema = z22.discriminatedUnion("ok", [
|
|
1925
|
+
z22.object({
|
|
1926
|
+
ok: z22.literal(true),
|
|
1927
|
+
requestId: IdSchema,
|
|
1928
|
+
operationId: IdSchema,
|
|
1929
|
+
machineId: IdSchema,
|
|
1930
|
+
sessionId: IdSchema,
|
|
1931
|
+
messageId: IdSchema,
|
|
1932
|
+
mode: z22.enum(["enqueue", "immediate"]),
|
|
1933
|
+
deliveryState: z22.enum(["queued", "processing"]),
|
|
1934
|
+
// Negotiated lower bound from the native event clock. Exact text and history
|
|
1935
|
+
// ownership checks still apply; this is not an identity or proof of persistence.
|
|
1936
|
+
submittedAt: IsoDateSchema.optional()
|
|
1937
|
+
}),
|
|
1938
|
+
z22.object({
|
|
1939
|
+
ok: z22.literal(false),
|
|
1940
|
+
requestId: IdSchema,
|
|
1941
|
+
operationId: IdSchema,
|
|
1942
|
+
machineId: IdSchema,
|
|
1943
|
+
sessionId: IdSchema,
|
|
1944
|
+
error: ProtocolFailureSchema
|
|
1945
|
+
})
|
|
1946
|
+
]);
|
|
1947
|
+
var SessionActivityUpdateSchema = z22.object({
|
|
1948
|
+
userId: IdSchema,
|
|
1949
|
+
machineId: IdSchema,
|
|
1950
|
+
sessionId: IdSchema,
|
|
1951
|
+
state: z22.enum(["working", "idle"]),
|
|
1952
|
+
occurredAt: IsoDateSchema,
|
|
1953
|
+
assistantPreview: SessionAssistantPreviewSchema.optional(),
|
|
1954
|
+
userPreview: SessionUserPreviewSchema.optional()
|
|
1955
|
+
});
|
|
1956
|
+
var SessionAbortRequestSchema = z22.object({
|
|
1957
|
+
requestId: IdSchema,
|
|
1958
|
+
machineId: IdSchema,
|
|
1959
|
+
sessionId: IdSchema
|
|
1960
|
+
});
|
|
1961
|
+
var SessionAbortResultSchema = z22.discriminatedUnion("ok", [
|
|
1962
|
+
z22.object({
|
|
1963
|
+
ok: z22.literal(true),
|
|
1964
|
+
requestId: IdSchema,
|
|
1965
|
+
machineId: IdSchema,
|
|
1966
|
+
sessionId: IdSchema
|
|
1967
|
+
}),
|
|
1968
|
+
z22.object({
|
|
1969
|
+
ok: z22.literal(false),
|
|
1970
|
+
requestId: IdSchema,
|
|
1971
|
+
machineId: IdSchema,
|
|
1972
|
+
sessionId: IdSchema,
|
|
1973
|
+
error: ProtocolFailureSchema
|
|
1974
|
+
})
|
|
1975
|
+
]);
|
|
1976
|
+
|
|
1977
|
+
// ../protocol/dist/conversation/timeline-sync.js
|
|
1978
|
+
import { z as z23 } from "zod";
|
|
1979
|
+
var TIMELINE_SYNC_OPERATION = "session.timeline.sync";
|
|
1980
|
+
var TIMELINE_IMAGE_OPERATION = "session.image.read";
|
|
1981
|
+
var TIMELINE_SYNC_VERSION = 1;
|
|
1982
|
+
var TIMELINE_SYNC_MAX_EVENTS = 128;
|
|
1983
|
+
var TIMELINE_SYNC_MAX_BYTES = 6 * 1024 * 1024;
|
|
1984
|
+
var TIMELINE_IMAGE_CHUNK_BYTES = 48 * 1024;
|
|
1985
|
+
var TIMELINE_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
|
|
1986
|
+
var identity = z23.string().min(1).max(256);
|
|
1987
|
+
var sequence = z23.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
|
|
1988
|
+
var hash = z23.string().regex(/^[a-f0-9]{64}$/u);
|
|
1989
|
+
var TimelineWatermarkSchema = z23.object({
|
|
1990
|
+
epoch: identity,
|
|
1991
|
+
sequence
|
|
1992
|
+
}).strict();
|
|
1993
|
+
var TimelineSyncRequestSchema = z23.object({
|
|
1994
|
+
watermark: TimelineWatermarkSchema.optional(),
|
|
1995
|
+
waitMs: z23.number().int().min(0).max(2e4).optional(),
|
|
1996
|
+
resume: z23.boolean().optional()
|
|
1997
|
+
}).strict();
|
|
1998
|
+
var TimelineTextAppendSchema = z23.object({
|
|
1999
|
+
itemId: identity,
|
|
2000
|
+
baseRevision: z23.number().int().positive(),
|
|
2001
|
+
revision: z23.number().int().positive(),
|
|
2002
|
+
appendText: z23.string().min(1).max(5e5),
|
|
2003
|
+
sourceEventIds: z23.array(identity).min(1).max(1e3).optional(),
|
|
2004
|
+
sourceMessageIds: z23.array(identity).min(1).max(1e3).optional(),
|
|
2005
|
+
sourceInteractionIds: z23.array(identity).min(1).max(1e3).optional()
|
|
2006
|
+
}).strict();
|
|
2007
|
+
var TimelineSyncEventSchema = z23.discriminatedUnion("kind", [
|
|
2008
|
+
z23.object({ kind: z23.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
|
|
2009
|
+
z23.object({ kind: z23.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
|
|
2010
|
+
z23.object({
|
|
2011
|
+
kind: z23.literal("step"),
|
|
2012
|
+
sequence,
|
|
2013
|
+
upsert: ConversationActivityStepUpsertSchema
|
|
2014
|
+
}).strict()
|
|
2015
|
+
]);
|
|
2016
|
+
var TimelineResyncReasonSchema = z23.enum([
|
|
2017
|
+
"initial",
|
|
2018
|
+
"epoch-changed",
|
|
2019
|
+
"evicted",
|
|
2020
|
+
"gap",
|
|
2021
|
+
"clear",
|
|
2022
|
+
"rewind",
|
|
2023
|
+
"oversized"
|
|
2024
|
+
]);
|
|
2025
|
+
var TimelineSyncResponseSchema = z23.discriminatedUnion("status", [
|
|
2026
|
+
z23.object({
|
|
2027
|
+
status: z23.literal("snapshot"),
|
|
2028
|
+
watermark: TimelineWatermarkSchema,
|
|
2029
|
+
page: SessionTimelinePageSchema
|
|
2030
|
+
}).strict(),
|
|
2031
|
+
z23.object({
|
|
2032
|
+
status: z23.literal("replay"),
|
|
2033
|
+
watermark: TimelineWatermarkSchema,
|
|
2034
|
+
afterSequence: sequence,
|
|
2035
|
+
events: z23.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
|
|
2036
|
+
hasMore: z23.boolean()
|
|
2037
|
+
}).strict(),
|
|
2038
|
+
z23.object({
|
|
2039
|
+
status: z23.literal("resync"),
|
|
2040
|
+
epoch: identity,
|
|
2041
|
+
reason: TimelineResyncReasonSchema
|
|
2042
|
+
}).strict()
|
|
2043
|
+
]);
|
|
2044
|
+
var TimelineImageRequestSchema = z23.object({
|
|
2045
|
+
sha256: hash,
|
|
2046
|
+
offset: z23.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
|
|
2047
|
+
}).strict();
|
|
2048
|
+
var TimelineImageChunkSchema = z23.object({
|
|
2049
|
+
sha256: hash,
|
|
2050
|
+
offset: z23.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
|
|
2051
|
+
totalBytes: z23.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
|
|
2052
|
+
mimeType: z23.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
|
|
2053
|
+
data: z23.string().min(4).max(Math.ceil(TIMELINE_IMAGE_CHUNK_BYTES / 3) * 4).regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u),
|
|
2054
|
+
eof: z23.boolean()
|
|
2055
|
+
}).strict().superRefine((chunk, context) => {
|
|
2056
|
+
const padding = chunk.data.endsWith("==") ? 2 : chunk.data.endsWith("=") ? 1 : 0;
|
|
2057
|
+
const length = chunk.data.length / 4 * 3 - padding;
|
|
2058
|
+
const end = chunk.offset + length;
|
|
2059
|
+
if (end > chunk.totalBytes || chunk.eof !== (end === chunk.totalBytes) || !chunk.eof && length !== TIMELINE_IMAGE_CHUNK_BYTES) {
|
|
2060
|
+
context.addIssue({ code: "custom", message: "Image chunk length or completion does not match its total" });
|
|
2061
|
+
}
|
|
2062
|
+
});
|
|
2063
|
+
|
|
2064
|
+
// ../protocol/dist/workbench.js
|
|
2065
|
+
import { z as z25 } from "zod";
|
|
2066
|
+
|
|
2067
|
+
// ../protocol/dist/schedules.js
|
|
2068
|
+
import { z as z24 } from "zod";
|
|
2069
|
+
var SCHEDULES_CAPABILITY = "session-schedules-v1";
|
|
2070
|
+
var SCHEDULE_OPERATIONS = [
|
|
2071
|
+
"schedule.snapshot",
|
|
2072
|
+
"schedule.create",
|
|
2073
|
+
"schedule.delete",
|
|
2074
|
+
"schedule.draft.dismiss",
|
|
2075
|
+
"schedule.resume"
|
|
2076
|
+
];
|
|
2077
|
+
var Id = z24.string().min(1).max(256);
|
|
2078
|
+
var NativeId = z24.number().int().positive().max(Number.MAX_SAFE_INTEGER);
|
|
2079
|
+
var Time = z24.iso.datetime({ offset: true });
|
|
2080
|
+
var WorkbenchScheduleRuleSchema = z24.discriminatedUnion("kind", [
|
|
2081
|
+
z24.object({ kind: z24.literal("once"), at: Time }).strict(),
|
|
2082
|
+
z24.object({
|
|
2083
|
+
kind: z24.literal("interval"),
|
|
2084
|
+
seconds: z24.number().int().min(10).max(86400),
|
|
2085
|
+
recurring: z24.boolean().optional()
|
|
2086
|
+
}).strict(),
|
|
2087
|
+
z24.object({
|
|
2088
|
+
kind: z24.literal("cron"),
|
|
2089
|
+
expression: z24.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
|
|
2090
|
+
timezone: z24.string().min(1).max(128).regex(/^[A-Za-z0-9_+./-]+$/)
|
|
2091
|
+
}).strict()
|
|
2092
|
+
]);
|
|
2093
|
+
var Content = {
|
|
2094
|
+
rule: WorkbenchScheduleRuleSchema,
|
|
2095
|
+
prompt: z24.string().max(16e3).describe("The execution prompt, or ONLY the user's exact arguments when skill is set. Do not include the skill name, slash prefix, scheduling instructions, or extra explanation in skill arguments."),
|
|
2096
|
+
skill: z24.string().min(1).max(256).regex(/^[A-Za-z0-9][A-Za-z0-9_.:-]*$/).optional().describe("A genuine callable skill name from this session, without the leading slash. Set this field when the user requests a skill; put only its exact arguments in prompt.")
|
|
2097
|
+
};
|
|
2098
|
+
var WorkbenchScheduleProposalSchema = z24.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
|
|
2099
|
+
var WorkbenchScheduleDraftSchema = z24.object({
|
|
2100
|
+
id: z24.uuid(),
|
|
2101
|
+
createdAt: Time,
|
|
2102
|
+
...Content
|
|
2103
|
+
}).strict();
|
|
2104
|
+
var WorkbenchScheduleEntrySchema = z24.object({
|
|
2105
|
+
id: NativeId,
|
|
2106
|
+
prompt: z24.string().max(1e5),
|
|
2107
|
+
displayPrompt: z24.string().max(1e5).optional(),
|
|
2108
|
+
recurring: z24.boolean(),
|
|
2109
|
+
nextRunAt: Time,
|
|
2110
|
+
intervalMs: z24.number().int().positive().optional(),
|
|
2111
|
+
cron: z24.string().max(256).optional(),
|
|
2112
|
+
timezone: z24.string().max(128).optional(),
|
|
2113
|
+
at: Time.optional()
|
|
2114
|
+
}).strict();
|
|
2115
|
+
var WorkbenchScheduleResultSchema = z24.object({
|
|
2116
|
+
id: Id,
|
|
2117
|
+
scheduleId: NativeId,
|
|
2118
|
+
triggerEventId: Id,
|
|
2119
|
+
time: Time,
|
|
2120
|
+
prompt: z24.string().max(16e3),
|
|
2121
|
+
status: z24.enum(["reply", "error", "merged", "pending", "unknown"]),
|
|
2122
|
+
reply: z24.string().max(16e3).optional(),
|
|
2123
|
+
replyEventId: Id.optional(),
|
|
2124
|
+
error: z24.string().max(1024).optional()
|
|
2125
|
+
}).strict();
|
|
2126
|
+
var WorkbenchScheduleSnapshotSchema = z24.object({
|
|
2127
|
+
state: z24.enum(["active", "needs-resume"]),
|
|
2128
|
+
workingDirectory: z24.string().max(32768).optional(),
|
|
2129
|
+
timezone: z24.string().max(128).optional(),
|
|
2130
|
+
entries: z24.array(WorkbenchScheduleEntrySchema).max(256),
|
|
2131
|
+
drafts: z24.array(WorkbenchScheduleDraftSchema).max(100),
|
|
2132
|
+
results: z24.array(WorkbenchScheduleResultSchema).max(100),
|
|
2133
|
+
historyTruncated: z24.boolean(),
|
|
2134
|
+
sampledAt: Time
|
|
2135
|
+
}).strict();
|
|
2136
|
+
var Submission = {
|
|
2137
|
+
operationId: z24.uuid(),
|
|
2138
|
+
operationCreatedAt: z24.iso.datetime(),
|
|
2139
|
+
expectedAgentRunId: Id
|
|
2140
|
+
};
|
|
2141
|
+
var WorkbenchScheduleCreateRequestSchema = z24.object({
|
|
2142
|
+
...Submission,
|
|
2143
|
+
...Content,
|
|
2144
|
+
draftId: z24.uuid().optional()
|
|
2145
|
+
}).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
|
|
2146
|
+
var WorkbenchScheduleCreateResultSchema = z24.object({
|
|
2147
|
+
snapshot: WorkbenchScheduleSnapshotSchema,
|
|
2148
|
+
verified: z24.boolean()
|
|
2149
|
+
}).strict();
|
|
2150
|
+
var WorkbenchScheduleDeleteRequestSchema = z24.object({
|
|
2151
|
+
...Submission,
|
|
2152
|
+
id: NativeId
|
|
2153
|
+
}).strict();
|
|
2154
|
+
var WorkbenchScheduleDeleteResultSchema = z24.object({
|
|
2155
|
+
snapshot: WorkbenchScheduleSnapshotSchema,
|
|
2156
|
+
removed: z24.boolean()
|
|
2157
|
+
}).strict();
|
|
2158
|
+
var WorkbenchScheduleDraftDismissRequestSchema = z24.object({
|
|
2159
|
+
...Submission,
|
|
2160
|
+
draftId: z24.uuid()
|
|
2161
|
+
}).strict();
|
|
2162
|
+
var ScheduleAndroidSchemas = {
|
|
2163
|
+
WorkbenchScheduleRule: WorkbenchScheduleRuleSchema,
|
|
2164
|
+
WorkbenchScheduleProposal: WorkbenchScheduleProposalSchema,
|
|
2165
|
+
WorkbenchScheduleDraft: WorkbenchScheduleDraftSchema,
|
|
2166
|
+
WorkbenchScheduleEntry: WorkbenchScheduleEntrySchema,
|
|
2167
|
+
WorkbenchScheduleResult: WorkbenchScheduleResultSchema,
|
|
2168
|
+
WorkbenchScheduleSnapshot: WorkbenchScheduleSnapshotSchema,
|
|
2169
|
+
WorkbenchScheduleCreateRequest: WorkbenchScheduleCreateRequestSchema,
|
|
2170
|
+
WorkbenchScheduleCreateResult: WorkbenchScheduleCreateResultSchema,
|
|
2171
|
+
WorkbenchScheduleDeleteRequest: WorkbenchScheduleDeleteRequestSchema,
|
|
2172
|
+
WorkbenchScheduleDeleteResult: WorkbenchScheduleDeleteResultSchema,
|
|
2173
|
+
WorkbenchScheduleDraftDismissRequest: WorkbenchScheduleDraftDismissRequestSchema
|
|
2174
|
+
};
|
|
2175
|
+
|
|
2176
|
+
// ../protocol/dist/workbench.js
|
|
2177
|
+
var Id2 = z25.string().trim().min(1).max(256);
|
|
2178
|
+
var Text = z25.string().max(1e5);
|
|
2179
|
+
var Count = z25.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
|
|
2180
|
+
var Failure = z25.object({ code: Id2, message: z25.string().min(1).max(1024) }).strict();
|
|
2181
|
+
var WORKBENCH_VERSION = 1;
|
|
2182
|
+
var RESEARCH_CHAT_CAPABILITY = "research-chat-v1";
|
|
2183
|
+
var WORKBENCH_OPERATIONS = [
|
|
2184
|
+
"operation.get",
|
|
2185
|
+
"question.ask",
|
|
2186
|
+
"research.create",
|
|
2187
|
+
"research.list",
|
|
2188
|
+
"research.timeline",
|
|
2189
|
+
"research.send",
|
|
2190
|
+
"research.abort",
|
|
2191
|
+
"research.delete",
|
|
2192
|
+
"command.list",
|
|
2193
|
+
"command.invoke",
|
|
2194
|
+
"queue.snapshot",
|
|
2195
|
+
"queue.mutate",
|
|
2196
|
+
"insights.read",
|
|
2197
|
+
"context.compact",
|
|
2198
|
+
...SCHEDULE_OPERATIONS
|
|
2199
|
+
];
|
|
2200
|
+
var workbenchCapability = (operation) => `${operation}.v${WORKBENCH_VERSION}`;
|
|
2201
|
+
var Submission2 = {
|
|
2202
|
+
operationId: z25.uuid(),
|
|
2203
|
+
operationCreatedAt: z25.iso.datetime(),
|
|
2204
|
+
expectedAgentRunId: Id2
|
|
2205
|
+
};
|
|
2206
|
+
var WorkbenchOperationGetSchema = z25.object({ operationId: z25.uuid() }).strict();
|
|
2207
|
+
var WorkbenchOperationStatusSchema = z25.object({
|
|
2208
|
+
operationId: z25.uuid(),
|
|
2209
|
+
operation: z25.enum(WORKBENCH_OPERATIONS),
|
|
2210
|
+
agentRunId: Id2,
|
|
2211
|
+
state: z25.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
|
|
2212
|
+
result: z25.record(z25.string(), z25.json()).optional(),
|
|
2213
|
+
error: Failure.optional()
|
|
2214
|
+
}).strict().superRefine((value, context) => {
|
|
2215
|
+
if (value.state === "succeeded" !== (value.result !== void 0) || (value.state === "failed" || value.state === "uncertain") !== (value.error !== void 0)) {
|
|
2216
|
+
context.addIssue({ code: "custom", message: "Invalid operation state payload" });
|
|
2217
|
+
}
|
|
2218
|
+
});
|
|
2219
|
+
var WorkbenchAskRequestSchema = z25.object({
|
|
2220
|
+
...Submission2,
|
|
2221
|
+
question: z25.string().trim().min(1).max(16e3)
|
|
2222
|
+
}).strict();
|
|
2223
|
+
var WorkbenchAskResultSchema = z25.object({ answer: Text }).strict();
|
|
2224
|
+
var WorkbenchEmptyRequestSchema = z25.object({}).strict();
|
|
2225
|
+
var WorkbenchSubmitRequestSchema = z25.object(Submission2).strict();
|
|
2226
|
+
var WorkbenchResearchCreateRequestSchema = z25.object({
|
|
2227
|
+
...Submission2,
|
|
2228
|
+
title: z25.string().trim().min(1).max(120),
|
|
2229
|
+
question: z25.string().trim().min(1).max(16e3),
|
|
2230
|
+
sourceItemId: Id2.optional(),
|
|
2231
|
+
deferInitialPrompt: z25.literal(true).optional()
|
|
2232
|
+
}).strict();
|
|
2233
|
+
var WorkbenchResearchThreadSchema = z25.object({
|
|
2234
|
+
sessionId: Id2,
|
|
2235
|
+
parentSessionId: Id2,
|
|
2236
|
+
title: z25.string().min(1).max(120),
|
|
2237
|
+
createdAt: z25.iso.datetime(),
|
|
2238
|
+
contextAnchor: Id2.optional(),
|
|
2239
|
+
contextTruncated: z25.boolean(),
|
|
2240
|
+
detached: z25.boolean(),
|
|
2241
|
+
state: z25.enum(["creating", "ready", "failed"])
|
|
2242
|
+
}).strict();
|
|
2243
|
+
var WorkbenchResearchCreateResultSchema = z25.object({
|
|
2244
|
+
thread: WorkbenchResearchThreadSchema
|
|
2245
|
+
}).strict();
|
|
2246
|
+
var WorkbenchResearchListResultSchema = z25.object({
|
|
2247
|
+
threads: z25.array(WorkbenchResearchThreadSchema).max(100)
|
|
2248
|
+
}).strict();
|
|
2249
|
+
var WorkbenchResearchTimelineRequestSchema = z25.object({
|
|
2250
|
+
cursor: Id2.optional()
|
|
2251
|
+
}).strict();
|
|
2252
|
+
var WorkbenchResearchSendRequestSchema = z25.object({
|
|
2253
|
+
...Submission2,
|
|
2254
|
+
prompt: z25.string().trim().min(1).max(16e3)
|
|
2255
|
+
}).strict();
|
|
2256
|
+
var WorkbenchResearchSendResultSchema = z25.object({ messageId: Id2 }).strict();
|
|
2257
|
+
var WorkbenchCompletedResultSchema = z25.object({ completed: z25.boolean() }).strict();
|
|
2258
|
+
var WorkbenchCommandSchema = z25.object({
|
|
2259
|
+
name: z25.string().min(1).max(260),
|
|
2260
|
+
description: z25.string().max(4096),
|
|
2261
|
+
argumentHint: z25.string().max(1024).optional(),
|
|
2262
|
+
kind: z25.enum(["builtin", "skill", "client"]),
|
|
2263
|
+
allowDuringExecution: z25.boolean(),
|
|
2264
|
+
supported: z25.boolean(),
|
|
2265
|
+
reason: z25.string().max(1024).optional()
|
|
2266
|
+
}).strict();
|
|
2267
|
+
var WorkbenchCommandListResultSchema = z25.object({
|
|
2268
|
+
commands: z25.array(WorkbenchCommandSchema).max(512)
|
|
2269
|
+
}).strict();
|
|
2270
|
+
var WorkbenchCommandInvokeRequestSchema = z25.object({
|
|
2271
|
+
...Submission2,
|
|
2272
|
+
name: z25.string().trim().min(1).max(260),
|
|
2273
|
+
input: z25.string().max(16e3)
|
|
2274
|
+
}).strict();
|
|
2275
|
+
var WorkbenchCommandChoiceSchema = z25.object({
|
|
2276
|
+
name: z25.string().min(1).max(260),
|
|
2277
|
+
label: z25.string().min(1).max(1024),
|
|
2278
|
+
input: z25.string().max(16e3)
|
|
2279
|
+
}).strict();
|
|
2280
|
+
var WorkbenchCommandResultSchema = z25.discriminatedUnion("kind", [
|
|
2281
|
+
z25.object({ kind: z25.literal("text"), text: Text }).strict(),
|
|
2282
|
+
z25.object({ kind: z25.literal("completed") }).strict(),
|
|
2283
|
+
z25.object({ kind: z25.literal("sent"), messageId: Id2 }).strict(),
|
|
2284
|
+
z25.object({
|
|
2285
|
+
kind: z25.literal("select-subcommand"),
|
|
2286
|
+
choices: z25.array(WorkbenchCommandChoiceSchema).min(1).max(100)
|
|
2287
|
+
}).strict()
|
|
2288
|
+
]);
|
|
2289
|
+
var WorkbenchQueueItemSchema = z25.object({
|
|
2290
|
+
id: Id2,
|
|
2291
|
+
kind: z25.string().min(1).max(64),
|
|
2292
|
+
texts: z25.array(z25.string().max(1e5)).min(1).max(100),
|
|
2293
|
+
actions: z25.array(z25.enum(["edit", "remove", "move", "send-now"])).max(4)
|
|
2294
|
+
}).strict();
|
|
2295
|
+
var WorkbenchQueueSnapshotSchema = z25.object({
|
|
2296
|
+
generation: Id2,
|
|
2297
|
+
revision: Id2,
|
|
2298
|
+
items: z25.array(WorkbenchQueueItemSchema).max(512),
|
|
2299
|
+
steeringMessages: z25.array(z25.string().max(1e5)).max(512)
|
|
2300
|
+
}).strict();
|
|
2301
|
+
var QueueMutation = {
|
|
2302
|
+
...Submission2,
|
|
2303
|
+
generation: Id2,
|
|
2304
|
+
revision: Id2,
|
|
2305
|
+
id: Id2
|
|
2306
|
+
};
|
|
2307
|
+
var WorkbenchQueueMutationRequestSchema = z25.discriminatedUnion("action", [
|
|
2308
|
+
z25.object({ ...QueueMutation, action: z25.literal("edit"), prompt: z25.string().trim().min(1).max(1e5) }).strict(),
|
|
2309
|
+
z25.object({ ...QueueMutation, action: z25.literal("remove") }).strict(),
|
|
2310
|
+
z25.object({ ...QueueMutation, action: z25.literal("move"), toPosition: z25.number().int().min(0).max(511) }).strict(),
|
|
2311
|
+
z25.object({ ...QueueMutation, action: z25.literal("send-now") }).strict()
|
|
2312
|
+
]);
|
|
2313
|
+
var WorkbenchQueueMutationResultSchema = z25.object({
|
|
2314
|
+
changed: z25.boolean(),
|
|
2315
|
+
snapshot: WorkbenchQueueSnapshotSchema
|
|
2316
|
+
}).strict();
|
|
2317
|
+
var WorkbenchTokenMetricSchema = z25.object({
|
|
2318
|
+
kind: z25.string().min(1).max(128),
|
|
2319
|
+
count: Count
|
|
2320
|
+
}).strict();
|
|
2321
|
+
var WorkbenchModelUsageSchema = z25.object({
|
|
2322
|
+
model: Id2,
|
|
2323
|
+
requests: Count,
|
|
2324
|
+
premiumRequestCost: z25.number().finite().nonnegative(),
|
|
2325
|
+
tokens: z25.array(WorkbenchTokenMetricSchema).max(32)
|
|
2326
|
+
}).strict();
|
|
2327
|
+
var WorkbenchContextSchema = z25.object({
|
|
2328
|
+
currentTokens: Count,
|
|
2329
|
+
tokenLimit: Count,
|
|
2330
|
+
systemTokens: Count.optional(),
|
|
2331
|
+
conversationTokens: Count.optional(),
|
|
2332
|
+
toolTokens: Count.optional()
|
|
2333
|
+
}).strict();
|
|
2334
|
+
var WorkbenchInsightsSchema = z25.object({
|
|
2335
|
+
sampledAt: z25.iso.datetime(),
|
|
2336
|
+
generation: Id2,
|
|
2337
|
+
model: Id2.optional(),
|
|
2338
|
+
totalUserRequests: Count,
|
|
2339
|
+
premiumRequestCost: z25.number().finite().nonnegative(),
|
|
2340
|
+
nanoAiu: z25.string().regex(/^\d+$/).max(40).optional(),
|
|
2341
|
+
tokens: z25.array(WorkbenchTokenMetricSchema).max(32),
|
|
2342
|
+
models: z25.array(WorkbenchModelUsageSchema).max(100),
|
|
2343
|
+
context: WorkbenchContextSchema.optional(),
|
|
2344
|
+
canCompact: z25.boolean(),
|
|
2345
|
+
compactUnavailableReason: z25.string().max(1024).optional()
|
|
2346
|
+
}).strict();
|
|
2347
|
+
var WorkbenchCompactResultSchema = z25.object({
|
|
2348
|
+
success: z25.boolean(),
|
|
2349
|
+
tokensRemoved: Count,
|
|
2350
|
+
messagesRemoved: Count
|
|
2351
|
+
}).strict();
|
|
2352
|
+
var WorkbenchAndroidSchemas = {
|
|
2353
|
+
WorkbenchOperationGet: WorkbenchOperationGetSchema,
|
|
2354
|
+
WorkbenchOperationStatus: WorkbenchOperationStatusSchema,
|
|
2355
|
+
WorkbenchAskRequest: WorkbenchAskRequestSchema,
|
|
2356
|
+
WorkbenchAskResult: WorkbenchAskResultSchema,
|
|
2357
|
+
WorkbenchSubmitRequest: WorkbenchSubmitRequestSchema,
|
|
2358
|
+
WorkbenchResearchCreateRequest: WorkbenchResearchCreateRequestSchema,
|
|
2359
|
+
WorkbenchResearchThread: WorkbenchResearchThreadSchema,
|
|
2360
|
+
WorkbenchResearchCreateResult: WorkbenchResearchCreateResultSchema,
|
|
2361
|
+
WorkbenchResearchListResult: WorkbenchResearchListResultSchema,
|
|
2362
|
+
WorkbenchResearchTimelineRequest: WorkbenchResearchTimelineRequestSchema,
|
|
2363
|
+
WorkbenchResearchSendRequest: WorkbenchResearchSendRequestSchema,
|
|
2364
|
+
WorkbenchResearchSendResult: WorkbenchResearchSendResultSchema,
|
|
2365
|
+
WorkbenchCompletedResult: WorkbenchCompletedResultSchema,
|
|
2366
|
+
WorkbenchCommand: WorkbenchCommandSchema,
|
|
2367
|
+
WorkbenchCommandListResult: WorkbenchCommandListResultSchema,
|
|
2368
|
+
WorkbenchCommandInvokeRequest: WorkbenchCommandInvokeRequestSchema,
|
|
2369
|
+
WorkbenchCommandChoice: WorkbenchCommandChoiceSchema,
|
|
2370
|
+
WorkbenchCommandResult: WorkbenchCommandResultSchema,
|
|
2371
|
+
WorkbenchQueueItem: WorkbenchQueueItemSchema,
|
|
2372
|
+
WorkbenchQueueSnapshot: WorkbenchQueueSnapshotSchema,
|
|
2373
|
+
WorkbenchQueueMutationRequest: WorkbenchQueueMutationRequestSchema,
|
|
2374
|
+
WorkbenchQueueMutationResult: WorkbenchQueueMutationResultSchema,
|
|
2375
|
+
WorkbenchTokenMetric: WorkbenchTokenMetricSchema,
|
|
2376
|
+
WorkbenchModelUsage: WorkbenchModelUsageSchema,
|
|
2377
|
+
WorkbenchContext: WorkbenchContextSchema,
|
|
2378
|
+
WorkbenchInsights: WorkbenchInsightsSchema,
|
|
2379
|
+
WorkbenchCompactResult: WorkbenchCompactResultSchema
|
|
2380
|
+
};
|
|
2381
|
+
|
|
2382
|
+
// ../protocol/dist/codegen/android-schemas.js
|
|
2383
|
+
var AndroidProtocolSchemas = {
|
|
2384
|
+
...WorkbenchAndroidSchemas,
|
|
2385
|
+
...ScheduleAndroidSchemas,
|
|
2386
|
+
SessionCommunication: SessionCommunicationSchema,
|
|
2387
|
+
SessionRenameData: SessionRenameDataSchema,
|
|
2388
|
+
SessionRenameResultData: SessionRenameResultDataSchema,
|
|
2389
|
+
SessionDirectoryListData: SessionDirectoryListDataSchema,
|
|
2390
|
+
SessionDirectoryListResultData: SessionDirectoryListResultDataSchema,
|
|
2391
|
+
SessionFileReadData: SessionFileReadDataSchema,
|
|
2392
|
+
SessionFileReadResultData: SessionFileReadResultDataSchema,
|
|
2393
|
+
SessionResourceReadData: SessionResourceReadDataSchema,
|
|
2394
|
+
SessionResourceReadResultData: SessionResourceReadResultDataSchema,
|
|
2395
|
+
SessionDirectoryListRequest: SessionDirectoryListRequestSchema,
|
|
2396
|
+
SessionDirectoryEntry: SessionDirectoryEntrySchema,
|
|
2397
|
+
SessionDirectoryListResponse: SessionDirectoryListResponseSchema,
|
|
2398
|
+
SessionGitProject: SessionGitProjectSchema,
|
|
2399
|
+
SessionProjectIdentityResultData: SessionProjectIdentityResultDataSchema,
|
|
2400
|
+
V2SocketAuth: V2SocketAuthSchema,
|
|
2401
|
+
SecureMessage: SecureMessageSchema,
|
|
2402
|
+
SecureDeliveryError: SecureDeliveryErrorSchema,
|
|
2403
|
+
AuthUser: AuthUserSchema,
|
|
2404
|
+
LoginRequest: LoginRequestSchema,
|
|
2405
|
+
LoginResult: LoginResultSchema,
|
|
2406
|
+
PcAccountRequest: PcAccountRequestSchema,
|
|
2407
|
+
PcAccountResult: PcAccountResultSchema,
|
|
2408
|
+
PairingExchangeRequest: PairingExchangeRequestSchema,
|
|
2409
|
+
PairingExchangeResult: PairingExchangeResultSchema,
|
|
2410
|
+
MobileTransferMachine: MobileTransferMachineSchema,
|
|
2411
|
+
MobileTransferPayload: MobileTransferPayloadSchema,
|
|
2412
|
+
MobileTransferPart: MobileTransferPartSchema,
|
|
2413
|
+
MobileTransferUploadRequest: MobileTransferUploadRequestSchema,
|
|
2414
|
+
MobileTransferUploadResult: MobileTransferUploadResultSchema,
|
|
2415
|
+
MobileTransferDownloadResult: MobileTransferDownloadResultSchema,
|
|
2416
|
+
MobileLoginRequest: MobileLoginRequestSchema,
|
|
2417
|
+
MachinePresence: MachinePresenceSchema,
|
|
2418
|
+
MachineOffline: MachineOfflineSchema,
|
|
2419
|
+
MachineListRequest: MachineListRequestSchema,
|
|
2420
|
+
MachineListResult: MachineListResultSchema,
|
|
2421
|
+
SessionSummary: SessionSummarySchema,
|
|
2422
|
+
GroupChatParticipant: GroupChatParticipantSchema,
|
|
2423
|
+
GroupChatInfo: GroupChatInfoSchema,
|
|
2424
|
+
GroupChatCreateData: GroupChatCreateDataSchema,
|
|
2425
|
+
GroupChatCreateResultData: GroupChatCreateResultDataSchema,
|
|
2426
|
+
SessionsSnapshot: SessionsSnapshotSchema,
|
|
2427
|
+
SessionListRequest: SessionListRequestSchema,
|
|
2428
|
+
SessionListResult: SessionListResultSchema,
|
|
2429
|
+
WorkspaceOption: WorkspaceOptionSchema,
|
|
2430
|
+
CopilotModelOption: CopilotModelOptionSchema,
|
|
2431
|
+
SessionOptionsRequest: SessionOptionsRequestSchema,
|
|
2432
|
+
SessionOptionsResult: SessionOptionsResultSchema,
|
|
2433
|
+
SessionCreateRequest: SessionCreateRequestSchema,
|
|
2434
|
+
SessionCreateResult: SessionCreateResultSchema,
|
|
2435
|
+
SessionDeleteRequest: SessionDeleteRequestSchema,
|
|
2436
|
+
SessionDeleteResult: SessionDeleteResultSchema,
|
|
2437
|
+
SessionConfigureRequest: SessionConfigureRequestSchema,
|
|
2438
|
+
SessionConfigureResult: SessionConfigureResultSchema,
|
|
2439
|
+
SessionRemoteRequest: SessionRemoteRequestSchema,
|
|
2440
|
+
SessionRemoteStatus: SessionRemoteStatusSchema,
|
|
2441
|
+
SessionRemoteResult: SessionRemoteResultSchema,
|
|
2442
|
+
ConversationAttachment: ConversationAttachmentSchema,
|
|
2443
|
+
PromptImageAttachment: PromptImageAttachmentSchema,
|
|
2444
|
+
ConversationActivityStep: ConversationActivityStepSchema,
|
|
2445
|
+
ConversationPlanTodo: ConversationPlanTodoSchema,
|
|
2446
|
+
ConversationItem: ConversationItemSchema,
|
|
2447
|
+
SessionAssistantPreview: SessionAssistantPreviewSchema,
|
|
2448
|
+
SessionUserPreview: SessionUserPreviewSchema,
|
|
2449
|
+
SessionTimelinePageRequest: SessionTimelinePageRequestSchema,
|
|
2450
|
+
SessionWatchRequest: SessionWatchRequestSchema,
|
|
2451
|
+
SessionWatchResult: SessionWatchResultSchema,
|
|
2452
|
+
SessionTimelinePage: SessionTimelinePageSchema,
|
|
2453
|
+
SessionTimelinePageResult: SessionTimelinePageResultSchema,
|
|
2454
|
+
TimelineWatermark: TimelineWatermarkSchema,
|
|
2455
|
+
TimelineSyncRequest: TimelineSyncRequestSchema,
|
|
2456
|
+
TimelineTextAppend: TimelineTextAppendSchema,
|
|
2457
|
+
TimelineSyncEvent: TimelineSyncEventSchema,
|
|
2458
|
+
TimelineSyncResponse: TimelineSyncResponseSchema,
|
|
2459
|
+
TimelineImageRequest: TimelineImageRequestSchema,
|
|
2460
|
+
TimelineImageChunk: TimelineImageChunkSchema,
|
|
2461
|
+
SessionPromptRequest: SessionPromptRequestSchema,
|
|
2462
|
+
SessionPromptResult: SessionPromptResultSchema,
|
|
2463
|
+
SessionActivityUpdate: SessionActivityUpdateSchema,
|
|
2464
|
+
SessionAbortRequest: SessionAbortRequestSchema,
|
|
2465
|
+
SessionAbortResult: SessionAbortResultSchema,
|
|
2466
|
+
ConversationItemUpsert: ConversationItemUpsertSchema,
|
|
2467
|
+
ConversationActivityStepUpsert: ConversationActivityStepUpsertSchema,
|
|
2468
|
+
SessionTimelineInvalidated: SessionTimelineInvalidatedSchema,
|
|
2469
|
+
InteractionFormField: InteractionFormFieldSchema,
|
|
2470
|
+
InteractionRequest: InteractionRequestSchema,
|
|
2471
|
+
InteractionResponse: InteractionResponseSchema,
|
|
2472
|
+
InteractionRequestPayload: InteractionRequestPayloadSchema,
|
|
2473
|
+
InteractionRespondRequest: InteractionRespondRequestSchema,
|
|
2474
|
+
InteractionRespondResult: InteractionRespondResultSchema,
|
|
2475
|
+
PermissionRequestPayload: PermissionRequestPayloadSchema,
|
|
2476
|
+
PermissionRespondRequest: PermissionRespondRequestSchema,
|
|
2477
|
+
PermissionRespondResult: PermissionRespondResultSchema,
|
|
2478
|
+
ProtocolError: ProtocolErrorSchema
|
|
2479
|
+
};
|
|
2480
|
+
|
|
2481
|
+
export {
|
|
2482
|
+
PROTOCOL_VERSION,
|
|
2483
|
+
TRANSPORT_V2,
|
|
2484
|
+
SECURE_SOCKET_IO_NAMESPACE,
|
|
2485
|
+
IdSchema,
|
|
2486
|
+
OperationAckSchema,
|
|
2487
|
+
PAIRING_URI_SCHEME,
|
|
2488
|
+
PAIRING_URI_HOST,
|
|
2489
|
+
PairingCreateResultSchema,
|
|
2490
|
+
SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH,
|
|
2491
|
+
SecureMessageSchema,
|
|
2492
|
+
MOBILE_CONNECTED_REPLAY_CAPABILITY,
|
|
2493
|
+
MACHINE_HELLO_SDK_COMPAT_VERSION,
|
|
2494
|
+
MachineHelloSchema,
|
|
2495
|
+
MobileDisconnectedSchema,
|
|
2496
|
+
MobileConnectedSchema,
|
|
2497
|
+
PC_PEER_CHAT_CAPABILITY,
|
|
2498
|
+
PeerMessageSchema,
|
|
2499
|
+
PeerDeliverySchema,
|
|
2500
|
+
PC_A2A_CAPABILITY,
|
|
2501
|
+
A2aRelayRequestSchema,
|
|
2502
|
+
A2aRelayResponseSchema,
|
|
2503
|
+
SESSION_COMMUNICATION_CAPABILITY,
|
|
2504
|
+
SessionCommunicationDataSchema,
|
|
2505
|
+
SessionCommunicationRequestSchema,
|
|
2506
|
+
SessionCommunicationSchema,
|
|
2507
|
+
sessionCommunicationOperationCapability,
|
|
2508
|
+
sessionCommunicationError,
|
|
2509
|
+
SESSION_PROJECT_IDENTITY_OPERATION,
|
|
2510
|
+
SESSION_PROJECT_IDENTITY_VERSION,
|
|
2511
|
+
SESSION_DIRECTORY_LIST_OPERATION,
|
|
2512
|
+
SESSION_DIRECTORY_LIST_VERSION,
|
|
2513
|
+
SESSION_DIRECTORY_MAX_ENTRIES,
|
|
2514
|
+
SESSION_DIRECTORY_MAX_RESPONSE_BYTES,
|
|
2515
|
+
SESSION_FILE_READ_OPERATION,
|
|
2516
|
+
SESSION_FILE_READ_VERSION,
|
|
2517
|
+
SESSION_FILE_MAX_ORIGINAL_BYTES,
|
|
2518
|
+
SESSION_FILE_GZIP_THRESHOLD_BYTES,
|
|
2519
|
+
SESSION_FILE_MAX_IMAGE_BYTES,
|
|
2520
|
+
SESSION_FILE_MAX_IMAGE_EDGE,
|
|
2521
|
+
SESSION_FILE_MAX_IMAGE_PIXELS,
|
|
2522
|
+
isSafeSessionDirectoryPath,
|
|
2523
|
+
SessionDirectoryListDataSchema,
|
|
2524
|
+
SessionDirectoryListResultDataSchema,
|
|
2525
|
+
SessionFileReadDataSchema,
|
|
2526
|
+
SessionFileReadResultDataSchema,
|
|
2527
|
+
SessionGitProjectSchema,
|
|
2528
|
+
SessionProjectIdentityRequestDataSchema,
|
|
2529
|
+
SessionProjectIdentityResultDataSchema,
|
|
2530
|
+
SESSION_RESOURCE_READ_OPERATION,
|
|
2531
|
+
SESSION_RESOURCE_READ_VERSION,
|
|
2532
|
+
SESSION_RESOURCE_MAX_ORIGINAL_BYTES,
|
|
2533
|
+
SESSION_RESOURCE_GZIP_THRESHOLD_BYTES,
|
|
2534
|
+
SESSION_RESOURCE_MAX_IMAGE_PIXELS,
|
|
2535
|
+
SessionResourceReadDataSchema,
|
|
2536
|
+
SessionResourceReadResultDataSchema,
|
|
2537
|
+
SESSION_RENAME_OPERATION,
|
|
2538
|
+
SESSION_RENAME_VERSION,
|
|
2539
|
+
SESSION_NAME_MAX_LENGTH,
|
|
2540
|
+
SessionNameSchema,
|
|
2541
|
+
SessionRenameDataSchema,
|
|
2542
|
+
SessionRenameResultDataSchema,
|
|
2543
|
+
SESSION_DELETE_CAPABILITY,
|
|
2544
|
+
SESSION_LIST_UPDATES_CAPABILITY,
|
|
2545
|
+
SESSION_WORKTREE_CREATION_CAPABILITY,
|
|
2546
|
+
MANAGED_SESSION_SELECTION_CAPABILITY,
|
|
2547
|
+
AGENT_CONTROLS_CAPABILITY,
|
|
2548
|
+
GroupChatParticipantSchema,
|
|
2549
|
+
GroupChatInfoSchema,
|
|
2550
|
+
SessionSummarySchema,
|
|
2551
|
+
SessionsSnapshotSchema,
|
|
2552
|
+
SessionListRequestSchema,
|
|
2553
|
+
SessionListResultSchema,
|
|
2554
|
+
REASONING_EFFORTS,
|
|
2555
|
+
ReasoningEffortSchema,
|
|
2556
|
+
CopilotModelOptionSchema,
|
|
2557
|
+
SessionReasoningEffortSchema,
|
|
2558
|
+
CurrentReasoningEffortSchema,
|
|
2559
|
+
SessionToolInfoSchema,
|
|
2560
|
+
SessionSlashCommandInfoSchema,
|
|
2561
|
+
SessionSkillInfoSchema,
|
|
2562
|
+
SessionOptionsRequestSchema,
|
|
2563
|
+
SessionOptionsResultSchema,
|
|
2564
|
+
SessionCreateRequestSchema,
|
|
2565
|
+
SessionDeleteRequestSchema,
|
|
2566
|
+
SessionConfigureRequestSchema,
|
|
2567
|
+
SessionConfigureResultSchema,
|
|
2568
|
+
SessionRemoteRequestSchema,
|
|
2569
|
+
SessionRemoteStatusSchema,
|
|
2570
|
+
GROUP_CHAT_CREATE_OPERATION,
|
|
2571
|
+
GROUP_CHAT_CREATE_VERSION,
|
|
2572
|
+
GROUP_CHAT_CREATE_CAPABILITY,
|
|
2573
|
+
GroupChatCreateDataSchema,
|
|
2574
|
+
GroupChatCreateResultDataSchema,
|
|
2575
|
+
PromptImageAttachmentSchema,
|
|
2576
|
+
PromptFileAttachmentSchema,
|
|
2577
|
+
ConversationAttachmentSchema,
|
|
2578
|
+
CONVERSATION_ACTIVITY_STEP_LIMIT,
|
|
2579
|
+
CONVERSATION_SOURCE_ID_LIMIT,
|
|
2580
|
+
ConversationItemSchema,
|
|
2581
|
+
ConversationItemUpsertSchema,
|
|
2582
|
+
ConversationActivityStepUpsertSchema,
|
|
2583
|
+
SESSION_ASSISTANT_PREVIEW_CAPABILITY,
|
|
2584
|
+
SessionUserPreviewSchema,
|
|
2585
|
+
SessionAssistantPreviewSchema,
|
|
2586
|
+
SESSION_TIMELINE_PAGE_SIZE,
|
|
2587
|
+
SessionTimelinePageRequestSchema,
|
|
2588
|
+
SessionWatchRequestSchema,
|
|
2589
|
+
SessionTimelinePageSchema,
|
|
2590
|
+
SessionTimelineInvalidatedSchema,
|
|
2591
|
+
SESSION_FILE_ATTACHMENTS_CAPABILITY,
|
|
2592
|
+
SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY,
|
|
2593
|
+
SessionPromptRequestSchema,
|
|
2594
|
+
SessionActivityUpdateSchema,
|
|
2595
|
+
SessionAbortRequestSchema,
|
|
2596
|
+
MOBILE_INTERACTION_PERSISTENCE_CAPABILITY,
|
|
2597
|
+
INTERACTION_DISMISS_RESPONSE_CAPABILITY,
|
|
2598
|
+
INTERACTION_SUPERSEDED_ERROR_CODE,
|
|
2599
|
+
InteractionRequestSchema,
|
|
2600
|
+
InteractionResponseSchema,
|
|
2601
|
+
InteractionRequestPayloadSchema,
|
|
2602
|
+
InteractionRespondRequestSchema,
|
|
2603
|
+
InteractionRespondResultSchema,
|
|
2604
|
+
PermissionRequestPayloadSchema,
|
|
2605
|
+
PermissionRespondRequestSchema,
|
|
2606
|
+
TIMELINE_SYNC_OPERATION,
|
|
2607
|
+
TIMELINE_IMAGE_OPERATION,
|
|
2608
|
+
TIMELINE_SYNC_VERSION,
|
|
2609
|
+
TIMELINE_SYNC_MAX_EVENTS,
|
|
2610
|
+
TIMELINE_SYNC_MAX_BYTES,
|
|
2611
|
+
TIMELINE_IMAGE_CHUNK_BYTES,
|
|
2612
|
+
TIMELINE_IMAGE_MAX_BYTES,
|
|
2613
|
+
TimelineSyncRequestSchema,
|
|
2614
|
+
TimelineSyncResponseSchema,
|
|
2615
|
+
TimelineImageRequestSchema,
|
|
2616
|
+
TimelineImageChunkSchema,
|
|
2617
|
+
SCHEDULES_CAPABILITY,
|
|
2618
|
+
SCHEDULE_OPERATIONS,
|
|
2619
|
+
WorkbenchScheduleProposalSchema,
|
|
2620
|
+
WorkbenchScheduleDraftSchema,
|
|
2621
|
+
WorkbenchScheduleEntrySchema,
|
|
2622
|
+
WorkbenchScheduleSnapshotSchema,
|
|
2623
|
+
WorkbenchScheduleCreateRequestSchema,
|
|
2624
|
+
WorkbenchScheduleCreateResultSchema,
|
|
2625
|
+
WorkbenchScheduleDeleteRequestSchema,
|
|
2626
|
+
WorkbenchScheduleDeleteResultSchema,
|
|
2627
|
+
WorkbenchScheduleDraftDismissRequestSchema,
|
|
2628
|
+
WORKBENCH_VERSION,
|
|
2629
|
+
RESEARCH_CHAT_CAPABILITY,
|
|
2630
|
+
WORKBENCH_OPERATIONS,
|
|
2631
|
+
workbenchCapability,
|
|
2632
|
+
WorkbenchOperationGetSchema,
|
|
2633
|
+
WorkbenchOperationStatusSchema,
|
|
2634
|
+
WorkbenchAskRequestSchema,
|
|
2635
|
+
WorkbenchAskResultSchema,
|
|
2636
|
+
WorkbenchEmptyRequestSchema,
|
|
2637
|
+
WorkbenchSubmitRequestSchema,
|
|
2638
|
+
WorkbenchResearchCreateRequestSchema,
|
|
2639
|
+
WorkbenchResearchCreateResultSchema,
|
|
2640
|
+
WorkbenchResearchListResultSchema,
|
|
2641
|
+
WorkbenchResearchTimelineRequestSchema,
|
|
2642
|
+
WorkbenchResearchSendRequestSchema,
|
|
2643
|
+
WorkbenchResearchSendResultSchema,
|
|
2644
|
+
WorkbenchCompletedResultSchema,
|
|
2645
|
+
WorkbenchCommandSchema,
|
|
2646
|
+
WorkbenchCommandListResultSchema,
|
|
2647
|
+
WorkbenchCommandInvokeRequestSchema,
|
|
2648
|
+
WorkbenchCommandResultSchema,
|
|
2649
|
+
WorkbenchQueueSnapshotSchema,
|
|
2650
|
+
WorkbenchQueueMutationRequestSchema,
|
|
2651
|
+
WorkbenchQueueMutationResultSchema,
|
|
2652
|
+
WorkbenchInsightsSchema,
|
|
2653
|
+
WorkbenchCompactResultSchema
|
|
2654
|
+
};
|