@camstack/addon-notifiers 1.2.67 → 1.2.68

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
@@ -12811,6 +12811,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12811
12811
  kind: "mutation",
12812
12812
  auth: "admin"
12813
12813
  });
12814
+ /**
12815
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12816
+ * live registry access, and all management operations into a single tRPC surface.
12817
+ *
12818
+ * Replaces:
12819
+ * - `device-persistence` capability (persistence methods absorbed here)
12820
+ * - `device-management.router.ts` (deleted in Phase 2)
12821
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12822
+ *
12823
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12824
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12825
+ * - No nodeId routing needed — this is a pure hub singleton.
12826
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12827
+ * - No shadow registry or cross-node aggregation required.
12828
+ *
12829
+ * Forked workers register devices back to the hub via `ctx.devices`
12830
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12831
+ */
12814
12832
  /** One child-placement directive on a container's `childLayout`. Structurally
12815
12833
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12816
12834
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18473,6 +18491,9 @@ var RetrainStatusSchema = _enum([
18473
18491
  *
18474
18492
  * `debug` does NOT pin; it is attention, not durability.
18475
18493
  *
18494
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18495
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18496
+ *
18476
18497
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18477
18498
  * A favourited track is skipped by retention the same way `staging` is, but
18478
18499
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18483,6 +18504,21 @@ var TrackFlagFields = {
18483
18504
  markForTrain: boolean().optional(),
18484
18505
  /** Operator marked this track for diagnostic attention. */
18485
18506
  debug: boolean().optional(),
18507
+ /**
18508
+ * What the operator wants CHECKED on this track, in their own words.
18509
+ *
18510
+ * The flag alone says "look at this" and nothing about what for; a debug set
18511
+ * reviewed hours later is a list of tracks with no question attached. Bound
18512
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18513
+ * and refuses it on a track whose debug is off — so a note can never outlive
18514
+ * the attention it belongs to.
18515
+ *
18516
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18517
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18518
+ * on without a note (a cancelled prompt) and what lets it edit the note
18519
+ * without touching the flag.
18520
+ */
18521
+ debugNote: string().max(500).optional(),
18486
18522
  /** Operator favourited this track. Pins it against pruning. */
18487
18523
  favourited: boolean().optional()
18488
18524
  };
@@ -18509,6 +18545,12 @@ var TrackFlagsSchema = object({
18509
18545
  trackId: string(),
18510
18546
  markForTrain: boolean(),
18511
18547
  debug: boolean(),
18548
+ /** The note as it STANDS after the write — never absent here (a track with no
18549
+ * note reports `''`), for the same reason the booleans are required: a
18550
+ * surface that has just written must be able to render the note it now owns
18551
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18552
+ * screen that has no previous value to keep. */
18553
+ debugNote: string(),
18512
18554
  favourited: boolean(),
18513
18555
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18514
18556
  * a track row) because this shape is only ever produced by the write body,
package/dist/addon.mjs CHANGED
@@ -12784,6 +12784,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12784
12784
  kind: "mutation",
12785
12785
  auth: "admin"
12786
12786
  });
12787
+ /**
12788
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12789
+ * live registry access, and all management operations into a single tRPC surface.
12790
+ *
12791
+ * Replaces:
12792
+ * - `device-persistence` capability (persistence methods absorbed here)
12793
+ * - `device-management.router.ts` (deleted in Phase 2)
12794
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12795
+ *
12796
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12797
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12798
+ * - No nodeId routing needed — this is a pure hub singleton.
12799
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12800
+ * - No shadow registry or cross-node aggregation required.
12801
+ *
12802
+ * Forked workers register devices back to the hub via `ctx.devices`
12803
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12804
+ */
12787
12805
  /** One child-placement directive on a container's `childLayout`. Structurally
12788
12806
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12789
12807
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18446,6 +18464,9 @@ var RetrainStatusSchema = _enum([
18446
18464
  *
18447
18465
  * `debug` does NOT pin; it is attention, not durability.
18448
18466
  *
18467
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18468
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18469
+ *
18449
18470
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18450
18471
  * A favourited track is skipped by retention the same way `staging` is, but
18451
18472
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18456,6 +18477,21 @@ var TrackFlagFields = {
18456
18477
  markForTrain: boolean().optional(),
18457
18478
  /** Operator marked this track for diagnostic attention. */
18458
18479
  debug: boolean().optional(),
18480
+ /**
18481
+ * What the operator wants CHECKED on this track, in their own words.
18482
+ *
18483
+ * The flag alone says "look at this" and nothing about what for; a debug set
18484
+ * reviewed hours later is a list of tracks with no question attached. Bound
18485
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18486
+ * and refuses it on a track whose debug is off — so a note can never outlive
18487
+ * the attention it belongs to.
18488
+ *
18489
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18490
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18491
+ * on without a note (a cancelled prompt) and what lets it edit the note
18492
+ * without touching the flag.
18493
+ */
18494
+ debugNote: string().max(500).optional(),
18459
18495
  /** Operator favourited this track. Pins it against pruning. */
18460
18496
  favourited: boolean().optional()
18461
18497
  };
@@ -18482,6 +18518,12 @@ var TrackFlagsSchema = object({
18482
18518
  trackId: string(),
18483
18519
  markForTrain: boolean(),
18484
18520
  debug: boolean(),
18521
+ /** The note as it STANDS after the write — never absent here (a track with no
18522
+ * note reports `''`), for the same reason the booleans are required: a
18523
+ * surface that has just written must be able to render the note it now owns
18524
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18525
+ * screen that has no previous value to keep. */
18526
+ debugNote: string(),
18485
18527
  favourited: boolean(),
18486
18528
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18487
18529
  * 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-notifiers",
3
- "version": "1.2.67",
3
+ "version": "1.2.68",
4
4
  "description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
5
5
  "keywords": [
6
6
  "camstack",