@camstack/types 1.2.43 → 1.2.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +8 -2
- package/dist/addon.mjs +8 -2
- package/dist/capabilities/index.d.ts +21 -3
- package/dist/capabilities/osd-manager.cap.d.ts +900 -0
- package/dist/capabilities/pipeline-analytics.cap.d.ts +1192 -74
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +10 -0
- package/dist/capabilities/pipeline-runner.cap.d.ts +6 -0
- package/dist/capabilities/schemas/streaming-shared.d.ts +2 -0
- package/dist/capabilities/server-management.cap.d.ts +3 -3
- package/dist/capabilities/stream-broker.cap.d.ts +32 -0
- package/dist/ffmpeg/fmp4-box-splitter.d.ts +113 -0
- package/dist/ffmpeg/fmp4-fragment-child.d.ts +85 -0
- package/dist/ffmpeg/fmp4-fragment-plane.d.ts +142 -0
- package/dist/ffmpeg/invocation.d.ts +4 -2
- package/dist/fmp4-box-splitter-B53u9-Nu.mjs +615 -0
- package/dist/fmp4-box-splitter-BkWH7O3L.js +686 -0
- package/dist/generated/addon-api.d.ts +162 -0
- package/dist/generated/cap-input-defaults.d.ts +1 -1
- package/dist/generated/capability-router-map.d.ts +5 -2
- package/dist/generated/device-proxy.d.ts +3 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1114 -407
- package/dist/index.mjs +1075 -397
- package/dist/interfaces/camera-switches.d.ts +48 -0
- package/dist/interfaces/stream-broker.d.ts +19 -49
- package/dist/node.d.ts +4 -0
- package/dist/node.js +509 -3
- package/dist/node.mjs +507 -3
- package/dist/notification/schedule.d.ts +20 -0
- package/dist/{sleep-Bx9IIoT0.js → sleep-BOI-sVEA.js} +37 -1
- package/dist/{sleep-DtstvzWm.mjs → sleep-Bf5fBs7u.mjs} +37 -1
- package/dist/types/detection.d.ts +31 -0
- package/dist/types/pipeline-step.d.ts +22 -1
- package/package.json +1 -1
- package/dist/canonical-hash-7nfBbEqR.mjs +0 -35
- package/dist/canonical-hash-BcZHRHIx.js +0 -40
|
@@ -247,6 +247,31 @@ export declare const TrackSourceSchema: z.ZodEnum<{
|
|
|
247
247
|
pipeline: "pipeline";
|
|
248
248
|
}>;
|
|
249
249
|
export type TrackSource = z.infer<typeof TrackSourceSchema>;
|
|
250
|
+
/**
|
|
251
|
+
* Where a track sits in the RETRAIN lifecycle (D81).
|
|
252
|
+
*
|
|
253
|
+
* - `none` — never marked, or un-marked. Evictable.
|
|
254
|
+
* - `staging` — the operator wants this track as training material and has not
|
|
255
|
+
* finished with it. **This is the only state retention holds**: the track and
|
|
256
|
+
* everything it owns (object events, crops, keyframes, CLIP vector) survive
|
|
257
|
+
* the device's age window.
|
|
258
|
+
* - `trained` — the retrain page has taken what it needed. The frames it chose
|
|
259
|
+
* were COPIED into the retrain dataset at selection time, so the dataset no
|
|
260
|
+
* longer depends on the track's media and the track becomes EVICTABLE again.
|
|
261
|
+
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
262
|
+
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
263
|
+
*
|
|
264
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` because
|
|
265
|
+
* the store's filter language has only positive equality and `whereIn` — no
|
|
266
|
+
* negation, no IS NULL — so a NULL would be unselectable by ANY predicate and
|
|
267
|
+
* would make the entire pre-column history immortal in one deploy.
|
|
268
|
+
*/
|
|
269
|
+
export declare const RetrainStatusSchema: z.ZodEnum<{
|
|
270
|
+
none: "none";
|
|
271
|
+
staging: "staging";
|
|
272
|
+
trained: "trained";
|
|
273
|
+
}>;
|
|
274
|
+
export type RetrainStatus = z.infer<typeof RetrainStatusSchema>;
|
|
250
275
|
/**
|
|
251
276
|
* The write half: a PARTIAL patch. An omitted key is left untouched, so setting
|
|
252
277
|
* one flag can never clear the other — the toggles are independent and are
|
|
@@ -266,15 +291,83 @@ export declare const TrackFlagsSchema: z.ZodObject<{
|
|
|
266
291
|
trackId: z.ZodString;
|
|
267
292
|
markForTrain: z.ZodBoolean;
|
|
268
293
|
debug: z.ZodBoolean;
|
|
294
|
+
retrainStatus: z.ZodEnum<{
|
|
295
|
+
none: "none";
|
|
296
|
+
staging: "staging";
|
|
297
|
+
trained: "trained";
|
|
298
|
+
}>;
|
|
269
299
|
}, z.core.$strip>;
|
|
270
300
|
export type TrackFlags = z.infer<typeof TrackFlagsSchema>;
|
|
301
|
+
/**
|
|
302
|
+
* WHICH tier a label occupies. The slot a label lands in is DECLARED by the
|
|
303
|
+
* step that produced it (`StepDefinition.labelTier`), never inferred from the
|
|
304
|
+
* text or the step's name.
|
|
305
|
+
*
|
|
306
|
+
* - `1` — a SUB-CLASS: finer than the macro class, still a taxonomy token.
|
|
307
|
+
* `animal-type` (`dog`, `bird`), `vehicle-type` (`van`), and the root
|
|
308
|
+
* detector's own raw class when it is finer than the macro it maps to.
|
|
309
|
+
* - `2` — an INSTANCE: the finest thing said about this subject.
|
|
310
|
+
* `species` (`Turdus migratorius`), `identity` (`Alice`), `plate-text`.
|
|
311
|
+
*
|
|
312
|
+
* The macro class itself (`person`, `vehicle`, `animal`, `package`, `face`,
|
|
313
|
+
* `plate`, `audio`) is NOT a tier — it is `className`, and a macro token
|
|
314
|
+
* offered for either label slot is refused (2026-08-07 rule; the refusal is
|
|
315
|
+
* logged as `label tier collapse refused`).
|
|
316
|
+
*/
|
|
317
|
+
export declare const LabelTierSchema: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>;
|
|
318
|
+
export type LabelTier = z.infer<typeof LabelTierSchema>;
|
|
319
|
+
/**
|
|
320
|
+
* WHO decided a label, and when. Carried per tier so a value can be traced to
|
|
321
|
+
* the step and model that produced it — which is what makes the write rule
|
|
322
|
+
* arguable after the fact ("why is 592's label `dog` and not `Canis lupus`?")
|
|
323
|
+
* and what lets a migrated, UNATTRIBUTED value be told apart from a real one.
|
|
324
|
+
*
|
|
325
|
+
* `stepId` is the pipeline step id (`animal-classifier`, `bird-classifier`,
|
|
326
|
+
* `plate-ocr`, `face-embedding`, `object-detection`), or the sentinel
|
|
327
|
+
* `migration:4g` for a value the 4g migration moved from the single-slot era —
|
|
328
|
+
* that value has no provenance, and the write rule lets ANY properly-attributed
|
|
329
|
+
* write of the same tier replace it regardless of score.
|
|
330
|
+
*/
|
|
331
|
+
export declare const LabelAttributionSchema: z.ZodObject<{
|
|
332
|
+
stepId: z.ZodString;
|
|
333
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
334
|
+
decidedAt: z.ZodNumber;
|
|
335
|
+
}, z.core.$strip>;
|
|
336
|
+
export type LabelAttribution = z.infer<typeof LabelAttributionSchema>;
|
|
337
|
+
/** Per-camera slice of a training-export estimate. */
|
|
338
|
+
export declare const TrainingExportDeviceTotalsSchema: z.ZodObject<{
|
|
339
|
+
deviceId: z.ZodNumber;
|
|
340
|
+
tracks: z.ZodNumber;
|
|
341
|
+
files: z.ZodNumber;
|
|
342
|
+
bytes: z.ZodNumber;
|
|
343
|
+
}, z.core.$strip>;
|
|
344
|
+
export type TrainingExportDeviceTotals = z.infer<typeof TrainingExportDeviceTotalsSchema>;
|
|
345
|
+
/**
|
|
346
|
+
* What a training export WOULD contain. Computed from media index rows only —
|
|
347
|
+
* no blob is read to produce this.
|
|
348
|
+
*/
|
|
349
|
+
export declare const TrainingExportSummarySchema: z.ZodObject<{
|
|
350
|
+
generatedAt: z.ZodNumber;
|
|
351
|
+
trackCount: z.ZodNumber;
|
|
352
|
+
fileCount: z.ZodNumber;
|
|
353
|
+
byteCount: z.ZodNumber;
|
|
354
|
+
truncated: z.ZodBoolean;
|
|
355
|
+
devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
356
|
+
deviceId: z.ZodNumber;
|
|
357
|
+
tracks: z.ZodNumber;
|
|
358
|
+
files: z.ZodNumber;
|
|
359
|
+
bytes: z.ZodNumber;
|
|
360
|
+
}, z.core.$strip>>>;
|
|
361
|
+
}, z.core.$strip>;
|
|
362
|
+
export type TrainingExportSummary = z.infer<typeof TrainingExportSummarySchema>;
|
|
271
363
|
declare const TrackSchema: z.ZodObject<{
|
|
364
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
365
|
+
none: "none";
|
|
366
|
+
staging: "staging";
|
|
367
|
+
trained: "trained";
|
|
368
|
+
}>>;
|
|
272
369
|
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
273
370
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
274
|
-
trackId: z.ZodString;
|
|
275
|
-
deviceId: z.ZodNumber;
|
|
276
|
-
className: z.ZodString;
|
|
277
|
-
label: z.ZodOptional<z.ZodString>;
|
|
278
371
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
279
372
|
source: z.ZodOptional<z.ZodEnum<{
|
|
280
373
|
sensor: "sensor";
|
|
@@ -336,6 +429,23 @@ declare const TrackSchema: z.ZodObject<{
|
|
|
336
429
|
maxX: z.ZodNumber;
|
|
337
430
|
maxY: z.ZodNumber;
|
|
338
431
|
}, z.core.$strip>>;
|
|
432
|
+
label: z.ZodOptional<z.ZodString>;
|
|
433
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
434
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
435
|
+
stepId: z.ZodString;
|
|
436
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
437
|
+
decidedAt: z.ZodNumber;
|
|
438
|
+
}, z.core.$strip>>;
|
|
439
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
440
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
441
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
442
|
+
stepId: z.ZodString;
|
|
443
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
444
|
+
decidedAt: z.ZodNumber;
|
|
445
|
+
}, z.core.$strip>>;
|
|
446
|
+
trackId: z.ZodString;
|
|
447
|
+
deviceId: z.ZodNumber;
|
|
448
|
+
className: z.ZodString;
|
|
339
449
|
}, z.core.$strip>;
|
|
340
450
|
export type Track = z.infer<typeof TrackSchema>;
|
|
341
451
|
declare const MotionEventSchema: z.ZodObject<{
|
|
@@ -410,15 +520,6 @@ export declare const ZoneCrossingSchema: z.ZodObject<{
|
|
|
410
520
|
}, z.core.$strip>;
|
|
411
521
|
export type ZoneCrossing = z.infer<typeof ZoneCrossingSchema>;
|
|
412
522
|
declare const ObjectEventSchema: z.ZodObject<{
|
|
413
|
-
kind: z.ZodLiteral<"object">;
|
|
414
|
-
source: z.ZodOptional<z.ZodEnum<{
|
|
415
|
-
pipeline: "pipeline";
|
|
416
|
-
onboard: "onboard";
|
|
417
|
-
}>>;
|
|
418
|
-
frameId: z.ZodOptional<z.ZodString>;
|
|
419
|
-
trackId: z.ZodOptional<z.ZodString>;
|
|
420
|
-
className: z.ZodString;
|
|
421
|
-
label: z.ZodOptional<z.ZodString>;
|
|
422
523
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
423
524
|
bbox: z.ZodOptional<z.ZodObject<{
|
|
424
525
|
x: z.ZodNumber;
|
|
@@ -448,6 +549,28 @@ declare const ObjectEventSchema: z.ZodObject<{
|
|
|
448
549
|
keyFrameMediaKey: z.ZodOptional<z.ZodString>;
|
|
449
550
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
450
551
|
importance: z.ZodOptional<z.ZodNumber>;
|
|
552
|
+
label: z.ZodOptional<z.ZodString>;
|
|
553
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
554
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
555
|
+
stepId: z.ZodString;
|
|
556
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
557
|
+
decidedAt: z.ZodNumber;
|
|
558
|
+
}, z.core.$strip>>;
|
|
559
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
560
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
561
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
562
|
+
stepId: z.ZodString;
|
|
563
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
564
|
+
decidedAt: z.ZodNumber;
|
|
565
|
+
}, z.core.$strip>>;
|
|
566
|
+
kind: z.ZodLiteral<"object">;
|
|
567
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
568
|
+
pipeline: "pipeline";
|
|
569
|
+
onboard: "onboard";
|
|
570
|
+
}>>;
|
|
571
|
+
frameId: z.ZodOptional<z.ZodString>;
|
|
572
|
+
trackId: z.ZodOptional<z.ZodString>;
|
|
573
|
+
className: z.ZodString;
|
|
451
574
|
id: z.ZodString;
|
|
452
575
|
deviceId: z.ZodNumber;
|
|
453
576
|
timestamp: z.ZodNumber;
|
|
@@ -536,6 +659,337 @@ declare const MediaFileInfoSchema: z.ZodObject<{
|
|
|
536
659
|
sizeBytes: z.ZodNumber;
|
|
537
660
|
}, z.core.$strip>;
|
|
538
661
|
export type MediaFileInfo = z.infer<typeof MediaFileInfoSchema>;
|
|
662
|
+
/**
|
|
663
|
+
* The MACRO tier of an annotation — a CLOSED set.
|
|
664
|
+
*
|
|
665
|
+
* This is what the exported detector predicts, so a typo here is a new class
|
|
666
|
+
* with one example in it. `label` and `subLabel` are open strings by contrast:
|
|
667
|
+
* the whole point of the page is teaching the model things it does not know
|
|
668
|
+
* yet, and constraining that vocabulary would make it useless.
|
|
669
|
+
*
|
|
670
|
+
* A macro class is NEVER a label. The provider refuses a write whose `label` or
|
|
671
|
+
* `subLabel` is one of these values, in any casing, because once `person`
|
|
672
|
+
* exists in both tiers "every person box" stops being answerable without
|
|
673
|
+
* knowing every string anyone ever typed — and the damage is retroactive.
|
|
674
|
+
*/
|
|
675
|
+
export declare const RetrainMacroClassSchema: z.ZodEnum<{
|
|
676
|
+
person: "person";
|
|
677
|
+
vehicle: "vehicle";
|
|
678
|
+
animal: "animal";
|
|
679
|
+
face: "face";
|
|
680
|
+
plate: "plate";
|
|
681
|
+
package: "package";
|
|
682
|
+
}>;
|
|
683
|
+
export type RetrainMacroClass = z.infer<typeof RetrainMacroClassSchema>;
|
|
684
|
+
/** A subject to learn, or a phantom to unlearn (taught by OMISSION). */
|
|
685
|
+
export declare const RetrainAnnotationKindSchema: z.ZodEnum<{
|
|
686
|
+
subject: "subject";
|
|
687
|
+
model_error: "model_error";
|
|
688
|
+
}>;
|
|
689
|
+
/** Did a human draw this box, or did the assist propose it? */
|
|
690
|
+
export declare const RetrainAnnotationSourceSchema: z.ZodEnum<{
|
|
691
|
+
operator: "operator";
|
|
692
|
+
assist: "assist";
|
|
693
|
+
}>;
|
|
694
|
+
/**
|
|
695
|
+
* One annotated subject.
|
|
696
|
+
*
|
|
697
|
+
* `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
|
|
698
|
+
* (letterboxed root / zone-cropped package / subject-cropped classifier) are
|
|
699
|
+
* derived from it at export and never stored — storing them is how one feature
|
|
700
|
+
* space ends up holding two crops of the same subject (D52).
|
|
701
|
+
*/
|
|
702
|
+
export declare const RetrainAnnotationSchema: z.ZodObject<{
|
|
703
|
+
id: z.ZodString;
|
|
704
|
+
trackId: z.ZodString;
|
|
705
|
+
deviceId: z.ZodNumber;
|
|
706
|
+
mediaKey: z.ZodString;
|
|
707
|
+
bbox: z.ZodObject<{
|
|
708
|
+
x: z.ZodNumber;
|
|
709
|
+
y: z.ZodNumber;
|
|
710
|
+
w: z.ZodNumber;
|
|
711
|
+
h: z.ZodNumber;
|
|
712
|
+
}, z.core.$strip>;
|
|
713
|
+
macroClass: z.ZodEnum<{
|
|
714
|
+
person: "person";
|
|
715
|
+
vehicle: "vehicle";
|
|
716
|
+
animal: "animal";
|
|
717
|
+
face: "face";
|
|
718
|
+
plate: "plate";
|
|
719
|
+
package: "package";
|
|
720
|
+
}>;
|
|
721
|
+
label: z.ZodOptional<z.ZodString>;
|
|
722
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
723
|
+
kind: z.ZodEnum<{
|
|
724
|
+
subject: "subject";
|
|
725
|
+
model_error: "model_error";
|
|
726
|
+
}>;
|
|
727
|
+
source: z.ZodEnum<{
|
|
728
|
+
operator: "operator";
|
|
729
|
+
assist: "assist";
|
|
730
|
+
}>;
|
|
731
|
+
assistModelId: z.ZodOptional<z.ZodString>;
|
|
732
|
+
assistScore: z.ZodOptional<z.ZodNumber>;
|
|
733
|
+
exportedInBatch: z.ZodOptional<z.ZodString>;
|
|
734
|
+
createdAt: z.ZodNumber;
|
|
735
|
+
}, z.core.$strip>;
|
|
736
|
+
export type RetrainAnnotation = z.infer<typeof RetrainAnnotationSchema>;
|
|
737
|
+
/** The write form — the server owns `id`, `createdAt` and the frame binding. */
|
|
738
|
+
export declare const RetrainAnnotationDraftSchema: z.ZodObject<{
|
|
739
|
+
label: z.ZodOptional<z.ZodString>;
|
|
740
|
+
kind: z.ZodEnum<{
|
|
741
|
+
subject: "subject";
|
|
742
|
+
model_error: "model_error";
|
|
743
|
+
}>;
|
|
744
|
+
source: z.ZodEnum<{
|
|
745
|
+
operator: "operator";
|
|
746
|
+
assist: "assist";
|
|
747
|
+
}>;
|
|
748
|
+
bbox: z.ZodObject<{
|
|
749
|
+
x: z.ZodNumber;
|
|
750
|
+
y: z.ZodNumber;
|
|
751
|
+
w: z.ZodNumber;
|
|
752
|
+
h: z.ZodNumber;
|
|
753
|
+
}, z.core.$strip>;
|
|
754
|
+
macroClass: z.ZodEnum<{
|
|
755
|
+
person: "person";
|
|
756
|
+
vehicle: "vehicle";
|
|
757
|
+
animal: "animal";
|
|
758
|
+
face: "face";
|
|
759
|
+
plate: "plate";
|
|
760
|
+
package: "package";
|
|
761
|
+
}>;
|
|
762
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
763
|
+
assistModelId: z.ZodOptional<z.ZodString>;
|
|
764
|
+
assistScore: z.ZodOptional<z.ZodNumber>;
|
|
765
|
+
}, z.core.$strip>;
|
|
766
|
+
export type RetrainAnnotationDraft = z.infer<typeof RetrainAnnotationDraftSchema>;
|
|
767
|
+
/** A track sitting in `staging`, with everything the worklist needs to rank it. */
|
|
768
|
+
export declare const RetrainTrackSchema: z.ZodObject<{
|
|
769
|
+
trackId: z.ZodString;
|
|
770
|
+
deviceId: z.ZodNumber;
|
|
771
|
+
className: z.ZodString;
|
|
772
|
+
label: z.ZodOptional<z.ZodString>;
|
|
773
|
+
firstSeen: z.ZodNumber;
|
|
774
|
+
lastSeen: z.ZodNumber;
|
|
775
|
+
frameCount: z.ZodNumber;
|
|
776
|
+
annotationCount: z.ZodNumber;
|
|
777
|
+
}, z.core.$strip>;
|
|
778
|
+
export type RetrainTrack = z.infer<typeof RetrainTrackSchema>;
|
|
779
|
+
/** A frame the picker may offer — an index row, no blob was read to produce it. */
|
|
780
|
+
export declare const RetrainFrameCandidateSchema: z.ZodObject<{
|
|
781
|
+
mediaKey: z.ZodString;
|
|
782
|
+
kind: z.ZodEnum<{
|
|
783
|
+
snapshot: "snapshot";
|
|
784
|
+
crop: "crop";
|
|
785
|
+
keyFrame: "keyFrame";
|
|
786
|
+
thumbnail: "thumbnail";
|
|
787
|
+
firstFrame: "firstFrame";
|
|
788
|
+
lastFrame: "lastFrame";
|
|
789
|
+
fullFrame: "fullFrame";
|
|
790
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
791
|
+
faceCrop: "faceCrop";
|
|
792
|
+
plateCrop: "plateCrop";
|
|
793
|
+
keyFrameSmall: "keyFrameSmall";
|
|
794
|
+
thumbnailSmall: "thumbnailSmall";
|
|
795
|
+
}>;
|
|
796
|
+
timestamp: z.ZodNumber;
|
|
797
|
+
sizeBytes: z.ZodNumber;
|
|
798
|
+
copied: z.ZodBoolean;
|
|
799
|
+
}, z.core.$strip>;
|
|
800
|
+
export type RetrainFrameCandidate = z.infer<typeof RetrainFrameCandidateSchema>;
|
|
801
|
+
/** A frame the dataset OWNS: bytes copied at selection time. */
|
|
802
|
+
export declare const RetrainFrameSchema: z.ZodObject<{
|
|
803
|
+
frameId: z.ZodString;
|
|
804
|
+
deviceId: z.ZodNumber;
|
|
805
|
+
trackId: z.ZodString;
|
|
806
|
+
sourceMediaKey: z.ZodString;
|
|
807
|
+
sourceKind: z.ZodEnum<{
|
|
808
|
+
snapshot: "snapshot";
|
|
809
|
+
crop: "crop";
|
|
810
|
+
keyFrame: "keyFrame";
|
|
811
|
+
thumbnail: "thumbnail";
|
|
812
|
+
firstFrame: "firstFrame";
|
|
813
|
+
lastFrame: "lastFrame";
|
|
814
|
+
fullFrame: "fullFrame";
|
|
815
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
816
|
+
faceCrop: "faceCrop";
|
|
817
|
+
plateCrop: "plateCrop";
|
|
818
|
+
keyFrameSmall: "keyFrameSmall";
|
|
819
|
+
thumbnailSmall: "thumbnailSmall";
|
|
820
|
+
}>;
|
|
821
|
+
sizeBytes: z.ZodNumber;
|
|
822
|
+
width: z.ZodNumber;
|
|
823
|
+
height: z.ZodNumber;
|
|
824
|
+
copiedAt: z.ZodNumber;
|
|
825
|
+
}, z.core.$strip>;
|
|
826
|
+
export type RetrainFrame = z.infer<typeof RetrainFrameSchema>;
|
|
827
|
+
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
828
|
+
export declare const RetrainCopyRefusalSchema: z.ZodEnum<{
|
|
829
|
+
"source-missing": "source-missing";
|
|
830
|
+
"unreadable-image": "unreadable-image";
|
|
831
|
+
"write-failed": "write-failed";
|
|
832
|
+
}>;
|
|
833
|
+
export declare const RetrainFrameSelectionSchema: z.ZodObject<{
|
|
834
|
+
copied: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
835
|
+
frameId: z.ZodString;
|
|
836
|
+
deviceId: z.ZodNumber;
|
|
837
|
+
trackId: z.ZodString;
|
|
838
|
+
sourceMediaKey: z.ZodString;
|
|
839
|
+
sourceKind: z.ZodEnum<{
|
|
840
|
+
snapshot: "snapshot";
|
|
841
|
+
crop: "crop";
|
|
842
|
+
keyFrame: "keyFrame";
|
|
843
|
+
thumbnail: "thumbnail";
|
|
844
|
+
firstFrame: "firstFrame";
|
|
845
|
+
lastFrame: "lastFrame";
|
|
846
|
+
fullFrame: "fullFrame";
|
|
847
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
848
|
+
faceCrop: "faceCrop";
|
|
849
|
+
plateCrop: "plateCrop";
|
|
850
|
+
keyFrameSmall: "keyFrameSmall";
|
|
851
|
+
thumbnailSmall: "thumbnailSmall";
|
|
852
|
+
}>;
|
|
853
|
+
sizeBytes: z.ZodNumber;
|
|
854
|
+
width: z.ZodNumber;
|
|
855
|
+
height: z.ZodNumber;
|
|
856
|
+
copiedAt: z.ZodNumber;
|
|
857
|
+
}, z.core.$strip>>>;
|
|
858
|
+
refused: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
859
|
+
sourceMediaKey: z.ZodString;
|
|
860
|
+
reason: z.ZodEnum<{
|
|
861
|
+
"source-missing": "source-missing";
|
|
862
|
+
"unreadable-image": "unreadable-image";
|
|
863
|
+
"write-failed": "write-failed";
|
|
864
|
+
}>;
|
|
865
|
+
}, z.core.$strip>>>;
|
|
866
|
+
}, z.core.$strip>;
|
|
867
|
+
export type RetrainFrameSelection = z.infer<typeof RetrainFrameSelectionSchema>;
|
|
868
|
+
export declare const RetrainFrameListSchema: z.ZodObject<{
|
|
869
|
+
candidates: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
870
|
+
mediaKey: z.ZodString;
|
|
871
|
+
kind: z.ZodEnum<{
|
|
872
|
+
snapshot: "snapshot";
|
|
873
|
+
crop: "crop";
|
|
874
|
+
keyFrame: "keyFrame";
|
|
875
|
+
thumbnail: "thumbnail";
|
|
876
|
+
firstFrame: "firstFrame";
|
|
877
|
+
lastFrame: "lastFrame";
|
|
878
|
+
fullFrame: "fullFrame";
|
|
879
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
880
|
+
faceCrop: "faceCrop";
|
|
881
|
+
plateCrop: "plateCrop";
|
|
882
|
+
keyFrameSmall: "keyFrameSmall";
|
|
883
|
+
thumbnailSmall: "thumbnailSmall";
|
|
884
|
+
}>;
|
|
885
|
+
timestamp: z.ZodNumber;
|
|
886
|
+
sizeBytes: z.ZodNumber;
|
|
887
|
+
copied: z.ZodBoolean;
|
|
888
|
+
}, z.core.$strip>>>;
|
|
889
|
+
copies: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
890
|
+
frameId: z.ZodString;
|
|
891
|
+
deviceId: z.ZodNumber;
|
|
892
|
+
trackId: z.ZodString;
|
|
893
|
+
sourceMediaKey: z.ZodString;
|
|
894
|
+
sourceKind: z.ZodEnum<{
|
|
895
|
+
snapshot: "snapshot";
|
|
896
|
+
crop: "crop";
|
|
897
|
+
keyFrame: "keyFrame";
|
|
898
|
+
thumbnail: "thumbnail";
|
|
899
|
+
firstFrame: "firstFrame";
|
|
900
|
+
lastFrame: "lastFrame";
|
|
901
|
+
fullFrame: "fullFrame";
|
|
902
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
903
|
+
faceCrop: "faceCrop";
|
|
904
|
+
plateCrop: "plateCrop";
|
|
905
|
+
keyFrameSmall: "keyFrameSmall";
|
|
906
|
+
thumbnailSmall: "thumbnailSmall";
|
|
907
|
+
}>;
|
|
908
|
+
sizeBytes: z.ZodNumber;
|
|
909
|
+
width: z.ZodNumber;
|
|
910
|
+
height: z.ZodNumber;
|
|
911
|
+
copiedAt: z.ZodNumber;
|
|
912
|
+
}, z.core.$strip>>>;
|
|
913
|
+
autoPickMediaKey: z.ZodOptional<z.ZodString>;
|
|
914
|
+
}, z.core.$strip>;
|
|
915
|
+
export type RetrainFrameList = z.infer<typeof RetrainFrameListSchema>;
|
|
916
|
+
/** What the operator asked the assist to look for. */
|
|
917
|
+
export declare const RetrainAssistSubjectSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
918
|
+
kind: z.ZodLiteral<"package">;
|
|
919
|
+
zone: z.ZodOptional<z.ZodObject<{
|
|
920
|
+
x: z.ZodNumber;
|
|
921
|
+
y: z.ZodNumber;
|
|
922
|
+
w: z.ZodNumber;
|
|
923
|
+
h: z.ZodNumber;
|
|
924
|
+
}, z.core.$strip>>;
|
|
925
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
926
|
+
kind: z.ZodLiteral<"objects">;
|
|
927
|
+
modelId: z.ZodString;
|
|
928
|
+
minScore: z.ZodOptional<z.ZodNumber>;
|
|
929
|
+
}, z.core.$strip>], "kind">;
|
|
930
|
+
/**
|
|
931
|
+
* The assist's answer — a discriminated union, because "the model saw nothing"
|
|
932
|
+
* and "this node cannot run that model" lead to different next moves and a
|
|
933
|
+
* nullable result cannot tell them apart.
|
|
934
|
+
*/
|
|
935
|
+
export declare const RetrainAssistResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
936
|
+
kind: z.ZodLiteral<"proposed">;
|
|
937
|
+
modelId: z.ZodString;
|
|
938
|
+
stepId: z.ZodString;
|
|
939
|
+
minScore: z.ZodNumber;
|
|
940
|
+
proposals: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
941
|
+
label: z.ZodOptional<z.ZodString>;
|
|
942
|
+
kind: z.ZodEnum<{
|
|
943
|
+
subject: "subject";
|
|
944
|
+
model_error: "model_error";
|
|
945
|
+
}>;
|
|
946
|
+
source: z.ZodEnum<{
|
|
947
|
+
operator: "operator";
|
|
948
|
+
assist: "assist";
|
|
949
|
+
}>;
|
|
950
|
+
bbox: z.ZodObject<{
|
|
951
|
+
x: z.ZodNumber;
|
|
952
|
+
y: z.ZodNumber;
|
|
953
|
+
w: z.ZodNumber;
|
|
954
|
+
h: z.ZodNumber;
|
|
955
|
+
}, z.core.$strip>;
|
|
956
|
+
macroClass: z.ZodEnum<{
|
|
957
|
+
person: "person";
|
|
958
|
+
vehicle: "vehicle";
|
|
959
|
+
animal: "animal";
|
|
960
|
+
face: "face";
|
|
961
|
+
plate: "plate";
|
|
962
|
+
package: "package";
|
|
963
|
+
}>;
|
|
964
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
965
|
+
assistModelId: z.ZodOptional<z.ZodString>;
|
|
966
|
+
assistScore: z.ZodOptional<z.ZodNumber>;
|
|
967
|
+
}, z.core.$strip>>>;
|
|
968
|
+
belowThreshold: z.ZodNumber;
|
|
969
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
970
|
+
kind: z.ZodLiteral<"refused">;
|
|
971
|
+
reason: z.ZodString;
|
|
972
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
973
|
+
}, z.core.$strip>], "kind">;
|
|
974
|
+
export type RetrainAssistResult = z.infer<typeof RetrainAssistResultSchema>;
|
|
975
|
+
/** The outcome of a lifecycle move owned by the retrain page. */
|
|
976
|
+
export declare const RetrainTransitionResultSchema: z.ZodObject<{
|
|
977
|
+
trackId: z.ZodString;
|
|
978
|
+
retrainStatus: z.ZodEnum<{
|
|
979
|
+
none: "none";
|
|
980
|
+
staging: "staging";
|
|
981
|
+
trained: "trained";
|
|
982
|
+
}>;
|
|
983
|
+
changed: z.ZodBoolean;
|
|
984
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
985
|
+
unchanged: "unchanged";
|
|
986
|
+
"unknown-track": "unknown-track";
|
|
987
|
+
"no-frames-copied": "no-frames-copied";
|
|
988
|
+
"not-staging": "not-staging";
|
|
989
|
+
"not-trained": "not-trained";
|
|
990
|
+
}>>;
|
|
991
|
+
}, z.core.$strip>;
|
|
992
|
+
export type RetrainTransitionResult = z.infer<typeof RetrainTransitionResultSchema>;
|
|
539
993
|
declare const RecentTracksQueryInput: z.ZodObject<{
|
|
540
994
|
deviceIds: z.ZodArray<z.ZodNumber>;
|
|
541
995
|
since: z.ZodOptional<z.ZodNumber>;
|
|
@@ -550,12 +1004,13 @@ declare const RecentTracksQueryInput: z.ZodObject<{
|
|
|
550
1004
|
export type RecentTracksQuery = z.infer<typeof RecentTracksQueryInput>;
|
|
551
1005
|
declare const RecentTracksPageSchema: z.ZodObject<{
|
|
552
1006
|
tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1007
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1008
|
+
none: "none";
|
|
1009
|
+
staging: "staging";
|
|
1010
|
+
trained: "trained";
|
|
1011
|
+
}>>;
|
|
553
1012
|
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
554
1013
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
555
|
-
trackId: z.ZodString;
|
|
556
|
-
deviceId: z.ZodNumber;
|
|
557
|
-
className: z.ZodString;
|
|
558
|
-
label: z.ZodOptional<z.ZodString>;
|
|
559
1014
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
560
1015
|
source: z.ZodOptional<z.ZodEnum<{
|
|
561
1016
|
sensor: "sensor";
|
|
@@ -617,21 +1072,56 @@ declare const RecentTracksPageSchema: z.ZodObject<{
|
|
|
617
1072
|
maxX: z.ZodNumber;
|
|
618
1073
|
maxY: z.ZodNumber;
|
|
619
1074
|
}, z.core.$strip>>;
|
|
1075
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1076
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1077
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1078
|
+
stepId: z.ZodString;
|
|
1079
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1080
|
+
decidedAt: z.ZodNumber;
|
|
1081
|
+
}, z.core.$strip>>;
|
|
1082
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1083
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1084
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1085
|
+
stepId: z.ZodString;
|
|
1086
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1087
|
+
decidedAt: z.ZodNumber;
|
|
1088
|
+
}, z.core.$strip>>;
|
|
1089
|
+
trackId: z.ZodString;
|
|
1090
|
+
deviceId: z.ZodNumber;
|
|
1091
|
+
className: z.ZodString;
|
|
620
1092
|
}, z.core.$strip>>>;
|
|
621
1093
|
nextCursor: z.ZodNullable<z.ZodString>;
|
|
622
1094
|
}, z.core.$strip>;
|
|
623
1095
|
export type RecentTracksPage = z.infer<typeof RecentTracksPageSchema>;
|
|
624
1096
|
declare const KeyEventSchema: z.ZodObject<{
|
|
1097
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1098
|
+
none: "none";
|
|
1099
|
+
staging: "staging";
|
|
1100
|
+
trained: "trained";
|
|
1101
|
+
}>>;
|
|
625
1102
|
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
626
1103
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
1104
|
+
importance: z.ZodNumber;
|
|
1105
|
+
bestEventId: z.ZodString;
|
|
1106
|
+
windowMs: z.ZodOptional<z.ZodNumber>;
|
|
1107
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1108
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1109
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1110
|
+
stepId: z.ZodString;
|
|
1111
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1112
|
+
decidedAt: z.ZodNumber;
|
|
1113
|
+
}, z.core.$strip>>;
|
|
1114
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1115
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1116
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1117
|
+
stepId: z.ZodString;
|
|
1118
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1119
|
+
decidedAt: z.ZodNumber;
|
|
1120
|
+
}, z.core.$strip>>;
|
|
627
1121
|
id: z.ZodString;
|
|
628
1122
|
trackId: z.ZodString;
|
|
629
1123
|
timestamp: z.ZodNumber;
|
|
630
1124
|
className: z.ZodString;
|
|
631
|
-
label: z.ZodOptional<z.ZodString>;
|
|
632
|
-
importance: z.ZodNumber;
|
|
633
|
-
bestEventId: z.ZodString;
|
|
634
|
-
windowMs: z.ZodOptional<z.ZodNumber>;
|
|
635
1125
|
}, z.core.$strip>;
|
|
636
1126
|
export type KeyEvent = z.infer<typeof KeyEventSchema>;
|
|
637
1127
|
declare const TrackedDetectionSchema: z.ZodObject<{
|
|
@@ -654,15 +1144,6 @@ declare const TrackedDetectionSchema: z.ZodObject<{
|
|
|
654
1144
|
}>;
|
|
655
1145
|
}, z.core.$strip>;
|
|
656
1146
|
export declare const ScoredObjectEventSchema: z.ZodObject<{
|
|
657
|
-
kind: z.ZodLiteral<"object">;
|
|
658
|
-
source: z.ZodOptional<z.ZodEnum<{
|
|
659
|
-
pipeline: "pipeline";
|
|
660
|
-
onboard: "onboard";
|
|
661
|
-
}>>;
|
|
662
|
-
frameId: z.ZodOptional<z.ZodString>;
|
|
663
|
-
trackId: z.ZodOptional<z.ZodString>;
|
|
664
|
-
className: z.ZodString;
|
|
665
|
-
label: z.ZodOptional<z.ZodString>;
|
|
666
1147
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
667
1148
|
bbox: z.ZodOptional<z.ZodObject<{
|
|
668
1149
|
x: z.ZodNumber;
|
|
@@ -692,6 +1173,28 @@ export declare const ScoredObjectEventSchema: z.ZodObject<{
|
|
|
692
1173
|
keyFrameMediaKey: z.ZodOptional<z.ZodString>;
|
|
693
1174
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
694
1175
|
importance: z.ZodOptional<z.ZodNumber>;
|
|
1176
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1177
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1178
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1179
|
+
stepId: z.ZodString;
|
|
1180
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1181
|
+
decidedAt: z.ZodNumber;
|
|
1182
|
+
}, z.core.$strip>>;
|
|
1183
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1184
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1185
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1186
|
+
stepId: z.ZodString;
|
|
1187
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1188
|
+
decidedAt: z.ZodNumber;
|
|
1189
|
+
}, z.core.$strip>>;
|
|
1190
|
+
kind: z.ZodLiteral<"object">;
|
|
1191
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
1192
|
+
pipeline: "pipeline";
|
|
1193
|
+
onboard: "onboard";
|
|
1194
|
+
}>>;
|
|
1195
|
+
frameId: z.ZodOptional<z.ZodString>;
|
|
1196
|
+
trackId: z.ZodOptional<z.ZodString>;
|
|
1197
|
+
className: z.ZodString;
|
|
695
1198
|
id: z.ZodString;
|
|
696
1199
|
deviceId: z.ZodNumber;
|
|
697
1200
|
timestamp: z.ZodNumber;
|
|
@@ -744,12 +1247,13 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
744
1247
|
readonly getActiveTracks: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
745
1248
|
deviceId: z.ZodNumber;
|
|
746
1249
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1250
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1251
|
+
none: "none";
|
|
1252
|
+
staging: "staging";
|
|
1253
|
+
trained: "trained";
|
|
1254
|
+
}>>;
|
|
747
1255
|
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
748
1256
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
749
|
-
trackId: z.ZodString;
|
|
750
|
-
deviceId: z.ZodNumber;
|
|
751
|
-
className: z.ZodString;
|
|
752
|
-
label: z.ZodOptional<z.ZodString>;
|
|
753
1257
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
754
1258
|
source: z.ZodOptional<z.ZodEnum<{
|
|
755
1259
|
sensor: "sensor";
|
|
@@ -811,17 +1315,35 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
811
1315
|
maxX: z.ZodNumber;
|
|
812
1316
|
maxY: z.ZodNumber;
|
|
813
1317
|
}, z.core.$strip>>;
|
|
1318
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1319
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1320
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1321
|
+
stepId: z.ZodString;
|
|
1322
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1323
|
+
decidedAt: z.ZodNumber;
|
|
1324
|
+
}, z.core.$strip>>;
|
|
1325
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1326
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1327
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1328
|
+
stepId: z.ZodString;
|
|
1329
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1330
|
+
decidedAt: z.ZodNumber;
|
|
1331
|
+
}, z.core.$strip>>;
|
|
1332
|
+
trackId: z.ZodString;
|
|
1333
|
+
deviceId: z.ZodNumber;
|
|
1334
|
+
className: z.ZodString;
|
|
814
1335
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
815
1336
|
readonly getTrack: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
816
1337
|
deviceId: z.ZodNumber;
|
|
817
1338
|
trackId: z.ZodString;
|
|
818
1339
|
}, z.core.$strip>, z.ZodNullable<z.ZodObject<{
|
|
1340
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1341
|
+
none: "none";
|
|
1342
|
+
staging: "staging";
|
|
1343
|
+
trained: "trained";
|
|
1344
|
+
}>>;
|
|
819
1345
|
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
820
1346
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
821
|
-
trackId: z.ZodString;
|
|
822
|
-
deviceId: z.ZodNumber;
|
|
823
|
-
className: z.ZodString;
|
|
824
|
-
label: z.ZodOptional<z.ZodString>;
|
|
825
1347
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
826
1348
|
source: z.ZodOptional<z.ZodEnum<{
|
|
827
1349
|
sensor: "sensor";
|
|
@@ -883,6 +1405,23 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
883
1405
|
maxX: z.ZodNumber;
|
|
884
1406
|
maxY: z.ZodNumber;
|
|
885
1407
|
}, z.core.$strip>>;
|
|
1408
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1409
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1410
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1411
|
+
stepId: z.ZodString;
|
|
1412
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1413
|
+
decidedAt: z.ZodNumber;
|
|
1414
|
+
}, z.core.$strip>>;
|
|
1415
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1416
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1417
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1418
|
+
stepId: z.ZodString;
|
|
1419
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1420
|
+
decidedAt: z.ZodNumber;
|
|
1421
|
+
}, z.core.$strip>>;
|
|
1422
|
+
trackId: z.ZodString;
|
|
1423
|
+
deviceId: z.ZodNumber;
|
|
1424
|
+
className: z.ZodString;
|
|
886
1425
|
}, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
887
1426
|
/** Historical completed tracks for a device. Queried from the
|
|
888
1427
|
* persisted `pipeline-analytics:tracks` collection; active tracks
|
|
@@ -910,12 +1449,13 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
910
1449
|
slim: "slim";
|
|
911
1450
|
}>>;
|
|
912
1451
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1452
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1453
|
+
none: "none";
|
|
1454
|
+
staging: "staging";
|
|
1455
|
+
trained: "trained";
|
|
1456
|
+
}>>;
|
|
913
1457
|
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
914
1458
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
915
|
-
trackId: z.ZodString;
|
|
916
|
-
deviceId: z.ZodNumber;
|
|
917
|
-
className: z.ZodString;
|
|
918
|
-
label: z.ZodOptional<z.ZodString>;
|
|
919
1459
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
920
1460
|
source: z.ZodOptional<z.ZodEnum<{
|
|
921
1461
|
sensor: "sensor";
|
|
@@ -977,6 +1517,23 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
977
1517
|
maxX: z.ZodNumber;
|
|
978
1518
|
maxY: z.ZodNumber;
|
|
979
1519
|
}, z.core.$strip>>;
|
|
1520
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1521
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1522
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1523
|
+
stepId: z.ZodString;
|
|
1524
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1525
|
+
decidedAt: z.ZodNumber;
|
|
1526
|
+
}, z.core.$strip>>;
|
|
1527
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1528
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1529
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1530
|
+
stepId: z.ZodString;
|
|
1531
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1532
|
+
decidedAt: z.ZodNumber;
|
|
1533
|
+
}, z.core.$strip>>;
|
|
1534
|
+
trackId: z.ZodString;
|
|
1535
|
+
deviceId: z.ZodNumber;
|
|
1536
|
+
className: z.ZodString;
|
|
980
1537
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
981
1538
|
/**
|
|
982
1539
|
* Batched cluster-wide track listing — ONE call for the events page /
|
|
@@ -1000,12 +1557,13 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1000
1557
|
}>>;
|
|
1001
1558
|
}, z.core.$strip>, z.ZodObject<{
|
|
1002
1559
|
tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1560
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1561
|
+
none: "none";
|
|
1562
|
+
staging: "staging";
|
|
1563
|
+
trained: "trained";
|
|
1564
|
+
}>>;
|
|
1565
|
+
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
1566
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
1009
1567
|
producingDeviceName: z.ZodOptional<z.ZodString>;
|
|
1010
1568
|
source: z.ZodOptional<z.ZodEnum<{
|
|
1011
1569
|
sensor: "sensor";
|
|
@@ -1067,6 +1625,23 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1067
1625
|
maxX: z.ZodNumber;
|
|
1068
1626
|
maxY: z.ZodNumber;
|
|
1069
1627
|
}, z.core.$strip>>;
|
|
1628
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1629
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1630
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1631
|
+
stepId: z.ZodString;
|
|
1632
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1633
|
+
decidedAt: z.ZodNumber;
|
|
1634
|
+
}, z.core.$strip>>;
|
|
1635
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1636
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1637
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1638
|
+
stepId: z.ZodString;
|
|
1639
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1640
|
+
decidedAt: z.ZodNumber;
|
|
1641
|
+
}, z.core.$strip>>;
|
|
1642
|
+
trackId: z.ZodString;
|
|
1643
|
+
deviceId: z.ZodNumber;
|
|
1644
|
+
className: z.ZodString;
|
|
1070
1645
|
}, z.core.$strip>>>;
|
|
1071
1646
|
nextCursor: z.ZodNullable<z.ZodString>;
|
|
1072
1647
|
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
@@ -1113,15 +1688,6 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1113
1688
|
}>>;
|
|
1114
1689
|
classFilter: z.ZodOptional<z.ZodString>;
|
|
1115
1690
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1116
|
-
kind: z.ZodLiteral<"object">;
|
|
1117
|
-
source: z.ZodOptional<z.ZodEnum<{
|
|
1118
|
-
pipeline: "pipeline";
|
|
1119
|
-
onboard: "onboard";
|
|
1120
|
-
}>>;
|
|
1121
|
-
frameId: z.ZodOptional<z.ZodString>;
|
|
1122
|
-
trackId: z.ZodOptional<z.ZodString>;
|
|
1123
|
-
className: z.ZodString;
|
|
1124
|
-
label: z.ZodOptional<z.ZodString>;
|
|
1125
1691
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
1126
1692
|
bbox: z.ZodOptional<z.ZodObject<{
|
|
1127
1693
|
x: z.ZodNumber;
|
|
@@ -1151,6 +1717,28 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1151
1717
|
keyFrameMediaKey: z.ZodOptional<z.ZodString>;
|
|
1152
1718
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
1153
1719
|
importance: z.ZodOptional<z.ZodNumber>;
|
|
1720
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1721
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1722
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1723
|
+
stepId: z.ZodString;
|
|
1724
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1725
|
+
decidedAt: z.ZodNumber;
|
|
1726
|
+
}, z.core.$strip>>;
|
|
1727
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1728
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1729
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1730
|
+
stepId: z.ZodString;
|
|
1731
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1732
|
+
decidedAt: z.ZodNumber;
|
|
1733
|
+
}, z.core.$strip>>;
|
|
1734
|
+
kind: z.ZodLiteral<"object">;
|
|
1735
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
1736
|
+
pipeline: "pipeline";
|
|
1737
|
+
onboard: "onboard";
|
|
1738
|
+
}>>;
|
|
1739
|
+
frameId: z.ZodOptional<z.ZodString>;
|
|
1740
|
+
trackId: z.ZodOptional<z.ZodString>;
|
|
1741
|
+
className: z.ZodString;
|
|
1154
1742
|
id: z.ZodString;
|
|
1155
1743
|
deviceId: z.ZodNumber;
|
|
1156
1744
|
timestamp: z.ZodNumber;
|
|
@@ -1323,16 +1911,34 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1323
1911
|
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
1324
1912
|
classFilter: z.ZodOptional<z.ZodString>;
|
|
1325
1913
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1914
|
+
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1915
|
+
none: "none";
|
|
1916
|
+
staging: "staging";
|
|
1917
|
+
trained: "trained";
|
|
1918
|
+
}>>;
|
|
1326
1919
|
markForTrain: z.ZodOptional<z.ZodBoolean>;
|
|
1327
1920
|
debug: z.ZodOptional<z.ZodBoolean>;
|
|
1921
|
+
importance: z.ZodNumber;
|
|
1922
|
+
bestEventId: z.ZodString;
|
|
1923
|
+
windowMs: z.ZodOptional<z.ZodNumber>;
|
|
1924
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1925
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
1926
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
1927
|
+
stepId: z.ZodString;
|
|
1928
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1929
|
+
decidedAt: z.ZodNumber;
|
|
1930
|
+
}, z.core.$strip>>;
|
|
1931
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
1932
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
1933
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
1934
|
+
stepId: z.ZodString;
|
|
1935
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
1936
|
+
decidedAt: z.ZodNumber;
|
|
1937
|
+
}, z.core.$strip>>;
|
|
1328
1938
|
id: z.ZodString;
|
|
1329
1939
|
trackId: z.ZodString;
|
|
1330
1940
|
timestamp: z.ZodNumber;
|
|
1331
1941
|
className: z.ZodString;
|
|
1332
|
-
label: z.ZodOptional<z.ZodString>;
|
|
1333
|
-
importance: z.ZodNumber;
|
|
1334
|
-
bestEventId: z.ZodString;
|
|
1335
|
-
windowMs: z.ZodOptional<z.ZodNumber>;
|
|
1336
1942
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
1337
1943
|
/** Server-side bucketed event counts for the 24-hour timeline.
|
|
1338
1944
|
* Returns one entry per non-empty bucket; empty buckets are omitted. */
|
|
@@ -1434,11 +2040,29 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1434
2040
|
*
|
|
1435
2041
|
* `auth: 'protected'` (the default), NOT `admin`: the viewer is an
|
|
1436
2042
|
* authenticated non-admin surface and two of the three call sites are
|
|
1437
|
-
* there.
|
|
1438
|
-
*
|
|
2043
|
+
* there. The note that used to sit here said to revisit this the day a flag
|
|
2044
|
+
* gained an effect that costs storage, and D81 is that day — `markForTrain`
|
|
2045
|
+
* now pins. It STAYS protected, and the reason is that the alternative
|
|
2046
|
+
* makes the feature pointless: marking a track is something you do while
|
|
2047
|
+
* looking at it, on the surface you were already looking at it on, and that
|
|
2048
|
+
* surface is the viewer. What the storage cost gets instead is a BOUND — a
|
|
2049
|
+
* per-device pin budget enforced in the body, refusing a new pin past the
|
|
2050
|
+
* limit while always allowing un-marking. `deleteTracks` next door is still
|
|
2051
|
+
* admin, because destroying evidence and preserving it are not symmetric.
|
|
2052
|
+
*
|
|
2053
|
+
* `markForTrain` writes the retrain LIFECYCLE, not a boolean column: `true`
|
|
2054
|
+
* is `none → staging`, `false` is `staging → none`. A track already
|
|
2055
|
+
* `trained` refuses BOTH — its frames are copies inside the retrain dataset
|
|
2056
|
+
* and re-staging it from a generic toggle is how the same material gets
|
|
2057
|
+
* annotated twice under two ground truths. Returning a trained track to
|
|
2058
|
+
* staging is a deliberate action of the retrain page, which is also the only
|
|
2059
|
+
* thing that produces `trained` in the first place.
|
|
1439
2060
|
*
|
|
1440
|
-
* Returns the RESOLVED state of both flags (absent → `false`)
|
|
1441
|
-
*
|
|
2061
|
+
* Returns the RESOLVED state of both flags (absent → `false`) plus the
|
|
2062
|
+
* `retrainStatus` they were derived from, so a caller can drive its toggle
|
|
2063
|
+
* — and render a `trained` badge — without a re-fetch. Rejects an unknown
|
|
2064
|
+
* track, a new staging mark on a device already holding its full budget, and
|
|
2065
|
+
* any `markForTrain` write against a trained track.
|
|
1442
2066
|
*/
|
|
1443
2067
|
readonly setTrackFlags: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1444
2068
|
deviceId: z.ZodNumber;
|
|
@@ -1451,6 +2075,11 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1451
2075
|
trackId: z.ZodString;
|
|
1452
2076
|
markForTrain: z.ZodBoolean;
|
|
1453
2077
|
debug: z.ZodBoolean;
|
|
2078
|
+
retrainStatus: z.ZodEnum<{
|
|
2079
|
+
none: "none";
|
|
2080
|
+
staging: "staging";
|
|
2081
|
+
trained: "trained";
|
|
2082
|
+
}>;
|
|
1454
2083
|
}, z.core.$strip>, "mutation">;
|
|
1455
2084
|
/**
|
|
1456
2085
|
* Durable event-store footprint for the management UI: event rows
|
|
@@ -1570,6 +2199,482 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1570
2199
|
detail: z.ZodNullable<z.ZodString>;
|
|
1571
2200
|
actor: z.ZodString;
|
|
1572
2201
|
}, z.core.$strip>>>, "query">;
|
|
2202
|
+
/**
|
|
2203
|
+
* The CHEAP QUESTION, asked before any media moves: how big is the dataset
|
|
2204
|
+
* the marked (`markForTrain`) tracks would produce?
|
|
2205
|
+
*
|
|
2206
|
+
* Answered from media INDEX rows only — key, kind, size, timestamp — so it
|
|
2207
|
+
* costs ~2 KB of reads per track and no blob reads at all. The measured harm
|
|
2208
|
+
* behind D56 was a bulk pass that read and base64'd every blob a track owned
|
|
2209
|
+
* before deciding anything, taking hub-main to 82 s busy out of 120; an
|
|
2210
|
+
* export is that same I/O shape, so it inherits the same discipline: know
|
|
2211
|
+
* the size, then decide.
|
|
2212
|
+
*
|
|
2213
|
+
* `truncated` reports that more marked tracks exist than one pass carries.
|
|
2214
|
+
* Empty `deviceIds` ⇒ every device that has marked tracks.
|
|
2215
|
+
*/
|
|
2216
|
+
readonly getTrainingExportSummary: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2217
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2218
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2219
|
+
generatedAt: z.ZodNumber;
|
|
2220
|
+
trackCount: z.ZodNumber;
|
|
2221
|
+
fileCount: z.ZodNumber;
|
|
2222
|
+
byteCount: z.ZodNumber;
|
|
2223
|
+
truncated: z.ZodBoolean;
|
|
2224
|
+
devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2225
|
+
deviceId: z.ZodNumber;
|
|
2226
|
+
tracks: z.ZodNumber;
|
|
2227
|
+
files: z.ZodNumber;
|
|
2228
|
+
bytes: z.ZodNumber;
|
|
2229
|
+
}, z.core.$strip>>>;
|
|
2230
|
+
}, z.core.$strip>, "query">;
|
|
2231
|
+
/**
|
|
2232
|
+
* Where to download the dataset archive.
|
|
2233
|
+
*
|
|
2234
|
+
* The BYTES do not come back through this cap — they come from the returned
|
|
2235
|
+
* data-plane URL, which streams a tar built entry by entry. A multi-gigabyte
|
|
2236
|
+
* archive base64'd through a unary RPC envelope would be held whole in
|
|
2237
|
+
* memory twice on a hub this repo has already OOM'd once (D9/D18 are the
|
|
2238
|
+
* same lesson about frames). `getDownloadUrl` on `recordingExport` is the
|
|
2239
|
+
* precedent, and this follows it deliberately.
|
|
2240
|
+
*
|
|
2241
|
+
* The archive contains a `manifest.json` FIRST, then the stored media
|
|
2242
|
+
* VERBATIM under `tracks/<deviceId>/<trackId>/…`. No crop is derived and no
|
|
2243
|
+
* model is run: a training set's pixels must be the pixels the pipeline saw.
|
|
2244
|
+
*/
|
|
2245
|
+
readonly getTrainingExportUrl: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2246
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2247
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2248
|
+
url: z.ZodString;
|
|
2249
|
+
}, z.core.$strip>, "query">;
|
|
2250
|
+
/**
|
|
2251
|
+
* The staging worklist for one camera, or for every camera that has one.
|
|
2252
|
+
*
|
|
2253
|
+
* Fetched ON DEMAND, over the staging set only — the page never scans
|
|
2254
|
+
* history, because making the working set small is the entire purpose of
|
|
2255
|
+
* the mark. Each row carries how many frames the dataset already holds from
|
|
2256
|
+
* the track and how many subjects were annotated on them, so
|
|
2257
|
+
* `frameCount: 0` reads as "still to work" without a second call per track.
|
|
2258
|
+
*
|
|
2259
|
+
* `auth: 'admin'`, unlike the viewer-level mark itself: marking a track is
|
|
2260
|
+
* curation you do while looking at it, but building the training set the
|
|
2261
|
+
* fleet's models are fine-tuned on is not.
|
|
2262
|
+
*/
|
|
2263
|
+
readonly listRetrainStaging: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2264
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2265
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
2266
|
+
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2267
|
+
trackId: z.ZodString;
|
|
2268
|
+
deviceId: z.ZodNumber;
|
|
2269
|
+
className: z.ZodString;
|
|
2270
|
+
label: z.ZodOptional<z.ZodString>;
|
|
2271
|
+
firstSeen: z.ZodNumber;
|
|
2272
|
+
lastSeen: z.ZodNumber;
|
|
2273
|
+
frameCount: z.ZodNumber;
|
|
2274
|
+
annotationCount: z.ZodNumber;
|
|
2275
|
+
}, z.core.$strip>>>, "query">;
|
|
2276
|
+
/**
|
|
2277
|
+
* What a track can contribute, and what it already has.
|
|
2278
|
+
*
|
|
2279
|
+
* `candidates` are the track's whole, unannotated frames — index rows only,
|
|
2280
|
+
* so this is cheap. `copies` are the frames already inside the dataset, and
|
|
2281
|
+
* a candidate whose copy exists is marked `copied: true`: selecting it again
|
|
2282
|
+
* is free and CANNOT fail, whatever became of the original.
|
|
2283
|
+
*
|
|
2284
|
+
* A crop, a thumbnail and `fullFrameBoxed` are never candidates. The last
|
|
2285
|
+
* one matters most: it has the model's own rectangle burned into the pixels,
|
|
2286
|
+
* and a detector trained on it learns to find a green line.
|
|
2287
|
+
*/
|
|
2288
|
+
readonly listRetrainFrames: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2289
|
+
trackId: z.ZodString;
|
|
2290
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2291
|
+
candidates: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2292
|
+
mediaKey: z.ZodString;
|
|
2293
|
+
kind: z.ZodEnum<{
|
|
2294
|
+
snapshot: "snapshot";
|
|
2295
|
+
crop: "crop";
|
|
2296
|
+
keyFrame: "keyFrame";
|
|
2297
|
+
thumbnail: "thumbnail";
|
|
2298
|
+
firstFrame: "firstFrame";
|
|
2299
|
+
lastFrame: "lastFrame";
|
|
2300
|
+
fullFrame: "fullFrame";
|
|
2301
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
2302
|
+
faceCrop: "faceCrop";
|
|
2303
|
+
plateCrop: "plateCrop";
|
|
2304
|
+
keyFrameSmall: "keyFrameSmall";
|
|
2305
|
+
thumbnailSmall: "thumbnailSmall";
|
|
2306
|
+
}>;
|
|
2307
|
+
timestamp: z.ZodNumber;
|
|
2308
|
+
sizeBytes: z.ZodNumber;
|
|
2309
|
+
copied: z.ZodBoolean;
|
|
2310
|
+
}, z.core.$strip>>>;
|
|
2311
|
+
copies: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2312
|
+
frameId: z.ZodString;
|
|
2313
|
+
deviceId: z.ZodNumber;
|
|
2314
|
+
trackId: z.ZodString;
|
|
2315
|
+
sourceMediaKey: z.ZodString;
|
|
2316
|
+
sourceKind: z.ZodEnum<{
|
|
2317
|
+
snapshot: "snapshot";
|
|
2318
|
+
crop: "crop";
|
|
2319
|
+
keyFrame: "keyFrame";
|
|
2320
|
+
thumbnail: "thumbnail";
|
|
2321
|
+
firstFrame: "firstFrame";
|
|
2322
|
+
lastFrame: "lastFrame";
|
|
2323
|
+
fullFrame: "fullFrame";
|
|
2324
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
2325
|
+
faceCrop: "faceCrop";
|
|
2326
|
+
plateCrop: "plateCrop";
|
|
2327
|
+
keyFrameSmall: "keyFrameSmall";
|
|
2328
|
+
thumbnailSmall: "thumbnailSmall";
|
|
2329
|
+
}>;
|
|
2330
|
+
sizeBytes: z.ZodNumber;
|
|
2331
|
+
width: z.ZodNumber;
|
|
2332
|
+
height: z.ZodNumber;
|
|
2333
|
+
copiedAt: z.ZodNumber;
|
|
2334
|
+
}, z.core.$strip>>>;
|
|
2335
|
+
autoPickMediaKey: z.ZodOptional<z.ZodString>;
|
|
2336
|
+
}, z.core.$strip>, "query">;
|
|
2337
|
+
/**
|
|
2338
|
+
* COPY-ON-SELECT — the write that makes `trained` safe to evict.
|
|
2339
|
+
*
|
|
2340
|
+
* Selecting a frame copies its bytes into retrain storage immediately: not
|
|
2341
|
+
* a reference, not a lease. Once the copy exists the dataset no longer
|
|
2342
|
+
* depends on the track's media, which is exactly what lets D81 hand a
|
|
2343
|
+
* `trained` track back to retention.
|
|
2344
|
+
*
|
|
2345
|
+
* The order inside is load-bearing and is pinned by a test: an EXISTING
|
|
2346
|
+
* copy is returned without touching the source, so an original that
|
|
2347
|
+
* evaporated blocks the selection of THAT ORIGINAL and never the copy
|
|
2348
|
+
* already taken. Every refusal comes back named — a dropped selection is
|
|
2349
|
+
* never silent, on the wire or in the log.
|
|
2350
|
+
*/
|
|
2351
|
+
readonly selectRetrainFrames: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2352
|
+
deviceId: z.ZodNumber;
|
|
2353
|
+
trackId: z.ZodString;
|
|
2354
|
+
mediaKeys: z.ZodArray<z.ZodString>;
|
|
2355
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2356
|
+
copied: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2357
|
+
frameId: z.ZodString;
|
|
2358
|
+
deviceId: z.ZodNumber;
|
|
2359
|
+
trackId: z.ZodString;
|
|
2360
|
+
sourceMediaKey: z.ZodString;
|
|
2361
|
+
sourceKind: z.ZodEnum<{
|
|
2362
|
+
snapshot: "snapshot";
|
|
2363
|
+
crop: "crop";
|
|
2364
|
+
keyFrame: "keyFrame";
|
|
2365
|
+
thumbnail: "thumbnail";
|
|
2366
|
+
firstFrame: "firstFrame";
|
|
2367
|
+
lastFrame: "lastFrame";
|
|
2368
|
+
fullFrame: "fullFrame";
|
|
2369
|
+
fullFrameBoxed: "fullFrameBoxed";
|
|
2370
|
+
faceCrop: "faceCrop";
|
|
2371
|
+
plateCrop: "plateCrop";
|
|
2372
|
+
keyFrameSmall: "keyFrameSmall";
|
|
2373
|
+
thumbnailSmall: "thumbnailSmall";
|
|
2374
|
+
}>;
|
|
2375
|
+
sizeBytes: z.ZodNumber;
|
|
2376
|
+
width: z.ZodNumber;
|
|
2377
|
+
height: z.ZodNumber;
|
|
2378
|
+
copiedAt: z.ZodNumber;
|
|
2379
|
+
}, z.core.$strip>>>;
|
|
2380
|
+
refused: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2381
|
+
sourceMediaKey: z.ZodString;
|
|
2382
|
+
reason: z.ZodEnum<{
|
|
2383
|
+
"source-missing": "source-missing";
|
|
2384
|
+
"unreadable-image": "unreadable-image";
|
|
2385
|
+
"write-failed": "write-failed";
|
|
2386
|
+
}>;
|
|
2387
|
+
}, z.core.$strip>>>;
|
|
2388
|
+
}, z.core.$strip>, "mutation">;
|
|
2389
|
+
/** Un-select a frame: its annotations go first, then the copy and its blob.
|
|
2390
|
+
* Deliberately destructive and deliberately explicit — it is the only way
|
|
2391
|
+
* a frame leaves the dataset before export. */
|
|
2392
|
+
readonly deselectRetrainFrame: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2393
|
+
deviceId: z.ZodNumber;
|
|
2394
|
+
trackId: z.ZodString;
|
|
2395
|
+
frameId: z.ZodString;
|
|
2396
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2397
|
+
removed: z.ZodBoolean;
|
|
2398
|
+
removedAnnotations: z.ZodNumber;
|
|
2399
|
+
}, z.core.$strip>, "mutation">;
|
|
2400
|
+
/**
|
|
2401
|
+
* The pixels of ONE copied frame, base64.
|
|
2402
|
+
*
|
|
2403
|
+
* Through the cap rather than a data plane because it is genuinely one
|
|
2404
|
+
* frame at a time, on demand, at human speed — the shape D9/D18 permit
|
|
2405
|
+
* (what they forbid is frames crossing a boundary at frame RATE). The
|
|
2406
|
+
* annotation canvas needs the image and its exact dimensions in the same
|
|
2407
|
+
* answer: a canvas that places a normalised box against a size it guessed
|
|
2408
|
+
* draws every box in the wrong place.
|
|
2409
|
+
*/
|
|
2410
|
+
readonly getRetrainFrameImage: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2411
|
+
frameId: z.ZodString;
|
|
2412
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2413
|
+
base64: z.ZodString;
|
|
2414
|
+
width: z.ZodNumber;
|
|
2415
|
+
height: z.ZodNumber;
|
|
2416
|
+
}, z.core.$strip>, "query">;
|
|
2417
|
+
/**
|
|
2418
|
+
* Ask the pipeline what it sees, as a PROPOSAL.
|
|
2419
|
+
*
|
|
2420
|
+
* Runs through `pipelineRunner.runStatelessStep` on the COPIED frame, and
|
|
2421
|
+
* every box comes back as a draft with `source: 'assist'` plus the model and
|
|
2422
|
+
* score that produced it. The operator confirms, edits, adds and deletes;
|
|
2423
|
+
* nothing is stored until `saveRetrainAnnotations`.
|
|
2424
|
+
*
|
|
2425
|
+
* For packages the request is `rfdetr-package` on the ZONE CROP at 0.35 —
|
|
2426
|
+
* never the whole frame, where a package detector at that threshold proposes
|
|
2427
|
+
* furniture. A package request with no zone is REFUSED rather than widened,
|
|
2428
|
+
* because the silent widening would look like a bad model for as long as
|
|
2429
|
+
* nobody checked which rectangle it ran on.
|
|
2430
|
+
*/
|
|
2431
|
+
readonly proposeRetrainAnnotations: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2432
|
+
deviceId: z.ZodNumber;
|
|
2433
|
+
trackId: z.ZodString;
|
|
2434
|
+
frameId: z.ZodString;
|
|
2435
|
+
subject: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
2436
|
+
kind: z.ZodLiteral<"package">;
|
|
2437
|
+
zone: z.ZodOptional<z.ZodObject<{
|
|
2438
|
+
x: z.ZodNumber;
|
|
2439
|
+
y: z.ZodNumber;
|
|
2440
|
+
w: z.ZodNumber;
|
|
2441
|
+
h: z.ZodNumber;
|
|
2442
|
+
}, z.core.$strip>>;
|
|
2443
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2444
|
+
kind: z.ZodLiteral<"objects">;
|
|
2445
|
+
modelId: z.ZodString;
|
|
2446
|
+
minScore: z.ZodOptional<z.ZodNumber>;
|
|
2447
|
+
}, z.core.$strip>], "kind">;
|
|
2448
|
+
nodeId: z.ZodOptional<z.ZodString>;
|
|
2449
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
2450
|
+
kind: z.ZodLiteral<"proposed">;
|
|
2451
|
+
modelId: z.ZodString;
|
|
2452
|
+
stepId: z.ZodString;
|
|
2453
|
+
minScore: z.ZodNumber;
|
|
2454
|
+
proposals: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2455
|
+
label: z.ZodOptional<z.ZodString>;
|
|
2456
|
+
kind: z.ZodEnum<{
|
|
2457
|
+
subject: "subject";
|
|
2458
|
+
model_error: "model_error";
|
|
2459
|
+
}>;
|
|
2460
|
+
source: z.ZodEnum<{
|
|
2461
|
+
operator: "operator";
|
|
2462
|
+
assist: "assist";
|
|
2463
|
+
}>;
|
|
2464
|
+
bbox: z.ZodObject<{
|
|
2465
|
+
x: z.ZodNumber;
|
|
2466
|
+
y: z.ZodNumber;
|
|
2467
|
+
w: z.ZodNumber;
|
|
2468
|
+
h: z.ZodNumber;
|
|
2469
|
+
}, z.core.$strip>;
|
|
2470
|
+
macroClass: z.ZodEnum<{
|
|
2471
|
+
person: "person";
|
|
2472
|
+
vehicle: "vehicle";
|
|
2473
|
+
animal: "animal";
|
|
2474
|
+
face: "face";
|
|
2475
|
+
plate: "plate";
|
|
2476
|
+
package: "package";
|
|
2477
|
+
}>;
|
|
2478
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
2479
|
+
assistModelId: z.ZodOptional<z.ZodString>;
|
|
2480
|
+
assistScore: z.ZodOptional<z.ZodNumber>;
|
|
2481
|
+
}, z.core.$strip>>>;
|
|
2482
|
+
belowThreshold: z.ZodNumber;
|
|
2483
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2484
|
+
kind: z.ZodLiteral<"refused">;
|
|
2485
|
+
reason: z.ZodString;
|
|
2486
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
2487
|
+
}, z.core.$strip>], "kind">, "mutation">;
|
|
2488
|
+
/** Every annotation on a track, oldest first. */
|
|
2489
|
+
readonly listRetrainAnnotations: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2490
|
+
trackId: z.ZodString;
|
|
2491
|
+
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2492
|
+
id: z.ZodString;
|
|
2493
|
+
trackId: z.ZodString;
|
|
2494
|
+
deviceId: z.ZodNumber;
|
|
2495
|
+
mediaKey: z.ZodString;
|
|
2496
|
+
bbox: z.ZodObject<{
|
|
2497
|
+
x: z.ZodNumber;
|
|
2498
|
+
y: z.ZodNumber;
|
|
2499
|
+
w: z.ZodNumber;
|
|
2500
|
+
h: z.ZodNumber;
|
|
2501
|
+
}, z.core.$strip>;
|
|
2502
|
+
macroClass: z.ZodEnum<{
|
|
2503
|
+
person: "person";
|
|
2504
|
+
vehicle: "vehicle";
|
|
2505
|
+
animal: "animal";
|
|
2506
|
+
face: "face";
|
|
2507
|
+
plate: "plate";
|
|
2508
|
+
package: "package";
|
|
2509
|
+
}>;
|
|
2510
|
+
label: z.ZodOptional<z.ZodString>;
|
|
2511
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
2512
|
+
kind: z.ZodEnum<{
|
|
2513
|
+
subject: "subject";
|
|
2514
|
+
model_error: "model_error";
|
|
2515
|
+
}>;
|
|
2516
|
+
source: z.ZodEnum<{
|
|
2517
|
+
operator: "operator";
|
|
2518
|
+
assist: "assist";
|
|
2519
|
+
}>;
|
|
2520
|
+
assistModelId: z.ZodOptional<z.ZodString>;
|
|
2521
|
+
assistScore: z.ZodOptional<z.ZodNumber>;
|
|
2522
|
+
exportedInBatch: z.ZodOptional<z.ZodString>;
|
|
2523
|
+
createdAt: z.ZodNumber;
|
|
2524
|
+
}, z.core.$strip>>>, "query">;
|
|
2525
|
+
/**
|
|
2526
|
+
* Replace EVERY annotation on one frame with the supplied set.
|
|
2527
|
+
*
|
|
2528
|
+
* Whole-frame replacement, not per-box upsert: the unit of ground truth is
|
|
2529
|
+
* the frame, and "the operator deleted a box" must be the same durable
|
|
2530
|
+
* outcome as "the operator never drew it". A per-box patch would let a frame
|
|
2531
|
+
* keep a box the operator removed on a surface that only knew about the
|
|
2532
|
+
* boxes it sent.
|
|
2533
|
+
*
|
|
2534
|
+
* Refuses a macro class typed into `label` or `subLabel` — the tiers are
|
|
2535
|
+
* separate and the guard is at the WRITE, because a mixed taxonomy cannot
|
|
2536
|
+
* be un-mixed by reading it.
|
|
2537
|
+
*/
|
|
2538
|
+
readonly saveRetrainAnnotations: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2539
|
+
deviceId: z.ZodNumber;
|
|
2540
|
+
trackId: z.ZodString;
|
|
2541
|
+
frameId: z.ZodString;
|
|
2542
|
+
annotations: z.ZodArray<z.ZodObject<{
|
|
2543
|
+
label: z.ZodOptional<z.ZodString>;
|
|
2544
|
+
kind: z.ZodEnum<{
|
|
2545
|
+
subject: "subject";
|
|
2546
|
+
model_error: "model_error";
|
|
2547
|
+
}>;
|
|
2548
|
+
source: z.ZodEnum<{
|
|
2549
|
+
operator: "operator";
|
|
2550
|
+
assist: "assist";
|
|
2551
|
+
}>;
|
|
2552
|
+
bbox: z.ZodObject<{
|
|
2553
|
+
x: z.ZodNumber;
|
|
2554
|
+
y: z.ZodNumber;
|
|
2555
|
+
w: z.ZodNumber;
|
|
2556
|
+
h: z.ZodNumber;
|
|
2557
|
+
}, z.core.$strip>;
|
|
2558
|
+
macroClass: z.ZodEnum<{
|
|
2559
|
+
person: "person";
|
|
2560
|
+
vehicle: "vehicle";
|
|
2561
|
+
animal: "animal";
|
|
2562
|
+
face: "face";
|
|
2563
|
+
plate: "plate";
|
|
2564
|
+
package: "package";
|
|
2565
|
+
}>;
|
|
2566
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
2567
|
+
assistModelId: z.ZodOptional<z.ZodString>;
|
|
2568
|
+
assistScore: z.ZodOptional<z.ZodNumber>;
|
|
2569
|
+
}, z.core.$strip>>;
|
|
2570
|
+
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2571
|
+
id: z.ZodString;
|
|
2572
|
+
trackId: z.ZodString;
|
|
2573
|
+
deviceId: z.ZodNumber;
|
|
2574
|
+
mediaKey: z.ZodString;
|
|
2575
|
+
bbox: z.ZodObject<{
|
|
2576
|
+
x: z.ZodNumber;
|
|
2577
|
+
y: z.ZodNumber;
|
|
2578
|
+
w: z.ZodNumber;
|
|
2579
|
+
h: z.ZodNumber;
|
|
2580
|
+
}, z.core.$strip>;
|
|
2581
|
+
macroClass: z.ZodEnum<{
|
|
2582
|
+
person: "person";
|
|
2583
|
+
vehicle: "vehicle";
|
|
2584
|
+
animal: "animal";
|
|
2585
|
+
face: "face";
|
|
2586
|
+
plate: "plate";
|
|
2587
|
+
package: "package";
|
|
2588
|
+
}>;
|
|
2589
|
+
label: z.ZodOptional<z.ZodString>;
|
|
2590
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
2591
|
+
kind: z.ZodEnum<{
|
|
2592
|
+
subject: "subject";
|
|
2593
|
+
model_error: "model_error";
|
|
2594
|
+
}>;
|
|
2595
|
+
source: z.ZodEnum<{
|
|
2596
|
+
operator: "operator";
|
|
2597
|
+
assist: "assist";
|
|
2598
|
+
}>;
|
|
2599
|
+
assistModelId: z.ZodOptional<z.ZodString>;
|
|
2600
|
+
assistScore: z.ZodOptional<z.ZodNumber>;
|
|
2601
|
+
exportedInBatch: z.ZodOptional<z.ZodString>;
|
|
2602
|
+
createdAt: z.ZodNumber;
|
|
2603
|
+
}, z.core.$strip>>>, "mutation">;
|
|
2604
|
+
/**
|
|
2605
|
+
* Finish with a track: `staging → trained`. **The only writer of that
|
|
2606
|
+
* state** — D81 shipped the column with it deliberately unreachable.
|
|
2607
|
+
*
|
|
2608
|
+
* Refuses a track the dataset holds no copies from. `trained` un-pins the
|
|
2609
|
+
* track's media, so completing without a copy is a delete order for material
|
|
2610
|
+
* nothing ever extracted anything from; that refusal IS the safety argument
|
|
2611
|
+
* of D81, expressed as a precondition.
|
|
2612
|
+
*/
|
|
2613
|
+
readonly completeRetrainTrack: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2614
|
+
deviceId: z.ZodNumber;
|
|
2615
|
+
trackId: z.ZodString;
|
|
2616
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2617
|
+
trackId: z.ZodString;
|
|
2618
|
+
retrainStatus: z.ZodEnum<{
|
|
2619
|
+
none: "none";
|
|
2620
|
+
staging: "staging";
|
|
2621
|
+
trained: "trained";
|
|
2622
|
+
}>;
|
|
2623
|
+
changed: z.ZodBoolean;
|
|
2624
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
2625
|
+
unchanged: "unchanged";
|
|
2626
|
+
"unknown-track": "unknown-track";
|
|
2627
|
+
"no-frames-copied": "no-frames-copied";
|
|
2628
|
+
"not-staging": "not-staging";
|
|
2629
|
+
"not-trained": "not-trained";
|
|
2630
|
+
}>>;
|
|
2631
|
+
}, z.core.$strip>, "mutation">;
|
|
2632
|
+
/**
|
|
2633
|
+
* The deliberate return: `trained → staging`, for the rare case.
|
|
2634
|
+
*
|
|
2635
|
+
* The generic `setTrackFlags` toggle refuses this in both directions by
|
|
2636
|
+
* design (D81) — re-staging from a checkbox is how the same material gets
|
|
2637
|
+
* annotated twice under two ground truths. Doing it here means the operator
|
|
2638
|
+
* is looking at the annotations that already exist while they decide, and
|
|
2639
|
+
* those annotations are LEFT ALONE: "put this back" must not be a
|
|
2640
|
+
* destructive act wearing a navigational name.
|
|
2641
|
+
*/
|
|
2642
|
+
readonly restageRetrainTrack: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2643
|
+
deviceId: z.ZodNumber;
|
|
2644
|
+
trackId: z.ZodString;
|
|
2645
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2646
|
+
trackId: z.ZodString;
|
|
2647
|
+
retrainStatus: z.ZodEnum<{
|
|
2648
|
+
none: "none";
|
|
2649
|
+
staging: "staging";
|
|
2650
|
+
trained: "trained";
|
|
2651
|
+
}>;
|
|
2652
|
+
changed: z.ZodBoolean;
|
|
2653
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
2654
|
+
unchanged: "unchanged";
|
|
2655
|
+
"unknown-track": "unknown-track";
|
|
2656
|
+
"no-frames-copied": "no-frames-copied";
|
|
2657
|
+
"not-staging": "not-staging";
|
|
2658
|
+
"not-trained": "not-trained";
|
|
2659
|
+
}>>;
|
|
2660
|
+
}, z.core.$strip>, "mutation">;
|
|
2661
|
+
/**
|
|
2662
|
+
* Where to download the ANNOTATED dataset.
|
|
2663
|
+
*
|
|
2664
|
+
* The sibling of `getTrainingExportUrl` and deliberately not the same
|
|
2665
|
+
* archive: that one streams a marked track's stored media verbatim, this one
|
|
2666
|
+
* streams the retrain COPIES plus an `annotations.json` carrying, for every
|
|
2667
|
+
* subject, the canonical full-frame box AND the geometry derived for each
|
|
2668
|
+
* model shape (letterboxed root / zone-cropped package / subject-cropped
|
|
2669
|
+
* classifier). Derived at export, never stored — one box in, three shapes
|
|
2670
|
+
* out, so two crops of the same subject can never end up in one feature
|
|
2671
|
+
* space (D52).
|
|
2672
|
+
*/
|
|
2673
|
+
readonly getRetrainExportUrl: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2674
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2675
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2676
|
+
url: z.ZodString;
|
|
2677
|
+
}, z.core.$strip>, "query">;
|
|
1573
2678
|
readonly getEventMedia: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1574
2679
|
eventId: z.ZodString;
|
|
1575
2680
|
kind: z.ZodOptional<z.ZodEnum<{
|
|
@@ -1699,15 +2804,6 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1699
2804
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
1700
2805
|
minScore: z.ZodDefault<z.ZodNumber>;
|
|
1701
2806
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1702
|
-
kind: z.ZodLiteral<"object">;
|
|
1703
|
-
source: z.ZodOptional<z.ZodEnum<{
|
|
1704
|
-
pipeline: "pipeline";
|
|
1705
|
-
onboard: "onboard";
|
|
1706
|
-
}>>;
|
|
1707
|
-
frameId: z.ZodOptional<z.ZodString>;
|
|
1708
|
-
trackId: z.ZodOptional<z.ZodString>;
|
|
1709
|
-
className: z.ZodString;
|
|
1710
|
-
label: z.ZodOptional<z.ZodString>;
|
|
1711
2807
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
1712
2808
|
bbox: z.ZodOptional<z.ZodObject<{
|
|
1713
2809
|
x: z.ZodNumber;
|
|
@@ -1737,6 +2833,28 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1737
2833
|
keyFrameMediaKey: z.ZodOptional<z.ZodString>;
|
|
1738
2834
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
1739
2835
|
importance: z.ZodOptional<z.ZodNumber>;
|
|
2836
|
+
label: z.ZodOptional<z.ZodString>;
|
|
2837
|
+
labelScore: z.ZodOptional<z.ZodNumber>;
|
|
2838
|
+
labelMeta: z.ZodOptional<z.ZodObject<{
|
|
2839
|
+
stepId: z.ZodString;
|
|
2840
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
2841
|
+
decidedAt: z.ZodNumber;
|
|
2842
|
+
}, z.core.$strip>>;
|
|
2843
|
+
subLabel: z.ZodOptional<z.ZodString>;
|
|
2844
|
+
subLabelScore: z.ZodOptional<z.ZodNumber>;
|
|
2845
|
+
subLabelMeta: z.ZodOptional<z.ZodObject<{
|
|
2846
|
+
stepId: z.ZodString;
|
|
2847
|
+
modelId: z.ZodOptional<z.ZodString>;
|
|
2848
|
+
decidedAt: z.ZodNumber;
|
|
2849
|
+
}, z.core.$strip>>;
|
|
2850
|
+
kind: z.ZodLiteral<"object">;
|
|
2851
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
2852
|
+
pipeline: "pipeline";
|
|
2853
|
+
onboard: "onboard";
|
|
2854
|
+
}>>;
|
|
2855
|
+
frameId: z.ZodOptional<z.ZodString>;
|
|
2856
|
+
trackId: z.ZodOptional<z.ZodString>;
|
|
2857
|
+
className: z.ZodString;
|
|
1740
2858
|
id: z.ZodString;
|
|
1741
2859
|
deviceId: z.ZodNumber;
|
|
1742
2860
|
timestamp: z.ZodNumber;
|