@camstack/addon-provider-rademacher 0.2.62 → 0.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
@@ -13912,6 +13912,24 @@ var deviceProviderCapability = {
13912
13912
  })
13913
13913
  }
13914
13914
  };
13915
+ /**
13916
+ * Device Manager capability — hub-side singleton that unifies device persistence,
13917
+ * live registry access, and all management operations into a single tRPC surface.
13918
+ *
13919
+ * Replaces:
13920
+ * - `device-persistence` capability (persistence methods absorbed here)
13921
+ * - `device-management.router.ts` (deleted in Phase 2)
13922
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
13923
+ *
13924
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
13925
+ * fork into separate processes but never run on remote cluster agents. Therefore:
13926
+ * - No nodeId routing needed — this is a pure hub singleton.
13927
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
13928
+ * - No shadow registry or cross-node aggregation required.
13929
+ *
13930
+ * Forked workers register devices back to the hub via `ctx.devices`
13931
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
13932
+ */
13915
13933
  /** One child-placement directive on a container's `childLayout`. Structurally
13916
13934
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
13917
13935
  * shape for the same field. The child is identified by its re-sync-stable
@@ -14010,7 +14028,12 @@ var ConfigEntrySchema = object({
14010
14028
  value: unknown(),
14011
14029
  description: string().optional()
14012
14030
  });
14013
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
14031
+ /**
14032
+ * Only `manual` since D356: the operator picks, nothing links itself. The
14033
+ * field survives on the wire because a viewer already OTA'd parses it —
14034
+ * drop it once no shipped client reads `mode`.
14035
+ */
14036
+ var LinkedDevicesModeSchema = _enum(["manual"]);
14014
14037
  /** One resolved linked device — the compact projection consumers need. */
14015
14038
  var LinkedDeviceSchema = object({
14016
14039
  deviceId: number(),
@@ -19638,6 +19661,9 @@ var RetrainStatusSchema = _enum([
19638
19661
  *
19639
19662
  * `debug` does NOT pin; it is attention, not durability.
19640
19663
  *
19664
+ * `debugNote` is the operator's own words about WHAT should be checked on this
19665
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
19666
+ *
19641
19667
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
19642
19668
  * A favourited track is skipped by retention the same way `staging` is, but
19643
19669
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -19648,6 +19674,21 @@ var TrackFlagFields = {
19648
19674
  markForTrain: boolean().optional(),
19649
19675
  /** Operator marked this track for diagnostic attention. */
19650
19676
  debug: boolean().optional(),
19677
+ /**
19678
+ * What the operator wants CHECKED on this track, in their own words.
19679
+ *
19680
+ * The flag alone says "look at this" and nothing about what for; a debug set
19681
+ * reviewed hours later is a list of tracks with no question attached. Bound
19682
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
19683
+ * and refuses it on a track whose debug is off — so a note can never outlive
19684
+ * the attention it belongs to.
19685
+ *
19686
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
19687
+ * "leave whatever is stored alone", which is what lets a surface turn debug
19688
+ * on without a note (a cancelled prompt) and what lets it edit the note
19689
+ * without touching the flag.
19690
+ */
19691
+ debugNote: string().max(500).optional(),
19651
19692
  /** Operator favourited this track. Pins it against pruning. */
19652
19693
  favourited: boolean().optional()
19653
19694
  };
@@ -19674,6 +19715,12 @@ var TrackFlagsSchema = object({
19674
19715
  trackId: string(),
19675
19716
  markForTrain: boolean(),
19676
19717
  debug: boolean(),
19718
+ /** The note as it STANDS after the write — never absent here (a track with no
19719
+ * note reports `''`), for the same reason the booleans are required: a
19720
+ * surface that has just written must be able to render the note it now owns
19721
+ * without a re-fetch, and an absent key would read as "unchanged" on a
19722
+ * screen that has no previous value to keep. */
19723
+ debugNote: string(),
19677
19724
  favourited: boolean(),
19678
19725
  /** The lifecycle state the boolean was derived from. Required here (unlike on
19679
19726
  * a track row) because this shape is only ever produced by the write body,
package/dist/addon.mjs CHANGED
@@ -13911,6 +13911,24 @@ var deviceProviderCapability = {
13911
13911
  })
13912
13912
  }
13913
13913
  };
13914
+ /**
13915
+ * Device Manager capability — hub-side singleton that unifies device persistence,
13916
+ * live registry access, and all management operations into a single tRPC surface.
13917
+ *
13918
+ * Replaces:
13919
+ * - `device-persistence` capability (persistence methods absorbed here)
13920
+ * - `device-management.router.ts` (deleted in Phase 2)
13921
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
13922
+ *
13923
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
13924
+ * fork into separate processes but never run on remote cluster agents. Therefore:
13925
+ * - No nodeId routing needed — this is a pure hub singleton.
13926
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
13927
+ * - No shadow registry or cross-node aggregation required.
13928
+ *
13929
+ * Forked workers register devices back to the hub via `ctx.devices`
13930
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
13931
+ */
13914
13932
  /** One child-placement directive on a container's `childLayout`. Structurally
13915
13933
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
13916
13934
  * shape for the same field. The child is identified by its re-sync-stable
@@ -14009,7 +14027,12 @@ var ConfigEntrySchema = object({
14009
14027
  value: unknown(),
14010
14028
  description: string().optional()
14011
14029
  });
14012
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
14030
+ /**
14031
+ * Only `manual` since D356: the operator picks, nothing links itself. The
14032
+ * field survives on the wire because a viewer already OTA'd parses it —
14033
+ * drop it once no shipped client reads `mode`.
14034
+ */
14035
+ var LinkedDevicesModeSchema = _enum(["manual"]);
14013
14036
  /** One resolved linked device — the compact projection consumers need. */
14014
14037
  var LinkedDeviceSchema = object({
14015
14038
  deviceId: number(),
@@ -19637,6 +19660,9 @@ var RetrainStatusSchema = _enum([
19637
19660
  *
19638
19661
  * `debug` does NOT pin; it is attention, not durability.
19639
19662
  *
19663
+ * `debugNote` is the operator's own words about WHAT should be checked on this
19664
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
19665
+ *
19640
19666
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
19641
19667
  * A favourited track is skipped by retention the same way `staging` is, but
19642
19668
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -19647,6 +19673,21 @@ var TrackFlagFields = {
19647
19673
  markForTrain: boolean().optional(),
19648
19674
  /** Operator marked this track for diagnostic attention. */
19649
19675
  debug: boolean().optional(),
19676
+ /**
19677
+ * What the operator wants CHECKED on this track, in their own words.
19678
+ *
19679
+ * The flag alone says "look at this" and nothing about what for; a debug set
19680
+ * reviewed hours later is a list of tracks with no question attached. Bound
19681
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
19682
+ * and refuses it on a track whose debug is off — so a note can never outlive
19683
+ * the attention it belongs to.
19684
+ *
19685
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
19686
+ * "leave whatever is stored alone", which is what lets a surface turn debug
19687
+ * on without a note (a cancelled prompt) and what lets it edit the note
19688
+ * without touching the flag.
19689
+ */
19690
+ debugNote: string().max(500).optional(),
19650
19691
  /** Operator favourited this track. Pins it against pruning. */
19651
19692
  favourited: boolean().optional()
19652
19693
  };
@@ -19673,6 +19714,12 @@ var TrackFlagsSchema = object({
19673
19714
  trackId: string(),
19674
19715
  markForTrain: boolean(),
19675
19716
  debug: boolean(),
19717
+ /** The note as it STANDS after the write — never absent here (a track with no
19718
+ * note reports `''`), for the same reason the booleans are required: a
19719
+ * surface that has just written must be able to render the note it now owns
19720
+ * without a re-fetch, and an absent key would read as "unchanged" on a
19721
+ * screen that has no previous value to keep. */
19722
+ debugNote: string(),
19676
19723
  favourited: boolean(),
19677
19724
  /** The lifecycle state the boolean was derived from. Required here (unlike on
19678
19725
  * 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-rademacher",
3
- "version": "0.2.62",
3
+ "version": "0.2.64",
4
4
  "description": "Rademacher HomePilot device-provider addon for CamStack — wraps the @apocaliss92/noderademacher local-hub client (roller shutters over the cover cap)",
5
5
  "keywords": [
6
6
  "camstack",