@ai-matrx/desktop-protocol 0.21.32 → 0.21.34

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.34
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/desktop-protocol/v0.21.33..npm/desktop-protocol/v0.21.34 -- apps/shared/desktop-protocol`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.21.33
10
+
11
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
12
+ `git diff npm/desktop-protocol/v0.21.32..npm/desktop-protocol/v0.21.33 -- apps/shared/desktop-protocol`).
13
+ No source changes intended and no consumer action required.
14
+
3
15
  ## 0.21.32
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 = 42;
147
+ var PROTOCOL_MINOR = 44;
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_-]+$/);
@@ -3087,7 +3087,27 @@ var ProjectMoveGroup = import_zod31.z.strictObject({
3087
3087
  already: nonNegInt.optional(),
3088
3088
  from_other_groups: nonNegInt.optional(),
3089
3089
  /** A group of that name was already there (reused, never doubled). */
3090
- group_exists: import_zod31.z.boolean().optional()
3090
+ group_exists: import_zod31.z.boolean().optional(),
3091
+ /** 1.43: "now" = written into the closed window; "next_close" = queued until that window closes. */
3092
+ when: import_zod31.z.enum(["now", "next_close"]).optional(),
3093
+ /** 1.43: the window's own id of the group used (absent while a new one waits to be made). */
3094
+ group_id: import_zod31.z.string().max(200).optional()
3095
+ });
3096
+ var ProjectMoveOutcome = import_zod31.z.strictObject({
3097
+ chat_id: ChatId,
3098
+ title: import_zod31.z.string().max(300),
3099
+ outcome: import_zod31.z.enum(["copied", "moved", "already", "skipped"]),
3100
+ off: import_zod31.z.array(ChatPlace).max(50),
3101
+ reason: import_zod31.z.string().max(400).nullable(),
3102
+ pin: import_zod31.z.enum(["now", "next_close", "failed"]).nullable(),
3103
+ group: import_zod31.z.enum(["now", "next_close", "failed"]).nullable()
3104
+ });
3105
+ var WindowGroup = import_zod31.z.strictObject({ id: import_zod31.z.string().max(200), name: import_zod31.z.string().max(200), count: nonNegInt });
3106
+ var AppsWindowsGroupsParams = import_zod31.z.strictObject({ app_key: AppKey, window: ChatPlace });
3107
+ var AppsWindowsGroupsResult = import_zod31.z.strictObject({
3108
+ window: ChatPlace,
3109
+ open: import_zod31.z.boolean(),
3110
+ groups: import_zod31.z.array(WindowGroup).max(1e3)
3091
3111
  });
3092
3112
  var ProjectMovePin = import_zod31.z.strictObject({
3093
3113
  ok: import_zod31.z.boolean(),
@@ -3108,8 +3128,12 @@ var AppsProjectsToWindowParams = import_zod31.z.strictObject({
3108
3128
  window: ChatPlace,
3109
3129
  /** Also take each chat off its other side windows where safe (never main, the holder, an open window). */
3110
3130
  take_off: import_zod31.z.boolean().default(false),
3111
- /** Also group them under the project's name in that window's sidebar (closed windows only). */
3131
+ /** 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). */
3112
3132
  group: import_zod31.z.boolean().default(false),
3133
+ /** 1.43: group them into this existing group of the window (apps.windows.groups); implies group. */
3134
+ group_id: import_zod31.z.string().min(1).max(200).optional(),
3135
+ /** 1.43: group them under this name (an existing group of that name is reused, else made); implies group. */
3136
+ group_name: import_zod31.z.string().trim().min(1).max(200).optional(),
3113
3137
  /** 1.32: also pin them in that window (now if closed, else when it next closes). */
3114
3138
  pin: import_zod31.z.boolean().optional(),
3115
3139
  /** 1.36: a batch: exactly these chats of the project and no other (a reused marker is a label, never a sweep). */
@@ -3131,6 +3155,8 @@ var AppsProjectsToWindowResult = import_zod31.z.strictObject({
3131
3155
  group: ProjectMoveGroup.nullable(),
3132
3156
  /** 1.32: the pin in the target window (absent: not asked). */
3133
3157
  pin: ProjectMovePin.optional(),
3158
+ /** 1.43: one row per chat, what happened to it (absent from an older core). */
3159
+ chats: import_zod31.z.array(ProjectMoveOutcome).max(5e3).optional(),
3134
3160
  message: import_zod31.z.string().max(400)
3135
3161
  });
3136
3162
  var ColdChat = import_zod31.z.strictObject({
@@ -3614,6 +3640,70 @@ var MailSendParams = import_zod34.z.strictObject({
3614
3640
  send: import_zod34.z.boolean().default(true)
3615
3641
  });
3616
3642
  var MailSendResult = import_zod34.z.strictObject({ sent: import_zod34.z.boolean() });
3643
+ var OutlookStatusParams = import_zod34.z.strictObject({});
3644
+ var OutlookAccount = import_zod34.z.strictObject({ name: import_zod34.z.string(), email: import_zod34.z.string().nullable() });
3645
+ var OutlookStatusResult = import_zod34.z.strictObject({
3646
+ /** classic_windows: scriptable. new_windows / mac: installed, not scriptable. none: not found. */
3647
+ client: import_zod34.z.enum(["classic_windows", "new_windows", "mac", "none"]),
3648
+ scriptable: import_zod34.z.boolean(),
3649
+ version: import_zod34.z.string().nullable(),
3650
+ accounts: import_zod34.z.array(OutlookAccount),
3651
+ /** Why it is not scriptable here, in a sentence the person can act on; null when it is. */
3652
+ reason: import_zod34.z.string().nullable()
3653
+ });
3654
+ var Address = import_zod34.z.string().min(3).max(320);
3655
+ var OutlookDraftParams = import_zod34.z.strictObject({
3656
+ to: import_zod34.z.array(Address).max(100).default([]),
3657
+ cc: import_zod34.z.array(Address).max(100).default([]),
3658
+ bcc: import_zod34.z.array(Address).max(100).default([]),
3659
+ subject: import_zod34.z.string().max(998).default(""),
3660
+ body: import_zod34.z.string().max(1048576).default(""),
3661
+ body_format: import_zod34.z.enum(["text", "html"]).default("text"),
3662
+ /** Files on this computer to attach (absolute paths). */
3663
+ attachments: import_zod34.z.array(import_zod34.z.string().min(1).max(4096)).max(50).default([]),
3664
+ /** The sending account's address (one of outlook.status's accounts); absent: Outlook's default. */
3665
+ account: Address.optional(),
3666
+ /** true also opens the draft in a window for the person. */
3667
+ display: import_zod34.z.boolean().default(false)
3668
+ });
3669
+ var OutlookDraftResult = import_zod34.z.strictObject({
3670
+ /** The draft's id in Outlook (outlook.read takes it). */
3671
+ id: import_zod34.z.string(),
3672
+ account: import_zod34.z.string().nullable(),
3673
+ folder: import_zod34.z.string(),
3674
+ attachments: nonNegInt,
3675
+ displayed: import_zod34.z.boolean()
3676
+ });
3677
+ var OutlookListParams = import_zod34.z.strictObject({
3678
+ folder: import_zod34.z.enum(["inbox", "sent", "drafts"]).default("inbox"),
3679
+ /** The account's address; absent: the default account. */
3680
+ account: Address.optional(),
3681
+ unread_only: import_zod34.z.boolean().default(false),
3682
+ limit: import_zod34.z.int().min(1).max(200).default(25)
3683
+ });
3684
+ var OutlookMessage = import_zod34.z.strictObject({
3685
+ id: import_zod34.z.string(),
3686
+ subject: import_zod34.z.string(),
3687
+ sender: import_zod34.z.string(),
3688
+ received_at_ms: epochMs.nullable(),
3689
+ read: import_zod34.z.boolean(),
3690
+ has_attachments: import_zod34.z.boolean(),
3691
+ /** The first lines of the message's text. */
3692
+ preview: import_zod34.z.string()
3693
+ });
3694
+ var OutlookListResult = import_zod34.z.strictObject({ folder: import_zod34.z.string(), messages: import_zod34.z.array(OutlookMessage) });
3695
+ var OutlookReadParams = import_zod34.z.strictObject({ id: import_zod34.z.string().min(1).max(1024) });
3696
+ var OutlookReadResult = import_zod34.z.strictObject({
3697
+ id: import_zod34.z.string(),
3698
+ subject: import_zod34.z.string(),
3699
+ sender: import_zod34.z.string(),
3700
+ to: import_zod34.z.array(import_zod34.z.string()),
3701
+ cc: import_zod34.z.array(import_zod34.z.string()),
3702
+ received_at_ms: epochMs.nullable(),
3703
+ /** The plain text body, cut at 1 MiB. */
3704
+ body: import_zod34.z.string(),
3705
+ attachments: import_zod34.z.array(import_zod34.z.strictObject({ name: import_zod34.z.string(), size: nonNegInt }))
3706
+ });
3617
3707
  var MessagesChatsParams = import_zod34.z.strictObject({ limit: import_zod34.z.int().min(1).max(200).default(25) });
3618
3708
  var MessagesChat = import_zod34.z.strictObject({
3619
3709
  chat_id: import_zod34.z.string(),
@@ -4151,6 +4241,7 @@ var OPS = {
4151
4241
  "diag.errors.list": { params: DiagErrorsListParams, result: DiagErrorsListResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
4152
4242
  "diag.errors.report": { params: DiagErrorsReportParams, result: DiagErrorsReportResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
4153
4243
  // 1.21: what a window's sidebar draws (the Move-all grouping check).
4244
+ "apps.windows.groups": { params: AppsWindowsGroupsParams, result: AppsWindowsGroupsResult, kind: "unary", since: "1.43", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4154
4245
  "apps.windows.shown": { params: AppsWindowsShownParams, result: AppsWindowsShownResult, kind: "unary", since: "1.21", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4155
4246
  // Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
4156
4247
  "coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] },
@@ -4248,6 +4339,10 @@ var OPS = {
4248
4339
  "mail.accounts": { params: MailAccountsParams, result: MailAccountsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4249
4340
  "mail.list": { params: MailListParams, result: MailListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4250
4341
  "mail.send": { params: MailSendParams, result: MailSendResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4342
+ "outlook.status": { params: OutlookStatusParams, result: OutlookStatusResult, kind: "unary", since: "1.44", errors: ["TIMEOUT", "INTERNAL"] },
4343
+ "outlook.draft": { params: OutlookDraftParams, result: OutlookDraftResult, kind: "unary", since: "1.44", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4344
+ "outlook.list": { params: OutlookListParams, result: OutlookListResult, kind: "unary", since: "1.44", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4345
+ "outlook.read": { params: OutlookReadParams, result: OutlookReadResult, kind: "unary", since: "1.44", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4251
4346
  "messages.chats": { params: MessagesChatsParams, result: MessagesChatsResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4252
4347
  "messages.list": { params: MessagesListParams, result: MessagesListResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
4253
4348
  "messages.send": { params: MessagesSendParams, result: MessagesSendResult, kind: "unary", since: "1.37", errors: ["INVALID_PARAMS", "NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "TIMEOUT", "INTERNAL"] },
@@ -4321,7 +4416,8 @@ var RESULT_PATH = /* @__PURE__ */ new Map([
4321
4416
  ["apps.accounts.resets", "AppsAccountsResetsResult"],
4322
4417
  ["apps.windows.update_state", "AppsWindowsUpdateStateResult"],
4323
4418
  ["web.fetch_with_browser", "WebBrowserFetchResult"],
4324
- ["sysinfo.get", "SysinfoGetResult"]
4419
+ ["sysinfo.get", "SysinfoGetResult"],
4420
+ ["apps.projects.to_window", "AppsProjectsToWindowResult"]
4325
4421
  ]);
4326
4422
  var NESTED_RESULTS = /* @__PURE__ */ new Map([
4327
4423
  ["apps.chats.list", [["chats", "ChatRow"]]],
@@ -4336,7 +4432,8 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
4336
4432
  ["stack.state", [["servers", "StackServer"]]],
4337
4433
  ["account.agents.list", [["agents", "AccountAgent"]]],
4338
4434
  ["web.scrape", [["pages", "WebScrapePage"]]],
4339
- ["sysinfo.get", [["permissions", "SysinfoGetResult.permissions[]"]]]
4435
+ ["sysinfo.get", [["permissions", "SysinfoGetResult.permissions[]"]]],
4436
+ ["apps.projects.to_window", [["group", "ProjectMoveGroup"]]]
4340
4437
  ]);
4341
4438
  var WINDOW_RESULTS = /* @__PURE__ */ new Map([
4342
4439
  ["window.list", "windows"],