@camstack/types 1.2.326 → 1.2.328

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.
Files changed (80) hide show
  1. package/dist/addon/base-addon.d.ts +58 -0
  2. package/dist/addon/secret-aware-context.d.ts +27 -0
  3. package/dist/addon/secret-paths.d.ts +48 -0
  4. package/dist/addon/secret-settings-view.d.ts +80 -0
  5. package/dist/addon.d.ts +2 -0
  6. package/dist/addon.js +54 -4
  7. package/dist/addon.mjs +27 -5
  8. package/dist/capabilities/addon-routes.cap.d.ts +2 -2
  9. package/dist/capabilities/addons.cap.d.ts +4 -4
  10. package/dist/capabilities/alerts.cap.d.ts +5 -5
  11. package/dist/capabilities/control.cap.d.ts +11 -11
  12. package/dist/capabilities/day-night.cap.d.ts +8 -8
  13. package/dist/capabilities/device-manager.cap.d.ts +9 -0
  14. package/dist/capabilities/enum-sensor.cap.d.ts +4 -4
  15. package/dist/capabilities/index.d.ts +7 -3
  16. package/dist/capabilities/integrations.cap.d.ts +6 -3
  17. package/dist/capabilities/keychain-admin.cap.d.ts +312 -0
  18. package/dist/capabilities/keychain.cap.d.ts +180 -0
  19. package/dist/capabilities/lawn-mower-control.cap.d.ts +4 -4
  20. package/dist/capabilities/local-network.cap.d.ts +2 -2
  21. package/dist/capabilities/log-channels.cap.d.ts +1 -1
  22. package/dist/capabilities/log-destination.cap.d.ts +5 -5
  23. package/dist/capabilities/login-method.cap.d.ts +3 -0
  24. package/dist/capabilities/mesh-network.cap.d.ts +3 -3
  25. package/dist/capabilities/network-access.cap.d.ts +7 -7
  26. package/dist/capabilities/notification-rules.cap.d.ts +30 -30
  27. package/dist/capabilities/osd-manager.cap.d.ts +11 -11
  28. package/dist/capabilities/osd.cap.d.ts +5 -5
  29. package/dist/capabilities/pipeline-analytics.cap.d.ts +1127 -104
  30. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +384 -0
  31. package/dist/capabilities/pipeline-runner.cap.d.ts +145 -2
  32. package/dist/capabilities/sso-bridge.cap.d.ts +6 -0
  33. package/dist/capabilities/storage.cap.d.ts +1 -1
  34. package/dist/capabilities/system.cap.d.ts +21 -21
  35. package/dist/capabilities/user-management.cap.d.ts +53 -1
  36. package/dist/capabilities/webrtc-session.cap.d.ts +3 -3
  37. package/dist/client.js +38 -1
  38. package/dist/client.mjs +38 -1
  39. package/dist/device/device-context.d.ts +11 -1
  40. package/dist/device/display-icon-vocabulary.d.ts +7 -0
  41. package/dist/device/index.d.ts +2 -1
  42. package/dist/device/zod-secret.d.ts +35 -0
  43. package/dist/enums/event-category.d.ts +7 -0
  44. package/dist/enums.js +1 -1
  45. package/dist/enums.mjs +1 -1
  46. package/dist/{event-category-CtBAl88K.js → event-category-CHduMGvg.js} +7 -0
  47. package/dist/{event-category-B_0XEcLF.mjs → event-category-DaIZi00R.mjs} +7 -0
  48. package/dist/generated/addon-api.d.ts +376 -0
  49. package/dist/generated/cap-input-defaults.d.ts +1 -1
  50. package/dist/generated/capability-router-map.d.ts +8 -2
  51. package/dist/generated/method-access-map.d.ts +1 -1
  52. package/dist/generated/method-device-selectors.d.ts +1 -1
  53. package/dist/generated/system-proxy.d.ts +5 -3
  54. package/dist/health/wiring-health.d.ts +8 -8
  55. package/dist/index.d.ts +8 -3
  56. package/dist/index.js +1970 -110
  57. package/dist/index.mjs +1849 -107
  58. package/dist/interfaces/addon.d.ts +25 -0
  59. package/dist/interfaces/config-ui-secrets.d.ts +12 -0
  60. package/dist/interfaces/config-ui.d.ts +60 -3
  61. package/dist/interfaces/event-bus.d.ts +11 -0
  62. package/dist/interfaces/pipeline-runner-capability.d.ts +18 -0
  63. package/dist/keychain/index.d.ts +5 -0
  64. package/dist/keychain/known-secrets.d.ts +31 -0
  65. package/dist/keychain/resolve-secret-views.d.ts +2 -0
  66. package/dist/keychain/secret-marker.d.ts +52 -0
  67. package/dist/keychain/secret-ref.d.ts +62 -0
  68. package/dist/keychain/secrets-access.d.ts +77 -0
  69. package/dist/logging/log-channel.d.ts +2 -2
  70. package/dist/pipeline/auto-tune/plan-schemas.d.ts +123 -0
  71. package/dist/pipeline/auto-tune/recommend.d.ts +26 -1
  72. package/dist/pipeline/load-balancing/schemas.d.ts +8 -7
  73. package/dist/pipeline/node-benchmark/benchmark-mode.d.ts +57 -0
  74. package/dist/pipeline/node-benchmark/index.d.ts +9 -0
  75. package/dist/pipeline/node-benchmark/results.d.ts +52 -0
  76. package/dist/pipeline/node-benchmark/schemas.d.ts +848 -0
  77. package/dist/pipeline/node-benchmark/step-tree.d.ts +23 -0
  78. package/dist/{sleep-BNeXenvr.mjs → sleep-Cr5YOk3m.mjs} +1337 -33
  79. package/dist/{sleep-DPar9AHl.js → sleep-i3kl-0Na.js} +1628 -66
  80. package/package.json +1 -1
@@ -930,11 +930,24 @@ export declare const RetrainAnnotationKindSchema: z.ZodEnum<{
930
930
  subject: "subject";
931
931
  model_error: "model_error";
932
932
  }>;
933
- /** Did a human draw this box, or did the assist propose it? */
933
+ /**
934
+ * Where a box came from. A machine-sourced box is a DRAFT on the page until
935
+ * the operator confirms it; once saved it keeps its source as provenance.
936
+ *
937
+ * - `operator` — drawn by hand.
938
+ * - `assist` — proposed by a detector run on the copy (the camera's own
939
+ * model, or a larger teacher model).
940
+ * - `pipeline` — the box the live pipeline actually drew on that frame, read
941
+ * back from the track store (never a re-run).
942
+ * - `llm` — proposed by a vision-capable LLM profile.
943
+ */
934
944
  export declare const RetrainAnnotationSourceSchema: z.ZodEnum<{
935
945
  operator: "operator";
946
+ pipeline: "pipeline";
936
947
  assist: "assist";
948
+ llm: "llm";
937
949
  }>;
950
+ export type RetrainAnnotationSource = z.infer<typeof RetrainAnnotationSourceSchema>;
938
951
  /**
939
952
  * One annotated subject.
940
953
  *
@@ -945,7 +958,7 @@ export declare const RetrainAnnotationSourceSchema: z.ZodEnum<{
945
958
  */
946
959
  export declare const RetrainAnnotationSchema: z.ZodObject<{
947
960
  id: z.ZodString;
948
- trackId: z.ZodString;
961
+ trackId: z.ZodOptional<z.ZodString>;
949
962
  deviceId: z.ZodNumber;
950
963
  mediaKey: z.ZodString;
951
964
  bbox: z.ZodObject<{
@@ -970,7 +983,9 @@ export declare const RetrainAnnotationSchema: z.ZodObject<{
970
983
  }>;
971
984
  source: z.ZodEnum<{
972
985
  operator: "operator";
986
+ pipeline: "pipeline";
973
987
  assist: "assist";
988
+ llm: "llm";
974
989
  }>;
975
990
  assistModelId: z.ZodOptional<z.ZodString>;
976
991
  assistScore: z.ZodOptional<z.ZodNumber>;
@@ -993,7 +1008,9 @@ export declare const RetrainAnnotationDraftSchema: z.ZodObject<{
993
1008
  label: z.ZodOptional<z.ZodString>;
994
1009
  source: z.ZodEnum<{
995
1010
  operator: "operator";
1011
+ pipeline: "pipeline";
996
1012
  assist: "assist";
1013
+ llm: "llm";
997
1014
  }>;
998
1015
  subLabel: z.ZodOptional<z.ZodString>;
999
1016
  macroClass: z.ZodEnum<{
@@ -1046,12 +1063,61 @@ export declare const RetrainFrameCandidateSchema: z.ZodObject<{
1046
1063
  copied: z.ZodBoolean;
1047
1064
  }, z.core.$strip>;
1048
1065
  export type RetrainFrameCandidate = z.infer<typeof RetrainFrameCandidateSchema>;
1066
+ /**
1067
+ * One box the live pipeline drew on a copied frame — what a correction starts
1068
+ * from. Derived when the frame is listed, from the track store: the subject
1069
+ * box recorded on the source media row when there is one, else the track
1070
+ * position nearest the frame's capture time. Never stored as an annotation
1071
+ * until the operator confirms it.
1072
+ */
1073
+ export declare const RetrainPipelineBoxSchema: z.ZodObject<{
1074
+ bbox: z.ZodObject<{
1075
+ x: z.ZodNumber;
1076
+ y: z.ZodNumber;
1077
+ w: z.ZodNumber;
1078
+ h: z.ZodNumber;
1079
+ }, z.core.$strip>;
1080
+ macroClass: z.ZodEnum<{
1081
+ person: "person";
1082
+ vehicle: "vehicle";
1083
+ animal: "animal";
1084
+ package: "package";
1085
+ face: "face";
1086
+ plate: "plate";
1087
+ }>;
1088
+ label: z.ZodOptional<z.ZodString>;
1089
+ subLabel: z.ZodOptional<z.ZodString>;
1090
+ score: z.ZodOptional<z.ZodNumber>;
1091
+ modelId: z.ZodOptional<z.ZodString>;
1092
+ trackId: z.ZodString;
1093
+ basis: z.ZodEnum<{
1094
+ position: "position";
1095
+ "subject-box": "subject-box";
1096
+ }>;
1097
+ deltaMs: z.ZodNumber;
1098
+ }, z.core.$strip>;
1099
+ export type RetrainPipelineBox = z.infer<typeof RetrainPipelineBoxSchema>;
1100
+ /**
1101
+ * Where a retrain frame came from: a TRACK's stored media (copy-on-select),
1102
+ * or the RECORDING at an instant — the frame a model saw nothing in has no
1103
+ * track at all.
1104
+ */
1105
+ export declare const RetrainFrameOriginSchema: z.ZodEnum<{
1106
+ recording: "recording";
1107
+ track: "track";
1108
+ }>;
1109
+ export type RetrainFrameOrigin = z.infer<typeof RetrainFrameOriginSchema>;
1049
1110
  /** A frame the dataset OWNS: bytes copied at selection time. */
1050
1111
  export declare const RetrainFrameSchema: z.ZodObject<{
1051
1112
  frameId: z.ZodString;
1052
1113
  deviceId: z.ZodNumber;
1053
- trackId: z.ZodString;
1054
- sourceMediaId: z.ZodNumber;
1114
+ origin: z.ZodEnum<{
1115
+ recording: "recording";
1116
+ track: "track";
1117
+ }>;
1118
+ trackId: z.ZodOptional<z.ZodString>;
1119
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
1120
+ epochMs: z.ZodOptional<z.ZodNumber>;
1055
1121
  sourceKind: z.ZodEnum<{
1056
1122
  crop: "crop";
1057
1123
  thumbnail: "thumbnail";
@@ -1074,6 +1140,35 @@ export declare const RetrainFrameSchema: z.ZodObject<{
1074
1140
  width: z.ZodNumber;
1075
1141
  height: z.ZodNumber;
1076
1142
  copiedAt: z.ZodNumber;
1143
+ capturedAt: z.ZodOptional<z.ZodNumber>;
1144
+ complete: z.ZodBoolean;
1145
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
1146
+ bbox: z.ZodObject<{
1147
+ x: z.ZodNumber;
1148
+ y: z.ZodNumber;
1149
+ w: z.ZodNumber;
1150
+ h: z.ZodNumber;
1151
+ }, z.core.$strip>;
1152
+ macroClass: z.ZodEnum<{
1153
+ person: "person";
1154
+ vehicle: "vehicle";
1155
+ animal: "animal";
1156
+ package: "package";
1157
+ face: "face";
1158
+ plate: "plate";
1159
+ }>;
1160
+ label: z.ZodOptional<z.ZodString>;
1161
+ subLabel: z.ZodOptional<z.ZodString>;
1162
+ score: z.ZodOptional<z.ZodNumber>;
1163
+ modelId: z.ZodOptional<z.ZodString>;
1164
+ trackId: z.ZodString;
1165
+ basis: z.ZodEnum<{
1166
+ position: "position";
1167
+ "subject-box": "subject-box";
1168
+ }>;
1169
+ deltaMs: z.ZodNumber;
1170
+ }, z.core.$strip>>>>;
1171
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1077
1172
  }, z.core.$strip>;
1078
1173
  export type RetrainFrame = z.infer<typeof RetrainFrameSchema>;
1079
1174
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
@@ -1086,8 +1181,13 @@ export declare const RetrainFrameSelectionSchema: z.ZodObject<{
1086
1181
  copied: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1087
1182
  frameId: z.ZodString;
1088
1183
  deviceId: z.ZodNumber;
1089
- trackId: z.ZodString;
1090
- sourceMediaId: z.ZodNumber;
1184
+ origin: z.ZodEnum<{
1185
+ recording: "recording";
1186
+ track: "track";
1187
+ }>;
1188
+ trackId: z.ZodOptional<z.ZodString>;
1189
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
1190
+ epochMs: z.ZodOptional<z.ZodNumber>;
1091
1191
  sourceKind: z.ZodEnum<{
1092
1192
  crop: "crop";
1093
1193
  thumbnail: "thumbnail";
@@ -1110,6 +1210,35 @@ export declare const RetrainFrameSelectionSchema: z.ZodObject<{
1110
1210
  width: z.ZodNumber;
1111
1211
  height: z.ZodNumber;
1112
1212
  copiedAt: z.ZodNumber;
1213
+ capturedAt: z.ZodOptional<z.ZodNumber>;
1214
+ complete: z.ZodBoolean;
1215
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
1216
+ bbox: z.ZodObject<{
1217
+ x: z.ZodNumber;
1218
+ y: z.ZodNumber;
1219
+ w: z.ZodNumber;
1220
+ h: z.ZodNumber;
1221
+ }, z.core.$strip>;
1222
+ macroClass: z.ZodEnum<{
1223
+ person: "person";
1224
+ vehicle: "vehicle";
1225
+ animal: "animal";
1226
+ package: "package";
1227
+ face: "face";
1228
+ plate: "plate";
1229
+ }>;
1230
+ label: z.ZodOptional<z.ZodString>;
1231
+ subLabel: z.ZodOptional<z.ZodString>;
1232
+ score: z.ZodOptional<z.ZodNumber>;
1233
+ modelId: z.ZodOptional<z.ZodString>;
1234
+ trackId: z.ZodString;
1235
+ basis: z.ZodEnum<{
1236
+ position: "position";
1237
+ "subject-box": "subject-box";
1238
+ }>;
1239
+ deltaMs: z.ZodNumber;
1240
+ }, z.core.$strip>>>>;
1241
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1113
1242
  }, z.core.$strip>>>;
1114
1243
  refused: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1115
1244
  sourceMediaId: z.ZodNumber;
@@ -1149,8 +1278,13 @@ export declare const RetrainFrameListSchema: z.ZodObject<{
1149
1278
  copies: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1150
1279
  frameId: z.ZodString;
1151
1280
  deviceId: z.ZodNumber;
1152
- trackId: z.ZodString;
1153
- sourceMediaId: z.ZodNumber;
1281
+ origin: z.ZodEnum<{
1282
+ recording: "recording";
1283
+ track: "track";
1284
+ }>;
1285
+ trackId: z.ZodOptional<z.ZodString>;
1286
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
1287
+ epochMs: z.ZodOptional<z.ZodNumber>;
1154
1288
  sourceKind: z.ZodEnum<{
1155
1289
  crop: "crop";
1156
1290
  thumbnail: "thumbnail";
@@ -1173,10 +1307,91 @@ export declare const RetrainFrameListSchema: z.ZodObject<{
1173
1307
  width: z.ZodNumber;
1174
1308
  height: z.ZodNumber;
1175
1309
  copiedAt: z.ZodNumber;
1310
+ capturedAt: z.ZodOptional<z.ZodNumber>;
1311
+ complete: z.ZodBoolean;
1312
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
1313
+ bbox: z.ZodObject<{
1314
+ x: z.ZodNumber;
1315
+ y: z.ZodNumber;
1316
+ w: z.ZodNumber;
1317
+ h: z.ZodNumber;
1318
+ }, z.core.$strip>;
1319
+ macroClass: z.ZodEnum<{
1320
+ person: "person";
1321
+ vehicle: "vehicle";
1322
+ animal: "animal";
1323
+ package: "package";
1324
+ face: "face";
1325
+ plate: "plate";
1326
+ }>;
1327
+ label: z.ZodOptional<z.ZodString>;
1328
+ subLabel: z.ZodOptional<z.ZodString>;
1329
+ score: z.ZodOptional<z.ZodNumber>;
1330
+ modelId: z.ZodOptional<z.ZodString>;
1331
+ trackId: z.ZodString;
1332
+ basis: z.ZodEnum<{
1333
+ position: "position";
1334
+ "subject-box": "subject-box";
1335
+ }>;
1336
+ deltaMs: z.ZodNumber;
1337
+ }, z.core.$strip>>>>;
1338
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1176
1339
  }, z.core.$strip>>>;
1177
1340
  autoPickMediaId: z.ZodOptional<z.ZodNumber>;
1178
1341
  }, z.core.$strip>;
1179
1342
  export type RetrainFrameList = z.infer<typeof RetrainFrameListSchema>;
1343
+ /**
1344
+ * Which frames an annotated export carries. Every field narrows; an empty
1345
+ * filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
1346
+ * list owned by whoever trains (the training orchestrator), so `frameIds` is
1347
+ * the primitive a version export uses; `batchId` re-selects what an earlier
1348
+ * export carried (`exportedInBatch`).
1349
+ */
1350
+ export declare const RetrainExportFilterSchema: z.ZodObject<{
1351
+ deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1352
+ frameIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1353
+ collectionIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1354
+ batchId: z.ZodOptional<z.ZodString>;
1355
+ completeOnly: z.ZodOptional<z.ZodBoolean>;
1356
+ }, z.core.$strip>;
1357
+ export type RetrainExportFilter = z.infer<typeof RetrainExportFilterSchema>;
1358
+ /**
1359
+ * `frames`: the full frame copies, boxes in `annotations.json`.
1360
+ * `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
1361
+ * convention — the classifier layout.
1362
+ */
1363
+ export declare const RetrainExportLayoutSchema: z.ZodEnum<{
1364
+ frames: "frames";
1365
+ crops: "crops";
1366
+ }>;
1367
+ export type RetrainExportLayout = z.infer<typeof RetrainExportLayoutSchema>;
1368
+ /**
1369
+ * Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
1370
+ * the archive, sent chunk by chunk. Covers a presigned PUT and a provider
1371
+ * addon's data-plane upload route alike. Headers are sent verbatim and never
1372
+ * logged.
1373
+ */
1374
+ export declare const RetrainArchiveTargetSchema: z.ZodObject<{
1375
+ kind: z.ZodLiteral<"http">;
1376
+ method: z.ZodEnum<{
1377
+ PUT: "PUT";
1378
+ POST: "POST";
1379
+ }>;
1380
+ url: z.ZodString;
1381
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1382
+ }, z.core.$strip>;
1383
+ export type RetrainArchiveTarget = z.infer<typeof RetrainArchiveTargetSchema>;
1384
+ export declare const RetrainArchiveResultSchema: z.ZodObject<{
1385
+ batchId: z.ZodString;
1386
+ frames: z.ZodNumber;
1387
+ crops: z.ZodNumber;
1388
+ annotations: z.ZodNumber;
1389
+ missing: z.ZodNumber;
1390
+ bytes: z.ZodNumber;
1391
+ sha256: z.ZodString;
1392
+ status: z.ZodNumber;
1393
+ }, z.core.$strip>;
1394
+ export type RetrainArchiveResult = z.infer<typeof RetrainArchiveResultSchema>;
1180
1395
  /** What the operator asked the assist to look for. */
1181
1396
  export declare const RetrainAssistSubjectSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1182
1397
  kind: z.ZodLiteral<"package">;
@@ -1215,7 +1430,9 @@ export declare const RetrainAssistResultSchema: z.ZodDiscriminatedUnion<[z.ZodOb
1215
1430
  label: z.ZodOptional<z.ZodString>;
1216
1431
  source: z.ZodEnum<{
1217
1432
  operator: "operator";
1433
+ pipeline: "pipeline";
1218
1434
  assist: "assist";
1435
+ llm: "llm";
1219
1436
  }>;
1220
1437
  subLabel: z.ZodOptional<z.ZodString>;
1221
1438
  macroClass: z.ZodEnum<{
@@ -1236,99 +1453,362 @@ export declare const RetrainAssistResultSchema: z.ZodDiscriminatedUnion<[z.ZodOb
1236
1453
  detail: z.ZodOptional<z.ZodString>;
1237
1454
  }, z.core.$strip>], "kind">;
1238
1455
  export type RetrainAssistResult = z.infer<typeof RetrainAssistResultSchema>;
1239
- /** The outcome of a lifecycle move owned by the retrain page. */
1240
- export declare const RetrainTransitionResultSchema: z.ZodObject<{
1241
- trackId: z.ZodString;
1242
- retrainStatus: z.ZodEnum<{
1243
- none: "none";
1244
- staging: "staging";
1245
- trained: "trained";
1246
- }>;
1247
- changed: z.ZodBoolean;
1248
- reason: z.ZodOptional<z.ZodEnum<{
1249
- "unknown-track": "unknown-track";
1250
- "no-frames-copied": "no-frames-copied";
1251
- "not-staging": "not-staging";
1252
- "not-trained": "not-trained";
1253
- unchanged: "unchanged";
1254
- }>>;
1255
- }, z.core.$strip>;
1256
- export type RetrainTransitionResult = z.infer<typeof RetrainTransitionResultSchema>;
1257
- declare const RecentTracksQueryInput: z.ZodObject<{
1258
- deviceIds: z.ZodArray<z.ZodNumber>;
1259
- since: z.ZodOptional<z.ZodNumber>;
1260
- until: z.ZodOptional<z.ZodNumber>;
1261
- limit: z.ZodDefault<z.ZodNumber>;
1262
- cursor: z.ZodOptional<z.ZodString>;
1263
- projection: z.ZodOptional<z.ZodEnum<{
1264
- full: "full";
1265
- slim: "slim";
1266
- }>>;
1267
- includeStationary: z.ZodOptional<z.ZodBoolean>;
1268
- classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1269
- excludeSources: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1270
- sensor: "sensor";
1271
- pipeline: "pipeline";
1272
- audio: "audio";
1273
- onboard: "onboard";
1274
- }>>>;
1456
+ /** A named set over the retrain corpus — membership only, it owns no pixels. */
1457
+ export declare const RetrainCollectionSchema: z.ZodObject<{
1458
+ id: z.ZodString;
1459
+ name: z.ZodString;
1460
+ createdAt: z.ZodNumber;
1461
+ frameCount: z.ZodNumber;
1275
1462
  }, z.core.$strip>;
1276
- export type RecentTracksQuery = z.infer<typeof RecentTracksQueryInput>;
1277
- declare const RecentTracksPageSchema: z.ZodObject<{
1278
- tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1279
- retrainStatus: z.ZodOptional<z.ZodEnum<{
1280
- none: "none";
1281
- staging: "staging";
1282
- trained: "trained";
1283
- }>>;
1284
- markForTrain: z.ZodOptional<z.ZodBoolean>;
1285
- debug: z.ZodOptional<z.ZodBoolean>;
1286
- debugNote: z.ZodOptional<z.ZodString>;
1287
- favourited: z.ZodOptional<z.ZodBoolean>;
1288
- producingDeviceName: z.ZodOptional<z.ZodString>;
1289
- source: z.ZodOptional<z.ZodEnum<{
1290
- sensor: "sensor";
1291
- pipeline: "pipeline";
1292
- audio: "audio";
1293
- onboard: "onboard";
1294
- }>>;
1295
- firstSeen: z.ZodNumber;
1296
- lastSeen: z.ZodNumber;
1297
- positions: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1298
- x: z.ZodNumber;
1299
- y: z.ZodNumber;
1300
- timestamp: z.ZodNumber;
1463
+ export type RetrainCollection = z.infer<typeof RetrainCollectionSchema>;
1464
+ export declare const RetrainCollectionCreateResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1465
+ kind: z.ZodLiteral<"created">;
1466
+ collection: z.ZodObject<{
1467
+ id: z.ZodString;
1468
+ name: z.ZodString;
1469
+ createdAt: z.ZodNumber;
1470
+ frameCount: z.ZodNumber;
1471
+ }, z.core.$strip>;
1472
+ }, z.core.$strip>, z.ZodObject<{
1473
+ kind: z.ZodLiteral<"refused">;
1474
+ reason: z.ZodEnum<{
1475
+ "empty-name": "empty-name";
1476
+ "duplicate-name": "duplicate-name";
1477
+ }>;
1478
+ }, z.core.$strip>], "kind">;
1479
+ export type RetrainCollectionCreateResult = z.infer<typeof RetrainCollectionCreateResultSchema>;
1480
+ export declare const RetrainCollectionRenameResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1481
+ kind: z.ZodLiteral<"renamed">;
1482
+ collection: z.ZodObject<{
1483
+ id: z.ZodString;
1484
+ name: z.ZodString;
1485
+ createdAt: z.ZodNumber;
1486
+ frameCount: z.ZodNumber;
1487
+ }, z.core.$strip>;
1488
+ }, z.core.$strip>, z.ZodObject<{
1489
+ kind: z.ZodLiteral<"refused">;
1490
+ reason: z.ZodEnum<{
1491
+ "empty-name": "empty-name";
1492
+ "duplicate-name": "duplicate-name";
1493
+ "unknown-collection": "unknown-collection";
1494
+ }>;
1495
+ }, z.core.$strip>], "kind">;
1496
+ export type RetrainCollectionRenameResult = z.infer<typeof RetrainCollectionRenameResultSchema>;
1497
+ /**
1498
+ * The outcome of adding the frame at a recording instant. Every refusal is
1499
+ * named: `still-unavailable` (not recording, a gap, or an undecodable frame —
1500
+ * `detail` says which), `still-busy` (the recorder is at its decode bound; try
1501
+ * again), `unreadable-image`, `write-failed`, `unknown-collection`.
1502
+ */
1503
+ export declare const AddRetrainFrameFromRecordingResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1504
+ kind: z.ZodLiteral<"added">;
1505
+ collectionId: z.ZodString;
1506
+ frame: z.ZodObject<{
1507
+ frameId: z.ZodString;
1508
+ deviceId: z.ZodNumber;
1509
+ origin: z.ZodEnum<{
1510
+ recording: "recording";
1511
+ track: "track";
1512
+ }>;
1513
+ trackId: z.ZodOptional<z.ZodString>;
1514
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
1515
+ epochMs: z.ZodOptional<z.ZodNumber>;
1516
+ sourceKind: z.ZodEnum<{
1517
+ crop: "crop";
1518
+ thumbnail: "thumbnail";
1519
+ snapshot: "snapshot";
1520
+ firstFrame: "firstFrame";
1521
+ lastFrame: "lastFrame";
1522
+ fullFrame: "fullFrame";
1523
+ fullFrameBoxed: "fullFrameBoxed";
1524
+ faceCrop: "faceCrop";
1525
+ plateCrop: "plateCrop";
1526
+ keyFrame: "keyFrame";
1527
+ keyFrameSmall: "keyFrameSmall";
1528
+ thumbnailSmall: "thumbnailSmall";
1529
+ confirmationCrop: "confirmationCrop";
1530
+ debugCrop: "debugCrop";
1531
+ sceneFrame: "sceneFrame";
1532
+ lastSceneFrame: "lastSceneFrame";
1533
+ }>;
1534
+ sizeBytes: z.ZodNumber;
1535
+ width: z.ZodNumber;
1536
+ height: z.ZodNumber;
1537
+ copiedAt: z.ZodNumber;
1538
+ capturedAt: z.ZodOptional<z.ZodNumber>;
1539
+ complete: z.ZodBoolean;
1540
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
1301
1541
  bbox: z.ZodObject<{
1302
1542
  x: z.ZodNumber;
1303
1543
  y: z.ZodNumber;
1304
1544
  w: z.ZodNumber;
1305
1545
  h: z.ZodNumber;
1306
1546
  }, z.core.$strip>;
1307
- source: z.ZodOptional<z.ZodEnum<{
1308
- frame: "frame";
1309
- recovery: "recovery";
1310
- }>>;
1547
+ macroClass: z.ZodEnum<{
1548
+ person: "person";
1549
+ vehicle: "vehicle";
1550
+ animal: "animal";
1551
+ package: "package";
1552
+ face: "face";
1553
+ plate: "plate";
1554
+ }>;
1555
+ label: z.ZodOptional<z.ZodString>;
1556
+ subLabel: z.ZodOptional<z.ZodString>;
1311
1557
  score: z.ZodOptional<z.ZodNumber>;
1312
- }, z.core.$strip>>>;
1313
- snapshots: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1314
- timestamp: z.ZodNumber;
1315
- position: z.ZodObject<{
1316
- x: z.ZodNumber;
1317
- y: z.ZodNumber;
1318
- timestamp: z.ZodNumber;
1319
- bbox: z.ZodObject<{
1320
- x: z.ZodNumber;
1321
- y: z.ZodNumber;
1322
- w: z.ZodNumber;
1323
- h: z.ZodNumber;
1324
- }, z.core.$strip>;
1325
- source: z.ZodOptional<z.ZodEnum<{
1326
- frame: "frame";
1327
- recovery: "recovery";
1328
- }>>;
1329
- score: z.ZodOptional<z.ZodNumber>;
1330
- }, z.core.$strip>;
1331
- mediaId: z.ZodNumber;
1558
+ modelId: z.ZodOptional<z.ZodString>;
1559
+ trackId: z.ZodString;
1560
+ basis: z.ZodEnum<{
1561
+ position: "position";
1562
+ "subject-box": "subject-box";
1563
+ }>;
1564
+ deltaMs: z.ZodNumber;
1565
+ }, z.core.$strip>>>>;
1566
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1567
+ }, z.core.$strip>;
1568
+ reused: z.ZodBoolean;
1569
+ }, z.core.$strip>, z.ZodObject<{
1570
+ kind: z.ZodLiteral<"refused">;
1571
+ reason: z.ZodEnum<{
1572
+ "unreadable-image": "unreadable-image";
1573
+ "write-failed": "write-failed";
1574
+ "unknown-collection": "unknown-collection";
1575
+ "still-unavailable": "still-unavailable";
1576
+ "still-busy": "still-busy";
1577
+ }>;
1578
+ detail: z.ZodOptional<z.ZodString>;
1579
+ }, z.core.$strip>], "kind">;
1580
+ export type AddRetrainFrameFromRecordingResult = z.infer<typeof AddRetrainFrameFromRecordingResultSchema>;
1581
+ /** A vision LLM profile the AI assist may use, and where it sends the frame. */
1582
+ export declare const RetrainAssistProfileSchema: z.ZodObject<{
1583
+ id: z.ZodString;
1584
+ name: z.ZodString;
1585
+ model: z.ZodString;
1586
+ kind: z.ZodString;
1587
+ leavesHouse: z.ZodBoolean;
1588
+ }, z.core.$strip>;
1589
+ export type RetrainAssistProfile = z.infer<typeof RetrainAssistProfileSchema>;
1590
+ /** A box the AI assist proposed: a draft, plus the model's own reason. */
1591
+ export declare const RetrainLlmProposalSchema: z.ZodObject<{
1592
+ bbox: z.ZodObject<{
1593
+ x: z.ZodNumber;
1594
+ y: z.ZodNumber;
1595
+ w: z.ZodNumber;
1596
+ h: z.ZodNumber;
1597
+ }, z.core.$strip>;
1598
+ kind: z.ZodEnum<{
1599
+ subject: "subject";
1600
+ model_error: "model_error";
1601
+ }>;
1602
+ label: z.ZodOptional<z.ZodString>;
1603
+ source: z.ZodEnum<{
1604
+ operator: "operator";
1605
+ pipeline: "pipeline";
1606
+ assist: "assist";
1607
+ llm: "llm";
1608
+ }>;
1609
+ subLabel: z.ZodOptional<z.ZodString>;
1610
+ macroClass: z.ZodEnum<{
1611
+ person: "person";
1612
+ vehicle: "vehicle";
1613
+ animal: "animal";
1614
+ package: "package";
1615
+ face: "face";
1616
+ plate: "plate";
1617
+ }>;
1618
+ assistModelId: z.ZodOptional<z.ZodString>;
1619
+ assistScore: z.ZodOptional<z.ZodNumber>;
1620
+ reason: z.ZodString;
1621
+ }, z.core.$strip>;
1622
+ export type RetrainLlmProposal = z.infer<typeof RetrainLlmProposalSchema>;
1623
+ /** What the AI assist said about a box that was already on the canvas. */
1624
+ export declare const RetrainLlmReviewSchema: z.ZodObject<{
1625
+ ref: z.ZodString;
1626
+ verdict: z.ZodEnum<{
1627
+ confirmed: "confirmed";
1628
+ "wrong-class": "wrong-class";
1629
+ "not-an-object": "not-an-object";
1630
+ uncertain: "uncertain";
1631
+ }>;
1632
+ suggestedClass: z.ZodOptional<z.ZodEnum<{
1633
+ person: "person";
1634
+ vehicle: "vehicle";
1635
+ animal: "animal";
1636
+ package: "package";
1637
+ face: "face";
1638
+ plate: "plate";
1639
+ }>>;
1640
+ reason: z.ZodString;
1641
+ }, z.core.$strip>;
1642
+ export type RetrainLlmReview = z.infer<typeof RetrainLlmReviewSchema>;
1643
+ /**
1644
+ * The AI assist's answer. `proposed` carries drafts (`source: 'llm'`, the
1645
+ * model and its confidence) and reviews; items the model got wrong (a box off
1646
+ * the frame, an unasked class, an unknown ref) are dropped and counted in
1647
+ * `rejected`. A whole answer that is not the schema is `malformed-answer`.
1648
+ */
1649
+ export declare const RetrainLlmAssistResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1650
+ kind: z.ZodLiteral<"proposed">;
1651
+ profileId: z.ZodString;
1652
+ model: z.ZodString;
1653
+ leftHouse: z.ZodBoolean;
1654
+ proposals: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1655
+ bbox: z.ZodObject<{
1656
+ x: z.ZodNumber;
1657
+ y: z.ZodNumber;
1658
+ w: z.ZodNumber;
1659
+ h: z.ZodNumber;
1660
+ }, z.core.$strip>;
1661
+ kind: z.ZodEnum<{
1662
+ subject: "subject";
1663
+ model_error: "model_error";
1664
+ }>;
1665
+ label: z.ZodOptional<z.ZodString>;
1666
+ source: z.ZodEnum<{
1667
+ operator: "operator";
1668
+ pipeline: "pipeline";
1669
+ assist: "assist";
1670
+ llm: "llm";
1671
+ }>;
1672
+ subLabel: z.ZodOptional<z.ZodString>;
1673
+ macroClass: z.ZodEnum<{
1674
+ person: "person";
1675
+ vehicle: "vehicle";
1676
+ animal: "animal";
1677
+ package: "package";
1678
+ face: "face";
1679
+ plate: "plate";
1680
+ }>;
1681
+ assistModelId: z.ZodOptional<z.ZodString>;
1682
+ assistScore: z.ZodOptional<z.ZodNumber>;
1683
+ reason: z.ZodString;
1684
+ }, z.core.$strip>>>;
1685
+ reviews: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1686
+ ref: z.ZodString;
1687
+ verdict: z.ZodEnum<{
1688
+ confirmed: "confirmed";
1689
+ "wrong-class": "wrong-class";
1690
+ "not-an-object": "not-an-object";
1691
+ uncertain: "uncertain";
1692
+ }>;
1693
+ suggestedClass: z.ZodOptional<z.ZodEnum<{
1694
+ person: "person";
1695
+ vehicle: "vehicle";
1696
+ animal: "animal";
1697
+ package: "package";
1698
+ face: "face";
1699
+ plate: "plate";
1700
+ }>>;
1701
+ reason: z.ZodString;
1702
+ }, z.core.$strip>>>;
1703
+ rejected: z.ZodNumber;
1704
+ }, z.core.$strip>, z.ZodObject<{
1705
+ kind: z.ZodLiteral<"refused">;
1706
+ reason: z.ZodEnum<{
1707
+ "unknown-frame": "unknown-frame";
1708
+ "unreadable-frame": "unreadable-frame";
1709
+ "unknown-profile": "unknown-profile";
1710
+ "profile-disabled": "profile-disabled";
1711
+ "no-vision": "no-vision";
1712
+ "cloud-not-confirmed": "cloud-not-confirmed";
1713
+ "llm-error": "llm-error";
1714
+ "malformed-answer": "malformed-answer";
1715
+ }>;
1716
+ detail: z.ZodOptional<z.ZodString>;
1717
+ }, z.core.$strip>], "kind">;
1718
+ export type RetrainLlmAssistResult = z.infer<typeof RetrainLlmAssistResultSchema>;
1719
+ /** The outcome of a lifecycle move owned by the retrain page. */
1720
+ export declare const RetrainTransitionResultSchema: z.ZodObject<{
1721
+ trackId: z.ZodString;
1722
+ retrainStatus: z.ZodEnum<{
1723
+ none: "none";
1724
+ staging: "staging";
1725
+ trained: "trained";
1726
+ }>;
1727
+ changed: z.ZodBoolean;
1728
+ reason: z.ZodOptional<z.ZodEnum<{
1729
+ "unknown-track": "unknown-track";
1730
+ "no-frames-copied": "no-frames-copied";
1731
+ "not-staging": "not-staging";
1732
+ "not-trained": "not-trained";
1733
+ unchanged: "unchanged";
1734
+ }>>;
1735
+ }, z.core.$strip>;
1736
+ export type RetrainTransitionResult = z.infer<typeof RetrainTransitionResultSchema>;
1737
+ declare const RecentTracksQueryInput: z.ZodObject<{
1738
+ deviceIds: z.ZodArray<z.ZodNumber>;
1739
+ since: z.ZodOptional<z.ZodNumber>;
1740
+ until: z.ZodOptional<z.ZodNumber>;
1741
+ limit: z.ZodDefault<z.ZodNumber>;
1742
+ cursor: z.ZodOptional<z.ZodString>;
1743
+ projection: z.ZodOptional<z.ZodEnum<{
1744
+ full: "full";
1745
+ slim: "slim";
1746
+ }>>;
1747
+ includeStationary: z.ZodOptional<z.ZodBoolean>;
1748
+ classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1749
+ excludeSources: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1750
+ sensor: "sensor";
1751
+ pipeline: "pipeline";
1752
+ audio: "audio";
1753
+ onboard: "onboard";
1754
+ }>>>;
1755
+ }, z.core.$strip>;
1756
+ export type RecentTracksQuery = z.infer<typeof RecentTracksQueryInput>;
1757
+ declare const RecentTracksPageSchema: z.ZodObject<{
1758
+ tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1759
+ retrainStatus: z.ZodOptional<z.ZodEnum<{
1760
+ none: "none";
1761
+ staging: "staging";
1762
+ trained: "trained";
1763
+ }>>;
1764
+ markForTrain: z.ZodOptional<z.ZodBoolean>;
1765
+ debug: z.ZodOptional<z.ZodBoolean>;
1766
+ debugNote: z.ZodOptional<z.ZodString>;
1767
+ favourited: z.ZodOptional<z.ZodBoolean>;
1768
+ producingDeviceName: z.ZodOptional<z.ZodString>;
1769
+ source: z.ZodOptional<z.ZodEnum<{
1770
+ sensor: "sensor";
1771
+ pipeline: "pipeline";
1772
+ audio: "audio";
1773
+ onboard: "onboard";
1774
+ }>>;
1775
+ firstSeen: z.ZodNumber;
1776
+ lastSeen: z.ZodNumber;
1777
+ positions: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1778
+ x: z.ZodNumber;
1779
+ y: z.ZodNumber;
1780
+ timestamp: z.ZodNumber;
1781
+ bbox: z.ZodObject<{
1782
+ x: z.ZodNumber;
1783
+ y: z.ZodNumber;
1784
+ w: z.ZodNumber;
1785
+ h: z.ZodNumber;
1786
+ }, z.core.$strip>;
1787
+ source: z.ZodOptional<z.ZodEnum<{
1788
+ frame: "frame";
1789
+ recovery: "recovery";
1790
+ }>>;
1791
+ score: z.ZodOptional<z.ZodNumber>;
1792
+ }, z.core.$strip>>>;
1793
+ snapshots: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1794
+ timestamp: z.ZodNumber;
1795
+ position: z.ZodObject<{
1796
+ x: z.ZodNumber;
1797
+ y: z.ZodNumber;
1798
+ timestamp: z.ZodNumber;
1799
+ bbox: z.ZodObject<{
1800
+ x: z.ZodNumber;
1801
+ y: z.ZodNumber;
1802
+ w: z.ZodNumber;
1803
+ h: z.ZodNumber;
1804
+ }, z.core.$strip>;
1805
+ source: z.ZodOptional<z.ZodEnum<{
1806
+ frame: "frame";
1807
+ recovery: "recovery";
1808
+ }>>;
1809
+ score: z.ZodOptional<z.ZodNumber>;
1810
+ }, z.core.$strip>;
1811
+ mediaId: z.ZodNumber;
1332
1812
  }, z.core.$strip>>>;
1333
1813
  zonesVisited: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1334
1814
  zoneNames: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
@@ -3676,8 +4156,13 @@ export declare const pipelineAnalyticsCapability: {
3676
4156
  copies: z.ZodReadonly<z.ZodArray<z.ZodObject<{
3677
4157
  frameId: z.ZodString;
3678
4158
  deviceId: z.ZodNumber;
3679
- trackId: z.ZodString;
3680
- sourceMediaId: z.ZodNumber;
4159
+ origin: z.ZodEnum<{
4160
+ recording: "recording";
4161
+ track: "track";
4162
+ }>;
4163
+ trackId: z.ZodOptional<z.ZodString>;
4164
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
4165
+ epochMs: z.ZodOptional<z.ZodNumber>;
3681
4166
  sourceKind: z.ZodEnum<{
3682
4167
  crop: "crop";
3683
4168
  thumbnail: "thumbnail";
@@ -3700,6 +4185,35 @@ export declare const pipelineAnalyticsCapability: {
3700
4185
  width: z.ZodNumber;
3701
4186
  height: z.ZodNumber;
3702
4187
  copiedAt: z.ZodNumber;
4188
+ capturedAt: z.ZodOptional<z.ZodNumber>;
4189
+ complete: z.ZodBoolean;
4190
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
4191
+ bbox: z.ZodObject<{
4192
+ x: z.ZodNumber;
4193
+ y: z.ZodNumber;
4194
+ w: z.ZodNumber;
4195
+ h: z.ZodNumber;
4196
+ }, z.core.$strip>;
4197
+ macroClass: z.ZodEnum<{
4198
+ person: "person";
4199
+ vehicle: "vehicle";
4200
+ animal: "animal";
4201
+ package: "package";
4202
+ face: "face";
4203
+ plate: "plate";
4204
+ }>;
4205
+ label: z.ZodOptional<z.ZodString>;
4206
+ subLabel: z.ZodOptional<z.ZodString>;
4207
+ score: z.ZodOptional<z.ZodNumber>;
4208
+ modelId: z.ZodOptional<z.ZodString>;
4209
+ trackId: z.ZodString;
4210
+ basis: z.ZodEnum<{
4211
+ position: "position";
4212
+ "subject-box": "subject-box";
4213
+ }>;
4214
+ deltaMs: z.ZodNumber;
4215
+ }, z.core.$strip>>>>;
4216
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
3703
4217
  }, z.core.$strip>>>;
3704
4218
  autoPickMediaId: z.ZodOptional<z.ZodNumber>;
3705
4219
  }, z.core.$strip>, "query">;
@@ -3725,8 +4239,13 @@ export declare const pipelineAnalyticsCapability: {
3725
4239
  copied: z.ZodReadonly<z.ZodArray<z.ZodObject<{
3726
4240
  frameId: z.ZodString;
3727
4241
  deviceId: z.ZodNumber;
3728
- trackId: z.ZodString;
3729
- sourceMediaId: z.ZodNumber;
4242
+ origin: z.ZodEnum<{
4243
+ recording: "recording";
4244
+ track: "track";
4245
+ }>;
4246
+ trackId: z.ZodOptional<z.ZodString>;
4247
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
4248
+ epochMs: z.ZodOptional<z.ZodNumber>;
3730
4249
  sourceKind: z.ZodEnum<{
3731
4250
  crop: "crop";
3732
4251
  thumbnail: "thumbnail";
@@ -3749,6 +4268,35 @@ export declare const pipelineAnalyticsCapability: {
3749
4268
  width: z.ZodNumber;
3750
4269
  height: z.ZodNumber;
3751
4270
  copiedAt: z.ZodNumber;
4271
+ capturedAt: z.ZodOptional<z.ZodNumber>;
4272
+ complete: z.ZodBoolean;
4273
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
4274
+ bbox: z.ZodObject<{
4275
+ x: z.ZodNumber;
4276
+ y: z.ZodNumber;
4277
+ w: z.ZodNumber;
4278
+ h: z.ZodNumber;
4279
+ }, z.core.$strip>;
4280
+ macroClass: z.ZodEnum<{
4281
+ person: "person";
4282
+ vehicle: "vehicle";
4283
+ animal: "animal";
4284
+ package: "package";
4285
+ face: "face";
4286
+ plate: "plate";
4287
+ }>;
4288
+ label: z.ZodOptional<z.ZodString>;
4289
+ subLabel: z.ZodOptional<z.ZodString>;
4290
+ score: z.ZodOptional<z.ZodNumber>;
4291
+ modelId: z.ZodOptional<z.ZodString>;
4292
+ trackId: z.ZodString;
4293
+ basis: z.ZodEnum<{
4294
+ position: "position";
4295
+ "subject-box": "subject-box";
4296
+ }>;
4297
+ deltaMs: z.ZodNumber;
4298
+ }, z.core.$strip>>>>;
4299
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
3752
4300
  }, z.core.$strip>>>;
3753
4301
  refused: z.ZodReadonly<z.ZodArray<z.ZodObject<{
3754
4302
  sourceMediaId: z.ZodNumber;
@@ -3764,7 +4312,7 @@ export declare const pipelineAnalyticsCapability: {
3764
4312
  * a frame leaves the dataset before export. */
3765
4313
  readonly deselectRetrainFrame: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
3766
4314
  deviceId: z.ZodNumber;
3767
- trackId: z.ZodString;
4315
+ trackId: z.ZodOptional<z.ZodString>;
3768
4316
  frameId: z.ZodString;
3769
4317
  }, z.core.$strip>, z.ZodObject<{
3770
4318
  removed: z.ZodBoolean;
@@ -3803,7 +4351,7 @@ export declare const pipelineAnalyticsCapability: {
3803
4351
  */
3804
4352
  readonly proposeRetrainAnnotations: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
3805
4353
  deviceId: z.ZodNumber;
3806
- trackId: z.ZodString;
4354
+ trackId: z.ZodOptional<z.ZodString>;
3807
4355
  frameId: z.ZodString;
3808
4356
  subject: z.ZodDiscriminatedUnion<[z.ZodObject<{
3809
4357
  kind: z.ZodLiteral<"package">;
@@ -3838,7 +4386,9 @@ export declare const pipelineAnalyticsCapability: {
3838
4386
  label: z.ZodOptional<z.ZodString>;
3839
4387
  source: z.ZodEnum<{
3840
4388
  operator: "operator";
4389
+ pipeline: "pipeline";
3841
4390
  assist: "assist";
4391
+ llm: "llm";
3842
4392
  }>;
3843
4393
  subLabel: z.ZodOptional<z.ZodString>;
3844
4394
  macroClass: z.ZodEnum<{
@@ -3858,12 +4408,14 @@ export declare const pipelineAnalyticsCapability: {
3858
4408
  reason: z.ZodString;
3859
4409
  detail: z.ZodOptional<z.ZodString>;
3860
4410
  }, z.core.$strip>], "kind">, "mutation">;
3861
- /** Every annotation on a track, oldest first. */
4411
+ /** Every annotation on a track, or on named frames (a recording still has
4412
+ * no track), oldest first. One of the two is required. */
3862
4413
  readonly listRetrainAnnotations: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
3863
- trackId: z.ZodString;
4414
+ trackId: z.ZodOptional<z.ZodString>;
4415
+ frameIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3864
4416
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
3865
4417
  id: z.ZodString;
3866
- trackId: z.ZodString;
4418
+ trackId: z.ZodOptional<z.ZodString>;
3867
4419
  deviceId: z.ZodNumber;
3868
4420
  mediaKey: z.ZodString;
3869
4421
  bbox: z.ZodObject<{
@@ -3888,7 +4440,9 @@ export declare const pipelineAnalyticsCapability: {
3888
4440
  }>;
3889
4441
  source: z.ZodEnum<{
3890
4442
  operator: "operator";
4443
+ pipeline: "pipeline";
3891
4444
  assist: "assist";
4445
+ llm: "llm";
3892
4446
  }>;
3893
4447
  assistModelId: z.ZodOptional<z.ZodString>;
3894
4448
  assistScore: z.ZodOptional<z.ZodNumber>;
@@ -3910,7 +4464,7 @@ export declare const pipelineAnalyticsCapability: {
3910
4464
  */
3911
4465
  readonly saveRetrainAnnotations: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
3912
4466
  deviceId: z.ZodNumber;
3913
- trackId: z.ZodString;
4467
+ trackId: z.ZodOptional<z.ZodString>;
3914
4468
  frameId: z.ZodString;
3915
4469
  annotations: z.ZodArray<z.ZodObject<{
3916
4470
  bbox: z.ZodObject<{
@@ -3926,7 +4480,9 @@ export declare const pipelineAnalyticsCapability: {
3926
4480
  label: z.ZodOptional<z.ZodString>;
3927
4481
  source: z.ZodEnum<{
3928
4482
  operator: "operator";
4483
+ pipeline: "pipeline";
3929
4484
  assist: "assist";
4485
+ llm: "llm";
3930
4486
  }>;
3931
4487
  subLabel: z.ZodOptional<z.ZodString>;
3932
4488
  macroClass: z.ZodEnum<{
@@ -3942,7 +4498,7 @@ export declare const pipelineAnalyticsCapability: {
3942
4498
  }, z.core.$strip>>;
3943
4499
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
3944
4500
  id: z.ZodString;
3945
- trackId: z.ZodString;
4501
+ trackId: z.ZodOptional<z.ZodString>;
3946
4502
  deviceId: z.ZodNumber;
3947
4503
  mediaKey: z.ZodString;
3948
4504
  bbox: z.ZodObject<{
@@ -3967,7 +4523,9 @@ export declare const pipelineAnalyticsCapability: {
3967
4523
  }>;
3968
4524
  source: z.ZodEnum<{
3969
4525
  operator: "operator";
4526
+ pipeline: "pipeline";
3970
4527
  assist: "assist";
4528
+ llm: "llm";
3971
4529
  }>;
3972
4530
  assistModelId: z.ZodOptional<z.ZodString>;
3973
4531
  assistScore: z.ZodOptional<z.ZodNumber>;
@@ -4045,9 +4603,474 @@ export declare const pipelineAnalyticsCapability: {
4045
4603
  */
4046
4604
  readonly getRetrainExportUrl: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4047
4605
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4606
+ frameIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4607
+ collectionIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4608
+ batchId: z.ZodOptional<z.ZodString>;
4609
+ completeOnly: z.ZodOptional<z.ZodBoolean>;
4610
+ layout: z.ZodOptional<z.ZodEnum<{
4611
+ frames: "frames";
4612
+ crops: "crops";
4613
+ }>>;
4048
4614
  }, z.core.$strip>, z.ZodObject<{
4049
4615
  url: z.ZodString;
4050
4616
  }, z.core.$strip>, "query">;
4617
+ /**
4618
+ * The operator's "every subject in this frame is boxed" — set and cleared
4619
+ * by hand, never derived: a frame with no box may be a complete hard
4620
+ * negative, and a frame with three boxes may still miss a fourth person.
4621
+ */
4622
+ readonly setRetrainFrameComplete: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4623
+ deviceId: z.ZodNumber;
4624
+ trackId: z.ZodOptional<z.ZodString>;
4625
+ frameId: z.ZodString;
4626
+ complete: z.ZodBoolean;
4627
+ }, z.core.$strip>, z.ZodObject<{
4628
+ frameId: z.ZodString;
4629
+ deviceId: z.ZodNumber;
4630
+ origin: z.ZodEnum<{
4631
+ recording: "recording";
4632
+ track: "track";
4633
+ }>;
4634
+ trackId: z.ZodOptional<z.ZodString>;
4635
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
4636
+ epochMs: z.ZodOptional<z.ZodNumber>;
4637
+ sourceKind: z.ZodEnum<{
4638
+ crop: "crop";
4639
+ thumbnail: "thumbnail";
4640
+ snapshot: "snapshot";
4641
+ firstFrame: "firstFrame";
4642
+ lastFrame: "lastFrame";
4643
+ fullFrame: "fullFrame";
4644
+ fullFrameBoxed: "fullFrameBoxed";
4645
+ faceCrop: "faceCrop";
4646
+ plateCrop: "plateCrop";
4647
+ keyFrame: "keyFrame";
4648
+ keyFrameSmall: "keyFrameSmall";
4649
+ thumbnailSmall: "thumbnailSmall";
4650
+ confirmationCrop: "confirmationCrop";
4651
+ debugCrop: "debugCrop";
4652
+ sceneFrame: "sceneFrame";
4653
+ lastSceneFrame: "lastSceneFrame";
4654
+ }>;
4655
+ sizeBytes: z.ZodNumber;
4656
+ width: z.ZodNumber;
4657
+ height: z.ZodNumber;
4658
+ copiedAt: z.ZodNumber;
4659
+ capturedAt: z.ZodOptional<z.ZodNumber>;
4660
+ complete: z.ZodBoolean;
4661
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
4662
+ bbox: z.ZodObject<{
4663
+ x: z.ZodNumber;
4664
+ y: z.ZodNumber;
4665
+ w: z.ZodNumber;
4666
+ h: z.ZodNumber;
4667
+ }, z.core.$strip>;
4668
+ macroClass: z.ZodEnum<{
4669
+ person: "person";
4670
+ vehicle: "vehicle";
4671
+ animal: "animal";
4672
+ package: "package";
4673
+ face: "face";
4674
+ plate: "plate";
4675
+ }>;
4676
+ label: z.ZodOptional<z.ZodString>;
4677
+ subLabel: z.ZodOptional<z.ZodString>;
4678
+ score: z.ZodOptional<z.ZodNumber>;
4679
+ modelId: z.ZodOptional<z.ZodString>;
4680
+ trackId: z.ZodString;
4681
+ basis: z.ZodEnum<{
4682
+ position: "position";
4683
+ "subject-box": "subject-box";
4684
+ }>;
4685
+ deltaMs: z.ZodNumber;
4686
+ }, z.core.$strip>>>>;
4687
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
4688
+ }, z.core.$strip>, "mutation">;
4689
+ /**
4690
+ * Stream the annotated archive to a TARGET instead of a browser — the
4691
+ * same tar `getRetrainExportUrl` serves (manifest first, one JPEG in
4692
+ * memory at a time, paced), written chunk by chunk into one HTTP request.
4693
+ * The bytes never cross this cap and never land on the hub's disk; the
4694
+ * answer is what was sent, with its sha256.
4695
+ */
4696
+ readonly writeRetrainArchive: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4697
+ filter: z.ZodObject<{
4698
+ deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4699
+ frameIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4700
+ collectionIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4701
+ batchId: z.ZodOptional<z.ZodString>;
4702
+ completeOnly: z.ZodOptional<z.ZodBoolean>;
4703
+ }, z.core.$strip>;
4704
+ layout: z.ZodEnum<{
4705
+ frames: "frames";
4706
+ crops: "crops";
4707
+ }>;
4708
+ target: z.ZodObject<{
4709
+ kind: z.ZodLiteral<"http">;
4710
+ method: z.ZodEnum<{
4711
+ PUT: "PUT";
4712
+ POST: "POST";
4713
+ }>;
4714
+ url: z.ZodString;
4715
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4716
+ }, z.core.$strip>;
4717
+ }, z.core.$strip>, z.ZodObject<{
4718
+ batchId: z.ZodString;
4719
+ frames: z.ZodNumber;
4720
+ crops: z.ZodNumber;
4721
+ annotations: z.ZodNumber;
4722
+ missing: z.ZodNumber;
4723
+ bytes: z.ZodNumber;
4724
+ sha256: z.ZodString;
4725
+ status: z.ZodNumber;
4726
+ }, z.core.$strip>, "mutation">;
4727
+ /** The enabled, vision-capable LLM profiles, each saying whether a frame
4728
+ * sent to it leaves the house. */
4729
+ readonly listRetrainAssistProfiles: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
4730
+ id: z.ZodString;
4731
+ name: z.ZodString;
4732
+ model: z.ZodString;
4733
+ kind: z.ZodString;
4734
+ leavesHouse: z.ZodBoolean;
4735
+ }, z.core.$strip>>>, "query">;
4736
+ /**
4737
+ * Ask a vision LLM (the `llm` capability) about ONE copied frame: list the
4738
+ * objects of `classes` with boxes, and review the boxes already on the
4739
+ * canvas (sent by `ref`). Answers drafts (`source: 'llm'`) and reviews —
4740
+ * nothing is stored, nothing is accepted. A profile that sends the frame
4741
+ * outside the house is refused unless `allowCloud` says the operator
4742
+ * confirmed this run.
4743
+ */
4744
+ readonly proposeRetrainAnnotationsWithLlm: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4745
+ deviceId: z.ZodNumber;
4746
+ trackId: z.ZodOptional<z.ZodString>;
4747
+ frameId: z.ZodString;
4748
+ profileId: z.ZodString;
4749
+ classes: z.ZodArray<z.ZodEnum<{
4750
+ person: "person";
4751
+ vehicle: "vehicle";
4752
+ animal: "animal";
4753
+ package: "package";
4754
+ face: "face";
4755
+ plate: "plate";
4756
+ }>>;
4757
+ boxes: z.ZodArray<z.ZodObject<{
4758
+ ref: z.ZodString;
4759
+ bbox: z.ZodObject<{
4760
+ x: z.ZodNumber;
4761
+ y: z.ZodNumber;
4762
+ w: z.ZodNumber;
4763
+ h: z.ZodNumber;
4764
+ }, z.core.$strip>;
4765
+ macroClass: z.ZodEnum<{
4766
+ person: "person";
4767
+ vehicle: "vehicle";
4768
+ animal: "animal";
4769
+ package: "package";
4770
+ face: "face";
4771
+ plate: "plate";
4772
+ }>;
4773
+ label: z.ZodOptional<z.ZodString>;
4774
+ }, z.core.$strip>>;
4775
+ allowCloud: z.ZodBoolean;
4776
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
4777
+ kind: z.ZodLiteral<"proposed">;
4778
+ profileId: z.ZodString;
4779
+ model: z.ZodString;
4780
+ leftHouse: z.ZodBoolean;
4781
+ proposals: z.ZodReadonly<z.ZodArray<z.ZodObject<{
4782
+ bbox: z.ZodObject<{
4783
+ x: z.ZodNumber;
4784
+ y: z.ZodNumber;
4785
+ w: z.ZodNumber;
4786
+ h: z.ZodNumber;
4787
+ }, z.core.$strip>;
4788
+ kind: z.ZodEnum<{
4789
+ subject: "subject";
4790
+ model_error: "model_error";
4791
+ }>;
4792
+ label: z.ZodOptional<z.ZodString>;
4793
+ source: z.ZodEnum<{
4794
+ operator: "operator";
4795
+ pipeline: "pipeline";
4796
+ assist: "assist";
4797
+ llm: "llm";
4798
+ }>;
4799
+ subLabel: z.ZodOptional<z.ZodString>;
4800
+ macroClass: z.ZodEnum<{
4801
+ person: "person";
4802
+ vehicle: "vehicle";
4803
+ animal: "animal";
4804
+ package: "package";
4805
+ face: "face";
4806
+ plate: "plate";
4807
+ }>;
4808
+ assistModelId: z.ZodOptional<z.ZodString>;
4809
+ assistScore: z.ZodOptional<z.ZodNumber>;
4810
+ reason: z.ZodString;
4811
+ }, z.core.$strip>>>;
4812
+ reviews: z.ZodReadonly<z.ZodArray<z.ZodObject<{
4813
+ ref: z.ZodString;
4814
+ verdict: z.ZodEnum<{
4815
+ confirmed: "confirmed";
4816
+ "wrong-class": "wrong-class";
4817
+ "not-an-object": "not-an-object";
4818
+ uncertain: "uncertain";
4819
+ }>;
4820
+ suggestedClass: z.ZodOptional<z.ZodEnum<{
4821
+ person: "person";
4822
+ vehicle: "vehicle";
4823
+ animal: "animal";
4824
+ package: "package";
4825
+ face: "face";
4826
+ plate: "plate";
4827
+ }>>;
4828
+ reason: z.ZodString;
4829
+ }, z.core.$strip>>>;
4830
+ rejected: z.ZodNumber;
4831
+ }, z.core.$strip>, z.ZodObject<{
4832
+ kind: z.ZodLiteral<"refused">;
4833
+ reason: z.ZodEnum<{
4834
+ "unknown-frame": "unknown-frame";
4835
+ "unreadable-frame": "unreadable-frame";
4836
+ "unknown-profile": "unknown-profile";
4837
+ "profile-disabled": "profile-disabled";
4838
+ "no-vision": "no-vision";
4839
+ "cloud-not-confirmed": "cloud-not-confirmed";
4840
+ "llm-error": "llm-error";
4841
+ "malformed-answer": "malformed-answer";
4842
+ }>;
4843
+ detail: z.ZodOptional<z.ZodString>;
4844
+ }, z.core.$strip>], "kind">, "mutation">;
4845
+ /**
4846
+ * Create a named collection — a set over the retrain corpus ("packages
4847
+ * porch night"). Names are unique case-insensitively and never empty;
4848
+ * both refusals are named.
4849
+ */
4850
+ readonly createRetrainCollection: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4851
+ name: z.ZodString;
4852
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
4853
+ kind: z.ZodLiteral<"created">;
4854
+ collection: z.ZodObject<{
4855
+ id: z.ZodString;
4856
+ name: z.ZodString;
4857
+ createdAt: z.ZodNumber;
4858
+ frameCount: z.ZodNumber;
4859
+ }, z.core.$strip>;
4860
+ }, z.core.$strip>, z.ZodObject<{
4861
+ kind: z.ZodLiteral<"refused">;
4862
+ reason: z.ZodEnum<{
4863
+ "empty-name": "empty-name";
4864
+ "duplicate-name": "duplicate-name";
4865
+ }>;
4866
+ }, z.core.$strip>], "kind">, "mutation">;
4867
+ /** Every collection, newest first, with its frame count. */
4868
+ readonly listRetrainCollections: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
4869
+ id: z.ZodString;
4870
+ name: z.ZodString;
4871
+ createdAt: z.ZodNumber;
4872
+ frameCount: z.ZodNumber;
4873
+ }, z.core.$strip>>>, "query">;
4874
+ readonly renameRetrainCollection: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4875
+ id: z.ZodString;
4876
+ name: z.ZodString;
4877
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
4878
+ kind: z.ZodLiteral<"renamed">;
4879
+ collection: z.ZodObject<{
4880
+ id: z.ZodString;
4881
+ name: z.ZodString;
4882
+ createdAt: z.ZodNumber;
4883
+ frameCount: z.ZodNumber;
4884
+ }, z.core.$strip>;
4885
+ }, z.core.$strip>, z.ZodObject<{
4886
+ kind: z.ZodLiteral<"refused">;
4887
+ reason: z.ZodEnum<{
4888
+ "empty-name": "empty-name";
4889
+ "duplicate-name": "duplicate-name";
4890
+ "unknown-collection": "unknown-collection";
4891
+ }>;
4892
+ }, z.core.$strip>], "kind">, "mutation">;
4893
+ /**
4894
+ * Delete a collection. Its recording stills that no other collection
4895
+ * holds are deleted with their annotations (nothing else reaches them);
4896
+ * frames copied from tracks always stay in the dataset.
4897
+ */
4898
+ readonly deleteRetrainCollection: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4899
+ id: z.ZodString;
4900
+ }, z.core.$strip>, z.ZodObject<{
4901
+ deleted: z.ZodBoolean;
4902
+ removedFrames: z.ZodNumber;
4903
+ }, z.core.$strip>, "mutation">;
4904
+ /**
4905
+ * Add the frame at a recording instant to a collection — the frame the
4906
+ * model may have seen NOTHING in. The recorder re-decodes the native
4907
+ * frame at `epochMs`; the dataset copies it (trackless, durable). The same
4908
+ * moment twice is one copy. Every refusal is named.
4909
+ */
4910
+ readonly addRetrainFrameFromRecording: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4911
+ collectionId: z.ZodString;
4912
+ deviceId: z.ZodNumber;
4913
+ epochMs: z.ZodNumber;
4914
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
4915
+ kind: z.ZodLiteral<"added">;
4916
+ collectionId: z.ZodString;
4917
+ frame: z.ZodObject<{
4918
+ frameId: z.ZodString;
4919
+ deviceId: z.ZodNumber;
4920
+ origin: z.ZodEnum<{
4921
+ recording: "recording";
4922
+ track: "track";
4923
+ }>;
4924
+ trackId: z.ZodOptional<z.ZodString>;
4925
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
4926
+ epochMs: z.ZodOptional<z.ZodNumber>;
4927
+ sourceKind: z.ZodEnum<{
4928
+ crop: "crop";
4929
+ thumbnail: "thumbnail";
4930
+ snapshot: "snapshot";
4931
+ firstFrame: "firstFrame";
4932
+ lastFrame: "lastFrame";
4933
+ fullFrame: "fullFrame";
4934
+ fullFrameBoxed: "fullFrameBoxed";
4935
+ faceCrop: "faceCrop";
4936
+ plateCrop: "plateCrop";
4937
+ keyFrame: "keyFrame";
4938
+ keyFrameSmall: "keyFrameSmall";
4939
+ thumbnailSmall: "thumbnailSmall";
4940
+ confirmationCrop: "confirmationCrop";
4941
+ debugCrop: "debugCrop";
4942
+ sceneFrame: "sceneFrame";
4943
+ lastSceneFrame: "lastSceneFrame";
4944
+ }>;
4945
+ sizeBytes: z.ZodNumber;
4946
+ width: z.ZodNumber;
4947
+ height: z.ZodNumber;
4948
+ copiedAt: z.ZodNumber;
4949
+ capturedAt: z.ZodOptional<z.ZodNumber>;
4950
+ complete: z.ZodBoolean;
4951
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
4952
+ bbox: z.ZodObject<{
4953
+ x: z.ZodNumber;
4954
+ y: z.ZodNumber;
4955
+ w: z.ZodNumber;
4956
+ h: z.ZodNumber;
4957
+ }, z.core.$strip>;
4958
+ macroClass: z.ZodEnum<{
4959
+ person: "person";
4960
+ vehicle: "vehicle";
4961
+ animal: "animal";
4962
+ package: "package";
4963
+ face: "face";
4964
+ plate: "plate";
4965
+ }>;
4966
+ label: z.ZodOptional<z.ZodString>;
4967
+ subLabel: z.ZodOptional<z.ZodString>;
4968
+ score: z.ZodOptional<z.ZodNumber>;
4969
+ modelId: z.ZodOptional<z.ZodString>;
4970
+ trackId: z.ZodString;
4971
+ basis: z.ZodEnum<{
4972
+ position: "position";
4973
+ "subject-box": "subject-box";
4974
+ }>;
4975
+ deltaMs: z.ZodNumber;
4976
+ }, z.core.$strip>>>>;
4977
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
4978
+ }, z.core.$strip>;
4979
+ reused: z.ZodBoolean;
4980
+ }, z.core.$strip>, z.ZodObject<{
4981
+ kind: z.ZodLiteral<"refused">;
4982
+ reason: z.ZodEnum<{
4983
+ "unreadable-image": "unreadable-image";
4984
+ "write-failed": "write-failed";
4985
+ "unknown-collection": "unknown-collection";
4986
+ "still-unavailable": "still-unavailable";
4987
+ "still-busy": "still-busy";
4988
+ }>;
4989
+ detail: z.ZodOptional<z.ZodString>;
4990
+ }, z.core.$strip>], "kind">, "mutation">;
4991
+ /** Add frames already in the dataset to a collection. */
4992
+ readonly addRetrainFramesToCollection: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
4993
+ collectionId: z.ZodString;
4994
+ frameIds: z.ZodArray<z.ZodString>;
4995
+ }, z.core.$strip>, z.ZodObject<{
4996
+ added: z.ZodNumber;
4997
+ alreadyMember: z.ZodNumber;
4998
+ unknownFrameIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
4999
+ }, z.core.$strip>, "mutation">;
5000
+ /** Remove a frame from a collection. A recording still left in no
5001
+ * collection is deleted with its annotations (`deletedFrame`). */
5002
+ readonly removeRetrainFrameFromCollection: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
5003
+ collectionId: z.ZodString;
5004
+ frameId: z.ZodString;
5005
+ }, z.core.$strip>, z.ZodObject<{
5006
+ removed: z.ZodBoolean;
5007
+ deletedFrame: z.ZodBoolean;
5008
+ }, z.core.$strip>, "mutation">;
5009
+ /** The frames of a collection, with their pipeline boxes. */
5010
+ readonly listRetrainCollectionFrames: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
5011
+ collectionId: z.ZodString;
5012
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
5013
+ frameId: z.ZodString;
5014
+ deviceId: z.ZodNumber;
5015
+ origin: z.ZodEnum<{
5016
+ recording: "recording";
5017
+ track: "track";
5018
+ }>;
5019
+ trackId: z.ZodOptional<z.ZodString>;
5020
+ sourceMediaId: z.ZodOptional<z.ZodNumber>;
5021
+ epochMs: z.ZodOptional<z.ZodNumber>;
5022
+ sourceKind: z.ZodEnum<{
5023
+ crop: "crop";
5024
+ thumbnail: "thumbnail";
5025
+ snapshot: "snapshot";
5026
+ firstFrame: "firstFrame";
5027
+ lastFrame: "lastFrame";
5028
+ fullFrame: "fullFrame";
5029
+ fullFrameBoxed: "fullFrameBoxed";
5030
+ faceCrop: "faceCrop";
5031
+ plateCrop: "plateCrop";
5032
+ keyFrame: "keyFrame";
5033
+ keyFrameSmall: "keyFrameSmall";
5034
+ thumbnailSmall: "thumbnailSmall";
5035
+ confirmationCrop: "confirmationCrop";
5036
+ debugCrop: "debugCrop";
5037
+ sceneFrame: "sceneFrame";
5038
+ lastSceneFrame: "lastSceneFrame";
5039
+ }>;
5040
+ sizeBytes: z.ZodNumber;
5041
+ width: z.ZodNumber;
5042
+ height: z.ZodNumber;
5043
+ copiedAt: z.ZodNumber;
5044
+ capturedAt: z.ZodOptional<z.ZodNumber>;
5045
+ complete: z.ZodBoolean;
5046
+ pipelineBoxes: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
5047
+ bbox: z.ZodObject<{
5048
+ x: z.ZodNumber;
5049
+ y: z.ZodNumber;
5050
+ w: z.ZodNumber;
5051
+ h: z.ZodNumber;
5052
+ }, z.core.$strip>;
5053
+ macroClass: z.ZodEnum<{
5054
+ person: "person";
5055
+ vehicle: "vehicle";
5056
+ animal: "animal";
5057
+ package: "package";
5058
+ face: "face";
5059
+ plate: "plate";
5060
+ }>;
5061
+ label: z.ZodOptional<z.ZodString>;
5062
+ subLabel: z.ZodOptional<z.ZodString>;
5063
+ score: z.ZodOptional<z.ZodNumber>;
5064
+ modelId: z.ZodOptional<z.ZodString>;
5065
+ trackId: z.ZodString;
5066
+ basis: z.ZodEnum<{
5067
+ position: "position";
5068
+ "subject-box": "subject-box";
5069
+ }>;
5070
+ deltaMs: z.ZodNumber;
5071
+ }, z.core.$strip>>>>;
5072
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
5073
+ }, z.core.$strip>>>, "query">;
4051
5074
  /**
4052
5075
  * The media an EVENT owns.
4053
5076
  *