@camstack/system 1.2.61 → 1.2.63

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 (86) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/console-logging/index.js +1 -1
  12. package/dist/builtins/console-logging/index.mjs +1 -1
  13. package/dist/builtins/core-blocks/block-package.d.ts +9 -27
  14. package/dist/builtins/core-blocks/block-supervisor.d.ts +15 -0
  15. package/dist/builtins/core-blocks/core-blocks.addon.js +91 -24
  16. package/dist/builtins/core-blocks/core-blocks.addon.mjs +91 -25
  17. package/dist/builtins/device-manager/device-aggregation.d.ts +49 -2
  18. package/dist/builtins/device-manager/device-bindings-store.d.ts +28 -5
  19. package/dist/builtins/device-manager/device-linked-devices.d.ts +2 -2
  20. package/dist/builtins/device-manager/device-manager.addon.d.ts +3 -45
  21. package/dist/builtins/device-manager/device-manager.addon.js +182 -888
  22. package/dist/builtins/device-manager/device-manager.addon.mjs +182 -888
  23. package/dist/builtins/device-manager/device-meta-actions.d.ts +0 -8
  24. package/dist/builtins/device-manager/device-meta-store.d.ts +1 -28
  25. package/dist/builtins/device-manager/device-meta-types.d.ts +2 -6
  26. package/dist/builtins/device-manager/device-projection.d.ts +1 -2
  27. package/dist/builtins/device-manager/device-provider-context.d.ts +2 -13
  28. package/dist/builtins/device-manager/device-queries.d.ts +1 -1
  29. package/dist/builtins/device-manager/device-state-mirror.d.ts +8 -49
  30. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +0 -11
  31. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  32. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  33. package/dist/builtins/hub-forwarder/index.js +1 -1
  34. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  35. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  36. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  37. package/dist/builtins/local-auth/homeassistant-integration.d.ts +7 -0
  38. package/dist/builtins/local-auth/index.d.ts +1 -0
  39. package/dist/builtins/local-auth/index.js +1 -0
  40. package/dist/builtins/local-auth/index.mjs +2 -2
  41. package/dist/builtins/local-auth/local-auth.addon.js +561 -497
  42. package/dist/builtins/local-auth/local-auth.addon.mjs +580 -517
  43. package/dist/builtins/local-auth/oauth-grants.d.ts +11 -0
  44. package/dist/builtins/local-auth/oauth-session-manager.d.ts +1 -1
  45. package/dist/builtins/local-network/local-network.addon.js +1 -1
  46. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  47. package/dist/builtins/loki-logging/index.js +1 -1
  48. package/dist/builtins/loki-logging/index.mjs +1 -1
  49. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  50. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  51. package/dist/builtins/platform-probe/index.js +1 -1
  52. package/dist/builtins/platform-probe/index.mjs +1 -1
  53. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  54. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  55. package/dist/builtins/snapshot/index.js +319 -20
  56. package/dist/builtins/snapshot/index.mjs +319 -20
  57. package/dist/builtins/snapshot/snapshot-keep-warm.d.ts +86 -0
  58. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +48 -1
  59. package/dist/builtins/snapshot/snapshot.addon.d.ts +65 -1
  60. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  61. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  62. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +15 -0
  63. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +45 -5
  64. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +45 -5
  65. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  66. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  67. package/dist/builtins/system-config/system-config.addon.js +1 -1
  68. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  69. package/dist/builtins/winston-logging/index.js +1 -1
  70. package/dist/builtins/winston-logging/index.mjs +1 -1
  71. package/dist/{dist-L6QPJWsr.mjs → dist-BJ2w3uoN.mjs} +1307 -1313
  72. package/dist/{dist-BN681PgO.js → dist-LDrOFrd-.js} +1255 -1273
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.js +209 -5
  75. package/dist/index.mjs +206 -7
  76. package/dist/kernel/addon-residue.d.ts +49 -0
  77. package/dist/kernel/index.d.ts +2 -0
  78. package/dist/kernel/moleculer/device-cap-proxy.d.ts +2 -2
  79. package/dist/{manifest-python-deps-CX5tGRqf.mjs → manifest-python-deps-CopL1_5C.mjs} +20 -14
  80. package/dist/{manifest-python-deps-d4acYXVV.js → manifest-python-deps-DNfmBu20.js} +20 -14
  81. package/package.json +5 -1
  82. package/dist/builtins/device-manager/device-link-cycle.d.ts +0 -18
  83. package/dist/builtins/device-manager/device-link-overlay.d.ts +0 -33
  84. package/dist/builtins/device-manager/device-link-resolver.d.ts +0 -44
  85. package/dist/main-CVLq8IzA.js +0 -2356
  86. package/dist/main-CzH19GkU.mjs +0 -2353
@@ -82,14 +82,6 @@ export declare function setPrimaryChildEntityId(pctx: ProviderContext, input: Pa
82
82
  * and preserved across re-register/restore.
83
83
  */
84
84
  export declare function setChildLayout(pctx: ProviderContext, input: Parameters<IDeviceManagerProvider['setChildLayout']>[0]): ReturnType<IDeviceManagerProvider['setChildLayout']>;
85
- /**
86
- * Set (or replace) the operator-authored cross-device field wirings on
87
- * a device's meta row. Mirrors `setChildLayout` but persists the
88
- * `deviceLinks` array. Persisted, projected, and preserved across
89
- * re-register/restore. Also maintains the in-memory `devicesWithLinks`
90
- * Set used as an O(1) gate by `resolveLinkedStatus`.
91
- */
92
- export declare function setDeviceLinks(pctx: ProviderContext, input: Parameters<IDeviceManagerProvider['setDeviceLinks']>[0]): ReturnType<IDeviceManagerProvider['setDeviceLinks']>;
93
85
  /**
94
86
  * Stamp (or update) the semantic role on the device's meta row.
95
87
  * Called by the kernel's `create()` / `spawnAccessoryChild`
@@ -1,22 +1,11 @@
1
- import { DependentLink, ResolvedTargetLink } from './device-link-overlay.js';
2
1
  import { AddonContext, IDeviceRegistry } from '@camstack/types';
3
2
  import { AddonStore, PersistedDeviceMeta } from './device-meta-types.js';
4
3
  /** The settings surface the meta store uses (`ctx.settings`, narrowed non-null). */
5
4
  export type DeviceManagerSettings = NonNullable<AddonContext['settings']>;
6
- /**
7
- * Narrow view of the addon's cross-device link state the meta store mutates.
8
- * The addon remains the SOLE owner of these maps; the store only reads
9
- * `devicesWithLinks` and writes the rebuilt indexes back via `setLinkIndexes`.
10
- */
11
- export interface LinkIndexHost {
12
- readonly devicesWithLinks: ReadonlySet<number>;
13
- setLinkIndexes(targets: Map<string, ResolvedTargetLink[]>, dependents: Map<string, DependentLink[]>, expectedSourceStableIds: Set<string>): void;
14
- }
15
5
  export declare class DeviceMetaStore {
16
6
  private readonly settings;
17
7
  /** Hub-process device registry (null when this node owns no registry). */
18
8
  readonly registry: IDeviceRegistry | null;
19
- private readonly linkHost;
20
9
  /** Synchronous ownership cache, keyed by NUMERIC deviceId → owning addonId.
21
10
  * The persisted meta store is authoritative but reads are async; hub-side
22
11
  * callers (e.g. `CapabilityRegistry.getNativeProvider` fallback) need
@@ -29,7 +18,7 @@ export declare class DeviceMetaStore {
29
18
  private metaWriteChain;
30
19
  constructor(settings: DeviceManagerSettings,
31
20
  /** Hub-process device registry (null when this node owns no registry). */
32
- registry: IDeviceRegistry | null, linkHost: LinkIndexHost);
21
+ registry: IDeviceRegistry | null);
33
22
  readStore: () => Promise<AddonStore>;
34
23
  readIndex: () => Promise<Record<string, string[]>>;
35
24
  readMeta: () => Promise<Record<string, PersistedDeviceMeta>>;
@@ -58,21 +47,5 @@ export declare class DeviceMetaStore {
58
47
  * and excluding self. Shared by the `remove` cascade and the `resetToSource`
59
48
  * resync purge (#19). */
60
49
  directChildIds: (parentId: number) => Promise<readonly number[]>;
61
- /** Resolve a link's `sourceKey` to a live device id: the sibling accessory
62
- * whose stableId is `${parentStableId}-${sourceKey}`. Null when absent.
63
- * Pure over a pre-read meta map so a multi-link resolve reads the store once. */
64
- resolveSourceDeviceId: (parentStableId: string, sourceKey: string, meta: Record<string, PersistedDeviceMeta>) => number | null;
65
- /** Resolve a GLOBAL link source (P2e) to a live device id: the device whose
66
- * FULL stableId equals `sourceStableId`, regardless of parent container.
67
- * First match wins (stableIds are effectively unique cluster-wide — see the
68
- * `DeviceLinkGlobalSource` docblock). Null when absent. Pure over a
69
- * pre-read meta map so a multi-link resolve reads the store once. */
70
- resolveGlobalSourceDeviceId: (sourceStableId: string, meta: Record<string, PersistedDeviceMeta>) => number | null;
71
50
  allocateNextDeviceId: () => Promise<number>;
72
- /** Rebuild the `linkTargets` / `linkDependents` reverse-index maps from the
73
- * current persisted meta. Called at boot (once the `devicesWithLinks` seed
74
- * has run) and whenever the link topology can change: `setDeviceLinks`,
75
- * `registerDevice` (a new sibling source may resolve previously-dangling
76
- * links), and `removeDevice` (its entries must be evicted). */
77
- rebuildLinkDependents: () => Promise<void>;
78
51
  }
@@ -1,4 +1,4 @@
1
- import { ChildLayout, DeviceDisplayOverride, DeviceLinks, RoleDisplayDefault } from '@camstack/types';
1
+ import { ChildLayout, DeviceDisplayOverride, RoleDisplayDefault } from '@camstack/types';
2
2
  /**
3
3
  * Wire shape matching `z.infer<typeof SettingsSchemaWithValuesSchema>` —
4
4
  * duplicated as a plain interface because importing the Zod schema across
@@ -124,17 +124,13 @@ export interface PersistedDeviceMeta {
124
124
  * re-sync-stable accessory `stableIdSuffix`. Set at create, preserved across
125
125
  * re-register/restore — same lifecycle as `primaryChildEntityId`. */
126
126
  childLayout?: ChildLayout;
127
- /** Operator-authored cross-device field wirings (source field → this device's
128
- * cap field). Same create/persist/project/restore lifecycle as `childLayout`.
129
- * Absent ⇒ no links. Overlaid onto the target cap's `getStatus` at read time. */
130
- deviceLinks?: DeviceLinks;
131
127
  /** Semantic role string (`DeviceRole`), stamped at create via `setRole`.
132
128
  * Optional: only present for accessory children that carry a known role
133
129
  * (e.g. 'numeric-sensor', 'binary-sensor'). `null` clears a previous role. */
134
130
  role?: string | null;
135
131
  /** Operator-authored per-device display override (icon/label/unit/precision/
136
132
  * hidden), set via `setDisplay`. Same create/persist/project/restore
137
- * lifecycle as `deviceLinks`. Absent ⇒ no override. Applied at render time
133
+ * lifecycle as `childLayout`. Absent ⇒ no override. Applied at render time
138
134
  * only — storage stays in source units. */
139
135
  display?: DeviceDisplayOverride;
140
136
  }
@@ -1,4 +1,4 @@
1
- import { DeviceFeature, DeviceRole, IDevice, ICameraDevice, IDeviceRegistry, SourceInfo } from '@camstack/types';
1
+ import { ICameraDevice, IDevice, IDeviceRegistry, SourceInfo, DeviceFeature, DeviceRole } from '@camstack/types';
2
2
  import { PersistedDeviceMeta } from './device-meta-types.js';
3
3
  /**
4
4
  * Return true when `err` is a transient Moleculer error that is worth
@@ -48,7 +48,6 @@ export declare function isDeviceRole(value: string): value is DeviceRole;
48
48
  export declare function toDeviceRole(value: string | null | undefined): DeviceRole | null;
49
49
  export declare function toDeviceInfo(addonId: string, device: IDevice, metadata?: Record<string, unknown> | null, metaRow?: PersistedDeviceMeta | null): {
50
50
  display?: import('@camstack/types').DeviceDisplayOverride | undefined;
51
- deviceLinks?: import('@camstack/types').DeviceLinks | undefined;
52
51
  childLayout?: import('@camstack/types').ChildLayout | undefined;
53
52
  primaryChildEntityId?: string | null | undefined;
54
53
  linkDeviceId?: number | null | undefined;
@@ -1,6 +1,6 @@
1
- import { AddonContext, IDeviceAdoptionProvider, IDeviceManagerProvider, IDeviceOpsProvider, IDeviceRegistry, ICapabilityRegistry, InferProvider, deviceProviderCapability } from '@camstack/types';
2
- import { DeviceManagerSettings, DeviceMetaStore } from './device-meta-store.js';
1
+ import { AddonContext, ICapabilityRegistry, IDeviceAdoptionProvider, IDeviceManagerProvider, IDeviceOpsProvider, IDeviceRegistry, InferProvider, deviceProviderCapability } from '@camstack/types';
3
2
  import { BindingsDeps } from './device-bindings-store.js';
3
+ import { DeviceManagerSettings, DeviceMetaStore } from './device-meta-store.js';
4
4
  type IDeviceProviderCap = InferProvider<typeof deviceProviderCapability>;
5
5
  /**
6
6
  * The addon-instance surface the extracted provider functions need. Exposed by
@@ -10,17 +10,6 @@ type IDeviceProviderCap = InferProvider<typeof deviceProviderCapability>;
10
10
  export interface ProviderHost {
11
11
  readonly ctx: AddonContext;
12
12
  readonly capabilityRegistry: ICapabilityRegistry | undefined;
13
- /** Device ids that currently carry at least one `deviceLinks` entry. */
14
- readonly devicesWithLinks: Set<number>;
15
- /** Expected link-source stableIds, gating the `registerDevice` rebuild. */
16
- readonly expectedSourceStableIds: Set<string>;
17
- /** In-flight `${deviceId}:${cap}` pairs of `resolveLinkedStatus` — the
18
- * defensive re-entrancy guard that bounds link cycles at resolve time
19
- * (P2e). A nested resolve of a pair already in flight returns null. */
20
- readonly linkResolveInFlight: Set<string>;
21
- /** Drop a removed device's overlay-emit guard entries (state-mirror keyed
22
- * `${deviceId}:${cap}`). Called from `removeDevice`. */
23
- dropDeviceOverlays(deviceId: number): void;
24
13
  /** Push-fed remote native-cap cache (numeric deviceId → capName → owner). */
25
14
  readonly remoteNativeCaps: Map<number, Map<string, {
26
15
  addonId: string;
@@ -1,4 +1,4 @@
1
- import { InferProvider, deviceManagerCapability } from '@camstack/types';
1
+ import { deviceManagerCapability, InferProvider } from '@camstack/types';
2
2
  import { ProviderContext } from './device-provider-context.js';
3
3
  type IDeviceManagerProvider = InferProvider<typeof deviceManagerCapability>;
4
4
  export declare function listPersistedByAddon(pctx: ProviderContext, input: Parameters<IDeviceManagerProvider['listPersistedByAddon']>[0]): ReturnType<IDeviceManagerProvider['listPersistedByAddon']>;
@@ -1,19 +1,7 @@
1
- import { AddonContext, ICapabilityRegistry } from '@camstack/types';
2
- import { ResolvedTargetLink, DependentLink } from './device-link-overlay.js';
1
+ import { AddonContext } from '@camstack/types';
3
2
  import { DeviceManagerSettings } from './device-meta-store.js';
4
- /**
5
- * Live view of the addon's cross-device link reverse-index + capability
6
- * registry the mirror reads when overlaying linked values. Exposed via getters
7
- * because the link maps are reassigned on every `rebuildLinkDependents`.
8
- */
9
- export interface LinkOverlayHost {
10
- readonly linkTargets: Map<string, ResolvedTargetLink[]>;
11
- readonly linkDependents: Map<string, DependentLink[]>;
12
- readonly capabilityRegistry: ICapabilityRegistry | undefined;
13
- }
14
3
  export declare class DeviceStateMirror {
15
4
  private readonly ctx;
16
- private readonly linkHost;
17
5
  /**
18
6
  * Hub-side mirror of every device's cap-keyed runtime state.
19
7
  * Key: deviceId. Value: per-cap slice map. Empty by default —
@@ -27,9 +15,7 @@ export declare class DeviceStateMirror {
27
15
  */
28
16
  private readonly runtimeStateDebounce;
29
17
  private static readonly RUNTIME_STATE_DEBOUNCE_MS;
30
- /** Loop/churn guard: last overlaid slice emitted per `${deviceId}:${cap}`. */
31
- private readonly lastEmittedOverlay;
32
- constructor(ctx: AddonContext, linkHost: LinkOverlayHost);
18
+ constructor(ctx: AddonContext);
33
19
  /**
34
20
  * Single-cap mirror update — diff against the current mirror,
35
21
  * persist the new slice in-memory, emit `DeviceStateChanged` for
@@ -104,40 +90,13 @@ export declare class DeviceStateMirror {
104
90
  */
105
91
  resolveDeviceProbed(deviceId: number): boolean;
106
92
  snapshotForDevice(deviceId: number): Record<string, Record<string, unknown>>;
107
- /**
108
- * Read-time overlay of a cap slice with its cross-device linked values.
109
- * Returns a cloned raw mirror slice when the (device, cap) pair has no
110
- * links. Sources are read from the same in-hub stateMirror sync, no
111
- * cross-process call. When the raw slice is ABSENT but the cap is a link
112
- * target, the slice is SYNTHESIZED: the merge base is seeded from the
113
- * cap's declared `status.empty` default; a failed/empty synthesize
114
- * returns null (no phantom slices). The disk writer must NOT use this
115
- * method; it must persist raw provider truth via snapshotForDevice.
116
- */
117
- overlayedSlice(deviceId: number, cap: string): Record<string, unknown> | null;
118
- /**
119
- * Like snapshotForDevice but applies the device-link overlay per cap.
120
- * Used exclusively by the device-state READ methods (getSnapshot,
121
- * getAllSnapshots) so callers see overlayed values. SYNTHESIZE-only
122
- * link-target caps (no base mirror slice) are unioned into the iterated
123
- * key set so they appear at warm-load — `overlayedSlice` builds them from
124
- * the cap's `status.empty` (and drops them when nothing resolves). The
125
- * debounced disk writer must continue to call snapshotForDevice (raw truth).
126
- */
127
- snapshotForDeviceOverlayed(deviceId: number): Record<string, Record<string, unknown>>;
128
- /** Whole-system mirror dump (overlaid). Backs `deviceState.getAllSnapshots`.
129
- * Devices that only exist as link TARGETS (no mirror slice yet) are
130
- * included via the link reverse-index so their synthesized caps appear. */
131
- allSnapshotsOverlayed(): Record<string, Record<string, Record<string, unknown>>>;
93
+ /** One cap's mirrored slice, cloned. Null when the device has never written
94
+ * it callers read that as "the cap has no state", never as an empty slice. */
95
+ capSlice(deviceId: number, cap: string): Record<string, unknown> | null;
96
+ /** Whole-system mirror dump. Backs `deviceState.getAllSnapshots`one
97
+ * round-trip for a warm boot instead of N per-device calls. */
98
+ allSnapshots(): Record<string, Record<string, Record<string, unknown>>>;
132
99
  private emitStateChanged;
133
- /** Emit DeviceStateChanged for (deviceId, cap) using the OVERLAID slice,
134
- * skipping when the overlay is unchanged since the last emit (loop/churn
135
- * guard). Used for the written pair AND its dependent targets. */
136
- private emitOverlayed;
137
- /** Drop a removed device's overlay-emit guard entries (keyed
138
- * `${deviceId}:${cap}`) so the map doesn't retain rows for a removed device.
139
- * Called from `removeDevice`. */
140
- dropDeviceOverlays(deviceId: number): void;
141
100
  /** Flush every pending debounced disk write (graceful shutdown). Clears the
142
101
  * debounce slots after awaiting in-flight + scheduled writes so shutdown is
143
102
  * lossless. */
@@ -28,14 +28,3 @@ export declare function resolveNativeCapOwnerSync(pctx: ProviderContext, capName
28
28
  addonId: string;
29
29
  nodeId: string;
30
30
  } | null;
31
- /**
32
- * Read-time overlay: merge cross-device linked values onto a target cap's
33
- * status. Returns null when the device has no links for `cap` (caller uses
34
- * the base status untouched). Reads each source cap via the hub registry's
35
- * `getProviderForDevice` (routes cross-process); merge is pure.
36
- */
37
- export declare function resolveLinkedStatus(pctx: ProviderContext, input: {
38
- deviceId: number;
39
- cap: string;
40
- baseStatus: unknown;
41
- }): Promise<Record<string, unknown> | null>;
@@ -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-BN681PgO.js");
6
+ const require_dist = require("../../dist-LDrOFrd-.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 { B as isSameAddonId, Et as createEvent, ft as errMsg, k as doorbellCapability, pt as BaseAddon, x as bareAddonId, yt as DeviceType, zt as EventCategory } from "../../dist-L6QPJWsr.mjs";
1
+ import { B as isSameAddonId, Lt as EventCategory, _t as DeviceType, dt as BaseAddon, j as doorbellCapability, ut as errMsg, wt as createEvent, x as bareAddonId } from "../../dist-BJ2w3uoN.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-BN681PgO.js");
6
+ const require_dist = require("../../dist-LDrOFrd-.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 { G as logDestinationCapability, pt as BaseAddon } from "../../dist-L6QPJWsr.mjs";
1
+ import { G as logDestinationCapability, dt as BaseAddon } from "../../dist-BJ2w3uoN.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-BN681PgO.js");
3
+ const require_dist = require("../../dist-LDrOFrd-.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 { Et as createEvent, ft as errMsg, pt as BaseAddon, zt as EventCategory } from "../../dist-L6QPJWsr.mjs";
1
+ import { Lt as EventCategory, dt as BaseAddon, ut as errMsg, wt as createEvent } from "../../dist-BJ2w3uoN.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";
@@ -0,0 +1,7 @@
1
+ import { OauthIntegrationDescriptor } from '@camstack/types';
2
+ /**
3
+ * Scopes granted to a linked Home Assistant, derived from the tRPC paths the
4
+ * component actually calls. `category:system [create]` was rejected: it would
5
+ * hand `addons.installPackage` to a home-automation bridge.
6
+ */
7
+ export declare const HOME_ASSISTANT_OAUTH_INTEGRATION: OauthIntegrationDescriptor;
@@ -1 +1,2 @@
1
+ export { HOME_ASSISTANT_OAUTH_INTEGRATION } from './homeassistant-integration.js';
1
2
  export { LocalAuthAddon } from './local-auth.addon.js';
@@ -1,4 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
3
  const require_builtins_local_auth_local_auth_addon = require("./local-auth.addon.js");
4
+ exports.HOME_ASSISTANT_OAUTH_INTEGRATION = require_builtins_local_auth_local_auth_addon.HOME_ASSISTANT_OAUTH_INTEGRATION;
4
5
  exports.LocalAuthAddon = require_builtins_local_auth_local_auth_addon.LocalAuthAddon;
@@ -1,2 +1,2 @@
1
- import { LocalAuthAddon } from "./local-auth.addon.mjs";
2
- export { LocalAuthAddon };
1
+ import { LocalAuthAddon, s as HOME_ASSISTANT_OAUTH_INTEGRATION } from "./local-auth.addon.mjs";
2
+ export { HOME_ASSISTANT_OAUTH_INTEGRATION, LocalAuthAddon };