@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
@@ -5387,7 +5387,7 @@ var ZodIssueCode = {
5387
5387
  var ZodFirstPartyTypeKind;
5388
5388
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5389
5389
  //#endregion
5390
- //#region ../types/dist/sleep-Tkp9dHXv.mjs
5390
+ //#region ../types/dist/sleep-BBF1iXUi.mjs
5391
5391
  /**
5392
5392
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5393
5393
  * window to float samples (D455).
@@ -7988,6 +7988,21 @@ var ProfileRtspEntrySchema = object({
7988
7988
  codec: string().optional(),
7989
7989
  resolution: CamStreamResolutionSchema.optional()
7990
7990
  });
7991
+ /**
7992
+ * The model weight formats a catalog entry can ship. Schema-free on purpose:
7993
+ * `types/models.ts` builds Zod schemas from it, but a runner-closure consumer
7994
+ * (the model downloader in `@camstack/system`) needs only the list and must
7995
+ * reach it through `@camstack/types/addon` without building the cap schema
7996
+ * graph (D28).
7997
+ */
7998
+ var MODEL_FORMATS = [
7999
+ "onnx",
8000
+ "coreml",
8001
+ "openvino",
8002
+ "tflite",
8003
+ "pt",
8004
+ "gguf"
8005
+ ];
7991
8006
  object({
7992
8007
  field: string().min(1),
7993
8008
  on: literal("advance")
@@ -8461,7 +8476,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
8461
8476
  return DeviceRole;
8462
8477
  }({});
8463
8478
  //#endregion
8464
- //#region ../types/dist/composition-Bzr7GwgP.mjs
8479
+ //#region ../types/dist/composition-C-WpVYTX.mjs
8465
8480
  /**
8466
8481
  * The ffmpeg build every CamStack node downloads, per platform and arch.
8467
8482
  *
@@ -8513,7 +8528,7 @@ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFM
8513
8528
  function portable(target) {
8514
8529
  return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
8515
8530
  }
8516
- portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
8531
+ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64"), `${BASE}${FFMPEG_RELEASE}`;
8517
8532
  /**
8518
8533
  * THE table "which boolean of this device type counts as HIGH", and the
8519
8534
  * pure evaluator of its EDGE.
@@ -10106,6 +10121,15 @@ function parseTrainingEventLine(line) {
10106
10121
  const parsed = TrainingEventSchema.safeParse(raw);
10107
10122
  return parsed.success ? parsed.data : null;
10108
10123
  }
10124
+ /** Every status, in the order a summary lists them. */
10125
+ var RETRAIN_REVIEW_STATUSES = [
10126
+ "unchanged",
10127
+ "adjusted",
10128
+ "reclassified",
10129
+ "added",
10130
+ "removed",
10131
+ "model-error"
10132
+ ];
10109
10133
  /**
10110
10134
  * What the gate decided about a birth, from the CALLER's point of view.
10111
10135
  *
@@ -11723,14 +11747,6 @@ var MASK_SUPPLY_STEP_IDS = ["segmentation"];
11723
11747
  ...CROP_SUPPLY_STEP_IDS,
11724
11748
  ...MASK_SUPPLY_STEP_IDS
11725
11749
  ];
11726
- var MODEL_FORMATS = [
11727
- "onnx",
11728
- "coreml",
11729
- "openvino",
11730
- "tflite",
11731
- "pt",
11732
- "gguf"
11733
- ];
11734
11750
  /**
11735
11751
  * Multi-file format payload.
11736
11752
  *
@@ -13894,6 +13910,16 @@ var BrokerClientsSchema = object({
13894
13910
  /** Total encoded + raw-RTP callback subscriber count (sum of `encoded[].length`). */
13895
13911
  encodedSubscribers: number()
13896
13912
  });
13913
+ /**
13914
+ * How many people are watching one camera LIVE right now — see
13915
+ * `getLiveViewerCounts`. A camera with nobody watching is absent from the list
13916
+ * (so `viewers` is always at least 1): the listing carries the cameras that
13917
+ * have viewers, never a row of zeros.
13918
+ */
13919
+ var LiveViewerCountSchema = object({
13920
+ deviceId: number().int().nonnegative(),
13921
+ viewers: number().int().positive()
13922
+ });
13897
13923
  _enum([
13898
13924
  "reconnecting",
13899
13925
  "sleeping",
@@ -14254,7 +14280,7 @@ method(object({
14254
14280
  }), {
14255
14281
  kind: "mutation",
14256
14282
  auth: "admin"
14257
- }), method(object({ brokerId: string() }), BrokerClientsSchema), method(object({
14283
+ }), method(object({ brokerId: string() }), BrokerClientsSchema), method(_void(), array(LiveViewerCountSchema).readonly()), method(object({
14258
14284
  brokerId: string(),
14259
14285
  channel: _enum(["rtsp", "audio"]),
14260
14286
  handle: string()
@@ -15202,6 +15228,38 @@ var BulkRecordSchema = object({
15202
15228
  data: record(string(), unknown())
15203
15229
  });
15204
15230
  /**
15231
+ * One write inside a {@link settingsStoreCapability.methods.transact} call.
15232
+ * Only the three that a "replace this set, bump that revision" write needs.
15233
+ */
15234
+ var TransactOpSchema = discriminatedUnion("op", [
15235
+ object({
15236
+ op: literal("deleteWhere"),
15237
+ collection: string(),
15238
+ filter: MutationFilterSchema
15239
+ }),
15240
+ object({
15241
+ op: literal("insertMany"),
15242
+ collection: string(),
15243
+ records: array(BulkRecordSchema).readonly()
15244
+ }),
15245
+ object({
15246
+ op: literal("update"),
15247
+ collection: string(),
15248
+ id: string(),
15249
+ data: record(string(), unknown())
15250
+ })
15251
+ ]);
15252
+ /**
15253
+ * The precondition of a transaction: the row `key` of `collection` must hold
15254
+ * `equals` in `column`, read INSIDE the transaction.
15255
+ */
15256
+ var TransactGuardSchema = object({
15257
+ collection: string(),
15258
+ key: string(),
15259
+ column: string(),
15260
+ equals: unknown()
15261
+ });
15262
+ /**
15205
15263
  * Column declaration for a structured (SQL-backed) collection.
15206
15264
  *
15207
15265
  * Logical types — the backend translates each to the matching SQLite
@@ -15292,6 +15350,16 @@ id: union([string(), number()]) }), {
15292
15350
  }), object({ inserted: number().int() }), {
15293
15351
  kind: "mutation",
15294
15352
  auth: "admin"
15353
+ }), method(object({
15354
+ namespace: string().optional(),
15355
+ guard: TransactGuardSchema.optional(),
15356
+ ops: array(TransactOpSchema).readonly()
15357
+ }), object({
15358
+ applied: boolean(),
15359
+ current: unknown().optional()
15360
+ }), {
15361
+ kind: "mutation",
15362
+ auth: "admin"
15295
15363
  }), method(object({
15296
15364
  namespace: string().optional(),
15297
15365
  collection: string(),
@@ -15440,6 +15508,16 @@ id: union([string(), number()]) }), {
15440
15508
  }), object({ inserted: number().int() }), {
15441
15509
  kind: "mutation",
15442
15510
  auth: "admin"
15511
+ }), method(object({
15512
+ namespace: string().optional(),
15513
+ guard: TransactGuardSchema.optional(),
15514
+ ops: array(TransactOpSchema).readonly()
15515
+ }), object({
15516
+ applied: boolean(),
15517
+ current: unknown().optional()
15518
+ }), {
15519
+ kind: "mutation",
15520
+ auth: "admin"
15443
15521
  }), method(object({
15444
15522
  namespace: string().optional(),
15445
15523
  collection: string(),
@@ -23852,6 +23930,55 @@ var RetrainBboxSchema = object({
23852
23930
  h: number()
23853
23931
  });
23854
23932
  /**
23933
+ * What a box LOOKED LIKE when it was offered, snapshotted at the moment the
23934
+ * operator accepted it. The saved row keeps only the final rectangle; this is
23935
+ * the other half of the pair, and the pair is what says whether the operator
23936
+ * accepted, nudged, relabelled or replaced a proposal (`retrain-review.ts`).
23937
+ *
23938
+ * `ref` names the proposal inside its frame: `pipeline:<trackId>` for a box the
23939
+ * live pipeline drew, `assist:<n>` for the n-th box of a detector or LLM run,
23940
+ * and anything unique for an operator-drawn box (`operator:<n>`). Re-derived
23941
+ * pipeline boxes carry the same ref every time, which is what lets a dismissal
23942
+ * stay dismissed.
23943
+ */
23944
+ var RetrainOriginSchema = object({
23945
+ source: RetrainAnnotationSourceSchema,
23946
+ ref: string().min(1),
23947
+ bbox: RetrainBboxSchema,
23948
+ macroClass: RetrainMacroClassSchema,
23949
+ label: string().optional(),
23950
+ score: number().optional(),
23951
+ modelId: string().optional()
23952
+ });
23953
+ /**
23954
+ * A proposal the operator deleted. Durable on the frame, so a deleted pipeline
23955
+ * box does not come back as a draft every time the frame is reopened, and so
23956
+ * the deletion itself is a recorded fact rather than an absence.
23957
+ */
23958
+ var RetrainDismissedSchema = object({
23959
+ ref: string().min(1),
23960
+ snapshot: RetrainOriginSchema
23961
+ });
23962
+ /** What the operator did with a proposal (see `retrain-review.ts`). */
23963
+ var RetrainReviewStatusSchema = _enum(RETRAIN_REVIEW_STATUSES);
23964
+ var RetrainFrameReviewSchema = object({
23965
+ boxes: array(object({
23966
+ ref: string(),
23967
+ savedId: string().optional(),
23968
+ status: RetrainReviewStatusSchema,
23969
+ /** The baseline was re-derived, not snapshotted (a pre-origin row). */
23970
+ approximate: boolean(),
23971
+ origin: RetrainOriginSchema.optional(),
23972
+ iou: number().optional()
23973
+ })).readonly(),
23974
+ summary: object({
23975
+ counts: record(RetrainReviewStatusSchema, number().int()),
23976
+ total: number().int(),
23977
+ changed: number().int(),
23978
+ approximate: boolean()
23979
+ })
23980
+ });
23981
+ /**
23855
23982
  * One annotated subject.
23856
23983
  *
23857
23984
  * `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
@@ -23875,6 +24002,9 @@ var RetrainAnnotationSchema = object({
23875
24002
  /** Which model proposed this box — or, on a `model_error`, drew the phantom. */
23876
24003
  assistModelId: string().optional(),
23877
24004
  assistScore: number().optional(),
24005
+ /** The proposal this box started from, snapshotted at accept time. `null` on
24006
+ * a row saved before origins existed; absent on a draft nobody snapshotted. */
24007
+ origin: RetrainOriginSchema.nullable().optional(),
23878
24008
  exportedInBatch: string().optional(),
23879
24009
  createdAt: number()
23880
24010
  });
@@ -23967,7 +24097,19 @@ var RetrainFrameSchema = object({
23967
24097
  * empty when nothing the track store holds can be placed on it. */
23968
24098
  pipelineBoxes: array(RetrainPipelineBoxSchema).readonly().optional(),
23969
24099
  /** The named collections this frame belongs to. Present on list answers. */
23970
- collectionIds: array(string()).readonly().optional()
24100
+ collectionIds: array(string()).readonly().optional(),
24101
+ /** Bumped by every annotation save. A save that names a stale
24102
+ * `expectedRevision` is refused, so two surfaces cannot overwrite each other. */
24103
+ revision: number().int().optional(),
24104
+ /** Proposals the operator deleted — never re-seeded as drafts. */
24105
+ dismissed: array(RetrainDismissedSchema).readonly().optional(),
24106
+ /** What the operator did with the proposals, computed by the server. */
24107
+ review: RetrainFrameReviewSchema.optional(),
24108
+ /** The frame's pixels over the admin data plane (full size). Fetch with the
24109
+ * admin bearer token; relative to the hub root. */
24110
+ imageUrl: string().optional(),
24111
+ /** The same, as a ~480 px thumbnail for grids. */
24112
+ thumbnailUrl: string().optional()
23971
24113
  });
23972
24114
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
23973
24115
  var RetrainCopyRefusalSchema = _enum([
@@ -25046,10 +25188,33 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
25046
25188
  /** The frame's track, when it has one — checked against the frame. */
25047
25189
  trackId: string().optional(),
25048
25190
  frameId: string(),
25049
- annotations: array(RetrainAnnotationDraftSchema)
25191
+ annotations: array(RetrainAnnotationDraftSchema),
25192
+ /** The frame's `revision` the caller saw. A different current revision
25193
+ * refuses the save with a `retrain-revision-conflict` error
25194
+ * (`parseRetrainRevisionConflict`). Absent ⇒ last write wins. */
25195
+ expectedRevision: number().int().optional(),
25196
+ /** The proposals the operator deleted. Absent ⇒ keep the frame's
25197
+ * current set; present ⇒ replace it (an empty array un-dismisses). */
25198
+ dismissed: array(RetrainDismissedSchema).optional()
25050
25199
  }), array(RetrainAnnotationSchema).readonly(), {
25051
25200
  kind: "mutation",
25052
25201
  auth: "admin"
25202
+ }), method(object({
25203
+ deviceId: number(),
25204
+ trackId: string().optional(),
25205
+ frameId: string(),
25206
+ expectedRevision: number().int().optional(),
25207
+ origins: array(object({
25208
+ annotationId: string(),
25209
+ origin: RetrainOriginSchema
25210
+ })).min(1).max(500)
25211
+ }), object({
25212
+ updated: number().int(),
25213
+ skipped: number().int(),
25214
+ revision: number().int()
25215
+ }), {
25216
+ kind: "mutation",
25217
+ auth: "admin"
25053
25218
  }), method(object({
25054
25219
  deviceId: number(),
25055
25220
  trackId: string()
@@ -27665,6 +27830,12 @@ var CameraStepOverridePatchSchema = object({
27665
27830
  settings: record(string(), unknown()).readonly().optional()
27666
27831
  });
27667
27832
  var CameraStepSettingsSchema = record(string(), record(string(), unknown()).readonly());
27833
+ /** The three root-detector choices a camera has (D507: at most one root). */
27834
+ var CameraDetectionSourceSchema = _enum([
27835
+ "pipeline",
27836
+ "onboard",
27837
+ "none"
27838
+ ]);
27668
27839
  var CameraPipelineSettingsSchema = object({
27669
27840
  stepToggles: record(string(), boolean()).optional(),
27670
27841
  stepSettings: CameraStepSettingsSchema.optional(),
@@ -28242,6 +28413,26 @@ method(object({
28242
28413
  }), object({ success: literal(true) }), {
28243
28414
  kind: "mutation",
28244
28415
  auth: "admin"
28416
+ }), method(object({ deviceId: number() }), object({
28417
+ source: CameraDetectionSourceSchema,
28418
+ explicit: boolean(),
28419
+ onboard: object({
28420
+ /** The camera has an onboard detector this system can read. */
28421
+ available: boolean(),
28422
+ /** What its detections carry — a camera with no box cannot be a root step. */
28423
+ geometry: _enum([
28424
+ "boxed",
28425
+ "while-streaming",
28426
+ "flag-only",
28427
+ "unknown"
28428
+ ])
28429
+ })
28430
+ })), method(object({
28431
+ deviceId: number(),
28432
+ source: CameraDetectionSourceSchema
28433
+ }), object({ success: literal(true) }), {
28434
+ kind: "mutation",
28435
+ auth: "admin"
28245
28436
  }), method(object({ deviceId: number() }), record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).nullable()), method(object({
28246
28437
  deviceId: number(),
28247
28438
  agentNodeId: string(),
@@ -31573,6 +31764,17 @@ var BatteryStatusSchema = object({
31573
31764
  */
31574
31765
  lastContactAt: number().optional(),
31575
31766
  /**
31767
+ * Ms epoch of the last COMPLETE scheduled refresh — every fact the provider
31768
+ * holds for the device (level, charging, link, device info, state slices) and
31769
+ * its cached snapshot, read together. Absent = never since this slice was
31770
+ * born. Unlike `lastUpdated` (any write, even a push of one field) this is
31771
+ * the staleness an operator can trust: the provider owns the device fact and
31772
+ * so owns the window on its age (D224, D847). Not a clock in the
31773
+ * runtime-state-durability sense: it moves once per window and must survive
31774
+ * a restart, or every restart would owe the camera a wake.
31775
+ */
31776
+ lastFullRefreshAt: number().optional(),
31777
+ /**
31576
31778
  * True when the source is a BINARY low-battery indicator (HA
31577
31779
  * `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
31578
31780
  * charge level — `percentage` is then a coarse stand-in (100 = normal,
@@ -34788,7 +34990,14 @@ var TopologyNodeSchema = object({
34788
34990
  * completed a mutual-TLS handshake, `clear` otherwise. Absent for the hub,
34789
34991
  * for offline rows and when the hub cannot tell.
34790
34992
  */
34791
- meshTransport: _enum(["tls", "clear"]).optional()
34993
+ meshTransport: _enum(["tls", "clear"]).optional(),
34994
+ /**
34995
+ * Whether the hub holds this online AGENT's capability registration (its
34996
+ * `registerNode` manifest). `false` = online in the mesh but not ready: the
34997
+ * hub dropped the registration on a disconnect only it saw and the agent has
34998
+ * not re-sent it. Absent for the hub and offline rows.
34999
+ */
35000
+ capabilitiesRegistered: boolean().optional()
34792
35001
  });
34793
35002
  var CapUsageEdgeSchema = object({
34794
35003
  callerAddonId: string(),
@@ -41426,6 +41635,12 @@ Object.freeze({
41426
41635
  addonId: null,
41427
41636
  access: "create"
41428
41637
  },
41638
+ "dataStoreProvider.transact": {
41639
+ capName: "data-store-provider",
41640
+ capScope: "system",
41641
+ addonId: null,
41642
+ access: "create"
41643
+ },
41429
41644
  "dataStoreProvider.update": {
41430
41645
  capName: "data-store-provider",
41431
41646
  capScope: "system",
@@ -44270,6 +44485,12 @@ Object.freeze({
44270
44485
  addonId: null,
44271
44486
  access: "create"
44272
44487
  },
44488
+ "pipelineAnalytics.backfillRetrainOrigins": {
44489
+ capName: "pipeline-analytics",
44490
+ capScope: "device",
44491
+ addonId: null,
44492
+ access: "create"
44493
+ },
44273
44494
  "pipelineAnalytics.cancelRelocateMedia": {
44274
44495
  capName: "pipeline-analytics",
44275
44496
  capScope: "device",
@@ -45050,6 +45271,12 @@ Object.freeze({
45050
45271
  addonId: null,
45051
45272
  access: "view"
45052
45273
  },
45274
+ "pipelineOrchestrator.getCameraDetectionSource": {
45275
+ capName: "pipeline-orchestrator",
45276
+ capScope: "system",
45277
+ addonId: null,
45278
+ access: "view"
45279
+ },
45053
45280
  "pipelineOrchestrator.getCameraMetrics": {
45054
45281
  capName: "pipeline-orchestrator",
45055
45282
  capScope: "system",
@@ -45278,6 +45505,12 @@ Object.freeze({
45278
45505
  addonId: null,
45279
45506
  access: "create"
45280
45507
  },
45508
+ "pipelineOrchestrator.setCameraDetectionSource": {
45509
+ capName: "pipeline-orchestrator",
45510
+ capScope: "system",
45511
+ addonId: null,
45512
+ access: "create"
45513
+ },
45281
45514
  "pipelineOrchestrator.setCameraPipelineForAgent": {
45282
45515
  capName: "pipeline-orchestrator",
45283
45516
  capScope: "system",
@@ -46250,6 +46483,12 @@ Object.freeze({
46250
46483
  addonId: null,
46251
46484
  access: "create"
46252
46485
  },
46486
+ "settingsStore.transact": {
46487
+ capName: "settings-store",
46488
+ capScope: "system",
46489
+ addonId: null,
46490
+ access: "create"
46491
+ },
46253
46492
  "settingsStore.update": {
46254
46493
  capName: "settings-store",
46255
46494
  capScope: "system",
@@ -46730,6 +46969,12 @@ Object.freeze({
46730
46969
  addonId: null,
46731
46970
  access: "view"
46732
46971
  },
46972
+ "streamBroker.getLiveViewerCounts": {
46973
+ capName: "stream-broker",
46974
+ capScope: "system",
46975
+ addonId: null,
46976
+ access: "view"
46977
+ },
46733
46978
  "streamBroker.getPreBufferInfo": {
46734
46979
  capName: "stream-broker",
46735
46980
  capScope: "system",
@@ -50570,6 +50815,11 @@ Object.freeze({
50570
50815
  form: "single",
50571
50816
  optional: false
50572
50817
  }],
50818
+ "pipelineAnalytics.backfillRetrainOrigins": [{
50819
+ name: "deviceId",
50820
+ form: "single",
50821
+ optional: false
50822
+ }],
50573
50823
  "pipelineAnalytics.clearTrackRelation": [{
50574
50824
  name: "deviceId",
50575
50825
  form: "single",
@@ -50875,6 +51125,11 @@ Object.freeze({
50875
51125
  form: "single",
50876
51126
  optional: false
50877
51127
  }],
51128
+ "pipelineOrchestrator.getCameraDetectionSource": [{
51129
+ name: "deviceId",
51130
+ form: "single",
51131
+ optional: false
51132
+ }],
50878
51133
  "pipelineOrchestrator.getCameraMetrics": [{
50879
51134
  name: "deviceId",
50880
51135
  form: "single",
@@ -50935,6 +51190,11 @@ Object.freeze({
50935
51190
  form: "single",
50936
51191
  optional: false
50937
51192
  }],
51193
+ "pipelineOrchestrator.setCameraDetectionSource": [{
51194
+ name: "deviceId",
51195
+ form: "single",
51196
+ optional: false
51197
+ }],
50938
51198
  "pipelineOrchestrator.setCameraPipelineForAgent": [{
50939
51199
  name: "deviceId",
50940
51200
  form: "single",
@@ -1,4 +1,4 @@
1
- import { b as e } from "./responsive-CXEWggtS.mjs";
1
+ import { b as e } from "./responsive-D9vCqgDU.mjs";
2
2
  var t = e("grid-2x2", [
3
3
  ["path", {
4
4
  d: "M12 3v18",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.354",
39
+ version: "1.2.359",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.281",
84
+ version: "1.2.283",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- require("./dist-k9SdzZBB.js");
2
+ require("./dist-B-VsYan_.js");
3
3
  const require_orchestrator_training_addon = require("./orchestrator/training.addon.js");
4
4
  const require_providers_modal_training_modal_addon = require("./providers/modal/training-modal.addon.js");
5
5
  //#region src/providers/fake/fake-provider.ts
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("../dist-k9SdzZBB.js");
2
+ const require_dist = require("../dist-B-VsYan_.js");
3
3
  let node_path = require("node:path");
4
4
  node_path = require_dist.__toESM(node_path);
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA } from "../dist-BMkD7tAc.mjs";
1
+ import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA } from "../dist-BquQjWLf.mjs";
2
2
  import path from "node:path";
3
3
  import { createHash } from "node:crypto";
4
4
  import { createReadStream } from "node:fs";
@@ -1,5 +1,5 @@
1
1
  import { S as e, _ as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-DeDbF7NI.mjs";
2
- import { b as i, y as a } from "./responsive-CXEWggtS.mjs";
2
+ import { b as i, y as a } from "./responsive-D9vCqgDU.mjs";
3
3
  import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
4
4
  var l = i("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("../../dist-k9SdzZBB.js");
2
+ const require_dist = require("../../dist-B-VsYan_.js");
3
3
  let node_path = require("node:path");
4
4
  node_path = require_dist.__toESM(node_path, 1);
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { _ as number, b as string, c as trainingProviderCapability, d as arrayItemFieldPath, f as globalSecretScope, g as boolean, h as toSecretFieldView, l as BaseAddon, m as isSecretMarker, p as isSecretClear, u as SECRET_CLEAR, v as object, y as record } from "../../dist-BMkD7tAc.mjs";
1
+ import { _ as number, b as string, c as trainingProviderCapability, d as arrayItemFieldPath, f as globalSecretScope, g as boolean, h as toSecretFieldView, l as BaseAddon, m as isSecretMarker, p as isSecretClear, u as SECRET_CLEAR, v as object, y as record } from "../../dist-BquQjWLf.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import path, { dirname, posix } from "node:path";
4
4
  import { createHash, createPrivateKey, createPublicKey, createSign, randomBytes, randomUUID } from "node:crypto";
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-BU19oDd0.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-MIdiPdsF.mjs";
2
2
  export { t as get, e as init };
@@ -1,5 +1,5 @@
1
1
  import { S as e, _ as t, c as n, l as r, m as i, n as a, r as o, t as s, u as c, v as l } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-DeDbF7NI.mjs";
2
- import { h as u } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CNvuVA0z.mjs";
2
+ import { h as u } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-cX_n863q.mjs";
3
3
  import "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  e();
@@ -1,5 +1,5 @@
1
1
  import { S as e, _ as t, c as n, m as r } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-DeDbF7NI.mjs";
2
- import { b as i } from "./responsive-CXEWggtS.mjs";
2
+ import { b as i } from "./responsive-D9vCqgDU.mjs";
3
3
  var a = i("camera", [["path", {
4
4
  d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
5
5
  key: "18u6gg"
@@ -1,4 +1,4 @@
1
- import { b as e } from "./responsive-CXEWggtS.mjs";
1
+ import { b as e } from "./responsive-D9vCqgDU.mjs";
2
2
  var t = e("eye-off", [
3
3
  ["path", {
4
4
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
@@ -1,4 +1,4 @@
1
- import { b as e } from "./responsive-CXEWggtS.mjs";
1
+ import { b as e } from "./responsive-D9vCqgDU.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2762,7 +2762,7 @@ async function or(e) {
2762
2762
  }
2763
2763
  }
2764
2764
  async function sr() {
2765
- return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-jHBM2Hh7.mjs")).catch((e) => {
2765
+ return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DL0IzS20.mjs")).catch((e) => {
2766
2766
  throw ir = void 0, e;
2767
2767
  }), ir;
2768
2768
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-training",
3
- "version": "0.1.33",
3
+ "version": "0.1.35",
4
4
  "description": "Cloud training for CamStack: fine-tune the root detector on your own frames, on your own GPU-cloud account",
5
5
  "keywords": [
6
6
  "camstack",