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