@camstack/addon-provider-onvif 1.2.62 → 1.2.64

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 CHANGED
@@ -12717,6 +12717,24 @@ var deviceProviderCapability = {
12717
12717
  })
12718
12718
  }
12719
12719
  };
12720
+ /**
12721
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12722
+ * live registry access, and all management operations into a single tRPC surface.
12723
+ *
12724
+ * Replaces:
12725
+ * - `device-persistence` capability (persistence methods absorbed here)
12726
+ * - `device-management.router.ts` (deleted in Phase 2)
12727
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12728
+ *
12729
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12730
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12731
+ * - No nodeId routing needed — this is a pure hub singleton.
12732
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12733
+ * - No shadow registry or cross-node aggregation required.
12734
+ *
12735
+ * Forked workers register devices back to the hub via `ctx.devices`
12736
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12737
+ */
12720
12738
  /** One child-placement directive on a container's `childLayout`. Structurally
12721
12739
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12722
12740
  * shape for the same field. The child is identified by its re-sync-stable
@@ -12815,7 +12833,12 @@ var ConfigEntrySchema = object({
12815
12833
  value: unknown(),
12816
12834
  description: string().optional()
12817
12835
  });
12818
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
12836
+ /**
12837
+ * Only `manual` since D356: the operator picks, nothing links itself. The
12838
+ * field survives on the wire because a viewer already OTA'd parses it —
12839
+ * drop it once no shipped client reads `mode`.
12840
+ */
12841
+ var LinkedDevicesModeSchema = _enum(["manual"]);
12819
12842
  /** One resolved linked device — the compact projection consumers need. */
12820
12843
  var LinkedDeviceSchema = object({
12821
12844
  deviceId: number(),
@@ -18365,6 +18388,9 @@ var RetrainStatusSchema = _enum([
18365
18388
  *
18366
18389
  * `debug` does NOT pin; it is attention, not durability.
18367
18390
  *
18391
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18392
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18393
+ *
18368
18394
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18369
18395
  * A favourited track is skipped by retention the same way `staging` is, but
18370
18396
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18375,6 +18401,21 @@ var TrackFlagFields = {
18375
18401
  markForTrain: boolean().optional(),
18376
18402
  /** Operator marked this track for diagnostic attention. */
18377
18403
  debug: boolean().optional(),
18404
+ /**
18405
+ * What the operator wants CHECKED on this track, in their own words.
18406
+ *
18407
+ * The flag alone says "look at this" and nothing about what for; a debug set
18408
+ * reviewed hours later is a list of tracks with no question attached. Bound
18409
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18410
+ * and refuses it on a track whose debug is off — so a note can never outlive
18411
+ * the attention it belongs to.
18412
+ *
18413
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18414
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18415
+ * on without a note (a cancelled prompt) and what lets it edit the note
18416
+ * without touching the flag.
18417
+ */
18418
+ debugNote: string().max(500).optional(),
18378
18419
  /** Operator favourited this track. Pins it against pruning. */
18379
18420
  favourited: boolean().optional()
18380
18421
  };
@@ -18401,6 +18442,12 @@ var TrackFlagsSchema = object({
18401
18442
  trackId: string(),
18402
18443
  markForTrain: boolean(),
18403
18444
  debug: boolean(),
18445
+ /** The note as it STANDS after the write — never absent here (a track with no
18446
+ * note reports `''`), for the same reason the booleans are required: a
18447
+ * surface that has just written must be able to render the note it now owns
18448
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18449
+ * screen that has no previous value to keep. */
18450
+ debugNote: string(),
18404
18451
  favourited: boolean(),
18405
18452
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18406
18453
  * a track row) because this shape is only ever produced by the write body,
package/dist/addon.mjs CHANGED
@@ -12718,6 +12718,24 @@ var deviceProviderCapability = {
12718
12718
  })
12719
12719
  }
12720
12720
  };
12721
+ /**
12722
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12723
+ * live registry access, and all management operations into a single tRPC surface.
12724
+ *
12725
+ * Replaces:
12726
+ * - `device-persistence` capability (persistence methods absorbed here)
12727
+ * - `device-management.router.ts` (deleted in Phase 2)
12728
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12729
+ *
12730
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12731
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12732
+ * - No nodeId routing needed — this is a pure hub singleton.
12733
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12734
+ * - No shadow registry or cross-node aggregation required.
12735
+ *
12736
+ * Forked workers register devices back to the hub via `ctx.devices`
12737
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12738
+ */
12721
12739
  /** One child-placement directive on a container's `childLayout`. Structurally
12722
12740
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12723
12741
  * shape for the same field. The child is identified by its re-sync-stable
@@ -12816,7 +12834,12 @@ var ConfigEntrySchema = object({
12816
12834
  value: unknown(),
12817
12835
  description: string().optional()
12818
12836
  });
12819
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
12837
+ /**
12838
+ * Only `manual` since D356: the operator picks, nothing links itself. The
12839
+ * field survives on the wire because a viewer already OTA'd parses it —
12840
+ * drop it once no shipped client reads `mode`.
12841
+ */
12842
+ var LinkedDevicesModeSchema = _enum(["manual"]);
12820
12843
  /** One resolved linked device — the compact projection consumers need. */
12821
12844
  var LinkedDeviceSchema = object({
12822
12845
  deviceId: number(),
@@ -18366,6 +18389,9 @@ var RetrainStatusSchema = _enum([
18366
18389
  *
18367
18390
  * `debug` does NOT pin; it is attention, not durability.
18368
18391
  *
18392
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18393
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18394
+ *
18369
18395
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18370
18396
  * A favourited track is skipped by retention the same way `staging` is, but
18371
18397
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18376,6 +18402,21 @@ var TrackFlagFields = {
18376
18402
  markForTrain: boolean().optional(),
18377
18403
  /** Operator marked this track for diagnostic attention. */
18378
18404
  debug: boolean().optional(),
18405
+ /**
18406
+ * What the operator wants CHECKED on this track, in their own words.
18407
+ *
18408
+ * The flag alone says "look at this" and nothing about what for; a debug set
18409
+ * reviewed hours later is a list of tracks with no question attached. Bound
18410
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18411
+ * and refuses it on a track whose debug is off — so a note can never outlive
18412
+ * the attention it belongs to.
18413
+ *
18414
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18415
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18416
+ * on without a note (a cancelled prompt) and what lets it edit the note
18417
+ * without touching the flag.
18418
+ */
18419
+ debugNote: string().max(500).optional(),
18379
18420
  /** Operator favourited this track. Pins it against pruning. */
18380
18421
  favourited: boolean().optional()
18381
18422
  };
@@ -18402,6 +18443,12 @@ var TrackFlagsSchema = object({
18402
18443
  trackId: string(),
18403
18444
  markForTrain: boolean(),
18404
18445
  debug: boolean(),
18446
+ /** The note as it STANDS after the write — never absent here (a track with no
18447
+ * note reports `''`), for the same reason the booleans are required: a
18448
+ * surface that has just written must be able to render the note it now owns
18449
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18450
+ * screen that has no previous value to keep. */
18451
+ debugNote: string(),
18405
18452
  favourited: boolean(),
18406
18453
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18407
18454
  * a track row) because this shape is only ever produced by the write body,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-onvif",
3
- "version": "1.2.62",
3
+ "version": "1.2.64",
4
4
  "description": "ONVIF camera device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",