@camstack/system 1.2.325 → 1.2.327

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 (59) 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/index.js +1 -1
  12. package/dist/builtins/camera-grid/index.mjs +1 -1
  13. package/dist/builtins/composer/composer.addon.js +2 -2
  14. package/dist/builtins/composer/composer.addon.mjs +2 -2
  15. package/dist/builtins/console-logging/index.js +1 -1
  16. package/dist/builtins/console-logging/index.mjs +1 -1
  17. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  18. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  19. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  20. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  21. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  22. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  23. package/dist/builtins/hub-forwarder/index.js +1 -1
  24. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  25. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  26. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  27. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  28. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  29. package/dist/builtins/local-network/local-network.addon.js +1 -1
  30. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  31. package/dist/builtins/loki-logging/index.js +1 -1
  32. package/dist/builtins/loki-logging/index.mjs +1 -1
  33. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  34. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  35. package/dist/builtins/platform-probe/index.js +1 -1
  36. package/dist/builtins/platform-probe/index.mjs +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  38. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  39. package/dist/builtins/snapshot/index.js +1 -1
  40. package/dist/builtins/snapshot/index.mjs +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  42. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  44. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  46. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  47. package/dist/builtins/system-config/system-config.addon.js +1 -1
  48. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  49. package/dist/builtins/winston-logging/index.js +1 -1
  50. package/dist/builtins/winston-logging/index.mjs +1 -1
  51. package/dist/{composition-sources-BMyxu0Gs.js → composition-sources-C4y0E61h.js} +1 -1
  52. package/dist/{composition-sources-C7tZE1JO.mjs → composition-sources-p97gwBHf.mjs} +1 -1
  53. package/dist/{dist-DZtw79V-.js → dist-DM-F-y2o.js} +102 -3
  54. package/dist/{dist-BjwcGX3O.mjs → dist-DM0Ht3af.mjs} +102 -3
  55. package/dist/index.js +1 -1
  56. package/dist/index.mjs +1 -1
  57. package/dist/{retired-settings-keys-B3mGdOSU.mjs → retired-settings-keys-BzEKm8HG.mjs} +1 -1
  58. package/dist/{retired-settings-keys-DkLVDf0-.js → retired-settings-keys-DQFKJIa9.js} +1 -1
  59. package/package.json +1 -1
@@ -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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Kn as errMsg, R as addonPagesCapability, _r as EventCategory, qn as BaseAddon } from "../../dist-BjwcGX3O.mjs";
1
+ import { Kn as errMsg, R as addonPagesCapability, _r as EventCategory, qn as BaseAddon } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { B as addonWidgetsCapability, Kn as errMsg, _r as EventCategory, qn as BaseAddon } from "../../dist-BjwcGX3O.mjs";
1
+ import { B as addonWidgetsCapability, Kn as errMsg, _r as EventCategory, qn as BaseAddon } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Kn as errMsg, V as alertsCapability, _r as EventCategory, n as AlertSchema, qn as BaseAddon, rr as createEvent } from "../../dist-BjwcGX3O.mjs";
1
+ import { Kn as errMsg, V as alertsCapability, _r as EventCategory, n as AlertSchema, qn as BaseAddon, rr as createEvent } from "../../dist-DM0Ht3af.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
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.js");
7
7
  //#region src/builtins/autotrack/autotrack-config.ts
8
8
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
9
9
  deadZoneFraction: .5,
@@ -1,4 +1,4 @@
1
- import { Kn as errMsg, W as bareAddonId, _ as FIRST_LEVEL_MACRO_CLASSES, _r as EventCategory, lr as isEvent, qn as BaseAddon, rn as ptzAutotrackCapability } from "../../dist-BjwcGX3O.mjs";
1
+ import { Kn as errMsg, W as bareAddonId, _ as FIRST_LEVEL_MACRO_CLASSES, _r as EventCategory, lr as isEvent, qn as BaseAddon, rn as ptzAutotrackCapability } from "../../dist-DM0Ht3af.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Gt as mayWriteToLocation, U as backupCapability, _r as EventCategory, qn as BaseAddon, vn as storageOccupancyCapability } from "../../dist-BjwcGX3O.mjs";
1
+ import { Gt as mayWriteToLocation, U as backupCapability, _r as EventCategory, qn as BaseAddon, vn as storageOccupancyCapability } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.js");
7
7
  let zod = require("zod");
8
8
  let _camstack_types_node = require("@camstack/types/node");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Gn as DeviceType, Kn as errMsg, Kt as memoizePinnedFfmpeg, T as MOTION_CLOSE_AFTER_MS, Un as DeviceFeature, Y as cameraGridLayoutCapability, Yt as motionCapability, _r as EventCategory, bn as streamCatalogCapability, h as DeclaredDevices, hn as snapshotCapability, i as BaseDevice, jn as buildFfmpegArgs, m as DERIVED_CAMERA_SILENCED_CAP_NAMES, qn as BaseAddon, rr as createEvent, sr as hydrateSchema, st as declarationOwnerNodeId } from "../../dist-BjwcGX3O.mjs";
1
+ import { Gn as DeviceType, Kn as errMsg, Kt as memoizePinnedFfmpeg, T as MOTION_CLOSE_AFTER_MS, Un as DeviceFeature, Y as cameraGridLayoutCapability, Yt as motionCapability, _r as EventCategory, bn as streamCatalogCapability, h as DeclaredDevices, hn as snapshotCapability, i as BaseDevice, jn as buildFfmpegArgs, m as DERIVED_CAMERA_SILENCED_CAP_NAMES, qn as BaseAddon, rr as createEvent, sr as hydrateSchema, st as declarationOwnerNodeId } from "../../dist-DM0Ht3af.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.js");
7
7
  const require_device_state_changed = require("../../device-state-changed-Bk7cvTnz.js");
8
- const require_composition_sources = require("../../composition-sources-BMyxu0Gs.js");
8
+ const require_composition_sources = require("../../composition-sources-C4y0E61h.js");
9
9
  //#region src/builtins/composer/composed-device.ts
10
10
  /**
11
11
  * A composed device: an ordinary `BaseDevice` whose caps are served by the
@@ -1,6 +1,6 @@
1
- import { Fn as compositionFeatureEnabled, Gn as DeviceType, Hn as toExpressionValue, In as compositionItemFieldPath, K as buildCapabilityLookup, Kn as errMsg, Ln as compositionSliceKey, Mn as cloneStatefulExpressionMemory, Nn as composedDeviceRef, On as COMPOSER_ADDON_ID, Pn as composedDeviceStableId, Q as compositionFieldKey, Rn as compositionSourceKey, Z as composerCapability, _r as EventCategory, c as COMPOSED_ITEM_FIXED_FIELDS, en as planComposition, h as DeclaredDevices, i as BaseDevice, qn as BaseAddon, rr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, xt as evaluateCompositionField, zn as createStatefulExpressionMemory } from "../../dist-BjwcGX3O.mjs";
1
+ import { Fn as compositionFeatureEnabled, Gn as DeviceType, Hn as toExpressionValue, In as compositionItemFieldPath, K as buildCapabilityLookup, Kn as errMsg, Ln as compositionSliceKey, Mn as cloneStatefulExpressionMemory, Nn as composedDeviceRef, On as COMPOSER_ADDON_ID, Pn as composedDeviceStableId, Q as compositionFieldKey, Rn as compositionSourceKey, Z as composerCapability, _r as EventCategory, c as COMPOSED_ITEM_FIXED_FIELDS, en as planComposition, h as DeclaredDevices, i as BaseDevice, qn as BaseAddon, rr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, xt as evaluateCompositionField, zn as createStatefulExpressionMemory } from "../../dist-DM0Ht3af.mjs";
2
2
  import { n as parseDeviceStateChanged, t as isRecord$2 } from "../../device-state-changed-DoBbkyEI.mjs";
3
- import { n as normalizedNativeOwner } from "../../composition-sources-C7tZE1JO.mjs";
3
+ import { n as normalizedNativeOwner } from "../../composition-sources-p97gwBHf.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/builtins/composer/composed-device.ts
6
6
  /**
@@ -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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-BjwcGX3O.mjs";
1
+ import { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-DM0Ht3af.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,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DZtw79V-.js");
4
- const require_composition_sources = require("../../composition-sources-BMyxu0Gs.js");
3
+ const require_dist = require("../../dist-DM-F-y2o.js");
4
+ const require_composition_sources = require("../../composition-sources-C4y0E61h.js");
5
5
  let node_crypto = require("node:crypto");
6
6
  let _camstack_types_node = require("@camstack/types/node");
7
7
  let node_fs_promises = require("node:fs/promises");
@@ -1,5 +1,5 @@
1
- import { $ as compositionSourceRefs, Cn as validateComposition, K as buildCapabilityLookup, Kn as errMsg, Nn as composedDeviceRef, Rn as compositionSourceKey, an as replacedFieldKeys, d as CORE_BLOCK_ADDON_PREFIX, dt as describeComposableCaps, en as planComposition, et as coreBlockAddonId, f as CoreBlockSchema, h as DeclaredDevices, it as coreBlocksCapability, l as COMPOSER_RUNNER_ID, nt as coreBlockIdFromAddonId, qn as BaseAddon, rt as coreBlockSourceKind, t as ALL_CAPABILITY_DEFINITIONS, tt as coreBlockComposition, u as CORE_BLOCKS_ADDON_ID } from "../../dist-BjwcGX3O.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-C7tZE1JO.mjs";
1
+ import { $ as compositionSourceRefs, Cn as validateComposition, K as buildCapabilityLookup, Kn as errMsg, Nn as composedDeviceRef, Rn as compositionSourceKey, an as replacedFieldKeys, d as CORE_BLOCK_ADDON_PREFIX, dt as describeComposableCaps, en as planComposition, et as coreBlockAddonId, f as CoreBlockSchema, h as DeclaredDevices, it as coreBlocksCapability, l as COMPOSER_RUNNER_ID, nt as coreBlockIdFromAddonId, qn as BaseAddon, rt as coreBlockSourceKind, t as ALL_CAPABILITY_DEFINITIONS, tt as coreBlockComposition, u as CORE_BLOCKS_ADDON_ID } from "../../dist-DM0Ht3af.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-p97gwBHf.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { customizationBlockName } from "@camstack/types/node";
5
5
  import * as fs from "node:fs/promises";
@@ -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-DZtw79V-.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-DkLVDf0-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-DQFKJIa9.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
10
10
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,5 +1,5 @@
1
- import { $n as WELL_KNOWN_TAB_MAP, $t as parseStreamParamsFormPatch, Bt as locationIconKey, Ct as expandContainer, Dt as formatMinutes, Gn as DeviceType, It as legacyAutoLinkIds, J as buildStreamParamsConfigSchema, Kn as errMsg, S as LocationIconIdSchema, Un as DeviceFeature, Wn as DeviceRole, Xt as normalizeUnit, _r as EventCategory, at as createDeviceExtensionProvider, bt as enumerateSchemaFields, cr as isDeviceConfigCap, ft as deviceExtensionCapability, g as DeviceStatusSchema, gr as sleep$1, ht as deviceStatusCapability, j as STREAM_PROFILE_META, ln as runtimeStatePolicyFor, lt as defineExtensionSlotProvider, mn as siteZoneKey, mt as deviceStateCapability, o as CAMERA_SWITCH_ORDER, p as DAY_NAMES, pt as deviceManagerCapability, qn as BaseAddon, s as CAP_NAMES_WITH_STATUS, t as ALL_CAPABILITY_DEFINITIONS, v as FieldClaimModeSchema, w as MINUTES_PER_DAY, y as FieldClaimSchema, yt as enumerateItemArrayFields } from "../../dist-BjwcGX3O.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-B3mGdOSU.mjs";
1
+ import { $n as WELL_KNOWN_TAB_MAP, $t as parseStreamParamsFormPatch, Bt as locationIconKey, Ct as expandContainer, Dt as formatMinutes, Gn as DeviceType, It as legacyAutoLinkIds, J as buildStreamParamsConfigSchema, Kn as errMsg, S as LocationIconIdSchema, Un as DeviceFeature, Wn as DeviceRole, Xt as normalizeUnit, _r as EventCategory, at as createDeviceExtensionProvider, bt as enumerateSchemaFields, cr as isDeviceConfigCap, ft as deviceExtensionCapability, g as DeviceStatusSchema, gr as sleep$1, ht as deviceStatusCapability, j as STREAM_PROFILE_META, ln as runtimeStatePolicyFor, lt as defineExtensionSlotProvider, mn as siteZoneKey, mt as deviceStateCapability, o as CAMERA_SWITCH_ORDER, p as DAY_NAMES, pt as deviceManagerCapability, qn as BaseAddon, s as CAP_NAMES_WITH_STATUS, t as ALL_CAPABILITY_DEFINITIONS, v as FieldClaimModeSchema, w as MINUTES_PER_DAY, y as FieldClaimSchema, yt as enumerateItemArrayFields } from "../../dist-DM0Ht3af.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BzEKm8HG.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
@@ -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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.js");
7
7
  const require_device_state_changed = require("../../device-state-changed-Bk7cvTnz.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/doorbell/trigger-engine.ts
@@ -1,4 +1,4 @@
1
- import { An as SOURCE_CAPS, Bn as evaluateSensorEdge, Gn as DeviceType, Kn as errMsg, Nt as isSameAddonId, Vn as isSourceCap, W as bareAddonId, _r as EventCategory, _t as doorbellFeatureSources, at as createDeviceExtensionProvider, ft as deviceExtensionCapability, gt as doorbellCapability, lt as defineExtensionSlotProvider, q as buildDoorbellCompositionFeature, qn as BaseAddon, rr as createEvent } from "../../dist-BjwcGX3O.mjs";
1
+ import { An as SOURCE_CAPS, Bn as evaluateSensorEdge, Gn as DeviceType, Kn as errMsg, Nt as isSameAddonId, Vn as isSourceCap, W as bareAddonId, _r as EventCategory, _t as doorbellFeatureSources, at as createDeviceExtensionProvider, ft as deviceExtensionCapability, gt as doorbellCapability, lt as defineExtensionSlotProvider, q as buildDoorbellCompositionFeature, qn as BaseAddon, rr as createEvent } from "../../dist-DM0Ht3af.mjs";
2
2
  import { n as parseDeviceStateChanged } from "../../device-state-changed-DoBbkyEI.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/doorbell/trigger-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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-BjwcGX3O.mjs";
1
+ import { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
3
+ const require_dist = require("../../dist-DM-F-y2o.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 { E as RECORDING_SOURCE_CAMSTACK_ADDON, Kn as errMsg, _r as EventCategory, k as RecordingStatusSchema, qn as BaseAddon, rr as createEvent } from "../../dist-BjwcGX3O.mjs";
1
+ import { E as RECORDING_SOURCE_CAMSTACK_ADDON, Kn as errMsg, _r as EventCategory, k as RecordingStatusSchema, qn as BaseAddon, rr as createEvent } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { H as authProviderCapability, L as UserRecordSchema, M as ScopedTokenSchema, Sn as userManagementCapability, qn as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-BjwcGX3O.mjs";
2
+ import { H as authProviderCapability, L as UserRecordSchema, M as ScopedTokenSchema, Sn as userManagementCapability, qn as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
3
+ const require_dist = require("../../dist-DM-F-y2o.js");
4
4
  const require_tls = require("../../tls-D_wUeOTD.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 { _r as EventCategory, qn as BaseAddon, zt as localNetworkCapability } from "../../dist-BjwcGX3O.mjs";
1
+ import { _r as EventCategory, qn as BaseAddon, zt as localNetworkCapability } from "../../dist-DM0Ht3af.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-IM-v7JV4.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-BjwcGX3O.mjs";
1
+ import { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.js");
7
7
  const require_proc_stat = require("../../proc-stat-DL-WUOhl.js");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { Et as foldSnapshotByFunction, Kn as errMsg, _r as EventCategory, in as reducePoints, on as resolveBucketMs, qn as BaseAddon, qt as metricsProviderCapability, rr as createEvent } from "../../dist-BjwcGX3O.mjs";
1
+ import { Et as foldSnapshotByFunction, Kn as errMsg, _r as EventCategory, in as reducePoints, on as resolveBucketMs, qn as BaseAddon, qt as metricsProviderCapability, rr as createEvent } from "../../dist-DM0Ht3af.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader, n as elapsedSecSince, o as parseProcStatusRss, r as lifetimeCpuPercent, t as commandFromCmdline } from "../../proc-stat-CbC55Kqi.mjs";
3
3
  import { access, readFile, readdir } from "node:fs/promises";
4
4
  import * as fs 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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Kn as errMsg, _r as EventCategory, ar as emitReadiness, fn as scoreRuntimes, qn as BaseAddon, tn as platformProbeCapability, vt as enumerateInferenceDevices } from "../../dist-BjwcGX3O.mjs";
2
+ import { Kn as errMsg, _r as EventCategory, ar as emitReadiness, fn as scoreRuntimes, qn as BaseAddon, tn as platformProbeCapability, vt as enumerateInferenceDevices } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { _r as EventCategory, qn as BaseAddon } from "../../dist-BjwcGX3O.mjs";
1
+ import { _r as EventCategory, qn as BaseAddon } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { G as batteryCapability, Gn as DeviceType, Kn as errMsg, Kt as memoizePinnedFfmpeg, Un as DeviceFeature, W as bareAddonId, _r as EventCategory, a as BatteryStatusSchema, hn as snapshotCapability, qn as BaseAddon, ur as nodePin, ut as deriveBatteryPresence, xn as streamQualityLabel } from "../../dist-BjwcGX3O.mjs";
1
+ import { G as batteryCapability, Gn as DeviceType, Kn as errMsg, Kt as memoizePinnedFfmpeg, Un as DeviceFeature, W as bareAddonId, _r as EventCategory, a as BatteryStatusSchema, hn as snapshotCapability, qn as BaseAddon, ur as nodePin, ut as deriveBatteryPresence, xn as streamQualityLabel } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Tt as filesystemBrowseCapability, qn as BaseAddon, yn as storageProviderCapability } from "../../dist-BjwcGX3O.mjs";
1
+ import { Tt as filesystemBrowseCapability, qn as BaseAddon, yn as storageProviderCapability } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { D as REDACTED_SECRET, Dn as withLocationMode, F as StorageLocationTypeSchema, Gt as mayWriteToLocation, I as StorageMigrationJobSchema, Jt as modeMayWrite, Lt as legacyModeOf, N as StorageCleanupJobSchema, Ot as gbToBytes, P as StorageLocationModeSchema, St as evictionPolicyOfLocation, Wt as mayReadLocation, X as collectSecretConfigKeys, _n as storageMigrationCapability, _r as EventCategory, dr as parseJsonObject, gn as storageCapability, jt as isLocationEnabled, pn as settingsStoreCapability, qn as BaseAddon, sn as resolveLocationMode, x as LegacyStorageLocationDefaultSchema } from "../../dist-BjwcGX3O.mjs";
1
+ import { D as REDACTED_SECRET, Dn as withLocationMode, F as StorageLocationTypeSchema, Gt as mayWriteToLocation, I as StorageMigrationJobSchema, Jt as modeMayWrite, Lt as legacyModeOf, N as StorageCleanupJobSchema, Ot as gbToBytes, P as StorageLocationModeSchema, St as evictionPolicyOfLocation, Wt as mayReadLocation, X as collectSecretConfigKeys, _n as storageMigrationCapability, _r as EventCategory, dr as parseJsonObject, gn as storageCapability, jt as isLocationEnabled, pn as settingsStoreCapability, qn as BaseAddon, sn as resolveLocationMode, x as LegacyStorageLocationDefaultSchema } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Kn as errMsg, qn as BaseAddon, sr as hydrateSchema } from "../../dist-BjwcGX3O.mjs";
1
+ import { Kn as errMsg, qn as BaseAddon, sr as hydrateSchema } from "../../dist-DM0Ht3af.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-DZtw79V-.js");
6
+ const require_dist = require("../../dist-DM-F-y2o.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 { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-BjwcGX3O.mjs";
1
+ import { Vt as logDestinationCapability, qn as BaseAddon } from "../../dist-DM0Ht3af.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";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-DZtw79V-.js");
1
+ const require_dist = require("./dist-DM-F-y2o.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Kn as errMsg, Rn as compositionSourceKey } from "./dist-BjwcGX3O.mjs";
1
+ import { Kn as errMsg, Rn as compositionSourceKey } from "./dist-DM0Ht3af.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -19896,8 +19896,14 @@ var NcSensorTransitionSchema = zod.z.enum(["raised", "cleared"]);
19896
19896
  /** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
19897
19897
  var NcZoneConditionSchema = zod.z.object({
19898
19898
  ids: zod.z.array(zod.z.string().min(1)).min(1),
19899
- /** Quantifier over `ids` — at least one / every one visited. */
19900
- match: zod.z.enum(["any", "all"]).default("any")
19899
+ /**
19900
+ * LEGACY quantifier over `ids`. Absent = `any` (at least one visited), which
19901
+ * is what both editors mean and all they write since D690: "all of" was
19902
+ * removed from the editors because on an immediate rule it asked one
19903
+ * detection to stand in every zone at once. Still ACCEPTED, and `all` still
19904
+ * evaluated, so a stored rule keeps parsing and meaning what it meant.
19905
+ */
19906
+ match: zod.z.enum(["any", "all"]).optional()
19901
19907
  });
19902
19908
  /**
19903
19909
  * The P1 condition set — a flat AND of groups; absent group = pass;
@@ -24050,13 +24056,19 @@ var pipelineAnalyticsCapability = {
24050
24056
  *
24051
24057
  * Operator-driven from the DI Events page (batch delete). Routes through
24052
24058
  * the same widened track-deletion cascade (design §5.2).
24059
+ *
24060
+ * `sparedMediaIds` (D683 Task 14): media rows the cascade LEFT because a
24061
+ * live stationary entry vouches for them (its key frame, owned by a track
24062
+ * that moved and was kept). Released when the entry retires. Optional:
24063
+ * absent from a provider that predates it.
24053
24064
  */
24054
24065
  deleteTracks: method(zod.z.object({
24055
24066
  deviceId: zod.z.number(),
24056
24067
  trackIds: zod.z.array(zod.z.string()).min(1)
24057
24068
  }), zod.z.object({
24058
24069
  deleted: zod.z.number().int(),
24059
- failed: zod.z.array(zod.z.string()).readonly()
24070
+ failed: zod.z.array(zod.z.string()).readonly(),
24071
+ sparedMediaIds: zod.z.array(zod.z.number().int()).readonly().optional()
24060
24072
  }), {
24061
24073
  kind: "mutation",
24062
24074
  auth: "admin"
@@ -27185,6 +27197,25 @@ var SetCameraSensorsInputSchema = zod.z.object({
27185
27197
  /** `null` removes the attachment: the camera goes back to `not-configured`. */
27186
27198
  config: CameraSensorsConfigSchema.nullable()
27187
27199
  });
27200
+ /**
27201
+ * Why an early occupancy look (D691) was not scheduled.
27202
+ *
27203
+ * - `unknown-camera` — no session was ever dispatched for it, so there is no
27204
+ * node and no config to attach a burst with.
27205
+ * - `out-of-range` — the ask is negative or further out than the orchestrator
27206
+ * will hold a timer for; the parked-object cadence is the answer there.
27207
+ * - `no-burst-producer` — this build has no burst producer at all.
27208
+ * - `already-looked` — this camera's ONE early look since its last session has
27209
+ * been spent. A look's own burst can re-arm a flickering flip, and a look
27210
+ * per arm would chain a burst every ~30 s forever (review H2); the next
27211
+ * real session re-arms the budget.
27212
+ */
27213
+ var OccupancyLookRefusalSchema = zod.z.enum([
27214
+ "unknown-camera",
27215
+ "out-of-range",
27216
+ "no-burst-producer",
27217
+ "already-looked"
27218
+ ]);
27188
27219
  var pipelineOrchestratorCapability = {
27189
27220
  name: "pipeline-orchestrator",
27190
27221
  scope: "system",
@@ -27192,6 +27223,32 @@ var pipelineOrchestratorCapability = {
27192
27223
  nodeIdMode: "data",
27193
27224
  exposesDeviceSettings: true,
27194
27225
  methods: {
27226
+ /**
27227
+ * D691 — an occupancy flip is pending on this camera and can commit
27228
+ * `afterMs` from now: dial ONE occupancy burst at the end of its sustain
27229
+ * window instead of leaving the commit to the 300 s parked-object cadence.
27230
+ * Called by the notification centre, the only component that knows a flip
27231
+ * is pending; the dial is the recheck's own (attach on the last session
27232
+ * node, `requestOccupancyBurst`, detach). One pending look per camera; a
27233
+ * session open at the due time is the look, and no burst is dialled.
27234
+ */
27235
+ requestOccupancyLook: method(zod.z.object({
27236
+ deviceId: zod.z.number().int().nonnegative(),
27237
+ /** How long from NOW until the pending flip's sustain window ends. RELATIVE,
27238
+ * so the caller's clock and the orchestrator's never have to agree. */
27239
+ afterMs: zod.z.number().finite(),
27240
+ /** Why, for the log. */
27241
+ reason: zod.z.string()
27242
+ }), zod.z.object({
27243
+ scheduled: zod.z.boolean(),
27244
+ /** When `scheduled`: how long until the burst is dialled. */
27245
+ dueInMs: zod.z.number().optional(),
27246
+ /** When not `scheduled`: why. */
27247
+ refusedBecause: OccupancyLookRefusalSchema.optional()
27248
+ }), {
27249
+ kind: "mutation",
27250
+ auth: "admin"
27251
+ }),
27195
27252
  /** Internal storage-migration participant lease. While held, dispatch
27196
27253
  * requests are accepted as pending but no new runner attachment starts. */
27197
27254
  pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ paused: zod.z.literal(true) }), {
@@ -52227,6 +52284,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52227
52284
  addonId: null,
52228
52285
  access: "delete"
52229
52286
  },
52287
+ "pipelineOrchestrator.requestOccupancyLook": {
52288
+ capName: "pipeline-orchestrator",
52289
+ capScope: "system",
52290
+ addonId: null,
52291
+ access: "create"
52292
+ },
52230
52293
  "pipelineOrchestrator.resetNodePipelineDefaults": {
52231
52294
  capName: "pipeline-orchestrator",
52232
52295
  capScope: "system",
@@ -56019,6 +56082,11 @@ Object.freeze({
56019
56082
  form: "single",
56020
56083
  optional: false
56021
56084
  }],
56085
+ "pipelineOrchestrator.requestOccupancyLook": [{
56086
+ name: "deviceId",
56087
+ form: "single",
56088
+ optional: false
56089
+ }],
56022
56090
  "pipelineOrchestrator.resolvePipeline": [{
56023
56091
  name: "deviceId",
56024
56092
  form: "single",
@@ -57556,6 +57624,37 @@ var STATE_SUMMARY_VARS = [
57556
57624
  [...RULE_TEXT],
57557
57625
  ...STATE_SUMMARY_VARS
57558
57626
  ];
57627
+ new Set([
57628
+ "disarmed",
57629
+ "armed_home",
57630
+ "armed_away",
57631
+ "armed_night",
57632
+ "armed_vacation",
57633
+ "armed_custom_bypass",
57634
+ "arming",
57635
+ "disarming",
57636
+ "pending",
57637
+ "triggered",
57638
+ "open",
57639
+ "opening",
57640
+ "closing",
57641
+ "closed",
57642
+ "stopped",
57643
+ "locked",
57644
+ "unlocked",
57645
+ "locking",
57646
+ "unlocking",
57647
+ "jammed",
57648
+ "on",
57649
+ "off",
57650
+ "home",
57651
+ "not_home",
57652
+ "matched",
57653
+ "diverged",
57654
+ "unknown",
57655
+ "latched",
57656
+ "live"
57657
+ ]);
57559
57658
  /**
57560
57659
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
57561
57660
  *
@@ -19896,8 +19896,14 @@ var NcSensorTransitionSchema = z.enum(["raised", "cleared"]);
19896
19896
  /** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
19897
19897
  var NcZoneConditionSchema = z.object({
19898
19898
  ids: z.array(z.string().min(1)).min(1),
19899
- /** Quantifier over `ids` — at least one / every one visited. */
19900
- match: z.enum(["any", "all"]).default("any")
19899
+ /**
19900
+ * LEGACY quantifier over `ids`. Absent = `any` (at least one visited), which
19901
+ * is what both editors mean and all they write since D690: "all of" was
19902
+ * removed from the editors because on an immediate rule it asked one
19903
+ * detection to stand in every zone at once. Still ACCEPTED, and `all` still
19904
+ * evaluated, so a stored rule keeps parsing and meaning what it meant.
19905
+ */
19906
+ match: z.enum(["any", "all"]).optional()
19901
19907
  });
19902
19908
  /**
19903
19909
  * The P1 condition set — a flat AND of groups; absent group = pass;
@@ -24050,13 +24056,19 @@ var pipelineAnalyticsCapability = {
24050
24056
  *
24051
24057
  * Operator-driven from the DI Events page (batch delete). Routes through
24052
24058
  * the same widened track-deletion cascade (design §5.2).
24059
+ *
24060
+ * `sparedMediaIds` (D683 Task 14): media rows the cascade LEFT because a
24061
+ * live stationary entry vouches for them (its key frame, owned by a track
24062
+ * that moved and was kept). Released when the entry retires. Optional:
24063
+ * absent from a provider that predates it.
24053
24064
  */
24054
24065
  deleteTracks: method(z.object({
24055
24066
  deviceId: z.number(),
24056
24067
  trackIds: z.array(z.string()).min(1)
24057
24068
  }), z.object({
24058
24069
  deleted: z.number().int(),
24059
- failed: z.array(z.string()).readonly()
24070
+ failed: z.array(z.string()).readonly(),
24071
+ sparedMediaIds: z.array(z.number().int()).readonly().optional()
24060
24072
  }), {
24061
24073
  kind: "mutation",
24062
24074
  auth: "admin"
@@ -27185,6 +27197,25 @@ var SetCameraSensorsInputSchema = z.object({
27185
27197
  /** `null` removes the attachment: the camera goes back to `not-configured`. */
27186
27198
  config: CameraSensorsConfigSchema.nullable()
27187
27199
  });
27200
+ /**
27201
+ * Why an early occupancy look (D691) was not scheduled.
27202
+ *
27203
+ * - `unknown-camera` — no session was ever dispatched for it, so there is no
27204
+ * node and no config to attach a burst with.
27205
+ * - `out-of-range` — the ask is negative or further out than the orchestrator
27206
+ * will hold a timer for; the parked-object cadence is the answer there.
27207
+ * - `no-burst-producer` — this build has no burst producer at all.
27208
+ * - `already-looked` — this camera's ONE early look since its last session has
27209
+ * been spent. A look's own burst can re-arm a flickering flip, and a look
27210
+ * per arm would chain a burst every ~30 s forever (review H2); the next
27211
+ * real session re-arms the budget.
27212
+ */
27213
+ var OccupancyLookRefusalSchema = z.enum([
27214
+ "unknown-camera",
27215
+ "out-of-range",
27216
+ "no-burst-producer",
27217
+ "already-looked"
27218
+ ]);
27188
27219
  var pipelineOrchestratorCapability = {
27189
27220
  name: "pipeline-orchestrator",
27190
27221
  scope: "system",
@@ -27192,6 +27223,32 @@ var pipelineOrchestratorCapability = {
27192
27223
  nodeIdMode: "data",
27193
27224
  exposesDeviceSettings: true,
27194
27225
  methods: {
27226
+ /**
27227
+ * D691 — an occupancy flip is pending on this camera and can commit
27228
+ * `afterMs` from now: dial ONE occupancy burst at the end of its sustain
27229
+ * window instead of leaving the commit to the 300 s parked-object cadence.
27230
+ * Called by the notification centre, the only component that knows a flip
27231
+ * is pending; the dial is the recheck's own (attach on the last session
27232
+ * node, `requestOccupancyBurst`, detach). One pending look per camera; a
27233
+ * session open at the due time is the look, and no burst is dialled.
27234
+ */
27235
+ requestOccupancyLook: method(z.object({
27236
+ deviceId: z.number().int().nonnegative(),
27237
+ /** How long from NOW until the pending flip's sustain window ends. RELATIVE,
27238
+ * so the caller's clock and the orchestrator's never have to agree. */
27239
+ afterMs: z.number().finite(),
27240
+ /** Why, for the log. */
27241
+ reason: z.string()
27242
+ }), z.object({
27243
+ scheduled: z.boolean(),
27244
+ /** When `scheduled`: how long until the burst is dialled. */
27245
+ dueInMs: z.number().optional(),
27246
+ /** When not `scheduled`: why. */
27247
+ refusedBecause: OccupancyLookRefusalSchema.optional()
27248
+ }), {
27249
+ kind: "mutation",
27250
+ auth: "admin"
27251
+ }),
27195
27252
  /** Internal storage-migration participant lease. While held, dispatch
27196
27253
  * requests are accepted as pending but no new runner attachment starts. */
27197
27254
  pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, z.object({ paused: z.literal(true) }), {
@@ -52227,6 +52284,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52227
52284
  addonId: null,
52228
52285
  access: "delete"
52229
52286
  },
52287
+ "pipelineOrchestrator.requestOccupancyLook": {
52288
+ capName: "pipeline-orchestrator",
52289
+ capScope: "system",
52290
+ addonId: null,
52291
+ access: "create"
52292
+ },
52230
52293
  "pipelineOrchestrator.resetNodePipelineDefaults": {
52231
52294
  capName: "pipeline-orchestrator",
52232
52295
  capScope: "system",
@@ -56019,6 +56082,11 @@ Object.freeze({
56019
56082
  form: "single",
56020
56083
  optional: false
56021
56084
  }],
56085
+ "pipelineOrchestrator.requestOccupancyLook": [{
56086
+ name: "deviceId",
56087
+ form: "single",
56088
+ optional: false
56089
+ }],
56022
56090
  "pipelineOrchestrator.resolvePipeline": [{
56023
56091
  name: "deviceId",
56024
56092
  form: "single",
@@ -57556,6 +57624,37 @@ var STATE_SUMMARY_VARS = [
57556
57624
  [...RULE_TEXT],
57557
57625
  ...STATE_SUMMARY_VARS
57558
57626
  ];
57627
+ new Set([
57628
+ "disarmed",
57629
+ "armed_home",
57630
+ "armed_away",
57631
+ "armed_night",
57632
+ "armed_vacation",
57633
+ "armed_custom_bypass",
57634
+ "arming",
57635
+ "disarming",
57636
+ "pending",
57637
+ "triggered",
57638
+ "open",
57639
+ "opening",
57640
+ "closing",
57641
+ "closed",
57642
+ "stopped",
57643
+ "locked",
57644
+ "unlocked",
57645
+ "locking",
57646
+ "unlocking",
57647
+ "jammed",
57648
+ "on",
57649
+ "off",
57650
+ "home",
57651
+ "not_home",
57652
+ "matched",
57653
+ "diverged",
57654
+ "unknown",
57655
+ "latched",
57656
+ "live"
57657
+ ]);
57559
57658
  /**
57560
57659
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
57561
57660
  *
package/dist/index.js CHANGED
@@ -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-DZtw79V-.js");
3
+ const require_dist = require("./dist-DM-F-y2o.js");
4
4
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
5
5
  require("./builtins/alerts/index.js");
6
6
  const require_builtins_composer_composer_addon = require("./builtins/composer/composer.addon.js");
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
2
- import { At as isCollectionArrayMethod, C as METHOD_ACCESS_MAP, Ft as kebabToCamel, Ht as logLevelAtMost, Jn as DATAPLANE_SECRET_HEADER$1, Kn as errMsg$1, Mt as isObjectInput, O as RUNTIME_DEFAULTS, Pt as isVoidInput, Qn as ReadinessTimeoutError, Qt as objectInputDeclaresRequiredDeviceId, Rt as lifecycleJobSchema, Ut as looseSchema, Xn as DEVICE_STATUS_METHOD, Yn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Zn as ReadinessRegistry, Zt as objectInputDeclaresAddonId, _r as EventCategory$1, b as LOG_LEVEL_RANK, cn as resolveMethodAuth, dn as scopesAllowDeviceCap, dr as parseJsonObject, er as asJsonObject$1, fr as parseJsonUnknown, hr as scopeKey, ir as emitDownForOwnedCaps, kt as isArrayOutputSchema, mr as resolveCapMount, nn as procedureAuthKey, nr as asString$1, or as expandCapMethods, pr as readinessKey, rr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, tr as asNumber, un as scopesAllowAddon, wt as extractNestedAddonId, z as addonSettingsCapability } from "./dist-BjwcGX3O.mjs";
2
+ import { At as isCollectionArrayMethod, C as METHOD_ACCESS_MAP, Ft as kebabToCamel, Ht as logLevelAtMost, Jn as DATAPLANE_SECRET_HEADER$1, Kn as errMsg$1, Mt as isObjectInput, O as RUNTIME_DEFAULTS, Pt as isVoidInput, Qn as ReadinessTimeoutError, Qt as objectInputDeclaresRequiredDeviceId, Rt as lifecycleJobSchema, Ut as looseSchema, Xn as DEVICE_STATUS_METHOD, Yn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Zn as ReadinessRegistry, Zt as objectInputDeclaresAddonId, _r as EventCategory$1, b as LOG_LEVEL_RANK, cn as resolveMethodAuth, dn as scopesAllowDeviceCap, dr as parseJsonObject, er as asJsonObject$1, fr as parseJsonUnknown, hr as scopeKey, ir as emitDownForOwnedCaps, kt as isArrayOutputSchema, mr as resolveCapMount, nn as procedureAuthKey, nr as asString$1, or as expandCapMethods, pr as readinessKey, rr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, tr as asNumber, un as scopesAllowAddon, wt as extractNestedAddonId, z as addonSettingsCapability } from "./dist-DM0Ht3af.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { ComposerAddon } from "./builtins/composer/composer.addon.mjs";
@@ -1,4 +1,4 @@
1
- import { er as asJsonObject } from "./dist-BjwcGX3O.mjs";
1
+ import { er as asJsonObject } from "./dist-DM0Ht3af.mjs";
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-DZtw79V-.js");
1
+ const require_dist = require("./dist-DM-F-y2o.js");
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.325",
3
+ "version": "1.2.327",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",