@camstack/types 1.1.57 → 1.1.58

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.
package/dist/addon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-CF-UWPp0.js");
2
+ const require_sleep = require("./sleep-eVjOy4ev.js");
3
3
  const require_event_category = require("./event-category-CGj9fI4L.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  exports.BaseAddon = require_sleep.BaseAddon;
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as parseJsonUnknown, D as asString, I as scopeKey, M as ReadinessRegistry, N as ReadinessTimeoutError, S as DeviceType, T as asJsonObject, a as viewerUiCapability, bt as DisposerChain, ct as BaseAddon, ft as emitReadiness, i as deviceOpsCapability, j as DATAPLANE_SECRET_HEADER, lt as normalizeAddonInitResult, m as expandCapMethods, o as adminUiCapability, s as createDeviceProxy, t as sleep } from "./sleep-D8ZkNoYz.mjs";
1
+ import { A as parseJsonUnknown, D as asString, I as scopeKey, M as ReadinessRegistry, N as ReadinessTimeoutError, S as DeviceType, T as asJsonObject, a as viewerUiCapability, bt as DisposerChain, ct as BaseAddon, ft as emitReadiness, i as deviceOpsCapability, j as DATAPLANE_SECRET_HEADER, lt as normalizeAddonInitResult, m as expandCapMethods, o as adminUiCapability, s as createDeviceProxy, t as sleep } from "./sleep-BQ60XlE9.mjs";
2
2
  import { t as EventCategory } from "./event-category-D4HJq7Mw.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  export { BaseAddon, DATAPLANE_SECRET_HEADER, DeviceType, DisposerChain, EventCategory, ReadinessRegistry, ReadinessTimeoutError, adminUiCapability, asJsonObject, asString, createDeviceProxy, deviceOpsCapability, emitReadiness, errMsg, expandCapMethods, normalizeAddonInitResult, parseJsonUnknown, scopeKey, sleep, viewerUiCapability };
@@ -81,7 +81,7 @@ export { type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourc
81
81
  export { EVENT_KIND_BY_CAP, EVENTFUL_CAP_NAMES, buildEventKindDescriptor, type SensorEventKindDescriptor, } from './sensor-event-kinds.js';
82
82
  export type { PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
83
83
  export { ModelSubstitutionSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
84
- export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, IngestOwner, } from './pipeline-orchestrator.cap.js';
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
86
  export type { DetailParent, DetailResult, MotionSource, MotionSources, ReportMotionInput, RunDetailSubtreeInput, RunDetailSubtreeResult, RunnerFrameSource, } from './pipeline-runner.cap.js';
87
87
  export { MotionSourceEnum, MotionSourcesSchema, pipelineRunnerCapability, ReportMotionInputSchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, } from './pipeline-runner.cap.js';
@@ -469,32 +469,6 @@ export declare const pipelineExecutorCapability: {
469
469
  }>;
470
470
  device: z.ZodOptional<z.ZodString>;
471
471
  }, z.core.$strip>, z.ZodArray<z.ZodType<PipelineDefaultStepOutput, unknown, z.core.$ZodTypeInternals<PipelineDefaultStepOutput, unknown>>>, import("./capability-definition.js").CapabilityMethodKind>;
472
- /**
473
- * Re-run the platform probe for the inference engine and write the
474
- * detected runtime / backend / device back into the addon's own
475
- * global settings store. Returns the engine that was picked so the
476
- * UI can confirm without a second round-trip. Triggers the standard
477
- * `requiresRestart` auto-restart flow because all three fields are
478
- * marked restart-required. Replaces the legacy per-agent
479
- * `pipeline-orchestrator.reprobeAgentHwAccel` surface for the
480
- * engine dimension — each addon now owns its own probe.
481
- */
482
- readonly reprobeEngine: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
483
- runtime: z.ZodEnum<{
484
- node: "node";
485
- python: "python";
486
- }>;
487
- backend: z.ZodString;
488
- format: z.ZodEnum<{
489
- onnx: "onnx";
490
- coreml: "coreml";
491
- openvino: "openvino";
492
- tflite: "tflite";
493
- pt: "pt";
494
- gguf: "gguf";
495
- }>;
496
- device: z.ZodOptional<z.ZodString>;
497
- }, z.core.$strip>, "mutation">;
498
472
  /**
499
473
  * Per-node detection-engine provisioning snapshot. Returns the live
500
474
  * state of the lazy runtime-provisioning machine on `nodeId`
@@ -88,7 +88,6 @@ declare const PipelineTemplateSchema: z.ZodObject<{
88
88
  updatedAt: z.ZodString;
89
89
  }, z.core.$strip>;
90
90
  declare const CameraStepOverridePatchSchema: z.ZodObject<{
91
- enabled: z.ZodOptional<z.ZodBoolean>;
92
91
  modelId: z.ZodOptional<z.ZodString>;
93
92
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
94
93
  }, z.core.$strip>;
@@ -129,6 +128,12 @@ declare const AgentLoadSummarySchema: z.ZodObject<{
129
128
  avgInferenceFps: z.ZodNumber;
130
129
  avgInferenceTimeMs: z.ZodNumber;
131
130
  queueDepthTotal: z.ZodNumber;
131
+ devices: z.ZodDefault<z.ZodArray<z.ZodObject<{
132
+ deviceKey: z.ZodString;
133
+ backend: z.ZodString;
134
+ attachedCameras: z.ZodNumber;
135
+ queueDepthTotal: z.ZodNumber;
136
+ }, z.core.$strip>>>;
132
137
  hardware: z.ZodObject<{
133
138
  hasGpu: z.ZodBoolean;
134
139
  inferenceBackend: z.ZodOptional<z.ZodString>;
@@ -438,6 +443,54 @@ declare const CameraStatusSchema: z.ZodObject<{
438
443
  }, z.core.$strip>>;
439
444
  fetchedAt: z.ZodNumber;
440
445
  }, z.core.$strip>;
446
+ declare const NodeInferenceDeviceSchema: z.ZodObject<{
447
+ key: z.ZodString;
448
+ backend: z.ZodString;
449
+ device: z.ZodString;
450
+ format: z.ZodEnum<{
451
+ onnx: "onnx";
452
+ coreml: "coreml";
453
+ openvino: "openvino";
454
+ tflite: "tflite";
455
+ pt: "pt";
456
+ gguf: "gguf";
457
+ }>;
458
+ available: z.ZodBoolean;
459
+ enabled: z.ZodBoolean;
460
+ weight: z.ZodNumber;
461
+ maxSessions: z.ZodNullable<z.ZodNumber>;
462
+ defaultModelId: z.ZodString;
463
+ steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
464
+ modelId: z.ZodOptional<z.ZodString>;
465
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
466
+ }, z.core.$strip>>>;
467
+ }, z.core.$strip>;
468
+ declare const NodeInferenceDevicesSchema: z.ZodObject<{
469
+ nodeId: z.ZodString;
470
+ reachable: z.ZodBoolean;
471
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
472
+ key: z.ZodString;
473
+ backend: z.ZodString;
474
+ device: z.ZodString;
475
+ format: z.ZodEnum<{
476
+ onnx: "onnx";
477
+ coreml: "coreml";
478
+ openvino: "openvino";
479
+ tflite: "tflite";
480
+ pt: "pt";
481
+ gguf: "gguf";
482
+ }>;
483
+ available: z.ZodBoolean;
484
+ enabled: z.ZodBoolean;
485
+ weight: z.ZodNumber;
486
+ maxSessions: z.ZodNullable<z.ZodNumber>;
487
+ defaultModelId: z.ZodString;
488
+ steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
489
+ modelId: z.ZodOptional<z.ZodString>;
490
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
491
+ }, z.core.$strip>>>;
492
+ }, z.core.$strip>>>;
493
+ }, z.core.$strip>;
441
494
  /**
442
495
  * Pipeline Orchestrator capability — global load balancer + camera dispatcher.
443
496
  *
@@ -486,6 +539,37 @@ export declare const pipelineOrchestratorCapability: {
486
539
  }, z.core.$strip>, z.ZodObject<{
487
540
  success: z.ZodLiteral<true>;
488
541
  }, z.core.$strip>, "mutation">;
542
+ /**
543
+ * Pin a camera's detection to a specific INFERENCE DEVICE (accelerator)
544
+ * within its node — a SOFT L1 device affinity honoured by the per-session
545
+ * device `balance()` pass (sibling of the node-level `pipelineNodeId` pin;
546
+ * persisted as `pipelineDeviceKey` in the device store, read by
547
+ * `readPipelineDevicePin`). `deviceKey` is a concrete key
548
+ * (`openvino:npu` / `edgetpu:usb` / `cpu`), or the `'auto'` sentinel /
549
+ * empty string to CLEAR the pin and let the balancer pick the device.
550
+ *
551
+ * Applies promptly: the device is chosen per-session at dispatch, so any
552
+ * running detection session is closed and re-dispatched onto the new pin
553
+ * (the camera stays on the SAME node — a device pin never moves the camera).
554
+ * Cameras with no active session pick it up on their next dispatch.
555
+ */
556
+ readonly setPipelineDevicePin: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
557
+ deviceId: z.ZodNumber;
558
+ deviceKey: z.ZodString;
559
+ }, z.core.$strip>, z.ZodObject<{
560
+ success: z.ZodLiteral<true>;
561
+ }, z.core.$strip>, "mutation">;
562
+ /**
563
+ * Read a camera's persisted inference-device pin (`pipelineDeviceKey`).
564
+ * Returns the concrete device key, or `null` when unpinned (auto). Lets the
565
+ * UI show the current pin alongside the node pin (parity with the node-pin
566
+ * value carried on the assignment record).
567
+ */
568
+ readonly getPipelineDevicePin: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
569
+ deviceId: z.ZodNumber;
570
+ }, z.core.$strip>, z.ZodObject<{
571
+ deviceKey: z.ZodNullable<z.ZodString>;
572
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
489
573
  /**
490
574
  * Trigger a full rebalance pass. Iterates over all assigned cameras,
491
575
  * recomputes the optimal agent for each one based on current load +
@@ -536,6 +620,12 @@ export declare const pipelineOrchestratorCapability: {
536
620
  avgInferenceFps: z.ZodNumber;
537
621
  avgInferenceTimeMs: z.ZodNumber;
538
622
  queueDepthTotal: z.ZodNumber;
623
+ devices: z.ZodDefault<z.ZodArray<z.ZodObject<{
624
+ deviceKey: z.ZodString;
625
+ backend: z.ZodString;
626
+ attachedCameras: z.ZodNumber;
627
+ queueDepthTotal: z.ZodNumber;
628
+ }, z.core.$strip>>>;
539
629
  hardware: z.ZodObject<{
540
630
  hasGpu: z.ZodBoolean;
541
631
  inferenceBackend: z.ZodOptional<z.ZodString>;
@@ -644,11 +734,6 @@ export declare const pipelineOrchestratorCapability: {
644
734
  readonly getAgentSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
645
735
  agentNodeId: z.ZodString;
646
736
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
647
- addonDefaults: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodObject<{
648
- enabled: z.ZodBoolean;
649
- modelId: z.ZodOptional<z.ZodString>;
650
- settings: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
651
- }, z.core.$strip>>>;
652
737
  maxCameras: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
653
738
  detectWeight: z.ZodOptional<z.ZodNumber>;
654
739
  detect: z.ZodOptional<z.ZodBoolean>;
@@ -659,17 +744,17 @@ export declare const pipelineOrchestratorCapability: {
659
744
  inferenceDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
660
745
  enabled: z.ZodBoolean;
661
746
  weight: z.ZodOptional<z.ZodNumber>;
747
+ maxSessions: z.ZodOptional<z.ZodNumber>;
748
+ steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
749
+ modelId: z.ZodOptional<z.ZodString>;
750
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
751
+ }, z.core.$strip>>>;
662
752
  }, z.core.$strip>>>;
663
753
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
664
754
  /** Enumerate every agent's settings (hub + remote runners). */
665
755
  readonly listAgentSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
666
756
  nodeId: z.ZodString;
667
757
  settings: z.ZodObject<{
668
- addonDefaults: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodObject<{
669
- enabled: z.ZodBoolean;
670
- modelId: z.ZodOptional<z.ZodString>;
671
- settings: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
672
- }, z.core.$strip>>>;
673
758
  maxCameras: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
674
759
  detectWeight: z.ZodOptional<z.ZodNumber>;
675
760
  detect: z.ZodOptional<z.ZodBoolean>;
@@ -680,20 +765,14 @@ export declare const pipelineOrchestratorCapability: {
680
765
  inferenceDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
681
766
  enabled: z.ZodBoolean;
682
767
  weight: z.ZodOptional<z.ZodNumber>;
768
+ maxSessions: z.ZodOptional<z.ZodNumber>;
769
+ steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
770
+ modelId: z.ZodOptional<z.ZodString>;
771
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
772
+ }, z.core.$strip>>>;
683
773
  }, z.core.$strip>>>;
684
774
  }, z.core.$strip>;
685
775
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
686
- /** 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. */
687
- readonly setAgentAddonDefaults: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
688
- agentNodeId: z.ZodString;
689
- defaults: z.ZodRecord<z.ZodString, z.ZodObject<{
690
- enabled: z.ZodBoolean;
691
- modelId: z.ZodOptional<z.ZodString>;
692
- settings: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
693
- }, z.core.$strip>>;
694
- }, z.core.$strip>, z.ZodObject<{
695
- success: z.ZodLiteral<true>;
696
- }, z.core.$strip>, "mutation">;
697
776
  /**
698
777
  * Drop a single agent's persisted settings. Used by the cluster
699
778
  * "Offline agents" panel to evict stale entries left behind when an
@@ -781,19 +860,68 @@ export declare const pipelineOrchestratorCapability: {
781
860
  * The map REPLACES the node's stored `inferenceDevices` wholesale (pass the
782
861
  * complete desired set; an empty map clears the opt-in → the node reverts to
783
862
  * its single DEFAULT accelerator). `weight` is optional and defaults to 1.
863
+ * `models` is the optional per-device model override (`stepId → modelId`,
864
+ * C7.2/C7.4) — a stepId absent ⇒ the step uses that device's default model.
784
865
  * Creates the node's settings entry if absent. Changes take effect on the
785
866
  * next dispatch/rebalance cycle — the dispatcher reads the enabled set via
786
- * `PipelineSettingsStore.buildNodeInferenceDevices` when placing sessions.
867
+ * `PipelineSettingsStore.buildNodeInferenceDevices` when placing sessions
868
+ * and the per-(node,device) base provisioning via
869
+ * `buildNodeInferenceDeviceSteps`.
787
870
  */
788
871
  readonly setAgentInferenceDevices: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
789
872
  agentNodeId: z.ZodString;
790
873
  inferenceDevices: z.ZodRecord<z.ZodString, z.ZodObject<{
791
874
  enabled: z.ZodBoolean;
792
875
  weight: z.ZodOptional<z.ZodNumber>;
876
+ maxSessions: z.ZodOptional<z.ZodNumber>;
877
+ steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
878
+ modelId: z.ZodOptional<z.ZodString>;
879
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
880
+ }, z.core.$strip>>>;
793
881
  }, z.core.$strip>>;
794
882
  }, z.core.$strip>, z.ZodObject<{
795
883
  success: z.ZodLiteral<true>;
796
884
  }, z.core.$strip>, "mutation">;
885
+ /**
886
+ * DEVICE-AWARE merged view of ONE node's inference accelerators. Joins each
887
+ * physical device the node HAS — probed live via a node-pinned
888
+ * `platformProbe.getCapabilities` (the platform-probe singleton is targeted
889
+ * by the `nodeId` cap INPUT, since a `nodePin` context is ignored by a
890
+ * singleton mount) — with its stored opt-in (`enabled`/`weight`) and the
891
+ * object-detection `defaultModelId` the executor would run for that
892
+ * deviceKey. Disabled-but-configured keys still appear. An unreachable node
893
+ * returns `reachable:false` + best-effort stored-only devices (never
894
+ * throws). Read surface for the cluster/agent multi-device UI — hence a
895
+ * default (read-level) auth, matching the other `getAgent*` reads.
896
+ */
897
+ readonly getNodeInferenceDevices: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
898
+ nodeId: z.ZodString;
899
+ }, z.core.$strip>, z.ZodObject<{
900
+ nodeId: z.ZodString;
901
+ reachable: z.ZodBoolean;
902
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
903
+ key: z.ZodString;
904
+ backend: z.ZodString;
905
+ device: z.ZodString;
906
+ format: z.ZodEnum<{
907
+ onnx: "onnx";
908
+ coreml: "coreml";
909
+ openvino: "openvino";
910
+ tflite: "tflite";
911
+ pt: "pt";
912
+ gguf: "gguf";
913
+ }>;
914
+ available: z.ZodBoolean;
915
+ enabled: z.ZodBoolean;
916
+ weight: z.ZodNumber;
917
+ maxSessions: z.ZodNullable<z.ZodNumber>;
918
+ defaultModelId: z.ZodString;
919
+ steps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
920
+ modelId: z.ZodOptional<z.ZodString>;
921
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
922
+ }, z.core.$strip>>>;
923
+ }, z.core.$strip>>>;
924
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
797
925
  /**
798
926
  * Reset one node's pipeline to its hardware-aware defaults — the HONEST
799
927
  * reset (replaces the executor's legacy `resetToDefault`, which cleared a
@@ -825,11 +953,10 @@ export declare const pipelineOrchestratorCapability: {
825
953
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
826
954
  pinnedAgentNodeId: z.ZodOptional<z.ZodString>;
827
955
  stepToggles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
828
- stepOverridesByAgent: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
829
- enabled: z.ZodOptional<z.ZodBoolean>;
956
+ stepOverridesByDevice: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
830
957
  modelId: z.ZodOptional<z.ZodString>;
831
958
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
832
- }, z.core.$strip>>>>;
959
+ }, z.core.$strip>>>>>;
833
960
  pipelineByAgent: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
834
961
  steps: z.ZodReadonly<z.ZodArray<z.ZodType<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown, z.core.$ZodTypeInternals<import("./pipeline-executor.cap.js").PipelineStepInputOutput, unknown>>>>;
835
962
  audio: z.ZodNullable<z.ZodObject<{
@@ -846,24 +973,25 @@ export declare const pipelineOrchestratorCapability: {
846
973
  }, z.core.$strip>, z.ZodObject<{
847
974
  success: z.ZodLiteral<true>;
848
975
  }, z.core.$strip>, "mutation">;
849
- /** Read every L2.5 override map for a device. Null when device has no overrides. */
976
+ /** Read every per-(node,device) override map for a device. Null when device has no overrides. */
850
977
  readonly getCameraStepOverrides: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
851
978
  deviceId: z.ZodNumber;
852
- }, z.core.$strip>, z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
853
- enabled: z.ZodOptional<z.ZodBoolean>;
979
+ }, z.core.$strip>, z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
854
980
  modelId: z.ZodOptional<z.ZodString>;
855
981
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
856
- }, z.core.$strip>>>>, import("./capability-definition.js").CapabilityMethodKind>;
982
+ }, z.core.$strip>>>>>, import("./capability-definition.js").CapabilityMethodKind>;
857
983
  /**
858
- * Write or clear the L2.5 per-agent override for one addonId on a device.
859
- * `patch: null` clears the entry entirely for that (agent, addon) pair.
984
+ * Write or clear the per-(camera,node,device) override for one addonId.
985
+ * `patch: null` clears the entry entirely for that (node, deviceKey, addon)
986
+ * triple (empty parents are pruned). Model/settings only — enablement is
987
+ * the per-camera `stepToggles` authority.
860
988
  */
861
989
  readonly setCameraStepOverride: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
862
990
  deviceId: z.ZodNumber;
863
991
  agentNodeId: z.ZodString;
992
+ deviceKey: z.ZodString;
864
993
  addonId: z.ZodString;
865
994
  patch: z.ZodNullable<z.ZodObject<{
866
- enabled: z.ZodOptional<z.ZodBoolean>;
867
995
  modelId: z.ZodOptional<z.ZodString>;
868
996
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
869
997
  }, z.core.$strip>>;
@@ -1406,4 +1534,6 @@ export type CameraAudioStatus = z.infer<typeof CameraAudioStatusSchema>;
1406
1534
  export type CameraRecordingStatus = z.infer<typeof CameraRecordingStatusSchema>;
1407
1535
  export type CameraRecordingMode = z.infer<typeof CameraRecordingModeSchema>;
1408
1536
  export type IngestOwner = z.infer<typeof IngestOwnerSchema>;
1537
+ export type NodeInferenceDevice = z.infer<typeof NodeInferenceDeviceSchema>;
1538
+ export type NodeInferenceDevices = z.infer<typeof NodeInferenceDevicesSchema>;
1409
1539
  export { AgentLoadSummarySchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMotionStatusSchema, CameraPipelineConfigSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStepOverridePatchSchema, CapabilityBindingsSchema, GlobalMetricsSchema, IngestOwnerSchema, PipelineAssignmentSchema, PipelineTemplateSchema as OrchestratorPipelineTemplateSchema, };
@@ -232,6 +232,12 @@ declare const RunnerLocalLoadSchema: z.ZodObject<{
232
232
  avgInferenceFps: z.ZodNumber;
233
233
  avgInferenceTimeMs: z.ZodNumber;
234
234
  queueDepthTotal: z.ZodNumber;
235
+ devices: z.ZodDefault<z.ZodArray<z.ZodObject<{
236
+ deviceKey: z.ZodString;
237
+ backend: z.ZodString;
238
+ attachedCameras: z.ZodNumber;
239
+ queueDepthTotal: z.ZodNumber;
240
+ }, z.core.$strip>>>;
235
241
  hardware: z.ZodObject<{
236
242
  hasGpu: z.ZodBoolean;
237
243
  inferenceBackend: z.ZodOptional<z.ZodString>;
@@ -375,6 +381,12 @@ export declare const pipelineRunnerCapability: {
375
381
  avgInferenceFps: z.ZodNumber;
376
382
  avgInferenceTimeMs: z.ZodNumber;
377
383
  queueDepthTotal: z.ZodNumber;
384
+ devices: z.ZodDefault<z.ZodArray<z.ZodObject<{
385
+ deviceKey: z.ZodString;
386
+ backend: z.ZodString;
387
+ attachedCameras: z.ZodNumber;
388
+ queueDepthTotal: z.ZodNumber;
389
+ }, z.core.$strip>>>;
378
390
  hardware: z.ZodObject<{
379
391
  hasGpu: z.ZodBoolean;
380
392
  inferenceBackend: z.ZodOptional<z.ZodString>;