@ai-matrx/desktop-protocol 0.17.11 → 0.17.13

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.js CHANGED
@@ -111,7 +111,7 @@ import { z as z2 } from "zod";
111
111
  // src/schema/primitives.ts
112
112
  import { z } from "zod";
113
113
  var PROTOCOL_MAJOR = 1;
114
- var PROTOCOL_MINOR = 15;
114
+ var PROTOCOL_MINOR = 17;
115
115
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
116
116
  var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
117
117
  var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -1137,6 +1137,8 @@ import { z as z19 } from "zod";
1137
1137
  var ResourcesDisk = z19.strictObject({
1138
1138
  /** Where it is mounted ("/", "C:"). */
1139
1139
  mount: z19.string().max(512),
1140
+ /** The volume's name as the file manager shows it ("Macintosh HD", "Local Disk (C:)"). Since 1.17. */
1141
+ name: z19.string().max(256).optional(),
1140
1142
  /** The file system ("apfs", "NTFS", "ext4"). */
1141
1143
  fs: z19.string().max(64),
1142
1144
  size_bytes: nonNegInt,
@@ -1157,92 +1159,289 @@ var ResourcesSnapshotResult = z19.strictObject({
1157
1159
  disks: z19.array(ResourcesDisk).max(64),
1158
1160
  uptime_seconds: nonNegInt
1159
1161
  });
1162
+ var ResourcesJobKind = z19.enum(["type-check", "tests", "build", "lint", "dev server", "language server", "search"]);
1163
+ var ResourcesStrain = z19.enum(["good", "strain", "overloaded"]);
1164
+ var ResourcesPressure = z19.enum(["normal", "warning", "critical"]);
1165
+ var ResourcesJob = z19.strictObject({
1166
+ /** The job's root process (Stop takes its whole tree). */
1167
+ pid: z19.int().min(0),
1168
+ kind: ResourcesJobKind,
1169
+ /** Its heaviest process's command line, shortened ("…/lib/tsc --noEmit -p tsconfig.json"). */
1170
+ command: z19.string().max(256),
1171
+ /** Who started it: "Claude Code", "Codex", "Cursor", "VS Code", "Terminal", "local stack", "detached"; null when unknown. */
1172
+ started_by: z19.string().max(64).nullable(),
1173
+ /** Whatever started it is gone and nothing waits for it. */
1174
+ orphan: z19.boolean(),
1175
+ /** A type-check queued for its turn (no compiler running yet). */
1176
+ waiting: z19.boolean(),
1177
+ /** The project folder it runs in ("matrx-frontend"); null when not in one. */
1178
+ folder: z19.string().max(256).nullable(),
1179
+ /** The same command in the same folder, running this many times (1 = no duplicate). */
1180
+ duplicates: z19.int().min(1),
1181
+ processes: z19.int().min(1),
1182
+ /** Sum over the tree, as `ps` reports it: 100 = one full core. */
1183
+ cpu_percent: z19.number().min(0),
1184
+ /** Real memory (macOS: the physical footprint Activity Monitor shows, compressed included). */
1185
+ memory_bytes: nonNegInt,
1186
+ started_at_ms: epochMs.nullable(),
1187
+ /** False for an app, an agent session, a terminal, a system process, the local stack or Matrx 2 itself. */
1188
+ stoppable: z19.boolean()
1189
+ });
1190
+ var ResourcesProcess = z19.strictObject({
1191
+ pid: z19.int().min(0),
1192
+ /** The command line, shortened. */
1193
+ name: z19.string().max(256),
1194
+ cpu_percent: z19.number().min(0),
1195
+ memory_bytes: nonNegInt,
1196
+ started_by: z19.string().max(64).nullable(),
1197
+ /** The job it belongs to ("type-check in aidream"); null when none. */
1198
+ job: z19.string().max(256).nullable(),
1199
+ started_at_ms: epochMs.nullable()
1200
+ });
1201
+ var ResourcesVerdict = z19.strictObject({
1202
+ level: ResourcesStrain,
1203
+ /** One sentence ("Your Mac is under strain. 3 type-checks are running at once."). */
1204
+ text: z19.string().max(256),
1205
+ /** The biggest jobs behind it; null when all is well. */
1206
+ cause: z19.string().max(1024).nullable()
1207
+ });
1208
+ var ResourcesSample = z19.strictObject({
1209
+ at_ms: epochMs,
1210
+ /** The 1-minute load average. */
1211
+ load: z19.number().min(0),
1212
+ memory_used_bytes: nonNegInt,
1213
+ typechecks: nonNegInt
1214
+ });
1215
+ var ResourcesActivityParams = z19.strictObject({});
1216
+ var ResourcesActivityResult = z19.strictObject({
1217
+ /** False until the first reading (a second or two after start). */
1218
+ ready: z19.boolean(),
1219
+ sampled_at_ms: epochMs.nullable(),
1220
+ cores: z19.int().min(1),
1221
+ /** 1, 5 and 15 minute load averages. */
1222
+ load: z19.array(z19.number().min(0)).length(3),
1223
+ memory: z19.strictObject({
1224
+ total_bytes: nonNegInt,
1225
+ /** Activity Monitor's Memory Used: app memory + wired + compressed. */
1226
+ used_bytes: nonNegInt,
1227
+ /** Data held compressed, and the memory the compressor takes to hold it. */
1228
+ compressed_bytes: nonNegInt,
1229
+ compressor_bytes: nonNegInt,
1230
+ swap_used_bytes: nonNegInt,
1231
+ pressure: ResourcesPressure.nullable()
1232
+ }),
1233
+ verdict: ResourcesVerdict,
1234
+ typechecks: z19.strictObject({ running: nonNegInt, waiting: nonNegInt, comfort: nonNegInt }),
1235
+ /** Heaviest first (1 GB weighs as much as 16 % of a core). */
1236
+ jobs: z19.array(ResourcesJob).max(200),
1237
+ /** The 15 heaviest by memory and the 15 busiest by CPU, together. */
1238
+ top: z19.array(ResourcesProcess).max(30),
1239
+ /** The last hour, oldest first. */
1240
+ history: z19.array(ResourcesSample).max(1200)
1241
+ });
1242
+ var ResourcesStopJobParams = z19.strictObject({ pid: z19.int().min(1) });
1243
+ var ResourcesStopJobResult = z19.strictObject({
1244
+ /** Processes signalled; whatever is still running 5 seconds later is force-stopped. */
1245
+ processes: nonNegInt,
1246
+ /** It had finished before the request arrived. */
1247
+ already_finished: z19.boolean()
1248
+ });
1249
+ var ResourcesIncident = z19.strictObject({
1250
+ at_ms: epochMs,
1251
+ verdict: ResourcesVerdict,
1252
+ load: z19.number().min(0),
1253
+ memory_used_bytes: nonNegInt,
1254
+ compressed_bytes: nonNegInt,
1255
+ pressure: ResourcesPressure.nullable(),
1256
+ jobs: z19.array(
1257
+ z19.strictObject({
1258
+ kind: ResourcesJobKind,
1259
+ started_by: z19.string().max(64).nullable(),
1260
+ folder: z19.string().max(256).nullable(),
1261
+ command: z19.string().max(256),
1262
+ cpu_percent: z19.number().min(0),
1263
+ memory_bytes: nonNegInt,
1264
+ duplicates: z19.int().min(1)
1265
+ })
1266
+ ).max(8)
1267
+ });
1268
+ var ResourcesIncidentsParams = z19.strictObject({ limit: z19.int().min(1).max(200).default(50) });
1269
+ var ResourcesIncidentsResult = z19.strictObject({
1270
+ /** Newest first; at most one a minute is written. */
1271
+ incidents: z19.array(ResourcesIncident).max(200)
1272
+ });
1160
1273
 
1161
- // src/schema/fs-watch.ts
1274
+ // src/schema/stack.ts
1162
1275
  import { z as z20 } from "zod";
1163
- var FsWatchId = z20.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
1164
- var FsWatchStartParams = z20.strictObject({
1276
+ var StackServerName = z20.string().regex(/^[a-z0-9_-]{1,64}$/);
1277
+ var StackTone = z20.enum(["good", "wait", "bad", "off"]);
1278
+ var StackServer = z20.strictObject({
1279
+ name: StackServerName,
1280
+ /** One word: Healthy, Starting, Unhealthy, Restarting, Stopping, Waiting, Stopped, Crashed, Off. */
1281
+ label: z20.string().max(32),
1282
+ tone: StackTone,
1283
+ /** What is going on, in one or two plain sentences. */
1284
+ sentence: z20.string().max(2e3),
1285
+ /** The config's own description of the server. */
1286
+ description: z20.string().max(512),
1287
+ /** Where the server answers, when its description names an address. */
1288
+ open_url: z20.string().max(2048).nullable(),
1289
+ log_file: z20.string().max(4096),
1290
+ /** When its log file was last written. */
1291
+ last_output_at_ms: epochMs.nullable(),
1292
+ started_at_ms: epochMs.nullable(),
1293
+ restarts: nonNegInt,
1294
+ exit_code: z20.int().nullable(),
1295
+ pid: z20.int().nullable()
1296
+ });
1297
+ var StackEvent = z20.strictObject({
1298
+ at_ms: epochMs,
1299
+ /** A server name, or "stack" for the stack as a whole. */
1300
+ server: z20.string().max(64),
1301
+ /** started · stopped · healthy · unhealthy · crashed · exited · restarting · stopping · action · action-done · action-failed · setup · error */
1302
+ kind: z20.string().max(32),
1303
+ text: z20.string().max(4e3)
1304
+ });
1305
+ var StackStateParams = z20.strictObject({});
1306
+ var StackStateResult = z20.strictObject({
1307
+ /** The stack's config file, when found. */
1308
+ config_path: z20.string().max(4096).nullable(),
1309
+ /** Why the stack cannot be run from here (no config, no process-compose), else null. */
1310
+ problem: z20.string().max(1e3).nullable(),
1311
+ stack_up: z20.boolean(),
1312
+ stack_started_at_ms: epochMs.nullable(),
1313
+ servers: z20.array(StackServer).max(64),
1314
+ /** One line about the one-shot setup steps ("Docker Desktop: running."), or null. */
1315
+ setup_note: z20.string().max(500).nullable(),
1316
+ /** Start everything / Stop everything in flight. */
1317
+ pending: z20.strictObject({ verb: z20.enum(["start", "stop"]), label: z20.string().max(64), since_ms: epochMs }).nullable(),
1318
+ /** The newest entries last. */
1319
+ events: z20.array(StackEvent).max(300)
1320
+ });
1321
+ var StackStartParams = z20.strictObject({});
1322
+ var StackStopParams = z20.strictObject({});
1323
+ var StackRunResult = z20.strictObject({ accepted: z20.boolean() });
1324
+ var StackServerActionParams = z20.strictObject({
1325
+ name: StackServerName,
1326
+ verb: z20.enum(["start", "stop", "restart"])
1327
+ });
1328
+ var StackServerActionResult = z20.strictObject({ message: z20.string().max(1e3) });
1329
+ var StackLogsParams = z20.strictObject({
1330
+ name: StackServerName,
1331
+ /** Without `offset`: the last this-many complete lines. With it: new lines after it, at most this many. */
1332
+ lines: z20.int().min(1).max(2e5).default(2e3),
1333
+ /** Byte offset the last read ended at: answer only what was written after it (follow). */
1334
+ offset: nonNegInt.optional(),
1335
+ /** A "Clear" point: the lines written after this byte offset (no `offset`). */
1336
+ since: nonNegInt.optional(),
1337
+ /** With `offset`: wait up to this long for a new line when none is waiting (0 answers at once). */
1338
+ wait_ms: z20.int().min(0).max(25e3).default(0)
1339
+ });
1340
+ var StackLogsResult = z20.strictObject({
1341
+ /** Complete lines, colour codes removed. */
1342
+ lines: z20.array(z20.string().max(65536)).max(2e5),
1343
+ /** Where these lines end: pass it back as `offset` to follow. */
1344
+ offset: nonNegInt,
1345
+ /** False when `since` no longer exists (the log rotated): the lines are the plain tail instead. */
1346
+ since_valid: z20.boolean(),
1347
+ /** The log was rotated or truncated since `offset`: these lines start the file again. */
1348
+ reset: z20.boolean(),
1349
+ log_file: z20.string().max(4096)
1350
+ });
1351
+ var StackErrorsParams = z20.strictObject({
1352
+ window_minutes: z20.int().min(1).max(1440).default(60)
1353
+ });
1354
+ var StackErrorsResult = z20.strictObject({
1355
+ /** Per server: a heading line ("=== aidream — errors in the last 60 minutes (<file>) ===") and each error with the 10 lines after it. */
1356
+ sections: z20.array(z20.strictObject({ name: StackServerName, heading: z20.string().max(4096), lines: z20.array(z20.string().max(65536)).max(5e3) })).max(64),
1357
+ window_minutes: z20.int().min(1).max(1440)
1358
+ });
1359
+
1360
+ // src/schema/fs-watch.ts
1361
+ import { z as z21 } from "zod";
1362
+ var FsWatchId = z21.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
1363
+ var FsWatchStartParams = z21.strictObject({
1165
1364
  path: AbsPath,
1166
- recursive: z20.boolean().default(true),
1365
+ recursive: z21.boolean().default(true),
1167
1366
  /** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
1168
- ignore: z20.array(z20.string().max(256)).max(64).default([])
1367
+ ignore: z21.array(z21.string().max(256)).max(64).default([])
1169
1368
  });
1170
- var FsWatchStartResult = z20.strictObject({
1369
+ var FsWatchStartResult = z21.strictObject({
1171
1370
  watch_id: FsWatchId,
1172
1371
  path: AbsPath,
1173
1372
  /** The watch ends by itself if nobody reads it for 30 minutes. */
1174
1373
  expires_at_ms: epochMs
1175
1374
  });
1176
- var FsWatchEventsParams = z20.strictObject({
1375
+ var FsWatchEventsParams = z21.strictObject({
1177
1376
  watch_id: FsWatchId,
1178
1377
  /** Wait up to this long for a first change when none is waiting (0 answers at once). */
1179
- wait_ms: z20.int().min(0).max(25e3).default(0)
1378
+ wait_ms: z21.int().min(0).max(25e3).default(0)
1180
1379
  });
1181
- var FsWatchEventsResult = z20.strictObject({
1380
+ var FsWatchEventsResult = z21.strictObject({
1182
1381
  /** What changed since the last read, oldest first; re-checked against the disk when read. */
1183
- changes: z20.array(FsChange).max(1e3),
1382
+ changes: z21.array(FsChange).max(1e3),
1184
1383
  /** Changes were dropped (more than 1000 waited): list the folder again. */
1185
- overflow: z20.boolean(),
1384
+ overflow: z21.boolean(),
1186
1385
  expires_at_ms: epochMs
1187
1386
  });
1188
- var FsWatchStopParams = z20.strictObject({ watch_id: FsWatchId });
1189
- var FsWatchStopResult = z20.strictObject({ watch_id: FsWatchId });
1387
+ var FsWatchStopParams = z21.strictObject({ watch_id: FsWatchId });
1388
+ var FsWatchStopResult = z21.strictObject({ watch_id: FsWatchId });
1190
1389
 
1191
1390
  // src/schema/exec-job.ts
1192
- import { z as z21 } from "zod";
1193
- var ExecJobId = z21.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
1194
- var ExecJobStartParams = z21.strictObject({
1195
- command: z21.string().min(1).max(131072),
1391
+ import { z as z22 } from "zod";
1392
+ var ExecJobId = z22.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
1393
+ var ExecJobStartParams = z22.strictObject({
1394
+ command: z22.string().min(1).max(131072),
1196
1395
  /** The folder it runs in; the home folder when absent. */
1197
1396
  cwd: AbsPath.optional(),
1198
- env: z21.record(z21.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), z21.string().max(32768)).optional()
1397
+ env: z22.record(z22.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), z22.string().max(32768)).optional()
1199
1398
  });
1200
- var ExecJobStartResult = z21.strictObject({ job_id: ExecJobId, pid: z21.int().min(1), cwd: AbsPath });
1201
- var ExecJobOutputParams = z21.strictObject({
1399
+ var ExecJobStartResult = z22.strictObject({ job_id: ExecJobId, pid: z22.int().min(1), cwd: AbsPath });
1400
+ var ExecJobOutputParams = z22.strictObject({
1202
1401
  job_id: ExecJobId,
1203
1402
  /** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
1204
1403
  offset: nonNegInt.default(0),
1205
1404
  /** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
1206
- wait_ms: z21.int().min(0).max(25e3).default(0),
1207
- max_bytes: z21.int().min(1024).max(1048576).default(65536)
1405
+ wait_ms: z22.int().min(0).max(25e3).default(0),
1406
+ max_bytes: z22.int().min(1024).max(1048576).default(65536)
1208
1407
  });
1209
- var ExecJobOutputResult = z21.strictObject({
1408
+ var ExecJobOutputResult = z22.strictObject({
1210
1409
  /** stdout and stderr interleaved as they arrived (UTF-8). */
1211
- output: z21.string(),
1410
+ output: z22.string(),
1212
1411
  next_offset: nonNegInt,
1213
1412
  /** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
1214
1413
  dropped_bytes: nonNegInt,
1215
- running: z21.boolean(),
1216
- exit_code: z21.int().nullable()
1414
+ running: z22.boolean(),
1415
+ exit_code: z22.int().nullable()
1217
1416
  });
1218
- var ExecJobStopParams = z21.strictObject({
1417
+ var ExecJobStopParams = z22.strictObject({
1219
1418
  job_id: ExecJobId,
1220
1419
  /** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
1221
- force: z21.boolean().default(false)
1420
+ force: z22.boolean().default(false)
1222
1421
  });
1223
- var ExecJobStopResult = z21.strictObject({ job_id: ExecJobId, exited: z21.boolean(), exit_code: z21.int().nullable() });
1224
- var ExecJobInfo = z21.strictObject({
1422
+ var ExecJobStopResult = z22.strictObject({ job_id: ExecJobId, exited: z22.boolean(), exit_code: z22.int().nullable() });
1423
+ var ExecJobInfo = z22.strictObject({
1225
1424
  job_id: ExecJobId,
1226
- command: z21.string().max(1024),
1227
- pid: z21.int().min(1),
1425
+ command: z22.string().max(1024),
1426
+ pid: z22.int().min(1),
1228
1427
  cwd: AbsPath,
1229
- running: z21.boolean(),
1230
- exit_code: z21.int().nullable(),
1428
+ running: z22.boolean(),
1429
+ exit_code: z22.int().nullable(),
1231
1430
  started_at_ms: epochMs,
1232
1431
  output_bytes: nonNegInt
1233
1432
  });
1234
- var ExecJobListParams = z21.strictObject({});
1235
- var ExecJobListResult = z21.strictObject({ jobs: z21.array(ExecJobInfo).max(64) });
1433
+ var ExecJobListParams = z22.strictObject({});
1434
+ var ExecJobListResult = z22.strictObject({ jobs: z22.array(ExecJobInfo).max(64) });
1236
1435
 
1237
1436
  // src/schema/coding.ts
1238
- import { z as z22 } from "zod";
1239
- var CodingServiceCredentials = z22.strictObject({
1240
- access_token: z22.string().min(16).max(16384),
1241
- user_id: z22.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}$/),
1437
+ import { z as z23 } from "zod";
1438
+ var CodingServiceCredentials = z23.strictObject({
1439
+ access_token: z23.string().min(16).max(16384),
1440
+ user_id: z23.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}$/),
1242
1441
  /** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
1243
- server_url: z22.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
1442
+ server_url: z23.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
1244
1443
  });
1245
- var CodingHistoryBlocked = z22.enum([
1444
+ var CodingHistoryBlocked = z23.enum([
1246
1445
  "signed_out",
1247
1446
  "offline",
1248
1447
  "organization_required",
@@ -1250,11 +1449,11 @@ var CodingHistoryBlocked = z22.enum([
1250
1449
  "cloud_list_unavailable",
1251
1450
  "history_too_large"
1252
1451
  ]);
1253
- var CodingHistoryFailure = z22.strictObject({
1254
- session_id: z22.string().max(64),
1255
- reason: z22.string().max(300)
1452
+ var CodingHistoryFailure = z23.strictObject({
1453
+ session_id: z23.string().max(64),
1454
+ reason: z23.string().max(300)
1256
1455
  });
1257
- var CodingHistoryRun = z22.strictObject({
1456
+ var CodingHistoryRun = z23.strictObject({
1258
1457
  /** Claude Code sessions found on this computer. */
1259
1458
  local_sessions: nonNegInt,
1260
1459
  /** Of those, already complete in AI Matrx. */
@@ -1269,39 +1468,39 @@ var CodingHistoryRun = z22.strictObject({
1269
1468
  /** Changed while being read; a later run takes them. */
1270
1469
  changed: nonNegInt,
1271
1470
  failed: nonNegInt,
1272
- failures: z22.array(CodingHistoryFailure).max(20),
1471
+ failures: z23.array(CodingHistoryFailure).max(20),
1273
1472
  /** Candidates not reached yet. */
1274
1473
  remaining: nonNegInt,
1275
1474
  /** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
1276
- summary: z22.string().max(400)
1475
+ summary: z23.string().max(400)
1277
1476
  });
1278
- var CodingHistoryStep = z22.strictObject({
1477
+ var CodingHistoryStep = z23.strictObject({
1279
1478
  /** Null when the run could not start (blocked before a plan existed). */
1280
- plan_id: z22.string().regex(/^[0-9a-f]{32}$/).nullable(),
1281
- finished: z22.boolean(),
1479
+ plan_id: z23.string().regex(/^[0-9a-f]{32}$/).nullable(),
1480
+ finished: z23.boolean(),
1282
1481
  blocked: CodingHistoryBlocked.nullable(),
1283
1482
  run: CodingHistoryRun
1284
1483
  });
1285
- var CodingPlanMissingParams = z22.strictObject({ credentials: CodingServiceCredentials.nullable() });
1286
- var CodingImportNextParams = z22.strictObject({
1287
- plan_id: z22.string().regex(/^[0-9a-f]{32}$/),
1484
+ var CodingPlanMissingParams = z23.strictObject({ credentials: CodingServiceCredentials.nullable() });
1485
+ var CodingImportNextParams = z23.strictObject({
1486
+ plan_id: z23.string().regex(/^[0-9a-f]{32}$/),
1288
1487
  credentials: CodingServiceCredentials.nullable()
1289
1488
  });
1290
- var CodingServiceProgress = z22.strictObject({
1291
- phase: z22.enum(["checking", "importing"]),
1489
+ var CodingServiceProgress = z23.strictObject({
1490
+ phase: z23.enum(["checking", "importing"]),
1292
1491
  done: nonNegInt,
1293
1492
  total: nonNegInt
1294
1493
  });
1295
- var CodingHistoryImportMissingParams = z22.strictObject({});
1296
- var CodingHistoryImportMissingResult = z22.strictObject({
1297
- state: z22.enum(["done", "blocked", "cancelled"]),
1494
+ var CodingHistoryImportMissingParams = z23.strictObject({});
1495
+ var CodingHistoryImportMissingResult = z23.strictObject({
1496
+ state: z23.enum(["done", "blocked", "cancelled"]),
1298
1497
  blocked: CodingHistoryBlocked.nullable(),
1299
1498
  run: CodingHistoryRun,
1300
1499
  elapsed_ms: nonNegInt
1301
1500
  });
1302
- var CodingHistoryProgressEvent = z22.strictObject({
1501
+ var CodingHistoryProgressEvent = z23.strictObject({
1303
1502
  request_id: RequestId,
1304
- phase: z22.enum(["checking", "importing"]),
1503
+ phase: z23.enum(["checking", "importing"]),
1305
1504
  /** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
1306
1505
  done: nonNegInt,
1307
1506
  total: nonNegInt,
@@ -1310,22 +1509,22 @@ var CodingHistoryProgressEvent = z22.strictObject({
1310
1509
  });
1311
1510
 
1312
1511
  // src/schema/apps.ts
1313
- import { z as z23 } from "zod";
1314
- var AppKey = z23.string().regex(/^[a-z][a-z0-9_-]{0,39}$/);
1315
- var AppProfileId = z23.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}$/);
1316
- var AppProfileLocator = z23.string().min(1).max(512).regex(/^[A-Za-z0-9 _()+@,-][A-Za-z0-9 ._()+@,-]{0,127}(\/[A-Za-z0-9 _()+@,-][A-Za-z0-9 ._()+@,-]{0,127}){0,7}$/);
1317
- var AppSupport = z23.enum(["supported", "partial", "unsupported"]);
1318
- var AppFeatureStatus = z23.strictObject({
1512
+ import { z as z24 } from "zod";
1513
+ var AppKey = z24.string().regex(/^[a-z][a-z0-9_-]{0,39}$/);
1514
+ var AppProfileId = z24.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}$/);
1515
+ var AppProfileLocator = z24.string().min(1).max(512).regex(/^[A-Za-z0-9 _()+@,-][A-Za-z0-9 ._()+@,-]{0,127}(\/[A-Za-z0-9 _()+@,-][A-Za-z0-9 ._()+@,-]{0,127}){0,7}$/);
1516
+ var AppSupport = z24.enum(["supported", "partial", "unsupported"]);
1517
+ var AppFeatureStatus = z24.strictObject({
1319
1518
  status: AppSupport,
1320
1519
  /** One line, set whenever status is not "supported". */
1321
- reason: z23.string().max(140).nullable()
1520
+ reason: z24.string().max(140).nullable()
1322
1521
  });
1323
- var AppInfo = z23.strictObject({
1522
+ var AppInfo = z24.strictObject({
1324
1523
  app_key: AppKey,
1325
- name: z23.string().max(64),
1326
- installed: z23.boolean(),
1524
+ name: z24.string().max(64),
1525
+ installed: z24.boolean(),
1327
1526
  /** The app's own version string, or null when it is not installed or does not say. */
1328
- version: z23.string().max(64).nullable(),
1527
+ version: z24.string().max(64).nullable(),
1329
1528
  /** The install found (an .app bundle, an .exe, a binary), or null. */
1330
1529
  location: AbsPath.nullable(),
1331
1530
  /** Open the app at all on this OS. */
@@ -1335,148 +1534,148 @@ var AppInfo = z23.strictObject({
1335
1534
  /** Plan usage read from the app's own files on this OS. */
1336
1535
  usage: AppFeatureStatus
1337
1536
  });
1338
- var AppUsageReading = z23.strictObject({
1339
- window: z23.enum(["five_hour", "weekly", "extra"]),
1537
+ var AppUsageReading = z24.strictObject({
1538
+ window: z24.enum(["five_hour", "weekly", "extra"]),
1340
1539
  /** 0–100 for five_hour and weekly; extra-usage spend as a percent of its cap (may pass 100). */
1341
- percent: z23.number().min(0).max(1e4),
1540
+ percent: z24.number().min(0).max(1e4),
1342
1541
  /** When the app recorded it. */
1343
1542
  sampled_at_ms: epochMs,
1344
1543
  /** True when the window has rolled over since the sample, so the figure has reset. */
1345
- reset_since: z23.boolean()
1544
+ reset_since: z24.boolean()
1346
1545
  });
1347
- var AppProfile = z23.strictObject({
1546
+ var AppProfile = z24.strictObject({
1348
1547
  /** The row's id; null for a folder found on disk that no row names yet. */
1349
1548
  id: AppProfileId.nullable(),
1350
1549
  app_key: AppKey,
1351
- display_name: z23.string().min(1).max(120),
1550
+ display_name: z24.string().min(1).max(120),
1352
1551
  /** The account the person means to be signed in here; null when not stated (never guessed). */
1353
- account_identity: z23.string().min(3).max(320).nullable(),
1552
+ account_identity: z24.string().min(3).max(320).nullable(),
1354
1553
  profile_locator: AppProfileLocator.nullable(),
1355
1554
  /** The device the row is tied to; null when the row names none. */
1356
1555
  device_id: DeviceId.nullable(),
1357
1556
  /** The folder this profile resolves to on this device; null for a row tied to another device. */
1358
1557
  folder: AbsPath.nullable(),
1359
1558
  /** The folder exists on this device. */
1360
- on_disk: z23.boolean(),
1559
+ on_disk: z24.boolean(),
1361
1560
  /** An instance with this profile is running; null when it could not be determined. */
1362
- running: z23.boolean().nullable(),
1561
+ running: z24.boolean().nullable(),
1363
1562
  /** Usage the app recorded for this profile; null when the app exposes none here. */
1364
- usage: z23.array(AppUsageReading).nullable(),
1563
+ usage: z24.array(AppUsageReading).nullable(),
1365
1564
  last_opened_ms: epochMs.nullable()
1366
1565
  });
1367
- var AppsListParams = z23.strictObject({});
1368
- var AppsListResult = z23.strictObject({ apps: z23.array(AppInfo) });
1369
- var AppsProfilesListParams = z23.strictObject({
1566
+ var AppsListParams = z24.strictObject({});
1567
+ var AppsListResult = z24.strictObject({ apps: z24.array(AppInfo) });
1568
+ var AppsProfilesListParams = z24.strictObject({
1370
1569
  /** Only this app's profiles; every app's when absent. */
1371
1570
  app_key: AppKey.optional()
1372
1571
  });
1373
- var AppsProfilesListResult = z23.strictObject({
1374
- profiles: z23.array(AppProfile),
1572
+ var AppsProfilesListResult = z24.strictObject({
1573
+ profiles: z24.array(AppProfile),
1375
1574
  /**
1376
1575
  * Whether the saved rows could be read: false while signed out or offline, when only folders
1377
1576
  * found on disk are listed.
1378
1577
  */
1379
- registry: z23.enum(["ok", "signed_out", "unavailable"])
1578
+ registry: z24.enum(["ok", "signed_out", "unavailable"])
1380
1579
  });
1381
- var AppsProfilesSaveParams = z23.strictObject({
1580
+ var AppsProfilesSaveParams = z24.strictObject({
1382
1581
  id: AppProfileId.optional(),
1383
1582
  app_key: AppKey,
1384
- display_name: z23.string().min(1).max(120),
1385
- account_identity: z23.string().min(3).max(320).nullable(),
1583
+ display_name: z24.string().min(1).max(120),
1584
+ account_identity: z24.string().min(3).max(320).nullable(),
1386
1585
  /** On create: the folder to use (one found on disk), or null for the app's default profile. Ignored on update. */
1387
1586
  profile_locator: AppProfileLocator.nullable(),
1388
1587
  /** On create with profile_locator null: make a new folder named after display_name instead. */
1389
- new_folder: z23.boolean().default(false)
1588
+ new_folder: z24.boolean().default(false)
1390
1589
  });
1391
1590
  var AppsProfilesSaveResult = AppProfile;
1392
- var AppsProfilesRemoveParams = z23.strictObject({ id: AppProfileId });
1393
- var AppsProfilesRemoveResult = z23.strictObject({ removed: z23.boolean() });
1394
- var AppsOpenParams = z23.strictObject({
1591
+ var AppsProfilesRemoveParams = z24.strictObject({ id: AppProfileId });
1592
+ var AppsProfilesRemoveResult = z24.strictObject({ removed: z24.boolean() });
1593
+ var AppsOpenParams = z24.strictObject({
1395
1594
  app_key: AppKey,
1396
1595
  profile_id: AppProfileId.optional()
1397
1596
  });
1398
- var AppsOpenResult = z23.strictObject({
1597
+ var AppsOpenResult = z24.strictObject({
1399
1598
  /** True when an instance with this profile was already running; it is brought forward. */
1400
- already_running: z23.boolean(),
1599
+ already_running: z24.boolean(),
1401
1600
  folder: AbsPath.nullable()
1402
1601
  });
1403
1602
 
1404
1603
  // src/schema/apps-chats.ts
1405
- import { z as z24 } from "zod";
1406
- var ChatId = z24.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/);
1407
- var ChatPlace = z24.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/);
1408
- var ChatProjectId = z24.string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/);
1409
- var ChatWindow = z24.strictObject({
1604
+ import { z as z25 } from "zod";
1605
+ var ChatId = z25.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/);
1606
+ var ChatPlace = z25.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/);
1607
+ var ChatProjectId = z25.string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/);
1608
+ var ChatWindow = z25.strictObject({
1410
1609
  key: ChatPlace,
1411
1610
  /** The app's default profile (Claude: the main window, which lists every account's chats). */
1412
- main: z24.boolean(),
1611
+ main: z25.boolean(),
1413
1612
  /** The account the window is signed into, when known. */
1414
- account: z24.string().max(320).nullable()
1613
+ account: z25.string().max(320).nullable()
1415
1614
  });
1416
- var ChatProject = z24.strictObject({
1615
+ var ChatProject = z25.strictObject({
1417
1616
  id: ChatProjectId,
1418
- name: z24.string().min(1).max(200),
1419
- archived: z24.boolean(),
1617
+ name: z25.string().min(1).max(200),
1618
+ archived: z25.boolean(),
1420
1619
  /** Chats in it. */
1421
1620
  count: nonNegInt
1422
1621
  });
1423
- var ChatPin = z24.strictObject({
1622
+ var ChatPin = z25.strictObject({
1424
1623
  /** The window whose account pins it; an account with no window of its own is named by its email. */
1425
- window: z24.string().min(1).max(320),
1624
+ window: z25.string().min(1).max(320),
1426
1625
  /** When that account's pin list was last read; null when the reading has no time. */
1427
1626
  observed_at_ms: epochMs.nullable()
1428
1627
  });
1429
- var ChatRunning = z24.strictObject({
1628
+ var ChatRunning = z25.strictObject({
1430
1629
  window: ChatPlace,
1431
1630
  /** process: a live process resumed this chat there (exact); activity: that window's own record moved in the last 3 minutes. */
1432
- how: z24.enum(["process", "activity"])
1631
+ how: z25.enum(["process", "activity"])
1433
1632
  });
1434
- var ChatHidden = z24.strictObject({
1633
+ var ChatHidden = z25.strictObject({
1435
1634
  window: ChatPlace,
1436
- reason: z24.string().max(200)
1635
+ reason: z25.string().max(200)
1437
1636
  });
1438
- var ChatLastUse = z24.strictObject({
1637
+ var ChatLastUse = z25.strictObject({
1439
1638
  /** The conversation's last reply. */
1440
1639
  at_ms: epochMs,
1441
1640
  window: ChatPlace.nullable(),
1442
- account: z24.string().max(320).nullable(),
1641
+ account: z25.string().max(320).nullable(),
1443
1642
  /** How the window was decided (one short line). */
1444
- how: z24.string().max(120).nullable(),
1643
+ how: z25.string().max(120).nullable(),
1445
1644
  /** The account's 1-hour prompt cache is still warm. */
1446
- cache_warm: z24.boolean(),
1645
+ cache_warm: z25.boolean(),
1447
1646
  cache_minutes_left: nonNegInt
1448
1647
  });
1449
- var ChatAppProject = z24.strictObject({
1450
- id: z24.string().min(1).max(200),
1451
- name: z24.string().max(200)
1648
+ var ChatAppProject = z25.strictObject({
1649
+ id: z25.string().min(1).max(200),
1650
+ name: z25.string().max(200)
1452
1651
  });
1453
- var ChatTitleSource = z24.enum(["app", "app-remembered", "custom-title", "ai-title", "agent-name", "summary", "first-prompt", "last-prompt"]);
1454
- var ChatRow = z24.strictObject({
1652
+ var ChatTitleSource = z25.enum(["app", "app-remembered", "custom-title", "ai-title", "agent-name", "summary", "first-prompt", "last-prompt"]);
1653
+ var ChatRow = z25.strictObject({
1455
1654
  id: ChatId,
1456
1655
  /** The short id people see (the listing's first 8 characters). */
1457
- short_id: z24.string().max(16),
1656
+ short_id: z25.string().max(16),
1458
1657
  /** The listing's own name (Claude: local_<id>), null for a chat only in the holder. */
1459
- record: z24.string().max(160).nullable(),
1460
- title: z24.string().max(1e3),
1658
+ record: z25.string().max(160).nullable(),
1659
+ title: z25.string().max(1e3),
1461
1660
  last_active_ms: epochMs.nullable(),
1462
1661
  created_ms: epochMs.nullable(),
1463
- projects: z24.array(ChatProjectId).max(500),
1464
- starred: z24.boolean(),
1465
- pinned_in: z24.array(ChatPin).max(200),
1662
+ projects: z25.array(ChatProjectId).max(500),
1663
+ starred: z25.boolean(),
1664
+ pinned_in: z25.array(ChatPin).max(200),
1466
1665
  /** Every place it is listed now: window keys, plus "holder". */
1467
- places: z24.array(ChatPlace).max(200),
1468
- held: z24.boolean(),
1469
- running: z24.array(ChatRunning).max(200),
1470
- hidden_in: z24.array(ChatHidden).max(200),
1666
+ places: z25.array(ChatPlace).max(200),
1667
+ held: z25.boolean(),
1668
+ running: z25.array(ChatRunning).max(200),
1669
+ hidden_in: z25.array(ChatHidden).max(200),
1471
1670
  /** Kept out of the main window on purpose. */
1472
- hidden_from_main: z24.boolean(),
1671
+ hidden_from_main: z25.boolean(),
1473
1672
  /** Listed in a side window and not yet copied into main. */
1474
- main_pending: z24.boolean(),
1673
+ main_pending: z25.boolean(),
1475
1674
  /** A scheduled routine's run (its task id). */
1476
- scheduled: z24.string().max(200).nullable(),
1675
+ scheduled: z25.string().max(200).nullable(),
1477
1676
  /** Created recently and in no project: offered for filing. */
1478
- new_unfiled: z24.boolean(),
1479
- warnings: z24.array(z24.string().max(400)).max(20),
1677
+ new_unfiled: z25.boolean(),
1678
+ warnings: z25.array(z25.string().max(400)).max(20),
1480
1679
  last_use: ChatLastUse.nullable(),
1481
1680
  /** 1.13: the app's own project the chat is grouped under in the app (Codex), read only; absent = none or not an app that groups. */
1482
1681
  app_project: ChatAppProject.optional(),
@@ -1486,285 +1685,285 @@ var ChatRow = z24.strictObject({
1486
1685
  * 1.14: the chat's own title before the person's rename (the one title rule, `@ai-matrx/coding-sessions/sessions`);
1487
1686
  * `title` is what to show (`title_override` when set, else this).
1488
1687
  */
1489
- original_title: z24.string().max(1e3).optional(),
1688
+ original_title: z25.string().max(1e3).optional(),
1490
1689
  /** 1.14: where `original_title` came from (the one rule's sources, strongest first; 1.15: a closed set). */
1491
1690
  title_source: ChatTitleSource.optional(),
1492
1691
  /** 1.14: the person's rename inside Matrx (Coding Sessions), applied once by the row builder; absent = none. */
1493
- title_override: z24.string().min(1).max(300).optional(),
1692
+ title_override: z25.string().min(1).max(300).optional(),
1494
1693
  /** 1.15: the app itself archived it (hidden_in says where and why, in words for people; this is the typed fact). */
1495
- archived: z24.boolean().optional()
1694
+ archived: z25.boolean().optional()
1496
1695
  });
1497
- var ChatFamily = z24.strictObject({
1696
+ var ChatFamily = z25.strictObject({
1498
1697
  id: ChatId,
1499
1698
  fork_of: ChatId.nullable(),
1500
1699
  copy_of: ChatId.nullable()
1501
1700
  });
1502
- var AppsChatsListParams = z24.strictObject({
1701
+ var AppsChatsListParams = z25.strictObject({
1503
1702
  app_key: AppKey,
1504
1703
  /** Only these chats (a live update re-reads just what changed). */
1505
- ids: z24.array(ChatId).max(500).optional()
1704
+ ids: z25.array(ChatId).max(500).optional()
1506
1705
  });
1507
- var AppsChatsListResult = z24.strictObject({
1706
+ var AppsChatsListResult = z25.strictObject({
1508
1707
  app_key: AppKey,
1509
1708
  /** Bumps on every change the index sees; `apps.chats.changed` carries the same number. */
1510
1709
  version: nonNegInt,
1511
- windows: z24.array(ChatWindow).max(200),
1512
- projects: z24.array(ChatProject).max(5e3),
1513
- chats: z24.array(ChatRow).max(2e4),
1710
+ windows: z25.array(ChatWindow).max(200),
1711
+ projects: z25.array(ChatProject).max(5e3),
1712
+ chats: z25.array(ChatRow).max(2e4),
1514
1713
  /** How long a chat in no project counts as new. */
1515
1714
  new_window_ms: nonNegInt,
1516
1715
  /** 1.9: this is the copy saved at the last read, shown while everything is read again. */
1517
- updating: z24.boolean().optional(),
1716
+ updating: z25.boolean().optional(),
1518
1717
  /** 1.9: false while the folder watches are down (changes are not arriving); `apps.chats.watch_state` says when it changes. */
1519
- live: z24.boolean().optional(),
1718
+ live: z25.boolean().optional(),
1520
1719
  /** 1.10: every listed chat that is a fork or a copy of another (read from the conversations' first lines). */
1521
- families: z24.array(ChatFamily).max(2e4).optional()
1720
+ families: z25.array(ChatFamily).max(2e4).optional()
1522
1721
  });
1523
- var AppsChatsWatchParams = z24.strictObject({ app_key: AppKey });
1524
- var AppsChatsWatchResult = z24.strictObject({ resource_id: ResourceId, version: nonNegInt });
1525
- var AppsChatsChangedEvent = z24.strictObject({
1722
+ var AppsChatsWatchParams = z25.strictObject({ app_key: AppKey });
1723
+ var AppsChatsWatchResult = z25.strictObject({ resource_id: ResourceId, version: nonNegInt });
1724
+ var AppsChatsChangedEvent = z25.strictObject({
1526
1725
  app_key: AppKey,
1527
1726
  version: nonNegInt,
1528
- ids: z24.array(ChatId).max(1e3),
1529
- all: z24.boolean()
1727
+ ids: z25.array(ChatId).max(1e3),
1728
+ all: z25.boolean()
1530
1729
  });
1531
- var AppsChatsWatchStateEvent = z24.strictObject({
1730
+ var AppsChatsWatchStateEvent = z25.strictObject({
1532
1731
  app_key: AppKey,
1533
- live: z24.boolean(),
1534
- updating: z24.boolean(),
1535
- reason: z24.string().max(300).nullable()
1732
+ live: z25.boolean(),
1733
+ updating: z25.boolean(),
1734
+ reason: z25.string().max(300).nullable()
1536
1735
  });
1537
- var AppsChatsPlaceParams = z24.strictObject({
1736
+ var AppsChatsPlaceParams = z25.strictObject({
1538
1737
  app_key: AppKey,
1539
1738
  chat_id: ChatId,
1540
- action: z24.enum(["place", "take_off", "hold"]),
1739
+ action: z25.enum(["place", "take_off", "hold"]),
1541
1740
  /** The window (for place and take_off). */
1542
1741
  window: ChatPlace.optional(),
1543
1742
  /** take_off where it is open: stop it there first (the person confirmed). */
1544
- stop_if_open: z24.boolean().default(false)
1743
+ stop_if_open: z25.boolean().default(false)
1545
1744
  });
1546
- var AppsChatsPlaceResult = z24.strictObject({ chat: ChatRow, message: z24.string().max(400) });
1547
- var AppsProjectsFileManyParams = z24.strictObject({
1745
+ var AppsChatsPlaceResult = z25.strictObject({ chat: ChatRow, message: z25.string().max(400) });
1746
+ var AppsProjectsFileManyParams = z25.strictObject({
1548
1747
  app_key: AppKey,
1549
- chat_ids: z24.array(ChatId).min(1).max(500),
1748
+ chat_ids: z25.array(ChatId).min(1).max(500),
1550
1749
  project_id: ChatProjectId.optional(),
1551
- new_project_name: z24.string().min(1).max(200).optional()
1750
+ new_project_name: z25.string().min(1).max(200).optional()
1552
1751
  });
1553
- var AppsProjectsFileManyResult = z24.strictObject({ chats: z24.array(ChatRow).max(500), project: ChatProject });
1554
- var AppsProjectsUpdateParams = z24.strictObject({
1752
+ var AppsProjectsFileManyResult = z25.strictObject({ chats: z25.array(ChatRow).max(500), project: ChatProject });
1753
+ var AppsProjectsUpdateParams = z25.strictObject({
1555
1754
  app_key: AppKey,
1556
1755
  project_id: ChatProjectId,
1557
- name: z24.string().min(1).max(200).optional(),
1558
- archived: z24.boolean().optional()
1756
+ name: z25.string().min(1).max(200).optional(),
1757
+ archived: z25.boolean().optional()
1559
1758
  });
1560
- var AppsProjectsUpdateResult = z24.strictObject({ project: ChatProject });
1561
- var AppsProjectsCopyParams = z24.strictObject({ app_key: AppKey, project_id: ChatProjectId, new_project_name: z24.string().min(1).max(200) });
1562
- var AppsProjectsCopyResult = z24.strictObject({ project: ChatProject });
1563
- var AppsProjectsFileParams = z24.strictObject({
1759
+ var AppsProjectsUpdateResult = z25.strictObject({ project: ChatProject });
1760
+ var AppsProjectsCopyParams = z25.strictObject({ app_key: AppKey, project_id: ChatProjectId, new_project_name: z25.string().min(1).max(200) });
1761
+ var AppsProjectsCopyResult = z25.strictObject({ project: ChatProject });
1762
+ var AppsProjectsFileParams = z25.strictObject({
1564
1763
  app_key: AppKey,
1565
1764
  chat_id: ChatId,
1566
1765
  project_id: ChatProjectId.optional(),
1567
- new_project_name: z24.string().min(1).max(200).optional()
1766
+ new_project_name: z25.string().min(1).max(200).optional()
1568
1767
  });
1569
- var AppsProjectsFileResult = z24.strictObject({ chat: ChatRow, project: ChatProject });
1570
- var AppsProjectsUnfileParams = z24.strictObject({ app_key: AppKey, chat_id: ChatId, project_id: ChatProjectId });
1571
- var AppsProjectsUnfileResult = z24.strictObject({ chat: ChatRow });
1572
- var AppsChatsStarParams = z24.strictObject({ app_key: AppKey, chat_id: ChatId, starred: z24.boolean() });
1573
- var AppsChatsStarResult = z24.strictObject({ chat: ChatRow });
1768
+ var AppsProjectsFileResult = z25.strictObject({ chat: ChatRow, project: ChatProject });
1769
+ var AppsProjectsUnfileParams = z25.strictObject({ app_key: AppKey, chat_id: ChatId, project_id: ChatProjectId });
1770
+ var AppsProjectsUnfileResult = z25.strictObject({ chat: ChatRow });
1771
+ var AppsChatsStarParams = z25.strictObject({ app_key: AppKey, chat_id: ChatId, starred: z25.boolean() });
1772
+ var AppsChatsStarResult = z25.strictObject({ chat: ChatRow });
1574
1773
 
1575
1774
  // src/schema/apps-accounts.ts
1576
- import { z as z25 } from "zod";
1577
- var AppWindowInfo = z25.strictObject({
1775
+ import { z as z26 } from "zod";
1776
+ var AppWindowInfo = z26.strictObject({
1578
1777
  key: ChatPlace,
1579
1778
  /** The app's default profile (Claude: main, which may sign into any account). */
1580
- main: z25.boolean(),
1779
+ main: z26.boolean(),
1581
1780
  /** The account the window is meant for (null for main). */
1582
- account: z25.string().max(320).nullable(),
1781
+ account: z26.string().max(320).nullable(),
1583
1782
  /** The account signed in there now: an email, or the account id while it has no saved name. */
1584
- signed_in: z25.string().max(320).nullable(),
1585
- signed_in_is_email: z25.boolean(),
1783
+ signed_in: z26.string().max(320).nullable(),
1784
+ signed_in_is_email: z26.boolean(),
1586
1785
  /** Signed into another account than the one it is meant for. */
1587
- mismatch: z25.boolean(),
1786
+ mismatch: z26.boolean(),
1588
1787
  /** Its folder exists. */
1589
- created: z25.boolean(),
1788
+ created: z26.boolean(),
1590
1789
  /** Open now. */
1591
- running: z25.boolean(),
1790
+ running: z26.boolean(),
1592
1791
  /** Chats open in it now (a process resuming each one). */
1593
1792
  open_chats: nonNegInt
1594
1793
  });
1595
- var AccountUsage = z25.strictObject({
1794
+ var AccountUsage = z26.strictObject({
1596
1795
  /** The account's email, or "org <8 chars>" when no window has ever sampled that org. */
1597
- account: z25.string().max(320),
1598
- org: z25.string().max(80).nullable(),
1796
+ account: z26.string().max(320),
1797
+ org: z26.string().max(80).nullable(),
1599
1798
  /** False when the org was sampled in several accounts' windows and the vote is not clear (≥ 75 %). */
1600
- account_certain: z25.boolean(),
1799
+ account_certain: z26.boolean(),
1601
1800
  /** 5-hour use in percent (0 once the reading is over 5 hours old). */
1602
- five_hour: z25.number().nullable(),
1603
- five_hour_reset_since: z25.boolean(),
1801
+ five_hour: z26.number().nullable(),
1802
+ five_hour_reset_since: z26.boolean(),
1604
1803
  /** Weekly use in percent (0 once the week reset after the reading). */
1605
- weekly: z25.number().nullable(),
1606
- weekly_reset_since: z25.boolean(),
1804
+ weekly: z26.number().nullable(),
1805
+ weekly_reset_since: z26.boolean(),
1607
1806
  /** Extra-usage spend in percent of its cap, when on. */
1608
- extra_usage: z25.number().nullable(),
1807
+ extra_usage: z26.number().nullable(),
1609
1808
  extra_usage_as_of_ms: epochMs.nullable(),
1610
1809
  as_of_ms: epochMs,
1611
1810
  /** The windows meant for this account (and main when main took the reading). */
1612
- windows: z25.array(ChatPlace).max(200),
1811
+ windows: z26.array(ChatPlace).max(200),
1613
1812
  /** The window that took the reading is open now and the reading is under 30 minutes old. */
1614
- live: z25.boolean(),
1813
+ live: z26.boolean(),
1615
1814
  /** The next weekly reset, when known. */
1616
1815
  weekly_resets_at_ms: epochMs.nullable(),
1617
1816
  /** That reset time is Claude's own (its reading, or a reset seen in its usage history). */
1618
- weekly_reset_official: z25.boolean().nullable(),
1817
+ weekly_reset_official: z26.boolean().nullable(),
1619
1818
  /** 1.13: the account's plan as the app names it (Codex: "pro", "prolite"), when recorded. */
1620
- plan: z25.string().max(80).optional(),
1819
+ plan: z26.string().max(80).optional(),
1621
1820
  /** 1.13: the account's credit balance as the app records it (Codex), when recorded. */
1622
- credits: z25.string().max(40).optional()
1821
+ credits: z26.string().max(40).optional()
1623
1822
  });
1624
- var AccountReset = z25.strictObject({
1823
+ var AccountReset = z26.strictObject({
1625
1824
  window: ChatPlace,
1626
- account: z25.string().max(320).nullable(),
1825
+ account: z26.string().max(320).nullable(),
1627
1826
  next_reset_ms: epochMs.nullable(),
1628
1827
  /** claude: the app's own reading; usage_history: a weekly drop seen in its usage record; your_list: the person's own entry. */
1629
- source: z25.enum(["claude", "usage_history", "your_list"]).nullable(),
1828
+ source: z26.enum(["claude", "usage_history", "your_list"]).nullable(),
1630
1829
  /** claude or usage_history. */
1631
- official: z25.boolean(),
1830
+ official: z26.boolean(),
1632
1831
  /** Set when the person's list disagrees with the official time. */
1633
- note: z25.string().max(200).nullable()
1832
+ note: z26.string().max(200).nullable()
1634
1833
  });
1635
- var AppsWindowsListParams = z25.strictObject({ app_key: AppKey });
1636
- var AppsWindowsListResult = z25.strictObject({ app_key: AppKey, windows: z25.array(AppWindowInfo).max(200) });
1637
- var AppsAccountsUsageParams = z25.strictObject({ app_key: AppKey });
1638
- var AppsAccountsUsageResult = z25.strictObject({
1834
+ var AppsWindowsListParams = z26.strictObject({ app_key: AppKey });
1835
+ var AppsWindowsListResult = z26.strictObject({ app_key: AppKey, windows: z26.array(AppWindowInfo).max(200) });
1836
+ var AppsAccountsUsageParams = z26.strictObject({ app_key: AppKey });
1837
+ var AppsAccountsUsageResult = z26.strictObject({
1639
1838
  app_key: AppKey,
1640
- accounts: z25.array(AccountUsage).max(500),
1839
+ accounts: z26.array(AccountUsage).max(500),
1641
1840
  /** 1.12: the rows are right but something around them failed (a newly read reset time could not be saved); shown, never hidden. */
1642
- problem: z25.string().max(400).optional()
1841
+ problem: z26.string().max(400).optional()
1643
1842
  });
1644
- var AppsAccountsResetsParams = z25.strictObject({ app_key: AppKey });
1645
- var AppsAccountsResetsResult = z25.strictObject({
1843
+ var AppsAccountsResetsParams = z26.strictObject({ app_key: AppKey });
1844
+ var AppsAccountsResetsResult = z26.strictObject({
1646
1845
  app_key: AppKey,
1647
- resets: z25.array(AccountReset).max(200),
1846
+ resets: z26.array(AccountReset).max(200),
1648
1847
  /** 1.12: as on `apps.accounts.usage`. */
1649
- problem: z25.string().max(400).optional()
1650
- });
1651
- var AppsWindowActionResult = z25.strictObject({ message: z25.string().max(400) });
1652
- var AppsWindowsOpenParams = z25.strictObject({ app_key: AppKey, window: ChatPlace });
1653
- var AppsWindowsReloadParams = z25.strictObject({ app_key: AppKey, window: ChatPlace });
1654
- var AppsWindowsRestartParams = z25.strictObject({ app_key: AppKey, window: ChatPlace, force: z25.boolean().default(false) });
1655
- var AppsWindowsRefreshUsageParams = z25.strictObject({ app_key: AppKey, window: ChatPlace });
1656
- var AppsProjectsMoveParams = z25.strictObject({
1848
+ problem: z26.string().max(400).optional()
1849
+ });
1850
+ var AppsWindowActionResult = z26.strictObject({ message: z26.string().max(400) });
1851
+ var AppsWindowsOpenParams = z26.strictObject({ app_key: AppKey, window: ChatPlace });
1852
+ var AppsWindowsReloadParams = z26.strictObject({ app_key: AppKey, window: ChatPlace });
1853
+ var AppsWindowsRestartParams = z26.strictObject({ app_key: AppKey, window: ChatPlace, force: z26.boolean().default(false) });
1854
+ var AppsWindowsRefreshUsageParams = z26.strictObject({ app_key: AppKey, window: ChatPlace });
1855
+ var AppsProjectsMoveParams = z26.strictObject({
1657
1856
  app_key: AppKey,
1658
1857
  chat_id: ChatId,
1659
1858
  from_project_id: ChatProjectId,
1660
1859
  to_project_id: ChatProjectId.optional(),
1661
- new_project_name: z25.string().min(1).max(200).optional()
1662
- });
1663
- var AppsProjectsMoveResult = z25.strictObject({ chat: ChatRow, project: ChatProject });
1664
- var AppsProjectsCreateParams = z25.strictObject({ app_key: AppKey, name: z25.string().min(1).max(200) });
1665
- var AppsProjectsCreateResult = z25.strictObject({ project: ChatProject });
1666
- var AppsProjectsImportPinsParams = z25.strictObject({ app_key: AppKey });
1667
- var AppsProjectsImportPinsResult = z25.strictObject({ message: z25.string().max(400) });
1668
- var ColdChat = z25.strictObject({
1860
+ new_project_name: z26.string().min(1).max(200).optional()
1861
+ });
1862
+ var AppsProjectsMoveResult = z26.strictObject({ chat: ChatRow, project: ChatProject });
1863
+ var AppsProjectsCreateParams = z26.strictObject({ app_key: AppKey, name: z26.string().min(1).max(200) });
1864
+ var AppsProjectsCreateResult = z26.strictObject({ project: ChatProject });
1865
+ var AppsProjectsImportPinsParams = z26.strictObject({ app_key: AppKey });
1866
+ var AppsProjectsImportPinsResult = z26.strictObject({ message: z26.string().max(400) });
1867
+ var ColdChat = z26.strictObject({
1669
1868
  id: ChatId,
1670
- title: z25.string().max(1e3),
1671
- repo: z25.string().max(200).nullable(),
1672
- window: z25.string().max(64).nullable(),
1673
- account: z25.string().max(320).nullable(),
1674
- model_name: z25.string().max(120).nullable(),
1869
+ title: z26.string().max(1e3),
1870
+ repo: z26.string().max(200).nullable(),
1871
+ window: z26.string().max(64).nullable(),
1872
+ account: z26.string().max(320).nullable(),
1873
+ model_name: z26.string().max(120).nullable(),
1675
1874
  context_tokens: nonNegInt,
1676
1875
  cold_at_ms: epochMs,
1677
1876
  /** Waking it once the cache is cold. */
1678
- cold_cost: z25.number().nullable(),
1877
+ cold_cost: z26.number().nullable(),
1679
1878
  /** Waking it while the cache is warm. */
1680
- warm_cost: z25.number().nullable(),
1879
+ warm_cost: z26.number().nullable(),
1681
1880
  /** Its account is on extra usage (a 5-minute cache, and real money). */
1682
- extra_usage: z25.boolean(),
1881
+ extra_usage: z26.boolean(),
1683
1882
  /** A scheduled routine's run. */
1684
- scheduled: z25.boolean(),
1883
+ scheduled: z26.boolean(),
1685
1884
  /** It can be shown in its window (started in the desktop app). */
1686
- openable: z25.boolean(),
1885
+ openable: z26.boolean(),
1687
1886
  /** How its window was decided, or why it can't be opened. */
1688
- how: z25.string().max(200).nullable()
1887
+ how: z26.string().max(200).nullable()
1689
1888
  });
1690
- var AppsChatsColdParams = z25.strictObject({ app_key: AppKey });
1691
- var AppsChatsColdResult = z25.strictObject({
1889
+ var AppsChatsColdParams = z26.strictObject({ app_key: AppKey });
1890
+ var AppsChatsColdResult = z26.strictObject({
1692
1891
  app_key: AppKey,
1693
1892
  /** Waiting for the person with a warm cache, most urgent first. */
1694
- waiting: z25.array(ColdChat).max(2e3),
1893
+ waiting: z26.array(ColdChat).max(2e3),
1695
1894
  /** Went cold in the last while. */
1696
- recently_cold: z25.array(ColdChat).max(2e3),
1895
+ recently_cold: z26.array(ColdChat).max(2e3),
1697
1896
  /** Chats working right now (not waiting). */
1698
1897
  working: nonNegInt
1699
1898
  });
1700
- var AppsChatsOpenParams = z25.strictObject({ app_key: AppKey, chat_id: ChatId, window: ChatPlace.optional() });
1701
- var SpendSplit = z25.strictObject({ main: z25.number(), helpers: z25.number() });
1702
- var SpendScopes = z25.strictObject({ today: SpendSplit, week: SpendSplit });
1703
- var SpendAccount = z25.strictObject({
1704
- account: z25.string().max(320),
1899
+ var AppsChatsOpenParams = z26.strictObject({ app_key: AppKey, chat_id: ChatId, window: ChatPlace.optional() });
1900
+ var SpendSplit = z26.strictObject({ main: z26.number(), helpers: z26.number() });
1901
+ var SpendScopes = z26.strictObject({ today: SpendSplit, week: SpendSplit });
1902
+ var SpendAccount = z26.strictObject({
1903
+ account: z26.string().max(320),
1705
1904
  spend: SpendScopes,
1706
- last_hour: z25.number().nullable(),
1707
- last_5h: z25.number().nullable(),
1708
- five_hour: z25.number().nullable(),
1709
- weekly: z25.number().nullable(),
1905
+ last_hour: z26.number().nullable(),
1906
+ last_5h: z26.number().nullable(),
1907
+ five_hour: z26.number().nullable(),
1908
+ weekly: z26.number().nullable(),
1710
1909
  as_of_ms: epochMs.nullable(),
1711
1910
  weekly_resets_at_ms: epochMs.nullable(),
1712
1911
  /** When the 5-hour or weekly limit is projected to be reached at the current burn. */
1713
1912
  five_hour_full_at_ms: epochMs.nullable(),
1714
1913
  weekly_full_at_ms: epochMs.nullable(),
1715
1914
  /** The reading is too old to project. */
1716
- stale: z25.boolean()
1915
+ stale: z26.boolean()
1717
1916
  });
1718
- var SpendModel = z25.strictObject({ model: z25.string().max(120), name: z25.string().max(120), spend: SpendScopes });
1719
- var SpendChat = z25.strictObject({
1917
+ var SpendModel = z26.strictObject({ model: z26.string().max(120), name: z26.string().max(120), spend: SpendScopes });
1918
+ var SpendChat = z26.strictObject({
1720
1919
  id: ChatId,
1721
- title: z25.string().max(1e3),
1722
- repo: z25.string().max(200).nullable(),
1723
- window: z25.string().max(64).nullable(),
1920
+ title: z26.string().max(1e3),
1921
+ repo: z26.string().max(200).nullable(),
1922
+ window: z26.string().max(64).nullable(),
1724
1923
  spend: SpendScopes,
1725
1924
  helpers: nonNegInt
1726
1925
  });
1727
- var SpendHelper = z25.strictObject({ model: z25.string().max(120), steps: nonNegInt, over_steps: z25.boolean(), description: z25.string().max(400) });
1728
- var SpendLive = z25.strictObject({ id: ChatId, title: z25.string().max(1e3), window: z25.string().max(64).nullable(), helpers: z25.array(SpendHelper).max(200) });
1729
- var SpendIdleScope = z25.strictObject({ count: nonNegInt, tokens: nonNegInt, cost: z25.number(), avoidable: z25.number() });
1730
- var SpendIdle = z25.strictObject({ id: ChatId, chat: z25.string().max(1e3), who: z25.string().max(400), today: SpendIdleScope, week: SpendIdleScope, last_ms: epochMs });
1731
- var SpendStart = z25.strictObject({ repo: z25.string().max(200), count: nonNegInt, median: nonNegInt, latest: z25.array(nonNegInt).max(20), alarm: z25.string().max(400).nullable() });
1732
- var AppsSpendParams = z25.strictObject({ app_key: AppKey });
1733
- var AppsSpendResult = z25.strictObject({
1926
+ var SpendHelper = z26.strictObject({ model: z26.string().max(120), steps: nonNegInt, over_steps: z26.boolean(), description: z26.string().max(400) });
1927
+ var SpendLive = z26.strictObject({ id: ChatId, title: z26.string().max(1e3), window: z26.string().max(64).nullable(), helpers: z26.array(SpendHelper).max(200) });
1928
+ var SpendIdleScope = z26.strictObject({ count: nonNegInt, tokens: nonNegInt, cost: z26.number(), avoidable: z26.number() });
1929
+ var SpendIdle = z26.strictObject({ id: ChatId, chat: z26.string().max(1e3), who: z26.string().max(400), today: SpendIdleScope, week: SpendIdleScope, last_ms: epochMs });
1930
+ var SpendStart = z26.strictObject({ repo: z26.string().max(200), count: nonNegInt, median: nonNegInt, latest: z26.array(nonNegInt).max(20), alarm: z26.string().max(400).nullable() });
1931
+ var AppsSpendParams = z26.strictObject({ app_key: AppKey });
1932
+ var AppsSpendResult = z26.strictObject({
1734
1933
  app_key: AppKey,
1735
1934
  /** False while older chats are still being read. */
1736
- complete: z25.boolean(),
1737
- today_total: z25.number(),
1738
- week_total: z25.number(),
1739
- idle_today: z25.number(),
1740
- idle_week: z25.number(),
1935
+ complete: z26.boolean(),
1936
+ today_total: z26.number(),
1937
+ week_total: z26.number(),
1938
+ idle_today: z26.number(),
1939
+ idle_week: z26.number(),
1741
1940
  /** Models with no known list price. */
1742
- unpriced: z25.array(z25.string().max(120)).max(100),
1941
+ unpriced: z26.array(z26.string().max(120)).max(100),
1743
1942
  /** Helpers past their step budget, unusual starting sizes. */
1744
- alarms: z25.array(z25.string().max(400)).max(200),
1745
- live: z25.array(SpendLive).max(200),
1746
- accounts: z25.array(SpendAccount).max(200),
1747
- models: z25.array(SpendModel).max(100),
1748
- chats: z25.array(SpendChat).max(500),
1749
- idle: z25.array(SpendIdle).max(500),
1750
- starts: z25.array(SpendStart).max(200)
1751
- });
1752
- var AppsSyncStatusParams = z25.strictObject({ app_key: AppKey });
1753
- var AppsSyncStatusResult = z25.strictObject({
1754
- healthy: z25.boolean(),
1755
- summary: z25.string().max(400),
1756
- problems: z25.array(z25.string().max(400)).max(200),
1757
- warnings: z25.array(z25.string().max(400)).max(200),
1943
+ alarms: z26.array(z26.string().max(400)).max(200),
1944
+ live: z26.array(SpendLive).max(200),
1945
+ accounts: z26.array(SpendAccount).max(200),
1946
+ models: z26.array(SpendModel).max(100),
1947
+ chats: z26.array(SpendChat).max(500),
1948
+ idle: z26.array(SpendIdle).max(500),
1949
+ starts: z26.array(SpendStart).max(200)
1950
+ });
1951
+ var AppsSyncStatusParams = z26.strictObject({ app_key: AppKey });
1952
+ var AppsSyncStatusResult = z26.strictObject({
1953
+ healthy: z26.boolean(),
1954
+ summary: z26.string().max(400),
1955
+ problems: z26.array(z26.string().max(400)).max(200),
1956
+ warnings: z26.array(z26.string().max(400)).max(200),
1758
1957
  /** Accounts seen with no saved name yet (Save account names fixes them). */
1759
- unnamed_accounts: z25.array(z25.string().max(80)).max(200),
1958
+ unnamed_accounts: z26.array(z26.string().max(80)).max(200),
1760
1959
  /** The full report. */
1761
- output: z25.string().max(2e5)
1960
+ output: z26.string().max(2e5)
1762
1961
  });
1763
- var AppsSyncRunParams = z25.strictObject({ app_key: AppKey });
1764
- var AppsWindowsProcessesParams = z25.strictObject({ app_key: AppKey });
1765
- var AppsWindowsProcessesResult = z25.strictObject({ processes: z25.array(z25.string().max(2e3)).max(2e3) });
1766
- var AppsWindowsAddParams = z25.strictObject({ app_key: AppKey, window: ChatPlace, email: z25.string().min(3).max(320) });
1767
- var AppsWindowsSaveNamesParams = z25.strictObject({ app_key: AppKey });
1962
+ var AppsSyncRunParams = z26.strictObject({ app_key: AppKey });
1963
+ var AppsWindowsProcessesParams = z26.strictObject({ app_key: AppKey });
1964
+ var AppsWindowsProcessesResult = z26.strictObject({ processes: z26.array(z26.string().max(2e3)).max(2e3) });
1965
+ var AppsWindowsAddParams = z26.strictObject({ app_key: AppKey, window: ChatPlace, email: z26.string().min(3).max(320) });
1966
+ var AppsWindowsSaveNamesParams = z26.strictObject({ app_key: AppKey });
1768
1967
 
1769
1968
  // src/schema/registry.ts
1770
1969
  var FS_ERR = ["NOT_FOUND", "PERMISSION_DENIED_OS", "INVALID_PARAMS", "RESOURCE_BUSY", "INTERNAL"];
@@ -1860,9 +2059,19 @@ var OPS = {
1860
2059
  "power.status": { params: PowerStatusParams, result: PowerStatusResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] },
1861
2060
  "power.prevent_sleep": { params: PowerPreventSleepParams, result: PowerPreventSleepResult, kind: "unary", since: "1.4", errors: ["PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
1862
2061
  "resources.snapshot": { params: ResourcesSnapshotParams, result: ResourcesSnapshotResult, kind: "unary", since: "1.4", errors: ["INTERNAL"] },
2062
+ "resources.activity": { params: ResourcesActivityParams, result: ResourcesActivityResult, kind: "unary", since: "1.17", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
2063
+ "resources.stop_job": { params: ResourcesStopJobParams, result: ResourcesStopJobResult, kind: "unary", since: "1.17", errors: ["NOT_FOUND", "CONFLICT", "AUTH_FORBIDDEN", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2064
+ "resources.incidents": { params: ResourcesIncidentsParams, result: ResourcesIncidentsResult, kind: "unary", since: "1.17", errors: ["INTERNAL"] },
1863
2065
  "audio.devices": { params: AudioDevicesParams, result: AudioDevicesResult, kind: "unary", since: "1.6", errors: ["PLATFORM_UNSUPPORTED", "INTERNAL"] },
1864
2066
  "audio.record": { params: AudioRecordParams, result: AudioRecordResult, kind: "unary", since: "1.6", errors: ["NOT_FOUND", "PERMISSION_DENIED_OS", "PLATFORM_UNSUPPORTED", "RESOURCE_BUSY", "INTERNAL"] },
1865
2067
  "audio.play": { params: AudioPlayParams, result: AudioPlayResult, kind: "unary", since: "1.6", errors: ["NOT_FOUND", "INVALID_PARAMS", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2068
+ // The local AI Matrx servers (aidream's process-compose stack), supervised from Matrx 2's core.
2069
+ "stack.state": { params: StackStateParams, result: StackStateResult, kind: "unary", since: "1.16", errors: ["INTERNAL"] },
2070
+ "stack.start": { params: StackStartParams, result: StackRunResult, kind: "unary", since: "1.16", errors: ["RESOURCE_BUSY", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2071
+ "stack.stop": { params: StackStopParams, result: StackRunResult, kind: "unary", since: "1.16", errors: ["RESOURCE_BUSY", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
2072
+ "stack.server.action": { params: StackServerActionParams, result: StackServerActionResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "CONFLICT", "INTERNAL"] },
2073
+ "stack.logs": { params: StackLogsParams, result: StackLogsResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "INTERNAL"] },
2074
+ "stack.errors": { params: StackErrorsParams, result: StackErrorsResult, kind: "unary", since: "1.16", errors: ["INTERNAL"] },
1866
2075
  // Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
1867
2076
  "coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] }
1868
2077
  };