@camstack/addon-export-alexa 1.2.68 → 1.2.70

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.
@@ -12932,6 +12932,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12932
12932
  kind: "mutation",
12933
12933
  auth: "admin"
12934
12934
  });
12935
+ /**
12936
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12937
+ * live registry access, and all management operations into a single tRPC surface.
12938
+ *
12939
+ * Replaces:
12940
+ * - `device-persistence` capability (persistence methods absorbed here)
12941
+ * - `device-management.router.ts` (deleted in Phase 2)
12942
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12943
+ *
12944
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12945
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12946
+ * - No nodeId routing needed — this is a pure hub singleton.
12947
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12948
+ * - No shadow registry or cross-node aggregation required.
12949
+ *
12950
+ * Forked workers register devices back to the hub via `ctx.devices`
12951
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12952
+ */
12935
12953
  /** One child-placement directive on a container's `childLayout`. Structurally
12936
12954
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12937
12955
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18596,6 +18614,9 @@ var RetrainStatusSchema = _enum([
18596
18614
  *
18597
18615
  * `debug` does NOT pin; it is attention, not durability.
18598
18616
  *
18617
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18618
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18619
+ *
18599
18620
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18600
18621
  * A favourited track is skipped by retention the same way `staging` is, but
18601
18622
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18606,6 +18627,21 @@ var TrackFlagFields = {
18606
18627
  markForTrain: boolean().optional(),
18607
18628
  /** Operator marked this track for diagnostic attention. */
18608
18629
  debug: boolean().optional(),
18630
+ /**
18631
+ * What the operator wants CHECKED on this track, in their own words.
18632
+ *
18633
+ * The flag alone says "look at this" and nothing about what for; a debug set
18634
+ * reviewed hours later is a list of tracks with no question attached. Bound
18635
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18636
+ * and refuses it on a track whose debug is off — so a note can never outlive
18637
+ * the attention it belongs to.
18638
+ *
18639
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18640
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18641
+ * on without a note (a cancelled prompt) and what lets it edit the note
18642
+ * without touching the flag.
18643
+ */
18644
+ debugNote: string().max(500).optional(),
18609
18645
  /** Operator favourited this track. Pins it against pruning. */
18610
18646
  favourited: boolean().optional()
18611
18647
  };
@@ -18632,6 +18668,12 @@ var TrackFlagsSchema = object({
18632
18668
  trackId: string(),
18633
18669
  markForTrain: boolean(),
18634
18670
  debug: boolean(),
18671
+ /** The note as it STANDS after the write — never absent here (a track with no
18672
+ * note reports `''`), for the same reason the booleans are required: a
18673
+ * surface that has just written must be able to render the note it now owns
18674
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18675
+ * screen that has no previous value to keep. */
18676
+ debugNote: string(),
18635
18677
  favourited: boolean(),
18636
18678
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18637
18679
  * a track row) because this shape is only ever produced by the write body,
@@ -12905,6 +12905,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12905
12905
  kind: "mutation",
12906
12906
  auth: "admin"
12907
12907
  });
12908
+ /**
12909
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12910
+ * live registry access, and all management operations into a single tRPC surface.
12911
+ *
12912
+ * Replaces:
12913
+ * - `device-persistence` capability (persistence methods absorbed here)
12914
+ * - `device-management.router.ts` (deleted in Phase 2)
12915
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12916
+ *
12917
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12918
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12919
+ * - No nodeId routing needed — this is a pure hub singleton.
12920
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12921
+ * - No shadow registry or cross-node aggregation required.
12922
+ *
12923
+ * Forked workers register devices back to the hub via `ctx.devices`
12924
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12925
+ */
12908
12926
  /** One child-placement directive on a container's `childLayout`. Structurally
12909
12927
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12910
12928
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18569,6 +18587,9 @@ var RetrainStatusSchema = _enum([
18569
18587
  *
18570
18588
  * `debug` does NOT pin; it is attention, not durability.
18571
18589
  *
18590
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18591
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18592
+ *
18572
18593
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18573
18594
  * A favourited track is skipped by retention the same way `staging` is, but
18574
18595
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18579,6 +18600,21 @@ var TrackFlagFields = {
18579
18600
  markForTrain: boolean().optional(),
18580
18601
  /** Operator marked this track for diagnostic attention. */
18581
18602
  debug: boolean().optional(),
18603
+ /**
18604
+ * What the operator wants CHECKED on this track, in their own words.
18605
+ *
18606
+ * The flag alone says "look at this" and nothing about what for; a debug set
18607
+ * reviewed hours later is a list of tracks with no question attached. Bound
18608
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18609
+ * and refuses it on a track whose debug is off — so a note can never outlive
18610
+ * the attention it belongs to.
18611
+ *
18612
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18613
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18614
+ * on without a note (a cancelled prompt) and what lets it edit the note
18615
+ * without touching the flag.
18616
+ */
18617
+ debugNote: string().max(500).optional(),
18582
18618
  /** Operator favourited this track. Pins it against pruning. */
18583
18619
  favourited: boolean().optional()
18584
18620
  };
@@ -18605,6 +18641,12 @@ var TrackFlagsSchema = object({
18605
18641
  trackId: string(),
18606
18642
  markForTrain: boolean(),
18607
18643
  debug: boolean(),
18644
+ /** The note as it STANDS after the write — never absent here (a track with no
18645
+ * note reports `''`), for the same reason the booleans are required: a
18646
+ * surface that has just written must be able to render the note it now owns
18647
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18648
+ * screen that has no previous value to keep. */
18649
+ debugNote: string(),
18608
18650
  favourited: boolean(),
18609
18651
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18610
18652
  * 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-alexa",
3
- "version": "1.2.68",
3
+ "version": "1.2.70",
4
4
  "description": "Alexa Smart Home Skill export — hub-side OAuth provider + directive handler. The companion AWS Lambda forwards Alexa directives to this addon's /addon/export-alexa/directive endpoint.",
5
5
  "keywords": [
6
6
  "camstack",