@ai-matrx/desktop-protocol 0.21.36 → 0.21.38

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,8 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.21.38
4
+ ### Unreleased
5
+
6
+ - Protocol 1.46 (additive): `DownloadRow.error` (optional) — a failed model download stays in
7
+ models.downloads.list with why it stopped. Stripped for 1.45 peers.
8
+
9
+ ## 0.21.37
10
+
11
+ SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
12
+ so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
13
+ Diff: `git diff 6776a9a814 aa17cdaf9c -- apps/shared/desktop-protocol/src`
14
+
15
+ Changed shipped source files (6):
16
+ - `apps/shared/desktop-protocol/src/contract.ts`
17
+ - `apps/shared/desktop-protocol/src/schema/models.ts`
18
+ - `apps/shared/desktop-protocol/src/schema/primitives.ts`
19
+ - `apps/shared/desktop-protocol/src/schema/registry.ts`
20
+ - `apps/shared/desktop-protocol/src/schema/sysinfo.ts`
21
+ - `apps/shared/desktop-protocol/src/versioning.ts`
22
+
3
23
  ## 0.21.36
4
24
  ### Unreleased
5
25
 
26
+ - Protocol 1.45 (additive). `sysinfo.hardware` gains optional `graphics`
27
+ (`SysinfoGraphicsAdapter`: name, vendor, memory_bytes, memory_approximate, unified), stripped for
28
+ older peers. New ops `models.downloads.list` / `models.downloads.cancel` (key only), forwarded to
29
+ the ml service's new `ml.downloads` / `ml.download_cancel`. Consumer action: Matrx 2 regenerates
30
+ its Python contract (`node scripts/python-contract.mjs`) and implements the two service ops.
31
+
6
32
  - `ToolLevelResult.calls_made` (optional): at the chat level, how many tool calls the agent's turn
7
33
  made. `buildToolStatus` never lets a result that made zero calls, or a `skip`, replace a decisive
8
34
  pass or fail: such a run never exercised the tool, so it is no evidence about it. Before this, one
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 = 44;
147
+ var PROTOCOL_MINOR = 46;
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_-]+$/);
@@ -482,6 +482,14 @@ var SysinfoGetResult = import_zod5.z.strictObject({
482
482
  })
483
483
  ).optional()
484
484
  });
485
+ var SysinfoGraphicsAdapter = import_zod5.z.strictObject({
486
+ name: import_zod5.z.string().max(128),
487
+ vendor: import_zod5.z.string().max(64).nullable(),
488
+ memory_bytes: nonNegInt.nullable(),
489
+ /** True when the OS gives only an approximate size (Windows AdapterRAM, capped at 4 GB). */
490
+ memory_approximate: import_zod5.z.boolean(),
491
+ unified: import_zod5.z.boolean()
492
+ });
485
493
  var SysinfoHardwareParams = import_zod5.z.strictObject({});
486
494
  var SysinfoHardwareResult = import_zod5.z.strictObject({
487
495
  /** "Mac Studio", "MacBook Pro", "ThinkPad X1 Carbon". */
@@ -497,7 +505,10 @@ var SysinfoHardwareResult = import_zod5.z.strictObject({
497
505
  os_name: import_zod5.z.string().max(64).nullable(),
498
506
  /** "26.6.2". */
499
507
  os_version: import_zod5.z.string().max(64).nullable(),
500
- os_build: import_zod5.z.string().max(64).nullable()
508
+ os_build: import_zod5.z.string().max(64).nullable(),
509
+ /** (1.45) Every graphics adapter, as System Information's Graphics/Displays lists them. Optional:
510
+ * a core older than 1.45 omits it. */
511
+ graphics: import_zod5.z.array(SysinfoGraphicsAdapter).max(16).optional()
501
512
  });
502
513
 
503
514
  // src/schema/fs.ts
@@ -888,6 +899,31 @@ var ModelsLlmStartParams = import_zod9.z.strictObject({
888
899
  var ModelsLlmStartResult = import_zod9.z.strictObject({ running: LlmRunning, elapsed_ms: nonNegInt });
889
900
  var ModelsLlmStopParams = import_zod9.z.strictObject({});
890
901
  var ModelsLlmStopResult = import_zod9.z.strictObject({ stopped: import_zod9.z.boolean() });
902
+ var DownloadKind = import_zod9.z.enum(["speech_model", "text_model", "runtime"]);
903
+ var DownloadRow = import_zod9.z.strictObject({
904
+ /** The job's key in the service: "model:base", "llm:smollm2-135m", "llm-server", "runtime". */
905
+ key: import_zod9.z.string().max(64),
906
+ kind: DownloadKind,
907
+ /** The model id for a model download; null for a runtime. */
908
+ model: import_zod9.z.string().max(64).nullable(),
909
+ /** "running" while it downloads; "stopped" when only its half-done file is left (Resume re-runs the install). */
910
+ state: import_zod9.z.enum(["running", "stopped"]),
911
+ /** What it is doing now ("download", "verify", …); null when stopped. */
912
+ step: import_zod9.z.string().max(32).nullable(),
913
+ bytes_done: nonNegInt,
914
+ bytes_total: nonNegInt.nullable(),
915
+ fraction: import_zod9.z.number().min(0).max(1).nullable(),
916
+ /** Unix ms; null when stopped. */
917
+ started_at: nonNegInt.nullable(),
918
+ /** The folder it downloads into (Show in Finder). */
919
+ path: import_zod9.z.string().max(1024).nullable(),
920
+ /** (1.46) Why it stopped, when it failed (one human line); absent otherwise. */
921
+ error: import_zod9.z.string().max(300).optional()
922
+ });
923
+ var ModelsDownloadsListParams = import_zod9.z.strictObject({});
924
+ var ModelsDownloadsListResult = import_zod9.z.strictObject({ downloads: import_zod9.z.array(DownloadRow).max(64) });
925
+ var ModelsDownloadsCancelParams = import_zod9.z.strictObject({ key: import_zod9.z.string().max(64) });
926
+ var ModelsDownloadsCancelResult = import_zod9.z.strictObject({ cancelled: import_zod9.z.boolean() });
891
927
  var MlServiceState = import_zod9.z.enum(["starting", "ready", "restarting", "failed", "stopped"]);
892
928
  var MlServiceStatus = import_zod9.z.strictObject({
893
929
  state: MlServiceState,
@@ -4152,6 +4188,8 @@ var OPS = {
4152
4188
  "models.llm.install": { params: ModelsLlmInstallParams, result: ModelsLlmInstallResult, kind: "unary", since: "1.31", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "TIMEOUT", "CANCELLED", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4153
4189
  "models.llm.start": { params: ModelsLlmStartParams, result: ModelsLlmStartResult, kind: "unary", since: "1.31", errors: ["NOT_FOUND", "RESOURCE_BUSY", "RESOURCE_GONE", "TIMEOUT", "CANCELLED", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
4154
4190
  "models.llm.stop": { params: ModelsLlmStopParams, result: ModelsLlmStopResult, kind: "unary", since: "1.31", errors: ["INTERNAL"] },
4191
+ "models.downloads.list": { params: ModelsDownloadsListParams, result: ModelsDownloadsListResult, kind: "unary", since: "1.45", errors: ["INTERNAL"] },
4192
+ "models.downloads.cancel": { params: ModelsDownloadsCancelParams, result: ModelsDownloadsCancelResult, kind: "unary", since: "1.45", errors: ["NOT_FOUND", "INTERNAL"] },
4155
4193
  // Desktop apps and their profiles (SPEC §6 apps); profiles are rows in users.desktop_app_profile.
4156
4194
  "apps.list": { params: AppsListParams, result: AppsListResult, kind: "unary", since: "1.2", errors: ["INTERNAL"] },
4157
4195
  "apps.profiles.list": { params: AppsProfilesListParams, result: AppsProfilesListResult, kind: "unary", since: "1.2", errors: ["NOT_FOUND", "INVALID_PARAMS", "INTERNAL"] },
@@ -4417,6 +4455,7 @@ var RESULT_PATH = /* @__PURE__ */ new Map([
4417
4455
  ["apps.windows.update_state", "AppsWindowsUpdateStateResult"],
4418
4456
  ["web.fetch_with_browser", "WebBrowserFetchResult"],
4419
4457
  ["sysinfo.get", "SysinfoGetResult"],
4458
+ ["sysinfo.hardware", "SysinfoHardwareResult"],
4420
4459
  ["apps.projects.to_window", "AppsProjectsToWindowResult"]
4421
4460
  ]);
4422
4461
  var NESTED_RESULTS = /* @__PURE__ */ new Map([
@@ -4433,6 +4472,7 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
4433
4472
  ["account.agents.list", [["agents", "AccountAgent"]]],
4434
4473
  ["web.scrape", [["pages", "WebScrapePage"]]],
4435
4474
  ["sysinfo.get", [["permissions", "SysinfoGetResult.permissions[]"]]],
4475
+ ["models.downloads.list", [["downloads", "DownloadRow"]]],
4436
4476
  ["apps.projects.to_window", [["group", "ProjectMoveGroup"]]]
4437
4477
  ]);
4438
4478
  var WINDOW_RESULTS = /* @__PURE__ */ new Map([