@camstack/addon-training 0.1.33 → 0.1.35

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 (25) hide show
  1. package/dist/{MotionZonesSettings-DoUEe4WF.mjs → MotionZonesSettings-DXqAP5wz.mjs} +3 -3
  2. package/dist/{PrivacyMaskSettings-iFKfZ5c0.mjs → PrivacyMaskSettings-CoNvkvc6.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-LX1mAT8M.mjs → SceneMonitorEditor-CwsEEzGt.mjs} +3 -3
  4. package/dist/_stub.js +1775 -1686
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-jHBM2Hh7.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DL0IzS20.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-cX_n863q.mjs +26 -0
  7. package/dist/addon-training.css +1 -1
  8. package/dist/{dist-k9SdzZBB.js → dist-B-VsYan_.js} +275 -15
  9. package/dist/{dist-BMkD7tAc.mjs → dist-BquQjWLf.mjs} +275 -15
  10. package/dist/{grid-2x2-CJ-EVenJ.mjs → grid-2x2-CpuOMtGX.mjs} +1 -1
  11. package/dist/{hostInit-DUCS6DMR.mjs → hostInit-D7qKQyKN.mjs} +2 -2
  12. package/dist/index.js +1 -1
  13. package/dist/orchestrator/training.addon.js +1 -1
  14. package/dist/orchestrator/training.addon.mjs +1 -1
  15. package/dist/{player-overlays-CeSu_AC4.mjs → player-overlays-HBuTHRa6.mjs} +1 -1
  16. package/dist/providers/modal/training-modal.addon.js +1 -1
  17. package/dist/providers/modal/training-modal.addon.mjs +1 -1
  18. package/dist/remoteEntry.js +1 -1
  19. package/dist/{responsive-CXEWggtS.mjs → responsive-D9vCqgDU.mjs} +1 -1
  20. package/dist/{scene-monitor-copy-BuIo6qi2.mjs → scene-monitor-copy-Cwu-a3SC.mjs} +1 -1
  21. package/dist/{square-DMtRWe-j.mjs → square-CuRDdJ1_.mjs} +1 -1
  22. package/dist/{trash-2-HBC8dnmH.mjs → trash-2-gnLrce8g.mjs} +1 -1
  23. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-BU19oDd0.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-MIdiPdsF.mjs} +1 -1
  24. package/package.json +1 -1
  25. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CNvuVA0z.mjs +0 -26
@@ -5420,7 +5420,7 @@ var ZodIssueCode = {
5420
5420
  var ZodFirstPartyTypeKind;
5421
5421
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5422
5422
  //#endregion
5423
- //#region ../types/dist/sleep-Tkp9dHXv.mjs
5423
+ //#region ../types/dist/sleep-BBF1iXUi.mjs
5424
5424
  /**
5425
5425
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5426
5426
  * window to float samples (D455).
@@ -8021,6 +8021,21 @@ var ProfileRtspEntrySchema = object({
8021
8021
  codec: string().optional(),
8022
8022
  resolution: CamStreamResolutionSchema.optional()
8023
8023
  });
8024
+ /**
8025
+ * The model weight formats a catalog entry can ship. Schema-free on purpose:
8026
+ * `types/models.ts` builds Zod schemas from it, but a runner-closure consumer
8027
+ * (the model downloader in `@camstack/system`) needs only the list and must
8028
+ * reach it through `@camstack/types/addon` without building the cap schema
8029
+ * graph (D28).
8030
+ */
8031
+ var MODEL_FORMATS = [
8032
+ "onnx",
8033
+ "coreml",
8034
+ "openvino",
8035
+ "tflite",
8036
+ "pt",
8037
+ "gguf"
8038
+ ];
8024
8039
  object({
8025
8040
  field: string().min(1),
8026
8041
  on: literal("advance")
@@ -8494,7 +8509,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
8494
8509
  return DeviceRole;
8495
8510
  }({});
8496
8511
  //#endregion
8497
- //#region ../types/dist/composition-Bzr7GwgP.mjs
8512
+ //#region ../types/dist/composition-C-WpVYTX.mjs
8498
8513
  /**
8499
8514
  * The ffmpeg build every CamStack node downloads, per platform and arch.
8500
8515
  *
@@ -8546,7 +8561,7 @@ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFM
8546
8561
  function portable(target) {
8547
8562
  return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
8548
8563
  }
8549
- portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
8564
+ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64"), `${BASE}${FFMPEG_RELEASE}`;
8550
8565
  /**
8551
8566
  * THE table "which boolean of this device type counts as HIGH", and the
8552
8567
  * pure evaluator of its EDGE.
@@ -10139,6 +10154,15 @@ function parseTrainingEventLine(line) {
10139
10154
  const parsed = TrainingEventSchema.safeParse(raw);
10140
10155
  return parsed.success ? parsed.data : null;
10141
10156
  }
10157
+ /** Every status, in the order a summary lists them. */
10158
+ var RETRAIN_REVIEW_STATUSES = [
10159
+ "unchanged",
10160
+ "adjusted",
10161
+ "reclassified",
10162
+ "added",
10163
+ "removed",
10164
+ "model-error"
10165
+ ];
10142
10166
  /**
10143
10167
  * What the gate decided about a birth, from the CALLER's point of view.
10144
10168
  *
@@ -11756,14 +11780,6 @@ var MASK_SUPPLY_STEP_IDS = ["segmentation"];
11756
11780
  ...CROP_SUPPLY_STEP_IDS,
11757
11781
  ...MASK_SUPPLY_STEP_IDS
11758
11782
  ];
11759
- var MODEL_FORMATS = [
11760
- "onnx",
11761
- "coreml",
11762
- "openvino",
11763
- "tflite",
11764
- "pt",
11765
- "gguf"
11766
- ];
11767
11783
  /**
11768
11784
  * Multi-file format payload.
11769
11785
  *
@@ -13927,6 +13943,16 @@ var BrokerClientsSchema = object({
13927
13943
  /** Total encoded + raw-RTP callback subscriber count (sum of `encoded[].length`). */
13928
13944
  encodedSubscribers: number()
13929
13945
  });
13946
+ /**
13947
+ * How many people are watching one camera LIVE right now — see
13948
+ * `getLiveViewerCounts`. A camera with nobody watching is absent from the list
13949
+ * (so `viewers` is always at least 1): the listing carries the cameras that
13950
+ * have viewers, never a row of zeros.
13951
+ */
13952
+ var LiveViewerCountSchema = object({
13953
+ deviceId: number().int().nonnegative(),
13954
+ viewers: number().int().positive()
13955
+ });
13930
13956
  _enum([
13931
13957
  "reconnecting",
13932
13958
  "sleeping",
@@ -14287,7 +14313,7 @@ method(object({
14287
14313
  }), {
14288
14314
  kind: "mutation",
14289
14315
  auth: "admin"
14290
- }), method(object({ brokerId: string() }), BrokerClientsSchema), method(object({
14316
+ }), method(object({ brokerId: string() }), BrokerClientsSchema), method(_void(), array(LiveViewerCountSchema).readonly()), method(object({
14291
14317
  brokerId: string(),
14292
14318
  channel: _enum(["rtsp", "audio"]),
14293
14319
  handle: string()
@@ -15235,6 +15261,38 @@ var BulkRecordSchema = object({
15235
15261
  data: record(string(), unknown())
15236
15262
  });
15237
15263
  /**
15264
+ * One write inside a {@link settingsStoreCapability.methods.transact} call.
15265
+ * Only the three that a "replace this set, bump that revision" write needs.
15266
+ */
15267
+ var TransactOpSchema = discriminatedUnion("op", [
15268
+ object({
15269
+ op: literal("deleteWhere"),
15270
+ collection: string(),
15271
+ filter: MutationFilterSchema
15272
+ }),
15273
+ object({
15274
+ op: literal("insertMany"),
15275
+ collection: string(),
15276
+ records: array(BulkRecordSchema).readonly()
15277
+ }),
15278
+ object({
15279
+ op: literal("update"),
15280
+ collection: string(),
15281
+ id: string(),
15282
+ data: record(string(), unknown())
15283
+ })
15284
+ ]);
15285
+ /**
15286
+ * The precondition of a transaction: the row `key` of `collection` must hold
15287
+ * `equals` in `column`, read INSIDE the transaction.
15288
+ */
15289
+ var TransactGuardSchema = object({
15290
+ collection: string(),
15291
+ key: string(),
15292
+ column: string(),
15293
+ equals: unknown()
15294
+ });
15295
+ /**
15238
15296
  * Column declaration for a structured (SQL-backed) collection.
15239
15297
  *
15240
15298
  * Logical types — the backend translates each to the matching SQLite
@@ -15325,6 +15383,16 @@ id: union([string(), number()]) }), {
15325
15383
  }), object({ inserted: number().int() }), {
15326
15384
  kind: "mutation",
15327
15385
  auth: "admin"
15386
+ }), method(object({
15387
+ namespace: string().optional(),
15388
+ guard: TransactGuardSchema.optional(),
15389
+ ops: array(TransactOpSchema).readonly()
15390
+ }), object({
15391
+ applied: boolean(),
15392
+ current: unknown().optional()
15393
+ }), {
15394
+ kind: "mutation",
15395
+ auth: "admin"
15328
15396
  }), method(object({
15329
15397
  namespace: string().optional(),
15330
15398
  collection: string(),
@@ -15473,6 +15541,16 @@ id: union([string(), number()]) }), {
15473
15541
  }), object({ inserted: number().int() }), {
15474
15542
  kind: "mutation",
15475
15543
  auth: "admin"
15544
+ }), method(object({
15545
+ namespace: string().optional(),
15546
+ guard: TransactGuardSchema.optional(),
15547
+ ops: array(TransactOpSchema).readonly()
15548
+ }), object({
15549
+ applied: boolean(),
15550
+ current: unknown().optional()
15551
+ }), {
15552
+ kind: "mutation",
15553
+ auth: "admin"
15476
15554
  }), method(object({
15477
15555
  namespace: string().optional(),
15478
15556
  collection: string(),
@@ -23885,6 +23963,55 @@ var RetrainBboxSchema = object({
23885
23963
  h: number()
23886
23964
  });
23887
23965
  /**
23966
+ * What a box LOOKED LIKE when it was offered, snapshotted at the moment the
23967
+ * operator accepted it. The saved row keeps only the final rectangle; this is
23968
+ * the other half of the pair, and the pair is what says whether the operator
23969
+ * accepted, nudged, relabelled or replaced a proposal (`retrain-review.ts`).
23970
+ *
23971
+ * `ref` names the proposal inside its frame: `pipeline:<trackId>` for a box the
23972
+ * live pipeline drew, `assist:<n>` for the n-th box of a detector or LLM run,
23973
+ * and anything unique for an operator-drawn box (`operator:<n>`). Re-derived
23974
+ * pipeline boxes carry the same ref every time, which is what lets a dismissal
23975
+ * stay dismissed.
23976
+ */
23977
+ var RetrainOriginSchema = object({
23978
+ source: RetrainAnnotationSourceSchema,
23979
+ ref: string().min(1),
23980
+ bbox: RetrainBboxSchema,
23981
+ macroClass: RetrainMacroClassSchema,
23982
+ label: string().optional(),
23983
+ score: number().optional(),
23984
+ modelId: string().optional()
23985
+ });
23986
+ /**
23987
+ * A proposal the operator deleted. Durable on the frame, so a deleted pipeline
23988
+ * box does not come back as a draft every time the frame is reopened, and so
23989
+ * the deletion itself is a recorded fact rather than an absence.
23990
+ */
23991
+ var RetrainDismissedSchema = object({
23992
+ ref: string().min(1),
23993
+ snapshot: RetrainOriginSchema
23994
+ });
23995
+ /** What the operator did with a proposal (see `retrain-review.ts`). */
23996
+ var RetrainReviewStatusSchema = _enum(RETRAIN_REVIEW_STATUSES);
23997
+ var RetrainFrameReviewSchema = object({
23998
+ boxes: array(object({
23999
+ ref: string(),
24000
+ savedId: string().optional(),
24001
+ status: RetrainReviewStatusSchema,
24002
+ /** The baseline was re-derived, not snapshotted (a pre-origin row). */
24003
+ approximate: boolean(),
24004
+ origin: RetrainOriginSchema.optional(),
24005
+ iou: number().optional()
24006
+ })).readonly(),
24007
+ summary: object({
24008
+ counts: record(RetrainReviewStatusSchema, number().int()),
24009
+ total: number().int(),
24010
+ changed: number().int(),
24011
+ approximate: boolean()
24012
+ })
24013
+ });
24014
+ /**
23888
24015
  * One annotated subject.
23889
24016
  *
23890
24017
  * `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
@@ -23908,6 +24035,9 @@ var RetrainAnnotationSchema = object({
23908
24035
  /** Which model proposed this box — or, on a `model_error`, drew the phantom. */
23909
24036
  assistModelId: string().optional(),
23910
24037
  assistScore: number().optional(),
24038
+ /** The proposal this box started from, snapshotted at accept time. `null` on
24039
+ * a row saved before origins existed; absent on a draft nobody snapshotted. */
24040
+ origin: RetrainOriginSchema.nullable().optional(),
23911
24041
  exportedInBatch: string().optional(),
23912
24042
  createdAt: number()
23913
24043
  });
@@ -24000,7 +24130,19 @@ var RetrainFrameSchema = object({
24000
24130
  * empty when nothing the track store holds can be placed on it. */
24001
24131
  pipelineBoxes: array(RetrainPipelineBoxSchema).readonly().optional(),
24002
24132
  /** The named collections this frame belongs to. Present on list answers. */
24003
- collectionIds: array(string()).readonly().optional()
24133
+ collectionIds: array(string()).readonly().optional(),
24134
+ /** Bumped by every annotation save. A save that names a stale
24135
+ * `expectedRevision` is refused, so two surfaces cannot overwrite each other. */
24136
+ revision: number().int().optional(),
24137
+ /** Proposals the operator deleted — never re-seeded as drafts. */
24138
+ dismissed: array(RetrainDismissedSchema).readonly().optional(),
24139
+ /** What the operator did with the proposals, computed by the server. */
24140
+ review: RetrainFrameReviewSchema.optional(),
24141
+ /** The frame's pixels over the admin data plane (full size). Fetch with the
24142
+ * admin bearer token; relative to the hub root. */
24143
+ imageUrl: string().optional(),
24144
+ /** The same, as a ~480 px thumbnail for grids. */
24145
+ thumbnailUrl: string().optional()
24004
24146
  });
24005
24147
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
24006
24148
  var RetrainCopyRefusalSchema = _enum([
@@ -25079,10 +25221,33 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
25079
25221
  /** The frame's track, when it has one — checked against the frame. */
25080
25222
  trackId: string().optional(),
25081
25223
  frameId: string(),
25082
- annotations: array(RetrainAnnotationDraftSchema)
25224
+ annotations: array(RetrainAnnotationDraftSchema),
25225
+ /** The frame's `revision` the caller saw. A different current revision
25226
+ * refuses the save with a `retrain-revision-conflict` error
25227
+ * (`parseRetrainRevisionConflict`). Absent ⇒ last write wins. */
25228
+ expectedRevision: number().int().optional(),
25229
+ /** The proposals the operator deleted. Absent ⇒ keep the frame's
25230
+ * current set; present ⇒ replace it (an empty array un-dismisses). */
25231
+ dismissed: array(RetrainDismissedSchema).optional()
25083
25232
  }), array(RetrainAnnotationSchema).readonly(), {
25084
25233
  kind: "mutation",
25085
25234
  auth: "admin"
25235
+ }), method(object({
25236
+ deviceId: number(),
25237
+ trackId: string().optional(),
25238
+ frameId: string(),
25239
+ expectedRevision: number().int().optional(),
25240
+ origins: array(object({
25241
+ annotationId: string(),
25242
+ origin: RetrainOriginSchema
25243
+ })).min(1).max(500)
25244
+ }), object({
25245
+ updated: number().int(),
25246
+ skipped: number().int(),
25247
+ revision: number().int()
25248
+ }), {
25249
+ kind: "mutation",
25250
+ auth: "admin"
25086
25251
  }), method(object({
25087
25252
  deviceId: number(),
25088
25253
  trackId: string()
@@ -27698,6 +27863,12 @@ var CameraStepOverridePatchSchema = object({
27698
27863
  settings: record(string(), unknown()).readonly().optional()
27699
27864
  });
27700
27865
  var CameraStepSettingsSchema = record(string(), record(string(), unknown()).readonly());
27866
+ /** The three root-detector choices a camera has (D507: at most one root). */
27867
+ var CameraDetectionSourceSchema = _enum([
27868
+ "pipeline",
27869
+ "onboard",
27870
+ "none"
27871
+ ]);
27701
27872
  var CameraPipelineSettingsSchema = object({
27702
27873
  stepToggles: record(string(), boolean()).optional(),
27703
27874
  stepSettings: CameraStepSettingsSchema.optional(),
@@ -28275,6 +28446,26 @@ method(object({
28275
28446
  }), object({ success: literal(true) }), {
28276
28447
  kind: "mutation",
28277
28448
  auth: "admin"
28449
+ }), method(object({ deviceId: number() }), object({
28450
+ source: CameraDetectionSourceSchema,
28451
+ explicit: boolean(),
28452
+ onboard: object({
28453
+ /** The camera has an onboard detector this system can read. */
28454
+ available: boolean(),
28455
+ /** What its detections carry — a camera with no box cannot be a root step. */
28456
+ geometry: _enum([
28457
+ "boxed",
28458
+ "while-streaming",
28459
+ "flag-only",
28460
+ "unknown"
28461
+ ])
28462
+ })
28463
+ })), method(object({
28464
+ deviceId: number(),
28465
+ source: CameraDetectionSourceSchema
28466
+ }), object({ success: literal(true) }), {
28467
+ kind: "mutation",
28468
+ auth: "admin"
28278
28469
  }), method(object({ deviceId: number() }), record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).nullable()), method(object({
28279
28470
  deviceId: number(),
28280
28471
  agentNodeId: string(),
@@ -31606,6 +31797,17 @@ var BatteryStatusSchema = object({
31606
31797
  */
31607
31798
  lastContactAt: number().optional(),
31608
31799
  /**
31800
+ * Ms epoch of the last COMPLETE scheduled refresh — every fact the provider
31801
+ * holds for the device (level, charging, link, device info, state slices) and
31802
+ * its cached snapshot, read together. Absent = never since this slice was
31803
+ * born. Unlike `lastUpdated` (any write, even a push of one field) this is
31804
+ * the staleness an operator can trust: the provider owns the device fact and
31805
+ * so owns the window on its age (D224, D847). Not a clock in the
31806
+ * runtime-state-durability sense: it moves once per window and must survive
31807
+ * a restart, or every restart would owe the camera a wake.
31808
+ */
31809
+ lastFullRefreshAt: number().optional(),
31810
+ /**
31609
31811
  * True when the source is a BINARY low-battery indicator (HA
31610
31812
  * `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
31611
31813
  * charge level — `percentage` is then a coarse stand-in (100 = normal,
@@ -34821,7 +35023,14 @@ var TopologyNodeSchema = object({
34821
35023
  * completed a mutual-TLS handshake, `clear` otherwise. Absent for the hub,
34822
35024
  * for offline rows and when the hub cannot tell.
34823
35025
  */
34824
- meshTransport: _enum(["tls", "clear"]).optional()
35026
+ meshTransport: _enum(["tls", "clear"]).optional(),
35027
+ /**
35028
+ * Whether the hub holds this online AGENT's capability registration (its
35029
+ * `registerNode` manifest). `false` = online in the mesh but not ready: the
35030
+ * hub dropped the registration on a disconnect only it saw and the agent has
35031
+ * not re-sent it. Absent for the hub and offline rows.
35032
+ */
35033
+ capabilitiesRegistered: boolean().optional()
34825
35034
  });
34826
35035
  var CapUsageEdgeSchema = object({
34827
35036
  callerAddonId: string(),
@@ -41459,6 +41668,12 @@ Object.freeze({
41459
41668
  addonId: null,
41460
41669
  access: "create"
41461
41670
  },
41671
+ "dataStoreProvider.transact": {
41672
+ capName: "data-store-provider",
41673
+ capScope: "system",
41674
+ addonId: null,
41675
+ access: "create"
41676
+ },
41462
41677
  "dataStoreProvider.update": {
41463
41678
  capName: "data-store-provider",
41464
41679
  capScope: "system",
@@ -44303,6 +44518,12 @@ Object.freeze({
44303
44518
  addonId: null,
44304
44519
  access: "create"
44305
44520
  },
44521
+ "pipelineAnalytics.backfillRetrainOrigins": {
44522
+ capName: "pipeline-analytics",
44523
+ capScope: "device",
44524
+ addonId: null,
44525
+ access: "create"
44526
+ },
44306
44527
  "pipelineAnalytics.cancelRelocateMedia": {
44307
44528
  capName: "pipeline-analytics",
44308
44529
  capScope: "device",
@@ -45083,6 +45304,12 @@ Object.freeze({
45083
45304
  addonId: null,
45084
45305
  access: "view"
45085
45306
  },
45307
+ "pipelineOrchestrator.getCameraDetectionSource": {
45308
+ capName: "pipeline-orchestrator",
45309
+ capScope: "system",
45310
+ addonId: null,
45311
+ access: "view"
45312
+ },
45086
45313
  "pipelineOrchestrator.getCameraMetrics": {
45087
45314
  capName: "pipeline-orchestrator",
45088
45315
  capScope: "system",
@@ -45311,6 +45538,12 @@ Object.freeze({
45311
45538
  addonId: null,
45312
45539
  access: "create"
45313
45540
  },
45541
+ "pipelineOrchestrator.setCameraDetectionSource": {
45542
+ capName: "pipeline-orchestrator",
45543
+ capScope: "system",
45544
+ addonId: null,
45545
+ access: "create"
45546
+ },
45314
45547
  "pipelineOrchestrator.setCameraPipelineForAgent": {
45315
45548
  capName: "pipeline-orchestrator",
45316
45549
  capScope: "system",
@@ -46283,6 +46516,12 @@ Object.freeze({
46283
46516
  addonId: null,
46284
46517
  access: "create"
46285
46518
  },
46519
+ "settingsStore.transact": {
46520
+ capName: "settings-store",
46521
+ capScope: "system",
46522
+ addonId: null,
46523
+ access: "create"
46524
+ },
46286
46525
  "settingsStore.update": {
46287
46526
  capName: "settings-store",
46288
46527
  capScope: "system",
@@ -46763,6 +47002,12 @@ Object.freeze({
46763
47002
  addonId: null,
46764
47003
  access: "view"
46765
47004
  },
47005
+ "streamBroker.getLiveViewerCounts": {
47006
+ capName: "stream-broker",
47007
+ capScope: "system",
47008
+ addonId: null,
47009
+ access: "view"
47010
+ },
46766
47011
  "streamBroker.getPreBufferInfo": {
46767
47012
  capName: "stream-broker",
46768
47013
  capScope: "system",
@@ -50603,6 +50848,11 @@ Object.freeze({
50603
50848
  form: "single",
50604
50849
  optional: false
50605
50850
  }],
50851
+ "pipelineAnalytics.backfillRetrainOrigins": [{
50852
+ name: "deviceId",
50853
+ form: "single",
50854
+ optional: false
50855
+ }],
50606
50856
  "pipelineAnalytics.clearTrackRelation": [{
50607
50857
  name: "deviceId",
50608
50858
  form: "single",
@@ -50908,6 +51158,11 @@ Object.freeze({
50908
51158
  form: "single",
50909
51159
  optional: false
50910
51160
  }],
51161
+ "pipelineOrchestrator.getCameraDetectionSource": [{
51162
+ name: "deviceId",
51163
+ form: "single",
51164
+ optional: false
51165
+ }],
50911
51166
  "pipelineOrchestrator.getCameraMetrics": [{
50912
51167
  name: "deviceId",
50913
51168
  form: "single",
@@ -50968,6 +51223,11 @@ Object.freeze({
50968
51223
  form: "single",
50969
51224
  optional: false
50970
51225
  }],
51226
+ "pipelineOrchestrator.setCameraDetectionSource": [{
51227
+ name: "deviceId",
51228
+ form: "single",
51229
+ optional: false
51230
+ }],
50971
51231
  "pipelineOrchestrator.setCameraPipelineForAgent": [{
50972
51232
  name: "deviceId",
50973
51233
  form: "single",