@camstack/types 1.2.403 → 1.2.404
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 +2 -2
- package/dist/addon.mjs +2 -2
- package/dist/capabilities/index.d.ts +2 -2
- package/dist/capabilities/pipeline-analytics.cap.d.ts +3 -0
- package/dist/capabilities/pipeline-executor.cap.d.ts +0 -64
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +32 -124
- package/dist/capabilities/training.cap.d.ts +91 -71
- package/dist/client.js +2 -8
- package/dist/client.mjs +2 -8
- package/dist/enums/event-category.d.ts +2 -3
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-7AwNbPjm.js → event-category-CXrwjC3e.js} +2 -3
- package/dist/{event-category-BfJwUd2S.mjs → event-category-fDPduoeC.mjs} +2 -3
- package/dist/generated/addon-api.d.ts +14 -56
- package/dist/generated/device-proxy.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +2 -2
- package/dist/generated/system-proxy.d.ts +3 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.js +135 -276
- package/dist/index.mjs +131 -275
- package/dist/interfaces/birth-decision-ledger.d.ts +3 -0
- package/dist/interfaces/pipeline-executor-capability.d.ts +2 -8
- package/dist/pipeline/auto-tune/plan-schemas.d.ts +8 -80
- package/dist/pipeline/step-settings-layers.d.ts +7 -8
- package/dist/{sleep-Ch67uumJ.js → sleep-BKS4OPMo.js} +1 -4
- package/dist/{sleep-6AqUnQIT.mjs → sleep-CHIEEJkY.mjs} +1 -4
- package/dist/types/agent-pipeline-settings.d.ts +37 -70
- package/dist/types/camera-pipeline.d.ts +2 -2
- package/dist/types/detection.d.ts +15 -5
- package/dist/types/pipeline-step.d.ts +0 -16
- package/package.json +1 -1
|
@@ -121,6 +121,9 @@ export declare const BirthDecisionRecordSchema: z.ZodObject<{
|
|
|
121
121
|
decidedByBirthEvidence: z.ZodBoolean;
|
|
122
122
|
bestScore: z.ZodNullable<z.ZodNumber>;
|
|
123
123
|
appliedMinConfidence: z.ZodNullable<z.ZodNumber>;
|
|
124
|
+
detectorModelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
125
|
+
detectorDeviceKey: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
126
|
+
detectorNodeId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
124
127
|
firstSeen: z.ZodNullable<z.ZodNumber>;
|
|
125
128
|
motionOnsetAt: z.ZodNullable<z.ZodNumber>;
|
|
126
129
|
birthLatencyMs: z.ZodNullable<z.ZodNumber>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { PipelineEngineChoice
|
|
1
|
+
import type { PipelineEngineChoice } from '../types/pipeline.js';
|
|
2
2
|
import type { PipelineExecutionPlane } from '../types/pipeline-step.js';
|
|
3
|
-
import type { PipelineSchema
|
|
3
|
+
import type { PipelineSchema } from '../types/pipeline-schema.js';
|
|
4
4
|
import type { ModelFormat } from '../types/models.js';
|
|
5
5
|
import type { FrameInput } from '../types/io.js';
|
|
6
6
|
import type { FrameRef } from '../types/frame-view.js';
|
|
@@ -112,12 +112,6 @@ export interface IPipelineExecutorProvider {
|
|
|
112
112
|
getSchema(engine?: PipelineEngineChoice): Promise<PipelineSchema>;
|
|
113
113
|
/** Get all available engines probed on this agent */
|
|
114
114
|
getAvailableEngines(): Promise<PipelineEngineChoice[]>;
|
|
115
|
-
/** Build default step tree for an engine */
|
|
116
|
-
getDefaultSteps(engine: PipelineEngineChoice): Promise<PipelineDefaultStep[]>;
|
|
117
|
-
/** Compute this node's hardware-aware default step tree (null when the catalog yields no steps). */
|
|
118
|
-
getGlobalSteps(): Promise<PipelineDefaultStep[] | null>;
|
|
119
|
-
/** Get the runner-ready pipeline config */
|
|
120
|
-
getGlobalPipelineConfig(): Promise<PipelineConfig | null>;
|
|
121
115
|
/**
|
|
122
116
|
* Gate B (pre-init config-correctness gate). PURE COMPUTE against this
|
|
123
117
|
* node's `currentEngine.format` — resolves `steps` the same way the
|
|
@@ -381,33 +381,15 @@ export declare const NodeDeviceChangeSchema: z.ZodObject<{
|
|
|
381
381
|
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
382
382
|
}, z.core.$strip>>>;
|
|
383
383
|
}, z.core.$strip>;
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
}>;
|
|
390
|
-
nodeId: z.ZodString;
|
|
391
|
-
deviceKey: z.ZodNullable<z.ZodString>;
|
|
392
|
-
stepId: z.ZodString;
|
|
393
|
-
modelIdBefore: z.ZodNullable<z.ZodString>;
|
|
394
|
-
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
395
|
-
}, z.core.$strip>;
|
|
396
|
-
export declare const DetectorStoreClearSchema: z.ZodObject<{
|
|
397
|
-
deviceId: z.ZodNumber;
|
|
398
|
-
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
399
|
-
}, z.core.$strip>;
|
|
384
|
+
/**
|
|
385
|
+
* Every model and model-bound threshold lives on the accelerator that runs it
|
|
386
|
+
* (D927), so the plan writes node / device entries only — there is no camera
|
|
387
|
+
* layer for it to clear.
|
|
388
|
+
*/
|
|
400
389
|
export declare const AutoTuneWarningSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
401
|
-
kind: z.ZodLiteral<"detector-store-cluster-wide">;
|
|
402
|
-
skippedNodes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
403
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
404
|
-
kind: z.ZodLiteral<"detector-store-unreadable">;
|
|
405
|
-
error: z.ZodString;
|
|
406
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
407
390
|
kind: z.ZodLiteral<"custom-pin-kept">;
|
|
408
391
|
nodeId: z.ZodString;
|
|
409
|
-
deviceKey: z.
|
|
410
|
-
deviceId: z.ZodNullable<z.ZodNumber>;
|
|
392
|
+
deviceKey: z.ZodString;
|
|
411
393
|
modelId: z.ZodString;
|
|
412
394
|
}, z.core.$strip>, z.ZodObject<{
|
|
413
395
|
kind: z.ZodLiteral<"custom-registry-unreadable">;
|
|
@@ -596,33 +578,10 @@ export declare const AutoTunePlanSchema: z.ZodObject<{
|
|
|
596
578
|
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
597
579
|
}, z.core.$strip>>>;
|
|
598
580
|
}, z.core.$strip>>>;
|
|
599
|
-
cameraClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
600
|
-
deviceId: z.ZodNumber;
|
|
601
|
-
source: z.ZodEnum<{
|
|
602
|
-
"step-override": "step-override";
|
|
603
|
-
wholesale: "wholesale";
|
|
604
|
-
}>;
|
|
605
|
-
nodeId: z.ZodString;
|
|
606
|
-
deviceKey: z.ZodNullable<z.ZodString>;
|
|
607
|
-
stepId: z.ZodString;
|
|
608
|
-
modelIdBefore: z.ZodNullable<z.ZodString>;
|
|
609
|
-
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
610
|
-
}, z.core.$strip>>>;
|
|
611
|
-
detectorStoreClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
612
|
-
deviceId: z.ZodNumber;
|
|
613
|
-
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
614
|
-
}, z.core.$strip>>>;
|
|
615
581
|
warnings: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
616
|
-
kind: z.ZodLiteral<"detector-store-cluster-wide">;
|
|
617
|
-
skippedNodes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
618
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
619
|
-
kind: z.ZodLiteral<"detector-store-unreadable">;
|
|
620
|
-
error: z.ZodString;
|
|
621
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
622
582
|
kind: z.ZodLiteral<"custom-pin-kept">;
|
|
623
583
|
nodeId: z.ZodString;
|
|
624
|
-
deviceKey: z.
|
|
625
|
-
deviceId: z.ZodNullable<z.ZodNumber>;
|
|
584
|
+
deviceKey: z.ZodString;
|
|
626
585
|
modelId: z.ZodString;
|
|
627
586
|
}, z.core.$strip>, z.ZodObject<{
|
|
628
587
|
kind: z.ZodLiteral<"custom-registry-unreadable">;
|
|
@@ -636,8 +595,6 @@ export declare const AutoTuneApplyInputSchema: z.ZodObject<{
|
|
|
636
595
|
}, z.core.$strip>;
|
|
637
596
|
export declare const AutoTunePhaseResultSchema: z.ZodObject<{
|
|
638
597
|
phase: z.ZodEnum<{
|
|
639
|
-
"camera-overrides": "camera-overrides";
|
|
640
|
-
"detector-thresholds": "detector-thresholds";
|
|
641
598
|
download: "download";
|
|
642
599
|
"node-models": "node-models";
|
|
643
600
|
redispatch: "redispatch";
|
|
@@ -650,8 +607,6 @@ export declare const AutoTuneApplyResultSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
650
607
|
planHash: z.ZodString;
|
|
651
608
|
phases: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
652
609
|
phase: z.ZodEnum<{
|
|
653
|
-
"camera-overrides": "camera-overrides";
|
|
654
|
-
"detector-thresholds": "detector-thresholds";
|
|
655
610
|
download: "download";
|
|
656
611
|
"node-models": "node-models";
|
|
657
612
|
redispatch: "redispatch";
|
|
@@ -663,8 +618,6 @@ export declare const AutoTuneApplyResultSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
663
618
|
kind: z.ZodLiteral<"aborted">;
|
|
664
619
|
phases: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
665
620
|
phase: z.ZodEnum<{
|
|
666
|
-
"camera-overrides": "camera-overrides";
|
|
667
|
-
"detector-thresholds": "detector-thresholds";
|
|
668
621
|
download: "download";
|
|
669
622
|
"node-models": "node-models";
|
|
670
623
|
redispatch: "redispatch";
|
|
@@ -853,33 +806,10 @@ export declare const AutoTuneApplyResultSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
853
806
|
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
854
807
|
}, z.core.$strip>>>;
|
|
855
808
|
}, z.core.$strip>>>;
|
|
856
|
-
cameraClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
857
|
-
deviceId: z.ZodNumber;
|
|
858
|
-
source: z.ZodEnum<{
|
|
859
|
-
"step-override": "step-override";
|
|
860
|
-
wholesale: "wholesale";
|
|
861
|
-
}>;
|
|
862
|
-
nodeId: z.ZodString;
|
|
863
|
-
deviceKey: z.ZodNullable<z.ZodString>;
|
|
864
|
-
stepId: z.ZodString;
|
|
865
|
-
modelIdBefore: z.ZodNullable<z.ZodString>;
|
|
866
|
-
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
867
|
-
}, z.core.$strip>>>;
|
|
868
|
-
detectorStoreClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
869
|
-
deviceId: z.ZodNumber;
|
|
870
|
-
keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
871
|
-
}, z.core.$strip>>>;
|
|
872
809
|
warnings: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
873
|
-
kind: z.ZodLiteral<"detector-store-cluster-wide">;
|
|
874
|
-
skippedNodes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
875
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
876
|
-
kind: z.ZodLiteral<"detector-store-unreadable">;
|
|
877
|
-
error: z.ZodString;
|
|
878
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
879
810
|
kind: z.ZodLiteral<"custom-pin-kept">;
|
|
880
811
|
nodeId: z.ZodString;
|
|
881
|
-
deviceKey: z.
|
|
882
|
-
deviceId: z.ZodNullable<z.ZodNumber>;
|
|
812
|
+
deviceKey: z.ZodString;
|
|
883
813
|
modelId: z.ZodString;
|
|
884
814
|
}, z.core.$strip>, z.ZodObject<{
|
|
885
815
|
kind: z.ZodLiteral<"custom-registry-unreadable">;
|
|
@@ -898,8 +828,6 @@ export type AutoTuneApplyInput = z.infer<typeof AutoTuneApplyInputSchema>;
|
|
|
898
828
|
export type AutoTuneApplyResult = z.infer<typeof AutoTuneApplyResultSchema>;
|
|
899
829
|
export type AutoTunePhaseResult = z.infer<typeof AutoTunePhaseResultSchema>;
|
|
900
830
|
export type AutoTuneWarning = z.infer<typeof AutoTuneWarningSchema>;
|
|
901
|
-
export type DetectorStoreClear = z.infer<typeof DetectorStoreClearSchema>;
|
|
902
|
-
export type AutoTuneCameraOverrideClear = z.infer<typeof CameraOverrideClearSchema>;
|
|
903
831
|
export type AutoTuneNodeDeviceChange = z.infer<typeof NodeDeviceChangeSchema>;
|
|
904
832
|
export type HardwareClassId = z.infer<typeof HardwareClassIdSchema>;
|
|
905
833
|
export type AcceleratorKind = z.infer<typeof AcceleratorKindSchema>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The layers of a detection step's settings, and the field-level edits on them
|
|
3
|
-
* (D754).
|
|
3
|
+
* (D754, D927).
|
|
4
4
|
*
|
|
5
|
-
* A step's settings reach a session through
|
|
6
|
-
* key
|
|
5
|
+
* A step's settings reach a session through two stored layers, merged key by
|
|
6
|
+
* key — a key in the higher layer wins:
|
|
7
7
|
*
|
|
8
|
-
* node the node's
|
|
9
|
-
* camera `cameraSettings[cam].stepSettings[step]` —
|
|
10
|
-
*
|
|
8
|
+
* node the node's base for the accelerator that runs the step
|
|
9
|
+
* camera `cameraSettings[cam].stepSettings[step]` — camera-semantic
|
|
10
|
+
* keys only, on every accelerator (never a model-bound field)
|
|
11
11
|
*
|
|
12
12
|
* Below them sits the default: the running model's (D738) or the field's own.
|
|
13
13
|
*
|
|
@@ -27,12 +27,11 @@
|
|
|
27
27
|
export type StepSettingsBag = Readonly<Record<string, unknown>>;
|
|
28
28
|
/** The stored layers, from the top. `undefined` = the layer stores nothing for this step. */
|
|
29
29
|
export interface StepSettingsLayers {
|
|
30
|
-
readonly accelerator?: StepSettingsBag;
|
|
31
30
|
readonly camera?: StepSettingsBag;
|
|
32
31
|
readonly node?: StepSettingsBag;
|
|
33
32
|
}
|
|
34
33
|
/** Which stored layer supplies a field, or `default` when none does. */
|
|
35
|
-
export type StepSettingSource = '
|
|
34
|
+
export type StepSettingSource = 'camera' | 'node' | 'default';
|
|
36
35
|
/**
|
|
37
36
|
* The keys one field occupies in a bag: its own, plus its binding key when it
|
|
38
37
|
* binds to a model. `boundKeys` = `collectModelBoundKeys(schema)`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_event_category = require("./event-category-
|
|
1
|
+
const require_event_category = require("./event-category-CXrwjC3e.js");
|
|
2
2
|
let zod = require("zod");
|
|
3
3
|
//#region src/audio/audio-chunk-format.ts
|
|
4
4
|
/**
|
|
@@ -7540,10 +7540,7 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
7540
7540
|
setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
|
|
7541
7541
|
getCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "getCameraDetectionSource", "query", input),
|
|
7542
7542
|
setCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "setCameraDetectionSource", "mutation", input),
|
|
7543
|
-
getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
|
|
7544
|
-
setCameraStepOverride: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepOverride", "mutation", input),
|
|
7545
7543
|
setCameraStepSettings: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepSettings", "mutation", input),
|
|
7546
|
-
setCameraPipelineForAgent: (input) => dispatchSystem("pipelineOrchestrator", "setCameraPipelineForAgent", "mutation", input),
|
|
7547
7544
|
resolvePipeline: (input) => dispatchSystem("pipelineOrchestrator", "resolvePipeline", "query", input),
|
|
7548
7545
|
getCameraSwitches: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSwitches", "query", input),
|
|
7549
7546
|
setCameraSwitch: (input) => dispatchSystem("pipelineOrchestrator", "setCameraSwitch", "mutation", input),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as EventCategory } from "./event-category-
|
|
1
|
+
import { t as EventCategory } from "./event-category-fDPduoeC.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region src/audio/audio-chunk-format.ts
|
|
4
4
|
/**
|
|
@@ -7540,10 +7540,7 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
7540
7540
|
setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
|
|
7541
7541
|
getCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "getCameraDetectionSource", "query", input),
|
|
7542
7542
|
setCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "setCameraDetectionSource", "mutation", input),
|
|
7543
|
-
getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
|
|
7544
|
-
setCameraStepOverride: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepOverride", "mutation", input),
|
|
7545
7543
|
setCameraStepSettings: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepSettings", "mutation", input),
|
|
7546
|
-
setCameraPipelineForAgent: (input) => dispatchSystem("pipelineOrchestrator", "setCameraPipelineForAgent", "mutation", input),
|
|
7547
7544
|
resolvePipeline: (input) => dispatchSystem("pipelineOrchestrator", "resolvePipeline", "query", input),
|
|
7548
7545
|
getCameraSwitches: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSwitches", "query", input),
|
|
7549
7546
|
setCameraSwitch: (input) => dispatchSystem("pipelineOrchestrator", "setCameraSwitch", "mutation", input),
|
|
@@ -9,39 +9,21 @@
|
|
|
9
9
|
* 2. Camera opts in or out of specific addonIds via a boolean overlay
|
|
10
10
|
* (`stepToggles`). Absent = inherit agent. Present = force.
|
|
11
11
|
*
|
|
12
|
-
* 3.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* 3. A model is chosen by the accelerator that runs it (D927): a camera
|
|
13
|
+
* turns steps on or off and may carry camera-semantic step settings,
|
|
14
|
+
* never a model, a model-bound threshold or a tree of its own.
|
|
15
15
|
*
|
|
16
16
|
* The resolver walks this chain and emits the existing
|
|
17
17
|
* `CameraPipelineConfig` shape that the runner consumes — no changes
|
|
18
18
|
* required downstream of the orchestrator.
|
|
19
19
|
*/
|
|
20
|
-
import type { CameraPipelineConfig } from './camera-pipeline.js';
|
|
21
20
|
import type { NodeColorId } from '../node-color.js';
|
|
22
|
-
/**
|
|
23
|
-
* LEGACY per-addon configuration (the removed per-node model layer,
|
|
24
|
-
* `agent.addonDefaults[addonId]`). Retained ONLY for the one-shot boot
|
|
25
|
-
* migration that strips `addonDefaults`, and for UI/library code pending
|
|
26
|
-
* the per-(node,device) rework. New code carries model/settings per
|
|
27
|
-
* `(node,device)` via {@link DeviceStepConfig}.
|
|
28
|
-
*
|
|
29
|
-
* modelId present ONLY when the operator explicitly chose a model;
|
|
30
|
-
* absent = use this node's format default (resolved on-the-fly by the
|
|
31
|
-
* provider).
|
|
32
|
-
*/
|
|
33
|
-
export interface AgentAddonConfig {
|
|
34
|
-
readonly enabled: boolean;
|
|
35
|
-
readonly modelId?: string;
|
|
36
|
-
readonly settings: Readonly<Record<string, unknown>>;
|
|
37
|
-
}
|
|
38
21
|
/**
|
|
39
22
|
* Per-(node,device) BASE provisioning for one step: the model + intrinsic
|
|
40
23
|
* settings the executing node applies for EVERY camera landing on that
|
|
41
24
|
* accelerator. Both fields optional — absent = the executor resolves its own
|
|
42
|
-
* format default at runtime.
|
|
43
|
-
*
|
|
44
|
-
* provisioning stage merges override on top of base (`override ?? base`).
|
|
25
|
+
* format default at runtime. The ONE authority over which model a step runs
|
|
26
|
+
* on an accelerator (D927) — no camera layer overrides it.
|
|
45
27
|
*/
|
|
46
28
|
export interface DeviceStepConfig {
|
|
47
29
|
readonly modelId?: string;
|
|
@@ -55,17 +37,6 @@ export interface DeviceStepConfig {
|
|
|
55
37
|
*/
|
|
56
38
|
readonly jumpDeviceKey?: string;
|
|
57
39
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Per-(camera,node,device,step) override patch over the per-(node,device)
|
|
60
|
-
* base ({@link DeviceStepConfig}). Both fields optional — unset means
|
|
61
|
-
* "inherit from the device base". Enablement is NOT carried here: which
|
|
62
|
-
* steps run is the per-camera `stepToggles` authority. When `settings` is
|
|
63
|
-
* present it merges over the base `settings` (override keys win).
|
|
64
|
-
*/
|
|
65
|
-
export interface CameraStepOverridePatch {
|
|
66
|
-
readonly modelId?: string;
|
|
67
|
-
readonly settings?: Readonly<Record<string, unknown>>;
|
|
68
|
-
}
|
|
69
40
|
/**
|
|
70
41
|
* Per-agent pipeline settings. Phase 2f: engine + hwaccel + audio
|
|
71
42
|
* ownership moved to per-addon global settings (detection-pipeline,
|
|
@@ -128,6 +99,15 @@ export interface AgentPipelineSettings {
|
|
|
128
99
|
* `assignNodeColorId(nodeId)` when missing.
|
|
129
100
|
*/
|
|
130
101
|
readonly color?: NodeColorId;
|
|
102
|
+
/**
|
|
103
|
+
* NODE-wide step settings (D927): `[stepId] → { fieldKey → value }`, the
|
|
104
|
+
* content that holds on every accelerator of this node (an allow-list of
|
|
105
|
+
* species, an IoU). Never a model or a model-bound threshold — those belong
|
|
106
|
+
* to the accelerator (`inferenceDevices[key].steps[step]`). Merged under
|
|
107
|
+
* the device's own settings at dispatch; a sibling device entry is never
|
|
108
|
+
* read.
|
|
109
|
+
*/
|
|
110
|
+
readonly stepSettings?: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
131
111
|
/**
|
|
132
112
|
* Multi-device inference opt-in (Phase 4 multi-device). Maps a device key
|
|
133
113
|
* (`openvino:npu`, `openvino:gpu`, `edgetpu:usb`, `edgetpu:usb:1`, `cpu`, …
|
|
@@ -142,8 +122,8 @@ export interface AgentPipelineSettings {
|
|
|
142
122
|
*
|
|
143
123
|
* `steps` (per-(node,device) BASE provisioning) — an optional
|
|
144
124
|
* `stepId → {modelId?, settings?}` map: the default model + intrinsic
|
|
145
|
-
* settings for EVERY camera landing on that accelerator
|
|
146
|
-
*
|
|
125
|
+
* settings for EVERY camera landing on that accelerator (no camera layer
|
|
126
|
+
* overrides the model, D927). A stepId ABSENT ⇒
|
|
147
127
|
* that step uses the device format default. A pinned modelId MUST have a
|
|
148
128
|
* build for the device's FORMAT, else the executor's `resolveInputSteps`
|
|
149
129
|
* substitutes it back to the format default (the UI only offers
|
|
@@ -166,40 +146,27 @@ export interface AgentPipelineSettings {
|
|
|
166
146
|
export interface CameraPipelineSettings {
|
|
167
147
|
readonly stepToggles?: Readonly<Record<string, boolean>>;
|
|
168
148
|
/**
|
|
169
|
-
* Camera-wide step SETTINGS (D754): `[addonId] → { fieldKey
|
|
170
|
-
* fields this camera overrides on
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
* node
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
149
|
+
* Camera-wide step SETTINGS (D754, narrowed by D927): `[addonId] → { fieldKey
|
|
150
|
+
* → value }`, the CAMERA-SEMANTIC fields this camera overrides on every
|
|
151
|
+
* accelerator it is balanced onto (an allow-list of classes, a zone-driven
|
|
152
|
+
* option). A sparse, field-level bag — a key present here is an override, an
|
|
153
|
+
* absent key inherits the node. Merge order at dispatch, per key:
|
|
154
|
+
* node ⊕ this. Never a model and never a model-bound threshold
|
|
155
|
+
* ({@link isModelScopedStepSettingKey}): those belong to the accelerator that
|
|
156
|
+
* runs the model — the writer refuses them and dispatch ignores a stored one.
|
|
177
157
|
*/
|
|
178
158
|
readonly stepSettings?: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
179
|
-
/**
|
|
180
|
-
* Per-(camera,node,device) model/settings override. Addressed by
|
|
181
|
-
* `[agentNodeId][deviceKey][addonId]` because the camera is balanced onto
|
|
182
|
-
* one `(node,deviceKey)` per session and a node's accelerators share no
|
|
183
|
-
* format. Overrides the per-(node,device) base
|
|
184
|
-
* (`inferenceDevices[node][deviceKey].steps`) for one camera on one
|
|
185
|
-
* accelerator; the wholesale `pipelineByAgent[agent]` escape hatch, when
|
|
186
|
-
* present, still bypasses this. Enablement is orthogonal (`stepToggles`).
|
|
187
|
-
*/
|
|
188
|
-
readonly stepOverridesByDevice?: Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, CameraStepOverridePatch>>>>>>;
|
|
189
|
-
/**
|
|
190
|
-
* Per-agent wholesale pipeline override. Engine is NOT stored here —
|
|
191
|
-
* the override runs under the engine selected on that agent via the
|
|
192
|
-
* detection-pipeline addon's global settings. Operator picks steps
|
|
193
|
-
* + audio model/enabled only. This keeps the override portable
|
|
194
|
-
* across agent-moves and prevents a camera from being pinned to an
|
|
195
|
-
* engine the agent doesn't host. `modelId` absent = data-only model
|
|
196
|
-
* selection — the executing node resolves its own format default.
|
|
197
|
-
*/
|
|
198
|
-
readonly pipelineByAgent?: Readonly<Record<string, {
|
|
199
|
-
readonly steps: CameraPipelineConfig['steps'];
|
|
200
|
-
readonly audio: {
|
|
201
|
-
readonly modelId?: string;
|
|
202
|
-
readonly enabled: boolean;
|
|
203
|
-
} | null;
|
|
204
|
-
}>>;
|
|
205
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Is `key` a step setting that only the accelerator running the model may
|
|
162
|
+
* carry (D927)? A model id, a model binding (`<key>ModelId`, D738) or a
|
|
163
|
+
* confidence floor (`minConfidence*` — every `bindsToModel` field). A camera
|
|
164
|
+
* layer never stores one: the floor of one model is wrong on the next, and a
|
|
165
|
+
* camera does not know which accelerator — or which model — it lands on.
|
|
166
|
+
* (Per-camera thresholds are a possible future extension, see D927.)
|
|
167
|
+
*/
|
|
168
|
+
export declare function isModelScopedStepSettingKey(key: string): boolean;
|
|
169
|
+
/** The keys of `bag` a camera layer may not carry ({@link isModelScopedStepSettingKey}), sorted. */
|
|
170
|
+
export declare function modelScopedStepSettingKeys(bag: Readonly<Record<string, unknown>>): string[];
|
|
171
|
+
/** `bag` without its model-scoped keys — what a camera layer contributes at dispatch. Fresh object. */
|
|
172
|
+
export declare function cameraScopedStepSettings(bag: Readonly<Record<string, unknown>>): Record<string, unknown>;
|
|
@@ -37,8 +37,8 @@ export interface CameraPipelineConfig {
|
|
|
37
37
|
/**
|
|
38
38
|
* Present ONLY when the operator explicitly chose an audio model;
|
|
39
39
|
* absent = use this node's format default (resolved on-the-fly by
|
|
40
|
-
* the provider).
|
|
41
|
-
*
|
|
40
|
+
* the provider). Model selection is data only (the engine-node-local
|
|
41
|
+
* refactor).
|
|
42
42
|
*/
|
|
43
43
|
readonly modelId?: string;
|
|
44
44
|
readonly enabled: boolean;
|
|
@@ -545,13 +545,23 @@ export interface FrameResult {
|
|
|
545
545
|
* track keeps it so a later replay can name the original model (D646).
|
|
546
546
|
*/
|
|
547
547
|
readonly rootModelId?: string;
|
|
548
|
+
/**
|
|
549
|
+
* The step (addon id) of the root {@link rootModelId} names — the detector
|
|
550
|
+
* whose boxes this frame's tracks are born from. Stamped beside it, same
|
|
551
|
+
* absence rule. With {@link rootModelId} and {@link rootDeviceKey} it is the
|
|
552
|
+
* session's detector, which the birth confirmation gate re-judges a birth
|
|
553
|
+
* with (D925).
|
|
554
|
+
*/
|
|
555
|
+
readonly rootStepId?: string;
|
|
548
556
|
/**
|
|
549
557
|
* The inference DEVICE the root ran on (`openvino:npu`, `edgetpu:pci`,
|
|
550
|
-
* `onnx:webgpu` …) — the pool the dispatch actually used,
|
|
551
|
-
* {@link rootModelId}. A session
|
|
552
|
-
* sessions (D916), so a stored
|
|
553
|
-
*
|
|
554
|
-
*
|
|
558
|
+
* `onnx:webgpu` …) — the pool the dispatch actually used, after re-election
|
|
559
|
+
* and the capability fallback, stamped beside {@link rootModelId}. A session
|
|
560
|
+
* can hop node or device between on-motion sessions (D916), so a stored
|
|
561
|
+
* track keeps the device of the frame that opened it and of the sighting
|
|
562
|
+
* that closed it (D924); the confirmation gate re-judges a birth on this
|
|
563
|
+
* pool (D925). Absent on a frame no pipeline root produced, and from a
|
|
564
|
+
* runner older than the field.
|
|
555
565
|
*/
|
|
556
566
|
readonly rootDeviceKey?: string;
|
|
557
567
|
/**
|
|
@@ -111,22 +111,6 @@ export interface StepDefinition {
|
|
|
111
111
|
* rather than out).
|
|
112
112
|
*/
|
|
113
113
|
readonly enabledByDefault?: boolean;
|
|
114
|
-
/**
|
|
115
|
-
* Opt-in: when `true`, this step is BACK-FILLED into a camera's stored
|
|
116
|
-
* wholesale pipeline override (`cameraSettings.pipelineByAgent`) at resolve
|
|
117
|
-
* time if it is absent from that snapshot — see
|
|
118
|
-
* `mergeEnabledByDefaultSteps`. Set this ONLY on a genuinely-NEW default
|
|
119
|
-
* step that shipped AFTER existing snapshots were captured and must reach
|
|
120
|
-
* them (e.g. `clip-embedding` for object semantic search).
|
|
121
|
-
*
|
|
122
|
-
* It exists because absence-from-a-snapshot is ambiguous: it can mean
|
|
123
|
-
* "predates this step" OR "operator deliberately pruned it". A broad
|
|
124
|
-
* "back-fill every default" would resurrect deliberate removals of
|
|
125
|
-
* long-existing steps (face-detection, etc.). This flag makes back-fill
|
|
126
|
-
* strictly opt-in so only a new step re-enters existing overrides; absent
|
|
127
|
-
* (the default) preserves operator intent verbatim. Absent = `false`.
|
|
128
|
-
*/
|
|
129
|
-
readonly backfillIntoExistingOverrides?: boolean;
|
|
130
114
|
/** Default confidence threshold */
|
|
131
115
|
readonly defaultConfidence: number;
|
|
132
116
|
/** Runtime label lookup (e.g., class name arrays for softmax, charset for CTC) */
|