@camstack/system 1.2.263 → 1.2.265

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.
Files changed (67) hide show
  1. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  2. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  3. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/alerts/alerts.addon.js +1 -1
  6. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  7. package/dist/builtins/autotrack/index.js +1 -1
  8. package/dist/builtins/autotrack/index.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/camera-grid/addon.d.ts +20 -0
  12. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +32 -0
  13. package/dist/builtins/camera-grid/grid-activity.d.ts +50 -0
  14. package/dist/builtins/camera-grid/grid-camera-device.d.ts +11 -1
  15. package/dist/builtins/camera-grid/grid-canvas.d.ts +83 -0
  16. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +3 -0
  17. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +19 -0
  18. package/dist/builtins/camera-grid/grid-compositor.d.ts +36 -0
  19. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +31 -0
  20. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +38 -0
  21. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +31 -0
  22. package/dist/builtins/camera-grid/index.js +1199 -232
  23. package/dist/builtins/camera-grid/index.mjs +1199 -232
  24. package/dist/builtins/camera-grid/silence-analysis.d.ts +7 -0
  25. package/dist/builtins/console-logging/index.js +1 -1
  26. package/dist/builtins/console-logging/index.mjs +1 -1
  27. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  28. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  29. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  30. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  31. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  32. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  33. package/dist/builtins/hub-forwarder/index.js +1 -1
  34. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  35. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  36. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  37. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  38. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  39. package/dist/builtins/local-network/local-network.addon.js +1 -1
  40. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  41. package/dist/builtins/loki-logging/index.js +1 -1
  42. package/dist/builtins/loki-logging/index.mjs +1 -1
  43. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  44. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  45. package/dist/builtins/platform-probe/index.js +1 -1
  46. package/dist/builtins/platform-probe/index.mjs +1 -1
  47. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  48. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  49. package/dist/builtins/snapshot/index.js +1 -1
  50. package/dist/builtins/snapshot/index.mjs +1 -1
  51. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  52. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  53. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  54. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  55. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  56. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  57. package/dist/builtins/system-config/system-config.addon.js +1 -1
  58. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  59. package/dist/builtins/winston-logging/index.js +1 -1
  60. package/dist/builtins/winston-logging/index.mjs +1 -1
  61. package/dist/{dist-6hiXbrNY.js → dist-BbPssgI6.js} +85 -15
  62. package/dist/{dist-CQ7ItBIG.mjs → dist-Ck0rjYOQ.mjs} +72 -8
  63. package/dist/index.js +1 -1
  64. package/dist/index.mjs +1 -1
  65. package/dist/{retired-settings-keys-CCXmaFTK.mjs → retired-settings-keys-BZpDuJVh.mjs} +1 -1
  66. package/dist/{retired-settings-keys-AmmGrCp1.js → retired-settings-keys-Dg_69cOY.js} +1 -1
  67. package/package.json +4 -1
@@ -1,4 +1,11 @@
1
1
  import { AddonApi, IScopedLogger } from '@camstack/types';
2
+ /**
3
+ * The list lives in `@camstack/types` now, and this is an alias rather than a
4
+ * second copy. There WERE two — this one and the Terminal addon's — and they
5
+ * had drifted: neither named `pipeline-analytics`, the one cap with no gate of
6
+ * its own, which is what a grid forwarding its sources' motion would have used
7
+ * to write a duplicate motion episode per event.
8
+ */
2
9
  export declare const GRID_SILENCED_CAP_NAMES: readonly string[];
3
10
  export interface SilenceAnalysisDeps {
4
11
  readonly api: AddonApi;
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Ct as logDestinationCapability, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/console-logging/console-destination.ts
4
4
  var LEVEL_RANK = {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-6hiXbrNY.js");
3
+ const require_dist = require("../../dist-BbPssgI6.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,4 +1,4 @@
1
- import { G as coreBlockAddonId, K as coreBlockIdFromAddonId, d as CoreBlockSchema, in as errMsg, l as CORE_BLOCKS_ADDON_ID, m as DeclaredDevices, on as BaseAddon, q as coreBlocksCapability, u as CORE_BLOCK_ADDON_PREFIX } from "../../dist-CQ7ItBIG.mjs";
1
+ import { G as coreBlockAddonId, K as coreBlockIdFromAddonId, an as errMsg, c as CORE_BLOCKS_ADDON_ID, l as CORE_BLOCK_ADDON_PREFIX, p as DeclaredDevices, q as coreBlocksCapability, sn as BaseAddon, u as CoreBlockSchema } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import * as fs from "node:fs/promises";
4
4
  import * as path$1 from "node:path";
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-AmmGrCp1.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-Dg_69cOY.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
10
10
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -1,5 +1,5 @@
1
- import { $ as deviceStateCapability, At as normalizeUnit, D as STREAM_PROFILE_META, H as buildStreamParamsConfigSchema, Kt as siteZoneKey, Mn as sleep$1, Mt as parseStreamParamsFormPatch, Nn as EventCategory, Q as deviceManagerCapability, Rt as resolveContainerPrimaryChild, St as locationIconKey, Vt as runtimeStatePolicyFor, c as CAP_NAMES_WITH_STATUS, dn as DeviceRole, et as deviceStatusCapability, fn as DeviceType, h as DeviceStatusSchema, hn as WELL_KNOWN_TAB_MAP, in as errMsg, it as enumerateSchemaFields, on as BaseAddon, rt as enumerateItemArrayFields, s as CAMERA_SWITCH_ORDER, t as ALL_CAPABILITY_DEFINITIONS, un as DeviceFeature, wn as isDeviceConfigCap, y as LocationIconIdSchema } from "../../dist-CQ7ItBIG.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-CCXmaFTK.mjs";
1
+ import { $ as deviceStateCapability, D as STREAM_PROFILE_META, H as buildStreamParamsConfigSchema, Ht as runtimeStatePolicyFor, Nn as sleep$1, Nt as parseStreamParamsFormPatch, Pn as EventCategory, Q as deviceManagerCapability, St as locationIconKey, Tn as isDeviceConfigCap, an as errMsg, dn as DeviceFeature, et as deviceStatusCapability, fn as DeviceRole, gn as WELL_KNOWN_TAB_MAP, it as enumerateSchemaFields, jt as normalizeUnit, m as DeviceStatusSchema, o as CAMERA_SWITCH_ORDER, pn as DeviceType, qt as siteZoneKey, rt as enumerateItemArrayFields, s as CAP_NAMES_WITH_STATUS, sn as BaseAddon, t as ALL_CAPABILITY_DEFINITIONS, v as LocationIconIdSchema, zt as resolveContainerPrimaryChild } from "../../dist-Ck0rjYOQ.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BZpDuJVh.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
5
5
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { B as bareAddonId, Nn as EventCategory, T as SOURCE_DEVICE_TYPES, at as evaluateSensorEdge, fn as DeviceType, gt as isSourceCap, ht as isSameAddonId, in as errMsg, on as BaseAddon, tt as doorbellCapability, w as SOURCE_CAPS, yn as createEvent } from "../../dist-CQ7ItBIG.mjs";
1
+ import { B as bareAddonId, Pn as EventCategory, T as SOURCE_DEVICE_TYPES, an as errMsg, at as evaluateSensorEdge, bn as createEvent, gt as isSourceCap, ht as isSameAddonId, pn as DeviceType, sn as BaseAddon, tt as doorbellCapability, w as SOURCE_CAPS } from "../../dist-Ck0rjYOQ.mjs";
2
2
  //#region src/builtins/doorbell/trigger-engine.ts
3
3
  /**
4
4
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Ct as logDestinationCapability, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
4
4
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-6hiXbrNY.js");
3
+ const require_dist = require("../../dist-BbPssgI6.js");
4
4
  //#region src/builtins/liveness-monitor/liveness-checks.ts
5
5
  var NO_DEVICES = "liveness:no-devices";
6
6
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -1,4 +1,4 @@
1
- import { C as RecordingStatusSchema, Nn as EventCategory, in as errMsg, on as BaseAddon, yn as createEvent } from "../../dist-CQ7ItBIG.mjs";
1
+ import { C as RecordingStatusSchema, Pn as EventCategory, an as errMsg, bn as createEvent, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  //#region src/builtins/liveness-monitor/liveness-checks.ts
3
3
  var NO_DEVICES = "liveness:no-devices";
4
4
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { N as UserRecordSchema, O as ScopedTokenSchema, R as authProviderCapability, en as userManagementCapability, i as ApiKeyRecordSchema, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
2
+ import { N as UserRecordSchema, O as ScopedTokenSchema, R as authProviderCapability, r as ApiKeyRecordSchema, sn as BaseAddon, tn as userManagementCapability } from "../../dist-Ck0rjYOQ.mjs";
3
3
  import * as crypto$2 from "node:crypto";
4
4
  import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
5
5
  import nodeCrypto from "crypto";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-6hiXbrNY.js");
3
+ const require_dist = require("../../dist-BbPssgI6.js");
4
4
  const require_tls = require("../../tls-BFs4PzoW.js");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Nn as EventCategory, on as BaseAddon, xt as localNetworkCapability } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Pn as EventCategory, sn as BaseAddon, xt as localNetworkCapability } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, i as writeExtraSans, l as reissueTlsLeaf, n as readTlsAccessStatus, o as validateUploadedTls, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, y as applyLanHttp } from "../../tls-2xbgg78V.mjs";
3
3
  import { mkdir, writeFile } from "node:fs/promises";
4
4
  import { join } from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  //#region src/builtins/loki-logging/loki-payload.ts
8
8
  /**
9
9
  * Loki rejects a label name that is not a valid Prometheus label
@@ -1,4 +1,4 @@
1
- import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Ct as logDestinationCapability, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  //#region src/builtins/loki-logging/loki-payload.ts
3
3
  /**
4
4
  * Loki rejects a label name that is not a valid Prometheus label
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { It as reducePoints, Lt as resolveBucketMs, Nn as EventCategory, Ot as metricsProviderCapability, in as errMsg, lt as foldSnapshotByFunction, on as BaseAddon, yn as createEvent } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Lt as reducePoints, Ot as metricsProviderCapability, Pn as EventCategory, Rt as resolveBucketMs, an as errMsg, bn as createEvent, lt as foldSnapshotByFunction, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { access, readFile, readdir } from "node:fs/promises";
3
3
  import * as fs from "node:fs";
4
4
  import { constants, readFileSync } from "node:fs";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_child_process = require("node:child_process");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Nn as EventCategory, Nt as platformProbeCapability, Wt as scoreRuntimes, in as errMsg, nt as enumerateInferenceDevices, on as BaseAddon, xn as emitReadiness } from "../../dist-CQ7ItBIG.mjs";
2
+ import { Gt as scoreRuntimes, Pn as EventCategory, Pt as platformProbeCapability, Sn as emitReadiness, an as errMsg, nt as enumerateInferenceDevices, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
3
3
  import * as fs from "node:fs";
4
4
  import { execFile } from "node:child_process";
5
5
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
8
8
  /**
9
9
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -1,4 +1,4 @@
1
- import { Nn as EventCategory, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Pn as EventCategory, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
3
3
  /**
4
4
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-Cqs7GkOV.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { $t as streamQualityLabel, B as bareAddonId, En as nodePin, Nn as EventCategory, V as batteryCapability, Z as deriveBatteryPresence, fn as DeviceType, in as errMsg, o as BatteryStatusSchema, on as BaseAddon, qt as snapshotCapability, un as DeviceFeature } from "../../dist-CQ7ItBIG.mjs";
1
+ import { B as bareAddonId, Dn as nodePin, Jt as snapshotCapability, Pn as EventCategory, V as batteryCapability, Z as deriveBatteryPresence, a as BatteryStatusSchema, an as errMsg, dn as DeviceFeature, en as streamQualityLabel, pn as DeviceType, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CZPvteq2.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Zt as storageProviderCapability, ct as filesystemBrowseCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Qt as storageProviderCapability, ct as filesystemBrowseCapability, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { A as StorageLocationModeSchema, Dn as parseJsonObject, Dt as mayWriteToLocation, Et as mayReadLocation, Gt as settingsStoreCapability, Jt as storageCapability, M as StorageMigrationJobSchema, Nn as EventCategory, W as collectSecretConfigKeys, Yt as storageMigrationCapability, j as StorageLocationTypeSchema, k as StorageCleanupJobSchema, kt as modeMayWrite, on as BaseAddon, ot as evictionPolicyOfLocation, pt as isLocationEnabled, rn as withLocationMode, ut as gbToBytes, v as LegacyStorageLocationDefaultSchema, x as REDACTED_SECRET, yt as legacyModeOf, zt as resolveLocationMode } from "../../dist-CQ7ItBIG.mjs";
1
+ import { A as StorageLocationModeSchema, Bt as resolveLocationMode, Dt as mayWriteToLocation, Et as mayReadLocation, Kt as settingsStoreCapability, M as StorageMigrationJobSchema, On as parseJsonObject, Pn as EventCategory, W as collectSecretConfigKeys, Xt as storageMigrationCapability, Yt as storageCapability, _ as LegacyStorageLocationDefaultSchema, in as withLocationMode, j as StorageLocationTypeSchema, k as StorageCleanupJobSchema, kt as modeMayWrite, ot as evictionPolicyOfLocation, pt as isLocationEnabled, sn as BaseAddon, ut as gbToBytes, x as REDACTED_SECRET, yt as legacyModeOf } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-BdT320dq.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  //#region src/builtins/system-config/system-config.addon.ts
8
8
  /**
9
9
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -1,4 +1,4 @@
1
- import { Cn as hydrateSchema, in as errMsg, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
1
+ import { an as errMsg, sn as BaseAddon, wn as hydrateSchema } from "../../dist-Ck0rjYOQ.mjs";
2
2
  //#region src/builtins/system-config/system-config.addon.ts
3
3
  /**
4
4
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-6hiXbrNY.js");
6
+ const require_dist = require("../../dist-BbPssgI6.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
1
+ import { Ct as logDestinationCapability, sn as BaseAddon } from "../../dist-Ck0rjYOQ.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -3404,7 +3404,7 @@ function sleep(ms) {
3404
3404
  return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
3405
3405
  }
3406
3406
  //#endregion
3407
- //#region ../types/dist/canonical-hash-DI7tT-zZ.mjs
3407
+ //#region ../types/dist/canonical-hash-C5pB-QV1.mjs
3408
3408
  var AUDIO_ENCODER_BY_CODEC = {
3409
3409
  opus: "libopus",
3410
3410
  aac: "aac",
@@ -3468,6 +3468,10 @@ function buildInputArgs(input, decodeHwAccel) {
3468
3468
  if (input.useWallclockTimestamps === true) args.push("-use_wallclock_as_timestamps", "1");
3469
3469
  if (input.fflags?.length) for (const flag of input.fflags) args.push("-fflags", flag);
3470
3470
  if (input.rtspTransport) args.push("-rtsp_transport", input.rtspTransport);
3471
+ if (input.rawVideo !== void 0) {
3472
+ const raw = input.rawVideo;
3473
+ args.push("-f", "rawvideo", "-pix_fmt", raw.pixelFormat, "-video_size", `${String(raw.width)}x${String(raw.height)}`, "-framerate", String(raw.framerate));
3474
+ }
3471
3475
  args.push("-i", input.url);
3472
3476
  return args;
3473
3477
  }
@@ -3530,6 +3534,17 @@ function buildRateControlArgs(video) {
3530
3534
  }
3531
3535
  /** The whole video block (`-vf` … `-c:v` … knobs), after `-i`. */
3532
3536
  function buildVideoArgs(video, outputArgs, filterGraph) {
3537
+ if (video.kind === "raw") {
3538
+ if (filterGraph && video.filter !== void 0) throw new Error("FfmpegInvocation: video.filter cannot be combined with a filter graph — fold the filter into the graph");
3539
+ return [
3540
+ ...video.filter !== void 0 ? ["-vf", video.filter] : [],
3541
+ "-c:v",
3542
+ "rawvideo",
3543
+ "-pix_fmt",
3544
+ video.pixelFormat,
3545
+ ...video.fps !== void 0 ? ["-r", String(video.fps)] : []
3546
+ ];
3547
+ }
3533
3548
  if (video.kind === "copy") {
3534
3549
  if (filterGraph) throw new Error("FfmpegInvocation: a filter graph produces a NEW picture, so video.kind must be `encode`");
3535
3550
  return [
@@ -4284,13 +4299,37 @@ var CameraSwitchGroupSchema = zod.z.object({
4284
4299
  fetchedAt: zod.z.number()
4285
4300
  });
4286
4301
  /**
4287
- * The wrapper capability each wrapper-backed switch controls. Named constants
4288
- * because the same strings appear in `legacy-migrations.ts`, in
4289
- * `isCapActiveForDevice` call sites and in the fake harness — a typo in any of
4290
- * them is a switch that silently writes a binding nobody reads.
4302
+ * Every analyser a camera CamStack BUILDS is created with switched off.
4303
+ *
4304
+ * A grid and a Terminal camera are `DeviceType.Camera`, so every wrapper that
4305
+ * declares `defaultActive: true` for a camera binds to them the instant they
4306
+ * exist — the whole analysis family included. There is nothing there to
4307
+ * analyse: a grid's subjects are already counted on the cameras it composes (a
4308
+ * person in the bottom-right cell is a person on THAT camera, not on the grid),
4309
+ * and a Terminal camera shows a shell.
4310
+ *
4311
+ * ONE list, in the package both already depend on, because there were two and
4312
+ * they had already drifted: the Terminal's and the grid's each named three caps
4313
+ * and neither named `pipeline-analytics` — which has no gate of its own except
4314
+ * this binding, so a grid that forwards its sources' motion (so the viewer can
4315
+ * light its tile) would open a motion EPISODE per forwarded event, duplicating
4316
+ * the rows those sources already write.
4317
+ *
4318
+ * `motion-detection` sits first deliberately: it is the one that holds the
4319
+ * decode session open, so its absence is the difference between a derived
4320
+ * camera costing a composition and costing a full decode pipeline.
4321
+ *
4322
+ * Applied ONLY at creation. An operator who deliberately turns analysis back on
4323
+ * for a grid must win, and a reconcile that re-asserted this every pass would
4324
+ * silently overrule them once a minute.
4291
4325
  */
4292
- var DETECTION_PIPELINE_CAP_NAME = "detection-pipeline";
4293
- var AUDIO_ANALYSIS_CAP_NAME = "audio-analysis";
4326
+ var DERIVED_CAMERA_SILENCED_CAP_NAMES = [
4327
+ "motion-detection",
4328
+ "detection-pipeline",
4329
+ "audio-analysis",
4330
+ "pipeline-analytics",
4331
+ "scene-monitor"
4332
+ ];
4294
4333
  /**
4295
4334
  * The value a redacted secret is replaced with on every read surface.
4296
4335
  *
@@ -30864,6 +30903,31 @@ authKey: zod.z.string().optional() }), zod.z.object({
30864
30903
  }), { kind: "mutation" })
30865
30904
  }
30866
30905
  };
30906
+ /**
30907
+ * Hardware / firmware motion sensor cap — binary detected state plus
30908
+ * a timestamp of the last observation. Distinct from
30909
+ * `motion-detection.cap.ts` which owns the LOCAL ML motion pipeline;
30910
+ * `motion` is the lightweight readout from on-camera motion (Reolink
30911
+ * `GetMdState`, Baichuan push `type: motion`, ONVIF analytics).
30912
+ *
30913
+ * Native-motion providers also fan out to `detection.camera-native`
30914
+ * with `source: 'onboard'` so cross-cutting system services
30915
+ * (alert-center, advanced-notifier) can subscribe once and receive
30916
+ * motion from every camera.
30917
+ */
30918
+ /**
30919
+ * How long after a camera's last rising edge `pipeline-analytics` closes the
30920
+ * motion EPISODE row it kept open for it (D475) — "il delay della cap", in
30921
+ * the operator's words. One authority for the whole system: every provider
30922
+ * that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
30923
+ * constant while `detected: true` (never its own number — Hikvision used to
30924
+ * seed its internal 3 s inactivity timer here, which is a different clock for
30925
+ * a different purpose), and `MotionEpisodeTracker` imports it directly rather
30926
+ * than reading the live cap value on the hot path. A `Sensor` device (HA
30927
+ * binary sensor, Homematic) gets a genuine push both ways and has no episode
30928
+ * to close on a timer, so it writes `null`, never this constant.
30929
+ */
30930
+ var MOTION_CLOSE_AFTER_MS = 15e3;
30867
30931
  var MotionStatusSchema = zod.z.object({
30868
30932
  detected: zod.z.boolean(),
30869
30933
  /** Ms epoch of the last detected-true observation. Null if never detected. */
@@ -48763,12 +48827,6 @@ Object.defineProperty(exports, "ALL_CAPABILITY_DEFINITIONS", {
48763
48827
  return ALL_CAPABILITY_DEFINITIONS;
48764
48828
  }
48765
48829
  });
48766
- Object.defineProperty(exports, "AUDIO_ANALYSIS_CAP_NAME", {
48767
- enumerable: true,
48768
- get: function() {
48769
- return AUDIO_ANALYSIS_CAP_NAME;
48770
- }
48771
- });
48772
48830
  Object.defineProperty(exports, "AlertSchema", {
48773
48831
  enumerable: true,
48774
48832
  get: function() {
@@ -48841,10 +48899,10 @@ Object.defineProperty(exports, "DEFAULT_FIRST_SIGHTING_FRESHNESS_MS", {
48841
48899
  return DEFAULT_FIRST_SIGHTING_FRESHNESS_MS;
48842
48900
  }
48843
48901
  });
48844
- Object.defineProperty(exports, "DETECTION_PIPELINE_CAP_NAME", {
48902
+ Object.defineProperty(exports, "DERIVED_CAMERA_SILENCED_CAP_NAMES", {
48845
48903
  enumerable: true,
48846
48904
  get: function() {
48847
- return DETECTION_PIPELINE_CAP_NAME;
48905
+ return DERIVED_CAMERA_SILENCED_CAP_NAMES;
48848
48906
  }
48849
48907
  });
48850
48908
  Object.defineProperty(exports, "DEVICE_SETTINGS_CONTRIBUTION_METHODS", {
@@ -48925,6 +48983,12 @@ Object.defineProperty(exports, "METHOD_ACCESS_MAP", {
48925
48983
  return METHOD_ACCESS_MAP;
48926
48984
  }
48927
48985
  });
48986
+ Object.defineProperty(exports, "MOTION_CLOSE_AFTER_MS", {
48987
+ enumerable: true,
48988
+ get: function() {
48989
+ return MOTION_CLOSE_AFTER_MS;
48990
+ }
48991
+ });
48928
48992
  Object.defineProperty(exports, "REDACTED_SECRET", {
48929
48993
  enumerable: true,
48930
48994
  get: function() {
@@ -49393,6 +49457,12 @@ Object.defineProperty(exports, "modeMayWrite", {
49393
49457
  return modeMayWrite;
49394
49458
  }
49395
49459
  });
49460
+ Object.defineProperty(exports, "motionCapability", {
49461
+ enumerable: true,
49462
+ get: function() {
49463
+ return motionCapability;
49464
+ }
49465
+ });
49396
49466
  Object.defineProperty(exports, "nodePin", {
49397
49467
  enumerable: true,
49398
49468
  get: function() {