@camstack/addon-provider-rtsp 1.2.63 → 1.2.65

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
@@ -12983,6 +12983,24 @@ var deviceProviderCapability = {
12983
12983
  })
12984
12984
  }
12985
12985
  };
12986
+ /**
12987
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12988
+ * live registry access, and all management operations into a single tRPC surface.
12989
+ *
12990
+ * Replaces:
12991
+ * - `device-persistence` capability (persistence methods absorbed here)
12992
+ * - `device-management.router.ts` (deleted in Phase 2)
12993
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12994
+ *
12995
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12996
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12997
+ * - No nodeId routing needed — this is a pure hub singleton.
12998
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12999
+ * - No shadow registry or cross-node aggregation required.
13000
+ *
13001
+ * Forked workers register devices back to the hub via `ctx.devices`
13002
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
13003
+ */
12986
13004
  /** One child-placement directive on a container's `childLayout`. Structurally
12987
13005
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12988
13006
  * shape for the same field. The child is identified by its re-sync-stable
@@ -13081,7 +13099,12 @@ var ConfigEntrySchema = object({
13081
13099
  value: unknown(),
13082
13100
  description: string().optional()
13083
13101
  });
13084
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13102
+ /**
13103
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13104
+ * field survives on the wire because a viewer already OTA'd parses it —
13105
+ * drop it once no shipped client reads `mode`.
13106
+ */
13107
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13085
13108
  /** One resolved linked device — the compact projection consumers need. */
13086
13109
  var LinkedDeviceSchema = object({
13087
13110
  deviceId: number(),
@@ -18709,6 +18732,9 @@ var RetrainStatusSchema = _enum([
18709
18732
  *
18710
18733
  * `debug` does NOT pin; it is attention, not durability.
18711
18734
  *
18735
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18736
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18737
+ *
18712
18738
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18713
18739
  * A favourited track is skipped by retention the same way `staging` is, but
18714
18740
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18719,6 +18745,21 @@ var TrackFlagFields = {
18719
18745
  markForTrain: boolean().optional(),
18720
18746
  /** Operator marked this track for diagnostic attention. */
18721
18747
  debug: boolean().optional(),
18748
+ /**
18749
+ * What the operator wants CHECKED on this track, in their own words.
18750
+ *
18751
+ * The flag alone says "look at this" and nothing about what for; a debug set
18752
+ * reviewed hours later is a list of tracks with no question attached. Bound
18753
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18754
+ * and refuses it on a track whose debug is off — so a note can never outlive
18755
+ * the attention it belongs to.
18756
+ *
18757
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18758
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18759
+ * on without a note (a cancelled prompt) and what lets it edit the note
18760
+ * without touching the flag.
18761
+ */
18762
+ debugNote: string().max(500).optional(),
18722
18763
  /** Operator favourited this track. Pins it against pruning. */
18723
18764
  favourited: boolean().optional()
18724
18765
  };
@@ -18745,6 +18786,12 @@ var TrackFlagsSchema = object({
18745
18786
  trackId: string(),
18746
18787
  markForTrain: boolean(),
18747
18788
  debug: boolean(),
18789
+ /** The note as it STANDS after the write — never absent here (a track with no
18790
+ * note reports `''`), for the same reason the booleans are required: a
18791
+ * surface that has just written must be able to render the note it now owns
18792
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18793
+ * screen that has no previous value to keep. */
18794
+ debugNote: string(),
18748
18795
  favourited: boolean(),
18749
18796
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18750
18797
  * a track row) because this shape is only ever produced by the write body,
package/dist/addon.mjs CHANGED
@@ -12959,6 +12959,24 @@ var deviceProviderCapability = {
12959
12959
  })
12960
12960
  }
12961
12961
  };
12962
+ /**
12963
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12964
+ * live registry access, and all management operations into a single tRPC surface.
12965
+ *
12966
+ * Replaces:
12967
+ * - `device-persistence` capability (persistence methods absorbed here)
12968
+ * - `device-management.router.ts` (deleted in Phase 2)
12969
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12970
+ *
12971
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12972
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12973
+ * - No nodeId routing needed — this is a pure hub singleton.
12974
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12975
+ * - No shadow registry or cross-node aggregation required.
12976
+ *
12977
+ * Forked workers register devices back to the hub via `ctx.devices`
12978
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12979
+ */
12962
12980
  /** One child-placement directive on a container's `childLayout`. Structurally
12963
12981
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12964
12982
  * shape for the same field. The child is identified by its re-sync-stable
@@ -13057,7 +13075,12 @@ var ConfigEntrySchema = object({
13057
13075
  value: unknown(),
13058
13076
  description: string().optional()
13059
13077
  });
13060
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13078
+ /**
13079
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13080
+ * field survives on the wire because a viewer already OTA'd parses it —
13081
+ * drop it once no shipped client reads `mode`.
13082
+ */
13083
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13061
13084
  /** One resolved linked device — the compact projection consumers need. */
13062
13085
  var LinkedDeviceSchema = object({
13063
13086
  deviceId: number(),
@@ -18685,6 +18708,9 @@ var RetrainStatusSchema = _enum([
18685
18708
  *
18686
18709
  * `debug` does NOT pin; it is attention, not durability.
18687
18710
  *
18711
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18712
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18713
+ *
18688
18714
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18689
18715
  * A favourited track is skipped by retention the same way `staging` is, but
18690
18716
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18695,6 +18721,21 @@ var TrackFlagFields = {
18695
18721
  markForTrain: boolean().optional(),
18696
18722
  /** Operator marked this track for diagnostic attention. */
18697
18723
  debug: boolean().optional(),
18724
+ /**
18725
+ * What the operator wants CHECKED on this track, in their own words.
18726
+ *
18727
+ * The flag alone says "look at this" and nothing about what for; a debug set
18728
+ * reviewed hours later is a list of tracks with no question attached. Bound
18729
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18730
+ * and refuses it on a track whose debug is off — so a note can never outlive
18731
+ * the attention it belongs to.
18732
+ *
18733
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18734
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18735
+ * on without a note (a cancelled prompt) and what lets it edit the note
18736
+ * without touching the flag.
18737
+ */
18738
+ debugNote: string().max(500).optional(),
18698
18739
  /** Operator favourited this track. Pins it against pruning. */
18699
18740
  favourited: boolean().optional()
18700
18741
  };
@@ -18721,6 +18762,12 @@ var TrackFlagsSchema = object({
18721
18762
  trackId: string(),
18722
18763
  markForTrain: boolean(),
18723
18764
  debug: boolean(),
18765
+ /** The note as it STANDS after the write — never absent here (a track with no
18766
+ * note reports `''`), for the same reason the booleans are required: a
18767
+ * surface that has just written must be able to render the note it now owns
18768
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18769
+ * screen that has no previous value to keep. */
18770
+ debugNote: string(),
18724
18771
  favourited: boolean(),
18725
18772
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18726
18773
  * 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-rtsp",
3
- "version": "1.2.63",
3
+ "version": "1.2.65",
4
4
  "description": "Generic RTSP camera device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",