@ai-matrx/desktop-protocol 0.21.16 → 0.21.18

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.21.18
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/desktop-protocol/v0.21.17..npm/desktop-protocol/v0.21.18 -- apps/shared/desktop-protocol`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.21.17
10
+
11
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
12
+ `git diff npm/desktop-protocol/v0.21.16..npm/desktop-protocol/v0.21.17 -- apps/shared/desktop-protocol`).
13
+ No source changes intended and no consumer action required.
14
+
3
15
  ## 0.21.16
4
16
 
5
17
  Automatic changed-only republish (docs/metadata drift since the last tag — see
package/dist/client.cjs CHANGED
@@ -144,7 +144,7 @@ var import_zod2 = require("zod");
144
144
  var import_zod = require("zod");
145
145
  var import_uuid = require("@ai-matrx/kit/uuid");
146
146
  var PROTOCOL_MAJOR = 1;
147
- var PROTOCOL_MINOR = 23;
147
+ var PROTOCOL_MINOR = 24;
148
148
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
149
149
  var ProtocolVersion = import_zod.z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
150
150
  var RequestId = import_zod.z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -448,6 +448,23 @@ var SysinfoGetResult = import_zod5.z.strictObject({
448
448
  })
449
449
  )
450
450
  });
451
+ var SysinfoHardwareParams = import_zod5.z.strictObject({});
452
+ var SysinfoHardwareResult = import_zod5.z.strictObject({
453
+ /** "Mac Studio", "MacBook Pro", "ThinkPad X1 Carbon". */
454
+ model_name: import_zod5.z.string().max(128).nullable(),
455
+ /** What tells two of that model apart: "M3 Ultra, 2025", "14-inch, Nov 2023". */
456
+ model_detail: import_zod5.z.string().max(128).nullable(),
457
+ /** "Mac15,14", the vendor's model number. */
458
+ model_identifier: import_zod5.z.string().max(128).nullable(),
459
+ /** "Apple M3 Ultra", "Intel Core i7-1185G7". */
460
+ chip: import_zod5.z.string().max(128).nullable(),
461
+ serial_number: import_zod5.z.string().max(128).nullable(),
462
+ /** The OS's own name with its release name: "macOS Tahoe", "Windows 11 Pro", "Ubuntu". */
463
+ os_name: import_zod5.z.string().max(64).nullable(),
464
+ /** "26.6.2". */
465
+ os_version: import_zod5.z.string().max(64).nullable(),
466
+ os_build: import_zod5.z.string().max(64).nullable()
467
+ });
451
468
 
452
469
  // src/schema/fs.ts
453
470
  var import_zod6 = require("zod");
@@ -1125,6 +1142,21 @@ var SystemNotifyResult = import_zod16.z.strictObject({
1125
1142
  /** False when this computer has no notification service to show it (a bare Linux box). */
1126
1143
  shown: import_zod16.z.boolean()
1127
1144
  });
1145
+ var SystemSettingsPane = import_zod16.z.enum([
1146
+ "displays",
1147
+ "night_shift",
1148
+ "sound",
1149
+ "keyboard",
1150
+ "keyboard_shortcuts",
1151
+ "text_input",
1152
+ "dictation",
1153
+ "energy",
1154
+ "about",
1155
+ "storage",
1156
+ "system_report"
1157
+ ]);
1158
+ var SystemOpenSettingsParams = import_zod16.z.strictObject({ pane: SystemSettingsPane });
1159
+ var SystemOpenSettingsResult = import_zod16.z.strictObject({ pane: SystemSettingsPane });
1128
1160
 
1129
1161
  // src/schema/screen.ts
1130
1162
  var import_zod17 = require("zod");
@@ -1139,7 +1171,13 @@ var ScreenDisplay = import_zod17.z.strictObject({
1139
1171
  height: import_zod17.z.int().min(1),
1140
1172
  /** Pixels per point (2 on a Retina display). */
1141
1173
  scale: import_zod17.z.number().min(0.1).max(8),
1142
- primary: import_zod17.z.boolean()
1174
+ primary: import_zod17.z.boolean(),
1175
+ /** (1.24) Clockwise rotation in degrees (Displays' Rotation: 0 is Standard). */
1176
+ rotation: import_zod17.z.int().min(0).max(359).optional(),
1177
+ /** (1.24) Refresh rate in hertz; absent where the OS does not say. */
1178
+ refresh_hz: import_zod17.z.number().min(0).max(1e3).optional(),
1179
+ /** (1.24) The computer's own screen (a laptop's), not one plugged in. */
1180
+ builtin: import_zod17.z.boolean().optional()
1143
1181
  });
1144
1182
  var ScreenListParams = import_zod17.z.strictObject({});
1145
1183
  var ScreenListResult = import_zod17.z.strictObject({ displays: import_zod17.z.array(ScreenDisplay).max(32) });
@@ -1318,9 +1356,43 @@ var InputMouseClickResult = import_zod19.z.strictObject({
1318
1356
  button: import_zod19.z.enum(["left", "right", "middle"]),
1319
1357
  double: import_zod19.z.boolean()
1320
1358
  });
1359
+ var InputKeyboardSettingsParams = import_zod19.z.strictObject({});
1360
+ var InputKeyboardSettingsResult = import_zod19.z.strictObject({
1361
+ /** Key repeat is off (a held key types once). */
1362
+ repeat_off: import_zod19.z.boolean().nullable(),
1363
+ /** Time between repeats while a key is held (Key repeat rate: shorter is faster). */
1364
+ repeat_interval_ms: nonNegInt.nullable(),
1365
+ /** Time a key is held before it starts repeating (Delay until repeat). */
1366
+ repeat_delay_ms: nonNegInt.nullable(),
1367
+ /** What the fn / globe key does alone. */
1368
+ fn_key: import_zod19.z.enum(["nothing", "input_source", "emoji", "dictation"]).nullable(),
1369
+ /** Tab moves focus between every control. */
1370
+ keyboard_navigation: import_zod19.z.boolean().nullable(),
1371
+ /** The enabled input sources by name ("U.S.", "ABC – Extended"). */
1372
+ input_sources: import_zod19.z.array(import_zod19.z.string().max(128)).max(64),
1373
+ /** A key repeat change takes effect only after the person logs out and in again (macOS). */
1374
+ applies_after_login: import_zod19.z.boolean()
1375
+ });
1376
+ var InputSetKeyboardSettingsParams = import_zod19.z.strictObject({
1377
+ repeat_off: import_zod19.z.boolean().optional(),
1378
+ repeat_interval_ms: import_zod19.z.int().min(15).max(2e3).optional(),
1379
+ repeat_delay_ms: import_zod19.z.int().min(150).max(2e3).optional(),
1380
+ keyboard_navigation: import_zod19.z.boolean().optional()
1381
+ });
1321
1382
 
1322
1383
  // src/schema/power.ts
1323
1384
  var import_zod20 = require("zod");
1385
+ var PowerEnergy = import_zod20.z.strictObject({
1386
+ display_sleep_minutes: nonNegInt.nullable(),
1387
+ /** The computer itself sleeps after this long idle; null = never (Prevent automatic sleeping). */
1388
+ sleep_minutes: nonNegInt.nullable(),
1389
+ /** Hard disks sleep after this long; null = never. */
1390
+ disk_sleep_minutes: nonNegInt.nullable(),
1391
+ wake_for_network: import_zod20.z.boolean().nullable(),
1392
+ restart_after_power_failure: import_zod20.z.boolean().nullable(),
1393
+ /** Low Power Mode (Energy Mode "Low Power"). */
1394
+ low_power_mode: import_zod20.z.boolean().nullable()
1395
+ });
1324
1396
  var PowerStatusParams = import_zod20.z.strictObject({});
1325
1397
  var PowerStatusResult = import_zod20.z.strictObject({
1326
1398
  has_battery: import_zod20.z.boolean(),
@@ -1332,7 +1404,15 @@ var PowerStatusResult = import_zod20.z.strictObject({
1332
1404
  /** Minutes of battery left; null when charging, unknown or without a battery. */
1333
1405
  minutes_left: nonNegInt.nullable(),
1334
1406
  /** Matrx 2 is keeping the computer awake (power.prevent_sleep) until this time; null when it is not. */
1335
- awake_until_ms: epochMs.nullable()
1407
+ awake_until_ms: epochMs.nullable(),
1408
+ /** (1.24) The OS's own energy settings; absent where it keeps none Matrx 2 can read. */
1409
+ energy: PowerEnergy.optional()
1410
+ });
1411
+ var PowerHistoryParams = import_zod20.z.strictObject({});
1412
+ var PowerHistoryPoint = import_zod20.z.strictObject({ at_ms: epochMs, percent: import_zod20.z.number().min(0).max(100), plugged_in: import_zod20.z.boolean() });
1413
+ var PowerHistoryResult = import_zod20.z.strictObject({
1414
+ /** Oldest first; empty without a battery or where the OS keeps no log. */
1415
+ points: import_zod20.z.array(PowerHistoryPoint).max(5e3)
1336
1416
  });
1337
1417
  var PowerPreventSleepParams = import_zod20.z.strictObject({
1338
1418
  /** Keep the computer awake this long; 0 lets it sleep again now. */
@@ -1351,7 +1431,10 @@ var AudioDevice = import_zod21.z.strictObject({
1351
1431
  /** The OS's name for it, as audio.record takes it. */
1352
1432
  id: import_zod21.z.string().min(1).max(256),
1353
1433
  name: import_zod21.z.string().max(256),
1354
- default: import_zod21.z.boolean()
1434
+ default: import_zod21.z.boolean(),
1435
+ /** (1.24) How it is connected, as Sound's Type column says it: "Built-in", "USB", "Bluetooth",
1436
+ * "DisplayPort", "HDMI", "AirPlay", "Virtual". Absent where the OS does not say. */
1437
+ kind: import_zod21.z.string().max(64).optional()
1355
1438
  });
1356
1439
  var AudioDevicesParams = import_zod21.z.strictObject({});
1357
1440
  var AudioDevicesResult = import_zod21.z.strictObject({
@@ -1374,6 +1457,20 @@ var AudioRecordResult = import_zod21.z.strictObject({
1374
1457
  });
1375
1458
  var AudioPlayParams = import_zod21.z.strictObject({ path: AbsPath });
1376
1459
  var AudioPlayResult = import_zod21.z.strictObject({ path: AbsPath, seconds: import_zod21.z.number().min(0) });
1460
+ var AudioLevelsParams = import_zod21.z.strictObject({});
1461
+ var AudioLevelsResult = import_zod21.z.strictObject({
1462
+ output_volume: import_zod21.z.number().min(0).max(100).nullable(),
1463
+ output_muted: import_zod21.z.boolean().nullable(),
1464
+ input_volume: import_zod21.z.number().min(0).max(100).nullable(),
1465
+ /** The alert (beep) volume, a share of the output volume. */
1466
+ alert_volume: import_zod21.z.number().min(0).max(100).nullable()
1467
+ });
1468
+ var AudioSetLevelsParams = import_zod21.z.strictObject({
1469
+ output_volume: import_zod21.z.number().min(0).max(100).optional(),
1470
+ output_muted: import_zod21.z.boolean().optional(),
1471
+ input_volume: import_zod21.z.number().min(0).max(100).optional(),
1472
+ alert_volume: import_zod21.z.number().min(0).max(100).optional()
1473
+ });
1377
1474
 
1378
1475
  // src/schema/resources.ts
1379
1476
  var import_zod22 = require("zod");
@@ -2307,6 +2404,7 @@ var SpendLive = import_zod30.z.strictObject({ id: ChatId, title: import_zod30.z.
2307
2404
  var SpendIdleScope = import_zod30.z.strictObject({ count: nonNegInt, tokens: nonNegInt, cost: import_zod30.z.number(), avoidable: import_zod30.z.number() });
2308
2405
  var SpendIdle = import_zod30.z.strictObject({ id: ChatId, chat: import_zod30.z.string().max(1e3), who: import_zod30.z.string().max(400), today: SpendIdleScope, week: SpendIdleScope, last_ms: epochMs });
2309
2406
  var SpendStart = import_zod30.z.strictObject({ repo: import_zod30.z.string().max(200), count: nonNegInt, median: nonNegInt, latest: import_zod30.z.array(nonNegInt).max(20), alarm: import_zod30.z.string().max(400).nullable() });
2407
+ var SpendDay = import_zod30.z.strictObject({ date: import_zod30.z.string().regex(/^\d{4}-\d{2}-\d{2}$/), main: import_zod30.z.number(), helpers: import_zod30.z.number() });
2310
2408
  var AppsSpendParams = import_zod30.z.strictObject({ app_key: AppKey });
2311
2409
  var AppsSpendResult = import_zod30.z.strictObject({
2312
2410
  app_key: AppKey,
@@ -2323,6 +2421,8 @@ var AppsSpendResult = import_zod30.z.strictObject({
2323
2421
  live: import_zod30.z.array(SpendLive).max(200),
2324
2422
  accounts: import_zod30.z.array(SpendAccount).max(200),
2325
2423
  models: import_zod30.z.array(SpendModel).max(100),
2424
+ /** (1.24) The last 7 days, oldest first (today last). */
2425
+ days: import_zod30.z.array(SpendDay).max(14).optional(),
2326
2426
  chats: import_zod30.z.array(SpendChat).max(500),
2327
2427
  idle: import_zod30.z.array(SpendIdle).max(500),
2328
2428
  starts: import_zod30.z.array(SpendStart).max(200)
@@ -2348,6 +2448,7 @@ var AppsWindowsSaveNamesParams = import_zod30.z.strictObject({ app_key: AppKey }
2348
2448
  var FS_ERR = ["NOT_FOUND", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "RESOURCE_BUSY", "INTERNAL"];
2349
2449
  var OPS = {
2350
2450
  "sysinfo.get": { params: SysinfoGetParams, result: SysinfoGetResult, kind: "unary", since: "1.0", errors: ["INTERNAL"] },
2451
+ "sysinfo.hardware": { params: SysinfoHardwareParams, result: SysinfoHardwareResult, kind: "unary", since: "1.24", errors: ["INTERNAL"] },
2351
2452
  "fs.list": { params: FsListParams, result: FsListResult, kind: "unary", since: "1.0", errors: FS_ERR },
2352
2453
  "fs.stat": { params: FsStatParams, result: FsStatResult, kind: "unary", since: "1.0", errors: FS_ERR },
2353
2454
  "fs.read": { params: FsReadParams, result: FsReadResult, kind: "unary", since: "1.0", errors: [...FS_ERR, "PAYLOAD_TOO_LARGE"] },
@@ -2424,6 +2525,7 @@ var OPS = {
2424
2525
  "exec.job.stop": { params: ExecJobStopParams, result: ExecJobStopResult, kind: "unary", since: "1.4", errors: ["RESOURCE_GONE", "INVALID_PARAMS", "INTERNAL"] },
2425
2526
  "exec.job.list": { params: ExecJobListParams, result: ExecJobListResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] },
2426
2527
  "system.open_url": { params: SystemOpenUrlParams, result: SystemOpenUrlResult, kind: "unary", since: "1.4", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2528
+ "system.open_settings": { params: SystemOpenSettingsParams, result: SystemOpenSettingsResult, kind: "unary", since: "1.24", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
2427
2529
  "system.open_path": { params: SystemOpenPathParams, result: SystemOpenPathResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2428
2530
  "system.notify": { params: SystemNotifyParams, result: SystemNotifyResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "INTERNAL"] },
2429
2531
  "screen.list": { params: ScreenListParams, result: ScreenListResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
@@ -2433,16 +2535,21 @@ var OPS = {
2433
2535
  "window.move": { params: WindowMoveParams, result: WindowMoveResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2434
2536
  "window.minimize": { params: WindowMinimizeParams, result: WindowMinimizeResult, kind: "unary", since: "1.4", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2435
2537
  "input.type_text": { params: InputTypeTextParams, result: InputTypeTextResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2538
+ "input.keyboard_settings": { params: InputKeyboardSettingsParams, result: InputKeyboardSettingsResult, kind: "unary", since: "1.24", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
2539
+ "input.set_keyboard_settings": { params: InputSetKeyboardSettingsParams, result: InputKeyboardSettingsResult, kind: "unary", since: "1.24", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2436
2540
  "input.hotkey": { params: InputHotkeyParams, result: InputHotkeyResult, kind: "unary", since: "1.4", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2437
2541
  "input.mouse_move": { params: InputMouseMoveParams, result: InputMouseMoveResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2438
2542
  "input.mouse_click": { params: InputMouseClickParams, result: InputMouseClickResult, kind: "unary", since: "1.4", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2439
2543
  "power.status": { params: PowerStatusParams, result: PowerStatusResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] },
2544
+ "power.history": { params: PowerHistoryParams, result: PowerHistoryResult, kind: "unary", since: "1.24", errors: ["INTERNAL"] },
2440
2545
  "power.prevent_sleep": { params: PowerPreventSleepParams, result: PowerPreventSleepResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2441
2546
  "resources.snapshot": { params: ResourcesSnapshotParams, result: ResourcesSnapshotResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] },
2442
2547
  "resources.activity": { params: ResourcesActivityParams, result: ResourcesActivityResult, kind: "unary", since: "1.17", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
2443
2548
  "resources.stop_job": { params: ResourcesStopJobParams, result: ResourcesStopJobResult, kind: "unary", since: "1.17", errors: ["NOT_FOUND", "CONFLICT", "AUTH_FORBIDDEN", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2444
2549
  "resources.incidents": { params: ResourcesIncidentsParams, result: ResourcesIncidentsResult, kind: "unary", since: "1.17", errors: ["INTERNAL"] },
2445
2550
  "audio.devices": { params: AudioDevicesParams, result: AudioDevicesResult, kind: "unary", since: "1.6", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
2551
+ "audio.levels": { params: AudioLevelsParams, result: AudioLevelsResult, kind: "unary", since: "1.24", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
2552
+ "audio.set_levels": { params: AudioSetLevelsParams, result: AudioLevelsResult, kind: "unary", since: "1.24", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2446
2553
  "audio.record": { params: AudioRecordParams, result: AudioRecordResult, kind: "unary", since: "1.6", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "RESOURCE_BUSY", "INTERNAL"] },
2447
2554
  "audio.play": { params: AudioPlayParams, result: AudioPlayResult, kind: "unary", since: "1.6", errors: ["NOT_FOUND", "INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2448
2555
  // The local AI Matrx servers (aidream's process-compose stack), supervised from Matrx 2's core.