@ai-matrx/desktop-protocol 0.21.31 → 0.21.33

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.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { z } from "zod";
3
3
  import { UUID_SHAPE_PATTERN } from "@ai-matrx/kit/uuid";
4
4
  var PROTOCOL_MAJOR = 1;
5
- var PROTOCOL_MINOR = 41;
5
+ var PROTOCOL_MINOR = 43;
6
6
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
7
7
  var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
8
8
  var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -1465,7 +1465,27 @@ var ProjectMoveGroup = z14.strictObject({
1465
1465
  already: nonNegInt.optional(),
1466
1466
  from_other_groups: nonNegInt.optional(),
1467
1467
  /** A group of that name was already there (reused, never doubled). */
1468
- group_exists: z14.boolean().optional()
1468
+ group_exists: z14.boolean().optional(),
1469
+ /** 1.43: "now" = written into the closed window; "next_close" = queued until that window closes. */
1470
+ when: z14.enum(["now", "next_close"]).optional(),
1471
+ /** 1.43: the window's own id of the group used (absent while a new one waits to be made). */
1472
+ group_id: z14.string().max(200).optional()
1473
+ });
1474
+ var ProjectMoveOutcome = z14.strictObject({
1475
+ chat_id: ChatId,
1476
+ title: z14.string().max(300),
1477
+ outcome: z14.enum(["copied", "moved", "already", "skipped"]),
1478
+ off: z14.array(ChatPlace).max(50),
1479
+ reason: z14.string().max(400).nullable(),
1480
+ pin: z14.enum(["now", "next_close", "failed"]).nullable(),
1481
+ group: z14.enum(["now", "next_close", "failed"]).nullable()
1482
+ });
1483
+ var WindowGroup = z14.strictObject({ id: z14.string().max(200), name: z14.string().max(200), count: nonNegInt });
1484
+ var AppsWindowsGroupsParams = z14.strictObject({ app_key: AppKey, window: ChatPlace });
1485
+ var AppsWindowsGroupsResult = z14.strictObject({
1486
+ window: ChatPlace,
1487
+ open: z14.boolean(),
1488
+ groups: z14.array(WindowGroup).max(1e3)
1469
1489
  });
1470
1490
  var ProjectMovePin = z14.strictObject({
1471
1491
  ok: z14.boolean(),
@@ -1486,8 +1506,12 @@ var AppsProjectsToWindowParams = z14.strictObject({
1486
1506
  window: ChatPlace,
1487
1507
  /** Also take each chat off its other side windows where safe (never main, the holder, an open window). */
1488
1508
  take_off: z14.boolean().default(false),
1489
- /** Also group them under the project's name in that window's sidebar (closed windows only). */
1509
+ /** Also group them under the project's name in that window's sidebar (1.43: an open window's is queued for its next close). */
1490
1510
  group: z14.boolean().default(false),
1511
+ /** 1.43: group them into this existing group of the window (apps.windows.groups); implies group. */
1512
+ group_id: z14.string().min(1).max(200).optional(),
1513
+ /** 1.43: group them under this name (an existing group of that name is reused, else made); implies group. */
1514
+ group_name: z14.string().trim().min(1).max(200).optional(),
1491
1515
  /** 1.32: also pin them in that window (now if closed, else when it next closes). */
1492
1516
  pin: z14.boolean().optional(),
1493
1517
  /** 1.36: a batch: exactly these chats of the project and no other (a reused marker is a label, never a sweep). */
@@ -1509,6 +1533,8 @@ var AppsProjectsToWindowResult = z14.strictObject({
1509
1533
  group: ProjectMoveGroup.nullable(),
1510
1534
  /** 1.32: the pin in the target window (absent: not asked). */
1511
1535
  pin: ProjectMovePin.optional(),
1536
+ /** 1.43: one row per chat, what happened to it (absent from an older core). */
1537
+ chats: z14.array(ProjectMoveOutcome).max(5e3).optional(),
1512
1538
  message: z14.string().max(400)
1513
1539
  });
1514
1540
  var ColdChat = z14.strictObject({
@@ -3690,7 +3716,12 @@ var MessagesListResult = z36.strictObject({ messages: z36.array(MessagesMessage)
3690
3716
  var MessagesSendParams = z36.strictObject({
3691
3717
  /** A phone number or email the person can message. */
3692
3718
  to: z36.string().min(3).max(320),
3693
- text: z36.string().min(1).max(2e4)
3719
+ text: z36.string().min(1).max(2e4),
3720
+ /**
3721
+ * Send only over this service (Matrx Local's SendMessage `service`). Absent: iMessage first, and
3722
+ * SMS when the recipient has no iMessage (since 1.42).
3723
+ */
3724
+ service: z36.enum(["iMessage", "SMS"]).optional()
3694
3725
  });
3695
3726
  var MessagesSendResult = z36.strictObject({ sent: z36.boolean() });
3696
3727
  var ContactsSearchParams = z36.strictObject({
@@ -4195,6 +4226,7 @@ var OPS = {
4195
4226
  "diag.errors.list": { params: DiagErrorsListParams, result: DiagErrorsListResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
4196
4227
  "diag.errors.report": { params: DiagErrorsReportParams, result: DiagErrorsReportResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
4197
4228
  // 1.21: what a window's sidebar draws (the Move-all grouping check).
4229
+ "apps.windows.groups": { params: AppsWindowsGroupsParams, result: AppsWindowsGroupsResult, kind: "unary", since: "1.43", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4198
4230
  "apps.windows.shown": { params: AppsWindowsShownParams, result: AppsWindowsShownResult, kind: "unary", since: "1.21", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4199
4231
  // Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
4200
4232
  "coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] },
@@ -4839,6 +4871,10 @@ var NAMED_SCHEMAS = {
4839
4871
  ShownSection,
4840
4872
  AppsWindowsShownParams,
4841
4873
  AppsWindowsShownResult,
4874
+ ProjectMoveOutcome,
4875
+ WindowGroup,
4876
+ AppsWindowsGroupsParams,
4877
+ AppsWindowsGroupsResult,
4842
4878
  ColdChat,
4843
4879
  AppsChatsColdParams,
4844
4880
  AppsChatsColdResult,
@@ -5143,8 +5179,9 @@ var FIELDS_SINCE = {
5143
5179
  PowerStatusResult: { energy: "1.24" },
5144
5180
  AppsSpendResult: { days: "1.24" },
5145
5181
  AppsWindowsUpdateStateResult: { closed_by_update: "1.27" },
5146
- AppsProjectsToWindowParams: { pin: "1.32", chat_ids: "1.36", take_off_from: "1.36" },
5147
- AppsProjectsToWindowResult: { pin: "1.32" },
5182
+ AppsProjectsToWindowParams: { pin: "1.32", chat_ids: "1.36", take_off_from: "1.36", group_id: "1.43", group_name: "1.43" },
5183
+ AppsProjectsToWindowResult: { pin: "1.32", chats: "1.43" },
5184
+ ProjectMoveGroup: { when: "1.43", group_id: "1.43" },
5148
5185
  AppsChatsTitlesCheckResult: { stale_windows: "1.33" },
5149
5186
  AccountAgent: { tags: "1.39", model_id: "1.39", access_level: "1.39", organization_id: "1.39", origin: "1.39", is_archived: "1.39", orchestra: "1.39" },
5150
5187
  WebScrapeParams: { engine: "1.40", land: "1.40" },
@@ -5152,7 +5189,8 @@ var FIELDS_SINCE = {
5152
5189
  WebBrowserFetchParams: { land: "1.40" },
5153
5190
  WebBrowserFetchResult: { source: "1.40" },
5154
5191
  SysinfoGetResult: { requirements: "1.41" },
5155
- "SysinfoGetResult.permissions[]": { detail: "1.41" }
5192
+ "SysinfoGetResult.permissions[]": { detail: "1.41" },
5193
+ MessagesSendParams: { service: "1.42" }
5156
5194
  };
5157
5195
  var NULL_SINCE = {
5158
5196
  "RelayDeviceStatusEvent.since_ms": { since: "1.1", olderPeersGet: 0 }
@@ -5237,7 +5275,8 @@ var RESULT_PATH = /* @__PURE__ */ new Map([
5237
5275
  ["apps.accounts.resets", "AppsAccountsResetsResult"],
5238
5276
  ["apps.windows.update_state", "AppsWindowsUpdateStateResult"],
5239
5277
  ["web.fetch_with_browser", "WebBrowserFetchResult"],
5240
- ["sysinfo.get", "SysinfoGetResult"]
5278
+ ["sysinfo.get", "SysinfoGetResult"],
5279
+ ["apps.projects.to_window", "AppsProjectsToWindowResult"]
5241
5280
  ]);
5242
5281
  var NESTED_RESULTS = /* @__PURE__ */ new Map([
5243
5282
  ["apps.chats.list", [["chats", "ChatRow"]]],
@@ -5252,7 +5291,8 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
5252
5291
  ["stack.state", [["servers", "StackServer"]]],
5253
5292
  ["account.agents.list", [["agents", "AccountAgent"]]],
5254
5293
  ["web.scrape", [["pages", "WebScrapePage"]]],
5255
- ["sysinfo.get", [["permissions", "SysinfoGetResult.permissions[]"]]]
5294
+ ["sysinfo.get", [["permissions", "SysinfoGetResult.permissions[]"]]],
5295
+ ["apps.projects.to_window", [["group", "ProjectMoveGroup"]]]
5256
5296
  ]);
5257
5297
  function stripNested(value, nested, version) {
5258
5298
  if (value === null || typeof value !== "object" || Array.isArray(value)) return value;
@@ -5314,7 +5354,7 @@ function forPeer(op, part, value, version) {
5314
5354
  var VERSIONED_RESULT_OPS = [.../* @__PURE__ */ new Set([...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys(), ...NESTED_RESULTS.keys()])];
5315
5355
 
5316
5356
  // src/contract.ts
5317
- var CONTRACT_SHA256 = "a2ea77f45ed3f5421e4c722442205e48fce2bbc5bccc892b54403304eca55443";
5357
+ var CONTRACT_SHA256 = "d4f3377c50868e84827a5b331afca1aa3b3eebabe841c65a195c1edbd52080e4";
5318
5358
 
5319
5359
  // src/close-policy.ts
5320
5360
  var CLOSE_RULES = {
@@ -5385,7 +5425,9 @@ var TOOL_CATALOG = [
5385
5425
  { name: "desktop_contacts", group: "personal_automation", state: "built", path: "device_op", ops: ["contacts.search", "contacts.get"], platforms: ["darwin"], summary: "Contacts: search, one card" },
5386
5426
  { name: "desktop_calendar", group: "personal_automation", state: "built", path: "device_op", ops: ["calendar.list", "calendar.create", "reminders.list", "reminders.create"], platforms: ["darwin"], summary: "Calendar and Reminders: list and add" },
5387
5427
  { name: "desktop_photos", group: "personal_automation", state: "built", path: "device_op", ops: ["photos.search", "photos.get"], platforms: ["darwin"], summary: "The Photos library: find, export an original" },
5388
- { name: "desktop_location", group: "personal_automation", state: "built", path: "device_op", ops: ["location.get"], platforms: ["darwin", "win32"], summary: "Where the computer is (the OS's location service)" },
5428
+ // Windows comes back once a Windows location fix is proven (plan attack retire-local 2026-10-12, B6):
5429
+ // until then local_mac_apps (macOS-only) is judged on macOS and nothing claims Windows.
5430
+ { name: "desktop_location", group: "personal_automation", state: "built", path: "device_op", ops: ["location.get"], platforms: ["darwin"], summary: "Where the computer is (the OS's location service)" },
5389
5431
  { name: "desktop_net", group: "personal_automation", state: "built", path: "device_op", ops: ["net.info", "net.wifi", "net.bluetooth", "net.devices", "net.mdns", "net.scan", "net.download"], platforms: ALL, summary: "Local network, Wi-Fi, Bluetooth, open ports and downloads" },
5390
5432
  { name: "desktop_schedule", group: "personal_automation", state: "built", path: "device_op", ops: ["schedule.create", "schedule.list", "schedule.cancel"], platforms: ALL, summary: "Run a tool's op on this computer on an interval; list and cancel" },
5391
5433
  // 1.38, code from anywhere: the person's Claude Code and Codex sessions on this computer. Turning
@@ -5778,6 +5820,8 @@ export {
5778
5820
  AppsSyncStatusResult,
5779
5821
  AppsWindowActionResult,
5780
5822
  AppsWindowsAddParams,
5823
+ AppsWindowsGroupsParams,
5824
+ AppsWindowsGroupsResult,
5781
5825
  AppsWindowsListParams,
5782
5826
  AppsWindowsListResult,
5783
5827
  AppsWindowsOpenParams,
@@ -6250,6 +6294,7 @@ export {
6250
6294
  ProcSort,
6251
6295
  ProjectMoveChat,
6252
6296
  ProjectMoveGroup,
6297
+ ProjectMoveOutcome,
6253
6298
  ProjectMovePin,
6254
6299
  ProjectMoveSkip,
6255
6300
  ProtocolErrorBody,
@@ -6458,6 +6503,7 @@ export {
6458
6503
  Welcome,
6459
6504
  WindowFocusParams,
6460
6505
  WindowFocusResult,
6506
+ WindowGroup,
6461
6507
  WindowInfo,
6462
6508
  WindowListParams,
6463
6509
  WindowListResult,