@camstack/addon-provider-gree 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
@@ -12930,6 +12930,24 @@ var deviceProviderCapability = {
12930
12930
  })
12931
12931
  }
12932
12932
  };
12933
+ /**
12934
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12935
+ * live registry access, and all management operations into a single tRPC surface.
12936
+ *
12937
+ * Replaces:
12938
+ * - `device-persistence` capability (persistence methods absorbed here)
12939
+ * - `device-management.router.ts` (deleted in Phase 2)
12940
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12941
+ *
12942
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12943
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12944
+ * - No nodeId routing needed — this is a pure hub singleton.
12945
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12946
+ * - No shadow registry or cross-node aggregation required.
12947
+ *
12948
+ * Forked workers register devices back to the hub via `ctx.devices`
12949
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12950
+ */
12933
12951
  /** One child-placement directive on a container's `childLayout`. Structurally
12934
12952
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12935
12953
  * shape for the same field. The child is identified by its re-sync-stable
@@ -13028,7 +13046,12 @@ var ConfigEntrySchema = object({
13028
13046
  value: unknown(),
13029
13047
  description: string().optional()
13030
13048
  });
13031
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13049
+ /**
13050
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13051
+ * field survives on the wire because a viewer already OTA'd parses it —
13052
+ * drop it once no shipped client reads `mode`.
13053
+ */
13054
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13032
13055
  /** One resolved linked device — the compact projection consumers need. */
13033
13056
  var LinkedDeviceSchema = object({
13034
13057
  deviceId: number(),
@@ -18656,6 +18679,9 @@ var RetrainStatusSchema = _enum([
18656
18679
  *
18657
18680
  * `debug` does NOT pin; it is attention, not durability.
18658
18681
  *
18682
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18683
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18684
+ *
18659
18685
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18660
18686
  * A favourited track is skipped by retention the same way `staging` is, but
18661
18687
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18666,6 +18692,21 @@ var TrackFlagFields = {
18666
18692
  markForTrain: boolean().optional(),
18667
18693
  /** Operator marked this track for diagnostic attention. */
18668
18694
  debug: boolean().optional(),
18695
+ /**
18696
+ * What the operator wants CHECKED on this track, in their own words.
18697
+ *
18698
+ * The flag alone says "look at this" and nothing about what for; a debug set
18699
+ * reviewed hours later is a list of tracks with no question attached. Bound
18700
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18701
+ * and refuses it on a track whose debug is off — so a note can never outlive
18702
+ * the attention it belongs to.
18703
+ *
18704
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18705
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18706
+ * on without a note (a cancelled prompt) and what lets it edit the note
18707
+ * without touching the flag.
18708
+ */
18709
+ debugNote: string().max(500).optional(),
18669
18710
  /** Operator favourited this track. Pins it against pruning. */
18670
18711
  favourited: boolean().optional()
18671
18712
  };
@@ -18692,6 +18733,12 @@ var TrackFlagsSchema = object({
18692
18733
  trackId: string(),
18693
18734
  markForTrain: boolean(),
18694
18735
  debug: boolean(),
18736
+ /** The note as it STANDS after the write — never absent here (a track with no
18737
+ * note reports `''`), for the same reason the booleans are required: a
18738
+ * surface that has just written must be able to render the note it now owns
18739
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18740
+ * screen that has no previous value to keep. */
18741
+ debugNote: string(),
18695
18742
  favourited: boolean(),
18696
18743
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18697
18744
  * a track row) because this shape is only ever produced by the write body,
package/dist/addon.mjs CHANGED
@@ -12929,6 +12929,24 @@ var deviceProviderCapability = {
12929
12929
  })
12930
12930
  }
12931
12931
  };
12932
+ /**
12933
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12934
+ * live registry access, and all management operations into a single tRPC surface.
12935
+ *
12936
+ * Replaces:
12937
+ * - `device-persistence` capability (persistence methods absorbed here)
12938
+ * - `device-management.router.ts` (deleted in Phase 2)
12939
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12940
+ *
12941
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12942
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12943
+ * - No nodeId routing needed — this is a pure hub singleton.
12944
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12945
+ * - No shadow registry or cross-node aggregation required.
12946
+ *
12947
+ * Forked workers register devices back to the hub via `ctx.devices`
12948
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12949
+ */
12932
12950
  /** One child-placement directive on a container's `childLayout`. Structurally
12933
12951
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12934
12952
  * shape for the same field. The child is identified by its re-sync-stable
@@ -13027,7 +13045,12 @@ var ConfigEntrySchema = object({
13027
13045
  value: unknown(),
13028
13046
  description: string().optional()
13029
13047
  });
13030
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13048
+ /**
13049
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13050
+ * field survives on the wire because a viewer already OTA'd parses it —
13051
+ * drop it once no shipped client reads `mode`.
13052
+ */
13053
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13031
13054
  /** One resolved linked device — the compact projection consumers need. */
13032
13055
  var LinkedDeviceSchema = object({
13033
13056
  deviceId: number(),
@@ -18655,6 +18678,9 @@ var RetrainStatusSchema = _enum([
18655
18678
  *
18656
18679
  * `debug` does NOT pin; it is attention, not durability.
18657
18680
  *
18681
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18682
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18683
+ *
18658
18684
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18659
18685
  * A favourited track is skipped by retention the same way `staging` is, but
18660
18686
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18665,6 +18691,21 @@ var TrackFlagFields = {
18665
18691
  markForTrain: boolean().optional(),
18666
18692
  /** Operator marked this track for diagnostic attention. */
18667
18693
  debug: boolean().optional(),
18694
+ /**
18695
+ * What the operator wants CHECKED on this track, in their own words.
18696
+ *
18697
+ * The flag alone says "look at this" and nothing about what for; a debug set
18698
+ * reviewed hours later is a list of tracks with no question attached. Bound
18699
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18700
+ * and refuses it on a track whose debug is off — so a note can never outlive
18701
+ * the attention it belongs to.
18702
+ *
18703
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18704
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18705
+ * on without a note (a cancelled prompt) and what lets it edit the note
18706
+ * without touching the flag.
18707
+ */
18708
+ debugNote: string().max(500).optional(),
18668
18709
  /** Operator favourited this track. Pins it against pruning. */
18669
18710
  favourited: boolean().optional()
18670
18711
  };
@@ -18691,6 +18732,12 @@ var TrackFlagsSchema = object({
18691
18732
  trackId: string(),
18692
18733
  markForTrain: boolean(),
18693
18734
  debug: boolean(),
18735
+ /** The note as it STANDS after the write — never absent here (a track with no
18736
+ * note reports `''`), for the same reason the booleans are required: a
18737
+ * surface that has just written must be able to render the note it now owns
18738
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18739
+ * screen that has no previous value to keep. */
18740
+ debugNote: string(),
18694
18741
  favourited: boolean(),
18695
18742
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18696
18743
  * 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-gree",
3
- "version": "0.2.62",
3
+ "version": "0.2.64",
4
4
  "description": "Gree air-conditioner device-provider addon for CamStack — wraps the @apocaliss92/nodegree local-UDP client (LAN discovery + AES control), exposing climate-control and fan-control",
5
5
  "keywords": [
6
6
  "camstack",