@camstack/addon-export-alexa 1.2.69 → 1.2.71

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
@@ -13030,7 +13048,12 @@ var ConfigEntrySchema = object({
13030
13048
  value: unknown(),
13031
13049
  description: string().optional()
13032
13050
  });
13033
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13051
+ /**
13052
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13053
+ * field survives on the wire because a viewer already OTA'd parses it —
13054
+ * drop it once no shipped client reads `mode`.
13055
+ */
13056
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13034
13057
  /** One resolved linked device — the compact projection consumers need. */
13035
13058
  var LinkedDeviceSchema = object({
13036
13059
  deviceId: number(),
@@ -18596,6 +18619,9 @@ var RetrainStatusSchema = _enum([
18596
18619
  *
18597
18620
  * `debug` does NOT pin; it is attention, not durability.
18598
18621
  *
18622
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18623
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18624
+ *
18599
18625
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18600
18626
  * A favourited track is skipped by retention the same way `staging` is, but
18601
18627
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18606,6 +18632,21 @@ var TrackFlagFields = {
18606
18632
  markForTrain: boolean().optional(),
18607
18633
  /** Operator marked this track for diagnostic attention. */
18608
18634
  debug: boolean().optional(),
18635
+ /**
18636
+ * What the operator wants CHECKED on this track, in their own words.
18637
+ *
18638
+ * The flag alone says "look at this" and nothing about what for; a debug set
18639
+ * reviewed hours later is a list of tracks with no question attached. Bound
18640
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18641
+ * and refuses it on a track whose debug is off — so a note can never outlive
18642
+ * the attention it belongs to.
18643
+ *
18644
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18645
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18646
+ * on without a note (a cancelled prompt) and what lets it edit the note
18647
+ * without touching the flag.
18648
+ */
18649
+ debugNote: string().max(500).optional(),
18609
18650
  /** Operator favourited this track. Pins it against pruning. */
18610
18651
  favourited: boolean().optional()
18611
18652
  };
@@ -18632,6 +18673,12 @@ var TrackFlagsSchema = object({
18632
18673
  trackId: string(),
18633
18674
  markForTrain: boolean(),
18634
18675
  debug: boolean(),
18676
+ /** The note as it STANDS after the write — never absent here (a track with no
18677
+ * note reports `''`), for the same reason the booleans are required: a
18678
+ * surface that has just written must be able to render the note it now owns
18679
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18680
+ * screen that has no previous value to keep. */
18681
+ debugNote: string(),
18635
18682
  favourited: boolean(),
18636
18683
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18637
18684
  * 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
@@ -13003,7 +13021,12 @@ var ConfigEntrySchema = object({
13003
13021
  value: unknown(),
13004
13022
  description: string().optional()
13005
13023
  });
13006
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13024
+ /**
13025
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13026
+ * field survives on the wire because a viewer already OTA'd parses it —
13027
+ * drop it once no shipped client reads `mode`.
13028
+ */
13029
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13007
13030
  /** One resolved linked device — the compact projection consumers need. */
13008
13031
  var LinkedDeviceSchema = object({
13009
13032
  deviceId: number(),
@@ -18569,6 +18592,9 @@ var RetrainStatusSchema = _enum([
18569
18592
  *
18570
18593
  * `debug` does NOT pin; it is attention, not durability.
18571
18594
  *
18595
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18596
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18597
+ *
18572
18598
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18573
18599
  * A favourited track is skipped by retention the same way `staging` is, but
18574
18600
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18579,6 +18605,21 @@ var TrackFlagFields = {
18579
18605
  markForTrain: boolean().optional(),
18580
18606
  /** Operator marked this track for diagnostic attention. */
18581
18607
  debug: boolean().optional(),
18608
+ /**
18609
+ * What the operator wants CHECKED on this track, in their own words.
18610
+ *
18611
+ * The flag alone says "look at this" and nothing about what for; a debug set
18612
+ * reviewed hours later is a list of tracks with no question attached. Bound
18613
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18614
+ * and refuses it on a track whose debug is off — so a note can never outlive
18615
+ * the attention it belongs to.
18616
+ *
18617
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18618
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18619
+ * on without a note (a cancelled prompt) and what lets it edit the note
18620
+ * without touching the flag.
18621
+ */
18622
+ debugNote: string().max(500).optional(),
18582
18623
  /** Operator favourited this track. Pins it against pruning. */
18583
18624
  favourited: boolean().optional()
18584
18625
  };
@@ -18605,6 +18646,12 @@ var TrackFlagsSchema = object({
18605
18646
  trackId: string(),
18606
18647
  markForTrain: boolean(),
18607
18648
  debug: boolean(),
18649
+ /** The note as it STANDS after the write — never absent here (a track with no
18650
+ * note reports `''`), for the same reason the booleans are required: a
18651
+ * surface that has just written must be able to render the note it now owns
18652
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18653
+ * screen that has no previous value to keep. */
18654
+ debugNote: string(),
18608
18655
  favourited: boolean(),
18609
18656
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18610
18657
  * 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.69",
3
+ "version": "1.2.71",
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",