@camstack/system 1.2.471 → 1.2.473

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 (95) hide show
  1. package/dist/addon-runner.js +202 -8
  2. package/dist/addon-runner.mjs +203 -9
  3. package/dist/addon-utils.mjs +1 -1
  4. package/dist/{agent-https-bH6bKDeK.js → agent-https-B9Q3-IKd.js} +2 -5
  5. package/dist/{agent-https-DHBvFZJS.mjs → agent-https-DOwn4pqL.mjs} +3 -6
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  7. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +4 -4
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  9. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +5 -5
  10. package/dist/builtins/alerts/alerts.addon.js +1 -1
  11. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  12. package/dist/builtins/autotrack/index.js +1 -1
  13. package/dist/builtins/autotrack/index.mjs +1 -1
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  15. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +5 -5
  16. package/dist/builtins/calendars/calendars.addon.js +1 -1
  17. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  18. package/dist/builtins/camera-grid/index.js +1 -1
  19. package/dist/builtins/camera-grid/index.mjs +1 -1
  20. package/dist/builtins/composer/composer.addon.js +2 -2
  21. package/dist/builtins/composer/composer.addon.mjs +2 -2
  22. package/dist/builtins/console-logging/index.js +1 -1
  23. package/dist/builtins/console-logging/index.mjs +1 -1
  24. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  25. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  26. package/dist/builtins/device-history/device-history.addon.js +1 -1
  27. package/dist/builtins/device-history/device-history.addon.mjs +1 -1
  28. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  29. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  30. package/dist/builtins/hub-forwarder/index.js +1 -1
  31. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  32. package/dist/builtins/keychain/index.js +3 -3
  33. package/dist/builtins/keychain/index.mjs +3 -3
  34. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +9 -25
  35. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +240 -39
  36. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +237 -38
  37. package/dist/builtins/liveness-monitor/liveness-reporter.d.ts +28 -0
  38. package/dist/builtins/liveness-monitor/storage-root-access.d.ts +53 -0
  39. package/dist/builtins/local-auth/local-auth.addon.js +16 -2
  40. package/dist/builtins/local-auth/local-auth.addon.mjs +19 -5
  41. package/dist/builtins/local-auth/person-scopes.d.ts +7 -0
  42. package/dist/builtins/local-network/local-network.addon.js +2 -2
  43. package/dist/builtins/local-network/local-network.addon.mjs +2 -2
  44. package/dist/builtins/loki-logging/index.js +1 -1
  45. package/dist/builtins/loki-logging/index.mjs +1 -1
  46. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  47. package/dist/builtins/native-metrics/native-metrics.addon.mjs +10 -10
  48. package/dist/builtins/platform-probe/accelerator-facts-probe.d.ts +24 -0
  49. package/dist/builtins/platform-probe/index.js +110 -10
  50. package/dist/builtins/platform-probe/index.mjs +116 -17
  51. package/dist/builtins/platform-probe/platform-scorer.d.ts +10 -2
  52. package/dist/builtins/record-entries/index.js +1 -1
  53. package/dist/builtins/record-entries/index.mjs +1 -1
  54. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  55. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  56. package/dist/builtins/snapshot/index.js +1 -1
  57. package/dist/builtins/snapshot/index.mjs +1 -1
  58. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  59. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +20 -20
  60. package/dist/builtins/sqlite-storage/index.js +1 -1
  61. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  62. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +3 -3
  63. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +3 -3
  64. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  65. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  66. package/dist/builtins/system-config/system-config.addon.js +3 -3
  67. package/dist/builtins/system-config/system-config.addon.mjs +115 -115
  68. package/dist/builtins/winston-logging/index.js +1 -1
  69. package/dist/builtins/winston-logging/index.mjs +1 -1
  70. package/dist/{composition-sources-B5uJZXZ1.js → composition-sources-Dj_nInUQ.js} +1 -1
  71. package/dist/{composition-sources-DRw_vBKH.mjs → composition-sources-cwD35HB0.mjs} +1 -1
  72. package/dist/{constants-CToE4OFp.js → constants-XkWSVvgY.js} +1 -1
  73. package/dist/{constants-5lA8Z9d8.mjs → constants-p5mPM1iL.mjs} +1 -1
  74. package/dist/{coral-accelerators-BW3OcrLD.mjs → coral-accelerators-DBlgWB8k.mjs} +6 -6
  75. package/dist/{custom-action-registry-BGYDjTqY.mjs → custom-action-registry-DZSCLBuT.mjs} +37 -37
  76. package/dist/{device-ca-nOCYVFS4.js → device-ca-BXzQ1pYj.js} +1 -1
  77. package/dist/{device-ca-URrs1lxK.mjs → device-ca-DyUtcpf4.mjs} +1 -1
  78. package/dist/{dist-BjcWEfRy.js → dist-Bmah6waF.js} +209 -266
  79. package/dist/{dist-5XUG7iYJ.mjs → dist-C9lbdBL5.mjs} +204 -267
  80. package/dist/file-host-worker.js +1 -1
  81. package/dist/file-host-worker.mjs +1 -1
  82. package/dist/{hub-mdns-ciao-zD3JojB_.mjs → hub-mdns-ciao-BemeCNGe.mjs} +2 -2
  83. package/dist/{hub-mdns-ciao-vEWhJ_SD.js → hub-mdns-ciao-CUr6ewsX.js} +2 -2
  84. package/dist/index.js +236 -16
  85. package/dist/index.mjs +455 -235
  86. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +24 -4
  87. package/dist/kernel/hwaccel/vaapi-init-probe.d.ts +29 -0
  88. package/dist/kernel/moleculer/runner-process-group.d.ts +4 -0
  89. package/dist/{restore-archive-CN1pJTRn.mjs → restore-archive-C0aohmAK.mjs} +94 -94
  90. package/dist/{restore-archive-B64m2nAj.js → restore-archive-DbPmyjiM.js} +1 -1
  91. package/dist/{retired-settings-keys-C_Kjp-Bj.mjs → retired-settings-keys-CWp7ZSeA.mjs} +8 -0
  92. package/dist/{retired-settings-keys-CGUqX-Oz.js → retired-settings-keys-DorakcxV.js} +8 -0
  93. package/dist/{wal-maintenance-BNXVX-ot.js → wal-maintenance-BT8Ns0W3.js} +0 -0
  94. package/dist/{wal-maintenance-Bl2I-ZcR.mjs → wal-maintenance-BuB731DK.mjs} +0 -0
  95. package/package.json +6 -6
@@ -1,4 +1,4 @@
1
- import { $r as errMsg, Da as EventCategory, Et as bareAddonId, I as FIRST_LEVEL_MACRO_CLASSES, ea as isEvent, ei as BaseAddon, tr as ptzAutotrackCapability } from "../../dist-5XUG7iYJ.mjs";
1
+ import { Et as bareAddonId, I as FIRST_LEVEL_MACRO_CLASSES, Oa as EventCategory, ei as errMsg, nr as ptzAutotrackCapability, ta as isEvent, ti as BaseAddon } from "../../dist-C9lbdBL5.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -3,9 +3,9 @@ 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-BjcWEfRy.js");
6
+ const require_dist = require("../../dist-Bmah6waF.js");
7
7
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
8
- const require_restore_archive = require("../../restore-archive-B64m2nAj.js");
8
+ const require_restore_archive = require("../../restore-archive-DbPmyjiM.js");
9
9
  let node_crypto = require("node:crypto");
10
10
  let node_fs_promises = require("node:fs/promises");
11
11
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,10 +1,10 @@
1
- import { Da as EventCategory, Er as storageOccupancyCapability, Sa as toNodeId, Tt as backupCapability, Vn as mayWriteToLocation, ca as nodePin, ei as BaseAddon } from "../../dist-5XUG7iYJ.mjs";
1
+ import { Ca as toNodeId, Dr as storageOccupancyCapability, Oa as EventCategory, Tt as backupCapability, Vn as mayWriteToLocation, la as nodePin, ti as BaseAddon } from "../../dist-C9lbdBL5.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
- import { _ as backupRecordStoresOf, a as BackupSnapshotRefusedError, d as ENCRYPTED_BACKUP_SUFFIX, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, i as BackupCancelledError, l as BackupKeyFormatError, m as parseBackupSecretKey, n as precheckRestoreKey, o as DEFAULT_BACKUP_DATABASES, p as parseBackupPublicKey, r as prepareRestoreArchive, s as SystemBackupService } from "../../restore-archive-CN1pJTRn.mjs";
3
+ import { _ as backupRecordStoresOf, a as BackupSnapshotRefusedError, d as ENCRYPTED_BACKUP_SUFFIX, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, i as BackupCancelledError, l as BackupKeyFormatError, m as parseBackupSecretKey, n as precheckRestoreKey, o as DEFAULT_BACKUP_DATABASES, p as parseBackupPublicKey, r as prepareRestoreArchive, s as SystemBackupService } from "../../restore-archive-C0aohmAK.mjs";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import * as fsp from "node:fs/promises";
6
6
  import * as path$1 from "node:path";
7
- import * as fs from "node:fs";
7
+ import * as fs$1 from "node:fs";
8
8
  //#region src/builtins/backup-orchestrator/backup-databases.ts
9
9
  /** Stable id of the seeded weekly schedule. */
10
10
  var WEEKLY_SCHEDULE_ID = "weekly-events-history";
@@ -1018,7 +1018,7 @@ async function downloadArchiveToCache(input) {
1018
1018
  location: input.locationId,
1019
1019
  relativePath: input.filename
1020
1020
  });
1021
- const writeStream = fs.createWriteStream(input.cachePath);
1021
+ const writeStream = fs$1.createWriteStream(input.cachePath);
1022
1022
  let offset = 0;
1023
1023
  try {
1024
1024
  while (offset < sizeBytes) {
@@ -2502,7 +2502,7 @@ var BackupOrchestratorAddon = class extends BaseAddon {
2502
2502
  });
2503
2503
  try {
2504
2504
  let offset = 0;
2505
- const stream = fs.createReadStream(input.cachePath, { highWaterMark: UPLOAD_CHUNK_BYTES });
2505
+ const stream = fs$1.createReadStream(input.cachePath, { highWaterMark: UPLOAD_CHUNK_BYTES });
2506
2506
  for await (const rawChunk of stream) {
2507
2507
  if (input.signal?.aborted) {
2508
2508
  stream.destroy();
@@ -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-BjcWEfRy.js");
6
+ const require_dist = require("../../dist-Bmah6waF.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/calendars/calendar-color.ts
@@ -1,4 +1,4 @@
1
- import { Ki as defineRecordKinds, Mt as calendarsCapability, ei as BaseAddon, g as CalendarPreferencesSchema } from "../../dist-5XUG7iYJ.mjs";
1
+ import { Mt as calendarsCapability, g as CalendarPreferencesSchema, qi as defineRecordKinds, ti as BaseAddon } from "../../dist-C9lbdBL5.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/calendars/calendar-color.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-BjcWEfRy.js");
6
+ const require_dist = require("../../dist-Bmah6waF.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 { $r as errMsg, Da as EventCategory, Gn as motionCapability, Hn as memoizePinnedFfmpeg, N as DeclaredDevices, Nt as cameraGridLayoutCapability, Or as streamCatalogCapability, Qi as hydrateSchema, Qr as DeviceType, T as DERIVED_CAMERA_SILENCED_CAP_NAMES, Ui as createEvent, X as MOTION_CLOSE_AFTER_MS, Xr as DeviceFeature, a as BaseDevice, ei as BaseAddon, qt as declarationOwnerNodeId, xr as snapshotCapability, zr as buildFfmpegArgs } from "../../dist-5XUG7iYJ.mjs";
1
+ import { $i as hydrateSchema, $r as DeviceType, Br as buildFfmpegArgs, Gn as motionCapability, Hn as memoizePinnedFfmpeg, N as DeclaredDevices, Nt as cameraGridLayoutCapability, Oa as EventCategory, Sr as snapshotCapability, T as DERIVED_CAMERA_SILENCED_CAP_NAMES, Wi as createEvent, X as MOTION_CLOSE_AFTER_MS, Zr as DeviceFeature, a as BaseDevice, ei as errMsg, kr as streamCatalogCapability, qt as declarationOwnerNodeId, ti as BaseAddon } from "../../dist-C9lbdBL5.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } 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-BjcWEfRy.js");
7
- const require_composition_sources = require("../../composition-sources-B5uJZXZ1.js");
6
+ const require_dist = require("../../dist-Bmah6waF.js");
7
+ const require_composition_sources = require("../../composition-sources-Dj_nInUQ.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/shared/device-state-changed.ts
10
10
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -1,5 +1,5 @@
1
- import { $r as errMsg, Br as cloneStatefulExpressionMemory, Da as EventCategory, Gr as compositionSliceKey, Hr as composedDeviceStableId, It as composerCapability, Jr as disarmRoseMemory, Kr as compositionSourceKey, Lt as compositionFieldKey, N as DeclaredDevices, Ot as buildCapabilityLookup, Qn as planComposition, Qr as DeviceType, Rr as COMPOSER_ADDON_ID, Ui as createEvent, Ur as compositionFeatureEnabled, Vr as composedDeviceRef, Wr as compositionItemFieldPath, Yr as toExpressionValue, a as BaseDevice, cn as evaluateCompositionField, d as COMPOSED_ITEM_FIXED_FIELDS, dn as expressionContainsBuiltinCall, ei as BaseAddon, qr as createStatefulExpressionMemory, r as ALL_CAPABILITY_DEFINITIONS } from "../../dist-5XUG7iYJ.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-DRw_vBKH.mjs";
1
+ import { $n as planComposition, $r as DeviceType, Gr as compositionItemFieldPath, Hr as composedDeviceRef, It as composerCapability, Jr as createStatefulExpressionMemory, Kr as compositionSliceKey, Lt as compositionFieldKey, N as DeclaredDevices, Oa as EventCategory, Ot as buildCapabilityLookup, Ur as composedDeviceStableId, Vr as cloneStatefulExpressionMemory, Wi as createEvent, Wr as compositionFeatureEnabled, Xr as toExpressionValue, Yr as disarmRoseMemory, a as BaseDevice, cn as evaluateCompositionField, d as COMPOSED_ITEM_FIXED_FIELDS, dn as expressionContainsBuiltinCall, ei as errMsg, qr as compositionSourceKey, r as ALL_CAPABILITY_DEFINITIONS, ti as BaseAddon, zr as COMPOSER_ADDON_ID } from "../../dist-C9lbdBL5.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-cwD35HB0.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/shared/device-state-changed.ts
5
5
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -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-BjcWEfRy.js");
6
+ const require_dist = require("../../dist-Bmah6waF.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 { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-5XUG7iYJ.mjs";
1
+ import { Ln as logDestinationCapability, ti as BaseAddon } from "../../dist-C9lbdBL5.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,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-BjcWEfRy.js");
3
+ const require_dist = require("../../dist-Bmah6waF.js");
4
4
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
5
- const require_composition_sources = require("../../composition-sources-B5uJZXZ1.js");
5
+ const require_composition_sources = require("../../composition-sources-Dj_nInUQ.js");
6
6
  const require_prefix_range = require("../../prefix-range-D_KueXbQ.js");
7
7
  const require_prefix_walk = require("../../prefix-walk-Dv6MLZlM.js");
8
8
  let zod = require("zod");
@@ -1,6 +1,6 @@
1
- import { $r as errMsg, Bt as coreBlockComposition, Ht as coreBlockSourceKind, Ki as defineRecordKinds, Kn as normalizeCoreBlockWrite, Kr as compositionSourceKey, Mr as validateComposition, N as DeclaredDevices, Ot as buildCapabilityLookup, Qi as hydrateSchema, Qn as planComposition, Rt as compositionSourceRefs, Ut as coreBlocksCapability, Vi as collectSecretMarkerRefs, Vr as composedDeviceRef, Vt as coreBlockIdFromAddonId, Zt as describeComposableCaps, _a as resolveSecretMarkers, aa as isSecretRefOwnedBy, ar as replacedFieldKeys, ba as secretTreeFromSchema, cr as resolveCoreBlockEntry, ei as BaseAddon, f as COMPOSER_RUNNER_ID, lr as resolveCoreBlockFiles, m as CORE_BLOCK_ADDON_PREFIX, p as CORE_BLOCKS_ADDON_ID, r as ALL_CAPABILITY_DEFINITIONS, ra as isSecretMarker, v as CoreBlockSchema, wa as transformSecretWrite, zt as coreBlockAddonId } from "../../dist-5XUG7iYJ.mjs";
1
+ import { $i as hydrateSchema, $n as planComposition, Bt as coreBlockComposition, Hi as collectSecretMarkerRefs, Hr as composedDeviceRef, Ht as coreBlockSourceKind, Kn as normalizeCoreBlockWrite, N as DeclaredDevices, Nr as validateComposition, Ot as buildCapabilityLookup, Rt as compositionSourceRefs, Ta as transformSecretWrite, Ut as coreBlocksCapability, Vt as coreBlockIdFromAddonId, Zt as describeComposableCaps, ei as errMsg, f as COMPOSER_RUNNER_ID, ia as isSecretMarker, lr as resolveCoreBlockEntry, m as CORE_BLOCK_ADDON_PREFIX, oa as isSecretRefOwnedBy, or as replacedFieldKeys, p as CORE_BLOCKS_ADDON_ID, qi as defineRecordKinds, qr as compositionSourceKey, r as ALL_CAPABILITY_DEFINITIONS, ti as BaseAddon, ur as resolveCoreBlockFiles, v as CoreBlockSchema, va as resolveSecretMarkers, xa as secretTreeFromSchema, zt as coreBlockAddonId } from "../../dist-C9lbdBL5.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
- import { t as describeCompositionSources } from "../../composition-sources-DRw_vBKH.mjs";
3
+ import { t as describeCompositionSources } from "../../composition-sources-cwD35HB0.mjs";
4
4
  import { t as prefixRange } from "../../prefix-range-Dl0znowN.mjs";
5
5
  import { n as unwrapStoredValue, t as loadPrefixed } from "../../prefix-walk-DAOBSyH1.mjs";
6
6
  import { createRequire } from "node:module";
@@ -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-BjcWEfRy.js");
6
+ const require_dist = require("../../dist-Bmah6waF.js");
7
7
  //#region src/builtins/device-history/time/bucket-time.ts
8
8
  /**
9
9
  * Bucket arithmetic for the three rollup tiers (D850, plan §4/§5.5).
@@ -1,4 +1,4 @@
1
- import { B as HISTORY_ITEM_CATALOG, Ct as armRemovalReconcile, D as DEVICE_HISTORY_ENERGY_KEY, Da as EventCategory, Ji as emitReadiness, Qr as DeviceType, Zi as historyItemFieldPath, ei as BaseAddon, en as deviceHistoryCapability, li as HISTORY_DEFAULT_MIN_INTERVAL_MS, nn as deviceRemovalHookCapability, z as HISTORY_CATALOG } from "../../dist-5XUG7iYJ.mjs";
1
+ import { $r as DeviceType, B as HISTORY_ITEM_CATALOG, Ct as armRemovalReconcile, D as DEVICE_HISTORY_ENERGY_KEY, Oa as EventCategory, Qi as historyItemFieldPath, Yi as emitReadiness, en as deviceHistoryCapability, nn as deviceRemovalHookCapability, ti as BaseAddon, ui as HISTORY_DEFAULT_MIN_INTERVAL_MS, z as HISTORY_CATALOG } from "../../dist-C9lbdBL5.mjs";
2
2
  //#region src/builtins/device-history/time/bucket-time.ts
3
3
  /**
4
4
  * Bucket arithmetic for the three rollup tiers (D850, plan §4/§5.5).
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-BjcWEfRy.js");
6
+ const require_dist = require("../../dist-Bmah6waF.js");
7
7
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
8
8
  const require_prefix_range = require("../../prefix-range-D_KueXbQ.js");
9
9
  const require_prefix_walk = require("../../prefix-walk-Dv6MLZlM.js");
10
- const require_retired_settings_keys = require("../../retired-settings-keys-CGUqX-Oz.js");
10
+ const require_retired_settings_keys = require("../../retired-settings-keys-DorakcxV.js");
11
11
  let zod = require("zod");
12
12
  let node_crypto = require("node:crypto");
13
13
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,8 +1,8 @@
1
- import { $i as isDeviceConfigCap, $r as errMsg, $t as deviceExtensionCapability, Ca as toSecretFieldView, Da as EventCategory, Di as SECRET_CLEAR, F as DeviceTombstoneSchema, Hi as collectZodSecretPaths, In as locationIconKey, Ki as defineRecordKinds, L as FieldClaimModeSchema, Mi as WELL_KNOWN_TAB_MAP, Mn as legacyAutoLinkIds, P as DeviceStatusSchema, Pt as canonicalIconKey, Qr as DeviceType, R as FieldClaimSchema, Ta as userError, Wt as createDeviceExtensionProvider, Xn as parseStreamParamsFormPatch, Xr as DeviceFeature, Y as MINUTES_PER_DAY, Yt as defineExtensionSlotProvider, Zr as DeviceRole, _a as resolveSecretMarkers, br as siteZoneKey, ei as BaseAddon, gn as formatMinutes, ia as isSecretMarkerLike, in as deviceStatusCapability, jt as buildStreamParamsConfigSchema, l as CAP_NAMES_WITH_STATUS, mr as runtimeStatePolicyFor, na as isSecretClear, on as enumerateItemArrayFields, ot as STREAM_PROFILE_META, qn as normalizeUnit, r as ALL_CAPABILITY_DEFINITIONS, ra as isSecretMarker, rn as deviceStateCapability, s as CAMERA_SWITCH_ORDER, sn as enumerateSchemaFields, ta as isKeychainStoredField, tn as deviceManagerCapability, un as expandContainer, w as DAY_NAMES, wa as transformSecretWrite, xa as sleep$1, ya as secretTreeFromPaths } from "../../dist-5XUG7iYJ.mjs";
1
+ import { $r as DeviceType, $t as deviceExtensionCapability, Ea as userError, F as DeviceTombstoneSchema, In as locationIconKey, L as FieldClaimModeSchema, Mn as legacyAutoLinkIds, Ni as WELL_KNOWN_TAB_MAP, Oa as EventCategory, Oi as SECRET_CLEAR, P as DeviceStatusSchema, Pt as canonicalIconKey, Qr as DeviceRole, R as FieldClaimSchema, Sa as sleep$1, Ta as transformSecretWrite, Ui as collectZodSecretPaths, Wt as createDeviceExtensionProvider, Y as MINUTES_PER_DAY, Yt as defineExtensionSlotProvider, Zn as parseStreamParamsFormPatch, Zr as DeviceFeature, aa as isSecretMarkerLike, ba as secretTreeFromPaths, ea as isDeviceConfigCap, ei as errMsg, gn as formatMinutes, hr as runtimeStatePolicyFor, ia as isSecretMarker, in as deviceStatusCapability, jt as buildStreamParamsConfigSchema, l as CAP_NAMES_WITH_STATUS, na as isKeychainStoredField, on as enumerateItemArrayFields, ot as STREAM_PROFILE_META, qi as defineRecordKinds, qn as normalizeUnit, r as ALL_CAPABILITY_DEFINITIONS, ra as isSecretClear, rn as deviceStateCapability, s as CAMERA_SWITCH_ORDER, sn as enumerateSchemaFields, ti as BaseAddon, tn as deviceManagerCapability, un as expandContainer, va as resolveSecretMarkers, w as DAY_NAMES, wa as toSecretFieldView, xr as siteZoneKey } from "../../dist-C9lbdBL5.mjs";
2
2
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
3
3
  import { t as prefixRange } from "../../prefix-range-Dl0znowN.mjs";
4
4
  import { t as loadPrefixed } from "../../prefix-walk-DAOBSyH1.mjs";
5
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-C_Kjp-Bj.mjs";
5
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-CWp7ZSeA.mjs";
6
6
  import { z } from "zod";
7
7
  import { randomUUID } from "node:crypto";
8
8
  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-BjcWEfRy.js");
6
+ const require_dist = require("../../dist-Bmah6waF.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 { Ln as logDestinationCapability, ei as BaseAddon } from "../../dist-5XUG7iYJ.mjs";
1
+ import { Ln as logDestinationCapability, ti as BaseAddon } from "../../dist-C9lbdBL5.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;
@@ -3,10 +3,10 @@ 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-BjcWEfRy.js");
7
- const require_device_ca = require("../../device-ca-nOCYVFS4.js");
6
+ const require_dist = require("../../dist-Bmah6waF.js");
7
+ const require_device_ca = require("../../device-ca-BXzQ1pYj.js");
8
8
  const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
9
- const require_constants = require("../../constants-CToE4OFp.js");
9
+ const require_constants = require("../../constants-XkWSVvgY.js");
10
10
  const require_platform_key_source = require("../../platform-key-source-Di7HrlGR.js");
11
11
  let node_crypto = require("node:crypto");
12
12
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,7 +1,7 @@
1
- import { An as keychainAdminCapability, Da as EventCategory, G as KeychainResetRecordSchema, Ki as defineRecordKinds, U as KEYCHAIN_RESET_TRIGGER_ACTOR, W as KeychainAuditEntrySchema, Xi as formatSecretScope, ei as BaseAddon, jn as keychainCapability, pa as parseSecretRef, ua as normalizeSecretOwner } from "../../dist-5XUG7iYJ.mjs";
2
- import { d as JWT_SIGNING_KEY_REF, n as DEVICE_CA_KEY_REF, p as SYSTEM_SECRET_OWNER } from "../../device-ca-URrs1lxK.mjs";
1
+ import { An as keychainAdminCapability, G as KeychainResetRecordSchema, Oa as EventCategory, U as KEYCHAIN_RESET_TRIGGER_ACTOR, W as KeychainAuditEntrySchema, Zi as formatSecretScope, da as normalizeSecretOwner, jn as keychainCapability, ma as parseSecretRef, qi as defineRecordKinds, ti as BaseAddon } from "../../dist-C9lbdBL5.mjs";
2
+ import { d as JWT_SIGNING_KEY_REF, n as DEVICE_CA_KEY_REF, p as SYSTEM_SECRET_OWNER } from "../../device-ca-DyUtcpf4.mjs";
3
3
  import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
4
- import { a as MESH_CA_KEY_REF } from "../../constants-5lA8Z9d8.mjs";
4
+ import { a as MESH_CA_KEY_REF } from "../../constants-p5mPM1iL.mjs";
5
5
  import { n as getPlatformKeychainKey } from "../../platform-key-source-BWlq0jjn.mjs";
6
6
  import { createCipheriv, createDecipheriv, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
7
7
  import { restrictDirToOwnerSync, restrictFileToOwnerSync, writeOwnerOnlyFileSync } from "@camstack/types/node";
@@ -1,24 +1,3 @@
1
- /**
2
- * liveness-monitor — the node states, out loud, when it has stopped working.
3
- *
4
- * On 2026-08-03 the hub ran for four hours with zero devices, zero published
5
- * streams and zero recordings. Three separate defects caused it, each silent at
6
- * the point of failure, and the operator found out by opening the viewer. Every
7
- * one of those defects has since been fixed and given a log line — but a log
8
- * line per known bug does not cover the next one. This addon covers the class:
9
- * it asserts what must be true of a working node and reports when it is not.
10
- *
11
- * It emits `SystemLivenessFailed` / `SystemLivenessRecovered` on the event bus
12
- * with a STABLE finding id, exactly like the kernel's addon-health monitor, so
13
- * AlertCenter raises one persistent alert per fault and dismisses it on
14
- * recovery instead of producing a stream of them. The same lines go to the log
15
- * at ERROR, which is what makes them alertable in Loki.
16
- *
17
- * Deliberately hub-only and deliberately read-only: it observes through
18
- * `ctx.api` and changes nothing. A monitor that can act is a monitor that can
19
- * cause the outage it was meant to report — this repo has already stopped a
20
- * hub that way once (the remedial-action watcher, 2026-07-30).
21
- */
22
1
  import { BaseAddon, type ProviderRegistration } from "@camstack/types";
23
2
  import { type LivenessFinding } from "./liveness-checks.js";
24
3
  interface LivenessMonitorConfig extends Record<string, unknown> {
@@ -27,8 +6,9 @@ interface LivenessMonitorConfig extends Record<string, unknown> {
27
6
  export declare class LivenessMonitorAddon extends BaseAddon<LivenessMonitorConfig> {
28
7
  private tickTimer;
29
8
  private startedAtMs;
30
- /** Finding ids currently reported, so recovery can be detected and announced. */
31
- private active;
9
+ private reporter;
10
+ /** Roots whose writability could not be read, already said once. */
11
+ private readonly unknownRootsSaid;
32
12
  constructor();
33
13
  protected onInitialize(): Promise<ProviderRegistration[]>;
34
14
  protected onShutdown(): Promise<void>;
@@ -56,7 +36,11 @@ export declare class LivenessMonitorAddon extends BaseAddon<LivenessMonitorConfi
56
36
  * names it, per camera (D393, and CLAUDE.md's logging rule).
57
37
  */
58
38
  private unreadable;
59
- /** Announce new faults and recoveries; say nothing about an unchanged fault. */
60
- private report;
39
+ /**
40
+ * Every storage root this node writes to must be writable BY THIS PROCESS.
41
+ * Reported through the same finding path (one ERROR, one alert, a recovery
42
+ * when it is fixed). Never throws: an unreadable list is said and skipped.
43
+ */
44
+ checkStorageRoots(): Promise<readonly LivenessFinding[]>;
61
45
  }
62
46
  export {};