@camstack/addon-ai 0.4.64 → 0.4.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
@@ -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
@@ -18582,6 +18600,9 @@ var RetrainStatusSchema = _enum([
18582
18600
  *
18583
18601
  * `debug` does NOT pin; it is attention, not durability.
18584
18602
  *
18603
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18604
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18605
+ *
18585
18606
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18586
18607
  * A favourited track is skipped by retention the same way `staging` is, but
18587
18608
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18592,6 +18613,21 @@ var TrackFlagFields = {
18592
18613
  markForTrain: boolean().optional(),
18593
18614
  /** Operator marked this track for diagnostic attention. */
18594
18615
  debug: boolean().optional(),
18616
+ /**
18617
+ * What the operator wants CHECKED on this track, in their own words.
18618
+ *
18619
+ * The flag alone says "look at this" and nothing about what for; a debug set
18620
+ * reviewed hours later is a list of tracks with no question attached. Bound
18621
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18622
+ * and refuses it on a track whose debug is off — so a note can never outlive
18623
+ * the attention it belongs to.
18624
+ *
18625
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18626
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18627
+ * on without a note (a cancelled prompt) and what lets it edit the note
18628
+ * without touching the flag.
18629
+ */
18630
+ debugNote: string().max(500).optional(),
18595
18631
  /** Operator favourited this track. Pins it against pruning. */
18596
18632
  favourited: boolean().optional()
18597
18633
  };
@@ -18618,6 +18654,12 @@ var TrackFlagsSchema = object({
18618
18654
  trackId: string(),
18619
18655
  markForTrain: boolean(),
18620
18656
  debug: boolean(),
18657
+ /** The note as it STANDS after the write — never absent here (a track with no
18658
+ * note reports `''`), for the same reason the booleans are required: a
18659
+ * surface that has just written must be able to render the note it now owns
18660
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18661
+ * screen that has no previous value to keep. */
18662
+ debugNote: string(),
18621
18663
  favourited: boolean(),
18622
18664
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18623
18665
  * 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
@@ -18609,6 +18627,9 @@ var RetrainStatusSchema = _enum([
18609
18627
  *
18610
18628
  * `debug` does NOT pin; it is attention, not durability.
18611
18629
  *
18630
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18631
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18632
+ *
18612
18633
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18613
18634
  * A favourited track is skipped by retention the same way `staging` is, but
18614
18635
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18619,6 +18640,21 @@ var TrackFlagFields = {
18619
18640
  markForTrain: boolean().optional(),
18620
18641
  /** Operator marked this track for diagnostic attention. */
18621
18642
  debug: boolean().optional(),
18643
+ /**
18644
+ * What the operator wants CHECKED on this track, in their own words.
18645
+ *
18646
+ * The flag alone says "look at this" and nothing about what for; a debug set
18647
+ * reviewed hours later is a list of tracks with no question attached. Bound
18648
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18649
+ * and refuses it on a track whose debug is off — so a note can never outlive
18650
+ * the attention it belongs to.
18651
+ *
18652
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18653
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18654
+ * on without a note (a cancelled prompt) and what lets it edit the note
18655
+ * without touching the flag.
18656
+ */
18657
+ debugNote: string().max(500).optional(),
18622
18658
  /** Operator favourited this track. Pins it against pruning. */
18623
18659
  favourited: boolean().optional()
18624
18660
  };
@@ -18645,6 +18681,12 @@ var TrackFlagsSchema = object({
18645
18681
  trackId: string(),
18646
18682
  markForTrain: boolean(),
18647
18683
  debug: boolean(),
18684
+ /** The note as it STANDS after the write — never absent here (a track with no
18685
+ * note reports `''`), for the same reason the booleans are required: a
18686
+ * surface that has just written must be able to render the note it now owns
18687
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18688
+ * screen that has no previous value to keep. */
18689
+ debugNote: string(),
18648
18690
  favourited: boolean(),
18649
18691
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18650
18692
  * 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.64",
3
+ "version": "0.4.65",
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",