@camstack/types 1.2.65 → 1.2.67

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 (79) hide show
  1. package/dist/addon.js +2 -2
  2. package/dist/addon.mjs +2 -2
  3. package/dist/capabilities/air-quality-sensor.cap.d.ts +10 -0
  4. package/dist/capabilities/alarm-panel.cap.d.ts +10 -0
  5. package/dist/capabilities/ambient-light-sensor.cap.d.ts +10 -0
  6. package/dist/capabilities/audio-metrics.cap.d.ts +7 -0
  7. package/dist/capabilities/automation-control.cap.d.ts +7 -0
  8. package/dist/capabilities/battery.cap.d.ts +10 -0
  9. package/dist/capabilities/binary.cap.d.ts +10 -0
  10. package/dist/capabilities/brightness.cap.d.ts +7 -0
  11. package/dist/capabilities/camera-streams.cap.d.ts +7 -0
  12. package/dist/capabilities/capability-definition.d.ts +58 -0
  13. package/dist/capabilities/carbon-monoxide.cap.d.ts +10 -0
  14. package/dist/capabilities/climate-control.cap.d.ts +7 -0
  15. package/dist/capabilities/color.cap.d.ts +7 -0
  16. package/dist/capabilities/connectivity.cap.d.ts +10 -0
  17. package/dist/capabilities/consumables.cap.d.ts +7 -0
  18. package/dist/capabilities/contact.cap.d.ts +10 -0
  19. package/dist/capabilities/control.cap.d.ts +7 -0
  20. package/dist/capabilities/cover.cap.d.ts +10 -0
  21. package/dist/capabilities/day-night.cap.d.ts +10 -0
  22. package/dist/capabilities/device-discovery.cap.d.ts +7 -0
  23. package/dist/capabilities/device-status.cap.d.ts +10 -0
  24. package/dist/capabilities/doorbell.cap.d.ts +7 -0
  25. package/dist/capabilities/enum-sensor.cap.d.ts +10 -0
  26. package/dist/capabilities/event-emitter.cap.d.ts +7 -0
  27. package/dist/capabilities/fan-control.cap.d.ts +7 -0
  28. package/dist/capabilities/feature-probe.cap.d.ts +7 -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 +7 -0
  32. package/dist/capabilities/humidity-sensor.cap.d.ts +10 -0
  33. package/dist/capabilities/image-settings.cap.d.ts +10 -0
  34. package/dist/capabilities/image.cap.d.ts +7 -0
  35. package/dist/capabilities/index.d.ts +3 -3
  36. package/dist/capabilities/lawn-mower-control.cap.d.ts +7 -0
  37. package/dist/capabilities/lock-control.cap.d.ts +10 -0
  38. package/dist/capabilities/media-player.cap.d.ts +7 -0
  39. package/dist/capabilities/motion-trigger.cap.d.ts +7 -0
  40. package/dist/capabilities/motion-zones.cap.d.ts +10 -0
  41. package/dist/capabilities/motion.cap.d.ts +7 -0
  42. package/dist/capabilities/native-object-detection.cap.d.ts +10 -0
  43. package/dist/capabilities/notification-output.cap.d.ts +62 -0
  44. package/dist/capabilities/notification-rules.cap.d.ts +134 -6
  45. package/dist/capabilities/notifier.cap.d.ts +7 -0
  46. package/dist/capabilities/numeric-sensor.cap.d.ts +10 -0
  47. package/dist/capabilities/osd-manager.cap.d.ts +14 -0
  48. package/dist/capabilities/pet-feeder.cap.d.ts +7 -0
  49. package/dist/capabilities/power-meter.cap.d.ts +10 -0
  50. package/dist/capabilities/presence.cap.d.ts +10 -0
  51. package/dist/capabilities/pressure-sensor.cap.d.ts +10 -0
  52. package/dist/capabilities/privacy-mask.cap.d.ts +10 -0
  53. package/dist/capabilities/ptz-autotrack.cap.d.ts +7 -0
  54. package/dist/capabilities/scene-monitor.cap.d.ts +7 -0
  55. package/dist/capabilities/script-runner.cap.d.ts +7 -0
  56. package/dist/capabilities/smoke.cap.d.ts +10 -0
  57. package/dist/capabilities/stream-params.cap.d.ts +10 -0
  58. package/dist/capabilities/switch.cap.d.ts +10 -0
  59. package/dist/capabilities/tamper.cap.d.ts +10 -0
  60. package/dist/capabilities/temperature-sensor.cap.d.ts +10 -0
  61. package/dist/capabilities/update.cap.d.ts +7 -0
  62. package/dist/capabilities/vacuum-control.cap.d.ts +7 -0
  63. package/dist/capabilities/valve.cap.d.ts +7 -0
  64. package/dist/capabilities/vibration.cap.d.ts +10 -0
  65. package/dist/capabilities/water-heater.cap.d.ts +7 -0
  66. package/dist/capabilities/weather.cap.d.ts +7 -0
  67. package/dist/capabilities/zone-analytics.cap.d.ts +7 -0
  68. package/dist/capabilities/zone-rules.cap.d.ts +7 -0
  69. package/dist/capabilities/zones.cap.d.ts +7 -0
  70. package/dist/catalogs/coco-classmap.d.ts +21 -0
  71. package/dist/device/system-mirror.d.ts +37 -0
  72. package/dist/generated/runtime-state-durability.d.ts +31 -0
  73. package/dist/index.d.ts +4 -1
  74. package/dist/index.js +1345 -91
  75. package/dist/index.mjs +1322 -92
  76. package/dist/notification/audio-condition.d.ts +118 -0
  77. package/dist/{sleep-BxjBLp3L.mjs → sleep-CSgK0rNX.mjs} +3 -1
  78. package/dist/{sleep-BszXLEvP.js → sleep-Dh1EJSqF.js} +8 -0
  79. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_event_category = require("./event-category-DxZbWydC.js");
3
- const require_sleep = require("./sleep-BszXLEvP.js");
3
+ const require_sleep = require("./sleep-Dh1EJSqF.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  //#region src/generated/collection-array-methods.ts
6
6
  /**
@@ -183,7 +183,7 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
183
183
  "pipelineEnabled": true,
184
184
  "zones": [],
185
185
  "onboardMotionDrivesAnalyzer": true,
186
- "occupancyRecheckEnabled": false,
186
+ "occupancyRecheckEnabled": true,
187
187
  "occupancyRecheckSec": 30,
188
188
  "occupancyRecheckFrames": 4,
189
189
  "frameSource": { "kind": "local-broker" }
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-Cv9dO26A.mjs";
2
- import { C as DeviceType, F as readNodePin, L as ReadinessRegistry, O as expandCapMethods, P as nodePin, R as ReadinessTimeoutError, V as scopeKey, a as asJsonObject, d as DEVICE_SCOPED_CAPS, f as isDeviceScopedCap, gt as normalizeAddonInitResult, ht as BaseAddon, mt as DisposerChain, p as createDeviceProxy, pt as DATAPLANE_SECRET_HEADER, s as asString, t as sleep, u as parseJsonUnknown, v as deviceOpsCapability, w as adminUiCapability, y as viewerUiCapability, yt as emitReadiness } from "./sleep-BxjBLp3L.mjs";
2
+ import { C as DeviceType, F as nodePin, H as scopeKey, I as readNodePin, R as ReadinessRegistry, _t as normalizeAddonInitResult, a as asJsonObject, bt as emitReadiness, d as DEVICE_SCOPED_CAPS, f as isDeviceScopedCap, gt as BaseAddon, ht as DisposerChain, k as expandCapMethods, mt as DATAPLANE_SECRET_HEADER, p as createDeviceProxy, s as asString, t as sleep, u as parseJsonUnknown, v as deviceOpsCapability, w as adminUiCapability, y as viewerUiCapability, z as ReadinessTimeoutError } from "./sleep-CSgK0rNX.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  //#region src/generated/collection-array-methods.ts
5
5
  /**
@@ -182,7 +182,7 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
182
182
  "pipelineEnabled": true,
183
183
  "zones": [],
184
184
  "onboardMotionDrivesAnalyzer": true,
185
- "occupancyRecheckEnabled": false,
185
+ "occupancyRecheckEnabled": true,
186
186
  "occupancyRecheckSec": 30,
187
187
  "occupancyRecheckFrames": 4,
188
188
  "frameSource": { "kind": "local-broker" }
@@ -51,5 +51,15 @@ export declare const airQualitySensorCapability: {
51
51
  unit: z.ZodOptional<z.ZodString>;
52
52
  precision: z.ZodOptional<z.ZodNumber>;
53
53
  }, z.core.$strip>;
54
+ /**
55
+ * Runtime-state durability: **restored** — as `numeric-sensor`.
56
+ *
57
+ * See `RuntimeStateDurability`. Enforced by
58
+ * `scripts/check-runtime-state-durability.ts`.
59
+ */
60
+ readonly durability: "restored";
61
+ /** Clock fields: written, but excluded from the compare that decides
62
+ * whether persisting is worth a SQLite commit. */
63
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
54
64
  };
55
65
  export type IAirQualitySensorProvider = InferProvider<typeof airQualitySensorCapability>;
@@ -149,5 +149,15 @@ export declare const alarmPanelCapability: {
149
149
  requiresCode: z.ZodBoolean;
150
150
  lastChangedAt: z.ZodNumber;
151
151
  }, z.core.$strip>;
152
+ /**
153
+ * Runtime-state durability: **restored** — armed state is the one thing a panel must not lose across a restart.
154
+ *
155
+ * See `RuntimeStateDurability`. Enforced by
156
+ * `scripts/check-runtime-state-durability.ts`.
157
+ */
158
+ readonly durability: "restored";
159
+ /** Clock fields: written, but excluded from the compare that decides
160
+ * whether persisting is worth a SQLite commit. */
161
+ readonly volatileStateFields: readonly ["lastChangedAt"];
152
162
  };
153
163
  export type IAlarmPanelProvider = InferProvider<typeof alarmPanelCapability>;
@@ -34,5 +34,15 @@ export declare const ambientLightSensorCapability: {
34
34
  unit: z.ZodOptional<z.ZodString>;
35
35
  precision: z.ZodOptional<z.ZodNumber>;
36
36
  }, z.core.$strip>;
37
+ /**
38
+ * Runtime-state durability: **restored** — as `numeric-sensor`.
39
+ *
40
+ * See `RuntimeStateDurability`. Enforced by
41
+ * `scripts/check-runtime-state-durability.ts`.
42
+ */
43
+ readonly durability: "restored";
44
+ /** Clock fields: written, but excluded from the compare that decides
45
+ * whether persisting is worth a SQLite commit. */
46
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
37
47
  };
38
48
  export type IAmbientLightSensorProvider = InferProvider<typeof ambientLightSensorCapability>;
@@ -168,6 +168,13 @@ export declare const audioMetricsCapability: {
168
168
  peakScore: z.ZodNumber;
169
169
  }, z.core.$strip>>>;
170
170
  }, z.core.$strip>;
171
+ /**
172
+ * Runtime-state durability: **session** — 1 Hz per camera at the mirror and ~63 % of the fleet's whole runtime-state write rate. `avgDbfs` is a rolling 60 s mean that genuinely moves every second, so no equality fix reclaims it — and a two-hour-old dB reading rendered as current is worse than no reading.
173
+ *
174
+ * See `RuntimeStateDurability`. Enforced by
175
+ * `scripts/check-runtime-state-durability.ts`.
176
+ */
177
+ readonly durability: "session";
171
178
  };
172
179
  export type IAudioMetricsProvider = InferProvider<typeof audioMetricsCapability>;
173
180
  export { AudioMetricsSnapshotSchema, AudioClassSummarySchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, };
@@ -60,5 +60,12 @@ export declare const automationControlCapability: {
60
60
  lastError: z.ZodNullable<z.ZodString>;
61
61
  lastChangedAt: z.ZodNumber;
62
62
  }, z.core.$strip>;
63
+ /**
64
+ * Runtime-state durability: **session** — the authority for an automation being enabled is the automation store; a restored `isRunning` would be a lie. D62: one authority per switch.
65
+ *
66
+ * See `RuntimeStateDurability`. Enforced by
67
+ * `scripts/check-runtime-state-durability.ts`.
68
+ */
69
+ readonly durability: "session";
63
70
  };
64
71
  export type IAutomationControlProvider = InferProvider<typeof automationControlCapability>;
@@ -115,5 +115,15 @@ export declare const batteryCapability: {
115
115
  lastUpdated: z.ZodNumber;
116
116
  binary: z.ZodOptional<z.ZodBoolean>;
117
117
  }, z.core.$strip>;
118
+ /**
119
+ * Runtime-state durability: **restored** — a sleeping battery camera may not report for hours; the restored percentage is the only thing the UI and the sleep gate have. Zero churn once `lastUpdated` is excluded — 526 writes, 0 value changes, in 25 minutes.
120
+ *
121
+ * See `RuntimeStateDurability`. Enforced by
122
+ * `scripts/check-runtime-state-durability.ts`.
123
+ */
124
+ readonly durability: "restored";
125
+ /** Clock fields: written, but excluded from the compare that decides
126
+ * whether persisting is worth a SQLite commit. */
127
+ readonly volatileStateFields: readonly ["lastUpdated"];
118
128
  };
119
129
  export type IBatteryProvider = InferProvider<typeof batteryCapability>;
@@ -35,5 +35,15 @@ export declare const binaryCapability: {
35
35
  on: z.ZodBoolean;
36
36
  lastChangedAt: z.ZodNumber;
37
37
  }, z.core.$strip>;
38
+ /**
39
+ * Runtime-state durability: **restored** — transition-driven sensor state; the restored value gives the boot comparison.
40
+ *
41
+ * See `RuntimeStateDurability`. Enforced by
42
+ * `scripts/check-runtime-state-durability.ts`.
43
+ */
44
+ readonly durability: "restored";
45
+ /** Clock fields: written, but excluded from the compare that decides
46
+ * whether persisting is worth a SQLite commit. */
47
+ readonly volatileStateFields: readonly ["lastChangedAt"];
38
48
  };
39
49
  export type IBinaryProvider = InferProvider<typeof binaryCapability>;
@@ -60,5 +60,12 @@ export declare const brightnessCapability: {
60
60
  percentage: z.ZodNumber;
61
61
  lastChangedAt: z.ZodNumber;
62
62
  }, z.core.$strip>;
63
+ /**
64
+ * Runtime-state durability: **session** — live lamp state, re-published by the provider on connect.
65
+ *
66
+ * See `RuntimeStateDurability`. Enforced by
67
+ * `scripts/check-runtime-state-durability.ts`.
68
+ */
69
+ readonly durability: "session";
63
70
  };
64
71
  export type IBrightnessProvider = InferProvider<typeof brightnessCapability>;
@@ -350,5 +350,12 @@ export declare const cameraStreamsCapability: {
350
350
  }, z.core.$strip>;
351
351
  lastChangedAt: z.ZodNumber;
352
352
  }, z.core.$strip>;
353
+ /**
354
+ * Runtime-state durability: **session** — a restored `slotStatuses: streaming` for a camera that has been dark for two hours is a lie the UI renders as truth.
355
+ *
356
+ * See `RuntimeStateDurability`. Enforced by
357
+ * `scripts/check-runtime-state-durability.ts`.
358
+ */
359
+ readonly durability: "session";
353
360
  };
354
361
  export type ICameraStreamsProvider = InferProvider<typeof cameraStreamsCapability>;
@@ -288,6 +288,34 @@ export type DeviceConfigUiSpec = DeviceConfigDerivedFormUi | DeviceConfigWidgetU
288
288
  export interface DeviceConfigSpec {
289
289
  readonly ui: DeviceConfigUiSpec;
290
290
  }
291
+ /**
292
+ * Does this cap's runtime-state slice survive a restart?
293
+ *
294
+ * - `'session'` — mirrored in RAM, NEVER written to disk. Correct when the
295
+ * value is re-published on its own within a poll or a frame, and a restored
296
+ * one would be a lie the UI renders as current: a 1 Hz `avgDbfs`, a
297
+ * `zone-analytics` frame counter, a `camera-streams.slotStatuses` saying
298
+ * `streaming` for a camera that has been dark for two hours. These two hot
299
+ * caps alone are ~90 % of the fleet's runtime-state write rate (measured:
300
+ * 1.0–1.6 M writes/day offered, of which `audio-metrics` + `zone-analytics`
301
+ * are 3,897 of 5,765 sampled changes) and their restored value is worth
302
+ * nothing.
303
+ *
304
+ * - `'restored'` — persisted, and seeded back into the mirror at boot. Pick
305
+ * it when EITHER nothing else holds the value (`native-object-detection
306
+ * .enabled` on a camera whose refresh is a no-op; `doorbell
307
+ * .pressCountSinceStart`), OR the restored value is what turns the first
308
+ * real observation after a restart into a COMPARISON instead of a phantom
309
+ * transition (`device-status.online` — D130's rule stated in runtime-state
310
+ * vocabulary). A restored value is not a claim about now; it is the
311
+ * previous observation.
312
+ *
313
+ * The default is `'session'`, and the guard makes it explicit anyway: a value
314
+ * reaches disk only because its own capability asked for it.
315
+ */
316
+ export type RuntimeStateDurability = 'session' | 'restored';
317
+ /** The default applied to a `runtimeState` cap that declares no `durability`. */
318
+ export declare const DEFAULT_RUNTIME_STATE_DURABILITY: RuntimeStateDurability;
291
319
  /**
292
320
  * Full definition of a capability — the single source of truth for the
293
321
  * functional contract (methods + events).
@@ -374,6 +402,36 @@ export interface CapabilityDefinition<TName extends string = string, TMethods ex
374
402
  * undefined; setCapState refuses to write to those slices.
375
403
  */
376
404
  readonly runtimeState?: import('zod').ZodObject<import('zod').core.$ZodLooseShape>;
405
+ /**
406
+ * Whether this cap's runtime-state slice SURVIVES A RESTART. Mandatory for
407
+ * every cap declaring `runtimeState` — `scripts/check-runtime-state-
408
+ * durability.ts` fails the build otherwise, so the choice is made in the diff
409
+ * rather than inherited by accident.
410
+ *
411
+ * See {@link RuntimeStateDurability} for what each value costs and buys.
412
+ * Behavioural cap metadata lives ONLY here (D4): the kernel has no whitelist
413
+ * to disagree with.
414
+ */
415
+ readonly durability?: RuntimeStateDurability;
416
+ /**
417
+ * Fields of `runtimeState` that are CLOCKS, not content — `lastFetchedAt`,
418
+ * `lastUpdated`, `ts`. They are persisted like any other field; they are
419
+ * simply excluded from the equality test that decides whether persisting is
420
+ * worth a SQLite commit.
421
+ *
422
+ * The cap names them because the cap knows which of its fields carry meaning.
423
+ * Measured on the live hub over 25 minutes: `battery` wrote its blob **526
424
+ * times while not one percentage moved** — every one of those writes was
425
+ * `lastUpdated` advancing. `privacy-mask` 22 of 22, `humidity-sensor` 67 of
426
+ * 75, `numeric-sensor` 251 of 669. Roughly half of all non-hot runtime-state
427
+ * writes on this installation are a device recording that it re-read a value
428
+ * that had not changed.
429
+ *
430
+ * Only meaningful on `durability: 'restored'` caps (a `'session'` slice never
431
+ * reaches disk, so nothing compares it). `SliceThrottler` already plays this
432
+ * trick with `ts` for the two hot caps; this is the same idea, declared.
433
+ */
434
+ readonly volatileStateFields?: readonly string[];
377
435
  /**
378
436
  * Declarative settings spec. When present, the device-manager's
379
437
  * settings aggregator auto-derives the ConfigUISchema and routes
@@ -28,5 +28,15 @@ export declare const carbonMonoxideCapability: {
28
28
  detected: z.ZodBoolean;
29
29
  lastChangedAt: z.ZodNumber;
30
30
  }, z.core.$strip>;
31
+ /**
32
+ * Runtime-state durability: **restored** — as `smoke`.
33
+ *
34
+ * See `RuntimeStateDurability`. Enforced by
35
+ * `scripts/check-runtime-state-durability.ts`.
36
+ */
37
+ readonly durability: "restored";
38
+ /** Clock fields: written, but excluded from the compare that decides
39
+ * whether persisting is worth a SQLite commit. */
40
+ readonly volatileStateFields: readonly ["lastChangedAt"];
31
41
  };
32
42
  export type ICarbonMonoxideProvider = InferProvider<typeof carbonMonoxideCapability>;
@@ -199,5 +199,12 @@ export declare const climateControlCapability: {
199
199
  swingHorizontal: z.ZodNullable<z.ZodBoolean>;
200
200
  lastFetchedAt: z.ZodNumber;
201
201
  }, z.core.$strip>;
202
+ /**
203
+ * Runtime-state durability: **session** — as `brightness`; `currentTemp` moves continuously and is re-published on connect.
204
+ *
205
+ * See `RuntimeStateDurability`. Enforced by
206
+ * `scripts/check-runtime-state-durability.ts`.
207
+ */
208
+ readonly durability: "session";
202
209
  };
203
210
  export type IClimateControlProvider = InferProvider<typeof climateControlCapability>;
@@ -180,6 +180,13 @@ export declare const colorCapability: {
180
180
  mireds: z.ZodOptional<z.ZodNumber>;
181
181
  lastChangedAt: z.ZodNumber;
182
182
  }, z.core.$strip>;
183
+ /**
184
+ * Runtime-state durability: **session** — as `brightness`.
185
+ *
186
+ * See `RuntimeStateDurability`. Enforced by
187
+ * `scripts/check-runtime-state-durability.ts`.
188
+ */
189
+ readonly durability: "session";
183
190
  };
184
191
  export type IColorProvider = InferProvider<typeof colorCapability>;
185
192
  export {};
@@ -32,5 +32,15 @@ export declare const connectivityCapability: {
32
32
  connected: z.ZodBoolean;
33
33
  lastChangedAt: z.ZodNumber;
34
34
  }, z.core.$strip>;
35
+ /**
36
+ * Runtime-state durability: **restored** — same shape and same argument as `device-status`, for links rather than devices.
37
+ *
38
+ * See `RuntimeStateDurability`. Enforced by
39
+ * `scripts/check-runtime-state-durability.ts`.
40
+ */
41
+ readonly durability: "restored";
42
+ /** Clock fields: written, but excluded from the compare that decides
43
+ * whether persisting is worth a SQLite commit. */
44
+ readonly volatileStateFields: readonly ["lastChangedAt"];
35
45
  };
36
46
  export type IConnectivityProvider = InferProvider<typeof connectivityCapability>;
@@ -135,5 +135,12 @@ export declare const consumablesCapability: {
135
135
  lastChangedAt: z.ZodNumber;
136
136
  lastFetchedAt: z.ZodNumber;
137
137
  }, z.core.$strip>;
138
+ /**
139
+ * Runtime-state durability: **session** — the authority is the appliance; the provider re-reads the whole item array on connect.
140
+ *
141
+ * See `RuntimeStateDurability`. Enforced by
142
+ * `scripts/check-runtime-state-durability.ts`.
143
+ */
144
+ readonly durability: "session";
138
145
  };
139
146
  export type IConsumablesProvider = InferProvider<typeof consumablesCapability>;
@@ -36,5 +36,15 @@ export declare const contactCapability: {
36
36
  entryOpen: z.ZodBoolean;
37
37
  lastChangedAt: z.ZodNumber;
38
38
  }, z.core.$strip>;
39
+ /**
40
+ * Runtime-state durability: **restored** — a door left open across a restart must still read open.
41
+ *
42
+ * See `RuntimeStateDurability`. Enforced by
43
+ * `scripts/check-runtime-state-durability.ts`.
44
+ */
45
+ readonly durability: "restored";
46
+ /** Clock fields: written, but excluded from the compare that decides
47
+ * whether persisting is worth a SQLite commit. */
48
+ readonly volatileStateFields: readonly ["lastChangedAt"];
39
49
  };
40
50
  export type IContactProvider = InferProvider<typeof contactCapability>;
@@ -161,6 +161,13 @@ export declare const controlCapability: {
161
161
  time: "time";
162
162
  }>>;
163
163
  }, z.core.$strip>;
164
+ /**
165
+ * Runtime-state durability: **session** — a generic control mirrors an external entity that re-publishes on connect; the options array is re-derived with it.
166
+ *
167
+ * See `RuntimeStateDurability`. Enforced by
168
+ * `scripts/check-runtime-state-durability.ts`.
169
+ */
170
+ readonly durability: "session";
164
171
  };
165
172
  export type IControlProvider = InferProvider<typeof controlCapability>;
166
173
  export {};
@@ -99,5 +99,15 @@ export declare const coverCapability: {
99
99
  tiltPosition: z.ZodNullable<z.ZodNumber>;
100
100
  lastChangedAt: z.ZodNumber;
101
101
  }, z.core.$strip>;
102
+ /**
103
+ * Runtime-state durability: **restored** — position survives a restart on the device; the mirror should agree at boot rather than read blank.
104
+ *
105
+ * See `RuntimeStateDurability`. Enforced by
106
+ * `scripts/check-runtime-state-durability.ts`.
107
+ */
108
+ readonly durability: "restored";
109
+ /** Clock fields: written, but excluded from the compare that decides
110
+ * whether persisting is worth a SQLite commit. */
111
+ readonly volatileStateFields: readonly ["lastChangedAt"];
102
112
  };
103
113
  export type ICoverProvider = InferProvider<typeof coverCapability>;
@@ -158,5 +158,15 @@ export declare const dayNightCapability: {
158
158
  switchDelaySec: z.ZodOptional<z.ZodNumber>;
159
159
  lastFetchedAt: z.ZodNumber;
160
160
  }, z.core.$strip>;
161
+ /**
162
+ * Runtime-state durability: **restored** — operator-set IR-cut behaviour; mutation-driven.
163
+ *
164
+ * See `RuntimeStateDurability`. Enforced by
165
+ * `scripts/check-runtime-state-durability.ts`.
166
+ */
167
+ readonly durability: "restored";
168
+ /** Clock fields: written, but excluded from the compare that decides
169
+ * whether persisting is worth a SQLite commit. */
170
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
161
171
  };
162
172
  export type IDayNightProvider = InferNativeProvider<typeof dayNightCapability>;
@@ -99,6 +99,13 @@ export declare const deviceDiscoveryCapability: {
99
99
  lastError: z.ZodNullable<z.ZodString>;
100
100
  lastFetchedAt: z.ZodNumber;
101
101
  }, z.core.$strip>;
102
+ /**
103
+ * Runtime-state durability: **session** — 5.7 KB of scan output on the largest device, fully re-derivable by re-scanning.
104
+ *
105
+ * See `RuntimeStateDurability`. Enforced by
106
+ * `scripts/check-runtime-state-durability.ts`.
107
+ */
108
+ readonly durability: "session";
102
109
  readonly methods: {
103
110
  /**
104
111
  * Snapshot of the current `discovered` list. Returns the
@@ -50,5 +50,15 @@ export declare const deviceStatusCapability: {
50
50
  online: z.ZodBoolean;
51
51
  lastChangedAt: z.ZodNumber;
52
52
  }, z.core.$strip>;
53
+ /**
54
+ * Runtime-state durability: **restored** — the previous observation is what makes the first reading after a restart a COMPARISON instead of a phantom transition (D130). 32 real flips across 16 devices in 25 min — the busiest slice in the cold half.
55
+ *
56
+ * See `RuntimeStateDurability`. Enforced by
57
+ * `scripts/check-runtime-state-durability.ts`.
58
+ */
59
+ readonly durability: "restored";
60
+ /** Clock fields: written, but excluded from the compare that decides
61
+ * whether persisting is worth a SQLite commit. */
62
+ readonly volatileStateFields: readonly ["lastChangedAt"];
53
63
  };
54
64
  export type IDeviceStatusProvider = InferProvider<typeof deviceStatusCapability>;
@@ -74,5 +74,12 @@ export declare const doorbellCapability: {
74
74
  lastPressedAt: z.ZodNullable<z.ZodNumber>;
75
75
  pressCountSinceStart: z.ZodNumber;
76
76
  }, z.core.$strip>;
77
+ /**
78
+ * Runtime-state durability: **restored** — a monotonic accumulator: the slice IS the record. `lastPressedAt` is content here, not a clock, so it is deliberately NOT volatile.
79
+ *
80
+ * See `RuntimeStateDurability`. Enforced by
81
+ * `scripts/check-runtime-state-durability.ts`.
82
+ */
83
+ readonly durability: "restored";
77
84
  };
78
85
  export type IDoorbellProvider = InferProvider<typeof doorbellCapability>;
@@ -55,5 +55,15 @@ export declare const enumSensorCapability: {
55
55
  }>>;
56
56
  lastFetchedAt: z.ZodNumber;
57
57
  }, z.core.$strip>;
58
+ /**
59
+ * Runtime-state durability: **restored** — as `numeric-sensor`; 80 devices.
60
+ *
61
+ * See `RuntimeStateDurability`. Enforced by
62
+ * `scripts/check-runtime-state-durability.ts`.
63
+ */
64
+ readonly durability: "restored";
65
+ /** Clock fields: written, but excluded from the compare that decides
66
+ * whether persisting is worth a SQLite commit. */
67
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
58
68
  };
59
69
  export type IEnumSensorProvider = InferProvider<typeof enumSensorCapability>;
@@ -74,5 +74,12 @@ export declare const eventEmitterCapability: {
74
74
  }, z.core.$strip>>;
75
75
  eventCountSinceStart: z.ZodNumber;
76
76
  }, z.core.$strip>;
77
+ /**
78
+ * Runtime-state durability: **session** — `eventCountSinceStart` names its own scope.
79
+ *
80
+ * See `RuntimeStateDurability`. Enforced by
81
+ * `scripts/check-runtime-state-durability.ts`.
82
+ */
83
+ readonly durability: "session";
77
84
  };
78
85
  export type IEventEmitterProvider = InferProvider<typeof eventEmitterCapability>;
@@ -95,5 +95,12 @@ export declare const fanControlCapability: {
95
95
  oscillating: z.ZodNullable<z.ZodBoolean>;
96
96
  lastChangedAt: z.ZodNumber;
97
97
  }, z.core.$strip>;
98
+ /**
99
+ * Runtime-state durability: **session** — as `brightness`.
100
+ *
101
+ * See `RuntimeStateDurability`. Enforced by
102
+ * `scripts/check-runtime-state-durability.ts`.
103
+ */
104
+ readonly durability: "session";
98
105
  };
99
106
  export type IFanControlProvider = InferProvider<typeof fanControlCapability>;
@@ -75,5 +75,12 @@ export declare const featureProbeCapability: {
75
75
  lastProbedAt: z.ZodNumber;
76
76
  lastFetchedAt: z.ZodNumber;
77
77
  }, z.core.$strip>;
78
+ /**
79
+ * Runtime-state durability: **session** — per-session by definition — `lastProbedAt` means "this worker completed a probe THIS session", which is why the mirror seed already blanks it. Persisting it only creates something to blank.
80
+ *
81
+ * See `RuntimeStateDurability`. Enforced by
82
+ * `scripts/check-runtime-state-durability.ts`.
83
+ */
84
+ readonly durability: "session";
78
85
  };
79
86
  export type IFeatureProbeProvider = InferProvider<typeof featureProbeCapability>;
@@ -32,5 +32,15 @@ export declare const floodCapability: {
32
32
  flooded: z.ZodBoolean;
33
33
  lastChangedAt: z.ZodNumber;
34
34
  }, z.core.$strip>;
35
+ /**
36
+ * Runtime-state durability: **restored** — as `smoke`.
37
+ *
38
+ * See `RuntimeStateDurability`. Enforced by
39
+ * `scripts/check-runtime-state-durability.ts`.
40
+ */
41
+ readonly durability: "restored";
42
+ /** Clock fields: written, but excluded from the compare that decides
43
+ * whether persisting is worth a SQLite commit. */
44
+ readonly volatileStateFields: readonly ["lastChangedAt"];
35
45
  };
36
46
  export type IFloodProvider = InferProvider<typeof floodCapability>;
@@ -29,5 +29,15 @@ export declare const gasCapability: {
29
29
  detected: z.ZodBoolean;
30
30
  lastChangedAt: z.ZodNumber;
31
31
  }, z.core.$strip>;
32
+ /**
33
+ * Runtime-state durability: **restored** — as `smoke`.
34
+ *
35
+ * See `RuntimeStateDurability`. Enforced by
36
+ * `scripts/check-runtime-state-durability.ts`.
37
+ */
38
+ readonly durability: "restored";
39
+ /** Clock fields: written, but excluded from the compare that decides
40
+ * whether persisting is worth a SQLite commit. */
41
+ readonly volatileStateFields: readonly ["lastChangedAt"];
32
42
  };
33
43
  export type IGasProvider = InferProvider<typeof gasCapability>;
@@ -77,5 +77,12 @@ export declare const humidifierCapability: {
77
77
  maxHumidity: z.ZodNullable<z.ZodNumber>;
78
78
  lastChangedAt: z.ZodNumber;
79
79
  }, z.core.$strip>;
80
+ /**
81
+ * Runtime-state durability: **session** — as `climate-control`.
82
+ *
83
+ * See `RuntimeStateDurability`. Enforced by
84
+ * `scripts/check-runtime-state-durability.ts`.
85
+ */
86
+ readonly durability: "session";
80
87
  };
81
88
  export type IHumidifierProvider = InferProvider<typeof humidifierCapability>;
@@ -38,5 +38,15 @@ export declare const humiditySensorCapability: {
38
38
  unit: z.ZodOptional<z.ZodString>;
39
39
  precision: z.ZodOptional<z.ZodNumber>;
40
40
  }, z.core.$strip>;
41
+ /**
42
+ * Runtime-state durability: **restored** — as `numeric-sensor` (67 of 75 writes were the clock alone).
43
+ *
44
+ * See `RuntimeStateDurability`. Enforced by
45
+ * `scripts/check-runtime-state-durability.ts`.
46
+ */
47
+ readonly durability: "restored";
48
+ /** Clock fields: written, but excluded from the compare that decides
49
+ * whether persisting is worth a SQLite commit. */
50
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
41
51
  };
42
52
  export type IHumiditySensorProvider = InferProvider<typeof humiditySensorCapability>;
@@ -353,5 +353,15 @@ export declare const imageSettingsCapability: {
353
353
  }>>;
354
354
  lastFetchedAt: z.ZodNumber;
355
355
  }, z.core.$strip>;
356
+ /**
357
+ * Runtime-state durability: **restored** — operator-set camera imaging; mutation-driven.
358
+ *
359
+ * See `RuntimeStateDurability`. Enforced by
360
+ * `scripts/check-runtime-state-durability.ts`.
361
+ */
362
+ readonly durability: "restored";
363
+ /** Clock fields: written, but excluded from the compare that decides
364
+ * whether persisting is worth a SQLite commit. */
365
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
356
366
  };
357
367
  export type IImageSettingsProvider = InferNativeProvider<typeof imageSettingsCapability>;
@@ -42,5 +42,12 @@ export declare const imageCapability: {
42
42
  url: z.ZodNullable<z.ZodString>;
43
43
  lastUpdated: z.ZodNullable<z.ZodNumber>;
44
44
  }, z.core.$strip>;
45
+ /**
46
+ * Runtime-state durability: **session** — a snapshot URL is a session-scoped handle; a restored one points at nothing.
47
+ *
48
+ * See `RuntimeStateDurability`. Enforced by
49
+ * `scripts/check-runtime-state-durability.ts`.
50
+ */
51
+ readonly durability: "session";
45
52
  };
46
53
  export type IImageProvider = InferProvider<typeof imageCapability>;
@@ -36,8 +36,8 @@ export { BrokerAddInputSchema, BrokerGetStateInputSchema, type BrokerInfo as Uni
36
36
  export { cameraPipelineConfigCapability, type ICameraPipelineConfigProvider, } from './camera-pipeline-config.cap.js';
37
37
  export { cameraStreamsCapability, type ICameraStreamsProvider, type PickedCamStream, PickedCamStreamSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, type StreamCodec, StreamCodecSchema, } from './camera-streams.cap.js';
38
38
  export { extractNestedAddonId, isArrayOutputSchema, isCollectionArrayMethod, isObjectInput, isVoidInput, kebabToCamel, looseSchema, objectInputDeclaresAddonId, procedureAuthKey, } 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, UiContribution, UiContributionKind, UiContributionRemote, } from './capability-definition.js';
40
- export { DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, event, expandCapMethods, isDeviceConfigCap, method, 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, 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, resolveCapMount, } from './capability-definition.js';
41
41
  export { CORE_BLOCK_ADDON_PREFIX, CORE_BLOCKS_ADDON_ID, type CoreBlock, type CoreBlockCompileResult, CoreBlockCompileResultSchema, type CoreBlockInput, CoreBlockInputSchema, type CoreBlockPlacement, CoreBlockPlacementSchema, CoreBlockSchema, type CoreBlockStatus, CoreBlockStatusSchema, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, type ICoreBlocksProvider, } from './core-blocks.cap.js';
42
42
  export * from './custom-actions.js';
43
43
  export type { CustomModelDescriptor, ICustomModelRegistryProvider, } from './custom-model-registry.cap.js';
@@ -74,7 +74,7 @@ export { AddBrokerInputSchema, BrokerConnectionDetailsSchema, BrokerInfoSchema,
74
74
  export type { NetworkAccessStatus, NetworkEndpoint } from './network-access.cap.js';
75
75
  export { NetworkAccessStatusSchema, NetworkEndpointSchema, networkAccessCapability, } from './network-access.cap.js';
76
76
  export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, type NotificationActionIcon, NotificationActionIconSchema, NotificationActionSchema, type NotificationFormat, NotificationFormatSchema, NotificationSchema, notificationOutputCapability, type RenderedAs, RenderedAsSchema, type SendResult, SendResultSchema, type Target, type TargetKind, type TargetKindCaps, TargetKindCapsSchema, type TargetKindLevel, TargetKindLevelSchema, TargetKindSchema, TargetSchema, type TestResult, TestResultSchema, } from './notification-output.cap.js';
77
- export { type INotificationRulesProvider, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, type NcAlarmConfig, NcAlarmConfigSchema, type NcAlarmModeCoverage, NcAlarmModeCoverageSchema, type NcAlarmSettings, type NcAlarmSettingsPatch, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, type NcAlarmSkippedDevice, NcAlarmSkippedDeviceSchema, type NcAlarmSkipReason, NcAlarmSkipReasonSchema, type NcAudioCondition, NcAudioConditionSchema, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcConfirm, type NcConfirmExpect, NcConfirmExpectSchema, NcConfirmSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcDeviceStateCondition, NcDeviceStateConditionSchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleAction, NcRuleActionSchema, type NcRuleActionSequence, NcRuleActionSequenceSchema, type NcRuleActions, NcRuleActionsSchema, type NcRuleInput, NcRuleInputSchema, type NcRuleNotificationButton, NcRuleNotificationButtonSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcSystemEventCondition, NcSystemEventConditionSchema, type NcSystemEventKind, NcSystemEventKindSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
77
+ export { type INotificationRulesProvider, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, type NcAlarmConfig, NcAlarmConfigSchema, type NcAlarmModeCoverage, NcAlarmModeCoverageSchema, type NcAlarmSettings, type NcAlarmSettingsPatch, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, type NcAlarmSkippedDevice, NcAlarmSkippedDeviceSchema, type NcAlarmSkipReason, NcAlarmSkipReasonSchema, type NcAudioCondition, NcAudioConditionSchema, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcConfirm, type NcConfirmExpect, NcConfirmExpectSchema, NcConfirmSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcDeviceStateCondition, NcDeviceStateConditionSchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleAction, NcRuleActionSchema, type NcRuleActionSequence, NcRuleActionSequenceSchema, type NcRuleActions, NcRuleActionsSchema, type NcRuleInput, NcRuleInputSchema, type NcRuleNotificationButton, NcRuleNotificationButtonSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcSystemEventCondition, NcSystemEventConditionSchema, type NcSystemEventKind, NcSystemEventKindSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
78
78
  export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
79
79
  export { type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, type MediaFile, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
80
80
  export type { NativeCropRef, PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';