@agentknight/client 0.9.37 → 0.9.38
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 +782 -720
- package/dist/upgrade-worker.js +61 -2
- package/package.json +4 -4
package/dist/cli.js
CHANGED
|
@@ -484,7 +484,7 @@ ${environmentAssignment("AGENTKNIGHT_HOME", persistedHome)}
|
|
|
484
484
|
}
|
|
485
485
|
|
|
486
486
|
// src/config.ts
|
|
487
|
-
import { z as
|
|
487
|
+
import { z as z27 } from "zod";
|
|
488
488
|
|
|
489
489
|
// ../../shared/protocol/dist/common/version.js
|
|
490
490
|
import { z } from "zod";
|
|
@@ -1349,8 +1349,66 @@ var SessionProjectIdentityResultDataSchema = z13.object({
|
|
|
1349
1349
|
project: SessionGitProjectSchema.optional()
|
|
1350
1350
|
}).strict();
|
|
1351
1351
|
|
|
1352
|
-
// ../../shared/protocol/dist/sessions/session-
|
|
1352
|
+
// ../../shared/protocol/dist/sessions/session-git-diff.js
|
|
1353
1353
|
import { z as z14 } from "zod";
|
|
1354
|
+
var SESSION_GIT_DIFF_GZIP_MIN_BYTES = 2 * 1024;
|
|
1355
|
+
var SESSION_GIT_DIFF_MAX_FILES = 500;
|
|
1356
|
+
var SESSION_GIT_DIFF_MAX_PATCH_BYTES = 128 * 1024;
|
|
1357
|
+
var SESSION_GIT_DIFF_MAX_RESPONSE_BYTES = 512 * 1024;
|
|
1358
|
+
var SESSION_GIT_DIFF_MAX_TRANSFER_BYTES = SESSION_GIT_DIFF_MAX_RESPONSE_BYTES + 1024;
|
|
1359
|
+
var SESSION_GIT_DIFF_MAX_BASE64_LENGTH = Math.ceil(SESSION_GIT_DIFF_MAX_TRANSFER_BYTES / 3) * 4;
|
|
1360
|
+
var SESSION_GIT_DIFF_MAX_GZIP_RESPONSE_BYTES = SESSION_GIT_DIFF_MAX_BASE64_LENGTH + 1024;
|
|
1361
|
+
var commitSchema = z14.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u);
|
|
1362
|
+
var SessionGitDiffDataSchema = z14.object({
|
|
1363
|
+
rootRevision: SessionFileReadDataSchema.shape.rootRevision,
|
|
1364
|
+
path: SessionFileReadDataSchema.shape.path.optional(),
|
|
1365
|
+
baseCommit: commitSchema.optional()
|
|
1366
|
+
}).strict().refine((value) => value.path === void 0 === (value.baseCommit === void 0), "A file diff must identify its listed base commit");
|
|
1367
|
+
var SessionGitDiffEntrySchema = z14.object({
|
|
1368
|
+
path: SessionFileReadDataSchema.shape.path,
|
|
1369
|
+
status: z14.enum(["added", "modified", "deleted", "untracked"])
|
|
1370
|
+
}).strict();
|
|
1371
|
+
var SessionGitDiffResultDataSchema = z14.object({
|
|
1372
|
+
rootRevision: SessionFileReadDataSchema.shape.rootRevision,
|
|
1373
|
+
baseRef: z14.enum(["origin/main", "main"]),
|
|
1374
|
+
baseCommit: commitSchema,
|
|
1375
|
+
files: z14.array(SessionGitDiffEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional(),
|
|
1376
|
+
path: SessionFileReadDataSchema.shape.path.optional(),
|
|
1377
|
+
patch: z14.string().max(SESSION_GIT_DIFF_MAX_PATCH_BYTES).optional(),
|
|
1378
|
+
binary: z14.boolean().optional()
|
|
1379
|
+
}).strict().superRefine((value, context) => {
|
|
1380
|
+
const encoder = new TextEncoder();
|
|
1381
|
+
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) {
|
|
1382
|
+
context.addIssue({ code: "custom", message: "Git diff exceeds its transfer limit" });
|
|
1383
|
+
}
|
|
1384
|
+
if (value.path === void 0) {
|
|
1385
|
+
if (value.files === void 0 || value.patch !== void 0 || value.binary !== void 0 || new Set(value.files?.map((entry) => entry.path)).size !== value.files?.length) {
|
|
1386
|
+
context.addIssue({ code: "custom", message: "Expected a unique changed-file list" });
|
|
1387
|
+
}
|
|
1388
|
+
} else if (value.files !== void 0 || value.patch === void 0 || value.binary === void 0 || value.binary && value.patch !== "") {
|
|
1389
|
+
context.addIssue({ code: "custom", message: "Expected a text patch or an explicit binary change" });
|
|
1390
|
+
}
|
|
1391
|
+
});
|
|
1392
|
+
var SessionGitDiffGzipResultDataSchema = z14.object({
|
|
1393
|
+
encoding: z14.literal("gzip"),
|
|
1394
|
+
byteLength: z14.number().int().min(1).max(SESSION_GIT_DIFF_MAX_RESPONSE_BYTES),
|
|
1395
|
+
data: z14.string().max(SESSION_GIT_DIFF_MAX_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]*={0,2}$/u)
|
|
1396
|
+
}).strict().superRefine((value, context) => {
|
|
1397
|
+
const padding = value.data.endsWith("==") ? 2 : value.data.endsWith("=") ? 1 : 0;
|
|
1398
|
+
const bytes = value.data.length / 4 * 3 - padding;
|
|
1399
|
+
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1400
|
+
const tail = alphabet.indexOf(value.data[value.data.length - padding - 1] ?? "");
|
|
1401
|
+
if (value.data.length % 4 !== 0 || bytes < 20 || bytes > SESSION_GIT_DIFF_MAX_TRANSFER_BYTES || padding === 2 && (tail & 15) !== 0 || padding === 1 && (tail & 3) !== 0) {
|
|
1402
|
+
context.addIssue({ code: "custom", message: "Invalid gzip transfer" });
|
|
1403
|
+
}
|
|
1404
|
+
});
|
|
1405
|
+
var SessionGitDiffV2ResultDataSchema = z14.union([
|
|
1406
|
+
SessionGitDiffResultDataSchema,
|
|
1407
|
+
SessionGitDiffGzipResultDataSchema
|
|
1408
|
+
]);
|
|
1409
|
+
|
|
1410
|
+
// ../../shared/protocol/dist/sessions/session-resource.js
|
|
1411
|
+
import { z as z15 } from "zod";
|
|
1354
1412
|
var SESSION_RESOURCE_MAX_ORIGINAL_BYTES = 499999;
|
|
1355
1413
|
var SESSION_RESOURCE_GZIP_THRESHOLD_BYTES = 20 * 1024;
|
|
1356
1414
|
var SESSION_RESOURCE_MAX_IMAGE_PIXELS = 16 * 1024 * 1024;
|
|
@@ -1364,18 +1422,18 @@ var SESSION_RESOURCE_MEDIA_TYPES = [
|
|
|
1364
1422
|
"text/css",
|
|
1365
1423
|
"text/javascript"
|
|
1366
1424
|
];
|
|
1367
|
-
var SessionResourceReadDataSchema =
|
|
1368
|
-
path:
|
|
1369
|
-
rootRevision:
|
|
1425
|
+
var SessionResourceReadDataSchema = z15.object({
|
|
1426
|
+
path: z15.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
|
|
1427
|
+
rootRevision: z15.string().regex(/^[A-Za-z0-9_-]{43}$/u)
|
|
1370
1428
|
}).strict();
|
|
1371
|
-
var SessionResourceReadResultDataSchema =
|
|
1429
|
+
var SessionResourceReadResultDataSchema = z15.object({
|
|
1372
1430
|
path: SessionResourceReadDataSchema.shape.path,
|
|
1373
1431
|
rootRevision: SessionResourceReadDataSchema.shape.rootRevision,
|
|
1374
|
-
mediaType:
|
|
1375
|
-
originalByteLength:
|
|
1376
|
-
byteLength:
|
|
1377
|
-
encoding:
|
|
1378
|
-
data:
|
|
1432
|
+
mediaType: z15.enum(SESSION_RESOURCE_MEDIA_TYPES),
|
|
1433
|
+
originalByteLength: z15.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
|
|
1434
|
+
byteLength: z15.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
|
|
1435
|
+
encoding: z15.enum(["identity", "gzip"]),
|
|
1436
|
+
data: z15.string().max(SESSION_RESOURCE_MAX_BASE64_LENGTH)
|
|
1379
1437
|
}).strict().superRefine((result, context) => {
|
|
1380
1438
|
const invalid = () => context.addIssue({ code: "custom", message: "Invalid resource content" });
|
|
1381
1439
|
if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_RESOURCE_GZIP_THRESHOLD_BYTES || result.byteLength !== result.originalByteLength || result.mediaType.startsWith("image/") && result.byteLength === 0)
|
|
@@ -1388,53 +1446,53 @@ var SessionResourceReadResultDataSchema = z14.object({
|
|
|
1388
1446
|
});
|
|
1389
1447
|
|
|
1390
1448
|
// ../../shared/protocol/dist/sessions/session-rename.js
|
|
1391
|
-
import { z as
|
|
1449
|
+
import { z as z16 } from "zod";
|
|
1392
1450
|
var SESSION_RENAME_OPERATION = "session.rename";
|
|
1393
1451
|
var SESSION_RENAME_VERSION = 1;
|
|
1394
1452
|
var SESSION_RENAME_CAPABILITY = sessionCommunicationOperationCapability(SESSION_RENAME_OPERATION, SESSION_RENAME_VERSION);
|
|
1395
1453
|
var SESSION_NAME_MAX_LENGTH = 100;
|
|
1396
|
-
var SessionNameSchema =
|
|
1397
|
-
var SessionRenameDataSchema =
|
|
1398
|
-
var SessionRenameResultDataSchema =
|
|
1454
|
+
var SessionNameSchema = z16.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
|
|
1455
|
+
var SessionRenameDataSchema = z16.object({ name: SessionNameSchema }).strict();
|
|
1456
|
+
var SessionRenameResultDataSchema = z16.object({ name: SessionNameSchema }).strict();
|
|
1399
1457
|
|
|
1400
1458
|
// ../../shared/protocol/dist/sessions/sessions.js
|
|
1401
|
-
import { z as
|
|
1402
|
-
var GroupChatParticipantSchema =
|
|
1459
|
+
import { z as z17 } from "zod";
|
|
1460
|
+
var GroupChatParticipantSchema = z17.object({
|
|
1403
1461
|
sessionId: IdSchema,
|
|
1404
|
-
title:
|
|
1462
|
+
title: z17.string().trim().min(1).max(260)
|
|
1405
1463
|
}).strict();
|
|
1406
|
-
var GroupChatInfoSchema =
|
|
1407
|
-
participants:
|
|
1408
|
-
state:
|
|
1464
|
+
var GroupChatInfoSchema = z17.object({
|
|
1465
|
+
participants: z17.array(GroupChatParticipantSchema).length(2).refine((participants) => new Set(participants.map((participant) => participant.sessionId)).size === 2, "A group requires two different sessions"),
|
|
1466
|
+
state: z17.enum(["ready", "running", "paused", "blocked"])
|
|
1409
1467
|
}).strict();
|
|
1410
|
-
var SessionSummarySchema =
|
|
1468
|
+
var SessionSummarySchema = z17.object({
|
|
1411
1469
|
userId: IdSchema,
|
|
1412
1470
|
sessionId: IdSchema,
|
|
1413
1471
|
machineId: IdSchema,
|
|
1414
|
-
summary:
|
|
1415
|
-
renameSupported:
|
|
1416
|
-
workingDirectory:
|
|
1417
|
-
gitRoot:
|
|
1418
|
-
repository:
|
|
1419
|
-
gitRemoteUrl:
|
|
1420
|
-
branch:
|
|
1421
|
-
isRemote:
|
|
1472
|
+
summary: z17.string().max(4096).optional(),
|
|
1473
|
+
renameSupported: z17.boolean().optional(),
|
|
1474
|
+
workingDirectory: z17.string().max(32768).optional(),
|
|
1475
|
+
gitRoot: z17.string().max(32768).optional(),
|
|
1476
|
+
repository: z17.string().max(1024).optional(),
|
|
1477
|
+
gitRemoteUrl: z17.string().max(32768).optional(),
|
|
1478
|
+
branch: z17.string().max(1024).optional(),
|
|
1479
|
+
isRemote: z17.boolean(),
|
|
1422
1480
|
createdAt: IsoDateSchema,
|
|
1423
1481
|
modifiedAt: IsoDateSchema,
|
|
1424
1482
|
groupChat: GroupChatInfoSchema.optional()
|
|
1425
1483
|
});
|
|
1426
|
-
var SessionsSnapshotSchema =
|
|
1484
|
+
var SessionsSnapshotSchema = z17.object({
|
|
1427
1485
|
userId: IdSchema,
|
|
1428
1486
|
machineId: IdSchema,
|
|
1429
|
-
machineName:
|
|
1430
|
-
platform:
|
|
1487
|
+
machineName: z17.string().trim().min(1).max(120),
|
|
1488
|
+
platform: z17.string().trim().min(1).max(64),
|
|
1431
1489
|
agentRunId: IdSchema,
|
|
1432
|
-
sequence:
|
|
1490
|
+
sequence: z17.number().int().positive(),
|
|
1433
1491
|
generatedAt: IsoDateSchema,
|
|
1434
|
-
complete:
|
|
1435
|
-
totalCount:
|
|
1436
|
-
nextCursor:
|
|
1437
|
-
sessions:
|
|
1492
|
+
complete: z17.boolean(),
|
|
1493
|
+
totalCount: z17.number().int().nonnegative(),
|
|
1494
|
+
nextCursor: z17.string().min(1).max(1024).optional(),
|
|
1495
|
+
sessions: z17.array(SessionSummarySchema)
|
|
1438
1496
|
}).superRefine((snapshot, context) => {
|
|
1439
1497
|
if (snapshot.totalCount < snapshot.sessions.length) {
|
|
1440
1498
|
context.addIssue({
|
|
@@ -1476,47 +1534,47 @@ var SessionsSnapshotSchema = z16.object({
|
|
|
1476
1534
|
sessionIds.add(session.sessionId);
|
|
1477
1535
|
}
|
|
1478
1536
|
});
|
|
1479
|
-
var SessionListRequestSchema =
|
|
1537
|
+
var SessionListRequestSchema = z17.object({
|
|
1480
1538
|
requestId: IdSchema,
|
|
1481
1539
|
machineId: IdSchema,
|
|
1482
|
-
cursor:
|
|
1540
|
+
cursor: z17.string().min(1).max(1024).optional()
|
|
1483
1541
|
});
|
|
1484
|
-
var SessionListResultSchema =
|
|
1485
|
-
|
|
1486
|
-
ok:
|
|
1542
|
+
var SessionListResultSchema = z17.discriminatedUnion("ok", [
|
|
1543
|
+
z17.object({
|
|
1544
|
+
ok: z17.literal(true),
|
|
1487
1545
|
requestId: IdSchema,
|
|
1488
1546
|
machineId: IdSchema,
|
|
1489
1547
|
snapshot: SessionsSnapshotSchema
|
|
1490
1548
|
}),
|
|
1491
|
-
|
|
1492
|
-
ok:
|
|
1549
|
+
z17.object({
|
|
1550
|
+
ok: z17.literal(false),
|
|
1493
1551
|
requestId: IdSchema,
|
|
1494
1552
|
machineId: IdSchema,
|
|
1495
1553
|
error: ProtocolFailureSchema
|
|
1496
1554
|
})
|
|
1497
1555
|
]);
|
|
1498
|
-
var SessionAgentModeSchema =
|
|
1556
|
+
var SessionAgentModeSchema = z17.enum([
|
|
1499
1557
|
"interactive",
|
|
1500
1558
|
"plan",
|
|
1501
1559
|
"autopilot"
|
|
1502
1560
|
]);
|
|
1503
|
-
var AgentConfigurationOptionSchema =
|
|
1561
|
+
var AgentConfigurationOptionSchema = z17.object({
|
|
1504
1562
|
id: IdSchema,
|
|
1505
|
-
name:
|
|
1506
|
-
value:
|
|
1507
|
-
options:
|
|
1508
|
-
value:
|
|
1509
|
-
name:
|
|
1563
|
+
name: z17.string().trim().min(1).max(260),
|
|
1564
|
+
value: z17.string().min(1).max(256),
|
|
1565
|
+
options: z17.array(z17.object({
|
|
1566
|
+
value: z17.string().min(1).max(256),
|
|
1567
|
+
name: z17.string().trim().min(1).max(260)
|
|
1510
1568
|
}).strict()).min(1).max(100)
|
|
1511
1569
|
}).strict();
|
|
1512
|
-
var AgentConfigurationChangeSchema =
|
|
1570
|
+
var AgentConfigurationChangeSchema = z17.object({
|
|
1513
1571
|
id: IdSchema,
|
|
1514
|
-
value:
|
|
1572
|
+
value: z17.string().min(1).max(256)
|
|
1515
1573
|
}).strict();
|
|
1516
|
-
var WorkspaceOptionSchema =
|
|
1574
|
+
var WorkspaceOptionSchema = z17.object({
|
|
1517
1575
|
id: IdSchema,
|
|
1518
|
-
name:
|
|
1519
|
-
path:
|
|
1576
|
+
name: z17.string().trim().min(1).max(260),
|
|
1577
|
+
path: z17.string().trim().min(1).max(32768)
|
|
1520
1578
|
});
|
|
1521
1579
|
var REASONING_EFFORTS = [
|
|
1522
1580
|
"low",
|
|
@@ -1525,112 +1583,112 @@ var REASONING_EFFORTS = [
|
|
|
1525
1583
|
"xhigh",
|
|
1526
1584
|
"max"
|
|
1527
1585
|
];
|
|
1528
|
-
var ReasoningEffortSchema =
|
|
1529
|
-
var CopilotModelOptionSchema =
|
|
1586
|
+
var ReasoningEffortSchema = z17.enum(REASONING_EFFORTS);
|
|
1587
|
+
var CopilotModelOptionSchema = z17.object({
|
|
1530
1588
|
id: IdSchema,
|
|
1531
|
-
name:
|
|
1532
|
-
isDefault:
|
|
1533
|
-
supportedReasoningEfforts:
|
|
1589
|
+
name: z17.string().trim().min(1).max(260),
|
|
1590
|
+
isDefault: z17.boolean(),
|
|
1591
|
+
supportedReasoningEfforts: z17.array(ReasoningEffortSchema).optional(),
|
|
1534
1592
|
defaultReasoningEffort: ReasoningEffortSchema.optional(),
|
|
1535
|
-
creation:
|
|
1593
|
+
creation: z17.object({
|
|
1536
1594
|
agentId: IdSchema,
|
|
1537
|
-
agentName:
|
|
1538
|
-
modelName:
|
|
1539
|
-
agentModes:
|
|
1540
|
-
reasoningEffortConfigurationSupported:
|
|
1541
|
-
isDefault:
|
|
1595
|
+
agentName: z17.string().trim().min(1).max(260),
|
|
1596
|
+
modelName: z17.string().trim().min(1).max(260),
|
|
1597
|
+
agentModes: z17.array(SessionAgentModeSchema).min(1),
|
|
1598
|
+
reasoningEffortConfigurationSupported: z17.boolean(),
|
|
1599
|
+
isDefault: z17.boolean()
|
|
1542
1600
|
}).strict().optional()
|
|
1543
1601
|
});
|
|
1544
|
-
var SessionReasoningEffortSchema =
|
|
1602
|
+
var SessionReasoningEffortSchema = z17.enum([
|
|
1545
1603
|
"default",
|
|
1546
1604
|
...REASONING_EFFORTS
|
|
1547
1605
|
]);
|
|
1548
|
-
var CurrentReasoningEffortSchema =
|
|
1549
|
-
var SessionToolInfoSchema =
|
|
1550
|
-
name:
|
|
1551
|
-
description:
|
|
1552
|
-
deferred:
|
|
1606
|
+
var CurrentReasoningEffortSchema = z17.string().trim().min(1).max(64);
|
|
1607
|
+
var SessionToolInfoSchema = z17.object({
|
|
1608
|
+
name: z17.string().trim().min(1).max(260),
|
|
1609
|
+
description: z17.string().trim().min(1).max(4096).optional(),
|
|
1610
|
+
deferred: z17.boolean().optional()
|
|
1553
1611
|
});
|
|
1554
|
-
var SessionSlashCommandInfoSchema =
|
|
1555
|
-
name:
|
|
1556
|
-
description:
|
|
1557
|
-
kind:
|
|
1612
|
+
var SessionSlashCommandInfoSchema = z17.object({
|
|
1613
|
+
name: z17.string().trim().min(1).max(260),
|
|
1614
|
+
description: z17.string().trim().min(1).max(4096).optional(),
|
|
1615
|
+
kind: z17.enum(["builtin", "skill", "client"])
|
|
1558
1616
|
});
|
|
1559
|
-
var SessionSkillInfoSchema =
|
|
1560
|
-
name:
|
|
1561
|
-
description:
|
|
1562
|
-
source:
|
|
1563
|
-
enabled:
|
|
1564
|
-
userInvocable:
|
|
1565
|
-
commandName:
|
|
1617
|
+
var SessionSkillInfoSchema = z17.object({
|
|
1618
|
+
name: z17.string().trim().min(1).max(260),
|
|
1619
|
+
description: z17.string().trim().min(1).max(4096).optional(),
|
|
1620
|
+
source: z17.string().trim().min(1).max(260),
|
|
1621
|
+
enabled: z17.boolean(),
|
|
1622
|
+
userInvocable: z17.boolean(),
|
|
1623
|
+
commandName: z17.string().trim().min(1).max(260).optional()
|
|
1566
1624
|
});
|
|
1567
|
-
var SessionEnvironmentInfoSchema =
|
|
1568
|
-
tools:
|
|
1569
|
-
slashCommands:
|
|
1570
|
-
skills:
|
|
1625
|
+
var SessionEnvironmentInfoSchema = z17.object({
|
|
1626
|
+
tools: z17.array(SessionToolInfoSchema).max(512),
|
|
1627
|
+
slashCommands: z17.array(SessionSlashCommandInfoSchema).max(512),
|
|
1628
|
+
skills: z17.array(SessionSkillInfoSchema).max(512)
|
|
1571
1629
|
});
|
|
1572
|
-
var SessionOptionsRequestSchema =
|
|
1630
|
+
var SessionOptionsRequestSchema = z17.object({
|
|
1573
1631
|
requestId: IdSchema,
|
|
1574
1632
|
machineId: IdSchema,
|
|
1575
1633
|
sessionId: IdSchema.optional(),
|
|
1576
1634
|
workspaceId: IdSchema.optional(),
|
|
1577
|
-
capabilities:
|
|
1635
|
+
capabilities: z17.array(IdSchema).max(64).optional()
|
|
1578
1636
|
});
|
|
1579
|
-
var SessionOptionsResultSchema =
|
|
1580
|
-
|
|
1581
|
-
ok:
|
|
1637
|
+
var SessionOptionsResultSchema = z17.discriminatedUnion("ok", [
|
|
1638
|
+
z17.object({
|
|
1639
|
+
ok: z17.literal(true),
|
|
1582
1640
|
requestId: IdSchema,
|
|
1583
1641
|
machineId: IdSchema,
|
|
1584
1642
|
sessionId: IdSchema.optional(),
|
|
1585
|
-
workspaces:
|
|
1586
|
-
models:
|
|
1587
|
-
modelRefreshError:
|
|
1588
|
-
agentModes:
|
|
1589
|
-
reasoningEffortConfigurationSupported:
|
|
1590
|
-
fileAttachmentsSupported:
|
|
1591
|
-
worktreeCreationSupported:
|
|
1592
|
-
worktreeBranches:
|
|
1593
|
-
worktreeCurrentBranch:
|
|
1643
|
+
workspaces: z17.array(WorkspaceOptionSchema),
|
|
1644
|
+
models: z17.array(CopilotModelOptionSchema).min(1),
|
|
1645
|
+
modelRefreshError: z17.string().min(1).max(4096).optional(),
|
|
1646
|
+
agentModes: z17.array(SessionAgentModeSchema).min(1),
|
|
1647
|
+
reasoningEffortConfigurationSupported: z17.literal(true).optional(),
|
|
1648
|
+
fileAttachmentsSupported: z17.boolean().optional(),
|
|
1649
|
+
worktreeCreationSupported: z17.literal(true).optional(),
|
|
1650
|
+
worktreeBranches: z17.array(z17.string().min(1).max(1024)).optional(),
|
|
1651
|
+
worktreeCurrentBranch: z17.string().min(1).max(1024).optional(),
|
|
1594
1652
|
currentModelId: IdSchema.optional(),
|
|
1595
1653
|
currentAgentMode: SessionAgentModeSchema.optional(),
|
|
1596
1654
|
currentReasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
1597
1655
|
environment: SessionEnvironmentInfoSchema.optional(),
|
|
1598
|
-
agentName:
|
|
1599
|
-
configOptions:
|
|
1656
|
+
agentName: z17.string().trim().min(1).max(260).optional(),
|
|
1657
|
+
configOptions: z17.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
1600
1658
|
}),
|
|
1601
|
-
|
|
1602
|
-
ok:
|
|
1659
|
+
z17.object({
|
|
1660
|
+
ok: z17.literal(false),
|
|
1603
1661
|
requestId: IdSchema,
|
|
1604
1662
|
machineId: IdSchema,
|
|
1605
1663
|
sessionId: IdSchema.optional(),
|
|
1606
1664
|
error: ProtocolFailureSchema,
|
|
1607
|
-
failureStage:
|
|
1608
|
-
models:
|
|
1609
|
-
agentModes:
|
|
1610
|
-
reasoningEffortConfigurationSupported:
|
|
1611
|
-
fileAttachmentsSupported:
|
|
1665
|
+
failureStage: z17.enum(["models", "configuration", "workspaces"]).optional(),
|
|
1666
|
+
models: z17.array(CopilotModelOptionSchema).min(1).optional(),
|
|
1667
|
+
agentModes: z17.array(SessionAgentModeSchema).min(1).optional(),
|
|
1668
|
+
reasoningEffortConfigurationSupported: z17.literal(true).optional(),
|
|
1669
|
+
fileAttachmentsSupported: z17.boolean().optional(),
|
|
1612
1670
|
currentModelId: IdSchema.optional(),
|
|
1613
1671
|
currentAgentMode: SessionAgentModeSchema.optional(),
|
|
1614
1672
|
currentReasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
1615
|
-
agentName:
|
|
1616
|
-
configOptions:
|
|
1673
|
+
agentName: z17.string().trim().min(1).max(260).optional(),
|
|
1674
|
+
configOptions: z17.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
1617
1675
|
})
|
|
1618
1676
|
]);
|
|
1619
|
-
var SessionCreateRequestSchema =
|
|
1677
|
+
var SessionCreateRequestSchema = z17.object({
|
|
1620
1678
|
requestId: IdSchema,
|
|
1621
1679
|
machineId: IdSchema,
|
|
1622
1680
|
workspaceId: IdSchema,
|
|
1623
1681
|
modelId: IdSchema,
|
|
1624
1682
|
agentMode: SessionAgentModeSchema,
|
|
1625
1683
|
reasoningEffort: SessionReasoningEffortSchema.optional(),
|
|
1626
|
-
worktree:
|
|
1627
|
-
branchName:
|
|
1628
|
-
baseBranch:
|
|
1684
|
+
worktree: z17.object({
|
|
1685
|
+
branchName: z17.string().trim().min(1).max(120).optional(),
|
|
1686
|
+
baseBranch: z17.string().trim().min(1).max(1024).optional()
|
|
1629
1687
|
}).strict().optional()
|
|
1630
1688
|
});
|
|
1631
|
-
var SessionCreateResultSchema =
|
|
1632
|
-
|
|
1633
|
-
ok:
|
|
1689
|
+
var SessionCreateResultSchema = z17.discriminatedUnion("ok", [
|
|
1690
|
+
z17.object({
|
|
1691
|
+
ok: z17.literal(true),
|
|
1634
1692
|
requestId: IdSchema,
|
|
1635
1693
|
machineId: IdSchema,
|
|
1636
1694
|
session: SessionSummarySchema,
|
|
@@ -1638,34 +1696,34 @@ var SessionCreateResultSchema = z16.discriminatedUnion("ok", [
|
|
|
1638
1696
|
agentMode: SessionAgentModeSchema,
|
|
1639
1697
|
reasoningEffort: SessionReasoningEffortSchema.optional()
|
|
1640
1698
|
}),
|
|
1641
|
-
|
|
1642
|
-
ok:
|
|
1699
|
+
z17.object({
|
|
1700
|
+
ok: z17.literal(false),
|
|
1643
1701
|
requestId: IdSchema,
|
|
1644
1702
|
machineId: IdSchema,
|
|
1645
1703
|
error: ProtocolFailureSchema
|
|
1646
1704
|
})
|
|
1647
1705
|
]);
|
|
1648
|
-
var SessionDeleteRequestSchema =
|
|
1706
|
+
var SessionDeleteRequestSchema = z17.object({
|
|
1649
1707
|
requestId: IdSchema,
|
|
1650
1708
|
machineId: IdSchema,
|
|
1651
1709
|
sessionId: IdSchema
|
|
1652
1710
|
}).strict();
|
|
1653
|
-
var SessionDeleteResultSchema =
|
|
1654
|
-
|
|
1655
|
-
ok:
|
|
1711
|
+
var SessionDeleteResultSchema = z17.discriminatedUnion("ok", [
|
|
1712
|
+
z17.object({
|
|
1713
|
+
ok: z17.literal(true),
|
|
1656
1714
|
requestId: IdSchema,
|
|
1657
1715
|
machineId: IdSchema,
|
|
1658
1716
|
sessionId: IdSchema
|
|
1659
1717
|
}).strict(),
|
|
1660
|
-
|
|
1661
|
-
ok:
|
|
1718
|
+
z17.object({
|
|
1719
|
+
ok: z17.literal(false),
|
|
1662
1720
|
requestId: IdSchema,
|
|
1663
1721
|
machineId: IdSchema,
|
|
1664
1722
|
sessionId: IdSchema,
|
|
1665
1723
|
error: ProtocolFailureSchema
|
|
1666
1724
|
}).strict()
|
|
1667
1725
|
]);
|
|
1668
|
-
var SessionConfigureRequestSchema =
|
|
1726
|
+
var SessionConfigureRequestSchema = z17.object({
|
|
1669
1727
|
requestId: IdSchema,
|
|
1670
1728
|
machineId: IdSchema,
|
|
1671
1729
|
sessionId: IdSchema,
|
|
@@ -1674,59 +1732,59 @@ var SessionConfigureRequestSchema = z16.object({
|
|
|
1674
1732
|
reasoningEffort: SessionReasoningEffortSchema.optional(),
|
|
1675
1733
|
configOption: AgentConfigurationChangeSchema.optional()
|
|
1676
1734
|
}).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" });
|
|
1677
|
-
var SessionConfigureResultSchema =
|
|
1678
|
-
|
|
1679
|
-
ok:
|
|
1735
|
+
var SessionConfigureResultSchema = z17.discriminatedUnion("ok", [
|
|
1736
|
+
z17.object({
|
|
1737
|
+
ok: z17.literal(true),
|
|
1680
1738
|
requestId: IdSchema,
|
|
1681
1739
|
machineId: IdSchema,
|
|
1682
1740
|
sessionId: IdSchema,
|
|
1683
1741
|
modelId: IdSchema.optional(),
|
|
1684
1742
|
agentMode: SessionAgentModeSchema,
|
|
1685
1743
|
reasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
1686
|
-
configOptions:
|
|
1744
|
+
configOptions: z17.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
1687
1745
|
}),
|
|
1688
|
-
|
|
1689
|
-
ok:
|
|
1746
|
+
z17.object({
|
|
1747
|
+
ok: z17.literal(false),
|
|
1690
1748
|
requestId: IdSchema,
|
|
1691
1749
|
machineId: IdSchema,
|
|
1692
1750
|
sessionId: IdSchema,
|
|
1693
1751
|
error: ProtocolFailureSchema
|
|
1694
1752
|
})
|
|
1695
1753
|
]);
|
|
1696
|
-
var SessionRemoteActionSchema =
|
|
1754
|
+
var SessionRemoteActionSchema = z17.enum([
|
|
1697
1755
|
"status",
|
|
1698
1756
|
"enable",
|
|
1699
1757
|
"disable"
|
|
1700
1758
|
]);
|
|
1701
|
-
var SessionRemoteStateSchema =
|
|
1759
|
+
var SessionRemoteStateSchema = z17.enum([
|
|
1702
1760
|
"off",
|
|
1703
1761
|
"connecting",
|
|
1704
1762
|
"active",
|
|
1705
1763
|
"error"
|
|
1706
1764
|
]);
|
|
1707
|
-
var SessionRemoteRequestSchema =
|
|
1765
|
+
var SessionRemoteRequestSchema = z17.object({
|
|
1708
1766
|
requestId: IdSchema,
|
|
1709
1767
|
machineId: IdSchema,
|
|
1710
1768
|
sessionId: IdSchema,
|
|
1711
1769
|
action: SessionRemoteActionSchema
|
|
1712
1770
|
});
|
|
1713
|
-
var SessionRemoteStatusSchema =
|
|
1771
|
+
var SessionRemoteStatusSchema = z17.object({
|
|
1714
1772
|
state: SessionRemoteStateSchema,
|
|
1715
1773
|
attachedSessionId: IdSchema.optional(),
|
|
1716
|
-
url:
|
|
1717
|
-
steerable:
|
|
1774
|
+
url: z17.url().max(32768).optional(),
|
|
1775
|
+
steerable: z17.boolean(),
|
|
1718
1776
|
error: ProtocolFailureSchema.optional()
|
|
1719
1777
|
});
|
|
1720
|
-
var SessionRemoteResultSchema =
|
|
1721
|
-
|
|
1722
|
-
ok:
|
|
1778
|
+
var SessionRemoteResultSchema = z17.discriminatedUnion("ok", [
|
|
1779
|
+
z17.object({
|
|
1780
|
+
ok: z17.literal(true),
|
|
1723
1781
|
requestId: IdSchema,
|
|
1724
1782
|
machineId: IdSchema,
|
|
1725
1783
|
sessionId: IdSchema,
|
|
1726
1784
|
status: SessionRemoteStatusSchema
|
|
1727
1785
|
}),
|
|
1728
|
-
|
|
1729
|
-
ok:
|
|
1786
|
+
z17.object({
|
|
1787
|
+
ok: z17.literal(false),
|
|
1730
1788
|
requestId: IdSchema,
|
|
1731
1789
|
machineId: IdSchema,
|
|
1732
1790
|
sessionId: IdSchema,
|
|
@@ -1735,42 +1793,42 @@ var SessionRemoteResultSchema = z16.discriminatedUnion("ok", [
|
|
|
1735
1793
|
]);
|
|
1736
1794
|
|
|
1737
1795
|
// ../../shared/protocol/dist/sessions/group-chat.js
|
|
1738
|
-
import { z as
|
|
1796
|
+
import { z as z18 } from "zod";
|
|
1739
1797
|
var GROUP_CHAT_CREATE_OPERATION = "group-chat.create";
|
|
1740
1798
|
var GROUP_CHAT_CREATE_VERSION = 1;
|
|
1741
1799
|
var GROUP_CHAT_CREATE_CAPABILITY = sessionCommunicationOperationCapability(GROUP_CHAT_CREATE_OPERATION, GROUP_CHAT_CREATE_VERSION);
|
|
1742
|
-
var GroupChatCreateDataSchema =
|
|
1800
|
+
var GroupChatCreateDataSchema = z18.object({
|
|
1743
1801
|
peerSessionId: IdSchema
|
|
1744
1802
|
}).strict();
|
|
1745
|
-
var GroupChatCreateResultDataSchema =
|
|
1803
|
+
var GroupChatCreateResultDataSchema = z18.object({
|
|
1746
1804
|
session: SessionSummarySchema.refine((session) => session.groupChat !== void 0, "Group creation must return a virtual group session")
|
|
1747
1805
|
}).strict();
|
|
1748
1806
|
|
|
1749
1807
|
// ../../shared/protocol/dist/sessions/prompts.js
|
|
1750
|
-
import { z as
|
|
1808
|
+
import { z as z22 } from "zod";
|
|
1751
1809
|
|
|
1752
1810
|
// ../../shared/protocol/dist/conversation/attachments.js
|
|
1753
|
-
import { z as
|
|
1811
|
+
import { z as z19 } from "zod";
|
|
1754
1812
|
var MAX_INLINE_IMAGE_BYTES = 3 * 1024 * 1024;
|
|
1755
1813
|
var MAX_INLINE_HTML_BYTES = 512 * 1024;
|
|
1756
1814
|
var MAX_PROMPT_FILE_BYTES = 1024 * 1024;
|
|
1757
|
-
var InlineImageMimeTypeSchema =
|
|
1815
|
+
var InlineImageMimeTypeSchema = z19.enum([
|
|
1758
1816
|
"image/gif",
|
|
1759
1817
|
"image/jpeg",
|
|
1760
1818
|
"image/png",
|
|
1761
1819
|
"image/webp"
|
|
1762
1820
|
]);
|
|
1763
|
-
var Base64DataSchema =
|
|
1764
|
-
var Sha256Schema =
|
|
1821
|
+
var Base64DataSchema = z19.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");
|
|
1822
|
+
var Sha256Schema = z19.string().regex(/^[a-f0-9]{64}$/);
|
|
1765
1823
|
function decodedBase64ByteLength(value) {
|
|
1766
1824
|
const padding = value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0;
|
|
1767
1825
|
return value.length / 4 * 3 - padding;
|
|
1768
1826
|
}
|
|
1769
|
-
var PromptImageAttachmentSchema =
|
|
1770
|
-
name:
|
|
1771
|
-
mimeType:
|
|
1827
|
+
var PromptImageAttachmentSchema = z19.object({
|
|
1828
|
+
name: z19.string().trim().min(1).max(255),
|
|
1829
|
+
mimeType: z19.enum(["image/jpeg", "image/png", "image/webp"]),
|
|
1772
1830
|
data: Base64DataSchema,
|
|
1773
|
-
byteLength:
|
|
1831
|
+
byteLength: z19.number().int().positive().max(MAX_INLINE_IMAGE_BYTES),
|
|
1774
1832
|
sha256: Sha256Schema
|
|
1775
1833
|
}).strict().superRefine((attachment, context) => {
|
|
1776
1834
|
if (decodedBase64ByteLength(attachment.data) !== attachment.byteLength) {
|
|
@@ -1781,11 +1839,11 @@ var PromptImageAttachmentSchema = z18.object({
|
|
|
1781
1839
|
});
|
|
1782
1840
|
}
|
|
1783
1841
|
});
|
|
1784
|
-
var PromptFileAttachmentSchema =
|
|
1785
|
-
name:
|
|
1786
|
-
mimeType:
|
|
1842
|
+
var PromptFileAttachmentSchema = z19.object({
|
|
1843
|
+
name: z19.string().trim().min(1).max(255).regex(/^[^\\/\x00-\x1f\x7f]+$/).refine((name) => name !== "." && name !== "..", "Expected a filename"),
|
|
1844
|
+
mimeType: z19.string().max(256).regex(/^[a-zA-Z0-9!#$&^_.+-]+\/[a-zA-Z0-9!#$&^_.+-]+$/),
|
|
1787
1845
|
data: Base64DataSchema.max(Math.ceil(MAX_PROMPT_FILE_BYTES / 3) * 4),
|
|
1788
|
-
byteLength:
|
|
1846
|
+
byteLength: z19.number().int().positive().max(MAX_PROMPT_FILE_BYTES),
|
|
1789
1847
|
sha256: Sha256Schema
|
|
1790
1848
|
}).strict().superRefine((attachment, context) => {
|
|
1791
1849
|
if (decodedBase64ByteLength(attachment.data) !== attachment.byteLength) {
|
|
@@ -1796,8 +1854,8 @@ var PromptFileAttachmentSchema = z18.object({
|
|
|
1796
1854
|
});
|
|
1797
1855
|
}
|
|
1798
1856
|
});
|
|
1799
|
-
var ConversationAttachmentSchema =
|
|
1800
|
-
kind:
|
|
1857
|
+
var ConversationAttachmentSchema = z19.object({
|
|
1858
|
+
kind: z19.enum([
|
|
1801
1859
|
"file",
|
|
1802
1860
|
"image",
|
|
1803
1861
|
"html",
|
|
@@ -1805,13 +1863,13 @@ var ConversationAttachmentSchema = z18.object({
|
|
|
1805
1863
|
"github-reference",
|
|
1806
1864
|
"unknown"
|
|
1807
1865
|
]),
|
|
1808
|
-
name:
|
|
1809
|
-
mimeType:
|
|
1810
|
-
uri:
|
|
1866
|
+
name: z19.string().trim().min(1).max(1024),
|
|
1867
|
+
mimeType: z19.string().trim().min(1).max(256).optional(),
|
|
1868
|
+
uri: z19.string().trim().min(1).max(32768).optional(),
|
|
1811
1869
|
data: Base64DataSchema.optional(),
|
|
1812
|
-
byteLength:
|
|
1870
|
+
byteLength: z19.number().int().positive().max(MAX_INLINE_IMAGE_BYTES).optional(),
|
|
1813
1871
|
sha256: Sha256Schema.optional(),
|
|
1814
|
-
imageRef:
|
|
1872
|
+
imageRef: z19.literal("sha256").optional()
|
|
1815
1873
|
}).strict().superRefine((attachment, context) => {
|
|
1816
1874
|
if (attachment.imageRef !== void 0) {
|
|
1817
1875
|
if (attachment.kind !== "image" || attachment.data !== void 0 || attachment.sha256 === void 0 || attachment.byteLength === void 0 || !InlineImageMimeTypeSchema.safeParse(attachment.mimeType).success) {
|
|
@@ -1869,20 +1927,20 @@ var ConversationAttachmentSchema = z18.object({
|
|
|
1869
1927
|
});
|
|
1870
1928
|
|
|
1871
1929
|
// ../../shared/protocol/dist/conversation/timeline.js
|
|
1872
|
-
import { z as
|
|
1930
|
+
import { z as z21 } from "zod";
|
|
1873
1931
|
|
|
1874
1932
|
// ../../shared/protocol/dist/conversation/conversation.js
|
|
1875
|
-
import { z as
|
|
1933
|
+
import { z as z20 } from "zod";
|
|
1876
1934
|
var CONVERSATION_ACTIVITY_STEP_LIMIT = 1e3;
|
|
1877
1935
|
var CONVERSATION_SOURCE_ID_LIMIT = 1e3;
|
|
1878
1936
|
var ConversationItemBaseShape = {
|
|
1879
1937
|
id: IdSchema,
|
|
1880
|
-
revision:
|
|
1938
|
+
revision: z20.number().int().positive(),
|
|
1881
1939
|
turnId: IdSchema,
|
|
1882
1940
|
timestamp: IsoDateSchema,
|
|
1883
|
-
sourceEventIds:
|
|
1884
|
-
sourceMessageIds:
|
|
1885
|
-
sourceInteractionIds:
|
|
1941
|
+
sourceEventIds: z20.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT),
|
|
1942
|
+
sourceMessageIds: z20.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT).optional(),
|
|
1943
|
+
sourceInteractionIds: z20.array(IdSchema).min(1).max(CONVERSATION_SOURCE_ID_LIMIT).optional()
|
|
1886
1944
|
};
|
|
1887
1945
|
var MAX_INLINE_IMAGE_MESSAGE_BYTES = 3 * 1024 * 1024;
|
|
1888
1946
|
var MAX_INLINE_IMAGES_PER_MESSAGE = 4;
|
|
@@ -1890,67 +1948,67 @@ var ActivityStepTimeShape = {
|
|
|
1890
1948
|
// First observed event time; completion updates must not move an existing call.
|
|
1891
1949
|
timestamp: IsoDateSchema.optional()
|
|
1892
1950
|
};
|
|
1893
|
-
var ConversationToolStepSchema =
|
|
1951
|
+
var ConversationToolStepSchema = z20.object({
|
|
1894
1952
|
id: IdSchema,
|
|
1895
|
-
kind:
|
|
1896
|
-
name:
|
|
1897
|
-
status:
|
|
1953
|
+
kind: z20.literal("tool"),
|
|
1954
|
+
name: z20.string().trim().min(1).max(256),
|
|
1955
|
+
status: z20.enum(["running", "completed", "failed"]),
|
|
1898
1956
|
...ActivityStepTimeShape
|
|
1899
1957
|
}).strict();
|
|
1900
|
-
var ConversationSkillStepSchema =
|
|
1958
|
+
var ConversationSkillStepSchema = z20.object({
|
|
1901
1959
|
id: IdSchema,
|
|
1902
|
-
kind:
|
|
1903
|
-
name:
|
|
1904
|
-
status:
|
|
1905
|
-
description:
|
|
1906
|
-
source:
|
|
1960
|
+
kind: z20.literal("skill"),
|
|
1961
|
+
name: z20.string().trim().min(1).max(256),
|
|
1962
|
+
status: z20.literal("completed"),
|
|
1963
|
+
description: z20.string().trim().min(1).max(2048).optional(),
|
|
1964
|
+
source: z20.string().trim().min(1).max(256).optional(),
|
|
1907
1965
|
...ActivityStepTimeShape
|
|
1908
1966
|
}).strict();
|
|
1909
|
-
var ConversationSubagentStepSchema =
|
|
1967
|
+
var ConversationSubagentStepSchema = z20.object({
|
|
1910
1968
|
id: IdSchema,
|
|
1911
|
-
kind:
|
|
1912
|
-
name:
|
|
1913
|
-
status:
|
|
1914
|
-
description:
|
|
1915
|
-
model:
|
|
1916
|
-
durationMs:
|
|
1917
|
-
resultSummary:
|
|
1918
|
-
error:
|
|
1969
|
+
kind: z20.literal("subagent"),
|
|
1970
|
+
name: z20.string().trim().min(1).max(256),
|
|
1971
|
+
status: z20.enum(["running", "completed", "failed"]),
|
|
1972
|
+
description: z20.string().trim().min(1).max(2048).optional(),
|
|
1973
|
+
model: z20.string().trim().min(1).max(256).optional(),
|
|
1974
|
+
durationMs: z20.number().int().nonnegative().optional(),
|
|
1975
|
+
resultSummary: z20.string().max(4096).optional(),
|
|
1976
|
+
error: z20.string().max(4096).optional(),
|
|
1919
1977
|
...ActivityStepTimeShape
|
|
1920
1978
|
}).strict();
|
|
1921
|
-
var ConversationPermissionStepSchema =
|
|
1979
|
+
var ConversationPermissionStepSchema = z20.object({
|
|
1922
1980
|
id: IdSchema,
|
|
1923
|
-
kind:
|
|
1924
|
-
name:
|
|
1925
|
-
status:
|
|
1926
|
-
description:
|
|
1927
|
-
resultSummary:
|
|
1928
|
-
error:
|
|
1981
|
+
kind: z20.literal("permission"),
|
|
1982
|
+
name: z20.string().trim().min(1).max(256),
|
|
1983
|
+
status: z20.enum(["running", "completed", "failed"]),
|
|
1984
|
+
description: z20.string().trim().min(1).max(2048).optional(),
|
|
1985
|
+
resultSummary: z20.string().max(4096).optional(),
|
|
1986
|
+
error: z20.string().max(4096).optional(),
|
|
1929
1987
|
...ActivityStepTimeShape
|
|
1930
1988
|
}).strict();
|
|
1931
|
-
var ConversationActivityStepSchema =
|
|
1989
|
+
var ConversationActivityStepSchema = z20.discriminatedUnion("kind", [
|
|
1932
1990
|
ConversationToolStepSchema,
|
|
1933
1991
|
ConversationSkillStepSchema,
|
|
1934
1992
|
ConversationSubagentStepSchema,
|
|
1935
1993
|
ConversationPermissionStepSchema
|
|
1936
1994
|
]);
|
|
1937
|
-
var ConversationHumanMessageSchema =
|
|
1995
|
+
var ConversationHumanMessageSchema = z20.object({
|
|
1938
1996
|
...ConversationItemBaseShape,
|
|
1939
|
-
kind:
|
|
1940
|
-
actor:
|
|
1941
|
-
content:
|
|
1942
|
-
attachments:
|
|
1997
|
+
kind: z20.literal("human-message"),
|
|
1998
|
+
actor: z20.literal("human"),
|
|
1999
|
+
content: z20.string().max(1e5),
|
|
2000
|
+
attachments: z20.array(ConversationAttachmentSchema).max(100),
|
|
1943
2001
|
operationId: IdSchema.optional()
|
|
1944
2002
|
}).strict();
|
|
1945
|
-
var ConversationAssistantMessageSchema =
|
|
2003
|
+
var ConversationAssistantMessageSchema = z20.object({
|
|
1946
2004
|
...ConversationItemBaseShape,
|
|
1947
|
-
kind:
|
|
1948
|
-
actor:
|
|
1949
|
-
content:
|
|
1950
|
-
attachments:
|
|
1951
|
-
model:
|
|
2005
|
+
kind: z20.literal("assistant-message"),
|
|
2006
|
+
actor: z20.enum(["assistant", "subagent"]),
|
|
2007
|
+
content: z20.string().max(5e5),
|
|
2008
|
+
attachments: z20.array(ConversationAttachmentSchema).max(100).optional(),
|
|
2009
|
+
model: z20.string().trim().min(1).max(256).optional(),
|
|
1952
2010
|
agentId: IdSchema.optional(),
|
|
1953
|
-
final:
|
|
2011
|
+
final: z20.boolean()
|
|
1954
2012
|
}).strict().superRefine((message, context) => {
|
|
1955
2013
|
const inlineImages = message.attachments?.filter((attachment) => attachment.kind === "image" && attachment.data !== void 0) ?? [];
|
|
1956
2014
|
if (inlineImages.length > MAX_INLINE_IMAGES_PER_MESSAGE) {
|
|
@@ -1969,160 +2027,160 @@ var ConversationAssistantMessageSchema = z19.object({
|
|
|
1969
2027
|
});
|
|
1970
2028
|
}
|
|
1971
2029
|
});
|
|
1972
|
-
var ConversationActivityGroupSchema =
|
|
2030
|
+
var ConversationActivityGroupSchema = z20.object({
|
|
1973
2031
|
...ConversationItemBaseShape,
|
|
1974
|
-
kind:
|
|
1975
|
-
actor:
|
|
1976
|
-
status:
|
|
1977
|
-
steps:
|
|
2032
|
+
kind: z20.literal("activity-group"),
|
|
2033
|
+
actor: z20.enum(["assistant", "subagent"]),
|
|
2034
|
+
status: z20.enum(["running", "completed", "failed"]),
|
|
2035
|
+
steps: z20.array(ConversationActivityStepSchema).max(CONVERSATION_ACTIVITY_STEP_LIMIT)
|
|
1978
2036
|
}).strict();
|
|
1979
|
-
var ConversationNoticeSchema =
|
|
2037
|
+
var ConversationNoticeSchema = z20.object({
|
|
1980
2038
|
...ConversationItemBaseShape,
|
|
1981
|
-
kind:
|
|
1982
|
-
actor:
|
|
1983
|
-
severity:
|
|
1984
|
-
title:
|
|
1985
|
-
content:
|
|
1986
|
-
presentation:
|
|
2039
|
+
kind: z20.literal("notice"),
|
|
2040
|
+
actor: z20.enum(["system", "assistant", "subagent"]),
|
|
2041
|
+
severity: z20.enum(["info", "success", "warning", "error"]),
|
|
2042
|
+
title: z20.string().trim().min(1).max(256),
|
|
2043
|
+
content: z20.string().max(4096),
|
|
2044
|
+
presentation: z20.literal("compact").optional()
|
|
1987
2045
|
}).strict();
|
|
1988
|
-
var ConversationPlanTodoSchema =
|
|
2046
|
+
var ConversationPlanTodoSchema = z20.object({
|
|
1989
2047
|
id: IdSchema,
|
|
1990
|
-
title:
|
|
1991
|
-
description:
|
|
1992
|
-
status:
|
|
1993
|
-
dependsOn:
|
|
2048
|
+
title: z20.string().trim().min(1).max(1024),
|
|
2049
|
+
description: z20.string().max(4096).optional(),
|
|
2050
|
+
status: z20.string().trim().min(1).max(64),
|
|
2051
|
+
dependsOn: z20.array(IdSchema).max(100)
|
|
1994
2052
|
}).strict();
|
|
1995
|
-
var ConversationPlanUpdateSchema =
|
|
2053
|
+
var ConversationPlanUpdateSchema = z20.object({
|
|
1996
2054
|
...ConversationItemBaseShape,
|
|
1997
|
-
kind:
|
|
1998
|
-
actor:
|
|
1999
|
-
operation:
|
|
2000
|
-
content:
|
|
2001
|
-
todos:
|
|
2055
|
+
kind: z20.literal("plan-update"),
|
|
2056
|
+
actor: z20.enum(["assistant", "subagent"]),
|
|
2057
|
+
operation: z20.enum(["created", "updated", "deleted"]),
|
|
2058
|
+
content: z20.string().max(1e5),
|
|
2059
|
+
todos: z20.array(ConversationPlanTodoSchema).max(1e3)
|
|
2002
2060
|
}).strict();
|
|
2003
|
-
var ConversationItemSchema =
|
|
2061
|
+
var ConversationItemSchema = z20.discriminatedUnion("kind", [
|
|
2004
2062
|
ConversationHumanMessageSchema,
|
|
2005
2063
|
ConversationAssistantMessageSchema,
|
|
2006
2064
|
ConversationActivityGroupSchema,
|
|
2007
2065
|
ConversationNoticeSchema,
|
|
2008
2066
|
ConversationPlanUpdateSchema
|
|
2009
2067
|
]);
|
|
2010
|
-
var ConversationItemUpsertSchema =
|
|
2068
|
+
var ConversationItemUpsertSchema = z20.object({
|
|
2011
2069
|
userId: IdSchema,
|
|
2012
2070
|
machineId: IdSchema,
|
|
2013
2071
|
sessionId: IdSchema,
|
|
2014
2072
|
item: ConversationItemSchema
|
|
2015
2073
|
});
|
|
2016
|
-
var ConversationActivityStepUpsertSchema =
|
|
2074
|
+
var ConversationActivityStepUpsertSchema = z20.object({
|
|
2017
2075
|
userId: IdSchema,
|
|
2018
2076
|
machineId: IdSchema,
|
|
2019
2077
|
sessionId: IdSchema,
|
|
2020
2078
|
activityId: IdSchema,
|
|
2021
|
-
revision:
|
|
2079
|
+
revision: z20.number().int().positive(),
|
|
2022
2080
|
turnId: IdSchema,
|
|
2023
2081
|
timestamp: IsoDateSchema,
|
|
2024
|
-
actor:
|
|
2025
|
-
status:
|
|
2082
|
+
actor: z20.enum(["assistant", "subagent"]),
|
|
2083
|
+
status: z20.enum(["running", "completed", "failed"]),
|
|
2026
2084
|
sourceEventId: IdSchema,
|
|
2027
2085
|
step: ConversationActivityStepSchema
|
|
2028
2086
|
}).strict();
|
|
2029
2087
|
|
|
2030
2088
|
// ../../shared/protocol/dist/conversation/timeline.js
|
|
2031
|
-
var SessionUserPreviewSchema =
|
|
2089
|
+
var SessionUserPreviewSchema = z21.object({
|
|
2032
2090
|
id: IdSchema,
|
|
2033
|
-
revision:
|
|
2091
|
+
revision: z21.number().int().positive(),
|
|
2034
2092
|
timestamp: IsoDateSchema,
|
|
2035
|
-
text:
|
|
2093
|
+
text: z21.string().max(4096)
|
|
2036
2094
|
});
|
|
2037
|
-
var SessionAssistantPreviewSchema =
|
|
2095
|
+
var SessionAssistantPreviewSchema = z21.object({
|
|
2038
2096
|
id: IdSchema,
|
|
2039
|
-
revision:
|
|
2097
|
+
revision: z21.number().int().positive(),
|
|
2040
2098
|
timestamp: IsoDateSchema,
|
|
2041
|
-
sourceEventIds:
|
|
2042
|
-
text:
|
|
2043
|
-
final:
|
|
2044
|
-
attachments:
|
|
2099
|
+
sourceEventIds: z21.array(IdSchema).min(1).max(1e3),
|
|
2100
|
+
text: z21.string().max(4096),
|
|
2101
|
+
final: z21.boolean(),
|
|
2102
|
+
attachments: z21.array(ConversationAttachmentSchema.refine((attachment) => attachment.kind === "image" && attachment.imageRef === "sha256", "Assistant previews contain image references only")).max(4)
|
|
2045
2103
|
});
|
|
2046
2104
|
var SESSION_TIMELINE_PAGE_SIZE = 100;
|
|
2047
|
-
var SessionTimelinePageRequestSchema =
|
|
2105
|
+
var SessionTimelinePageRequestSchema = z21.object({
|
|
2048
2106
|
requestId: IdSchema,
|
|
2049
2107
|
machineId: IdSchema,
|
|
2050
2108
|
sessionId: IdSchema,
|
|
2051
|
-
cursor:
|
|
2052
|
-
metadataOnly:
|
|
2053
|
-
acceptContentEncodings:
|
|
2054
|
-
imageReferences:
|
|
2055
|
-
pageSize:
|
|
2056
|
-
assistantPreview:
|
|
2109
|
+
cursor: z21.string().max(32768).optional(),
|
|
2110
|
+
metadataOnly: z21.boolean().optional(),
|
|
2111
|
+
acceptContentEncodings: z21.array(z21.string().min(1).max(32)).max(8).optional(),
|
|
2112
|
+
imageReferences: z21.boolean().optional(),
|
|
2113
|
+
pageSize: z21.number().int().min(1).max(SESSION_TIMELINE_PAGE_SIZE).default(SESSION_TIMELINE_PAGE_SIZE),
|
|
2114
|
+
assistantPreview: z21.boolean().optional()
|
|
2057
2115
|
});
|
|
2058
|
-
var SessionWatchRequestSchema =
|
|
2116
|
+
var SessionWatchRequestSchema = z21.object({
|
|
2059
2117
|
requestId: IdSchema,
|
|
2060
2118
|
machineId: IdSchema,
|
|
2061
2119
|
sessionId: IdSchema,
|
|
2062
|
-
watching:
|
|
2120
|
+
watching: z21.boolean()
|
|
2063
2121
|
}).strict();
|
|
2064
|
-
var SessionWatchResultSchema =
|
|
2065
|
-
|
|
2066
|
-
ok:
|
|
2122
|
+
var SessionWatchResultSchema = z21.discriminatedUnion("ok", [
|
|
2123
|
+
z21.object({
|
|
2124
|
+
ok: z21.literal(true),
|
|
2067
2125
|
requestId: IdSchema,
|
|
2068
2126
|
machineId: IdSchema,
|
|
2069
2127
|
sessionId: IdSchema,
|
|
2070
|
-
watching:
|
|
2128
|
+
watching: z21.boolean()
|
|
2071
2129
|
}).strict(),
|
|
2072
|
-
|
|
2073
|
-
ok:
|
|
2130
|
+
z21.object({
|
|
2131
|
+
ok: z21.literal(false),
|
|
2074
2132
|
requestId: IdSchema,
|
|
2075
2133
|
machineId: IdSchema,
|
|
2076
2134
|
sessionId: IdSchema,
|
|
2077
|
-
watching:
|
|
2135
|
+
watching: z21.boolean(),
|
|
2078
2136
|
error: ProtocolFailureSchema
|
|
2079
2137
|
}).strict()
|
|
2080
2138
|
]);
|
|
2081
|
-
var SessionTimelinePageSchema =
|
|
2082
|
-
items:
|
|
2083
|
-
cursor:
|
|
2084
|
-
hasMore:
|
|
2085
|
-
cursorStatus:
|
|
2139
|
+
var SessionTimelinePageSchema = z21.object({
|
|
2140
|
+
items: z21.array(ConversationItemSchema).max(SESSION_TIMELINE_PAGE_SIZE),
|
|
2141
|
+
cursor: z21.string().max(32768),
|
|
2142
|
+
hasMore: z21.boolean(),
|
|
2143
|
+
cursorStatus: z21.enum(["ok", "expired"]),
|
|
2086
2144
|
assistantPreview: SessionAssistantPreviewSchema.optional(),
|
|
2087
2145
|
userPreview: SessionUserPreviewSchema.optional(),
|
|
2088
|
-
previewsComplete:
|
|
2146
|
+
previewsComplete: z21.boolean().optional()
|
|
2089
2147
|
});
|
|
2090
|
-
var SessionTimelinePageResultSchema =
|
|
2091
|
-
|
|
2092
|
-
ok:
|
|
2148
|
+
var SessionTimelinePageResultSchema = z21.discriminatedUnion("ok", [
|
|
2149
|
+
z21.object({
|
|
2150
|
+
ok: z21.literal(true),
|
|
2093
2151
|
requestId: IdSchema,
|
|
2094
2152
|
machineId: IdSchema,
|
|
2095
2153
|
sessionId: IdSchema,
|
|
2096
2154
|
page: SessionTimelinePageSchema
|
|
2097
2155
|
}),
|
|
2098
|
-
|
|
2099
|
-
ok:
|
|
2156
|
+
z21.object({
|
|
2157
|
+
ok: z21.literal(false),
|
|
2100
2158
|
requestId: IdSchema,
|
|
2101
2159
|
machineId: IdSchema,
|
|
2102
2160
|
sessionId: IdSchema,
|
|
2103
2161
|
error: ProtocolFailureSchema
|
|
2104
2162
|
})
|
|
2105
2163
|
]);
|
|
2106
|
-
var SessionTimelineInvalidatedSchema =
|
|
2164
|
+
var SessionTimelineInvalidatedSchema = z21.object({
|
|
2107
2165
|
userId: IdSchema,
|
|
2108
2166
|
machineId: IdSchema,
|
|
2109
2167
|
sessionId: IdSchema,
|
|
2110
|
-
reason:
|
|
2168
|
+
reason: z21.enum(["clear", "rewind"]),
|
|
2111
2169
|
sourceEventId: IdSchema,
|
|
2112
2170
|
timestamp: IsoDateSchema
|
|
2113
2171
|
}).strict();
|
|
2114
2172
|
|
|
2115
2173
|
// ../../shared/protocol/dist/sessions/prompts.js
|
|
2116
2174
|
var MAX_PROMPT_IMAGE_BYTES = 3 * 1024 * 1024;
|
|
2117
|
-
var SessionPromptRequestSchema =
|
|
2175
|
+
var SessionPromptRequestSchema = z22.object({
|
|
2118
2176
|
requestId: IdSchema,
|
|
2119
2177
|
operationId: IdSchema,
|
|
2120
2178
|
machineId: IdSchema,
|
|
2121
2179
|
sessionId: IdSchema,
|
|
2122
|
-
prompt:
|
|
2123
|
-
attachments:
|
|
2124
|
-
fileAttachments:
|
|
2125
|
-
mode:
|
|
2180
|
+
prompt: z22.string().trim().max(1e5),
|
|
2181
|
+
attachments: z22.array(PromptImageAttachmentSchema).max(4).optional(),
|
|
2182
|
+
fileAttachments: z22.array(PromptFileAttachmentSchema).max(4).optional(),
|
|
2183
|
+
mode: z22.enum(["enqueue", "immediate"]).default("enqueue")
|
|
2126
2184
|
}).strict().superRefine((request, context) => {
|
|
2127
2185
|
if (request.prompt.length === 0 && (request.attachments?.length ?? 0) === 0 && (request.fileAttachments?.length ?? 0) === 0) {
|
|
2128
2186
|
context.addIssue({
|
|
@@ -2148,22 +2206,22 @@ var SessionPromptRequestSchema = z21.object({
|
|
|
2148
2206
|
});
|
|
2149
2207
|
}
|
|
2150
2208
|
});
|
|
2151
|
-
var SessionPromptResultSchema =
|
|
2152
|
-
|
|
2153
|
-
ok:
|
|
2209
|
+
var SessionPromptResultSchema = z22.discriminatedUnion("ok", [
|
|
2210
|
+
z22.object({
|
|
2211
|
+
ok: z22.literal(true),
|
|
2154
2212
|
requestId: IdSchema,
|
|
2155
2213
|
operationId: IdSchema,
|
|
2156
2214
|
machineId: IdSchema,
|
|
2157
2215
|
sessionId: IdSchema,
|
|
2158
2216
|
messageId: IdSchema,
|
|
2159
|
-
mode:
|
|
2160
|
-
deliveryState:
|
|
2217
|
+
mode: z22.enum(["enqueue", "immediate"]),
|
|
2218
|
+
deliveryState: z22.enum(["queued", "processing"]),
|
|
2161
2219
|
// Negotiated lower bound from the native event clock. Exact text and history
|
|
2162
2220
|
// ownership checks still apply; this is not an identity or proof of persistence.
|
|
2163
2221
|
submittedAt: IsoDateSchema.optional()
|
|
2164
2222
|
}),
|
|
2165
|
-
|
|
2166
|
-
ok:
|
|
2223
|
+
z22.object({
|
|
2224
|
+
ok: z22.literal(false),
|
|
2167
2225
|
requestId: IdSchema,
|
|
2168
2226
|
operationId: IdSchema,
|
|
2169
2227
|
machineId: IdSchema,
|
|
@@ -2171,29 +2229,29 @@ var SessionPromptResultSchema = z21.discriminatedUnion("ok", [
|
|
|
2171
2229
|
error: ProtocolFailureSchema
|
|
2172
2230
|
})
|
|
2173
2231
|
]);
|
|
2174
|
-
var SessionActivityUpdateSchema =
|
|
2232
|
+
var SessionActivityUpdateSchema = z22.object({
|
|
2175
2233
|
userId: IdSchema,
|
|
2176
2234
|
machineId: IdSchema,
|
|
2177
2235
|
sessionId: IdSchema,
|
|
2178
|
-
state:
|
|
2236
|
+
state: z22.enum(["working", "idle"]),
|
|
2179
2237
|
occurredAt: IsoDateSchema,
|
|
2180
2238
|
assistantPreview: SessionAssistantPreviewSchema.optional(),
|
|
2181
2239
|
userPreview: SessionUserPreviewSchema.optional()
|
|
2182
2240
|
});
|
|
2183
|
-
var SessionAbortRequestSchema =
|
|
2241
|
+
var SessionAbortRequestSchema = z22.object({
|
|
2184
2242
|
requestId: IdSchema,
|
|
2185
2243
|
machineId: IdSchema,
|
|
2186
2244
|
sessionId: IdSchema
|
|
2187
2245
|
});
|
|
2188
|
-
var SessionAbortResultSchema =
|
|
2189
|
-
|
|
2190
|
-
ok:
|
|
2246
|
+
var SessionAbortResultSchema = z22.discriminatedUnion("ok", [
|
|
2247
|
+
z22.object({
|
|
2248
|
+
ok: z22.literal(true),
|
|
2191
2249
|
requestId: IdSchema,
|
|
2192
2250
|
machineId: IdSchema,
|
|
2193
2251
|
sessionId: IdSchema
|
|
2194
2252
|
}),
|
|
2195
|
-
|
|
2196
|
-
ok:
|
|
2253
|
+
z22.object({
|
|
2254
|
+
ok: z22.literal(false),
|
|
2197
2255
|
requestId: IdSchema,
|
|
2198
2256
|
machineId: IdSchema,
|
|
2199
2257
|
sessionId: IdSchema,
|
|
@@ -2202,12 +2260,12 @@ var SessionAbortResultSchema = z21.discriminatedUnion("ok", [
|
|
|
2202
2260
|
]);
|
|
2203
2261
|
|
|
2204
2262
|
// ../../shared/protocol/dist/sessions/interactions.js
|
|
2205
|
-
import { z as
|
|
2206
|
-
var InteractionFormFieldSchema =
|
|
2263
|
+
import { z as z23 } from "zod";
|
|
2264
|
+
var InteractionFormFieldSchema = z23.object({
|
|
2207
2265
|
id: IdSchema,
|
|
2208
|
-
label:
|
|
2209
|
-
description:
|
|
2210
|
-
inputType:
|
|
2266
|
+
label: z23.string().trim().min(1).max(1024),
|
|
2267
|
+
description: z23.string().max(2048).optional(),
|
|
2268
|
+
inputType: z23.enum([
|
|
2211
2269
|
"text",
|
|
2212
2270
|
"number",
|
|
2213
2271
|
"integer",
|
|
@@ -2215,77 +2273,77 @@ var InteractionFormFieldSchema = z22.object({
|
|
|
2215
2273
|
"select",
|
|
2216
2274
|
"multi-select"
|
|
2217
2275
|
]),
|
|
2218
|
-
required:
|
|
2219
|
-
options:
|
|
2220
|
-
defaultValue:
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2276
|
+
required: z23.boolean(),
|
|
2277
|
+
options: z23.array(z23.string().max(1024)).max(100),
|
|
2278
|
+
defaultValue: z23.union([
|
|
2279
|
+
z23.string().max(4096),
|
|
2280
|
+
z23.number().finite(),
|
|
2281
|
+
z23.boolean(),
|
|
2282
|
+
z23.array(z23.string().max(1024)).max(100)
|
|
2225
2283
|
]).optional(),
|
|
2226
|
-
minimum:
|
|
2227
|
-
maximum:
|
|
2228
|
-
minLength:
|
|
2229
|
-
maxLength:
|
|
2230
|
-
minItems:
|
|
2231
|
-
maxItems:
|
|
2232
|
-
format:
|
|
2284
|
+
minimum: z23.number().finite().optional(),
|
|
2285
|
+
maximum: z23.number().finite().optional(),
|
|
2286
|
+
minLength: z23.number().int().nonnegative().max(1e6).optional(),
|
|
2287
|
+
maxLength: z23.number().int().nonnegative().max(1e6).optional(),
|
|
2288
|
+
minItems: z23.number().int().nonnegative().max(100).optional(),
|
|
2289
|
+
maxItems: z23.number().int().nonnegative().max(100).optional(),
|
|
2290
|
+
format: z23.enum(["email", "uri", "date", "date-time"]).optional()
|
|
2233
2291
|
}).strict();
|
|
2234
|
-
var InteractionPermissionRequestSchema =
|
|
2235
|
-
kind:
|
|
2292
|
+
var InteractionPermissionRequestSchema = z23.object({
|
|
2293
|
+
kind: z23.literal("permission"),
|
|
2236
2294
|
permissionKind: IdSchema,
|
|
2237
|
-
title:
|
|
2238
|
-
description:
|
|
2239
|
-
canApproveSession:
|
|
2240
|
-
canApproveAlways:
|
|
2241
|
-
approvalScope:
|
|
2295
|
+
title: z23.string().trim().min(1).max(256),
|
|
2296
|
+
description: z23.string().max(4096),
|
|
2297
|
+
canApproveSession: z23.boolean(),
|
|
2298
|
+
canApproveAlways: z23.boolean().optional(),
|
|
2299
|
+
approvalScope: z23.string().trim().min(1).max(4096).optional()
|
|
2242
2300
|
}).strict();
|
|
2243
|
-
var InteractionUserInputRequestSchema =
|
|
2244
|
-
kind:
|
|
2245
|
-
question:
|
|
2246
|
-
choices:
|
|
2247
|
-
allowFreeform:
|
|
2301
|
+
var InteractionUserInputRequestSchema = z23.object({
|
|
2302
|
+
kind: z23.literal("user_input"),
|
|
2303
|
+
question: z23.string().trim().min(1).max(4096),
|
|
2304
|
+
choices: z23.array(z23.string().max(1024)).max(100),
|
|
2305
|
+
allowFreeform: z23.boolean()
|
|
2248
2306
|
}).strict();
|
|
2249
|
-
var InteractionElicitationRequestSchema =
|
|
2250
|
-
kind:
|
|
2251
|
-
message:
|
|
2252
|
-
mode:
|
|
2253
|
-
source:
|
|
2254
|
-
url:
|
|
2255
|
-
fields:
|
|
2307
|
+
var InteractionElicitationRequestSchema = z23.object({
|
|
2308
|
+
kind: z23.literal("elicitation"),
|
|
2309
|
+
message: z23.string().trim().min(1).max(4096),
|
|
2310
|
+
mode: z23.enum(["form", "url"]),
|
|
2311
|
+
source: z23.string().trim().min(1).max(256).optional(),
|
|
2312
|
+
url: z23.url().max(32768).optional(),
|
|
2313
|
+
fields: z23.array(InteractionFormFieldSchema).max(100)
|
|
2256
2314
|
}).strict();
|
|
2257
|
-
var InteractionMcpOauthRequestSchema =
|
|
2258
|
-
kind:
|
|
2259
|
-
serverName:
|
|
2260
|
-
serverUrl:
|
|
2261
|
-
reason:
|
|
2262
|
-
responseMode:
|
|
2315
|
+
var InteractionMcpOauthRequestSchema = z23.object({
|
|
2316
|
+
kind: z23.literal("mcp_oauth"),
|
|
2317
|
+
serverName: z23.string().trim().min(1).max(256),
|
|
2318
|
+
serverUrl: z23.url().max(32768),
|
|
2319
|
+
reason: z23.enum(["initial", "refresh", "reauth", "upscope"]),
|
|
2320
|
+
responseMode: z23.literal("cancel-only")
|
|
2263
2321
|
}).strict();
|
|
2264
|
-
var InteractionMcpHeadersRequestSchema =
|
|
2265
|
-
kind:
|
|
2266
|
-
serverName:
|
|
2267
|
-
serverUrl:
|
|
2268
|
-
reason:
|
|
2269
|
-
responseMode:
|
|
2322
|
+
var InteractionMcpHeadersRequestSchema = z23.object({
|
|
2323
|
+
kind: z23.literal("mcp_headers"),
|
|
2324
|
+
serverName: z23.string().trim().min(1).max(256),
|
|
2325
|
+
serverUrl: z23.url().max(32768),
|
|
2326
|
+
reason: z23.string().trim().min(1).max(256),
|
|
2327
|
+
responseMode: z23.literal("none-only")
|
|
2270
2328
|
}).strict();
|
|
2271
|
-
var InteractionAutoModeSwitchRequestSchema =
|
|
2272
|
-
kind:
|
|
2329
|
+
var InteractionAutoModeSwitchRequestSchema = z23.object({
|
|
2330
|
+
kind: z23.literal("auto_mode_switch"),
|
|
2273
2331
|
errorCode: IdSchema.optional(),
|
|
2274
|
-
retryAfterSeconds:
|
|
2332
|
+
retryAfterSeconds: z23.number().int().nonnegative().optional()
|
|
2275
2333
|
}).strict();
|
|
2276
|
-
var InteractionSessionLimitsRequestSchema =
|
|
2277
|
-
kind:
|
|
2278
|
-
maxAiCredits:
|
|
2279
|
-
usedAiCredits:
|
|
2334
|
+
var InteractionSessionLimitsRequestSchema = z23.object({
|
|
2335
|
+
kind: z23.literal("session_limits"),
|
|
2336
|
+
maxAiCredits: z23.number().finite().nonnegative(),
|
|
2337
|
+
usedAiCredits: z23.number().finite().nonnegative()
|
|
2280
2338
|
}).strict();
|
|
2281
|
-
var InteractionExitPlanRequestSchema =
|
|
2282
|
-
kind:
|
|
2283
|
-
summary:
|
|
2284
|
-
planContent:
|
|
2285
|
-
actions:
|
|
2339
|
+
var InteractionExitPlanRequestSchema = z23.object({
|
|
2340
|
+
kind: z23.literal("exit_plan"),
|
|
2341
|
+
summary: z23.string().max(4096),
|
|
2342
|
+
planContent: z23.string().max(1e5).optional(),
|
|
2343
|
+
actions: z23.array(IdSchema).min(1).max(20),
|
|
2286
2344
|
recommendedAction: IdSchema
|
|
2287
2345
|
}).strict();
|
|
2288
|
-
var InteractionRequestSchema =
|
|
2346
|
+
var InteractionRequestSchema = z23.discriminatedUnion("kind", [
|
|
2289
2347
|
InteractionPermissionRequestSchema,
|
|
2290
2348
|
InteractionUserInputRequestSchema,
|
|
2291
2349
|
InteractionElicitationRequestSchema,
|
|
@@ -2295,81 +2353,81 @@ var InteractionRequestSchema = z22.discriminatedUnion("kind", [
|
|
|
2295
2353
|
InteractionSessionLimitsRequestSchema,
|
|
2296
2354
|
InteractionExitPlanRequestSchema
|
|
2297
2355
|
]);
|
|
2298
|
-
var InteractionPermissionResponseSchema =
|
|
2299
|
-
kind:
|
|
2300
|
-
decision:
|
|
2301
|
-
feedback:
|
|
2356
|
+
var InteractionPermissionResponseSchema = z23.object({
|
|
2357
|
+
kind: z23.literal("permission"),
|
|
2358
|
+
decision: z23.enum(["approve-once", "approve-for-session", "approve-always", "reject"]),
|
|
2359
|
+
feedback: z23.string().trim().min(1).max(2048).optional()
|
|
2302
2360
|
}).strict();
|
|
2303
|
-
var InteractionUserInputResponseSchema =
|
|
2304
|
-
kind:
|
|
2305
|
-
answer:
|
|
2306
|
-
wasFreeform:
|
|
2361
|
+
var InteractionUserInputResponseSchema = z23.object({
|
|
2362
|
+
kind: z23.literal("user_input"),
|
|
2363
|
+
answer: z23.string().max(1e5),
|
|
2364
|
+
wasFreeform: z23.boolean()
|
|
2307
2365
|
}).strict();
|
|
2308
|
-
var InteractionFieldValueSchema =
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2366
|
+
var InteractionFieldValueSchema = z23.union([
|
|
2367
|
+
z23.string().max(4096),
|
|
2368
|
+
z23.number(),
|
|
2369
|
+
z23.boolean(),
|
|
2370
|
+
z23.array(z23.string().max(1024)).max(100)
|
|
2313
2371
|
]);
|
|
2314
|
-
var InteractionElicitationResponseSchema =
|
|
2315
|
-
kind:
|
|
2316
|
-
action:
|
|
2317
|
-
values:
|
|
2372
|
+
var InteractionElicitationResponseSchema = z23.object({
|
|
2373
|
+
kind: z23.literal("elicitation"),
|
|
2374
|
+
action: z23.enum(["accept", "decline", "cancel"]),
|
|
2375
|
+
values: z23.record(z23.string().max(256), InteractionFieldValueSchema)
|
|
2318
2376
|
}).strict();
|
|
2319
|
-
var InteractionMcpOauthResponseSchema =
|
|
2320
|
-
kind:
|
|
2321
|
-
action:
|
|
2377
|
+
var InteractionMcpOauthResponseSchema = z23.object({
|
|
2378
|
+
kind: z23.literal("mcp_oauth"),
|
|
2379
|
+
action: z23.literal("cancel")
|
|
2322
2380
|
}).strict();
|
|
2323
|
-
var InteractionMcpHeadersResponseSchema =
|
|
2324
|
-
kind:
|
|
2325
|
-
action:
|
|
2381
|
+
var InteractionMcpHeadersResponseSchema = z23.object({
|
|
2382
|
+
kind: z23.literal("mcp_headers"),
|
|
2383
|
+
action: z23.literal("none")
|
|
2326
2384
|
}).strict();
|
|
2327
|
-
var InteractionAutoModeSwitchResponseSchema =
|
|
2328
|
-
kind:
|
|
2329
|
-
action:
|
|
2385
|
+
var InteractionAutoModeSwitchResponseSchema = z23.object({
|
|
2386
|
+
kind: z23.literal("auto_mode_switch"),
|
|
2387
|
+
action: z23.enum(["yes", "yes_always", "no"])
|
|
2330
2388
|
}).strict();
|
|
2331
|
-
var InteractionSessionLimitsResponseSchema =
|
|
2332
|
-
kind:
|
|
2333
|
-
action:
|
|
2334
|
-
additionalAiCredits:
|
|
2335
|
-
maxAiCredits:
|
|
2389
|
+
var InteractionSessionLimitsResponseSchema = z23.object({
|
|
2390
|
+
kind: z23.literal("session_limits"),
|
|
2391
|
+
action: z23.enum(["add", "set", "unset", "cancel"]),
|
|
2392
|
+
additionalAiCredits: z23.number().positive().optional(),
|
|
2393
|
+
maxAiCredits: z23.number().positive().optional()
|
|
2336
2394
|
}).strict().superRefine((response, context) => {
|
|
2337
2395
|
if (response.action === "add" && response.additionalAiCredits === void 0) {
|
|
2338
2396
|
context.addIssue({
|
|
2339
|
-
code:
|
|
2397
|
+
code: z23.ZodIssueCode.custom,
|
|
2340
2398
|
path: ["additionalAiCredits"],
|
|
2341
2399
|
message: "additionalAiCredits is required for add"
|
|
2342
2400
|
});
|
|
2343
2401
|
}
|
|
2344
2402
|
if (response.action === "set" && response.maxAiCredits === void 0) {
|
|
2345
2403
|
context.addIssue({
|
|
2346
|
-
code:
|
|
2404
|
+
code: z23.ZodIssueCode.custom,
|
|
2347
2405
|
path: ["maxAiCredits"],
|
|
2348
2406
|
message: "maxAiCredits is required for set"
|
|
2349
2407
|
});
|
|
2350
2408
|
}
|
|
2351
2409
|
if (response.action !== "add" && response.additionalAiCredits !== void 0) {
|
|
2352
2410
|
context.addIssue({
|
|
2353
|
-
code:
|
|
2411
|
+
code: z23.ZodIssueCode.custom,
|
|
2354
2412
|
path: ["additionalAiCredits"],
|
|
2355
2413
|
message: "additionalAiCredits is only valid for add"
|
|
2356
2414
|
});
|
|
2357
2415
|
}
|
|
2358
2416
|
if (response.action !== "set" && response.maxAiCredits !== void 0) {
|
|
2359
2417
|
context.addIssue({
|
|
2360
|
-
code:
|
|
2418
|
+
code: z23.ZodIssueCode.custom,
|
|
2361
2419
|
path: ["maxAiCredits"],
|
|
2362
2420
|
message: "maxAiCredits is only valid for set"
|
|
2363
2421
|
});
|
|
2364
2422
|
}
|
|
2365
2423
|
});
|
|
2366
|
-
var InteractionExitPlanResponseSchema =
|
|
2367
|
-
kind:
|
|
2368
|
-
approved:
|
|
2424
|
+
var InteractionExitPlanResponseSchema = z23.object({
|
|
2425
|
+
kind: z23.literal("exit_plan"),
|
|
2426
|
+
approved: z23.boolean(),
|
|
2369
2427
|
selectedAction: IdSchema.optional(),
|
|
2370
|
-
feedback:
|
|
2428
|
+
feedback: z23.string().trim().min(1).max(4096).optional()
|
|
2371
2429
|
}).strict();
|
|
2372
|
-
var InteractionResponseSchema =
|
|
2430
|
+
var InteractionResponseSchema = z23.discriminatedUnion("kind", [
|
|
2373
2431
|
InteractionPermissionResponseSchema,
|
|
2374
2432
|
InteractionUserInputResponseSchema,
|
|
2375
2433
|
InteractionElicitationResponseSchema,
|
|
@@ -2379,30 +2437,30 @@ var InteractionResponseSchema = z22.discriminatedUnion("kind", [
|
|
|
2379
2437
|
InteractionSessionLimitsResponseSchema,
|
|
2380
2438
|
InteractionExitPlanResponseSchema
|
|
2381
2439
|
]);
|
|
2382
|
-
var InteractionRequestPayloadSchema =
|
|
2440
|
+
var InteractionRequestPayloadSchema = z23.object({
|
|
2383
2441
|
interactionRequestId: IdSchema,
|
|
2384
2442
|
userId: IdSchema,
|
|
2385
2443
|
machineId: IdSchema,
|
|
2386
2444
|
sessionId: IdSchema,
|
|
2387
2445
|
request: InteractionRequestSchema
|
|
2388
2446
|
}).strict();
|
|
2389
|
-
var InteractionRespondRequestSchema =
|
|
2447
|
+
var InteractionRespondRequestSchema = z23.object({
|
|
2390
2448
|
requestId: IdSchema,
|
|
2391
2449
|
interactionRequestId: IdSchema,
|
|
2392
2450
|
machineId: IdSchema,
|
|
2393
2451
|
sessionId: IdSchema,
|
|
2394
2452
|
response: InteractionResponseSchema
|
|
2395
2453
|
}).strict();
|
|
2396
|
-
var InteractionRespondResultSchema =
|
|
2397
|
-
|
|
2398
|
-
ok:
|
|
2454
|
+
var InteractionRespondResultSchema = z23.discriminatedUnion("ok", [
|
|
2455
|
+
z23.object({
|
|
2456
|
+
ok: z23.literal(true),
|
|
2399
2457
|
requestId: IdSchema,
|
|
2400
2458
|
interactionRequestId: IdSchema,
|
|
2401
2459
|
machineId: IdSchema,
|
|
2402
2460
|
sessionId: IdSchema
|
|
2403
2461
|
}).strict(),
|
|
2404
|
-
|
|
2405
|
-
ok:
|
|
2462
|
+
z23.object({
|
|
2463
|
+
ok: z23.literal(false),
|
|
2406
2464
|
requestId: IdSchema,
|
|
2407
2465
|
interactionRequestId: IdSchema,
|
|
2408
2466
|
machineId: IdSchema,
|
|
@@ -2410,31 +2468,31 @@ var InteractionRespondResultSchema = z22.discriminatedUnion("ok", [
|
|
|
2410
2468
|
error: ProtocolFailureSchema
|
|
2411
2469
|
}).strict()
|
|
2412
2470
|
]);
|
|
2413
|
-
var PermissionRequestPayloadSchema =
|
|
2471
|
+
var PermissionRequestPayloadSchema = z23.object({
|
|
2414
2472
|
permissionRequestId: IdSchema,
|
|
2415
2473
|
userId: IdSchema,
|
|
2416
2474
|
machineId: IdSchema,
|
|
2417
2475
|
sessionId: IdSchema,
|
|
2418
|
-
request:
|
|
2476
|
+
request: z23.record(z23.string(), z23.unknown())
|
|
2419
2477
|
});
|
|
2420
|
-
var PermissionRespondRequestSchema =
|
|
2478
|
+
var PermissionRespondRequestSchema = z23.object({
|
|
2421
2479
|
requestId: IdSchema,
|
|
2422
2480
|
permissionRequestId: IdSchema,
|
|
2423
2481
|
machineId: IdSchema,
|
|
2424
2482
|
sessionId: IdSchema,
|
|
2425
|
-
decision:
|
|
2426
|
-
feedback:
|
|
2483
|
+
decision: z23.enum(["approve-once", "reject"]),
|
|
2484
|
+
feedback: z23.string().trim().min(1).max(2048).optional()
|
|
2427
2485
|
});
|
|
2428
|
-
var PermissionRespondResultSchema =
|
|
2429
|
-
|
|
2430
|
-
ok:
|
|
2486
|
+
var PermissionRespondResultSchema = z23.discriminatedUnion("ok", [
|
|
2487
|
+
z23.object({
|
|
2488
|
+
ok: z23.literal(true),
|
|
2431
2489
|
requestId: IdSchema,
|
|
2432
2490
|
permissionRequestId: IdSchema,
|
|
2433
2491
|
machineId: IdSchema,
|
|
2434
2492
|
sessionId: IdSchema
|
|
2435
2493
|
}),
|
|
2436
|
-
|
|
2437
|
-
ok:
|
|
2494
|
+
z23.object({
|
|
2495
|
+
ok: z23.literal(false),
|
|
2438
2496
|
requestId: IdSchema,
|
|
2439
2497
|
permissionRequestId: IdSchema,
|
|
2440
2498
|
machineId: IdSchema,
|
|
@@ -2444,42 +2502,42 @@ var PermissionRespondResultSchema = z22.discriminatedUnion("ok", [
|
|
|
2444
2502
|
]);
|
|
2445
2503
|
|
|
2446
2504
|
// ../../shared/protocol/dist/conversation/timeline-sync.js
|
|
2447
|
-
import { z as
|
|
2505
|
+
import { z as z24 } from "zod";
|
|
2448
2506
|
var TIMELINE_SYNC_MAX_EVENTS = 128;
|
|
2449
2507
|
var TIMELINE_SYNC_MAX_BYTES = 6 * 1024 * 1024;
|
|
2450
2508
|
var TIMELINE_IMAGE_CHUNK_BYTES = 48 * 1024;
|
|
2451
2509
|
var TIMELINE_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
|
|
2452
|
-
var identity =
|
|
2453
|
-
var sequence =
|
|
2454
|
-
var hash =
|
|
2455
|
-
var TimelineWatermarkSchema =
|
|
2510
|
+
var identity = z24.string().min(1).max(256);
|
|
2511
|
+
var sequence = z24.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
|
|
2512
|
+
var hash = z24.string().regex(/^[a-f0-9]{64}$/u);
|
|
2513
|
+
var TimelineWatermarkSchema = z24.object({
|
|
2456
2514
|
epoch: identity,
|
|
2457
2515
|
sequence
|
|
2458
2516
|
}).strict();
|
|
2459
|
-
var TimelineSyncRequestSchema =
|
|
2517
|
+
var TimelineSyncRequestSchema = z24.object({
|
|
2460
2518
|
watermark: TimelineWatermarkSchema.optional(),
|
|
2461
|
-
waitMs:
|
|
2462
|
-
resume:
|
|
2519
|
+
waitMs: z24.number().int().min(0).max(2e4).optional(),
|
|
2520
|
+
resume: z24.boolean().optional()
|
|
2463
2521
|
}).strict();
|
|
2464
|
-
var TimelineTextAppendSchema =
|
|
2522
|
+
var TimelineTextAppendSchema = z24.object({
|
|
2465
2523
|
itemId: identity,
|
|
2466
|
-
baseRevision:
|
|
2467
|
-
revision:
|
|
2468
|
-
appendText:
|
|
2469
|
-
sourceEventIds:
|
|
2470
|
-
sourceMessageIds:
|
|
2471
|
-
sourceInteractionIds:
|
|
2524
|
+
baseRevision: z24.number().int().positive(),
|
|
2525
|
+
revision: z24.number().int().positive(),
|
|
2526
|
+
appendText: z24.string().min(1).max(5e5),
|
|
2527
|
+
sourceEventIds: z24.array(identity).min(1).max(1e3).optional(),
|
|
2528
|
+
sourceMessageIds: z24.array(identity).min(1).max(1e3).optional(),
|
|
2529
|
+
sourceInteractionIds: z24.array(identity).min(1).max(1e3).optional()
|
|
2472
2530
|
}).strict();
|
|
2473
|
-
var TimelineSyncEventSchema =
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
kind:
|
|
2531
|
+
var TimelineSyncEventSchema = z24.discriminatedUnion("kind", [
|
|
2532
|
+
z24.object({ kind: z24.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
|
|
2533
|
+
z24.object({ kind: z24.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
|
|
2534
|
+
z24.object({
|
|
2535
|
+
kind: z24.literal("step"),
|
|
2478
2536
|
sequence,
|
|
2479
2537
|
upsert: ConversationActivityStepUpsertSchema
|
|
2480
2538
|
}).strict()
|
|
2481
2539
|
]);
|
|
2482
|
-
var TimelineResyncReasonSchema =
|
|
2540
|
+
var TimelineResyncReasonSchema = z24.enum([
|
|
2483
2541
|
"initial",
|
|
2484
2542
|
"epoch-changed",
|
|
2485
2543
|
"evicted",
|
|
@@ -2488,36 +2546,36 @@ var TimelineResyncReasonSchema = z23.enum([
|
|
|
2488
2546
|
"rewind",
|
|
2489
2547
|
"oversized"
|
|
2490
2548
|
]);
|
|
2491
|
-
var TimelineSyncResponseSchema =
|
|
2492
|
-
|
|
2493
|
-
status:
|
|
2549
|
+
var TimelineSyncResponseSchema = z24.discriminatedUnion("status", [
|
|
2550
|
+
z24.object({
|
|
2551
|
+
status: z24.literal("snapshot"),
|
|
2494
2552
|
watermark: TimelineWatermarkSchema,
|
|
2495
2553
|
page: SessionTimelinePageSchema
|
|
2496
2554
|
}).strict(),
|
|
2497
|
-
|
|
2498
|
-
status:
|
|
2555
|
+
z24.object({
|
|
2556
|
+
status: z24.literal("replay"),
|
|
2499
2557
|
watermark: TimelineWatermarkSchema,
|
|
2500
2558
|
afterSequence: sequence,
|
|
2501
|
-
events:
|
|
2502
|
-
hasMore:
|
|
2559
|
+
events: z24.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
|
|
2560
|
+
hasMore: z24.boolean()
|
|
2503
2561
|
}).strict(),
|
|
2504
|
-
|
|
2505
|
-
status:
|
|
2562
|
+
z24.object({
|
|
2563
|
+
status: z24.literal("resync"),
|
|
2506
2564
|
epoch: identity,
|
|
2507
2565
|
reason: TimelineResyncReasonSchema
|
|
2508
2566
|
}).strict()
|
|
2509
2567
|
]);
|
|
2510
|
-
var TimelineImageRequestSchema =
|
|
2568
|
+
var TimelineImageRequestSchema = z24.object({
|
|
2511
2569
|
sha256: hash,
|
|
2512
|
-
offset:
|
|
2570
|
+
offset: z24.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
|
|
2513
2571
|
}).strict();
|
|
2514
|
-
var TimelineImageChunkSchema =
|
|
2572
|
+
var TimelineImageChunkSchema = z24.object({
|
|
2515
2573
|
sha256: hash,
|
|
2516
|
-
offset:
|
|
2517
|
-
totalBytes:
|
|
2518
|
-
mimeType:
|
|
2519
|
-
data:
|
|
2520
|
-
eof:
|
|
2574
|
+
offset: z24.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
|
|
2575
|
+
totalBytes: z24.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
|
|
2576
|
+
mimeType: z24.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
|
|
2577
|
+
data: z24.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),
|
|
2578
|
+
eof: z24.boolean()
|
|
2521
2579
|
}).strict().superRefine((chunk, context) => {
|
|
2522
2580
|
const padding = chunk.data.endsWith("==") ? 2 : chunk.data.endsWith("=") ? 1 : 0;
|
|
2523
2581
|
const length = chunk.data.length / 4 * 3 - padding;
|
|
@@ -2528,10 +2586,10 @@ var TimelineImageChunkSchema = z23.object({
|
|
|
2528
2586
|
});
|
|
2529
2587
|
|
|
2530
2588
|
// ../../shared/protocol/dist/workbench.js
|
|
2531
|
-
import { z as
|
|
2589
|
+
import { z as z26 } from "zod";
|
|
2532
2590
|
|
|
2533
2591
|
// ../../shared/protocol/dist/schedules.js
|
|
2534
|
-
import { z as
|
|
2592
|
+
import { z as z25 } from "zod";
|
|
2535
2593
|
var SCHEDULE_OPERATIONS = [
|
|
2536
2594
|
"schedule.snapshot",
|
|
2537
2595
|
"schedule.create",
|
|
@@ -2539,90 +2597,90 @@ var SCHEDULE_OPERATIONS = [
|
|
|
2539
2597
|
"schedule.draft.dismiss",
|
|
2540
2598
|
"schedule.resume"
|
|
2541
2599
|
];
|
|
2542
|
-
var Id =
|
|
2543
|
-
var NativeId =
|
|
2544
|
-
var Time =
|
|
2545
|
-
var WorkbenchScheduleRuleSchema =
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
kind:
|
|
2549
|
-
seconds:
|
|
2550
|
-
recurring:
|
|
2600
|
+
var Id = z25.string().min(1).max(256);
|
|
2601
|
+
var NativeId = z25.number().int().positive().max(Number.MAX_SAFE_INTEGER);
|
|
2602
|
+
var Time = z25.iso.datetime({ offset: true });
|
|
2603
|
+
var WorkbenchScheduleRuleSchema = z25.discriminatedUnion("kind", [
|
|
2604
|
+
z25.object({ kind: z25.literal("once"), at: Time }).strict(),
|
|
2605
|
+
z25.object({
|
|
2606
|
+
kind: z25.literal("interval"),
|
|
2607
|
+
seconds: z25.number().int().min(10).max(86400),
|
|
2608
|
+
recurring: z25.boolean().optional()
|
|
2551
2609
|
}).strict(),
|
|
2552
|
-
|
|
2553
|
-
kind:
|
|
2554
|
-
expression:
|
|
2555
|
-
timezone:
|
|
2610
|
+
z25.object({
|
|
2611
|
+
kind: z25.literal("cron"),
|
|
2612
|
+
expression: z25.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
|
|
2613
|
+
timezone: z25.string().min(1).max(128).regex(/^[A-Za-z0-9_+./-]+$/)
|
|
2556
2614
|
}).strict()
|
|
2557
2615
|
]);
|
|
2558
2616
|
var Content = {
|
|
2559
2617
|
rule: WorkbenchScheduleRuleSchema,
|
|
2560
|
-
prompt:
|
|
2561
|
-
skill:
|
|
2618
|
+
prompt: z25.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."),
|
|
2619
|
+
skill: z25.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.")
|
|
2562
2620
|
};
|
|
2563
|
-
var WorkbenchScheduleProposalSchema =
|
|
2564
|
-
var WorkbenchScheduleDraftSchema =
|
|
2565
|
-
id:
|
|
2621
|
+
var WorkbenchScheduleProposalSchema = z25.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
|
|
2622
|
+
var WorkbenchScheduleDraftSchema = z25.object({
|
|
2623
|
+
id: z25.uuid(),
|
|
2566
2624
|
createdAt: Time,
|
|
2567
2625
|
...Content
|
|
2568
2626
|
}).strict();
|
|
2569
|
-
var WorkbenchScheduleEntrySchema =
|
|
2627
|
+
var WorkbenchScheduleEntrySchema = z25.object({
|
|
2570
2628
|
id: NativeId,
|
|
2571
|
-
prompt:
|
|
2572
|
-
displayPrompt:
|
|
2573
|
-
recurring:
|
|
2629
|
+
prompt: z25.string().max(1e5),
|
|
2630
|
+
displayPrompt: z25.string().max(1e5).optional(),
|
|
2631
|
+
recurring: z25.boolean(),
|
|
2574
2632
|
nextRunAt: Time,
|
|
2575
|
-
intervalMs:
|
|
2576
|
-
cron:
|
|
2577
|
-
timezone:
|
|
2633
|
+
intervalMs: z25.number().int().positive().optional(),
|
|
2634
|
+
cron: z25.string().max(256).optional(),
|
|
2635
|
+
timezone: z25.string().max(128).optional(),
|
|
2578
2636
|
at: Time.optional()
|
|
2579
2637
|
}).strict();
|
|
2580
|
-
var WorkbenchScheduleResultSchema =
|
|
2638
|
+
var WorkbenchScheduleResultSchema = z25.object({
|
|
2581
2639
|
id: Id,
|
|
2582
2640
|
scheduleId: NativeId,
|
|
2583
2641
|
triggerEventId: Id,
|
|
2584
2642
|
time: Time,
|
|
2585
|
-
prompt:
|
|
2586
|
-
status:
|
|
2587
|
-
reply:
|
|
2643
|
+
prompt: z25.string().max(16e3),
|
|
2644
|
+
status: z25.enum(["reply", "error", "merged", "pending", "unknown"]),
|
|
2645
|
+
reply: z25.string().max(16e3).optional(),
|
|
2588
2646
|
replyEventId: Id.optional(),
|
|
2589
|
-
error:
|
|
2647
|
+
error: z25.string().max(1024).optional()
|
|
2590
2648
|
}).strict();
|
|
2591
|
-
var WorkbenchScheduleSnapshotSchema =
|
|
2592
|
-
state:
|
|
2593
|
-
workingDirectory:
|
|
2594
|
-
timezone:
|
|
2595
|
-
entries:
|
|
2596
|
-
drafts:
|
|
2597
|
-
results:
|
|
2598
|
-
historyTruncated:
|
|
2649
|
+
var WorkbenchScheduleSnapshotSchema = z25.object({
|
|
2650
|
+
state: z25.enum(["active", "needs-resume"]),
|
|
2651
|
+
workingDirectory: z25.string().max(32768).optional(),
|
|
2652
|
+
timezone: z25.string().max(128).optional(),
|
|
2653
|
+
entries: z25.array(WorkbenchScheduleEntrySchema).max(256),
|
|
2654
|
+
drafts: z25.array(WorkbenchScheduleDraftSchema).max(100),
|
|
2655
|
+
results: z25.array(WorkbenchScheduleResultSchema).max(100),
|
|
2656
|
+
historyTruncated: z25.boolean(),
|
|
2599
2657
|
sampledAt: Time
|
|
2600
2658
|
}).strict();
|
|
2601
2659
|
var Submission = {
|
|
2602
|
-
operationId:
|
|
2603
|
-
operationCreatedAt:
|
|
2660
|
+
operationId: z25.uuid(),
|
|
2661
|
+
operationCreatedAt: z25.iso.datetime(),
|
|
2604
2662
|
expectedAgentRunId: Id
|
|
2605
2663
|
};
|
|
2606
|
-
var WorkbenchScheduleCreateRequestSchema =
|
|
2664
|
+
var WorkbenchScheduleCreateRequestSchema = z25.object({
|
|
2607
2665
|
...Submission,
|
|
2608
2666
|
...Content,
|
|
2609
|
-
draftId:
|
|
2667
|
+
draftId: z25.uuid().optional()
|
|
2610
2668
|
}).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
|
|
2611
|
-
var WorkbenchScheduleCreateResultSchema =
|
|
2669
|
+
var WorkbenchScheduleCreateResultSchema = z25.object({
|
|
2612
2670
|
snapshot: WorkbenchScheduleSnapshotSchema,
|
|
2613
|
-
verified:
|
|
2671
|
+
verified: z25.boolean()
|
|
2614
2672
|
}).strict();
|
|
2615
|
-
var WorkbenchScheduleDeleteRequestSchema =
|
|
2673
|
+
var WorkbenchScheduleDeleteRequestSchema = z25.object({
|
|
2616
2674
|
...Submission,
|
|
2617
2675
|
id: NativeId
|
|
2618
2676
|
}).strict();
|
|
2619
|
-
var WorkbenchScheduleDeleteResultSchema =
|
|
2677
|
+
var WorkbenchScheduleDeleteResultSchema = z25.object({
|
|
2620
2678
|
snapshot: WorkbenchScheduleSnapshotSchema,
|
|
2621
|
-
removed:
|
|
2679
|
+
removed: z25.boolean()
|
|
2622
2680
|
}).strict();
|
|
2623
|
-
var WorkbenchScheduleDraftDismissRequestSchema =
|
|
2681
|
+
var WorkbenchScheduleDraftDismissRequestSchema = z25.object({
|
|
2624
2682
|
...Submission,
|
|
2625
|
-
draftId:
|
|
2683
|
+
draftId: z25.uuid()
|
|
2626
2684
|
}).strict();
|
|
2627
2685
|
var ScheduleAndroidSchemas = {
|
|
2628
2686
|
WorkbenchScheduleRule: WorkbenchScheduleRuleSchema,
|
|
@@ -2639,10 +2697,10 @@ var ScheduleAndroidSchemas = {
|
|
|
2639
2697
|
};
|
|
2640
2698
|
|
|
2641
2699
|
// ../../shared/protocol/dist/workbench.js
|
|
2642
|
-
var Id2 =
|
|
2643
|
-
var Text =
|
|
2644
|
-
var Count =
|
|
2645
|
-
var Failure =
|
|
2700
|
+
var Id2 = z26.string().trim().min(1).max(256);
|
|
2701
|
+
var Text = z26.string().max(1e5);
|
|
2702
|
+
var Count = z26.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
|
|
2703
|
+
var Failure = z26.object({ code: Id2, message: z26.string().min(1).max(1024) }).strict();
|
|
2646
2704
|
var WORKBENCH_OPERATIONS = [
|
|
2647
2705
|
"operation.get",
|
|
2648
2706
|
"question.ask",
|
|
@@ -2661,104 +2719,104 @@ var WORKBENCH_OPERATIONS = [
|
|
|
2661
2719
|
...SCHEDULE_OPERATIONS
|
|
2662
2720
|
];
|
|
2663
2721
|
var Submission2 = {
|
|
2664
|
-
operationId:
|
|
2665
|
-
operationCreatedAt:
|
|
2722
|
+
operationId: z26.uuid(),
|
|
2723
|
+
operationCreatedAt: z26.iso.datetime(),
|
|
2666
2724
|
expectedAgentRunId: Id2
|
|
2667
2725
|
};
|
|
2668
|
-
var WorkbenchOperationGetSchema =
|
|
2669
|
-
var WorkbenchOperationStatusSchema =
|
|
2670
|
-
operationId:
|
|
2671
|
-
operation:
|
|
2726
|
+
var WorkbenchOperationGetSchema = z26.object({ operationId: z26.uuid() }).strict();
|
|
2727
|
+
var WorkbenchOperationStatusSchema = z26.object({
|
|
2728
|
+
operationId: z26.uuid(),
|
|
2729
|
+
operation: z26.enum(WORKBENCH_OPERATIONS),
|
|
2672
2730
|
agentRunId: Id2,
|
|
2673
|
-
state:
|
|
2674
|
-
result:
|
|
2731
|
+
state: z26.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
|
|
2732
|
+
result: z26.record(z26.string(), z26.json()).optional(),
|
|
2675
2733
|
error: Failure.optional()
|
|
2676
2734
|
}).strict().superRefine((value, context) => {
|
|
2677
2735
|
if (value.state === "succeeded" !== (value.result !== void 0) || (value.state === "failed" || value.state === "uncertain") !== (value.error !== void 0)) {
|
|
2678
2736
|
context.addIssue({ code: "custom", message: "Invalid operation state payload" });
|
|
2679
2737
|
}
|
|
2680
2738
|
});
|
|
2681
|
-
var WorkbenchAskRequestSchema =
|
|
2739
|
+
var WorkbenchAskRequestSchema = z26.object({
|
|
2682
2740
|
...Submission2,
|
|
2683
|
-
question:
|
|
2741
|
+
question: z26.string().trim().min(1).max(16e3)
|
|
2684
2742
|
}).strict();
|
|
2685
|
-
var WorkbenchAskResultSchema =
|
|
2686
|
-
var WorkbenchEmptyRequestSchema =
|
|
2687
|
-
var WorkbenchSubmitRequestSchema =
|
|
2688
|
-
var WorkbenchResearchCreateRequestSchema =
|
|
2743
|
+
var WorkbenchAskResultSchema = z26.object({ answer: Text }).strict();
|
|
2744
|
+
var WorkbenchEmptyRequestSchema = z26.object({}).strict();
|
|
2745
|
+
var WorkbenchSubmitRequestSchema = z26.object(Submission2).strict();
|
|
2746
|
+
var WorkbenchResearchCreateRequestSchema = z26.object({
|
|
2689
2747
|
...Submission2,
|
|
2690
|
-
title:
|
|
2691
|
-
question:
|
|
2748
|
+
title: z26.string().trim().min(1).max(120),
|
|
2749
|
+
question: z26.string().trim().min(1).max(16e3),
|
|
2692
2750
|
sourceItemId: Id2.optional(),
|
|
2693
|
-
deferInitialPrompt:
|
|
2751
|
+
deferInitialPrompt: z26.literal(true).optional()
|
|
2694
2752
|
}).strict();
|
|
2695
|
-
var WorkbenchResearchThreadSchema =
|
|
2753
|
+
var WorkbenchResearchThreadSchema = z26.object({
|
|
2696
2754
|
sessionId: Id2,
|
|
2697
2755
|
parentSessionId: Id2,
|
|
2698
|
-
title:
|
|
2699
|
-
createdAt:
|
|
2756
|
+
title: z26.string().min(1).max(120),
|
|
2757
|
+
createdAt: z26.iso.datetime(),
|
|
2700
2758
|
contextAnchor: Id2.optional(),
|
|
2701
|
-
contextTruncated:
|
|
2702
|
-
detached:
|
|
2703
|
-
state:
|
|
2759
|
+
contextTruncated: z26.boolean(),
|
|
2760
|
+
detached: z26.boolean(),
|
|
2761
|
+
state: z26.enum(["creating", "ready", "failed"])
|
|
2704
2762
|
}).strict();
|
|
2705
|
-
var WorkbenchResearchCreateResultSchema =
|
|
2763
|
+
var WorkbenchResearchCreateResultSchema = z26.object({
|
|
2706
2764
|
thread: WorkbenchResearchThreadSchema
|
|
2707
2765
|
}).strict();
|
|
2708
|
-
var WorkbenchResearchListResultSchema =
|
|
2709
|
-
threads:
|
|
2766
|
+
var WorkbenchResearchListResultSchema = z26.object({
|
|
2767
|
+
threads: z26.array(WorkbenchResearchThreadSchema).max(100)
|
|
2710
2768
|
}).strict();
|
|
2711
|
-
var WorkbenchResearchTimelineRequestSchema =
|
|
2769
|
+
var WorkbenchResearchTimelineRequestSchema = z26.object({
|
|
2712
2770
|
cursor: Id2.optional()
|
|
2713
2771
|
}).strict();
|
|
2714
|
-
var WorkbenchResearchSendRequestSchema =
|
|
2772
|
+
var WorkbenchResearchSendRequestSchema = z26.object({
|
|
2715
2773
|
...Submission2,
|
|
2716
|
-
prompt:
|
|
2774
|
+
prompt: z26.string().trim().min(1).max(16e3)
|
|
2717
2775
|
}).strict();
|
|
2718
|
-
var WorkbenchResearchSendResultSchema =
|
|
2719
|
-
var WorkbenchCompletedResultSchema =
|
|
2720
|
-
var WorkbenchCommandSchema =
|
|
2721
|
-
name:
|
|
2722
|
-
description:
|
|
2723
|
-
argumentHint:
|
|
2724
|
-
kind:
|
|
2725
|
-
allowDuringExecution:
|
|
2726
|
-
supported:
|
|
2727
|
-
reason:
|
|
2776
|
+
var WorkbenchResearchSendResultSchema = z26.object({ messageId: Id2 }).strict();
|
|
2777
|
+
var WorkbenchCompletedResultSchema = z26.object({ completed: z26.boolean() }).strict();
|
|
2778
|
+
var WorkbenchCommandSchema = z26.object({
|
|
2779
|
+
name: z26.string().min(1).max(260),
|
|
2780
|
+
description: z26.string().max(4096),
|
|
2781
|
+
argumentHint: z26.string().max(1024).optional(),
|
|
2782
|
+
kind: z26.enum(["builtin", "skill", "client"]),
|
|
2783
|
+
allowDuringExecution: z26.boolean(),
|
|
2784
|
+
supported: z26.boolean(),
|
|
2785
|
+
reason: z26.string().max(1024).optional()
|
|
2728
2786
|
}).strict();
|
|
2729
|
-
var WorkbenchCommandListResultSchema =
|
|
2730
|
-
commands:
|
|
2787
|
+
var WorkbenchCommandListResultSchema = z26.object({
|
|
2788
|
+
commands: z26.array(WorkbenchCommandSchema).max(512)
|
|
2731
2789
|
}).strict();
|
|
2732
|
-
var WorkbenchCommandInvokeRequestSchema =
|
|
2790
|
+
var WorkbenchCommandInvokeRequestSchema = z26.object({
|
|
2733
2791
|
...Submission2,
|
|
2734
|
-
name:
|
|
2735
|
-
input:
|
|
2792
|
+
name: z26.string().trim().min(1).max(260),
|
|
2793
|
+
input: z26.string().max(16e3)
|
|
2736
2794
|
}).strict();
|
|
2737
|
-
var WorkbenchCommandChoiceSchema =
|
|
2738
|
-
name:
|
|
2739
|
-
label:
|
|
2740
|
-
input:
|
|
2795
|
+
var WorkbenchCommandChoiceSchema = z26.object({
|
|
2796
|
+
name: z26.string().min(1).max(260),
|
|
2797
|
+
label: z26.string().min(1).max(1024),
|
|
2798
|
+
input: z26.string().max(16e3)
|
|
2741
2799
|
}).strict();
|
|
2742
|
-
var WorkbenchCommandResultSchema =
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
kind:
|
|
2748
|
-
choices:
|
|
2800
|
+
var WorkbenchCommandResultSchema = z26.discriminatedUnion("kind", [
|
|
2801
|
+
z26.object({ kind: z26.literal("text"), text: Text }).strict(),
|
|
2802
|
+
z26.object({ kind: z26.literal("completed") }).strict(),
|
|
2803
|
+
z26.object({ kind: z26.literal("sent"), messageId: Id2 }).strict(),
|
|
2804
|
+
z26.object({
|
|
2805
|
+
kind: z26.literal("select-subcommand"),
|
|
2806
|
+
choices: z26.array(WorkbenchCommandChoiceSchema).min(1).max(100)
|
|
2749
2807
|
}).strict()
|
|
2750
2808
|
]);
|
|
2751
|
-
var WorkbenchQueueItemSchema =
|
|
2809
|
+
var WorkbenchQueueItemSchema = z26.object({
|
|
2752
2810
|
id: Id2,
|
|
2753
|
-
kind:
|
|
2754
|
-
texts:
|
|
2755
|
-
actions:
|
|
2811
|
+
kind: z26.string().min(1).max(64),
|
|
2812
|
+
texts: z26.array(z26.string().max(1e5)).min(1).max(100),
|
|
2813
|
+
actions: z26.array(z26.enum(["edit", "remove", "move", "send-now"])).max(4)
|
|
2756
2814
|
}).strict();
|
|
2757
|
-
var WorkbenchQueueSnapshotSchema =
|
|
2815
|
+
var WorkbenchQueueSnapshotSchema = z26.object({
|
|
2758
2816
|
generation: Id2,
|
|
2759
2817
|
revision: Id2,
|
|
2760
|
-
items:
|
|
2761
|
-
steeringMessages:
|
|
2818
|
+
items: z26.array(WorkbenchQueueItemSchema).max(512),
|
|
2819
|
+
steeringMessages: z26.array(z26.string().max(1e5)).max(512)
|
|
2762
2820
|
}).strict();
|
|
2763
2821
|
var QueueMutation = {
|
|
2764
2822
|
...Submission2,
|
|
@@ -2766,48 +2824,48 @@ var QueueMutation = {
|
|
|
2766
2824
|
revision: Id2,
|
|
2767
2825
|
id: Id2
|
|
2768
2826
|
};
|
|
2769
|
-
var WorkbenchQueueMutationRequestSchema =
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2827
|
+
var WorkbenchQueueMutationRequestSchema = z26.discriminatedUnion("action", [
|
|
2828
|
+
z26.object({ ...QueueMutation, action: z26.literal("edit"), prompt: z26.string().trim().min(1).max(1e5) }).strict(),
|
|
2829
|
+
z26.object({ ...QueueMutation, action: z26.literal("remove") }).strict(),
|
|
2830
|
+
z26.object({ ...QueueMutation, action: z26.literal("move"), toPosition: z26.number().int().min(0).max(511) }).strict(),
|
|
2831
|
+
z26.object({ ...QueueMutation, action: z26.literal("send-now") }).strict()
|
|
2774
2832
|
]);
|
|
2775
|
-
var WorkbenchQueueMutationResultSchema =
|
|
2776
|
-
changed:
|
|
2833
|
+
var WorkbenchQueueMutationResultSchema = z26.object({
|
|
2834
|
+
changed: z26.boolean(),
|
|
2777
2835
|
snapshot: WorkbenchQueueSnapshotSchema
|
|
2778
2836
|
}).strict();
|
|
2779
|
-
var WorkbenchTokenMetricSchema =
|
|
2780
|
-
kind:
|
|
2837
|
+
var WorkbenchTokenMetricSchema = z26.object({
|
|
2838
|
+
kind: z26.string().min(1).max(128),
|
|
2781
2839
|
count: Count
|
|
2782
2840
|
}).strict();
|
|
2783
|
-
var WorkbenchModelUsageSchema =
|
|
2841
|
+
var WorkbenchModelUsageSchema = z26.object({
|
|
2784
2842
|
model: Id2,
|
|
2785
2843
|
requests: Count,
|
|
2786
|
-
premiumRequestCost:
|
|
2787
|
-
tokens:
|
|
2844
|
+
premiumRequestCost: z26.number().finite().nonnegative(),
|
|
2845
|
+
tokens: z26.array(WorkbenchTokenMetricSchema).max(32)
|
|
2788
2846
|
}).strict();
|
|
2789
|
-
var WorkbenchContextSchema =
|
|
2847
|
+
var WorkbenchContextSchema = z26.object({
|
|
2790
2848
|
currentTokens: Count,
|
|
2791
2849
|
tokenLimit: Count,
|
|
2792
2850
|
systemTokens: Count.optional(),
|
|
2793
2851
|
conversationTokens: Count.optional(),
|
|
2794
2852
|
toolTokens: Count.optional()
|
|
2795
2853
|
}).strict();
|
|
2796
|
-
var WorkbenchInsightsSchema =
|
|
2797
|
-
sampledAt:
|
|
2854
|
+
var WorkbenchInsightsSchema = z26.object({
|
|
2855
|
+
sampledAt: z26.iso.datetime(),
|
|
2798
2856
|
generation: Id2,
|
|
2799
2857
|
model: Id2.optional(),
|
|
2800
2858
|
totalUserRequests: Count,
|
|
2801
|
-
premiumRequestCost:
|
|
2802
|
-
nanoAiu:
|
|
2803
|
-
tokens:
|
|
2804
|
-
models:
|
|
2859
|
+
premiumRequestCost: z26.number().finite().nonnegative(),
|
|
2860
|
+
nanoAiu: z26.string().regex(/^\d+$/).max(40).optional(),
|
|
2861
|
+
tokens: z26.array(WorkbenchTokenMetricSchema).max(32),
|
|
2862
|
+
models: z26.array(WorkbenchModelUsageSchema).max(100),
|
|
2805
2863
|
context: WorkbenchContextSchema.optional(),
|
|
2806
|
-
canCompact:
|
|
2807
|
-
compactUnavailableReason:
|
|
2864
|
+
canCompact: z26.boolean(),
|
|
2865
|
+
compactUnavailableReason: z26.string().max(1024).optional()
|
|
2808
2866
|
}).strict();
|
|
2809
|
-
var WorkbenchCompactResultSchema =
|
|
2810
|
-
success:
|
|
2867
|
+
var WorkbenchCompactResultSchema = z26.object({
|
|
2868
|
+
success: z26.boolean(),
|
|
2811
2869
|
tokensRemoved: Count,
|
|
2812
2870
|
messagesRemoved: Count
|
|
2813
2871
|
}).strict();
|
|
@@ -2846,6 +2904,10 @@ var AndroidProtocolSchemas = {
|
|
|
2846
2904
|
...WorkbenchAndroidSchemas,
|
|
2847
2905
|
...ScheduleAndroidSchemas,
|
|
2848
2906
|
SessionCommunication: SessionCommunicationSchema,
|
|
2907
|
+
SessionGitDiffData: SessionGitDiffDataSchema,
|
|
2908
|
+
SessionGitDiffEntry: SessionGitDiffEntrySchema,
|
|
2909
|
+
SessionGitDiffResultData: SessionGitDiffResultDataSchema,
|
|
2910
|
+
SessionGitDiffGzipResultData: SessionGitDiffGzipResultDataSchema,
|
|
2849
2911
|
SessionRenameData: SessionRenameDataSchema,
|
|
2850
2912
|
SessionRenameResultData: SessionRenameResultDataSchema,
|
|
2851
2913
|
SessionDirectoryListData: SessionDirectoryListDataSchema,
|
|
@@ -2942,53 +3004,53 @@ var AndroidProtocolSchemas = {
|
|
|
2942
3004
|
|
|
2943
3005
|
// src/config.ts
|
|
2944
3006
|
import { AgentSelectionSchema as AgentSelectionSchema2 } from "@agentknight/sdk";
|
|
2945
|
-
var BooleanStringSchema =
|
|
2946
|
-
var EnabledBooleanStringSchema =
|
|
2947
|
-
var OptionalPathSchema =
|
|
3007
|
+
var BooleanStringSchema = z27.enum(["true", "false"]).default("false").transform((value) => value === "true");
|
|
3008
|
+
var EnabledBooleanStringSchema = z27.enum(["true", "false"]).default("true").transform((value) => value === "true");
|
|
3009
|
+
var OptionalPathSchema = z27.preprocess(
|
|
2948
3010
|
(value) => typeof value === "string" && value.trim() === "" ? void 0 : value,
|
|
2949
|
-
|
|
3011
|
+
z27.string().trim().min(1).optional()
|
|
2950
3012
|
);
|
|
2951
|
-
var AcpArgumentsSchema =
|
|
3013
|
+
var AcpArgumentsSchema = z27.string().default("[]").transform((value, context) => {
|
|
2952
3014
|
let decoded;
|
|
2953
3015
|
try {
|
|
2954
3016
|
decoded = JSON.parse(value);
|
|
2955
3017
|
} catch (error) {
|
|
2956
3018
|
if (!(error instanceof SyntaxError)) throw error;
|
|
2957
3019
|
context.addIssue({ code: "custom", message: "AGENTKNIGHT_ACP_ARGS must be a JSON array of strings" });
|
|
2958
|
-
return
|
|
3020
|
+
return z27.NEVER;
|
|
2959
3021
|
}
|
|
2960
|
-
const parsed =
|
|
3022
|
+
const parsed = z27.array(z27.string()).max(128).safeParse(decoded);
|
|
2961
3023
|
if (!parsed.success) {
|
|
2962
3024
|
context.addIssue({ code: "custom", message: "AGENTKNIGHT_ACP_ARGS must be a JSON array of strings" });
|
|
2963
|
-
return
|
|
3025
|
+
return z27.NEVER;
|
|
2964
3026
|
}
|
|
2965
3027
|
return parsed.data;
|
|
2966
3028
|
});
|
|
2967
|
-
var EnvironmentSchema =
|
|
2968
|
-
RELAY_URL:
|
|
2969
|
-
RELAY_TOKEN:
|
|
2970
|
-
RELAY_AUTH:
|
|
2971
|
-
USER_ID:
|
|
2972
|
-
AGENTKNIGHT_MACHINE_NAME:
|
|
2973
|
-
AGENTKNIGHT_HOME:
|
|
2974
|
-
AGENTKNIGHT_WORKSPACE_ROOT:
|
|
2975
|
-
AGENTKNIGHT_CODING_AGENT:
|
|
3029
|
+
var EnvironmentSchema = z27.object({
|
|
3030
|
+
RELAY_URL: z27.url(),
|
|
3031
|
+
RELAY_TOKEN: z27.string().min(24).optional(),
|
|
3032
|
+
RELAY_AUTH: z27.enum(["token", "microsoft"]).optional(),
|
|
3033
|
+
USER_ID: z27.string().trim().min(1).max(256).default("admin"),
|
|
3034
|
+
AGENTKNIGHT_MACHINE_NAME: z27.string().trim().min(1).max(120).optional(),
|
|
3035
|
+
AGENTKNIGHT_HOME: z27.string().trim().min(1).optional(),
|
|
3036
|
+
AGENTKNIGHT_WORKSPACE_ROOT: z27.string().trim().min(1).optional(),
|
|
3037
|
+
AGENTKNIGHT_CODING_AGENT: z27.enum(["managed", "copilot", "pi", "acp"]).default("managed"),
|
|
2976
3038
|
AGENTKNIGHT_GROUP_CHAT_ENABLED: EnabledBooleanStringSchema,
|
|
2977
3039
|
AGENTKNIGHT_PEER_CHAT_ENABLED: EnabledBooleanStringSchema,
|
|
2978
3040
|
PI_CODING_AGENT_DIR: OptionalPathSchema,
|
|
2979
3041
|
AGENTKNIGHT_ACP_COMMAND: OptionalPathSchema,
|
|
2980
3042
|
AGENTKNIGHT_ACP_ARGS: AcpArgumentsSchema,
|
|
2981
|
-
SESSION_REFRESH_INTERVAL_MS:
|
|
2982
|
-
HEARTBEAT_INTERVAL_MS:
|
|
2983
|
-
LOG_LEVEL:
|
|
3043
|
+
SESSION_REFRESH_INTERVAL_MS: z27.coerce.number().int().min(5e3).max(36e5).default(3e4),
|
|
3044
|
+
HEARTBEAT_INTERVAL_MS: z27.coerce.number().int().min(5e3).max(12e4).default(15e3),
|
|
3045
|
+
LOG_LEVEL: z27.enum(["fatal", "error", "warn", "info", "debug", "trace", "silent"]).default("info"),
|
|
2984
3046
|
SHOW_PAIRING_QR: BooleanStringSchema,
|
|
2985
3047
|
PAIRING_PAGE_ENABLED: EnabledBooleanStringSchema,
|
|
2986
|
-
PAIRING_PAGE_PORT:
|
|
3048
|
+
PAIRING_PAGE_PORT: z27.coerce.number().int().min(1024).max(65535).default(defaultPairingPagePort),
|
|
2987
3049
|
PC_AGENT_EXIT_AFTER_SNAPSHOT: BooleanStringSchema,
|
|
2988
3050
|
SNAPSHOT_SUPPRESSION_ENABLED: EnabledBooleanStringSchema,
|
|
2989
3051
|
TIMELINE_COMPRESSION_ENABLED: BooleanStringSchema,
|
|
2990
3052
|
TIMELINE_INCREMENTAL_ENABLED: EnabledBooleanStringSchema,
|
|
2991
|
-
SECURE_MESSAGE_PACKET_BUDGET:
|
|
3053
|
+
SECURE_MESSAGE_PACKET_BUDGET: z27.coerce.number().int().min(2048).max(SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH).default(SECURE_MESSAGE_MAX_CIPHERTEXT_LENGTH)
|
|
2992
3054
|
}).superRefine((value, context) => {
|
|
2993
3055
|
if (value.RELAY_AUTH === "token" && value.RELAY_TOKEN === void 0) {
|
|
2994
3056
|
context.addIssue({ code: "custom", path: ["RELAY_TOKEN"], message: "Token authentication requires RELAY_TOKEN" });
|
|
@@ -3039,8 +3101,8 @@ function loadConfig(environment = process.env, options = {}) {
|
|
|
3039
3101
|
}
|
|
3040
3102
|
return {
|
|
3041
3103
|
...settings2,
|
|
3042
|
-
relayToken:
|
|
3043
|
-
userId:
|
|
3104
|
+
relayToken: z27.string().min(32).max(4096).parse(options.relayCredential.token),
|
|
3105
|
+
userId: z27.string().min(1).max(256).parse(options.relayCredential.user.userId)
|
|
3044
3106
|
};
|
|
3045
3107
|
}
|
|
3046
3108
|
function loadStartupConfig(environment = process.env, options = {}) {
|
|
@@ -4138,7 +4200,7 @@ import { createHash as createHash3, randomBytes as randomBytes2, timingSafeEqual
|
|
|
4138
4200
|
import { createHash as createHash2 } from "node:crypto";
|
|
4139
4201
|
import { platform } from "node:os";
|
|
4140
4202
|
import { brotliCompressSync, brotliDecompressSync } from "node:zlib";
|
|
4141
|
-
import { z as
|
|
4203
|
+
import { z as z28 } from "zod";
|
|
4142
4204
|
var STORE_MESSAGES = {
|
|
4143
4205
|
unavailable: "Unlock your operating system credential store and restart AgentKnight. No file-based credential fallback is available.",
|
|
4144
4206
|
invalid: "The saved Relay credential is invalid. Recover it in your operating system credential manager before signing in.",
|
|
@@ -4171,30 +4233,30 @@ function normalizeRelayOrigin(value) {
|
|
|
4171
4233
|
throw new RelayCredentialStoreError("address");
|
|
4172
4234
|
}
|
|
4173
4235
|
}
|
|
4174
|
-
var ConfirmationSchema =
|
|
4175
|
-
|
|
4176
|
-
status:
|
|
4177
|
-
confirmBy:
|
|
4236
|
+
var ConfirmationSchema = z28.discriminatedUnion("status", [
|
|
4237
|
+
z28.object({
|
|
4238
|
+
status: z28.literal("pending"),
|
|
4239
|
+
confirmBy: z28.number().int().positive(),
|
|
4178
4240
|
enrollmentId: PcEnrollmentIdSchema,
|
|
4179
4241
|
verifier: PcEnrollmentVerifierRequestSchema.shape.verifier
|
|
4180
4242
|
}).strict(),
|
|
4181
|
-
|
|
4182
|
-
status:
|
|
4183
|
-
confirmBy:
|
|
4243
|
+
z28.object({
|
|
4244
|
+
status: z28.literal("confirmed"),
|
|
4245
|
+
confirmBy: z28.number().int().positive()
|
|
4184
4246
|
}).strict()
|
|
4185
4247
|
]);
|
|
4186
|
-
var RelayCredentialSchema =
|
|
4187
|
-
version:
|
|
4188
|
-
relayUrl:
|
|
4248
|
+
var RelayCredentialSchema = z28.object({
|
|
4249
|
+
version: z28.literal(1),
|
|
4250
|
+
relayUrl: z28.string().max(2048),
|
|
4189
4251
|
machineId: PcEnrollmentStartRequestSchema.shape.machineId,
|
|
4190
|
-
token:
|
|
4191
|
-
tokenId:
|
|
4192
|
-
grantId:
|
|
4252
|
+
token: z28.string().min(32).max(4096),
|
|
4253
|
+
tokenId: z28.string().min(1).max(256),
|
|
4254
|
+
grantId: z28.uuid(),
|
|
4193
4255
|
user: AuthUserSchema,
|
|
4194
4256
|
confirmation: ConfirmationSchema
|
|
4195
4257
|
}).strict();
|
|
4196
|
-
var SlotsSchema =
|
|
4197
|
-
version:
|
|
4258
|
+
var SlotsSchema = z28.object({
|
|
4259
|
+
version: z28.literal(1),
|
|
4198
4260
|
pending: RelayCredentialSchema.optional(),
|
|
4199
4261
|
confirmed: RelayCredentialSchema.optional()
|
|
4200
4262
|
}).strict();
|
|
@@ -5080,7 +5142,7 @@ import { mkdtemp, rm as rm2 } from "node:fs/promises";
|
|
|
5080
5142
|
import { createConnection, createServer as createServer2 } from "node:net";
|
|
5081
5143
|
import { tmpdir } from "node:os";
|
|
5082
5144
|
import { join as join4, resolve as resolve3 } from "node:path";
|
|
5083
|
-
import { z as
|
|
5145
|
+
import { z as z30 } from "zod";
|
|
5084
5146
|
import { DataDirectoryLease } from "@agentknight/sdk/runtime";
|
|
5085
5147
|
import {
|
|
5086
5148
|
PEER_CHAT_TIMEOUT_MS,
|
|
@@ -5092,16 +5154,16 @@ import {
|
|
|
5092
5154
|
import { randomUUID } from "node:crypto";
|
|
5093
5155
|
import { mkdir as mkdir2, readFile as readFile2, rename, rm, writeFile as writeFile2 } from "node:fs/promises";
|
|
5094
5156
|
import { dirname as dirname2, join as join3 } from "node:path";
|
|
5095
|
-
import { z as
|
|
5096
|
-
var UpgradeStateSchema =
|
|
5097
|
-
id:
|
|
5098
|
-
phase:
|
|
5099
|
-
fromVersion:
|
|
5100
|
-
toVersion:
|
|
5101
|
-
updatedAt:
|
|
5102
|
-
error:
|
|
5157
|
+
import { z as z29 } from "zod";
|
|
5158
|
+
var UpgradeStateSchema = z29.object({
|
|
5159
|
+
id: z29.uuid(),
|
|
5160
|
+
phase: z29.enum(["preparing", "ready", "waiting-idle", "switching", "verifying", "succeeded", "rolled-back", "failed"]),
|
|
5161
|
+
fromVersion: z29.string(),
|
|
5162
|
+
toVersion: z29.string(),
|
|
5163
|
+
updatedAt: z29.iso.datetime(),
|
|
5164
|
+
error: z29.string().optional()
|
|
5103
5165
|
});
|
|
5104
|
-
var UpgradeSuccessSchema =
|
|
5166
|
+
var UpgradeSuccessSchema = z29.object({ version: z29.string(), upgradedAt: z29.iso.datetime() });
|
|
5105
5167
|
async function readOptionalJson(path) {
|
|
5106
5168
|
try {
|
|
5107
5169
|
return JSON.parse(await readFile2(path, "utf8"));
|
|
@@ -5131,39 +5193,39 @@ async function readLastUpgrade(directory) {
|
|
|
5131
5193
|
}
|
|
5132
5194
|
|
|
5133
5195
|
// src/runtime.ts
|
|
5134
|
-
var RuntimeDescriptorSchema =
|
|
5135
|
-
pid:
|
|
5136
|
-
instanceId:
|
|
5137
|
-
endpoint:
|
|
5138
|
-
token:
|
|
5139
|
-
upgradeId:
|
|
5196
|
+
var RuntimeDescriptorSchema = z30.object({
|
|
5197
|
+
pid: z30.number().int().positive(),
|
|
5198
|
+
instanceId: z30.uuid(),
|
|
5199
|
+
endpoint: z30.string().min(1),
|
|
5200
|
+
token: z30.string().min(32),
|
|
5201
|
+
upgradeId: z30.uuid().optional()
|
|
5140
5202
|
});
|
|
5141
|
-
var RuntimeStatusSchema =
|
|
5142
|
-
version:
|
|
5143
|
-
pid:
|
|
5144
|
-
instanceId:
|
|
5145
|
-
ready:
|
|
5146
|
-
busy:
|
|
5147
|
-
relayUrl:
|
|
5148
|
-
identityHash:
|
|
5149
|
-
configPath:
|
|
5150
|
-
configHash:
|
|
5151
|
-
executable:
|
|
5152
|
-
cliPath:
|
|
5153
|
-
cwd:
|
|
5154
|
-
args:
|
|
5155
|
-
canRestart:
|
|
5156
|
-
restartEnvironment:
|
|
5157
|
-
upgradeId:
|
|
5158
|
-
stopping:
|
|
5203
|
+
var RuntimeStatusSchema = z30.object({
|
|
5204
|
+
version: z30.string().min(1),
|
|
5205
|
+
pid: z30.number().int().positive(),
|
|
5206
|
+
instanceId: z30.uuid(),
|
|
5207
|
+
ready: z30.boolean(),
|
|
5208
|
+
busy: z30.boolean(),
|
|
5209
|
+
relayUrl: z30.string().url(),
|
|
5210
|
+
identityHash: z30.string().min(1),
|
|
5211
|
+
configPath: z30.string().optional(),
|
|
5212
|
+
configHash: z30.string().optional(),
|
|
5213
|
+
executable: z30.string().min(1),
|
|
5214
|
+
cliPath: z30.string().min(1),
|
|
5215
|
+
cwd: z30.string().min(1),
|
|
5216
|
+
args: z30.array(z30.string()),
|
|
5217
|
+
canRestart: z30.boolean().default(false),
|
|
5218
|
+
restartEnvironment: z30.record(z30.string(), z30.string()).default({}),
|
|
5219
|
+
upgradeId: z30.uuid().optional(),
|
|
5220
|
+
stopping: z30.boolean().optional()
|
|
5159
5221
|
});
|
|
5160
|
-
var RequestSchema =
|
|
5161
|
-
|
|
5162
|
-
|
|
5222
|
+
var RequestSchema = z30.discriminatedUnion("command", [
|
|
5223
|
+
z30.object({ token: z30.string(), command: z30.enum(["status", "prepare", "cancel", "stop"]) }),
|
|
5224
|
+
z30.object({ token: z30.string(), command: z30.literal("peer-chat"), payload: PeerChatRequestSchema2 })
|
|
5163
5225
|
]);
|
|
5164
|
-
var ResponseSchema =
|
|
5165
|
-
|
|
5166
|
-
|
|
5226
|
+
var ResponseSchema = z30.discriminatedUnion("ok", [
|
|
5227
|
+
z30.object({ ok: z30.literal(true), status: RuntimeStatusSchema.optional(), reply: PeerChatResultSchema.optional() }),
|
|
5228
|
+
z30.object({ ok: z30.literal(false), error: z30.string() })
|
|
5167
5229
|
]);
|
|
5168
5230
|
var MAX_MESSAGE_BYTES = 32 * 1024;
|
|
5169
5231
|
var MAX_PEER_REQUEST_BYTES = 128 * 1024;
|
|
@@ -5426,7 +5488,7 @@ import { randomUUID as randomUUID2 } from "node:crypto";
|
|
|
5426
5488
|
import { copyFile as copyFile2, mkdir as mkdir5, open as open2, realpath as realpath2, rm as rm6 } from "node:fs/promises";
|
|
5427
5489
|
import { dirname as dirname5, join as join9, resolve as resolve8 } from "node:path";
|
|
5428
5490
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
5429
|
-
import { z as
|
|
5491
|
+
import { z as z34 } from "zod";
|
|
5430
5492
|
|
|
5431
5493
|
// src/upgrade-packages.ts
|
|
5432
5494
|
import { execFile as execFile2, spawn as spawn2 } from "node:child_process";
|
|
@@ -5440,7 +5502,7 @@ import { createHash as createHash5 } from "node:crypto";
|
|
|
5440
5502
|
import { open } from "node:fs/promises";
|
|
5441
5503
|
import { join as join5 } from "node:path";
|
|
5442
5504
|
import { promisify } from "node:util";
|
|
5443
|
-
import { z as
|
|
5505
|
+
import { z as z31 } from "zod";
|
|
5444
5506
|
|
|
5445
5507
|
// src/restart-environment.ts
|
|
5446
5508
|
import { resolve as resolve4 } from "node:path";
|
|
@@ -5478,10 +5540,10 @@ function restartEnvironment(effective, persisted, dataDirectory) {
|
|
|
5478
5540
|
|
|
5479
5541
|
// src/upgrade-supervisor.ts
|
|
5480
5542
|
var execute = promisify(execFile);
|
|
5481
|
-
var SupervisorSchema =
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5543
|
+
var SupervisorSchema = z31.discriminatedUnion("kind", [
|
|
5544
|
+
z31.object({ kind: z31.literal("process") }),
|
|
5545
|
+
z31.object({ kind: z31.literal("windows-task"), name: z31.string(), path: z31.string(), definitionHash: z31.string() }),
|
|
5546
|
+
z31.object({ kind: z31.literal("launchd"), domain: z31.string(), label: z31.string(), plist: z31.string() })
|
|
5485
5547
|
]);
|
|
5486
5548
|
function globalPackageDirectory(prefix) {
|
|
5487
5549
|
return process.platform === "win32" ? join5(prefix, "node_modules", "@agentknight", "client") : join5(prefix, "lib", "node_modules", "@agentknight", "client");
|
|
@@ -5509,7 +5571,7 @@ async function assertInstallationIdle(prefix, allowedPid) {
|
|
|
5509
5571
|
} | ForEach-Object { [int]$_.ProcessId });
|
|
5510
5572
|
ConvertTo-Json -InputObject $ids -Compress
|
|
5511
5573
|
`);
|
|
5512
|
-
pids =
|
|
5574
|
+
pids = z31.array(z31.number().int().positive()).parse(JSON.parse(result));
|
|
5513
5575
|
} else {
|
|
5514
5576
|
const result = await execute("ps", ["-eo", "pid=,args="], { timeout: 1e4 });
|
|
5515
5577
|
pids = result.stdout.split("\n").flatMap((line) => {
|
|
@@ -5545,7 +5607,7 @@ async function detectSupervisor(runtime) {
|
|
|
5545
5607
|
if($matches.Count -gt 1) { throw 'Multiple scheduled tasks match this Agent. Refusing to choose.' };
|
|
5546
5608
|
if($matches.Count -eq 1) { $matches[0] | ConvertTo-Json -Compress } else { 'null' }
|
|
5547
5609
|
`);
|
|
5548
|
-
const task =
|
|
5610
|
+
const task = z31.object({ name: z31.string(), path: z31.string(), xml: z31.string() }).nullable().parse(JSON.parse(result));
|
|
5549
5611
|
return task === null ? { kind: "process" } : {
|
|
5550
5612
|
kind: "windows-task",
|
|
5551
5613
|
name: task.name,
|
|
@@ -6065,13 +6127,13 @@ async function prepareUpgradePackages(options) {
|
|
|
6065
6127
|
import { mkdir as mkdir4, readFile as readFile4, rm as rm5, stat } from "node:fs/promises";
|
|
6066
6128
|
import { createHash as createHash7 } from "node:crypto";
|
|
6067
6129
|
import { join as join8, resolve as resolve7 } from "node:path";
|
|
6068
|
-
import { z as
|
|
6130
|
+
import { z as z33 } from "zod";
|
|
6069
6131
|
|
|
6070
6132
|
// src/upgrade-startup.ts
|
|
6071
6133
|
import { rename as rename2, rm as rm4 } from "node:fs/promises";
|
|
6072
6134
|
import { basename, dirname as dirname4, join as join7, resolve as resolve6 } from "node:path";
|
|
6073
|
-
import { z as
|
|
6074
|
-
var PermitSchema =
|
|
6135
|
+
import { z as z32 } from "zod";
|
|
6136
|
+
var PermitSchema = z32.object({ id: z32.uuid(), version: z32.string(), cliPath: z32.string() });
|
|
6075
6137
|
function globalUpgradeLockPath(cliPath) {
|
|
6076
6138
|
const packageDirectory = dirname4(dirname4(cliPath));
|
|
6077
6139
|
const scope = dirname4(packageDirectory);
|
|
@@ -6085,14 +6147,14 @@ async function claimUpgradeStartup(directory, version, cliPath) {
|
|
|
6085
6147
|
const globalPath = globalUpgradeLockPath(cliPath);
|
|
6086
6148
|
const globalLock = globalPath === void 0 ? void 0 : await readOptionalJson(globalPath);
|
|
6087
6149
|
if (globalLock !== void 0) {
|
|
6088
|
-
const globalOwner =
|
|
6150
|
+
const globalOwner = z32.object({ id: z32.uuid(), dataDirectory: z32.string() }).parse(globalLock);
|
|
6089
6151
|
if (lock === void 0 || resolve6(globalOwner.dataDirectory) !== resolve6(directory)) {
|
|
6090
6152
|
throw new Error("This global installation is being upgraded for another data directory. Wait for that upgrade to finish.");
|
|
6091
6153
|
}
|
|
6092
6154
|
}
|
|
6093
6155
|
if (lock === void 0) return void 0;
|
|
6094
|
-
const owner =
|
|
6095
|
-
if (globalLock !== void 0 &&
|
|
6156
|
+
const owner = z32.object({ id: z32.uuid() }).parse(lock);
|
|
6157
|
+
if (globalLock !== void 0 && z32.object({ id: z32.uuid() }).parse(globalLock).id !== owner.id) {
|
|
6096
6158
|
throw new Error("Local and global upgrade ownership disagree; inspect the interrupted upgrade before starting.");
|
|
6097
6159
|
}
|
|
6098
6160
|
const path = join7(directory, "run", "upgrade-start.json");
|
|
@@ -6109,24 +6171,24 @@ async function claimUpgradeStartup(directory, version, cliPath) {
|
|
|
6109
6171
|
}
|
|
6110
6172
|
|
|
6111
6173
|
// src/upgrade-job.ts
|
|
6112
|
-
var PreparedPackagesSchema =
|
|
6113
|
-
targetArchive:
|
|
6114
|
-
rollbackArchive:
|
|
6115
|
-
cacheDirectory:
|
|
6116
|
-
registry:
|
|
6174
|
+
var PreparedPackagesSchema = z33.object({
|
|
6175
|
+
targetArchive: z33.string(),
|
|
6176
|
+
rollbackArchive: z33.string(),
|
|
6177
|
+
cacheDirectory: z33.string(),
|
|
6178
|
+
registry: z33.string().url()
|
|
6117
6179
|
});
|
|
6118
|
-
var UpgradePlanSchema =
|
|
6119
|
-
id:
|
|
6120
|
-
dataDirectory:
|
|
6121
|
-
directory:
|
|
6122
|
-
prefix:
|
|
6123
|
-
currentVersion:
|
|
6124
|
-
targetVersion:
|
|
6180
|
+
var UpgradePlanSchema = z33.object({
|
|
6181
|
+
id: z33.uuid(),
|
|
6182
|
+
dataDirectory: z33.string(),
|
|
6183
|
+
directory: z33.string(),
|
|
6184
|
+
prefix: z33.string(),
|
|
6185
|
+
currentVersion: z33.string(),
|
|
6186
|
+
targetVersion: z33.string(),
|
|
6125
6187
|
packages: PreparedPackagesSchema,
|
|
6126
6188
|
runtime: RuntimeStatusSchema.optional(),
|
|
6127
6189
|
supervisor: SupervisorSchema,
|
|
6128
|
-
taskName:
|
|
6129
|
-
configHash:
|
|
6190
|
+
taskName: z33.string(),
|
|
6191
|
+
configHash: z33.string().optional()
|
|
6130
6192
|
});
|
|
6131
6193
|
async function fileHash(path) {
|
|
6132
6194
|
return createHash7("sha256").update(await readFile4(path)).digest("hex");
|
|
@@ -6209,7 +6271,7 @@ async function upgrade(options) {
|
|
|
6209
6271
|
const lockPath = join9(root, "upgrade.lock");
|
|
6210
6272
|
const existing = await readOptionalJson(lockPath);
|
|
6211
6273
|
if (existing !== void 0) {
|
|
6212
|
-
const owner =
|
|
6274
|
+
const owner = z34.object({ pid: z34.number().int().positive() }).parse(existing);
|
|
6213
6275
|
if (processExists(owner.pid)) throw new Error("Another upgrade is already running. Use agentknight status.");
|
|
6214
6276
|
throw new Error(`An interrupted upgrade needs review. Read ${join9(root, "status.json")} before removing ${lockPath}.`);
|
|
6215
6277
|
}
|
|
@@ -6507,17 +6569,17 @@ import { initialize, supportsAgentSelection } from "@agentknight/sdk";
|
|
|
6507
6569
|
|
|
6508
6570
|
// src/chat-settings.ts
|
|
6509
6571
|
import { join as join11 } from "node:path";
|
|
6510
|
-
import { z as
|
|
6572
|
+
import { z as z35 } from "zod";
|
|
6511
6573
|
var settings = {
|
|
6512
6574
|
groupChatEnabled: {
|
|
6513
6575
|
file: "group-chat-settings.json",
|
|
6514
6576
|
label: "Group chat",
|
|
6515
|
-
schema:
|
|
6577
|
+
schema: z35.object({ groupChatEnabled: z35.boolean() }).strict().transform((value) => value.groupChatEnabled)
|
|
6516
6578
|
},
|
|
6517
6579
|
peerChatEnabled: {
|
|
6518
6580
|
file: "peer-chat-settings.json",
|
|
6519
6581
|
label: "Peer chat",
|
|
6520
|
-
schema:
|
|
6582
|
+
schema: z35.object({ peerChatEnabled: z35.boolean() }).strict().transform((value) => value.peerChatEnabled)
|
|
6521
6583
|
}
|
|
6522
6584
|
};
|
|
6523
6585
|
var ChatSettings = class _ChatSettings {
|
|
@@ -6565,14 +6627,14 @@ import { randomUUID as randomUUID3 } from "node:crypto";
|
|
|
6565
6627
|
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";
|
|
6566
6628
|
import { homedir as homedir3, hostname } from "node:os";
|
|
6567
6629
|
import { dirname as dirname6, join as join12, resolve as resolve9 } from "node:path";
|
|
6568
|
-
import { z as
|
|
6630
|
+
import { z as z36 } from "zod";
|
|
6569
6631
|
import { DeviceIdentitySchema } from "@agentknight/sdk";
|
|
6570
6632
|
import { DeviceIdentitySchema as DeviceIdentitySchema2 } from "@agentknight/sdk";
|
|
6571
|
-
var LegacyDeviceIdentitySchema =
|
|
6572
|
-
schemaVersion:
|
|
6573
|
-
machineId:
|
|
6574
|
-
machineName:
|
|
6575
|
-
createdAt:
|
|
6633
|
+
var LegacyDeviceIdentitySchema = z36.object({
|
|
6634
|
+
schemaVersion: z36.literal(1),
|
|
6635
|
+
machineId: z36.uuid(),
|
|
6636
|
+
machineName: z36.string().trim().min(1).max(120),
|
|
6637
|
+
createdAt: z36.iso.datetime({ offset: true })
|
|
6576
6638
|
});
|
|
6577
6639
|
function resolveMachineName(environment = process.env, fallback = hostname()) {
|
|
6578
6640
|
const computerName = environment.COMPUTERNAME?.trim();
|
|
@@ -6593,7 +6655,7 @@ async function readStableDeviceId(path) {
|
|
|
6593
6655
|
const info = await optionalStat(path);
|
|
6594
6656
|
if (info === void 0) return void 0;
|
|
6595
6657
|
if (!info.isFile()) throw new Error(`Device ID must be a regular file, not a link: ${path}`);
|
|
6596
|
-
const parsed =
|
|
6658
|
+
const parsed = z36.uuid().safeParse((await readFile5(path, "utf8")).trim());
|
|
6597
6659
|
if (!parsed.success) throw new Error(`Invalid device ID in ${path}`, { cause: parsed.error });
|
|
6598
6660
|
return parsed.data;
|
|
6599
6661
|
}
|
|
@@ -6656,7 +6718,7 @@ async function loadOrCreateDeviceIdentity(dataDirectory, currentMachineName = re
|
|
|
6656
6718
|
await requireDirectory(dataDirectory);
|
|
6657
6719
|
let existing;
|
|
6658
6720
|
try {
|
|
6659
|
-
existing =
|
|
6721
|
+
existing = z36.union([DeviceIdentitySchema, LegacyDeviceIdentitySchema]).parse(
|
|
6660
6722
|
JSON.parse(await readFile5(path, "utf8"))
|
|
6661
6723
|
);
|
|
6662
6724
|
} catch (error) {
|