@agentknight/client 0.9.43 → 0.9.45
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/dist/cli.js +849 -811
- package/dist/upgrade-worker.js +39 -4
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -484,7 +484,7 @@ ${environmentAssignment("AGENTKNIGHT_HOME", persistedHome)}
|
|
|
484
484
|
}
|
|
485
485
|
|
|
486
486
|
// src/config.ts
|
|
487
|
-
import { z as
|
|
487
|
+
import { z as z29 } from "zod";
|
|
488
488
|
|
|
489
489
|
// ../../shared/protocol/dist/common/version.js
|
|
490
490
|
import { z } from "zod";
|
|
@@ -1230,33 +1230,52 @@ var A2aRelayResponseSchema = z11.object({
|
|
|
1230
1230
|
body: z11.string().max(A2A_BODY_MAX_LENGTH)
|
|
1231
1231
|
}).strict();
|
|
1232
1232
|
|
|
1233
|
-
// ../../shared/protocol/dist/
|
|
1233
|
+
// ../../shared/protocol/dist/transport/browser-open-url.js
|
|
1234
1234
|
import { z as z12 } from "zod";
|
|
1235
|
-
var
|
|
1235
|
+
var BROWSER_OPEN_URL_MAX_LENGTH = 8192;
|
|
1236
|
+
var BrowserOpenUrlParamsSchema = z12.strictObject({
|
|
1237
|
+
url: z12.string().min(1).max(BROWSER_OPEN_URL_MAX_LENGTH).refine((value) => {
|
|
1238
|
+
if (!/^https?:\/\//i.test(value) || /[\s\p{Cc}\\]/u.test(value) || /%(?![0-9a-f]{2})/i.test(value))
|
|
1239
|
+
return false;
|
|
1240
|
+
const authority = value.split(/[/?#]/)[2];
|
|
1241
|
+
if (!authority || /[@%]|[^\x21-\x7e]/.test(authority))
|
|
1242
|
+
return false;
|
|
1243
|
+
try {
|
|
1244
|
+
return new URL(value).hostname.length > 0;
|
|
1245
|
+
} catch {
|
|
1246
|
+
return false;
|
|
1247
|
+
}
|
|
1248
|
+
}, "Expected an absolute HTTP(S) URL without credentials or whitespace")
|
|
1249
|
+
});
|
|
1250
|
+
var BrowserOpenUrlResultSchema = z12.strictObject({ opened: z12.literal(true) });
|
|
1251
|
+
|
|
1252
|
+
// ../../shared/protocol/dist/sessions/session-communication.js
|
|
1253
|
+
import { z as z13 } from "zod";
|
|
1254
|
+
var SessionCommunicationIdSchema = z13.string().min(1).max(256).refine((value) => value === value.trim(), "Expected an unpadded identity");
|
|
1236
1255
|
var SessionCommunicationIdentityShape = {
|
|
1237
1256
|
requestId: SessionCommunicationIdSchema,
|
|
1238
1257
|
machineId: SessionCommunicationIdSchema,
|
|
1239
1258
|
sessionId: SessionCommunicationIdSchema,
|
|
1240
|
-
operation:
|
|
1241
|
-
version:
|
|
1259
|
+
operation: z13.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/u),
|
|
1260
|
+
version: z13.number().int().positive().max(2147483647)
|
|
1242
1261
|
};
|
|
1243
|
-
var SessionCommunicationDataSchema =
|
|
1244
|
-
var SessionCommunicationRequestSchema =
|
|
1262
|
+
var SessionCommunicationDataSchema = z13.record(z13.string(), z13.json());
|
|
1263
|
+
var SessionCommunicationRequestSchema = z13.object({
|
|
1245
1264
|
...SessionCommunicationIdentityShape,
|
|
1246
|
-
kind:
|
|
1265
|
+
kind: z13.literal("request"),
|
|
1247
1266
|
data: SessionCommunicationDataSchema
|
|
1248
1267
|
}).strict();
|
|
1249
|
-
var SessionCommunicationResponseSchema =
|
|
1268
|
+
var SessionCommunicationResponseSchema = z13.object({
|
|
1250
1269
|
...SessionCommunicationIdentityShape,
|
|
1251
|
-
kind:
|
|
1270
|
+
kind: z13.literal("response"),
|
|
1252
1271
|
data: SessionCommunicationDataSchema
|
|
1253
1272
|
}).strict();
|
|
1254
|
-
var SessionCommunicationErrorSchema =
|
|
1273
|
+
var SessionCommunicationErrorSchema = z13.object({
|
|
1255
1274
|
...SessionCommunicationIdentityShape,
|
|
1256
|
-
kind:
|
|
1275
|
+
kind: z13.literal("error"),
|
|
1257
1276
|
error: ProtocolFailureSchema
|
|
1258
1277
|
}).strict();
|
|
1259
|
-
var SessionCommunicationSchema =
|
|
1278
|
+
var SessionCommunicationSchema = z13.discriminatedUnion("kind", [
|
|
1260
1279
|
SessionCommunicationRequestSchema,
|
|
1261
1280
|
SessionCommunicationResponseSchema,
|
|
1262
1281
|
SessionCommunicationErrorSchema
|
|
@@ -1266,7 +1285,7 @@ function sessionCommunicationOperationCapability(operation, version) {
|
|
|
1266
1285
|
}
|
|
1267
1286
|
|
|
1268
1287
|
// ../../shared/protocol/dist/sessions/session-workspace.js
|
|
1269
|
-
import { z as
|
|
1288
|
+
import { z as z14 } from "zod";
|
|
1270
1289
|
var SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH = 32768;
|
|
1271
1290
|
var SESSION_PROJECT_IDENTITY_MAX_RESPONSE_BYTES = 640 * 1024;
|
|
1272
1291
|
var SESSION_DIRECTORY_MAX_PATH_LENGTH = 1024;
|
|
@@ -1307,47 +1326,47 @@ function isSafeSessionDirectoryPath(path) {
|
|
|
1307
1326
|
const segments = path.split("/");
|
|
1308
1327
|
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));
|
|
1309
1328
|
}
|
|
1310
|
-
var SessionDirectoryListRequestSchema =
|
|
1329
|
+
var SessionDirectoryListRequestSchema = z14.object({
|
|
1311
1330
|
requestId: IdSchema,
|
|
1312
1331
|
machineId: IdSchema,
|
|
1313
1332
|
sessionId: IdSchema,
|
|
1314
|
-
path:
|
|
1333
|
+
path: z14.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH)
|
|
1315
1334
|
}).strict();
|
|
1316
|
-
var SessionDirectoryEntrySchema =
|
|
1317
|
-
name:
|
|
1318
|
-
kind:
|
|
1335
|
+
var SessionDirectoryEntrySchema = z14.object({
|
|
1336
|
+
name: z14.string().min(1).max(255),
|
|
1337
|
+
kind: z14.enum(["directory", "file", "blocked"])
|
|
1319
1338
|
}).strict();
|
|
1320
1339
|
var SessionDirectoryListDataSchema = SessionDirectoryListRequestSchema.pick({ path: true });
|
|
1321
|
-
var SessionDirectoryListResultDataSchema =
|
|
1322
|
-
path:
|
|
1323
|
-
rootRevision:
|
|
1324
|
-
entries:
|
|
1340
|
+
var SessionDirectoryListResultDataSchema = z14.object({
|
|
1341
|
+
path: z14.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH),
|
|
1342
|
+
rootRevision: z14.string().min(1).max(128),
|
|
1343
|
+
entries: z14.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES)
|
|
1325
1344
|
}).strict();
|
|
1326
1345
|
var SessionDirectoryListResponseSchema = SessionDirectoryListRequestSchema.extend({
|
|
1327
|
-
rootRevision:
|
|
1328
|
-
entries:
|
|
1346
|
+
rootRevision: z14.string().min(1).max(128).optional(),
|
|
1347
|
+
entries: z14.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES).optional(),
|
|
1329
1348
|
error: ProtocolFailureSchema.optional()
|
|
1330
1349
|
}).superRefine((response, context) => {
|
|
1331
1350
|
if (response.error === void 0 ? response.entries === void 0 || response.rootRevision === void 0 : response.entries !== void 0 || response.rootRevision !== void 0) {
|
|
1332
1351
|
context.addIssue({ code: "custom", message: "Expected directory success or failure" });
|
|
1333
1352
|
}
|
|
1334
1353
|
});
|
|
1335
|
-
var SessionFileReadDataSchema =
|
|
1336
|
-
path:
|
|
1337
|
-
rootRevision:
|
|
1354
|
+
var SessionFileReadDataSchema = z14.object({
|
|
1355
|
+
path: z14.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
|
|
1356
|
+
rootRevision: z14.string().regex(/^[A-Za-z0-9_-]{43}$/u)
|
|
1338
1357
|
}).strict();
|
|
1339
1358
|
function fileResultSchema(mediaTypes, extended) {
|
|
1340
1359
|
const maxOriginal = extended ? SESSION_FILE_V2_MAX_ORIGINAL_BYTES : SESSION_FILE_MAX_ORIGINAL_BYTES;
|
|
1341
1360
|
const maxTransfer = extended ? SESSION_FILE_V2_MAX_TRANSFER_BYTES : SESSION_FILE_MAX_TRANSFER_BYTES;
|
|
1342
|
-
return
|
|
1361
|
+
return z14.object({
|
|
1343
1362
|
path: SessionFileReadDataSchema.shape.path,
|
|
1344
1363
|
rootRevision: SessionFileReadDataSchema.shape.rootRevision,
|
|
1345
|
-
mediaType:
|
|
1346
|
-
originalByteLength:
|
|
1364
|
+
mediaType: z14.enum(mediaTypes),
|
|
1365
|
+
originalByteLength: z14.number().int().min(0).max(maxOriginal),
|
|
1347
1366
|
// Canonical length after decompression, not the length of the transport bytes.
|
|
1348
|
-
byteLength:
|
|
1349
|
-
encoding:
|
|
1350
|
-
data:
|
|
1367
|
+
byteLength: z14.number().int().min(0).max(maxOriginal),
|
|
1368
|
+
encoding: z14.enum(["identity", "gzip"]),
|
|
1369
|
+
data: z14.string().max(extended ? SESSION_FILE_V2_MAX_BASE64_LENGTH : SESSION_FILE_MAX_BASE64_LENGTH)
|
|
1351
1370
|
}).strict().superRefine((result, context) => {
|
|
1352
1371
|
const invalid = () => context.addIssue({ code: "custom", message: "Invalid file content" });
|
|
1353
1372
|
if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_FILE_GZIP_THRESHOLD_BYTES)
|
|
@@ -1367,19 +1386,19 @@ var SessionFileReadResultDataSchema = fileResultSchema(SESSION_FILE_MEDIA_TYPES,
|
|
|
1367
1386
|
var SessionFileReadV2ResultDataSchema = fileResultSchema(SESSION_FILE_V2_MEDIA_TYPES, true);
|
|
1368
1387
|
var SessionFileDownloadDataSchema = SessionFileReadDataSchema;
|
|
1369
1388
|
var SessionFileDownloadResultDataSchema = fileResultSchema(["application/octet-stream"], true);
|
|
1370
|
-
var SessionGitProjectSchema =
|
|
1371
|
-
localRepositoryKey:
|
|
1372
|
-
worktreeRoot:
|
|
1373
|
-
mainWorktreeRoot:
|
|
1374
|
-
gitRemoteUrl:
|
|
1389
|
+
var SessionGitProjectSchema = z14.object({
|
|
1390
|
+
localRepositoryKey: z14.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/),
|
|
1391
|
+
worktreeRoot: z14.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH),
|
|
1392
|
+
mainWorktreeRoot: z14.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional(),
|
|
1393
|
+
gitRemoteUrl: z14.string().max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional()
|
|
1375
1394
|
}).strict();
|
|
1376
|
-
var SessionProjectIdentityRequestDataSchema =
|
|
1377
|
-
var SessionProjectIdentityResultDataSchema =
|
|
1395
|
+
var SessionProjectIdentityRequestDataSchema = z14.object({}).strict();
|
|
1396
|
+
var SessionProjectIdentityResultDataSchema = z14.object({
|
|
1378
1397
|
project: SessionGitProjectSchema.optional()
|
|
1379
1398
|
}).strict();
|
|
1380
1399
|
|
|
1381
1400
|
// ../../shared/protocol/dist/sessions/session-git-diff.js
|
|
1382
|
-
import { z as
|
|
1401
|
+
import { z as z15 } from "zod";
|
|
1383
1402
|
var SESSION_GIT_DIFF_GZIP_MIN_BYTES = 2 * 1024;
|
|
1384
1403
|
var SESSION_GIT_DIFF_MAX_FILES = 500;
|
|
1385
1404
|
var SESSION_GIT_DIFF_MAX_PATCH_BYTES = 128 * 1024;
|
|
@@ -1387,24 +1406,24 @@ var SESSION_GIT_DIFF_MAX_RESPONSE_BYTES = 512 * 1024;
|
|
|
1387
1406
|
var SESSION_GIT_DIFF_MAX_TRANSFER_BYTES = SESSION_GIT_DIFF_MAX_RESPONSE_BYTES + 1024;
|
|
1388
1407
|
var SESSION_GIT_DIFF_MAX_BASE64_LENGTH = Math.ceil(SESSION_GIT_DIFF_MAX_TRANSFER_BYTES / 3) * 4;
|
|
1389
1408
|
var SESSION_GIT_DIFF_MAX_GZIP_RESPONSE_BYTES = SESSION_GIT_DIFF_MAX_BASE64_LENGTH + 1024;
|
|
1390
|
-
var commitSchema =
|
|
1391
|
-
var SessionGitDiffDataSchema =
|
|
1409
|
+
var commitSchema = z15.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u);
|
|
1410
|
+
var SessionGitDiffDataSchema = z15.object({
|
|
1392
1411
|
rootRevision: SessionFileReadDataSchema.shape.rootRevision,
|
|
1393
1412
|
path: SessionFileReadDataSchema.shape.path.optional(),
|
|
1394
1413
|
baseCommit: commitSchema.optional()
|
|
1395
1414
|
}).strict().refine((value) => value.path === void 0 === (value.baseCommit === void 0), "A file diff must identify its listed base commit");
|
|
1396
|
-
var SessionGitDiffEntrySchema =
|
|
1415
|
+
var SessionGitDiffEntrySchema = z15.object({
|
|
1397
1416
|
path: SessionFileReadDataSchema.shape.path,
|
|
1398
|
-
status:
|
|
1417
|
+
status: z15.enum(["added", "modified", "deleted", "untracked"])
|
|
1399
1418
|
}).strict();
|
|
1400
|
-
var SessionGitDiffResultDataSchema =
|
|
1419
|
+
var SessionGitDiffResultDataSchema = z15.object({
|
|
1401
1420
|
rootRevision: SessionFileReadDataSchema.shape.rootRevision,
|
|
1402
|
-
baseRef:
|
|
1421
|
+
baseRef: z15.enum(["origin/main", "main"]),
|
|
1403
1422
|
baseCommit: commitSchema,
|
|
1404
|
-
files:
|
|
1423
|
+
files: z15.array(SessionGitDiffEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional(),
|
|
1405
1424
|
path: SessionFileReadDataSchema.shape.path.optional(),
|
|
1406
|
-
patch:
|
|
1407
|
-
binary:
|
|
1425
|
+
patch: z15.string().max(SESSION_GIT_DIFF_MAX_PATCH_BYTES).optional(),
|
|
1426
|
+
binary: z15.boolean().optional()
|
|
1408
1427
|
}).strict().superRefine((value, context) => {
|
|
1409
1428
|
const encoder = new TextEncoder();
|
|
1410
1429
|
if (value.patch !== void 0 && encoder.encode(value.patch).length > SESSION_GIT_DIFF_MAX_PATCH_BYTES || encoder.encode(JSON.stringify(value)).length > SESSION_GIT_DIFF_MAX_RESPONSE_BYTES) {
|
|
@@ -1418,10 +1437,26 @@ var SessionGitDiffResultDataSchema = z14.object({
|
|
|
1418
1437
|
context.addIssue({ code: "custom", message: "Expected a text patch or an explicit binary change" });
|
|
1419
1438
|
}
|
|
1420
1439
|
});
|
|
1421
|
-
var
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1440
|
+
var SessionGitDiffFileErrorSchema = z15.object({
|
|
1441
|
+
code: z15.enum(["DIFF_BLOCKED", "DIFF_FILE_UNAVAILABLE"]),
|
|
1442
|
+
message: z15.string().min(1).max(512)
|
|
1443
|
+
}).strict();
|
|
1444
|
+
var SessionGitDiffPartialEntrySchema = SessionGitDiffEntrySchema.extend({
|
|
1445
|
+
// Error paths are display-only: they must never be used for file requests.
|
|
1446
|
+
path: z15.string().min(1).max(32768).refine((value) => !value.includes("\0")),
|
|
1447
|
+
error: SessionGitDiffFileErrorSchema.optional()
|
|
1448
|
+
}).superRefine((value, context) => {
|
|
1449
|
+
if (value.error === void 0 && !SessionGitDiffEntrySchema.shape.path.safeParse(value.path).success) {
|
|
1450
|
+
context.addIssue({ code: "custom", message: "A readable diff entry must have a safe path" });
|
|
1451
|
+
}
|
|
1452
|
+
});
|
|
1453
|
+
var SessionGitDiffPartialResultDataSchema = SessionGitDiffResultDataSchema.safeExtend({
|
|
1454
|
+
files: z15.array(SessionGitDiffPartialEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional()
|
|
1455
|
+
});
|
|
1456
|
+
var SessionGitDiffGzipResultDataSchema = z15.object({
|
|
1457
|
+
encoding: z15.literal("gzip"),
|
|
1458
|
+
byteLength: z15.number().int().min(1).max(SESSION_GIT_DIFF_MAX_RESPONSE_BYTES),
|
|
1459
|
+
data: z15.string().max(SESSION_GIT_DIFF_MAX_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]*={0,2}$/u)
|
|
1425
1460
|
}).strict().superRefine((value, context) => {
|
|
1426
1461
|
const padding = value.data.endsWith("==") ? 2 : value.data.endsWith("=") ? 1 : 0;
|
|
1427
1462
|
const bytes = value.data.length / 4 * 3 - padding;
|
|
@@ -1431,13 +1466,13 @@ var SessionGitDiffGzipResultDataSchema = z14.object({
|
|
|
1431
1466
|
context.addIssue({ code: "custom", message: "Invalid gzip transfer" });
|
|
1432
1467
|
}
|
|
1433
1468
|
});
|
|
1434
|
-
var SessionGitDiffV2ResultDataSchema =
|
|
1469
|
+
var SessionGitDiffV2ResultDataSchema = z15.union([
|
|
1435
1470
|
SessionGitDiffResultDataSchema,
|
|
1436
1471
|
SessionGitDiffGzipResultDataSchema
|
|
1437
1472
|
]);
|
|
1438
1473
|
|
|
1439
1474
|
// ../../shared/protocol/dist/sessions/session-resource.js
|
|
1440
|
-
import { z as
|
|
1475
|
+
import { z as z16 } from "zod";
|
|
1441
1476
|
var SESSION_RESOURCE_MAX_ORIGINAL_BYTES = 499999;
|
|
1442
1477
|
var SESSION_RESOURCE_GZIP_THRESHOLD_BYTES = 20 * 1024;
|
|
1443
1478
|
var SESSION_RESOURCE_MAX_IMAGE_PIXELS = 16 * 1024 * 1024;
|
|
@@ -1451,18 +1486,18 @@ var SESSION_RESOURCE_MEDIA_TYPES = [
|
|
|
1451
1486
|
"text/css",
|
|
1452
1487
|
"text/javascript"
|
|
1453
1488
|
];
|
|
1454
|
-
var SessionResourceReadDataSchema =
|
|
1455
|
-
path:
|
|
1456
|
-
rootRevision:
|
|
1489
|
+
var SessionResourceReadDataSchema = z16.object({
|
|
1490
|
+
path: z16.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
|
|
1491
|
+
rootRevision: z16.string().regex(/^[A-Za-z0-9_-]{43}$/u)
|
|
1457
1492
|
}).strict();
|
|
1458
|
-
var SessionResourceReadResultDataSchema =
|
|
1493
|
+
var SessionResourceReadResultDataSchema = z16.object({
|
|
1459
1494
|
path: SessionResourceReadDataSchema.shape.path,
|
|
1460
1495
|
rootRevision: SessionResourceReadDataSchema.shape.rootRevision,
|
|
1461
|
-
mediaType:
|
|
1462
|
-
originalByteLength:
|
|
1463
|
-
byteLength:
|
|
1464
|
-
encoding:
|
|
1465
|
-
data:
|
|
1496
|
+
mediaType: z16.enum(SESSION_RESOURCE_MEDIA_TYPES),
|
|
1497
|
+
originalByteLength: z16.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
|
|
1498
|
+
byteLength: z16.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
|
|
1499
|
+
encoding: z16.enum(["identity", "gzip"]),
|
|
1500
|
+
data: z16.string().max(SESSION_RESOURCE_MAX_BASE64_LENGTH)
|
|
1466
1501
|
}).strict().superRefine((result, context) => {
|
|
1467
1502
|
const invalid = () => context.addIssue({ code: "custom", message: "Invalid resource content" });
|
|
1468
1503
|
if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_RESOURCE_GZIP_THRESHOLD_BYTES || result.byteLength !== result.originalByteLength || result.mediaType.startsWith("image/") && result.byteLength === 0)
|
|
@@ -1475,115 +1510,115 @@ var SessionResourceReadResultDataSchema = z15.object({
|
|
|
1475
1510
|
});
|
|
1476
1511
|
|
|
1477
1512
|
// ../../shared/protocol/dist/sessions/session-images.js
|
|
1478
|
-
import { z as
|
|
1513
|
+
import { z as z17 } from "zod";
|
|
1479
1514
|
var SESSION_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
|
|
1480
1515
|
var SESSION_IMAGE_MAX_PIXELS = 16 * 1024 * 1024;
|
|
1481
|
-
var SessionImageIdSchema =
|
|
1482
|
-
var SessionImageTransferModeSchema =
|
|
1483
|
-
var DirectUrlSchema =
|
|
1516
|
+
var SessionImageIdSchema = z17.uuid();
|
|
1517
|
+
var SessionImageTransferModeSchema = z17.enum(["direct", "proxy"]);
|
|
1518
|
+
var DirectUrlSchema = z17.string().regex(/^https:\/\/[^/?#@\\\s\x00-\x1f\x7f]+(?:[/?][^#\\\s\x00-\x1f\x7f]*)?$/u).refine((raw) => {
|
|
1484
1519
|
if (!URL.canParse(raw))
|
|
1485
1520
|
return false;
|
|
1486
1521
|
const url = new URL(raw);
|
|
1487
1522
|
return url.protocol === "https:" && url.username === "" && url.password === "" && url.hash === "";
|
|
1488
1523
|
}, "Direct transfers require HTTPS without userinfo, fragments or unsafe characters");
|
|
1489
|
-
var ProxyUrlSchema =
|
|
1490
|
-
var SessionImageTransferHeadersSchema =
|
|
1491
|
-
var SessionImageUploadRequestSchema =
|
|
1524
|
+
var ProxyUrlSchema = z17.string().regex(/^\/api\/v3\/session-images\/[0-9a-f-]+\/content\?[^#\\\s\x00-\x1f\x7f]+$/u);
|
|
1525
|
+
var SessionImageTransferHeadersSchema = z17.record(z17.string().regex(/^(?:content-type|if-none-match|x-ms-blob-type)$/u), z17.string().min(1).max(256).regex(/^[\x20-\x7e]+$/u));
|
|
1526
|
+
var SessionImageUploadRequestSchema = z17.object({
|
|
1492
1527
|
machineId: IdSchema,
|
|
1493
1528
|
sessionId: IdSchema,
|
|
1494
|
-
sizeBytes:
|
|
1529
|
+
sizeBytes: z17.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES)
|
|
1495
1530
|
}).strict();
|
|
1496
|
-
var SessionImageScopeSchema =
|
|
1531
|
+
var SessionImageScopeSchema = z17.object({
|
|
1497
1532
|
machineId: IdSchema,
|
|
1498
1533
|
sessionId: IdSchema
|
|
1499
1534
|
}).strict();
|
|
1500
1535
|
var UploadResultFields = {
|
|
1501
1536
|
imageId: SessionImageIdSchema,
|
|
1502
|
-
uploadExpiresAt:
|
|
1503
|
-
method:
|
|
1504
|
-
contentType:
|
|
1537
|
+
uploadExpiresAt: z17.number().int().positive(),
|
|
1538
|
+
method: z17.literal("PUT"),
|
|
1539
|
+
contentType: z17.literal("image/webp"),
|
|
1505
1540
|
headers: SessionImageTransferHeadersSchema.refine((headers) => headers["content-type"] === "image/webp")
|
|
1506
1541
|
};
|
|
1507
|
-
var SessionImageUploadResultSchema =
|
|
1508
|
-
|
|
1509
|
-
|
|
1542
|
+
var SessionImageUploadResultSchema = z17.discriminatedUnion("mode", [
|
|
1543
|
+
z17.object({ ...UploadResultFields, mode: z17.literal("direct"), uploadUrl: DirectUrlSchema }).strict(),
|
|
1544
|
+
z17.object({ ...UploadResultFields, mode: z17.literal("proxy"), uploadUrl: ProxyUrlSchema }).strict()
|
|
1510
1545
|
]);
|
|
1511
|
-
var SessionImageCommitResultSchema =
|
|
1546
|
+
var SessionImageCommitResultSchema = z17.object({
|
|
1512
1547
|
imageId: SessionImageIdSchema,
|
|
1513
1548
|
machineId: IdSchema,
|
|
1514
1549
|
sessionId: IdSchema,
|
|
1515
|
-
sizeBytes:
|
|
1516
|
-
width:
|
|
1517
|
-
height:
|
|
1518
|
-
sha256:
|
|
1519
|
-
expiresAt:
|
|
1550
|
+
sizeBytes: z17.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES),
|
|
1551
|
+
width: z17.number().int().positive(),
|
|
1552
|
+
height: z17.number().int().positive(),
|
|
1553
|
+
sha256: z17.string().regex(/^[a-f0-9]{64}$/u),
|
|
1554
|
+
expiresAt: z17.number().int().positive()
|
|
1520
1555
|
}).strict();
|
|
1521
1556
|
var DownloadResultFields = {
|
|
1522
1557
|
image: SessionImageCommitResultSchema,
|
|
1523
|
-
downloadExpiresAt:
|
|
1524
|
-
method:
|
|
1558
|
+
downloadExpiresAt: z17.number().int().positive(),
|
|
1559
|
+
method: z17.literal("GET"),
|
|
1525
1560
|
headers: SessionImageTransferHeadersSchema
|
|
1526
1561
|
};
|
|
1527
|
-
var SessionImageDownloadResultSchema =
|
|
1528
|
-
|
|
1529
|
-
|
|
1562
|
+
var SessionImageDownloadResultSchema = z17.discriminatedUnion("mode", [
|
|
1563
|
+
z17.object({ ...DownloadResultFields, mode: z17.literal("direct"), downloadUrl: DirectUrlSchema }).strict(),
|
|
1564
|
+
z17.object({ ...DownloadResultFields, mode: z17.literal("proxy"), downloadUrl: ProxyUrlSchema }).strict()
|
|
1530
1565
|
]);
|
|
1531
|
-
var TimelineImageBlobRequestSchema =
|
|
1532
|
-
sha256:
|
|
1566
|
+
var TimelineImageBlobRequestSchema = z17.object({
|
|
1567
|
+
sha256: z17.string().regex(/^[a-f0-9]{64}$/u)
|
|
1533
1568
|
}).strict();
|
|
1534
|
-
var TimelineImageBlobResultSchema =
|
|
1569
|
+
var TimelineImageBlobResultSchema = z17.object({
|
|
1535
1570
|
sha256: TimelineImageBlobRequestSchema.shape.sha256,
|
|
1536
1571
|
image: SessionImageCommitResultSchema
|
|
1537
1572
|
}).strict();
|
|
1538
1573
|
|
|
1539
1574
|
// ../../shared/protocol/dist/sessions/session-rename.js
|
|
1540
|
-
import { z as
|
|
1575
|
+
import { z as z18 } from "zod";
|
|
1541
1576
|
var SESSION_RENAME_OPERATION = "session.rename";
|
|
1542
1577
|
var SESSION_RENAME_VERSION = 1;
|
|
1543
1578
|
var SESSION_RENAME_CAPABILITY = sessionCommunicationOperationCapability(SESSION_RENAME_OPERATION, SESSION_RENAME_VERSION);
|
|
1544
1579
|
var SESSION_NAME_MAX_LENGTH = 100;
|
|
1545
|
-
var SessionNameSchema =
|
|
1546
|
-
var SessionRenameDataSchema =
|
|
1547
|
-
var SessionRenameResultDataSchema =
|
|
1580
|
+
var SessionNameSchema = z18.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
|
|
1581
|
+
var SessionRenameDataSchema = z18.object({ name: SessionNameSchema }).strict();
|
|
1582
|
+
var SessionRenameResultDataSchema = z18.object({ name: SessionNameSchema }).strict();
|
|
1548
1583
|
|
|
1549
1584
|
// ../../shared/protocol/dist/sessions/sessions.js
|
|
1550
|
-
import { z as
|
|
1551
|
-
var GroupChatParticipantSchema =
|
|
1585
|
+
import { z as z19 } from "zod";
|
|
1586
|
+
var GroupChatParticipantSchema = z19.object({
|
|
1552
1587
|
sessionId: IdSchema,
|
|
1553
|
-
title:
|
|
1588
|
+
title: z19.string().trim().min(1).max(260)
|
|
1554
1589
|
}).strict();
|
|
1555
|
-
var GroupChatInfoSchema =
|
|
1556
|
-
participants:
|
|
1557
|
-
state:
|
|
1590
|
+
var GroupChatInfoSchema = z19.object({
|
|
1591
|
+
participants: z19.array(GroupChatParticipantSchema).length(2).refine((participants) => new Set(participants.map((participant) => participant.sessionId)).size === 2, "A group requires two different sessions"),
|
|
1592
|
+
state: z19.enum(["ready", "running", "paused", "blocked"])
|
|
1558
1593
|
}).strict();
|
|
1559
|
-
var SessionSummarySchema =
|
|
1594
|
+
var SessionSummarySchema = z19.object({
|
|
1560
1595
|
userId: IdSchema,
|
|
1561
1596
|
sessionId: IdSchema,
|
|
1562
1597
|
machineId: IdSchema,
|
|
1563
|
-
summary:
|
|
1564
|
-
renameSupported:
|
|
1565
|
-
workingDirectory:
|
|
1566
|
-
gitRoot:
|
|
1567
|
-
repository:
|
|
1568
|
-
gitRemoteUrl:
|
|
1569
|
-
branch:
|
|
1570
|
-
isRemote:
|
|
1598
|
+
summary: z19.string().max(4096).optional(),
|
|
1599
|
+
renameSupported: z19.boolean().optional(),
|
|
1600
|
+
workingDirectory: z19.string().max(32768).optional(),
|
|
1601
|
+
gitRoot: z19.string().max(32768).optional(),
|
|
1602
|
+
repository: z19.string().max(1024).optional(),
|
|
1603
|
+
gitRemoteUrl: z19.string().max(32768).optional(),
|
|
1604
|
+
branch: z19.string().max(1024).optional(),
|
|
1605
|
+
isRemote: z19.boolean(),
|
|
1571
1606
|
createdAt: IsoDateSchema,
|
|
1572
1607
|
modifiedAt: IsoDateSchema,
|
|
1573
1608
|
groupChat: GroupChatInfoSchema.optional()
|
|
1574
1609
|
});
|
|
1575
|
-
var SessionsSnapshotSchema =
|
|
1610
|
+
var SessionsSnapshotSchema = z19.object({
|
|
1576
1611
|
userId: IdSchema,
|
|
1577
1612
|
machineId: IdSchema,
|
|
1578
|
-
machineName:
|
|
1579
|
-
platform:
|
|
1613
|
+
machineName: z19.string().trim().min(1).max(120),
|
|
1614
|
+
platform: z19.string().trim().min(1).max(64),
|
|
1580
1615
|
agentRunId: IdSchema,
|
|
1581
|
-
sequence:
|
|
1616
|
+
sequence: z19.number().int().positive(),
|
|
1582
1617
|
generatedAt: IsoDateSchema,
|
|
1583
|
-
complete:
|
|
1584
|
-
totalCount:
|
|
1585
|
-
nextCursor:
|
|
1586
|
-
sessions:
|
|
1618
|
+
complete: z19.boolean(),
|
|
1619
|
+
totalCount: z19.number().int().nonnegative(),
|
|
1620
|
+
nextCursor: z19.string().min(1).max(1024).optional(),
|
|
1621
|
+
sessions: z19.array(SessionSummarySchema)
|
|
1587
1622
|
}).superRefine((snapshot, context) => {
|
|
1588
1623
|
if (snapshot.totalCount < snapshot.sessions.length) {
|
|
1589
1624
|
context.addIssue({
|
|
@@ -1625,47 +1660,47 @@ var SessionsSnapshotSchema = z18.object({
|
|
|
1625
1660
|
sessionIds.add(session.sessionId);
|
|
1626
1661
|
}
|
|
1627
1662
|
});
|
|
1628
|
-
var SessionListRequestSchema =
|
|
1663
|
+
var SessionListRequestSchema = z19.object({
|
|
1629
1664
|
requestId: IdSchema,
|
|
1630
1665
|
machineId: IdSchema,
|
|
1631
|
-
cursor:
|
|
1666
|
+
cursor: z19.string().min(1).max(1024).optional()
|
|
1632
1667
|
});
|
|
1633
|
-
var SessionListResultSchema =
|
|
1634
|
-
|
|
1635
|
-
ok:
|
|
1668
|
+
var SessionListResultSchema = z19.discriminatedUnion("ok", [
|
|
1669
|
+
z19.object({
|
|
1670
|
+
ok: z19.literal(true),
|
|
1636
1671
|
requestId: IdSchema,
|
|
1637
1672
|
machineId: IdSchema,
|
|
1638
1673
|
snapshot: SessionsSnapshotSchema
|
|
1639
1674
|
}),
|
|
1640
|
-
|
|
1641
|
-
ok:
|
|
1675
|
+
z19.object({
|
|
1676
|
+
ok: z19.literal(false),
|
|
1642
1677
|
requestId: IdSchema,
|
|
1643
1678
|
machineId: IdSchema,
|
|
1644
1679
|
error: ProtocolFailureSchema
|
|
1645
1680
|
})
|
|
1646
1681
|
]);
|
|
1647
|
-
var SessionAgentModeSchema =
|
|
1682
|
+
var SessionAgentModeSchema = z19.enum([
|
|
1648
1683
|
"interactive",
|
|
1649
1684
|
"plan",
|
|
1650
1685
|
"autopilot"
|
|
1651
1686
|
]);
|
|
1652
|
-
var AgentConfigurationOptionSchema =
|
|
1687
|
+
var AgentConfigurationOptionSchema = z19.object({
|
|
1653
1688
|
id: IdSchema,
|
|
1654
|
-
name:
|
|
1655
|
-
value:
|
|
1656
|
-
options:
|
|
1657
|
-
value:
|
|
1658
|
-
name:
|
|
1689
|
+
name: z19.string().trim().min(1).max(260),
|
|
1690
|
+
value: z19.string().min(1).max(256),
|
|
1691
|
+
options: z19.array(z19.object({
|
|
1692
|
+
value: z19.string().min(1).max(256),
|
|
1693
|
+
name: z19.string().trim().min(1).max(260)
|
|
1659
1694
|
}).strict()).min(1).max(100)
|
|
1660
1695
|
}).strict();
|
|
1661
|
-
var AgentConfigurationChangeSchema =
|
|
1696
|
+
var AgentConfigurationChangeSchema = z19.object({
|
|
1662
1697
|
id: IdSchema,
|
|
1663
|
-
value:
|
|
1698
|
+
value: z19.string().min(1).max(256)
|
|
1664
1699
|
}).strict();
|
|
1665
|
-
var WorkspaceOptionSchema =
|
|
1700
|
+
var WorkspaceOptionSchema = z19.object({
|
|
1666
1701
|
id: IdSchema,
|
|
1667
|
-
name:
|
|
1668
|
-
path:
|
|
1702
|
+
name: z19.string().trim().min(1).max(260),
|
|
1703
|
+
path: z19.string().trim().min(1).max(32768)
|
|
1669
1704
|
});
|
|
1670
1705
|
var REASONING_EFFORTS = [
|
|
1671
1706
|
"low",
|
|
@@ -1674,113 +1709,113 @@ var REASONING_EFFORTS = [
|
|
|
1674
1709
|
"xhigh",
|
|
1675
1710
|
"max"
|
|
1676
1711
|
];
|
|
1677
|
-
var ReasoningEffortSchema =
|
|
1678
|
-
var CopilotModelOptionSchema =
|
|
1712
|
+
var ReasoningEffortSchema = z19.enum(REASONING_EFFORTS);
|
|
1713
|
+
var CopilotModelOptionSchema = z19.object({
|
|
1679
1714
|
id: IdSchema,
|
|
1680
|
-
name:
|
|
1681
|
-
isDefault:
|
|
1682
|
-
supportedReasoningEfforts:
|
|
1715
|
+
name: z19.string().trim().min(1).max(260),
|
|
1716
|
+
isDefault: z19.boolean(),
|
|
1717
|
+
supportedReasoningEfforts: z19.array(ReasoningEffortSchema).optional(),
|
|
1683
1718
|
defaultReasoningEffort: ReasoningEffortSchema.optional(),
|
|
1684
|
-
creation:
|
|
1719
|
+
creation: z19.object({
|
|
1685
1720
|
agentId: IdSchema,
|
|
1686
|
-
agentName:
|
|
1687
|
-
modelName:
|
|
1688
|
-
agentModes:
|
|
1689
|
-
reasoningEffortConfigurationSupported:
|
|
1690
|
-
isDefault:
|
|
1721
|
+
agentName: z19.string().trim().min(1).max(260),
|
|
1722
|
+
modelName: z19.string().trim().min(1).max(260),
|
|
1723
|
+
agentModes: z19.array(SessionAgentModeSchema).min(1),
|
|
1724
|
+
reasoningEffortConfigurationSupported: z19.boolean(),
|
|
1725
|
+
isDefault: z19.boolean()
|
|
1691
1726
|
}).strict().optional()
|
|
1692
1727
|
});
|
|
1693
|
-
var SessionReasoningEffortSchema =
|
|
1728
|
+
var SessionReasoningEffortSchema = z19.enum([
|
|
1694
1729
|
"default",
|
|
1695
1730
|
...REASONING_EFFORTS
|
|
1696
1731
|
]);
|
|
1697
|
-
var CurrentReasoningEffortSchema =
|
|
1698
|
-
var SessionToolInfoSchema =
|
|
1699
|
-
name:
|
|
1700
|
-
description:
|
|
1701
|
-
deferred:
|
|
1732
|
+
var CurrentReasoningEffortSchema = z19.string().trim().min(1).max(64);
|
|
1733
|
+
var SessionToolInfoSchema = z19.object({
|
|
1734
|
+
name: z19.string().trim().min(1).max(260),
|
|
1735
|
+
description: z19.string().trim().min(1).max(4096).optional(),
|
|
1736
|
+
deferred: z19.boolean().optional()
|
|
1702
1737
|
});
|
|
1703
|
-
var SessionSlashCommandInfoSchema =
|
|
1704
|
-
name:
|
|
1705
|
-
description:
|
|
1706
|
-
kind:
|
|
1738
|
+
var SessionSlashCommandInfoSchema = z19.object({
|
|
1739
|
+
name: z19.string().trim().min(1).max(260),
|
|
1740
|
+
description: z19.string().trim().min(1).max(4096).optional(),
|
|
1741
|
+
kind: z19.enum(["builtin", "skill", "client"])
|
|
1707
1742
|
});
|
|
1708
|
-
var SessionSkillInfoSchema =
|
|
1709
|
-
name:
|
|
1710
|
-
description:
|
|
1711
|
-
source:
|
|
1712
|
-
enabled:
|
|
1713
|
-
userInvocable:
|
|
1714
|
-
commandName:
|
|
1743
|
+
var SessionSkillInfoSchema = z19.object({
|
|
1744
|
+
name: z19.string().trim().min(1).max(260),
|
|
1745
|
+
description: z19.string().trim().min(1).max(4096).optional(),
|
|
1746
|
+
source: z19.string().trim().min(1).max(260),
|
|
1747
|
+
enabled: z19.boolean(),
|
|
1748
|
+
userInvocable: z19.boolean(),
|
|
1749
|
+
commandName: z19.string().trim().min(1).max(260).optional()
|
|
1715
1750
|
});
|
|
1716
|
-
var SessionEnvironmentInfoSchema =
|
|
1717
|
-
tools:
|
|
1718
|
-
slashCommands:
|
|
1719
|
-
skills:
|
|
1751
|
+
var SessionEnvironmentInfoSchema = z19.object({
|
|
1752
|
+
tools: z19.array(SessionToolInfoSchema).max(512),
|
|
1753
|
+
slashCommands: z19.array(SessionSlashCommandInfoSchema).max(512),
|
|
1754
|
+
skills: z19.array(SessionSkillInfoSchema).max(512)
|
|
1720
1755
|
});
|
|
1721
|
-
var SessionOptionsRequestSchema =
|
|
1756
|
+
var SessionOptionsRequestSchema = z19.object({
|
|
1722
1757
|
requestId: IdSchema,
|
|
1723
1758
|
machineId: IdSchema,
|
|
1724
1759
|
sessionId: IdSchema.optional(),
|
|
1725
1760
|
workspaceId: IdSchema.optional(),
|
|
1726
|
-
capabilities:
|
|
1761
|
+
capabilities: z19.array(IdSchema).max(64).optional()
|
|
1727
1762
|
});
|
|
1728
|
-
var SessionOptionsResultSchema =
|
|
1729
|
-
|
|
1730
|
-
ok:
|
|
1763
|
+
var SessionOptionsResultSchema = z19.discriminatedUnion("ok", [
|
|
1764
|
+
z19.object({
|
|
1765
|
+
ok: z19.literal(true),
|
|
1731
1766
|
requestId: IdSchema,
|
|
1732
1767
|
machineId: IdSchema,
|
|
1733
1768
|
sessionId: IdSchema.optional(),
|
|
1734
|
-
workspaces:
|
|
1735
|
-
models:
|
|
1736
|
-
modelRefreshError:
|
|
1737
|
-
agentModes:
|
|
1738
|
-
reasoningEffortConfigurationSupported:
|
|
1739
|
-
fileAttachmentsSupported:
|
|
1740
|
-
worktreeCreationSupported:
|
|
1741
|
-
worktreeBranches:
|
|
1742
|
-
worktreeCurrentBranch:
|
|
1769
|
+
workspaces: z19.array(WorkspaceOptionSchema),
|
|
1770
|
+
models: z19.array(CopilotModelOptionSchema).min(1),
|
|
1771
|
+
modelRefreshError: z19.string().min(1).max(4096).optional(),
|
|
1772
|
+
agentModes: z19.array(SessionAgentModeSchema).min(1),
|
|
1773
|
+
reasoningEffortConfigurationSupported: z19.literal(true).optional(),
|
|
1774
|
+
fileAttachmentsSupported: z19.boolean().optional(),
|
|
1775
|
+
worktreeCreationSupported: z19.literal(true).optional(),
|
|
1776
|
+
worktreeBranches: z19.array(z19.string().min(1).max(1024)).optional(),
|
|
1777
|
+
worktreeCurrentBranch: z19.string().min(1).max(1024).optional(),
|
|
1743
1778
|
currentModelId: IdSchema.optional(),
|
|
1744
1779
|
currentAgentMode: SessionAgentModeSchema.optional(),
|
|
1745
1780
|
currentReasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
1746
1781
|
environment: SessionEnvironmentInfoSchema.optional(),
|
|
1747
|
-
environmentPending:
|
|
1748
|
-
agentName:
|
|
1749
|
-
configOptions:
|
|
1782
|
+
environmentPending: z19.literal(true).optional(),
|
|
1783
|
+
agentName: z19.string().trim().min(1).max(260).optional(),
|
|
1784
|
+
configOptions: z19.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
1750
1785
|
}),
|
|
1751
|
-
|
|
1752
|
-
ok:
|
|
1786
|
+
z19.object({
|
|
1787
|
+
ok: z19.literal(false),
|
|
1753
1788
|
requestId: IdSchema,
|
|
1754
1789
|
machineId: IdSchema,
|
|
1755
1790
|
sessionId: IdSchema.optional(),
|
|
1756
1791
|
error: ProtocolFailureSchema,
|
|
1757
|
-
failureStage:
|
|
1758
|
-
models:
|
|
1759
|
-
agentModes:
|
|
1760
|
-
reasoningEffortConfigurationSupported:
|
|
1761
|
-
fileAttachmentsSupported:
|
|
1792
|
+
failureStage: z19.enum(["models", "configuration", "workspaces"]).optional(),
|
|
1793
|
+
models: z19.array(CopilotModelOptionSchema).min(1).optional(),
|
|
1794
|
+
agentModes: z19.array(SessionAgentModeSchema).min(1).optional(),
|
|
1795
|
+
reasoningEffortConfigurationSupported: z19.literal(true).optional(),
|
|
1796
|
+
fileAttachmentsSupported: z19.boolean().optional(),
|
|
1762
1797
|
currentModelId: IdSchema.optional(),
|
|
1763
1798
|
currentAgentMode: SessionAgentModeSchema.optional(),
|
|
1764
1799
|
currentReasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
1765
|
-
agentName:
|
|
1766
|
-
configOptions:
|
|
1800
|
+
agentName: z19.string().trim().min(1).max(260).optional(),
|
|
1801
|
+
configOptions: z19.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
1767
1802
|
})
|
|
1768
1803
|
]);
|
|
1769
|
-
var SessionCreateRequestSchema =
|
|
1804
|
+
var SessionCreateRequestSchema = z19.object({
|
|
1770
1805
|
requestId: IdSchema,
|
|
1771
1806
|
machineId: IdSchema,
|
|
1772
1807
|
workspaceId: IdSchema,
|
|
1773
1808
|
modelId: IdSchema,
|
|
1774
1809
|
agentMode: SessionAgentModeSchema,
|
|
1775
1810
|
reasoningEffort: SessionReasoningEffortSchema.optional(),
|
|
1776
|
-
worktree:
|
|
1777
|
-
branchName:
|
|
1778
|
-
baseBranch:
|
|
1811
|
+
worktree: z19.object({
|
|
1812
|
+
branchName: z19.string().trim().min(1).max(120).optional(),
|
|
1813
|
+
baseBranch: z19.string().trim().min(1).max(1024).optional()
|
|
1779
1814
|
}).strict().optional()
|
|
1780
1815
|
});
|
|
1781
|
-
var SessionCreateResultSchema =
|
|
1782
|
-
|
|
1783
|
-
ok:
|
|
1816
|
+
var SessionCreateResultSchema = z19.discriminatedUnion("ok", [
|
|
1817
|
+
z19.object({
|
|
1818
|
+
ok: z19.literal(true),
|
|
1784
1819
|
requestId: IdSchema,
|
|
1785
1820
|
machineId: IdSchema,
|
|
1786
1821
|
session: SessionSummarySchema,
|
|
@@ -1788,34 +1823,34 @@ var SessionCreateResultSchema = z18.discriminatedUnion("ok", [
|
|
|
1788
1823
|
agentMode: SessionAgentModeSchema,
|
|
1789
1824
|
reasoningEffort: SessionReasoningEffortSchema.optional()
|
|
1790
1825
|
}),
|
|
1791
|
-
|
|
1792
|
-
ok:
|
|
1826
|
+
z19.object({
|
|
1827
|
+
ok: z19.literal(false),
|
|
1793
1828
|
requestId: IdSchema,
|
|
1794
1829
|
machineId: IdSchema,
|
|
1795
1830
|
error: ProtocolFailureSchema
|
|
1796
1831
|
})
|
|
1797
1832
|
]);
|
|
1798
|
-
var SessionDeleteRequestSchema =
|
|
1833
|
+
var SessionDeleteRequestSchema = z19.object({
|
|
1799
1834
|
requestId: IdSchema,
|
|
1800
1835
|
machineId: IdSchema,
|
|
1801
1836
|
sessionId: IdSchema
|
|
1802
1837
|
}).strict();
|
|
1803
|
-
var SessionDeleteResultSchema =
|
|
1804
|
-
|
|
1805
|
-
ok:
|
|
1838
|
+
var SessionDeleteResultSchema = z19.discriminatedUnion("ok", [
|
|
1839
|
+
z19.object({
|
|
1840
|
+
ok: z19.literal(true),
|
|
1806
1841
|
requestId: IdSchema,
|
|
1807
1842
|
machineId: IdSchema,
|
|
1808
1843
|
sessionId: IdSchema
|
|
1809
1844
|
}).strict(),
|
|
1810
|
-
|
|
1811
|
-
ok:
|
|
1845
|
+
z19.object({
|
|
1846
|
+
ok: z19.literal(false),
|
|
1812
1847
|
requestId: IdSchema,
|
|
1813
1848
|
machineId: IdSchema,
|
|
1814
1849
|
sessionId: IdSchema,
|
|
1815
1850
|
error: ProtocolFailureSchema
|
|
1816
1851
|
}).strict()
|
|
1817
1852
|
]);
|
|
1818
|
-
var SessionConfigureRequestSchema =
|
|
1853
|
+
var SessionConfigureRequestSchema = z19.object({
|
|
1819
1854
|
requestId: IdSchema,
|
|
1820
1855
|
machineId: IdSchema,
|
|
1821
1856
|
sessionId: IdSchema,
|
|
@@ -1824,59 +1859,59 @@ var SessionConfigureRequestSchema = z18.object({
|
|
|
1824
1859
|
reasoningEffort: SessionReasoningEffortSchema.optional(),
|
|
1825
1860
|
configOption: AgentConfigurationChangeSchema.optional()
|
|
1826
1861
|
}).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" });
|
|
1827
|
-
var SessionConfigureResultSchema =
|
|
1828
|
-
|
|
1829
|
-
ok:
|
|
1862
|
+
var SessionConfigureResultSchema = z19.discriminatedUnion("ok", [
|
|
1863
|
+
z19.object({
|
|
1864
|
+
ok: z19.literal(true),
|
|
1830
1865
|
requestId: IdSchema,
|
|
1831
1866
|
machineId: IdSchema,
|
|
1832
1867
|
sessionId: IdSchema,
|
|
1833
1868
|
modelId: IdSchema.optional(),
|
|
1834
1869
|
agentMode: SessionAgentModeSchema,
|
|
1835
1870
|
reasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
1836
|
-
configOptions:
|
|
1871
|
+
configOptions: z19.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
1837
1872
|
}),
|
|
1838
|
-
|
|
1839
|
-
ok:
|
|
1873
|
+
z19.object({
|
|
1874
|
+
ok: z19.literal(false),
|
|
1840
1875
|
requestId: IdSchema,
|
|
1841
1876
|
machineId: IdSchema,
|
|
1842
1877
|
sessionId: IdSchema,
|
|
1843
1878
|
error: ProtocolFailureSchema
|
|
1844
1879
|
})
|
|
1845
1880
|
]);
|
|
1846
|
-
var SessionRemoteActionSchema =
|
|
1881
|
+
var SessionRemoteActionSchema = z19.enum([
|
|
1847
1882
|
"status",
|
|
1848
1883
|
"enable",
|
|
1849
1884
|
"disable"
|
|
1850
1885
|
]);
|
|
1851
|
-
var SessionRemoteStateSchema =
|
|
1886
|
+
var SessionRemoteStateSchema = z19.enum([
|
|
1852
1887
|
"off",
|
|
1853
1888
|
"connecting",
|
|
1854
1889
|
"active",
|
|
1855
1890
|
"error"
|
|
1856
1891
|
]);
|
|
1857
|
-
var SessionRemoteRequestSchema =
|
|
1892
|
+
var SessionRemoteRequestSchema = z19.object({
|
|
1858
1893
|
requestId: IdSchema,
|
|
1859
1894
|
machineId: IdSchema,
|
|
1860
1895
|
sessionId: IdSchema,
|
|
1861
1896
|
action: SessionRemoteActionSchema
|
|
1862
1897
|
});
|
|
1863
|
-
var SessionRemoteStatusSchema =
|
|
1898
|
+
var SessionRemoteStatusSchema = z19.object({
|
|
1864
1899
|
state: SessionRemoteStateSchema,
|
|
1865
1900
|
attachedSessionId: IdSchema.optional(),
|
|
1866
|
-
url:
|
|
1867
|
-
steerable:
|
|
1901
|
+
url: z19.url().max(32768).optional(),
|
|
1902
|
+
steerable: z19.boolean(),
|
|
1868
1903
|
error: ProtocolFailureSchema.optional()
|
|
1869
1904
|
});
|
|
1870
|
-
var SessionRemoteResultSchema =
|
|
1871
|
-
|
|
1872
|
-
ok:
|
|
1905
|
+
var SessionRemoteResultSchema = z19.discriminatedUnion("ok", [
|
|
1906
|
+
z19.object({
|
|
1907
|
+
ok: z19.literal(true),
|
|
1873
1908
|
requestId: IdSchema,
|
|
1874
1909
|
machineId: IdSchema,
|
|
1875
1910
|
sessionId: IdSchema,
|
|
1876
1911
|
status: SessionRemoteStatusSchema
|
|
1877
1912
|
}),
|
|
1878
|
-
|
|
1879
|
-
ok:
|
|
1913
|
+
z19.object({
|
|
1914
|
+
ok: z19.literal(false),
|
|
1880
1915
|
requestId: IdSchema,
|
|
1881
1916
|
machineId: IdSchema,
|
|
1882
1917
|
sessionId: IdSchema,
|
|
@@ -1885,42 +1920,42 @@ var SessionRemoteResultSchema = z18.discriminatedUnion("ok", [
|
|
|
1885
1920
|
]);
|
|
1886
1921
|
|
|
1887
1922
|
// ../../shared/protocol/dist/sessions/group-chat.js
|
|
1888
|
-
import { z as
|
|
1923
|
+
import { z as z20 } from "zod";
|
|
1889
1924
|
var GROUP_CHAT_CREATE_OPERATION = "group-chat.create";
|
|
1890
1925
|
var GROUP_CHAT_CREATE_VERSION = 1;
|
|
1891
1926
|
var GROUP_CHAT_CREATE_CAPABILITY = sessionCommunicationOperationCapability(GROUP_CHAT_CREATE_OPERATION, GROUP_CHAT_CREATE_VERSION);
|
|
1892
|
-
var GroupChatCreateDataSchema =
|
|
1927
|
+
var GroupChatCreateDataSchema = z20.object({
|
|
1893
1928
|
peerSessionId: IdSchema
|
|
1894
1929
|
}).strict();
|
|
1895
|
-
var GroupChatCreateResultDataSchema =
|
|
1930
|
+
var GroupChatCreateResultDataSchema = z20.object({
|
|
1896
1931
|
session: SessionSummarySchema.refine((session) => session.groupChat !== void 0, "Group creation must return a virtual group session")
|
|
1897
1932
|
}).strict();
|
|
1898
1933
|
|
|
1899
1934
|
// ../../shared/protocol/dist/sessions/prompts.js
|
|
1900
|
-
import { z as
|
|
1935
|
+
import { z as z24 } from "zod";
|
|
1901
1936
|
|
|
1902
1937
|
// ../../shared/protocol/dist/conversation/attachments.js
|
|
1903
|
-
import { z as
|
|
1938
|
+
import { z as z21 } from "zod";
|
|
1904
1939
|
var MAX_INLINE_IMAGE_BYTES = 3 * 1024 * 1024;
|
|
1905
1940
|
var MAX_INLINE_HTML_BYTES = 512 * 1024;
|
|
1906
1941
|
var MAX_PROMPT_FILE_BYTES = 1024 * 1024;
|
|
1907
|
-
var InlineImageMimeTypeSchema =
|
|
1942
|
+
var InlineImageMimeTypeSchema = z21.enum([
|
|
1908
1943
|
"image/gif",
|
|
1909
1944
|
"image/jpeg",
|
|
1910
1945
|
"image/png",
|
|
1911
1946
|
"image/webp"
|
|
1912
1947
|
]);
|
|
1913
|
-
var Base64DataSchema =
|
|
1914
|
-
var Sha256Schema =
|
|
1948
|
+
var Base64DataSchema = z21.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");
|
|
1949
|
+
var Sha256Schema = z21.string().regex(/^[a-f0-9]{64}$/);
|
|
1915
1950
|
function decodedBase64ByteLength(value) {
|
|
1916
1951
|
const padding = value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0;
|
|
1917
1952
|
return value.length / 4 * 3 - padding;
|
|
1918
1953
|
}
|
|
1919
|
-
var PromptImageAttachmentSchema =
|
|
1920
|
-
name:
|
|
1921
|
-
mimeType:
|
|
1954
|
+
var PromptImageAttachmentSchema = z21.object({
|
|
1955
|
+
name: z21.string().trim().min(1).max(255),
|
|
1956
|
+
mimeType: z21.enum(["image/jpeg", "image/png", "image/webp"]),
|
|
1922
1957
|
data: Base64DataSchema,
|
|
1923
|
-
byteLength:
|
|
1958
|
+
byteLength: z21.number().int().positive().max(MAX_INLINE_IMAGE_BYTES),
|
|
1924
1959
|
sha256: Sha256Schema
|
|
1925
1960
|
}).strict().superRefine((attachment, context) => {
|
|
1926
1961
|
if (decodedBase64ByteLength(attachment.data) !== attachment.byteLength) {
|
|
@@ -1931,11 +1966,11 @@ var PromptImageAttachmentSchema = z20.object({
|
|
|
1931
1966
|
});
|
|
1932
1967
|
}
|
|
1933
1968
|
});
|
|
1934
|
-
var PromptFileAttachmentSchema =
|
|
1935
|
-
name:
|
|
1936
|
-
mimeType:
|
|
1969
|
+
var PromptFileAttachmentSchema = z21.object({
|
|
1970
|
+
name: z21.string().trim().min(1).max(255).regex(/^[^\\/\x00-\x1f\x7f]+$/).refine((name) => name !== "." && name !== "..", "Expected a filename"),
|
|
1971
|
+
mimeType: z21.string().max(256).regex(/^[a-zA-Z0-9!#$&^_.+-]+\/[a-zA-Z0-9!#$&^_.+-]+$/),
|
|
1937
1972
|
data: Base64DataSchema.max(Math.ceil(MAX_PROMPT_FILE_BYTES / 3) * 4),
|
|
1938
|
-
byteLength:
|
|
1973
|
+
byteLength: z21.number().int().positive().max(MAX_PROMPT_FILE_BYTES),
|
|
1939
1974
|
sha256: Sha256Schema
|
|
1940
1975
|
}).strict().superRefine((attachment, context) => {
|
|
1941
1976
|
if (decodedBase64ByteLength(attachment.data) !== attachment.byteLength) {
|
|
@@ -1946,8 +1981,8 @@ var PromptFileAttachmentSchema = z20.object({
|
|
|
1946
1981
|
});
|
|
1947
1982
|
}
|
|
1948
1983
|
});
|
|
1949
|
-
var ConversationAttachmentSchema =
|
|
1950
|
-
kind:
|
|
1984
|
+
var ConversationAttachmentSchema = z21.object({
|
|
1985
|
+
kind: z21.enum([
|
|
1951
1986
|
"file",
|
|
1952
1987
|
"image",
|
|
1953
1988
|
"html",
|
|
@@ -1955,13 +1990,13 @@ var ConversationAttachmentSchema = z20.object({
|
|
|
1955
1990
|
"github-reference",
|
|
1956
1991
|
"unknown"
|
|
1957
1992
|
]),
|
|
1958
|
-
name:
|
|
1959
|
-
mimeType:
|
|
1960
|
-
uri:
|
|
1993
|
+
name: z21.string().trim().min(1).max(1024),
|
|
1994
|
+
mimeType: z21.string().trim().min(1).max(256).optional(),
|
|
1995
|
+
uri: z21.string().trim().min(1).max(32768).optional(),
|
|
1961
1996
|
data: Base64DataSchema.optional(),
|
|
1962
|
-
byteLength:
|
|
1997
|
+
byteLength: z21.number().int().positive().max(MAX_INLINE_IMAGE_BYTES).optional(),
|
|
1963
1998
|
sha256: Sha256Schema.optional(),
|
|
1964
|
-
imageRef:
|
|
1999
|
+
imageRef: z21.literal("sha256").optional()
|
|
1965
2000
|
}).strict().superRefine((attachment, context) => {
|
|
1966
2001
|
if (attachment.imageRef !== void 0) {
|
|
1967
2002
|
if (attachment.kind !== "image" || attachment.data !== void 0 || attachment.sha256 === void 0 || attachment.byteLength === void 0 || !InlineImageMimeTypeSchema.safeParse(attachment.mimeType).success) {
|
|
@@ -2019,20 +2054,20 @@ var ConversationAttachmentSchema = z20.object({
|
|
|
2019
2054
|
});
|
|
2020
2055
|
|
|
2021
2056
|
// ../../shared/protocol/dist/conversation/timeline.js
|
|
2022
|
-
import { z as
|
|
2057
|
+
import { z as z23 } from "zod";
|
|
2023
2058
|
|
|
2024
2059
|
// ../../shared/protocol/dist/conversation/conversation.js
|
|
2025
|
-
import { z as
|
|
2060
|
+
import { z as z22 } from "zod";
|
|
2026
2061
|
var CONVERSATION_ACTIVITY_STEP_LIMIT = 1e3;
|
|
2027
2062
|
var CONVERSATION_SOURCE_ID_LIMIT = 1e3;
|
|
2028
2063
|
var ConversationItemBaseShape = {
|
|
2029
2064
|
id: IdSchema,
|
|
2030
|
-
revision:
|
|
2065
|
+
revision: z22.number().int().positive(),
|
|
2031
2066
|
turnId: IdSchema,
|
|
2032
2067
|
timestamp: IsoDateSchema,
|
|
2033
|
-
sourceEventIds:
|
|
2034
|
-
sourceMessageIds:
|
|
2035
|
-
sourceInteractionIds:
|
|
2068
|
+
sourceEventIds: z22.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT),
|
|
2069
|
+
sourceMessageIds: z22.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT).optional(),
|
|
2070
|
+
sourceInteractionIds: z22.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT).optional()
|
|
2036
2071
|
};
|
|
2037
2072
|
var MAX_INLINE_IMAGE_MESSAGE_BYTES = 3 * 1024 * 1024;
|
|
2038
2073
|
var MAX_INLINE_IMAGES_PER_MESSAGE = 4;
|
|
@@ -2040,67 +2075,67 @@ var ActivityStepTimeShape = {
|
|
|
2040
2075
|
// First observed event time; completion updates must not move an existing call.
|
|
2041
2076
|
timestamp: IsoDateSchema.optional()
|
|
2042
2077
|
};
|
|
2043
|
-
var ConversationToolStepSchema =
|
|
2078
|
+
var ConversationToolStepSchema = z22.object({
|
|
2044
2079
|
id: IdSchema,
|
|
2045
|
-
kind:
|
|
2046
|
-
name:
|
|
2047
|
-
status:
|
|
2080
|
+
kind: z22.literal("tool"),
|
|
2081
|
+
name: z22.string().trim().min(1).max(256),
|
|
2082
|
+
status: z22.enum(["running", "completed", "failed"]),
|
|
2048
2083
|
...ActivityStepTimeShape
|
|
2049
2084
|
}).strict();
|
|
2050
|
-
var ConversationSkillStepSchema =
|
|
2085
|
+
var ConversationSkillStepSchema = z22.object({
|
|
2051
2086
|
id: IdSchema,
|
|
2052
|
-
kind:
|
|
2053
|
-
name:
|
|
2054
|
-
status:
|
|
2055
|
-
description:
|
|
2056
|
-
source:
|
|
2087
|
+
kind: z22.literal("skill"),
|
|
2088
|
+
name: z22.string().trim().min(1).max(256),
|
|
2089
|
+
status: z22.literal("completed"),
|
|
2090
|
+
description: z22.string().trim().min(1).max(2048).optional(),
|
|
2091
|
+
source: z22.string().trim().min(1).max(256).optional(),
|
|
2057
2092
|
...ActivityStepTimeShape
|
|
2058
2093
|
}).strict();
|
|
2059
|
-
var ConversationSubagentStepSchema =
|
|
2094
|
+
var ConversationSubagentStepSchema = z22.object({
|
|
2060
2095
|
id: IdSchema,
|
|
2061
|
-
kind:
|
|
2062
|
-
name:
|
|
2063
|
-
status:
|
|
2064
|
-
description:
|
|
2065
|
-
model:
|
|
2066
|
-
durationMs:
|
|
2067
|
-
resultSummary:
|
|
2068
|
-
error:
|
|
2096
|
+
kind: z22.literal("subagent"),
|
|
2097
|
+
name: z22.string().trim().min(1).max(256),
|
|
2098
|
+
status: z22.enum(["running", "completed", "failed"]),
|
|
2099
|
+
description: z22.string().trim().min(1).max(2048).optional(),
|
|
2100
|
+
model: z22.string().trim().min(1).max(256).optional(),
|
|
2101
|
+
durationMs: z22.number().int().nonnegative().optional(),
|
|
2102
|
+
resultSummary: z22.string().max(4096).optional(),
|
|
2103
|
+
error: z22.string().max(4096).optional(),
|
|
2069
2104
|
...ActivityStepTimeShape
|
|
2070
2105
|
}).strict();
|
|
2071
|
-
var ConversationPermissionStepSchema =
|
|
2106
|
+
var ConversationPermissionStepSchema = z22.object({
|
|
2072
2107
|
id: IdSchema,
|
|
2073
|
-
kind:
|
|
2074
|
-
name:
|
|
2075
|
-
status:
|
|
2076
|
-
description:
|
|
2077
|
-
resultSummary:
|
|
2078
|
-
error:
|
|
2108
|
+
kind: z22.literal("permission"),
|
|
2109
|
+
name: z22.string().trim().min(1).max(256),
|
|
2110
|
+
status: z22.enum(["running", "completed", "failed"]),
|
|
2111
|
+
description: z22.string().trim().min(1).max(2048).optional(),
|
|
2112
|
+
resultSummary: z22.string().max(4096).optional(),
|
|
2113
|
+
error: z22.string().max(4096).optional(),
|
|
2079
2114
|
...ActivityStepTimeShape
|
|
2080
2115
|
}).strict();
|
|
2081
|
-
var ConversationActivityStepSchema =
|
|
2116
|
+
var ConversationActivityStepSchema = z22.discriminatedUnion("kind", [
|
|
2082
2117
|
ConversationToolStepSchema,
|
|
2083
2118
|
ConversationSkillStepSchema,
|
|
2084
2119
|
ConversationSubagentStepSchema,
|
|
2085
2120
|
ConversationPermissionStepSchema
|
|
2086
2121
|
]);
|
|
2087
|
-
var ConversationHumanMessageSchema =
|
|
2122
|
+
var ConversationHumanMessageSchema = z22.object({
|
|
2088
2123
|
...ConversationItemBaseShape,
|
|
2089
|
-
kind:
|
|
2090
|
-
actor:
|
|
2091
|
-
content:
|
|
2092
|
-
attachments:
|
|
2124
|
+
kind: z22.literal("human-message"),
|
|
2125
|
+
actor: z22.literal("human"),
|
|
2126
|
+
content: z22.string().max(1e5),
|
|
2127
|
+
attachments: z22.array(ConversationAttachmentSchema).max(100),
|
|
2093
2128
|
operationId: IdSchema.optional()
|
|
2094
2129
|
}).strict();
|
|
2095
|
-
var ConversationAssistantMessageSchema =
|
|
2130
|
+
var ConversationAssistantMessageSchema = z22.object({
|
|
2096
2131
|
...ConversationItemBaseShape,
|
|
2097
|
-
kind:
|
|
2098
|
-
actor:
|
|
2099
|
-
content:
|
|
2100
|
-
attachments:
|
|
2101
|
-
model:
|
|
2132
|
+
kind: z22.literal("assistant-message"),
|
|
2133
|
+
actor: z22.enum(["assistant", "subagent"]),
|
|
2134
|
+
content: z22.string().max(5e5),
|
|
2135
|
+
attachments: z22.array(ConversationAttachmentSchema).max(100).optional(),
|
|
2136
|
+
model: z22.string().trim().min(1).max(256).optional(),
|
|
2102
2137
|
agentId: IdSchema.optional(),
|
|
2103
|
-
final:
|
|
2138
|
+
final: z22.boolean()
|
|
2104
2139
|
}).strict().superRefine((message, context) => {
|
|
2105
2140
|
const inlineImages = message.attachments?.filter((attachment) => attachment.kind === "image" && attachment.data !== void 0) ?? [];
|
|
2106
2141
|
if (inlineImages.length > MAX_INLINE_IMAGES_PER_MESSAGE) {
|
|
@@ -2119,166 +2154,166 @@ var ConversationAssistantMessageSchema = z21.object({
|
|
|
2119
2154
|
});
|
|
2120
2155
|
}
|
|
2121
2156
|
});
|
|
2122
|
-
var ConversationActivityGroupSchema =
|
|
2157
|
+
var ConversationActivityGroupSchema = z22.object({
|
|
2123
2158
|
...ConversationItemBaseShape,
|
|
2124
|
-
kind:
|
|
2125
|
-
actor:
|
|
2126
|
-
status:
|
|
2127
|
-
steps:
|
|
2159
|
+
kind: z22.literal("activity-group"),
|
|
2160
|
+
actor: z22.enum(["assistant", "subagent"]),
|
|
2161
|
+
status: z22.enum(["running", "completed", "failed"]),
|
|
2162
|
+
steps: z22.array(ConversationActivityStepSchema).max(CONVERSATION_ACTIVITY_STEP_LIMIT)
|
|
2128
2163
|
}).strict();
|
|
2129
|
-
var ConversationNoticeSchema =
|
|
2164
|
+
var ConversationNoticeSchema = z22.object({
|
|
2130
2165
|
...ConversationItemBaseShape,
|
|
2131
|
-
kind:
|
|
2132
|
-
actor:
|
|
2133
|
-
severity:
|
|
2134
|
-
title:
|
|
2135
|
-
content:
|
|
2136
|
-
presentation:
|
|
2166
|
+
kind: z22.literal("notice"),
|
|
2167
|
+
actor: z22.enum(["system", "assistant", "subagent"]),
|
|
2168
|
+
severity: z22.enum(["info", "success", "warning", "error"]),
|
|
2169
|
+
title: z22.string().trim().min(1).max(256),
|
|
2170
|
+
content: z22.string().max(4096),
|
|
2171
|
+
presentation: z22.literal("compact").optional()
|
|
2137
2172
|
}).strict();
|
|
2138
|
-
var ConversationPlanTodoSchema =
|
|
2173
|
+
var ConversationPlanTodoSchema = z22.object({
|
|
2139
2174
|
id: IdSchema,
|
|
2140
|
-
title:
|
|
2141
|
-
description:
|
|
2142
|
-
status:
|
|
2143
|
-
dependsOn:
|
|
2175
|
+
title: z22.string().trim().min(1).max(1024),
|
|
2176
|
+
description: z22.string().max(4096).optional(),
|
|
2177
|
+
status: z22.string().trim().min(1).max(64),
|
|
2178
|
+
dependsOn: z22.array(IdSchema).max(100)
|
|
2144
2179
|
}).strict();
|
|
2145
|
-
var ConversationPlanUpdateSchema =
|
|
2180
|
+
var ConversationPlanUpdateSchema = z22.object({
|
|
2146
2181
|
...ConversationItemBaseShape,
|
|
2147
|
-
kind:
|
|
2148
|
-
actor:
|
|
2149
|
-
operation:
|
|
2150
|
-
content:
|
|
2151
|
-
todos:
|
|
2182
|
+
kind: z22.literal("plan-update"),
|
|
2183
|
+
actor: z22.enum(["assistant", "subagent"]),
|
|
2184
|
+
operation: z22.enum(["created", "updated", "deleted"]),
|
|
2185
|
+
content: z22.string().max(1e5),
|
|
2186
|
+
todos: z22.array(ConversationPlanTodoSchema).max(1e3)
|
|
2152
2187
|
}).strict();
|
|
2153
|
-
var ConversationItemSchema =
|
|
2188
|
+
var ConversationItemSchema = z22.discriminatedUnion("kind", [
|
|
2154
2189
|
ConversationHumanMessageSchema,
|
|
2155
2190
|
ConversationAssistantMessageSchema,
|
|
2156
2191
|
ConversationActivityGroupSchema,
|
|
2157
2192
|
ConversationNoticeSchema,
|
|
2158
2193
|
ConversationPlanUpdateSchema
|
|
2159
2194
|
]);
|
|
2160
|
-
var ConversationItemUpsertSchema =
|
|
2195
|
+
var ConversationItemUpsertSchema = z22.object({
|
|
2161
2196
|
userId: IdSchema,
|
|
2162
2197
|
machineId: IdSchema,
|
|
2163
2198
|
sessionId: IdSchema,
|
|
2164
2199
|
item: ConversationItemSchema
|
|
2165
2200
|
});
|
|
2166
|
-
var ConversationActivityStepUpsertSchema =
|
|
2201
|
+
var ConversationActivityStepUpsertSchema = z22.object({
|
|
2167
2202
|
userId: IdSchema,
|
|
2168
2203
|
machineId: IdSchema,
|
|
2169
2204
|
sessionId: IdSchema,
|
|
2170
2205
|
activityId: IdSchema,
|
|
2171
|
-
revision:
|
|
2206
|
+
revision: z22.number().int().positive(),
|
|
2172
2207
|
turnId: IdSchema,
|
|
2173
2208
|
timestamp: IsoDateSchema,
|
|
2174
|
-
actor:
|
|
2175
|
-
status:
|
|
2209
|
+
actor: z22.enum(["assistant", "subagent"]),
|
|
2210
|
+
status: z22.enum(["running", "completed", "failed"]),
|
|
2176
2211
|
sourceEventId: IdSchema,
|
|
2177
2212
|
step: ConversationActivityStepSchema
|
|
2178
2213
|
}).strict();
|
|
2179
2214
|
|
|
2180
2215
|
// ../../shared/protocol/dist/conversation/timeline.js
|
|
2181
|
-
var SessionUserPreviewSchema =
|
|
2216
|
+
var SessionUserPreviewSchema = z23.object({
|
|
2182
2217
|
id: IdSchema,
|
|
2183
|
-
revision:
|
|
2218
|
+
revision: z23.number().int().positive(),
|
|
2184
2219
|
timestamp: IsoDateSchema,
|
|
2185
|
-
text:
|
|
2220
|
+
text: z23.string().max(4096)
|
|
2186
2221
|
});
|
|
2187
|
-
var SessionAssistantPreviewSchema =
|
|
2222
|
+
var SessionAssistantPreviewSchema = z23.object({
|
|
2188
2223
|
id: IdSchema,
|
|
2189
|
-
revision:
|
|
2224
|
+
revision: z23.number().int().positive(),
|
|
2190
2225
|
timestamp: IsoDateSchema,
|
|
2191
|
-
sourceEventIds:
|
|
2192
|
-
text:
|
|
2193
|
-
final:
|
|
2194
|
-
attachments:
|
|
2195
|
-
kind:
|
|
2226
|
+
sourceEventIds: z23.array(IdSchema).min(1).max(1e3),
|
|
2227
|
+
text: z23.string().max(4096),
|
|
2228
|
+
final: z23.boolean(),
|
|
2229
|
+
attachments: z23.array(ConversationAttachmentSchema.refine((attachment) => attachment.kind === "image" && attachment.imageRef === "sha256", "Assistant previews contain image references only")).max(4),
|
|
2230
|
+
kind: z23.enum(["assistant-message", "task-completion"]).optional()
|
|
2196
2231
|
});
|
|
2197
2232
|
var SESSION_TIMELINE_PAGE_SIZE = 100;
|
|
2198
|
-
var SessionTimelinePageRequestSchema =
|
|
2233
|
+
var SessionTimelinePageRequestSchema = z23.object({
|
|
2199
2234
|
requestId: IdSchema,
|
|
2200
2235
|
machineId: IdSchema,
|
|
2201
2236
|
sessionId: IdSchema,
|
|
2202
|
-
cursor:
|
|
2203
|
-
metadataOnly:
|
|
2204
|
-
acceptContentEncodings:
|
|
2205
|
-
imageReferences:
|
|
2206
|
-
pageSize:
|
|
2207
|
-
assistantPreview:
|
|
2237
|
+
cursor: z23.string().max(32768).optional(),
|
|
2238
|
+
metadataOnly: z23.boolean().optional(),
|
|
2239
|
+
acceptContentEncodings: z23.array(z23.string().min(1).max(32)).max(8).optional(),
|
|
2240
|
+
imageReferences: z23.boolean().optional(),
|
|
2241
|
+
pageSize: z23.number().int().min(1).max(SESSION_TIMELINE_PAGE_SIZE).default(SESSION_TIMELINE_PAGE_SIZE),
|
|
2242
|
+
assistantPreview: z23.boolean().optional()
|
|
2208
2243
|
});
|
|
2209
|
-
var SessionWatchRequestSchema =
|
|
2244
|
+
var SessionWatchRequestSchema = z23.object({
|
|
2210
2245
|
requestId: IdSchema,
|
|
2211
2246
|
machineId: IdSchema,
|
|
2212
2247
|
sessionId: IdSchema,
|
|
2213
|
-
watching:
|
|
2248
|
+
watching: z23.boolean()
|
|
2214
2249
|
}).strict();
|
|
2215
|
-
var SessionWatchResultSchema =
|
|
2216
|
-
|
|
2217
|
-
ok:
|
|
2250
|
+
var SessionWatchResultSchema = z23.discriminatedUnion("ok", [
|
|
2251
|
+
z23.object({
|
|
2252
|
+
ok: z23.literal(true),
|
|
2218
2253
|
requestId: IdSchema,
|
|
2219
2254
|
machineId: IdSchema,
|
|
2220
2255
|
sessionId: IdSchema,
|
|
2221
|
-
watching:
|
|
2256
|
+
watching: z23.boolean()
|
|
2222
2257
|
}).strict(),
|
|
2223
|
-
|
|
2224
|
-
ok:
|
|
2258
|
+
z23.object({
|
|
2259
|
+
ok: z23.literal(false),
|
|
2225
2260
|
requestId: IdSchema,
|
|
2226
2261
|
machineId: IdSchema,
|
|
2227
2262
|
sessionId: IdSchema,
|
|
2228
|
-
watching:
|
|
2263
|
+
watching: z23.boolean(),
|
|
2229
2264
|
error: ProtocolFailureSchema
|
|
2230
2265
|
}).strict()
|
|
2231
2266
|
]);
|
|
2232
|
-
var SessionTimelinePageSchema =
|
|
2233
|
-
items:
|
|
2234
|
-
cursor:
|
|
2235
|
-
hasMore:
|
|
2236
|
-
cursorStatus:
|
|
2267
|
+
var SessionTimelinePageSchema = z23.object({
|
|
2268
|
+
items: z23.array(ConversationItemSchema).max(SESSION_TIMELINE_PAGE_SIZE),
|
|
2269
|
+
cursor: z23.string().max(32768),
|
|
2270
|
+
hasMore: z23.boolean(),
|
|
2271
|
+
cursorStatus: z23.enum(["ok", "expired"]),
|
|
2237
2272
|
assistantPreview: SessionAssistantPreviewSchema.optional(),
|
|
2238
2273
|
userPreview: SessionUserPreviewSchema.optional(),
|
|
2239
|
-
previewsComplete:
|
|
2274
|
+
previewsComplete: z23.boolean().optional()
|
|
2240
2275
|
});
|
|
2241
|
-
var SessionTimelinePageResultSchema =
|
|
2242
|
-
|
|
2243
|
-
ok:
|
|
2276
|
+
var SessionTimelinePageResultSchema = z23.discriminatedUnion("ok", [
|
|
2277
|
+
z23.object({
|
|
2278
|
+
ok: z23.literal(true),
|
|
2244
2279
|
requestId: IdSchema,
|
|
2245
2280
|
machineId: IdSchema,
|
|
2246
2281
|
sessionId: IdSchema,
|
|
2247
2282
|
page: SessionTimelinePageSchema
|
|
2248
2283
|
}),
|
|
2249
|
-
|
|
2250
|
-
ok:
|
|
2284
|
+
z23.object({
|
|
2285
|
+
ok: z23.literal(false),
|
|
2251
2286
|
requestId: IdSchema,
|
|
2252
2287
|
machineId: IdSchema,
|
|
2253
2288
|
sessionId: IdSchema,
|
|
2254
2289
|
error: ProtocolFailureSchema
|
|
2255
2290
|
})
|
|
2256
2291
|
]);
|
|
2257
|
-
var SessionTimelineInvalidatedSchema =
|
|
2292
|
+
var SessionTimelineInvalidatedSchema = z23.object({
|
|
2258
2293
|
userId: IdSchema,
|
|
2259
2294
|
machineId: IdSchema,
|
|
2260
2295
|
sessionId: IdSchema,
|
|
2261
|
-
reason:
|
|
2296
|
+
reason: z23.enum(["clear", "rewind"]),
|
|
2262
2297
|
sourceEventId: IdSchema,
|
|
2263
2298
|
timestamp: IsoDateSchema
|
|
2264
2299
|
}).strict();
|
|
2265
2300
|
|
|
2266
2301
|
// ../../shared/protocol/dist/sessions/prompts.js
|
|
2267
|
-
var SessionAvatarPersonaSchema =
|
|
2268
|
-
role:
|
|
2269
|
-
displayName:
|
|
2302
|
+
var SessionAvatarPersonaSchema = z24.object({
|
|
2303
|
+
role: z24.enum(["designer", "filmmaker", "developer", "secretary", "default"]),
|
|
2304
|
+
displayName: z24.string().trim().min(1).max(40).regex(/^[^\u0000-\u001f\u007f-\u009f]*$/).optional()
|
|
2270
2305
|
}).strict().refine((value) => value.role === "default" ? value.displayName === void 0 : value.displayName !== void 0, { message: "A role requires a display name; default must not include one" });
|
|
2271
2306
|
var MAX_PROMPT_IMAGE_BYTES = 3 * 1024 * 1024;
|
|
2272
|
-
var SessionPromptRequestSchema =
|
|
2307
|
+
var SessionPromptRequestSchema = z24.object({
|
|
2273
2308
|
requestId: IdSchema,
|
|
2274
2309
|
operationId: IdSchema,
|
|
2275
2310
|
machineId: IdSchema,
|
|
2276
2311
|
sessionId: IdSchema,
|
|
2277
|
-
prompt:
|
|
2278
|
-
attachments:
|
|
2279
|
-
fileAttachments:
|
|
2312
|
+
prompt: z24.string().trim().max(1e5),
|
|
2313
|
+
attachments: z24.array(PromptImageAttachmentSchema).max(4).optional(),
|
|
2314
|
+
fileAttachments: z24.array(PromptFileAttachmentSchema).max(4).optional(),
|
|
2280
2315
|
avatarPersona: SessionAvatarPersonaSchema.optional(),
|
|
2281
|
-
mode:
|
|
2316
|
+
mode: z24.enum(["enqueue", "immediate"]).default("enqueue")
|
|
2282
2317
|
}).strict().superRefine((request, context) => {
|
|
2283
2318
|
if (request.prompt.length === 0 && (request.attachments?.length ?? 0) === 0 && (request.fileAttachments?.length ?? 0) === 0) {
|
|
2284
2319
|
context.addIssue({
|
|
@@ -2304,22 +2339,22 @@ var SessionPromptRequestSchema = z23.object({
|
|
|
2304
2339
|
});
|
|
2305
2340
|
}
|
|
2306
2341
|
});
|
|
2307
|
-
var SessionPromptResultSchema =
|
|
2308
|
-
|
|
2309
|
-
ok:
|
|
2342
|
+
var SessionPromptResultSchema = z24.discriminatedUnion("ok", [
|
|
2343
|
+
z24.object({
|
|
2344
|
+
ok: z24.literal(true),
|
|
2310
2345
|
requestId: IdSchema,
|
|
2311
2346
|
operationId: IdSchema,
|
|
2312
2347
|
machineId: IdSchema,
|
|
2313
2348
|
sessionId: IdSchema,
|
|
2314
2349
|
messageId: IdSchema,
|
|
2315
|
-
mode:
|
|
2316
|
-
deliveryState:
|
|
2350
|
+
mode: z24.enum(["enqueue", "immediate"]),
|
|
2351
|
+
deliveryState: z24.enum(["queued", "processing"]),
|
|
2317
2352
|
// Negotiated lower bound from the native event clock. Exact text and history
|
|
2318
2353
|
// ownership checks still apply; this is not an identity or proof of persistence.
|
|
2319
2354
|
submittedAt: IsoDateSchema.optional()
|
|
2320
2355
|
}),
|
|
2321
|
-
|
|
2322
|
-
ok:
|
|
2356
|
+
z24.object({
|
|
2357
|
+
ok: z24.literal(false),
|
|
2323
2358
|
requestId: IdSchema,
|
|
2324
2359
|
operationId: IdSchema,
|
|
2325
2360
|
machineId: IdSchema,
|
|
@@ -2327,29 +2362,29 @@ var SessionPromptResultSchema = z23.discriminatedUnion("ok", [
|
|
|
2327
2362
|
error: ProtocolFailureSchema
|
|
2328
2363
|
})
|
|
2329
2364
|
]);
|
|
2330
|
-
var SessionActivityUpdateSchema =
|
|
2365
|
+
var SessionActivityUpdateSchema = z24.object({
|
|
2331
2366
|
userId: IdSchema,
|
|
2332
2367
|
machineId: IdSchema,
|
|
2333
2368
|
sessionId: IdSchema,
|
|
2334
|
-
state:
|
|
2369
|
+
state: z24.enum(["working", "idle"]),
|
|
2335
2370
|
occurredAt: IsoDateSchema,
|
|
2336
2371
|
assistantPreview: SessionAssistantPreviewSchema.optional(),
|
|
2337
2372
|
userPreview: SessionUserPreviewSchema.optional()
|
|
2338
2373
|
});
|
|
2339
|
-
var SessionAbortRequestSchema =
|
|
2374
|
+
var SessionAbortRequestSchema = z24.object({
|
|
2340
2375
|
requestId: IdSchema,
|
|
2341
2376
|
machineId: IdSchema,
|
|
2342
2377
|
sessionId: IdSchema
|
|
2343
2378
|
});
|
|
2344
|
-
var SessionAbortResultSchema =
|
|
2345
|
-
|
|
2346
|
-
ok:
|
|
2379
|
+
var SessionAbortResultSchema = z24.discriminatedUnion("ok", [
|
|
2380
|
+
z24.object({
|
|
2381
|
+
ok: z24.literal(true),
|
|
2347
2382
|
requestId: IdSchema,
|
|
2348
2383
|
machineId: IdSchema,
|
|
2349
2384
|
sessionId: IdSchema
|
|
2350
2385
|
}),
|
|
2351
|
-
|
|
2352
|
-
ok:
|
|
2386
|
+
z24.object({
|
|
2387
|
+
ok: z24.literal(false),
|
|
2353
2388
|
requestId: IdSchema,
|
|
2354
2389
|
machineId: IdSchema,
|
|
2355
2390
|
sessionId: IdSchema,
|
|
@@ -2358,12 +2393,12 @@ var SessionAbortResultSchema = z23.discriminatedUnion("ok", [
|
|
|
2358
2393
|
]);
|
|
2359
2394
|
|
|
2360
2395
|
// ../../shared/protocol/dist/sessions/interactions.js
|
|
2361
|
-
import { z as
|
|
2362
|
-
var InteractionFormFieldSchema =
|
|
2396
|
+
import { z as z25 } from "zod";
|
|
2397
|
+
var InteractionFormFieldSchema = z25.object({
|
|
2363
2398
|
id: IdSchema,
|
|
2364
|
-
label:
|
|
2365
|
-
description:
|
|
2366
|
-
inputType:
|
|
2399
|
+
label: z25.string().trim().min(1).max(1024),
|
|
2400
|
+
description: z25.string().max(2048).optional(),
|
|
2401
|
+
inputType: z25.enum([
|
|
2367
2402
|
"text",
|
|
2368
2403
|
"number",
|
|
2369
2404
|
"integer",
|
|
@@ -2371,77 +2406,77 @@ var InteractionFormFieldSchema = z24.object({
|
|
|
2371
2406
|
"select",
|
|
2372
2407
|
"multi-select"
|
|
2373
2408
|
]),
|
|
2374
|
-
required:
|
|
2375
|
-
options:
|
|
2376
|
-
defaultValue:
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2409
|
+
required: z25.boolean(),
|
|
2410
|
+
options: z25.array(z25.string().max(1024)).max(100),
|
|
2411
|
+
defaultValue: z25.union([
|
|
2412
|
+
z25.string().max(4096),
|
|
2413
|
+
z25.number().finite(),
|
|
2414
|
+
z25.boolean(),
|
|
2415
|
+
z25.array(z25.string().max(1024)).max(100)
|
|
2381
2416
|
]).optional(),
|
|
2382
|
-
minimum:
|
|
2383
|
-
maximum:
|
|
2384
|
-
minLength:
|
|
2385
|
-
maxLength:
|
|
2386
|
-
minItems:
|
|
2387
|
-
maxItems:
|
|
2388
|
-
format:
|
|
2417
|
+
minimum: z25.number().finite().optional(),
|
|
2418
|
+
maximum: z25.number().finite().optional(),
|
|
2419
|
+
minLength: z25.number().int().nonnegative().max(1e6).optional(),
|
|
2420
|
+
maxLength: z25.number().int().nonnegative().max(1e6).optional(),
|
|
2421
|
+
minItems: z25.number().int().nonnegative().max(100).optional(),
|
|
2422
|
+
maxItems: z25.number().int().nonnegative().max(100).optional(),
|
|
2423
|
+
format: z25.enum(["email", "uri", "date", "date-time"]).optional()
|
|
2389
2424
|
}).strict();
|
|
2390
|
-
var InteractionPermissionRequestSchema =
|
|
2391
|
-
kind:
|
|
2425
|
+
var InteractionPermissionRequestSchema = z25.object({
|
|
2426
|
+
kind: z25.literal("permission"),
|
|
2392
2427
|
permissionKind: IdSchema,
|
|
2393
|
-
title:
|
|
2394
|
-
description:
|
|
2395
|
-
canApproveSession:
|
|
2396
|
-
canApproveAlways:
|
|
2397
|
-
approvalScope:
|
|
2428
|
+
title: z25.string().trim().min(1).max(256),
|
|
2429
|
+
description: z25.string().max(4096),
|
|
2430
|
+
canApproveSession: z25.boolean(),
|
|
2431
|
+
canApproveAlways: z25.boolean().optional(),
|
|
2432
|
+
approvalScope: z25.string().trim().min(1).max(4096).optional()
|
|
2398
2433
|
}).strict();
|
|
2399
|
-
var InteractionUserInputRequestSchema =
|
|
2400
|
-
kind:
|
|
2401
|
-
question:
|
|
2402
|
-
choices:
|
|
2403
|
-
allowFreeform:
|
|
2434
|
+
var InteractionUserInputRequestSchema = z25.object({
|
|
2435
|
+
kind: z25.literal("user_input"),
|
|
2436
|
+
question: z25.string().trim().min(1).max(4096),
|
|
2437
|
+
choices: z25.array(z25.string().max(1024)).max(100),
|
|
2438
|
+
allowFreeform: z25.boolean()
|
|
2404
2439
|
}).strict();
|
|
2405
|
-
var InteractionElicitationRequestSchema =
|
|
2406
|
-
kind:
|
|
2407
|
-
message:
|
|
2408
|
-
mode:
|
|
2409
|
-
source:
|
|
2410
|
-
url:
|
|
2411
|
-
fields:
|
|
2440
|
+
var InteractionElicitationRequestSchema = z25.object({
|
|
2441
|
+
kind: z25.literal("elicitation"),
|
|
2442
|
+
message: z25.string().trim().min(1).max(4096),
|
|
2443
|
+
mode: z25.enum(["form", "url"]),
|
|
2444
|
+
source: z25.string().trim().min(1).max(256).optional(),
|
|
2445
|
+
url: z25.url().max(32768).optional(),
|
|
2446
|
+
fields: z25.array(InteractionFormFieldSchema).max(100)
|
|
2412
2447
|
}).strict();
|
|
2413
|
-
var InteractionMcpOauthRequestSchema =
|
|
2414
|
-
kind:
|
|
2415
|
-
serverName:
|
|
2416
|
-
serverUrl:
|
|
2417
|
-
reason:
|
|
2418
|
-
responseMode:
|
|
2448
|
+
var InteractionMcpOauthRequestSchema = z25.object({
|
|
2449
|
+
kind: z25.literal("mcp_oauth"),
|
|
2450
|
+
serverName: z25.string().trim().min(1).max(256),
|
|
2451
|
+
serverUrl: z25.url().max(32768),
|
|
2452
|
+
reason: z25.enum(["initial", "refresh", "reauth", "upscope"]),
|
|
2453
|
+
responseMode: z25.literal("cancel-only")
|
|
2419
2454
|
}).strict();
|
|
2420
|
-
var InteractionMcpHeadersRequestSchema =
|
|
2421
|
-
kind:
|
|
2422
|
-
serverName:
|
|
2423
|
-
serverUrl:
|
|
2424
|
-
reason:
|
|
2425
|
-
responseMode:
|
|
2455
|
+
var InteractionMcpHeadersRequestSchema = z25.object({
|
|
2456
|
+
kind: z25.literal("mcp_headers"),
|
|
2457
|
+
serverName: z25.string().trim().min(1).max(256),
|
|
2458
|
+
serverUrl: z25.url().max(32768),
|
|
2459
|
+
reason: z25.string().trim().min(1).max(256),
|
|
2460
|
+
responseMode: z25.literal("none-only")
|
|
2426
2461
|
}).strict();
|
|
2427
|
-
var InteractionAutoModeSwitchRequestSchema =
|
|
2428
|
-
kind:
|
|
2462
|
+
var InteractionAutoModeSwitchRequestSchema = z25.object({
|
|
2463
|
+
kind: z25.literal("auto_mode_switch"),
|
|
2429
2464
|
errorCode: IdSchema.optional(),
|
|
2430
|
-
retryAfterSeconds:
|
|
2465
|
+
retryAfterSeconds: z25.number().int().nonnegative().optional()
|
|
2431
2466
|
}).strict();
|
|
2432
|
-
var InteractionSessionLimitsRequestSchema =
|
|
2433
|
-
kind:
|
|
2434
|
-
maxAiCredits:
|
|
2435
|
-
usedAiCredits:
|
|
2467
|
+
var InteractionSessionLimitsRequestSchema = z25.object({
|
|
2468
|
+
kind: z25.literal("session_limits"),
|
|
2469
|
+
maxAiCredits: z25.number().finite().nonnegative(),
|
|
2470
|
+
usedAiCredits: z25.number().finite().nonnegative()
|
|
2436
2471
|
}).strict();
|
|
2437
|
-
var InteractionExitPlanRequestSchema =
|
|
2438
|
-
kind:
|
|
2439
|
-
summary:
|
|
2440
|
-
planContent:
|
|
2441
|
-
actions:
|
|
2472
|
+
var InteractionExitPlanRequestSchema = z25.object({
|
|
2473
|
+
kind: z25.literal("exit_plan"),
|
|
2474
|
+
summary: z25.string().max(4096),
|
|
2475
|
+
planContent: z25.string().max(1e5).optional(),
|
|
2476
|
+
actions: z25.array(IdSchema).min(1).max(20),
|
|
2442
2477
|
recommendedAction: IdSchema
|
|
2443
2478
|
}).strict();
|
|
2444
|
-
var InteractionRequestSchema =
|
|
2479
|
+
var InteractionRequestSchema = z25.discriminatedUnion("kind", [
|
|
2445
2480
|
InteractionPermissionRequestSchema,
|
|
2446
2481
|
InteractionUserInputRequestSchema,
|
|
2447
2482
|
InteractionElicitationRequestSchema,
|
|
@@ -2451,81 +2486,81 @@ var InteractionRequestSchema = z24.discriminatedUnion("kind", [
|
|
|
2451
2486
|
InteractionSessionLimitsRequestSchema,
|
|
2452
2487
|
InteractionExitPlanRequestSchema
|
|
2453
2488
|
]);
|
|
2454
|
-
var InteractionPermissionResponseSchema =
|
|
2455
|
-
kind:
|
|
2456
|
-
decision:
|
|
2457
|
-
feedback:
|
|
2489
|
+
var InteractionPermissionResponseSchema = z25.object({
|
|
2490
|
+
kind: z25.literal("permission"),
|
|
2491
|
+
decision: z25.enum(["approve-once", "approve-for-session", "approve-always", "reject"]),
|
|
2492
|
+
feedback: z25.string().trim().min(1).max(2048).optional()
|
|
2458
2493
|
}).strict();
|
|
2459
|
-
var InteractionUserInputResponseSchema =
|
|
2460
|
-
kind:
|
|
2461
|
-
answer:
|
|
2462
|
-
wasFreeform:
|
|
2494
|
+
var InteractionUserInputResponseSchema = z25.object({
|
|
2495
|
+
kind: z25.literal("user_input"),
|
|
2496
|
+
answer: z25.string().max(1e5),
|
|
2497
|
+
wasFreeform: z25.boolean()
|
|
2463
2498
|
}).strict();
|
|
2464
|
-
var InteractionFieldValueSchema =
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2499
|
+
var InteractionFieldValueSchema = z25.union([
|
|
2500
|
+
z25.string().max(4096),
|
|
2501
|
+
z25.number(),
|
|
2502
|
+
z25.boolean(),
|
|
2503
|
+
z25.array(z25.string().max(1024)).max(100)
|
|
2469
2504
|
]);
|
|
2470
|
-
var InteractionElicitationResponseSchema =
|
|
2471
|
-
kind:
|
|
2472
|
-
action:
|
|
2473
|
-
values:
|
|
2505
|
+
var InteractionElicitationResponseSchema = z25.object({
|
|
2506
|
+
kind: z25.literal("elicitation"),
|
|
2507
|
+
action: z25.enum(["accept", "decline", "cancel"]),
|
|
2508
|
+
values: z25.record(z25.string().max(256), InteractionFieldValueSchema)
|
|
2474
2509
|
}).strict();
|
|
2475
|
-
var InteractionMcpOauthResponseSchema =
|
|
2476
|
-
kind:
|
|
2477
|
-
action:
|
|
2510
|
+
var InteractionMcpOauthResponseSchema = z25.object({
|
|
2511
|
+
kind: z25.literal("mcp_oauth"),
|
|
2512
|
+
action: z25.literal("cancel")
|
|
2478
2513
|
}).strict();
|
|
2479
|
-
var InteractionMcpHeadersResponseSchema =
|
|
2480
|
-
kind:
|
|
2481
|
-
action:
|
|
2514
|
+
var InteractionMcpHeadersResponseSchema = z25.object({
|
|
2515
|
+
kind: z25.literal("mcp_headers"),
|
|
2516
|
+
action: z25.literal("none")
|
|
2482
2517
|
}).strict();
|
|
2483
|
-
var InteractionAutoModeSwitchResponseSchema =
|
|
2484
|
-
kind:
|
|
2485
|
-
action:
|
|
2518
|
+
var InteractionAutoModeSwitchResponseSchema = z25.object({
|
|
2519
|
+
kind: z25.literal("auto_mode_switch"),
|
|
2520
|
+
action: z25.enum(["yes", "yes_always", "no"])
|
|
2486
2521
|
}).strict();
|
|
2487
|
-
var InteractionSessionLimitsResponseSchema =
|
|
2488
|
-
kind:
|
|
2489
|
-
action:
|
|
2490
|
-
additionalAiCredits:
|
|
2491
|
-
maxAiCredits:
|
|
2522
|
+
var InteractionSessionLimitsResponseSchema = z25.object({
|
|
2523
|
+
kind: z25.literal("session_limits"),
|
|
2524
|
+
action: z25.enum(["add", "set", "unset", "cancel"]),
|
|
2525
|
+
additionalAiCredits: z25.number().positive().optional(),
|
|
2526
|
+
maxAiCredits: z25.number().positive().optional()
|
|
2492
2527
|
}).strict().superRefine((response, context) => {
|
|
2493
2528
|
if (response.action === "add" && response.additionalAiCredits === void 0) {
|
|
2494
2529
|
context.addIssue({
|
|
2495
|
-
code:
|
|
2530
|
+
code: z25.ZodIssueCode.custom,
|
|
2496
2531
|
path: ["additionalAiCredits"],
|
|
2497
2532
|
message: "additionalAiCredits is required for add"
|
|
2498
2533
|
});
|
|
2499
2534
|
}
|
|
2500
2535
|
if (response.action === "set" && response.maxAiCredits === void 0) {
|
|
2501
2536
|
context.addIssue({
|
|
2502
|
-
code:
|
|
2537
|
+
code: z25.ZodIssueCode.custom,
|
|
2503
2538
|
path: ["maxAiCredits"],
|
|
2504
2539
|
message: "maxAiCredits is required for set"
|
|
2505
2540
|
});
|
|
2506
2541
|
}
|
|
2507
2542
|
if (response.action !== "add" && response.additionalAiCredits !== void 0) {
|
|
2508
2543
|
context.addIssue({
|
|
2509
|
-
code:
|
|
2544
|
+
code: z25.ZodIssueCode.custom,
|
|
2510
2545
|
path: ["additionalAiCredits"],
|
|
2511
2546
|
message: "additionalAiCredits is only valid for add"
|
|
2512
2547
|
});
|
|
2513
2548
|
}
|
|
2514
2549
|
if (response.action !== "set" && response.maxAiCredits !== void 0) {
|
|
2515
2550
|
context.addIssue({
|
|
2516
|
-
code:
|
|
2551
|
+
code: z25.ZodIssueCode.custom,
|
|
2517
2552
|
path: ["maxAiCredits"],
|
|
2518
2553
|
message: "maxAiCredits is only valid for set"
|
|
2519
2554
|
});
|
|
2520
2555
|
}
|
|
2521
2556
|
});
|
|
2522
|
-
var InteractionExitPlanResponseSchema =
|
|
2523
|
-
kind:
|
|
2524
|
-
approved:
|
|
2557
|
+
var InteractionExitPlanResponseSchema = z25.object({
|
|
2558
|
+
kind: z25.literal("exit_plan"),
|
|
2559
|
+
approved: z25.boolean(),
|
|
2525
2560
|
selectedAction: IdSchema.optional(),
|
|
2526
|
-
feedback:
|
|
2561
|
+
feedback: z25.string().trim().min(1).max(4096).optional()
|
|
2527
2562
|
}).strict();
|
|
2528
|
-
var InteractionResponseSchema =
|
|
2563
|
+
var InteractionResponseSchema = z25.discriminatedUnion("kind", [
|
|
2529
2564
|
InteractionPermissionResponseSchema,
|
|
2530
2565
|
InteractionUserInputResponseSchema,
|
|
2531
2566
|
InteractionElicitationResponseSchema,
|
|
@@ -2535,30 +2570,30 @@ var InteractionResponseSchema = z24.discriminatedUnion("kind", [
|
|
|
2535
2570
|
InteractionSessionLimitsResponseSchema,
|
|
2536
2571
|
InteractionExitPlanResponseSchema
|
|
2537
2572
|
]);
|
|
2538
|
-
var InteractionRequestPayloadSchema =
|
|
2573
|
+
var InteractionRequestPayloadSchema = z25.object({
|
|
2539
2574
|
interactionRequestId: IdSchema,
|
|
2540
2575
|
userId: IdSchema,
|
|
2541
2576
|
machineId: IdSchema,
|
|
2542
2577
|
sessionId: IdSchema,
|
|
2543
2578
|
request: InteractionRequestSchema
|
|
2544
2579
|
}).strict();
|
|
2545
|
-
var InteractionRespondRequestSchema =
|
|
2580
|
+
var InteractionRespondRequestSchema = z25.object({
|
|
2546
2581
|
requestId: IdSchema,
|
|
2547
2582
|
interactionRequestId: IdSchema,
|
|
2548
2583
|
machineId: IdSchema,
|
|
2549
2584
|
sessionId: IdSchema,
|
|
2550
2585
|
response: InteractionResponseSchema
|
|
2551
2586
|
}).strict();
|
|
2552
|
-
var InteractionRespondResultSchema =
|
|
2553
|
-
|
|
2554
|
-
ok:
|
|
2587
|
+
var InteractionRespondResultSchema = z25.discriminatedUnion("ok", [
|
|
2588
|
+
z25.object({
|
|
2589
|
+
ok: z25.literal(true),
|
|
2555
2590
|
requestId: IdSchema,
|
|
2556
2591
|
interactionRequestId: IdSchema,
|
|
2557
2592
|
machineId: IdSchema,
|
|
2558
2593
|
sessionId: IdSchema
|
|
2559
2594
|
}).strict(),
|
|
2560
|
-
|
|
2561
|
-
ok:
|
|
2595
|
+
z25.object({
|
|
2596
|
+
ok: z25.literal(false),
|
|
2562
2597
|
requestId: IdSchema,
|
|
2563
2598
|
interactionRequestId: IdSchema,
|
|
2564
2599
|
machineId: IdSchema,
|
|
@@ -2566,31 +2601,31 @@ var InteractionRespondResultSchema = z24.discriminatedUnion("ok", [
|
|
|
2566
2601
|
error: ProtocolFailureSchema
|
|
2567
2602
|
}).strict()
|
|
2568
2603
|
]);
|
|
2569
|
-
var PermissionRequestPayloadSchema =
|
|
2604
|
+
var PermissionRequestPayloadSchema = z25.object({
|
|
2570
2605
|
permissionRequestId: IdSchema,
|
|
2571
2606
|
userId: IdSchema,
|
|
2572
2607
|
machineId: IdSchema,
|
|
2573
2608
|
sessionId: IdSchema,
|
|
2574
|
-
request:
|
|
2609
|
+
request: z25.record(z25.string(), z25.unknown())
|
|
2575
2610
|
});
|
|
2576
|
-
var PermissionRespondRequestSchema =
|
|
2611
|
+
var PermissionRespondRequestSchema = z25.object({
|
|
2577
2612
|
requestId: IdSchema,
|
|
2578
2613
|
permissionRequestId: IdSchema,
|
|
2579
2614
|
machineId: IdSchema,
|
|
2580
2615
|
sessionId: IdSchema,
|
|
2581
|
-
decision:
|
|
2582
|
-
feedback:
|
|
2616
|
+
decision: z25.enum(["approve-once", "reject"]),
|
|
2617
|
+
feedback: z25.string().trim().min(1).max(2048).optional()
|
|
2583
2618
|
});
|
|
2584
|
-
var PermissionRespondResultSchema =
|
|
2585
|
-
|
|
2586
|
-
ok:
|
|
2619
|
+
var PermissionRespondResultSchema = z25.discriminatedUnion("ok", [
|
|
2620
|
+
z25.object({
|
|
2621
|
+
ok: z25.literal(true),
|
|
2587
2622
|
requestId: IdSchema,
|
|
2588
2623
|
permissionRequestId: IdSchema,
|
|
2589
2624
|
machineId: IdSchema,
|
|
2590
2625
|
sessionId: IdSchema
|
|
2591
2626
|
}),
|
|
2592
|
-
|
|
2593
|
-
ok:
|
|
2627
|
+
z25.object({
|
|
2628
|
+
ok: z25.literal(false),
|
|
2594
2629
|
requestId: IdSchema,
|
|
2595
2630
|
permissionRequestId: IdSchema,
|
|
2596
2631
|
machineId: IdSchema,
|
|
@@ -2600,42 +2635,42 @@ var PermissionRespondResultSchema = z24.discriminatedUnion("ok", [
|
|
|
2600
2635
|
]);
|
|
2601
2636
|
|
|
2602
2637
|
// ../../shared/protocol/dist/conversation/timeline-sync.js
|
|
2603
|
-
import { z as
|
|
2638
|
+
import { z as z26 } from "zod";
|
|
2604
2639
|
var TIMELINE_SYNC_MAX_EVENTS = 128;
|
|
2605
2640
|
var TIMELINE_SYNC_MAX_BYTES = 6 * 1024 * 1024;
|
|
2606
2641
|
var TIMELINE_IMAGE_CHUNK_BYTES = 48 * 1024;
|
|
2607
2642
|
var TIMELINE_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
|
|
2608
|
-
var identity =
|
|
2609
|
-
var sequence =
|
|
2610
|
-
var hash =
|
|
2611
|
-
var TimelineWatermarkSchema =
|
|
2643
|
+
var identity = z26.string().min(1).max(256);
|
|
2644
|
+
var sequence = z26.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
|
|
2645
|
+
var hash = z26.string().regex(/^[a-f0-9]{64}$/u);
|
|
2646
|
+
var TimelineWatermarkSchema = z26.object({
|
|
2612
2647
|
epoch: identity,
|
|
2613
2648
|
sequence
|
|
2614
2649
|
}).strict();
|
|
2615
|
-
var TimelineSyncRequestSchema =
|
|
2650
|
+
var TimelineSyncRequestSchema = z26.object({
|
|
2616
2651
|
watermark: TimelineWatermarkSchema.optional(),
|
|
2617
|
-
waitMs:
|
|
2618
|
-
resume:
|
|
2652
|
+
waitMs: z26.number().int().min(0).max(2e4).optional(),
|
|
2653
|
+
resume: z26.boolean().optional()
|
|
2619
2654
|
}).strict();
|
|
2620
|
-
var TimelineTextAppendSchema =
|
|
2655
|
+
var TimelineTextAppendSchema = z26.object({
|
|
2621
2656
|
itemId: identity,
|
|
2622
|
-
baseRevision:
|
|
2623
|
-
revision:
|
|
2624
|
-
appendText:
|
|
2625
|
-
sourceEventIds:
|
|
2626
|
-
sourceMessageIds:
|
|
2627
|
-
sourceInteractionIds:
|
|
2657
|
+
baseRevision: z26.number().int().positive(),
|
|
2658
|
+
revision: z26.number().int().positive(),
|
|
2659
|
+
appendText: z26.string().min(1).max(5e5),
|
|
2660
|
+
sourceEventIds: z26.array(identity).min(1).max(1e3).optional(),
|
|
2661
|
+
sourceMessageIds: z26.array(identity).min(1).max(1e3).optional(),
|
|
2662
|
+
sourceInteractionIds: z26.array(identity).min(1).max(1e3).optional()
|
|
2628
2663
|
}).strict();
|
|
2629
|
-
var TimelineSyncEventSchema =
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
kind:
|
|
2664
|
+
var TimelineSyncEventSchema = z26.discriminatedUnion("kind", [
|
|
2665
|
+
z26.object({ kind: z26.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
|
|
2666
|
+
z26.object({ kind: z26.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
|
|
2667
|
+
z26.object({
|
|
2668
|
+
kind: z26.literal("step"),
|
|
2634
2669
|
sequence,
|
|
2635
2670
|
upsert: ConversationActivityStepUpsertSchema
|
|
2636
2671
|
}).strict()
|
|
2637
2672
|
]);
|
|
2638
|
-
var TimelineResyncReasonSchema =
|
|
2673
|
+
var TimelineResyncReasonSchema = z26.enum([
|
|
2639
2674
|
"initial",
|
|
2640
2675
|
"epoch-changed",
|
|
2641
2676
|
"evicted",
|
|
@@ -2644,36 +2679,36 @@ var TimelineResyncReasonSchema = z25.enum([
|
|
|
2644
2679
|
"rewind",
|
|
2645
2680
|
"oversized"
|
|
2646
2681
|
]);
|
|
2647
|
-
var TimelineSyncResponseSchema =
|
|
2648
|
-
|
|
2649
|
-
status:
|
|
2682
|
+
var TimelineSyncResponseSchema = z26.discriminatedUnion("status", [
|
|
2683
|
+
z26.object({
|
|
2684
|
+
status: z26.literal("snapshot"),
|
|
2650
2685
|
watermark: TimelineWatermarkSchema,
|
|
2651
2686
|
page: SessionTimelinePageSchema
|
|
2652
2687
|
}).strict(),
|
|
2653
|
-
|
|
2654
|
-
status:
|
|
2688
|
+
z26.object({
|
|
2689
|
+
status: z26.literal("replay"),
|
|
2655
2690
|
watermark: TimelineWatermarkSchema,
|
|
2656
2691
|
afterSequence: sequence,
|
|
2657
|
-
events:
|
|
2658
|
-
hasMore:
|
|
2692
|
+
events: z26.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
|
|
2693
|
+
hasMore: z26.boolean()
|
|
2659
2694
|
}).strict(),
|
|
2660
|
-
|
|
2661
|
-
status:
|
|
2695
|
+
z26.object({
|
|
2696
|
+
status: z26.literal("resync"),
|
|
2662
2697
|
epoch: identity,
|
|
2663
2698
|
reason: TimelineResyncReasonSchema
|
|
2664
2699
|
}).strict()
|
|
2665
2700
|
]);
|
|
2666
|
-
var TimelineImageRequestSchema =
|
|
2701
|
+
var TimelineImageRequestSchema = z26.object({
|
|
2667
2702
|
sha256: hash,
|
|
2668
|
-
offset:
|
|
2703
|
+
offset: z26.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
|
|
2669
2704
|
}).strict();
|
|
2670
|
-
var TimelineImageChunkSchema =
|
|
2705
|
+
var TimelineImageChunkSchema = z26.object({
|
|
2671
2706
|
sha256: hash,
|
|
2672
|
-
offset:
|
|
2673
|
-
totalBytes:
|
|
2674
|
-
mimeType:
|
|
2675
|
-
data:
|
|
2676
|
-
eof:
|
|
2707
|
+
offset: z26.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
|
|
2708
|
+
totalBytes: z26.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
|
|
2709
|
+
mimeType: z26.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
|
|
2710
|
+
data: z26.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),
|
|
2711
|
+
eof: z26.boolean()
|
|
2677
2712
|
}).strict().superRefine((chunk, context) => {
|
|
2678
2713
|
const padding = chunk.data.endsWith("==") ? 2 : chunk.data.endsWith("=") ? 1 : 0;
|
|
2679
2714
|
const length = chunk.data.length / 4 * 3 - padding;
|
|
@@ -2684,10 +2719,10 @@ var TimelineImageChunkSchema = z25.object({
|
|
|
2684
2719
|
});
|
|
2685
2720
|
|
|
2686
2721
|
// ../../shared/protocol/dist/workbench.js
|
|
2687
|
-
import { z as
|
|
2722
|
+
import { z as z28 } from "zod";
|
|
2688
2723
|
|
|
2689
2724
|
// ../../shared/protocol/dist/schedules.js
|
|
2690
|
-
import { z as
|
|
2725
|
+
import { z as z27 } from "zod";
|
|
2691
2726
|
var SCHEDULE_OPERATIONS = [
|
|
2692
2727
|
"schedule.snapshot",
|
|
2693
2728
|
"schedule.create",
|
|
@@ -2695,90 +2730,90 @@ var SCHEDULE_OPERATIONS = [
|
|
|
2695
2730
|
"schedule.draft.dismiss",
|
|
2696
2731
|
"schedule.resume"
|
|
2697
2732
|
];
|
|
2698
|
-
var Id =
|
|
2699
|
-
var NativeId =
|
|
2700
|
-
var Time =
|
|
2701
|
-
var WorkbenchScheduleRuleSchema =
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
kind:
|
|
2705
|
-
seconds:
|
|
2706
|
-
recurring:
|
|
2733
|
+
var Id = z27.string().min(1).max(256);
|
|
2734
|
+
var NativeId = z27.number().int().positive().max(Number.MAX_SAFE_INTEGER);
|
|
2735
|
+
var Time = z27.iso.datetime({ offset: true });
|
|
2736
|
+
var WorkbenchScheduleRuleSchema = z27.discriminatedUnion("kind", [
|
|
2737
|
+
z27.object({ kind: z27.literal("once"), at: Time }).strict(),
|
|
2738
|
+
z27.object({
|
|
2739
|
+
kind: z27.literal("interval"),
|
|
2740
|
+
seconds: z27.number().int().min(10).max(86400),
|
|
2741
|
+
recurring: z27.boolean().optional()
|
|
2707
2742
|
}).strict(),
|
|
2708
|
-
|
|
2709
|
-
kind:
|
|
2710
|
-
expression:
|
|
2711
|
-
timezone:
|
|
2743
|
+
z27.object({
|
|
2744
|
+
kind: z27.literal("cron"),
|
|
2745
|
+
expression: z27.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
|
|
2746
|
+
timezone: z27.string().min(1).max(128).regex(/^[A-Za-z0-9_+./-]+$/)
|
|
2712
2747
|
}).strict()
|
|
2713
2748
|
]);
|
|
2714
2749
|
var Content = {
|
|
2715
2750
|
rule: WorkbenchScheduleRuleSchema,
|
|
2716
|
-
prompt:
|
|
2717
|
-
skill:
|
|
2751
|
+
prompt: z27.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."),
|
|
2752
|
+
skill: z27.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.")
|
|
2718
2753
|
};
|
|
2719
|
-
var WorkbenchScheduleProposalSchema =
|
|
2720
|
-
var WorkbenchScheduleDraftSchema =
|
|
2721
|
-
id:
|
|
2754
|
+
var WorkbenchScheduleProposalSchema = z27.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
|
|
2755
|
+
var WorkbenchScheduleDraftSchema = z27.object({
|
|
2756
|
+
id: z27.uuid(),
|
|
2722
2757
|
createdAt: Time,
|
|
2723
2758
|
...Content
|
|
2724
2759
|
}).strict();
|
|
2725
|
-
var WorkbenchScheduleEntrySchema =
|
|
2760
|
+
var WorkbenchScheduleEntrySchema = z27.object({
|
|
2726
2761
|
id: NativeId,
|
|
2727
|
-
prompt:
|
|
2728
|
-
displayPrompt:
|
|
2729
|
-
recurring:
|
|
2762
|
+
prompt: z27.string().max(1e5),
|
|
2763
|
+
displayPrompt: z27.string().max(1e5).optional(),
|
|
2764
|
+
recurring: z27.boolean(),
|
|
2730
2765
|
nextRunAt: Time,
|
|
2731
|
-
intervalMs:
|
|
2732
|
-
cron:
|
|
2733
|
-
timezone:
|
|
2766
|
+
intervalMs: z27.number().int().positive().optional(),
|
|
2767
|
+
cron: z27.string().max(256).optional(),
|
|
2768
|
+
timezone: z27.string().max(128).optional(),
|
|
2734
2769
|
at: Time.optional()
|
|
2735
2770
|
}).strict();
|
|
2736
|
-
var WorkbenchScheduleResultSchema =
|
|
2771
|
+
var WorkbenchScheduleResultSchema = z27.object({
|
|
2737
2772
|
id: Id,
|
|
2738
2773
|
scheduleId: NativeId,
|
|
2739
2774
|
triggerEventId: Id,
|
|
2740
2775
|
time: Time,
|
|
2741
|
-
prompt:
|
|
2742
|
-
status:
|
|
2743
|
-
reply:
|
|
2776
|
+
prompt: z27.string().max(16e3),
|
|
2777
|
+
status: z27.enum(["reply", "error", "merged", "pending", "unknown"]),
|
|
2778
|
+
reply: z27.string().max(16e3).optional(),
|
|
2744
2779
|
replyEventId: Id.optional(),
|
|
2745
|
-
error:
|
|
2780
|
+
error: z27.string().max(1024).optional()
|
|
2746
2781
|
}).strict();
|
|
2747
|
-
var WorkbenchScheduleSnapshotSchema =
|
|
2748
|
-
state:
|
|
2749
|
-
workingDirectory:
|
|
2750
|
-
timezone:
|
|
2751
|
-
entries:
|
|
2752
|
-
drafts:
|
|
2753
|
-
results:
|
|
2754
|
-
historyTruncated:
|
|
2782
|
+
var WorkbenchScheduleSnapshotSchema = z27.object({
|
|
2783
|
+
state: z27.enum(["active", "needs-resume"]),
|
|
2784
|
+
workingDirectory: z27.string().max(32768).optional(),
|
|
2785
|
+
timezone: z27.string().max(128).optional(),
|
|
2786
|
+
entries: z27.array(WorkbenchScheduleEntrySchema).max(256),
|
|
2787
|
+
drafts: z27.array(WorkbenchScheduleDraftSchema).max(100),
|
|
2788
|
+
results: z27.array(WorkbenchScheduleResultSchema).max(100),
|
|
2789
|
+
historyTruncated: z27.boolean(),
|
|
2755
2790
|
sampledAt: Time
|
|
2756
2791
|
}).strict();
|
|
2757
2792
|
var Submission = {
|
|
2758
|
-
operationId:
|
|
2759
|
-
operationCreatedAt:
|
|
2793
|
+
operationId: z27.uuid(),
|
|
2794
|
+
operationCreatedAt: z27.iso.datetime(),
|
|
2760
2795
|
expectedAgentRunId: Id
|
|
2761
2796
|
};
|
|
2762
|
-
var WorkbenchScheduleCreateRequestSchema =
|
|
2797
|
+
var WorkbenchScheduleCreateRequestSchema = z27.object({
|
|
2763
2798
|
...Submission,
|
|
2764
2799
|
...Content,
|
|
2765
|
-
draftId:
|
|
2800
|
+
draftId: z27.uuid().optional()
|
|
2766
2801
|
}).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
|
|
2767
|
-
var WorkbenchScheduleCreateResultSchema =
|
|
2802
|
+
var WorkbenchScheduleCreateResultSchema = z27.object({
|
|
2768
2803
|
snapshot: WorkbenchScheduleSnapshotSchema,
|
|
2769
|
-
verified:
|
|
2804
|
+
verified: z27.boolean()
|
|
2770
2805
|
}).strict();
|
|
2771
|
-
var WorkbenchScheduleDeleteRequestSchema =
|
|
2806
|
+
var WorkbenchScheduleDeleteRequestSchema = z27.object({
|
|
2772
2807
|
...Submission,
|
|
2773
2808
|
id: NativeId
|
|
2774
2809
|
}).strict();
|
|
2775
|
-
var WorkbenchScheduleDeleteResultSchema =
|
|
2810
|
+
var WorkbenchScheduleDeleteResultSchema = z27.object({
|
|
2776
2811
|
snapshot: WorkbenchScheduleSnapshotSchema,
|
|
2777
|
-
removed:
|
|
2812
|
+
removed: z27.boolean()
|
|
2778
2813
|
}).strict();
|
|
2779
|
-
var WorkbenchScheduleDraftDismissRequestSchema =
|
|
2814
|
+
var WorkbenchScheduleDraftDismissRequestSchema = z27.object({
|
|
2780
2815
|
...Submission,
|
|
2781
|
-
draftId:
|
|
2816
|
+
draftId: z27.uuid()
|
|
2782
2817
|
}).strict();
|
|
2783
2818
|
var ScheduleAndroidSchemas = {
|
|
2784
2819
|
WorkbenchScheduleRule: WorkbenchScheduleRuleSchema,
|
|
@@ -2795,10 +2830,10 @@ var ScheduleAndroidSchemas = {
|
|
|
2795
2830
|
};
|
|
2796
2831
|
|
|
2797
2832
|
// ../../shared/protocol/dist/workbench.js
|
|
2798
|
-
var Id2 =
|
|
2799
|
-
var Text =
|
|
2800
|
-
var Count =
|
|
2801
|
-
var Failure =
|
|
2833
|
+
var Id2 = z28.string().trim().min(1).max(256);
|
|
2834
|
+
var Text = z28.string().max(1e5);
|
|
2835
|
+
var Count = z28.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
|
|
2836
|
+
var Failure = z28.object({ code: Id2, message: z28.string().min(1).max(1024) }).strict();
|
|
2802
2837
|
var WORKBENCH_OPERATIONS = [
|
|
2803
2838
|
"operation.get",
|
|
2804
2839
|
"question.ask",
|
|
@@ -2817,104 +2852,104 @@ var WORKBENCH_OPERATIONS = [
|
|
|
2817
2852
|
...SCHEDULE_OPERATIONS
|
|
2818
2853
|
];
|
|
2819
2854
|
var Submission2 = {
|
|
2820
|
-
operationId:
|
|
2821
|
-
operationCreatedAt:
|
|
2855
|
+
operationId: z28.uuid(),
|
|
2856
|
+
operationCreatedAt: z28.iso.datetime(),
|
|
2822
2857
|
expectedAgentRunId: Id2
|
|
2823
2858
|
};
|
|
2824
|
-
var WorkbenchOperationGetSchema =
|
|
2825
|
-
var WorkbenchOperationStatusSchema =
|
|
2826
|
-
operationId:
|
|
2827
|
-
operation:
|
|
2859
|
+
var WorkbenchOperationGetSchema = z28.object({ operationId: z28.uuid() }).strict();
|
|
2860
|
+
var WorkbenchOperationStatusSchema = z28.object({
|
|
2861
|
+
operationId: z28.uuid(),
|
|
2862
|
+
operation: z28.enum(WORKBENCH_OPERATIONS),
|
|
2828
2863
|
agentRunId: Id2,
|
|
2829
|
-
state:
|
|
2830
|
-
result:
|
|
2864
|
+
state: z28.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
|
|
2865
|
+
result: z28.record(z28.string(), z28.json()).optional(),
|
|
2831
2866
|
error: Failure.optional()
|
|
2832
2867
|
}).strict().superRefine((value, context) => {
|
|
2833
2868
|
if (value.state === "succeeded" !== (value.result !== void 0) || (value.state === "failed" || value.state === "uncertain") !== (value.error !== void 0)) {
|
|
2834
2869
|
context.addIssue({ code: "custom", message: "Invalid operation state payload" });
|
|
2835
2870
|
}
|
|
2836
2871
|
});
|
|
2837
|
-
var WorkbenchAskRequestSchema =
|
|
2872
|
+
var WorkbenchAskRequestSchema = z28.object({
|
|
2838
2873
|
...Submission2,
|
|
2839
|
-
question:
|
|
2874
|
+
question: z28.string().trim().min(1).max(16e3)
|
|
2840
2875
|
}).strict();
|
|
2841
|
-
var WorkbenchAskResultSchema =
|
|
2842
|
-
var WorkbenchEmptyRequestSchema =
|
|
2843
|
-
var WorkbenchSubmitRequestSchema =
|
|
2844
|
-
var WorkbenchResearchCreateRequestSchema =
|
|
2876
|
+
var WorkbenchAskResultSchema = z28.object({ answer: Text }).strict();
|
|
2877
|
+
var WorkbenchEmptyRequestSchema = z28.object({}).strict();
|
|
2878
|
+
var WorkbenchSubmitRequestSchema = z28.object(Submission2).strict();
|
|
2879
|
+
var WorkbenchResearchCreateRequestSchema = z28.object({
|
|
2845
2880
|
...Submission2,
|
|
2846
|
-
title:
|
|
2847
|
-
question:
|
|
2881
|
+
title: z28.string().trim().min(1).max(120),
|
|
2882
|
+
question: z28.string().trim().min(1).max(16e3),
|
|
2848
2883
|
sourceItemId: Id2.optional(),
|
|
2849
|
-
deferInitialPrompt:
|
|
2884
|
+
deferInitialPrompt: z28.literal(true).optional()
|
|
2850
2885
|
}).strict();
|
|
2851
|
-
var WorkbenchResearchThreadSchema =
|
|
2886
|
+
var WorkbenchResearchThreadSchema = z28.object({
|
|
2852
2887
|
sessionId: Id2,
|
|
2853
2888
|
parentSessionId: Id2,
|
|
2854
|
-
title:
|
|
2855
|
-
createdAt:
|
|
2889
|
+
title: z28.string().min(1).max(120),
|
|
2890
|
+
createdAt: z28.iso.datetime(),
|
|
2856
2891
|
contextAnchor: Id2.optional(),
|
|
2857
|
-
contextTruncated:
|
|
2858
|
-
detached:
|
|
2859
|
-
state:
|
|
2892
|
+
contextTruncated: z28.boolean(),
|
|
2893
|
+
detached: z28.boolean(),
|
|
2894
|
+
state: z28.enum(["creating", "ready", "failed"])
|
|
2860
2895
|
}).strict();
|
|
2861
|
-
var WorkbenchResearchCreateResultSchema =
|
|
2896
|
+
var WorkbenchResearchCreateResultSchema = z28.object({
|
|
2862
2897
|
thread: WorkbenchResearchThreadSchema
|
|
2863
2898
|
}).strict();
|
|
2864
|
-
var WorkbenchResearchListResultSchema =
|
|
2865
|
-
threads:
|
|
2899
|
+
var WorkbenchResearchListResultSchema = z28.object({
|
|
2900
|
+
threads: z28.array(WorkbenchResearchThreadSchema).max(100)
|
|
2866
2901
|
}).strict();
|
|
2867
|
-
var WorkbenchResearchTimelineRequestSchema =
|
|
2902
|
+
var WorkbenchResearchTimelineRequestSchema = z28.object({
|
|
2868
2903
|
cursor: Id2.optional()
|
|
2869
2904
|
}).strict();
|
|
2870
|
-
var WorkbenchResearchSendRequestSchema =
|
|
2905
|
+
var WorkbenchResearchSendRequestSchema = z28.object({
|
|
2871
2906
|
...Submission2,
|
|
2872
|
-
prompt:
|
|
2907
|
+
prompt: z28.string().trim().min(1).max(16e3)
|
|
2873
2908
|
}).strict();
|
|
2874
|
-
var WorkbenchResearchSendResultSchema =
|
|
2875
|
-
var WorkbenchCompletedResultSchema =
|
|
2876
|
-
var WorkbenchCommandSchema =
|
|
2877
|
-
name:
|
|
2878
|
-
description:
|
|
2879
|
-
argumentHint:
|
|
2880
|
-
kind:
|
|
2881
|
-
allowDuringExecution:
|
|
2882
|
-
supported:
|
|
2883
|
-
reason:
|
|
2909
|
+
var WorkbenchResearchSendResultSchema = z28.object({ messageId: Id2 }).strict();
|
|
2910
|
+
var WorkbenchCompletedResultSchema = z28.object({ completed: z28.boolean() }).strict();
|
|
2911
|
+
var WorkbenchCommandSchema = z28.object({
|
|
2912
|
+
name: z28.string().min(1).max(260),
|
|
2913
|
+
description: z28.string().max(4096),
|
|
2914
|
+
argumentHint: z28.string().max(1024).optional(),
|
|
2915
|
+
kind: z28.enum(["builtin", "skill", "client"]),
|
|
2916
|
+
allowDuringExecution: z28.boolean(),
|
|
2917
|
+
supported: z28.boolean(),
|
|
2918
|
+
reason: z28.string().max(1024).optional()
|
|
2884
2919
|
}).strict();
|
|
2885
|
-
var WorkbenchCommandListResultSchema =
|
|
2886
|
-
commands:
|
|
2920
|
+
var WorkbenchCommandListResultSchema = z28.object({
|
|
2921
|
+
commands: z28.array(WorkbenchCommandSchema).max(512)
|
|
2887
2922
|
}).strict();
|
|
2888
|
-
var WorkbenchCommandInvokeRequestSchema =
|
|
2923
|
+
var WorkbenchCommandInvokeRequestSchema = z28.object({
|
|
2889
2924
|
...Submission2,
|
|
2890
|
-
name:
|
|
2891
|
-
input:
|
|
2925
|
+
name: z28.string().trim().min(1).max(260),
|
|
2926
|
+
input: z28.string().max(16e3)
|
|
2892
2927
|
}).strict();
|
|
2893
|
-
var WorkbenchCommandChoiceSchema =
|
|
2894
|
-
name:
|
|
2895
|
-
label:
|
|
2896
|
-
input:
|
|
2928
|
+
var WorkbenchCommandChoiceSchema = z28.object({
|
|
2929
|
+
name: z28.string().min(1).max(260),
|
|
2930
|
+
label: z28.string().min(1).max(1024),
|
|
2931
|
+
input: z28.string().max(16e3)
|
|
2897
2932
|
}).strict();
|
|
2898
|
-
var WorkbenchCommandResultSchema =
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
kind:
|
|
2904
|
-
choices:
|
|
2933
|
+
var WorkbenchCommandResultSchema = z28.discriminatedUnion("kind", [
|
|
2934
|
+
z28.object({ kind: z28.literal("text"), text: Text }).strict(),
|
|
2935
|
+
z28.object({ kind: z28.literal("completed") }).strict(),
|
|
2936
|
+
z28.object({ kind: z28.literal("sent"), messageId: Id2 }).strict(),
|
|
2937
|
+
z28.object({
|
|
2938
|
+
kind: z28.literal("select-subcommand"),
|
|
2939
|
+
choices: z28.array(WorkbenchCommandChoiceSchema).min(1).max(100)
|
|
2905
2940
|
}).strict()
|
|
2906
2941
|
]);
|
|
2907
|
-
var WorkbenchQueueItemSchema =
|
|
2942
|
+
var WorkbenchQueueItemSchema = z28.object({
|
|
2908
2943
|
id: Id2,
|
|
2909
|
-
kind:
|
|
2910
|
-
texts:
|
|
2911
|
-
actions:
|
|
2944
|
+
kind: z28.string().min(1).max(64),
|
|
2945
|
+
texts: z28.array(z28.string().max(1e5)).min(1).max(100),
|
|
2946
|
+
actions: z28.array(z28.enum(["edit", "remove", "move", "send-now"])).max(4)
|
|
2912
2947
|
}).strict();
|
|
2913
|
-
var WorkbenchQueueSnapshotSchema =
|
|
2948
|
+
var WorkbenchQueueSnapshotSchema = z28.object({
|
|
2914
2949
|
generation: Id2,
|
|
2915
2950
|
revision: Id2,
|
|
2916
|
-
items:
|
|
2917
|
-
steeringMessages:
|
|
2951
|
+
items: z28.array(WorkbenchQueueItemSchema).max(512),
|
|
2952
|
+
steeringMessages: z28.array(z28.string().max(1e5)).max(512)
|
|
2918
2953
|
}).strict();
|
|
2919
2954
|
var QueueMutation = {
|
|
2920
2955
|
...Submission2,
|
|
@@ -2922,48 +2957,48 @@ var QueueMutation = {
|
|
|
2922
2957
|
revision: Id2,
|
|
2923
2958
|
id: Id2
|
|
2924
2959
|
};
|
|
2925
|
-
var WorkbenchQueueMutationRequestSchema =
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2960
|
+
var WorkbenchQueueMutationRequestSchema = z28.discriminatedUnion("action", [
|
|
2961
|
+
z28.object({ ...QueueMutation, action: z28.literal("edit"), prompt: z28.string().trim().min(1).max(1e5) }).strict(),
|
|
2962
|
+
z28.object({ ...QueueMutation, action: z28.literal("remove") }).strict(),
|
|
2963
|
+
z28.object({ ...QueueMutation, action: z28.literal("move"), toPosition: z28.number().int().min(0).max(511) }).strict(),
|
|
2964
|
+
z28.object({ ...QueueMutation, action: z28.literal("send-now") }).strict()
|
|
2930
2965
|
]);
|
|
2931
|
-
var WorkbenchQueueMutationResultSchema =
|
|
2932
|
-
changed:
|
|
2966
|
+
var WorkbenchQueueMutationResultSchema = z28.object({
|
|
2967
|
+
changed: z28.boolean(),
|
|
2933
2968
|
snapshot: WorkbenchQueueSnapshotSchema
|
|
2934
2969
|
}).strict();
|
|
2935
|
-
var WorkbenchTokenMetricSchema =
|
|
2936
|
-
kind:
|
|
2970
|
+
var WorkbenchTokenMetricSchema = z28.object({
|
|
2971
|
+
kind: z28.string().min(1).max(128),
|
|
2937
2972
|
count: Count
|
|
2938
2973
|
}).strict();
|
|
2939
|
-
var WorkbenchModelUsageSchema =
|
|
2974
|
+
var WorkbenchModelUsageSchema = z28.object({
|
|
2940
2975
|
model: Id2,
|
|
2941
2976
|
requests: Count,
|
|
2942
|
-
premiumRequestCost:
|
|
2943
|
-
tokens:
|
|
2977
|
+
premiumRequestCost: z28.number().finite().nonnegative(),
|
|
2978
|
+
tokens: z28.array(WorkbenchTokenMetricSchema).max(32)
|
|
2944
2979
|
}).strict();
|
|
2945
|
-
var WorkbenchContextSchema =
|
|
2980
|
+
var WorkbenchContextSchema = z28.object({
|
|
2946
2981
|
currentTokens: Count,
|
|
2947
2982
|
tokenLimit: Count,
|
|
2948
2983
|
systemTokens: Count.optional(),
|
|
2949
2984
|
conversationTokens: Count.optional(),
|
|
2950
2985
|
toolTokens: Count.optional()
|
|
2951
2986
|
}).strict();
|
|
2952
|
-
var WorkbenchInsightsSchema =
|
|
2953
|
-
sampledAt:
|
|
2987
|
+
var WorkbenchInsightsSchema = z28.object({
|
|
2988
|
+
sampledAt: z28.iso.datetime(),
|
|
2954
2989
|
generation: Id2,
|
|
2955
2990
|
model: Id2.optional(),
|
|
2956
2991
|
totalUserRequests: Count,
|
|
2957
|
-
premiumRequestCost:
|
|
2958
|
-
nanoAiu:
|
|
2959
|
-
tokens:
|
|
2960
|
-
models:
|
|
2992
|
+
premiumRequestCost: z28.number().finite().nonnegative(),
|
|
2993
|
+
nanoAiu: z28.string().regex(/^\d+$/).max(40).optional(),
|
|
2994
|
+
tokens: z28.array(WorkbenchTokenMetricSchema).max(32),
|
|
2995
|
+
models: z28.array(WorkbenchModelUsageSchema).max(100),
|
|
2961
2996
|
context: WorkbenchContextSchema.optional(),
|
|
2962
|
-
canCompact:
|
|
2963
|
-
compactUnavailableReason:
|
|
2997
|
+
canCompact: z28.boolean(),
|
|
2998
|
+
compactUnavailableReason: z28.string().max(1024).optional()
|
|
2964
2999
|
}).strict();
|
|
2965
|
-
var WorkbenchCompactResultSchema =
|
|
2966
|
-
success:
|
|
3000
|
+
var WorkbenchCompactResultSchema = z28.object({
|
|
3001
|
+
success: z28.boolean(),
|
|
2967
3002
|
tokensRemoved: Count,
|
|
2968
3003
|
messagesRemoved: Count
|
|
2969
3004
|
}).strict();
|
|
@@ -2999,6 +3034,8 @@ var WorkbenchAndroidSchemas = {
|
|
|
2999
3034
|
|
|
3000
3035
|
// ../../shared/protocol/dist/codegen/android-schemas.js
|
|
3001
3036
|
var AndroidProtocolSchemas = {
|
|
3037
|
+
BrowserOpenUrlParams: BrowserOpenUrlParamsSchema,
|
|
3038
|
+
BrowserOpenUrlResult: BrowserOpenUrlResultSchema,
|
|
3002
3039
|
TimelineImageBlobRequest: TimelineImageBlobRequestSchema,
|
|
3003
3040
|
TimelineImageBlobResult: TimelineImageBlobResultSchema,
|
|
3004
3041
|
SessionImageUploadRequest: SessionImageUploadRequestSchema,
|
|
@@ -3010,8 +3047,9 @@ var AndroidProtocolSchemas = {
|
|
|
3010
3047
|
...ScheduleAndroidSchemas,
|
|
3011
3048
|
SessionCommunication: SessionCommunicationSchema,
|
|
3012
3049
|
SessionGitDiffData: SessionGitDiffDataSchema,
|
|
3013
|
-
SessionGitDiffEntry:
|
|
3014
|
-
SessionGitDiffResultData:
|
|
3050
|
+
SessionGitDiffEntry: SessionGitDiffPartialEntrySchema,
|
|
3051
|
+
SessionGitDiffResultData: SessionGitDiffPartialResultDataSchema,
|
|
3052
|
+
SessionGitDiffFileError: SessionGitDiffFileErrorSchema,
|
|
3015
3053
|
SessionGitDiffGzipResultData: SessionGitDiffGzipResultDataSchema,
|
|
3016
3054
|
SessionRenameData: SessionRenameDataSchema,
|
|
3017
3055
|
SessionRenameResultData: SessionRenameResultDataSchema,
|
|
@@ -3117,49 +3155,49 @@ import {
|
|
|
3117
3155
|
SessionImageRelayUrlSchema,
|
|
3118
3156
|
SessionImagesConfigSchema
|
|
3119
3157
|
} from "@agentknight/sdk";
|
|
3120
|
-
var BooleanStringSchema =
|
|
3121
|
-
var EnabledBooleanStringSchema =
|
|
3122
|
-
var OptionalPathSchema =
|
|
3158
|
+
var BooleanStringSchema = z29.enum(["true", "false"]).default("false").transform((value) => value === "true");
|
|
3159
|
+
var EnabledBooleanStringSchema = z29.enum(["true", "false"]).default("true").transform((value) => value === "true");
|
|
3160
|
+
var OptionalPathSchema = z29.preprocess(
|
|
3123
3161
|
(value) => typeof value === "string" && value.trim() === "" ? void 0 : value,
|
|
3124
|
-
|
|
3162
|
+
z29.string().trim().min(1).optional()
|
|
3125
3163
|
);
|
|
3126
|
-
var AcpArgumentsSchema =
|
|
3164
|
+
var AcpArgumentsSchema = z29.string().default("[]").transform((value, context) => {
|
|
3127
3165
|
let decoded;
|
|
3128
3166
|
try {
|
|
3129
3167
|
decoded = JSON.parse(value);
|
|
3130
3168
|
} catch (error) {
|
|
3131
3169
|
if (!(error instanceof SyntaxError)) throw error;
|
|
3132
3170
|
context.addIssue({ code: "custom", message: "AGENTKNIGHT_ACP_ARGS must be a JSON array of strings" });
|
|
3133
|
-
return
|
|
3171
|
+
return z29.NEVER;
|
|
3134
3172
|
}
|
|
3135
|
-
const parsed =
|
|
3173
|
+
const parsed = z29.array(z29.string()).max(128).safeParse(decoded);
|
|
3136
3174
|
if (!parsed.success) {
|
|
3137
3175
|
context.addIssue({ code: "custom", message: "AGENTKNIGHT_ACP_ARGS must be a JSON array of strings" });
|
|
3138
|
-
return
|
|
3176
|
+
return z29.NEVER;
|
|
3139
3177
|
}
|
|
3140
3178
|
return parsed.data;
|
|
3141
3179
|
});
|
|
3142
|
-
var EnvironmentSchema =
|
|
3143
|
-
RELAY_URL:
|
|
3144
|
-
RELAY_TOKEN:
|
|
3145
|
-
RELAY_AUTH:
|
|
3146
|
-
USER_ID:
|
|
3147
|
-
AGENTKNIGHT_MACHINE_NAME:
|
|
3148
|
-
AGENTKNIGHT_HOME:
|
|
3149
|
-
AGENTKNIGHT_WORKSPACE_ROOT:
|
|
3150
|
-
AGENTKNIGHT_CODING_AGENT:
|
|
3180
|
+
var EnvironmentSchema = z29.object({
|
|
3181
|
+
RELAY_URL: z29.url(),
|
|
3182
|
+
RELAY_TOKEN: z29.string().min(24).optional(),
|
|
3183
|
+
RELAY_AUTH: z29.enum(["token", "microsoft"]).optional(),
|
|
3184
|
+
USER_ID: z29.string().trim().min(1).max(256).default("admin"),
|
|
3185
|
+
AGENTKNIGHT_MACHINE_NAME: z29.string().trim().min(1).max(120).optional(),
|
|
3186
|
+
AGENTKNIGHT_HOME: z29.string().trim().min(1).optional(),
|
|
3187
|
+
AGENTKNIGHT_WORKSPACE_ROOT: z29.string().trim().min(1).optional(),
|
|
3188
|
+
AGENTKNIGHT_CODING_AGENT: z29.enum(["managed", ...CODING_AGENT_IDS2]).default("managed"),
|
|
3151
3189
|
AGENTKNIGHT_GROUP_CHAT_ENABLED: EnabledBooleanStringSchema,
|
|
3152
3190
|
AGENTKNIGHT_PEER_CHAT_ENABLED: EnabledBooleanStringSchema,
|
|
3153
3191
|
PI_CODING_AGENT_DIR: OptionalPathSchema,
|
|
3154
3192
|
AGENTKNIGHT_CODEX_COMMAND: OptionalPathSchema,
|
|
3155
3193
|
AGENTKNIGHT_ACP_COMMAND: OptionalPathSchema,
|
|
3156
3194
|
AGENTKNIGHT_ACP_ARGS: AcpArgumentsSchema,
|
|
3157
|
-
SESSION_REFRESH_INTERVAL_MS:
|
|
3158
|
-
HEARTBEAT_INTERVAL_MS:
|
|
3159
|
-
LOG_LEVEL:
|
|
3195
|
+
SESSION_REFRESH_INTERVAL_MS: z29.coerce.number().int().min(5e3).max(36e5).default(3e4),
|
|
3196
|
+
HEARTBEAT_INTERVAL_MS: z29.coerce.number().int().min(5e3).max(12e4).default(15e3),
|
|
3197
|
+
LOG_LEVEL: z29.enum(["fatal", "error", "warn", "info", "debug", "trace", "silent"]).default("info"),
|
|
3160
3198
|
SHOW_PAIRING_QR: BooleanStringSchema,
|
|
3161
3199
|
PAIRING_PAGE_ENABLED: EnabledBooleanStringSchema,
|
|
3162
|
-
PAIRING_PAGE_PORT:
|
|
3200
|
+
PAIRING_PAGE_PORT: z29.coerce.number().int().min(1024).max(65535).default(defaultPairingPagePort),
|
|
3163
3201
|
PC_AGENT_EXIT_AFTER_SNAPSHOT: BooleanStringSchema,
|
|
3164
3202
|
SNAPSHOT_SUPPRESSION_ENABLED: EnabledBooleanStringSchema,
|
|
3165
3203
|
TIMELINE_COMPRESSION_ENABLED: BooleanStringSchema,
|
|
@@ -3167,7 +3205,7 @@ var EnvironmentSchema = z28.object({
|
|
|
3167
3205
|
SESSION_IMAGES_ALLOW_UNENCRYPTED_STORAGE: EnabledBooleanStringSchema,
|
|
3168
3206
|
SESSION_IMAGES_STORAGE_ACCOUNT: SessionImagesConfigSchema.shape.storageAccount.default("agentknightimagesbsp09"),
|
|
3169
3207
|
SESSION_IMAGES_STORAGE_CONTAINER: SessionImagesConfigSchema.shape.storageContainer.optional(),
|
|
3170
|
-
SECURE_MESSAGE_PACKET_BUDGET:
|
|
3208
|
+
SECURE_MESSAGE_PACKET_BUDGET: z29.coerce.number().int().min(2048).max(SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH).default(SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH)
|
|
3171
3209
|
}).superRefine((value, context) => {
|
|
3172
3210
|
if (value.SESSION_IMAGES_ALLOW_UNENCRYPTED_STORAGE) {
|
|
3173
3211
|
if (!SessionImageRelayUrlSchema.safeParse(value.RELAY_URL).success) {
|
|
@@ -3235,8 +3273,8 @@ function loadConfig(environment = process.env, options = {}) {
|
|
|
3235
3273
|
}
|
|
3236
3274
|
return {
|
|
3237
3275
|
...settings2,
|
|
3238
|
-
relayToken:
|
|
3239
|
-
userId:
|
|
3276
|
+
relayToken: z29.string().min(32).max(4096).parse(options.relayCredential.token),
|
|
3277
|
+
userId: z29.string().min(1).max(256).parse(options.relayCredential.user.userId)
|
|
3240
3278
|
};
|
|
3241
3279
|
}
|
|
3242
3280
|
function loadStartupConfig(environment = process.env, options = {}) {
|
|
@@ -4418,7 +4456,7 @@ import { createHash as createHash3, randomBytes as randomBytes2, timingSafeEqual
|
|
|
4418
4456
|
import { createHash as createHash2 } from "node:crypto";
|
|
4419
4457
|
import { platform } from "node:os";
|
|
4420
4458
|
import { brotliCompressSync, brotliDecompressSync } from "node:zlib";
|
|
4421
|
-
import { z as
|
|
4459
|
+
import { z as z30 } from "zod";
|
|
4422
4460
|
var STORE_MESSAGES = {
|
|
4423
4461
|
unavailable: "Unlock your operating system credential store and restart AgentKnight. No file-based credential fallback is available.",
|
|
4424
4462
|
invalid: "The saved Relay credential is invalid. Recover it in your operating system credential manager before signing in.",
|
|
@@ -4451,30 +4489,30 @@ function normalizeRelayOrigin(value) {
|
|
|
4451
4489
|
throw new RelayCredentialStoreError("address");
|
|
4452
4490
|
}
|
|
4453
4491
|
}
|
|
4454
|
-
var ConfirmationSchema =
|
|
4455
|
-
|
|
4456
|
-
status:
|
|
4457
|
-
confirmBy:
|
|
4492
|
+
var ConfirmationSchema = z30.discriminatedUnion("status", [
|
|
4493
|
+
z30.object({
|
|
4494
|
+
status: z30.literal("pending"),
|
|
4495
|
+
confirmBy: z30.number().int().positive(),
|
|
4458
4496
|
enrollmentId: PcEnrollmentIdSchema,
|
|
4459
4497
|
verifier: PcEnrollmentVerifierRequestSchema.shape.verifier
|
|
4460
4498
|
}).strict(),
|
|
4461
|
-
|
|
4462
|
-
status:
|
|
4463
|
-
confirmBy:
|
|
4499
|
+
z30.object({
|
|
4500
|
+
status: z30.literal("confirmed"),
|
|
4501
|
+
confirmBy: z30.number().int().positive()
|
|
4464
4502
|
}).strict()
|
|
4465
4503
|
]);
|
|
4466
|
-
var RelayCredentialSchema =
|
|
4467
|
-
version:
|
|
4468
|
-
relayUrl:
|
|
4504
|
+
var RelayCredentialSchema = z30.object({
|
|
4505
|
+
version: z30.literal(1),
|
|
4506
|
+
relayUrl: z30.string().max(2048),
|
|
4469
4507
|
machineId: PcEnrollmentStartRequestSchema.shape.machineId,
|
|
4470
|
-
token:
|
|
4471
|
-
tokenId:
|
|
4472
|
-
grantId:
|
|
4508
|
+
token: z30.string().min(32).max(4096),
|
|
4509
|
+
tokenId: z30.string().min(1).max(256),
|
|
4510
|
+
grantId: z30.uuid(),
|
|
4473
4511
|
user: AuthUserSchema,
|
|
4474
4512
|
confirmation: ConfirmationSchema
|
|
4475
4513
|
}).strict();
|
|
4476
|
-
var SlotsSchema =
|
|
4477
|
-
version:
|
|
4514
|
+
var SlotsSchema = z30.object({
|
|
4515
|
+
version: z30.literal(1),
|
|
4478
4516
|
pending: RelayCredentialSchema.optional(),
|
|
4479
4517
|
confirmed: RelayCredentialSchema.optional()
|
|
4480
4518
|
}).strict();
|
|
@@ -5360,7 +5398,7 @@ import { mkdtemp, rm as rm2 } from "node:fs/promises";
|
|
|
5360
5398
|
import { createConnection, createServer as createServer2 } from "node:net";
|
|
5361
5399
|
import { tmpdir } from "node:os";
|
|
5362
5400
|
import { join as join4, resolve as resolve3 } from "node:path";
|
|
5363
|
-
import { z as
|
|
5401
|
+
import { z as z32 } from "zod";
|
|
5364
5402
|
import { DataDirectoryLease } from "@agentknight/sdk/runtime";
|
|
5365
5403
|
import {
|
|
5366
5404
|
PEER_CHAT_TIMEOUT_MS,
|
|
@@ -5372,16 +5410,16 @@ import {
|
|
|
5372
5410
|
import { randomUUID } from "node:crypto";
|
|
5373
5411
|
import { mkdir as mkdir2, readFile as readFile2, rename, rm, writeFile as writeFile2 } from "node:fs/promises";
|
|
5374
5412
|
import { dirname as dirname2, join as join3 } from "node:path";
|
|
5375
|
-
import { z as
|
|
5376
|
-
var UpgradeStateSchema =
|
|
5377
|
-
id:
|
|
5378
|
-
phase:
|
|
5379
|
-
fromVersion:
|
|
5380
|
-
toVersion:
|
|
5381
|
-
updatedAt:
|
|
5382
|
-
error:
|
|
5413
|
+
import { z as z31 } from "zod";
|
|
5414
|
+
var UpgradeStateSchema = z31.object({
|
|
5415
|
+
id: z31.uuid(),
|
|
5416
|
+
phase: z31.enum(["preparing", "ready", "waiting-idle", "switching", "verifying", "succeeded", "rolled-back", "failed"]),
|
|
5417
|
+
fromVersion: z31.string(),
|
|
5418
|
+
toVersion: z31.string(),
|
|
5419
|
+
updatedAt: z31.iso.datetime(),
|
|
5420
|
+
error: z31.string().optional()
|
|
5383
5421
|
});
|
|
5384
|
-
var UpgradeSuccessSchema =
|
|
5422
|
+
var UpgradeSuccessSchema = z31.object({ version: z31.string(), upgradedAt: z31.iso.datetime() });
|
|
5385
5423
|
async function readOptionalJson(path) {
|
|
5386
5424
|
try {
|
|
5387
5425
|
return JSON.parse(await readFile2(path, "utf8"));
|
|
@@ -5411,39 +5449,39 @@ async function readLastUpgrade(directory) {
|
|
|
5411
5449
|
}
|
|
5412
5450
|
|
|
5413
5451
|
// src/runtime.ts
|
|
5414
|
-
var RuntimeDescriptorSchema =
|
|
5415
|
-
pid:
|
|
5416
|
-
instanceId:
|
|
5417
|
-
endpoint:
|
|
5418
|
-
token:
|
|
5419
|
-
upgradeId:
|
|
5452
|
+
var RuntimeDescriptorSchema = z32.object({
|
|
5453
|
+
pid: z32.number().int().positive(),
|
|
5454
|
+
instanceId: z32.uuid(),
|
|
5455
|
+
endpoint: z32.string().min(1),
|
|
5456
|
+
token: z32.string().min(32),
|
|
5457
|
+
upgradeId: z32.uuid().optional()
|
|
5420
5458
|
});
|
|
5421
|
-
var RuntimeStatusSchema =
|
|
5422
|
-
version:
|
|
5423
|
-
pid:
|
|
5424
|
-
instanceId:
|
|
5425
|
-
ready:
|
|
5426
|
-
busy:
|
|
5427
|
-
relayUrl:
|
|
5428
|
-
identityHash:
|
|
5429
|
-
configPath:
|
|
5430
|
-
configHash:
|
|
5431
|
-
executable:
|
|
5432
|
-
cliPath:
|
|
5433
|
-
cwd:
|
|
5434
|
-
args:
|
|
5435
|
-
canRestart:
|
|
5436
|
-
restartEnvironment:
|
|
5437
|
-
upgradeId:
|
|
5438
|
-
stopping:
|
|
5459
|
+
var RuntimeStatusSchema = z32.object({
|
|
5460
|
+
version: z32.string().min(1),
|
|
5461
|
+
pid: z32.number().int().positive(),
|
|
5462
|
+
instanceId: z32.uuid(),
|
|
5463
|
+
ready: z32.boolean(),
|
|
5464
|
+
busy: z32.boolean(),
|
|
5465
|
+
relayUrl: z32.string().url(),
|
|
5466
|
+
identityHash: z32.string().min(1),
|
|
5467
|
+
configPath: z32.string().optional(),
|
|
5468
|
+
configHash: z32.string().optional(),
|
|
5469
|
+
executable: z32.string().min(1),
|
|
5470
|
+
cliPath: z32.string().min(1),
|
|
5471
|
+
cwd: z32.string().min(1),
|
|
5472
|
+
args: z32.array(z32.string()),
|
|
5473
|
+
canRestart: z32.boolean().default(false),
|
|
5474
|
+
restartEnvironment: z32.record(z32.string(), z32.string()).default({}),
|
|
5475
|
+
upgradeId: z32.uuid().optional(),
|
|
5476
|
+
stopping: z32.boolean().optional()
|
|
5439
5477
|
});
|
|
5440
|
-
var RequestSchema =
|
|
5441
|
-
|
|
5442
|
-
|
|
5478
|
+
var RequestSchema = z32.discriminatedUnion("command", [
|
|
5479
|
+
z32.object({ token: z32.string(), command: z32.enum(["status", "prepare", "cancel", "stop"]) }),
|
|
5480
|
+
z32.object({ token: z32.string(), command: z32.literal("peer-chat"), payload: PeerChatRequestSchema2 })
|
|
5443
5481
|
]);
|
|
5444
|
-
var ResponseSchema =
|
|
5445
|
-
|
|
5446
|
-
|
|
5482
|
+
var ResponseSchema = z32.discriminatedUnion("ok", [
|
|
5483
|
+
z32.object({ ok: z32.literal(true), status: RuntimeStatusSchema.optional(), reply: PeerChatResultSchema.optional() }),
|
|
5484
|
+
z32.object({ ok: z32.literal(false), error: z32.string() })
|
|
5447
5485
|
]);
|
|
5448
5486
|
var MAX_MESSAGE_BYTES = 32 * 1024;
|
|
5449
5487
|
var MAX_PEER_REQUEST_BYTES = 128 * 1024;
|
|
@@ -5706,7 +5744,7 @@ import { randomUUID as randomUUID2 } from "node:crypto";
|
|
|
5706
5744
|
import { copyFile as copyFile2, mkdir as mkdir5, open as open2, realpath as realpath2, rm as rm6 } from "node:fs/promises";
|
|
5707
5745
|
import { dirname as dirname5, join as join9, resolve as resolve8 } from "node:path";
|
|
5708
5746
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
5709
|
-
import { z as
|
|
5747
|
+
import { z as z36 } from "zod";
|
|
5710
5748
|
|
|
5711
5749
|
// src/upgrade-packages.ts
|
|
5712
5750
|
import { execFile as execFile2, spawn as spawn2 } from "node:child_process";
|
|
@@ -5720,7 +5758,7 @@ import { createHash as createHash5 } from "node:crypto";
|
|
|
5720
5758
|
import { open } from "node:fs/promises";
|
|
5721
5759
|
import { join as join5 } from "node:path";
|
|
5722
5760
|
import { promisify } from "node:util";
|
|
5723
|
-
import { z as
|
|
5761
|
+
import { z as z33 } from "zod";
|
|
5724
5762
|
|
|
5725
5763
|
// src/restart-environment.ts
|
|
5726
5764
|
import { resolve as resolve4 } from "node:path";
|
|
@@ -5758,10 +5796,10 @@ function restartEnvironment(effective, persisted, dataDirectory) {
|
|
|
5758
5796
|
|
|
5759
5797
|
// src/upgrade-supervisor.ts
|
|
5760
5798
|
var execute = promisify(execFile);
|
|
5761
|
-
var SupervisorSchema =
|
|
5762
|
-
|
|
5763
|
-
|
|
5764
|
-
|
|
5799
|
+
var SupervisorSchema = z33.discriminatedUnion("kind", [
|
|
5800
|
+
z33.object({ kind: z33.literal("process") }),
|
|
5801
|
+
z33.object({ kind: z33.literal("windows-task"), name: z33.string(), path: z33.string(), definitionHash: z33.string() }),
|
|
5802
|
+
z33.object({ kind: z33.literal("launchd"), domain: z33.string(), label: z33.string(), plist: z33.string() })
|
|
5765
5803
|
]);
|
|
5766
5804
|
function globalPackageDirectory(prefix) {
|
|
5767
5805
|
return process.platform === "win32" ? join5(prefix, "node_modules", "@agentknight", "client") : join5(prefix, "lib", "node_modules", "@agentknight", "client");
|
|
@@ -5789,7 +5827,7 @@ async function assertInstallationIdle(prefix, allowedPid) {
|
|
|
5789
5827
|
} | ForEach-Object { [int]$_.ProcessId });
|
|
5790
5828
|
ConvertTo-Json -InputObject $ids -Compress
|
|
5791
5829
|
`);
|
|
5792
|
-
pids =
|
|
5830
|
+
pids = z33.array(z33.number().int().positive()).parse(JSON.parse(result));
|
|
5793
5831
|
} else {
|
|
5794
5832
|
const result = await execute("ps", ["-eo", "pid=,args="], { timeout: 1e4 });
|
|
5795
5833
|
pids = result.stdout.split("\n").flatMap((line) => {
|
|
@@ -5825,7 +5863,7 @@ async function detectSupervisor(runtime) {
|
|
|
5825
5863
|
if($matches.Count -gt 1) { throw 'Multiple scheduled tasks match this Agent. Refusing to choose.' };
|
|
5826
5864
|
if($matches.Count -eq 1) { $matches[0] | ConvertTo-Json -Compress } else { 'null' }
|
|
5827
5865
|
`);
|
|
5828
|
-
const task =
|
|
5866
|
+
const task = z33.object({ name: z33.string(), path: z33.string(), xml: z33.string() }).nullable().parse(JSON.parse(result));
|
|
5829
5867
|
return task === null ? { kind: "process" } : {
|
|
5830
5868
|
kind: "windows-task",
|
|
5831
5869
|
name: task.name,
|
|
@@ -6345,13 +6383,13 @@ async function prepareUpgradePackages(options) {
|
|
|
6345
6383
|
import { mkdir as mkdir4, readFile as readFile4, rm as rm5, stat } from "node:fs/promises";
|
|
6346
6384
|
import { createHash as createHash7 } from "node:crypto";
|
|
6347
6385
|
import { join as join8, resolve as resolve7 } from "node:path";
|
|
6348
|
-
import { z as
|
|
6386
|
+
import { z as z35 } from "zod";
|
|
6349
6387
|
|
|
6350
6388
|
// src/upgrade-startup.ts
|
|
6351
6389
|
import { rename as rename2, rm as rm4 } from "node:fs/promises";
|
|
6352
6390
|
import { basename, dirname as dirname4, join as join7, resolve as resolve6 } from "node:path";
|
|
6353
|
-
import { z as
|
|
6354
|
-
var PermitSchema =
|
|
6391
|
+
import { z as z34 } from "zod";
|
|
6392
|
+
var PermitSchema = z34.object({ id: z34.uuid(), version: z34.string(), cliPath: z34.string() });
|
|
6355
6393
|
function globalUpgradeLockPath(cliPath) {
|
|
6356
6394
|
const packageDirectory = dirname4(dirname4(cliPath));
|
|
6357
6395
|
const scope = dirname4(packageDirectory);
|
|
@@ -6365,14 +6403,14 @@ async function claimUpgradeStartup(directory, version, cliPath) {
|
|
|
6365
6403
|
const globalPath = globalUpgradeLockPath(cliPath);
|
|
6366
6404
|
const globalLock = globalPath === void 0 ? void 0 : await readOptionalJson(globalPath);
|
|
6367
6405
|
if (globalLock !== void 0) {
|
|
6368
|
-
const globalOwner =
|
|
6406
|
+
const globalOwner = z34.object({ id: z34.uuid(), dataDirectory: z34.string() }).parse(globalLock);
|
|
6369
6407
|
if (lock === void 0 || resolve6(globalOwner.dataDirectory) !== resolve6(directory)) {
|
|
6370
6408
|
throw new Error("This global installation is being upgraded for another data directory. Wait for that upgrade to finish.");
|
|
6371
6409
|
}
|
|
6372
6410
|
}
|
|
6373
6411
|
if (lock === void 0) return void 0;
|
|
6374
|
-
const owner =
|
|
6375
|
-
if (globalLock !== void 0 &&
|
|
6412
|
+
const owner = z34.object({ id: z34.uuid() }).parse(lock);
|
|
6413
|
+
if (globalLock !== void 0 && z34.object({ id: z34.uuid() }).parse(globalLock).id !== owner.id) {
|
|
6376
6414
|
throw new Error("Local and global upgrade ownership disagree; inspect the interrupted upgrade before starting.");
|
|
6377
6415
|
}
|
|
6378
6416
|
const path = join7(directory, "run", "upgrade-start.json");
|
|
@@ -6389,24 +6427,24 @@ async function claimUpgradeStartup(directory, version, cliPath) {
|
|
|
6389
6427
|
}
|
|
6390
6428
|
|
|
6391
6429
|
// src/upgrade-job.ts
|
|
6392
|
-
var PreparedPackagesSchema =
|
|
6393
|
-
targetArchive:
|
|
6394
|
-
rollbackArchive:
|
|
6395
|
-
cacheDirectory:
|
|
6396
|
-
registry:
|
|
6430
|
+
var PreparedPackagesSchema = z35.object({
|
|
6431
|
+
targetArchive: z35.string(),
|
|
6432
|
+
rollbackArchive: z35.string(),
|
|
6433
|
+
cacheDirectory: z35.string(),
|
|
6434
|
+
registry: z35.string().url()
|
|
6397
6435
|
});
|
|
6398
|
-
var UpgradePlanSchema =
|
|
6399
|
-
id:
|
|
6400
|
-
dataDirectory:
|
|
6401
|
-
directory:
|
|
6402
|
-
prefix:
|
|
6403
|
-
currentVersion:
|
|
6404
|
-
targetVersion:
|
|
6436
|
+
var UpgradePlanSchema = z35.object({
|
|
6437
|
+
id: z35.uuid(),
|
|
6438
|
+
dataDirectory: z35.string(),
|
|
6439
|
+
directory: z35.string(),
|
|
6440
|
+
prefix: z35.string(),
|
|
6441
|
+
currentVersion: z35.string(),
|
|
6442
|
+
targetVersion: z35.string(),
|
|
6405
6443
|
packages: PreparedPackagesSchema,
|
|
6406
6444
|
runtime: RuntimeStatusSchema.optional(),
|
|
6407
6445
|
supervisor: SupervisorSchema,
|
|
6408
|
-
taskName:
|
|
6409
|
-
configHash:
|
|
6446
|
+
taskName: z35.string(),
|
|
6447
|
+
configHash: z35.string().optional()
|
|
6410
6448
|
});
|
|
6411
6449
|
async function fileHash(path) {
|
|
6412
6450
|
return createHash7("sha256").update(await readFile4(path)).digest("hex");
|
|
@@ -6489,7 +6527,7 @@ async function upgrade(options) {
|
|
|
6489
6527
|
const lockPath = join9(root, "upgrade.lock");
|
|
6490
6528
|
const existing = await readOptionalJson(lockPath);
|
|
6491
6529
|
if (existing !== void 0) {
|
|
6492
|
-
const owner =
|
|
6530
|
+
const owner = z36.object({ pid: z36.number().int().positive() }).parse(existing);
|
|
6493
6531
|
if (processExists(owner.pid)) throw new Error("Another upgrade is already running. Use agentknight status.");
|
|
6494
6532
|
throw new Error(`An interrupted upgrade needs review. Read ${join9(root, "status.json")} before removing ${lockPath}.`);
|
|
6495
6533
|
}
|
|
@@ -6787,17 +6825,17 @@ import { initialize, supportsAgentSelection } from "@agentknight/sdk";
|
|
|
6787
6825
|
|
|
6788
6826
|
// src/chat-settings.ts
|
|
6789
6827
|
import { join as join11 } from "node:path";
|
|
6790
|
-
import { z as
|
|
6828
|
+
import { z as z37 } from "zod";
|
|
6791
6829
|
var settings = {
|
|
6792
6830
|
groupChatEnabled: {
|
|
6793
6831
|
file: "group-chat-settings.json",
|
|
6794
6832
|
label: "Group chat",
|
|
6795
|
-
schema:
|
|
6833
|
+
schema: z37.object({ groupChatEnabled: z37.boolean() }).strict().transform((value) => value.groupChatEnabled)
|
|
6796
6834
|
},
|
|
6797
6835
|
peerChatEnabled: {
|
|
6798
6836
|
file: "peer-chat-settings.json",
|
|
6799
6837
|
label: "Peer chat",
|
|
6800
|
-
schema:
|
|
6838
|
+
schema: z37.object({ peerChatEnabled: z37.boolean() }).strict().transform((value) => value.peerChatEnabled)
|
|
6801
6839
|
}
|
|
6802
6840
|
};
|
|
6803
6841
|
var ChatSettings = class _ChatSettings {
|
|
@@ -6845,14 +6883,14 @@ import { randomUUID as randomUUID3 } from "node:crypto";
|
|
|
6845
6883
|
import { link, lstat as lstat2, mkdir as mkdir6, readFile as readFile5, readlink, rename as rename3, rm as rm7, writeFile as writeFile4 } from "node:fs/promises";
|
|
6846
6884
|
import { homedir as homedir3, hostname } from "node:os";
|
|
6847
6885
|
import { dirname as dirname6, join as join12, resolve as resolve9 } from "node:path";
|
|
6848
|
-
import { z as
|
|
6886
|
+
import { z as z38 } from "zod";
|
|
6849
6887
|
import { DeviceIdentitySchema, LEGACY_CLIENT_STATE_DIRECTORY } from "@agentknight/sdk";
|
|
6850
6888
|
import { DeviceIdentitySchema as DeviceIdentitySchema2 } from "@agentknight/sdk";
|
|
6851
|
-
var LegacyDeviceIdentitySchema =
|
|
6852
|
-
schemaVersion:
|
|
6853
|
-
machineId:
|
|
6854
|
-
machineName:
|
|
6855
|
-
createdAt:
|
|
6889
|
+
var LegacyDeviceIdentitySchema = z38.object({
|
|
6890
|
+
schemaVersion: z38.literal(1),
|
|
6891
|
+
machineId: z38.uuid(),
|
|
6892
|
+
machineName: z38.string().trim().min(1).max(120),
|
|
6893
|
+
createdAt: z38.iso.datetime({ offset: true })
|
|
6856
6894
|
});
|
|
6857
6895
|
function resolveMachineName(environment = process.env, fallback = hostname()) {
|
|
6858
6896
|
const computerName = environment.COMPUTERNAME?.trim();
|
|
@@ -6873,7 +6911,7 @@ async function readStableDeviceId(path) {
|
|
|
6873
6911
|
const info = await optionalStat(path);
|
|
6874
6912
|
if (info === void 0) return void 0;
|
|
6875
6913
|
if (!info.isFile()) throw new Error(`Device ID must be a regular file, not a link: ${path}`);
|
|
6876
|
-
const parsed =
|
|
6914
|
+
const parsed = z38.uuid().safeParse((await readFile5(path, "utf8")).trim());
|
|
6877
6915
|
if (!parsed.success) throw new Error(`Invalid device ID in ${path}`, { cause: parsed.error });
|
|
6878
6916
|
return parsed.data;
|
|
6879
6917
|
}
|
|
@@ -6936,7 +6974,7 @@ async function loadOrCreateDeviceIdentity(dataDirectory, currentMachineName = re
|
|
|
6936
6974
|
await requireDirectory(dataDirectory);
|
|
6937
6975
|
let existing;
|
|
6938
6976
|
try {
|
|
6939
|
-
existing =
|
|
6977
|
+
existing = z38.union([DeviceIdentitySchema, LegacyDeviceIdentitySchema]).parse(
|
|
6940
6978
|
JSON.parse(await readFile5(path, "utf8"))
|
|
6941
6979
|
);
|
|
6942
6980
|
} catch (error) {
|