@ai-matrx/desktop-protocol 0.17.4 → 0.17.6

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
@@ -1,7 +1,7 @@
1
1
  // src/schema/primitives.ts
2
2
  import { z } from "zod";
3
3
  var PROTOCOL_MAJOR = 1;
4
- var PROTOCOL_MINOR = 8;
4
+ var PROTOCOL_MINOR = 10;
5
5
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
6
6
  var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
7
7
  var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -964,6 +964,11 @@ var ChatRow = z12.strictObject({
964
964
  warnings: z12.array(z12.string().max(400)).max(20),
965
965
  last_use: ChatLastUse.nullable()
966
966
  });
967
+ var ChatFamily = z12.strictObject({
968
+ id: ChatId,
969
+ fork_of: ChatId.nullable(),
970
+ copy_of: ChatId.nullable()
971
+ });
967
972
  var AppsChatsListParams = z12.strictObject({
968
973
  app_key: AppKey,
969
974
  /** Only these chats (a live update re-reads just what changed). */
@@ -977,7 +982,13 @@ var AppsChatsListResult = z12.strictObject({
977
982
  projects: z12.array(ChatProject).max(5e3),
978
983
  chats: z12.array(ChatRow).max(2e4),
979
984
  /** How long a chat in no project counts as new. */
980
- new_window_ms: nonNegInt
985
+ new_window_ms: nonNegInt,
986
+ /** 1.9: this is the copy saved at the last read, shown while everything is read again. */
987
+ updating: z12.boolean().optional(),
988
+ /** 1.9: false while the folder watches are down (changes are not arriving); `apps.chats.watch_state` says when it changes. */
989
+ live: z12.boolean().optional(),
990
+ /** 1.10: every listed chat that is a fork or a copy of another (read from the conversations' first lines). */
991
+ families: z12.array(ChatFamily).max(2e4).optional()
981
992
  });
982
993
  var AppsChatsWatchParams = z12.strictObject({ app_key: AppKey });
983
994
  var AppsChatsWatchResult = z12.strictObject({ resource_id: ResourceId, version: nonNegInt });
@@ -987,6 +998,38 @@ var AppsChatsChangedEvent = z12.strictObject({
987
998
  ids: z12.array(ChatId).max(1e3),
988
999
  all: z12.boolean()
989
1000
  });
1001
+ var AppsChatsWatchStateEvent = z12.strictObject({
1002
+ app_key: AppKey,
1003
+ live: z12.boolean(),
1004
+ updating: z12.boolean(),
1005
+ reason: z12.string().max(300).nullable()
1006
+ });
1007
+ var AppsChatsPlaceParams = z12.strictObject({
1008
+ app_key: AppKey,
1009
+ chat_id: ChatId,
1010
+ action: z12.enum(["place", "take_off", "hold"]),
1011
+ /** The window (for place and take_off). */
1012
+ window: ChatPlace.optional(),
1013
+ /** take_off where it is open: stop it there first (the person confirmed). */
1014
+ stop_if_open: z12.boolean().default(false)
1015
+ });
1016
+ var AppsChatsPlaceResult = z12.strictObject({ chat: ChatRow, message: z12.string().max(400) });
1017
+ var AppsProjectsFileManyParams = z12.strictObject({
1018
+ app_key: AppKey,
1019
+ chat_ids: z12.array(ChatId).min(1).max(500),
1020
+ project_id: ChatProjectId.optional(),
1021
+ new_project_name: z12.string().min(1).max(200).optional()
1022
+ });
1023
+ var AppsProjectsFileManyResult = z12.strictObject({ chats: z12.array(ChatRow).max(500), project: ChatProject });
1024
+ var AppsProjectsUpdateParams = z12.strictObject({
1025
+ app_key: AppKey,
1026
+ project_id: ChatProjectId,
1027
+ name: z12.string().min(1).max(200).optional(),
1028
+ archived: z12.boolean().optional()
1029
+ });
1030
+ var AppsProjectsUpdateResult = z12.strictObject({ project: ChatProject });
1031
+ var AppsProjectsCopyParams = z12.strictObject({ app_key: AppKey, project_id: ChatProjectId, new_project_name: z12.string().min(1).max(200) });
1032
+ var AppsProjectsCopyResult = z12.strictObject({ project: ChatProject });
990
1033
  var AppsProjectsFileParams = z12.strictObject({
991
1034
  app_key: AppKey,
992
1035
  chat_id: ChatId,
@@ -999,250 +1042,330 @@ var AppsProjectsUnfileResult = z12.strictObject({ chat: ChatRow });
999
1042
  var AppsChatsStarParams = z12.strictObject({ app_key: AppKey, chat_id: ChatId, starred: z12.boolean() });
1000
1043
  var AppsChatsStarResult = z12.strictObject({ chat: ChatRow });
1001
1044
 
1002
- // src/schema/service.ts
1045
+ // src/schema/apps-accounts.ts
1003
1046
  import { z as z13 } from "zod";
1047
+ var AppWindowInfo = z13.strictObject({
1048
+ key: ChatPlace,
1049
+ /** The app's default profile (Claude: main, which may sign into any account). */
1050
+ main: z13.boolean(),
1051
+ /** The account the window is meant for (null for main). */
1052
+ account: z13.string().max(320).nullable(),
1053
+ /** The account signed in there now: an email, or the account id while it has no saved name. */
1054
+ signed_in: z13.string().max(320).nullable(),
1055
+ signed_in_is_email: z13.boolean(),
1056
+ /** Signed into another account than the one it is meant for. */
1057
+ mismatch: z13.boolean(),
1058
+ /** Its folder exists. */
1059
+ created: z13.boolean(),
1060
+ /** Open now. */
1061
+ running: z13.boolean(),
1062
+ /** Chats open in it now (a process resuming each one). */
1063
+ open_chats: nonNegInt
1064
+ });
1065
+ var AccountUsage = z13.strictObject({
1066
+ /** The account's email, or "org <8 chars>" when no window has ever sampled that org. */
1067
+ account: z13.string().max(320),
1068
+ org: z13.string().max(80).nullable(),
1069
+ /** False when the org was sampled in several accounts' windows and the vote is not clear (≥ 75 %). */
1070
+ account_certain: z13.boolean(),
1071
+ /** 5-hour use in percent (0 once the reading is over 5 hours old). */
1072
+ five_hour: z13.number().nullable(),
1073
+ five_hour_reset_since: z13.boolean(),
1074
+ /** Weekly use in percent (0 once the week reset after the reading). */
1075
+ weekly: z13.number().nullable(),
1076
+ weekly_reset_since: z13.boolean(),
1077
+ /** Extra-usage spend in percent of its cap, when on. */
1078
+ extra_usage: z13.number().nullable(),
1079
+ extra_usage_as_of_ms: epochMs.nullable(),
1080
+ as_of_ms: epochMs,
1081
+ /** The windows meant for this account (and main when main took the reading). */
1082
+ windows: z13.array(ChatPlace).max(200),
1083
+ /** The window that took the reading is open now and the reading is under 30 minutes old. */
1084
+ live: z13.boolean(),
1085
+ /** The next weekly reset, when known. */
1086
+ weekly_resets_at_ms: epochMs.nullable(),
1087
+ /** That reset time is Claude's own (its reading, or a reset seen in its usage history). */
1088
+ weekly_reset_official: z13.boolean().nullable()
1089
+ });
1090
+ var AccountReset = z13.strictObject({
1091
+ window: ChatPlace,
1092
+ account: z13.string().max(320).nullable(),
1093
+ next_reset_ms: epochMs.nullable(),
1094
+ /** claude: the app's own reading; usage_history: a weekly drop seen in its usage record; your_list: the person's own entry. */
1095
+ source: z13.enum(["claude", "usage_history", "your_list"]).nullable(),
1096
+ /** claude or usage_history. */
1097
+ official: z13.boolean(),
1098
+ /** Set when the person's list disagrees with the official time. */
1099
+ note: z13.string().max(200).nullable()
1100
+ });
1101
+ var AppsWindowsListParams = z13.strictObject({ app_key: AppKey });
1102
+ var AppsWindowsListResult = z13.strictObject({ app_key: AppKey, windows: z13.array(AppWindowInfo).max(200) });
1103
+ var AppsAccountsUsageParams = z13.strictObject({ app_key: AppKey });
1104
+ var AppsAccountsUsageResult = z13.strictObject({ app_key: AppKey, accounts: z13.array(AccountUsage).max(500) });
1105
+ var AppsAccountsResetsParams = z13.strictObject({ app_key: AppKey });
1106
+ var AppsAccountsResetsResult = z13.strictObject({ app_key: AppKey, resets: z13.array(AccountReset).max(200) });
1107
+ var AppsWindowActionResult = z13.strictObject({ message: z13.string().max(400) });
1108
+ var AppsWindowsOpenParams = z13.strictObject({ app_key: AppKey, window: ChatPlace });
1109
+ var AppsWindowsReloadParams = z13.strictObject({ app_key: AppKey, window: ChatPlace });
1110
+ var AppsWindowsRestartParams = z13.strictObject({ app_key: AppKey, window: ChatPlace, force: z13.boolean().default(false) });
1111
+ var AppsWindowsRefreshUsageParams = z13.strictObject({ app_key: AppKey, window: ChatPlace });
1112
+ var AppsProjectsMoveParams = z13.strictObject({
1113
+ app_key: AppKey,
1114
+ chat_id: ChatId,
1115
+ from_project_id: ChatProjectId,
1116
+ to_project_id: ChatProjectId.optional(),
1117
+ new_project_name: z13.string().min(1).max(200).optional()
1118
+ });
1119
+ var AppsProjectsMoveResult = z13.strictObject({ chat: ChatRow, project: ChatProject });
1120
+ var AppsProjectsCreateParams = z13.strictObject({ app_key: AppKey, name: z13.string().min(1).max(200) });
1121
+ var AppsProjectsCreateResult = z13.strictObject({ project: ChatProject });
1122
+ var AppsProjectsImportPinsParams = z13.strictObject({ app_key: AppKey });
1123
+ var AppsProjectsImportPinsResult = z13.strictObject({ message: z13.string().max(400) });
1124
+
1125
+ // src/schema/service.ts
1126
+ import { z as z14 } from "zod";
1004
1127
  var SERVICE_MAX_FRAME_BYTES = 16777216;
1005
- var ServiceName = z13.enum(["ml", "coding"]);
1006
- var ContractHash = z13.string().regex(/^[0-9a-f]{64}$/);
1007
- var ServiceToken = z13.string().regex(/^[A-Za-z0-9_-]{43}$/);
1128
+ var ServiceName = z14.enum(["ml", "coding"]);
1129
+ var ContractHash = z14.string().regex(/^[0-9a-f]{64}$/);
1130
+ var ServiceToken = z14.string().regex(/^[A-Za-z0-9_-]{43}$/);
1008
1131
  var ServiceRequestId = u32;
1009
- var ServiceHello = z13.strictObject({ type: z13.literal("hello"), token: ServiceToken, contract: ContractHash });
1010
- var ServiceWelcome = z13.strictObject({
1011
- type: z13.literal("welcome"),
1132
+ var ServiceHello = z14.strictObject({ type: z14.literal("hello"), token: ServiceToken, contract: ContractHash });
1133
+ var ServiceWelcome = z14.strictObject({
1134
+ type: z14.literal("welcome"),
1012
1135
  service: ServiceName,
1013
1136
  contract: ContractHash,
1014
1137
  pid: nonNegInt,
1015
1138
  /** The interpreter's version, e.g. "3.13.15". */
1016
- python: z13.string().max(32),
1139
+ python: z14.string().max(32),
1017
1140
  /** Every op this service serves; must equal SERVICES[service] exactly. */
1018
- ops: z13.array(z13.string().min(1).max(64)).max(64)
1141
+ ops: z14.array(z14.string().min(1).max(64)).max(64)
1019
1142
  });
1020
- var ServiceRequest = z13.strictObject({
1021
- type: z13.literal("request"),
1143
+ var ServiceRequest = z14.strictObject({
1144
+ type: z14.literal("request"),
1022
1145
  id: ServiceRequestId,
1023
- op: z13.string().min(1).max(64),
1024
- params: z13.unknown()
1146
+ op: z14.string().min(1).max(64),
1147
+ params: z14.unknown()
1025
1148
  // validated by the service against SERVICES[service][op].params
1026
1149
  });
1027
- var ServiceResponse = z13.strictObject({
1028
- type: z13.literal("response"),
1150
+ var ServiceResponse = z14.strictObject({
1151
+ type: z14.literal("response"),
1029
1152
  id: ServiceRequestId,
1030
- result: z13.unknown()
1153
+ result: z14.unknown()
1031
1154
  // validated by the core against SERVICES[service][op].result
1032
1155
  });
1033
- var ServiceErrorMsg = z13.strictObject({ type: z13.literal("error"), id: ServiceRequestId, error: ProtocolErrorBody });
1034
- var ServiceProgressMsg = z13.strictObject({ type: z13.literal("progress"), id: ServiceRequestId, progress: z13.unknown() });
1035
- var ServiceCancel = z13.strictObject({ type: z13.literal("cancel"), id: ServiceRequestId });
1036
- var ServicePing = z13.strictObject({ type: z13.literal("ping"), id: ServiceRequestId });
1037
- var ServicePong = z13.strictObject({
1038
- type: z13.literal("pong"),
1156
+ var ServiceErrorMsg = z14.strictObject({ type: z14.literal("error"), id: ServiceRequestId, error: ProtocolErrorBody });
1157
+ var ServiceProgressMsg = z14.strictObject({ type: z14.literal("progress"), id: ServiceRequestId, progress: z14.unknown() });
1158
+ var ServiceCancel = z14.strictObject({ type: z14.literal("cancel"), id: ServiceRequestId });
1159
+ var ServicePing = z14.strictObject({ type: z14.literal("ping"), id: ServiceRequestId });
1160
+ var ServicePong = z14.strictObject({
1161
+ type: z14.literal("pong"),
1039
1162
  id: ServiceRequestId,
1040
1163
  /** Requests running now. */
1041
1164
  busy: nonNegInt
1042
1165
  });
1043
- var ServiceShutdown = z13.strictObject({ type: z13.literal("shutdown") });
1044
- var CoreToServiceMsg = z13.discriminatedUnion("type", [ServiceHello, ServiceRequest, ServiceCancel, ServicePing, ServiceShutdown]);
1045
- var ServiceToCoreMsg = z13.discriminatedUnion("type", [ServiceWelcome, ServiceResponse, ServiceErrorMsg, ServiceProgressMsg, ServicePong]);
1166
+ var ServiceShutdown = z14.strictObject({ type: z14.literal("shutdown") });
1167
+ var CoreToServiceMsg = z14.discriminatedUnion("type", [ServiceHello, ServiceRequest, ServiceCancel, ServicePing, ServiceShutdown]);
1168
+ var ServiceToCoreMsg = z14.discriminatedUnion("type", [ServiceWelcome, ServiceResponse, ServiceErrorMsg, ServiceProgressMsg, ServicePong]);
1046
1169
 
1047
1170
  // src/schema/tools.ts
1048
- import { z as z14 } from "zod";
1049
- var ToolLevel = z14.enum(["programmatic", "protocol", "chat"]);
1050
- var ToolOutcome = z14.enum(["pass", "fail", "skip"]);
1051
- var ToolPlatform = z14.enum(["darwin", "win32", "linux"]);
1052
- var ToolTransport = z14.enum(["in_process", "localhost", "relay", "agent"]);
1053
- var ToolName = z14.string().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/);
1054
- var ToolLevelResult = z14.strictObject({
1171
+ import { z as z15 } from "zod";
1172
+ var ToolLevel = z15.enum(["programmatic", "protocol", "chat"]);
1173
+ var ToolOutcome = z15.enum(["pass", "fail", "skip"]);
1174
+ var ToolPlatform = z15.enum(["darwin", "win32", "linux"]);
1175
+ var ToolTransport = z15.enum(["in_process", "localhost", "relay", "agent"]);
1176
+ var ToolName = z15.string().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/);
1177
+ var ToolLevelResult = z15.strictObject({
1055
1178
  tool: ToolName,
1056
1179
  level: ToolLevel,
1057
1180
  platform: ToolPlatform,
1058
1181
  transport: ToolTransport,
1059
1182
  outcome: ToolOutcome,
1060
1183
  /** True when the caller sat on a different network from the device (a phone on cellular, CI). */
1061
- remote_network: z14.boolean(),
1184
+ remote_network: z15.boolean(),
1062
1185
  /** One line: what was asserted, or why it failed. Never a token, a file's contents or a path under a real home. */
1063
- detail: z14.string().max(500),
1186
+ detail: z15.string().max(500),
1064
1187
  /** The harness that produced it, e.g. `matrx-desktop test/tools/programmatic.test.ts`. */
1065
- suite: z14.string().min(1).max(200),
1188
+ suite: z15.string().min(1).max(200),
1066
1189
  /** The test case inside the suite. */
1067
- test: z14.string().min(1).max(300),
1068
- run_at_ms: z14.int().min(0)
1190
+ test: z15.string().min(1).max(300),
1191
+ run_at_ms: z15.int().min(0)
1069
1192
  });
1070
- var ToolResultsFile = z14.strictObject({
1071
- schema: z14.literal("matrx.tool-results.v1"),
1193
+ var ToolResultsFile = z15.strictObject({
1194
+ schema: z15.literal("matrx.tool-results.v1"),
1072
1195
  /** The producing repo's commit (short or full SHA). */
1073
- commit: z14.string().min(4).max(64),
1074
- results: z14.array(ToolLevelResult).max(1e4)
1196
+ commit: z15.string().min(4).max(64),
1197
+ results: z15.array(ToolLevelResult).max(1e4)
1075
1198
  });
1076
1199
 
1077
1200
  // src/schema/proc.ts
1078
- import { z as z15 } from "zod";
1079
- var ProcSort = z15.enum(["cpu", "memory", "pid", "name"]);
1080
- var ProcListParams = z15.strictObject({
1201
+ import { z as z16 } from "zod";
1202
+ var ProcSort = z16.enum(["cpu", "memory", "pid", "name"]);
1203
+ var ProcListParams = z16.strictObject({
1081
1204
  /** Case-insensitive substring of the process name or its command line. */
1082
- name: z15.string().min(1).max(128).optional(),
1205
+ name: z16.string().min(1).max(128).optional(),
1083
1206
  sort: ProcSort.default("cpu"),
1084
- limit: z15.int().min(1).max(500).default(50)
1207
+ limit: z16.int().min(1).max(500).default(50)
1085
1208
  });
1086
- var ProcInfo = z15.strictObject({
1087
- pid: z15.int().min(0),
1209
+ var ProcInfo = z16.strictObject({
1210
+ pid: z16.int().min(0),
1088
1211
  /** Parent process id; null where the OS does not report it. */
1089
- ppid: z15.int().min(0).nullable(),
1090
- name: z15.string().max(256),
1212
+ ppid: z16.int().min(0).nullable(),
1213
+ name: z16.string().max(256),
1091
1214
  /** The command line, cut to 1024 characters. */
1092
- command: z15.string().max(1024),
1215
+ command: z16.string().max(1024),
1093
1216
  /** Share of one core, as `ps` and Task Manager report it; null where the OS does not say. */
1094
- cpu_percent: z15.number().min(0).nullable(),
1217
+ cpu_percent: z16.number().min(0).nullable(),
1095
1218
  memory_bytes: nonNegInt.nullable(),
1096
- user: z15.string().max(128).nullable()
1219
+ user: z16.string().max(128).nullable()
1097
1220
  });
1098
- var ProcListResult = z15.strictObject({
1099
- processes: z15.array(ProcInfo).max(500),
1221
+ var ProcListResult = z16.strictObject({
1222
+ processes: z16.array(ProcInfo).max(500),
1100
1223
  /** Processes that matched before `limit`. */
1101
1224
  total: nonNegInt,
1102
- truncated: z15.boolean()
1225
+ truncated: z16.boolean()
1103
1226
  });
1104
- var ProcPortsParams = z15.strictObject({
1227
+ var ProcPortsParams = z16.strictObject({
1105
1228
  /** Only this port. */
1106
- port: z15.int().min(1).max(65535).optional()
1229
+ port: z16.int().min(1).max(65535).optional()
1107
1230
  });
1108
- var ProcPort = z15.strictObject({
1109
- port: z15.int().min(1).max(65535),
1110
- protocol: z15.enum(["tcp", "udp"]),
1231
+ var ProcPort = z16.strictObject({
1232
+ port: z16.int().min(1).max(65535),
1233
+ protocol: z16.enum(["tcp", "udp"]),
1111
1234
  /** The local address it listens on ("127.0.0.1", "*", "::"). */
1112
- address: z15.string().max(64),
1113
- pid: z15.int().min(0).nullable(),
1114
- process: z15.string().max(256).nullable()
1235
+ address: z16.string().max(64),
1236
+ pid: z16.int().min(0).nullable(),
1237
+ process: z16.string().max(256).nullable()
1115
1238
  });
1116
- var ProcPortsResult = z15.strictObject({ ports: z15.array(ProcPort).max(4e3) });
1117
- var ProcKillParams = z15.strictObject({
1118
- pid: z15.int().min(1),
1239
+ var ProcPortsResult = z16.strictObject({ ports: z16.array(ProcPort).max(4e3) });
1240
+ var ProcKillParams = z16.strictObject({
1241
+ pid: z16.int().min(1),
1119
1242
  /** Kill outright (SIGKILL; on Windows the same /F) instead of asking it to quit. */
1120
- force: z15.boolean().default(false)
1243
+ force: z16.boolean().default(false)
1121
1244
  });
1122
- var ProcKillResult = z15.strictObject({
1123
- pid: z15.int().min(1),
1124
- signal: z15.enum(["SIGTERM", "SIGKILL"]),
1245
+ var ProcKillResult = z16.strictObject({
1246
+ pid: z16.int().min(1),
1247
+ signal: z16.enum(["SIGTERM", "SIGKILL"]),
1125
1248
  /** True when the process was gone within 3 s. */
1126
- exited: z15.boolean()
1249
+ exited: z16.boolean()
1127
1250
  });
1128
1251
 
1129
1252
  // src/schema/clipboard.ts
1130
- import { z as z16 } from "zod";
1131
- var ClipboardReadParams = z16.strictObject({});
1132
- var ClipboardReadResult = z16.strictObject({
1253
+ import { z as z17 } from "zod";
1254
+ var ClipboardReadParams = z17.strictObject({});
1255
+ var ClipboardReadResult = z17.strictObject({
1133
1256
  /** The clipboard's text ("" when it holds none), cut to 1 MiB. */
1134
- text: z16.string().max(1048576),
1135
- truncated: z16.boolean()
1257
+ text: z17.string().max(1048576),
1258
+ truncated: z17.boolean()
1136
1259
  });
1137
- var ClipboardWriteParams = z16.strictObject({ text: z16.string().max(1048576) });
1138
- var ClipboardWriteResult = z16.strictObject({ bytes: nonNegInt });
1260
+ var ClipboardWriteParams = z17.strictObject({ text: z17.string().max(1048576) });
1261
+ var ClipboardWriteResult = z17.strictObject({ bytes: nonNegInt });
1139
1262
 
1140
1263
  // src/schema/system.ts
1141
- import { z as z17 } from "zod";
1142
- var SystemOpenUrlParams = z17.strictObject({
1264
+ import { z as z18 } from "zod";
1265
+ var SystemOpenUrlParams = z18.strictObject({
1143
1266
  /** http, https or mailto; opened in the person's default app for it. */
1144
- url: z17.string().min(1).max(4096)
1267
+ url: z18.string().min(1).max(4096)
1145
1268
  });
1146
- var SystemOpenUrlResult = z17.strictObject({ url: z17.string().max(4096) });
1147
- var SystemOpenPathParams = z17.strictObject({
1269
+ var SystemOpenUrlResult = z18.strictObject({ url: z18.string().max(4096) });
1270
+ var SystemOpenPathParams = z18.strictObject({
1148
1271
  path: AbsPath,
1149
1272
  /** Show it in the file manager (Finder, Explorer) instead of opening it. */
1150
- reveal: z17.boolean().default(false)
1273
+ reveal: z18.boolean().default(false)
1151
1274
  });
1152
- var SystemOpenPathResult = z17.strictObject({ path: AbsPath, revealed: z17.boolean() });
1153
- var SystemNotifyParams = z17.strictObject({
1154
- title: z17.string().min(1).max(128),
1155
- body: z17.string().max(1024).default("")
1275
+ var SystemOpenPathResult = z18.strictObject({ path: AbsPath, revealed: z18.boolean() });
1276
+ var SystemNotifyParams = z18.strictObject({
1277
+ title: z18.string().min(1).max(128),
1278
+ body: z18.string().max(1024).default("")
1156
1279
  });
1157
- var SystemNotifyResult = z17.strictObject({
1280
+ var SystemNotifyResult = z18.strictObject({
1158
1281
  /** False when this computer has no notification service to show it (a bare Linux box). */
1159
- shown: z17.boolean()
1282
+ shown: z18.boolean()
1160
1283
  });
1161
1284
 
1162
1285
  // src/schema/screen.ts
1163
- import { z as z18 } from "zod";
1164
- var ScreenDisplay = z18.strictObject({
1286
+ import { z as z19 } from "zod";
1287
+ var ScreenDisplay = z19.strictObject({
1165
1288
  /** The OS's display id; pass it to screen.capture. */
1166
1289
  id: nonNegInt,
1167
- name: z18.string().max(128),
1290
+ name: z19.string().max(128),
1168
1291
  /** Position and size in the OS's logical points (x and y may be negative left of or above the main display). */
1169
- x: z18.int(),
1170
- y: z18.int(),
1171
- width: z18.int().min(1),
1172
- height: z18.int().min(1),
1292
+ x: z19.int(),
1293
+ y: z19.int(),
1294
+ width: z19.int().min(1),
1295
+ height: z19.int().min(1),
1173
1296
  /** Pixels per point (2 on a Retina display). */
1174
- scale: z18.number().min(0.1).max(8),
1175
- primary: z18.boolean()
1297
+ scale: z19.number().min(0.1).max(8),
1298
+ primary: z19.boolean()
1176
1299
  });
1177
- var ScreenListParams = z18.strictObject({});
1178
- var ScreenListResult = z18.strictObject({ displays: z18.array(ScreenDisplay).max(32) });
1179
- var ScreenCaptureParams = z18.strictObject({
1300
+ var ScreenListParams = z19.strictObject({});
1301
+ var ScreenListResult = z19.strictObject({ displays: z19.array(ScreenDisplay).max(32) });
1302
+ var ScreenCaptureParams = z19.strictObject({
1180
1303
  /** The display (from screen.list); the primary display when absent. */
1181
1304
  display_id: nonNegInt.optional(),
1182
- format: z18.enum(["jpeg", "png"]).default("jpeg"),
1305
+ format: z19.enum(["jpeg", "png"]).default("jpeg"),
1183
1306
  /** Scale the picture down to at most this width in pixels (kept when already smaller). */
1184
- max_width: z18.int().min(160).max(7680).default(1600)
1307
+ max_width: z19.int().min(160).max(7680).default(1600)
1185
1308
  });
1186
- var ScreenCaptureResult = z18.strictObject({
1309
+ var ScreenCaptureResult = z19.strictObject({
1187
1310
  display_id: nonNegInt,
1188
- mime_type: z18.enum(["image/jpeg", "image/png"]),
1189
- width: z18.int().min(1),
1190
- height: z18.int().min(1),
1311
+ mime_type: z19.enum(["image/jpeg", "image/png"]),
1312
+ width: z19.int().min(1),
1313
+ height: z19.int().min(1),
1191
1314
  /** The display's full resolution in pixels, before scaling. */
1192
- source_width: z18.int().min(1),
1193
- source_height: z18.int().min(1),
1315
+ source_width: z19.int().min(1),
1316
+ source_height: z19.int().min(1),
1194
1317
  /** The image, base64 (at most 6 MiB of text). */
1195
- data_base64: z18.string().max(6291456)
1318
+ data_base64: z19.string().max(6291456)
1196
1319
  });
1197
1320
 
1198
1321
  // src/schema/window.ts
1199
- import { z as z19 } from "zod";
1200
- var WindowInfo = z19.strictObject({
1322
+ import { z as z20 } from "zod";
1323
+ var WindowInfo = z20.strictObject({
1201
1324
  /** The OS's window handle (macOS window number, Windows HWND, X11 window id). */
1202
1325
  id: nonNegInt,
1203
- title: z19.string().max(512),
1326
+ title: z20.string().max(512),
1204
1327
  /** Position and size in logical points. */
1205
- x: z19.int(),
1206
- y: z19.int(),
1207
- width: z19.int().min(0),
1208
- height: z19.int().min(0),
1328
+ x: z20.int(),
1329
+ y: z20.int(),
1330
+ width: z20.int().min(0),
1331
+ height: z20.int().min(0),
1209
1332
  /**
1210
1333
  * The application that owns the window, by the name the OS shows people; absent when the OS does
1211
1334
  * not say. Optional (never null, the schema rule) because it was added in protocol 1.7: an older
1212
1335
  * app's answer has no such field (FIELDS_SINCE).
1213
1336
  */
1214
- app: z19.string().max(256).optional(),
1337
+ app: z20.string().max(256).optional(),
1215
1338
  /** The owning process id; absent when the OS does not say. Added in protocol 1.7. */
1216
- pid: z19.int().min(0).optional()
1339
+ pid: z20.int().min(0).optional()
1217
1340
  });
1218
- var WindowListParams = z19.strictObject({
1341
+ var WindowListParams = z20.strictObject({
1219
1342
  /** Case-insensitive substring of the window title. */
1220
- title: z19.string().min(1).max(256).optional(),
1221
- limit: z19.int().min(1).max(500).default(100)
1343
+ title: z20.string().min(1).max(256).optional(),
1344
+ limit: z20.int().min(1).max(500).default(100)
1222
1345
  });
1223
- var WindowListResult = z19.strictObject({
1224
- windows: z19.array(WindowInfo).max(500),
1346
+ var WindowListResult = z20.strictObject({
1347
+ windows: z20.array(WindowInfo).max(500),
1225
1348
  total: nonNegInt,
1226
- truncated: z19.boolean()
1349
+ truncated: z20.boolean()
1227
1350
  });
1228
- var WindowFocusParams = z19.strictObject({ id: nonNegInt });
1229
- var WindowFocusResult = z19.strictObject({ window: WindowInfo });
1230
- var WindowMoveParams = z19.strictObject({
1351
+ var WindowFocusParams = z20.strictObject({ id: nonNegInt });
1352
+ var WindowFocusResult = z20.strictObject({ window: WindowInfo });
1353
+ var WindowMoveParams = z20.strictObject({
1231
1354
  id: nonNegInt,
1232
1355
  /** New top-left corner; unchanged when absent. */
1233
- x: z19.int().optional(),
1234
- y: z19.int().optional(),
1356
+ x: z20.int().optional(),
1357
+ y: z20.int().optional(),
1235
1358
  /** New size; unchanged when absent. */
1236
- width: z19.int().min(50).max(16384).optional(),
1237
- height: z19.int().min(50).max(16384).optional()
1359
+ width: z20.int().min(50).max(16384).optional(),
1360
+ height: z20.int().min(50).max(16384).optional()
1238
1361
  });
1239
- var WindowMoveResult = z19.strictObject({ window: WindowInfo });
1240
- var WindowMinimizeParams = z19.strictObject({ id: nonNegInt });
1241
- var WindowMinimizeResult = z19.strictObject({ id: nonNegInt });
1362
+ var WindowMoveResult = z20.strictObject({ window: WindowInfo });
1363
+ var WindowMinimizeParams = z20.strictObject({ id: nonNegInt });
1364
+ var WindowMinimizeResult = z20.strictObject({ id: nonNegInt });
1242
1365
 
1243
1366
  // src/schema/input.ts
1244
- import { z as z20 } from "zod";
1245
- var InputKey = z20.enum([
1367
+ import { z as z21 } from "zod";
1368
+ var InputKey = z21.enum([
1246
1369
  "cmd",
1247
1370
  "ctrl",
1248
1371
  "alt",
@@ -1322,203 +1445,203 @@ var InputKey = z20.enum([
1322
1445
  "backslash",
1323
1446
  "grave"
1324
1447
  ]);
1325
- var InputTypeTextParams = z20.strictObject({ text: z20.string().min(1).max(1e4) });
1326
- var InputTypeTextResult = z20.strictObject({ characters: z20.int().min(1) });
1327
- var InputHotkeyParams = z20.strictObject({
1448
+ var InputTypeTextParams = z21.strictObject({ text: z21.string().min(1).max(1e4) });
1449
+ var InputTypeTextResult = z21.strictObject({ characters: z21.int().min(1) });
1450
+ var InputHotkeyParams = z21.strictObject({
1328
1451
  /** Pressed together in order and released in reverse: ["cmd", "shift", "t"]. */
1329
- keys: z20.array(InputKey).min(1).max(6)
1452
+ keys: z21.array(InputKey).min(1).max(6)
1330
1453
  });
1331
- var InputHotkeyResult = z20.strictObject({ keys: z20.array(InputKey) });
1332
- var InputPoint = z20.strictObject({ x: z20.int(), y: z20.int() });
1333
- var InputMouseMoveParams = z20.strictObject({
1454
+ var InputHotkeyResult = z21.strictObject({ keys: z21.array(InputKey) });
1455
+ var InputPoint = z21.strictObject({ x: z21.int(), y: z21.int() });
1456
+ var InputMouseMoveParams = z21.strictObject({
1334
1457
  /** Screen position in logical points (the coordinates screen.list and window.list report). */
1335
- x: z20.int(),
1336
- y: z20.int()
1458
+ x: z21.int(),
1459
+ y: z21.int()
1337
1460
  });
1338
- var InputMouseMoveResult = z20.strictObject({
1461
+ var InputMouseMoveResult = z21.strictObject({
1339
1462
  /** Where the pointer is now, read back from the OS. */
1340
1463
  position: InputPoint
1341
1464
  });
1342
- var InputMouseClickParams = z20.strictObject({
1465
+ var InputMouseClickParams = z21.strictObject({
1343
1466
  /** Move here first; clicks where the pointer is when absent. */
1344
- x: z20.int().optional(),
1345
- y: z20.int().optional(),
1346
- button: z20.enum(["left", "right", "middle"]).default("left"),
1347
- double: z20.boolean().default(false)
1467
+ x: z21.int().optional(),
1468
+ y: z21.int().optional(),
1469
+ button: z21.enum(["left", "right", "middle"]).default("left"),
1470
+ double: z21.boolean().default(false)
1348
1471
  });
1349
- var InputMouseClickResult = z20.strictObject({
1472
+ var InputMouseClickResult = z21.strictObject({
1350
1473
  position: InputPoint,
1351
- button: z20.enum(["left", "right", "middle"]),
1352
- double: z20.boolean()
1474
+ button: z21.enum(["left", "right", "middle"]),
1475
+ double: z21.boolean()
1353
1476
  });
1354
1477
 
1355
1478
  // src/schema/power.ts
1356
- import { z as z21 } from "zod";
1357
- var PowerStatusParams = z21.strictObject({});
1358
- var PowerStatusResult = z21.strictObject({
1359
- has_battery: z21.boolean(),
1479
+ import { z as z22 } from "zod";
1480
+ var PowerStatusParams = z22.strictObject({});
1481
+ var PowerStatusResult = z22.strictObject({
1482
+ has_battery: z22.boolean(),
1360
1483
  /** 0–100; null without a battery. */
1361
- percent: z21.number().min(0).max(100).nullable(),
1362
- charging: z21.boolean().nullable(),
1484
+ percent: z22.number().min(0).max(100).nullable(),
1485
+ charging: z22.boolean().nullable(),
1363
1486
  /** On wall power; null where the OS does not say. */
1364
- plugged_in: z21.boolean().nullable(),
1487
+ plugged_in: z22.boolean().nullable(),
1365
1488
  /** Minutes of battery left; null when charging, unknown or without a battery. */
1366
1489
  minutes_left: nonNegInt.nullable(),
1367
1490
  /** Matrx 2 is keeping the computer awake (power.prevent_sleep) until this time; null when it is not. */
1368
1491
  awake_until_ms: epochMs.nullable()
1369
1492
  });
1370
- var PowerPreventSleepParams = z21.strictObject({
1493
+ var PowerPreventSleepParams = z22.strictObject({
1371
1494
  /** Keep the computer awake this long; 0 lets it sleep again now. */
1372
- seconds: z21.int().min(0).max(86400),
1495
+ seconds: z22.int().min(0).max(86400),
1373
1496
  /** Shown where the OS lists what keeps it awake. */
1374
- reason: z21.string().min(1).max(128).default("Matrx 2 is working")
1497
+ reason: z22.string().min(1).max(128).default("Matrx 2 is working")
1375
1498
  });
1376
- var PowerPreventSleepResult = z21.strictObject({
1499
+ var PowerPreventSleepResult = z22.strictObject({
1377
1500
  /** When it may sleep again; null after seconds 0. */
1378
1501
  awake_until_ms: epochMs.nullable()
1379
1502
  });
1380
1503
 
1381
1504
  // src/schema/resources.ts
1382
- import { z as z22 } from "zod";
1383
- var ResourcesDisk = z22.strictObject({
1505
+ import { z as z23 } from "zod";
1506
+ var ResourcesDisk = z23.strictObject({
1384
1507
  /** Where it is mounted ("/", "C:"). */
1385
- mount: z22.string().max(512),
1508
+ mount: z23.string().max(512),
1386
1509
  /** The file system ("apfs", "NTFS", "ext4"). */
1387
- fs: z22.string().max(64),
1510
+ fs: z23.string().max(64),
1388
1511
  size_bytes: nonNegInt,
1389
1512
  used_bytes: nonNegInt,
1390
1513
  available_bytes: nonNegInt
1391
1514
  });
1392
- var ResourcesSnapshotParams = z22.strictObject({});
1393
- var ResourcesSnapshotResult = z22.strictObject({
1394
- cpu: z22.strictObject({
1515
+ var ResourcesSnapshotParams = z23.strictObject({});
1516
+ var ResourcesSnapshotResult = z23.strictObject({
1517
+ cpu: z23.strictObject({
1395
1518
  /** Busy share of all cores, 0–100, measured now. */
1396
- percent: z22.number().min(0).max(100),
1397
- cores: z22.int().min(1),
1519
+ percent: z23.number().min(0).max(100),
1520
+ cores: z23.int().min(1),
1398
1521
  /** 1, 5 and 15 minute load averages; null on Windows. */
1399
- load: z22.array(z22.number().min(0)).length(3).nullable()
1522
+ load: z23.array(z23.number().min(0)).length(3).nullable()
1400
1523
  }),
1401
- memory: z22.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
1402
- swap: z22.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
1403
- disks: z22.array(ResourcesDisk).max(64),
1524
+ memory: z23.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
1525
+ swap: z23.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
1526
+ disks: z23.array(ResourcesDisk).max(64),
1404
1527
  uptime_seconds: nonNegInt
1405
1528
  });
1406
1529
 
1407
1530
  // src/schema/audio.ts
1408
- import { z as z23 } from "zod";
1409
- var AudioDevice = z23.strictObject({
1531
+ import { z as z24 } from "zod";
1532
+ var AudioDevice = z24.strictObject({
1410
1533
  /** The OS's name for it, as audio.record takes it. */
1411
- id: z23.string().min(1).max(256),
1412
- name: z23.string().max(256),
1413
- default: z23.boolean()
1534
+ id: z24.string().min(1).max(256),
1535
+ name: z24.string().max(256),
1536
+ default: z24.boolean()
1414
1537
  });
1415
- var AudioDevicesParams = z23.strictObject({});
1416
- var AudioDevicesResult = z23.strictObject({
1417
- inputs: z23.array(AudioDevice).max(64),
1418
- outputs: z23.array(AudioDevice).max(64)
1538
+ var AudioDevicesParams = z24.strictObject({});
1539
+ var AudioDevicesResult = z24.strictObject({
1540
+ inputs: z24.array(AudioDevice).max(64),
1541
+ outputs: z24.array(AudioDevice).max(64)
1419
1542
  });
1420
- var AudioRecordParams = z23.strictObject({
1421
- seconds: z23.number().min(0.5).max(600),
1543
+ var AudioRecordParams = z24.strictObject({
1544
+ seconds: z24.number().min(0.5).max(600),
1422
1545
  /** The microphone (from audio.devices); the default input when absent. */
1423
- device_id: z23.string().min(1).max(256).optional(),
1546
+ device_id: z24.string().min(1).max(256).optional(),
1424
1547
  /** Where the WAV file goes; a new file in the temp folder when absent. */
1425
1548
  path: AbsPath.optional()
1426
1549
  });
1427
- var AudioRecordResult = z23.strictObject({
1550
+ var AudioRecordResult = z24.strictObject({
1428
1551
  path: AbsPath,
1429
- seconds: z23.number().min(0),
1552
+ seconds: z24.number().min(0),
1430
1553
  bytes: nonNegInt,
1431
1554
  /** Loudest sample, 0–1: 0 means the device gave silence. */
1432
- peak: z23.number().min(0).max(1)
1555
+ peak: z24.number().min(0).max(1)
1433
1556
  });
1434
- var AudioPlayParams = z23.strictObject({ path: AbsPath });
1435
- var AudioPlayResult = z23.strictObject({ path: AbsPath, seconds: z23.number().min(0) });
1557
+ var AudioPlayParams = z24.strictObject({ path: AbsPath });
1558
+ var AudioPlayResult = z24.strictObject({ path: AbsPath, seconds: z24.number().min(0) });
1436
1559
 
1437
1560
  // src/schema/fs-watch.ts
1438
- import { z as z24 } from "zod";
1439
- var FsWatchId = z24.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
1440
- var FsWatchStartParams = z24.strictObject({
1561
+ import { z as z25 } from "zod";
1562
+ var FsWatchId = z25.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
1563
+ var FsWatchStartParams = z25.strictObject({
1441
1564
  path: AbsPath,
1442
- recursive: z24.boolean().default(true),
1565
+ recursive: z25.boolean().default(true),
1443
1566
  /** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
1444
- ignore: z24.array(z24.string().max(256)).max(64).default([])
1567
+ ignore: z25.array(z25.string().max(256)).max(64).default([])
1445
1568
  });
1446
- var FsWatchStartResult = z24.strictObject({
1569
+ var FsWatchStartResult = z25.strictObject({
1447
1570
  watch_id: FsWatchId,
1448
1571
  path: AbsPath,
1449
1572
  /** The watch ends by itself if nobody reads it for 30 minutes. */
1450
1573
  expires_at_ms: epochMs
1451
1574
  });
1452
- var FsWatchEventsParams = z24.strictObject({
1575
+ var FsWatchEventsParams = z25.strictObject({
1453
1576
  watch_id: FsWatchId,
1454
1577
  /** Wait up to this long for a first change when none is waiting (0 answers at once). */
1455
- wait_ms: z24.int().min(0).max(25e3).default(0)
1578
+ wait_ms: z25.int().min(0).max(25e3).default(0)
1456
1579
  });
1457
- var FsWatchEventsResult = z24.strictObject({
1580
+ var FsWatchEventsResult = z25.strictObject({
1458
1581
  /** What changed since the last read, oldest first; re-checked against the disk when read. */
1459
- changes: z24.array(FsChange).max(1e3),
1582
+ changes: z25.array(FsChange).max(1e3),
1460
1583
  /** Changes were dropped (more than 1000 waited): list the folder again. */
1461
- overflow: z24.boolean(),
1584
+ overflow: z25.boolean(),
1462
1585
  expires_at_ms: epochMs
1463
1586
  });
1464
- var FsWatchStopParams = z24.strictObject({ watch_id: FsWatchId });
1465
- var FsWatchStopResult = z24.strictObject({ watch_id: FsWatchId });
1587
+ var FsWatchStopParams = z25.strictObject({ watch_id: FsWatchId });
1588
+ var FsWatchStopResult = z25.strictObject({ watch_id: FsWatchId });
1466
1589
 
1467
1590
  // src/schema/exec-job.ts
1468
- import { z as z25 } from "zod";
1469
- var ExecJobId = z25.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
1470
- var ExecJobStartParams = z25.strictObject({
1471
- command: z25.string().min(1).max(131072),
1591
+ import { z as z26 } from "zod";
1592
+ var ExecJobId = z26.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
1593
+ var ExecJobStartParams = z26.strictObject({
1594
+ command: z26.string().min(1).max(131072),
1472
1595
  /** The folder it runs in; the home folder when absent. */
1473
1596
  cwd: AbsPath.optional(),
1474
- env: z25.record(z25.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), z25.string().max(32768)).optional()
1597
+ env: z26.record(z26.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), z26.string().max(32768)).optional()
1475
1598
  });
1476
- var ExecJobStartResult = z25.strictObject({ job_id: ExecJobId, pid: z25.int().min(1), cwd: AbsPath });
1477
- var ExecJobOutputParams = z25.strictObject({
1599
+ var ExecJobStartResult = z26.strictObject({ job_id: ExecJobId, pid: z26.int().min(1), cwd: AbsPath });
1600
+ var ExecJobOutputParams = z26.strictObject({
1478
1601
  job_id: ExecJobId,
1479
1602
  /** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
1480
1603
  offset: nonNegInt.default(0),
1481
1604
  /** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
1482
- wait_ms: z25.int().min(0).max(25e3).default(0),
1483
- max_bytes: z25.int().min(1024).max(1048576).default(65536)
1605
+ wait_ms: z26.int().min(0).max(25e3).default(0),
1606
+ max_bytes: z26.int().min(1024).max(1048576).default(65536)
1484
1607
  });
1485
- var ExecJobOutputResult = z25.strictObject({
1608
+ var ExecJobOutputResult = z26.strictObject({
1486
1609
  /** stdout and stderr interleaved as they arrived (UTF-8). */
1487
- output: z25.string(),
1610
+ output: z26.string(),
1488
1611
  next_offset: nonNegInt,
1489
1612
  /** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
1490
1613
  dropped_bytes: nonNegInt,
1491
- running: z25.boolean(),
1492
- exit_code: z25.int().nullable()
1614
+ running: z26.boolean(),
1615
+ exit_code: z26.int().nullable()
1493
1616
  });
1494
- var ExecJobStopParams = z25.strictObject({
1617
+ var ExecJobStopParams = z26.strictObject({
1495
1618
  job_id: ExecJobId,
1496
1619
  /** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
1497
- force: z25.boolean().default(false)
1620
+ force: z26.boolean().default(false)
1498
1621
  });
1499
- var ExecJobStopResult = z25.strictObject({ job_id: ExecJobId, exited: z25.boolean(), exit_code: z25.int().nullable() });
1500
- var ExecJobInfo = z25.strictObject({
1622
+ var ExecJobStopResult = z26.strictObject({ job_id: ExecJobId, exited: z26.boolean(), exit_code: z26.int().nullable() });
1623
+ var ExecJobInfo = z26.strictObject({
1501
1624
  job_id: ExecJobId,
1502
- command: z25.string().max(1024),
1503
- pid: z25.int().min(1),
1625
+ command: z26.string().max(1024),
1626
+ pid: z26.int().min(1),
1504
1627
  cwd: AbsPath,
1505
- running: z25.boolean(),
1506
- exit_code: z25.int().nullable(),
1628
+ running: z26.boolean(),
1629
+ exit_code: z26.int().nullable(),
1507
1630
  started_at_ms: epochMs,
1508
1631
  output_bytes: nonNegInt
1509
1632
  });
1510
- var ExecJobListParams = z25.strictObject({});
1511
- var ExecJobListResult = z25.strictObject({ jobs: z25.array(ExecJobInfo).max(64) });
1633
+ var ExecJobListParams = z26.strictObject({});
1634
+ var ExecJobListResult = z26.strictObject({ jobs: z26.array(ExecJobInfo).max(64) });
1512
1635
 
1513
1636
  // src/schema/coding.ts
1514
- import { z as z26 } from "zod";
1515
- var CodingServiceCredentials = z26.strictObject({
1516
- access_token: z26.string().min(16).max(16384),
1517
- user_id: z26.string().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/),
1637
+ import { z as z27 } from "zod";
1638
+ var CodingServiceCredentials = z27.strictObject({
1639
+ access_token: z27.string().min(16).max(16384),
1640
+ user_id: z27.string().regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/),
1518
1641
  /** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
1519
- server_url: z26.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
1642
+ server_url: z27.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
1520
1643
  });
1521
- var CodingHistoryBlocked = z26.enum([
1644
+ var CodingHistoryBlocked = z27.enum([
1522
1645
  "signed_out",
1523
1646
  "offline",
1524
1647
  "organization_required",
@@ -1526,11 +1649,11 @@ var CodingHistoryBlocked = z26.enum([
1526
1649
  "cloud_list_unavailable",
1527
1650
  "history_too_large"
1528
1651
  ]);
1529
- var CodingHistoryFailure = z26.strictObject({
1530
- session_id: z26.string().max(64),
1531
- reason: z26.string().max(300)
1652
+ var CodingHistoryFailure = z27.strictObject({
1653
+ session_id: z27.string().max(64),
1654
+ reason: z27.string().max(300)
1532
1655
  });
1533
- var CodingHistoryRun = z26.strictObject({
1656
+ var CodingHistoryRun = z27.strictObject({
1534
1657
  /** Claude Code sessions found on this computer. */
1535
1658
  local_sessions: nonNegInt,
1536
1659
  /** Of those, already complete in AI Matrx. */
@@ -1545,39 +1668,39 @@ var CodingHistoryRun = z26.strictObject({
1545
1668
  /** Changed while being read; a later run takes them. */
1546
1669
  changed: nonNegInt,
1547
1670
  failed: nonNegInt,
1548
- failures: z26.array(CodingHistoryFailure).max(20),
1671
+ failures: z27.array(CodingHistoryFailure).max(20),
1549
1672
  /** Candidates not reached yet. */
1550
1673
  remaining: nonNegInt,
1551
1674
  /** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
1552
- summary: z26.string().max(400)
1675
+ summary: z27.string().max(400)
1553
1676
  });
1554
- var CodingHistoryStep = z26.strictObject({
1677
+ var CodingHistoryStep = z27.strictObject({
1555
1678
  /** Null when the run could not start (blocked before a plan existed). */
1556
- plan_id: z26.string().regex(/^[0-9a-f]{32}$/).nullable(),
1557
- finished: z26.boolean(),
1679
+ plan_id: z27.string().regex(/^[0-9a-f]{32}$/).nullable(),
1680
+ finished: z27.boolean(),
1558
1681
  blocked: CodingHistoryBlocked.nullable(),
1559
1682
  run: CodingHistoryRun
1560
1683
  });
1561
- var CodingPlanMissingParams = z26.strictObject({ credentials: CodingServiceCredentials.nullable() });
1562
- var CodingImportNextParams = z26.strictObject({
1563
- plan_id: z26.string().regex(/^[0-9a-f]{32}$/),
1684
+ var CodingPlanMissingParams = z27.strictObject({ credentials: CodingServiceCredentials.nullable() });
1685
+ var CodingImportNextParams = z27.strictObject({
1686
+ plan_id: z27.string().regex(/^[0-9a-f]{32}$/),
1564
1687
  credentials: CodingServiceCredentials.nullable()
1565
1688
  });
1566
- var CodingServiceProgress = z26.strictObject({
1567
- phase: z26.enum(["checking", "importing"]),
1689
+ var CodingServiceProgress = z27.strictObject({
1690
+ phase: z27.enum(["checking", "importing"]),
1568
1691
  done: nonNegInt,
1569
1692
  total: nonNegInt
1570
1693
  });
1571
- var CodingHistoryImportMissingParams = z26.strictObject({});
1572
- var CodingHistoryImportMissingResult = z26.strictObject({
1573
- state: z26.enum(["done", "blocked", "cancelled"]),
1694
+ var CodingHistoryImportMissingParams = z27.strictObject({});
1695
+ var CodingHistoryImportMissingResult = z27.strictObject({
1696
+ state: z27.enum(["done", "blocked", "cancelled"]),
1574
1697
  blocked: CodingHistoryBlocked.nullable(),
1575
1698
  run: CodingHistoryRun,
1576
1699
  elapsed_ms: nonNegInt
1577
1700
  });
1578
- var CodingHistoryProgressEvent = z26.strictObject({
1701
+ var CodingHistoryProgressEvent = z27.strictObject({
1579
1702
  request_id: RequestId,
1580
- phase: z26.enum(["checking", "importing"]),
1703
+ phase: z27.enum(["checking", "importing"]),
1581
1704
  /** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
1582
1705
  done: nonNegInt,
1583
1706
  total: nonNegInt,
@@ -1626,7 +1749,22 @@ var OPS = {
1626
1749
  "apps.chats.watch": { params: AppsChatsWatchParams, result: AppsChatsWatchResult, kind: "resource", since: "1.8", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "RESOURCE_BUSY", "INTERNAL"] },
1627
1750
  "apps.chats.star": { params: AppsChatsStarParams, result: AppsChatsStarResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1628
1751
  "apps.projects.file": { params: AppsProjectsFileParams, result: AppsProjectsFileResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1752
+ "apps.chats.place": { params: AppsChatsPlaceParams, result: AppsChatsPlaceResult, kind: "unary", since: "1.9", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1753
+ "apps.projects.file_many": { params: AppsProjectsFileManyParams, result: AppsProjectsFileManyResult, kind: "unary", since: "1.9", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1754
+ "apps.projects.update": { params: AppsProjectsUpdateParams, result: AppsProjectsUpdateResult, kind: "unary", since: "1.9", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1755
+ "apps.projects.copy": { params: AppsProjectsCopyParams, result: AppsProjectsCopyResult, kind: "unary", since: "1.9", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1629
1756
  "apps.projects.unfile": { params: AppsProjectsUnfileParams, result: AppsProjectsUnfileResult, kind: "unary", since: "1.8", errors: ["NOT_FOUND", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1757
+ // 1.10: the app's windows and accounts (usage by vote, weekly resets, window actions), project move/create, Refresh pins.
1758
+ "apps.windows.list": { params: AppsWindowsListParams, result: AppsWindowsListResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1759
+ "apps.windows.open": { params: AppsWindowsOpenParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1760
+ "apps.windows.reload": { params: AppsWindowsReloadParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "CONFLICT", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1761
+ "apps.windows.restart": { params: AppsWindowsRestartParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "CONFLICT", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1762
+ "apps.windows.refresh_usage": { params: AppsWindowsRefreshUsageParams, result: AppsWindowActionResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1763
+ "apps.accounts.usage": { params: AppsAccountsUsageParams, result: AppsAccountsUsageResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1764
+ "apps.accounts.resets": { params: AppsAccountsResetsParams, result: AppsAccountsResetsResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1765
+ "apps.projects.move": { params: AppsProjectsMoveParams, result: AppsProjectsMoveResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1766
+ "apps.projects.create": { params: AppsProjectsCreateParams, result: AppsProjectsCreateResult, kind: "unary", since: "1.10", errors: ["INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1767
+ "apps.projects.import_pins": { params: AppsProjectsImportPinsParams, result: AppsProjectsImportPinsResult, kind: "unary", since: "1.10", errors: ["CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1630
1768
  "proc.list": { params: ProcListParams, result: ProcListResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1631
1769
  "proc.ports": { params: ProcPortsParams, result: ProcPortsResult, kind: "unary", since: "1.3", errors: ["INVALID_PARAMS", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1632
1770
  "proc.kill": { params: ProcKillParams, result: ProcKillResult, kind: "unary", since: "1.3", errors: ["NOT_FOUND", "AUTH_FORBIDDEN", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "INTERNAL"] },
@@ -1664,6 +1802,7 @@ var OPS = {
1664
1802
  var EVENTS = {
1665
1803
  "fs.changed": FsChangedEvent,
1666
1804
  "apps.chats.changed": AppsChatsChangedEvent,
1805
+ "apps.chats.watch_state": AppsChatsWatchStateEvent,
1667
1806
  "exec.exited": ExecExitedEvent,
1668
1807
  "exec.title": ExecTitleEvent,
1669
1808
  "exec.cwd": ExecCwdEvent,
@@ -1949,7 +2088,37 @@ var NAMED_SCHEMAS = {
1949
2088
  AppsProjectsFileParams,
1950
2089
  AppsProjectsFileResult,
1951
2090
  AppsProjectsUnfileParams,
1952
- AppsProjectsUnfileResult
2091
+ AppsProjectsUnfileResult,
2092
+ AppsChatsWatchStateEvent,
2093
+ AppsChatsPlaceParams,
2094
+ AppsChatsPlaceResult,
2095
+ AppsProjectsFileManyParams,
2096
+ AppsProjectsFileManyResult,
2097
+ AppsProjectsUpdateParams,
2098
+ AppsProjectsUpdateResult,
2099
+ AppsProjectsCopyParams,
2100
+ AppsProjectsCopyResult,
2101
+ ChatFamily,
2102
+ AppWindowInfo,
2103
+ AccountUsage,
2104
+ AccountReset,
2105
+ AppsWindowsListParams,
2106
+ AppsWindowsListResult,
2107
+ AppsAccountsUsageParams,
2108
+ AppsAccountsUsageResult,
2109
+ AppsAccountsResetsParams,
2110
+ AppsAccountsResetsResult,
2111
+ AppsWindowActionResult,
2112
+ AppsWindowsOpenParams,
2113
+ AppsWindowsReloadParams,
2114
+ AppsWindowsRestartParams,
2115
+ AppsWindowsRefreshUsageParams,
2116
+ AppsProjectsMoveParams,
2117
+ AppsProjectsMoveResult,
2118
+ AppsProjectsCreateParams,
2119
+ AppsProjectsCreateResult,
2120
+ AppsProjectsImportPinsParams,
2121
+ AppsProjectsImportPinsResult
1953
2122
  };
1954
2123
 
1955
2124
  // src/versioning.ts
@@ -1958,7 +2127,8 @@ var FIELDS_SINCE = {
1958
2127
  "ProtocolErrorBody.data": { edits_failed: "1.1" },
1959
2128
  "RelayCallResponse|0": { protocol_version: "1.1" },
1960
2129
  "RelayCallResponse|1": { protocol_version: "1.1" },
1961
- WindowInfo: { app: "1.7", pid: "1.7" }
2130
+ WindowInfo: { app: "1.7", pid: "1.7" },
2131
+ AppsChatsListResult: { updating: "1.9", live: "1.9", families: "1.10" }
1962
2132
  };
1963
2133
  var NULL_SINCE = {
1964
2134
  "RelayDeviceStatusEvent.since_ms": { since: "1.1", olderPeersGet: 0 }
@@ -2011,7 +2181,10 @@ function strip(value, fields, version) {
2011
2181
  }
2012
2182
  return out ?? value;
2013
2183
  }
2014
- var RESULT_PATH = /* @__PURE__ */ new Map([["fs.patch", "FsPatchResult"]]);
2184
+ var RESULT_PATH = /* @__PURE__ */ new Map([
2185
+ ["fs.patch", "FsPatchResult"],
2186
+ ["apps.chats.list", "AppsChatsListResult"]
2187
+ ]);
2015
2188
  var WINDOW_RESULTS = /* @__PURE__ */ new Map([
2016
2189
  ["window.list", "windows"],
2017
2190
  ["window.focus", "window"],
@@ -2052,7 +2225,7 @@ function forPeer(op, part, value, version) {
2052
2225
  var VERSIONED_RESULT_OPS = [...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys()];
2053
2226
 
2054
2227
  // src/contract.ts
2055
- var CONTRACT_SHA256 = "7a5b3712fe3200b8f1051edb1cc9702e696a8d24b2033f9ea73e1a422f52dd33";
2228
+ var CONTRACT_SHA256 = "f1891d7e5c64c11112bb7baf5db06bd293daccff85a7f5adcdf760b2bbb92bda";
2056
2229
 
2057
2230
  // src/close-policy.ts
2058
2231
  var CLOSE_RULES = {
@@ -2394,6 +2567,8 @@ function renderToolStatusMarkdown(status) {
2394
2567
  }
2395
2568
  export {
2396
2569
  AbsPath,
2570
+ AccountReset,
2571
+ AccountUsage,
2397
2572
  AppFeatureStatus,
2398
2573
  AppInfo,
2399
2574
  AppKey,
@@ -2402,13 +2577,21 @@ export {
2402
2577
  AppProfileLocator,
2403
2578
  AppSupport,
2404
2579
  AppUsageReading,
2580
+ AppWindowInfo,
2581
+ AppsAccountsResetsParams,
2582
+ AppsAccountsResetsResult,
2583
+ AppsAccountsUsageParams,
2584
+ AppsAccountsUsageResult,
2405
2585
  AppsChatsChangedEvent,
2406
2586
  AppsChatsListParams,
2407
2587
  AppsChatsListResult,
2588
+ AppsChatsPlaceParams,
2589
+ AppsChatsPlaceResult,
2408
2590
  AppsChatsStarParams,
2409
2591
  AppsChatsStarResult,
2410
2592
  AppsChatsWatchParams,
2411
2593
  AppsChatsWatchResult,
2594
+ AppsChatsWatchStateEvent,
2412
2595
  AppsListParams,
2413
2596
  AppsListResult,
2414
2597
  AppsOpenParams,
@@ -2419,10 +2602,29 @@ export {
2419
2602
  AppsProfilesRemoveResult,
2420
2603
  AppsProfilesSaveParams,
2421
2604
  AppsProfilesSaveResult,
2605
+ AppsProjectsCopyParams,
2606
+ AppsProjectsCopyResult,
2607
+ AppsProjectsCreateParams,
2608
+ AppsProjectsCreateResult,
2609
+ AppsProjectsFileManyParams,
2610
+ AppsProjectsFileManyResult,
2422
2611
  AppsProjectsFileParams,
2423
2612
  AppsProjectsFileResult,
2613
+ AppsProjectsImportPinsParams,
2614
+ AppsProjectsImportPinsResult,
2615
+ AppsProjectsMoveParams,
2616
+ AppsProjectsMoveResult,
2424
2617
  AppsProjectsUnfileParams,
2425
2618
  AppsProjectsUnfileResult,
2619
+ AppsProjectsUpdateParams,
2620
+ AppsProjectsUpdateResult,
2621
+ AppsWindowActionResult,
2622
+ AppsWindowsListParams,
2623
+ AppsWindowsListResult,
2624
+ AppsWindowsOpenParams,
2625
+ AppsWindowsRefreshUsageParams,
2626
+ AppsWindowsReloadParams,
2627
+ AppsWindowsRestartParams,
2426
2628
  AudioDevice,
2427
2629
  AudioDevicesParams,
2428
2630
  AudioDevicesResult,
@@ -2435,6 +2637,7 @@ export {
2435
2637
  CLOSE_RULES,
2436
2638
  CONTRACT_SHA256,
2437
2639
  CancelMsg,
2640
+ ChatFamily,
2438
2641
  ChatHidden,
2439
2642
  ChatId,
2440
2643
  ChatLastUse,