@camstack/addon-ai 0.4.64 → 0.4.66
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
|
@@ -12840,6 +12840,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
12840
12840
|
kind: "mutation",
|
|
12841
12841
|
auth: "admin"
|
|
12842
12842
|
});
|
|
12843
|
+
/**
|
|
12844
|
+
* Device Manager capability — hub-side singleton that unifies device persistence,
|
|
12845
|
+
* live registry access, and all management operations into a single tRPC surface.
|
|
12846
|
+
*
|
|
12847
|
+
* Replaces:
|
|
12848
|
+
* - `device-persistence` capability (persistence methods absorbed here)
|
|
12849
|
+
* - `device-management.router.ts` (deleted in Phase 2)
|
|
12850
|
+
* - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
|
|
12851
|
+
*
|
|
12852
|
+
* All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
|
|
12853
|
+
* fork into separate processes but never run on remote cluster agents. Therefore:
|
|
12854
|
+
* - No nodeId routing needed — this is a pure hub singleton.
|
|
12855
|
+
* - The hub's DeviceRegistry is the single source of truth for all live devices.
|
|
12856
|
+
* - No shadow registry or cross-node aggregation required.
|
|
12857
|
+
*
|
|
12858
|
+
* Forked workers register devices back to the hub via `ctx.devices`
|
|
12859
|
+
* (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
|
|
12860
|
+
*/
|
|
12843
12861
|
/** One child-placement directive on a container's `childLayout`. Structurally
|
|
12844
12862
|
* identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
|
|
12845
12863
|
* shape for the same field. The child is identified by its re-sync-stable
|
|
@@ -12938,7 +12956,12 @@ var ConfigEntrySchema = object({
|
|
|
12938
12956
|
value: unknown(),
|
|
12939
12957
|
description: string().optional()
|
|
12940
12958
|
});
|
|
12941
|
-
|
|
12959
|
+
/**
|
|
12960
|
+
* Only `manual` since D356: the operator picks, nothing links itself. The
|
|
12961
|
+
* field survives on the wire because a viewer already OTA'd parses it —
|
|
12962
|
+
* drop it once no shipped client reads `mode`.
|
|
12963
|
+
*/
|
|
12964
|
+
var LinkedDevicesModeSchema = _enum(["manual"]);
|
|
12942
12965
|
/** One resolved linked device — the compact projection consumers need. */
|
|
12943
12966
|
var LinkedDeviceSchema = object({
|
|
12944
12967
|
deviceId: number$1(),
|
|
@@ -18582,6 +18605,9 @@ var RetrainStatusSchema = _enum([
|
|
|
18582
18605
|
*
|
|
18583
18606
|
* `debug` does NOT pin; it is attention, not durability.
|
|
18584
18607
|
*
|
|
18608
|
+
* `debugNote` is the operator's own words about WHAT should be checked on this
|
|
18609
|
+
* track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
|
|
18610
|
+
*
|
|
18585
18611
|
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
18586
18612
|
* A favourited track is skipped by retention the same way `staging` is, but
|
|
18587
18613
|
* it does not enter `none|staging|trained` and has no staging budget.
|
|
@@ -18592,6 +18618,21 @@ var TrackFlagFields = {
|
|
|
18592
18618
|
markForTrain: boolean().optional(),
|
|
18593
18619
|
/** Operator marked this track for diagnostic attention. */
|
|
18594
18620
|
debug: boolean().optional(),
|
|
18621
|
+
/**
|
|
18622
|
+
* What the operator wants CHECKED on this track, in their own words.
|
|
18623
|
+
*
|
|
18624
|
+
* The flag alone says "look at this" and nothing about what for; a debug set
|
|
18625
|
+
* reviewed hours later is a list of tracks with no question attached. Bound
|
|
18626
|
+
* to `debug` on the WRITE side — the body clears it when `debug` goes off,
|
|
18627
|
+
* and refuses it on a track whose debug is off — so a note can never outlive
|
|
18628
|
+
* the attention it belongs to.
|
|
18629
|
+
*
|
|
18630
|
+
* `''` is a real value ("marked, nothing to add"); the ABSENT key means
|
|
18631
|
+
* "leave whatever is stored alone", which is what lets a surface turn debug
|
|
18632
|
+
* on without a note (a cancelled prompt) and what lets it edit the note
|
|
18633
|
+
* without touching the flag.
|
|
18634
|
+
*/
|
|
18635
|
+
debugNote: string().max(500).optional(),
|
|
18595
18636
|
/** Operator favourited this track. Pins it against pruning. */
|
|
18596
18637
|
favourited: boolean().optional()
|
|
18597
18638
|
};
|
|
@@ -18618,6 +18659,12 @@ var TrackFlagsSchema = object({
|
|
|
18618
18659
|
trackId: string(),
|
|
18619
18660
|
markForTrain: boolean(),
|
|
18620
18661
|
debug: boolean(),
|
|
18662
|
+
/** The note as it STANDS after the write — never absent here (a track with no
|
|
18663
|
+
* note reports `''`), for the same reason the booleans are required: a
|
|
18664
|
+
* surface that has just written must be able to render the note it now owns
|
|
18665
|
+
* without a re-fetch, and an absent key would read as "unchanged" on a
|
|
18666
|
+
* screen that has no previous value to keep. */
|
|
18667
|
+
debugNote: string(),
|
|
18621
18668
|
favourited: boolean(),
|
|
18622
18669
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
18623
18670
|
* a track row) because this shape is only ever produced by the write body,
|
package/dist/addon.mjs
CHANGED
|
@@ -12867,6 +12867,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
12867
12867
|
kind: "mutation",
|
|
12868
12868
|
auth: "admin"
|
|
12869
12869
|
});
|
|
12870
|
+
/**
|
|
12871
|
+
* Device Manager capability — hub-side singleton that unifies device persistence,
|
|
12872
|
+
* live registry access, and all management operations into a single tRPC surface.
|
|
12873
|
+
*
|
|
12874
|
+
* Replaces:
|
|
12875
|
+
* - `device-persistence` capability (persistence methods absorbed here)
|
|
12876
|
+
* - `device-management.router.ts` (deleted in Phase 2)
|
|
12877
|
+
* - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
|
|
12878
|
+
*
|
|
12879
|
+
* All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
|
|
12880
|
+
* fork into separate processes but never run on remote cluster agents. Therefore:
|
|
12881
|
+
* - No nodeId routing needed — this is a pure hub singleton.
|
|
12882
|
+
* - The hub's DeviceRegistry is the single source of truth for all live devices.
|
|
12883
|
+
* - No shadow registry or cross-node aggregation required.
|
|
12884
|
+
*
|
|
12885
|
+
* Forked workers register devices back to the hub via `ctx.devices`
|
|
12886
|
+
* (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
|
|
12887
|
+
*/
|
|
12870
12888
|
/** One child-placement directive on a container's `childLayout`. Structurally
|
|
12871
12889
|
* identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
|
|
12872
12890
|
* shape for the same field. The child is identified by its re-sync-stable
|
|
@@ -12965,7 +12983,12 @@ var ConfigEntrySchema = object({
|
|
|
12965
12983
|
value: unknown(),
|
|
12966
12984
|
description: string().optional()
|
|
12967
12985
|
});
|
|
12968
|
-
|
|
12986
|
+
/**
|
|
12987
|
+
* Only `manual` since D356: the operator picks, nothing links itself. The
|
|
12988
|
+
* field survives on the wire because a viewer already OTA'd parses it —
|
|
12989
|
+
* drop it once no shipped client reads `mode`.
|
|
12990
|
+
*/
|
|
12991
|
+
var LinkedDevicesModeSchema = _enum(["manual"]);
|
|
12969
12992
|
/** One resolved linked device — the compact projection consumers need. */
|
|
12970
12993
|
var LinkedDeviceSchema = object({
|
|
12971
12994
|
deviceId: number$1(),
|
|
@@ -18609,6 +18632,9 @@ var RetrainStatusSchema = _enum([
|
|
|
18609
18632
|
*
|
|
18610
18633
|
* `debug` does NOT pin; it is attention, not durability.
|
|
18611
18634
|
*
|
|
18635
|
+
* `debugNote` is the operator's own words about WHAT should be checked on this
|
|
18636
|
+
* track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
|
|
18637
|
+
*
|
|
18612
18638
|
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
18613
18639
|
* A favourited track is skipped by retention the same way `staging` is, but
|
|
18614
18640
|
* it does not enter `none|staging|trained` and has no staging budget.
|
|
@@ -18619,6 +18645,21 @@ var TrackFlagFields = {
|
|
|
18619
18645
|
markForTrain: boolean().optional(),
|
|
18620
18646
|
/** Operator marked this track for diagnostic attention. */
|
|
18621
18647
|
debug: boolean().optional(),
|
|
18648
|
+
/**
|
|
18649
|
+
* What the operator wants CHECKED on this track, in their own words.
|
|
18650
|
+
*
|
|
18651
|
+
* The flag alone says "look at this" and nothing about what for; a debug set
|
|
18652
|
+
* reviewed hours later is a list of tracks with no question attached. Bound
|
|
18653
|
+
* to `debug` on the WRITE side — the body clears it when `debug` goes off,
|
|
18654
|
+
* and refuses it on a track whose debug is off — so a note can never outlive
|
|
18655
|
+
* the attention it belongs to.
|
|
18656
|
+
*
|
|
18657
|
+
* `''` is a real value ("marked, nothing to add"); the ABSENT key means
|
|
18658
|
+
* "leave whatever is stored alone", which is what lets a surface turn debug
|
|
18659
|
+
* on without a note (a cancelled prompt) and what lets it edit the note
|
|
18660
|
+
* without touching the flag.
|
|
18661
|
+
*/
|
|
18662
|
+
debugNote: string().max(500).optional(),
|
|
18622
18663
|
/** Operator favourited this track. Pins it against pruning. */
|
|
18623
18664
|
favourited: boolean().optional()
|
|
18624
18665
|
};
|
|
@@ -18645,6 +18686,12 @@ var TrackFlagsSchema = object({
|
|
|
18645
18686
|
trackId: string(),
|
|
18646
18687
|
markForTrain: boolean(),
|
|
18647
18688
|
debug: boolean(),
|
|
18689
|
+
/** The note as it STANDS after the write — never absent here (a track with no
|
|
18690
|
+
* note reports `''`), for the same reason the booleans are required: a
|
|
18691
|
+
* surface that has just written must be able to render the note it now owns
|
|
18692
|
+
* without a re-fetch, and an absent key would read as "unchanged" on a
|
|
18693
|
+
* screen that has no previous value to keep. */
|
|
18694
|
+
debugNote: string(),
|
|
18648
18695
|
favourited: boolean(),
|
|
18649
18696
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
18650
18697
|
* 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-ai",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.66",
|
|
4
4
|
"description": "AI addon for CamStack — the `llm` collection provider (cloud, LAN, and camstack-managed local llama.cpp profiles) plus the per-node `llm-runtime` managed executor.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|