@camstack/addon-osd-manager 0.1.228 → 0.1.230

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 (18) hide show
  1. package/dist/{MotionZonesSettings-DSsKfNE7.mjs → MotionZonesSettings-BoZX0EA6.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-C070IU_n.mjs → PrivacyMaskSettings-CxHO2qra.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-DxImrfYh.mjs → SceneMonitorEditor-CAsOsf89.mjs} +3 -3
  4. package/dist/_stub.js +77 -18
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-D0eHFYDJ.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-Dn07Z4W0.mjs} +3 -3
  6. package/dist/{_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BJeTy-Wx.mjs → _virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Dqo2wINy.mjs} +1 -1
  7. package/dist/addon-osd-manager.css +1 -1
  8. package/dist/{hostInit-CUE-SYZk.mjs → hostInit-CveEAn98.mjs} +2 -2
  9. package/dist/index.js +174 -3
  10. package/dist/index.mjs +174 -3
  11. package/dist/{player-overlays-BrJxXBUm.mjs → player-overlays-Doc1cX7w.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-CS72aMFt.mjs → responsive-BYfbQ41D.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-mmiyfWp4.mjs → scene-monitor-copy-Cc65RL6B.mjs} +1 -1
  15. package/dist/{square-CyvNDF5I.mjs → square-JbfO0HcN.mjs} +1 -1
  16. package/dist/{trash-2-Dkv4UQY6.mjs → trash-2-CdL__eUm.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Dx9wb0nX.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DWWv2Jrw.mjs} +1 -1
  18. package/package.json +1 -1
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.358",
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.282",
84
+ version: "1.2.284",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
package/dist/index.js CHANGED
@@ -5390,7 +5390,7 @@ var ZodIssueCode = {
5390
5390
  var ZodFirstPartyTypeKind;
5391
5391
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5392
5392
  //#endregion
5393
- //#region ../types/dist/sleep-B_3F_YwS.mjs
5393
+ //#region ../types/dist/sleep-BBF1iXUi.mjs
5394
5394
  /**
5395
5395
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5396
5396
  * window to float samples (D455).
@@ -10106,6 +10106,15 @@ discriminatedUnion("type", [
10106
10106
  message: string()
10107
10107
  })
10108
10108
  ]);
10109
+ /** Every status, in the order a summary lists them. */
10110
+ var RETRAIN_REVIEW_STATUSES = [
10111
+ "unchanged",
10112
+ "adjusted",
10113
+ "reclassified",
10114
+ "added",
10115
+ "removed",
10116
+ "model-error"
10117
+ ];
10109
10118
  /**
10110
10119
  * What the gate decided about a birth, from the CALLER's point of view.
10111
10120
  *
@@ -15204,6 +15213,38 @@ var BulkRecordSchema = object({
15204
15213
  data: record(string(), unknown())
15205
15214
  });
15206
15215
  /**
15216
+ * One write inside a {@link settingsStoreCapability.methods.transact} call.
15217
+ * Only the three that a "replace this set, bump that revision" write needs.
15218
+ */
15219
+ var TransactOpSchema = discriminatedUnion("op", [
15220
+ object({
15221
+ op: literal("deleteWhere"),
15222
+ collection: string(),
15223
+ filter: MutationFilterSchema
15224
+ }),
15225
+ object({
15226
+ op: literal("insertMany"),
15227
+ collection: string(),
15228
+ records: array(BulkRecordSchema).readonly()
15229
+ }),
15230
+ object({
15231
+ op: literal("update"),
15232
+ collection: string(),
15233
+ id: string(),
15234
+ data: record(string(), unknown())
15235
+ })
15236
+ ]);
15237
+ /**
15238
+ * The precondition of a transaction: the row `key` of `collection` must hold
15239
+ * `equals` in `column`, read INSIDE the transaction.
15240
+ */
15241
+ var TransactGuardSchema = object({
15242
+ collection: string(),
15243
+ key: string(),
15244
+ column: string(),
15245
+ equals: unknown()
15246
+ });
15247
+ /**
15207
15248
  * Column declaration for a structured (SQL-backed) collection.
15208
15249
  *
15209
15250
  * Logical types — the backend translates each to the matching SQLite
@@ -15294,6 +15335,16 @@ id: union([string(), number()]) }), {
15294
15335
  }), object({ inserted: number().int() }), {
15295
15336
  kind: "mutation",
15296
15337
  auth: "admin"
15338
+ }), method(object({
15339
+ namespace: string().optional(),
15340
+ guard: TransactGuardSchema.optional(),
15341
+ ops: array(TransactOpSchema).readonly()
15342
+ }), object({
15343
+ applied: boolean(),
15344
+ current: unknown().optional()
15345
+ }), {
15346
+ kind: "mutation",
15347
+ auth: "admin"
15297
15348
  }), method(object({
15298
15349
  namespace: string().optional(),
15299
15350
  collection: string(),
@@ -15442,6 +15493,16 @@ id: union([string(), number()]) }), {
15442
15493
  }), object({ inserted: number().int() }), {
15443
15494
  kind: "mutation",
15444
15495
  auth: "admin"
15496
+ }), method(object({
15497
+ namespace: string().optional(),
15498
+ guard: TransactGuardSchema.optional(),
15499
+ ops: array(TransactOpSchema).readonly()
15500
+ }), object({
15501
+ applied: boolean(),
15502
+ current: unknown().optional()
15503
+ }), {
15504
+ kind: "mutation",
15505
+ auth: "admin"
15445
15506
  }), method(object({
15446
15507
  namespace: string().optional(),
15447
15508
  collection: string(),
@@ -24467,6 +24528,55 @@ var RetrainBboxSchema = object({
24467
24528
  h: number()
24468
24529
  });
24469
24530
  /**
24531
+ * What a box LOOKED LIKE when it was offered, snapshotted at the moment the
24532
+ * operator accepted it. The saved row keeps only the final rectangle; this is
24533
+ * the other half of the pair, and the pair is what says whether the operator
24534
+ * accepted, nudged, relabelled or replaced a proposal (`retrain-review.ts`).
24535
+ *
24536
+ * `ref` names the proposal inside its frame: `pipeline:<trackId>` for a box the
24537
+ * live pipeline drew, `assist:<n>` for the n-th box of a detector or LLM run,
24538
+ * and anything unique for an operator-drawn box (`operator:<n>`). Re-derived
24539
+ * pipeline boxes carry the same ref every time, which is what lets a dismissal
24540
+ * stay dismissed.
24541
+ */
24542
+ var RetrainOriginSchema = object({
24543
+ source: RetrainAnnotationSourceSchema,
24544
+ ref: string().min(1),
24545
+ bbox: RetrainBboxSchema,
24546
+ macroClass: RetrainMacroClassSchema,
24547
+ label: string().optional(),
24548
+ score: number().optional(),
24549
+ modelId: string().optional()
24550
+ });
24551
+ /**
24552
+ * A proposal the operator deleted. Durable on the frame, so a deleted pipeline
24553
+ * box does not come back as a draft every time the frame is reopened, and so
24554
+ * the deletion itself is a recorded fact rather than an absence.
24555
+ */
24556
+ var RetrainDismissedSchema = object({
24557
+ ref: string().min(1),
24558
+ snapshot: RetrainOriginSchema
24559
+ });
24560
+ /** What the operator did with a proposal (see `retrain-review.ts`). */
24561
+ var RetrainReviewStatusSchema = _enum(RETRAIN_REVIEW_STATUSES);
24562
+ var RetrainFrameReviewSchema = object({
24563
+ boxes: array(object({
24564
+ ref: string(),
24565
+ savedId: string().optional(),
24566
+ status: RetrainReviewStatusSchema,
24567
+ /** The baseline was re-derived, not snapshotted (a pre-origin row). */
24568
+ approximate: boolean(),
24569
+ origin: RetrainOriginSchema.optional(),
24570
+ iou: number().optional()
24571
+ })).readonly(),
24572
+ summary: object({
24573
+ counts: record(RetrainReviewStatusSchema, number().int()),
24574
+ total: number().int(),
24575
+ changed: number().int(),
24576
+ approximate: boolean()
24577
+ })
24578
+ });
24579
+ /**
24470
24580
  * One annotated subject.
24471
24581
  *
24472
24582
  * `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
@@ -24490,6 +24600,9 @@ var RetrainAnnotationSchema = object({
24490
24600
  /** Which model proposed this box — or, on a `model_error`, drew the phantom. */
24491
24601
  assistModelId: string().optional(),
24492
24602
  assistScore: number().optional(),
24603
+ /** The proposal this box started from, snapshotted at accept time. `null` on
24604
+ * a row saved before origins existed; absent on a draft nobody snapshotted. */
24605
+ origin: RetrainOriginSchema.nullable().optional(),
24493
24606
  exportedInBatch: string().optional(),
24494
24607
  createdAt: number()
24495
24608
  });
@@ -24582,7 +24695,19 @@ var RetrainFrameSchema = object({
24582
24695
  * empty when nothing the track store holds can be placed on it. */
24583
24696
  pipelineBoxes: array(RetrainPipelineBoxSchema).readonly().optional(),
24584
24697
  /** The named collections this frame belongs to. Present on list answers. */
24585
- collectionIds: array(string()).readonly().optional()
24698
+ collectionIds: array(string()).readonly().optional(),
24699
+ /** Bumped by every annotation save. A save that names a stale
24700
+ * `expectedRevision` is refused, so two surfaces cannot overwrite each other. */
24701
+ revision: number().int().optional(),
24702
+ /** Proposals the operator deleted — never re-seeded as drafts. */
24703
+ dismissed: array(RetrainDismissedSchema).readonly().optional(),
24704
+ /** What the operator did with the proposals, computed by the server. */
24705
+ review: RetrainFrameReviewSchema.optional(),
24706
+ /** The frame's pixels over the admin data plane (full size). Fetch with the
24707
+ * admin bearer token; relative to the hub root. */
24708
+ imageUrl: string().optional(),
24709
+ /** The same, as a ~480 px thumbnail for grids. */
24710
+ thumbnailUrl: string().optional()
24586
24711
  });
24587
24712
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
24588
24713
  var RetrainCopyRefusalSchema = _enum([
@@ -25661,10 +25786,33 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
25661
25786
  /** The frame's track, when it has one — checked against the frame. */
25662
25787
  trackId: string().optional(),
25663
25788
  frameId: string(),
25664
- annotations: array(RetrainAnnotationDraftSchema)
25789
+ annotations: array(RetrainAnnotationDraftSchema),
25790
+ /** The frame's `revision` the caller saw. A different current revision
25791
+ * refuses the save with a `retrain-revision-conflict` error
25792
+ * (`parseRetrainRevisionConflict`). Absent ⇒ last write wins. */
25793
+ expectedRevision: number().int().optional(),
25794
+ /** The proposals the operator deleted. Absent ⇒ keep the frame's
25795
+ * current set; present ⇒ replace it (an empty array un-dismisses). */
25796
+ dismissed: array(RetrainDismissedSchema).optional()
25665
25797
  }), array(RetrainAnnotationSchema).readonly(), {
25666
25798
  kind: "mutation",
25667
25799
  auth: "admin"
25800
+ }), method(object({
25801
+ deviceId: number(),
25802
+ trackId: string().optional(),
25803
+ frameId: string(),
25804
+ expectedRevision: number().int().optional(),
25805
+ origins: array(object({
25806
+ annotationId: string(),
25807
+ origin: RetrainOriginSchema
25808
+ })).min(1).max(500)
25809
+ }), object({
25810
+ updated: number().int(),
25811
+ skipped: number().int(),
25812
+ revision: number().int()
25813
+ }), {
25814
+ kind: "mutation",
25815
+ auth: "admin"
25668
25816
  }), method(object({
25669
25817
  deviceId: number(),
25670
25818
  trackId: string()
@@ -42363,6 +42511,12 @@ Object.freeze({
42363
42511
  addonId: null,
42364
42512
  access: "create"
42365
42513
  },
42514
+ "dataStoreProvider.transact": {
42515
+ capName: "data-store-provider",
42516
+ capScope: "system",
42517
+ addonId: null,
42518
+ access: "create"
42519
+ },
42366
42520
  "dataStoreProvider.update": {
42367
42521
  capName: "data-store-provider",
42368
42522
  capScope: "system",
@@ -45207,6 +45361,12 @@ Object.freeze({
45207
45361
  addonId: null,
45208
45362
  access: "create"
45209
45363
  },
45364
+ "pipelineAnalytics.backfillRetrainOrigins": {
45365
+ capName: "pipeline-analytics",
45366
+ capScope: "device",
45367
+ addonId: null,
45368
+ access: "create"
45369
+ },
45210
45370
  "pipelineAnalytics.cancelRelocateMedia": {
45211
45371
  capName: "pipeline-analytics",
45212
45372
  capScope: "device",
@@ -47199,6 +47359,12 @@ Object.freeze({
47199
47359
  addonId: null,
47200
47360
  access: "create"
47201
47361
  },
47362
+ "settingsStore.transact": {
47363
+ capName: "settings-store",
47364
+ capScope: "system",
47365
+ addonId: null,
47366
+ access: "create"
47367
+ },
47202
47368
  "settingsStore.update": {
47203
47369
  capName: "settings-store",
47204
47370
  capScope: "system",
@@ -51525,6 +51691,11 @@ Object.freeze({
51525
51691
  form: "single",
51526
51692
  optional: false
51527
51693
  }],
51694
+ "pipelineAnalytics.backfillRetrainOrigins": [{
51695
+ name: "deviceId",
51696
+ form: "single",
51697
+ optional: false
51698
+ }],
51528
51699
  "pipelineAnalytics.clearTrackRelation": [{
51529
51700
  name: "deviceId",
51530
51701
  form: "single",
package/dist/index.mjs CHANGED
@@ -5386,7 +5386,7 @@ var ZodIssueCode = {
5386
5386
  var ZodFirstPartyTypeKind;
5387
5387
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5388
5388
  //#endregion
5389
- //#region ../types/dist/sleep-B_3F_YwS.mjs
5389
+ //#region ../types/dist/sleep-BBF1iXUi.mjs
5390
5390
  /**
5391
5391
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5392
5392
  * window to float samples (D455).
@@ -10102,6 +10102,15 @@ discriminatedUnion("type", [
10102
10102
  message: string()
10103
10103
  })
10104
10104
  ]);
10105
+ /** Every status, in the order a summary lists them. */
10106
+ var RETRAIN_REVIEW_STATUSES = [
10107
+ "unchanged",
10108
+ "adjusted",
10109
+ "reclassified",
10110
+ "added",
10111
+ "removed",
10112
+ "model-error"
10113
+ ];
10105
10114
  /**
10106
10115
  * What the gate decided about a birth, from the CALLER's point of view.
10107
10116
  *
@@ -15200,6 +15209,38 @@ var BulkRecordSchema = object({
15200
15209
  data: record(string(), unknown())
15201
15210
  });
15202
15211
  /**
15212
+ * One write inside a {@link settingsStoreCapability.methods.transact} call.
15213
+ * Only the three that a "replace this set, bump that revision" write needs.
15214
+ */
15215
+ var TransactOpSchema = discriminatedUnion("op", [
15216
+ object({
15217
+ op: literal("deleteWhere"),
15218
+ collection: string(),
15219
+ filter: MutationFilterSchema
15220
+ }),
15221
+ object({
15222
+ op: literal("insertMany"),
15223
+ collection: string(),
15224
+ records: array(BulkRecordSchema).readonly()
15225
+ }),
15226
+ object({
15227
+ op: literal("update"),
15228
+ collection: string(),
15229
+ id: string(),
15230
+ data: record(string(), unknown())
15231
+ })
15232
+ ]);
15233
+ /**
15234
+ * The precondition of a transaction: the row `key` of `collection` must hold
15235
+ * `equals` in `column`, read INSIDE the transaction.
15236
+ */
15237
+ var TransactGuardSchema = object({
15238
+ collection: string(),
15239
+ key: string(),
15240
+ column: string(),
15241
+ equals: unknown()
15242
+ });
15243
+ /**
15203
15244
  * Column declaration for a structured (SQL-backed) collection.
15204
15245
  *
15205
15246
  * Logical types — the backend translates each to the matching SQLite
@@ -15290,6 +15331,16 @@ id: union([string(), number()]) }), {
15290
15331
  }), object({ inserted: number().int() }), {
15291
15332
  kind: "mutation",
15292
15333
  auth: "admin"
15334
+ }), method(object({
15335
+ namespace: string().optional(),
15336
+ guard: TransactGuardSchema.optional(),
15337
+ ops: array(TransactOpSchema).readonly()
15338
+ }), object({
15339
+ applied: boolean(),
15340
+ current: unknown().optional()
15341
+ }), {
15342
+ kind: "mutation",
15343
+ auth: "admin"
15293
15344
  }), method(object({
15294
15345
  namespace: string().optional(),
15295
15346
  collection: string(),
@@ -15438,6 +15489,16 @@ id: union([string(), number()]) }), {
15438
15489
  }), object({ inserted: number().int() }), {
15439
15490
  kind: "mutation",
15440
15491
  auth: "admin"
15492
+ }), method(object({
15493
+ namespace: string().optional(),
15494
+ guard: TransactGuardSchema.optional(),
15495
+ ops: array(TransactOpSchema).readonly()
15496
+ }), object({
15497
+ applied: boolean(),
15498
+ current: unknown().optional()
15499
+ }), {
15500
+ kind: "mutation",
15501
+ auth: "admin"
15441
15502
  }), method(object({
15442
15503
  namespace: string().optional(),
15443
15504
  collection: string(),
@@ -24463,6 +24524,55 @@ var RetrainBboxSchema = object({
24463
24524
  h: number()
24464
24525
  });
24465
24526
  /**
24527
+ * What a box LOOKED LIKE when it was offered, snapshotted at the moment the
24528
+ * operator accepted it. The saved row keeps only the final rectangle; this is
24529
+ * the other half of the pair, and the pair is what says whether the operator
24530
+ * accepted, nudged, relabelled or replaced a proposal (`retrain-review.ts`).
24531
+ *
24532
+ * `ref` names the proposal inside its frame: `pipeline:<trackId>` for a box the
24533
+ * live pipeline drew, `assist:<n>` for the n-th box of a detector or LLM run,
24534
+ * and anything unique for an operator-drawn box (`operator:<n>`). Re-derived
24535
+ * pipeline boxes carry the same ref every time, which is what lets a dismissal
24536
+ * stay dismissed.
24537
+ */
24538
+ var RetrainOriginSchema = object({
24539
+ source: RetrainAnnotationSourceSchema,
24540
+ ref: string().min(1),
24541
+ bbox: RetrainBboxSchema,
24542
+ macroClass: RetrainMacroClassSchema,
24543
+ label: string().optional(),
24544
+ score: number().optional(),
24545
+ modelId: string().optional()
24546
+ });
24547
+ /**
24548
+ * A proposal the operator deleted. Durable on the frame, so a deleted pipeline
24549
+ * box does not come back as a draft every time the frame is reopened, and so
24550
+ * the deletion itself is a recorded fact rather than an absence.
24551
+ */
24552
+ var RetrainDismissedSchema = object({
24553
+ ref: string().min(1),
24554
+ snapshot: RetrainOriginSchema
24555
+ });
24556
+ /** What the operator did with a proposal (see `retrain-review.ts`). */
24557
+ var RetrainReviewStatusSchema = _enum(RETRAIN_REVIEW_STATUSES);
24558
+ var RetrainFrameReviewSchema = object({
24559
+ boxes: array(object({
24560
+ ref: string(),
24561
+ savedId: string().optional(),
24562
+ status: RetrainReviewStatusSchema,
24563
+ /** The baseline was re-derived, not snapshotted (a pre-origin row). */
24564
+ approximate: boolean(),
24565
+ origin: RetrainOriginSchema.optional(),
24566
+ iou: number().optional()
24567
+ })).readonly(),
24568
+ summary: object({
24569
+ counts: record(RetrainReviewStatusSchema, number().int()),
24570
+ total: number().int(),
24571
+ changed: number().int(),
24572
+ approximate: boolean()
24573
+ })
24574
+ });
24575
+ /**
24466
24576
  * One annotated subject.
24467
24577
  *
24468
24578
  * `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
@@ -24486,6 +24596,9 @@ var RetrainAnnotationSchema = object({
24486
24596
  /** Which model proposed this box — or, on a `model_error`, drew the phantom. */
24487
24597
  assistModelId: string().optional(),
24488
24598
  assistScore: number().optional(),
24599
+ /** The proposal this box started from, snapshotted at accept time. `null` on
24600
+ * a row saved before origins existed; absent on a draft nobody snapshotted. */
24601
+ origin: RetrainOriginSchema.nullable().optional(),
24489
24602
  exportedInBatch: string().optional(),
24490
24603
  createdAt: number()
24491
24604
  });
@@ -24578,7 +24691,19 @@ var RetrainFrameSchema = object({
24578
24691
  * empty when nothing the track store holds can be placed on it. */
24579
24692
  pipelineBoxes: array(RetrainPipelineBoxSchema).readonly().optional(),
24580
24693
  /** The named collections this frame belongs to. Present on list answers. */
24581
- collectionIds: array(string()).readonly().optional()
24694
+ collectionIds: array(string()).readonly().optional(),
24695
+ /** Bumped by every annotation save. A save that names a stale
24696
+ * `expectedRevision` is refused, so two surfaces cannot overwrite each other. */
24697
+ revision: number().int().optional(),
24698
+ /** Proposals the operator deleted — never re-seeded as drafts. */
24699
+ dismissed: array(RetrainDismissedSchema).readonly().optional(),
24700
+ /** What the operator did with the proposals, computed by the server. */
24701
+ review: RetrainFrameReviewSchema.optional(),
24702
+ /** The frame's pixels over the admin data plane (full size). Fetch with the
24703
+ * admin bearer token; relative to the hub root. */
24704
+ imageUrl: string().optional(),
24705
+ /** The same, as a ~480 px thumbnail for grids. */
24706
+ thumbnailUrl: string().optional()
24582
24707
  });
24583
24708
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
24584
24709
  var RetrainCopyRefusalSchema = _enum([
@@ -25657,10 +25782,33 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
25657
25782
  /** The frame's track, when it has one — checked against the frame. */
25658
25783
  trackId: string().optional(),
25659
25784
  frameId: string(),
25660
- annotations: array(RetrainAnnotationDraftSchema)
25785
+ annotations: array(RetrainAnnotationDraftSchema),
25786
+ /** The frame's `revision` the caller saw. A different current revision
25787
+ * refuses the save with a `retrain-revision-conflict` error
25788
+ * (`parseRetrainRevisionConflict`). Absent ⇒ last write wins. */
25789
+ expectedRevision: number().int().optional(),
25790
+ /** The proposals the operator deleted. Absent ⇒ keep the frame's
25791
+ * current set; present ⇒ replace it (an empty array un-dismisses). */
25792
+ dismissed: array(RetrainDismissedSchema).optional()
25661
25793
  }), array(RetrainAnnotationSchema).readonly(), {
25662
25794
  kind: "mutation",
25663
25795
  auth: "admin"
25796
+ }), method(object({
25797
+ deviceId: number(),
25798
+ trackId: string().optional(),
25799
+ frameId: string(),
25800
+ expectedRevision: number().int().optional(),
25801
+ origins: array(object({
25802
+ annotationId: string(),
25803
+ origin: RetrainOriginSchema
25804
+ })).min(1).max(500)
25805
+ }), object({
25806
+ updated: number().int(),
25807
+ skipped: number().int(),
25808
+ revision: number().int()
25809
+ }), {
25810
+ kind: "mutation",
25811
+ auth: "admin"
25664
25812
  }), method(object({
25665
25813
  deviceId: number(),
25666
25814
  trackId: string()
@@ -42359,6 +42507,12 @@ Object.freeze({
42359
42507
  addonId: null,
42360
42508
  access: "create"
42361
42509
  },
42510
+ "dataStoreProvider.transact": {
42511
+ capName: "data-store-provider",
42512
+ capScope: "system",
42513
+ addonId: null,
42514
+ access: "create"
42515
+ },
42362
42516
  "dataStoreProvider.update": {
42363
42517
  capName: "data-store-provider",
42364
42518
  capScope: "system",
@@ -45203,6 +45357,12 @@ Object.freeze({
45203
45357
  addonId: null,
45204
45358
  access: "create"
45205
45359
  },
45360
+ "pipelineAnalytics.backfillRetrainOrigins": {
45361
+ capName: "pipeline-analytics",
45362
+ capScope: "device",
45363
+ addonId: null,
45364
+ access: "create"
45365
+ },
45206
45366
  "pipelineAnalytics.cancelRelocateMedia": {
45207
45367
  capName: "pipeline-analytics",
45208
45368
  capScope: "device",
@@ -47195,6 +47355,12 @@ Object.freeze({
47195
47355
  addonId: null,
47196
47356
  access: "create"
47197
47357
  },
47358
+ "settingsStore.transact": {
47359
+ capName: "settings-store",
47360
+ capScope: "system",
47361
+ addonId: null,
47362
+ access: "create"
47363
+ },
47198
47364
  "settingsStore.update": {
47199
47365
  capName: "settings-store",
47200
47366
  capScope: "system",
@@ -51521,6 +51687,11 @@ Object.freeze({
51521
51687
  form: "single",
51522
51688
  optional: false
51523
51689
  }],
51690
+ "pipelineAnalytics.backfillRetrainOrigins": [{
51691
+ name: "deviceId",
51692
+ form: "single",
51693
+ optional: false
51694
+ }],
51524
51695
  "pipelineAnalytics.clearTrackRelation": [{
51525
51696
  name: "deviceId",
51526
51697
  form: "single",
@@ -1,5 +1,5 @@
1
1
  import { b as e, g as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-BbmIfQSr.mjs";
2
- import { f as i, p as a } from "./responsive-CS72aMFt.mjs";
2
+ import { f as i, p as a } from "./responsive-BYfbQ41D.mjs";
3
3
  import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
4
4
  var l = a("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Dx9wb0nX.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DWWv2Jrw.mjs";
2
2
  export { t as get, e as init };
@@ -1,5 +1,5 @@
1
1
  import { _ as e, b as t, c as n, g as r, l as i, m as a, n as o, r as s, t as c, u as l } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-BbmIfQSr.mjs";
2
- import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BJeTy-Wx.mjs";
2
+ import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Dqo2wINy.mjs";
3
3
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  t();
@@ -1,5 +1,5 @@
1
1
  import { b as e, c as t, g as n, m as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-BbmIfQSr.mjs";
2
- import { p as i } from "./responsive-CS72aMFt.mjs";
2
+ import { p as i } from "./responsive-BYfbQ41D.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 { p as e } from "./responsive-CS72aMFt.mjs";
1
+ import { p as e } from "./responsive-BYfbQ41D.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 { p as e } from "./responsive-CS72aMFt.mjs";
1
+ import { p as e } from "./responsive-BYfbQ41D.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-D0eHFYDJ.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-Dn07Z4W0.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-osd-manager",
3
- "version": "0.1.228",
3
+ "version": "0.1.230",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",