@camstack/types 1.2.0 → 1.2.2

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.
@@ -213,6 +213,7 @@ export declare const LinkedDeviceSchema: z.ZodObject<{
213
213
  name: z.ZodString;
214
214
  location: z.ZodNullable<z.ZodString>;
215
215
  features: z.ZodArray<z.ZodString>;
216
+ producesTrackedEvents: z.ZodOptional<z.ZodBoolean>;
216
217
  }, z.core.$strip>;
217
218
  export type LinkedDevice = z.infer<typeof LinkedDeviceSchema>;
218
219
  export { StreamSourceEntrySchema };
@@ -1059,6 +1060,7 @@ export declare const deviceManagerCapability: {
1059
1060
  name: z.ZodString;
1060
1061
  location: z.ZodNullable<z.ZodString>;
1061
1062
  features: z.ZodArray<z.ZodString>;
1063
+ producesTrackedEvents: z.ZodOptional<z.ZodBoolean>;
1062
1064
  }, z.core.$strip>>;
1063
1065
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1064
1066
  /** Get stream sources for a camera device. */
@@ -83,8 +83,8 @@ export type { PipelineStepInputOutput, PipelineValidationIssue, PipelineValidati
83
83
  export { ModelSubstitutionSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
84
84
  export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, IngestOwner, NodeInferenceDevice, NodeInferenceDevices, } from './pipeline-orchestrator.cap.js';
85
85
  export { AgentLoadSummarySchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CapabilityBindingsSchema, GlobalMetricsSchema, IngestOwnerSchema, PipelineAssignmentSchema, pipelineOrchestratorCapability, } from './pipeline-orchestrator.cap.js';
86
- export type { DetailParent, DetailResult, MotionSource, MotionSources, ReportMotionInput, RunDetailSubtreeInput, RunDetailSubtreeResult, RunnerFrameSource, } from './pipeline-runner.cap.js';
87
- export { MotionSourceEnum, MotionSourcesSchema, pipelineRunnerCapability, ReportMotionInputSchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, } from './pipeline-runner.cap.js';
86
+ export type { DetailParent, DetailResult, MotionSource, MotionSources, ReportMotionInput, RunDetailSubtreeInput, RunDetailSubtreeResult, RunnerFrameSource, RunnerInferenceDevice, } from './pipeline-runner.cap.js';
87
+ export { MotionSourceEnum, MotionSourcesSchema, NativeCropBboxSchema, NativeCropResultSchema, pipelineRunnerCapability, ReportMotionInputSchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, } from './pipeline-runner.cap.js';
88
88
  export { AudioChunkInputSchema, AudioClassificationLabelSchema, AudioLevelSchema, BoundingBoxSchema, FrameInputSchema, SpatialDetectionSchema, } from './schemas/detection-shared.js';
89
89
  export { CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, OrchestratorMetricsSchema, } from './schemas/orchestrator-metrics.js';
90
90
  export type { CameraStream, CamProfile, CamStreamKind, DecodedAudioChunkWire, FrameHandleFormat, ProfileRtspEntry, ProfileSlot, ProfileSlotStatus, SubscribeAudioChunksInput, SubscribeAudioChunksResult, SubscribeFramesInput, SubscribeFramesResult, } from './schemas/streaming-shared.js';
@@ -200,6 +200,7 @@ declare const TrackSchema: z.ZodObject<{
200
200
  deviceId: z.ZodNumber;
201
201
  className: z.ZodString;
202
202
  label: z.ZodOptional<z.ZodString>;
203
+ producingDeviceName: z.ZodOptional<z.ZodString>;
203
204
  source: z.ZodOptional<z.ZodEnum<{
204
205
  sensor: "sensor";
205
206
  pipeline: "pipeline";
@@ -357,6 +358,7 @@ declare const MediaFileKindEnum: z.ZodEnum<{
357
358
  faceCrop: "faceCrop";
358
359
  plateCrop: "plateCrop";
359
360
  keyFrame: "keyFrame";
361
+ keyFrameSmall: "keyFrameSmall";
360
362
  }>;
361
363
  export type MediaFileKind = z.infer<typeof MediaFileKindEnum>;
362
364
  declare const MediaFileSchema: z.ZodObject<{
@@ -372,6 +374,7 @@ declare const MediaFileSchema: z.ZodObject<{
372
374
  faceCrop: "faceCrop";
373
375
  plateCrop: "plateCrop";
374
376
  keyFrame: "keyFrame";
377
+ keyFrameSmall: "keyFrameSmall";
375
378
  }>;
376
379
  base64: z.ZodString;
377
380
  sizeBytes: z.ZodNumber;
@@ -396,6 +399,7 @@ declare const RecentTracksPageSchema: z.ZodObject<{
396
399
  deviceId: z.ZodNumber;
397
400
  className: z.ZodString;
398
401
  label: z.ZodOptional<z.ZodString>;
402
+ producingDeviceName: z.ZodOptional<z.ZodString>;
399
403
  source: z.ZodOptional<z.ZodEnum<{
400
404
  sensor: "sensor";
401
405
  pipeline: "pipeline";
@@ -576,6 +580,7 @@ export declare const pipelineAnalyticsCapability: {
576
580
  deviceId: z.ZodNumber;
577
581
  className: z.ZodString;
578
582
  label: z.ZodOptional<z.ZodString>;
583
+ producingDeviceName: z.ZodOptional<z.ZodString>;
579
584
  source: z.ZodOptional<z.ZodEnum<{
580
585
  sensor: "sensor";
581
586
  pipeline: "pipeline";
@@ -644,6 +649,7 @@ export declare const pipelineAnalyticsCapability: {
644
649
  deviceId: z.ZodNumber;
645
650
  className: z.ZodString;
646
651
  label: z.ZodOptional<z.ZodString>;
652
+ producingDeviceName: z.ZodOptional<z.ZodString>;
647
653
  source: z.ZodOptional<z.ZodEnum<{
648
654
  sensor: "sensor";
649
655
  pipeline: "pipeline";
@@ -734,6 +740,7 @@ export declare const pipelineAnalyticsCapability: {
734
740
  deviceId: z.ZodNumber;
735
741
  className: z.ZodString;
736
742
  label: z.ZodOptional<z.ZodString>;
743
+ producingDeviceName: z.ZodOptional<z.ZodString>;
737
744
  source: z.ZodOptional<z.ZodEnum<{
738
745
  sensor: "sensor";
739
746
  pipeline: "pipeline";
@@ -820,6 +827,7 @@ export declare const pipelineAnalyticsCapability: {
820
827
  deviceId: z.ZodNumber;
821
828
  className: z.ZodString;
822
829
  label: z.ZodOptional<z.ZodString>;
830
+ producingDeviceName: z.ZodOptional<z.ZodString>;
823
831
  source: z.ZodOptional<z.ZodEnum<{
824
832
  sensor: "sensor";
825
833
  pipeline: "pipeline";
@@ -1252,6 +1260,7 @@ export declare const pipelineAnalyticsCapability: {
1252
1260
  faceCrop: "faceCrop";
1253
1261
  plateCrop: "plateCrop";
1254
1262
  keyFrame: "keyFrame";
1263
+ keyFrameSmall: "keyFrameSmall";
1255
1264
  }>>;
1256
1265
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
1257
1266
  key: z.ZodString;
@@ -1266,6 +1275,7 @@ export declare const pipelineAnalyticsCapability: {
1266
1275
  faceCrop: "faceCrop";
1267
1276
  plateCrop: "plateCrop";
1268
1277
  keyFrame: "keyFrame";
1278
+ keyFrameSmall: "keyFrameSmall";
1269
1279
  }>;
1270
1280
  base64: z.ZodString;
1271
1281
  sizeBytes: z.ZodNumber;
@@ -1286,6 +1296,7 @@ export declare const pipelineAnalyticsCapability: {
1286
1296
  faceCrop: "faceCrop";
1287
1297
  plateCrop: "plateCrop";
1288
1298
  keyFrame: "keyFrame";
1299
+ keyFrameSmall: "keyFrameSmall";
1289
1300
  }>;
1290
1301
  base64: z.ZodString;
1291
1302
  sizeBytes: z.ZodNumber;
@@ -367,6 +367,16 @@ export type PipelineStepInputOutput = {
367
367
  readonly enabled: boolean;
368
368
  readonly children?: readonly PipelineStepInputOutput[];
369
369
  readonly settings?: Readonly<Record<string, unknown>>;
370
+ /**
371
+ * Step-tree device jump (same-node, phase 1). Operator manual override
372
+ * carried from the per-(node,device) BASE
373
+ * (`inferenceDevices[node][deviceKey].steps[step].jumpDeviceKey`): run THIS
374
+ * enrichment step (and its inherited children) on a DIFFERENT enabled device
375
+ * of the SAME node — `<backend>:<device>` (e.g. `openvino:npu`). Absent ⇒ the
376
+ * runner AUTO-jumps only when the effective device's format cannot run the
377
+ * step's model, else the step inherits the effective device. Same-node only.
378
+ */
379
+ readonly jumpDeviceKey?: string;
370
380
  };
371
381
  export declare const PipelineStepInputSchema: z.ZodType<PipelineStepInputOutput>;
372
382
  declare const ModelSubstitutionSchema: z.ZodObject<{
@@ -463,6 +463,7 @@ declare const NodeInferenceDeviceSchema: z.ZodObject<{
463
463
  steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
464
464
  modelId: z.ZodOptional<z.ZodString>;
465
465
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
466
+ jumpDeviceKey: z.ZodOptional<z.ZodString>;
466
467
  }, z.core.$strip>>>;
467
468
  }, z.core.$strip>;
468
469
  declare const NodeInferenceDevicesSchema: z.ZodObject<{
@@ -488,6 +489,7 @@ declare const NodeInferenceDevicesSchema: z.ZodObject<{
488
489
  steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
489
490
  modelId: z.ZodOptional<z.ZodString>;
490
491
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
492
+ jumpDeviceKey: z.ZodOptional<z.ZodString>;
491
493
  }, z.core.$strip>>>;
492
494
  }, z.core.$strip>>>;
493
495
  }, z.core.$strip>;
@@ -748,6 +750,7 @@ export declare const pipelineOrchestratorCapability: {
748
750
  steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
749
751
  modelId: z.ZodOptional<z.ZodString>;
750
752
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
753
+ jumpDeviceKey: z.ZodOptional<z.ZodString>;
751
754
  }, z.core.$strip>>>;
752
755
  }, z.core.$strip>>>;
753
756
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
@@ -769,6 +772,7 @@ export declare const pipelineOrchestratorCapability: {
769
772
  steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
770
773
  modelId: z.ZodOptional<z.ZodString>;
771
774
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
775
+ jumpDeviceKey: z.ZodOptional<z.ZodString>;
772
776
  }, z.core.$strip>>>;
773
777
  }, z.core.$strip>>>;
774
778
  }, z.core.$strip>;
@@ -877,6 +881,7 @@ export declare const pipelineOrchestratorCapability: {
877
881
  steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
878
882
  modelId: z.ZodOptional<z.ZodString>;
879
883
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
884
+ jumpDeviceKey: z.ZodOptional<z.ZodString>;
880
885
  }, z.core.$strip>>>;
881
886
  }, z.core.$strip>>;
882
887
  }, z.core.$strip>, z.ZodObject<{
@@ -919,6 +924,7 @@ export declare const pipelineOrchestratorCapability: {
919
924
  steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
920
925
  modelId: z.ZodOptional<z.ZodString>;
921
926
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
927
+ jumpDeviceKey: z.ZodOptional<z.ZodString>;
922
928
  }, z.core.$strip>>>;
923
929
  }, z.core.$strip>>>;
924
930
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
@@ -15,9 +15,14 @@ export declare const NativeCropBboxSchema: z.ZodObject<{
15
15
  }, z.core.$strip>;
16
16
  /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
17
17
  export declare const NativeCropResultSchema: z.ZodObject<{
18
- bytes: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
18
+ bytes: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
19
+ jpeg: z.ZodOptional<z.ZodString>;
19
20
  width: z.ZodNumber;
20
21
  height: z.ZodNumber;
22
+ tier: z.ZodOptional<z.ZodEnum<{
23
+ native: "native";
24
+ "ram-fullframe": "ram-fullframe";
25
+ }>>;
21
26
  }, z.core.$strip>;
22
27
  export type NativeCropBbox = z.infer<typeof NativeCropBboxSchema>;
23
28
  export type NativeCropCapResult = z.infer<typeof NativeCropResultSchema>;
@@ -139,6 +144,21 @@ export declare const RunnerFrameSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObje
139
144
  hubHostnameOverride: z.ZodOptional<z.ZodString>;
140
145
  }, z.core.$strip>], "kind">;
141
146
  export type RunnerFrameSource = z.infer<typeof RunnerFrameSourceSchema>;
147
+ /**
148
+ * One ENABLED inference device on the runner's node, as the step-tree
149
+ * device-jump resolver sees it (phase 1). The orchestrator populates this
150
+ * roster on the attach payload whenever the camera is elected onto a specific
151
+ * `deviceKey` and the node has ≥2 enabled devices — it is the candidate set the
152
+ * runner auto-jumps an enrichment step to when the elected device's format
153
+ * cannot run that step's model. `weight`/`maxSessions` mirror the balancer's
154
+ * per-device knobs so the auto choice is weighted-least-loaded.
155
+ */
156
+ export declare const RunnerInferenceDeviceSchema: z.ZodObject<{
157
+ deviceKey: z.ZodString;
158
+ weight: z.ZodDefault<z.ZodNumber>;
159
+ maxSessions: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
160
+ }, z.core.$strip>;
161
+ export type RunnerInferenceDevice = z.infer<typeof RunnerInferenceDeviceSchema>;
142
162
  /**
143
163
  * Camera assignment payload sent by `addon-pipeline-orchestrator` to a
144
164
  * specific runner instance via `attachCamera`. Carries everything the
@@ -203,6 +223,11 @@ declare const RunnerCameraConfigSchema: z.ZodObject<{
203
223
  hubHostnameOverride: z.ZodOptional<z.ZodString>;
204
224
  }, z.core.$strip>], "kind">>;
205
225
  deviceKey: z.ZodOptional<z.ZodString>;
226
+ inferenceDevices: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
227
+ deviceKey: z.ZodString;
228
+ weight: z.ZodDefault<z.ZodNumber>;
229
+ maxSessions: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
230
+ }, z.core.$strip>>>>;
206
231
  }, z.core.$strip>;
207
232
  /**
208
233
  * Per-device settings UI fields the runner cap owns. Co-located with
@@ -329,6 +354,11 @@ export declare const pipelineRunnerCapability: {
329
354
  hubHostnameOverride: z.ZodOptional<z.ZodString>;
330
355
  }, z.core.$strip>], "kind">>;
331
356
  deviceKey: z.ZodOptional<z.ZodString>;
357
+ inferenceDevices: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
358
+ deviceKey: z.ZodString;
359
+ weight: z.ZodDefault<z.ZodNumber>;
360
+ maxSessions: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
361
+ }, z.core.$strip>>>>;
332
362
  }, z.core.$strip>, z.ZodObject<{
333
363
  success: z.ZodLiteral<true>;
334
364
  }, z.core.$strip>, "mutation">;
@@ -447,10 +477,15 @@ export declare const pipelineRunnerCapability: {
447
477
  * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
448
478
  * the runner asks the decode worker still holding that frame's NATIVE
449
479
  * surface to GPU/CPU-crop ONLY the ROI at native res and download just the
450
- * crop. Returns `null` on a miss (handle not registered, or the worker's
451
- * tiny native-retention ring already evicted the frame) — the caller falls
452
- * back to a detection-frame crop. Routed to the frame's owning node by
453
- * `handle.nodeId`; NEVER ships a full native frame.
480
+ * crop. Routed to the frame's owning node by `handle.nodeId`; NEVER ships a
481
+ * full native frame.
482
+ *
483
+ * Miss behaviour differs by request shape (see `NativeCropResultSchema.tier`):
484
+ * - an ROI (subject-crop) miss returns `null` — the caller reports the miss
485
+ * and retries; it is NEVER handed a ≤640 crop masquerading as native.
486
+ * - a FULL-FRAME miss falls back to the ≤640 RAM `RetainedFrameStore`, tagged
487
+ * `tier: 'ram-fullframe'` (honest lower-res for the blank-frame guard /
488
+ * 640-snapshot resolve). A native hit is tagged `tier: 'native'`.
454
489
  */
455
490
  readonly getNativeCrop: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
456
491
  handle: z.ZodObject<{
@@ -478,10 +513,16 @@ export declare const pipelineRunnerCapability: {
478
513
  h: z.ZodNumber;
479
514
  }, z.core.$strip>;
480
515
  maxWidth: z.ZodOptional<z.ZodNumber>;
516
+ encodeJpeg: z.ZodOptional<z.ZodBoolean>;
481
517
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
482
- bytes: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
518
+ bytes: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
519
+ jpeg: z.ZodOptional<z.ZodString>;
483
520
  width: z.ZodNumber;
484
521
  height: z.ZodNumber;
522
+ tier: z.ZodOptional<z.ZodEnum<{
523
+ native: "native";
524
+ "ram-fullframe": "ram-fullframe";
525
+ }>>;
485
526
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
486
527
  /**
487
528
  * Two-plane design: run the DETAIL subtree (crop children —
@@ -4885,6 +4885,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
4885
4885
  name: string;
4886
4886
  location: string | null;
4887
4887
  features: string[];
4888
+ producesTrackedEvents?: boolean | undefined;
4888
4889
  }[];
4889
4890
  };
4890
4891
  meta: object;
@@ -9659,6 +9660,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9659
9660
  state: "idle" | "left" | "moving" | "new" | "entered";
9660
9661
  active: boolean;
9661
9662
  label?: string | undefined;
9663
+ producingDeviceName?: string | undefined;
9662
9664
  source?: "pipeline" | "sensor" | undefined;
9663
9665
  classes?: readonly string[] | undefined;
9664
9666
  importance?: number | undefined;
@@ -9723,6 +9725,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9723
9725
  state: "idle" | "left" | "moving" | "new" | "entered";
9724
9726
  active: boolean;
9725
9727
  label?: string | undefined;
9728
+ producingDeviceName?: string | undefined;
9726
9729
  source?: "pipeline" | "sensor" | undefined;
9727
9730
  classes?: readonly string[] | undefined;
9728
9731
  importance?: number | undefined;
@@ -9803,6 +9806,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9803
9806
  state: "idle" | "left" | "moving" | "new" | "entered";
9804
9807
  active: boolean;
9805
9808
  label?: string | undefined;
9809
+ producingDeviceName?: string | undefined;
9806
9810
  source?: "pipeline" | "sensor" | undefined;
9807
9811
  classes?: readonly string[] | undefined;
9808
9812
  importance?: number | undefined;
@@ -9872,6 +9876,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9872
9876
  state: "idle" | "left" | "moving" | "new" | "entered";
9873
9877
  active: boolean;
9874
9878
  label?: string | undefined;
9879
+ producingDeviceName?: string | undefined;
9875
9880
  source?: "pipeline" | "sensor" | undefined;
9876
9881
  classes?: readonly string[] | undefined;
9877
9882
  importance?: number | undefined;
@@ -10197,11 +10202,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10197
10202
  input: {
10198
10203
  [x: string]: unknown;
10199
10204
  eventId: string;
10200
- kind?: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | undefined;
10205
+ kind?: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | undefined;
10201
10206
  };
10202
10207
  output: readonly {
10203
10208
  key: string;
10204
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame";
10209
+ kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall";
10205
10210
  base64: string;
10206
10211
  sizeBytes: number;
10207
10212
  timestamp: number;
@@ -10215,7 +10220,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10215
10220
  };
10216
10221
  output: readonly {
10217
10222
  key: string;
10218
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame";
10223
+ kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall";
10219
10224
  base64: string;
10220
10225
  sizeBytes: number;
10221
10226
  timestamp: number;
@@ -11917,11 +11922,14 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
11917
11922
  h: number;
11918
11923
  };
11919
11924
  maxWidth?: number | undefined;
11925
+ encodeJpeg?: boolean | undefined;
11920
11926
  };
11921
11927
  output: {
11922
- bytes: Uint8Array<ArrayBuffer>;
11923
11928
  width: number;
11924
11929
  height: number;
11930
+ bytes?: Uint8Array<ArrayBuffer> | undefined;
11931
+ jpeg?: string | undefined;
11932
+ tier?: "native" | "ram-fullframe" | undefined;
11925
11933
  } | null;
11926
11934
  meta: object;
11927
11935
  }>;
@@ -21689,6 +21697,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
21689
21697
  name: string;
21690
21698
  location: string | null;
21691
21699
  features: string[];
21700
+ producesTrackedEvents?: boolean | undefined;
21692
21701
  }[];
21693
21702
  };
21694
21703
  meta: object;
@@ -26463,6 +26472,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26463
26472
  state: "idle" | "left" | "moving" | "new" | "entered";
26464
26473
  active: boolean;
26465
26474
  label?: string | undefined;
26475
+ producingDeviceName?: string | undefined;
26466
26476
  source?: "pipeline" | "sensor" | undefined;
26467
26477
  classes?: readonly string[] | undefined;
26468
26478
  importance?: number | undefined;
@@ -26527,6 +26537,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26527
26537
  state: "idle" | "left" | "moving" | "new" | "entered";
26528
26538
  active: boolean;
26529
26539
  label?: string | undefined;
26540
+ producingDeviceName?: string | undefined;
26530
26541
  source?: "pipeline" | "sensor" | undefined;
26531
26542
  classes?: readonly string[] | undefined;
26532
26543
  importance?: number | undefined;
@@ -26607,6 +26618,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26607
26618
  state: "idle" | "left" | "moving" | "new" | "entered";
26608
26619
  active: boolean;
26609
26620
  label?: string | undefined;
26621
+ producingDeviceName?: string | undefined;
26610
26622
  source?: "pipeline" | "sensor" | undefined;
26611
26623
  classes?: readonly string[] | undefined;
26612
26624
  importance?: number | undefined;
@@ -26676,6 +26688,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26676
26688
  state: "idle" | "left" | "moving" | "new" | "entered";
26677
26689
  active: boolean;
26678
26690
  label?: string | undefined;
26691
+ producingDeviceName?: string | undefined;
26679
26692
  source?: "pipeline" | "sensor" | undefined;
26680
26693
  classes?: readonly string[] | undefined;
26681
26694
  importance?: number | undefined;
@@ -27001,11 +27014,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
27001
27014
  input: {
27002
27015
  [x: string]: unknown;
27003
27016
  eventId: string;
27004
- kind?: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | undefined;
27017
+ kind?: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | undefined;
27005
27018
  };
27006
27019
  output: readonly {
27007
27020
  key: string;
27008
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame";
27021
+ kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall";
27009
27022
  base64: string;
27010
27023
  sizeBytes: number;
27011
27024
  timestamp: number;
@@ -27019,7 +27032,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
27019
27032
  };
27020
27033
  output: readonly {
27021
27034
  key: string;
27022
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame";
27035
+ kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall";
27023
27036
  base64: string;
27024
27037
  sizeBytes: number;
27025
27038
  timestamp: number;
@@ -28721,11 +28734,14 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
28721
28734
  h: number;
28722
28735
  };
28723
28736
  maxWidth?: number | undefined;
28737
+ encodeJpeg?: boolean | undefined;
28724
28738
  };
28725
28739
  output: {
28726
- bytes: Uint8Array<ArrayBuffer>;
28727
28740
  width: number;
28728
28741
  height: number;
28742
+ bytes?: Uint8Array<ArrayBuffer> | undefined;
28743
+ jpeg?: string | undefined;
28744
+ tier?: "native" | "ram-fullframe" | undefined;
28729
28745
  } | null;
28730
28746
  meta: object;
28731
28747
  }>;
package/dist/index.js CHANGED
@@ -7998,7 +7998,8 @@ var PipelineStepInputSchema = zod.z.lazy(() => zod.z.object({
7998
7998
  modelId: zod.z.string().optional(),
7999
7999
  enabled: zod.z.boolean().default(true),
8000
8000
  children: zod.z.array(PipelineStepInputSchema).optional(),
8001
- settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
8001
+ settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
8002
+ jumpDeviceKey: zod.z.string().optional()
8002
8003
  }));
8003
8004
  var ModelSubstitutionSchema = zod.z.object({
8004
8005
  addonId: zod.z.string(),
@@ -8493,10 +8494,40 @@ var NativeCropBboxSchema = zod.z.object({
8493
8494
  });
8494
8495
  /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8495
8496
  var NativeCropResultSchema = zod.z.object({
8496
- /** Packed rgb (24-bit) pixels of the crop. */
8497
- bytes: zod.z.instanceof(Uint8Array),
8497
+ /**
8498
+ * Packed rgb (24-bit) pixels of the crop. Present on the DEFAULT (raw) path —
8499
+ * same-node (in-process / UDS) callers get zero-copy RGB and encode locally.
8500
+ * OMITTED when the caller requested `encodeJpeg` (the cross-node compressed
8501
+ * path below), where shipping raw RGB is both an invariant violation and, for
8502
+ * a native full frame (~26 MB at 4K), larger than Moleculer's 10 MB
8503
+ * `maxPacketSize` → the packet is dropped and the call 60s-times-out. That is
8504
+ * the cross-node native-media miss: `bytes` is replaced by `jpeg`.
8505
+ */
8506
+ bytes: zod.z.instanceof(Uint8Array).optional(),
8507
+ /**
8508
+ * Base64 JPEG of the crop — the COMPRESSED cross-node payload. The OWNING node
8509
+ * (which holds the native surface) encodes it in-process, so a native 4K frame
8510
+ * ships as ~0.5–2 MB (well under `maxPacketSize`) and NO raw pixels ever cross
8511
+ * a process boundary (CLAUDE.md invariant #21). Present ONLY when the request
8512
+ * set `encodeJpeg: true`; `bytes` is then absent.
8513
+ */
8514
+ jpeg: zod.z.string().optional(),
8498
8515
  width: zod.z.number().int().positive(),
8499
- height: zod.z.number().int().positive()
8516
+ height: zod.z.number().int().positive(),
8517
+ /**
8518
+ * Which source served this crop, so a quality-sensitive consumer (the native
8519
+ * `keyFrame`) can reject a degraded fallback:
8520
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
8521
+ * quality path).
8522
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
8523
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
8524
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
8525
+ *
8526
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
8527
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
8528
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
8529
+ */
8530
+ tier: zod.z.enum(["native", "ram-fullframe"]).optional()
8500
8531
  });
8501
8532
  /** Parent detection context passed to `runDetailSubtree` — the crop's
8502
8533
  * originating detection, in FRAME-space coordinates. Reuses
@@ -8626,6 +8657,20 @@ var RunnerFrameSourceSchema = zod.z.discriminatedUnion("kind", [zod.z.object({ k
8626
8657
  hubHostnameOverride: zod.z.string().optional()
8627
8658
  })]).describe("Per-camera frame-source mode for the runner (P2c)");
8628
8659
  /**
8660
+ * One ENABLED inference device on the runner's node, as the step-tree
8661
+ * device-jump resolver sees it (phase 1). The orchestrator populates this
8662
+ * roster on the attach payload whenever the camera is elected onto a specific
8663
+ * `deviceKey` and the node has ≥2 enabled devices — it is the candidate set the
8664
+ * runner auto-jumps an enrichment step to when the elected device's format
8665
+ * cannot run that step's model. `weight`/`maxSessions` mirror the balancer's
8666
+ * per-device knobs so the auto choice is weighted-least-loaded.
8667
+ */
8668
+ var RunnerInferenceDeviceSchema = zod.z.object({
8669
+ deviceKey: zod.z.string(),
8670
+ weight: zod.z.number().positive().default(1),
8671
+ maxSessions: zod.z.number().int().positive().nullable().default(null)
8672
+ });
8673
+ /**
8629
8674
  * Camera assignment payload sent by `addon-pipeline-orchestrator` to a
8630
8675
  * specific runner instance via `attachCamera`. Carries everything the
8631
8676
  * runner needs to subscribe to the local broker and execute inference.
@@ -8743,7 +8788,16 @@ var RunnerCameraConfigSchema = zod.z.object({
8743
8788
  * omitted ⇒ the runner's default device. The engine itself stays node-local —
8744
8789
  * this only selects WHICH device pool of that node runs the session.
8745
8790
  */
8746
- deviceKey: zod.z.string().optional()
8791
+ deviceKey: zod.z.string().optional(),
8792
+ /**
8793
+ * Step-tree device-jump roster (phase 1): the node's ENABLED inference
8794
+ * devices, populated by the orchestrator ONLY when `deviceKey` is set and the
8795
+ * node has ≥2 enabled devices. The runner uses it to AUTO-jump an enrichment
8796
+ * step whose model has no build for the elected device's format onto another
8797
+ * enabled device of the SAME node (weighted-least-loaded). Absent/single-entry
8798
+ * ⇒ no jump possible; the step runs on `deviceKey`.
8799
+ */
8800
+ inferenceDevices: zod.z.array(RunnerInferenceDeviceSchema).readonly().optional()
8747
8801
  });
8748
8802
  /**
8749
8803
  * Per-device settings UI fields the runner cap owns. Co-located with
@@ -8974,15 +9028,31 @@ var pipelineRunnerCapability = {
8974
9028
  * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
8975
9029
  * the runner asks the decode worker still holding that frame's NATIVE
8976
9030
  * surface to GPU/CPU-crop ONLY the ROI at native res and download just the
8977
- * crop. Returns `null` on a miss (handle not registered, or the worker's
8978
- * tiny native-retention ring already evicted the frame) — the caller falls
8979
- * back to a detection-frame crop. Routed to the frame's owning node by
8980
- * `handle.nodeId`; NEVER ships a full native frame.
9031
+ * crop. Routed to the frame's owning node by `handle.nodeId`; NEVER ships a
9032
+ * full native frame.
9033
+ *
9034
+ * Miss behaviour differs by request shape (see `NativeCropResultSchema.tier`):
9035
+ * - an ROI (subject-crop) miss returns `null` — the caller reports the miss
9036
+ * and retries; it is NEVER handed a ≤640 crop masquerading as native.
9037
+ * - a FULL-FRAME miss falls back to the ≤640 RAM `RetainedFrameStore`, tagged
9038
+ * `tier: 'ram-fullframe'` (honest lower-res for the blank-frame guard /
9039
+ * 640-snapshot resolve). A native hit is tagged `tier: 'native'`.
8981
9040
  */
8982
9041
  getNativeCrop: require_sleep.method(zod.z.object({
8983
9042
  handle: require_sleep.FrameHandleSchema,
8984
9043
  bbox: NativeCropBboxSchema,
8985
- maxWidth: zod.z.number().int().positive().optional()
9044
+ maxWidth: zod.z.number().int().positive().optional(),
9045
+ /**
9046
+ * When `true`, the runner encodes the resolved crop to JPEG ON THE
9047
+ * OWNING NODE and returns it in `jpeg` (base64) INSTEAD of raw `bytes`.
9048
+ * Callers set this for CROSS-NODE fetches (`handle.nodeId` is a remote
9049
+ * agent) so the compressed payload fits Moleculer's `maxPacketSize` and
9050
+ * no raw pixels cross the process boundary. Same-node callers omit it
9051
+ * and keep the zero-copy raw `bytes` path. Additive + optional: a
9052
+ * pre-encode runner (version skew) ignores it and returns `bytes`, so
9053
+ * the caller falls back to encoding locally.
9054
+ */
9055
+ encodeJpeg: zod.z.boolean().optional()
8986
9056
  }), NativeCropResultSchema.nullable()),
8987
9057
  /**
8988
9058
  * Two-plane design: run the DETAIL subtree (crop children —
@@ -16642,7 +16712,8 @@ var LinkedDeviceSchema = zod.z.object({
16642
16712
  deviceId: zod.z.number(),
16643
16713
  name: zod.z.string(),
16644
16714
  location: zod.z.string().nullable(),
16645
- features: zod.z.array(zod.z.string())
16715
+ features: zod.z.array(zod.z.string()),
16716
+ producesTrackedEvents: zod.z.boolean().optional()
16646
16717
  });
16647
16718
  var SavedDeviceRowSchema = zod.z.object({
16648
16719
  /** Numeric id reserved at allocateDeviceId time. */
@@ -18914,6 +18985,7 @@ var TrackSchema = zod.z.object({
18914
18985
  deviceId: zod.z.number(),
18915
18986
  className: zod.z.string(),
18916
18987
  label: zod.z.string().optional(),
18988
+ producingDeviceName: zod.z.string().optional(),
18917
18989
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
18918
18990
  source: TrackSourceSchema.optional(),
18919
18991
  firstSeen: zod.z.number(),
@@ -19051,7 +19123,8 @@ var MediaFileKindEnum = zod.z.enum([
19051
19123
  "fullFrameBoxed",
19052
19124
  "faceCrop",
19053
19125
  "plateCrop",
19054
- "keyFrame"
19126
+ "keyFrame",
19127
+ "keyFrameSmall"
19055
19128
  ]);
19056
19129
  var MediaFileSchema = zod.z.object({
19057
19130
  key: zod.z.string(),
@@ -19569,7 +19642,16 @@ var PipelineTemplateSchema = zod.z.object({
19569
19642
  });
19570
19643
  var DeviceStepConfigSchema = zod.z.object({
19571
19644
  modelId: zod.z.string().optional(),
19572
- settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
19645
+ settings: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
19646
+ /**
19647
+ * Step-tree device jump (same-node, phase 1) — OPTIONAL manual override.
19648
+ * When set, this step runs on the named enabled device of the SAME node
19649
+ * (`<backend>:<device>`) instead of the camera's elected device, bypassing
19650
+ * the runtime AUTO-jump. The orchestrator rejects a `jumpDeviceKey` pointing
19651
+ * at a disabled/absent device on that node at save time. Absent ⇒ the runner
19652
+ * auto-jumps only when the effective device's format cannot run the step.
19653
+ */
19654
+ jumpDeviceKey: zod.z.string().optional()
19573
19655
  });
19574
19656
  var AgentPipelineSettingsSchema = zod.z.object({
19575
19657
  maxCameras: zod.z.number().int().nonnegative().nullable().default(null),
@@ -32070,6 +32152,8 @@ exports.MotionZonePatchSchema = MotionZonePatchSchema;
32070
32152
  exports.MotionZoneRegionSchema = MotionZoneRegionSchema;
32071
32153
  exports.MotionZoneStatusSchema = MotionZoneStatusSchema;
32072
32154
  exports.MqttBrokerStatusSchema = StatusSchema;
32155
+ exports.NativeCropBboxSchema = NativeCropBboxSchema;
32156
+ exports.NativeCropResultSchema = NativeCropResultSchema;
32073
32157
  exports.NativeDetectionSchema = NativeDetectionSchema;
32074
32158
  exports.NativeObjectClassEnum = NativeObjectClassEnum;
32075
32159
  exports.NativeObjectDetectionRuntimeStateSchema = NativeObjectDetectionRuntimeStateSchema;
@@ -32186,6 +32270,7 @@ exports.RtspRestreamEntrySchema = RtspRestreamEntrySchema;
32186
32270
  exports.RunnerCameraConfigSchema = RunnerCameraConfigSchema;
32187
32271
  exports.RunnerCameraDeviceUIFields = RunnerCameraDeviceUIFields;
32188
32272
  exports.RunnerFrameSourceSchema = RunnerFrameSourceSchema;
32273
+ exports.RunnerInferenceDeviceSchema = RunnerInferenceDeviceSchema;
32189
32274
  exports.RunnerLocalLoadSchema = RunnerLocalLoadSchema;
32190
32275
  exports.RunnerLocalMetricsSchema = RunnerLocalMetricsSchema;
32191
32276
  exports.SCOPE_PRESETS = SCOPE_PRESETS;
package/dist/index.mjs CHANGED
@@ -7997,7 +7997,8 @@ var PipelineStepInputSchema = z.lazy(() => z.object({
7997
7997
  modelId: z.string().optional(),
7998
7998
  enabled: z.boolean().default(true),
7999
7999
  children: z.array(PipelineStepInputSchema).optional(),
8000
- settings: z.record(z.string(), z.unknown()).optional()
8000
+ settings: z.record(z.string(), z.unknown()).optional(),
8001
+ jumpDeviceKey: z.string().optional()
8001
8002
  }));
8002
8003
  var ModelSubstitutionSchema = z.object({
8003
8004
  addonId: z.string(),
@@ -8492,10 +8493,40 @@ var NativeCropBboxSchema = z.object({
8492
8493
  });
8493
8494
  /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
8494
8495
  var NativeCropResultSchema = z.object({
8495
- /** Packed rgb (24-bit) pixels of the crop. */
8496
- bytes: z.instanceof(Uint8Array),
8496
+ /**
8497
+ * Packed rgb (24-bit) pixels of the crop. Present on the DEFAULT (raw) path —
8498
+ * same-node (in-process / UDS) callers get zero-copy RGB and encode locally.
8499
+ * OMITTED when the caller requested `encodeJpeg` (the cross-node compressed
8500
+ * path below), where shipping raw RGB is both an invariant violation and, for
8501
+ * a native full frame (~26 MB at 4K), larger than Moleculer's 10 MB
8502
+ * `maxPacketSize` → the packet is dropped and the call 60s-times-out. That is
8503
+ * the cross-node native-media miss: `bytes` is replaced by `jpeg`.
8504
+ */
8505
+ bytes: z.instanceof(Uint8Array).optional(),
8506
+ /**
8507
+ * Base64 JPEG of the crop — the COMPRESSED cross-node payload. The OWNING node
8508
+ * (which holds the native surface) encodes it in-process, so a native 4K frame
8509
+ * ships as ~0.5–2 MB (well under `maxPacketSize`) and NO raw pixels ever cross
8510
+ * a process boundary (CLAUDE.md invariant #21). Present ONLY when the request
8511
+ * set `encodeJpeg: true`; `bytes` is then absent.
8512
+ */
8513
+ jpeg: z.string().optional(),
8497
8514
  width: z.number().int().positive(),
8498
- height: z.number().int().positive()
8515
+ height: z.number().int().positive(),
8516
+ /**
8517
+ * Which source served this crop, so a quality-sensitive consumer (the native
8518
+ * `keyFrame`) can reject a degraded fallback:
8519
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
8520
+ * quality path).
8521
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
8522
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
8523
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
8524
+ *
8525
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
8526
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
8527
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
8528
+ */
8529
+ tier: z.enum(["native", "ram-fullframe"]).optional()
8499
8530
  });
8500
8531
  /** Parent detection context passed to `runDetailSubtree` — the crop's
8501
8532
  * originating detection, in FRAME-space coordinates. Reuses
@@ -8625,6 +8656,20 @@ var RunnerFrameSourceSchema = z.discriminatedUnion("kind", [z.object({ kind: z.l
8625
8656
  hubHostnameOverride: z.string().optional()
8626
8657
  })]).describe("Per-camera frame-source mode for the runner (P2c)");
8627
8658
  /**
8659
+ * One ENABLED inference device on the runner's node, as the step-tree
8660
+ * device-jump resolver sees it (phase 1). The orchestrator populates this
8661
+ * roster on the attach payload whenever the camera is elected onto a specific
8662
+ * `deviceKey` and the node has ≥2 enabled devices — it is the candidate set the
8663
+ * runner auto-jumps an enrichment step to when the elected device's format
8664
+ * cannot run that step's model. `weight`/`maxSessions` mirror the balancer's
8665
+ * per-device knobs so the auto choice is weighted-least-loaded.
8666
+ */
8667
+ var RunnerInferenceDeviceSchema = z.object({
8668
+ deviceKey: z.string(),
8669
+ weight: z.number().positive().default(1),
8670
+ maxSessions: z.number().int().positive().nullable().default(null)
8671
+ });
8672
+ /**
8628
8673
  * Camera assignment payload sent by `addon-pipeline-orchestrator` to a
8629
8674
  * specific runner instance via `attachCamera`. Carries everything the
8630
8675
  * runner needs to subscribe to the local broker and execute inference.
@@ -8742,7 +8787,16 @@ var RunnerCameraConfigSchema = z.object({
8742
8787
  * omitted ⇒ the runner's default device. The engine itself stays node-local —
8743
8788
  * this only selects WHICH device pool of that node runs the session.
8744
8789
  */
8745
- deviceKey: z.string().optional()
8790
+ deviceKey: z.string().optional(),
8791
+ /**
8792
+ * Step-tree device-jump roster (phase 1): the node's ENABLED inference
8793
+ * devices, populated by the orchestrator ONLY when `deviceKey` is set and the
8794
+ * node has ≥2 enabled devices. The runner uses it to AUTO-jump an enrichment
8795
+ * step whose model has no build for the elected device's format onto another
8796
+ * enabled device of the SAME node (weighted-least-loaded). Absent/single-entry
8797
+ * ⇒ no jump possible; the step runs on `deviceKey`.
8798
+ */
8799
+ inferenceDevices: z.array(RunnerInferenceDeviceSchema).readonly().optional()
8746
8800
  });
8747
8801
  /**
8748
8802
  * Per-device settings UI fields the runner cap owns. Co-located with
@@ -8973,15 +9027,31 @@ var pipelineRunnerCapability = {
8973
9027
  * `FrameHandle` that rode an inference-result event and a normalized `bbox`,
8974
9028
  * the runner asks the decode worker still holding that frame's NATIVE
8975
9029
  * surface to GPU/CPU-crop ONLY the ROI at native res and download just the
8976
- * crop. Returns `null` on a miss (handle not registered, or the worker's
8977
- * tiny native-retention ring already evicted the frame) — the caller falls
8978
- * back to a detection-frame crop. Routed to the frame's owning node by
8979
- * `handle.nodeId`; NEVER ships a full native frame.
9030
+ * crop. Routed to the frame's owning node by `handle.nodeId`; NEVER ships a
9031
+ * full native frame.
9032
+ *
9033
+ * Miss behaviour differs by request shape (see `NativeCropResultSchema.tier`):
9034
+ * - an ROI (subject-crop) miss returns `null` — the caller reports the miss
9035
+ * and retries; it is NEVER handed a ≤640 crop masquerading as native.
9036
+ * - a FULL-FRAME miss falls back to the ≤640 RAM `RetainedFrameStore`, tagged
9037
+ * `tier: 'ram-fullframe'` (honest lower-res for the blank-frame guard /
9038
+ * 640-snapshot resolve). A native hit is tagged `tier: 'native'`.
8980
9039
  */
8981
9040
  getNativeCrop: method(z.object({
8982
9041
  handle: FrameHandleSchema,
8983
9042
  bbox: NativeCropBboxSchema,
8984
- maxWidth: z.number().int().positive().optional()
9043
+ maxWidth: z.number().int().positive().optional(),
9044
+ /**
9045
+ * When `true`, the runner encodes the resolved crop to JPEG ON THE
9046
+ * OWNING NODE and returns it in `jpeg` (base64) INSTEAD of raw `bytes`.
9047
+ * Callers set this for CROSS-NODE fetches (`handle.nodeId` is a remote
9048
+ * agent) so the compressed payload fits Moleculer's `maxPacketSize` and
9049
+ * no raw pixels cross the process boundary. Same-node callers omit it
9050
+ * and keep the zero-copy raw `bytes` path. Additive + optional: a
9051
+ * pre-encode runner (version skew) ignores it and returns `bytes`, so
9052
+ * the caller falls back to encoding locally.
9053
+ */
9054
+ encodeJpeg: z.boolean().optional()
8985
9055
  }), NativeCropResultSchema.nullable()),
8986
9056
  /**
8987
9057
  * Two-plane design: run the DETAIL subtree (crop children —
@@ -16641,7 +16711,8 @@ var LinkedDeviceSchema = z.object({
16641
16711
  deviceId: z.number(),
16642
16712
  name: z.string(),
16643
16713
  location: z.string().nullable(),
16644
- features: z.array(z.string())
16714
+ features: z.array(z.string()),
16715
+ producesTrackedEvents: z.boolean().optional()
16645
16716
  });
16646
16717
  var SavedDeviceRowSchema = z.object({
16647
16718
  /** Numeric id reserved at allocateDeviceId time. */
@@ -18913,6 +18984,7 @@ var TrackSchema = z.object({
18913
18984
  deviceId: z.number(),
18914
18985
  className: z.string(),
18915
18986
  label: z.string().optional(),
18987
+ producingDeviceName: z.string().optional(),
18916
18988
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
18917
18989
  source: TrackSourceSchema.optional(),
18918
18990
  firstSeen: z.number(),
@@ -19050,7 +19122,8 @@ var MediaFileKindEnum = z.enum([
19050
19122
  "fullFrameBoxed",
19051
19123
  "faceCrop",
19052
19124
  "plateCrop",
19053
- "keyFrame"
19125
+ "keyFrame",
19126
+ "keyFrameSmall"
19054
19127
  ]);
19055
19128
  var MediaFileSchema = z.object({
19056
19129
  key: z.string(),
@@ -19568,7 +19641,16 @@ var PipelineTemplateSchema = z.object({
19568
19641
  });
19569
19642
  var DeviceStepConfigSchema = z.object({
19570
19643
  modelId: z.string().optional(),
19571
- settings: z.record(z.string(), z.unknown()).optional()
19644
+ settings: z.record(z.string(), z.unknown()).optional(),
19645
+ /**
19646
+ * Step-tree device jump (same-node, phase 1) — OPTIONAL manual override.
19647
+ * When set, this step runs on the named enabled device of the SAME node
19648
+ * (`<backend>:<device>`) instead of the camera's elected device, bypassing
19649
+ * the runtime AUTO-jump. The orchestrator rejects a `jumpDeviceKey` pointing
19650
+ * at a disabled/absent device on that node at save time. Absent ⇒ the runner
19651
+ * auto-jumps only when the effective device's format cannot run the step.
19652
+ */
19653
+ jumpDeviceKey: z.string().optional()
19572
19654
  });
19573
19655
  var AgentPipelineSettingsSchema = z.object({
19574
19656
  maxCameras: z.number().int().nonnegative().nullable().default(null),
@@ -31710,4 +31792,4 @@ function enumerateInferenceDevices(hw) {
31710
31792
  return out;
31711
31793
  }
31712
31794
  //#endregion
31713
- export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationHistoryEntrySchema, NotificationRuleSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advancedNotifierCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
31795
+ export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NativeCropBboxSchema, NativeCropResultSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationHistoryEntrySchema, NotificationRuleSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advancedNotifierCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
@@ -29,6 +29,14 @@ export interface RunnerCameraConfig {
29
29
  * uses its single default pool. Mirrors `RunnerCameraConfigSchema.deviceKey`.
30
30
  */
31
31
  readonly deviceKey?: string;
32
+ /**
33
+ * Step-tree device-jump roster (phase 1) — the node's ENABLED inference
34
+ * devices. Populated by the orchestrator ONLY when `deviceKey` is set and the
35
+ * node has ≥2 enabled devices; the runner auto-jumps an enrichment step whose
36
+ * model has no build for the elected device's format onto another enabled
37
+ * device here. Mirrors `RunnerCameraConfigSchema.inferenceDevices`.
38
+ */
39
+ readonly inferenceDevices?: readonly import('../capabilities/pipeline-runner.cap.js').RunnerInferenceDevice[];
32
40
  /** Ordered tree of video steps — Phase 1 optional, runner ignores until Phase 3. */
33
41
  readonly steps?: readonly PipelineStepInputOutput[];
34
42
  /**
@@ -45,6 +45,14 @@ export interface AgentAddonConfig {
45
45
  export interface DeviceStepConfig {
46
46
  readonly modelId?: string;
47
47
  readonly settings?: Readonly<Record<string, unknown>>;
48
+ /**
49
+ * Step-tree device jump (same-node, phase 1) — OPTIONAL operator override.
50
+ * The `<backend>:<device>` key of another ENABLED device on the SAME node
51
+ * this step should run on, bypassing the runtime AUTO-jump. Validated at save
52
+ * (a disabled/absent target is rejected). Absent ⇒ the runner auto-jumps only
53
+ * when the effective device's format cannot run the step's model.
54
+ */
55
+ readonly jumpDeviceKey?: string;
48
56
  }
49
57
  /**
50
58
  * Per-(camera,node,device,step) override patch over the per-(node,device)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",