@ai-matrx/desktop-protocol 0.21.64 → 0.21.66

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/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 = 65;
147
+ var PROTOCOL_MINOR = 67;
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_-]+$/);
@@ -1745,6 +1745,8 @@ var WindowInfo = import_zod18.z.strictObject({
1745
1745
  var WindowListParams = import_zod18.z.strictObject({
1746
1746
  /** Case-insensitive substring of the window title. */
1747
1747
  title: import_zod18.z.string().min(1).max(256).optional(),
1748
+ /** (1.66) Case-insensitive substring of the owning application's name (matrx-local's app_filter). */
1749
+ app: import_zod18.z.string().min(1).max(256).optional(),
1748
1750
  limit: import_zod18.z.int().min(1).max(500).default(100)
1749
1751
  });
1750
1752
  var WindowListResult = import_zod18.z.strictObject({
@@ -1764,8 +1766,17 @@ var WindowMoveParams = import_zod18.z.strictObject({
1764
1766
  height: import_zod18.z.int().min(50).max(16384).optional()
1765
1767
  });
1766
1768
  var WindowMoveResult = import_zod18.z.strictObject({ window: WindowInfo });
1767
- var WindowMinimizeParams = import_zod18.z.strictObject({ id: nonNegInt });
1768
- var WindowMinimizeResult = import_zod18.z.strictObject({ id: nonNegInt });
1769
+ var WindowState = import_zod18.z.enum(["minimize", "maximize", "restore"]);
1770
+ var WindowMinimizeParams = import_zod18.z.strictObject({
1771
+ id: nonNegInt,
1772
+ /** (1.66) minimize (the default), maximize (fill its display), or restore (bring a minimized or maximized window back). */
1773
+ mode: WindowState.optional()
1774
+ });
1775
+ var WindowMinimizeResult = import_zod18.z.strictObject({
1776
+ id: nonNegInt,
1777
+ /** (1.66) What was done. */
1778
+ mode: WindowState.optional()
1779
+ });
1769
1780
 
1770
1781
  // src/schema/input.ts
1771
1782
  var import_zod19 = require("zod");
@@ -1968,16 +1979,27 @@ var AudioRecordParams = import_zod21.z.strictObject({
1968
1979
  /** The microphone (from audio.devices); the default input when absent. */
1969
1980
  device_id: import_zod21.z.string().min(1).max(256).optional(),
1970
1981
  /** Where the WAV file goes; a new file in the temp folder when absent. */
1971
- path: AbsPath.optional()
1982
+ path: AbsPath.optional(),
1983
+ /** (1.66) 1 (mono, the default) or 2 (stereo). */
1984
+ channels: import_zod21.z.int().min(1).max(2).optional(),
1985
+ /** (1.66) Samples per second; the device's own rate when absent. */
1986
+ sample_rate: import_zod21.z.int().min(8e3).max(192e3).optional()
1972
1987
  });
1973
1988
  var AudioRecordResult = import_zod21.z.strictObject({
1974
1989
  path: AbsPath,
1975
1990
  seconds: import_zod21.z.number().min(0),
1976
1991
  bytes: nonNegInt,
1977
1992
  /** Loudest sample, 0–1: 0 means the device gave silence. */
1978
- peak: import_zod21.z.number().min(0).max(1)
1993
+ peak: import_zod21.z.number().min(0).max(1),
1994
+ /** (1.66) The file's channels and sample rate, as written. */
1995
+ channels: import_zod21.z.int().min(1).max(8).optional(),
1996
+ sample_rate: import_zod21.z.int().min(1).max(768e3).optional()
1997
+ });
1998
+ var AudioPlayParams = import_zod21.z.strictObject({
1999
+ path: AbsPath,
2000
+ /** (1.66) The speaker or output (its id from audio.devices' outputs); the system's output when absent. */
2001
+ device_id: import_zod21.z.string().min(1).max(256).optional()
1979
2002
  });
1980
- var AudioPlayParams = import_zod21.z.strictObject({ path: AbsPath });
1981
2003
  var AudioPlayResult = import_zod21.z.strictObject({ path: AbsPath, seconds: import_zod21.z.number().min(0) });
1982
2004
  var AudioLevelsParams = import_zod21.z.strictObject({});
1983
2005
  var AudioLevelsResult = import_zod21.z.strictObject({
@@ -4003,7 +4025,13 @@ var AutomationScriptResult = import_zod35.z.strictObject({
4003
4025
  elapsed_ms: nonNegInt
4004
4026
  });
4005
4027
  var MailAccountsParams = import_zod35.z.strictObject({});
4006
- var MailAccount = import_zod35.z.strictObject({ name: import_zod35.z.string(), emails: import_zod35.z.array(import_zod35.z.string()), enabled: import_zod35.z.boolean() });
4028
+ var MailAccount = import_zod35.z.strictObject({
4029
+ name: import_zod35.z.string(),
4030
+ emails: import_zod35.z.array(import_zod35.z.string()),
4031
+ enabled: import_zod35.z.boolean(),
4032
+ /** (1.67) The account's mailboxes by name (Matrx Local's email_accounts listed them). */
4033
+ mailboxes: import_zod35.z.array(import_zod35.z.string()).optional()
4034
+ });
4007
4035
  var MailAccountsResult = import_zod35.z.strictObject({ accounts: import_zod35.z.array(MailAccount) });
4008
4036
  var MailListParams = import_zod35.z.strictObject({
4009
4037
  /** The account's name in Mail; absent: every account. */
@@ -4028,6 +4056,8 @@ var MailListResult = import_zod35.z.strictObject({ messages: import_zod35.z.arra
4028
4056
  var MailSendParams = import_zod35.z.strictObject({
4029
4057
  to: import_zod35.z.array(import_zod35.z.string().min(3).max(320)).min(1).max(50),
4030
4058
  cc: import_zod35.z.array(import_zod35.z.string().min(3).max(320)).max(50).default([]),
4059
+ /** (1.67) Blind copies (Matrx Local's send_email bcc). */
4060
+ bcc: import_zod35.z.array(import_zod35.z.string().min(3).max(320)).max(50).optional(),
4031
4061
  subject: import_zod35.z.string().max(998),
4032
4062
  body: Text,
4033
4063
  /** The sending account's address; absent: Mail's default. */
@@ -4106,13 +4136,19 @@ var MessagesChat = import_zod35.z.strictObject({
4106
4136
  name: import_zod35.z.string().nullable(),
4107
4137
  participants: import_zod35.z.array(import_zod35.z.string()),
4108
4138
  last_message_at_ms: epochMs.nullable(),
4109
- service: import_zod35.z.string().nullable()
4139
+ service: import_zod35.z.string().nullable(),
4140
+ /** (1.67) The newest message's text (Matrx Local's list_conversations preview); absent when it has none. */
4141
+ last_message: import_zod35.z.string().optional()
4110
4142
  });
4111
4143
  var MessagesChatsResult = import_zod35.z.strictObject({ chats: import_zod35.z.array(MessagesChat) });
4112
4144
  var MessagesListParams = import_zod35.z.strictObject({
4113
4145
  /** One chat (messages.chats' chat_id); absent: the newest across all. */
4114
4146
  chat_id: import_zod35.z.string().min(1).max(512).optional(),
4115
- limit: import_zod35.z.int().min(1).max(500).default(50)
4147
+ limit: import_zod35.z.int().min(1).max(500).default(50),
4148
+ /** (1.67) Only messages with this handle or chat name in them (partial: a phone, an email, a name). */
4149
+ contact: import_zod35.z.string().min(1).max(320).optional(),
4150
+ /** (1.67) Only messages not yet read. */
4151
+ unread_only: import_zod35.z.boolean().optional()
4116
4152
  });
4117
4153
  var MessagesMessage = import_zod35.z.strictObject({
4118
4154
  id: import_zod35.z.string(),
@@ -4121,7 +4157,13 @@ var MessagesMessage = import_zod35.z.strictObject({
4121
4157
  from_me: import_zod35.z.boolean(),
4122
4158
  /** The other person's handle (phone or email); null for the person's own messages. */
4123
4159
  sender: import_zod35.z.string().nullable(),
4124
- sent_at_ms: epochMs.nullable()
4160
+ sent_at_ms: epochMs.nullable(),
4161
+ /** (1.67) Whether it has been read. */
4162
+ read: import_zod35.z.boolean().optional(),
4163
+ /** (1.67) iMessage, SMS or RCS, as the Messages database says. */
4164
+ service: import_zod35.z.string().optional(),
4165
+ /** (1.67) The chat's name (group chats); absent for a one-to-one chat. */
4166
+ chat_name: import_zod35.z.string().optional()
4125
4167
  });
4126
4168
  var MessagesListResult = import_zod35.z.strictObject({ messages: import_zod35.z.array(MessagesMessage) });
4127
4169
  var MessagesSendParams = import_zod35.z.strictObject({
@@ -4136,8 +4178,8 @@ var MessagesSendParams = import_zod35.z.strictObject({
4136
4178
  });
4137
4179
  var MessagesSendResult = import_zod35.z.strictObject({ sent: import_zod35.z.boolean() });
4138
4180
  var ContactsSearchParams = import_zod35.z.strictObject({
4139
- /** Matched against names, organizations, emails and phone numbers. */
4140
- query: import_zod35.z.string().min(1).max(256),
4181
+ /** Matched against names, organizations, emails and phone numbers; absent (1.67): the first `limit` contacts. */
4182
+ query: import_zod35.z.string().min(1).max(256).optional(),
4141
4183
  limit: import_zod35.z.int().min(1).max(200).default(25)
4142
4184
  });
4143
4185
  var ContactLabeled = import_zod35.z.strictObject({ label: import_zod35.z.string().nullable(), value: import_zod35.z.string() });
@@ -4167,6 +4209,8 @@ var CalendarListParams = import_zod35.z.strictObject({
4167
4209
  to_ms: epochMs,
4168
4210
  /** One calendar's name; absent: every calendar. */
4169
4211
  calendar: import_zod35.z.string().min(1).max(256).optional(),
4212
+ /** (1.67) Several calendars by name (Matrx Local's calendar_names); with `calendar`, both count. */
4213
+ calendars: import_zod35.z.array(import_zod35.z.string().min(1).max(256)).min(1).max(100).optional(),
4170
4214
  limit: import_zod35.z.int().min(1).max(500).default(100)
4171
4215
  });
4172
4216
  var CalendarEvent = import_zod35.z.strictObject({
@@ -4177,7 +4221,9 @@ var CalendarEvent = import_zod35.z.strictObject({
4177
4221
  all_day: import_zod35.z.boolean(),
4178
4222
  calendar: import_zod35.z.string(),
4179
4223
  location: import_zod35.z.string().nullable(),
4180
- notes: import_zod35.z.string().nullable()
4224
+ notes: import_zod35.z.string().nullable(),
4225
+ /** (1.67) The event's link; absent when it has none. */
4226
+ url: import_zod35.z.string().optional()
4181
4227
  });
4182
4228
  var CalendarListResult = import_zod35.z.strictObject({ events: import_zod35.z.array(CalendarEvent) });
4183
4229
  var CalendarCreateParams = import_zod35.z.strictObject({
@@ -4194,6 +4240,8 @@ var CalendarCreateResult = import_zod35.z.strictObject({ id: import_zod35.z.stri
4194
4240
  var RemindersListParams = import_zod35.z.strictObject({
4195
4241
  /** One list's name; absent: every list. */
4196
4242
  list: import_zod35.z.string().min(1).max(256).optional(),
4243
+ /** (1.67) Several lists by name (Matrx Local's list_names); with `list`, both count. */
4244
+ lists: import_zod35.z.array(import_zod35.z.string().min(1).max(256)).min(1).max(100).optional(),
4197
4245
  include_completed: import_zod35.z.boolean().default(false),
4198
4246
  limit: import_zod35.z.int().min(1).max(500).default(100)
4199
4247
  });
@@ -4203,7 +4251,11 @@ var Reminder = import_zod35.z.strictObject({
4203
4251
  list: import_zod35.z.string(),
4204
4252
  due_ms: epochMs.nullable(),
4205
4253
  completed: import_zod35.z.boolean(),
4206
- notes: import_zod35.z.string().nullable()
4254
+ notes: import_zod35.z.string().nullable(),
4255
+ /** (1.67) 0 none, 1 high … 9 low (EventKit's scale). */
4256
+ priority: import_zod35.z.int().min(0).max(9).optional(),
4257
+ /** (1.67) When it was completed; absent while open. */
4258
+ completed_at_ms: epochMs.optional()
4207
4259
  });
4208
4260
  var RemindersListResult = import_zod35.z.strictObject({ reminders: import_zod35.z.array(Reminder) });
4209
4261
  var RemindersCreateParams = import_zod35.z.strictObject({
@@ -4219,6 +4271,8 @@ var PhotosSearchParams = import_zod35.z.strictObject({
4219
4271
  from_ms: epochMs.optional(),
4220
4272
  to_ms: epochMs.optional(),
4221
4273
  favorites_only: import_zod35.z.boolean().default(false),
4274
+ /** (1.67) image, video or all (Matrx Local's media_type); absent: all. */
4275
+ media_type: import_zod35.z.enum(["image", "video", "all"]).optional(),
4222
4276
  limit: import_zod35.z.int().min(1).max(200).default(25)
4223
4277
  });
4224
4278
  var Photo = import_zod35.z.strictObject({
@@ -4228,15 +4282,26 @@ var Photo = import_zod35.z.strictObject({
4228
4282
  width: nonNegInt.nullable(),
4229
4283
  height: nonNegInt.nullable(),
4230
4284
  favorite: import_zod35.z.boolean(),
4231
- title: import_zod35.z.string().nullable()
4285
+ title: import_zod35.z.string().nullable(),
4286
+ /** (1.67) What the asset is. */
4287
+ media_type: import_zod35.z.enum(["image", "video", "audio", "unknown"]).optional(),
4288
+ /** (1.67) A video's length in seconds; absent for a still. */
4289
+ duration_s: import_zod35.z.number().min(0).optional()
4232
4290
  });
4233
4291
  var PhotosSearchResult = import_zod35.z.strictObject({ photos: import_zod35.z.array(Photo) });
4234
4292
  var PhotosGetParams = import_zod35.z.strictObject({
4235
4293
  id: import_zod35.z.string().min(1).max(256),
4236
4294
  /** Copy the original into a folder Matrx 2 owns and answer its path (then fs_read or desktop_documents reads it). */
4237
- export: import_zod35.z.boolean().default(false)
4295
+ export: import_zod35.z.boolean().default(false),
4296
+ /** (1.67) Also answer a PNG thumbnail no larger than this many pixels a side (Matrx Local's get_photo thumbnail). */
4297
+ thumbnail_size: import_zod35.z.int().min(64).max(2048).optional()
4298
+ });
4299
+ var PhotosGetResult = import_zod35.z.strictObject({
4300
+ photo: Photo,
4301
+ path: import_zod35.z.string().nullable(),
4302
+ /** (1.67) The thumbnail as base64 PNG, when thumbnail_size asked for one; absent when it could not be drawn. */
4303
+ thumbnail_png_base64: import_zod35.z.string().optional()
4238
4304
  });
4239
- var PhotosGetResult = import_zod35.z.strictObject({ photo: Photo, path: import_zod35.z.string().nullable() });
4240
4305
  var LocationGetParams = import_zod35.z.strictObject({ timeout_s: import_zod35.z.int().min(1).max(60).default(15) });
4241
4306
  var LocationGetResult = import_zod35.z.strictObject({
4242
4307
  latitude: import_zod35.z.number().min(-90).max(90),
@@ -4245,7 +4310,12 @@ var LocationGetResult = import_zod35.z.strictObject({
4245
4310
  accuracy_m: import_zod35.z.number().min(0).nullable(),
4246
4311
  at_ms: epochMs,
4247
4312
  /** Who answered: the OS's own location service. */
4248
- source: import_zod35.z.enum(["corelocation", "windows", "geoclue"])
4313
+ source: import_zod35.z.enum(["corelocation", "windows", "geoclue"]),
4314
+ /** (1.67) Metres above sea level, its accuracy, speed (m/s) and course (degrees); absent where the OS does not say. */
4315
+ altitude_m: import_zod35.z.number().optional(),
4316
+ vertical_accuracy_m: import_zod35.z.number().min(0).optional(),
4317
+ speed_mps: import_zod35.z.number().min(0).optional(),
4318
+ course_deg: import_zod35.z.number().min(0).max(360).optional()
4249
4319
  });
4250
4320
 
4251
4321
  // src/schema/windows.ts
@@ -4277,6 +4347,8 @@ var WindowsRegistryWriteResult = import_zod36.z.strictObject({ key: import_zod36
4277
4347
  var WindowsServicesParams = import_zod36.z.strictObject({
4278
4348
  /** Matched against the service's name and display name. */
4279
4349
  filter: import_zod36.z.string().min(1).max(256).optional(),
4350
+ /** (1.67) Only services in this state (Matrx Local's service_list status). */
4351
+ status: import_zod36.z.enum(["running", "stopped", "paused"]).optional(),
4280
4352
  limit: import_zod36.z.int().min(1).max(1e3).default(200)
4281
4353
  });
4282
4354
  var WindowsService = import_zod36.z.strictObject({
@@ -4290,7 +4362,8 @@ var WindowsService = import_zod36.z.strictObject({
4290
4362
  var WindowsServicesResult = import_zod36.z.strictObject({ services: import_zod36.z.array(WindowsService) });
4291
4363
  var WindowsServiceControlParams = import_zod36.z.strictObject({
4292
4364
  name: import_zod36.z.string().min(1).max(256),
4293
- action: import_zod36.z.enum(["start", "stop", "restart"])
4365
+ /** pause and resume since 1.67 (Matrx Local's service_control). */
4366
+ action: import_zod36.z.enum(["start", "stop", "restart", "pause", "resume"])
4294
4367
  });
4295
4368
  var WindowsServiceControlResult = import_zod36.z.strictObject({ name: import_zod36.z.string(), status: import_zod36.z.string() });
4296
4369
  var WindowsEventLogParams = import_zod36.z.strictObject({
@@ -4298,6 +4371,8 @@ var WindowsEventLogParams = import_zod36.z.strictObject({
4298
4371
  /** Only these levels; absent: all. */
4299
4372
  levels: import_zod36.z.array(import_zod36.z.enum(["critical", "error", "warning", "information", "verbose"])).max(5).optional(),
4300
4373
  since_ms: epochMs.optional(),
4374
+ /** (1.67) Only events whose source (provider) name contains this. */
4375
+ source: import_zod36.z.string().min(1).max(256).optional(),
4301
4376
  limit: import_zod36.z.int().min(1).max(500).default(50)
4302
4377
  });
4303
4378
  var WindowsEvent = import_zod36.z.strictObject({
@@ -4308,7 +4383,11 @@ var WindowsEvent = import_zod36.z.strictObject({
4308
4383
  message: import_zod36.z.string()
4309
4384
  });
4310
4385
  var WindowsEventLogResult = import_zod36.z.strictObject({ log: import_zod36.z.string(), events: import_zod36.z.array(WindowsEvent) });
4311
- var WindowsFeaturesParams = import_zod36.z.strictObject({ filter: import_zod36.z.string().min(1).max(256).optional() });
4386
+ var WindowsFeaturesParams = import_zod36.z.strictObject({
4387
+ filter: import_zod36.z.string().min(1).max(256).optional(),
4388
+ /** (1.67) Only features that are on (Matrx Local's windows_features installed_only). */
4389
+ installed_only: import_zod36.z.boolean().optional()
4390
+ });
4312
4391
  var WindowsFeature = import_zod36.z.strictObject({ name: import_zod36.z.string(), state: import_zod36.z.string() });
4313
4392
  var WindowsFeaturesResult = import_zod36.z.strictObject({ features: import_zod36.z.array(WindowsFeature) });
4314
4393
 
@@ -4828,7 +4907,10 @@ var RESULT_PATH = /* @__PURE__ */ new Map([
4828
4907
  ["web.fetch_with_browser", "WebBrowserFetchResult"],
4829
4908
  ["sysinfo.get", "SysinfoGetResult"],
4830
4909
  ["sysinfo.hardware", "SysinfoHardwareResult"],
4831
- ["apps.projects.to_window", "AppsProjectsToWindowResult"]
4910
+ ["apps.projects.to_window", "AppsProjectsToWindowResult"],
4911
+ // 1.67: Matrx Local's local_mac_apps result fields.
4912
+ ["photos.get", "PhotosGetResult"],
4913
+ ["location.get", "LocationGetResult"]
4832
4914
  ]);
4833
4915
  var NESTED_RESULTS = /* @__PURE__ */ new Map([
4834
4916
  ["apps.chats.list", [["chats", "ChatRow"]]],
@@ -4852,6 +4934,14 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
4852
4934
  // 1.63: what an instance record still lacks.
4853
4935
  ["apps.instances.list", [["instances", "AppInstance"]]],
4854
4936
  ["apps.windows.set_remote_control", [["remote_control", "WindowRemoteControl"]]],
4937
+ // 1.67: Matrx Local's local_mac_apps result fields.
4938
+ ["mail.accounts", [["accounts", "MailAccount"]]],
4939
+ ["messages.chats", [["chats", "MessagesChat"]]],
4940
+ ["messages.list", [["messages", "MessagesMessage"]]],
4941
+ ["calendar.list", [["events", "CalendarEvent"]]],
4942
+ ["reminders.list", [["reminders", "Reminder"]]],
4943
+ ["photos.search", [["photos", "Photo"]]],
4944
+ ["photos.get", [["photo", "Photo"]]],
4855
4945
  ["coding.providers", [["providers", "CodingProviderStatus"]]],
4856
4946
  // 1.57: the account a coding record belongs to.
4857
4947
  ["coding.sessions.list", [["sessions", "CodingSessionRecord"], ["recent", "CodingRecentRow"]]],