@camstack/types 1.2.283 → 1.2.284

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 (37) hide show
  1. package/dist/addon.js +2 -2
  2. package/dist/addon.mjs +2 -2
  3. package/dist/capabilities/device-extension.cap.d.ts +8 -25
  4. package/dist/capabilities/device-manager.cap.d.ts +2 -2
  5. package/dist/capabilities/device-state.cap.d.ts +2 -2
  6. package/dist/capabilities/doorbell.cap.d.ts +13 -64
  7. package/dist/capabilities/index.d.ts +1 -1
  8. package/dist/capabilities/motion.cap.d.ts +9 -8
  9. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +147 -15
  10. package/dist/capabilities/pipeline-runner.cap.d.ts +2 -0
  11. package/dist/capabilities/ptz-autotrack.cap.d.ts +2 -3
  12. package/dist/catalogs/sensor-active-state.d.ts +8 -10
  13. package/dist/composition/presets/doorbell-feature.d.ts +1 -1
  14. package/dist/{composition-Dq42XWp0.mjs → composition-43aqsZQj.mjs} +6 -7
  15. package/dist/{composition-DG4jVTfB.js → composition-w3gBWMer.js} +6 -7
  16. package/dist/device/hub-motion-read.d.ts +22 -0
  17. package/dist/device-extension/slot-descriptor.d.ts +3 -3
  18. package/dist/enums/event-category.d.ts +9 -0
  19. package/dist/enums.js +1 -1
  20. package/dist/enums.mjs +1 -1
  21. package/dist/{event-category-C5xZWqz6.mjs → event-category-BGmz_oxW.mjs} +9 -0
  22. package/dist/{event-category-MbnB-6AN.js → event-category-DmS_tLsU.js} +9 -0
  23. package/dist/generated/extension-slots.d.ts +2 -6
  24. package/dist/index.d.ts +4 -1
  25. package/dist/index.js +252 -201
  26. package/dist/index.mjs +243 -199
  27. package/dist/interfaces/event-bus.d.ts +5 -3
  28. package/dist/interfaces/pipeline-runner-capability.d.ts +2 -0
  29. package/dist/node.js +1 -1
  30. package/dist/node.mjs +1 -1
  31. package/dist/pipeline/camera-sensors.d.ts +133 -9
  32. package/dist/pipeline/motion-ownership.d.ts +13 -0
  33. package/dist/pipeline/provider-motion.d.ts +33 -0
  34. package/dist/{sleep-gU6hqv4_.mjs → sleep-CDCONfkt.mjs} +1 -1
  35. package/dist/{sleep-DCbD8sdg.js → sleep-G4F3X9X_.js} +1 -1
  36. package/dist/utils/addon-id.d.ts +2 -2
  37. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-DCbD8sdg.js");
3
- const require_event_category = require("./event-category-MbnB-6AN.js");
2
+ const require_sleep = require("./sleep-G4F3X9X_.js");
3
+ const require_event_category = require("./event-category-DmS_tLsU.js");
4
4
  const require_err_msg = require("./err-msg-Dx2Kor0g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { At as normalizeAddonInitResult, B as nodePin, Ct as PEER_BYTES_STALL_MS, D as adminUiCapability, Et as DATAPLANE_SECRET_HEADER, N as expandCapMethods, Ot as DisposerChain, Pt as emitReadiness, S as DEVICE_CHILDREN_BATCH_MAX, St as PEER_BYTES_MAX_OUTSTANDING, T as describeCustomActions, U as ReadinessRegistry, V as readNodePin, W as ReadinessTimeoutError, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, kt as BaseAddon, m as createDeviceProxy, p as isDeviceScopedCap, q as scopeKey, s as asString, t as sleep, u as parseJsonUnknown, wt as PEER_BYTES_TICKET_TTL_MS, x as viewerUiCapability, xt as PEER_BYTES_CHUNK_BYTES } from "./sleep-gU6hqv4_.mjs";
2
- import { t as EventCategory } from "./event-category-C5xZWqz6.mjs";
1
+ import { At as normalizeAddonInitResult, B as nodePin, Ct as PEER_BYTES_STALL_MS, D as adminUiCapability, Et as DATAPLANE_SECRET_HEADER, N as expandCapMethods, Ot as DisposerChain, Pt as emitReadiness, S as DEVICE_CHILDREN_BATCH_MAX, St as PEER_BYTES_MAX_OUTSTANDING, T as describeCustomActions, U as ReadinessRegistry, V as readNodePin, W as ReadinessTimeoutError, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, kt as BaseAddon, m as createDeviceProxy, p as isDeviceScopedCap, q as scopeKey, s as asString, t as sleep, u as parseJsonUnknown, wt as PEER_BYTES_TICKET_TTL_MS, x as viewerUiCapability, xt as PEER_BYTES_CHUNK_BYTES } from "./sleep-CDCONfkt.mjs";
2
+ import { t as EventCategory } from "./event-category-BGmz_oxW.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
5
5
  /**
@@ -2,8 +2,8 @@
2
2
  * `device-extension` — ONE place to see and author what a device is extended
3
3
  * with by OTHER devices (D648).
4
4
  *
5
- * **A contract, not a store.** Every slot (`linked-devices`, `doorbell-source`)
6
- * is declared by the cap that owns the function (`extensionSlots` in its
5
+ * **A contract, not a store.** Every slot (today one: `linked-devices`) is
6
+ * declared by the cap that owns the function (`extensionSlots` in its
7
7
  * `*.cap.ts`, D4) and SERVED by the addon that already owns its store, over
8
8
  * that store and its existing write path. This cap persists nothing and has no config method (guarded by
9
9
  * `scripts/check-extension-slots.ts`): D62 applied to the whole feature, and
@@ -12,7 +12,7 @@
12
12
  * **Shape.** A device-scoped wrapper COLLECTION, the D554 shape `videoclips`
13
13
  * uses: `resolveCapMount` gives it the `device-scoped` mount and
14
14
  * `requireDeviceCollection` dispatches it. Its providers are the slot owners
15
- * (device-manager, virtual-doorbell, …), and a device's sources are its
15
+ * (today device-manager alone), and a device's sources are its
16
16
  * bindings (step 0 of `getBindings`, derived, persisted nowhere).
17
17
  *
18
18
  * - `listSources` — one row per provider, the D554 source-listing convention
@@ -87,10 +87,11 @@ export declare const ExtensionSlotSourceSchema: z.ZodObject<{
87
87
  export type ExtensionSlotSource = z.infer<typeof ExtensionSlotSourceSchema>;
88
88
  /**
89
89
  * A DIFFERENT authority that gates whether the slot's sources do anything —
90
- * reported read-only, named, never written through this contract (D62). The
91
- * virtual doorbell's sources ring only while the wrapper is bound to the
92
- * camera, and that binding belongs to `deviceManager.setWrapperActive`.
93
- * `unknown` means the gate could not be read; it is not "inactive" (D315).
90
+ * reported read-only, named, never written through this contract (D62) — e.g.
91
+ * a slot whose sources act only while a wrapper is bound to the host, a
92
+ * binding that belongs to `deviceManager.setWrapperActive`. No slot reports
93
+ * one today (`linked-devices` answers `null`). `unknown` means the gate could
94
+ * not be read; it is not "inactive" (D315).
94
95
  */
95
96
  export declare const ExtensionSlotActivationSchema: z.ZodObject<{
96
97
  state: z.ZodEnum<{
@@ -108,7 +109,6 @@ export declare const ExtensionSlotStateSchema: z.ZodObject<{
108
109
  slotRef: z.ZodString;
109
110
  slot: z.ZodEnum<{
110
111
  "linked-devices": "linked-devices";
111
- "doorbell-source": "doorbell-source";
112
112
  }>;
113
113
  authority: z.ZodString;
114
114
  activation: z.ZodNullable<z.ZodObject<{
@@ -121,9 +121,6 @@ export declare const ExtensionSlotStateSchema: z.ZodObject<{
121
121
  detail: z.ZodOptional<z.ZodString>;
122
122
  }, z.core.$strip>>;
123
123
  value: z.ZodDiscriminatedUnion<[z.ZodObject<{
124
- deviceIds: z.ZodArray<z.ZodNumber>;
125
- slot: z.ZodLiteral<"doorbell-source">;
126
- }, z.core.$strip>, z.ZodObject<{
127
124
  deviceIds: z.ZodArray<z.ZodNumber>;
128
125
  trackedDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
129
126
  slot: z.ZodLiteral<"linked-devices">;
@@ -168,7 +165,6 @@ export declare const ExtensionSlotRowSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
168
165
  slotRef: z.ZodString;
169
166
  slot: z.ZodEnum<{
170
167
  "linked-devices": "linked-devices";
171
- "doorbell-source": "doorbell-source";
172
168
  }>;
173
169
  authority: z.ZodString;
174
170
  activation: z.ZodNullable<z.ZodObject<{
@@ -181,9 +177,6 @@ export declare const ExtensionSlotRowSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
181
177
  detail: z.ZodOptional<z.ZodString>;
182
178
  }, z.core.$strip>>;
183
179
  value: z.ZodDiscriminatedUnion<[z.ZodObject<{
184
- deviceIds: z.ZodArray<z.ZodNumber>;
185
- slot: z.ZodLiteral<"doorbell-source">;
186
- }, z.core.$strip>, z.ZodObject<{
187
180
  deviceIds: z.ZodArray<z.ZodNumber>;
188
181
  trackedDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
189
182
  slot: z.ZodLiteral<"linked-devices">;
@@ -265,9 +258,6 @@ export declare const ExtensionSetSlotInputSchema: z.ZodObject<{
265
258
  deviceId: z.ZodNumber;
266
259
  slotRef: z.ZodString;
267
260
  value: z.ZodDiscriminatedUnion<[z.ZodObject<{
268
- deviceIds: z.ZodArray<z.ZodNumber>;
269
- slot: z.ZodLiteral<"doorbell-source">;
270
- }, z.core.$strip>, z.ZodObject<{
271
261
  deviceIds: z.ZodArray<z.ZodNumber>;
272
262
  trackedDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
273
263
  slot: z.ZodLiteral<"linked-devices">;
@@ -316,7 +306,6 @@ export declare const deviceExtensionCapability: {
316
306
  slotRef: z.ZodString;
317
307
  slot: z.ZodEnum<{
318
308
  "linked-devices": "linked-devices";
319
- "doorbell-source": "doorbell-source";
320
309
  }>;
321
310
  authority: z.ZodString;
322
311
  activation: z.ZodNullable<z.ZodObject<{
@@ -329,9 +318,6 @@ export declare const deviceExtensionCapability: {
329
318
  detail: z.ZodOptional<z.ZodString>;
330
319
  }, z.core.$strip>>;
331
320
  value: z.ZodDiscriminatedUnion<[z.ZodObject<{
332
- deviceIds: z.ZodArray<z.ZodNumber>;
333
- slot: z.ZodLiteral<"doorbell-source">;
334
- }, z.core.$strip>, z.ZodObject<{
335
321
  deviceIds: z.ZodArray<z.ZodNumber>;
336
322
  trackedDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
337
323
  slot: z.ZodLiteral<"linked-devices">;
@@ -387,9 +373,6 @@ export declare const deviceExtensionCapability: {
387
373
  deviceId: z.ZodNumber;
388
374
  slotRef: z.ZodString;
389
375
  value: z.ZodDiscriminatedUnion<[z.ZodObject<{
390
- deviceIds: z.ZodArray<z.ZodNumber>;
391
- slot: z.ZodLiteral<"doorbell-source">;
392
- }, z.core.$strip>, z.ZodObject<{
393
376
  deviceIds: z.ZodArray<z.ZodNumber>;
394
377
  trackedDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
395
378
  slot: z.ZodLiteral<"linked-devices">;
@@ -1491,8 +1491,8 @@ export declare const deviceManagerCapability: {
1491
1491
  * (`value` / `missing` / `failed`, see {@link WrapperActivationReadSchema}).
1492
1492
  *
1493
1493
  * The narrow read of the durable authority behind `getBindings`: a
1494
- * consumer that must know what the operator PERSISTED (virtual-doorbell,
1495
- * before it drops a press) asks this instead of pulling device-manager's
1494
+ * consumer that must know what the operator PERSISTED (before it drops
1495
+ * work on the strength of an unbind) asks this instead of pulling device-manager's
1496
1496
  * whole addon store through `addonSettingsRaw.getGlobal` — which answered
1497
1497
  * `{}` on every isolated-engine hub and so never worked (D675). It reads
1498
1498
  * ONE row (the activation map, ~1.6 KB), never the ~625 KB store.
@@ -119,8 +119,8 @@ export declare const deviceStateCapability: {
119
119
  * Canonical cross-layer WRITE for one cap-keyed slice. Used by
120
120
  * everyone who needs to publish runtime state for a device:
121
121
  * device providers (via `BaseDevice.runtimeState.setCapState`
122
- * which delegates here), system-scope addons (e.g. the pipeline
123
- * runner writing the `motion` slice on phase transitions), and
122
+ * which delegates here), system-scope addons (e.g. the orchestrator
123
+ * writing a camera's effective `motion` slice, D696), and
124
124
  * direct cap-router callers in tests.
125
125
  *
126
126
  * Behavior on the hub:
@@ -1,29 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { type InferProvider } from './capability-definition.js';
3
3
  import { DeviceType } from '../device/device-type.js';
4
- /**
5
- * Doorbell button cap. Two kinds of providers coexist behind this cap
6
- * name (same pattern as `snapshot`):
7
- *
8
- * - **Native** providers: registered per-device by device-driver
9
- * addons via `ctx.registerNativeCap` — either on a
10
- * `DeviceType.Button` accessory with `role: DeviceRole.Doorbell`,
11
- * or directly on the camera (Reolink registers at camera level).
12
- * Emits an `onPressed` event every time the firmware pushes a
13
- * ring; status tracks the last press and a pressCount since start
14
- * (diagnostic).
15
- *
16
- * - **Wrapper** provider: the `virtual-doorbell` system builtin
17
- * (`@camstack/system/builtins/doorbell`). Turns ANY binary-ish
18
- * device (contact / switch / event-emitter …) into a doorbell for
19
- * a camera. `defaultActive: false` — the operator explicitly binds
20
- * it per camera in the device-bindings UI, then picks the source
21
- * device + trigger in the per-device settings.
22
- *
23
- * The DeviceEventPropagator re-emits `onPressed` on the camera parent
24
- * — subscribers listening at the camera level receive ring events
25
- * with `via[]` populated. No code on the parent needed.
26
- */
27
4
  export declare const DoorbellStatusSchema: z.ZodObject<{
28
5
  lastPressedAt: z.ZodNullable<z.ZodNumber>;
29
6
  pressCountSinceStart: z.ZodNumber;
@@ -35,54 +12,26 @@ export declare const DoorbellPressEventSchema: z.ZodObject<{
35
12
  }, z.core.$strip>;
36
13
  export type DoorbellPressEvent = z.infer<typeof DoorbellPressEventSchema>;
37
14
  /**
38
- * The `doorbell-source` extension slot's editable value (D648): the camera's
39
- * virtual-doorbell trigger devices, exactly what the wrapper's
40
- * `doorbellSources` persists (as `{ deviceId }` records).
41
- */
42
- export declare const DoorbellSourceSlotValueSchema: z.ZodObject<{
43
- deviceIds: z.ZodArray<z.ZodNumber>;
44
- }, z.core.$strip>;
45
- export type DoorbellSourceSlotValue = z.infer<typeof DoorbellSourceSlotValueSchema>;
46
- /**
47
- * The `doorbell-source` slot — which devices ring this camera's VIRTUAL
48
- * doorbell, owned by the `virtual-doorbell` wrapper over its
49
- * `doorbellSources` store (D648). A source rings when one of its
50
- * `SOURCE_CAPS` rises. Whether the wrapper is bound to the camera at all is a
51
- * different authority (`deviceManager.setWrapperActive`, D62) — the slot
52
- * reports it, it never writes it.
15
+ * Doorbell button cap. Two kinds of provider serve it, and to every consumer
16
+ * they are the same cap:
17
+ *
18
+ * - **Native** providers, registered per device by a driver addon through
19
+ * `ctx.registerNativeCap` — a `DeviceType.Button` accessory with
20
+ * `role: DeviceRole.Doorbell`, or the camera itself (Reolink registers at
21
+ * camera level). They emit `onPressed` on every firmware ring.
22
+ * - **A composed doorbell** (D670, D671): a camera's customization gives it
23
+ * the cap, its `lastPressedAt` rising from the sources the operator
24
+ * assigned in Customize → Doorbell, and the composer emits `onPressed`
25
+ * from that field's advance (`fromState`).
26
+ *
27
+ * The DeviceEventPropagator re-emits `onPressed` on the camera parent.
53
28
  */
54
- export declare const DOORBELL_SOURCE_SLOT: {
55
- readonly id: "doorbell-source";
56
- readonly label: "Doorbell trigger devices";
57
- readonly description: string;
58
- readonly shape: "association";
59
- readonly hostDeviceTypes: readonly [DeviceType.Camera];
60
- readonly sourceCaps: readonly string[];
61
- readonly cardinality: "many";
62
- readonly value: z.ZodObject<{
63
- deviceIds: z.ZodArray<z.ZodNumber>;
64
- }, z.core.$strip>;
65
- };
66
29
  export declare const doorbellCapability: {
67
30
  readonly name: "doorbell";
68
31
  readonly scope: "device";
69
32
  readonly deviceNative: true;
70
33
  readonly mode: "singleton";
71
- readonly kind: "wrapper";
72
- readonly defaultActive: false;
73
34
  readonly deviceTypes: readonly [DeviceType.Button, DeviceType.Camera];
74
- readonly extensionSlots: readonly [{
75
- readonly id: "doorbell-source";
76
- readonly label: "Doorbell trigger devices";
77
- readonly description: string;
78
- readonly shape: "association";
79
- readonly hostDeviceTypes: readonly [DeviceType.Camera];
80
- readonly sourceCaps: readonly string[];
81
- readonly cardinality: "many";
82
- readonly value: z.ZodObject<{
83
- deviceIds: z.ZodArray<z.ZodNumber>;
84
- }, z.core.$strip>;
85
- }];
86
35
  readonly methods: {};
87
36
  readonly events: {
88
37
  /**
@@ -154,7 +154,7 @@ export { type DayNightMode, DayNightModeSchema, type DayNightOptions, DayNightOp
154
154
  export { type DeviceDiscoveryStatus, DeviceDiscoveryStatusSchema, type DiscoveredChildDevice, DiscoveredChildDeviceSchema, type DiscoveredChildStatus, DiscoveredChildStatusSchema, deviceDiscoveryCapability, type IDeviceDiscoveryNativeProvider, type IDeviceDiscoveryProvider, } from './device-discovery.cap.js';
155
155
  export { deviceOpsCapability, type IDeviceOpsProvider, type RawStateResult, RawStateResultSchema, } from './device-ops.cap.js';
156
156
  export { type DeviceStatus, DeviceStatusSchema, deviceStatusCapability, type IDeviceStatusProvider, } from './device-status.cap.js';
157
- export { DOORBELL_SOURCE_SLOT, type DoorbellPressEvent, DoorbellPressEventSchema, type DoorbellSourceSlotValue, DoorbellSourceSlotValueSchema, type DoorbellStatus, DoorbellStatusSchema, doorbellCapability, type IDoorbellProvider, } from './doorbell.cap.js';
157
+ export { type DoorbellPressEvent, DoorbellPressEventSchema, type DoorbellStatus, DoorbellStatusSchema, doorbellCapability, type IDoorbellProvider, } from './doorbell.cap.js';
158
158
  export { type EnumSensorDateTimeFormat, EnumSensorDateTimeFormatSchema, type EnumSensorStatus, EnumSensorStatusSchema, enumSensorCapability, type IEnumSensorProvider, } from './enum-sensor.cap.js';
159
159
  export { type EventEmitterStatus, EventEmitterStatusSchema, type EventFire, EventFireSchema, eventEmitterCapability, type IEventEmitterProvider, } from './event-emitter.cap.js';
160
160
  export { type FaceCluster, type FaceInfo, type FaceSortDirection, type FaceSortField, faceGalleryCapability, type Identity, type IdentitySampleAudit, type IdentitySampleAuditRow, type IdentitySampleInfo, type IFaceGalleryProvider, type ListRecentFacesInput, type SuggestFaceClustersInput, } from './face-gallery.cap.js';
@@ -16,11 +16,11 @@ import { type InferProvider } from './capability-definition.js';
16
16
  /**
17
17
  * How long after a camera's last rising edge `pipeline-analytics` closes the
18
18
  * motion EPISODE row it kept open for it (D475) — "il delay della cap", in
19
- * the operator's words. One authority for the whole system: every provider
20
- * that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
21
- * constant while `detected: true` (never its own number — Hikvision used to
22
- * seed its internal 3 s inactivity timer here, which is a different clock for
23
- * a different purpose), and `MotionEpisodeTracker` imports it directly rather
19
+ * the operator's words. One authority for the whole system: the writer of a
20
+ * `Camera` device's slice (the orchestrator, D696) writes this SAME constant
21
+ * in `autoClearAfterMs` while `detected: true` (never a camera's own clock —
22
+ * Hikvision used to seed its internal 3 s inactivity timer here, a different
23
+ * clock for a different purpose), and `MotionEpisodeTracker` imports it directly rather
24
24
  * than reading the live cap value on the hot path. A `Sensor` device (HA
25
25
  * binary sensor, Homematic) gets a genuine push both ways and has no episode
26
26
  * to close on a timer, so it writes `null`, never this constant.
@@ -157,11 +157,12 @@ export declare const motionCapability: {
157
157
  autoClearAfterMs: z.ZodNullable<z.ZodNumber>;
158
158
  }, z.core.$strip>;
159
159
  /**
160
- * Runtime-state durability: **session** — every writer of this slice
160
+ * Runtime-state durability: **session** — the writer of this slice
161
161
  * writes only on an EDGE, so a restored `detected: true` would stay
162
162
  * frozen until the next one instead of being corrected. The next edge
163
- * re-publishes the real state. (On who the writers are, and why there
164
- * is more than one, see `autoClearAfterMs` above.)
163
+ * re-publishes the real state, and the orchestrator re-publishes every
164
+ * camera when it starts writing (D696; on who writes it, see
165
+ * `autoClearAfterMs` above).
165
166
  *
166
167
  * See `RuntimeStateDurability`. Enforced by
167
168
  * `scripts/check-runtime-state-durability.ts`.
@@ -128,6 +128,7 @@ declare const AgentLoadSummarySchema: z.ZodObject<{
128
128
  inferenceBackend: z.ZodOptional<z.ZodString>;
129
129
  cpuCores: z.ZodOptional<z.ZodNumber>;
130
130
  }, z.core.$strip>;
131
+ motionSliceWriter: z.ZodOptional<z.ZodLiteral<"orchestrator">>;
131
132
  }, z.core.$strip>;
132
133
  score: z.ZodNumber;
133
134
  decodeHwaccel: z.ZodNullable<z.ZodString>;
@@ -512,14 +513,23 @@ declare const CameraStatusSchema: z.ZodObject<{
512
513
  }>>>;
513
514
  cameraSensors: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
514
515
  state: z.ZodLiteral<"not-configured">;
516
+ cameraLevel: z.ZodOptional<z.ZodObject<{
517
+ detected: z.ZodBoolean;
518
+ atMs: z.ZodNumber;
519
+ }, z.core.$strip>>;
515
520
  }, z.core.$strip>, z.ZodObject<{
516
521
  state: z.ZodLiteral<"unreadable">;
517
522
  reason: z.ZodString;
523
+ cameraLevel: z.ZodOptional<z.ZodObject<{
524
+ detected: z.ZodBoolean;
525
+ atMs: z.ZodNumber;
526
+ }, z.core.$strip>>;
518
527
  }, z.core.$strip>, z.ZodObject<{
519
528
  state: z.ZodLiteral<"configured">;
520
- mode: z.ZodEnum<{
521
- "in-addition": "in-addition";
522
- }>;
529
+ cameraLevel: z.ZodOptional<z.ZodObject<{
530
+ detected: z.ZodBoolean;
531
+ atMs: z.ZodNumber;
532
+ }, z.core.$strip>>;
523
533
  sensors: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
524
534
  state: z.ZodLiteral<"ready">;
525
535
  deviceId: z.ZodNumber;
@@ -527,6 +537,11 @@ declare const CameraStatusSchema: z.ZodObject<{
527
537
  caps: z.ZodReadonly<z.ZodArray<z.ZodString>>;
528
538
  addonId: z.ZodString;
529
539
  stableId: z.ZodString;
540
+ mode: z.ZodDefault<z.ZodEnum<{
541
+ "in-addition": "in-addition";
542
+ confirm: "confirm";
543
+ replace: "replace";
544
+ }>>;
530
545
  }, z.core.$strip>, z.ZodObject<{
531
546
  state: z.ZodLiteral<"offline">;
532
547
  deviceId: z.ZodNumber;
@@ -537,11 +552,21 @@ declare const CameraStatusSchema: z.ZodObject<{
537
552
  }>;
538
553
  addonId: z.ZodString;
539
554
  stableId: z.ZodString;
555
+ mode: z.ZodDefault<z.ZodEnum<{
556
+ "in-addition": "in-addition";
557
+ confirm: "confirm";
558
+ replace: "replace";
559
+ }>>;
540
560
  }, z.core.$strip>, z.ZodObject<{
541
561
  state: z.ZodLiteral<"missing">;
542
562
  reason: z.ZodString;
543
563
  addonId: z.ZodString;
544
564
  stableId: z.ZodString;
565
+ mode: z.ZodDefault<z.ZodEnum<{
566
+ "in-addition": "in-addition";
567
+ confirm: "confirm";
568
+ replace: "replace";
569
+ }>>;
545
570
  }, z.core.$strip>, z.ZodObject<{
546
571
  state: z.ZodLiteral<"unsupported">;
547
572
  deviceId: z.ZodNumber;
@@ -549,16 +574,34 @@ declare const CameraStatusSchema: z.ZodObject<{
549
574
  reason: z.ZodString;
550
575
  addonId: z.ZodString;
551
576
  stableId: z.ZodString;
577
+ mode: z.ZodDefault<z.ZodEnum<{
578
+ "in-addition": "in-addition";
579
+ confirm: "confirm";
580
+ replace: "replace";
581
+ }>>;
552
582
  }, z.core.$strip>, z.ZodObject<{
553
583
  state: z.ZodLiteral<"unreadable">;
554
584
  reason: z.ZodString;
555
585
  addonId: z.ZodString;
556
586
  stableId: z.ZodString;
587
+ mode: z.ZodDefault<z.ZodEnum<{
588
+ "in-addition": "in-addition";
589
+ confirm: "confirm";
590
+ replace: "replace";
591
+ }>>;
557
592
  }, z.core.$strip>], "state">>>;
593
+ cameraMotion: z.ZodOptional<z.ZodEnum<{
594
+ never: "never";
595
+ always: "always";
596
+ "when-confirmed": "when-confirmed";
597
+ }>>;
558
598
  notForwarded: z.ZodOptional<z.ZodEnum<{
559
599
  "onboard-not-listed": "onboard-not-listed";
560
600
  "no-active-detection": "no-active-detection";
561
601
  }>>;
602
+ notEnforced: z.ZodOptional<z.ZodEnum<{
603
+ "provider-not-split": "provider-not-split";
604
+ }>>;
562
605
  }, z.core.$strip>], "state">>;
563
606
  degraded: z.ZodReadonly<z.ZodArray<z.ZodObject<{
564
607
  stage: z.ZodEnum<{
@@ -702,12 +745,14 @@ declare const NodeInferenceDevicesSchema: z.ZodObject<{
702
745
  export declare const SetCameraSensorsInputSchema: z.ZodObject<{
703
746
  deviceId: z.ZodNumber;
704
747
  config: z.ZodNullable<z.ZodObject<{
705
- mode: z.ZodEnum<{
706
- "in-addition": "in-addition";
707
- }>;
708
748
  sensors: z.ZodArray<z.ZodObject<{
709
749
  addonId: z.ZodString;
710
750
  stableId: z.ZodString;
751
+ mode: z.ZodDefault<z.ZodEnum<{
752
+ "in-addition": "in-addition";
753
+ confirm: "confirm";
754
+ replace: "replace";
755
+ }>>;
711
756
  }, z.core.$strip>>;
712
757
  }, z.core.$strip>>;
713
758
  }, z.core.$strip>;
@@ -922,6 +967,7 @@ export declare const pipelineOrchestratorCapability: {
922
967
  inferenceBackend: z.ZodOptional<z.ZodString>;
923
968
  cpuCores: z.ZodOptional<z.ZodNumber>;
924
969
  }, z.core.$strip>;
970
+ motionSliceWriter: z.ZodOptional<z.ZodLiteral<"orchestrator">>;
925
971
  }, z.core.$strip>;
926
972
  score: z.ZodNumber;
927
973
  decodeHwaccel: z.ZodNullable<z.ZodString>;
@@ -1672,14 +1718,23 @@ export declare const pipelineOrchestratorCapability: {
1672
1718
  }>>>;
1673
1719
  cameraSensors: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
1674
1720
  state: z.ZodLiteral<"not-configured">;
1721
+ cameraLevel: z.ZodOptional<z.ZodObject<{
1722
+ detected: z.ZodBoolean;
1723
+ atMs: z.ZodNumber;
1724
+ }, z.core.$strip>>;
1675
1725
  }, z.core.$strip>, z.ZodObject<{
1676
1726
  state: z.ZodLiteral<"unreadable">;
1677
1727
  reason: z.ZodString;
1728
+ cameraLevel: z.ZodOptional<z.ZodObject<{
1729
+ detected: z.ZodBoolean;
1730
+ atMs: z.ZodNumber;
1731
+ }, z.core.$strip>>;
1678
1732
  }, z.core.$strip>, z.ZodObject<{
1679
1733
  state: z.ZodLiteral<"configured">;
1680
- mode: z.ZodEnum<{
1681
- "in-addition": "in-addition";
1682
- }>;
1734
+ cameraLevel: z.ZodOptional<z.ZodObject<{
1735
+ detected: z.ZodBoolean;
1736
+ atMs: z.ZodNumber;
1737
+ }, z.core.$strip>>;
1683
1738
  sensors: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1684
1739
  state: z.ZodLiteral<"ready">;
1685
1740
  deviceId: z.ZodNumber;
@@ -1687,6 +1742,11 @@ export declare const pipelineOrchestratorCapability: {
1687
1742
  caps: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1688
1743
  addonId: z.ZodString;
1689
1744
  stableId: z.ZodString;
1745
+ mode: z.ZodDefault<z.ZodEnum<{
1746
+ "in-addition": "in-addition";
1747
+ confirm: "confirm";
1748
+ replace: "replace";
1749
+ }>>;
1690
1750
  }, z.core.$strip>, z.ZodObject<{
1691
1751
  state: z.ZodLiteral<"offline">;
1692
1752
  deviceId: z.ZodNumber;
@@ -1697,11 +1757,21 @@ export declare const pipelineOrchestratorCapability: {
1697
1757
  }>;
1698
1758
  addonId: z.ZodString;
1699
1759
  stableId: z.ZodString;
1760
+ mode: z.ZodDefault<z.ZodEnum<{
1761
+ "in-addition": "in-addition";
1762
+ confirm: "confirm";
1763
+ replace: "replace";
1764
+ }>>;
1700
1765
  }, z.core.$strip>, z.ZodObject<{
1701
1766
  state: z.ZodLiteral<"missing">;
1702
1767
  reason: z.ZodString;
1703
1768
  addonId: z.ZodString;
1704
1769
  stableId: z.ZodString;
1770
+ mode: z.ZodDefault<z.ZodEnum<{
1771
+ "in-addition": "in-addition";
1772
+ confirm: "confirm";
1773
+ replace: "replace";
1774
+ }>>;
1705
1775
  }, z.core.$strip>, z.ZodObject<{
1706
1776
  state: z.ZodLiteral<"unsupported">;
1707
1777
  deviceId: z.ZodNumber;
@@ -1709,16 +1779,34 @@ export declare const pipelineOrchestratorCapability: {
1709
1779
  reason: z.ZodString;
1710
1780
  addonId: z.ZodString;
1711
1781
  stableId: z.ZodString;
1782
+ mode: z.ZodDefault<z.ZodEnum<{
1783
+ "in-addition": "in-addition";
1784
+ confirm: "confirm";
1785
+ replace: "replace";
1786
+ }>>;
1712
1787
  }, z.core.$strip>, z.ZodObject<{
1713
1788
  state: z.ZodLiteral<"unreadable">;
1714
1789
  reason: z.ZodString;
1715
1790
  addonId: z.ZodString;
1716
1791
  stableId: z.ZodString;
1792
+ mode: z.ZodDefault<z.ZodEnum<{
1793
+ "in-addition": "in-addition";
1794
+ confirm: "confirm";
1795
+ replace: "replace";
1796
+ }>>;
1717
1797
  }, z.core.$strip>], "state">>>;
1798
+ cameraMotion: z.ZodOptional<z.ZodEnum<{
1799
+ never: "never";
1800
+ always: "always";
1801
+ "when-confirmed": "when-confirmed";
1802
+ }>>;
1718
1803
  notForwarded: z.ZodOptional<z.ZodEnum<{
1719
1804
  "onboard-not-listed": "onboard-not-listed";
1720
1805
  "no-active-detection": "no-active-detection";
1721
1806
  }>>;
1807
+ notEnforced: z.ZodOptional<z.ZodEnum<{
1808
+ "provider-not-split": "provider-not-split";
1809
+ }>>;
1722
1810
  }, z.core.$strip>], "state">>;
1723
1811
  degraded: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1724
1812
  stage: z.ZodEnum<{
@@ -1859,14 +1947,23 @@ export declare const pipelineOrchestratorCapability: {
1859
1947
  }>>>;
1860
1948
  cameraSensors: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
1861
1949
  state: z.ZodLiteral<"not-configured">;
1950
+ cameraLevel: z.ZodOptional<z.ZodObject<{
1951
+ detected: z.ZodBoolean;
1952
+ atMs: z.ZodNumber;
1953
+ }, z.core.$strip>>;
1862
1954
  }, z.core.$strip>, z.ZodObject<{
1863
1955
  state: z.ZodLiteral<"unreadable">;
1864
1956
  reason: z.ZodString;
1957
+ cameraLevel: z.ZodOptional<z.ZodObject<{
1958
+ detected: z.ZodBoolean;
1959
+ atMs: z.ZodNumber;
1960
+ }, z.core.$strip>>;
1865
1961
  }, z.core.$strip>, z.ZodObject<{
1866
1962
  state: z.ZodLiteral<"configured">;
1867
- mode: z.ZodEnum<{
1868
- "in-addition": "in-addition";
1869
- }>;
1963
+ cameraLevel: z.ZodOptional<z.ZodObject<{
1964
+ detected: z.ZodBoolean;
1965
+ atMs: z.ZodNumber;
1966
+ }, z.core.$strip>>;
1870
1967
  sensors: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1871
1968
  state: z.ZodLiteral<"ready">;
1872
1969
  deviceId: z.ZodNumber;
@@ -1874,6 +1971,11 @@ export declare const pipelineOrchestratorCapability: {
1874
1971
  caps: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1875
1972
  addonId: z.ZodString;
1876
1973
  stableId: z.ZodString;
1974
+ mode: z.ZodDefault<z.ZodEnum<{
1975
+ "in-addition": "in-addition";
1976
+ confirm: "confirm";
1977
+ replace: "replace";
1978
+ }>>;
1877
1979
  }, z.core.$strip>, z.ZodObject<{
1878
1980
  state: z.ZodLiteral<"offline">;
1879
1981
  deviceId: z.ZodNumber;
@@ -1884,11 +1986,21 @@ export declare const pipelineOrchestratorCapability: {
1884
1986
  }>;
1885
1987
  addonId: z.ZodString;
1886
1988
  stableId: z.ZodString;
1989
+ mode: z.ZodDefault<z.ZodEnum<{
1990
+ "in-addition": "in-addition";
1991
+ confirm: "confirm";
1992
+ replace: "replace";
1993
+ }>>;
1887
1994
  }, z.core.$strip>, z.ZodObject<{
1888
1995
  state: z.ZodLiteral<"missing">;
1889
1996
  reason: z.ZodString;
1890
1997
  addonId: z.ZodString;
1891
1998
  stableId: z.ZodString;
1999
+ mode: z.ZodDefault<z.ZodEnum<{
2000
+ "in-addition": "in-addition";
2001
+ confirm: "confirm";
2002
+ replace: "replace";
2003
+ }>>;
1892
2004
  }, z.core.$strip>, z.ZodObject<{
1893
2005
  state: z.ZodLiteral<"unsupported">;
1894
2006
  deviceId: z.ZodNumber;
@@ -1896,16 +2008,34 @@ export declare const pipelineOrchestratorCapability: {
1896
2008
  reason: z.ZodString;
1897
2009
  addonId: z.ZodString;
1898
2010
  stableId: z.ZodString;
2011
+ mode: z.ZodDefault<z.ZodEnum<{
2012
+ "in-addition": "in-addition";
2013
+ confirm: "confirm";
2014
+ replace: "replace";
2015
+ }>>;
1899
2016
  }, z.core.$strip>, z.ZodObject<{
1900
2017
  state: z.ZodLiteral<"unreadable">;
1901
2018
  reason: z.ZodString;
1902
2019
  addonId: z.ZodString;
1903
2020
  stableId: z.ZodString;
2021
+ mode: z.ZodDefault<z.ZodEnum<{
2022
+ "in-addition": "in-addition";
2023
+ confirm: "confirm";
2024
+ replace: "replace";
2025
+ }>>;
1904
2026
  }, z.core.$strip>], "state">>>;
2027
+ cameraMotion: z.ZodOptional<z.ZodEnum<{
2028
+ never: "never";
2029
+ always: "always";
2030
+ "when-confirmed": "when-confirmed";
2031
+ }>>;
1905
2032
  notForwarded: z.ZodOptional<z.ZodEnum<{
1906
2033
  "onboard-not-listed": "onboard-not-listed";
1907
2034
  "no-active-detection": "no-active-detection";
1908
2035
  }>>;
2036
+ notEnforced: z.ZodOptional<z.ZodEnum<{
2037
+ "provider-not-split": "provider-not-split";
2038
+ }>>;
1909
2039
  }, z.core.$strip>], "state">>;
1910
2040
  degraded: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1911
2041
  stage: z.ZodEnum<{
@@ -1935,12 +2065,14 @@ export declare const pipelineOrchestratorCapability: {
1935
2065
  readonly setCameraSensors: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1936
2066
  deviceId: z.ZodNumber;
1937
2067
  config: z.ZodNullable<z.ZodObject<{
1938
- mode: z.ZodEnum<{
1939
- "in-addition": "in-addition";
1940
- }>;
1941
2068
  sensors: z.ZodArray<z.ZodObject<{
1942
2069
  addonId: z.ZodString;
1943
2070
  stableId: z.ZodString;
2071
+ mode: z.ZodDefault<z.ZodEnum<{
2072
+ "in-addition": "in-addition";
2073
+ confirm: "confirm";
2074
+ replace: "replace";
2075
+ }>>;
1944
2076
  }, z.core.$strip>>;
1945
2077
  }, z.core.$strip>>;
1946
2078
  }, z.core.$strip>, z.ZodObject<{
@@ -458,6 +458,7 @@ declare const RunnerLocalLoadSchema: z.ZodObject<{
458
458
  inferenceBackend: z.ZodOptional<z.ZodString>;
459
459
  cpuCores: z.ZodOptional<z.ZodNumber>;
460
460
  }, z.core.$strip>;
461
+ motionSliceWriter: z.ZodOptional<z.ZodLiteral<"orchestrator">>;
461
462
  }, z.core.$strip>;
462
463
  /**
463
464
  * Aggregate runtime metrics for the runner's whole local pool. Mirrors the
@@ -770,6 +771,7 @@ export declare const pipelineRunnerCapability: {
770
771
  inferenceBackend: z.ZodOptional<z.ZodString>;
771
772
  cpuCores: z.ZodOptional<z.ZodNumber>;
772
773
  }, z.core.$strip>;
774
+ motionSliceWriter: z.ZodOptional<z.ZodLiteral<"orchestrator">>;
773
775
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
774
776
  /** Return aggregate runtime metrics for this runner instance. */
775
777
  readonly getLocalMetrics: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{