@camstack/addon-ai 0.4.11 → 0.4.12

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
@@ -24509,9 +24509,21 @@ var RecordingLocationUsageSchema = object({
24509
24509
  * previously rendered as two identical "disks" with a nonsensical used
24510
24510
  * split — hydrate attribution across aliases is arbitrary by nature. */
24511
24511
  locationIds: array(string()).optional(),
24512
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24512
+ /**
24513
+ * Filesystem root of the physical volume this row accounts — the only
24514
+ * operator-legible identity when a location has no `displayName` yet, and
24515
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24516
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24517
+ * it, and this schema must keep validating that older provider's payload.
24518
+ */
24519
+ root: string().optional(),
24520
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24521
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24522
+ * also holds everything that is not recordings. Volume fill is
24523
+ * `(totalBytes - availableBytes) / totalBytes`. */
24513
24524
  usedBytes: number$1(),
24514
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24525
+ /** Free bytes on the location's volume; null when capacity is unknown
24526
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24515
24527
  availableBytes: number$1().nullable(),
24516
24528
  /** Total bytes of the location's volume; null when unknown. */
24517
24529
  totalBytes: number$1().nullable()
@@ -24523,7 +24535,15 @@ var RecordingStorageUsageSchema = object({
24523
24535
  nodeId: string(),
24524
24536
  totalUsedBytes: number$1(),
24525
24537
  devices: array(RecordingDeviceUsageSchema),
24526
- locations: array(RecordingLocationUsageSchema)
24538
+ /**
24539
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24540
+ * of the payload without it: the hub serves this method through a BAKED
24541
+ * router, so a hub whose framework train predates a change to this array
24542
+ * strips it out of an answer a newer recorder happily produced. A UI that
24543
+ * dereferences it unconditionally crashes the whole Storage page over a
24544
+ * missing disk bar.
24545
+ */
24546
+ locations: array(RecordingLocationUsageSchema).optional()
24527
24547
  });
24528
24548
  /**
24529
24549
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33639,8 +33659,14 @@ Object.freeze({
33639
33659
  "network-access": "ingress",
33640
33660
  "smtp-provider": "email"
33641
33661
  });
33662
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33663
+ var NC_AUDIO_DEFAULTS = {
33664
+ hitPercent: 60,
33665
+ samplingSeconds: 10
33666
+ };
33642
33667
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33643
33668
  new Set(["devices", "classes"]);
33669
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33644
33670
  /**
33645
33671
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33646
33672
  *
package/dist/addon.mjs CHANGED
@@ -24535,9 +24535,21 @@ var RecordingLocationUsageSchema = object({
24535
24535
  * previously rendered as two identical "disks" with a nonsensical used
24536
24536
  * split — hydrate attribution across aliases is arbitrary by nature. */
24537
24537
  locationIds: array(string()).optional(),
24538
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
24538
+ /**
24539
+ * Filesystem root of the physical volume this row accounts — the only
24540
+ * operator-legible identity when a location has no `displayName` yet, and
24541
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
24542
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
24543
+ * it, and this schema must keep validating that older provider's payload.
24544
+ */
24545
+ root: string().optional(),
24546
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
24547
+ * the footage's SHARE of the volume, not how full the volume is — the disk
24548
+ * also holds everything that is not recordings. Volume fill is
24549
+ * `(totalBytes - availableBytes) / totalBytes`. */
24539
24550
  usedBytes: number$1(),
24540
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
24551
+ /** Free bytes on the location's volume; null when capacity is unknown
24552
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
24541
24553
  availableBytes: number$1().nullable(),
24542
24554
  /** Total bytes of the location's volume; null when unknown. */
24543
24555
  totalBytes: number$1().nullable()
@@ -24549,7 +24561,15 @@ var RecordingStorageUsageSchema = object({
24549
24561
  nodeId: string(),
24550
24562
  totalUsedBytes: number$1(),
24551
24563
  devices: array(RecordingDeviceUsageSchema),
24552
- locations: array(RecordingLocationUsageSchema)
24564
+ /**
24565
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
24566
+ * of the payload without it: the hub serves this method through a BAKED
24567
+ * router, so a hub whose framework train predates a change to this array
24568
+ * strips it out of an answer a newer recorder happily produced. A UI that
24569
+ * dereferences it unconditionally crashes the whole Storage page over a
24570
+ * missing disk bar.
24571
+ */
24572
+ locations: array(RecordingLocationUsageSchema).optional()
24553
24573
  });
24554
24574
  /**
24555
24575
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -33665,8 +33685,14 @@ Object.freeze({
33665
33685
  "network-access": "ingress",
33666
33686
  "smtp-provider": "email"
33667
33687
  });
33688
+ /** Schema defaults — an untouched sub-field must author exactly these. */
33689
+ var NC_AUDIO_DEFAULTS = {
33690
+ hitPercent: 60,
33691
+ samplingSeconds: 10
33692
+ };
33668
33693
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
33669
33694
  new Set(["devices", "classes"]);
33695
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
33670
33696
  /**
33671
33697
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
33672
33698
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-ai",
3
- "version": "0.4.11",
3
+ "version": "0.4.12",
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",