@camstack/addon-export-google 0.1.27 → 0.1.28

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.
@@ -12903,6 +12903,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12903
12903
  kind: "mutation",
12904
12904
  auth: "admin"
12905
12905
  });
12906
+ /**
12907
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12908
+ * live registry access, and all management operations into a single tRPC surface.
12909
+ *
12910
+ * Replaces:
12911
+ * - `device-persistence` capability (persistence methods absorbed here)
12912
+ * - `device-management.router.ts` (deleted in Phase 2)
12913
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12914
+ *
12915
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12916
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12917
+ * - No nodeId routing needed — this is a pure hub singleton.
12918
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12919
+ * - No shadow registry or cross-node aggregation required.
12920
+ *
12921
+ * Forked workers register devices back to the hub via `ctx.devices`
12922
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12923
+ */
12906
12924
  /** One child-placement directive on a container's `childLayout`. Structurally
12907
12925
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12908
12926
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18567,6 +18585,9 @@ var RetrainStatusSchema = _enum([
18567
18585
  *
18568
18586
  * `debug` does NOT pin; it is attention, not durability.
18569
18587
  *
18588
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18589
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18590
+ *
18570
18591
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18571
18592
  * A favourited track is skipped by retention the same way `staging` is, but
18572
18593
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18577,6 +18598,21 @@ var TrackFlagFields = {
18577
18598
  markForTrain: boolean().optional(),
18578
18599
  /** Operator marked this track for diagnostic attention. */
18579
18600
  debug: boolean().optional(),
18601
+ /**
18602
+ * What the operator wants CHECKED on this track, in their own words.
18603
+ *
18604
+ * The flag alone says "look at this" and nothing about what for; a debug set
18605
+ * reviewed hours later is a list of tracks with no question attached. Bound
18606
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18607
+ * and refuses it on a track whose debug is off — so a note can never outlive
18608
+ * the attention it belongs to.
18609
+ *
18610
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18611
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18612
+ * on without a note (a cancelled prompt) and what lets it edit the note
18613
+ * without touching the flag.
18614
+ */
18615
+ debugNote: string().max(500).optional(),
18580
18616
  /** Operator favourited this track. Pins it against pruning. */
18581
18617
  favourited: boolean().optional()
18582
18618
  };
@@ -18603,6 +18639,12 @@ var TrackFlagsSchema = object({
18603
18639
  trackId: string(),
18604
18640
  markForTrain: boolean(),
18605
18641
  debug: boolean(),
18642
+ /** The note as it STANDS after the write — never absent here (a track with no
18643
+ * note reports `''`), for the same reason the booleans are required: a
18644
+ * surface that has just written must be able to render the note it now owns
18645
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18646
+ * screen that has no previous value to keep. */
18647
+ debugNote: string(),
18606
18648
  favourited: boolean(),
18607
18649
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18608
18650
  * a track row) because this shape is only ever produced by the write body,
@@ -12899,6 +12899,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12899
12899
  kind: "mutation",
12900
12900
  auth: "admin"
12901
12901
  });
12902
+ /**
12903
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12904
+ * live registry access, and all management operations into a single tRPC surface.
12905
+ *
12906
+ * Replaces:
12907
+ * - `device-persistence` capability (persistence methods absorbed here)
12908
+ * - `device-management.router.ts` (deleted in Phase 2)
12909
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12910
+ *
12911
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12912
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12913
+ * - No nodeId routing needed — this is a pure hub singleton.
12914
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12915
+ * - No shadow registry or cross-node aggregation required.
12916
+ *
12917
+ * Forked workers register devices back to the hub via `ctx.devices`
12918
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12919
+ */
12902
12920
  /** One child-placement directive on a container's `childLayout`. Structurally
12903
12921
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12904
12922
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18563,6 +18581,9 @@ var RetrainStatusSchema = _enum([
18563
18581
  *
18564
18582
  * `debug` does NOT pin; it is attention, not durability.
18565
18583
  *
18584
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18585
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18586
+ *
18566
18587
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18567
18588
  * A favourited track is skipped by retention the same way `staging` is, but
18568
18589
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18573,6 +18594,21 @@ var TrackFlagFields = {
18573
18594
  markForTrain: boolean().optional(),
18574
18595
  /** Operator marked this track for diagnostic attention. */
18575
18596
  debug: boolean().optional(),
18597
+ /**
18598
+ * What the operator wants CHECKED on this track, in their own words.
18599
+ *
18600
+ * The flag alone says "look at this" and nothing about what for; a debug set
18601
+ * reviewed hours later is a list of tracks with no question attached. Bound
18602
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18603
+ * and refuses it on a track whose debug is off — so a note can never outlive
18604
+ * the attention it belongs to.
18605
+ *
18606
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18607
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18608
+ * on without a note (a cancelled prompt) and what lets it edit the note
18609
+ * without touching the flag.
18610
+ */
18611
+ debugNote: string().max(500).optional(),
18576
18612
  /** Operator favourited this track. Pins it against pruning. */
18577
18613
  favourited: boolean().optional()
18578
18614
  };
@@ -18599,6 +18635,12 @@ var TrackFlagsSchema = object({
18599
18635
  trackId: string(),
18600
18636
  markForTrain: boolean(),
18601
18637
  debug: boolean(),
18638
+ /** The note as it STANDS after the write — never absent here (a track with no
18639
+ * note reports `''`), for the same reason the booleans are required: a
18640
+ * surface that has just written must be able to render the note it now owns
18641
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18642
+ * screen that has no previous value to keep. */
18643
+ debugNote: string(),
18602
18644
  favourited: boolean(),
18603
18645
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18604
18646
  * 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-export-google",
3
- "version": "0.1.27",
3
+ "version": "0.1.28",
4
4
  "description": "Google Home export — hub-side smart-home fulfillment (SYNC / QUERY / EXECUTE / DISCONNECT) for the non-camera fleet, served over the hub's own OAuth account link. No Google credential is stored, sent or required.",
5
5
  "keywords": [
6
6
  "camstack",