@ai-matrx/desktop-protocol 0.17.2 → 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 +23 -0
- package/dist/client.cjs +124 -2
- 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 +124 -2
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +447 -262
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +361 -9
- package/dist/index.d.ts +361 -9
- package/dist/index.js +447 -262
- package/dist/index.js.map +1 -1
- package/dist/{models-QWCUcQuU.d.cts → models-9j0ncAJj.d.cts} +562 -4
- package/dist/{models-QWCUcQuU.d.ts → models-9j0ncAJj.d.ts} +562 -4
- package/dist/react.d.cts +252 -0
- package/dist/react.d.ts +252 -0
- package/generated/desktop-protocol.schema.json +648 -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,242 +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),
|
|
1561
|
+
/**
|
|
1562
|
+
* The application that owns the window, by the name the OS shows people; absent when the OS does
|
|
1563
|
+
* not say. Optional (never null, the schema rule) because it was added in protocol 1.7: an older
|
|
1564
|
+
* app's answer has no such field (FIELDS_SINCE).
|
|
1565
|
+
*/
|
|
1566
|
+
app: import_zod19.z.string().max(256).optional(),
|
|
1567
|
+
/** The owning process id; absent when the OS does not say. Added in protocol 1.7. */
|
|
1568
|
+
pid: import_zod19.z.int().min(0).optional()
|
|
1432
1569
|
});
|
|
1433
|
-
var WindowListParams =
|
|
1570
|
+
var WindowListParams = import_zod19.z.strictObject({
|
|
1434
1571
|
/** Case-insensitive substring of the window title. */
|
|
1435
|
-
title:
|
|
1436
|
-
limit:
|
|
1572
|
+
title: import_zod19.z.string().min(1).max(256).optional(),
|
|
1573
|
+
limit: import_zod19.z.int().min(1).max(500).default(100)
|
|
1437
1574
|
});
|
|
1438
|
-
var WindowListResult =
|
|
1439
|
-
windows:
|
|
1575
|
+
var WindowListResult = import_zod19.z.strictObject({
|
|
1576
|
+
windows: import_zod19.z.array(WindowInfo).max(500),
|
|
1440
1577
|
total: nonNegInt,
|
|
1441
|
-
truncated:
|
|
1578
|
+
truncated: import_zod19.z.boolean()
|
|
1442
1579
|
});
|
|
1443
|
-
var WindowFocusParams =
|
|
1444
|
-
var WindowFocusResult =
|
|
1445
|
-
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({
|
|
1446
1583
|
id: nonNegInt,
|
|
1447
1584
|
/** New top-left corner; unchanged when absent. */
|
|
1448
|
-
x:
|
|
1449
|
-
y:
|
|
1585
|
+
x: import_zod19.z.int().optional(),
|
|
1586
|
+
y: import_zod19.z.int().optional(),
|
|
1450
1587
|
/** New size; unchanged when absent. */
|
|
1451
|
-
width:
|
|
1452
|
-
height:
|
|
1588
|
+
width: import_zod19.z.int().min(50).max(16384).optional(),
|
|
1589
|
+
height: import_zod19.z.int().min(50).max(16384).optional()
|
|
1453
1590
|
});
|
|
1454
|
-
var WindowMoveResult =
|
|
1455
|
-
var WindowMinimizeParams =
|
|
1456
|
-
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 });
|
|
1457
1594
|
|
|
1458
1595
|
// src/schema/input.ts
|
|
1459
|
-
var
|
|
1460
|
-
var InputKey =
|
|
1596
|
+
var import_zod20 = require("zod");
|
|
1597
|
+
var InputKey = import_zod20.z.enum([
|
|
1461
1598
|
"cmd",
|
|
1462
1599
|
"ctrl",
|
|
1463
1600
|
"alt",
|
|
@@ -1537,203 +1674,203 @@ var InputKey = import_zod19.z.enum([
|
|
|
1537
1674
|
"backslash",
|
|
1538
1675
|
"grave"
|
|
1539
1676
|
]);
|
|
1540
|
-
var InputTypeTextParams =
|
|
1541
|
-
var InputTypeTextResult =
|
|
1542
|
-
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({
|
|
1543
1680
|
/** Pressed together in order and released in reverse: ["cmd", "shift", "t"]. */
|
|
1544
|
-
keys:
|
|
1681
|
+
keys: import_zod20.z.array(InputKey).min(1).max(6)
|
|
1545
1682
|
});
|
|
1546
|
-
var InputHotkeyResult =
|
|
1547
|
-
var InputPoint =
|
|
1548
|
-
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({
|
|
1549
1686
|
/** Screen position in logical points (the coordinates screen.list and window.list report). */
|
|
1550
|
-
x:
|
|
1551
|
-
y:
|
|
1687
|
+
x: import_zod20.z.int(),
|
|
1688
|
+
y: import_zod20.z.int()
|
|
1552
1689
|
});
|
|
1553
|
-
var InputMouseMoveResult =
|
|
1690
|
+
var InputMouseMoveResult = import_zod20.z.strictObject({
|
|
1554
1691
|
/** Where the pointer is now, read back from the OS. */
|
|
1555
1692
|
position: InputPoint
|
|
1556
1693
|
});
|
|
1557
|
-
var InputMouseClickParams =
|
|
1694
|
+
var InputMouseClickParams = import_zod20.z.strictObject({
|
|
1558
1695
|
/** Move here first; clicks where the pointer is when absent. */
|
|
1559
|
-
x:
|
|
1560
|
-
y:
|
|
1561
|
-
button:
|
|
1562
|
-
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)
|
|
1563
1700
|
});
|
|
1564
|
-
var InputMouseClickResult =
|
|
1701
|
+
var InputMouseClickResult = import_zod20.z.strictObject({
|
|
1565
1702
|
position: InputPoint,
|
|
1566
|
-
button:
|
|
1567
|
-
double:
|
|
1703
|
+
button: import_zod20.z.enum(["left", "right", "middle"]),
|
|
1704
|
+
double: import_zod20.z.boolean()
|
|
1568
1705
|
});
|
|
1569
1706
|
|
|
1570
1707
|
// src/schema/power.ts
|
|
1571
|
-
var
|
|
1572
|
-
var PowerStatusParams =
|
|
1573
|
-
var PowerStatusResult =
|
|
1574
|
-
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(),
|
|
1575
1712
|
/** 0–100; null without a battery. */
|
|
1576
|
-
percent:
|
|
1577
|
-
charging:
|
|
1713
|
+
percent: import_zod21.z.number().min(0).max(100).nullable(),
|
|
1714
|
+
charging: import_zod21.z.boolean().nullable(),
|
|
1578
1715
|
/** On wall power; null where the OS does not say. */
|
|
1579
|
-
plugged_in:
|
|
1716
|
+
plugged_in: import_zod21.z.boolean().nullable(),
|
|
1580
1717
|
/** Minutes of battery left; null when charging, unknown or without a battery. */
|
|
1581
1718
|
minutes_left: nonNegInt.nullable(),
|
|
1582
1719
|
/** Matrx 2 is keeping the computer awake (power.prevent_sleep) until this time; null when it is not. */
|
|
1583
1720
|
awake_until_ms: epochMs.nullable()
|
|
1584
1721
|
});
|
|
1585
|
-
var PowerPreventSleepParams =
|
|
1722
|
+
var PowerPreventSleepParams = import_zod21.z.strictObject({
|
|
1586
1723
|
/** Keep the computer awake this long; 0 lets it sleep again now. */
|
|
1587
|
-
seconds:
|
|
1724
|
+
seconds: import_zod21.z.int().min(0).max(86400),
|
|
1588
1725
|
/** Shown where the OS lists what keeps it awake. */
|
|
1589
|
-
reason:
|
|
1726
|
+
reason: import_zod21.z.string().min(1).max(128).default("Matrx 2 is working")
|
|
1590
1727
|
});
|
|
1591
|
-
var PowerPreventSleepResult =
|
|
1728
|
+
var PowerPreventSleepResult = import_zod21.z.strictObject({
|
|
1592
1729
|
/** When it may sleep again; null after seconds 0. */
|
|
1593
1730
|
awake_until_ms: epochMs.nullable()
|
|
1594
1731
|
});
|
|
1595
1732
|
|
|
1596
1733
|
// src/schema/resources.ts
|
|
1597
|
-
var
|
|
1598
|
-
var ResourcesDisk =
|
|
1734
|
+
var import_zod22 = require("zod");
|
|
1735
|
+
var ResourcesDisk = import_zod22.z.strictObject({
|
|
1599
1736
|
/** Where it is mounted ("/", "C:"). */
|
|
1600
|
-
mount:
|
|
1737
|
+
mount: import_zod22.z.string().max(512),
|
|
1601
1738
|
/** The file system ("apfs", "NTFS", "ext4"). */
|
|
1602
|
-
fs:
|
|
1739
|
+
fs: import_zod22.z.string().max(64),
|
|
1603
1740
|
size_bytes: nonNegInt,
|
|
1604
1741
|
used_bytes: nonNegInt,
|
|
1605
1742
|
available_bytes: nonNegInt
|
|
1606
1743
|
});
|
|
1607
|
-
var ResourcesSnapshotParams =
|
|
1608
|
-
var ResourcesSnapshotResult =
|
|
1609
|
-
cpu:
|
|
1744
|
+
var ResourcesSnapshotParams = import_zod22.z.strictObject({});
|
|
1745
|
+
var ResourcesSnapshotResult = import_zod22.z.strictObject({
|
|
1746
|
+
cpu: import_zod22.z.strictObject({
|
|
1610
1747
|
/** Busy share of all cores, 0–100, measured now. */
|
|
1611
|
-
percent:
|
|
1612
|
-
cores:
|
|
1748
|
+
percent: import_zod22.z.number().min(0).max(100),
|
|
1749
|
+
cores: import_zod22.z.int().min(1),
|
|
1613
1750
|
/** 1, 5 and 15 minute load averages; null on Windows. */
|
|
1614
|
-
load:
|
|
1751
|
+
load: import_zod22.z.array(import_zod22.z.number().min(0)).length(3).nullable()
|
|
1615
1752
|
}),
|
|
1616
|
-
memory:
|
|
1617
|
-
swap:
|
|
1618
|
-
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),
|
|
1619
1756
|
uptime_seconds: nonNegInt
|
|
1620
1757
|
});
|
|
1621
1758
|
|
|
1622
1759
|
// src/schema/audio.ts
|
|
1623
|
-
var
|
|
1624
|
-
var AudioDevice =
|
|
1760
|
+
var import_zod23 = require("zod");
|
|
1761
|
+
var AudioDevice = import_zod23.z.strictObject({
|
|
1625
1762
|
/** The OS's name for it, as audio.record takes it. */
|
|
1626
|
-
id:
|
|
1627
|
-
name:
|
|
1628
|
-
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()
|
|
1629
1766
|
});
|
|
1630
|
-
var AudioDevicesParams =
|
|
1631
|
-
var AudioDevicesResult =
|
|
1632
|
-
inputs:
|
|
1633
|
-
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)
|
|
1634
1771
|
});
|
|
1635
|
-
var AudioRecordParams =
|
|
1636
|
-
seconds:
|
|
1772
|
+
var AudioRecordParams = import_zod23.z.strictObject({
|
|
1773
|
+
seconds: import_zod23.z.number().min(0.5).max(600),
|
|
1637
1774
|
/** The microphone (from audio.devices); the default input when absent. */
|
|
1638
|
-
device_id:
|
|
1775
|
+
device_id: import_zod23.z.string().min(1).max(256).optional(),
|
|
1639
1776
|
/** Where the WAV file goes; a new file in the temp folder when absent. */
|
|
1640
1777
|
path: AbsPath.optional()
|
|
1641
1778
|
});
|
|
1642
|
-
var AudioRecordResult =
|
|
1779
|
+
var AudioRecordResult = import_zod23.z.strictObject({
|
|
1643
1780
|
path: AbsPath,
|
|
1644
|
-
seconds:
|
|
1781
|
+
seconds: import_zod23.z.number().min(0),
|
|
1645
1782
|
bytes: nonNegInt,
|
|
1646
1783
|
/** Loudest sample, 0–1: 0 means the device gave silence. */
|
|
1647
|
-
peak:
|
|
1784
|
+
peak: import_zod23.z.number().min(0).max(1)
|
|
1648
1785
|
});
|
|
1649
|
-
var AudioPlayParams =
|
|
1650
|
-
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) });
|
|
1651
1788
|
|
|
1652
1789
|
// src/schema/fs-watch.ts
|
|
1653
|
-
var
|
|
1654
|
-
var FsWatchId =
|
|
1655
|
-
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({
|
|
1656
1793
|
path: AbsPath,
|
|
1657
|
-
recursive:
|
|
1794
|
+
recursive: import_zod24.z.boolean().default(true),
|
|
1658
1795
|
/** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
|
|
1659
|
-
ignore:
|
|
1796
|
+
ignore: import_zod24.z.array(import_zod24.z.string().max(256)).max(64).default([])
|
|
1660
1797
|
});
|
|
1661
|
-
var FsWatchStartResult =
|
|
1798
|
+
var FsWatchStartResult = import_zod24.z.strictObject({
|
|
1662
1799
|
watch_id: FsWatchId,
|
|
1663
1800
|
path: AbsPath,
|
|
1664
1801
|
/** The watch ends by itself if nobody reads it for 30 minutes. */
|
|
1665
1802
|
expires_at_ms: epochMs
|
|
1666
1803
|
});
|
|
1667
|
-
var FsWatchEventsParams =
|
|
1804
|
+
var FsWatchEventsParams = import_zod24.z.strictObject({
|
|
1668
1805
|
watch_id: FsWatchId,
|
|
1669
1806
|
/** Wait up to this long for a first change when none is waiting (0 answers at once). */
|
|
1670
|
-
wait_ms:
|
|
1807
|
+
wait_ms: import_zod24.z.int().min(0).max(25e3).default(0)
|
|
1671
1808
|
});
|
|
1672
|
-
var FsWatchEventsResult =
|
|
1809
|
+
var FsWatchEventsResult = import_zod24.z.strictObject({
|
|
1673
1810
|
/** What changed since the last read, oldest first; re-checked against the disk when read. */
|
|
1674
|
-
changes:
|
|
1811
|
+
changes: import_zod24.z.array(FsChange).max(1e3),
|
|
1675
1812
|
/** Changes were dropped (more than 1000 waited): list the folder again. */
|
|
1676
|
-
overflow:
|
|
1813
|
+
overflow: import_zod24.z.boolean(),
|
|
1677
1814
|
expires_at_ms: epochMs
|
|
1678
1815
|
});
|
|
1679
|
-
var FsWatchStopParams =
|
|
1680
|
-
var FsWatchStopResult =
|
|
1816
|
+
var FsWatchStopParams = import_zod24.z.strictObject({ watch_id: FsWatchId });
|
|
1817
|
+
var FsWatchStopResult = import_zod24.z.strictObject({ watch_id: FsWatchId });
|
|
1681
1818
|
|
|
1682
1819
|
// src/schema/exec-job.ts
|
|
1683
|
-
var
|
|
1684
|
-
var ExecJobId =
|
|
1685
|
-
var ExecJobStartParams =
|
|
1686
|
-
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),
|
|
1687
1824
|
/** The folder it runs in; the home folder when absent. */
|
|
1688
1825
|
cwd: AbsPath.optional(),
|
|
1689
|
-
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()
|
|
1690
1827
|
});
|
|
1691
|
-
var ExecJobStartResult =
|
|
1692
|
-
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({
|
|
1693
1830
|
job_id: ExecJobId,
|
|
1694
1831
|
/** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
|
|
1695
1832
|
offset: nonNegInt.default(0),
|
|
1696
1833
|
/** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
|
|
1697
|
-
wait_ms:
|
|
1698
|
-
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)
|
|
1699
1836
|
});
|
|
1700
|
-
var ExecJobOutputResult =
|
|
1837
|
+
var ExecJobOutputResult = import_zod25.z.strictObject({
|
|
1701
1838
|
/** stdout and stderr interleaved as they arrived (UTF-8). */
|
|
1702
|
-
output:
|
|
1839
|
+
output: import_zod25.z.string(),
|
|
1703
1840
|
next_offset: nonNegInt,
|
|
1704
1841
|
/** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
|
|
1705
1842
|
dropped_bytes: nonNegInt,
|
|
1706
|
-
running:
|
|
1707
|
-
exit_code:
|
|
1843
|
+
running: import_zod25.z.boolean(),
|
|
1844
|
+
exit_code: import_zod25.z.int().nullable()
|
|
1708
1845
|
});
|
|
1709
|
-
var ExecJobStopParams =
|
|
1846
|
+
var ExecJobStopParams = import_zod25.z.strictObject({
|
|
1710
1847
|
job_id: ExecJobId,
|
|
1711
1848
|
/** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
|
|
1712
|
-
force:
|
|
1849
|
+
force: import_zod25.z.boolean().default(false)
|
|
1713
1850
|
});
|
|
1714
|
-
var ExecJobStopResult =
|
|
1715
|
-
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({
|
|
1716
1853
|
job_id: ExecJobId,
|
|
1717
|
-
command:
|
|
1718
|
-
pid:
|
|
1854
|
+
command: import_zod25.z.string().max(1024),
|
|
1855
|
+
pid: import_zod25.z.int().min(1),
|
|
1719
1856
|
cwd: AbsPath,
|
|
1720
|
-
running:
|
|
1721
|
-
exit_code:
|
|
1857
|
+
running: import_zod25.z.boolean(),
|
|
1858
|
+
exit_code: import_zod25.z.int().nullable(),
|
|
1722
1859
|
started_at_ms: epochMs,
|
|
1723
1860
|
output_bytes: nonNegInt
|
|
1724
1861
|
});
|
|
1725
|
-
var ExecJobListParams =
|
|
1726
|
-
var ExecJobListResult =
|
|
1862
|
+
var ExecJobListParams = import_zod25.z.strictObject({});
|
|
1863
|
+
var ExecJobListResult = import_zod25.z.strictObject({ jobs: import_zod25.z.array(ExecJobInfo).max(64) });
|
|
1727
1864
|
|
|
1728
1865
|
// src/schema/coding.ts
|
|
1729
|
-
var
|
|
1730
|
-
var CodingServiceCredentials =
|
|
1731
|
-
access_token:
|
|
1732
|
-
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}$/),
|
|
1733
1870
|
/** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
|
|
1734
|
-
server_url:
|
|
1871
|
+
server_url: import_zod26.z.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
|
|
1735
1872
|
});
|
|
1736
|
-
var CodingHistoryBlocked =
|
|
1873
|
+
var CodingHistoryBlocked = import_zod26.z.enum([
|
|
1737
1874
|
"signed_out",
|
|
1738
1875
|
"offline",
|
|
1739
1876
|
"organization_required",
|
|
@@ -1741,11 +1878,11 @@ var CodingHistoryBlocked = import_zod25.z.enum([
|
|
|
1741
1878
|
"cloud_list_unavailable",
|
|
1742
1879
|
"history_too_large"
|
|
1743
1880
|
]);
|
|
1744
|
-
var CodingHistoryFailure =
|
|
1745
|
-
session_id:
|
|
1746
|
-
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)
|
|
1747
1884
|
});
|
|
1748
|
-
var CodingHistoryRun =
|
|
1885
|
+
var CodingHistoryRun = import_zod26.z.strictObject({
|
|
1749
1886
|
/** Claude Code sessions found on this computer. */
|
|
1750
1887
|
local_sessions: nonNegInt,
|
|
1751
1888
|
/** Of those, already complete in AI Matrx. */
|
|
@@ -1760,39 +1897,39 @@ var CodingHistoryRun = import_zod25.z.strictObject({
|
|
|
1760
1897
|
/** Changed while being read; a later run takes them. */
|
|
1761
1898
|
changed: nonNegInt,
|
|
1762
1899
|
failed: nonNegInt,
|
|
1763
|
-
failures:
|
|
1900
|
+
failures: import_zod26.z.array(CodingHistoryFailure).max(20),
|
|
1764
1901
|
/** Candidates not reached yet. */
|
|
1765
1902
|
remaining: nonNegInt,
|
|
1766
1903
|
/** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
|
|
1767
|
-
summary:
|
|
1904
|
+
summary: import_zod26.z.string().max(400)
|
|
1768
1905
|
});
|
|
1769
|
-
var CodingHistoryStep =
|
|
1906
|
+
var CodingHistoryStep = import_zod26.z.strictObject({
|
|
1770
1907
|
/** Null when the run could not start (blocked before a plan existed). */
|
|
1771
|
-
plan_id:
|
|
1772
|
-
finished:
|
|
1908
|
+
plan_id: import_zod26.z.string().regex(/^[0-9a-f]{32}$/).nullable(),
|
|
1909
|
+
finished: import_zod26.z.boolean(),
|
|
1773
1910
|
blocked: CodingHistoryBlocked.nullable(),
|
|
1774
1911
|
run: CodingHistoryRun
|
|
1775
1912
|
});
|
|
1776
|
-
var CodingPlanMissingParams =
|
|
1777
|
-
var CodingImportNextParams =
|
|
1778
|
-
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}$/),
|
|
1779
1916
|
credentials: CodingServiceCredentials.nullable()
|
|
1780
1917
|
});
|
|
1781
|
-
var CodingServiceProgress =
|
|
1782
|
-
phase:
|
|
1918
|
+
var CodingServiceProgress = import_zod26.z.strictObject({
|
|
1919
|
+
phase: import_zod26.z.enum(["checking", "importing"]),
|
|
1783
1920
|
done: nonNegInt,
|
|
1784
1921
|
total: nonNegInt
|
|
1785
1922
|
});
|
|
1786
|
-
var CodingHistoryImportMissingParams =
|
|
1787
|
-
var CodingHistoryImportMissingResult =
|
|
1788
|
-
state:
|
|
1923
|
+
var CodingHistoryImportMissingParams = import_zod26.z.strictObject({});
|
|
1924
|
+
var CodingHistoryImportMissingResult = import_zod26.z.strictObject({
|
|
1925
|
+
state: import_zod26.z.enum(["done", "blocked", "cancelled"]),
|
|
1789
1926
|
blocked: CodingHistoryBlocked.nullable(),
|
|
1790
1927
|
run: CodingHistoryRun,
|
|
1791
1928
|
elapsed_ms: nonNegInt
|
|
1792
1929
|
});
|
|
1793
|
-
var CodingHistoryProgressEvent =
|
|
1930
|
+
var CodingHistoryProgressEvent = import_zod26.z.strictObject({
|
|
1794
1931
|
request_id: RequestId,
|
|
1795
|
-
phase:
|
|
1932
|
+
phase: import_zod26.z.enum(["checking", "importing"]),
|
|
1796
1933
|
/** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
|
|
1797
1934
|
done: nonNegInt,
|
|
1798
1935
|
total: nonNegInt,
|
|
@@ -1837,6 +1974,11 @@ var OPS = {
|
|
|
1837
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"] },
|
|
1838
1975
|
"apps.profiles.remove": { params: AppsProfilesRemoveParams, result: AppsProfilesRemoveResult, kind: "unary", since: "1.2", errors: ["AUTH_REQUIRED", "AUTH_FORBIDDEN", "NOT_FOUND", "DEVICE_OFFLINE", "INTERNAL"] },
|
|
1839
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"] },
|
|
1840
1982
|
"proc.list": { params: ProcListParams, result: ProcListResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1841
1983
|
"proc.ports": { params: ProcPortsParams, result: ProcPortsResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
1842
1984
|
"proc.kill": { params: ProcKillParams, result: ProcKillResult, kind: "unary", since: "1.3", errors: ["NOT_FOUND", "AUTH_FORBIDDEN", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "INTERNAL"] },
|
|
@@ -1873,6 +2015,7 @@ var OPS = {
|
|
|
1873
2015
|
};
|
|
1874
2016
|
var EVENTS = {
|
|
1875
2017
|
"fs.changed": FsChangedEvent,
|
|
2018
|
+
"apps.chats.changed": AppsChatsChangedEvent,
|
|
1876
2019
|
"exec.exited": ExecExitedEvent,
|
|
1877
2020
|
"exec.title": ExecTitleEvent,
|
|
1878
2021
|
"exec.cwd": ExecCwdEvent,
|
|
@@ -2137,7 +2280,28 @@ var NAMED_SCHEMAS = {
|
|
|
2137
2280
|
AppsProfilesRemoveParams,
|
|
2138
2281
|
AppsProfilesRemoveResult,
|
|
2139
2282
|
AppsOpenParams,
|
|
2140
|
-
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
|
|
2141
2305
|
};
|
|
2142
2306
|
|
|
2143
2307
|
// src/versioning.ts
|
|
@@ -2145,7 +2309,8 @@ var FIELDS_SINCE = {
|
|
|
2145
2309
|
FsPatchResult: { edits_applied: "1.1", edits_failed: "1.1" },
|
|
2146
2310
|
"ProtocolErrorBody.data": { edits_failed: "1.1" },
|
|
2147
2311
|
"RelayCallResponse|0": { protocol_version: "1.1" },
|
|
2148
|
-
"RelayCallResponse|1": { protocol_version: "1.1" }
|
|
2312
|
+
"RelayCallResponse|1": { protocol_version: "1.1" },
|
|
2313
|
+
WindowInfo: { app: "1.7", pid: "1.7" }
|
|
2149
2314
|
};
|
|
2150
2315
|
var NULL_SINCE = {
|
|
2151
2316
|
"RelayDeviceStatusEvent.since_ms": { since: "1.1", olderPeersGet: 0 }
|
|
@@ -2199,8 +2364,28 @@ function strip(value, fields, version) {
|
|
|
2199
2364
|
return out ?? value;
|
|
2200
2365
|
}
|
|
2201
2366
|
var RESULT_PATH = /* @__PURE__ */ new Map([["fs.patch", "FsPatchResult"]]);
|
|
2367
|
+
var WINDOW_RESULTS = /* @__PURE__ */ new Map([
|
|
2368
|
+
["window.list", "windows"],
|
|
2369
|
+
["window.focus", "window"],
|
|
2370
|
+
["window.move", "window"]
|
|
2371
|
+
]);
|
|
2372
|
+
function stripWindows(value, key, version) {
|
|
2373
|
+
if (value === null || typeof value !== "object") return value;
|
|
2374
|
+
const body = value;
|
|
2375
|
+
const inner = body[key];
|
|
2376
|
+
if (inner === void 0) return value;
|
|
2377
|
+
const fields = FIELDS_SINCE.WindowInfo;
|
|
2378
|
+
if (Array.isArray(inner)) {
|
|
2379
|
+
const next2 = inner.map((w) => strip(w, fields, version));
|
|
2380
|
+
return next2.some((w, i) => w !== inner[i]) ? { ...body, [key]: next2 } : value;
|
|
2381
|
+
}
|
|
2382
|
+
const next = strip(inner, fields, version);
|
|
2383
|
+
return next === inner ? value : { ...body, [key]: next };
|
|
2384
|
+
}
|
|
2202
2385
|
function forPeer(op, part, value, version) {
|
|
2203
2386
|
if (part === "result") {
|
|
2387
|
+
const windowKey = op ? WINDOW_RESULTS.get(op) : void 0;
|
|
2388
|
+
if (windowKey) return stripWindows(value, windowKey, version);
|
|
2204
2389
|
const path = op ? RESULT_PATH.get(op) : void 0;
|
|
2205
2390
|
return path ? strip(value, FIELDS_SINCE[path], version) : value;
|
|
2206
2391
|
}
|
|
@@ -2216,10 +2401,10 @@ function forPeer(op, part, value, version) {
|
|
|
2216
2401
|
}
|
|
2217
2402
|
return data === body.data ? value : { ...body, data };
|
|
2218
2403
|
}
|
|
2219
|
-
var VERSIONED_RESULT_OPS = [...RESULT_PATH.keys()];
|
|
2404
|
+
var VERSIONED_RESULT_OPS = [...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys()];
|
|
2220
2405
|
|
|
2221
2406
|
// src/contract.ts
|
|
2222
|
-
var CONTRACT_SHA256 = "
|
|
2407
|
+
var CONTRACT_SHA256 = "7a5b3712fe3200b8f1051edb1cc9702e696a8d24b2033f9ea73e1a422f52dd33";
|
|
2223
2408
|
|
|
2224
2409
|
// src/close-policy.ts
|
|
2225
2410
|
var CLOSE_RULES = {
|