@camstack/types 1.2.365 → 1.2.366

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 (80) hide show
  1. package/dist/addon.js +1 -1
  2. package/dist/addon.mjs +1 -1
  3. package/dist/capabilities/air-quality-sensor.cap.d.ts +32 -0
  4. package/dist/capabilities/alarm-panel.cap.d.ts +4 -0
  5. package/dist/capabilities/ambient-light-sensor.cap.d.ts +13 -0
  6. package/dist/capabilities/audio-metrics.cap.d.ts +4 -0
  7. package/dist/capabilities/automation-control.cap.d.ts +4 -0
  8. package/dist/capabilities/battery.cap.d.ts +11 -0
  9. package/dist/capabilities/binary.cap.d.ts +10 -0
  10. package/dist/capabilities/brightness.cap.d.ts +12 -0
  11. package/dist/capabilities/camera-streams.cap.d.ts +4 -0
  12. package/dist/capabilities/capability-definition.d.ts +70 -0
  13. package/dist/capabilities/carbon-monoxide.cap.d.ts +10 -0
  14. package/dist/capabilities/climate-control.cap.d.ts +32 -0
  15. package/dist/capabilities/color.cap.d.ts +4 -0
  16. package/dist/capabilities/connectivity.cap.d.ts +4 -0
  17. package/dist/capabilities/consumables.cap.d.ts +4 -0
  18. package/dist/capabilities/contact.cap.d.ts +10 -0
  19. package/dist/capabilities/control.cap.d.ts +4 -0
  20. package/dist/capabilities/cover.cap.d.ts +12 -0
  21. package/dist/capabilities/day-night.cap.d.ts +4 -0
  22. package/dist/capabilities/device-discovery.cap.d.ts +4 -0
  23. package/dist/capabilities/device-status.cap.d.ts +10 -0
  24. package/dist/capabilities/doorbell.cap.d.ts +4 -0
  25. package/dist/capabilities/enum-sensor.cap.d.ts +4 -0
  26. package/dist/capabilities/event-emitter.cap.d.ts +4 -0
  27. package/dist/capabilities/fan-control.cap.d.ts +15 -0
  28. package/dist/capabilities/feature-probe.cap.d.ts +4 -0
  29. package/dist/capabilities/flood.cap.d.ts +10 -0
  30. package/dist/capabilities/gas.cap.d.ts +10 -0
  31. package/dist/capabilities/humidifier.cap.d.ts +15 -0
  32. package/dist/capabilities/humidity-sensor.cap.d.ts +12 -0
  33. package/dist/capabilities/image-settings.cap.d.ts +4 -0
  34. package/dist/capabilities/image.cap.d.ts +4 -0
  35. package/dist/capabilities/index.d.ts +2 -2
  36. package/dist/capabilities/intercom.cap.d.ts +4 -0
  37. package/dist/capabilities/lawn-mower-control.cap.d.ts +12 -0
  38. package/dist/capabilities/lock-control.cap.d.ts +4 -0
  39. package/dist/capabilities/media-player.cap.d.ts +4 -0
  40. package/dist/capabilities/motion-trigger.cap.d.ts +4 -0
  41. package/dist/capabilities/motion-zones.cap.d.ts +4 -0
  42. package/dist/capabilities/motion.cap.d.ts +11 -0
  43. package/dist/capabilities/native-object-detection.cap.d.ts +4 -0
  44. package/dist/capabilities/navigation.cap.d.ts +4 -0
  45. package/dist/capabilities/network-link.cap.d.ts +19 -0
  46. package/dist/capabilities/notifier.cap.d.ts +4 -0
  47. package/dist/capabilities/numeric-sensor.cap.d.ts +12 -0
  48. package/dist/capabilities/pet-feeder.cap.d.ts +25 -0
  49. package/dist/capabilities/power-meter.cap.d.ts +43 -0
  50. package/dist/capabilities/presence.cap.d.ts +12 -0
  51. package/dist/capabilities/pressure-sensor.cap.d.ts +12 -0
  52. package/dist/capabilities/privacy-mask.cap.d.ts +4 -0
  53. package/dist/capabilities/ptz-autotrack.cap.d.ts +4 -0
  54. package/dist/capabilities/recording-onboard.cap.d.ts +4 -0
  55. package/dist/capabilities/recording-signal.cap.d.ts +4 -0
  56. package/dist/capabilities/scene-monitor.cap.d.ts +4 -0
  57. package/dist/capabilities/script-runner.cap.d.ts +4 -0
  58. package/dist/capabilities/smoke.cap.d.ts +10 -0
  59. package/dist/capabilities/stream-catalog.cap.d.ts +4 -0
  60. package/dist/capabilities/stream-params.cap.d.ts +4 -0
  61. package/dist/capabilities/stream-signals.cap.d.ts +4 -0
  62. package/dist/capabilities/switch.cap.d.ts +10 -0
  63. package/dist/capabilities/tamper.cap.d.ts +10 -0
  64. package/dist/capabilities/temperature-sensor.cap.d.ts +12 -0
  65. package/dist/capabilities/update.cap.d.ts +4 -0
  66. package/dist/capabilities/vacuum-control.cap.d.ts +32 -0
  67. package/dist/capabilities/valve.cap.d.ts +12 -0
  68. package/dist/capabilities/vibration.cap.d.ts +10 -0
  69. package/dist/capabilities/water-heater.cap.d.ts +17 -0
  70. package/dist/capabilities/weather.cap.d.ts +27 -0
  71. package/dist/capabilities/zone-analytics.cap.d.ts +4 -0
  72. package/dist/capabilities/zone-rules.cap.d.ts +4 -0
  73. package/dist/capabilities/zones.cap.d.ts +4 -0
  74. package/dist/generated/history-catalog.d.ts +11 -0
  75. package/dist/index.d.ts +1 -0
  76. package/dist/index.js +868 -34
  77. package/dist/index.mjs +864 -35
  78. package/dist/{sleep-BBF1iXUi.mjs → sleep-DxJdzHni.mjs} +26 -1
  79. package/dist/{sleep-BBXNq778.js → sleep-NZlEFYGX.js} +37 -0
  80. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-BBXNq778.js");
2
+ const require_sleep = require("./sleep-NZlEFYGX.js");
3
3
  const require_event_category = require("./event-category-T43rdQWR.js");
4
4
  const require_err_msg = require("./err-msg-Dx2Kor0g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as ReadinessRegistry, A as viewerUiCapability, At as clearKnownSecrets, C as isZodSecret, Cn as isSecretMarker, Dt as REVALIDATE_AFTER_MS, E as HF_REPO, En as toSecretFieldView, Et as resolveSecretViewsIn, Ft as shortSecretRefHash, Gt as normalizeAddonInitResult, H as expandCapMethods, I as adminUiCapability, It as PEER_BYTES_CHUNK_BYTES, Lt as PEER_BYTES_MAX_OUTSTANDING, Mt as knownSecretCount, Nt as registerKnownSecret, Ot as createSecretsAccess, P as describeCustomActions, Pt as scrubKnownSecrets, Q as MODEL_FORMATS, Rt as PEER_BYTES_STALL_MS, S as collectZodSecretPaths, Sn as isSecretFieldView, Tn as makeSecretMarker, Ut as DisposerChain, Vt as DATAPLANE_SECRET_HEADER, Wt as BaseAddon, X as readNodePin, Y as nodePin, _ as createEventBusSliceSource, an as isSecretRef, bn as classifySecretWrite, c as asString, d as parseJsonUnknown, dn as emitReadiness, en as SECRET_REF_SCHEME, et as ReadinessTimeoutError, f as hfModelUrl, g as createDeviceProxy, h as isDeviceScopedCap, in as globalSecretScope, j as DEVICE_CHILDREN_BATCH_MAX, jt as forgetKnownSecret, k as deviceOpsCapability, kt as MIN_SCRUBBED_LENGTH, m as DEVICE_SCOPED_CAPS, nn as buildSecretRef, o as asJsonObject, on as normalizeSecretOwner, p as BOOT_RECOVERY_BACKOFF_MS, r as maskUrlCredentials, rn as formatSecretScope, rt as scopeKey, sn as parseSecretRef, t as sleep, tn as arrayItemFieldPath, un as createEvent, wn as isSecretMarkerLike, xn as isSecretClear, yn as SECRET_CLEAR, zt as PEER_BYTES_TICKET_TTL_MS } from "./sleep-BBF1iXUi.mjs";
1
+ import { A as viewerUiCapability, At as createSecretsAccess, Bt as PEER_BYTES_STALL_MS, C as isZodSecret, Cn as isSecretClear, Dn as makeSecretMarker, E as HF_REPO, En as isSecretMarkerLike, Ft as registerKnownSecret, Gt as DisposerChain, I as adminUiCapability, It as scrubKnownSecrets, Kt as BaseAddon, Lt as shortSecretRefHash, Mt as clearKnownSecrets, Nt as forgetKnownSecret, On as toSecretFieldView, Ot as resolveSecretViewsIn, P as describeCustomActions, Pt as knownSecretCount, Q as readNodePin, Rt as PEER_BYTES_CHUNK_BYTES, S as collectZodSecretPaths, Sn as classifySecretWrite, Tn as isSecretMarker, Ut as DATAPLANE_SECRET_HEADER, Vt as PEER_BYTES_TICKET_TTL_MS, W as expandCapMethods, Z as nodePin, _ as createEventBusSliceSource, an as formatSecretScope, at as scopeKey, c as asString, cn as normalizeSecretOwner, d as parseJsonUnknown, et as MODEL_FORMATS, f as hfModelUrl, fn as createEvent, g as createDeviceProxy, h as isDeviceScopedCap, in as buildSecretRef, j as DEVICE_CHILDREN_BATCH_MAX, jt as MIN_SCRUBBED_LENGTH, k as deviceOpsCapability, kt as REVALIDATE_AFTER_MS, ln as parseSecretRef, m as DEVICE_SCOPED_CAPS, nn as SECRET_REF_SCHEME, nt as ReadinessTimeoutError, o as asJsonObject, on as globalSecretScope, p as BOOT_RECOVERY_BACKOFF_MS, pn as emitReadiness, qt as normalizeAddonInitResult, r as maskUrlCredentials, rn as arrayItemFieldPath, sn as isSecretRef, t as sleep, tt as ReadinessRegistry, wn as isSecretFieldView, xn as SECRET_CLEAR, zt as PEER_BYTES_MAX_OUTSTANDING } from "./sleep-DxJdzHni.mjs";
2
2
  import { t as EventCategory } from "./event-category-C4hVnRo8.mjs";
3
3
  import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
@@ -58,6 +58,38 @@ export declare const airQualitySensorCapability: {
58
58
  * `scripts/check-runtime-state-durability.ts`.
59
59
  */
60
60
  readonly durability: 'restored';
61
+ /**
62
+ * History (D850): recorded series.
63
+ */
64
+ readonly history: {
65
+ readonly fields: {
66
+ readonly co2Ppm: {
67
+ readonly kind: 'gauge';
68
+ readonly unit: 'ppm';
69
+ readonly deadband: 5;
70
+ };
71
+ readonly vocPpb: {
72
+ readonly kind: 'gauge';
73
+ readonly unit: 'ppb';
74
+ readonly deadband: 5;
75
+ };
76
+ readonly pm25: {
77
+ readonly kind: 'gauge';
78
+ readonly unit: 'ug/m3';
79
+ readonly deadband: 1;
80
+ };
81
+ readonly pm10: {
82
+ readonly kind: 'gauge';
83
+ readonly unit: 'ug/m3';
84
+ readonly deadband: 1;
85
+ };
86
+ readonly aqi: {
87
+ readonly kind: 'gauge';
88
+ readonly unit: 'count';
89
+ readonly deadband: 1;
90
+ };
91
+ };
92
+ };
61
93
  /** Clock fields: written, but excluded from the compare that decides
62
94
  * whether persisting is worth a SQLite commit. */
63
95
  readonly volatileStateFields: readonly ["lastFetchedAt"];
@@ -177,6 +177,10 @@ export declare const alarmPanelCapability: {
177
177
  * `scripts/check-runtime-state-durability.ts`.
178
178
  */
179
179
  readonly durability: 'restored';
180
+ /**
181
+ * History (D850): none — enum state; arm/disarm history belongs in the events ledger.
182
+ */
183
+ readonly history: 'none';
180
184
  /** Clock fields: written, but excluded from the compare that decides
181
185
  * whether persisting is worth a SQLite commit. */
182
186
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -41,6 +41,19 @@ export declare const ambientLightSensorCapability: {
41
41
  * `scripts/check-runtime-state-durability.ts`.
42
42
  */
43
43
  readonly durability: 'restored';
44
+ /**
45
+ * History (D850): recorded series. Wide range, so a RELATIVE deadband (10 %).
46
+ */
47
+ readonly history: {
48
+ readonly fields: {
49
+ readonly lux: {
50
+ readonly kind: 'gauge';
51
+ readonly unit: 'lx';
52
+ readonly deadbandPct: 10;
53
+ readonly minIntervalMs: 60000;
54
+ };
55
+ };
56
+ };
44
57
  /** Clock fields: written, but excluded from the compare that decides
45
58
  * whether persisting is worth a SQLite commit. */
46
59
  readonly volatileStateFields: readonly ["lastFetchedAt"];
@@ -175,6 +175,10 @@ export declare const audioMetricsCapability: {
175
175
  * `scripts/check-runtime-state-durability.ts`.
176
176
  */
177
177
  readonly durability: 'session';
178
+ /**
179
+ * History (D850): none — the level is the addon series `pipeline-analytics/audio-level` (producer `record`); the other numbers move every inference window and duplicate it.
180
+ */
181
+ readonly history: 'none';
178
182
  };
179
183
  export type IAudioMetricsProvider = InferProvider<typeof audioMetricsCapability>;
180
184
  export { AudioMetricsSnapshotSchema, AudioClassSummarySchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, };
@@ -67,5 +67,9 @@ export declare const automationControlCapability: {
67
67
  * `scripts/check-runtime-state-durability.ts`.
68
68
  */
69
69
  readonly durability: 'session';
70
+ /**
71
+ * History (D850): none — configuration and transient run state.
72
+ */
73
+ readonly history: 'none';
70
74
  };
71
75
  export type IAutomationControlProvider = InferProvider<typeof automationControlCapability>;
@@ -149,6 +149,17 @@ export declare const batteryCapability: {
149
149
  * `scripts/check-runtime-state-durability.ts`.
150
150
  */
151
151
  readonly durability: 'restored';
152
+ /**
153
+ * History (D850): recorded series. The generic capture replaces the `battery` series of `pipeline-analytics:stats-5m`.
154
+ */
155
+ readonly history: {
156
+ readonly fields: {
157
+ readonly percentage: {
158
+ readonly kind: 'gauge';
159
+ readonly unit: '%';
160
+ };
161
+ };
162
+ };
152
163
  /** Clock fields: written, but excluded from the compare that decides
153
164
  * whether persisting is worth a SQLite commit. */
154
165
  readonly volatileStateFields: readonly ["lastUpdated"];
@@ -42,6 +42,16 @@ export declare const binaryCapability: {
42
42
  * `scripts/check-runtime-state-durability.ts`.
43
43
  */
44
44
  readonly durability: 'restored';
45
+ /**
46
+ * History (D850): recorded series.
47
+ */
48
+ readonly history: {
49
+ readonly fields: {
50
+ readonly on: {
51
+ readonly kind: 'boolean';
52
+ };
53
+ };
54
+ };
45
55
  /** Clock fields: written, but excluded from the compare that decides
46
56
  * whether persisting is worth a SQLite commit. */
47
57
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -67,5 +67,17 @@ export declare const brightnessCapability: {
67
67
  * `scripts/check-runtime-state-durability.ts`.
68
68
  */
69
69
  readonly durability: 'session';
70
+ /**
71
+ * History (D850): recorded series. Actuator tier: level keeps every change.
72
+ */
73
+ readonly history: {
74
+ readonly fields: {
75
+ readonly percentage: {
76
+ readonly kind: 'gauge';
77
+ readonly unit: '%';
78
+ readonly minIntervalMs: 0;
79
+ };
80
+ };
81
+ };
70
82
  };
71
83
  export type IBrightnessProvider = InferProvider<typeof brightnessCapability>;
@@ -403,5 +403,9 @@ export declare const cameraStreamsCapability: {
403
403
  * `scripts/check-runtime-state-durability.ts`.
404
404
  */
405
405
  readonly durability: 'session';
406
+ /**
407
+ * History (D850): none — `online` duplicates device-status.online (one authority); slot data is nested enum/string.
408
+ */
409
+ readonly history: 'none';
406
410
  };
407
411
  export type ICameraStreamsProvider = InferProvider<typeof cameraStreamsCapability>;
@@ -378,6 +378,68 @@ export interface DeviceConfigSpec {
378
378
  export type RuntimeStateDurability = 'session' | 'restored';
379
379
  /** The default applied to a `runtimeState` cap that declares no `durability`. */
380
380
  export declare const DEFAULT_RUNTIME_STATE_DURABILITY: RuntimeStateDurability;
381
+ /**
382
+ * Unit of a recorded history series. A closed set: the History tab formats by
383
+ * it. `'ug/m3'` is the ASCII-safe id of micrograms per cubic metre — render it
384
+ * through {@link HISTORY_UNIT_LABELS}. A series whose unit is a per-device fact
385
+ * names a sibling field with {@link CapabilityHistoryField.unitFrom} instead.
386
+ */
387
+ export type HistoryUnit = '%' | 'dBFS' | 'dBm' | '°C' | 'W' | 'kWh' | 'V' | 'A' | 'VA' | 'lx' | 'ppm' | 'ppb' | 'ug/m3' | 'hPa' | 'count' | 'ratio' | 'ms' | 's' | 'days' | 'bytes';
388
+ /** Display label per {@link HistoryUnit} (only `'ug/m3'` differs from its id). */
389
+ export declare const HISTORY_UNIT_LABELS: Readonly<Record<HistoryUnit, string>>;
390
+ /** One `runtimeState` field recorded as a history series. */
391
+ export interface CapabilityHistoryField {
392
+ /**
393
+ * `gauge` — a level, averaged in a rollup. `counter` — a MONOTONIC hardware
394
+ * meter only (`kwhTotal`); a drop is a reset, never a negative reading. A
395
+ * counter that restarts with the addon (`pressCountSinceStart`) is not one.
396
+ * `boolean` — stored 0/1; a rollup gives the fraction of time true.
397
+ */
398
+ readonly kind: 'gauge' | 'counter' | 'boolean';
399
+ /** Fixed unit of the series. Mutually exclusive with {@link unitFrom}. */
400
+ readonly unit?: HistoryUnit;
401
+ /**
402
+ * Path of a SIBLING `runtimeState` field (a string or enum) that carries this
403
+ * device's unit — `weather.temperature` takes it from `temperatureUnit`. The
404
+ * catalog records the path; the reader resolves it per device. Mutually
405
+ * exclusive with {@link unit}.
406
+ */
407
+ readonly unitFrom?: string;
408
+ readonly displayName?: string;
409
+ /** Drop a change smaller than this (ABSOLUTE) — anti-jitter for noisy gauges. */
410
+ readonly deadband?: number;
411
+ /**
412
+ * Drop a change smaller than this percentage of the last recorded value
413
+ * (RELATIVE) — for a wide-range gauge such as lux. Applied together with
414
+ * {@link deadband} when both are set: a change must clear both.
415
+ */
416
+ readonly deadbandPct?: number;
417
+ /**
418
+ * At most one raw point per this many ms per series. Absent means the capture
419
+ * floor of the kind: 10 000 for `gauge` and `counter`, none for `boolean`
420
+ * (change-only). Set it ABOVE the floor to be sparser; the floor is not
421
+ * lowered by a smaller value except `0`, which a field may state to opt out
422
+ * of the floor (a flapping state that must not lose an edge).
423
+ */
424
+ readonly minIntervalMs?: number;
425
+ /**
426
+ * Device types for which this field is NOT captured. `motion.detected` is a
427
+ * series for a PIR sensor and not for a camera, whose motion is already an
428
+ * addon series and a ledger.
429
+ */
430
+ readonly excludeDeviceTypes?: readonly DeviceType[];
431
+ }
432
+ /**
433
+ * The `history` block of a cap with `runtimeState`: `'none'` is an explicit
434
+ * answer; otherwise `fields` maps TOP-LEVEL or fixed-object (`a.b`) paths of
435
+ * `runtimeState` to a series. A path never goes into an array or a record keyed
436
+ * by runtime ids. Enforced by `scripts/check-cap-history-declared.ts`.
437
+ */
438
+ export type CapabilityHistory = 'none' | {
439
+ readonly fields: Readonly<Record<string, CapabilityHistoryField>>;
440
+ };
441
+ /** Capture floor (ms) applied to `gauge` / `counter` series when a field states none. */
442
+ export declare const HISTORY_DEFAULT_MIN_INTERVAL_MS = 10000;
381
443
  /**
382
444
  * How a COMPOSED provider answers a method it cannot forward yet (D663). A
383
445
  * composition that ADDS a cap to a device serves this cap's methods from here
@@ -516,6 +578,14 @@ export interface CapabilityDefinition<TName extends string = string, TMethods ex
516
578
  * trick with `ts` for the two hot caps; this is the same idea, declared.
517
579
  */
518
580
  readonly volatileStateFields?: readonly string[];
581
+ /**
582
+ * Which `runtimeState` fields are recorded as long-term history series
583
+ * (D850), or `'none'`. Mandatory for every cap declaring `runtimeState` —
584
+ * `scripts/check-cap-history-declared.ts` fails the build otherwise. See
585
+ * {@link CapabilityHistory}; `npm run codegen` projects it into
586
+ * `generated/history-catalog.ts`.
587
+ */
588
+ readonly history?: CapabilityHistory;
519
589
  /**
520
590
  * Declarative settings spec. When present, the device-manager's
521
591
  * settings aggregator auto-derives the ConfigUISchema and routes
@@ -35,6 +35,16 @@ export declare const carbonMonoxideCapability: {
35
35
  * `scripts/check-runtime-state-durability.ts`.
36
36
  */
37
37
  readonly durability: 'restored';
38
+ /**
39
+ * History (D850): recorded series.
40
+ */
41
+ readonly history: {
42
+ readonly fields: {
43
+ readonly detected: {
44
+ readonly kind: 'boolean';
45
+ };
46
+ };
47
+ };
38
48
  /** Clock fields: written, but excluded from the compare that decides
39
49
  * whether persisting is worth a SQLite commit. */
40
50
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -206,5 +206,37 @@ export declare const climateControlCapability: {
206
206
  * `scripts/check-runtime-state-durability.ts`.
207
207
  */
208
208
  readonly durability: 'session';
209
+ /**
210
+ * History (D850): recorded series. Celsius by contract; setpoints keep every change (`minIntervalMs: 0`).
211
+ */
212
+ readonly history: {
213
+ readonly fields: {
214
+ readonly currentTemp: {
215
+ readonly kind: 'gauge';
216
+ readonly unit: '°C';
217
+ readonly deadband: 0.1;
218
+ };
219
+ readonly currentHumidity: {
220
+ readonly kind: 'gauge';
221
+ readonly unit: '%';
222
+ readonly deadband: 0.5;
223
+ };
224
+ readonly target: {
225
+ readonly kind: 'gauge';
226
+ readonly unit: '°C';
227
+ readonly minIntervalMs: 0;
228
+ };
229
+ readonly targetHigh: {
230
+ readonly kind: 'gauge';
231
+ readonly unit: '°C';
232
+ readonly minIntervalMs: 0;
233
+ };
234
+ readonly targetLow: {
235
+ readonly kind: 'gauge';
236
+ readonly unit: '°C';
237
+ readonly minIntervalMs: 0;
238
+ };
239
+ };
240
+ };
209
241
  };
210
242
  export type IClimateControlProvider = InferProvider<typeof climateControlCapability>;
@@ -187,6 +187,10 @@ export declare const colorCapability: {
187
187
  * `scripts/check-runtime-state-durability.ts`.
188
188
  */
189
189
  readonly durability: 'session';
190
+ /**
191
+ * History (D850): none — nested and cosmetic.
192
+ */
193
+ readonly history: 'none';
190
194
  };
191
195
  export type IColorProvider = InferProvider<typeof colorCapability>;
192
196
  export {};
@@ -39,6 +39,10 @@ export declare const connectivityCapability: {
39
39
  * `scripts/check-runtime-state-durability.ts`.
40
40
  */
41
41
  readonly durability: 'restored';
42
+ /**
43
+ * History (D850): none — duplicates device-status.online (one authority for availability).
44
+ */
45
+ readonly history: 'none';
42
46
  /** Clock fields: written, but excluded from the compare that decides
43
47
  * whether persisting is worth a SQLite commit. */
44
48
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -227,6 +227,10 @@ export declare const consumablesCapability: {
227
227
  * `scripts/check-runtime-state-durability.ts`.
228
228
  */
229
229
  readonly durability: 'restored';
230
+ /**
231
+ * History (D850): none — `items` is an array keyed by runtime ids; a history path never enters it.
232
+ */
233
+ readonly history: 'none';
230
234
  /** Clocks, not content: a re-read that changed no item costs no commit. */
231
235
  readonly volatileStateFields: readonly ["lastChangedAt", "lastFetchedAt"];
232
236
  };
@@ -43,6 +43,16 @@ export declare const contactCapability: {
43
43
  * `scripts/check-runtime-state-durability.ts`.
44
44
  */
45
45
  readonly durability: 'restored';
46
+ /**
47
+ * History (D850): recorded series.
48
+ */
49
+ readonly history: {
50
+ readonly fields: {
51
+ readonly entryOpen: {
52
+ readonly kind: 'boolean';
53
+ };
54
+ };
55
+ };
46
56
  /** Clock fields: written, but excluded from the compare that decides
47
57
  * whether persisting is worth a SQLite commit. */
48
58
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -168,6 +168,10 @@ export declare const controlCapability: {
168
168
  * `scripts/check-runtime-state-durability.ts`.
169
169
  */
170
170
  readonly durability: 'session';
171
+ /**
172
+ * History (D850): none — `value` is a number/string union; configuration entity.
173
+ */
174
+ readonly history: 'none';
171
175
  };
172
176
  export type IControlProvider = InferProvider<typeof controlCapability>;
173
177
  export {};
@@ -106,6 +106,18 @@ export declare const coverCapability: {
106
106
  * `scripts/check-runtime-state-durability.ts`.
107
107
  */
108
108
  readonly durability: 'restored';
109
+ /**
110
+ * History (D850): recorded series. Actuator tier: position keeps every tick of a movement.
111
+ */
112
+ readonly history: {
113
+ readonly fields: {
114
+ readonly position: {
115
+ readonly kind: 'gauge';
116
+ readonly unit: '%';
117
+ readonly minIntervalMs: 0;
118
+ };
119
+ };
120
+ };
109
121
  /** Clock fields: written, but excluded from the compare that decides
110
122
  * whether persisting is worth a SQLite commit. */
111
123
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -165,6 +165,10 @@ export declare const dayNightCapability: {
165
165
  * `scripts/check-runtime-state-durability.ts`.
166
166
  */
167
167
  readonly durability: 'restored';
168
+ /**
169
+ * History (D850): none — firmware configuration, not a measurement.
170
+ */
171
+ readonly history: 'none';
168
172
  /** Clock fields: written, but excluded from the compare that decides
169
173
  * whether persisting is worth a SQLite commit. */
170
174
  readonly volatileStateFields: readonly ["lastFetchedAt"];
@@ -106,6 +106,10 @@ export declare const deviceDiscoveryCapability: {
106
106
  * `scripts/check-runtime-state-durability.ts`.
107
107
  */
108
108
  readonly durability: 'session';
109
+ /**
110
+ * History (D850): none — inventory.
111
+ */
112
+ readonly history: 'none';
109
113
  readonly methods: {
110
114
  /**
111
115
  * Snapshot of the current `discovered` list. Returns the
@@ -57,6 +57,16 @@ export declare const deviceStatusCapability: {
57
57
  * `scripts/check-runtime-state-durability.ts`.
58
58
  */
59
59
  readonly durability: 'restored';
60
+ /**
61
+ * History (D850): recorded series. The ONE availability series.
62
+ */
63
+ readonly history: {
64
+ readonly fields: {
65
+ readonly online: {
66
+ readonly kind: 'boolean';
67
+ };
68
+ };
69
+ };
60
70
  /** Clock fields: written, but excluded from the compare that decides
61
71
  * whether persisting is worth a SQLite commit. */
62
72
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -74,5 +74,9 @@ export declare const doorbellCapability: {
74
74
  * `scripts/check-runtime-state-durability.ts`.
75
75
  */
76
76
  readonly durability: 'restored';
77
+ /**
78
+ * History (D850): none — `pressCountSinceStart` resets with the addon, so it is not a monotonic meter; presses live in the events ledger.
79
+ */
80
+ readonly history: 'none';
77
81
  };
78
82
  export type IDoorbellProvider = InferProvider<typeof doorbellCapability>;
@@ -62,6 +62,10 @@ export declare const enumSensorCapability: {
62
62
  * `scripts/check-runtime-state-durability.ts`.
63
63
  */
64
64
  readonly durability: 'restored';
65
+ /**
66
+ * History (D850): none — text/enum state has no history (non-goal).
67
+ */
68
+ readonly history: 'none';
65
69
  /** Clock fields: written, but excluded from the compare that decides
66
70
  * whether persisting is worth a SQLite commit. */
67
71
  readonly volatileStateFields: readonly ["lastFetchedAt"];
@@ -81,5 +81,9 @@ export declare const eventEmitterCapability: {
81
81
  * `scripts/check-runtime-state-durability.ts`.
82
82
  */
83
83
  readonly durability: 'session';
84
+ /**
85
+ * History (D850): none — `eventCountSinceStart` resets with the addon; events live in ledgers.
86
+ */
87
+ readonly history: 'none';
84
88
  };
85
89
  export type IEventEmitterProvider = InferProvider<typeof eventEmitterCapability>;
@@ -102,5 +102,20 @@ export declare const fanControlCapability: {
102
102
  * `scripts/check-runtime-state-durability.ts`.
103
103
  */
104
104
  readonly durability: 'session';
105
+ /**
106
+ * History (D850): recorded series. Actuator tier: speed keeps every change.
107
+ */
108
+ readonly history: {
109
+ readonly fields: {
110
+ readonly percentage: {
111
+ readonly kind: 'gauge';
112
+ readonly unit: '%';
113
+ readonly minIntervalMs: 0;
114
+ };
115
+ readonly oscillating: {
116
+ readonly kind: 'boolean';
117
+ };
118
+ };
119
+ };
105
120
  };
106
121
  export type IFanControlProvider = InferProvider<typeof fanControlCapability>;
@@ -82,5 +82,9 @@ export declare const featureProbeCapability: {
82
82
  * `scripts/check-runtime-state-durability.ts`.
83
83
  */
84
84
  readonly durability: 'session';
85
+ /**
86
+ * History (D850): none — static identity and capability probe.
87
+ */
88
+ readonly history: 'none';
85
89
  };
86
90
  export type IFeatureProbeProvider = InferProvider<typeof featureProbeCapability>;
@@ -39,6 +39,16 @@ export declare const floodCapability: {
39
39
  * `scripts/check-runtime-state-durability.ts`.
40
40
  */
41
41
  readonly durability: 'restored';
42
+ /**
43
+ * History (D850): recorded series.
44
+ */
45
+ readonly history: {
46
+ readonly fields: {
47
+ readonly flooded: {
48
+ readonly kind: 'boolean';
49
+ };
50
+ };
51
+ };
42
52
  /** Clock fields: written, but excluded from the compare that decides
43
53
  * whether persisting is worth a SQLite commit. */
44
54
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -36,6 +36,16 @@ export declare const gasCapability: {
36
36
  * `scripts/check-runtime-state-durability.ts`.
37
37
  */
38
38
  readonly durability: 'restored';
39
+ /**
40
+ * History (D850): recorded series.
41
+ */
42
+ readonly history: {
43
+ readonly fields: {
44
+ readonly detected: {
45
+ readonly kind: 'boolean';
46
+ };
47
+ };
48
+ };
39
49
  /** Clock fields: written, but excluded from the compare that decides
40
50
  * whether persisting is worth a SQLite commit. */
41
51
  readonly volatileStateFields: readonly ["lastChangedAt"];
@@ -84,5 +84,20 @@ export declare const humidifierCapability: {
84
84
  * `scripts/check-runtime-state-durability.ts`.
85
85
  */
86
86
  readonly durability: 'session';
87
+ /**
88
+ * History (D850): recorded series.
89
+ */
90
+ readonly history: {
91
+ readonly fields: {
92
+ readonly currentHumidity: {
93
+ readonly kind: 'gauge';
94
+ readonly unit: '%';
95
+ readonly deadband: 0.5;
96
+ };
97
+ readonly on: {
98
+ readonly kind: 'boolean';
99
+ };
100
+ };
101
+ };
87
102
  };
88
103
  export type IHumidifierProvider = InferProvider<typeof humidifierCapability>;
@@ -45,6 +45,18 @@ export declare const humiditySensorCapability: {
45
45
  * `scripts/check-runtime-state-durability.ts`.
46
46
  */
47
47
  readonly durability: 'restored';
48
+ /**
49
+ * History (D850): recorded series.
50
+ */
51
+ readonly history: {
52
+ readonly fields: {
53
+ readonly percent: {
54
+ readonly kind: 'gauge';
55
+ readonly unit: '%';
56
+ readonly deadband: 0.5;
57
+ };
58
+ };
59
+ };
48
60
  /** Clock fields: written, but excluded from the compare that decides
49
61
  * whether persisting is worth a SQLite commit. */
50
62
  readonly volatileStateFields: readonly ["lastFetchedAt"];
@@ -360,6 +360,10 @@ export declare const imageSettingsCapability: {
360
360
  * `scripts/check-runtime-state-durability.ts`.
361
361
  */
362
362
  readonly durability: 'restored';
363
+ /**
364
+ * History (D850): none — camera image configuration (operator intent), not a trend.
365
+ */
366
+ readonly history: 'none';
363
367
  /** Clock fields: written, but excluded from the compare that decides
364
368
  * whether persisting is worth a SQLite commit. */
365
369
  readonly volatileStateFields: readonly ["lastFetchedAt"];
@@ -49,5 +49,9 @@ export declare const imageCapability: {
49
49
  * `scripts/check-runtime-state-durability.ts`.
50
50
  */
51
51
  readonly durability: 'session';
52
+ /**
53
+ * History (D850): none — not numeric.
54
+ */
55
+ readonly history: 'none';
52
56
  };
53
57
  export type IImageProvider = InferProvider<typeof imageCapability>;
@@ -36,8 +36,8 @@ export { BrokerAddInputSchema, BrokerGetStateInputSchema, type BrokerInfo, type
36
36
  export { cameraPipelineConfigCapability, type ICameraPipelineConfigProvider, } from './camera-pipeline-config.cap.js';
37
37
  export { cameraStreamsCapability, type ICameraStreamsProvider, type PickedCamStream, PickedCamStreamSchema, type PickStreamPreferences, PickStreamPreferencesSchema, type PickStreamRequirements, PickStreamRequirementsSchema, type StreamCodec, StreamCodecSchema, } from './camera-streams.cap.js';
38
38
  export { emitsCollectionSelector, extractNestedAddonId, isArrayOutputSchema, isCollectionArrayMethod, isObjectInput, isVoidInput, kebabToCamel, looseSchema, objectInputDeclaresAddonId, objectInputDeclaresRequiredDeviceId, procedureAuthKey, resolveMethodAuth, } from './cap-router-predicates.js';
39
- export type { CapabilityDefinition, CapabilityEventSchema, CapabilityMethodAuth, CapabilityMethodCaller, CapabilityMethodKind, CapabilityMethodOptions, CapabilityMethodSchema, CapabilityMountHint, CapabilityMountKind, CapabilityStatusItemArray, CapabilityStatusKind, CapabilityStatusSchema, CapCaller, DeviceConfigDerivedFormUi, DeviceConfigSpec, DeviceConfigUiSpec, DeviceConfigWidgetUi, DeviceSettingsContribution, InferDeviceProxyCap, InferEvents, InferName, InferNativeProvider, InferProvider, InferRuntimeState, ProviderKind, RuntimeStateDurability, UiContribution, UiContributionKind, UiContributionRemote, } from './capability-definition.js';
40
- export { DEFAULT_RUNTIME_STATE_DURABILITY, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, event, expandCapMethods, isDeviceConfigCap, method, optionalMethod, PROVIDER_PIN_FIELD, resolveCapMount, } from './capability-definition.js';
39
+ export type { CapabilityDefinition, CapabilityEventSchema, CapabilityMethodAuth, CapabilityMethodCaller, CapabilityMethodKind, CapabilityMethodOptions, CapabilityMethodSchema, CapabilityMountHint, CapabilityMountKind, CapabilityStatusItemArray, CapabilityStatusKind, CapabilityStatusSchema, CapCaller, DeviceConfigDerivedFormUi, DeviceConfigSpec, DeviceConfigUiSpec, DeviceConfigWidgetUi, DeviceSettingsContribution, InferDeviceProxyCap, InferEvents, InferName, InferNativeProvider, InferProvider, InferRuntimeState, CapabilityHistory, CapabilityHistoryField, HistoryUnit, ProviderKind, RuntimeStateDurability, UiContribution, UiContributionKind, UiContributionRemote, } from './capability-definition.js';
40
+ export { DEFAULT_RUNTIME_STATE_DURABILITY, HISTORY_DEFAULT_MIN_INTERVAL_MS, HISTORY_UNIT_LABELS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, event, expandCapMethods, isDeviceConfigCap, method, optionalMethod, PROVIDER_PIN_FIELD, resolveCapMount, } from './capability-definition.js';
41
41
  export { COMPOSER_RUNNER_ID, type ComposerApplyInput, ComposerApplyInputSchema, type ComposerApplyResult, ComposerApplyResultSchema, type ComposerBlock, ComposerBlockSchema, type ComposerBlockVerdict, ComposerBlockVerdictSchema, type ComposerUnreadableBlock, ComposerUnreadableBlockSchema, composerCapability, type IComposerProvider, } from './composer.cap.js';
42
42
  export { CORE_BLOCK_ADDON_PREFIX, CORE_BLOCKS_ADDON_ID, type CompositionBlockInput, CompositionBlockInputSchema, type CompositionBlockPatch, type CompositionCustomizationRead, CompositionCustomizationReadSchema, type CompositionGetRead, CompositionGetReadSchema, type CompositionListRead, CompositionListReadSchema, type CompositionStateRead, CompositionStateReadSchema, type CompositionView, CompositionViewSchema, type CoreBlock, type CoreBlockCompileInput, CoreBlockCompileInputSchema, type CoreBlockCompileResult, CoreBlockCompileResultSchema, type CoreBlockFiles, CoreBlockFilesSchema, type CoreBlockInput, CoreBlockInputFieldsSchema, CoreBlockInputSchema, type CoreBlockPlacement, CoreBlockPlacementSchema, CoreBlockSchema, type CoreBlockSource, type CoreBlockSourceKind, CoreBlockSourceSchema, type CoreBlockStatus, CoreBlockStatusSchema, coreBlockAddonId, coreBlockComposition, coreBlockIdFromAddonId, coreBlockSourceKind, coreBlocksCapability, DEFAULT_CORE_BLOCK_ENTRY, type ICoreBlocksProvider, normalizeCoreBlockWrite, resolveCoreBlockEntry, resolveCoreBlockFiles, } from './core-blocks.cap.js';
43
43
  export * from './custom-actions.js';