@ai-matrx/desktop-protocol 0.17.3 → 0.17.4
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/CHANGELOG.md +12 -0
- package/dist/client.cjs +115 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/client.js +115 -1
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +418 -262
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +348 -9
- package/dist/index.d.ts +348 -9
- package/dist/index.js +418 -262
- package/dist/index.js.map +1 -1
- package/dist/{models-BiquRLLO.d.cts → models-9j0ncAJj.d.cts} +548 -4
- package/dist/{models-BiquRLLO.d.ts → models-9j0ncAJj.d.ts} +548 -4
- package/dist/react.d.cts +246 -0
- package/dist/react.d.ts +246 -0
- package/generated/desktop-protocol.schema.json +635 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -29,6 +29,13 @@ __export(src_exports, {
|
|
|
29
29
|
AppProfileLocator: () => AppProfileLocator,
|
|
30
30
|
AppSupport: () => AppSupport,
|
|
31
31
|
AppUsageReading: () => AppUsageReading,
|
|
32
|
+
AppsChatsChangedEvent: () => AppsChatsChangedEvent,
|
|
33
|
+
AppsChatsListParams: () => AppsChatsListParams,
|
|
34
|
+
AppsChatsListResult: () => AppsChatsListResult,
|
|
35
|
+
AppsChatsStarParams: () => AppsChatsStarParams,
|
|
36
|
+
AppsChatsStarResult: () => AppsChatsStarResult,
|
|
37
|
+
AppsChatsWatchParams: () => AppsChatsWatchParams,
|
|
38
|
+
AppsChatsWatchResult: () => AppsChatsWatchResult,
|
|
32
39
|
AppsListParams: () => AppsListParams,
|
|
33
40
|
AppsListResult: () => AppsListResult,
|
|
34
41
|
AppsOpenParams: () => AppsOpenParams,
|
|
@@ -39,6 +46,10 @@ __export(src_exports, {
|
|
|
39
46
|
AppsProfilesRemoveResult: () => AppsProfilesRemoveResult,
|
|
40
47
|
AppsProfilesSaveParams: () => AppsProfilesSaveParams,
|
|
41
48
|
AppsProfilesSaveResult: () => AppsProfilesSaveResult,
|
|
49
|
+
AppsProjectsFileParams: () => AppsProjectsFileParams,
|
|
50
|
+
AppsProjectsFileResult: () => AppsProjectsFileResult,
|
|
51
|
+
AppsProjectsUnfileParams: () => AppsProjectsUnfileParams,
|
|
52
|
+
AppsProjectsUnfileResult: () => AppsProjectsUnfileResult,
|
|
42
53
|
AudioDevice: () => AudioDevice,
|
|
43
54
|
AudioDevicesParams: () => AudioDevicesParams,
|
|
44
55
|
AudioDevicesResult: () => AudioDevicesResult,
|
|
@@ -51,6 +62,16 @@ __export(src_exports, {
|
|
|
51
62
|
CLOSE_RULES: () => CLOSE_RULES,
|
|
52
63
|
CONTRACT_SHA256: () => CONTRACT_SHA256,
|
|
53
64
|
CancelMsg: () => CancelMsg,
|
|
65
|
+
ChatHidden: () => ChatHidden,
|
|
66
|
+
ChatId: () => ChatId,
|
|
67
|
+
ChatLastUse: () => ChatLastUse,
|
|
68
|
+
ChatPin: () => ChatPin,
|
|
69
|
+
ChatPlace: () => ChatPlace,
|
|
70
|
+
ChatProject: () => ChatProject,
|
|
71
|
+
ChatProjectId: () => ChatProjectId,
|
|
72
|
+
ChatRow: () => ChatRow,
|
|
73
|
+
ChatRunning: () => ChatRunning,
|
|
74
|
+
ChatWindow: () => ChatWindow,
|
|
54
75
|
ClientToCoreMsg: () => ClientToCoreMsg,
|
|
55
76
|
ClientType: () => ClientType,
|
|
56
77
|
ClipboardReadParams: () => ClipboardReadParams,
|
|
@@ -332,7 +353,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
332
353
|
// src/schema/primitives.ts
|
|
333
354
|
var import_zod = require("zod");
|
|
334
355
|
var PROTOCOL_MAJOR = 1;
|
|
335
|
-
var PROTOCOL_MINOR =
|
|
356
|
+
var PROTOCOL_MINOR = 8;
|
|
336
357
|
var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
|
|
337
358
|
var ProtocolVersion = import_zod.z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
|
|
338
359
|
var RequestId = import_zod.z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
|
|
@@ -1222,250 +1243,358 @@ var AppsOpenResult = import_zod11.z.strictObject({
|
|
|
1222
1243
|
folder: AbsPath.nullable()
|
|
1223
1244
|
});
|
|
1224
1245
|
|
|
1225
|
-
// src/schema/
|
|
1246
|
+
// src/schema/apps-chats.ts
|
|
1226
1247
|
var import_zod12 = require("zod");
|
|
1248
|
+
var ChatId = import_zod12.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/);
|
|
1249
|
+
var ChatPlace = import_zod12.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/);
|
|
1250
|
+
var ChatProjectId = import_zod12.z.string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/);
|
|
1251
|
+
var ChatWindow = import_zod12.z.strictObject({
|
|
1252
|
+
key: ChatPlace,
|
|
1253
|
+
/** The app's default profile (Claude: the main window, which lists every account's chats). */
|
|
1254
|
+
main: import_zod12.z.boolean(),
|
|
1255
|
+
/** The account the window is signed into, when known. */
|
|
1256
|
+
account: import_zod12.z.string().max(320).nullable()
|
|
1257
|
+
});
|
|
1258
|
+
var ChatProject = import_zod12.z.strictObject({
|
|
1259
|
+
id: ChatProjectId,
|
|
1260
|
+
name: import_zod12.z.string().min(1).max(200),
|
|
1261
|
+
archived: import_zod12.z.boolean(),
|
|
1262
|
+
/** Chats in it. */
|
|
1263
|
+
count: nonNegInt
|
|
1264
|
+
});
|
|
1265
|
+
var ChatPin = import_zod12.z.strictObject({
|
|
1266
|
+
/** The window whose account pins it; an account with no window of its own is named by its email. */
|
|
1267
|
+
window: import_zod12.z.string().min(1).max(320),
|
|
1268
|
+
/** When that account's pin list was last read; null when the reading has no time. */
|
|
1269
|
+
observed_at_ms: epochMs.nullable()
|
|
1270
|
+
});
|
|
1271
|
+
var ChatRunning = import_zod12.z.strictObject({
|
|
1272
|
+
window: ChatPlace,
|
|
1273
|
+
/** process: a live process resumed this chat there (exact); activity: that window's own record moved in the last 3 minutes. */
|
|
1274
|
+
how: import_zod12.z.enum(["process", "activity"])
|
|
1275
|
+
});
|
|
1276
|
+
var ChatHidden = import_zod12.z.strictObject({
|
|
1277
|
+
window: ChatPlace,
|
|
1278
|
+
reason: import_zod12.z.string().max(200)
|
|
1279
|
+
});
|
|
1280
|
+
var ChatLastUse = import_zod12.z.strictObject({
|
|
1281
|
+
/** The conversation's last reply. */
|
|
1282
|
+
at_ms: epochMs,
|
|
1283
|
+
window: ChatPlace.nullable(),
|
|
1284
|
+
account: import_zod12.z.string().max(320).nullable(),
|
|
1285
|
+
/** How the window was decided (one short line). */
|
|
1286
|
+
how: import_zod12.z.string().max(120).nullable(),
|
|
1287
|
+
/** The account's 1-hour prompt cache is still warm. */
|
|
1288
|
+
cache_warm: import_zod12.z.boolean(),
|
|
1289
|
+
cache_minutes_left: nonNegInt
|
|
1290
|
+
});
|
|
1291
|
+
var ChatRow = import_zod12.z.strictObject({
|
|
1292
|
+
id: ChatId,
|
|
1293
|
+
/** The short id people see (the listing's first 8 characters). */
|
|
1294
|
+
short_id: import_zod12.z.string().max(16),
|
|
1295
|
+
/** The listing's own name (Claude: local_<id>), null for a chat only in the holder. */
|
|
1296
|
+
record: import_zod12.z.string().max(160).nullable(),
|
|
1297
|
+
title: import_zod12.z.string().max(1e3),
|
|
1298
|
+
last_active_ms: epochMs.nullable(),
|
|
1299
|
+
created_ms: epochMs.nullable(),
|
|
1300
|
+
projects: import_zod12.z.array(ChatProjectId).max(500),
|
|
1301
|
+
starred: import_zod12.z.boolean(),
|
|
1302
|
+
pinned_in: import_zod12.z.array(ChatPin).max(200),
|
|
1303
|
+
/** Every place it is listed now: window keys, plus "holder". */
|
|
1304
|
+
places: import_zod12.z.array(ChatPlace).max(200),
|
|
1305
|
+
held: import_zod12.z.boolean(),
|
|
1306
|
+
running: import_zod12.z.array(ChatRunning).max(200),
|
|
1307
|
+
hidden_in: import_zod12.z.array(ChatHidden).max(200),
|
|
1308
|
+
/** Kept out of the main window on purpose. */
|
|
1309
|
+
hidden_from_main: import_zod12.z.boolean(),
|
|
1310
|
+
/** Listed in a side window and not yet copied into main. */
|
|
1311
|
+
main_pending: import_zod12.z.boolean(),
|
|
1312
|
+
/** A scheduled routine's run (its task id). */
|
|
1313
|
+
scheduled: import_zod12.z.string().max(200).nullable(),
|
|
1314
|
+
/** Created recently and in no project: offered for filing. */
|
|
1315
|
+
new_unfiled: import_zod12.z.boolean(),
|
|
1316
|
+
warnings: import_zod12.z.array(import_zod12.z.string().max(400)).max(20),
|
|
1317
|
+
last_use: ChatLastUse.nullable()
|
|
1318
|
+
});
|
|
1319
|
+
var AppsChatsListParams = import_zod12.z.strictObject({
|
|
1320
|
+
app_key: AppKey,
|
|
1321
|
+
/** Only these chats (a live update re-reads just what changed). */
|
|
1322
|
+
ids: import_zod12.z.array(ChatId).max(500).optional()
|
|
1323
|
+
});
|
|
1324
|
+
var AppsChatsListResult = import_zod12.z.strictObject({
|
|
1325
|
+
app_key: AppKey,
|
|
1326
|
+
/** Bumps on every change the index sees; `apps.chats.changed` carries the same number. */
|
|
1327
|
+
version: nonNegInt,
|
|
1328
|
+
windows: import_zod12.z.array(ChatWindow).max(200),
|
|
1329
|
+
projects: import_zod12.z.array(ChatProject).max(5e3),
|
|
1330
|
+
chats: import_zod12.z.array(ChatRow).max(2e4),
|
|
1331
|
+
/** How long a chat in no project counts as new. */
|
|
1332
|
+
new_window_ms: nonNegInt
|
|
1333
|
+
});
|
|
1334
|
+
var AppsChatsWatchParams = import_zod12.z.strictObject({ app_key: AppKey });
|
|
1335
|
+
var AppsChatsWatchResult = import_zod12.z.strictObject({ resource_id: ResourceId, version: nonNegInt });
|
|
1336
|
+
var AppsChatsChangedEvent = import_zod12.z.strictObject({
|
|
1337
|
+
app_key: AppKey,
|
|
1338
|
+
version: nonNegInt,
|
|
1339
|
+
ids: import_zod12.z.array(ChatId).max(1e3),
|
|
1340
|
+
all: import_zod12.z.boolean()
|
|
1341
|
+
});
|
|
1342
|
+
var AppsProjectsFileParams = import_zod12.z.strictObject({
|
|
1343
|
+
app_key: AppKey,
|
|
1344
|
+
chat_id: ChatId,
|
|
1345
|
+
project_id: ChatProjectId.optional(),
|
|
1346
|
+
new_project_name: import_zod12.z.string().min(1).max(200).optional()
|
|
1347
|
+
});
|
|
1348
|
+
var AppsProjectsFileResult = import_zod12.z.strictObject({ chat: ChatRow, project: ChatProject });
|
|
1349
|
+
var AppsProjectsUnfileParams = import_zod12.z.strictObject({ app_key: AppKey, chat_id: ChatId, project_id: ChatProjectId });
|
|
1350
|
+
var AppsProjectsUnfileResult = import_zod12.z.strictObject({ chat: ChatRow });
|
|
1351
|
+
var AppsChatsStarParams = import_zod12.z.strictObject({ app_key: AppKey, chat_id: ChatId, starred: import_zod12.z.boolean() });
|
|
1352
|
+
var AppsChatsStarResult = import_zod12.z.strictObject({ chat: ChatRow });
|
|
1353
|
+
|
|
1354
|
+
// src/schema/service.ts
|
|
1355
|
+
var import_zod13 = require("zod");
|
|
1227
1356
|
var SERVICE_MAX_FRAME_BYTES = 16777216;
|
|
1228
|
-
var ServiceName =
|
|
1229
|
-
var ContractHash =
|
|
1230
|
-
var ServiceToken =
|
|
1357
|
+
var ServiceName = import_zod13.z.enum(["ml", "coding"]);
|
|
1358
|
+
var ContractHash = import_zod13.z.string().regex(/^[0-9a-f]{64}$/);
|
|
1359
|
+
var ServiceToken = import_zod13.z.string().regex(/^[A-Za-z0-9_-]{43}$/);
|
|
1231
1360
|
var ServiceRequestId = u32;
|
|
1232
|
-
var ServiceHello =
|
|
1233
|
-
var ServiceWelcome =
|
|
1234
|
-
type:
|
|
1361
|
+
var ServiceHello = import_zod13.z.strictObject({ type: import_zod13.z.literal("hello"), token: ServiceToken, contract: ContractHash });
|
|
1362
|
+
var ServiceWelcome = import_zod13.z.strictObject({
|
|
1363
|
+
type: import_zod13.z.literal("welcome"),
|
|
1235
1364
|
service: ServiceName,
|
|
1236
1365
|
contract: ContractHash,
|
|
1237
1366
|
pid: nonNegInt,
|
|
1238
1367
|
/** The interpreter's version, e.g. "3.13.15". */
|
|
1239
|
-
python:
|
|
1368
|
+
python: import_zod13.z.string().max(32),
|
|
1240
1369
|
/** Every op this service serves; must equal SERVICES[service] exactly. */
|
|
1241
|
-
ops:
|
|
1370
|
+
ops: import_zod13.z.array(import_zod13.z.string().min(1).max(64)).max(64)
|
|
1242
1371
|
});
|
|
1243
|
-
var ServiceRequest =
|
|
1244
|
-
type:
|
|
1372
|
+
var ServiceRequest = import_zod13.z.strictObject({
|
|
1373
|
+
type: import_zod13.z.literal("request"),
|
|
1245
1374
|
id: ServiceRequestId,
|
|
1246
|
-
op:
|
|
1247
|
-
params:
|
|
1375
|
+
op: import_zod13.z.string().min(1).max(64),
|
|
1376
|
+
params: import_zod13.z.unknown()
|
|
1248
1377
|
// validated by the service against SERVICES[service][op].params
|
|
1249
1378
|
});
|
|
1250
|
-
var ServiceResponse =
|
|
1251
|
-
type:
|
|
1379
|
+
var ServiceResponse = import_zod13.z.strictObject({
|
|
1380
|
+
type: import_zod13.z.literal("response"),
|
|
1252
1381
|
id: ServiceRequestId,
|
|
1253
|
-
result:
|
|
1382
|
+
result: import_zod13.z.unknown()
|
|
1254
1383
|
// validated by the core against SERVICES[service][op].result
|
|
1255
1384
|
});
|
|
1256
|
-
var ServiceErrorMsg =
|
|
1257
|
-
var ServiceProgressMsg =
|
|
1258
|
-
var ServiceCancel =
|
|
1259
|
-
var ServicePing =
|
|
1260
|
-
var ServicePong =
|
|
1261
|
-
type:
|
|
1385
|
+
var ServiceErrorMsg = import_zod13.z.strictObject({ type: import_zod13.z.literal("error"), id: ServiceRequestId, error: ProtocolErrorBody });
|
|
1386
|
+
var ServiceProgressMsg = import_zod13.z.strictObject({ type: import_zod13.z.literal("progress"), id: ServiceRequestId, progress: import_zod13.z.unknown() });
|
|
1387
|
+
var ServiceCancel = import_zod13.z.strictObject({ type: import_zod13.z.literal("cancel"), id: ServiceRequestId });
|
|
1388
|
+
var ServicePing = import_zod13.z.strictObject({ type: import_zod13.z.literal("ping"), id: ServiceRequestId });
|
|
1389
|
+
var ServicePong = import_zod13.z.strictObject({
|
|
1390
|
+
type: import_zod13.z.literal("pong"),
|
|
1262
1391
|
id: ServiceRequestId,
|
|
1263
1392
|
/** Requests running now. */
|
|
1264
1393
|
busy: nonNegInt
|
|
1265
1394
|
});
|
|
1266
|
-
var ServiceShutdown =
|
|
1267
|
-
var CoreToServiceMsg =
|
|
1268
|
-
var ServiceToCoreMsg =
|
|
1395
|
+
var ServiceShutdown = import_zod13.z.strictObject({ type: import_zod13.z.literal("shutdown") });
|
|
1396
|
+
var CoreToServiceMsg = import_zod13.z.discriminatedUnion("type", [ServiceHello, ServiceRequest, ServiceCancel, ServicePing, ServiceShutdown]);
|
|
1397
|
+
var ServiceToCoreMsg = import_zod13.z.discriminatedUnion("type", [ServiceWelcome, ServiceResponse, ServiceErrorMsg, ServiceProgressMsg, ServicePong]);
|
|
1269
1398
|
|
|
1270
1399
|
// src/schema/tools.ts
|
|
1271
|
-
var
|
|
1272
|
-
var ToolLevel =
|
|
1273
|
-
var ToolOutcome =
|
|
1274
|
-
var ToolPlatform =
|
|
1275
|
-
var ToolTransport =
|
|
1276
|
-
var ToolName =
|
|
1277
|
-
var ToolLevelResult =
|
|
1400
|
+
var import_zod14 = require("zod");
|
|
1401
|
+
var ToolLevel = import_zod14.z.enum(["programmatic", "protocol", "chat"]);
|
|
1402
|
+
var ToolOutcome = import_zod14.z.enum(["pass", "fail", "skip"]);
|
|
1403
|
+
var ToolPlatform = import_zod14.z.enum(["darwin", "win32", "linux"]);
|
|
1404
|
+
var ToolTransport = import_zod14.z.enum(["in_process", "localhost", "relay", "agent"]);
|
|
1405
|
+
var ToolName = import_zod14.z.string().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/);
|
|
1406
|
+
var ToolLevelResult = import_zod14.z.strictObject({
|
|
1278
1407
|
tool: ToolName,
|
|
1279
1408
|
level: ToolLevel,
|
|
1280
1409
|
platform: ToolPlatform,
|
|
1281
1410
|
transport: ToolTransport,
|
|
1282
1411
|
outcome: ToolOutcome,
|
|
1283
1412
|
/** True when the caller sat on a different network from the device (a phone on cellular, CI). */
|
|
1284
|
-
remote_network:
|
|
1413
|
+
remote_network: import_zod14.z.boolean(),
|
|
1285
1414
|
/** One line: what was asserted, or why it failed. Never a token, a file's contents or a path under a real home. */
|
|
1286
|
-
detail:
|
|
1415
|
+
detail: import_zod14.z.string().max(500),
|
|
1287
1416
|
/** The harness that produced it, e.g. `matrx-desktop test/tools/programmatic.test.ts`. */
|
|
1288
|
-
suite:
|
|
1417
|
+
suite: import_zod14.z.string().min(1).max(200),
|
|
1289
1418
|
/** The test case inside the suite. */
|
|
1290
|
-
test:
|
|
1291
|
-
run_at_ms:
|
|
1419
|
+
test: import_zod14.z.string().min(1).max(300),
|
|
1420
|
+
run_at_ms: import_zod14.z.int().min(0)
|
|
1292
1421
|
});
|
|
1293
|
-
var ToolResultsFile =
|
|
1294
|
-
schema:
|
|
1422
|
+
var ToolResultsFile = import_zod14.z.strictObject({
|
|
1423
|
+
schema: import_zod14.z.literal("matrx.tool-results.v1"),
|
|
1295
1424
|
/** The producing repo's commit (short or full SHA). */
|
|
1296
|
-
commit:
|
|
1297
|
-
results:
|
|
1425
|
+
commit: import_zod14.z.string().min(4).max(64),
|
|
1426
|
+
results: import_zod14.z.array(ToolLevelResult).max(1e4)
|
|
1298
1427
|
});
|
|
1299
1428
|
|
|
1300
1429
|
// src/schema/proc.ts
|
|
1301
|
-
var
|
|
1302
|
-
var ProcSort =
|
|
1303
|
-
var ProcListParams =
|
|
1430
|
+
var import_zod15 = require("zod");
|
|
1431
|
+
var ProcSort = import_zod15.z.enum(["cpu", "memory", "pid", "name"]);
|
|
1432
|
+
var ProcListParams = import_zod15.z.strictObject({
|
|
1304
1433
|
/** Case-insensitive substring of the process name or its command line. */
|
|
1305
|
-
name:
|
|
1434
|
+
name: import_zod15.z.string().min(1).max(128).optional(),
|
|
1306
1435
|
sort: ProcSort.default("cpu"),
|
|
1307
|
-
limit:
|
|
1436
|
+
limit: import_zod15.z.int().min(1).max(500).default(50)
|
|
1308
1437
|
});
|
|
1309
|
-
var ProcInfo =
|
|
1310
|
-
pid:
|
|
1438
|
+
var ProcInfo = import_zod15.z.strictObject({
|
|
1439
|
+
pid: import_zod15.z.int().min(0),
|
|
1311
1440
|
/** Parent process id; null where the OS does not report it. */
|
|
1312
|
-
ppid:
|
|
1313
|
-
name:
|
|
1441
|
+
ppid: import_zod15.z.int().min(0).nullable(),
|
|
1442
|
+
name: import_zod15.z.string().max(256),
|
|
1314
1443
|
/** The command line, cut to 1024 characters. */
|
|
1315
|
-
command:
|
|
1444
|
+
command: import_zod15.z.string().max(1024),
|
|
1316
1445
|
/** Share of one core, as `ps` and Task Manager report it; null where the OS does not say. */
|
|
1317
|
-
cpu_percent:
|
|
1446
|
+
cpu_percent: import_zod15.z.number().min(0).nullable(),
|
|
1318
1447
|
memory_bytes: nonNegInt.nullable(),
|
|
1319
|
-
user:
|
|
1448
|
+
user: import_zod15.z.string().max(128).nullable()
|
|
1320
1449
|
});
|
|
1321
|
-
var ProcListResult =
|
|
1322
|
-
processes:
|
|
1450
|
+
var ProcListResult = import_zod15.z.strictObject({
|
|
1451
|
+
processes: import_zod15.z.array(ProcInfo).max(500),
|
|
1323
1452
|
/** Processes that matched before `limit`. */
|
|
1324
1453
|
total: nonNegInt,
|
|
1325
|
-
truncated:
|
|
1454
|
+
truncated: import_zod15.z.boolean()
|
|
1326
1455
|
});
|
|
1327
|
-
var ProcPortsParams =
|
|
1456
|
+
var ProcPortsParams = import_zod15.z.strictObject({
|
|
1328
1457
|
/** Only this port. */
|
|
1329
|
-
port:
|
|
1458
|
+
port: import_zod15.z.int().min(1).max(65535).optional()
|
|
1330
1459
|
});
|
|
1331
|
-
var ProcPort =
|
|
1332
|
-
port:
|
|
1333
|
-
protocol:
|
|
1460
|
+
var ProcPort = import_zod15.z.strictObject({
|
|
1461
|
+
port: import_zod15.z.int().min(1).max(65535),
|
|
1462
|
+
protocol: import_zod15.z.enum(["tcp", "udp"]),
|
|
1334
1463
|
/** The local address it listens on ("127.0.0.1", "*", "::"). */
|
|
1335
|
-
address:
|
|
1336
|
-
pid:
|
|
1337
|
-
process:
|
|
1464
|
+
address: import_zod15.z.string().max(64),
|
|
1465
|
+
pid: import_zod15.z.int().min(0).nullable(),
|
|
1466
|
+
process: import_zod15.z.string().max(256).nullable()
|
|
1338
1467
|
});
|
|
1339
|
-
var ProcPortsResult =
|
|
1340
|
-
var ProcKillParams =
|
|
1341
|
-
pid:
|
|
1468
|
+
var ProcPortsResult = import_zod15.z.strictObject({ ports: import_zod15.z.array(ProcPort).max(4e3) });
|
|
1469
|
+
var ProcKillParams = import_zod15.z.strictObject({
|
|
1470
|
+
pid: import_zod15.z.int().min(1),
|
|
1342
1471
|
/** Kill outright (SIGKILL; on Windows the same /F) instead of asking it to quit. */
|
|
1343
|
-
force:
|
|
1472
|
+
force: import_zod15.z.boolean().default(false)
|
|
1344
1473
|
});
|
|
1345
|
-
var ProcKillResult =
|
|
1346
|
-
pid:
|
|
1347
|
-
signal:
|
|
1474
|
+
var ProcKillResult = import_zod15.z.strictObject({
|
|
1475
|
+
pid: import_zod15.z.int().min(1),
|
|
1476
|
+
signal: import_zod15.z.enum(["SIGTERM", "SIGKILL"]),
|
|
1348
1477
|
/** True when the process was gone within 3 s. */
|
|
1349
|
-
exited:
|
|
1478
|
+
exited: import_zod15.z.boolean()
|
|
1350
1479
|
});
|
|
1351
1480
|
|
|
1352
1481
|
// src/schema/clipboard.ts
|
|
1353
|
-
var
|
|
1354
|
-
var ClipboardReadParams =
|
|
1355
|
-
var ClipboardReadResult =
|
|
1482
|
+
var import_zod16 = require("zod");
|
|
1483
|
+
var ClipboardReadParams = import_zod16.z.strictObject({});
|
|
1484
|
+
var ClipboardReadResult = import_zod16.z.strictObject({
|
|
1356
1485
|
/** The clipboard's text ("" when it holds none), cut to 1 MiB. */
|
|
1357
|
-
text:
|
|
1358
|
-
truncated:
|
|
1486
|
+
text: import_zod16.z.string().max(1048576),
|
|
1487
|
+
truncated: import_zod16.z.boolean()
|
|
1359
1488
|
});
|
|
1360
|
-
var ClipboardWriteParams =
|
|
1361
|
-
var ClipboardWriteResult =
|
|
1489
|
+
var ClipboardWriteParams = import_zod16.z.strictObject({ text: import_zod16.z.string().max(1048576) });
|
|
1490
|
+
var ClipboardWriteResult = import_zod16.z.strictObject({ bytes: nonNegInt });
|
|
1362
1491
|
|
|
1363
1492
|
// src/schema/system.ts
|
|
1364
|
-
var
|
|
1365
|
-
var SystemOpenUrlParams =
|
|
1493
|
+
var import_zod17 = require("zod");
|
|
1494
|
+
var SystemOpenUrlParams = import_zod17.z.strictObject({
|
|
1366
1495
|
/** http, https or mailto; opened in the person's default app for it. */
|
|
1367
|
-
url:
|
|
1496
|
+
url: import_zod17.z.string().min(1).max(4096)
|
|
1368
1497
|
});
|
|
1369
|
-
var SystemOpenUrlResult =
|
|
1370
|
-
var SystemOpenPathParams =
|
|
1498
|
+
var SystemOpenUrlResult = import_zod17.z.strictObject({ url: import_zod17.z.string().max(4096) });
|
|
1499
|
+
var SystemOpenPathParams = import_zod17.z.strictObject({
|
|
1371
1500
|
path: AbsPath,
|
|
1372
1501
|
/** Show it in the file manager (Finder, Explorer) instead of opening it. */
|
|
1373
|
-
reveal:
|
|
1502
|
+
reveal: import_zod17.z.boolean().default(false)
|
|
1374
1503
|
});
|
|
1375
|
-
var SystemOpenPathResult =
|
|
1376
|
-
var SystemNotifyParams =
|
|
1377
|
-
title:
|
|
1378
|
-
body:
|
|
1504
|
+
var SystemOpenPathResult = import_zod17.z.strictObject({ path: AbsPath, revealed: import_zod17.z.boolean() });
|
|
1505
|
+
var SystemNotifyParams = import_zod17.z.strictObject({
|
|
1506
|
+
title: import_zod17.z.string().min(1).max(128),
|
|
1507
|
+
body: import_zod17.z.string().max(1024).default("")
|
|
1379
1508
|
});
|
|
1380
|
-
var SystemNotifyResult =
|
|
1509
|
+
var SystemNotifyResult = import_zod17.z.strictObject({
|
|
1381
1510
|
/** False when this computer has no notification service to show it (a bare Linux box). */
|
|
1382
|
-
shown:
|
|
1511
|
+
shown: import_zod17.z.boolean()
|
|
1383
1512
|
});
|
|
1384
1513
|
|
|
1385
1514
|
// src/schema/screen.ts
|
|
1386
|
-
var
|
|
1387
|
-
var ScreenDisplay =
|
|
1515
|
+
var import_zod18 = require("zod");
|
|
1516
|
+
var ScreenDisplay = import_zod18.z.strictObject({
|
|
1388
1517
|
/** The OS's display id; pass it to screen.capture. */
|
|
1389
1518
|
id: nonNegInt,
|
|
1390
|
-
name:
|
|
1519
|
+
name: import_zod18.z.string().max(128),
|
|
1391
1520
|
/** Position and size in the OS's logical points (x and y may be negative left of or above the main display). */
|
|
1392
|
-
x:
|
|
1393
|
-
y:
|
|
1394
|
-
width:
|
|
1395
|
-
height:
|
|
1521
|
+
x: import_zod18.z.int(),
|
|
1522
|
+
y: import_zod18.z.int(),
|
|
1523
|
+
width: import_zod18.z.int().min(1),
|
|
1524
|
+
height: import_zod18.z.int().min(1),
|
|
1396
1525
|
/** Pixels per point (2 on a Retina display). */
|
|
1397
|
-
scale:
|
|
1398
|
-
primary:
|
|
1526
|
+
scale: import_zod18.z.number().min(0.1).max(8),
|
|
1527
|
+
primary: import_zod18.z.boolean()
|
|
1399
1528
|
});
|
|
1400
|
-
var ScreenListParams =
|
|
1401
|
-
var ScreenListResult =
|
|
1402
|
-
var ScreenCaptureParams =
|
|
1529
|
+
var ScreenListParams = import_zod18.z.strictObject({});
|
|
1530
|
+
var ScreenListResult = import_zod18.z.strictObject({ displays: import_zod18.z.array(ScreenDisplay).max(32) });
|
|
1531
|
+
var ScreenCaptureParams = import_zod18.z.strictObject({
|
|
1403
1532
|
/** The display (from screen.list); the primary display when absent. */
|
|
1404
1533
|
display_id: nonNegInt.optional(),
|
|
1405
|
-
format:
|
|
1534
|
+
format: import_zod18.z.enum(["jpeg", "png"]).default("jpeg"),
|
|
1406
1535
|
/** Scale the picture down to at most this width in pixels (kept when already smaller). */
|
|
1407
|
-
max_width:
|
|
1536
|
+
max_width: import_zod18.z.int().min(160).max(7680).default(1600)
|
|
1408
1537
|
});
|
|
1409
|
-
var ScreenCaptureResult =
|
|
1538
|
+
var ScreenCaptureResult = import_zod18.z.strictObject({
|
|
1410
1539
|
display_id: nonNegInt,
|
|
1411
|
-
mime_type:
|
|
1412
|
-
width:
|
|
1413
|
-
height:
|
|
1540
|
+
mime_type: import_zod18.z.enum(["image/jpeg", "image/png"]),
|
|
1541
|
+
width: import_zod18.z.int().min(1),
|
|
1542
|
+
height: import_zod18.z.int().min(1),
|
|
1414
1543
|
/** The display's full resolution in pixels, before scaling. */
|
|
1415
|
-
source_width:
|
|
1416
|
-
source_height:
|
|
1544
|
+
source_width: import_zod18.z.int().min(1),
|
|
1545
|
+
source_height: import_zod18.z.int().min(1),
|
|
1417
1546
|
/** The image, base64 (at most 6 MiB of text). */
|
|
1418
|
-
data_base64:
|
|
1547
|
+
data_base64: import_zod18.z.string().max(6291456)
|
|
1419
1548
|
});
|
|
1420
1549
|
|
|
1421
1550
|
// src/schema/window.ts
|
|
1422
|
-
var
|
|
1423
|
-
var WindowInfo =
|
|
1551
|
+
var import_zod19 = require("zod");
|
|
1552
|
+
var WindowInfo = import_zod19.z.strictObject({
|
|
1424
1553
|
/** The OS's window handle (macOS window number, Windows HWND, X11 window id). */
|
|
1425
1554
|
id: nonNegInt,
|
|
1426
|
-
title:
|
|
1555
|
+
title: import_zod19.z.string().max(512),
|
|
1427
1556
|
/** Position and size in logical points. */
|
|
1428
|
-
x:
|
|
1429
|
-
y:
|
|
1430
|
-
width:
|
|
1431
|
-
height:
|
|
1557
|
+
x: import_zod19.z.int(),
|
|
1558
|
+
y: import_zod19.z.int(),
|
|
1559
|
+
width: import_zod19.z.int().min(0),
|
|
1560
|
+
height: import_zod19.z.int().min(0),
|
|
1432
1561
|
/**
|
|
1433
1562
|
* The application that owns the window, by the name the OS shows people; absent when the OS does
|
|
1434
1563
|
* not say. Optional (never null, the schema rule) because it was added in protocol 1.7: an older
|
|
1435
1564
|
* app's answer has no such field (FIELDS_SINCE).
|
|
1436
1565
|
*/
|
|
1437
|
-
app:
|
|
1566
|
+
app: import_zod19.z.string().max(256).optional(),
|
|
1438
1567
|
/** The owning process id; absent when the OS does not say. Added in protocol 1.7. */
|
|
1439
|
-
pid:
|
|
1568
|
+
pid: import_zod19.z.int().min(0).optional()
|
|
1440
1569
|
});
|
|
1441
|
-
var WindowListParams =
|
|
1570
|
+
var WindowListParams = import_zod19.z.strictObject({
|
|
1442
1571
|
/** Case-insensitive substring of the window title. */
|
|
1443
|
-
title:
|
|
1444
|
-
limit:
|
|
1572
|
+
title: import_zod19.z.string().min(1).max(256).optional(),
|
|
1573
|
+
limit: import_zod19.z.int().min(1).max(500).default(100)
|
|
1445
1574
|
});
|
|
1446
|
-
var WindowListResult =
|
|
1447
|
-
windows:
|
|
1575
|
+
var WindowListResult = import_zod19.z.strictObject({
|
|
1576
|
+
windows: import_zod19.z.array(WindowInfo).max(500),
|
|
1448
1577
|
total: nonNegInt,
|
|
1449
|
-
truncated:
|
|
1578
|
+
truncated: import_zod19.z.boolean()
|
|
1450
1579
|
});
|
|
1451
|
-
var WindowFocusParams =
|
|
1452
|
-
var WindowFocusResult =
|
|
1453
|
-
var WindowMoveParams =
|
|
1580
|
+
var WindowFocusParams = import_zod19.z.strictObject({ id: nonNegInt });
|
|
1581
|
+
var WindowFocusResult = import_zod19.z.strictObject({ window: WindowInfo });
|
|
1582
|
+
var WindowMoveParams = import_zod19.z.strictObject({
|
|
1454
1583
|
id: nonNegInt,
|
|
1455
1584
|
/** New top-left corner; unchanged when absent. */
|
|
1456
|
-
x:
|
|
1457
|
-
y:
|
|
1585
|
+
x: import_zod19.z.int().optional(),
|
|
1586
|
+
y: import_zod19.z.int().optional(),
|
|
1458
1587
|
/** New size; unchanged when absent. */
|
|
1459
|
-
width:
|
|
1460
|
-
height:
|
|
1588
|
+
width: import_zod19.z.int().min(50).max(16384).optional(),
|
|
1589
|
+
height: import_zod19.z.int().min(50).max(16384).optional()
|
|
1461
1590
|
});
|
|
1462
|
-
var WindowMoveResult =
|
|
1463
|
-
var WindowMinimizeParams =
|
|
1464
|
-
var WindowMinimizeResult =
|
|
1591
|
+
var WindowMoveResult = import_zod19.z.strictObject({ window: WindowInfo });
|
|
1592
|
+
var WindowMinimizeParams = import_zod19.z.strictObject({ id: nonNegInt });
|
|
1593
|
+
var WindowMinimizeResult = import_zod19.z.strictObject({ id: nonNegInt });
|
|
1465
1594
|
|
|
1466
1595
|
// src/schema/input.ts
|
|
1467
|
-
var
|
|
1468
|
-
var InputKey =
|
|
1596
|
+
var import_zod20 = require("zod");
|
|
1597
|
+
var InputKey = import_zod20.z.enum([
|
|
1469
1598
|
"cmd",
|
|
1470
1599
|
"ctrl",
|
|
1471
1600
|
"alt",
|
|
@@ -1545,203 +1674,203 @@ var InputKey = import_zod19.z.enum([
|
|
|
1545
1674
|
"backslash",
|
|
1546
1675
|
"grave"
|
|
1547
1676
|
]);
|
|
1548
|
-
var InputTypeTextParams =
|
|
1549
|
-
var InputTypeTextResult =
|
|
1550
|
-
var InputHotkeyParams =
|
|
1677
|
+
var InputTypeTextParams = import_zod20.z.strictObject({ text: import_zod20.z.string().min(1).max(1e4) });
|
|
1678
|
+
var InputTypeTextResult = import_zod20.z.strictObject({ characters: import_zod20.z.int().min(1) });
|
|
1679
|
+
var InputHotkeyParams = import_zod20.z.strictObject({
|
|
1551
1680
|
/** Pressed together in order and released in reverse: ["cmd", "shift", "t"]. */
|
|
1552
|
-
keys:
|
|
1681
|
+
keys: import_zod20.z.array(InputKey).min(1).max(6)
|
|
1553
1682
|
});
|
|
1554
|
-
var InputHotkeyResult =
|
|
1555
|
-
var InputPoint =
|
|
1556
|
-
var InputMouseMoveParams =
|
|
1683
|
+
var InputHotkeyResult = import_zod20.z.strictObject({ keys: import_zod20.z.array(InputKey) });
|
|
1684
|
+
var InputPoint = import_zod20.z.strictObject({ x: import_zod20.z.int(), y: import_zod20.z.int() });
|
|
1685
|
+
var InputMouseMoveParams = import_zod20.z.strictObject({
|
|
1557
1686
|
/** Screen position in logical points (the coordinates screen.list and window.list report). */
|
|
1558
|
-
x:
|
|
1559
|
-
y:
|
|
1687
|
+
x: import_zod20.z.int(),
|
|
1688
|
+
y: import_zod20.z.int()
|
|
1560
1689
|
});
|
|
1561
|
-
var InputMouseMoveResult =
|
|
1690
|
+
var InputMouseMoveResult = import_zod20.z.strictObject({
|
|
1562
1691
|
/** Where the pointer is now, read back from the OS. */
|
|
1563
1692
|
position: InputPoint
|
|
1564
1693
|
});
|
|
1565
|
-
var InputMouseClickParams =
|
|
1694
|
+
var InputMouseClickParams = import_zod20.z.strictObject({
|
|
1566
1695
|
/** Move here first; clicks where the pointer is when absent. */
|
|
1567
|
-
x:
|
|
1568
|
-
y:
|
|
1569
|
-
button:
|
|
1570
|
-
double:
|
|
1696
|
+
x: import_zod20.z.int().optional(),
|
|
1697
|
+
y: import_zod20.z.int().optional(),
|
|
1698
|
+
button: import_zod20.z.enum(["left", "right", "middle"]).default("left"),
|
|
1699
|
+
double: import_zod20.z.boolean().default(false)
|
|
1571
1700
|
});
|
|
1572
|
-
var InputMouseClickResult =
|
|
1701
|
+
var InputMouseClickResult = import_zod20.z.strictObject({
|
|
1573
1702
|
position: InputPoint,
|
|
1574
|
-
button:
|
|
1575
|
-
double:
|
|
1703
|
+
button: import_zod20.z.enum(["left", "right", "middle"]),
|
|
1704
|
+
double: import_zod20.z.boolean()
|
|
1576
1705
|
});
|
|
1577
1706
|
|
|
1578
1707
|
// src/schema/power.ts
|
|
1579
|
-
var
|
|
1580
|
-
var PowerStatusParams =
|
|
1581
|
-
var PowerStatusResult =
|
|
1582
|
-
has_battery:
|
|
1708
|
+
var import_zod21 = require("zod");
|
|
1709
|
+
var PowerStatusParams = import_zod21.z.strictObject({});
|
|
1710
|
+
var PowerStatusResult = import_zod21.z.strictObject({
|
|
1711
|
+
has_battery: import_zod21.z.boolean(),
|
|
1583
1712
|
/** 0–100; null without a battery. */
|
|
1584
|
-
percent:
|
|
1585
|
-
charging:
|
|
1713
|
+
percent: import_zod21.z.number().min(0).max(100).nullable(),
|
|
1714
|
+
charging: import_zod21.z.boolean().nullable(),
|
|
1586
1715
|
/** On wall power; null where the OS does not say. */
|
|
1587
|
-
plugged_in:
|
|
1716
|
+
plugged_in: import_zod21.z.boolean().nullable(),
|
|
1588
1717
|
/** Minutes of battery left; null when charging, unknown or without a battery. */
|
|
1589
1718
|
minutes_left: nonNegInt.nullable(),
|
|
1590
1719
|
/** Matrx 2 is keeping the computer awake (power.prevent_sleep) until this time; null when it is not. */
|
|
1591
1720
|
awake_until_ms: epochMs.nullable()
|
|
1592
1721
|
});
|
|
1593
|
-
var PowerPreventSleepParams =
|
|
1722
|
+
var PowerPreventSleepParams = import_zod21.z.strictObject({
|
|
1594
1723
|
/** Keep the computer awake this long; 0 lets it sleep again now. */
|
|
1595
|
-
seconds:
|
|
1724
|
+
seconds: import_zod21.z.int().min(0).max(86400),
|
|
1596
1725
|
/** Shown where the OS lists what keeps it awake. */
|
|
1597
|
-
reason:
|
|
1726
|
+
reason: import_zod21.z.string().min(1).max(128).default("Matrx 2 is working")
|
|
1598
1727
|
});
|
|
1599
|
-
var PowerPreventSleepResult =
|
|
1728
|
+
var PowerPreventSleepResult = import_zod21.z.strictObject({
|
|
1600
1729
|
/** When it may sleep again; null after seconds 0. */
|
|
1601
1730
|
awake_until_ms: epochMs.nullable()
|
|
1602
1731
|
});
|
|
1603
1732
|
|
|
1604
1733
|
// src/schema/resources.ts
|
|
1605
|
-
var
|
|
1606
|
-
var ResourcesDisk =
|
|
1734
|
+
var import_zod22 = require("zod");
|
|
1735
|
+
var ResourcesDisk = import_zod22.z.strictObject({
|
|
1607
1736
|
/** Where it is mounted ("/", "C:"). */
|
|
1608
|
-
mount:
|
|
1737
|
+
mount: import_zod22.z.string().max(512),
|
|
1609
1738
|
/** The file system ("apfs", "NTFS", "ext4"). */
|
|
1610
|
-
fs:
|
|
1739
|
+
fs: import_zod22.z.string().max(64),
|
|
1611
1740
|
size_bytes: nonNegInt,
|
|
1612
1741
|
used_bytes: nonNegInt,
|
|
1613
1742
|
available_bytes: nonNegInt
|
|
1614
1743
|
});
|
|
1615
|
-
var ResourcesSnapshotParams =
|
|
1616
|
-
var ResourcesSnapshotResult =
|
|
1617
|
-
cpu:
|
|
1744
|
+
var ResourcesSnapshotParams = import_zod22.z.strictObject({});
|
|
1745
|
+
var ResourcesSnapshotResult = import_zod22.z.strictObject({
|
|
1746
|
+
cpu: import_zod22.z.strictObject({
|
|
1618
1747
|
/** Busy share of all cores, 0–100, measured now. */
|
|
1619
|
-
percent:
|
|
1620
|
-
cores:
|
|
1748
|
+
percent: import_zod22.z.number().min(0).max(100),
|
|
1749
|
+
cores: import_zod22.z.int().min(1),
|
|
1621
1750
|
/** 1, 5 and 15 minute load averages; null on Windows. */
|
|
1622
|
-
load:
|
|
1751
|
+
load: import_zod22.z.array(import_zod22.z.number().min(0)).length(3).nullable()
|
|
1623
1752
|
}),
|
|
1624
|
-
memory:
|
|
1625
|
-
swap:
|
|
1626
|
-
disks:
|
|
1753
|
+
memory: import_zod22.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
|
|
1754
|
+
swap: import_zod22.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
|
|
1755
|
+
disks: import_zod22.z.array(ResourcesDisk).max(64),
|
|
1627
1756
|
uptime_seconds: nonNegInt
|
|
1628
1757
|
});
|
|
1629
1758
|
|
|
1630
1759
|
// src/schema/audio.ts
|
|
1631
|
-
var
|
|
1632
|
-
var AudioDevice =
|
|
1760
|
+
var import_zod23 = require("zod");
|
|
1761
|
+
var AudioDevice = import_zod23.z.strictObject({
|
|
1633
1762
|
/** The OS's name for it, as audio.record takes it. */
|
|
1634
|
-
id:
|
|
1635
|
-
name:
|
|
1636
|
-
default:
|
|
1763
|
+
id: import_zod23.z.string().min(1).max(256),
|
|
1764
|
+
name: import_zod23.z.string().max(256),
|
|
1765
|
+
default: import_zod23.z.boolean()
|
|
1637
1766
|
});
|
|
1638
|
-
var AudioDevicesParams =
|
|
1639
|
-
var AudioDevicesResult =
|
|
1640
|
-
inputs:
|
|
1641
|
-
outputs:
|
|
1767
|
+
var AudioDevicesParams = import_zod23.z.strictObject({});
|
|
1768
|
+
var AudioDevicesResult = import_zod23.z.strictObject({
|
|
1769
|
+
inputs: import_zod23.z.array(AudioDevice).max(64),
|
|
1770
|
+
outputs: import_zod23.z.array(AudioDevice).max(64)
|
|
1642
1771
|
});
|
|
1643
|
-
var AudioRecordParams =
|
|
1644
|
-
seconds:
|
|
1772
|
+
var AudioRecordParams = import_zod23.z.strictObject({
|
|
1773
|
+
seconds: import_zod23.z.number().min(0.5).max(600),
|
|
1645
1774
|
/** The microphone (from audio.devices); the default input when absent. */
|
|
1646
|
-
device_id:
|
|
1775
|
+
device_id: import_zod23.z.string().min(1).max(256).optional(),
|
|
1647
1776
|
/** Where the WAV file goes; a new file in the temp folder when absent. */
|
|
1648
1777
|
path: AbsPath.optional()
|
|
1649
1778
|
});
|
|
1650
|
-
var AudioRecordResult =
|
|
1779
|
+
var AudioRecordResult = import_zod23.z.strictObject({
|
|
1651
1780
|
path: AbsPath,
|
|
1652
|
-
seconds:
|
|
1781
|
+
seconds: import_zod23.z.number().min(0),
|
|
1653
1782
|
bytes: nonNegInt,
|
|
1654
1783
|
/** Loudest sample, 0–1: 0 means the device gave silence. */
|
|
1655
|
-
peak:
|
|
1784
|
+
peak: import_zod23.z.number().min(0).max(1)
|
|
1656
1785
|
});
|
|
1657
|
-
var AudioPlayParams =
|
|
1658
|
-
var AudioPlayResult =
|
|
1786
|
+
var AudioPlayParams = import_zod23.z.strictObject({ path: AbsPath });
|
|
1787
|
+
var AudioPlayResult = import_zod23.z.strictObject({ path: AbsPath, seconds: import_zod23.z.number().min(0) });
|
|
1659
1788
|
|
|
1660
1789
|
// src/schema/fs-watch.ts
|
|
1661
|
-
var
|
|
1662
|
-
var FsWatchId =
|
|
1663
|
-
var FsWatchStartParams =
|
|
1790
|
+
var import_zod24 = require("zod");
|
|
1791
|
+
var FsWatchId = import_zod24.z.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
|
|
1792
|
+
var FsWatchStartParams = import_zod24.z.strictObject({
|
|
1664
1793
|
path: AbsPath,
|
|
1665
|
-
recursive:
|
|
1794
|
+
recursive: import_zod24.z.boolean().default(true),
|
|
1666
1795
|
/** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
|
|
1667
|
-
ignore:
|
|
1796
|
+
ignore: import_zod24.z.array(import_zod24.z.string().max(256)).max(64).default([])
|
|
1668
1797
|
});
|
|
1669
|
-
var FsWatchStartResult =
|
|
1798
|
+
var FsWatchStartResult = import_zod24.z.strictObject({
|
|
1670
1799
|
watch_id: FsWatchId,
|
|
1671
1800
|
path: AbsPath,
|
|
1672
1801
|
/** The watch ends by itself if nobody reads it for 30 minutes. */
|
|
1673
1802
|
expires_at_ms: epochMs
|
|
1674
1803
|
});
|
|
1675
|
-
var FsWatchEventsParams =
|
|
1804
|
+
var FsWatchEventsParams = import_zod24.z.strictObject({
|
|
1676
1805
|
watch_id: FsWatchId,
|
|
1677
1806
|
/** Wait up to this long for a first change when none is waiting (0 answers at once). */
|
|
1678
|
-
wait_ms:
|
|
1807
|
+
wait_ms: import_zod24.z.int().min(0).max(25e3).default(0)
|
|
1679
1808
|
});
|
|
1680
|
-
var FsWatchEventsResult =
|
|
1809
|
+
var FsWatchEventsResult = import_zod24.z.strictObject({
|
|
1681
1810
|
/** What changed since the last read, oldest first; re-checked against the disk when read. */
|
|
1682
|
-
changes:
|
|
1811
|
+
changes: import_zod24.z.array(FsChange).max(1e3),
|
|
1683
1812
|
/** Changes were dropped (more than 1000 waited): list the folder again. */
|
|
1684
|
-
overflow:
|
|
1813
|
+
overflow: import_zod24.z.boolean(),
|
|
1685
1814
|
expires_at_ms: epochMs
|
|
1686
1815
|
});
|
|
1687
|
-
var FsWatchStopParams =
|
|
1688
|
-
var FsWatchStopResult =
|
|
1816
|
+
var FsWatchStopParams = import_zod24.z.strictObject({ watch_id: FsWatchId });
|
|
1817
|
+
var FsWatchStopResult = import_zod24.z.strictObject({ watch_id: FsWatchId });
|
|
1689
1818
|
|
|
1690
1819
|
// src/schema/exec-job.ts
|
|
1691
|
-
var
|
|
1692
|
-
var ExecJobId =
|
|
1693
|
-
var ExecJobStartParams =
|
|
1694
|
-
command:
|
|
1820
|
+
var import_zod25 = require("zod");
|
|
1821
|
+
var ExecJobId = import_zod25.z.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
|
|
1822
|
+
var ExecJobStartParams = import_zod25.z.strictObject({
|
|
1823
|
+
command: import_zod25.z.string().min(1).max(131072),
|
|
1695
1824
|
/** The folder it runs in; the home folder when absent. */
|
|
1696
1825
|
cwd: AbsPath.optional(),
|
|
1697
|
-
env:
|
|
1826
|
+
env: import_zod25.z.record(import_zod25.z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), import_zod25.z.string().max(32768)).optional()
|
|
1698
1827
|
});
|
|
1699
|
-
var ExecJobStartResult =
|
|
1700
|
-
var ExecJobOutputParams =
|
|
1828
|
+
var ExecJobStartResult = import_zod25.z.strictObject({ job_id: ExecJobId, pid: import_zod25.z.int().min(1), cwd: AbsPath });
|
|
1829
|
+
var ExecJobOutputParams = import_zod25.z.strictObject({
|
|
1701
1830
|
job_id: ExecJobId,
|
|
1702
1831
|
/** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
|
|
1703
1832
|
offset: nonNegInt.default(0),
|
|
1704
1833
|
/** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
|
|
1705
|
-
wait_ms:
|
|
1706
|
-
max_bytes:
|
|
1834
|
+
wait_ms: import_zod25.z.int().min(0).max(25e3).default(0),
|
|
1835
|
+
max_bytes: import_zod25.z.int().min(1024).max(1048576).default(65536)
|
|
1707
1836
|
});
|
|
1708
|
-
var ExecJobOutputResult =
|
|
1837
|
+
var ExecJobOutputResult = import_zod25.z.strictObject({
|
|
1709
1838
|
/** stdout and stderr interleaved as they arrived (UTF-8). */
|
|
1710
|
-
output:
|
|
1839
|
+
output: import_zod25.z.string(),
|
|
1711
1840
|
next_offset: nonNegInt,
|
|
1712
1841
|
/** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
|
|
1713
1842
|
dropped_bytes: nonNegInt,
|
|
1714
|
-
running:
|
|
1715
|
-
exit_code:
|
|
1843
|
+
running: import_zod25.z.boolean(),
|
|
1844
|
+
exit_code: import_zod25.z.int().nullable()
|
|
1716
1845
|
});
|
|
1717
|
-
var ExecJobStopParams =
|
|
1846
|
+
var ExecJobStopParams = import_zod25.z.strictObject({
|
|
1718
1847
|
job_id: ExecJobId,
|
|
1719
1848
|
/** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
|
|
1720
|
-
force:
|
|
1849
|
+
force: import_zod25.z.boolean().default(false)
|
|
1721
1850
|
});
|
|
1722
|
-
var ExecJobStopResult =
|
|
1723
|
-
var ExecJobInfo =
|
|
1851
|
+
var ExecJobStopResult = import_zod25.z.strictObject({ job_id: ExecJobId, exited: import_zod25.z.boolean(), exit_code: import_zod25.z.int().nullable() });
|
|
1852
|
+
var ExecJobInfo = import_zod25.z.strictObject({
|
|
1724
1853
|
job_id: ExecJobId,
|
|
1725
|
-
command:
|
|
1726
|
-
pid:
|
|
1854
|
+
command: import_zod25.z.string().max(1024),
|
|
1855
|
+
pid: import_zod25.z.int().min(1),
|
|
1727
1856
|
cwd: AbsPath,
|
|
1728
|
-
running:
|
|
1729
|
-
exit_code:
|
|
1857
|
+
running: import_zod25.z.boolean(),
|
|
1858
|
+
exit_code: import_zod25.z.int().nullable(),
|
|
1730
1859
|
started_at_ms: epochMs,
|
|
1731
1860
|
output_bytes: nonNegInt
|
|
1732
1861
|
});
|
|
1733
|
-
var ExecJobListParams =
|
|
1734
|
-
var ExecJobListResult =
|
|
1862
|
+
var ExecJobListParams = import_zod25.z.strictObject({});
|
|
1863
|
+
var ExecJobListResult = import_zod25.z.strictObject({ jobs: import_zod25.z.array(ExecJobInfo).max(64) });
|
|
1735
1864
|
|
|
1736
1865
|
// src/schema/coding.ts
|
|
1737
|
-
var
|
|
1738
|
-
var CodingServiceCredentials =
|
|
1739
|
-
access_token:
|
|
1740
|
-
user_id:
|
|
1866
|
+
var import_zod26 = require("zod");
|
|
1867
|
+
var CodingServiceCredentials = import_zod26.z.strictObject({
|
|
1868
|
+
access_token: import_zod26.z.string().min(16).max(16384),
|
|
1869
|
+
user_id: import_zod26.z.string().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/),
|
|
1741
1870
|
/** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
|
|
1742
|
-
server_url:
|
|
1871
|
+
server_url: import_zod26.z.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
|
|
1743
1872
|
});
|
|
1744
|
-
var CodingHistoryBlocked =
|
|
1873
|
+
var CodingHistoryBlocked = import_zod26.z.enum([
|
|
1745
1874
|
"signed_out",
|
|
1746
1875
|
"offline",
|
|
1747
1876
|
"organization_required",
|
|
@@ -1749,11 +1878,11 @@ var CodingHistoryBlocked = import_zod25.z.enum([
|
|
|
1749
1878
|
"cloud_list_unavailable",
|
|
1750
1879
|
"history_too_large"
|
|
1751
1880
|
]);
|
|
1752
|
-
var CodingHistoryFailure =
|
|
1753
|
-
session_id:
|
|
1754
|
-
reason:
|
|
1881
|
+
var CodingHistoryFailure = import_zod26.z.strictObject({
|
|
1882
|
+
session_id: import_zod26.z.string().max(64),
|
|
1883
|
+
reason: import_zod26.z.string().max(300)
|
|
1755
1884
|
});
|
|
1756
|
-
var CodingHistoryRun =
|
|
1885
|
+
var CodingHistoryRun = import_zod26.z.strictObject({
|
|
1757
1886
|
/** Claude Code sessions found on this computer. */
|
|
1758
1887
|
local_sessions: nonNegInt,
|
|
1759
1888
|
/** Of those, already complete in AI Matrx. */
|
|
@@ -1768,39 +1897,39 @@ var CodingHistoryRun = import_zod25.z.strictObject({
|
|
|
1768
1897
|
/** Changed while being read; a later run takes them. */
|
|
1769
1898
|
changed: nonNegInt,
|
|
1770
1899
|
failed: nonNegInt,
|
|
1771
|
-
failures:
|
|
1900
|
+
failures: import_zod26.z.array(CodingHistoryFailure).max(20),
|
|
1772
1901
|
/** Candidates not reached yet. */
|
|
1773
1902
|
remaining: nonNegInt,
|
|
1774
1903
|
/** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
|
|
1775
|
-
summary:
|
|
1904
|
+
summary: import_zod26.z.string().max(400)
|
|
1776
1905
|
});
|
|
1777
|
-
var CodingHistoryStep =
|
|
1906
|
+
var CodingHistoryStep = import_zod26.z.strictObject({
|
|
1778
1907
|
/** Null when the run could not start (blocked before a plan existed). */
|
|
1779
|
-
plan_id:
|
|
1780
|
-
finished:
|
|
1908
|
+
plan_id: import_zod26.z.string().regex(/^[0-9a-f]{32}$/).nullable(),
|
|
1909
|
+
finished: import_zod26.z.boolean(),
|
|
1781
1910
|
blocked: CodingHistoryBlocked.nullable(),
|
|
1782
1911
|
run: CodingHistoryRun
|
|
1783
1912
|
});
|
|
1784
|
-
var CodingPlanMissingParams =
|
|
1785
|
-
var CodingImportNextParams =
|
|
1786
|
-
plan_id:
|
|
1913
|
+
var CodingPlanMissingParams = import_zod26.z.strictObject({ credentials: CodingServiceCredentials.nullable() });
|
|
1914
|
+
var CodingImportNextParams = import_zod26.z.strictObject({
|
|
1915
|
+
plan_id: import_zod26.z.string().regex(/^[0-9a-f]{32}$/),
|
|
1787
1916
|
credentials: CodingServiceCredentials.nullable()
|
|
1788
1917
|
});
|
|
1789
|
-
var CodingServiceProgress =
|
|
1790
|
-
phase:
|
|
1918
|
+
var CodingServiceProgress = import_zod26.z.strictObject({
|
|
1919
|
+
phase: import_zod26.z.enum(["checking", "importing"]),
|
|
1791
1920
|
done: nonNegInt,
|
|
1792
1921
|
total: nonNegInt
|
|
1793
1922
|
});
|
|
1794
|
-
var CodingHistoryImportMissingParams =
|
|
1795
|
-
var CodingHistoryImportMissingResult =
|
|
1796
|
-
state:
|
|
1923
|
+
var CodingHistoryImportMissingParams = import_zod26.z.strictObject({});
|
|
1924
|
+
var CodingHistoryImportMissingResult = import_zod26.z.strictObject({
|
|
1925
|
+
state: import_zod26.z.enum(["done", "blocked", "cancelled"]),
|
|
1797
1926
|
blocked: CodingHistoryBlocked.nullable(),
|
|
1798
1927
|
run: CodingHistoryRun,
|
|
1799
1928
|
elapsed_ms: nonNegInt
|
|
1800
1929
|
});
|
|
1801
|
-
var CodingHistoryProgressEvent =
|
|
1930
|
+
var CodingHistoryProgressEvent = import_zod26.z.strictObject({
|
|
1802
1931
|
request_id: RequestId,
|
|
1803
|
-
phase:
|
|
1932
|
+
phase: import_zod26.z.enum(["checking", "importing"]),
|
|
1804
1933
|
/** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
|
|
1805
1934
|
done: nonNegInt,
|
|
1806
1935
|
total: nonNegInt,
|
|
@@ -1845,6 +1974,11 @@ var OPS = {
|
|
|
1845
1974
|
"apps.profiles.save": { params: AppsProfilesSaveParams, result: AppsProfilesSaveResult, kind: "unary", since: "1.2", errors: ["AUTH_REQUIRED", "AUTH_FORBIDDEN", "NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "DEVICE_OFFLINE", "INTERNAL"] },
|
|
1846
1975
|
"apps.profiles.remove": { params: AppsProfilesRemoveParams, result: AppsProfilesRemoveResult, kind: "unary", since: "1.2", errors: ["AUTH_REQUIRED", "AUTH_FORBIDDEN", "NOT_FOUND", "DEVICE_OFFLINE", "INTERNAL"] },
|
|
1847
1976
|
"apps.open": { params: AppsOpenParams, result: AppsOpenResult, kind: "unary", since: "1.2", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "AUTH_REQUIRED", "DEVICE_OFFLINE", "INTERNAL"] },
|
|
1977
|
+
"apps.chats.list": { params: AppsChatsListParams, result: AppsChatsListResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1978
|
+
"apps.chats.watch": { params: AppsChatsWatchParams, result: AppsChatsWatchResult, kind: "resource", since: "1.8", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "RESOURCE_BUSY", "INTERNAL"] },
|
|
1979
|
+
"apps.chats.star": { params: AppsChatsStarParams, result: AppsChatsStarResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1980
|
+
"apps.projects.file": { params: AppsProjectsFileParams, result: AppsProjectsFileResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1981
|
+
"apps.projects.unfile": { params: AppsProjectsUnfileParams, result: AppsProjectsUnfileResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1848
1982
|
"proc.list": { params: ProcListParams, result: ProcListResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1849
1983
|
"proc.ports": { params: ProcPortsParams, result: ProcPortsResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1850
1984
|
"proc.kill": { params: ProcKillParams, result: ProcKillResult, kind: "unary", since: "1.3", errors: ["NOT_FOUND", "AUTH_FORBIDDEN", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "INTERNAL"] },
|
|
@@ -1881,6 +2015,7 @@ var OPS = {
|
|
|
1881
2015
|
};
|
|
1882
2016
|
var EVENTS = {
|
|
1883
2017
|
"fs.changed": FsChangedEvent,
|
|
2018
|
+
"apps.chats.changed": AppsChatsChangedEvent,
|
|
1884
2019
|
"exec.exited": ExecExitedEvent,
|
|
1885
2020
|
"exec.title": ExecTitleEvent,
|
|
1886
2021
|
"exec.cwd": ExecCwdEvent,
|
|
@@ -2145,7 +2280,28 @@ var NAMED_SCHEMAS = {
|
|
|
2145
2280
|
AppsProfilesRemoveParams,
|
|
2146
2281
|
AppsProfilesRemoveResult,
|
|
2147
2282
|
AppsOpenParams,
|
|
2148
|
-
AppsOpenResult
|
|
2283
|
+
AppsOpenResult,
|
|
2284
|
+
ChatId,
|
|
2285
|
+
ChatPlace,
|
|
2286
|
+
ChatProjectId,
|
|
2287
|
+
ChatWindow,
|
|
2288
|
+
ChatProject,
|
|
2289
|
+
ChatPin,
|
|
2290
|
+
ChatRunning,
|
|
2291
|
+
ChatHidden,
|
|
2292
|
+
ChatLastUse,
|
|
2293
|
+
ChatRow,
|
|
2294
|
+
AppsChatsListParams,
|
|
2295
|
+
AppsChatsListResult,
|
|
2296
|
+
AppsChatsWatchParams,
|
|
2297
|
+
AppsChatsWatchResult,
|
|
2298
|
+
AppsChatsChangedEvent,
|
|
2299
|
+
AppsChatsStarParams,
|
|
2300
|
+
AppsChatsStarResult,
|
|
2301
|
+
AppsProjectsFileParams,
|
|
2302
|
+
AppsProjectsFileResult,
|
|
2303
|
+
AppsProjectsUnfileParams,
|
|
2304
|
+
AppsProjectsUnfileResult
|
|
2149
2305
|
};
|
|
2150
2306
|
|
|
2151
2307
|
// src/versioning.ts
|
|
@@ -2248,7 +2404,7 @@ function forPeer(op, part, value, version) {
|
|
|
2248
2404
|
var VERSIONED_RESULT_OPS = [...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys()];
|
|
2249
2405
|
|
|
2250
2406
|
// src/contract.ts
|
|
2251
|
-
var CONTRACT_SHA256 = "
|
|
2407
|
+
var CONTRACT_SHA256 = "7a5b3712fe3200b8f1051edb1cc9702e696a8d24b2033f9ea73e1a422f52dd33";
|
|
2252
2408
|
|
|
2253
2409
|
// src/close-policy.ts
|
|
2254
2410
|
var CLOSE_RULES = {
|