@camstack/types 0.1.40 → 0.1.42
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.
- package/dist/addon/base-addon.d.ts +12 -0
- package/dist/addon/base-addon.d.ts.map +1 -1
- package/dist/addon/durable-state.d.ts +33 -0
- package/dist/addon/durable-state.d.ts.map +1 -0
- package/dist/capabilities/accessories.cap.d.ts +56 -8
- package/dist/capabilities/accessories.cap.d.ts.map +1 -1
- package/dist/capabilities/advanced-notifier.cap.d.ts +4 -0
- package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -1
- package/dist/capabilities/air-quality-sensor.cap.d.ts +56 -0
- package/dist/capabilities/air-quality-sensor.cap.d.ts.map +1 -0
- package/dist/capabilities/alarm-panel.cap.d.ts +154 -0
- package/dist/capabilities/alarm-panel.cap.d.ts.map +1 -0
- package/dist/capabilities/ambient-light-sensor.cap.d.ts +39 -0
- package/dist/capabilities/ambient-light-sensor.cap.d.ts.map +1 -0
- package/dist/capabilities/automation-control.cap.d.ts +65 -0
- package/dist/capabilities/automation-control.cap.d.ts.map +1 -0
- package/dist/capabilities/battery.cap.d.ts +30 -1
- package/dist/capabilities/battery.cap.d.ts.map +1 -1
- package/dist/capabilities/binary.cap.d.ts +40 -0
- package/dist/capabilities/binary.cap.d.ts.map +1 -0
- package/dist/capabilities/brightness.cap.d.ts +3 -2
- package/dist/capabilities/brightness.cap.d.ts.map +1 -1
- package/dist/capabilities/broker.cap.d.ts +291 -0
- package/dist/capabilities/broker.cap.d.ts.map +1 -0
- package/dist/capabilities/button.cap.d.ts +27 -0
- package/dist/capabilities/button.cap.d.ts.map +1 -0
- package/dist/capabilities/camera-credentials.cap.d.ts +1 -0
- package/dist/capabilities/camera-credentials.cap.d.ts.map +1 -1
- package/dist/capabilities/camera-streams.cap.d.ts +147 -10
- package/dist/capabilities/camera-streams.cap.d.ts.map +1 -1
- package/dist/capabilities/capability-definition.d.ts +15 -0
- package/dist/capabilities/capability-definition.d.ts.map +1 -1
- package/dist/capabilities/carbon-monoxide.cap.d.ts +33 -0
- package/dist/capabilities/carbon-monoxide.cap.d.ts.map +1 -0
- package/dist/capabilities/climate-control.cap.d.ts +183 -0
- package/dist/capabilities/climate-control.cap.d.ts.map +1 -0
- package/dist/capabilities/color.cap.d.ts +186 -0
- package/dist/capabilities/color.cap.d.ts.map +1 -0
- package/dist/capabilities/connectivity.cap.d.ts +37 -0
- package/dist/capabilities/connectivity.cap.d.ts.map +1 -0
- package/dist/capabilities/consumables.cap.d.ts +105 -0
- package/dist/capabilities/consumables.cap.d.ts.map +1 -0
- package/dist/capabilities/contact.cap.d.ts +41 -0
- package/dist/capabilities/contact.cap.d.ts.map +1 -0
- package/dist/capabilities/control.cap.d.ts +167 -0
- package/dist/capabilities/control.cap.d.ts.map +1 -0
- package/dist/capabilities/cover.cap.d.ts +104 -0
- package/dist/capabilities/cover.cap.d.ts.map +1 -0
- package/dist/capabilities/custom-actions.d.ts +6 -0
- package/dist/capabilities/custom-actions.d.ts.map +1 -1
- package/dist/capabilities/decoder.cap.d.ts +1 -1
- package/dist/capabilities/device-adoption.cap.d.ts +203 -0
- package/dist/capabilities/device-adoption.cap.d.ts.map +1 -0
- package/dist/capabilities/device-discovery.cap.d.ts +44 -143
- package/dist/capabilities/device-discovery.cap.d.ts.map +1 -1
- package/dist/capabilities/device-manager.cap.d.ts +469 -0
- package/dist/capabilities/device-manager.cap.d.ts.map +1 -1
- package/dist/capabilities/device-ops.cap.d.ts +30 -0
- package/dist/capabilities/device-ops.cap.d.ts.map +1 -1
- package/dist/capabilities/device-provider.cap.d.ts +36 -0
- package/dist/capabilities/device-provider.cap.d.ts.map +1 -1
- package/dist/capabilities/device-status.cap.d.ts +1 -0
- package/dist/capabilities/device-status.cap.d.ts.map +1 -1
- package/dist/capabilities/doorbell.cap.d.ts +1 -0
- package/dist/capabilities/doorbell.cap.d.ts.map +1 -1
- package/dist/capabilities/enum-sensor.cap.d.ts +60 -0
- package/dist/capabilities/enum-sensor.cap.d.ts.map +1 -0
- package/dist/capabilities/event-emitter.cap.d.ts +79 -0
- package/dist/capabilities/event-emitter.cap.d.ts.map +1 -0
- package/dist/capabilities/fan-control.cap.d.ts +100 -0
- package/dist/capabilities/fan-control.cap.d.ts.map +1 -0
- package/dist/capabilities/feature-probe.cap.d.ts +1 -0
- package/dist/capabilities/feature-probe.cap.d.ts.map +1 -1
- package/dist/capabilities/filesystem-browse.cap.d.ts +39 -0
- package/dist/capabilities/filesystem-browse.cap.d.ts.map +1 -0
- package/dist/capabilities/flood.cap.d.ts +37 -0
- package/dist/capabilities/flood.cap.d.ts.map +1 -0
- package/dist/capabilities/gas.cap.d.ts +34 -0
- package/dist/capabilities/gas.cap.d.ts.map +1 -0
- package/dist/capabilities/humidifier.cap.d.ts +82 -0
- package/dist/capabilities/humidifier.cap.d.ts.map +1 -0
- package/dist/capabilities/humidity-sensor.cap.d.ts +43 -0
- package/dist/capabilities/humidity-sensor.cap.d.ts.map +1 -0
- package/dist/capabilities/image.cap.d.ts +44 -0
- package/dist/capabilities/image.cap.d.ts.map +1 -0
- package/dist/capabilities/index.d.ts +97 -12
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/integrations.cap.d.ts +12 -0
- package/dist/capabilities/integrations.cap.d.ts.map +1 -1
- package/dist/capabilities/intercom.cap.d.ts +49 -9
- package/dist/capabilities/intercom.cap.d.ts.map +1 -1
- package/dist/capabilities/lawn-mower-control.cap.d.ts +83 -0
- package/dist/capabilities/lawn-mower-control.cap.d.ts.map +1 -0
- package/dist/capabilities/lock-control.cap.d.ts +92 -0
- package/dist/capabilities/lock-control.cap.d.ts.map +1 -0
- package/dist/capabilities/media-player.cap.d.ts +201 -0
- package/dist/capabilities/media-player.cap.d.ts.map +1 -0
- package/dist/capabilities/motion-trigger.cap.d.ts +1 -0
- package/dist/capabilities/motion-trigger.cap.d.ts.map +1 -1
- package/dist/capabilities/motion-zones.cap.d.ts +1 -0
- package/dist/capabilities/motion-zones.cap.d.ts.map +1 -1
- package/dist/capabilities/native-object-detection.cap.d.ts +1 -0
- package/dist/capabilities/native-object-detection.cap.d.ts.map +1 -1
- package/dist/capabilities/network-quality.cap.d.ts +5 -0
- package/dist/capabilities/network-quality.cap.d.ts.map +1 -1
- package/dist/capabilities/notifier.cap.d.ts +173 -0
- package/dist/capabilities/notifier.cap.d.ts.map +1 -0
- package/dist/capabilities/numeric-sensor.cap.d.ts +52 -0
- package/dist/capabilities/numeric-sensor.cap.d.ts.map +1 -0
- package/dist/capabilities/osd.cap.d.ts +1 -0
- package/dist/capabilities/osd.cap.d.ts.map +1 -1
- package/dist/capabilities/pipeline-analytics.cap.d.ts +69 -22
- package/dist/capabilities/pipeline-analytics.cap.d.ts.map +1 -1
- package/dist/capabilities/pipeline-executor.cap.d.ts +2 -2
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +1 -1
- package/dist/capabilities/pipeline-runner.cap.d.ts +2 -2
- package/dist/capabilities/platform-probe.cap.d.ts +25 -0
- package/dist/capabilities/platform-probe.cap.d.ts.map +1 -1
- package/dist/capabilities/power-meter.cap.d.ts +65 -0
- package/dist/capabilities/power-meter.cap.d.ts.map +1 -0
- package/dist/capabilities/presence.cap.d.ts +79 -0
- package/dist/capabilities/presence.cap.d.ts.map +1 -0
- package/dist/capabilities/pressure-sensor.cap.d.ts +43 -0
- package/dist/capabilities/pressure-sensor.cap.d.ts.map +1 -0
- package/dist/capabilities/privacy-mask.cap.d.ts +1 -0
- package/dist/capabilities/privacy-mask.cap.d.ts.map +1 -1
- package/dist/capabilities/ptz-autotrack.cap.d.ts +1 -0
- package/dist/capabilities/ptz-autotrack.cap.d.ts.map +1 -1
- package/dist/capabilities/ptz.cap.d.ts +1 -0
- package/dist/capabilities/ptz.cap.d.ts.map +1 -1
- package/dist/capabilities/reboot.cap.d.ts +1 -0
- package/dist/capabilities/reboot.cap.d.ts.map +1 -1
- package/dist/capabilities/recording.cap.d.ts +367 -32
- package/dist/capabilities/recording.cap.d.ts.map +1 -1
- package/dist/capabilities/restreamer.cap.d.ts +2 -2
- package/dist/capabilities/schemas/orchestrator-metrics.d.ts +2 -2
- package/dist/capabilities/schemas/streaming-shared.d.ts +64 -1
- package/dist/capabilities/schemas/streaming-shared.d.ts.map +1 -1
- package/dist/capabilities/script-runner.cap.d.ts +62 -0
- package/dist/capabilities/script-runner.cap.d.ts.map +1 -0
- package/dist/capabilities/settings-store.cap.d.ts +25 -0
- package/dist/capabilities/settings-store.cap.d.ts.map +1 -1
- package/dist/capabilities/smoke.cap.d.ts +38 -0
- package/dist/capabilities/smoke.cap.d.ts.map +1 -0
- package/dist/capabilities/snapshot-provider.cap.d.ts +1 -1
- package/dist/capabilities/snapshot.cap.d.ts +1 -0
- package/dist/capabilities/snapshot.cap.d.ts.map +1 -1
- package/dist/capabilities/storage-evictable.cap.d.ts +54 -0
- package/dist/capabilities/storage-evictable.cap.d.ts.map +1 -0
- package/dist/capabilities/storage-provider.cap.d.ts +46 -186
- package/dist/capabilities/storage-provider.cap.d.ts.map +1 -1
- package/dist/capabilities/storage.cap.d.ts +41 -226
- package/dist/capabilities/storage.cap.d.ts.map +1 -1
- package/dist/capabilities/stream-broker.cap.d.ts +323 -25
- package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
- package/dist/capabilities/stream-catalog.cap.d.ts +3 -0
- package/dist/capabilities/stream-catalog.cap.d.ts.map +1 -1
- package/dist/capabilities/stream-params.cap.d.ts +27 -26
- package/dist/capabilities/stream-params.cap.d.ts.map +1 -1
- package/dist/capabilities/switch.cap.d.ts +1 -0
- package/dist/capabilities/switch.cap.d.ts.map +1 -1
- package/dist/capabilities/tamper.cap.d.ts +33 -0
- package/dist/capabilities/tamper.cap.d.ts.map +1 -0
- package/dist/capabilities/temperature-sensor.cap.d.ts +51 -0
- package/dist/capabilities/temperature-sensor.cap.d.ts.map +1 -0
- package/dist/capabilities/update.cap.d.ts +49 -0
- package/dist/capabilities/update.cap.d.ts.map +1 -0
- package/dist/capabilities/vacuum-control.cap.d.ts +229 -0
- package/dist/capabilities/vacuum-control.cap.d.ts.map +1 -0
- package/dist/capabilities/valve.cap.d.ts +93 -0
- package/dist/capabilities/valve.cap.d.ts.map +1 -0
- package/dist/capabilities/vibration.cap.d.ts +33 -0
- package/dist/capabilities/vibration.cap.d.ts.map +1 -0
- package/dist/capabilities/videoclips.cap.d.ts +77 -0
- package/dist/capabilities/videoclips.cap.d.ts.map +1 -0
- package/dist/capabilities/water-heater.cap.d.ts +78 -0
- package/dist/capabilities/water-heater.cap.d.ts.map +1 -0
- package/dist/capabilities/weather.cap.d.ts +76 -0
- package/dist/capabilities/weather.cap.d.ts.map +1 -0
- package/dist/capabilities/webrtc-session.cap.d.ts +95 -1
- package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
- package/dist/constants.d.ts +0 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/device/base-device-provider.d.ts +11 -0
- package/dist/device/base-device-provider.d.ts.map +1 -1
- package/dist/device/base-device.d.ts +52 -0
- package/dist/device/base-device.d.ts.map +1 -1
- package/dist/device/device-context.d.ts +29 -0
- package/dist/device/device-context.d.ts.map +1 -1
- package/dist/device/device-link-transform.d.ts +6 -0
- package/dist/device/device-link-transform.d.ts.map +1 -0
- package/dist/device/device-management.d.ts +116 -4
- package/dist/device/device-management.d.ts.map +1 -1
- package/dist/device/device-type.d.ts +214 -3
- package/dist/device/device-type.d.ts.map +1 -1
- package/dist/device/device.d.ts +25 -0
- package/dist/device/device.d.ts.map +1 -1
- package/dist/device/index.d.ts +5 -1
- package/dist/device/index.d.ts.map +1 -1
- package/dist/device/path-util.d.ts +13 -0
- package/dist/device/path-util.d.ts.map +1 -0
- package/dist/device/schema-fields.d.ts +12 -0
- package/dist/device/schema-fields.d.ts.map +1 -0
- package/dist/device/source-info.d.ts +87 -0
- package/dist/device/source-info.d.ts.map +1 -0
- package/dist/device/system-mirror.d.ts +6 -2
- package/dist/device/system-mirror.d.ts.map +1 -1
- package/dist/encode-profile.d.ts +126 -0
- package/dist/encode-profile.d.ts.map +1 -0
- package/dist/enums/event-category.d.ts +64 -6
- package/dist/enums/event-category.d.ts.map +1 -1
- package/dist/generated/addon-api.d.ts +12722 -8080
- package/dist/generated/addon-api.d.ts.map +1 -1
- package/dist/generated/cap-status-types.d.ts +85 -1
- package/dist/generated/cap-status-types.d.ts.map +1 -1
- package/dist/generated/capability-router-map.d.ts +139 -7
- package/dist/generated/capability-router-map.d.ts.map +1 -1
- package/dist/generated/device-local-state.d.ts +117 -0
- package/dist/generated/device-local-state.d.ts.map +1 -1
- package/dist/generated/device-proxy.d.ts +126 -5
- package/dist/generated/device-proxy.d.ts.map +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts.map +1 -1
- package/dist/generated/provider-kind-map.d.ts +1 -1
- package/dist/generated/provider-kind-map.d.ts.map +1 -1
- package/dist/generated/system-proxy.d.ts +10 -8
- package/dist/generated/system-proxy.d.ts.map +1 -1
- package/dist/{index-C2zzIDdX.mjs → index-BxWo3b49.mjs} +4714 -1113
- package/dist/index-BxWo3b49.mjs.map +1 -0
- package/dist/{index-DnpdVFKv.js → index-CGMPfVaT.js} +4321 -720
- package/dist/index-CGMPfVaT.js.map +1 -0
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1384 -116
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1698 -430
- package/dist/index.mjs.map +1 -1
- package/dist/interfaces/addon-data-plane.d.ts +76 -0
- package/dist/interfaces/addon-data-plane.d.ts.map +1 -0
- package/dist/interfaces/addon.d.ts +60 -0
- package/dist/interfaces/addon.d.ts.map +1 -1
- package/dist/interfaces/advanced-notifier.d.ts +4 -0
- package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
- package/dist/interfaces/capability.d.ts +42 -1
- package/dist/interfaces/capability.d.ts.map +1 -1
- package/dist/interfaces/config-ui.d.ts +70 -6
- package/dist/interfaces/config-ui.d.ts.map +1 -1
- package/dist/interfaces/device-capabilities/camera.d.ts +2 -1
- package/dist/interfaces/device-capabilities/camera.d.ts.map +1 -1
- package/dist/interfaces/event-bus.d.ts +49 -3
- package/dist/interfaces/event-bus.d.ts.map +1 -1
- package/dist/interfaces/kernel-abstractions.d.ts +10 -1
- package/dist/interfaces/kernel-abstractions.d.ts.map +1 -1
- package/dist/interfaces/network-quality.d.ts +8 -0
- package/dist/interfaces/network-quality.d.ts.map +1 -1
- package/dist/interfaces/pipeline-executor-capability.d.ts +2 -2
- package/dist/interfaces/pipeline-orchestrator-capability.d.ts +2 -1
- package/dist/interfaces/pipeline-orchestrator-capability.d.ts.map +1 -1
- package/dist/interfaces/pipeline-runner-capability.d.ts +7 -0
- package/dist/interfaces/pipeline-runner-capability.d.ts.map +1 -1
- package/dist/interfaces/recording-config-migrate.d.ts +13 -0
- package/dist/interfaces/recording-config-migrate.d.ts.map +1 -0
- package/dist/interfaces/recording-config.d.ts +209 -0
- package/dist/interfaces/recording-config.d.ts.map +1 -0
- package/dist/interfaces/rtp-egress.d.ts +2 -3
- package/dist/interfaces/rtp-egress.d.ts.map +1 -1
- package/dist/interfaces/storage-location-declaration.d.ts +34 -0
- package/dist/interfaces/storage-location-declaration.d.ts.map +1 -0
- package/dist/interfaces/storage-location.d.ts +19 -74
- package/dist/interfaces/storage-location.d.ts.map +1 -1
- package/dist/interfaces/storage.d.ts +15 -4
- package/dist/interfaces/storage.d.ts.map +1 -1
- package/dist/interfaces/stream-broker.d.ts +18 -3
- package/dist/interfaces/stream-broker.d.ts.map +1 -1
- package/dist/interfaces/timezones.d.ts +59 -0
- package/dist/interfaces/timezones.d.ts.map +1 -0
- package/dist/node.d.ts +3 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +50 -8
- package/dist/node.js.map +1 -1
- package/dist/node.mjs +51 -9
- package/dist/node.mjs.map +1 -1
- package/dist/storage/filesystem-storage-provider.d.ts +2 -1
- package/dist/storage/filesystem-storage-provider.d.ts.map +1 -1
- package/dist/stream-selection.d.ts +85 -0
- package/dist/stream-selection.d.ts.map +1 -0
- package/dist/types/detection.d.ts +3 -3
- package/dist/types/io.d.ts +1 -1
- package/dist/types/io.d.ts.map +1 -1
- package/dist/util/location-match.d.ts +15 -0
- package/dist/util/location-match.d.ts.map +1 -0
- package/dist/utils/canonical-hash.d.ts +20 -0
- package/dist/utils/canonical-hash.d.ts.map +1 -0
- package/dist/utils/export-reconciler.d.ts +101 -0
- package/dist/utils/export-reconciler.d.ts.map +1 -0
- package/dist/utils/sleep.d.ts +36 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/capabilities/recording-engine.cap.d.ts +0 -477
- package/dist/capabilities/recording-engine.cap.d.ts.map +0 -1
- package/dist/index-C2zzIDdX.mjs.map +0 -1
- package/dist/index-DnpdVFKv.js.map +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { AddonContext, AddonInitResult, CapabilitiesAccess, ProviderRegistration } from '../interfaces/addon.js';
|
|
2
2
|
import type { ConfigUISchema, ConfigUISchemaWithValues, ConfigField, ConfigSection } from '../interfaces/config-ui.js';
|
|
3
|
+
import { type DurableState } from './durable-state.js';
|
|
4
|
+
import type { ZodType } from 'zod';
|
|
3
5
|
export type { CapabilitiesAccess };
|
|
4
6
|
/**
|
|
5
7
|
* Utility type that constrains a ConfigField's `key` to only accept
|
|
@@ -247,6 +249,16 @@ export declare abstract class BaseAddon<TConfig extends object = Record<string,
|
|
|
247
249
|
* (e.g. from older versions) without polluting the typed config.
|
|
248
250
|
*/
|
|
249
251
|
protected resolveConfig(): Promise<void>;
|
|
252
|
+
/**
|
|
253
|
+
* Typed durable handle over ONE key of this addon's store. The whole
|
|
254
|
+
* Zod-validated value round-trips on every read/write — no hand-listed
|
|
255
|
+
* fields, so a field can never be silently dropped on persist. Reads use
|
|
256
|
+
* the same retry budget as config resolution; a corrupt/legacy blob logs
|
|
257
|
+
* a warning and falls back rather than crashing boot.
|
|
258
|
+
*/
|
|
259
|
+
protected state<T>(key: string, schema: ZodType<T>, fallback: T): DurableState<T>;
|
|
260
|
+
/** Per-device variant of {@link state}, backed by the per-device store. */
|
|
261
|
+
protected deviceState<T>(deviceId: number, key: string, schema: ZodType<T>, fallback: T): DurableState<T>;
|
|
250
262
|
/**
|
|
251
263
|
* Wrap `ctx.settings.readAddonStore()` with a short retry budget so a
|
|
252
264
|
* transient settings-store outage (mid-restart of sqlite-settings, tsx-watch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-addon.d.ts","sourceRoot":"","sources":["../../src/addon/base-addon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAErH,OAAO,KAAK,EACV,cAAc,EAAE,wBAAwB,EACxC,WAAW,EAAE,aAAa,EAC3B,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"base-addon.d.ts","sourceRoot":"","sources":["../../src/addon/base-addon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ZodType } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* A typed handle over ONE top-level key of an addon/device store. `set`
|
|
4
|
+
* always writes the whole Zod-validated value for that key, so a field
|
|
5
|
+
* can never be silently dropped by a hand-written serializer. Sibling
|
|
6
|
+
* keys are untouched (writes go through the store's patch-merge).
|
|
7
|
+
*/
|
|
8
|
+
export interface DurableState<T> {
|
|
9
|
+
/** Read + validate. Missing key or parse failure → `fallback`. Never throws. */
|
|
10
|
+
get(): Promise<T>;
|
|
11
|
+
/** Validate `next`, then write the WHOLE value under this key. Throws on invalid. */
|
|
12
|
+
set(next: T): Promise<void>;
|
|
13
|
+
/** get → fn(prev) → set, as one logical update. */
|
|
14
|
+
update(fn: (prev: T) => T): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export interface DurableStateDeps<T> {
|
|
17
|
+
readonly key: string;
|
|
18
|
+
readonly schema: ZodType<T>;
|
|
19
|
+
readonly fallback: T;
|
|
20
|
+
readonly read: () => Promise<Record<string, unknown>>;
|
|
21
|
+
readonly write: (patch: Record<string, unknown>) => Promise<void>;
|
|
22
|
+
/** Called when a stored blob fails validation (before falling back). */
|
|
23
|
+
readonly onParseError?: (key: string, error: unknown) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Build a {@link DurableState} over a single store key. Transport-agnostic:
|
|
27
|
+
* `read`/`write` are the addon-store or device-store accessors. The whole
|
|
28
|
+
* validated value round-trips on every read/write — the schema is the
|
|
29
|
+
* single source of truth for what is persisted, so no hand-listed field
|
|
30
|
+
* set can drop a key on save.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createDurableState<T>(deps: DurableStateDeps<T>): DurableState<T>;
|
|
33
|
+
//# sourceMappingURL=durable-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-state.d.ts","sourceRoot":"","sources":["../../src/addon/durable-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAElC;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,gFAAgF;IAChF,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IACjB,qFAAqF;IACrF,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,mDAAmD;IACnD,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrD,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,wEAAwE;IACxE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAuBhF"}
|
|
@@ -2,38 +2,86 @@ import { z } from 'zod';
|
|
|
2
2
|
import { type InferProvider } from './capability-definition.js';
|
|
3
3
|
import { DeviceType } from '../device/device-type.js';
|
|
4
4
|
/**
|
|
5
|
-
* List of accessory children linked to a parent device
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* List of accessory children linked to a parent device. The cap surfaces
|
|
6
|
+
* the grouping and the per-child UI-visibility flag — the single source
|
|
7
|
+
* of truth for what an accessory IS remains the child device itself
|
|
8
|
+
* (resolved via `device-manager.getDevice` from the listed numeric ids).
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* Two parallel arrays:
|
|
11
|
+
* - `childDeviceIds` — every accessory child the parent recognises
|
|
12
|
+
* - `hiddenChildIds` — subset that the operator chose to hide from
|
|
13
|
+
* the parent's UI surface (panels / detail page / grid). The hidden
|
|
14
|
+
* children remain registered and continue to receive state updates;
|
|
15
|
+
* they're omitted only from the parent's UI accessories view.
|
|
16
|
+
*
|
|
17
|
+
* Use cases:
|
|
18
|
+
* - Camera parents hiding seldom-used accessories (e.g. a chime that
|
|
19
|
+
* was provisioned but isn't connected to anything).
|
|
20
|
+
* - HA-integration parents hiding entity-children the user doesn't
|
|
21
|
+
* care about (an "Aqara plug" exposes one switch + 3 sensors —
|
|
22
|
+
* the operator may want only the switch visible).
|
|
23
|
+
*
|
|
24
|
+
* Toggling visibility is the parent provider's responsibility — it
|
|
25
|
+
* implements `setChildHidden` and persists the set so reboots survive.
|
|
11
26
|
*/
|
|
12
27
|
export declare const AccessoriesStatusSchema: z.ZodObject<{
|
|
13
28
|
childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
|
|
29
|
+
hiddenChildIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
|
|
14
30
|
}, z.core.$strip>;
|
|
15
31
|
export type AccessoriesStatus = z.infer<typeof AccessoriesStatusSchema>;
|
|
16
32
|
export declare const accessoriesCapability: {
|
|
17
33
|
readonly name: "accessories";
|
|
18
34
|
readonly scope: "device";
|
|
35
|
+
readonly deviceNative: true;
|
|
19
36
|
readonly mode: "singleton";
|
|
20
|
-
readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub];
|
|
21
|
-
readonly methods: {
|
|
37
|
+
readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Light, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Cover, DeviceType.Lock, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Generic];
|
|
38
|
+
readonly methods: {
|
|
39
|
+
/**
|
|
40
|
+
* Toggle the UI-visibility of a single accessory child. Hidden
|
|
41
|
+
* children stay registered and continue to receive state updates;
|
|
42
|
+
* they're omitted only from the parent's UI accessories panel.
|
|
43
|
+
*
|
|
44
|
+
* Idempotent — hiding an already-hidden child or unhiding a
|
|
45
|
+
* non-hidden child is a no-op. Providers that don't support
|
|
46
|
+
* per-child visibility may implement this as a no-op (the UI hide
|
|
47
|
+
* toggle gracefully degrades).
|
|
48
|
+
*/
|
|
49
|
+
readonly setChildHidden: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
50
|
+
deviceId: z.ZodNumber;
|
|
51
|
+
childDeviceId: z.ZodNumber;
|
|
52
|
+
hidden: z.ZodBoolean;
|
|
53
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
54
|
+
};
|
|
22
55
|
readonly events: {
|
|
23
56
|
/**
|
|
24
57
|
* Emitted when a child device is created, removed, or its parent
|
|
25
|
-
* assignment changes. Payload carries the fresh list
|
|
58
|
+
* assignment changes. Payload carries the fresh list and the
|
|
59
|
+
* hidden subset.
|
|
26
60
|
*/
|
|
27
61
|
readonly onAccessoriesChanged: {
|
|
28
62
|
readonly data: z.ZodObject<{
|
|
29
63
|
deviceId: z.ZodNumber;
|
|
30
64
|
childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
|
|
65
|
+
hiddenChildIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
|
|
66
|
+
}, z.core.$strip>;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Emitted when the operator toggles a child's UI-visibility.
|
|
70
|
+
* Subscribers (admin UI accessories panel) re-render off this
|
|
71
|
+
* signal without re-fetching the full status block.
|
|
72
|
+
*/
|
|
73
|
+
readonly onChildVisibilityChanged: {
|
|
74
|
+
readonly data: z.ZodObject<{
|
|
75
|
+
deviceId: z.ZodNumber;
|
|
76
|
+
childDeviceId: z.ZodNumber;
|
|
77
|
+
hidden: z.ZodBoolean;
|
|
31
78
|
}, z.core.$strip>;
|
|
32
79
|
};
|
|
33
80
|
};
|
|
34
81
|
readonly status: {
|
|
35
82
|
readonly schema: z.ZodObject<{
|
|
36
83
|
childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
|
|
84
|
+
hiddenChildIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
|
|
37
85
|
}, z.core.$strip>;
|
|
38
86
|
readonly kind: "command-driven";
|
|
39
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessories.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/accessories.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"accessories.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/accessories.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uBAAuB;;;iBAMlC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,eAAO,MAAM,qBAAqB;;;;;;;QAwB9B;;;;;;;;;WASG;;;;;;;;QAYH;;;;WAIG;;;;;;;;QAMH;;;;WAIG;;;;;;;;;;;;;;;;CAWkC,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
|
|
@@ -17,6 +17,7 @@ declare const NotificationRuleConditionsSchema: z.ZodObject<{
|
|
|
17
17
|
}, z.core.$strip>>;
|
|
18
18
|
cooldownSeconds: z.ZodOptional<z.ZodNumber>;
|
|
19
19
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
20
21
|
}, z.core.$strip>;
|
|
21
22
|
declare const NotificationRuleTemplateSchema: z.ZodObject<{
|
|
22
23
|
title: z.ZodString;
|
|
@@ -50,6 +51,7 @@ declare const NotificationRuleSchema: z.ZodObject<{
|
|
|
50
51
|
}, z.core.$strip>>;
|
|
51
52
|
cooldownSeconds: z.ZodOptional<z.ZodNumber>;
|
|
52
53
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
53
55
|
}, z.core.$strip>;
|
|
54
56
|
outputs: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
55
57
|
template: z.ZodOptional<z.ZodObject<{
|
|
@@ -123,6 +125,7 @@ export declare const advancedNotifierCapability: {
|
|
|
123
125
|
}, z.core.$strip>>;
|
|
124
126
|
cooldownSeconds: z.ZodOptional<z.ZodNumber>;
|
|
125
127
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
128
|
+
eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
126
129
|
}, z.core.$strip>;
|
|
127
130
|
outputs: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
128
131
|
template: z.ZodOptional<z.ZodObject<{
|
|
@@ -166,6 +169,7 @@ export declare const advancedNotifierCapability: {
|
|
|
166
169
|
}, z.core.$strip>>;
|
|
167
170
|
cooldownSeconds: z.ZodOptional<z.ZodNumber>;
|
|
168
171
|
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
172
|
+
eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
169
173
|
}, z.core.$strip>;
|
|
170
174
|
outputs: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
171
175
|
template: z.ZodOptional<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-notifier.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/advanced-notifier.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAElG,QAAA,MAAM,gCAAgC
|
|
1
|
+
{"version":3,"file":"advanced-notifier.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/advanced-notifier.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAElG,QAAA,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;iBAiBpC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;iBAIlC,CAAA;AAEF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS1B,CAAA;AAEF,QAAA,MAAM,4BAA4B;;;;;;iBAMhC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;;iBAUlC,CAAA;AAEF,QAAA,MAAM,+BAA+B;;;;;;iBAMnC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BE,CAAA;AAEzC,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAExF,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,GAChC,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type InferProvider } from './capability-definition.js';
|
|
3
|
+
import { DeviceType } from '../device/device-type.js';
|
|
4
|
+
/**
|
|
5
|
+
* Multi-metric air-quality slice. Covers CO₂, total VOCs, particulate
|
|
6
|
+
* matter at PM2.5 / PM10, and a derived AQI index — all optional so
|
|
7
|
+
* a single-metric source populates only what it observes. Mirrors
|
|
8
|
+
* the HA `sensor` device_class set (`co2`, `volatile_organic_compounds`,
|
|
9
|
+
* `pm25`, `pm10`, `aqi`) collapsed into one cap because a typical
|
|
10
|
+
* air-quality node reports several of these together; modelling them
|
|
11
|
+
* as siblings keeps a single timestamp + one slice subscription.
|
|
12
|
+
*/
|
|
13
|
+
export declare const AirQualitySensorStatusSchema: z.ZodObject<{
|
|
14
|
+
co2Ppm: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
vocPpb: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
pm25: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
pm10: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
aqi: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
lastFetchedAt: z.ZodNumber;
|
|
20
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
21
|
+
precision: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type AirQualitySensorStatus = z.infer<typeof AirQualitySensorStatusSchema>;
|
|
24
|
+
export declare const airQualitySensorCapability: {
|
|
25
|
+
readonly name: "air-quality-sensor";
|
|
26
|
+
readonly scope: "device";
|
|
27
|
+
readonly deviceNative: true;
|
|
28
|
+
readonly mode: "singleton";
|
|
29
|
+
readonly deviceTypes: readonly [DeviceType.Sensor];
|
|
30
|
+
readonly methods: {};
|
|
31
|
+
readonly status: {
|
|
32
|
+
readonly schema: z.ZodObject<{
|
|
33
|
+
co2Ppm: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
vocPpb: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
pm25: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
pm10: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
aqi: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
lastFetchedAt: z.ZodNumber;
|
|
39
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
40
|
+
precision: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
readonly kind: "push";
|
|
43
|
+
};
|
|
44
|
+
readonly runtimeState: z.ZodObject<{
|
|
45
|
+
co2Ppm: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
vocPpb: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
pm25: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
pm10: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
aqi: z.ZodOptional<z.ZodNumber>;
|
|
50
|
+
lastFetchedAt: z.ZodNumber;
|
|
51
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
52
|
+
precision: z.ZodOptional<z.ZodNumber>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
};
|
|
55
|
+
export type IAirQualitySensorProvider = InferProvider<typeof airQualitySensorCapability>;
|
|
56
|
+
//# sourceMappingURL=air-quality-sensor.cap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"air-quality-sensor.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/air-quality-sensor.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;iBAuBvC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYE,CAAA;AAEzC,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC,OAAO,0BAA0B,CAAC,CAAA"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type InferProvider } from './capability-definition.js';
|
|
3
|
+
import { DeviceType } from '../device/device-type.js';
|
|
4
|
+
/**
|
|
5
|
+
* Alarm-panel cap. Models HA `alarm_control_panel.*` on
|
|
6
|
+
* `DeviceType.AlarmPanel`. State follows HA's canonical lifecycle
|
|
7
|
+
* across disarmed / armed_(home|away|night|vacation|custom_bypass) /
|
|
8
|
+
* arming / pending / triggered / disarming.
|
|
9
|
+
*
|
|
10
|
+
* Many panels require a PIN code on arm / disarm — the optional
|
|
11
|
+
* `code` field on the methods passes it through to the upstream
|
|
12
|
+
* service; it's NEVER persisted in the runtime slice or any event
|
|
13
|
+
* payload. The presence of a required code is signalled by
|
|
14
|
+
* `DeviceFeature.AlarmPinRequired` so the UI gates a code-entry
|
|
15
|
+
* field without a slice fetch.
|
|
16
|
+
*
|
|
17
|
+
* `availableModes` mirrors HA's `supported_features`-derived arm
|
|
18
|
+
* mode list — the UI renders only the buttons the panel accepts.
|
|
19
|
+
*/
|
|
20
|
+
export declare const AlarmStateSchema: z.ZodEnum<{
|
|
21
|
+
pending: "pending";
|
|
22
|
+
disarmed: "disarmed";
|
|
23
|
+
armed_home: "armed_home";
|
|
24
|
+
armed_away: "armed_away";
|
|
25
|
+
armed_night: "armed_night";
|
|
26
|
+
armed_vacation: "armed_vacation";
|
|
27
|
+
armed_custom_bypass: "armed_custom_bypass";
|
|
28
|
+
arming: "arming";
|
|
29
|
+
disarming: "disarming";
|
|
30
|
+
triggered: "triggered";
|
|
31
|
+
}>;
|
|
32
|
+
export type AlarmState = z.infer<typeof AlarmStateSchema>;
|
|
33
|
+
export declare const AlarmArmModeSchema: z.ZodEnum<{
|
|
34
|
+
home: "home";
|
|
35
|
+
away: "away";
|
|
36
|
+
night: "night";
|
|
37
|
+
vacation: "vacation";
|
|
38
|
+
custom_bypass: "custom_bypass";
|
|
39
|
+
}>;
|
|
40
|
+
export type AlarmArmMode = z.infer<typeof AlarmArmModeSchema>;
|
|
41
|
+
export declare const AlarmPanelStatusSchema: z.ZodObject<{
|
|
42
|
+
state: z.ZodEnum<{
|
|
43
|
+
pending: "pending";
|
|
44
|
+
disarmed: "disarmed";
|
|
45
|
+
armed_home: "armed_home";
|
|
46
|
+
armed_away: "armed_away";
|
|
47
|
+
armed_night: "armed_night";
|
|
48
|
+
armed_vacation: "armed_vacation";
|
|
49
|
+
armed_custom_bypass: "armed_custom_bypass";
|
|
50
|
+
arming: "arming";
|
|
51
|
+
disarming: "disarming";
|
|
52
|
+
triggered: "triggered";
|
|
53
|
+
}>;
|
|
54
|
+
availableModes: z.ZodArray<z.ZodEnum<{
|
|
55
|
+
home: "home";
|
|
56
|
+
away: "away";
|
|
57
|
+
night: "night";
|
|
58
|
+
vacation: "vacation";
|
|
59
|
+
custom_bypass: "custom_bypass";
|
|
60
|
+
}>>;
|
|
61
|
+
requiresCode: z.ZodBoolean;
|
|
62
|
+
lastChangedAt: z.ZodNumber;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
export type AlarmPanelStatus = z.infer<typeof AlarmPanelStatusSchema>;
|
|
65
|
+
export declare const alarmPanelCapability: {
|
|
66
|
+
readonly name: "alarm-panel";
|
|
67
|
+
readonly scope: "device";
|
|
68
|
+
readonly deviceNative: true;
|
|
69
|
+
readonly mode: "singleton";
|
|
70
|
+
readonly deviceTypes: readonly [DeviceType.AlarmPanel];
|
|
71
|
+
readonly methods: {
|
|
72
|
+
readonly arm: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
73
|
+
deviceId: z.ZodNumber;
|
|
74
|
+
mode: z.ZodEnum<{
|
|
75
|
+
home: "home";
|
|
76
|
+
away: "away";
|
|
77
|
+
night: "night";
|
|
78
|
+
vacation: "vacation";
|
|
79
|
+
custom_bypass: "custom_bypass";
|
|
80
|
+
}>;
|
|
81
|
+
code: z.ZodOptional<z.ZodString>;
|
|
82
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
83
|
+
readonly disarm: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
84
|
+
deviceId: z.ZodNumber;
|
|
85
|
+
code: z.ZodOptional<z.ZodString>;
|
|
86
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
87
|
+
/**
|
|
88
|
+
* Force the panel into the `triggered` state — used by HA
|
|
89
|
+
* automations to surface external sensor events through the panel
|
|
90
|
+
* (e.g. a Reolink camera intrusion event firing the security
|
|
91
|
+
* system). Provider rejects when the panel hardware doesn't
|
|
92
|
+
* support a software-initiated trigger.
|
|
93
|
+
*/
|
|
94
|
+
readonly trigger: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
95
|
+
deviceId: z.ZodNumber;
|
|
96
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
97
|
+
};
|
|
98
|
+
readonly status: {
|
|
99
|
+
readonly schema: z.ZodObject<{
|
|
100
|
+
state: z.ZodEnum<{
|
|
101
|
+
pending: "pending";
|
|
102
|
+
disarmed: "disarmed";
|
|
103
|
+
armed_home: "armed_home";
|
|
104
|
+
armed_away: "armed_away";
|
|
105
|
+
armed_night: "armed_night";
|
|
106
|
+
armed_vacation: "armed_vacation";
|
|
107
|
+
armed_custom_bypass: "armed_custom_bypass";
|
|
108
|
+
arming: "arming";
|
|
109
|
+
disarming: "disarming";
|
|
110
|
+
triggered: "triggered";
|
|
111
|
+
}>;
|
|
112
|
+
availableModes: z.ZodArray<z.ZodEnum<{
|
|
113
|
+
home: "home";
|
|
114
|
+
away: "away";
|
|
115
|
+
night: "night";
|
|
116
|
+
vacation: "vacation";
|
|
117
|
+
custom_bypass: "custom_bypass";
|
|
118
|
+
}>>;
|
|
119
|
+
requiresCode: z.ZodBoolean;
|
|
120
|
+
lastChangedAt: z.ZodNumber;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
readonly kind: "push";
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Runtime-state slice — mirrored by the kernel. UI panel reads the
|
|
126
|
+
* full slice; renders an arm button per `availableModes` entry and
|
|
127
|
+
* a PIN field iff `requiresCode === true`.
|
|
128
|
+
*/
|
|
129
|
+
readonly runtimeState: z.ZodObject<{
|
|
130
|
+
state: z.ZodEnum<{
|
|
131
|
+
pending: "pending";
|
|
132
|
+
disarmed: "disarmed";
|
|
133
|
+
armed_home: "armed_home";
|
|
134
|
+
armed_away: "armed_away";
|
|
135
|
+
armed_night: "armed_night";
|
|
136
|
+
armed_vacation: "armed_vacation";
|
|
137
|
+
armed_custom_bypass: "armed_custom_bypass";
|
|
138
|
+
arming: "arming";
|
|
139
|
+
disarming: "disarming";
|
|
140
|
+
triggered: "triggered";
|
|
141
|
+
}>;
|
|
142
|
+
availableModes: z.ZodArray<z.ZodEnum<{
|
|
143
|
+
home: "home";
|
|
144
|
+
away: "away";
|
|
145
|
+
night: "night";
|
|
146
|
+
vacation: "vacation";
|
|
147
|
+
custom_bypass: "custom_bypass";
|
|
148
|
+
}>>;
|
|
149
|
+
requiresCode: z.ZodBoolean;
|
|
150
|
+
lastChangedAt: z.ZodNumber;
|
|
151
|
+
}, z.core.$strip>;
|
|
152
|
+
};
|
|
153
|
+
export type IAlarmPanelProvider = InferProvider<typeof alarmPanelCapability>;
|
|
154
|
+
//# sourceMappingURL=alarm-panel.cap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alarm-panel.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/alarm-panel.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;EAW3B,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;iBAWjC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;QA0B7B;;;;;;WAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWL;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;CAEoC,CAAA;AAEzC,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type InferProvider } from './capability-definition.js';
|
|
3
|
+
import { DeviceType } from '../device/device-type.js';
|
|
4
|
+
/**
|
|
5
|
+
* Ambient illuminance reading in lux. Drives Home Assistant `sensor`
|
|
6
|
+
* entries with `device_class: illuminance`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const AmbientLightSensorStatusSchema: z.ZodObject<{
|
|
9
|
+
lux: z.ZodNumber;
|
|
10
|
+
lastFetchedAt: z.ZodNumber;
|
|
11
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
12
|
+
precision: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export type AmbientLightSensorStatus = z.infer<typeof AmbientLightSensorStatusSchema>;
|
|
15
|
+
export declare const ambientLightSensorCapability: {
|
|
16
|
+
readonly name: "ambient-light-sensor";
|
|
17
|
+
readonly scope: "device";
|
|
18
|
+
readonly deviceNative: true;
|
|
19
|
+
readonly mode: "singleton";
|
|
20
|
+
readonly deviceTypes: readonly [DeviceType.Sensor];
|
|
21
|
+
readonly methods: {};
|
|
22
|
+
readonly status: {
|
|
23
|
+
readonly schema: z.ZodObject<{
|
|
24
|
+
lux: z.ZodNumber;
|
|
25
|
+
lastFetchedAt: z.ZodNumber;
|
|
26
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
27
|
+
precision: z.ZodOptional<z.ZodNumber>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
readonly kind: "push";
|
|
30
|
+
};
|
|
31
|
+
readonly runtimeState: z.ZodObject<{
|
|
32
|
+
lux: z.ZodNumber;
|
|
33
|
+
lastFetchedAt: z.ZodNumber;
|
|
34
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
35
|
+
precision: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
};
|
|
38
|
+
export type IAmbientLightSensorProvider = InferProvider<typeof ambientLightSensorCapability>;
|
|
39
|
+
//# sourceMappingURL=ambient-light-sensor.cap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambient-light-sensor.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/ambient-light-sensor.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;iBAczC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAErF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;CAYA,CAAA;AAEzC,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC,OAAO,4BAA4B,CAAC,CAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type InferProvider } from './capability-definition.js';
|
|
3
|
+
import { DeviceType } from '../device/device-type.js';
|
|
4
|
+
/**
|
|
5
|
+
* Automation-control cap. Models HA `automation.*` entities on
|
|
6
|
+
* `DeviceType.Automation`. An automation is a trigger+condition+
|
|
7
|
+
* action rule that can be enabled / disabled and manually fired
|
|
8
|
+
* via the `trigger` method.
|
|
9
|
+
*
|
|
10
|
+
* `trigger` accepts an optional `skipCondition` flag — when true,
|
|
11
|
+
* the automation's action block runs WITHOUT evaluating its
|
|
12
|
+
* condition block. Pair with `DeviceFeature.AutomationSkipCondition`
|
|
13
|
+
* to gate the UI checkbox for the manual-trigger dialog.
|
|
14
|
+
*/
|
|
15
|
+
export declare const AutomationControlStatusSchema: z.ZodObject<{
|
|
16
|
+
enabled: z.ZodBoolean;
|
|
17
|
+
isRunning: z.ZodBoolean;
|
|
18
|
+
lastTriggeredAt: z.ZodNumber;
|
|
19
|
+
lastError: z.ZodNullable<z.ZodString>;
|
|
20
|
+
lastChangedAt: z.ZodNumber;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export type AutomationControlStatus = z.infer<typeof AutomationControlStatusSchema>;
|
|
23
|
+
export declare const automationControlCapability: {
|
|
24
|
+
readonly name: "automation-control";
|
|
25
|
+
readonly scope: "device";
|
|
26
|
+
readonly deviceNative: true;
|
|
27
|
+
readonly mode: "singleton";
|
|
28
|
+
readonly deviceTypes: readonly [DeviceType.Automation];
|
|
29
|
+
readonly methods: {
|
|
30
|
+
readonly enable: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
31
|
+
deviceId: z.ZodNumber;
|
|
32
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
33
|
+
readonly disable: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
34
|
+
deviceId: z.ZodNumber;
|
|
35
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
36
|
+
readonly trigger: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
37
|
+
deviceId: z.ZodNumber;
|
|
38
|
+
skipCondition: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
40
|
+
};
|
|
41
|
+
readonly status: {
|
|
42
|
+
readonly schema: z.ZodObject<{
|
|
43
|
+
enabled: z.ZodBoolean;
|
|
44
|
+
isRunning: z.ZodBoolean;
|
|
45
|
+
lastTriggeredAt: z.ZodNumber;
|
|
46
|
+
lastError: z.ZodNullable<z.ZodString>;
|
|
47
|
+
lastChangedAt: z.ZodNumber;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
readonly kind: "push";
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Runtime-state slice — mirrored by the kernel. UI automation tile
|
|
53
|
+
* reads `enabled` (toggle) + `isRunning` (spinner) + `lastError`
|
|
54
|
+
* (badge) directly.
|
|
55
|
+
*/
|
|
56
|
+
readonly runtimeState: z.ZodObject<{
|
|
57
|
+
enabled: z.ZodBoolean;
|
|
58
|
+
isRunning: z.ZodBoolean;
|
|
59
|
+
lastTriggeredAt: z.ZodNumber;
|
|
60
|
+
lastError: z.ZodNullable<z.ZodString>;
|
|
61
|
+
lastChangedAt: z.ZodNumber;
|
|
62
|
+
}, z.core.$strip>;
|
|
63
|
+
};
|
|
64
|
+
export type IAutomationControlProvider = InferProvider<typeof automationControlCapability>;
|
|
65
|
+
//# sourceMappingURL=automation-control.cap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-control.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/automation-control.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,6BAA6B;;;;;;iBAaxC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEnF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCtC;;;;OAIG;;;;;;;;CAEoC,CAAA;AAEzC,MAAM,MAAM,0BAA0B,GAAG,aAAa,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
|
|
@@ -17,14 +17,40 @@ export declare const BatteryStatusSchema: z.ZodObject<{
|
|
|
17
17
|
}>;
|
|
18
18
|
sleeping: z.ZodBoolean;
|
|
19
19
|
lastUpdated: z.ZodNumber;
|
|
20
|
+
binary: z.ZodOptional<z.ZodBoolean>;
|
|
20
21
|
}, z.core.$strip>;
|
|
21
22
|
export type BatteryStatus = z.infer<typeof BatteryStatusSchema>;
|
|
22
23
|
export declare const batteryCapability: {
|
|
23
24
|
readonly name: "battery";
|
|
24
25
|
readonly scope: "device";
|
|
26
|
+
readonly deviceNative: true;
|
|
25
27
|
readonly mode: "singleton";
|
|
26
28
|
readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch];
|
|
27
|
-
readonly methods: {
|
|
29
|
+
readonly methods: {
|
|
30
|
+
/**
|
|
31
|
+
* Explicitly wake the camera from low-power sleep ahead of a
|
|
32
|
+
* streaming session start. Consumers that initiate a stream
|
|
33
|
+
* against a sleeping battery cam (HomeKit Secure Video, Alexa
|
|
34
|
+
* RTCSession, snapshot wrappers) call this with a short timeout
|
|
35
|
+
* before establishing the media pipeline — the broker's own
|
|
36
|
+
* passive wake-on-dial works but adds 5–7 seconds to first-frame,
|
|
37
|
+
* during which the consumer renders a black screen. Pre-waking
|
|
38
|
+
* compresses that gap.
|
|
39
|
+
*
|
|
40
|
+
* Returns `awoke: true` when the firmware acknowledged the wake
|
|
41
|
+
* before `timeoutMs`. Returns `awoke: false` when it timed out OR
|
|
42
|
+
* the cap surface is unavailable (no Baichuan / firmware
|
|
43
|
+
* channel); the caller should still attempt the stream — the
|
|
44
|
+
* passive broker wake remains as fallback.
|
|
45
|
+
*/
|
|
46
|
+
readonly wakeForStream: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
47
|
+
deviceId: z.ZodNumber;
|
|
48
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
+
awoke: z.ZodBoolean;
|
|
51
|
+
durationMs: z.ZodNumber;
|
|
52
|
+
}, z.core.$strip>, "mutation">;
|
|
53
|
+
};
|
|
28
54
|
readonly events: {
|
|
29
55
|
/**
|
|
30
56
|
* Emitted whenever the cached status changes (firmware push OR
|
|
@@ -44,6 +70,7 @@ export declare const batteryCapability: {
|
|
|
44
70
|
}>;
|
|
45
71
|
sleeping: z.ZodBoolean;
|
|
46
72
|
lastUpdated: z.ZodNumber;
|
|
73
|
+
binary: z.ZodOptional<z.ZodBoolean>;
|
|
47
74
|
}, z.core.$strip>;
|
|
48
75
|
}, z.core.$strip>;
|
|
49
76
|
};
|
|
@@ -58,6 +85,7 @@ export declare const batteryCapability: {
|
|
|
58
85
|
}>;
|
|
59
86
|
sleeping: z.ZodBoolean;
|
|
60
87
|
lastUpdated: z.ZodNumber;
|
|
88
|
+
binary: z.ZodOptional<z.ZodBoolean>;
|
|
61
89
|
}, z.core.$strip>;
|
|
62
90
|
readonly kind: "push";
|
|
63
91
|
};
|
|
@@ -79,6 +107,7 @@ export declare const batteryCapability: {
|
|
|
79
107
|
}>;
|
|
80
108
|
sleeping: z.ZodBoolean;
|
|
81
109
|
lastUpdated: z.ZodNumber;
|
|
110
|
+
binary: z.ZodOptional<z.ZodBoolean>;
|
|
82
111
|
}, z.core.$strip>;
|
|
83
112
|
};
|
|
84
113
|
export type IBatteryProvider = InferProvider<typeof batteryCapability>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"battery.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/battery.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"battery.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/battery.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBA0B9B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,iBAAiB;;;;;;;QAO1B;;;;;;;;;;;;;;;WAeG;;;;;;;;;;QAeH;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUL;;;;;;;;OAQG;;;;;;;;;;;;CAEoC,CAAA;AAEzC,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|