@ai-matrx/desktop-protocol 0.21.44 → 0.21.46

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,25 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.21.46
4
+ ### Unreleased
5
+
6
+ - **Protocol 1.50 — a window's Remote Control (phone) setting.** `AppWindowInfo` gains optional
7
+ `remote_control` (`WindowRemoteControl`: `setting` on/off/default as the window's settings file holds
8
+ it, `serving` from its live state, `pending` a change queued for its next close). New op
9
+ `apps.windows.set_remote_control` (`{app_key, window, enabled}` → `{message, when, remote_control}`):
10
+ a closed window is written now, an open one is queued and written on its next close or Restart.
11
+ Consumer action: none; a 1.49 core omits the field and answers UNKNOWN_OPERATION.
12
+
13
+ ## 0.21.45
14
+
15
+ SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
16
+ so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
17
+ Diff: `git diff de1c78033b 8a91ee5592 -- apps/shared/desktop-protocol/src`
18
+
19
+ Changed shipped source files (2):
20
+ - `apps/shared/desktop-protocol/src/contract.ts`
21
+ - `apps/shared/desktop-protocol/src/schema/models.ts`
22
+
3
23
  ## 0.21.44
4
24
  ### Unreleased
5
25
 
package/README.md CHANGED
@@ -51,7 +51,7 @@ term.write("ls\n");
51
51
  those, never on messages. A dropped socket rejects unary work with `DEVICE_OFFLINE` (retryable).
52
52
  - **Terminal closes** (`4010` revoked, `4003` forbidden, `4004` not found, `4009` replaced, `4426`
53
53
  upgrade) end the client for good; everything else reconnects with the shared
54
- `@ai-matrx/realtime` backoff (stability reset + jitter) — including `1006` (a relay deploy drops
54
+ `@ai-matrx/data/realtime` backoff (stability reset + jitter) — including `1006` (a relay deploy drops
55
55
  every socket without a close frame) and `1012` (the relay's "the device reconnected": hello and
56
56
  reattach against the new core session).
57
57
  - **Coming back:** `client.wake()` (or `bindDesktopWake(client)` / `useDesktopWake()`, which call it
package/dist/client.cjs CHANGED
@@ -31,7 +31,7 @@ __export(client_exports, {
31
31
  module.exports = __toCommonJS(client_exports);
32
32
 
33
33
  // src/client/client.ts
34
- var import_realtime = require("@ai-matrx/realtime");
34
+ var import_realtime = require("@ai-matrx/data/realtime");
35
35
 
36
36
  // src/error.ts
37
37
  var DesktopProtocolError = class _DesktopProtocolError extends Error {
@@ -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 = 49;
147
+ var PROTOCOL_MINOR = 51;
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_-]+$/);
@@ -935,8 +935,8 @@ var MlCatalogSetParams = import_zod9.z.strictObject({
935
935
  transcription: import_zod9.z.array(CatalogModelEntry).max(64),
936
936
  /** Null where the catalog has no build for this os/arch (installs then say so). */
937
937
  llama_server: LlamaServerBuild.nullable(),
938
- /** The knob desktop.models/default_transcription_model. */
939
- default_transcription: TranscriptionModelId,
938
+ /** The knob desktop.models/default_transcription_model; null when the knob could not be read (a transcribe naming no model then says so). */
939
+ default_transcription: TranscriptionModelId.nullable(),
940
940
  /** When the catalog was last changed (catalog_updated_at), for the service's log. */
941
941
  catalog_updated_at: import_zod9.z.string().max(40)
942
942
  });
@@ -3043,6 +3043,14 @@ var AppsChatsStarResult = import_zod30.z.strictObject({ chat: ChatRow });
3043
3043
 
3044
3044
  // src/schema/apps-accounts.ts
3045
3045
  var import_zod31 = require("zod");
3046
+ var WindowRemoteControl = import_zod31.z.strictObject({
3047
+ /** As the window's settings file holds it: on, off, or never set (the app's default). */
3048
+ setting: import_zod31.z.enum(["on", "off", "default"]),
3049
+ /** The window serves Remote Control now (its live state says "on"); null: not known (closed, or no state file). */
3050
+ serving: import_zod31.z.boolean().nullable(),
3051
+ /** A change queued until the window next closes (or restarts); null: none. */
3052
+ pending: import_zod31.z.enum(["on", "off"]).nullable()
3053
+ });
3046
3054
  var AppWindowInfo = import_zod31.z.strictObject({
3047
3055
  key: ChatPlace,
3048
3056
  /** The app's default profile (Claude: main, which may sign into any account). */
@@ -3059,7 +3067,9 @@ var AppWindowInfo = import_zod31.z.strictObject({
3059
3067
  /** Open now. */
3060
3068
  running: import_zod31.z.boolean(),
3061
3069
  /** Chats open in it now (a process resuming each one). */
3062
- open_chats: nonNegInt
3070
+ open_chats: nonNegInt,
3071
+ /** 1.50: its Remote Control (phone) setting; absent from an older core, or an app without one. */
3072
+ remote_control: WindowRemoteControl.optional()
3063
3073
  });
3064
3074
  var AccountUsage = import_zod31.z.strictObject({
3065
3075
  /** The account's email, or "org <8 chars>" when no window has ever sampled that org. */
@@ -3139,6 +3149,13 @@ var AppsWindowsShownResult = import_zod31.z.strictObject({
3139
3149
  sections: import_zod31.z.array(ShownSection).max(200),
3140
3150
  problem: import_zod31.z.string().max(400).nullable()
3141
3151
  });
3152
+ var AppsWindowsSetRemoteControlParams = import_zod31.z.strictObject({ app_key: AppKey, window: ChatPlace, enabled: import_zod31.z.boolean() });
3153
+ var AppsWindowsSetRemoteControlResult = import_zod31.z.strictObject({
3154
+ message: import_zod31.z.string().max(400),
3155
+ /** "now" = written into the closed window; "next_close" = queued until it closes. */
3156
+ when: import_zod31.z.enum(["now", "next_close"]),
3157
+ remote_control: WindowRemoteControl
3158
+ });
3142
3159
  var AppsWindowsRestartParams = import_zod31.z.strictObject({ app_key: AppKey, window: ChatPlace, force: import_zod31.z.boolean().default(false) });
3143
3160
  var AppsWindowsRefreshUsageParams = import_zod31.z.strictObject({ app_key: AppKey, window: ChatPlace });
3144
3161
  var AppsProjectsMoveParams = import_zod31.z.strictObject({
@@ -3482,19 +3499,23 @@ var AppAccount = import_zod32.z.strictObject({
3482
3499
  last_seen_ms: epochMs.nullable(),
3483
3500
  missing: import_zod32.z.array(AccountGap).max(3)
3484
3501
  });
3485
- var AppsInstancesListParams = import_zod32.z.strictObject({ app_key: AppKey });
3502
+ var AppsInstancesListParams = import_zod32.z.strictObject({ app_key: AppKey, fresh: import_zod32.z.boolean().optional() });
3486
3503
  var AppsInstancesListResult = import_zod32.z.strictObject({
3487
3504
  app_key: AppKey,
3488
3505
  install: AppInstall.nullable(),
3489
3506
  instances: import_zod32.z.array(AppInstance).max(200),
3490
3507
  /** The rows are right but something around them failed; shown, never hidden. */
3491
- problem: import_zod32.z.string().max(400).optional()
3508
+ problem: import_zod32.z.string().max(400).optional(),
3509
+ as_of_ms: epochMs.optional(),
3510
+ refreshing: import_zod32.z.boolean().optional()
3492
3511
  });
3493
- var AppsAccountsListParams = import_zod32.z.strictObject({ app_key: AppKey });
3512
+ var AppsAccountsListParams = import_zod32.z.strictObject({ app_key: AppKey, fresh: import_zod32.z.boolean().optional() });
3494
3513
  var AppsAccountsListResult = import_zod32.z.strictObject({
3495
3514
  app_key: AppKey,
3496
3515
  accounts: import_zod32.z.array(AppAccount).max(500),
3497
- problem: import_zod32.z.string().max(400).optional()
3516
+ problem: import_zod32.z.string().max(400).optional(),
3517
+ as_of_ms: epochMs.optional(),
3518
+ refreshing: import_zod32.z.boolean().optional()
3498
3519
  });
3499
3520
 
3500
3521
  // src/schema/browser.ts
@@ -4334,6 +4355,8 @@ var OPS = {
4334
4355
  "apps.windows.open": { params: AppsWindowsOpenParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4335
4356
  "apps.windows.reload": { params: AppsWindowsReloadParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "CONFLICT", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4336
4357
  "apps.windows.restart": { params: AppsWindowsRestartParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "CONFLICT", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4358
+ // 1.50: a window's Remote Control (phone) setting, written while closed or queued for its next close.
4359
+ "apps.windows.set_remote_control": { params: AppsWindowsSetRemoteControlParams, result: AppsWindowsSetRemoteControlResult, kind: "unary", since: "1.50", errors: ["NOT_FOUND", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4337
4360
  "apps.windows.refresh_usage": { params: AppsWindowsRefreshUsageParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4338
4361
  "apps.accounts.usage": { params: AppsAccountsUsageParams, result: AppsAccountsUsageResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4339
4362
  "apps.accounts.resets": { params: AppsAccountsResetsParams, result: AppsAccountsResetsResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },