@camstack/addon-provider-hikvision 1.2.71 → 1.2.73

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
@@ -13215,6 +13215,24 @@ var deviceProviderCapability = {
13215
13215
  })
13216
13216
  }
13217
13217
  };
13218
+ /**
13219
+ * Device Manager capability — hub-side singleton that unifies device persistence,
13220
+ * live registry access, and all management operations into a single tRPC surface.
13221
+ *
13222
+ * Replaces:
13223
+ * - `device-persistence` capability (persistence methods absorbed here)
13224
+ * - `device-management.router.ts` (deleted in Phase 2)
13225
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
13226
+ *
13227
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
13228
+ * fork into separate processes but never run on remote cluster agents. Therefore:
13229
+ * - No nodeId routing needed — this is a pure hub singleton.
13230
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
13231
+ * - No shadow registry or cross-node aggregation required.
13232
+ *
13233
+ * Forked workers register devices back to the hub via `ctx.devices`
13234
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
13235
+ */
13218
13236
  /** One child-placement directive on a container's `childLayout`. Structurally
13219
13237
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
13220
13238
  * shape for the same field. The child is identified by its re-sync-stable
@@ -13313,7 +13331,12 @@ var ConfigEntrySchema = object({
13313
13331
  value: unknown(),
13314
13332
  description: string().optional()
13315
13333
  });
13316
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13334
+ /**
13335
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13336
+ * field survives on the wire because a viewer already OTA'd parses it —
13337
+ * drop it once no shipped client reads `mode`.
13338
+ */
13339
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13317
13340
  /** One resolved linked device — the compact projection consumers need. */
13318
13341
  var LinkedDeviceSchema = object({
13319
13342
  deviceId: number(),
@@ -18960,6 +18983,9 @@ var RetrainStatusSchema = _enum([
18960
18983
  *
18961
18984
  * `debug` does NOT pin; it is attention, not durability.
18962
18985
  *
18986
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18987
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18988
+ *
18963
18989
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18964
18990
  * A favourited track is skipped by retention the same way `staging` is, but
18965
18991
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18970,6 +18996,21 @@ var TrackFlagFields = {
18970
18996
  markForTrain: boolean().optional(),
18971
18997
  /** Operator marked this track for diagnostic attention. */
18972
18998
  debug: boolean().optional(),
18999
+ /**
19000
+ * What the operator wants CHECKED on this track, in their own words.
19001
+ *
19002
+ * The flag alone says "look at this" and nothing about what for; a debug set
19003
+ * reviewed hours later is a list of tracks with no question attached. Bound
19004
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
19005
+ * and refuses it on a track whose debug is off — so a note can never outlive
19006
+ * the attention it belongs to.
19007
+ *
19008
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
19009
+ * "leave whatever is stored alone", which is what lets a surface turn debug
19010
+ * on without a note (a cancelled prompt) and what lets it edit the note
19011
+ * without touching the flag.
19012
+ */
19013
+ debugNote: string().max(500).optional(),
18973
19014
  /** Operator favourited this track. Pins it against pruning. */
18974
19015
  favourited: boolean().optional()
18975
19016
  };
@@ -18996,6 +19037,12 @@ var TrackFlagsSchema = object({
18996
19037
  trackId: string(),
18997
19038
  markForTrain: boolean(),
18998
19039
  debug: boolean(),
19040
+ /** The note as it STANDS after the write — never absent here (a track with no
19041
+ * note reports `''`), for the same reason the booleans are required: a
19042
+ * surface that has just written must be able to render the note it now owns
19043
+ * without a re-fetch, and an absent key would read as "unchanged" on a
19044
+ * screen that has no previous value to keep. */
19045
+ debugNote: string(),
18999
19046
  favourited: boolean(),
19000
19047
  /** The lifecycle state the boolean was derived from. Required here (unlike on
19001
19048
  * a track row) because this shape is only ever produced by the write body,
package/dist/addon.mjs CHANGED
@@ -13216,6 +13216,24 @@ var deviceProviderCapability = {
13216
13216
  })
13217
13217
  }
13218
13218
  };
13219
+ /**
13220
+ * Device Manager capability — hub-side singleton that unifies device persistence,
13221
+ * live registry access, and all management operations into a single tRPC surface.
13222
+ *
13223
+ * Replaces:
13224
+ * - `device-persistence` capability (persistence methods absorbed here)
13225
+ * - `device-management.router.ts` (deleted in Phase 2)
13226
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
13227
+ *
13228
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
13229
+ * fork into separate processes but never run on remote cluster agents. Therefore:
13230
+ * - No nodeId routing needed — this is a pure hub singleton.
13231
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
13232
+ * - No shadow registry or cross-node aggregation required.
13233
+ *
13234
+ * Forked workers register devices back to the hub via `ctx.devices`
13235
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
13236
+ */
13219
13237
  /** One child-placement directive on a container's `childLayout`. Structurally
13220
13238
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
13221
13239
  * shape for the same field. The child is identified by its re-sync-stable
@@ -13314,7 +13332,12 @@ var ConfigEntrySchema = object({
13314
13332
  value: unknown(),
13315
13333
  description: string().optional()
13316
13334
  });
13317
- var LinkedDevicesModeSchema = _enum(["auto", "manual"]);
13335
+ /**
13336
+ * Only `manual` since D356: the operator picks, nothing links itself. The
13337
+ * field survives on the wire because a viewer already OTA'd parses it —
13338
+ * drop it once no shipped client reads `mode`.
13339
+ */
13340
+ var LinkedDevicesModeSchema = _enum(["manual"]);
13318
13341
  /** One resolved linked device — the compact projection consumers need. */
13319
13342
  var LinkedDeviceSchema = object({
13320
13343
  deviceId: number(),
@@ -18961,6 +18984,9 @@ var RetrainStatusSchema = _enum([
18961
18984
  *
18962
18985
  * `debug` does NOT pin; it is attention, not durability.
18963
18986
  *
18987
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18988
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18989
+ *
18964
18990
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18965
18991
  * A favourited track is skipped by retention the same way `staging` is, but
18966
18992
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18971,6 +18997,21 @@ var TrackFlagFields = {
18971
18997
  markForTrain: boolean().optional(),
18972
18998
  /** Operator marked this track for diagnostic attention. */
18973
18999
  debug: boolean().optional(),
19000
+ /**
19001
+ * What the operator wants CHECKED on this track, in their own words.
19002
+ *
19003
+ * The flag alone says "look at this" and nothing about what for; a debug set
19004
+ * reviewed hours later is a list of tracks with no question attached. Bound
19005
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
19006
+ * and refuses it on a track whose debug is off — so a note can never outlive
19007
+ * the attention it belongs to.
19008
+ *
19009
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
19010
+ * "leave whatever is stored alone", which is what lets a surface turn debug
19011
+ * on without a note (a cancelled prompt) and what lets it edit the note
19012
+ * without touching the flag.
19013
+ */
19014
+ debugNote: string().max(500).optional(),
18974
19015
  /** Operator favourited this track. Pins it against pruning. */
18975
19016
  favourited: boolean().optional()
18976
19017
  };
@@ -18997,6 +19038,12 @@ var TrackFlagsSchema = object({
18997
19038
  trackId: string(),
18998
19039
  markForTrain: boolean(),
18999
19040
  debug: boolean(),
19041
+ /** The note as it STANDS after the write — never absent here (a track with no
19042
+ * note reports `''`), for the same reason the booleans are required: a
19043
+ * surface that has just written must be able to render the note it now owns
19044
+ * without a re-fetch, and an absent key would read as "unchanged" on a
19045
+ * screen that has no previous value to keep. */
19046
+ debugNote: string(),
19000
19047
  favourited: boolean(),
19001
19048
  /** The lifecycle state the boolean was derived from. Required here (unlike on
19002
19049
  * 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-hikvision",
3
- "version": "1.2.71",
3
+ "version": "1.2.73",
4
4
  "description": "Hikvision camera device provider addon for CamStack — ISAPI over HTTP(S) with digest auth (snapshot, alarm stream, RTSP discovery)",
5
5
  "keywords": [
6
6
  "camstack",