@camstack/addon-notifiers 1.2.67 → 1.2.69
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 +48 -1
- package/dist/addon.mjs +48 -1
- package/package.json +1 -1
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
|
|
@@ -12909,7 +12927,12 @@ var ConfigEntrySchema = object({
|
|
|
12909
12927
|
value: unknown(),
|
|
12910
12928
|
description: string().optional()
|
|
12911
12929
|
});
|
|
12912
|
-
|
|
12930
|
+
/**
|
|
12931
|
+
* Only `manual` since D356: the operator picks, nothing links itself. The
|
|
12932
|
+
* field survives on the wire because a viewer already OTA'd parses it —
|
|
12933
|
+
* drop it once no shipped client reads `mode`.
|
|
12934
|
+
*/
|
|
12935
|
+
var LinkedDevicesModeSchema = _enum(["manual"]);
|
|
12913
12936
|
/** One resolved linked device — the compact projection consumers need. */
|
|
12914
12937
|
var LinkedDeviceSchema = object({
|
|
12915
12938
|
deviceId: number(),
|
|
@@ -18473,6 +18496,9 @@ var RetrainStatusSchema = _enum([
|
|
|
18473
18496
|
*
|
|
18474
18497
|
* `debug` does NOT pin; it is attention, not durability.
|
|
18475
18498
|
*
|
|
18499
|
+
* `debugNote` is the operator's own words about WHAT should be checked on this
|
|
18500
|
+
* track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
|
|
18501
|
+
*
|
|
18476
18502
|
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
18477
18503
|
* A favourited track is skipped by retention the same way `staging` is, but
|
|
18478
18504
|
* it does not enter `none|staging|trained` and has no staging budget.
|
|
@@ -18483,6 +18509,21 @@ var TrackFlagFields = {
|
|
|
18483
18509
|
markForTrain: boolean().optional(),
|
|
18484
18510
|
/** Operator marked this track for diagnostic attention. */
|
|
18485
18511
|
debug: boolean().optional(),
|
|
18512
|
+
/**
|
|
18513
|
+
* What the operator wants CHECKED on this track, in their own words.
|
|
18514
|
+
*
|
|
18515
|
+
* The flag alone says "look at this" and nothing about what for; a debug set
|
|
18516
|
+
* reviewed hours later is a list of tracks with no question attached. Bound
|
|
18517
|
+
* to `debug` on the WRITE side — the body clears it when `debug` goes off,
|
|
18518
|
+
* and refuses it on a track whose debug is off — so a note can never outlive
|
|
18519
|
+
* the attention it belongs to.
|
|
18520
|
+
*
|
|
18521
|
+
* `''` is a real value ("marked, nothing to add"); the ABSENT key means
|
|
18522
|
+
* "leave whatever is stored alone", which is what lets a surface turn debug
|
|
18523
|
+
* on without a note (a cancelled prompt) and what lets it edit the note
|
|
18524
|
+
* without touching the flag.
|
|
18525
|
+
*/
|
|
18526
|
+
debugNote: string().max(500).optional(),
|
|
18486
18527
|
/** Operator favourited this track. Pins it against pruning. */
|
|
18487
18528
|
favourited: boolean().optional()
|
|
18488
18529
|
};
|
|
@@ -18509,6 +18550,12 @@ var TrackFlagsSchema = object({
|
|
|
18509
18550
|
trackId: string(),
|
|
18510
18551
|
markForTrain: boolean(),
|
|
18511
18552
|
debug: boolean(),
|
|
18553
|
+
/** The note as it STANDS after the write — never absent here (a track with no
|
|
18554
|
+
* note reports `''`), for the same reason the booleans are required: a
|
|
18555
|
+
* surface that has just written must be able to render the note it now owns
|
|
18556
|
+
* without a re-fetch, and an absent key would read as "unchanged" on a
|
|
18557
|
+
* screen that has no previous value to keep. */
|
|
18558
|
+
debugNote: string(),
|
|
18512
18559
|
favourited: boolean(),
|
|
18513
18560
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
18514
18561
|
* 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
|
|
@@ -12882,7 +12900,12 @@ var ConfigEntrySchema = object({
|
|
|
12882
12900
|
value: unknown(),
|
|
12883
12901
|
description: string().optional()
|
|
12884
12902
|
});
|
|
12885
|
-
|
|
12903
|
+
/**
|
|
12904
|
+
* Only `manual` since D356: the operator picks, nothing links itself. The
|
|
12905
|
+
* field survives on the wire because a viewer already OTA'd parses it —
|
|
12906
|
+
* drop it once no shipped client reads `mode`.
|
|
12907
|
+
*/
|
|
12908
|
+
var LinkedDevicesModeSchema = _enum(["manual"]);
|
|
12886
12909
|
/** One resolved linked device — the compact projection consumers need. */
|
|
12887
12910
|
var LinkedDeviceSchema = object({
|
|
12888
12911
|
deviceId: number(),
|
|
@@ -18446,6 +18469,9 @@ var RetrainStatusSchema = _enum([
|
|
|
18446
18469
|
*
|
|
18447
18470
|
* `debug` does NOT pin; it is attention, not durability.
|
|
18448
18471
|
*
|
|
18472
|
+
* `debugNote` is the operator's own words about WHAT should be checked on this
|
|
18473
|
+
* track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
|
|
18474
|
+
*
|
|
18449
18475
|
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
18450
18476
|
* A favourited track is skipped by retention the same way `staging` is, but
|
|
18451
18477
|
* it does not enter `none|staging|trained` and has no staging budget.
|
|
@@ -18456,6 +18482,21 @@ var TrackFlagFields = {
|
|
|
18456
18482
|
markForTrain: boolean().optional(),
|
|
18457
18483
|
/** Operator marked this track for diagnostic attention. */
|
|
18458
18484
|
debug: boolean().optional(),
|
|
18485
|
+
/**
|
|
18486
|
+
* What the operator wants CHECKED on this track, in their own words.
|
|
18487
|
+
*
|
|
18488
|
+
* The flag alone says "look at this" and nothing about what for; a debug set
|
|
18489
|
+
* reviewed hours later is a list of tracks with no question attached. Bound
|
|
18490
|
+
* to `debug` on the WRITE side — the body clears it when `debug` goes off,
|
|
18491
|
+
* and refuses it on a track whose debug is off — so a note can never outlive
|
|
18492
|
+
* the attention it belongs to.
|
|
18493
|
+
*
|
|
18494
|
+
* `''` is a real value ("marked, nothing to add"); the ABSENT key means
|
|
18495
|
+
* "leave whatever is stored alone", which is what lets a surface turn debug
|
|
18496
|
+
* on without a note (a cancelled prompt) and what lets it edit the note
|
|
18497
|
+
* without touching the flag.
|
|
18498
|
+
*/
|
|
18499
|
+
debugNote: string().max(500).optional(),
|
|
18459
18500
|
/** Operator favourited this track. Pins it against pruning. */
|
|
18460
18501
|
favourited: boolean().optional()
|
|
18461
18502
|
};
|
|
@@ -18482,6 +18523,12 @@ var TrackFlagsSchema = object({
|
|
|
18482
18523
|
trackId: string(),
|
|
18483
18524
|
markForTrain: boolean(),
|
|
18484
18525
|
debug: boolean(),
|
|
18526
|
+
/** The note as it STANDS after the write — never absent here (a track with no
|
|
18527
|
+
* note reports `''`), for the same reason the booleans are required: a
|
|
18528
|
+
* surface that has just written must be able to render the note it now owns
|
|
18529
|
+
* without a re-fetch, and an absent key would read as "unchanged" on a
|
|
18530
|
+
* screen that has no previous value to keep. */
|
|
18531
|
+
debugNote: string(),
|
|
18485
18532
|
favourited: boolean(),
|
|
18486
18533
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
18487
18534
|
* 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.
|
|
3
|
+
"version": "1.2.69",
|
|
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",
|