@camstack/types 1.1.55 → 1.1.57
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/capabilities/pipeline-executor.cap.d.ts +1 -0
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +28 -0
- package/dist/generated/addon-api.d.ts +44 -12
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +1 -1
- package/dist/index.js +87 -18
- package/dist/index.mjs +87 -18
- package/dist/inference/runtime-capabilities.d.ts +7 -3
- package/dist/interfaces/pipeline-executor-capability.d.ts +7 -0
- package/dist/interfaces/platform.d.ts +10 -0
- package/dist/types/agent-pipeline-settings.d.ts +16 -0
- package/package.json +1 -1
|
@@ -1036,6 +1036,7 @@ export declare const pipelineExecutorCapability: {
|
|
|
1036
1036
|
kind: z.ZodEnum<{
|
|
1037
1037
|
runtime: "runtime";
|
|
1038
1038
|
"warm-override": "warm-override";
|
|
1039
|
+
"device-pool": "device-pool";
|
|
1039
1040
|
}>;
|
|
1040
1041
|
poolPid: z.ZodNullable<z.ZodNumber>;
|
|
1041
1042
|
idleMs: z.ZodNullable<z.ZodNumber>;
|
|
@@ -656,6 +656,10 @@ export declare const pipelineOrchestratorCapability: {
|
|
|
656
656
|
audio: z.ZodOptional<z.ZodBoolean>;
|
|
657
657
|
ingest: z.ZodOptional<z.ZodBoolean>;
|
|
658
658
|
reachableHost: z.ZodOptional<z.ZodString>;
|
|
659
|
+
inferenceDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
660
|
+
enabled: z.ZodBoolean;
|
|
661
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
662
|
+
}, z.core.$strip>>>;
|
|
659
663
|
}, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
660
664
|
/** Enumerate every agent's settings (hub + remote runners). */
|
|
661
665
|
readonly listAgentSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
@@ -673,6 +677,10 @@ export declare const pipelineOrchestratorCapability: {
|
|
|
673
677
|
audio: z.ZodOptional<z.ZodBoolean>;
|
|
674
678
|
ingest: z.ZodOptional<z.ZodBoolean>;
|
|
675
679
|
reachableHost: z.ZodOptional<z.ZodString>;
|
|
680
|
+
inferenceDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
681
|
+
enabled: z.ZodBoolean;
|
|
682
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
683
|
+
}, z.core.$strip>>>;
|
|
676
684
|
}, z.core.$strip>;
|
|
677
685
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
678
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. */
|
|
@@ -766,6 +774,26 @@ export declare const pipelineOrchestratorCapability: {
|
|
|
766
774
|
}, z.core.$strip>, z.ZodObject<{
|
|
767
775
|
success: z.ZodLiteral<true>;
|
|
768
776
|
}, z.core.$strip>, "mutation">;
|
|
777
|
+
/**
|
|
778
|
+
* Set one node's multi-device inference opt-in (Phase 4 multi-device) — the
|
|
779
|
+
* per-node `deviceKey → { enabled, weight }` map that decides which
|
|
780
|
+
* accelerators the dispatcher may balance detection sessions across.
|
|
781
|
+
* The map REPLACES the node's stored `inferenceDevices` wholesale (pass the
|
|
782
|
+
* complete desired set; an empty map clears the opt-in → the node reverts to
|
|
783
|
+
* its single DEFAULT accelerator). `weight` is optional and defaults to 1.
|
|
784
|
+
* Creates the node's settings entry if absent. Changes take effect on the
|
|
785
|
+
* next dispatch/rebalance cycle — the dispatcher reads the enabled set via
|
|
786
|
+
* `PipelineSettingsStore.buildNodeInferenceDevices` when placing sessions.
|
|
787
|
+
*/
|
|
788
|
+
readonly setAgentInferenceDevices: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
789
|
+
agentNodeId: z.ZodString;
|
|
790
|
+
inferenceDevices: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
791
|
+
enabled: z.ZodBoolean;
|
|
792
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
793
|
+
}, z.core.$strip>>;
|
|
794
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
795
|
+
success: z.ZodLiteral<true>;
|
|
796
|
+
}, z.core.$strip>, "mutation">;
|
|
769
797
|
/**
|
|
770
798
|
* Reset one node's pipeline to its hardware-aware defaults — the HONEST
|
|
771
799
|
* reset (replaces the executor's legacy `resetToDefault`, which cleared a
|
|
@@ -10301,7 +10301,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10301
10301
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
10302
10302
|
device?: string | undefined;
|
|
10303
10303
|
};
|
|
10304
|
-
output: import("
|
|
10304
|
+
output: import("@camstack/types").PipelineDefaultStepOutput[];
|
|
10305
10305
|
meta: object;
|
|
10306
10306
|
}>;
|
|
10307
10307
|
reprobeEngine: import("@trpc/server").TRPCMutationProcedure<{
|
|
@@ -10435,7 +10435,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10435
10435
|
input: {
|
|
10436
10436
|
nodeId?: string | undefined;
|
|
10437
10437
|
} | undefined;
|
|
10438
|
-
output: readonly import("
|
|
10438
|
+
output: readonly import("@camstack/types").PipelineDefaultStepOutput[] | null;
|
|
10439
10439
|
meta: object;
|
|
10440
10440
|
}>;
|
|
10441
10441
|
getGlobalPipelineConfig: import("@trpc/server").TRPCQueryProcedure<{
|
|
@@ -10489,7 +10489,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10489
10489
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
10490
10490
|
device?: string | undefined;
|
|
10491
10491
|
};
|
|
10492
|
-
steps: readonly import("
|
|
10492
|
+
steps: readonly import("@camstack/types").PipelineTemplateStepOutput[];
|
|
10493
10493
|
}[];
|
|
10494
10494
|
meta: object;
|
|
10495
10495
|
}>;
|
|
@@ -10516,7 +10516,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10516
10516
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
10517
10517
|
device?: string | undefined;
|
|
10518
10518
|
};
|
|
10519
|
-
steps: readonly import("
|
|
10519
|
+
steps: readonly import("@camstack/types").PipelineTemplateStepOutput[];
|
|
10520
10520
|
};
|
|
10521
10521
|
meta: object;
|
|
10522
10522
|
}>;
|
|
@@ -10538,7 +10538,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10538
10538
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
10539
10539
|
device?: string | undefined;
|
|
10540
10540
|
};
|
|
10541
|
-
steps: readonly import("
|
|
10541
|
+
steps: readonly import("@camstack/types").PipelineTemplateStepOutput[];
|
|
10542
10542
|
};
|
|
10543
10543
|
meta: object;
|
|
10544
10544
|
}>;
|
|
@@ -10626,6 +10626,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10626
10626
|
deviceId?: number | undefined;
|
|
10627
10627
|
sessionId?: string | undefined;
|
|
10628
10628
|
plane?: "full" | "frame" | undefined;
|
|
10629
|
+
deviceKey?: string | undefined;
|
|
10629
10630
|
};
|
|
10630
10631
|
output: import("@camstack/types").FrameResult;
|
|
10631
10632
|
meta: object;
|
|
@@ -10650,6 +10651,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10650
10651
|
deviceId?: number | undefined;
|
|
10651
10652
|
sessionId?: string | undefined;
|
|
10652
10653
|
frameId?: number | undefined;
|
|
10654
|
+
deviceKey?: string | undefined;
|
|
10653
10655
|
};
|
|
10654
10656
|
output: {
|
|
10655
10657
|
results: readonly import("@camstack/types").FrameResult[];
|
|
@@ -10714,7 +10716,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10714
10716
|
};
|
|
10715
10717
|
modelsLoaded: readonly string[];
|
|
10716
10718
|
inUseByCameras: readonly number[];
|
|
10717
|
-
kind: "runtime" | "warm-override";
|
|
10719
|
+
kind: "runtime" | "warm-override" | "device-pool";
|
|
10718
10720
|
poolPid: number | null;
|
|
10719
10721
|
idleMs: number | null;
|
|
10720
10722
|
idleTtlMs: number | null;
|
|
@@ -11123,6 +11125,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
11123
11125
|
audio?: boolean | undefined;
|
|
11124
11126
|
ingest?: boolean | undefined;
|
|
11125
11127
|
reachableHost?: string | undefined;
|
|
11128
|
+
inferenceDevices?: Record<string, {
|
|
11129
|
+
enabled: boolean;
|
|
11130
|
+
weight?: number | undefined;
|
|
11131
|
+
}> | undefined;
|
|
11126
11132
|
} | null;
|
|
11127
11133
|
meta: object;
|
|
11128
11134
|
}>;
|
|
@@ -11145,6 +11151,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
11145
11151
|
audio?: boolean | undefined;
|
|
11146
11152
|
ingest?: boolean | undefined;
|
|
11147
11153
|
reachableHost?: string | undefined;
|
|
11154
|
+
inferenceDevices?: Record<string, {
|
|
11155
|
+
enabled: boolean;
|
|
11156
|
+
weight?: number | undefined;
|
|
11157
|
+
}> | undefined;
|
|
11148
11158
|
};
|
|
11149
11159
|
}[];
|
|
11150
11160
|
meta: object;
|
|
@@ -11221,6 +11231,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
11221
11231
|
};
|
|
11222
11232
|
meta: object;
|
|
11223
11233
|
}>;
|
|
11234
|
+
setAgentInferenceDevices: import("@trpc/server").TRPCMutationProcedure<{
|
|
11235
|
+
input: any;
|
|
11236
|
+
output: any;
|
|
11237
|
+
meta: object;
|
|
11238
|
+
}>;
|
|
11224
11239
|
resetNodePipelineDefaults: import("@trpc/server").TRPCMutationProcedure<{
|
|
11225
11240
|
input: {
|
|
11226
11241
|
[x: string]: unknown;
|
|
@@ -11726,6 +11741,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
11726
11741
|
ownerReachableHost?: string | undefined;
|
|
11727
11742
|
hubHostnameOverride?: string | undefined;
|
|
11728
11743
|
} | undefined;
|
|
11744
|
+
deviceKey?: string | undefined;
|
|
11729
11745
|
};
|
|
11730
11746
|
output: {
|
|
11731
11747
|
success: true;
|
|
@@ -27045,7 +27061,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27045
27061
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
27046
27062
|
device?: string | undefined;
|
|
27047
27063
|
};
|
|
27048
|
-
output: import("
|
|
27064
|
+
output: import("@camstack/types").PipelineDefaultStepOutput[];
|
|
27049
27065
|
meta: object;
|
|
27050
27066
|
}>;
|
|
27051
27067
|
reprobeEngine: import("@trpc/server").TRPCMutationProcedure<{
|
|
@@ -27179,7 +27195,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27179
27195
|
input: {
|
|
27180
27196
|
nodeId?: string | undefined;
|
|
27181
27197
|
} | undefined;
|
|
27182
|
-
output: readonly import("
|
|
27198
|
+
output: readonly import("@camstack/types").PipelineDefaultStepOutput[] | null;
|
|
27183
27199
|
meta: object;
|
|
27184
27200
|
}>;
|
|
27185
27201
|
getGlobalPipelineConfig: import("@trpc/server").TRPCQueryProcedure<{
|
|
@@ -27233,7 +27249,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27233
27249
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
27234
27250
|
device?: string | undefined;
|
|
27235
27251
|
};
|
|
27236
|
-
steps: readonly import("
|
|
27252
|
+
steps: readonly import("@camstack/types").PipelineTemplateStepOutput[];
|
|
27237
27253
|
}[];
|
|
27238
27254
|
meta: object;
|
|
27239
27255
|
}>;
|
|
@@ -27260,7 +27276,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27260
27276
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
27261
27277
|
device?: string | undefined;
|
|
27262
27278
|
};
|
|
27263
|
-
steps: readonly import("
|
|
27279
|
+
steps: readonly import("@camstack/types").PipelineTemplateStepOutput[];
|
|
27264
27280
|
};
|
|
27265
27281
|
meta: object;
|
|
27266
27282
|
}>;
|
|
@@ -27282,7 +27298,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27282
27298
|
format: "onnx" | "coreml" | "openvino" | "tflite" | "pt" | "gguf";
|
|
27283
27299
|
device?: string | undefined;
|
|
27284
27300
|
};
|
|
27285
|
-
steps: readonly import("
|
|
27301
|
+
steps: readonly import("@camstack/types").PipelineTemplateStepOutput[];
|
|
27286
27302
|
};
|
|
27287
27303
|
meta: object;
|
|
27288
27304
|
}>;
|
|
@@ -27370,6 +27386,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27370
27386
|
deviceId?: number | undefined;
|
|
27371
27387
|
sessionId?: string | undefined;
|
|
27372
27388
|
plane?: "full" | "frame" | undefined;
|
|
27389
|
+
deviceKey?: string | undefined;
|
|
27373
27390
|
};
|
|
27374
27391
|
output: import("@camstack/types").FrameResult;
|
|
27375
27392
|
meta: object;
|
|
@@ -27394,6 +27411,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27394
27411
|
deviceId?: number | undefined;
|
|
27395
27412
|
sessionId?: string | undefined;
|
|
27396
27413
|
frameId?: number | undefined;
|
|
27414
|
+
deviceKey?: string | undefined;
|
|
27397
27415
|
};
|
|
27398
27416
|
output: {
|
|
27399
27417
|
results: readonly import("@camstack/types").FrameResult[];
|
|
@@ -27458,7 +27476,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27458
27476
|
};
|
|
27459
27477
|
modelsLoaded: readonly string[];
|
|
27460
27478
|
inUseByCameras: readonly number[];
|
|
27461
|
-
kind: "runtime" | "warm-override";
|
|
27479
|
+
kind: "runtime" | "warm-override" | "device-pool";
|
|
27462
27480
|
poolPid: number | null;
|
|
27463
27481
|
idleMs: number | null;
|
|
27464
27482
|
idleTtlMs: number | null;
|
|
@@ -27867,6 +27885,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27867
27885
|
audio?: boolean | undefined;
|
|
27868
27886
|
ingest?: boolean | undefined;
|
|
27869
27887
|
reachableHost?: string | undefined;
|
|
27888
|
+
inferenceDevices?: Record<string, {
|
|
27889
|
+
enabled: boolean;
|
|
27890
|
+
weight?: number | undefined;
|
|
27891
|
+
}> | undefined;
|
|
27870
27892
|
} | null;
|
|
27871
27893
|
meta: object;
|
|
27872
27894
|
}>;
|
|
@@ -27889,6 +27911,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27889
27911
|
audio?: boolean | undefined;
|
|
27890
27912
|
ingest?: boolean | undefined;
|
|
27891
27913
|
reachableHost?: string | undefined;
|
|
27914
|
+
inferenceDevices?: Record<string, {
|
|
27915
|
+
enabled: boolean;
|
|
27916
|
+
weight?: number | undefined;
|
|
27917
|
+
}> | undefined;
|
|
27892
27918
|
};
|
|
27893
27919
|
}[];
|
|
27894
27920
|
meta: object;
|
|
@@ -27965,6 +27991,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
27965
27991
|
};
|
|
27966
27992
|
meta: object;
|
|
27967
27993
|
}>;
|
|
27994
|
+
setAgentInferenceDevices: import("@trpc/server").TRPCMutationProcedure<{
|
|
27995
|
+
input: any;
|
|
27996
|
+
output: any;
|
|
27997
|
+
meta: object;
|
|
27998
|
+
}>;
|
|
27968
27999
|
resetNodePipelineDefaults: import("@trpc/server").TRPCMutationProcedure<{
|
|
27969
28000
|
input: {
|
|
27970
28001
|
[x: string]: unknown;
|
|
@@ -28470,6 +28501,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
28470
28501
|
ownerReachableHost?: string | undefined;
|
|
28471
28502
|
hubHostnameOverride?: string | undefined;
|
|
28472
28503
|
} | undefined;
|
|
28504
|
+
deviceKey?: string | undefined;
|
|
28473
28505
|
};
|
|
28474
28506
|
output: {
|
|
28475
28507
|
success: true;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* scope+access check inside `protectedProcedure` (see
|
|
7
7
|
* `server/backend/src/api/trpc/trpc.middleware.ts`).
|
|
8
8
|
*
|
|
9
|
-
* Coverage:
|
|
9
|
+
* Coverage: 801 method paths across 116 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
12
12
|
export interface MethodAccessRecord {
|
|
@@ -76,7 +76,7 @@ export interface SystemProxy {
|
|
|
76
76
|
readonly nodes: Pick<InferProvider<typeof nodesCapability>, 'topology' | 'deployAddon' | 'undeployAddon' | 'restartAddon' | 'restartProcess' | 'restartNode' | 'shutdownNode' | 'renameNode' | 'clusterAddonStatus' | 'getCapUsageGraph' | 'getNodeAddons' | 'setProcessLogLevel' | 'executeQuery'>;
|
|
77
77
|
readonly notificationOutput: Pick<InferProvider<typeof notificationOutputCapability>, 'listTargetKinds' | 'listTargets' | 'discoverTargets' | 'send' | 'testTarget' | 'upsertTarget' | 'deleteTarget' | 'setTargetEnabled'>;
|
|
78
78
|
readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'reprobeEngine' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
|
|
79
|
-
readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAgentSettings' | 'listAgentSettings' | 'setAgentAddonDefaults' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentReachableHost' | 'resetNodePipelineDefaults' | 'getCameraStatuses' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
|
|
79
|
+
readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAgentSettings' | 'listAgentSettings' | 'setAgentAddonDefaults' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'resetNodePipelineDefaults' | 'getCameraStatuses' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
|
|
80
80
|
readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop'>;
|
|
81
81
|
readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
|
|
82
82
|
readonly recording: Pick<InferProvider<typeof recordingCapability>, 'getStorageUsage' | 'listOpsLog'>;
|
package/dist/index.js
CHANGED
|
@@ -8318,8 +8318,18 @@ var pipelineExecutorCapability = {
|
|
|
8318
8318
|
* - `runtime` — main camera-serving engine (no idle TTL).
|
|
8319
8319
|
* - `warm-override` — benchmark/test override held in the warm
|
|
8320
8320
|
* cache; auto-disposed after the idle TTL.
|
|
8321
|
+
* - `device-pool` — a concurrent per-device pool (Phase 2
|
|
8322
|
+
* multi-device, keyed by `deviceKey`) resolved
|
|
8323
|
+
* via `resolveDeviceFactory`. Runs alongside the
|
|
8324
|
+
* `runtime` engine on a DIFFERENT accelerator
|
|
8325
|
+
* (NPU / iGPU / Coral) — this is how the
|
|
8326
|
+
* Engines tab shows all pools running at once.
|
|
8321
8327
|
*/
|
|
8322
|
-
kind: zod.z.enum([
|
|
8328
|
+
kind: zod.z.enum([
|
|
8329
|
+
"runtime",
|
|
8330
|
+
"warm-override",
|
|
8331
|
+
"device-pool"
|
|
8332
|
+
]),
|
|
8323
8333
|
/** Native pid of the underlying Python pool (null when no pool). */
|
|
8324
8334
|
poolPid: zod.z.number().nullable(),
|
|
8325
8335
|
/** ms since this factory was last used (null when not warm-tracked). */
|
|
@@ -13456,6 +13466,7 @@ function createSystemProxy(api) {
|
|
|
13456
13466
|
setAgentDetectWeight: (input) => dispatch("pipelineOrchestrator", "setAgentDetectWeight", "mutation", input),
|
|
13457
13467
|
setAgentCapabilities: (input) => dispatch("pipelineOrchestrator", "setAgentCapabilities", "mutation", input),
|
|
13458
13468
|
setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
|
|
13469
|
+
setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
|
|
13459
13470
|
resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
|
|
13460
13471
|
getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
|
|
13461
13472
|
listTemplates: (input) => dispatch("pipelineOrchestrator", "listTemplates", "query", input),
|
|
@@ -19563,7 +19574,17 @@ var AgentPipelineSettingsSchema = zod.z.object({
|
|
|
19563
19574
|
* it already uses to reach the hub). Set this only when the auto-detected
|
|
19564
19575
|
* address is wrong (multi-homed host, NAT, custom interface).
|
|
19565
19576
|
*/
|
|
19566
|
-
reachableHost: zod.z.string().optional()
|
|
19577
|
+
reachableHost: zod.z.string().optional(),
|
|
19578
|
+
/**
|
|
19579
|
+
* Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
|
|
19580
|
+
* weight}. Absent / all-disabled ⇒ the node's single default accelerator
|
|
19581
|
+
* (safe default); two+ enabled ⇒ the dispatcher balances detection sessions
|
|
19582
|
+
* across them so they run CONCURRENTLY.
|
|
19583
|
+
*/
|
|
19584
|
+
inferenceDevices: zod.z.record(zod.z.string(), zod.z.object({
|
|
19585
|
+
enabled: zod.z.boolean(),
|
|
19586
|
+
weight: zod.z.number().positive().optional()
|
|
19587
|
+
})).optional()
|
|
19567
19588
|
});
|
|
19568
19589
|
var CameraPipelineForAgentSchema = zod.z.object({
|
|
19569
19590
|
steps: zod.z.array(PipelineStepInputSchema).readonly(),
|
|
@@ -20029,6 +20050,27 @@ var pipelineOrchestratorCapability = {
|
|
|
20029
20050
|
auth: "admin"
|
|
20030
20051
|
}),
|
|
20031
20052
|
/**
|
|
20053
|
+
* Set one node's multi-device inference opt-in (Phase 4 multi-device) — the
|
|
20054
|
+
* per-node `deviceKey → { enabled, weight }` map that decides which
|
|
20055
|
+
* accelerators the dispatcher may balance detection sessions across.
|
|
20056
|
+
* The map REPLACES the node's stored `inferenceDevices` wholesale (pass the
|
|
20057
|
+
* complete desired set; an empty map clears the opt-in → the node reverts to
|
|
20058
|
+
* its single DEFAULT accelerator). `weight` is optional and defaults to 1.
|
|
20059
|
+
* Creates the node's settings entry if absent. Changes take effect on the
|
|
20060
|
+
* next dispatch/rebalance cycle — the dispatcher reads the enabled set via
|
|
20061
|
+
* `PipelineSettingsStore.buildNodeInferenceDevices` when placing sessions.
|
|
20062
|
+
*/
|
|
20063
|
+
setAgentInferenceDevices: require_sleep.method(zod.z.object({
|
|
20064
|
+
agentNodeId: zod.z.string(),
|
|
20065
|
+
inferenceDevices: zod.z.record(zod.z.string(), zod.z.object({
|
|
20066
|
+
enabled: zod.z.boolean(),
|
|
20067
|
+
weight: zod.z.number().positive().optional()
|
|
20068
|
+
}))
|
|
20069
|
+
}), zod.z.object({ success: zod.z.literal(true) }), {
|
|
20070
|
+
kind: "mutation",
|
|
20071
|
+
auth: "admin"
|
|
20072
|
+
}),
|
|
20073
|
+
/**
|
|
20032
20074
|
* Reset one node's pipeline to its hardware-aware defaults — the HONEST
|
|
20033
20075
|
* reset (replaces the executor's legacy `resetToDefault`, which cleared a
|
|
20034
20076
|
* dead persisted step-tree seed nothing in the live path read):
|
|
@@ -29135,6 +29177,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29135
29177
|
addonId: null,
|
|
29136
29178
|
access: "create"
|
|
29137
29179
|
},
|
|
29180
|
+
"pipelineOrchestrator.setAgentInferenceDevices": {
|
|
29181
|
+
capName: "pipeline-orchestrator",
|
|
29182
|
+
capScope: "system",
|
|
29183
|
+
addonId: null,
|
|
29184
|
+
access: "create"
|
|
29185
|
+
},
|
|
29138
29186
|
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
29139
29187
|
capName: "pipeline-orchestrator",
|
|
29140
29188
|
capScope: "system",
|
|
@@ -31504,31 +31552,52 @@ function scoreRuntimes(hw) {
|
|
|
31504
31552
|
};
|
|
31505
31553
|
}
|
|
31506
31554
|
var DEVICE_FOR_BACKEND = {
|
|
31507
|
-
openvino: "gpu",
|
|
31508
31555
|
cuda: "gpu",
|
|
31509
31556
|
edgetpu: "usb",
|
|
31510
31557
|
coreml: "all",
|
|
31511
31558
|
cpu: "cpu"
|
|
31512
31559
|
};
|
|
31560
|
+
function device(backend, dev, format, score) {
|
|
31561
|
+
return {
|
|
31562
|
+
key: backend === "cpu" ? "cpu" : `${backend}:${dev}`,
|
|
31563
|
+
backend,
|
|
31564
|
+
device: dev,
|
|
31565
|
+
format,
|
|
31566
|
+
runtime: "python",
|
|
31567
|
+
score,
|
|
31568
|
+
available: true
|
|
31569
|
+
};
|
|
31570
|
+
}
|
|
31513
31571
|
/**
|
|
31514
|
-
* Enumerate every usable inference device on a node
|
|
31515
|
-
*
|
|
31516
|
-
*
|
|
31572
|
+
* Enumerate every usable inference device on a node — one descriptor PER PHYSICAL
|
|
31573
|
+
* ACCELERATOR, so the orchestrator can run and balance across all of them
|
|
31574
|
+
* CONCURRENTLY (each device is its own pool). Critically, OpenVINO is expanded
|
|
31575
|
+
* into its distinct devices (NPU / iGPU / CPU) rather than a single AUTO entry:
|
|
31576
|
+
* the Intel NPU ("AI Boost") and the iGPU are separate accelerators and run in
|
|
31577
|
+
* parallel — collapsing them to AUTO would leave one idle. NPU is scored above
|
|
31578
|
+
* the iGPU (faster for int8 detection AND frees the GPU).
|
|
31517
31579
|
*/
|
|
31518
31580
|
function enumerateInferenceDevices(hw) {
|
|
31519
31581
|
const { scores } = scoreRuntimes(hw);
|
|
31520
|
-
|
|
31521
|
-
|
|
31522
|
-
|
|
31523
|
-
|
|
31524
|
-
|
|
31525
|
-
|
|
31526
|
-
|
|
31527
|
-
|
|
31528
|
-
|
|
31529
|
-
|
|
31530
|
-
|
|
31531
|
-
|
|
31582
|
+
const out = [];
|
|
31583
|
+
for (const s of scores) {
|
|
31584
|
+
if (s.backend === "openvino") {
|
|
31585
|
+
if (hw.npu?.type === "intel-npu") out.push(device("openvino", "npu", s.format, s.score + 2));
|
|
31586
|
+
if (hw.gpu?.type === "intel") out.push(device("openvino", "gpu", s.format, s.score));
|
|
31587
|
+
continue;
|
|
31588
|
+
}
|
|
31589
|
+
if (s.backend === "edgetpu") {
|
|
31590
|
+
const coralCount = Math.max(1, hw.coral?.count ?? 1);
|
|
31591
|
+
for (let i = 0; i < coralCount; i++) {
|
|
31592
|
+
const dev = i === 0 ? "usb" : `usb:${i}`;
|
|
31593
|
+
out.push(device("edgetpu", dev, s.format, s.score));
|
|
31594
|
+
}
|
|
31595
|
+
continue;
|
|
31596
|
+
}
|
|
31597
|
+
const dev = DEVICE_FOR_BACKEND[s.backend] ?? s.backend;
|
|
31598
|
+
out.push(device(s.backend, dev, s.format, s.score));
|
|
31599
|
+
}
|
|
31600
|
+
return out;
|
|
31532
31601
|
}
|
|
31533
31602
|
//#endregion
|
|
31534
31603
|
exports.ACCESSORY_LABEL = ACCESSORY_LABEL;
|
package/dist/index.mjs
CHANGED
|
@@ -8317,8 +8317,18 @@ var pipelineExecutorCapability = {
|
|
|
8317
8317
|
* - `runtime` — main camera-serving engine (no idle TTL).
|
|
8318
8318
|
* - `warm-override` — benchmark/test override held in the warm
|
|
8319
8319
|
* cache; auto-disposed after the idle TTL.
|
|
8320
|
+
* - `device-pool` — a concurrent per-device pool (Phase 2
|
|
8321
|
+
* multi-device, keyed by `deviceKey`) resolved
|
|
8322
|
+
* via `resolveDeviceFactory`. Runs alongside the
|
|
8323
|
+
* `runtime` engine on a DIFFERENT accelerator
|
|
8324
|
+
* (NPU / iGPU / Coral) — this is how the
|
|
8325
|
+
* Engines tab shows all pools running at once.
|
|
8320
8326
|
*/
|
|
8321
|
-
kind: z.enum([
|
|
8327
|
+
kind: z.enum([
|
|
8328
|
+
"runtime",
|
|
8329
|
+
"warm-override",
|
|
8330
|
+
"device-pool"
|
|
8331
|
+
]),
|
|
8322
8332
|
/** Native pid of the underlying Python pool (null when no pool). */
|
|
8323
8333
|
poolPid: z.number().nullable(),
|
|
8324
8334
|
/** ms since this factory was last used (null when not warm-tracked). */
|
|
@@ -13455,6 +13465,7 @@ function createSystemProxy(api) {
|
|
|
13455
13465
|
setAgentDetectWeight: (input) => dispatch("pipelineOrchestrator", "setAgentDetectWeight", "mutation", input),
|
|
13456
13466
|
setAgentCapabilities: (input) => dispatch("pipelineOrchestrator", "setAgentCapabilities", "mutation", input),
|
|
13457
13467
|
setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
|
|
13468
|
+
setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
|
|
13458
13469
|
resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
|
|
13459
13470
|
getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
|
|
13460
13471
|
listTemplates: (input) => dispatch("pipelineOrchestrator", "listTemplates", "query", input),
|
|
@@ -19562,7 +19573,17 @@ var AgentPipelineSettingsSchema = z.object({
|
|
|
19562
19573
|
* it already uses to reach the hub). Set this only when the auto-detected
|
|
19563
19574
|
* address is wrong (multi-homed host, NAT, custom interface).
|
|
19564
19575
|
*/
|
|
19565
|
-
reachableHost: z.string().optional()
|
|
19576
|
+
reachableHost: z.string().optional(),
|
|
19577
|
+
/**
|
|
19578
|
+
* Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
|
|
19579
|
+
* weight}. Absent / all-disabled ⇒ the node's single default accelerator
|
|
19580
|
+
* (safe default); two+ enabled ⇒ the dispatcher balances detection sessions
|
|
19581
|
+
* across them so they run CONCURRENTLY.
|
|
19582
|
+
*/
|
|
19583
|
+
inferenceDevices: z.record(z.string(), z.object({
|
|
19584
|
+
enabled: z.boolean(),
|
|
19585
|
+
weight: z.number().positive().optional()
|
|
19586
|
+
})).optional()
|
|
19566
19587
|
});
|
|
19567
19588
|
var CameraPipelineForAgentSchema = z.object({
|
|
19568
19589
|
steps: z.array(PipelineStepInputSchema).readonly(),
|
|
@@ -20028,6 +20049,27 @@ var pipelineOrchestratorCapability = {
|
|
|
20028
20049
|
auth: "admin"
|
|
20029
20050
|
}),
|
|
20030
20051
|
/**
|
|
20052
|
+
* Set one node's multi-device inference opt-in (Phase 4 multi-device) — the
|
|
20053
|
+
* per-node `deviceKey → { enabled, weight }` map that decides which
|
|
20054
|
+
* accelerators the dispatcher may balance detection sessions across.
|
|
20055
|
+
* The map REPLACES the node's stored `inferenceDevices` wholesale (pass the
|
|
20056
|
+
* complete desired set; an empty map clears the opt-in → the node reverts to
|
|
20057
|
+
* its single DEFAULT accelerator). `weight` is optional and defaults to 1.
|
|
20058
|
+
* Creates the node's settings entry if absent. Changes take effect on the
|
|
20059
|
+
* next dispatch/rebalance cycle — the dispatcher reads the enabled set via
|
|
20060
|
+
* `PipelineSettingsStore.buildNodeInferenceDevices` when placing sessions.
|
|
20061
|
+
*/
|
|
20062
|
+
setAgentInferenceDevices: method(z.object({
|
|
20063
|
+
agentNodeId: z.string(),
|
|
20064
|
+
inferenceDevices: z.record(z.string(), z.object({
|
|
20065
|
+
enabled: z.boolean(),
|
|
20066
|
+
weight: z.number().positive().optional()
|
|
20067
|
+
}))
|
|
20068
|
+
}), z.object({ success: z.literal(true) }), {
|
|
20069
|
+
kind: "mutation",
|
|
20070
|
+
auth: "admin"
|
|
20071
|
+
}),
|
|
20072
|
+
/**
|
|
20031
20073
|
* Reset one node's pipeline to its hardware-aware defaults — the HONEST
|
|
20032
20074
|
* reset (replaces the executor's legacy `resetToDefault`, which cleared a
|
|
20033
20075
|
* dead persisted step-tree seed nothing in the live path read):
|
|
@@ -29134,6 +29176,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
29134
29176
|
addonId: null,
|
|
29135
29177
|
access: "create"
|
|
29136
29178
|
},
|
|
29179
|
+
"pipelineOrchestrator.setAgentInferenceDevices": {
|
|
29180
|
+
capName: "pipeline-orchestrator",
|
|
29181
|
+
capScope: "system",
|
|
29182
|
+
addonId: null,
|
|
29183
|
+
access: "create"
|
|
29184
|
+
},
|
|
29137
29185
|
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
29138
29186
|
capName: "pipeline-orchestrator",
|
|
29139
29187
|
capScope: "system",
|
|
@@ -31503,31 +31551,52 @@ function scoreRuntimes(hw) {
|
|
|
31503
31551
|
};
|
|
31504
31552
|
}
|
|
31505
31553
|
var DEVICE_FOR_BACKEND = {
|
|
31506
|
-
openvino: "gpu",
|
|
31507
31554
|
cuda: "gpu",
|
|
31508
31555
|
edgetpu: "usb",
|
|
31509
31556
|
coreml: "all",
|
|
31510
31557
|
cpu: "cpu"
|
|
31511
31558
|
};
|
|
31559
|
+
function device(backend, dev, format, score) {
|
|
31560
|
+
return {
|
|
31561
|
+
key: backend === "cpu" ? "cpu" : `${backend}:${dev}`,
|
|
31562
|
+
backend,
|
|
31563
|
+
device: dev,
|
|
31564
|
+
format,
|
|
31565
|
+
runtime: "python",
|
|
31566
|
+
score,
|
|
31567
|
+
available: true
|
|
31568
|
+
};
|
|
31569
|
+
}
|
|
31512
31570
|
/**
|
|
31513
|
-
* Enumerate every usable inference device on a node
|
|
31514
|
-
*
|
|
31515
|
-
*
|
|
31571
|
+
* Enumerate every usable inference device on a node — one descriptor PER PHYSICAL
|
|
31572
|
+
* ACCELERATOR, so the orchestrator can run and balance across all of them
|
|
31573
|
+
* CONCURRENTLY (each device is its own pool). Critically, OpenVINO is expanded
|
|
31574
|
+
* into its distinct devices (NPU / iGPU / CPU) rather than a single AUTO entry:
|
|
31575
|
+
* the Intel NPU ("AI Boost") and the iGPU are separate accelerators and run in
|
|
31576
|
+
* parallel — collapsing them to AUTO would leave one idle. NPU is scored above
|
|
31577
|
+
* the iGPU (faster for int8 detection AND frees the GPU).
|
|
31516
31578
|
*/
|
|
31517
31579
|
function enumerateInferenceDevices(hw) {
|
|
31518
31580
|
const { scores } = scoreRuntimes(hw);
|
|
31519
|
-
|
|
31520
|
-
|
|
31521
|
-
|
|
31522
|
-
|
|
31523
|
-
|
|
31524
|
-
|
|
31525
|
-
|
|
31526
|
-
|
|
31527
|
-
|
|
31528
|
-
|
|
31529
|
-
|
|
31530
|
-
|
|
31581
|
+
const out = [];
|
|
31582
|
+
for (const s of scores) {
|
|
31583
|
+
if (s.backend === "openvino") {
|
|
31584
|
+
if (hw.npu?.type === "intel-npu") out.push(device("openvino", "npu", s.format, s.score + 2));
|
|
31585
|
+
if (hw.gpu?.type === "intel") out.push(device("openvino", "gpu", s.format, s.score));
|
|
31586
|
+
continue;
|
|
31587
|
+
}
|
|
31588
|
+
if (s.backend === "edgetpu") {
|
|
31589
|
+
const coralCount = Math.max(1, hw.coral?.count ?? 1);
|
|
31590
|
+
for (let i = 0; i < coralCount; i++) {
|
|
31591
|
+
const dev = i === 0 ? "usb" : `usb:${i}`;
|
|
31592
|
+
out.push(device("edgetpu", dev, s.format, s.score));
|
|
31593
|
+
}
|
|
31594
|
+
continue;
|
|
31595
|
+
}
|
|
31596
|
+
const dev = DEVICE_FOR_BACKEND[s.backend] ?? s.backend;
|
|
31597
|
+
out.push(device(s.backend, dev, s.format, s.score));
|
|
31598
|
+
}
|
|
31599
|
+
return out;
|
|
31531
31600
|
}
|
|
31532
31601
|
//#endregion
|
|
31533
31602
|
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_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, 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 };
|
|
@@ -63,9 +63,13 @@ interface ScoreRuntimesResult {
|
|
|
63
63
|
*/
|
|
64
64
|
export declare function scoreRuntimes(hw: HardwareInfo): ScoreRuntimesResult;
|
|
65
65
|
/**
|
|
66
|
-
* Enumerate every usable inference device on a node
|
|
67
|
-
*
|
|
68
|
-
*
|
|
66
|
+
* Enumerate every usable inference device on a node — one descriptor PER PHYSICAL
|
|
67
|
+
* ACCELERATOR, so the orchestrator can run and balance across all of them
|
|
68
|
+
* CONCURRENTLY (each device is its own pool). Critically, OpenVINO is expanded
|
|
69
|
+
* into its distinct devices (NPU / iGPU / CPU) rather than a single AUTO entry:
|
|
70
|
+
* the Intel NPU ("AI Boost") and the iGPU are separate accelerators and run in
|
|
71
|
+
* parallel — collapsing them to AUTO would leave one idle. NPU is scored above
|
|
72
|
+
* the iGPU (faster for int8 detection AND frees the GPU).
|
|
69
73
|
*/
|
|
70
74
|
export declare function enumerateInferenceDevices(hw: HardwareInfo): readonly InferenceDeviceDescriptor[];
|
|
71
75
|
export {};
|
|
@@ -57,6 +57,13 @@ export interface PipelineRunInput {
|
|
|
57
57
|
*/
|
|
58
58
|
readonly image?: Uint8Array;
|
|
59
59
|
readonly deviceId?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Inference-device selector (Phase 2 multi-device). `<backend>:<device>`
|
|
62
|
+
* (e.g. `openvino:npu`, `openvino:gpu`, `edgetpu:usb`, `cpu`). Omitted ⇒ the
|
|
63
|
+
* node's default engine pool. Routes the call to that device's own pool so a
|
|
64
|
+
* node runs detection on NPU + iGPU + Coral concurrently.
|
|
65
|
+
*/
|
|
66
|
+
readonly deviceKey?: string;
|
|
60
67
|
/**
|
|
61
68
|
* Correlation id tagged on every `pipeline.progress` event emitted
|
|
62
69
|
* by this run. When a UI-initiated one-shot (`runPipelineTest`)
|
|
@@ -23,6 +23,8 @@ export interface GpuInfo {
|
|
|
23
23
|
}
|
|
24
24
|
export interface NpuInfo {
|
|
25
25
|
readonly type: 'apple-ane' | 'intel-npu';
|
|
26
|
+
/** Human-readable accelerator name (e.g. `Intel AI Boost NPU`), when known. */
|
|
27
|
+
readonly name?: string;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* Coral USB Edge TPU (Google Coral). A discrete USB inference accelerator that
|
|
@@ -34,6 +36,14 @@ export interface CoralInfo {
|
|
|
34
36
|
readonly type: 'coral-edgetpu';
|
|
35
37
|
/** Bus location hint (e.g. `usb`), informational. */
|
|
36
38
|
readonly bus?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Number of physically attached Coral Edge TPUs. Multiple Corals coexist on
|
|
41
|
+
* one host and run CONCURRENTLY, one inference pool each — the enumerator emits
|
|
42
|
+
* one device descriptor per unit (`edgetpu:usb`, `edgetpu:usb:1`, …). Omitted /
|
|
43
|
+
* undefined ⇒ treat as a single Coral (the probe couldn't count them, e.g. a
|
|
44
|
+
* container with a limited `/sys` USB view — the delegate-presence fallback).
|
|
45
|
+
*/
|
|
46
|
+
readonly count?: number;
|
|
37
47
|
}
|
|
38
48
|
/** A probed backend with availability and score */
|
|
39
49
|
export interface PlatformScore {
|
|
@@ -100,6 +100,22 @@ export interface AgentPipelineSettings {
|
|
|
100
100
|
* auto-detected address is wrong (multi-homed host, NAT, custom interface).
|
|
101
101
|
*/
|
|
102
102
|
readonly reachableHost?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Multi-device inference opt-in (Phase 4 multi-device). Maps a device key
|
|
105
|
+
* (`openvino:npu`, `openvino:gpu`, `edgetpu:usb`, `edgetpu:usb:1`, `cpu`, …
|
|
106
|
+
* from `enumerateInferenceDevices`) to whether the orchestrator may dispatch
|
|
107
|
+
* detection SESSIONS onto that device's pool, plus a relative `weight`.
|
|
108
|
+
*
|
|
109
|
+
* Absent / all-disabled ⇒ the node runs detection on its single DEFAULT
|
|
110
|
+
* device (the runner picks it; deviceKey is left unset) — the safe default:
|
|
111
|
+
* one best accelerator, others opt-in. When TWO+ keys are enabled the
|
|
112
|
+
* dispatcher balances new sessions across them (weighted, by active-session
|
|
113
|
+
* count) so the accelerators run CONCURRENTLY.
|
|
114
|
+
*/
|
|
115
|
+
readonly inferenceDevices?: Readonly<Record<string, {
|
|
116
|
+
readonly enabled: boolean;
|
|
117
|
+
readonly weight?: number;
|
|
118
|
+
}>>;
|
|
103
119
|
}
|
|
104
120
|
/**
|
|
105
121
|
* Per-camera pipeline settings. Sparse by design — a camera that has
|