@camstack/types 1.1.31 → 1.1.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/addon.js +1 -1
  2. package/dist/addon.mjs +1 -1
  3. package/dist/capabilities/addons.cap.d.ts +3 -1
  4. package/dist/capabilities/alerts.cap.d.ts +5 -5
  5. package/dist/capabilities/camera-streams.cap.d.ts +5 -5
  6. package/dist/capabilities/cap-router-predicates.d.ts +32 -0
  7. package/dist/capabilities/capability-definition.d.ts +18 -13
  8. package/dist/capabilities/consumables.cap.d.ts +1 -1
  9. package/dist/capabilities/custom-model-registry.cap.d.ts +36 -0
  10. package/dist/capabilities/index.d.ts +8 -15
  11. package/dist/capabilities/integrations.cap.d.ts +1 -1
  12. package/dist/capabilities/model-convert.cap.d.ts +21 -3
  13. package/dist/capabilities/model-distributor.cap.d.ts +36 -0
  14. package/dist/capabilities/network-quality.cap.d.ts +1 -1
  15. package/dist/capabilities/nodes.cap.d.ts +1 -1
  16. package/dist/capabilities/pipeline-executor.cap.d.ts +135 -8
  17. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +87 -44
  18. package/dist/capabilities/pipeline-runner.cap.d.ts +10 -69
  19. package/dist/capabilities/snapshot.cap.d.ts +3 -3
  20. package/dist/capabilities/stream-broker.cap.d.ts +9 -1
  21. package/dist/capabilities/system.cap.d.ts +1 -1
  22. package/dist/capabilities/toast.cap.d.ts +1 -1
  23. package/dist/capabilities/webrtc-session.cap.d.ts +15 -1
  24. package/dist/encode-profile.d.ts +2 -2
  25. package/dist/enums/event-category.d.ts +12 -0
  26. package/dist/generated/addon-api.d.ts +746 -636
  27. package/dist/generated/capability-router-map.d.ts +4 -16
  28. package/dist/generated/device-proxy.d.ts +0 -2
  29. package/dist/generated/method-access-map.d.ts +1 -1
  30. package/dist/generated/system-proxy.d.ts +2 -2
  31. package/dist/index.d.ts +1 -3
  32. package/dist/index.js +425 -349
  33. package/dist/index.mjs +412 -343
  34. package/dist/interfaces/capability.d.ts +0 -7
  35. package/dist/interfaces/event-bus.d.ts +9 -0
  36. package/dist/interfaces/pipeline-executor-capability.d.ts +14 -1
  37. package/dist/interfaces/pipeline-runner-capability.d.ts +11 -11
  38. package/dist/interfaces/recording-config.d.ts +2 -2
  39. package/dist/{sleep-CZDdRBua.mjs → sleep-Cc14_yxc.mjs} +12 -4
  40. package/dist/{sleep-Dirr8nGw.js → sleep-DmP-uxoe.js} +12 -4
  41. package/dist/types/agent-pipeline-settings.d.ts +18 -6
  42. package/dist/types/camera-pipeline.d.ts +17 -3
  43. package/dist/types/model-variant-groups.d.ts +90 -0
  44. package/dist/types/models.d.ts +60 -3
  45. package/package.json +1 -1
  46. package/dist/capabilities/restreamer.cap.d.ts +0 -54
  47. package/dist/capabilities/snapshot-provider.cap.d.ts +0 -43
  48. package/dist/capabilities/streaming-engine.cap.d.ts +0 -61
  49. package/dist/capabilities/webrtc.cap.d.ts +0 -75
  50. package/dist/interfaces/restreamer.d.ts +0 -23
  51. package/dist/interfaces/streaming.d.ts +0 -28
  52. package/dist/interfaces/webrtc-provider.d.ts +0 -34
@@ -56,12 +56,6 @@ export type PipelineDefaultStepOutput = {
56
56
  readonly enabled: boolean;
57
57
  readonly modelId: string;
58
58
  readonly children: readonly PipelineDefaultStepOutput[];
59
- readonly engine?: {
60
- readonly runtime: 'node' | 'python';
61
- readonly backend: string;
62
- readonly format: 'onnx' | 'coreml' | 'openvino' | 'tflite' | 'pt';
63
- readonly device?: string;
64
- };
65
59
  readonly group?: string;
66
60
  readonly settings?: Readonly<Record<string, unknown>>;
67
61
  };
@@ -103,6 +97,19 @@ declare const PipelineModelOptionSchema: z.ZodObject<{
103
97
  downloaded: z.ZodBoolean;
104
98
  sizeMB: z.ZodNumber;
105
99
  }, z.core.$strip>>;
100
+ group: z.ZodOptional<z.ZodObject<{
101
+ family: z.ZodString;
102
+ tier: z.ZodString;
103
+ precision: z.ZodOptional<z.ZodEnum<{
104
+ fp32: "fp32";
105
+ int8: "int8";
106
+ }>>;
107
+ optimization: z.ZodOptional<z.ZodEnum<{
108
+ standard: "standard";
109
+ fast: "fast";
110
+ }>>;
111
+ }, z.core.$strip>>;
112
+ legacy: z.ZodOptional<z.ZodBoolean>;
106
113
  }, z.core.$strip>;
107
114
  declare const PipelineAddonSchemaSchema: z.ZodObject<{
108
115
  id: z.ZodString;
@@ -130,6 +137,19 @@ declare const PipelineAddonSchemaSchema: z.ZodObject<{
130
137
  downloaded: z.ZodBoolean;
131
138
  sizeMB: z.ZodNumber;
132
139
  }, z.core.$strip>>;
140
+ group: z.ZodOptional<z.ZodObject<{
141
+ family: z.ZodString;
142
+ tier: z.ZodString;
143
+ precision: z.ZodOptional<z.ZodEnum<{
144
+ fp32: "fp32";
145
+ int8: "int8";
146
+ }>>;
147
+ optimization: z.ZodOptional<z.ZodEnum<{
148
+ standard: "standard";
149
+ fast: "fast";
150
+ }>>;
151
+ }, z.core.$strip>>;
152
+ legacy: z.ZodOptional<z.ZodBoolean>;
133
153
  }, z.core.$strip>>>;
134
154
  defaultModelId: z.ZodString;
135
155
  defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -181,6 +201,19 @@ declare const PipelineSlotSchemaSchema: z.ZodObject<{
181
201
  downloaded: z.ZodBoolean;
182
202
  sizeMB: z.ZodNumber;
183
203
  }, z.core.$strip>>;
204
+ group: z.ZodOptional<z.ZodObject<{
205
+ family: z.ZodString;
206
+ tier: z.ZodString;
207
+ precision: z.ZodOptional<z.ZodEnum<{
208
+ fp32: "fp32";
209
+ int8: "int8";
210
+ }>>;
211
+ optimization: z.ZodOptional<z.ZodEnum<{
212
+ standard: "standard";
213
+ fast: "fast";
214
+ }>>;
215
+ }, z.core.$strip>>;
216
+ legacy: z.ZodOptional<z.ZodBoolean>;
184
217
  }, z.core.$strip>>>;
185
218
  defaultModelId: z.ZodString;
186
219
  defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -272,6 +305,19 @@ declare const PipelineSchemaSchema: z.ZodObject<{
272
305
  downloaded: z.ZodBoolean;
273
306
  sizeMB: z.ZodNumber;
274
307
  }, z.core.$strip>>;
308
+ group: z.ZodOptional<z.ZodObject<{
309
+ family: z.ZodString;
310
+ tier: z.ZodString;
311
+ precision: z.ZodOptional<z.ZodEnum<{
312
+ fp32: "fp32";
313
+ int8: "int8";
314
+ }>>;
315
+ optimization: z.ZodOptional<z.ZodEnum<{
316
+ standard: "standard";
317
+ fast: "fast";
318
+ }>>;
319
+ }, z.core.$strip>>;
320
+ legacy: z.ZodOptional<z.ZodBoolean>;
275
321
  }, z.core.$strip>>>;
276
322
  defaultModelId: z.ZodString;
277
323
  defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -314,16 +360,51 @@ declare const EngineProvisioningSchema: z.ZodObject<{
314
360
  progress: z.ZodOptional<z.ZodNumber>;
315
361
  error: z.ZodOptional<z.ZodString>;
316
362
  nextRetryAt: z.ZodOptional<z.ZodNumber>;
363
+ configIssues: z.ZodOptional<z.ZodArray<z.ZodString>>;
317
364
  }, z.core.$strip>;
318
365
  export type EngineProvisioning = z.infer<typeof EngineProvisioningSchema>;
319
366
  export type PipelineStepInputOutput = {
320
367
  readonly addonId: string;
321
- readonly modelId: string;
368
+ readonly modelId?: string;
322
369
  readonly enabled: boolean;
323
370
  readonly children?: readonly PipelineStepInputOutput[];
324
371
  readonly settings?: Readonly<Record<string, unknown>>;
325
372
  };
326
373
  export declare const PipelineStepInputSchema: z.ZodType<PipelineStepInputOutput>;
374
+ declare const ModelSubstitutionSchema: z.ZodObject<{
375
+ addonId: z.ZodString;
376
+ chosen: z.ZodString;
377
+ running: z.ZodString;
378
+ format: z.ZodString;
379
+ }, z.core.$strip>;
380
+ declare const PipelineValidationIssueSchema: z.ZodObject<{
381
+ addonId: z.ZodString;
382
+ kind: z.ZodEnum<{
383
+ "unknown-addon": "unknown-addon";
384
+ "no-format-build": "no-format-build";
385
+ }>;
386
+ detail: z.ZodString;
387
+ }, z.core.$strip>;
388
+ declare const PipelineValidationResultSchema: z.ZodObject<{
389
+ ok: z.ZodBoolean;
390
+ issues: z.ZodReadonly<z.ZodArray<z.ZodObject<{
391
+ addonId: z.ZodString;
392
+ kind: z.ZodEnum<{
393
+ "unknown-addon": "unknown-addon";
394
+ "no-format-build": "no-format-build";
395
+ }>;
396
+ detail: z.ZodString;
397
+ }, z.core.$strip>>>;
398
+ substitutions: z.ZodReadonly<z.ZodArray<z.ZodObject<{
399
+ addonId: z.ZodString;
400
+ chosen: z.ZodString;
401
+ running: z.ZodString;
402
+ format: z.ZodString;
403
+ }, z.core.$strip>>>;
404
+ format: z.ZodString;
405
+ }, z.core.$strip>;
406
+ export type PipelineValidationResult = z.infer<typeof PipelineValidationResultSchema>;
407
+ export type PipelineValidationIssue = z.infer<typeof PipelineValidationIssueSchema>;
327
408
  export declare const PipelineRunResultBridge: z.ZodCustom<FrameResult, FrameResult>;
328
409
  /**
329
410
  * Pipeline executor — detection engine + configuration + inference API.
@@ -439,6 +520,7 @@ export declare const pipelineExecutorCapability: {
439
520
  progress: z.ZodOptional<z.ZodNumber>;
440
521
  error: z.ZodOptional<z.ZodString>;
441
522
  nextRetryAt: z.ZodOptional<z.ZodNumber>;
523
+ configIssues: z.ZodOptional<z.ZodArray<z.ZodString>>;
442
524
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
443
525
  readonly getVideoPipelineSteps: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodRecord<z.ZodString, z.ZodObject<{
444
526
  modelId: z.ZodString;
@@ -534,6 +616,19 @@ export declare const pipelineExecutorCapability: {
534
616
  downloaded: z.ZodBoolean;
535
617
  sizeMB: z.ZodNumber;
536
618
  }, z.core.$strip>>;
619
+ group: z.ZodOptional<z.ZodObject<{
620
+ family: z.ZodString;
621
+ tier: z.ZodString;
622
+ precision: z.ZodOptional<z.ZodEnum<{
623
+ fp32: "fp32";
624
+ int8: "int8";
625
+ }>>;
626
+ optimization: z.ZodOptional<z.ZodEnum<{
627
+ standard: "standard";
628
+ fast: "fast";
629
+ }>>;
630
+ }, z.core.$strip>>;
631
+ legacy: z.ZodOptional<z.ZodBoolean>;
537
632
  }, z.core.$strip>>>;
538
633
  defaultModelId: z.ZodString;
539
634
  defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -547,6 +642,38 @@ export declare const pipelineExecutorCapability: {
547
642
  readonly getGlobalSteps: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodType<PipelineDefaultStepOutput, unknown, z.core.$ZodTypeInternals<PipelineDefaultStepOutput, unknown>>>>>, import("./capability-definition.js").CapabilityMethodKind>;
548
643
  readonly getGlobalPipelineConfig: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodCustom<PipelineConfig | null, PipelineConfig | null>, import("./capability-definition.js").CapabilityMethodKind>;
549
644
  readonly getOrchestratorConfigSchema: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodCustom<ConfigUISchema, ConfigUISchema>, import("./capability-definition.js").CapabilityMethodKind>;
645
+ /**
646
+ * Gate B (pre-init config-correctness gate). PURE COMPUTE against this
647
+ * node's `currentEngine.format` — resolves `steps` the same way the
648
+ * runtime dispatch path would, and reports what WOULD happen without
649
+ * touching any node-global state. Called by the orchestrator at attach
650
+ * time (`attachOn`), node-pinned to the TARGET node, so config problems
651
+ * surface BEFORE `pipelineRunner.attachCamera` rather than at the first
652
+ * per-frame resolve. `ok` is false iff `issues` is non-empty (both
653
+ * `unknown-addon` and `no-format-build` are HARD issues); `substitutions`
654
+ * is informational (a degraded-but-loadable model swap) and never
655
+ * affects `ok`. Never throws.
656
+ */
657
+ readonly validatePipeline: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
658
+ steps: z.ZodArray<z.ZodType<PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<PipelineStepInputOutput, unknown>>>;
659
+ }, z.core.$strip>, z.ZodObject<{
660
+ ok: z.ZodBoolean;
661
+ issues: z.ZodReadonly<z.ZodArray<z.ZodObject<{
662
+ addonId: z.ZodString;
663
+ kind: z.ZodEnum<{
664
+ "unknown-addon": "unknown-addon";
665
+ "no-format-build": "no-format-build";
666
+ }>;
667
+ detail: z.ZodString;
668
+ }, z.core.$strip>>>;
669
+ substitutions: z.ZodReadonly<z.ZodArray<z.ZodObject<{
670
+ addonId: z.ZodString;
671
+ chosen: z.ZodString;
672
+ running: z.ZodString;
673
+ format: z.ZodString;
674
+ }, z.core.$strip>>>;
675
+ format: z.ZodString;
676
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
550
677
  readonly listTemplates: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
551
678
  id: z.ZodString;
552
679
  name: z.ZodString;
@@ -992,4 +1119,4 @@ export declare const pipelineExecutorCapability: {
992
1119
  };
993
1120
  };
994
1121
  export type IPipelineExecutorProvider = InferProvider<typeof pipelineExecutorCapability>;
995
- export { PipelineEngineChoiceSchema, PipelineDefaultStepSchema, DetectorOutputSchema, PipelineSchemaSchema, PipelineAddonSchemaSchema, PipelineSlotSchemaSchema, PipelineModelOptionSchema, AvailableEngineSchema, PipelineTemplateSchema, PipelineTemplateStepSchema, EngineDeviceInfoSchema, EngineProvisioningSchema, };
1122
+ export { PipelineEngineChoiceSchema, PipelineDefaultStepSchema, DetectorOutputSchema, PipelineSchemaSchema, PipelineAddonSchemaSchema, PipelineSlotSchemaSchema, PipelineModelOptionSchema, AvailableEngineSchema, PipelineTemplateSchema, PipelineTemplateStepSchema, EngineDeviceInfoSchema, EngineProvisioningSchema, ModelSubstitutionSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, };
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { type InferProvider } from './capability-definition.js';
3
3
  declare const CameraPipelineConfigSchema: z.ZodObject<{
4
- engine: z.ZodObject<{
4
+ engine: z.ZodOptional<z.ZodObject<{
5
5
  runtime: z.ZodEnum<{
6
6
  node: "node";
7
7
  python: "python";
@@ -15,10 +15,10 @@ declare const CameraPipelineConfigSchema: z.ZodObject<{
15
15
  pt: "pt";
16
16
  }>;
17
17
  device: z.ZodOptional<z.ZodString>;
18
- }, z.core.$strip>;
18
+ }, z.core.$strip>>;
19
19
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
20
20
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
21
- engine: z.ZodObject<{
21
+ engine: z.ZodOptional<z.ZodObject<{
22
22
  runtime: z.ZodEnum<{
23
23
  node: "node";
24
24
  python: "python";
@@ -32,8 +32,8 @@ declare const CameraPipelineConfigSchema: z.ZodObject<{
32
32
  pt: "pt";
33
33
  }>;
34
34
  device: z.ZodOptional<z.ZodString>;
35
- }, z.core.$strip>;
36
- modelId: z.ZodString;
35
+ }, z.core.$strip>>;
36
+ modelId: z.ZodOptional<z.ZodString>;
37
37
  enabled: z.ZodBoolean;
38
38
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
39
39
  }, z.core.$strip>>>;
@@ -43,7 +43,7 @@ declare const PipelineTemplateSchema: z.ZodObject<{
43
43
  name: z.ZodString;
44
44
  description: z.ZodOptional<z.ZodString>;
45
45
  config: z.ZodObject<{
46
- engine: z.ZodObject<{
46
+ engine: z.ZodOptional<z.ZodObject<{
47
47
  runtime: z.ZodEnum<{
48
48
  node: "node";
49
49
  python: "python";
@@ -57,10 +57,10 @@ declare const PipelineTemplateSchema: z.ZodObject<{
57
57
  pt: "pt";
58
58
  }>;
59
59
  device: z.ZodOptional<z.ZodString>;
60
- }, z.core.$strip>;
60
+ }, z.core.$strip>>;
61
61
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
62
62
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
63
- engine: z.ZodObject<{
63
+ engine: z.ZodOptional<z.ZodObject<{
64
64
  runtime: z.ZodEnum<{
65
65
  node: "node";
66
66
  python: "python";
@@ -74,8 +74,8 @@ declare const PipelineTemplateSchema: z.ZodObject<{
74
74
  pt: "pt";
75
75
  }>;
76
76
  device: z.ZodOptional<z.ZodString>;
77
- }, z.core.$strip>;
78
- modelId: z.ZodString;
77
+ }, z.core.$strip>>;
78
+ modelId: z.ZodOptional<z.ZodString>;
79
79
  enabled: z.ZodBoolean;
80
80
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
81
81
  }, z.core.$strip>>>;
@@ -174,6 +174,15 @@ declare const GlobalMetricsSchema: z.ZodObject<{
174
174
  * capability providers.
175
175
  */
176
176
  declare const CapabilityBindingsSchema: z.ZodRecord<z.ZodString, z.ZodString>;
177
+ /**
178
+ * The cluster's single camera-source owner (`clusterRoles.ingestNode`) plus
179
+ * its LAN-reachable host, if one is registered. See `getIngestOwner`.
180
+ */
181
+ declare const IngestOwnerSchema: z.ZodObject<{
182
+ ownerNodeId: z.ZodString;
183
+ reachableHost: z.ZodOptional<z.ZodString>;
184
+ configIssue: z.ZodOptional<z.ZodString>;
185
+ }, z.core.$strip>;
177
186
  /** Stream entry surfaced from the stream-catalog for one device. */
178
187
  declare const CameraSourceStreamSchema: z.ZodObject<{
179
188
  camStreamId: z.ZodString;
@@ -199,6 +208,7 @@ declare const CameraAssignmentStatusSchema: z.ZodObject<{
199
208
  detectionNodeId: z.ZodNullable<z.ZodString>;
200
209
  decoderNodeId: z.ZodNullable<z.ZodString>;
201
210
  audioNodeId: z.ZodNullable<z.ZodString>;
211
+ sourceNodeId: z.ZodNullable<z.ZodString>;
202
212
  pinned: z.ZodObject<{
203
213
  detection: z.ZodBoolean;
204
214
  decoder: z.ZodBoolean;
@@ -348,6 +358,7 @@ declare const CameraStatusSchema: z.ZodObject<{
348
358
  detectionNodeId: z.ZodNullable<z.ZodString>;
349
359
  decoderNodeId: z.ZodNullable<z.ZodString>;
350
360
  audioNodeId: z.ZodNullable<z.ZodString>;
361
+ sourceNodeId: z.ZodNullable<z.ZodString>;
351
362
  pinned: z.ZodObject<{
352
363
  detection: z.ZodBoolean;
353
364
  decoder: z.ZodBoolean;
@@ -596,6 +607,18 @@ export declare const pipelineOrchestratorCapability: {
596
607
  }, z.core.$strip>, z.ZodObject<{
597
608
  success: z.ZodLiteral<true>;
598
609
  }, z.core.$strip>, "mutation">;
610
+ /**
611
+ * The cluster's single camera-source owner — resolved UNCONDITIONALLY
612
+ * from `clusterRoles.ingestNode` (NOT the detection-decode
613
+ * `remoteSourcingNodes` knob). Consumers (recorder/snapshot/audio) pin
614
+ * their broker calls to `ownerNodeId` and dial `reachableHost` when
615
+ * present. Defaults to `{ ownerNodeId: 'hub' }`.
616
+ */
617
+ readonly getIngestOwner: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
618
+ ownerNodeId: z.ZodString;
619
+ reachableHost: z.ZodOptional<z.ZodString>;
620
+ configIssue: z.ZodOptional<z.ZodString>;
621
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
599
622
  /** Pin a device's decoder to a specific node. */
600
623
  readonly assignDecoder: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
601
624
  deviceId: z.ZodNumber;
@@ -683,7 +706,7 @@ export declare const pipelineOrchestratorCapability: {
683
706
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
684
707
  addonDefaults: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodObject<{
685
708
  enabled: z.ZodBoolean;
686
- modelId: z.ZodString;
709
+ modelId: z.ZodOptional<z.ZodString>;
687
710
  settings: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
688
711
  }, z.core.$strip>>>;
689
712
  maxCameras: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
@@ -692,6 +715,7 @@ export declare const pipelineOrchestratorCapability: {
692
715
  decode: z.ZodOptional<z.ZodBoolean>;
693
716
  audio: z.ZodOptional<z.ZodBoolean>;
694
717
  ingest: z.ZodOptional<z.ZodBoolean>;
718
+ reachableHost: z.ZodOptional<z.ZodString>;
695
719
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
696
720
  /** Enumerate every agent's settings (hub + remote runners). */
697
721
  readonly listAgentSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -699,7 +723,7 @@ export declare const pipelineOrchestratorCapability: {
699
723
  settings: z.ZodObject<{
700
724
  addonDefaults: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodObject<{
701
725
  enabled: z.ZodBoolean;
702
- modelId: z.ZodString;
726
+ modelId: z.ZodOptional<z.ZodString>;
703
727
  settings: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
704
728
  }, z.core.$strip>>>;
705
729
  maxCameras: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
@@ -708,6 +732,7 @@ export declare const pipelineOrchestratorCapability: {
708
732
  decode: z.ZodOptional<z.ZodBoolean>;
709
733
  audio: z.ZodOptional<z.ZodBoolean>;
710
734
  ingest: z.ZodOptional<z.ZodBoolean>;
735
+ reachableHost: z.ZodOptional<z.ZodString>;
711
736
  }, z.core.$strip>;
712
737
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
713
738
  /** Bulk-replace ALL addon configs on one agent. Used by the agent-level PipelineEditor which emits the full map per edit. Merges on top of existing entries — omitted addonIds are left alone. */
@@ -715,7 +740,7 @@ export declare const pipelineOrchestratorCapability: {
715
740
  agentNodeId: z.ZodString;
716
741
  defaults: z.ZodRecord<z.ZodString, z.ZodObject<{
717
742
  enabled: z.ZodBoolean;
718
- modelId: z.ZodString;
743
+ modelId: z.ZodOptional<z.ZodString>;
719
744
  settings: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
720
745
  }, z.core.$strip>>;
721
746
  }, z.core.$strip>, z.ZodObject<{
@@ -785,6 +810,21 @@ export declare const pipelineOrchestratorCapability: {
785
810
  }, z.core.$strip>, z.ZodObject<{
786
811
  success: z.ZodLiteral<true>;
787
812
  }, z.core.$strip>, "mutation">;
813
+ /**
814
+ * Set (or clear) the operator override for the LAN host a cross-node
815
+ * decoder dials to reach this node's restream. Pass a non-empty string to
816
+ * override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
817
+ * default); pass `null` or an empty string to clear it and revert to
818
+ * auto-detect. Applied on the next dispatch cycle — takes effect for new
819
+ * cross-node attaches; existing attaches keep their current host until
820
+ * re-dispatched.
821
+ */
822
+ readonly setAgentReachableHost: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
823
+ agentNodeId: z.ZodString;
824
+ reachableHost: z.ZodNullable<z.ZodString>;
825
+ }, z.core.$strip>, z.ZodObject<{
826
+ success: z.ZodLiteral<true>;
827
+ }, z.core.$strip>, "mutation">;
788
828
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
789
829
  readonly getCameraSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
790
830
  deviceId: z.ZodNumber;
@@ -855,7 +895,7 @@ export declare const pipelineOrchestratorCapability: {
855
895
  deviceId: z.ZodNumber;
856
896
  agentNodeId: z.ZodOptional<z.ZodString>;
857
897
  }, z.core.$strip>, z.ZodObject<{
858
- engine: z.ZodObject<{
898
+ engine: z.ZodOptional<z.ZodObject<{
859
899
  runtime: z.ZodEnum<{
860
900
  node: "node";
861
901
  python: "python";
@@ -869,10 +909,10 @@ export declare const pipelineOrchestratorCapability: {
869
909
  pt: "pt";
870
910
  }>;
871
911
  device: z.ZodOptional<z.ZodString>;
872
- }, z.core.$strip>;
912
+ }, z.core.$strip>>;
873
913
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
874
914
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
875
- engine: z.ZodObject<{
915
+ engine: z.ZodOptional<z.ZodObject<{
876
916
  runtime: z.ZodEnum<{
877
917
  node: "node";
878
918
  python: "python";
@@ -886,8 +926,8 @@ export declare const pipelineOrchestratorCapability: {
886
926
  pt: "pt";
887
927
  }>;
888
928
  device: z.ZodOptional<z.ZodString>;
889
- }, z.core.$strip>;
890
- modelId: z.ZodString;
929
+ }, z.core.$strip>>;
930
+ modelId: z.ZodOptional<z.ZodString>;
891
931
  enabled: z.ZodBoolean;
892
932
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
893
933
  }, z.core.$strip>>>;
@@ -911,6 +951,7 @@ export declare const pipelineOrchestratorCapability: {
911
951
  detectionNodeId: z.ZodNullable<z.ZodString>;
912
952
  decoderNodeId: z.ZodNullable<z.ZodString>;
913
953
  audioNodeId: z.ZodNullable<z.ZodString>;
954
+ sourceNodeId: z.ZodNullable<z.ZodString>;
914
955
  pinned: z.ZodObject<{
915
956
  detection: z.ZodBoolean;
916
957
  decoder: z.ZodBoolean;
@@ -1020,6 +1061,7 @@ export declare const pipelineOrchestratorCapability: {
1020
1061
  detectionNodeId: z.ZodNullable<z.ZodString>;
1021
1062
  decoderNodeId: z.ZodNullable<z.ZodString>;
1022
1063
  audioNodeId: z.ZodNullable<z.ZodString>;
1064
+ sourceNodeId: z.ZodNullable<z.ZodString>;
1023
1065
  pinned: z.ZodObject<{
1024
1066
  detection: z.ZodBoolean;
1025
1067
  decoder: z.ZodBoolean;
@@ -1117,7 +1159,7 @@ export declare const pipelineOrchestratorCapability: {
1117
1159
  name: z.ZodString;
1118
1160
  description: z.ZodOptional<z.ZodString>;
1119
1161
  config: z.ZodObject<{
1120
- engine: z.ZodObject<{
1162
+ engine: z.ZodOptional<z.ZodObject<{
1121
1163
  runtime: z.ZodEnum<{
1122
1164
  node: "node";
1123
1165
  python: "python";
@@ -1131,10 +1173,10 @@ export declare const pipelineOrchestratorCapability: {
1131
1173
  pt: "pt";
1132
1174
  }>;
1133
1175
  device: z.ZodOptional<z.ZodString>;
1134
- }, z.core.$strip>;
1176
+ }, z.core.$strip>>;
1135
1177
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
1136
1178
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1137
- engine: z.ZodObject<{
1179
+ engine: z.ZodOptional<z.ZodObject<{
1138
1180
  runtime: z.ZodEnum<{
1139
1181
  node: "node";
1140
1182
  python: "python";
@@ -1148,8 +1190,8 @@ export declare const pipelineOrchestratorCapability: {
1148
1190
  pt: "pt";
1149
1191
  }>;
1150
1192
  device: z.ZodOptional<z.ZodString>;
1151
- }, z.core.$strip>;
1152
- modelId: z.ZodString;
1193
+ }, z.core.$strip>>;
1194
+ modelId: z.ZodOptional<z.ZodString>;
1153
1195
  enabled: z.ZodBoolean;
1154
1196
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1155
1197
  }, z.core.$strip>>>;
@@ -1162,7 +1204,7 @@ export declare const pipelineOrchestratorCapability: {
1162
1204
  name: z.ZodString;
1163
1205
  description: z.ZodOptional<z.ZodString>;
1164
1206
  config: z.ZodObject<{
1165
- engine: z.ZodObject<{
1207
+ engine: z.ZodOptional<z.ZodObject<{
1166
1208
  runtime: z.ZodEnum<{
1167
1209
  node: "node";
1168
1210
  python: "python";
@@ -1176,10 +1218,10 @@ export declare const pipelineOrchestratorCapability: {
1176
1218
  pt: "pt";
1177
1219
  }>;
1178
1220
  device: z.ZodOptional<z.ZodString>;
1179
- }, z.core.$strip>;
1221
+ }, z.core.$strip>>;
1180
1222
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
1181
1223
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1182
- engine: z.ZodObject<{
1224
+ engine: z.ZodOptional<z.ZodObject<{
1183
1225
  runtime: z.ZodEnum<{
1184
1226
  node: "node";
1185
1227
  python: "python";
@@ -1193,8 +1235,8 @@ export declare const pipelineOrchestratorCapability: {
1193
1235
  pt: "pt";
1194
1236
  }>;
1195
1237
  device: z.ZodOptional<z.ZodString>;
1196
- }, z.core.$strip>;
1197
- modelId: z.ZodString;
1238
+ }, z.core.$strip>>;
1239
+ modelId: z.ZodOptional<z.ZodString>;
1198
1240
  enabled: z.ZodBoolean;
1199
1241
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1200
1242
  }, z.core.$strip>>>;
@@ -1204,7 +1246,7 @@ export declare const pipelineOrchestratorCapability: {
1204
1246
  name: z.ZodString;
1205
1247
  description: z.ZodOptional<z.ZodString>;
1206
1248
  config: z.ZodObject<{
1207
- engine: z.ZodObject<{
1249
+ engine: z.ZodOptional<z.ZodObject<{
1208
1250
  runtime: z.ZodEnum<{
1209
1251
  node: "node";
1210
1252
  python: "python";
@@ -1218,10 +1260,10 @@ export declare const pipelineOrchestratorCapability: {
1218
1260
  pt: "pt";
1219
1261
  }>;
1220
1262
  device: z.ZodOptional<z.ZodString>;
1221
- }, z.core.$strip>;
1263
+ }, z.core.$strip>>;
1222
1264
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
1223
1265
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1224
- engine: z.ZodObject<{
1266
+ engine: z.ZodOptional<z.ZodObject<{
1225
1267
  runtime: z.ZodEnum<{
1226
1268
  node: "node";
1227
1269
  python: "python";
@@ -1235,8 +1277,8 @@ export declare const pipelineOrchestratorCapability: {
1235
1277
  pt: "pt";
1236
1278
  }>;
1237
1279
  device: z.ZodOptional<z.ZodString>;
1238
- }, z.core.$strip>;
1239
- modelId: z.ZodString;
1280
+ }, z.core.$strip>>;
1281
+ modelId: z.ZodOptional<z.ZodString>;
1240
1282
  enabled: z.ZodBoolean;
1241
1283
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1242
1284
  }, z.core.$strip>>>;
@@ -1250,7 +1292,7 @@ export declare const pipelineOrchestratorCapability: {
1250
1292
  name: z.ZodOptional<z.ZodString>;
1251
1293
  description: z.ZodOptional<z.ZodString>;
1252
1294
  config: z.ZodOptional<z.ZodObject<{
1253
- engine: z.ZodObject<{
1295
+ engine: z.ZodOptional<z.ZodObject<{
1254
1296
  runtime: z.ZodEnum<{
1255
1297
  node: "node";
1256
1298
  python: "python";
@@ -1264,10 +1306,10 @@ export declare const pipelineOrchestratorCapability: {
1264
1306
  pt: "pt";
1265
1307
  }>;
1266
1308
  device: z.ZodOptional<z.ZodString>;
1267
- }, z.core.$strip>;
1309
+ }, z.core.$strip>>;
1268
1310
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
1269
1311
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1270
- engine: z.ZodObject<{
1312
+ engine: z.ZodOptional<z.ZodObject<{
1271
1313
  runtime: z.ZodEnum<{
1272
1314
  node: "node";
1273
1315
  python: "python";
@@ -1281,8 +1323,8 @@ export declare const pipelineOrchestratorCapability: {
1281
1323
  pt: "pt";
1282
1324
  }>;
1283
1325
  device: z.ZodOptional<z.ZodString>;
1284
- }, z.core.$strip>;
1285
- modelId: z.ZodString;
1326
+ }, z.core.$strip>>;
1327
+ modelId: z.ZodOptional<z.ZodString>;
1286
1328
  enabled: z.ZodBoolean;
1287
1329
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1288
1330
  }, z.core.$strip>>>;
@@ -1292,7 +1334,7 @@ export declare const pipelineOrchestratorCapability: {
1292
1334
  name: z.ZodString;
1293
1335
  description: z.ZodOptional<z.ZodString>;
1294
1336
  config: z.ZodObject<{
1295
- engine: z.ZodObject<{
1337
+ engine: z.ZodOptional<z.ZodObject<{
1296
1338
  runtime: z.ZodEnum<{
1297
1339
  node: "node";
1298
1340
  python: "python";
@@ -1306,10 +1348,10 @@ export declare const pipelineOrchestratorCapability: {
1306
1348
  pt: "pt";
1307
1349
  }>;
1308
1350
  device: z.ZodOptional<z.ZodString>;
1309
- }, z.core.$strip>;
1351
+ }, z.core.$strip>>;
1310
1352
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
1311
1353
  audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1312
- engine: z.ZodObject<{
1354
+ engine: z.ZodOptional<z.ZodObject<{
1313
1355
  runtime: z.ZodEnum<{
1314
1356
  node: "node";
1315
1357
  python: "python";
@@ -1323,8 +1365,8 @@ export declare const pipelineOrchestratorCapability: {
1323
1365
  pt: "pt";
1324
1366
  }>;
1325
1367
  device: z.ZodOptional<z.ZodString>;
1326
- }, z.core.$strip>;
1327
- modelId: z.ZodString;
1368
+ }, z.core.$strip>>;
1369
+ modelId: z.ZodOptional<z.ZodString>;
1328
1370
  enabled: z.ZodBoolean;
1329
1371
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1330
1372
  }, z.core.$strip>>>;
@@ -1357,4 +1399,5 @@ export type CameraDetectionPhase = z.infer<typeof CameraDetectionPhaseSchema>;
1357
1399
  export type CameraAudioStatus = z.infer<typeof CameraAudioStatusSchema>;
1358
1400
  export type CameraRecordingStatus = z.infer<typeof CameraRecordingStatusSchema>;
1359
1401
  export type CameraRecordingMode = z.infer<typeof CameraRecordingModeSchema>;
1360
- export { AgentLoadSummarySchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMotionStatusSchema, CameraPipelineConfigSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStepOverridePatchSchema, CapabilityBindingsSchema, DecoderAssignmentSchema, GlobalMetricsSchema, PipelineAssignmentSchema, PipelineTemplateSchema as OrchestratorPipelineTemplateSchema, };
1402
+ export type IngestOwner = z.infer<typeof IngestOwnerSchema>;
1403
+ export { AgentLoadSummarySchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMotionStatusSchema, CameraPipelineConfigSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStepOverridePatchSchema, CapabilityBindingsSchema, DecoderAssignmentSchema, GlobalMetricsSchema, IngestOwnerSchema, PipelineAssignmentSchema, PipelineTemplateSchema as OrchestratorPipelineTemplateSchema, };