@camstack/system 1.2.199 → 1.2.201

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 (54) 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/backup-orchestrator/backup-orchestrator.addon.d.ts +38 -9
  8. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +234 -81
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +234 -81
  10. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +32 -14
  11. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +12 -2
  12. package/dist/builtins/console-logging/index.js +1 -1
  13. package/dist/builtins/console-logging/index.mjs +1 -1
  14. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  15. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  16. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  17. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  18. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  19. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  20. package/dist/builtins/hub-forwarder/index.js +1 -1
  21. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  22. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  23. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  24. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  25. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  26. package/dist/builtins/local-network/local-network.addon.js +1 -1
  27. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  28. package/dist/builtins/loki-logging/index.js +1 -1
  29. package/dist/builtins/loki-logging/index.mjs +1 -1
  30. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  31. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  32. package/dist/builtins/platform-probe/index.js +1 -1
  33. package/dist/builtins/platform-probe/index.mjs +1 -1
  34. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  35. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  36. package/dist/builtins/snapshot/index.js +1 -1
  37. package/dist/builtins/snapshot/index.mjs +1 -1
  38. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  39. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  40. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  41. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  42. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  43. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  44. package/dist/builtins/system-config/system-config.addon.js +1 -1
  45. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  46. package/dist/builtins/winston-logging/index.js +1 -1
  47. package/dist/builtins/winston-logging/index.mjs +1 -1
  48. package/dist/{dist-BSSH6C-h.mjs → dist-BmJNnb_s.mjs} +52 -18
  49. package/dist/{dist-HAP38XvL.js → dist-CcV3k-hD.js} +52 -18
  50. package/dist/index.js +1 -1
  51. package/dist/index.mjs +1 -1
  52. package/dist/{retired-settings-keys-BYiTW-q4.js → retired-settings-keys-Bd8fuwO1.js} +1 -1
  53. package/dist/{retired-settings-keys-DAl6xuAs.mjs → retired-settings-keys-nLVKlhe-.mjs} +1 -1
  54. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BSSH6C-h.mjs";
1
+ import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
3
+ const require_dist = require("../../dist-CcV3k-hD.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 { Ft as errMsg, It as BaseAddon, L as coreBlockAddonId, R as coreBlockIdFromAddonId, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, s as CORE_BLOCKS_ADDON_ID, z as coreBlocksCapability } from "../../dist-BSSH6C-h.mjs";
1
+ import { Ft as errMsg, It as BaseAddon, L as coreBlockAddonId, R as coreBlockIdFromAddonId, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, s as CORE_BLOCKS_ADDON_ID, z as coreBlocksCapability } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-BYiTW-q4.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-Bd8fuwO1.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 { Bt as DeviceFeature, F as buildStreamParamsConfigSchema, Ft as errMsg, G as deviceStatusCapability, Gt as WELL_KNOWN_TAB_MAP, Ht as DeviceType, It as BaseAddon, J as enumerateItemArrayFields, St as runtimeStatePolicyFor, U as deviceManagerCapability, Vt as DeviceRole, W as deviceStateCapability, Y as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bt as resolveContainerPrimaryChild, cn as EventCategory, en as isDeviceConfigCap, f as DeviceStatusSchema, ht as parseStreamParamsFormPatch, o as CAP_NAMES_WITH_STATUS, pt as normalizeUnit, sn as sleep, t as ALL_CAPABILITY_DEFINITIONS, x as STREAM_PROFILE_META } from "../../dist-BSSH6C-h.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DAl6xuAs.mjs";
1
+ import { Bt as DeviceFeature, F as buildStreamParamsConfigSchema, Ft as errMsg, G as deviceStatusCapability, Gt as WELL_KNOWN_TAB_MAP, Ht as DeviceType, It as BaseAddon, J as enumerateItemArrayFields, St as runtimeStatePolicyFor, U as deviceManagerCapability, Vt as DeviceRole, W as deviceStateCapability, Y as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bt as resolveContainerPrimaryChild, cn as EventCategory, en as isDeviceConfigCap, f as DeviceStatusSchema, ht as parseStreamParamsFormPatch, o as CAP_NAMES_WITH_STATUS, pt as normalizeUnit, sn as sleep, t as ALL_CAPABILITY_DEFINITIONS, x as STREAM_PROFILE_META } from "../../dist-BmJNnb_s.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-nLVKlhe-.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { Ft as errMsg, Ht as DeviceType, It as BaseAddon, K as doorbellCapability, N as bareAddonId, X as evaluateSensorEdge, Yt as createEvent, cn as EventCategory, it as isSourceCap, rt as isSameAddonId, v as SOURCE_CAPS, y as SOURCE_DEVICE_TYPES } from "../../dist-BSSH6C-h.mjs";
1
+ import { Ft as errMsg, Ht as DeviceType, It as BaseAddon, K as doorbellCapability, N as bareAddonId, X as evaluateSensorEdge, Yt as createEvent, cn as EventCategory, it as isSourceCap, rt as isSameAddonId, v as SOURCE_CAPS, y as SOURCE_DEVICE_TYPES } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BSSH6C-h.mjs";
1
+ import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
3
+ const require_dist = require("../../dist-CcV3k-hD.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 { Ft as errMsg, It as BaseAddon, Yt as createEvent, _ as RecordingStatusSchema, cn as EventCategory } from "../../dist-BSSH6C-h.mjs";
1
+ import { Ft as errMsg, It as BaseAddon, Yt as createEvent, _ as RecordingStatusSchema, cn as EventCategory } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { E as UserRecordSchema, It as BaseAddon, Mt as userManagementCapability, S as ScopedTokenSchema, j as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-BSSH6C-h.mjs";
2
+ import { E as UserRecordSchema, It as BaseAddon, Mt as userManagementCapability, S as ScopedTokenSchema, j as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
3
+ const require_dist = require("../../dist-CcV3k-hD.js");
4
4
  const require_tls = require("../../tls-BxQlomxd.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 { It as BaseAddon, cn as EventCategory, ct as localNetworkCapability } from "../../dist-BSSH6C-h.mjs";
1
+ import { It as BaseAddon, cn as EventCategory, ct as localNetworkCapability } from "../../dist-BmJNnb_s.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-DOTmtLCW.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BSSH6C-h.mjs";
1
+ import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_child_process = require("node:child_process");
9
9
  let node_util = require("node:util");
@@ -1,4 +1,4 @@
1
- import { $ as foldSnapshotByFunction, Ft as errMsg, It as BaseAddon, Yt as createEvent, cn as EventCategory, ft as metricsProviderCapability, vt as reducePoints, yt as resolveBucketMs } from "../../dist-BSSH6C-h.mjs";
1
+ import { $ as foldSnapshotByFunction, Ft as errMsg, It as BaseAddon, Yt as createEvent, cn as EventCategory, ft as metricsProviderCapability, vt as reducePoints, yt as resolveBucketMs } from "../../dist-BmJNnb_s.mjs";
2
2
  import { readFile, readdir } from "node:fs/promises";
3
3
  import { execFile, execFileSync } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.js");
7
7
  let node_child_process = require("node:child_process");
8
8
  let node_util = require("node:util");
9
9
  let node_fs = require("node:fs");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Ft as errMsg, It as BaseAddon, Tt as scoreRuntimes, Zt as emitReadiness, cn as EventCategory, gt as platformProbeCapability, q as enumerateInferenceDevices } from "../../dist-BSSH6C-h.mjs";
2
+ import { Ft as errMsg, It as BaseAddon, Tt as scoreRuntimes, Zt as emitReadiness, cn as EventCategory, gt as platformProbeCapability, q as enumerateInferenceDevices } from "../../dist-BmJNnb_s.mjs";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
5
5
  import * as fs from "node:fs";
@@ -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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { It as BaseAddon, cn as EventCategory } from "../../dist-BSSH6C-h.mjs";
1
+ import { It as BaseAddon, cn as EventCategory } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.js");
7
7
  let zod = require("zod");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,4 +1,4 @@
1
- import { Bt as DeviceFeature, Dt as snapshotCapability, Ft as errMsg, H as deriveBatteryPresence, Ht as DeviceType, It as BaseAddon, N as bareAddonId, P as batteryCapability, cn as EventCategory, i as BatteryStatusSchema, jt as streamQualityLabel, tn as nodePin } from "../../dist-BSSH6C-h.mjs";
1
+ import { Bt as DeviceFeature, Dt as snapshotCapability, Ft as errMsg, H as deriveBatteryPresence, Ht as DeviceType, It as BaseAddon, N as bareAddonId, P as batteryCapability, cn as EventCategory, i as BatteryStatusSchema, jt as streamQualityLabel, tn as nodePin } from "../../dist-BmJNnb_s.mjs";
2
2
  import { z } from "zod";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { signExpiringUrl, verifyExpiringUrl } from "@camstack/types/node";
@@ -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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { At as storageProviderCapability, It as BaseAddon, Q as filesystemBrowseCapability } from "../../dist-BSSH6C-h.mjs";
1
+ import { At as storageProviderCapability, It as BaseAddon, Q as filesystemBrowseCapability } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { C as StorageCleanupJobSchema, Et as settingsStoreCapability, I as collectSecretConfigKeys, It as BaseAddon, Ot as storageCapability, T as StorageMigrationJobSchema, h as REDACTED_SECRET, kt as storageMigrationCapability, nn as parseJsonObject, w as StorageLocationTypeSchema } from "../../dist-BSSH6C-h.mjs";
1
+ import { C as StorageCleanupJobSchema, Et as settingsStoreCapability, I as collectSecretConfigKeys, It as BaseAddon, Ot as storageCapability, T as StorageMigrationJobSchema, h as REDACTED_SECRET, kt as storageMigrationCapability, nn as parseJsonObject, w as StorageLocationTypeSchema } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { $t as hydrateSchema, Ft as errMsg, It as BaseAddon } from "../../dist-BSSH6C-h.mjs";
1
+ import { $t as hydrateSchema, Ft as errMsg, It as BaseAddon } from "../../dist-BmJNnb_s.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-HAP38XvL.js");
6
+ const require_dist = require("../../dist-CcV3k-hD.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 { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BSSH6C-h.mjs";
1
+ import { It as BaseAddon, lt as logDestinationCapability } from "../../dist-BmJNnb_s.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";
@@ -4151,13 +4151,28 @@ var RecordingBandSchema = z.object({
4151
4151
  end: z.string().regex(HHMM),
4152
4152
  mode: RecordingBandModeSchema,
4153
4153
  triggers: RecordingBandTriggersSchema.optional(),
4154
+ /**
4155
+ * RETIRED (D381). A band no longer carries a pre-buffer of its own.
4156
+ *
4157
+ * It was the retroactive KEEP bound — which already-written segments survive
4158
+ * a trigger — and it had to be at least as wide as the widest pre-roll the
4159
+ * broker could serve, or the gate would delete the seconds the ring had just
4160
+ * handed the writer. That "at least as wide as" is the tell: it was a second
4161
+ * expression of the broker's retention, in different units, in a different
4162
+ * addon, with an invariant the operator had to maintain by hand. The keep
4163
+ * bound is now derived from the one prebuffer ceiling and there is nothing
4164
+ * left to configure here.
4165
+ *
4166
+ * The key survives in the SHAPE so a config written before that record still
4167
+ * parses and can be migrated deliberately — `RecordingBandSchema` is not
4168
+ * strict, so simply deleting it would strip an operator's value in silence on
4169
+ * the next save (the failure D380 came one commit from shipping). Nothing
4170
+ * reads it: {@link stripRetiredBandPreBufferSec} removes it on load.
4171
+ */
4154
4172
  preBufferSec: z.number().min(0).optional(),
4155
4173
  postBufferSec: z.number().min(0).optional()
4156
4174
  });
4157
- ({
4158
- preBufferSec: 15,
4159
- postBufferSec: 30
4160
- }).postBufferSec * 1e3;
4175
+ ({ postBufferSec: 30 }).postBufferSec * 1e3;
4161
4176
  /**
4162
4177
  * Per-device retention overrides. Every field is optional; an unset or `0`
4163
4178
  * value inherits the node-wide recorder default. Only footage-lifetime limits
@@ -7171,12 +7186,30 @@ var BackupDestinationInfoSchema = z.object({
7171
7186
  lastSuccessAt: z.number().optional(),
7172
7187
  /** Newest-archive size from `manifests.json`, or undefined. */
7173
7188
  lastSuccessSizeBytes: z.number().optional(),
7174
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
7189
+ /**
7190
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
7191
+ * destination, comma-joined. Absent when no enabled schedule targets it
7192
+ * — a destination nothing is scheduled to write to must not advertise a
7193
+ * cadence (D384). This is never the `backup_destination_policies.cron`
7194
+ * column: that per-location cron has scheduled nothing since 2026-07-28
7195
+ * and reading it made a destination with a DISABLED schedule claim a
7196
+ * nightly run.
7197
+ */
7175
7198
  cron: z.string().optional(),
7176
- /** ms-epoch of next computed firing for this destination's cron, if any. */
7199
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
7177
7200
  nextRunAt: z.number().optional(),
7178
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
7179
- lastRunAt: z.number().optional()
7201
+ /**
7202
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
7203
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
7204
+ * newest archive that actually landed) and `lastError`.
7205
+ */
7206
+ lastAttemptAt: z.number().optional(),
7207
+ /**
7208
+ * Why the last attempt failed, verbatim. Absent when the last attempt
7209
+ * landed the archive. A destination that has never been written to has
7210
+ * neither this nor `lastAttemptAt`.
7211
+ */
7212
+ lastError: z.string().optional()
7180
7213
  });
7181
7214
  /**
7182
7215
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -7339,8 +7372,16 @@ var BackupScheduleSchema = z.object({
7339
7372
  retentionCount: z.number().int().min(1).max(1e3),
7340
7373
  /** Optional subset of source locations to include; omitted = all. */
7341
7374
  dataSources: z.array(z.string()).readonly().optional(),
7342
- /** ms-epoch of last successful run. */
7343
- lastRunAt: z.number().optional(),
7375
+ /**
7376
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
7377
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
7378
+ * "succeeded" — a run refused by every destination stamps it too.
7379
+ */
7380
+ lastAttemptAt: z.number().optional(),
7381
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
7382
+ lastSuccessAt: z.number().optional(),
7383
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
7384
+ lastError: z.string().optional(),
7344
7385
  /** ms-epoch of next computed firing (read-only, filled on list). */
7345
7386
  nextRunAt: z.number().optional()
7346
7387
  });
@@ -7469,14 +7510,7 @@ var backupCapability = {
7469
7510
  locationId: z.string(),
7470
7511
  enabled: z.boolean(),
7471
7512
  retentionCount: z.number().int().min(1).max(1e3),
7472
- label: z.string().optional(),
7473
- /**
7474
- * Per-destination cron expression. Empty string clears the
7475
- * schedule (manual-only). Validated server-side via croner;
7476
- * malformed expressions reject the upsert with an actionable
7477
- * message.
7478
- */
7479
- cron: z.string().optional()
7513
+ label: z.string().optional()
7480
7514
  }), z.void(), {
7481
7515
  kind: "mutation",
7482
7516
  auth: "admin"
@@ -4151,13 +4151,28 @@ var RecordingBandSchema = zod.z.object({
4151
4151
  end: zod.z.string().regex(HHMM),
4152
4152
  mode: RecordingBandModeSchema,
4153
4153
  triggers: RecordingBandTriggersSchema.optional(),
4154
+ /**
4155
+ * RETIRED (D381). A band no longer carries a pre-buffer of its own.
4156
+ *
4157
+ * It was the retroactive KEEP bound — which already-written segments survive
4158
+ * a trigger — and it had to be at least as wide as the widest pre-roll the
4159
+ * broker could serve, or the gate would delete the seconds the ring had just
4160
+ * handed the writer. That "at least as wide as" is the tell: it was a second
4161
+ * expression of the broker's retention, in different units, in a different
4162
+ * addon, with an invariant the operator had to maintain by hand. The keep
4163
+ * bound is now derived from the one prebuffer ceiling and there is nothing
4164
+ * left to configure here.
4165
+ *
4166
+ * The key survives in the SHAPE so a config written before that record still
4167
+ * parses and can be migrated deliberately — `RecordingBandSchema` is not
4168
+ * strict, so simply deleting it would strip an operator's value in silence on
4169
+ * the next save (the failure D380 came one commit from shipping). Nothing
4170
+ * reads it: {@link stripRetiredBandPreBufferSec} removes it on load.
4171
+ */
4154
4172
  preBufferSec: zod.z.number().min(0).optional(),
4155
4173
  postBufferSec: zod.z.number().min(0).optional()
4156
4174
  });
4157
- ({
4158
- preBufferSec: 15,
4159
- postBufferSec: 30
4160
- }).postBufferSec * 1e3;
4175
+ ({ postBufferSec: 30 }).postBufferSec * 1e3;
4161
4176
  /**
4162
4177
  * Per-device retention overrides. Every field is optional; an unset or `0`
4163
4178
  * value inherits the node-wide recorder default. Only footage-lifetime limits
@@ -7171,12 +7186,30 @@ var BackupDestinationInfoSchema = zod.z.object({
7171
7186
  lastSuccessAt: zod.z.number().optional(),
7172
7187
  /** Newest-archive size from `manifests.json`, or undefined. */
7173
7188
  lastSuccessSizeBytes: zod.z.number().optional(),
7174
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
7189
+ /**
7190
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
7191
+ * destination, comma-joined. Absent when no enabled schedule targets it
7192
+ * — a destination nothing is scheduled to write to must not advertise a
7193
+ * cadence (D384). This is never the `backup_destination_policies.cron`
7194
+ * column: that per-location cron has scheduled nothing since 2026-07-28
7195
+ * and reading it made a destination with a DISABLED schedule claim a
7196
+ * nightly run.
7197
+ */
7175
7198
  cron: zod.z.string().optional(),
7176
- /** ms-epoch of next computed firing for this destination's cron, if any. */
7199
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
7177
7200
  nextRunAt: zod.z.number().optional(),
7178
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
7179
- lastRunAt: zod.z.number().optional()
7201
+ /**
7202
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
7203
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
7204
+ * newest archive that actually landed) and `lastError`.
7205
+ */
7206
+ lastAttemptAt: zod.z.number().optional(),
7207
+ /**
7208
+ * Why the last attempt failed, verbatim. Absent when the last attempt
7209
+ * landed the archive. A destination that has never been written to has
7210
+ * neither this nor `lastAttemptAt`.
7211
+ */
7212
+ lastError: zod.z.string().optional()
7180
7213
  });
7181
7214
  /**
7182
7215
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -7339,8 +7372,16 @@ var BackupScheduleSchema = zod.z.object({
7339
7372
  retentionCount: zod.z.number().int().min(1).max(1e3),
7340
7373
  /** Optional subset of source locations to include; omitted = all. */
7341
7374
  dataSources: zod.z.array(zod.z.string()).readonly().optional(),
7342
- /** ms-epoch of last successful run. */
7343
- lastRunAt: zod.z.number().optional(),
7375
+ /**
7376
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
7377
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
7378
+ * "succeeded" — a run refused by every destination stamps it too.
7379
+ */
7380
+ lastAttemptAt: zod.z.number().optional(),
7381
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
7382
+ lastSuccessAt: zod.z.number().optional(),
7383
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
7384
+ lastError: zod.z.string().optional(),
7344
7385
  /** ms-epoch of next computed firing (read-only, filled on list). */
7345
7386
  nextRunAt: zod.z.number().optional()
7346
7387
  });
@@ -7469,14 +7510,7 @@ var backupCapability = {
7469
7510
  locationId: zod.z.string(),
7470
7511
  enabled: zod.z.boolean(),
7471
7512
  retentionCount: zod.z.number().int().min(1).max(1e3),
7472
- label: zod.z.string().optional(),
7473
- /**
7474
- * Per-destination cron expression. Empty string clears the
7475
- * schedule (manual-only). Validated server-side via croner;
7476
- * malformed expressions reject the upsert with an actionable
7477
- * message.
7478
- */
7479
- cron: zod.z.string().optional()
7513
+ label: zod.z.string().optional()
7480
7514
  }), zod.z.void(), {
7481
7515
  kind: "mutation",
7482
7516
  auth: "admin"
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-HAP38XvL.js");
3
+ const require_dist = require("./dist-CcV3k-hD.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_formatter = require("./formatter-DqAKDlvN.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 { Ct as scopesAllowAddon, Ft as errMsg$1, Jt as asString$1, Kt as asJsonObject$1, Lt as DATAPLANE_SECRET_HEADER$1, O as addonSettingsCapability, Qt as expandCapMethods, Rt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Ut as ReadinessRegistry, Wt as ReadinessTimeoutError, Xt as emitDownForOwnedCaps, Yt as createEvent, Z as extractNestedAddonId, _t as procedureAuthKey, an as resolveCapMount, at as isVoidInput, cn as EventCategory$1, dt as looseSchema, et as isArrayOutputSchema, g as RUNTIME_DEFAULTS, in as readinessKey, m as METHOD_ACCESS_MAP, mt as objectInputDeclaresAddonId, nn as parseJsonObject, nt as isObjectInput, on as scopeKey, ot as kebabToCamel, p as LOG_LEVEL_RANK, qt as asNumber, rn as parseJsonUnknown, st as lifecycleJobSchema, t as ALL_CAPABILITY_DEFINITIONS, tt as isCollectionArrayMethod, ut as logLevelAtMost, wt as scopesAllowDeviceCap, xt as resolveMethodAuth, zt as DEVICE_STATUS_METHOD } from "./dist-BSSH6C-h.mjs";
2
+ import { Ct as scopesAllowAddon, Ft as errMsg$1, Jt as asString$1, Kt as asJsonObject$1, Lt as DATAPLANE_SECRET_HEADER$1, O as addonSettingsCapability, Qt as expandCapMethods, Rt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Ut as ReadinessRegistry, Wt as ReadinessTimeoutError, Xt as emitDownForOwnedCaps, Yt as createEvent, Z as extractNestedAddonId, _t as procedureAuthKey, an as resolveCapMount, at as isVoidInput, cn as EventCategory$1, dt as looseSchema, et as isArrayOutputSchema, g as RUNTIME_DEFAULTS, in as readinessKey, m as METHOD_ACCESS_MAP, mt as objectInputDeclaresAddonId, nn as parseJsonObject, nt as isObjectInput, on as scopeKey, ot as kebabToCamel, p as LOG_LEVEL_RANK, qt as asNumber, rn as parseJsonUnknown, st as lifecycleJobSchema, t as ALL_CAPABILITY_DEFINITIONS, tt as isCollectionArrayMethod, ut as logLevelAtMost, wt as scopesAllowDeviceCap, xt as resolveMethodAuth, zt as DEVICE_STATUS_METHOD } from "./dist-BmJNnb_s.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-HAP38XvL.js");
1
+ const require_dist = require("./dist-CcV3k-hD.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?
@@ -1,4 +1,4 @@
1
- import { Kt as asJsonObject } from "./dist-BSSH6C-h.mjs";
1
+ import { Kt as asJsonObject } from "./dist-BmJNnb_s.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?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.199",
3
+ "version": "1.2.201",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",