@camstack/system 1.2.414 → 1.2.416

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 (92) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/addon-utils.js +1 -1
  4. package/dist/addon-utils.mjs +1 -1
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/autotrack/index.js +1 -1
  12. package/dist/builtins/autotrack/index.mjs +1 -1
  13. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  15. package/dist/builtins/calendars/calendars.addon.js +1 -1
  16. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  17. package/dist/builtins/camera-grid/index.js +1 -1
  18. package/dist/builtins/camera-grid/index.mjs +1 -1
  19. package/dist/builtins/composer/composer.addon.js +2 -2
  20. package/dist/builtins/composer/composer.addon.mjs +2 -2
  21. package/dist/builtins/console-logging/index.js +1 -1
  22. package/dist/builtins/console-logging/index.mjs +1 -1
  23. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  24. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  25. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  26. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  27. package/dist/builtins/hub-forwarder/index.js +1 -1
  28. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  29. package/dist/builtins/keychain/index.js +3 -3
  30. package/dist/builtins/keychain/index.mjs +3 -3
  31. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  32. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  33. package/dist/builtins/local-auth/local-auth.addon.js +9 -8
  34. package/dist/builtins/local-auth/local-auth.addon.mjs +4 -3
  35. package/dist/builtins/local-network/hub-mdns-ciao.d.ts +7 -0
  36. package/dist/builtins/local-network/hub-mdns.d.ts +58 -0
  37. package/dist/builtins/local-network/local-network.addon.d.ts +11 -0
  38. package/dist/builtins/local-network/local-network.addon.js +194 -3
  39. package/dist/builtins/local-network/local-network.addon.mjs +195 -3
  40. package/dist/builtins/loki-logging/index.js +1 -1
  41. package/dist/builtins/loki-logging/index.mjs +1 -1
  42. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  43. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  44. package/dist/builtins/platform-probe/index.js +1 -1
  45. package/dist/builtins/platform-probe/index.mjs +1 -1
  46. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  47. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  48. package/dist/builtins/snapshot/index.js +1 -1
  49. package/dist/builtins/snapshot/index.mjs +1 -1
  50. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  51. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  52. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  53. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  54. package/dist/builtins/storage-orchestrator/storage-location-band-monitor.d.ts +43 -0
  55. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +6 -0
  56. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +112 -1
  57. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +112 -1
  58. package/dist/builtins/system-config/system-config.addon.js +80 -785
  59. package/dist/builtins/system-config/system-config.addon.mjs +52 -757
  60. package/dist/builtins/winston-logging/index.js +1 -1
  61. package/dist/builtins/winston-logging/index.mjs +1 -1
  62. package/dist/{child-cap-dispatch-fnYkJDjG.js → child-cap-dispatch-B87B0FrC.js} +1 -1
  63. package/dist/{child-cap-dispatch-CpYnlLNt.mjs → child-cap-dispatch-CmfT-OR2.mjs} +1 -1
  64. package/dist/{composition-sources-BX6Caql_.js → composition-sources-DBcOVpGn.js} +1 -1
  65. package/dist/{composition-sources-QndhKNb5.mjs → composition-sources-DEZqZLPT.mjs} +1 -1
  66. package/dist/{constants-vMEWqCqG.mjs → constants-BSBtmzm3.mjs} +1 -1
  67. package/dist/{constants-CMXQ1QIC.js → constants-C4jZO_qO.js} +1 -1
  68. package/dist/{dist-ItJ3qAAA.mjs → dist-DwE9yHdk.mjs} +67 -3
  69. package/dist/{dist-BcnmH70Z.js → dist-DxiDI8hZ.js} +78 -2
  70. package/dist/{event-loop-stall-monitor-DoFaUgFf.js → event-loop-stall-monitor-E2hFvhDg.js} +1 -1
  71. package/dist/{event-loop-stall-monitor-CogzcENb.mjs → event-loop-stall-monitor-LBZskC1S.mjs} +1 -1
  72. package/dist/index.js +7 -7
  73. package/dist/index.mjs +7 -7
  74. package/dist/{jwt-signing-key-CST1LdM6.js → jwt-signing-key-CsC-FxSm.js} +1 -1
  75. package/dist/{jwt-signing-key-CpMSrZuI.mjs → jwt-signing-key-DLbjTIuA.mjs} +1 -1
  76. package/dist/lib-B_R6sPC3.mjs +7106 -0
  77. package/dist/lib-DOJ5yyWA.js +7110 -0
  78. package/dist/{ms-DlIWNkkk.mjs → ms-CgH2OFlD.mjs} +2 -42
  79. package/dist/{ms-t68_FaqE.js → ms-LB3giGoU.js} +1 -48
  80. package/dist/{restore-archive-pSlTKRgU.js → restore-archive-BtKjaVua.js} +1 -1
  81. package/dist/{restore-archive-8F_M_wW0.mjs → restore-archive-CImzbuRo.mjs} +1 -1
  82. package/dist/{retired-settings-keys-D3E47aR_.js → retired-settings-keys-Cl1tnkmq.js} +1 -1
  83. package/dist/{retired-settings-keys-CbkMnFXg.mjs → retired-settings-keys-D1WsCdUY.mjs} +1 -1
  84. package/dist/safe-buffer-B1OjL1I9.mjs +42 -0
  85. package/dist/safe-buffer-D3aoa-7X.js +46 -0
  86. package/dist/src-CnAqG6EF.js +714 -0
  87. package/dist/src-hG4grMU4.mjs +709 -0
  88. package/dist/{tls-BWpwU-d5.js → tls-C0TRPfqc.js} +1 -1
  89. package/dist/{tls-C2NT-Orr.mjs → tls-D-2dPY-5.mjs} +1 -1
  90. package/dist/{x509.es-Xf3K_brW.mjs → x509.es-CAjSsrkk.mjs} +643 -2
  91. package/dist/{x509.es-BhTzcFhZ.js → x509.es-Dzl0BbmG.js} +653 -0
  92. package/package.json +2 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_child_cap_dispatch = require("./child-cap-dispatch-fnYkJDjG.js");
2
+ const require_child_cap_dispatch = require("./child-cap-dispatch-B87B0FrC.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Ct as setWorkerNativeCapsChangeListener, G as createUdsLoggerWithControl, K as LocalChildClient, Mn as emitHeapDiagnosticReport, Rt as installManifestNativeDeps, Tt as validateProviderRegistrations, bn as startRunnerHeapWatch, bt as getWorkerNativeCapProvider, f as installManifestSystemDeps, g as createUdsAddonContext, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, sn as RUNNER_RSS_BUDGET_ENV, u as startRunnerParentDeathWatchdog, xt as getWorkerNativeCapSnapshot, zt as resolveAddonClass } from "./child-cap-dispatch-CpYnlLNt.mjs";
1
+ import { Ct as setWorkerNativeCapsChangeListener, G as createUdsLoggerWithControl, K as LocalChildClient, Mn as emitHeapDiagnosticReport, Rt as installManifestNativeDeps, Tt as validateProviderRegistrations, bn as startRunnerHeapWatch, bt as getWorkerNativeCapProvider, f as installManifestSystemDeps, g as createUdsAddonContext, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, sn as RUNNER_RSS_BUDGET_ENV, u as startRunnerParentDeathWatchdog, xt as getWorkerNativeCapSnapshot, zt as resolveAddonClass } from "./child-cap-dispatch-CmfT-OR2.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("./chunk-Cek0wNdY.js");
3
- const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-DoFaUgFf.js");
3
+ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-E2hFvhDg.js");
4
4
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
5
5
  const require_snapshot_courtesy = require("./snapshot-courtesy-D_C5-nC0.js");
6
6
  exports.COURTESY_DEFAULT_WIDTH = require_snapshot_courtesy.COURTESY_DEFAULT_WIDTH;
@@ -1,4 +1,4 @@
1
- import { C as resolveFormatRevision, S as isModelDownloaded, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, f as ModelDownloadHttpError, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, t as STALL_REPORT_MS, v as ensureModel, x as isModelDownloadHttpError } from "./event-loop-stall-monitor-CogzcENb.mjs";
1
+ import { C as resolveFormatRevision, S as isModelDownloaded, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, f as ModelDownloadHttpError, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, t as STALL_REPORT_MS, v as ensureModel, x as isModelDownloadHttpError } from "./event-loop-stall-monitor-LBZskC1S.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg, t as COURTESY_DEFAULT_WIDTH } from "./snapshot-courtesy-CyFs1M3I.mjs";
4
4
  export { COURTESY_DEFAULT_WIDTH, CustomActionRegistry, ModelDownloadHttpError, ModelDownloadService, STALL_REPORT_MS, STALL_TICK_MS, adoptModelRevisions, attributeStall, collectModelFiles, contentTypeFor, courtesyCacheKey, createFileDataPlaneHandler, deleteModelFromDisk, downloadFile, ensureModel, getModelFilePath, isModelDownloadHttpError, isModelDownloaded, parseRangeHeader, renderCourtesyJpeg, renderCourtesyOverlayJpeg, resolveFormatRevision, startEventLoopStallMonitor };
@@ -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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.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 { G as addonPagesCapability, dr as BaseAddon, ri as EventCategory, ur as errMsg } from "../../dist-ItJ3qAAA.mjs";
1
+ import { ai as EventCategory, fr as errMsg, pr as BaseAddon, q as addonPagesCapability } from "../../dist-DwE9yHdk.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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.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 { dr as BaseAddon, q as addonWidgetsCapability, ri as EventCategory, ur as errMsg } from "../../dist-ItJ3qAAA.mjs";
1
+ import { Y as addonWidgetsCapability, ai as EventCategory, fr as errMsg, pr as BaseAddon } from "../../dist-DwE9yHdk.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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.js");
7
7
  //#region src/builtins/alerts/device-label.ts
8
8
  /**
9
9
  * Operator-facing device label for alert messages.
@@ -1,4 +1,4 @@
1
- import { Er as createEvent, J as alertsCapability, dr as BaseAddon, n as AlertSchema, ri as EventCategory, ur as errMsg } from "../../dist-ItJ3qAAA.mjs";
1
+ import { Or as createEvent, X as alertsCapability, ai as EventCategory, fr as errMsg, n as AlertSchema, pr as BaseAddon } from "../../dist-DwE9yHdk.mjs";
2
2
  //#region src/builtins/alerts/device-label.ts
3
3
  /**
4
4
  * Operator-facing device label for alert messages.
@@ -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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.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 { Fr as isEvent, S as FIRST_LEVEL_MACRO_CLASSES, Z as bareAddonId, _n as ptzAutotrackCapability, dr as BaseAddon, ri as EventCategory, ur as errMsg } from "../../dist-ItJ3qAAA.mjs";
1
+ import { $ as bareAddonId, Lr as isEvent, S as FIRST_LEVEL_MACRO_CLASSES, ai as EventCategory, fr as errMsg, pr as BaseAddon, yn as ptzAutotrackCapability } from "../../dist-DwE9yHdk.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -3,8 +3,8 @@ 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-BcnmH70Z.js");
7
- const require_restore_archive = require("../../restore-archive-pSlTKRgU.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.js");
7
+ const require_restore_archive = require("../../restore-archive-BtKjaVua.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_fs_promises = require("node:fs/promises");
10
10
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,5 +1,5 @@
1
- import { Ln as storageOccupancyCapability, Vr as nodePin, X as backupCapability, dr as BaseAddon, ei as toNodeId, ri as EventCategory, rn as mayWriteToLocation } from "../../dist-ItJ3qAAA.mjs";
2
- import { a as BackupSnapshotRefusedError, c as BackupKeyFormatError, d as generateBackupKeyPair, f as parseBackupPublicKey, i as BackupCancelledError, n as precheckRestoreKey, o as SystemBackupService, p as parseBackupSecretKey, r as prepareRestoreArchive, u as ENCRYPTED_BACKUP_SUFFIX } from "../../restore-archive-8F_M_wW0.mjs";
1
+ import { Q as backupCapability, Ur as nodePin, ai as EventCategory, an as mayWriteToLocation, ni as toNodeId, pr as BaseAddon, zn as storageOccupancyCapability } from "../../dist-DwE9yHdk.mjs";
2
+ import { a as BackupSnapshotRefusedError, c as BackupKeyFormatError, d as generateBackupKeyPair, f as parseBackupPublicKey, i as BackupCancelledError, n as precheckRestoreKey, o as SystemBackupService, p as parseBackupSecretKey, r as prepareRestoreArchive, u as ENCRYPTED_BACKUP_SUFFIX } from "../../restore-archive-CImzbuRo.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import * as fsp from "node:fs/promises";
5
5
  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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.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 { dr as BaseAddon, p as CalendarPreferencesSchema, tt as calendarsCapability } from "../../dist-ItJ3qAAA.mjs";
1
+ import { p as CalendarPreferencesSchema, pr as BaseAddon, rt as calendarsCapability } from "../../dist-DwE9yHdk.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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.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 { Er as createEvent, N as MOTION_CLOSE_AFTER_MS, Nr as hydrateSchema, Pn as snapshotCapability, Xn as buildFfmpegArgs, b as DeclaredDevices, dr as BaseAddon, ht as declarationOwnerNodeId, i as BaseDevice, in as memoizePinnedFfmpeg, lr as DeviceType, nt as cameraGridLayoutCapability, ri as EventCategory, sn as motionCapability, sr as DeviceFeature, ur as errMsg, y as DERIVED_CAMERA_SILENCED_CAP_NAMES, zn as streamCatalogCapability } from "../../dist-ItJ3qAAA.mjs";
1
+ import { F as MOTION_CLOSE_AFTER_MS, Fr as hydrateSchema, In as snapshotCapability, Or as createEvent, Qn as buildFfmpegArgs, Vn as streamCatalogCapability, _t as declarationOwnerNodeId, ai as EventCategory, b as DeclaredDevices, dr as DeviceType, fr as errMsg, i as BaseDevice, it as cameraGridLayoutCapability, ln as motionCapability, lr as DeviceFeature, on as memoizePinnedFfmpeg, pr as BaseAddon, y as DERIVED_CAMERA_SILENCED_CAP_NAMES } from "../../dist-DwE9yHdk.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-BcnmH70Z.js");
7
- const require_composition_sources = require("../../composition-sources-BX6Caql_.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.js");
7
+ const require_composition_sources = require("../../composition-sources-DBcOVpGn.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 { $ as buildCapabilityLookup, $n as composedDeviceStableId, At as expressionContainsBuiltinCall, Dt as evaluateCompositionField, Er as createEvent, Qn as composedDeviceRef, Yn as COMPOSER_ADDON_ID, Zn as cloneStatefulExpressionMemory, ar as disarmRoseMemory, at as compositionFieldKey, b as DeclaredDevices, dr as BaseAddon, er as compositionFeatureEnabled, i as BaseDevice, ir as createStatefulExpressionMemory, it as composerCapability, l as COMPOSED_ITEM_FIXED_FIELDS, lr as DeviceType, mn as planComposition, nr as compositionSliceKey, or as toExpressionValue, ri as EventCategory, rr as compositionSourceKey, t as ALL_CAPABILITY_DEFINITIONS, tr as compositionItemFieldPath, ur as errMsg } from "../../dist-ItJ3qAAA.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-QndhKNb5.mjs";
1
+ import { $n as cloneStatefulExpressionMemory, Mt as expressionContainsBuiltinCall, Or as createEvent, Zn as COMPOSER_ADDON_ID, ai as EventCategory, ar as compositionSourceKey, b as DeclaredDevices, cr as toExpressionValue, dr as DeviceType, er as composedDeviceRef, fr as errMsg, gn as planComposition, i as BaseDevice, ir as compositionSliceKey, kt as evaluateCompositionField, l as COMPOSED_ITEM_FIXED_FIELDS, nr as compositionFeatureEnabled, or as createStatefulExpressionMemory, ot as composerCapability, pr as BaseAddon, rr as compositionItemFieldPath, sr as disarmRoseMemory, st as compositionFieldKey, t as ALL_CAPABILITY_DEFINITIONS, tr as composedDeviceStableId, tt as buildCapabilityLookup } from "../../dist-DwE9yHdk.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-DEZqZLPT.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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.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 { Qt as logDestinationCapability, dr as BaseAddon } from "../../dist-ItJ3qAAA.mjs";
1
+ import { en as logDestinationCapability, pr as BaseAddon } from "../../dist-DwE9yHdk.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-BcnmH70Z.js");
4
- const require_composition_sources = require("../../composition-sources-BX6Caql_.js");
3
+ const require_dist = require("../../dist-DxiDI8hZ.js");
4
+ const require_composition_sources = require("../../composition-sources-DBcOVpGn.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 buildCapabilityLookup, Cn as resolveCoreBlockFiles, Nr as hydrateSchema, Qn as composedDeviceRef, Sn as resolveCoreBlockEntry, Un as validateComposition, b as DeclaredDevices, cn as normalizeCoreBlockWrite, ct as coreBlockComposition, d as CORE_BLOCKS_ADDON_ID, dr as BaseAddon, dt as coreBlocksCapability, f as CORE_BLOCK_ADDON_PREFIX, lt as coreBlockIdFromAddonId, m as CoreBlockSchema, mn as planComposition, ot as compositionSourceRefs, rr as compositionSourceKey, st as coreBlockAddonId, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, ur as errMsg, ut as coreBlockSourceKind, yn as replacedFieldKeys, yt as describeComposableCaps } from "../../dist-ItJ3qAAA.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-QndhKNb5.mjs";
1
+ import { Fr as hydrateSchema, Gn as validateComposition, Tn as resolveCoreBlockFiles, ar as compositionSourceKey, b as DeclaredDevices, ct as compositionSourceRefs, d as CORE_BLOCKS_ADDON_ID, dt as coreBlockIdFromAddonId, er as composedDeviceRef, f as CORE_BLOCK_ADDON_PREFIX, fr as errMsg, ft as coreBlockSourceKind, gn as planComposition, lt as coreBlockAddonId, m as CoreBlockSchema, pr as BaseAddon, pt as coreBlocksCapability, t as ALL_CAPABILITY_DEFINITIONS, tt as buildCapabilityLookup, u as COMPOSER_RUNNER_ID, un as normalizeCoreBlockWrite, ut as coreBlockComposition, wn as resolveCoreBlockEntry, xn as replacedFieldKeys, xt as describeComposableCaps } from "../../dist-DwE9yHdk.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-DEZqZLPT.mjs";
3
3
  import { createRequire } from "node:module";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { customizationBlockName } from "@camstack/types/node";
@@ -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-BcnmH70Z.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-D3E47aR_.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-Cl1tnkmq.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 { $r as sleep$1, C as FieldClaimModeSchema, Ct as deviceStatusCapability, Et as enumerateSchemaFields, Ir as isKeychainStoredField, Jr as resolveSecretMarkers, Lr as isSecretClear, Nn as siteZoneKey, On as runtimeStatePolicyFor, Pr as isDeviceConfigCap, Pt as formatMinutes, R as STREAM_PROFILE_META, Rr as isSecretMarker, St as deviceStateCapability, Tr as collectZodSecretPaths, Tt as enumerateItemArrayFields, Zr as secretTreeFromPaths, Zt as locationIconKey, _t as defineExtensionSlotProvider, bt as deviceExtensionCapability, c as CAP_NAMES_WITH_STATUS, cr as DeviceRole, dr as BaseAddon, et as buildStreamParamsConfigSchema, fn as parseStreamParamsFormPatch, ft as createDeviceExtensionProvider, j as MINUTES_PER_DAY, k as LocationIconIdSchema, kt as expandContainer, ln as normalizeUnit, lr as DeviceType, ni as transformSecretWrite, o as CAMERA_SWITCH_ORDER, qt as legacyAutoLinkIds, ri as EventCategory, sr as DeviceFeature, t as ALL_CAPABILITY_DEFINITIONS, ti as toSecretFieldView, ur as errMsg, v as DAY_NAMES, vr as SECRET_CLEAR, w as FieldClaimSchema, x as DeviceStatusSchema, xt as deviceManagerCapability, yr as WELL_KNOWN_TAB_MAP, zr as isSecretMarkerLike } from "../../dist-ItJ3qAAA.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-CbkMnFXg.mjs";
1
+ import { $r as secretTreeFromPaths, $t as locationIconKey, An as runtimeStatePolicyFor, B as STREAM_PROFILE_META, Br as isSecretMarker, C as FieldClaimModeSchema, Ct as deviceManagerCapability, Dr as collectZodSecretPaths, Dt as enumerateItemArrayFields, Fn as siteZoneKey, Ir as isDeviceConfigCap, It as formatMinutes, N as MINUTES_PER_DAY, Ot as enumerateSchemaFields, Rr as isKeychainStoredField, St as deviceExtensionCapability, Tt as deviceStatusCapability, Vr as isSecretMarkerLike, Xr as resolveSecretMarkers, Yt as legacyAutoLinkIds, ai as EventCategory, br as SECRET_CLEAR, c as CAP_NAMES_WITH_STATUS, dn as normalizeUnit, dr as DeviceType, fr as errMsg, ii as transformSecretWrite, j as LocationIconIdSchema, jt as expandContainer, lr as DeviceFeature, mn as parseStreamParamsFormPatch, mt as createDeviceExtensionProvider, nt as buildStreamParamsConfigSchema, o as CAMERA_SWITCH_ORDER, pr as BaseAddon, ri as toSecretFieldView, t as ALL_CAPABILITY_DEFINITIONS, ti as sleep$1, ur as DeviceRole, v as DAY_NAMES, w as FieldClaimSchema, wt as deviceStateCapability, x as DeviceStatusSchema, xr as WELL_KNOWN_TAB_MAP, yt as defineExtensionSlotProvider, zr as isSecretClear } from "../../dist-DwE9yHdk.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-D1WsCdUY.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-BcnmH70Z.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.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 { Qt as logDestinationCapability, dr as BaseAddon } from "../../dist-ItJ3qAAA.mjs";
1
+ import { en as logDestinationCapability, pr as BaseAddon } from "../../dist-DwE9yHdk.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,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-BcnmH70Z.js");
7
- const require_jwt_signing_key = require("../../jwt-signing-key-CST1LdM6.js");
8
- const require_constants = require("../../constants-CMXQ1QIC.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.js");
7
+ const require_jwt_signing_key = require("../../jwt-signing-key-CsC-FxSm.js");
8
+ const require_constants = require("../../constants-C4jZO_qO.js");
9
9
  const require_platform_key_source = require("../../platform-key-source-Di7HrlGR.js");
10
10
  let node_crypto = require("node:crypto");
11
11
  let node_path = require("node:path");
@@ -1,6 +1,6 @@
1
- import { E as KEYCHAIN_RESET_TRIGGER_ACTOR, Gr as parseSecretRef, Gt as keychainAdminCapability, Hr as normalizeSecretOwner, Kt as keychainCapability, Mr as formatSecretScope, dr as BaseAddon, ri as EventCategory } from "../../dist-ItJ3qAAA.mjs";
2
- import { r as SYSTEM_SECRET_OWNER, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-CpMSrZuI.mjs";
3
- import { a as MESH_CA_KEY_REF, p as CLUSTER_SECRET_SETTINGS_KEY } from "../../constants-vMEWqCqG.mjs";
1
+ import { Jt as keychainCapability, O as KEYCHAIN_RESET_TRIGGER_ACTOR, Pr as formatSecretScope, Wr as normalizeSecretOwner, ai as EventCategory, pr as BaseAddon, qr as parseSecretRef, qt as keychainAdminCapability } from "../../dist-DwE9yHdk.mjs";
2
+ import { r as SYSTEM_SECRET_OWNER, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-DLbjTIuA.mjs";
3
+ import { a as MESH_CA_KEY_REF, p as CLUSTER_SECRET_SETTINGS_KEY } from "../../constants-BSBtmzm3.mjs";
4
4
  import { n as getPlatformKeychainKey } from "../../platform-key-source-BWlq0jjn.mjs";
5
5
  import { createCipheriv, createDecipheriv, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
6
6
  import * as path$1 from "node:path";
@@ -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-BcnmH70Z.js");
3
+ const require_dist = require("../../dist-DxiDI8hZ.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 { Er as createEvent, I as RecordingStatusSchema, P as RECORDING_SOURCE_CAMSTACK_ADDON, dr as BaseAddon, ri as EventCategory, ur as errMsg } from "../../dist-ItJ3qAAA.mjs";
1
+ import { I as RECORDING_SOURCE_CAMSTACK_ADDON, Or as createEvent, R as RecordingStatusSchema, ai as EventCategory, fr as errMsg, pr as BaseAddon } from "../../dist-DwE9yHdk.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,9 +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-BcnmH70Z.js");
7
- const require_ms$1 = require("../../ms-t68_FaqE.js");
8
- const require_jwt_signing_key = require("../../jwt-signing-key-CST1LdM6.js");
6
+ const require_dist = require("../../dist-DxiDI8hZ.js");
7
+ const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
8
+ const require_ms$1 = require("../../ms-LB3giGoU.js");
9
+ const require_jwt_signing_key = require("../../jwt-signing-key-CsC-FxSm.js");
9
10
  let node_crypto = require("node:crypto");
10
11
  node_crypto = require_chunk.__toESM(node_crypto);
11
12
  let crypto$1 = require("crypto");
@@ -1862,7 +1863,7 @@ function _hash(password, salt, callback, progressCallback) {
1862
1863
  //#endregion
1863
1864
  //#region ../../node_modules/jws/lib/data-stream.js
1864
1865
  var require_data_stream = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
1865
- var Buffer = require_ms$1.require_safe_buffer().Buffer;
1866
+ var Buffer = require_safe_buffer$1.require_safe_buffer().Buffer;
1866
1867
  var Stream$2 = require("stream");
1867
1868
  var util$3 = require("util");
1868
1869
  function DataStream(data) {
@@ -1925,7 +1926,7 @@ var require_param_bytes_for_alg = /* @__PURE__ */ require_chunk.__commonJSMin(((
1925
1926
  //#endregion
1926
1927
  //#region ../../node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js
1927
1928
  var require_ecdsa_sig_formatter = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
1928
- var Buffer = require_ms$1.require_safe_buffer().Buffer;
1929
+ var Buffer = require_safe_buffer$1.require_safe_buffer().Buffer;
1929
1930
  var getParamBytesForAlg = require_param_bytes_for_alg();
1930
1931
  var MAX_OCTET = 128, CLASS_UNIVERSAL = 0, PRIMITIVE_BIT = 32, TAG_SEQ = 16, TAG_INT = 2, ENCODED_TAG_SEQ = TAG_SEQ | PRIMITIVE_BIT | CLASS_UNIVERSAL << 6, ENCODED_TAG_INT = TAG_INT | CLASS_UNIVERSAL << 6;
1931
1932
  function base64Url(base64) {
@@ -2042,7 +2043,7 @@ var require_buffer_equal_constant_time = /* @__PURE__ */ require_chunk.__commonJ
2042
2043
  //#endregion
2043
2044
  //#region ../../node_modules/jwa/index.js
2044
2045
  var require_jwa = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
2045
- var Buffer = require_ms$1.require_safe_buffer().Buffer;
2046
+ var Buffer = require_safe_buffer$1.require_safe_buffer().Buffer;
2046
2047
  var crypto$2 = require("crypto");
2047
2048
  var formatEcdsa = require_ecdsa_sig_formatter();
2048
2049
  var util$2 = require("util");
@@ -2228,7 +2229,7 @@ var require_tostring = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, mo
2228
2229
  //#endregion
2229
2230
  //#region ../../node_modules/jws/lib/sign-stream.js
2230
2231
  var require_sign_stream = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
2231
- var Buffer = require_ms$1.require_safe_buffer().Buffer;
2232
+ var Buffer = require_safe_buffer$1.require_safe_buffer().Buffer;
2232
2233
  var DataStream = require_data_stream();
2233
2234
  var jwa = require_jwa();
2234
2235
  var Stream$1 = require("stream");
@@ -2297,7 +2298,7 @@ var require_sign_stream = /* @__PURE__ */ require_chunk.__commonJSMin(((exports,
2297
2298
  //#endregion
2298
2299
  //#region ../../node_modules/jws/lib/verify-stream.js
2299
2300
  var require_verify_stream = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
2300
- var Buffer = require_ms$1.require_safe_buffer().Buffer;
2301
+ var Buffer = require_safe_buffer$1.require_safe_buffer().Buffer;
2301
2302
  var DataStream = require_data_stream();
2302
2303
  var jwa = require_jwa();
2303
2304
  var Stream = require("stream");
@@ -1,7 +1,8 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Hn as userManagementCapability, W as UserRecordSchema, Y as authProviderCapability, dr as BaseAddon, r as ApiKeyRecordSchema, z as ScopedTokenSchema } from "../../dist-ItJ3qAAA.mjs";
3
- import { n as require_safe_buffer, t as require_ms } from "../../ms-DlIWNkkk.mjs";
4
- import { a as loadJwtSigningKey, i as getProcessJwtSigningKeyState, o as processJwtSigningKey, s as setProcessJwtSigningKey, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-CpMSrZuI.mjs";
2
+ import { K as UserRecordSchema, V as ScopedTokenSchema, Wn as userManagementCapability, Z as authProviderCapability, pr as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-DwE9yHdk.mjs";
3
+ import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
4
+ import { t as require_ms } from "../../ms-CgH2OFlD.mjs";
5
+ import { a as loadJwtSigningKey, i as getProcessJwtSigningKeyState, o as processJwtSigningKey, s as setProcessJwtSigningKey, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-DLbjTIuA.mjs";
5
6
  import * as crypto$1 from "node:crypto";
6
7
  import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
7
8
  import nodeCrypto from "crypto";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The real mDNS responder behind {@link HubMdnsPublisher}: `@homebridge/ciao`.
3
+ * Loaded lazily so a host without multicast support only pays on advertise,
4
+ * and a load failure surfaces as an advertise failure (logged, never fatal).
5
+ */
6
+ import type { HubMdnsPublisher } from "./hub-mdns.js";
7
+ export declare function createCiaoPublisher(): HubMdnsPublisher;
@@ -0,0 +1,58 @@
1
+ import type { HubAddressBook, IScopedLogger } from "@camstack/types";
2
+ /** What one published service says. Every value is public. */
3
+ export interface HubMdnsAnnouncement {
4
+ /** Instance name (`camstack-<nodeId>`). */
5
+ readonly name: string;
6
+ readonly type: string;
7
+ readonly port: number;
8
+ /** The IP literal the A/AAAA record is restricted to; null for a DNS name. */
9
+ readonly address: string | null;
10
+ readonly txt: Readonly<Record<string, string>>;
11
+ }
12
+ /** A published service the advertiser can withdraw. */
13
+ export interface HubMdnsHandle {
14
+ stop(): Promise<void>;
15
+ }
16
+ /** The responder seam: publish one announcement. */
17
+ export interface HubMdnsPublisher {
18
+ publish(announcement: HubMdnsAnnouncement): Promise<HubMdnsHandle>;
19
+ }
20
+ export interface HubMdnsInputs {
21
+ readonly nodeId: string;
22
+ readonly version: string | null;
23
+ /** `getAddresses().roles.internal.resolved` — an https base URL or null. */
24
+ readonly internalUrl: string | null;
25
+ }
26
+ /** The announcement for the current address, or null when nothing qualifies. */
27
+ export declare function buildHubAnnouncement(inputs: HubMdnsInputs): HubMdnsAnnouncement | null;
28
+ export interface HubMdnsAdvertiserOptions {
29
+ readonly publisher: HubMdnsPublisher;
30
+ readonly logger: IScopedLogger;
31
+ readonly nodeId: string;
32
+ readonly version: string | null;
33
+ /** Reads the `internal` role from the address book; may throw. */
34
+ readonly readInternalUrl: () => Promise<string | null>;
35
+ }
36
+ /**
37
+ * Keeps one mDNS service in step with the hub's `internal` address. `sync()`
38
+ * is safe to call on any change; it never throws — a failure to advertise is
39
+ * logged and the boot goes on.
40
+ */
41
+ export declare class HubMdnsAdvertiser {
42
+ private readonly options;
43
+ private current;
44
+ private running;
45
+ private chain;
46
+ constructor(options: HubMdnsAdvertiserOptions);
47
+ start(): Promise<void>;
48
+ /** Re-read the address and re-announce when it changed. Serialised. */
49
+ sync(): Promise<void>;
50
+ stop(): Promise<void>;
51
+ private syncOnce;
52
+ private withdraw;
53
+ }
54
+ /**
55
+ * The address a hub advertises: the `internal` role's answer, exactly as the
56
+ * address book resolved it. Never re-ranked here (D729, D732).
57
+ */
58
+ export declare function internalUrlOf(book: Pick<HubAddressBook, "roles">): string | null;
@@ -61,6 +61,11 @@ interface LocalNetworkConfig {
61
61
  * Empty = automatic.
62
62
  */
63
63
  readonly publicEndpointUrl: string;
64
+ /**
65
+ * Advertise this hub over mDNS (`_camstack._tcp`, D838) so `camstack login`
66
+ * finds it. On by default; needs UDP 5353 multicast to reach the LAN.
67
+ */
68
+ readonly mdnsAdvertise: boolean;
64
69
  }
65
70
  export declare class LocalNetworkAddon extends BaseAddon<LocalNetworkConfig> {
66
71
  private pollTimer;
@@ -77,6 +82,7 @@ export declare class LocalNetworkAddon extends BaseAddon<LocalNetworkConfig> {
77
82
  * `null` when no mesh provider is joined.
78
83
  */
79
84
  private meshEndpoint;
85
+ private mdns;
80
86
  constructor();
81
87
  /**
82
88
  * The detected palettes, with the mesh reconciled once: `https` (what
@@ -118,6 +124,11 @@ export declare class LocalNetworkAddon extends BaseAddon<LocalNetworkConfig> {
118
124
  protected onInitialize(): Promise<ProviderRegistration[]>;
119
125
  protected override globalSettingsSchema(): ConfigUISchema;
120
126
  protected override onConfigChanged(): Promise<void>;
127
+ /**
128
+ * Start, re-announce or stop the hub's mDNS service (D838). Never throws:
129
+ * the advertiser logs its own failures and boot goes on.
130
+ */
131
+ private applyMdnsAdvertisement;
121
132
  protected onShutdown(): Promise<void>;
122
133
  /**
123
134
  * Other hub addons (e.g. cloudflare-tunnel) signal the active public