@ai-matrx/desktop-protocol 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -46,6 +46,10 @@ __export(src_exports, {
46
46
  CancelMsg: () => CancelMsg,
47
47
  ClientToCoreMsg: () => ClientToCoreMsg,
48
48
  ClientType: () => ClientType,
49
+ ClipboardReadParams: () => ClipboardReadParams,
50
+ ClipboardReadResult: () => ClipboardReadResult,
51
+ ClipboardWriteParams: () => ClipboardWriteParams,
52
+ ClipboardWriteResult: () => ClipboardWriteResult,
49
53
  CloseCode: () => CloseCode,
50
54
  CloseCodeValue: () => CloseCodeValue,
51
55
  ContractHash: () => ContractHash,
@@ -67,6 +71,16 @@ __export(src_exports, {
67
71
  EventMsg: () => EventMsg,
68
72
  ExecCwdEvent: () => ExecCwdEvent,
69
73
  ExecExitedEvent: () => ExecExitedEvent,
74
+ ExecJobId: () => ExecJobId,
75
+ ExecJobInfo: () => ExecJobInfo,
76
+ ExecJobListParams: () => ExecJobListParams,
77
+ ExecJobListResult: () => ExecJobListResult,
78
+ ExecJobOutputParams: () => ExecJobOutputParams,
79
+ ExecJobOutputResult: () => ExecJobOutputResult,
80
+ ExecJobStartParams: () => ExecJobStartParams,
81
+ ExecJobStartResult: () => ExecJobStartResult,
82
+ ExecJobStopParams: () => ExecJobStopParams,
83
+ ExecJobStopResult: () => ExecJobStopResult,
70
84
  ExecListParams: () => ExecListParams,
71
85
  ExecListResult: () => ExecListResult,
72
86
  ExecPtyKillParams: () => ExecPtyKillParams,
@@ -116,11 +130,28 @@ __export(src_exports, {
116
130
  FsSearchPathsResult: () => FsSearchPathsResult,
117
131
  FsStatParams: () => FsStatParams,
118
132
  FsStatResult: () => FsStatResult,
133
+ FsWatchEventsParams: () => FsWatchEventsParams,
134
+ FsWatchEventsResult: () => FsWatchEventsResult,
135
+ FsWatchId: () => FsWatchId,
119
136
  FsWatchParams: () => FsWatchParams,
120
137
  FsWatchResult: () => FsWatchResult,
138
+ FsWatchStartParams: () => FsWatchStartParams,
139
+ FsWatchStartResult: () => FsWatchStartResult,
140
+ FsWatchStopParams: () => FsWatchStopParams,
141
+ FsWatchStopResult: () => FsWatchStopResult,
121
142
  FsWriteParams: () => FsWriteParams,
122
143
  FsWriteResult: () => FsWriteResult,
123
144
  HelloMsg: () => HelloMsg,
145
+ InputHotkeyParams: () => InputHotkeyParams,
146
+ InputHotkeyResult: () => InputHotkeyResult,
147
+ InputKey: () => InputKey,
148
+ InputMouseClickParams: () => InputMouseClickParams,
149
+ InputMouseClickResult: () => InputMouseClickResult,
150
+ InputMouseMoveParams: () => InputMouseMoveParams,
151
+ InputMouseMoveResult: () => InputMouseMoveResult,
152
+ InputPoint: () => InputPoint,
153
+ InputTypeTextParams: () => InputTypeTextParams,
154
+ InputTypeTextResult: () => InputTypeTextResult,
124
155
  LEGACY_ACTIONS: () => LEGACY_ACTIONS,
125
156
  LEGACY_DISPATCHERS: () => LEGACY_DISPATCHERS,
126
157
  Limits: () => Limits,
@@ -149,6 +180,19 @@ __export(src_exports, {
149
180
  PROTOCOL_MAJOR: () => PROTOCOL_MAJOR,
150
181
  PROTOCOL_MINOR: () => PROTOCOL_MINOR,
151
182
  PROTOCOL_VERSION: () => PROTOCOL_VERSION,
183
+ PowerPreventSleepParams: () => PowerPreventSleepParams,
184
+ PowerPreventSleepResult: () => PowerPreventSleepResult,
185
+ PowerStatusParams: () => PowerStatusParams,
186
+ PowerStatusResult: () => PowerStatusResult,
187
+ ProcInfo: () => ProcInfo,
188
+ ProcKillParams: () => ProcKillParams,
189
+ ProcKillResult: () => ProcKillResult,
190
+ ProcListParams: () => ProcListParams,
191
+ ProcListResult: () => ProcListResult,
192
+ ProcPort: () => ProcPort,
193
+ ProcPortsParams: () => ProcPortsParams,
194
+ ProcPortsResult: () => ProcPortsResult,
195
+ ProcSort: () => ProcSort,
152
196
  ProtocolErrorBody: () => ProtocolErrorBody,
153
197
  ProtocolVersion: () => ProtocolVersion,
154
198
  PtyInfo: () => PtyInfo,
@@ -170,10 +214,18 @@ __export(src_exports, {
170
214
  RequestMsg: () => RequestMsg,
171
215
  ResourceId: () => ResourceId,
172
216
  ResourceInfo: () => ResourceInfo,
217
+ ResourcesDisk: () => ResourcesDisk,
218
+ ResourcesSnapshotParams: () => ResourcesSnapshotParams,
219
+ ResourcesSnapshotResult: () => ResourcesSnapshotResult,
173
220
  ResponseMsg: () => ResponseMsg,
174
221
  SERVICES: () => SERVICES,
175
222
  SERVICE_MAX_FRAME_BYTES: () => SERVICE_MAX_FRAME_BYTES,
176
223
  SUBPROTOCOL: () => SUBPROTOCOL,
224
+ ScreenCaptureParams: () => ScreenCaptureParams,
225
+ ScreenCaptureResult: () => ScreenCaptureResult,
226
+ ScreenDisplay: () => ScreenDisplay,
227
+ ScreenListParams: () => ScreenListParams,
228
+ ScreenListResult: () => ScreenListResult,
177
229
  ServiceCancel: () => ServiceCancel,
178
230
  ServiceErrorMsg: () => ServiceErrorMsg,
179
231
  ServiceHello: () => ServiceHello,
@@ -201,6 +253,12 @@ __export(src_exports, {
201
253
  StreamMsg: () => StreamMsg,
202
254
  SysinfoGetParams: () => SysinfoGetParams,
203
255
  SysinfoGetResult: () => SysinfoGetResult,
256
+ SystemNotifyParams: () => SystemNotifyParams,
257
+ SystemNotifyResult: () => SystemNotifyResult,
258
+ SystemOpenPathParams: () => SystemOpenPathParams,
259
+ SystemOpenPathResult: () => SystemOpenPathResult,
260
+ SystemOpenUrlParams: () => SystemOpenUrlParams,
261
+ SystemOpenUrlResult: () => SystemOpenUrlResult,
204
262
  TOOL_CATALOG: () => TOOL_CATALOG,
205
263
  TOOL_GROUPS: () => TOOL_GROUPS,
206
264
  TOOL_LEVELS: () => TOOL_LEVELS,
@@ -217,6 +275,15 @@ __export(src_exports, {
217
275
  TranscriptionModelInfo: () => TranscriptionModelInfo,
218
276
  VERSIONED_RESULT_OPS: () => VERSIONED_RESULT_OPS,
219
277
  Welcome: () => Welcome,
278
+ WindowFocusParams: () => WindowFocusParams,
279
+ WindowFocusResult: () => WindowFocusResult,
280
+ WindowInfo: () => WindowInfo,
281
+ WindowListParams: () => WindowListParams,
282
+ WindowListResult: () => WindowListResult,
283
+ WindowMinimizeParams: () => WindowMinimizeParams,
284
+ WindowMinimizeResult: () => WindowMinimizeResult,
285
+ WindowMoveParams: () => WindowMoveParams,
286
+ WindowMoveResult: () => WindowMoveResult,
220
287
  announcedVersion: () => announcedVersion,
221
288
  assertFrameHeader: () => assertFrameHeader,
222
289
  buildToolStatus: () => buildToolStatus,
@@ -247,7 +314,7 @@ module.exports = __toCommonJS(src_exports);
247
314
  // src/schema/primitives.ts
248
315
  var import_zod = require("zod");
249
316
  var PROTOCOL_MAJOR = 1;
250
- var PROTOCOL_MINOR = 2;
317
+ var PROTOCOL_MINOR = 4;
251
318
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
252
319
  var ProtocolVersion = import_zod.z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
253
320
  var RequestId = import_zod.z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -1195,6 +1262,404 @@ var ToolResultsFile = import_zod13.z.strictObject({
1195
1262
  results: import_zod13.z.array(ToolLevelResult).max(1e4)
1196
1263
  });
1197
1264
 
1265
+ // src/schema/proc.ts
1266
+ var import_zod14 = require("zod");
1267
+ var ProcSort = import_zod14.z.enum(["cpu", "memory", "pid", "name"]);
1268
+ var ProcListParams = import_zod14.z.strictObject({
1269
+ /** Case-insensitive substring of the process name or its command line. */
1270
+ name: import_zod14.z.string().min(1).max(128).optional(),
1271
+ sort: ProcSort.default("cpu"),
1272
+ limit: import_zod14.z.int().min(1).max(500).default(50)
1273
+ });
1274
+ var ProcInfo = import_zod14.z.strictObject({
1275
+ pid: import_zod14.z.int().min(0),
1276
+ /** Parent process id; null where the OS does not report it. */
1277
+ ppid: import_zod14.z.int().min(0).nullable(),
1278
+ name: import_zod14.z.string().max(256),
1279
+ /** The command line, cut to 1024 characters. */
1280
+ command: import_zod14.z.string().max(1024),
1281
+ /** Share of one core, as `ps` and Task Manager report it; null where the OS does not say. */
1282
+ cpu_percent: import_zod14.z.number().min(0).nullable(),
1283
+ memory_bytes: nonNegInt.nullable(),
1284
+ user: import_zod14.z.string().max(128).nullable()
1285
+ });
1286
+ var ProcListResult = import_zod14.z.strictObject({
1287
+ processes: import_zod14.z.array(ProcInfo).max(500),
1288
+ /** Processes that matched before `limit`. */
1289
+ total: nonNegInt,
1290
+ truncated: import_zod14.z.boolean()
1291
+ });
1292
+ var ProcPortsParams = import_zod14.z.strictObject({
1293
+ /** Only this port. */
1294
+ port: import_zod14.z.int().min(1).max(65535).optional()
1295
+ });
1296
+ var ProcPort = import_zod14.z.strictObject({
1297
+ port: import_zod14.z.int().min(1).max(65535),
1298
+ protocol: import_zod14.z.enum(["tcp", "udp"]),
1299
+ /** The local address it listens on ("127.0.0.1", "*", "::"). */
1300
+ address: import_zod14.z.string().max(64),
1301
+ pid: import_zod14.z.int().min(0).nullable(),
1302
+ process: import_zod14.z.string().max(256).nullable()
1303
+ });
1304
+ var ProcPortsResult = import_zod14.z.strictObject({ ports: import_zod14.z.array(ProcPort).max(4e3) });
1305
+ var ProcKillParams = import_zod14.z.strictObject({
1306
+ pid: import_zod14.z.int().min(1),
1307
+ /** Kill outright (SIGKILL; on Windows the same /F) instead of asking it to quit. */
1308
+ force: import_zod14.z.boolean().default(false)
1309
+ });
1310
+ var ProcKillResult = import_zod14.z.strictObject({
1311
+ pid: import_zod14.z.int().min(1),
1312
+ signal: import_zod14.z.enum(["SIGTERM", "SIGKILL"]),
1313
+ /** True when the process was gone within 3 s. */
1314
+ exited: import_zod14.z.boolean()
1315
+ });
1316
+
1317
+ // src/schema/clipboard.ts
1318
+ var import_zod15 = require("zod");
1319
+ var ClipboardReadParams = import_zod15.z.strictObject({});
1320
+ var ClipboardReadResult = import_zod15.z.strictObject({
1321
+ /** The clipboard's text ("" when it holds none), cut to 1 MiB. */
1322
+ text: import_zod15.z.string().max(1048576),
1323
+ truncated: import_zod15.z.boolean()
1324
+ });
1325
+ var ClipboardWriteParams = import_zod15.z.strictObject({ text: import_zod15.z.string().max(1048576) });
1326
+ var ClipboardWriteResult = import_zod15.z.strictObject({ bytes: nonNegInt });
1327
+
1328
+ // src/schema/system.ts
1329
+ var import_zod16 = require("zod");
1330
+ var SystemOpenUrlParams = import_zod16.z.strictObject({
1331
+ /** http, https or mailto; opened in the person's default app for it. */
1332
+ url: import_zod16.z.string().min(1).max(4096)
1333
+ });
1334
+ var SystemOpenUrlResult = import_zod16.z.strictObject({ url: import_zod16.z.string().max(4096) });
1335
+ var SystemOpenPathParams = import_zod16.z.strictObject({
1336
+ path: AbsPath,
1337
+ /** Show it in the file manager (Finder, Explorer) instead of opening it. */
1338
+ reveal: import_zod16.z.boolean().default(false)
1339
+ });
1340
+ var SystemOpenPathResult = import_zod16.z.strictObject({ path: AbsPath, revealed: import_zod16.z.boolean() });
1341
+ var SystemNotifyParams = import_zod16.z.strictObject({
1342
+ title: import_zod16.z.string().min(1).max(128),
1343
+ body: import_zod16.z.string().max(1024).default("")
1344
+ });
1345
+ var SystemNotifyResult = import_zod16.z.strictObject({
1346
+ /** False when this computer has no notification service to show it (a bare Linux box). */
1347
+ shown: import_zod16.z.boolean()
1348
+ });
1349
+
1350
+ // src/schema/screen.ts
1351
+ var import_zod17 = require("zod");
1352
+ var ScreenDisplay = import_zod17.z.strictObject({
1353
+ /** The OS's display id; pass it to screen.capture. */
1354
+ id: nonNegInt,
1355
+ name: import_zod17.z.string().max(128),
1356
+ /** Position and size in the OS's logical points (x and y may be negative left of or above the main display). */
1357
+ x: import_zod17.z.int(),
1358
+ y: import_zod17.z.int(),
1359
+ width: import_zod17.z.int().min(1),
1360
+ height: import_zod17.z.int().min(1),
1361
+ /** Pixels per point (2 on a Retina display). */
1362
+ scale: import_zod17.z.number().min(0.1).max(8),
1363
+ primary: import_zod17.z.boolean()
1364
+ });
1365
+ var ScreenListParams = import_zod17.z.strictObject({});
1366
+ var ScreenListResult = import_zod17.z.strictObject({ displays: import_zod17.z.array(ScreenDisplay).max(32) });
1367
+ var ScreenCaptureParams = import_zod17.z.strictObject({
1368
+ /** The display (from screen.list); the primary display when absent. */
1369
+ display_id: nonNegInt.optional(),
1370
+ format: import_zod17.z.enum(["jpeg", "png"]).default("jpeg"),
1371
+ /** Scale the picture down to at most this width in pixels (kept when already smaller). */
1372
+ max_width: import_zod17.z.int().min(160).max(7680).default(1600)
1373
+ });
1374
+ var ScreenCaptureResult = import_zod17.z.strictObject({
1375
+ display_id: nonNegInt,
1376
+ mime_type: import_zod17.z.enum(["image/jpeg", "image/png"]),
1377
+ width: import_zod17.z.int().min(1),
1378
+ height: import_zod17.z.int().min(1),
1379
+ /** The display's full resolution in pixels, before scaling. */
1380
+ source_width: import_zod17.z.int().min(1),
1381
+ source_height: import_zod17.z.int().min(1),
1382
+ /** The image, base64 (at most 6 MiB of text). */
1383
+ data_base64: import_zod17.z.string().max(6291456)
1384
+ });
1385
+
1386
+ // src/schema/window.ts
1387
+ var import_zod18 = require("zod");
1388
+ var WindowInfo = import_zod18.z.strictObject({
1389
+ /** The OS's window handle (macOS window number, Windows HWND, X11 window id). */
1390
+ id: nonNegInt,
1391
+ title: import_zod18.z.string().max(512),
1392
+ /** Position and size in logical points. */
1393
+ x: import_zod18.z.int(),
1394
+ y: import_zod18.z.int(),
1395
+ width: import_zod18.z.int().min(0),
1396
+ height: import_zod18.z.int().min(0)
1397
+ });
1398
+ var WindowListParams = import_zod18.z.strictObject({
1399
+ /** Case-insensitive substring of the window title. */
1400
+ title: import_zod18.z.string().min(1).max(256).optional(),
1401
+ limit: import_zod18.z.int().min(1).max(500).default(100)
1402
+ });
1403
+ var WindowListResult = import_zod18.z.strictObject({
1404
+ windows: import_zod18.z.array(WindowInfo).max(500),
1405
+ total: nonNegInt,
1406
+ truncated: import_zod18.z.boolean()
1407
+ });
1408
+ var WindowFocusParams = import_zod18.z.strictObject({ id: nonNegInt });
1409
+ var WindowFocusResult = import_zod18.z.strictObject({ window: WindowInfo });
1410
+ var WindowMoveParams = import_zod18.z.strictObject({
1411
+ id: nonNegInt,
1412
+ /** New top-left corner; unchanged when absent. */
1413
+ x: import_zod18.z.int().optional(),
1414
+ y: import_zod18.z.int().optional(),
1415
+ /** New size; unchanged when absent. */
1416
+ width: import_zod18.z.int().min(50).max(16384).optional(),
1417
+ height: import_zod18.z.int().min(50).max(16384).optional()
1418
+ });
1419
+ var WindowMoveResult = import_zod18.z.strictObject({ window: WindowInfo });
1420
+ var WindowMinimizeParams = import_zod18.z.strictObject({ id: nonNegInt });
1421
+ var WindowMinimizeResult = import_zod18.z.strictObject({ id: nonNegInt });
1422
+
1423
+ // src/schema/input.ts
1424
+ var import_zod19 = require("zod");
1425
+ var InputKey = import_zod19.z.enum([
1426
+ "cmd",
1427
+ "ctrl",
1428
+ "alt",
1429
+ "shift",
1430
+ "meta",
1431
+ "a",
1432
+ "b",
1433
+ "c",
1434
+ "d",
1435
+ "e",
1436
+ "f",
1437
+ "g",
1438
+ "h",
1439
+ "i",
1440
+ "j",
1441
+ "k",
1442
+ "l",
1443
+ "m",
1444
+ "n",
1445
+ "o",
1446
+ "p",
1447
+ "q",
1448
+ "r",
1449
+ "s",
1450
+ "t",
1451
+ "u",
1452
+ "v",
1453
+ "w",
1454
+ "x",
1455
+ "y",
1456
+ "z",
1457
+ "0",
1458
+ "1",
1459
+ "2",
1460
+ "3",
1461
+ "4",
1462
+ "5",
1463
+ "6",
1464
+ "7",
1465
+ "8",
1466
+ "9",
1467
+ "f1",
1468
+ "f2",
1469
+ "f3",
1470
+ "f4",
1471
+ "f5",
1472
+ "f6",
1473
+ "f7",
1474
+ "f8",
1475
+ "f9",
1476
+ "f10",
1477
+ "f11",
1478
+ "f12",
1479
+ "enter",
1480
+ "tab",
1481
+ "escape",
1482
+ "space",
1483
+ "backspace",
1484
+ "delete",
1485
+ "up",
1486
+ "down",
1487
+ "left",
1488
+ "right",
1489
+ "home",
1490
+ "end",
1491
+ "pageup",
1492
+ "pagedown",
1493
+ "minus",
1494
+ "equal",
1495
+ "comma",
1496
+ "period",
1497
+ "slash",
1498
+ "semicolon",
1499
+ "quote",
1500
+ "bracketleft",
1501
+ "bracketright",
1502
+ "backslash",
1503
+ "grave"
1504
+ ]);
1505
+ var InputTypeTextParams = import_zod19.z.strictObject({ text: import_zod19.z.string().min(1).max(1e4) });
1506
+ var InputTypeTextResult = import_zod19.z.strictObject({ characters: import_zod19.z.int().min(1) });
1507
+ var InputHotkeyParams = import_zod19.z.strictObject({
1508
+ /** Pressed together in order and released in reverse: ["cmd", "shift", "t"]. */
1509
+ keys: import_zod19.z.array(InputKey).min(1).max(6)
1510
+ });
1511
+ var InputHotkeyResult = import_zod19.z.strictObject({ keys: import_zod19.z.array(InputKey) });
1512
+ var InputPoint = import_zod19.z.strictObject({ x: import_zod19.z.int(), y: import_zod19.z.int() });
1513
+ var InputMouseMoveParams = import_zod19.z.strictObject({
1514
+ /** Screen position in logical points (the coordinates screen.list and window.list report). */
1515
+ x: import_zod19.z.int(),
1516
+ y: import_zod19.z.int()
1517
+ });
1518
+ var InputMouseMoveResult = import_zod19.z.strictObject({
1519
+ /** Where the pointer is now, read back from the OS. */
1520
+ position: InputPoint
1521
+ });
1522
+ var InputMouseClickParams = import_zod19.z.strictObject({
1523
+ /** Move here first; clicks where the pointer is when absent. */
1524
+ x: import_zod19.z.int().optional(),
1525
+ y: import_zod19.z.int().optional(),
1526
+ button: import_zod19.z.enum(["left", "right", "middle"]).default("left"),
1527
+ double: import_zod19.z.boolean().default(false)
1528
+ });
1529
+ var InputMouseClickResult = import_zod19.z.strictObject({
1530
+ position: InputPoint,
1531
+ button: import_zod19.z.enum(["left", "right", "middle"]),
1532
+ double: import_zod19.z.boolean()
1533
+ });
1534
+
1535
+ // src/schema/power.ts
1536
+ var import_zod20 = require("zod");
1537
+ var PowerStatusParams = import_zod20.z.strictObject({});
1538
+ var PowerStatusResult = import_zod20.z.strictObject({
1539
+ has_battery: import_zod20.z.boolean(),
1540
+ /** 0–100; null without a battery. */
1541
+ percent: import_zod20.z.number().min(0).max(100).nullable(),
1542
+ charging: import_zod20.z.boolean().nullable(),
1543
+ /** On wall power; null where the OS does not say. */
1544
+ plugged_in: import_zod20.z.boolean().nullable(),
1545
+ /** Minutes of battery left; null when charging, unknown or without a battery. */
1546
+ minutes_left: nonNegInt.nullable(),
1547
+ /** Matrx 2 is keeping the computer awake (power.prevent_sleep) until this time; null when it is not. */
1548
+ awake_until_ms: epochMs.nullable()
1549
+ });
1550
+ var PowerPreventSleepParams = import_zod20.z.strictObject({
1551
+ /** Keep the computer awake this long; 0 lets it sleep again now. */
1552
+ seconds: import_zod20.z.int().min(0).max(86400),
1553
+ /** Shown where the OS lists what keeps it awake. */
1554
+ reason: import_zod20.z.string().min(1).max(128).default("Matrx 2 is working")
1555
+ });
1556
+ var PowerPreventSleepResult = import_zod20.z.strictObject({
1557
+ /** When it may sleep again; null after seconds 0. */
1558
+ awake_until_ms: epochMs.nullable()
1559
+ });
1560
+
1561
+ // src/schema/resources.ts
1562
+ var import_zod21 = require("zod");
1563
+ var ResourcesDisk = import_zod21.z.strictObject({
1564
+ /** Where it is mounted ("/", "C:"). */
1565
+ mount: import_zod21.z.string().max(512),
1566
+ /** The file system ("apfs", "NTFS", "ext4"). */
1567
+ fs: import_zod21.z.string().max(64),
1568
+ size_bytes: nonNegInt,
1569
+ used_bytes: nonNegInt,
1570
+ available_bytes: nonNegInt
1571
+ });
1572
+ var ResourcesSnapshotParams = import_zod21.z.strictObject({});
1573
+ var ResourcesSnapshotResult = import_zod21.z.strictObject({
1574
+ cpu: import_zod21.z.strictObject({
1575
+ /** Busy share of all cores, 0–100, measured now. */
1576
+ percent: import_zod21.z.number().min(0).max(100),
1577
+ cores: import_zod21.z.int().min(1),
1578
+ /** 1, 5 and 15 minute load averages; null on Windows. */
1579
+ load: import_zod21.z.array(import_zod21.z.number().min(0)).length(3).nullable()
1580
+ }),
1581
+ memory: import_zod21.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
1582
+ swap: import_zod21.z.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
1583
+ disks: import_zod21.z.array(ResourcesDisk).max(64),
1584
+ uptime_seconds: nonNegInt
1585
+ });
1586
+
1587
+ // src/schema/fs-watch.ts
1588
+ var import_zod22 = require("zod");
1589
+ var FsWatchId = import_zod22.z.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
1590
+ var FsWatchStartParams = import_zod22.z.strictObject({
1591
+ path: AbsPath,
1592
+ recursive: import_zod22.z.boolean().default(true),
1593
+ /** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
1594
+ ignore: import_zod22.z.array(import_zod22.z.string().max(256)).max(64).default([])
1595
+ });
1596
+ var FsWatchStartResult = import_zod22.z.strictObject({
1597
+ watch_id: FsWatchId,
1598
+ path: AbsPath,
1599
+ /** The watch ends by itself if nobody reads it for 30 minutes. */
1600
+ expires_at_ms: epochMs
1601
+ });
1602
+ var FsWatchEventsParams = import_zod22.z.strictObject({
1603
+ watch_id: FsWatchId,
1604
+ /** Wait up to this long for a first change when none is waiting (0 answers at once). */
1605
+ wait_ms: import_zod22.z.int().min(0).max(25e3).default(0)
1606
+ });
1607
+ var FsWatchEventsResult = import_zod22.z.strictObject({
1608
+ /** What changed since the last read, oldest first; re-checked against the disk when read. */
1609
+ changes: import_zod22.z.array(FsChange).max(1e3),
1610
+ /** Changes were dropped (more than 1000 waited): list the folder again. */
1611
+ overflow: import_zod22.z.boolean(),
1612
+ expires_at_ms: epochMs
1613
+ });
1614
+ var FsWatchStopParams = import_zod22.z.strictObject({ watch_id: FsWatchId });
1615
+ var FsWatchStopResult = import_zod22.z.strictObject({ watch_id: FsWatchId });
1616
+
1617
+ // src/schema/exec-job.ts
1618
+ var import_zod23 = require("zod");
1619
+ var ExecJobId = import_zod23.z.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
1620
+ var ExecJobStartParams = import_zod23.z.strictObject({
1621
+ command: import_zod23.z.string().min(1).max(131072),
1622
+ /** The folder it runs in; the home folder when absent. */
1623
+ cwd: AbsPath.optional(),
1624
+ env: import_zod23.z.record(import_zod23.z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), import_zod23.z.string().max(32768)).optional()
1625
+ });
1626
+ var ExecJobStartResult = import_zod23.z.strictObject({ job_id: ExecJobId, pid: import_zod23.z.int().min(1), cwd: AbsPath });
1627
+ var ExecJobOutputParams = import_zod23.z.strictObject({
1628
+ job_id: ExecJobId,
1629
+ /** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
1630
+ offset: nonNegInt.default(0),
1631
+ /** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
1632
+ wait_ms: import_zod23.z.int().min(0).max(25e3).default(0),
1633
+ max_bytes: import_zod23.z.int().min(1024).max(1048576).default(65536)
1634
+ });
1635
+ var ExecJobOutputResult = import_zod23.z.strictObject({
1636
+ /** stdout and stderr interleaved as they arrived (UTF-8). */
1637
+ output: import_zod23.z.string(),
1638
+ next_offset: nonNegInt,
1639
+ /** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
1640
+ dropped_bytes: nonNegInt,
1641
+ running: import_zod23.z.boolean(),
1642
+ exit_code: import_zod23.z.int().nullable()
1643
+ });
1644
+ var ExecJobStopParams = import_zod23.z.strictObject({
1645
+ job_id: ExecJobId,
1646
+ /** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
1647
+ force: import_zod23.z.boolean().default(false)
1648
+ });
1649
+ var ExecJobStopResult = import_zod23.z.strictObject({ job_id: ExecJobId, exited: import_zod23.z.boolean(), exit_code: import_zod23.z.int().nullable() });
1650
+ var ExecJobInfo = import_zod23.z.strictObject({
1651
+ job_id: ExecJobId,
1652
+ command: import_zod23.z.string().max(1024),
1653
+ pid: import_zod23.z.int().min(1),
1654
+ cwd: AbsPath,
1655
+ running: import_zod23.z.boolean(),
1656
+ exit_code: import_zod23.z.int().nullable(),
1657
+ started_at_ms: epochMs,
1658
+ output_bytes: nonNegInt
1659
+ });
1660
+ var ExecJobListParams = import_zod23.z.strictObject({});
1661
+ var ExecJobListResult = import_zod23.z.strictObject({ jobs: import_zod23.z.array(ExecJobInfo).max(64) });
1662
+
1198
1663
  // src/schema/registry.ts
1199
1664
  var FS_ERR = ["NOT_FOUND", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "RESOURCE_BUSY", "INTERNAL"];
1200
1665
  var OPS = {
@@ -1231,7 +1696,35 @@ var OPS = {
1231
1696
  "apps.profiles.list": { params: AppsProfilesListParams, result: AppsProfilesListResult, kind: "unary", since: "1.2", errors: ["NOT_FOUND", "INVALID_PARAMS", "INTERNAL"] },
1232
1697
  "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"] },
1233
1698
  "apps.profiles.remove": { params: AppsProfilesRemoveParams, result: AppsProfilesRemoveResult, kind: "unary", since: "1.2", errors: ["AUTH_REQUIRED", "AUTH_FORBIDDEN", "NOT_FOUND", "DEVICE_OFFLINE", "INTERNAL"] },
1234
- "apps.open": { params: AppsOpenParams, result: AppsOpenResult, kind: "unary", since: "1.2", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "AUTH_REQUIRED", "DEVICE_OFFLINE", "INTERNAL"] }
1699
+ "apps.open": { params: AppsOpenParams, result: AppsOpenResult, kind: "unary", since: "1.2", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "AUTH_REQUIRED", "DEVICE_OFFLINE", "INTERNAL"] },
1700
+ "proc.list": { params: ProcListParams, result: ProcListResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1701
+ "proc.ports": { params: ProcPortsParams, result: ProcPortsResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1702
+ "proc.kill": { params: ProcKillParams, result: ProcKillResult, kind: "unary", since: "1.3", errors: ["NOT_FOUND", "AUTH_FORBIDDEN", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "INTERNAL"] },
1703
+ "clipboard.read": { params: ClipboardReadParams, result: ClipboardReadResult, kind: "unary", since: "1.3", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
1704
+ "clipboard.write": { params: ClipboardWriteParams, result: ClipboardWriteResult, kind: "unary", since: "1.3", errors: ["PLATFORM_UNSUPPORTED", "PAYLOAD_TOO_LARGE", "INTERNAL"] },
1705
+ "fs.watch.start": { params: FsWatchStartParams, result: FsWatchStartResult, kind: "unary", since: "1.4", errors: [...FS_ERR, "RATE_LIMITED"] },
1706
+ "fs.watch.events": { params: FsWatchEventsParams, result: FsWatchEventsResult, kind: "unary", since: "1.4", errors: ["RESOURCE_GONE", "INVALID_PARAMS", "INTERNAL"] },
1707
+ "fs.watch.stop": { params: FsWatchStopParams, result: FsWatchStopResult, kind: "unary", since: "1.4", errors: ["RESOURCE_GONE", "INVALID_PARAMS"] },
1708
+ "exec.job.start": { params: ExecJobStartParams, result: ExecJobStartResult, kind: "unary", since: "1.4", errors: ["INVALID_PARAMS", "NOT_FOUND", "RATE_LIMITED", "INTERNAL"] },
1709
+ "exec.job.output": { params: ExecJobOutputParams, result: ExecJobOutputResult, kind: "unary", since: "1.4", errors: ["RESOURCE_GONE", "INVALID_PARAMS"] },
1710
+ "exec.job.stop": { params: ExecJobStopParams, result: ExecJobStopResult, kind: "unary", since: "1.4", errors: ["RESOURCE_GONE", "INVALID_PARAMS", "INTERNAL"] },
1711
+ "exec.job.list": { params: ExecJobListParams, result: ExecJobListResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] },
1712
+ "system.open_url": { params: SystemOpenUrlParams, result: SystemOpenUrlResult, kind: "unary", since: "1.4", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1713
+ "system.open_path": { params: SystemOpenPathParams, result: SystemOpenPathResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1714
+ "system.notify": { params: SystemNotifyParams, result: SystemNotifyResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "INTERNAL"] },
1715
+ "screen.list": { params: ScreenListParams, result: ScreenListResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1716
+ "screen.capture": { params: ScreenCaptureParams, result: ScreenCaptureResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "PAYLOAD_TOO_LARGE", "INTERNAL"] },
1717
+ "window.list": { params: WindowListParams, result: WindowListResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1718
+ "window.focus": { params: WindowFocusParams, result: WindowFocusResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1719
+ "window.move": { params: WindowMoveParams, result: WindowMoveResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1720
+ "window.minimize": { params: WindowMinimizeParams, result: WindowMinimizeResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1721
+ "input.type_text": { params: InputTypeTextParams, result: InputTypeTextResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1722
+ "input.hotkey": { params: InputHotkeyParams, result: InputHotkeyResult, kind: "unary", since: "1.4", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1723
+ "input.mouse_move": { params: InputMouseMoveParams, result: InputMouseMoveResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1724
+ "input.mouse_click": { params: InputMouseClickParams, result: InputMouseClickResult, kind: "unary", since: "1.4", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1725
+ "power.status": { params: PowerStatusParams, result: PowerStatusResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] },
1726
+ "power.prevent_sleep": { params: PowerPreventSleepParams, result: PowerPreventSleepResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1727
+ "resources.snapshot": { params: ResourcesSnapshotParams, result: ResourcesSnapshotResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] }
1235
1728
  };
1236
1729
  var EVENTS = {
1237
1730
  "fs.changed": FsChangedEvent,
@@ -1383,6 +1876,73 @@ var NAMED_SCHEMAS = {
1383
1876
  RelayHopEnvelopeHeader,
1384
1877
  RelayHopConnectionEnd,
1385
1878
  CloseCodeValue,
1879
+ ProcSort,
1880
+ ProcListParams,
1881
+ ProcInfo,
1882
+ ProcListResult,
1883
+ ProcPortsParams,
1884
+ ProcPort,
1885
+ ProcPortsResult,
1886
+ ProcKillParams,
1887
+ ProcKillResult,
1888
+ ClipboardReadParams,
1889
+ ClipboardReadResult,
1890
+ ClipboardWriteParams,
1891
+ ClipboardWriteResult,
1892
+ SystemOpenUrlParams,
1893
+ SystemOpenUrlResult,
1894
+ SystemOpenPathParams,
1895
+ SystemOpenPathResult,
1896
+ SystemNotifyParams,
1897
+ SystemNotifyResult,
1898
+ ScreenDisplay,
1899
+ ScreenListParams,
1900
+ ScreenListResult,
1901
+ ScreenCaptureParams,
1902
+ ScreenCaptureResult,
1903
+ WindowInfo,
1904
+ WindowListParams,
1905
+ WindowListResult,
1906
+ WindowFocusParams,
1907
+ WindowFocusResult,
1908
+ WindowMoveParams,
1909
+ WindowMoveResult,
1910
+ WindowMinimizeParams,
1911
+ WindowMinimizeResult,
1912
+ InputKey,
1913
+ InputPoint,
1914
+ InputTypeTextParams,
1915
+ InputTypeTextResult,
1916
+ InputHotkeyParams,
1917
+ InputHotkeyResult,
1918
+ InputMouseMoveParams,
1919
+ InputMouseMoveResult,
1920
+ InputMouseClickParams,
1921
+ InputMouseClickResult,
1922
+ PowerStatusParams,
1923
+ PowerStatusResult,
1924
+ PowerPreventSleepParams,
1925
+ PowerPreventSleepResult,
1926
+ ResourcesDisk,
1927
+ ResourcesSnapshotParams,
1928
+ ResourcesSnapshotResult,
1929
+ FsWatchId,
1930
+ FsWatchStartParams,
1931
+ FsWatchStartResult,
1932
+ FsWatchEventsParams,
1933
+ FsWatchEventsResult,
1934
+ FsWatchStopParams,
1935
+ FsWatchStopResult,
1936
+ ExecJobId,
1937
+ ExecJobStartParams,
1938
+ ExecJobStartResult,
1939
+ ExecJobOutputParams,
1940
+ ExecJobOutputResult,
1941
+ ExecJobStopParams,
1942
+ ExecJobStopResult,
1943
+ ExecJobInfo,
1944
+ ExecJobListParams,
1945
+ ExecJobListResult,
1386
1946
  ToolLevel,
1387
1947
  ToolOutcome,
1388
1948
  ToolPlatform,
@@ -1488,7 +2048,7 @@ function forPeer(op, part, value, version) {
1488
2048
  var VERSIONED_RESULT_OPS = [...RESULT_PATH.keys()];
1489
2049
 
1490
2050
  // src/contract.ts
1491
- var CONTRACT_SHA256 = "ef9fd8c8ab611bf450730452a6cf48a4ebd566218b6e17e2834ef030fc2044cb";
2051
+ var CONTRACT_SHA256 = "a5378bb523cbf52619f16e2accc788931ffb443e762052db4ca42c598792c181";
1492
2052
 
1493
2053
  // src/close-policy.ts
1494
2054
  var CLOSE_RULES = {
@@ -1537,18 +2097,19 @@ var TOOL_CATALOG = [
1537
2097
  { name: "fs_search", group: "files_shell", state: "built", path: "sandbox_proxy", ops: ["fs.search_paths", "fs.search_content"], platforms: ALL, summary: "Find files by name or content" },
1538
2098
  { name: "shell_execute", group: "files_shell", state: "built", path: "sandbox_proxy", ops: ["exec.run"], platforms: ALL, summary: "Run a command; cd carries over" },
1539
2099
  { name: "shell_python", group: "files_shell", state: "built", path: "sandbox_proxy", ops: ["exec.run"], platforms: ALL, summary: "Run a Python script" },
1540
- { name: "shell_job", group: "files_shell", state: "planned", path: "device_op", ops: ["exec.job.start", "exec.job.output", "exec.job.stop"], platforms: ALL, summary: "Background commands: start, read output, stop" },
2100
+ { name: "shell_job", group: "files_shell", state: "built", path: "device_op", ops: ["exec.job.start", "exec.job.output", "exec.job.stop", "exec.job.list"], platforms: ALL, summary: "Background commands: start, read output, stop" },
1541
2101
  // ── 2. Computer control (TS owners) ──────────────────────────────────────────────────────────
1542
- { name: "desktop_process", group: "os_control", state: "planned", path: "device_op", ops: ["proc.list", "proc.ports", "proc.kill", "proc.launch_app", "proc.focus_app", "proc.installed_apps"], platforms: ALL, summary: "Processes, ports and apps" },
1543
- { name: "desktop_system", group: "os_control", state: "planned", path: "device_op", ops: ["sysinfo.get", "system.open_url", "system.open_path", "system.notify"], platforms: ALL, summary: "System facts, open, notify" },
1544
- { name: "desktop_clipboard", group: "os_control", state: "planned", path: "device_op", ops: ["clipboard.read", "clipboard.write"], platforms: ALL, summary: "Read and write the clipboard" },
1545
- { name: "desktop_screen", group: "os_control", state: "planned", path: "device_op", ops: ["screen.list", "screen.capture"], platforms: ALL, summary: "Displays and screenshots" },
1546
- { name: "desktop_window", group: "os_control", state: "planned", path: "device_op", ops: ["window.list", "window.focus", "window.move", "window.minimize"], platforms: ALL, summary: "Find, focus and arrange windows" },
1547
- { name: "desktop_input", group: "os_control", state: "planned", path: "device_op", ops: ["input.type_text", "input.hotkey", "input.mouse_click", "input.mouse_move"], platforms: ALL, summary: "Keyboard and mouse" },
2102
+ { name: "desktop_process", group: "os_control", state: "built", path: "device_op", ops: ["proc.list", "proc.ports", "proc.kill"], platforms: ALL, summary: "Running processes and ports; stop one" },
2103
+ { name: "desktop_apps", group: "os_control", state: "built", path: "device_op", ops: ["apps.list", "apps.open"], platforms: ALL, summary: "Installed apps; open or bring one forward" },
2104
+ { name: "desktop_system", group: "os_control", state: "built", path: "device_op", ops: ["sysinfo.get", "system.open_url", "system.open_path", "system.notify"], platforms: ALL, summary: "System facts, open, notify" },
2105
+ { name: "desktop_clipboard", group: "os_control", state: "built", path: "device_op", ops: ["clipboard.read", "clipboard.write"], platforms: ALL, summary: "Read and write the clipboard's text" },
2106
+ { name: "desktop_screen", group: "os_control", state: "built", path: "device_op", ops: ["screen.list", "screen.capture"], platforms: ALL, summary: "Displays and screenshots" },
2107
+ { name: "desktop_window", group: "os_control", state: "built", path: "device_op", ops: ["window.list", "window.focus", "window.move", "window.minimize"], platforms: ALL, summary: "Find, focus and arrange windows" },
2108
+ { name: "desktop_input", group: "os_control", state: "built", path: "device_op", ops: ["input.type_text", "input.hotkey", "input.mouse_click", "input.mouse_move"], platforms: ALL, summary: "Keyboard and mouse" },
1548
2109
  { name: "desktop_audio", group: "os_control", state: "planned", path: "device_op", ops: ["audio.devices", "audio.record", "audio.play"], platforms: ALL, summary: "Audio devices, record, play" },
1549
- { name: "desktop_power", group: "os_control", state: "planned", path: "device_op", ops: ["power.status", "power.prevent_sleep"], platforms: ALL, summary: "Battery and keep awake" },
1550
- { name: "desktop_resources", group: "os_control", state: "planned", path: "device_op", ops: ["resources.snapshot", "resources.top"], platforms: ALL, summary: "CPU, memory and disk use" },
1551
- { name: "fs_watch", group: "os_control", state: "planned", path: "device_op", ops: ["fs.watch"], platforms: ALL, summary: "Watch a folder for changes" },
2110
+ { name: "desktop_power", group: "os_control", state: "built", path: "device_op", ops: ["power.status", "power.prevent_sleep"], platforms: ALL, summary: "Battery and keep awake" },
2111
+ { name: "desktop_resources", group: "os_control", state: "built", path: "device_op", ops: ["resources.snapshot"], platforms: ALL, summary: "CPU, memory and disk use" },
2112
+ { name: "fs_watch", group: "os_control", state: "built", path: "device_op", ops: ["fs.watch.start", "fs.watch.events", "fs.watch.stop"], platforms: ALL, summary: "Watch a folder; read what changed" },
1552
2113
  // ── 3. Personal apps and automation ──────────────────────────────────────────────────────────
1553
2114
  { name: "desktop_automation", group: "personal_automation", state: "planned", path: "device_op", ops: ["automation.script"], platforms: ["darwin", "win32"], summary: "AppleScript on a Mac, PowerShell on Windows" },
1554
2115
  { name: "desktop_mail", group: "personal_automation", state: "planned", path: "device_op", ops: ["mail.accounts", "mail.list", "mail.send"], platforms: ["darwin"], summary: "The Mail app" },
@@ -1599,12 +2160,12 @@ var LEGACY_ACTIONS = {
1599
2160
  "local_window.minimize": tool("desktop_window"),
1600
2161
  "local_process.list": tool("desktop_process"),
1601
2162
  "local_process.ports": tool("desktop_process"),
1602
- "local_process.launch_app": tool("desktop_process"),
2163
+ "local_process.launch_app": tool("desktop_apps"),
1603
2164
  "local_process.kill": tool("desktop_process"),
1604
- "local_process.focus_app": tool("desktop_process"),
2165
+ "local_process.focus_app": tool("desktop_apps"),
1605
2166
  "local_process.terminals": dropped("Matrx 2 terminals are exec sessions; the person's own terminal windows are not the agent's"),
1606
2167
  "local_process.tail_terminal": dropped("Matrx 2 terminals are exec sessions; the person's own terminal windows are not the agent's"),
1607
- "local_process.installed_apps": tool("desktop_process"),
2168
+ "local_process.installed_apps": tool("desktop_apps"),
1608
2169
  "local_input.type_text": tool("desktop_input"),
1609
2170
  "local_input.hotkey": tool("desktop_input"),
1610
2171
  "local_input.mouse_click": tool("desktop_input"),
@@ -1649,7 +2210,7 @@ var LEGACY_ACTIONS = {
1649
2210
  "local_monitor.resources": tool("desktop_resources"),
1650
2211
  "local_monitor.battery": tool("desktop_power"),
1651
2212
  "local_monitor.disk_usage": tool("desktop_resources"),
1652
- "local_monitor.top_processes": tool("desktop_resources"),
2213
+ "local_monitor.top_processes": tool("desktop_process"),
1653
2214
  "local_monitor.watch_directory": tool("fs_watch"),
1654
2215
  "local_monitor.watch_events": tool("fs_watch"),
1655
2216
  "local_monitor.stop_watch": tool("fs_watch"),