@camstack/addon-ai 0.4.70 → 0.4.72

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
@@ -12,7 +12,7 @@ let _camstack_system_addon_utils = require("@camstack/system/addon-utils");
12
12
  let node_fs_promises = require("node:fs/promises");
13
13
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
14
14
  let node_child_process = require("node:child_process");
15
- //#region ../types/dist/event-category-BZL-fdNj.mjs
15
+ //#region ../types/dist/event-category-zAv7pMUz.mjs
16
16
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
17
17
  EventCategory["SystemBoot"] = "system.boot";
18
18
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -384,6 +384,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
384
384
  */
385
385
  EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
386
386
  /**
387
+ * Cap event fired by every device that registers the `network-link`
388
+ * capability. Mirrors the cap definition's `onStatusChanged`. Carries
389
+ * `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
390
+ * reading that moved.
391
+ */
392
+ EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
393
+ /**
387
394
  * Emitted by the battery cap provider WHEN `wakeForStream` enters the
388
395
  * "wake in progress" window — between the Baichuan wake-up issue and
389
396
  * the camera's first dialed-back RTP packet. The stream-broker
@@ -23478,6 +23485,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
23478
23485
  deviceId: number$1(),
23479
23486
  status: BatteryStatusSchema
23480
23487
  });
23488
+ /**
23489
+ * Network-link snapshot. Same shape for every provider (a Reolink wifi
23490
+ * camera, a Home Assistant device with a signal-strength sensor, a Tapo
23491
+ * plug): one slice under `device.runtimeState['network-link']`, one badge,
23492
+ * one Home Assistant projection.
23493
+ */
23494
+ var NetworkLinkStatusSchema = object({
23495
+ /** The link the device is on. `'unknown'` = not read yet, not "no link". */
23496
+ type: _enum([
23497
+ "wifi",
23498
+ "ethernet",
23499
+ "cellular",
23500
+ "unknown"
23501
+ ]),
23502
+ /**
23503
+ * Link quality, 0..100 inclusive, normalised by the provider from whatever
23504
+ * the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
23505
+ * KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
23506
+ * one whose reading has not landed must not be drawn at 0 %. Consumers
23507
+ * SKIP a null rather than coerce it.
23508
+ */
23509
+ signalPercent: number$1().min(0).max(100).nullable(),
23510
+ /** Raw received signal strength in dBm, when the firmware reports one. */
23511
+ rssiDbm: number$1().optional(),
23512
+ /** Network name of a wireless link, when the firmware reports it. */
23513
+ ssid: string().optional(),
23514
+ /** Ms epoch of the last observation. Lets consumers reason about freshness. */
23515
+ lastUpdated: number$1()
23516
+ });
23517
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
23518
+ deviceId: number$1(),
23519
+ status: NetworkLinkStatusSchema
23520
+ });
23481
23521
  object({
23482
23522
  on: boolean(),
23483
23523
  /** Ms epoch of the last transition. 0 if never observed. */
package/dist/addon.mjs CHANGED
@@ -39,7 +39,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
39
39
  }) : target, mod));
40
40
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
41
41
  //#endregion
42
- //#region ../types/dist/event-category-BZL-fdNj.mjs
42
+ //#region ../types/dist/event-category-zAv7pMUz.mjs
43
43
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
44
44
  EventCategory["SystemBoot"] = "system.boot";
45
45
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -411,6 +411,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
411
411
  */
412
412
  EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
413
413
  /**
414
+ * Cap event fired by every device that registers the `network-link`
415
+ * capability. Mirrors the cap definition's `onStatusChanged`. Carries
416
+ * `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
417
+ * reading that moved.
418
+ */
419
+ EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
420
+ /**
414
421
  * Emitted by the battery cap provider WHEN `wakeForStream` enters the
415
422
  * "wake in progress" window — between the Baichuan wake-up issue and
416
423
  * the camera's first dialed-back RTP packet. The stream-broker
@@ -23505,6 +23512,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
23505
23512
  deviceId: number$1(),
23506
23513
  status: BatteryStatusSchema
23507
23514
  });
23515
+ /**
23516
+ * Network-link snapshot. Same shape for every provider (a Reolink wifi
23517
+ * camera, a Home Assistant device with a signal-strength sensor, a Tapo
23518
+ * plug): one slice under `device.runtimeState['network-link']`, one badge,
23519
+ * one Home Assistant projection.
23520
+ */
23521
+ var NetworkLinkStatusSchema = object({
23522
+ /** The link the device is on. `'unknown'` = not read yet, not "no link". */
23523
+ type: _enum([
23524
+ "wifi",
23525
+ "ethernet",
23526
+ "cellular",
23527
+ "unknown"
23528
+ ]),
23529
+ /**
23530
+ * Link quality, 0..100 inclusive, normalised by the provider from whatever
23531
+ * the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
23532
+ * KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
23533
+ * one whose reading has not landed must not be drawn at 0 %. Consumers
23534
+ * SKIP a null rather than coerce it.
23535
+ */
23536
+ signalPercent: number$1().min(0).max(100).nullable(),
23537
+ /** Raw received signal strength in dBm, when the firmware reports one. */
23538
+ rssiDbm: number$1().optional(),
23539
+ /** Network name of a wireless link, when the firmware reports it. */
23540
+ ssid: string().optional(),
23541
+ /** Ms epoch of the last observation. Lets consumers reason about freshness. */
23542
+ lastUpdated: number$1()
23543
+ });
23544
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
23545
+ deviceId: number$1(),
23546
+ status: NetworkLinkStatusSchema
23547
+ });
23508
23548
  object({
23509
23549
  on: boolean(),
23510
23550
  /** Ms epoch of the last transition. 0 if never observed. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-ai",
3
- "version": "0.4.70",
3
+ "version": "0.4.72",
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",