@camstack/system 1.2.238 → 1.2.240

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 (57) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.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/console-logging/index.js +1 -1
  12. package/dist/builtins/console-logging/index.mjs +1 -1
  13. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  14. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  15. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  16. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  17. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  18. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  19. package/dist/builtins/hub-forwarder/index.js +1 -1
  20. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  21. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  22. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  23. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  24. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  25. package/dist/builtins/local-network/local-network.addon.js +1 -1
  26. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  27. package/dist/builtins/loki-logging/index.js +1 -1
  28. package/dist/builtins/loki-logging/index.mjs +1 -1
  29. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  30. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  31. package/dist/builtins/platform-probe/index.js +1 -1
  32. package/dist/builtins/platform-probe/index.mjs +1 -1
  33. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  34. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  35. package/dist/builtins/snapshot/index.js +1 -1
  36. package/dist/builtins/snapshot/index.mjs +1 -1
  37. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  38. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  39. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  40. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  41. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  42. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  43. package/dist/builtins/system-config/system-config.addon.js +1 -1
  44. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  45. package/dist/builtins/winston-logging/index.js +1 -1
  46. package/dist/builtins/winston-logging/index.mjs +1 -1
  47. package/dist/{dist-D5hpgLSL.mjs → dist-CDDG1zn3.mjs} +133 -1
  48. package/dist/{dist-CHclfj0J.js → dist-Dze0l7UM.js} +133 -1
  49. package/dist/index.js +2 -2
  50. package/dist/index.mjs +2 -2
  51. package/dist/kernel/moleculer/device-event-ring.d.ts +113 -0
  52. package/dist/kernel/moleculer/event-bus-core.d.ts +18 -0
  53. package/dist/{manifest-system-deps-BEj9Dpu1.mjs → manifest-system-deps-CfR7Z90J.mjs} +136 -2
  54. package/dist/{manifest-system-deps-CrSP0Kkp.js → manifest-system-deps-CzyjTMcO.js} +136 -2
  55. package/dist/{retired-settings-keys-DRKmYztE.js → retired-settings-keys-1GWw9mup.js} +1 -1
  56. package/dist/{retired-settings-keys-bJE3qjAT.mjs → retired-settings-keys-Cbt4-K_M.mjs} +1 -1
  57. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_system_deps = require("./manifest-system-deps-CrSP0Kkp.js");
2
+ const require_manifest_system_deps = require("./manifest-system-deps-CzyjTMcO.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { A as createUdsLoggerWithControl, It as RUNNER_RSS_BUDGET_ENV, L as LocalChildClient, Yt as startRunnerHeapWatch, a as createUdsAddonContext, bt as resolveAddonClass, it as setWorkerNativeCapsChangeListener, n as installManifestPythonDeps, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, sn as emitHeapDiagnosticReport, t as installManifestSystemDeps, tt as getWorkerNativeCapProvider, yt as installManifestNativeDeps } from "./manifest-system-deps-BEj9Dpu1.mjs";
1
+ import { A as createUdsLoggerWithControl, It as RUNNER_RSS_BUDGET_ENV, L as LocalChildClient, Yt as startRunnerHeapWatch, a as createUdsAddonContext, bt as resolveAddonClass, it as setWorkerNativeCapsChangeListener, n as installManifestPythonDeps, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, sn as emitHeapDiagnosticReport, t as installManifestSystemDeps, tt as getWorkerNativeCapProvider, yt as installManifestNativeDeps } from "./manifest-system-deps-CfR7Z90J.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { register } from "node:module";
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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Jt as BaseAddon, bn as EventCategory, k as addonPagesCapability, qt as errMsg } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, k as addonPagesCapability, qt as errMsg } from "../../dist-CDDG1zn3.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Jt as BaseAddon, bn as EventCategory, j as addonWidgetsCapability, qt as errMsg } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, j as addonWidgetsCapability, qt as errMsg } from "../../dist-CDDG1zn3.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
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
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.js");
7
7
  //#region src/builtins/alerts/prune-policy.ts
8
8
  /**
9
9
  * Ids older than `cutoffMs`, oldest first.
@@ -1,4 +1,4 @@
1
- import { Jt as BaseAddon, M as alertsCapability, bn as EventCategory, n as AlertSchema, qt as errMsg, sn as createEvent } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, M as alertsCapability, bn as EventCategory, n as AlertSchema, qt as errMsg, sn as createEvent } from "../../dist-CDDG1zn3.mjs";
2
2
  //#region src/builtins/alerts/prune-policy.ts
3
3
  /**
4
4
  * Ids older than `cutoffMs`, oldest first.
@@ -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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let buffer = require("buffer");
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { Bt as storageOccupancyCapability, Jt as BaseAddon, P as backupCapability, bn as EventCategory, yt as mayWriteToLocation } from "../../dist-D5hpgLSL.mjs";
1
+ import { Bt as storageOccupancyCapability, Jt as BaseAddon, P as backupCapability, bn as EventCategory, yt as mayWriteToLocation } from "../../dist-CDDG1zn3.mjs";
2
2
  import { randomBytes, randomUUID } from "node:crypto";
3
3
  import { Buffer as Buffer$1 } from "buffer";
4
4
  import * as fsp from "node:fs/promises";
@@ -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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
3
+ const require_dist = require("../../dist-Dze0l7UM.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 { B as coreBlockIdFromAddonId, Jt as BaseAddon, V as coreBlocksCapability, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, qt as errMsg, s as CORE_BLOCKS_ADDON_ID, z as coreBlockAddonId } from "../../dist-D5hpgLSL.mjs";
1
+ import { B as coreBlockIdFromAddonId, Jt as BaseAddon, V as coreBlocksCapability, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, qt as errMsg, s as CORE_BLOCKS_ADDON_ID, z as coreBlockAddonId } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-DRKmYztE.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-1GWw9mup.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 { $t as DeviceRole, G as deviceManagerCapability, Jt as BaseAddon, K as deviceStateCapability, L as buildStreamParamsConfigSchema, Mt as runtimeStatePolicyFor, Qt as DeviceFeature, S as STREAM_PROFILE_META, St as normalizeUnit, X as enumerateItemArrayFields, Z as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bn as EventCategory, en as DeviceType, f as DeviceStatusSchema, fn as isDeviceConfigCap, kt as resolveContainerPrimaryChild, o as CAP_NAMES_WITH_STATUS, q as deviceStatusCapability, qt as errMsg, rn as WELL_KNOWN_TAB_MAP, t as ALL_CAPABILITY_DEFINITIONS, wt as parseStreamParamsFormPatch, yn as sleep$1 } from "../../dist-D5hpgLSL.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-bJE3qjAT.mjs";
1
+ import { $t as DeviceRole, G as deviceManagerCapability, Jt as BaseAddon, K as deviceStateCapability, L as buildStreamParamsConfigSchema, Mt as runtimeStatePolicyFor, Qt as DeviceFeature, S as STREAM_PROFILE_META, St as normalizeUnit, X as enumerateItemArrayFields, Z as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bn as EventCategory, en as DeviceType, f as DeviceStatusSchema, fn as isDeviceConfigCap, kt as resolveContainerPrimaryChild, o as CAP_NAMES_WITH_STATUS, q as deviceStatusCapability, qt as errMsg, rn as WELL_KNOWN_TAB_MAP, t as ALL_CAPABILITY_DEFINITIONS, wt as parseStreamParamsFormPatch, yn as sleep$1 } from "../../dist-CDDG1zn3.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-Cbt4-K_M.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { F as bareAddonId, J as doorbellCapability, Jt as BaseAddon, Q as evaluateSensorEdge, b as SOURCE_DEVICE_TYPES, bn as EventCategory, ct as isSameAddonId, en as DeviceType, lt as isSourceCap, qt as errMsg, sn as createEvent, y as SOURCE_CAPS } from "../../dist-D5hpgLSL.mjs";
1
+ import { F as bareAddonId, J as doorbellCapability, Jt as BaseAddon, Q as evaluateSensorEdge, b as SOURCE_DEVICE_TYPES, bn as EventCategory, ct as isSameAddonId, en as DeviceType, lt as isSourceCap, qt as errMsg, sn as createEvent, y as SOURCE_CAPS } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
3
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, bn as EventCategory, qt as errMsg, sn as createEvent, v as RecordingStatusSchema } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, qt as errMsg, sn as createEvent, v as RecordingStatusSchema } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { C as ScopedTokenSchema, Jt as BaseAddon, N as authProviderCapability, O as UserRecordSchema, Ut as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-D5hpgLSL.mjs";
2
+ import { C as ScopedTokenSchema, Jt as BaseAddon, N as authProviderCapability, O as UserRecordSchema, Ut as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
3
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, bn as EventCategory, mt as localNetworkCapability } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, mt as localNetworkCapability } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Dt as reducePoints, Jt as BaseAddon, Ot as resolveBucketMs, bn as EventCategory, bt as metricsProviderCapability, nt as foldSnapshotByFunction, qt as errMsg, sn as createEvent } from "../../dist-D5hpgLSL.mjs";
1
+ import { Dt as reducePoints, Jt as BaseAddon, Ot as resolveBucketMs, bn as EventCategory, bt as metricsProviderCapability, nt as foldSnapshotByFunction, qt as errMsg, sn as createEvent } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Ft as scoreRuntimes, Jt as BaseAddon, Tt as platformProbeCapability, Y as enumerateInferenceDevices, bn as EventCategory, ln as emitReadiness, qt as errMsg } from "../../dist-D5hpgLSL.mjs";
2
+ import { Ft as scoreRuntimes, Jt as BaseAddon, Tt as platformProbeCapability, Y as enumerateInferenceDevices, bn as EventCategory, ln as emitReadiness, qt as errMsg } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, bn as EventCategory } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-oeTWCXPv.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { F as bareAddonId, Ht as streamQualityLabel, I as batteryCapability, Jt as BaseAddon, Lt as snapshotCapability, Qt as DeviceFeature, W as deriveBatteryPresence, bn as EventCategory, en as DeviceType, i as BatteryStatusSchema, pn as nodePin, qt as errMsg } from "../../dist-D5hpgLSL.mjs";
1
+ import { F as bareAddonId, Ht as streamQualityLabel, I as batteryCapability, Jt as BaseAddon, Lt as snapshotCapability, Qt as DeviceFeature, W as deriveBatteryPresence, bn as EventCategory, en as DeviceType, i as BatteryStatusSchema, pn as nodePin, qt as errMsg } from "../../dist-CDDG1zn3.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-LoJNgHHZ.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, Vt as storageProviderCapability, tt as filesystemBrowseCapability } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, Vt as storageProviderCapability, tt as filesystemBrowseCapability } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { $ as evictionPolicyOfLocation, At as resolveLocationMode, D as StorageMigrationJobSchema, E as StorageLocationTypeSchema, It as settingsStoreCapability, Jt as BaseAddon, Kt as withLocationMode, R as collectSecretConfigKeys, Rt as storageCapability, T as StorageLocationModeSchema, bn as EventCategory, ft as legacyModeOf, g as REDACTED_SECRET, m as LegacyStorageLocationDefaultSchema, mn as parseJsonObject, ot as isLocationEnabled, rt as gbToBytes, vt as mayReadLocation, w as StorageCleanupJobSchema, xt as modeMayWrite, yt as mayWriteToLocation, zt as storageMigrationCapability } from "../../dist-D5hpgLSL.mjs";
1
+ import { $ as evictionPolicyOfLocation, At as resolveLocationMode, D as StorageMigrationJobSchema, E as StorageLocationTypeSchema, It as settingsStoreCapability, Jt as BaseAddon, Kt as withLocationMode, R as collectSecretConfigKeys, Rt as storageCapability, T as StorageLocationModeSchema, bn as EventCategory, ft as legacyModeOf, g as REDACTED_SECRET, m as LegacyStorageLocationDefaultSchema, mn as parseJsonObject, ot as isLocationEnabled, rt as gbToBytes, vt as mayReadLocation, w as StorageCleanupJobSchema, xt as modeMayWrite, yt as mayWriteToLocation, zt as storageMigrationCapability } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, dn as hydrateSchema, qt as errMsg } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, dn as hydrateSchema, qt as errMsg } from "../../dist-CDDG1zn3.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-CHclfj0J.js");
6
+ const require_dist = require("../../dist-Dze0l7UM.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-D5hpgLSL.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CDDG1zn3.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";
@@ -690,7 +690,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
690
690
  return EventCategory;
691
691
  }({});
692
692
  //#endregion
693
- //#region ../types/dist/sleep-BfJ2k1jm.mjs
693
+ //#region ../types/dist/sleep-BDR76Ykr.mjs
694
694
  /**
695
695
  * The audio chunk plane's byte format, and the ONE expansion from a coded
696
696
  * window to float samples (D455).
@@ -16998,6 +16998,48 @@ var NcAlarmConfigSchema = z.object({
16998
16998
  settings: NcAlarmSettingsSchema,
16999
16999
  coverage: z.array(NcAlarmModeCoverageSchema)
17000
17000
  });
17001
+ /**
17002
+ * ONE rule's demand on ONE camera's clip ring.
17003
+ *
17004
+ * A rule, not a camera: the broker takes the MAX over the asks that reach a
17005
+ * camera, so the answer stays a faithful description of the rules and the
17006
+ * bounding (the byte budget, the broker's own ceiling) stays where the cost
17007
+ * lives. A camera that appears in no ask is being told **nothing** — which is
17008
+ * a different thing from never having been told, and only the envelope
17009
+ * (`rulesLoaded`) can tell those apart.
17010
+ */
17011
+ var NcClipRetentionAskSchema = z.object({
17012
+ /**
17013
+ * The camera this ask is about. **Absent = every camera**, which is what a
17014
+ * rule with no `conditions.devices` means: it can fire anywhere, so it is
17015
+ * asking everywhere.
17016
+ */
17017
+ deviceId: z.number().int().nonnegative().optional(),
17018
+ /** Seconds of history the rule needs held for it. Never zero — a rule that
17019
+ * needs nothing produces no ask at all. */
17020
+ seconds: z.number().min(0).max(60),
17021
+ /** The profile the rule cuts from, when it named one. Absent = the cheapest
17022
+ * assigned, which is what the cut defaults to. */
17023
+ profile: CamProfileSchema.optional(),
17024
+ /** Who is asking — so a retention the operator did not expect names a rule. */
17025
+ ruleId: z.string(),
17026
+ ruleName: z.string(),
17027
+ /** Why this many seconds: the rule's own window, or the occupancy ceiling. */
17028
+ reason: z.enum(["window", "occupancy"])
17029
+ });
17030
+ /**
17031
+ * The whole answer, with the one bit that keeps absence from reading as zero.
17032
+ *
17033
+ * `rulesLoaded` is false until the rule ledger has completed a load at least
17034
+ * once. A centre that is up but has not read its rules yet answers with an
17035
+ * empty ask list that means nothing at all — applying it would drop every
17036
+ * camera's ring to zero for the first events after a restart, which is the
17037
+ * footage this mechanism exists to keep.
17038
+ */
17039
+ var NcClipRetentionPlanSchema = z.object({
17040
+ rulesLoaded: z.boolean(),
17041
+ asks: z.array(NcClipRetentionAskSchema).readonly()
17042
+ });
17001
17043
  var notificationRulesCapability = {
17002
17044
  name: "notification-rules",
17003
17045
  scope: "system",
@@ -17030,6 +17072,23 @@ var notificationRulesCapability = {
17030
17072
  auth: "admin"
17031
17073
  }),
17032
17074
  /**
17075
+ * WHAT THE RULES ACTUALLY ASK the stream broker to retain, per camera.
17076
+ *
17077
+ * The notification centre owns the rules, so it is the only thing that can
17078
+ * say how much history a camera's notifications will ever reach back for.
17079
+ * Before this the broker guessed — a flat minute on every camera — and
17080
+ * learned the PROFILE reactively, after the first clip had already been cut
17081
+ * from the wrong one. This is the same ask stated once, in front.
17082
+ *
17083
+ * A QUERY, pulled by each node's broker, not a push: brokers are per node
17084
+ * (a camera's ring lives wherever its stream is ingested) while this cap is
17085
+ * a singleton, so a push would have to enumerate the cluster. The pull also
17086
+ * makes the failure mode right — a broker that cannot reach the centre
17087
+ * keeps the plan it has, and a plan that has never arrived is UNKNOWN
17088
+ * rather than empty (D49: a read that fails changes nothing).
17089
+ */
17090
+ getClipRetentionAsks: method(z.object({}), NcClipRetentionPlanSchema, { auth: "admin" }),
17091
+ /**
17033
17092
  * PERMANENT per-camera mute — the notifications half of the per-camera
17034
17093
  * function switch group ([D61](../../../../docs/decisions/adr-0067.md)).
17035
17094
  *
@@ -21645,6 +21704,18 @@ var RunnerLocalMetricsSchema = z.object({
21645
21704
  * runner has zero knowledge of other agents, no global state, and never
21646
21705
  * makes assignment decisions itself.
21647
21706
  */
21707
+ /**
21708
+ * Why a runner declined to look at a camera out of band. Named rather than a
21709
+ * bare `false`: a camera asleep on battery (D173), one attached elsewhere, one
21710
+ * already mid-session and one already bursting are four different facts, and a
21711
+ * caller told only "no" cannot tell a protection from a bug.
21712
+ */
21713
+ var OccupancyBurstRefusalSchema = z.enum([
21714
+ "not-attached",
21715
+ "battery-asleep",
21716
+ "not-watching",
21717
+ "already-bursting"
21718
+ ]);
21648
21719
  var pipelineRunnerCapability = {
21649
21720
  name: "pipeline-runner",
21650
21721
  scope: "system",
@@ -21681,6 +21752,50 @@ var pipelineRunnerCapability = {
21681
21752
  /** List the deviceIds currently attached to this runner. */
21682
21753
  getLocalCameras: method(z.void(), z.array(z.number()).readonly()),
21683
21754
  /**
21755
+ * Look at a camera NOW, out of band, because something just happened that
21756
+ * only a fresh look can settle.
21757
+ *
21758
+ * The periodic recheck (`occupancyRecheckSec`, 300 s) exists to watch a
21759
+ * still scene. It is the wrong instrument for a QUESTION that has just been
21760
+ * asked: on device 617 a parked car's departure was observed, a departure
21761
+ * strike was armed — and then the motion session ended, the strike decayed
21762
+ * after its 30 s TTL, and the next periodic look arrived up to five minutes
21763
+ * later with nothing left to confirm. Every one of those departures was
21764
+ * settled by the entry ageing out 6 to 10 minutes of observed time later,
21765
+ * and the notification's clip showed an empty space with nothing leaving
21766
+ * it.
21767
+ *
21768
+ * Two numbers make the ask specific, and a caller that ignores them wastes
21769
+ * the burst: a confirmation must land at least
21770
+ * `DEPARTURE_CONFIRM_MIN_GAP_MS` (3 s) after the read that armed the
21771
+ * strike — before that it is the same optical event and is refused — and
21772
+ * `DEPARTURE_ABSENCE_MIN_READS` (5) consecutive unassociated frames are
21773
+ * needed, while `occupancyRecheckFrames` defaults to FOUR. A burst of four
21774
+ * can never confirm an absence; that is why two periodic looks were always
21775
+ * required.
21776
+ *
21777
+ * The runner answers whether it actually started one. A refusal is NAMED,
21778
+ * never a silent `false`: a camera that is asleep on battery (D173 — this
21779
+ * must not become a self-initiated wake), detached, mid-session or already
21780
+ * bursting are four different facts, and a caller told only "no" cannot
21781
+ * tell a protection from a bug.
21782
+ */
21783
+ requestOccupancyBurst: method(z.object({
21784
+ deviceId: z.number(),
21785
+ /** How many frames to collect. The caller sizes this against what its
21786
+ * own confirmation needs; the runner clamps it to the field's range. */
21787
+ frames: z.number().int().positive().optional(),
21788
+ /** Why, for the log. A burst nobody can attribute is a cost nobody can
21789
+ * defend — the periodic one at least has a timer to point at. */
21790
+ reason: z.string()
21791
+ }), z.object({
21792
+ started: z.boolean(),
21793
+ refusedBecause: OccupancyBurstRefusalSchema.optional()
21794
+ }), {
21795
+ auth: "admin",
21796
+ kind: "mutation"
21797
+ }),
21798
+ /**
21684
21799
  * Best-effort NATIVE-resolution crop of a retention-ring frame. Given the
21685
21800
  * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
21686
21801
  * the runner asks the decode worker still holding that frame's NATIVE
@@ -40391,6 +40506,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
40391
40506
  addonId: null,
40392
40507
  access: "view"
40393
40508
  },
40509
+ "notificationRules.getClipRetentionAsks": {
40510
+ capName: "notification-rules",
40511
+ capScope: "system",
40512
+ addonId: null,
40513
+ access: "view"
40514
+ },
40394
40515
  "notificationRules.getConditionCatalog": {
40395
40516
  capName: "notification-rules",
40396
40517
  capScope: "system",
@@ -41579,6 +41700,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
41579
41700
  addonId: null,
41580
41701
  access: "create"
41581
41702
  },
41703
+ "pipelineRunner.requestOccupancyBurst": {
41704
+ capName: "pipeline-runner",
41705
+ capScope: "system",
41706
+ addonId: null,
41707
+ access: "create"
41708
+ },
41582
41709
  "pipelineRunner.runDetailSubtree": {
41583
41710
  capName: "pipeline-runner",
41584
41711
  capScope: "system",
@@ -44918,6 +45045,11 @@ Object.freeze({
44918
45045
  form: "single",
44919
45046
  optional: false
44920
45047
  }],
45048
+ "pipelineRunner.requestOccupancyBurst": [{
45049
+ name: "deviceId",
45050
+ form: "single",
45051
+ optional: false
45052
+ }],
44921
45053
  "pipelineRunner.runDetailSubtree": [{
44922
45054
  name: "deviceId",
44923
45055
  form: "single",