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