@camstack/addon-provider-petkit 0.2.63 → 0.2.65

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
@@ -14046,6 +14046,24 @@ var deviceProviderCapability = {
14046
14046
  })
14047
14047
  }
14048
14048
  };
14049
+ /**
14050
+ * Device Manager capability — hub-side singleton that unifies device persistence,
14051
+ * live registry access, and all management operations into a single tRPC surface.
14052
+ *
14053
+ * Replaces:
14054
+ * - `device-persistence` capability (persistence methods absorbed here)
14055
+ * - `device-management.router.ts` (deleted in Phase 2)
14056
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
14057
+ *
14058
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
14059
+ * fork into separate processes but never run on remote cluster agents. Therefore:
14060
+ * - No nodeId routing needed — this is a pure hub singleton.
14061
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
14062
+ * - No shadow registry or cross-node aggregation required.
14063
+ *
14064
+ * Forked workers register devices back to the hub via `ctx.devices`
14065
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
14066
+ */
14049
14067
  /** One child-placement directive on a container's `childLayout`. Structurally
14050
14068
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
14051
14069
  * shape for the same field. The child is identified by its re-sync-stable
@@ -14144,7 +14162,12 @@ var ConfigEntrySchema = object({
14144
14162
  value: unknown(),
14145
14163
  description: string().optional()
14146
14164
  });
14147
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
14165
+ /**
14166
+ * Only `manual` since D356: the operator picks, nothing links itself. The
14167
+ * field survives on the wire because a viewer already OTA'd parses it —
14168
+ * drop it once no shipped client reads `mode`.
14169
+ */
14170
+ var LinkedDevicesModeSchema = _enum(["manual"]);
14148
14171
  /** One resolved linked device — the compact projection consumers need. */
14149
14172
  var LinkedDeviceSchema = object({
14150
14173
  deviceId: number(),
@@ -19772,6 +19795,9 @@ var RetrainStatusSchema = _enum([
19772
19795
  *
19773
19796
  * `debug` does NOT pin; it is attention, not durability.
19774
19797
  *
19798
+ * `debugNote` is the operator's own words about WHAT should be checked on this
19799
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
19800
+ *
19775
19801
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
19776
19802
  * A favourited track is skipped by retention the same way `staging` is, but
19777
19803
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -19782,6 +19808,21 @@ var TrackFlagFields = {
19782
19808
  markForTrain: boolean().optional(),
19783
19809
  /** Operator marked this track for diagnostic attention. */
19784
19810
  debug: boolean().optional(),
19811
+ /**
19812
+ * What the operator wants CHECKED on this track, in their own words.
19813
+ *
19814
+ * The flag alone says "look at this" and nothing about what for; a debug set
19815
+ * reviewed hours later is a list of tracks with no question attached. Bound
19816
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
19817
+ * and refuses it on a track whose debug is off — so a note can never outlive
19818
+ * the attention it belongs to.
19819
+ *
19820
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
19821
+ * "leave whatever is stored alone", which is what lets a surface turn debug
19822
+ * on without a note (a cancelled prompt) and what lets it edit the note
19823
+ * without touching the flag.
19824
+ */
19825
+ debugNote: string().max(500).optional(),
19785
19826
  /** Operator favourited this track. Pins it against pruning. */
19786
19827
  favourited: boolean().optional()
19787
19828
  };
@@ -19808,6 +19849,12 @@ var TrackFlagsSchema = object({
19808
19849
  trackId: string(),
19809
19850
  markForTrain: boolean(),
19810
19851
  debug: boolean(),
19852
+ /** The note as it STANDS after the write — never absent here (a track with no
19853
+ * note reports `''`), for the same reason the booleans are required: a
19854
+ * surface that has just written must be able to render the note it now owns
19855
+ * without a re-fetch, and an absent key would read as "unchanged" on a
19856
+ * screen that has no previous value to keep. */
19857
+ debugNote: string(),
19811
19858
  favourited: boolean(),
19812
19859
  /** The lifecycle state the boolean was derived from. Required here (unlike on
19813
19860
  * a track row) because this shape is only ever produced by the write body,
package/dist/addon.mjs CHANGED
@@ -14045,6 +14045,24 @@ var deviceProviderCapability = {
14045
14045
  })
14046
14046
  }
14047
14047
  };
14048
+ /**
14049
+ * Device Manager capability — hub-side singleton that unifies device persistence,
14050
+ * live registry access, and all management operations into a single tRPC surface.
14051
+ *
14052
+ * Replaces:
14053
+ * - `device-persistence` capability (persistence methods absorbed here)
14054
+ * - `device-management.router.ts` (deleted in Phase 2)
14055
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
14056
+ *
14057
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
14058
+ * fork into separate processes but never run on remote cluster agents. Therefore:
14059
+ * - No nodeId routing needed — this is a pure hub singleton.
14060
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
14061
+ * - No shadow registry or cross-node aggregation required.
14062
+ *
14063
+ * Forked workers register devices back to the hub via `ctx.devices`
14064
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
14065
+ */
14048
14066
  /** One child-placement directive on a container's `childLayout`. Structurally
14049
14067
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
14050
14068
  * shape for the same field. The child is identified by its re-sync-stable
@@ -14143,7 +14161,12 @@ var ConfigEntrySchema = object({
14143
14161
  value: unknown(),
14144
14162
  description: string().optional()
14145
14163
  });
14146
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
14164
+ /**
14165
+ * Only `manual` since D356: the operator picks, nothing links itself. The
14166
+ * field survives on the wire because a viewer already OTA'd parses it —
14167
+ * drop it once no shipped client reads `mode`.
14168
+ */
14169
+ var LinkedDevicesModeSchema = _enum(["manual"]);
14147
14170
  /** One resolved linked device — the compact projection consumers need. */
14148
14171
  var LinkedDeviceSchema = object({
14149
14172
  deviceId: number(),
@@ -19771,6 +19794,9 @@ var RetrainStatusSchema = _enum([
19771
19794
  *
19772
19795
  * `debug` does NOT pin; it is attention, not durability.
19773
19796
  *
19797
+ * `debugNote` is the operator's own words about WHAT should be checked on this
19798
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
19799
+ *
19774
19800
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
19775
19801
  * A favourited track is skipped by retention the same way `staging` is, but
19776
19802
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -19781,6 +19807,21 @@ var TrackFlagFields = {
19781
19807
  markForTrain: boolean().optional(),
19782
19808
  /** Operator marked this track for diagnostic attention. */
19783
19809
  debug: boolean().optional(),
19810
+ /**
19811
+ * What the operator wants CHECKED on this track, in their own words.
19812
+ *
19813
+ * The flag alone says "look at this" and nothing about what for; a debug set
19814
+ * reviewed hours later is a list of tracks with no question attached. Bound
19815
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
19816
+ * and refuses it on a track whose debug is off — so a note can never outlive
19817
+ * the attention it belongs to.
19818
+ *
19819
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
19820
+ * "leave whatever is stored alone", which is what lets a surface turn debug
19821
+ * on without a note (a cancelled prompt) and what lets it edit the note
19822
+ * without touching the flag.
19823
+ */
19824
+ debugNote: string().max(500).optional(),
19784
19825
  /** Operator favourited this track. Pins it against pruning. */
19785
19826
  favourited: boolean().optional()
19786
19827
  };
@@ -19807,6 +19848,12 @@ var TrackFlagsSchema = object({
19807
19848
  trackId: string(),
19808
19849
  markForTrain: boolean(),
19809
19850
  debug: boolean(),
19851
+ /** The note as it STANDS after the write — never absent here (a track with no
19852
+ * note reports `''`), for the same reason the booleans are required: a
19853
+ * surface that has just written must be able to render the note it now owns
19854
+ * without a re-fetch, and an absent key would read as "unchanged" on a
19855
+ * screen that has no previous value to keep. */
19856
+ debugNote: string(),
19810
19857
  favourited: boolean(),
19811
19858
  /** The lifecycle state the boolean was derived from. Required here (unlike on
19812
19859
  * 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-petkit",
3
- "version": "0.2.63",
3
+ "version": "0.2.65",
4
4
  "description": "PetKit smart-feeder device-provider addon for CamStack — wraps the @apocaliss92/nodepetkit PetKit cloud client",
5
5
  "keywords": [
6
6
  "camstack",