@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.
Files changed (33) hide show
  1. package/dist/addon.js +2 -2
  2. package/dist/addon.mjs +2 -2
  3. package/dist/capabilities/index.d.ts +2 -2
  4. package/dist/capabilities/pipeline-analytics.cap.d.ts +3 -0
  5. package/dist/capabilities/pipeline-executor.cap.d.ts +0 -64
  6. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +32 -124
  7. package/dist/capabilities/training.cap.d.ts +91 -71
  8. package/dist/client.js +2 -8
  9. package/dist/client.mjs +2 -8
  10. package/dist/enums/event-category.d.ts +2 -3
  11. package/dist/enums.js +1 -1
  12. package/dist/enums.mjs +1 -1
  13. package/dist/{event-category-7AwNbPjm.js → event-category-CXrwjC3e.js} +2 -3
  14. package/dist/{event-category-BfJwUd2S.mjs → event-category-fDPduoeC.mjs} +2 -3
  15. package/dist/generated/addon-api.d.ts +14 -56
  16. package/dist/generated/device-proxy.d.ts +1 -1
  17. package/dist/generated/method-access-map.d.ts +1 -1
  18. package/dist/generated/method-device-selectors.d.ts +2 -2
  19. package/dist/generated/system-proxy.d.ts +3 -3
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.js +135 -276
  22. package/dist/index.mjs +131 -275
  23. package/dist/interfaces/birth-decision-ledger.d.ts +3 -0
  24. package/dist/interfaces/pipeline-executor-capability.d.ts +2 -8
  25. package/dist/pipeline/auto-tune/plan-schemas.d.ts +8 -80
  26. package/dist/pipeline/step-settings-layers.d.ts +7 -8
  27. package/dist/{sleep-Ch67uumJ.js → sleep-BKS4OPMo.js} +1 -4
  28. package/dist/{sleep-6AqUnQIT.mjs → sleep-CHIEEJkY.mjs} +1 -4
  29. package/dist/types/agent-pipeline-settings.d.ts +37 -70
  30. package/dist/types/camera-pipeline.d.ts +2 -2
  31. package/dist/types/detection.d.ts +15 -5
  32. package/dist/types/pipeline-step.d.ts +0 -16
  33. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-Ch67uumJ.js");
3
- const require_event_category = require("./event-category-7AwNbPjm.js");
2
+ const require_sleep = require("./sleep-BKS4OPMo.js");
3
+ const require_event_category = require("./event-category-CXrwjC3e.js");
4
4
  const require_composition = require("./composition-eoYYVfOp.js");
5
5
  const require_node_color = require("./node-color.js");
6
6
  const require_err_msg = require("./err-msg-BhVbr0NX.js");
@@ -2288,13 +2288,22 @@ var BirthDecisionRecordSchema = zod.z.object({
2288
2288
  decidedByBirthEvidence: zod.z.boolean(),
2289
2289
  /** Best class-compatible crop score, or `null` when nothing compatible was
2290
2290
  * found — deliberately not 0, which would be a measurement that never was.
2291
- * Includes a box the detector's own per-class floor refused (reason
2292
- * `below-detector-floor`, D922): that box never confirms, but it is the
2293
- * score the crop really held. */
2291
+ * Includes a box the detector's own per-class floor refused (D922): since
2292
+ * D925 the gate's bar, not that floor, decides whether it confirms. */
2294
2293
  bestScore: zod.z.number().nullable(),
2295
2294
  /** The bar this candidate actually faced (the phantom-cell hook may raise it). */
2296
2295
  appliedMinConfidence: zod.z.number().nullable(),
2297
2296
  /**
2297
+ * The detector the gate re-judged the birth WITH (D925): the session's own
2298
+ * root model, inference-device pool and node — never a node default. `null`
2299
+ * when the frame named no session detector or no gate ran, and on rows
2300
+ * written before D925. A `session-device-unavailable` row names the session
2301
+ * detector that could not be reached.
2302
+ */
2303
+ detectorModelId: zod.z.string().nullable().default(null),
2304
+ detectorDeviceKey: zod.z.string().nullable().default(null),
2305
+ detectorNodeId: zod.z.string().nullable().default(null),
2306
+ /**
2298
2307
  * The track's own `firstSeen` — the candidate's first frame, which is where
2299
2308
  * the timeline starts. `null` for a suppressed birth, which has no track.
2300
2309
  */
@@ -5416,6 +5425,27 @@ function pickClosestResolution(entries, target) {
5416
5425
  }])].sort((a, b) => compareToTarget(a.pixels, b.pixels, targetPixels))[0]?.entry;
5417
5426
  }
5418
5427
  //#endregion
5428
+ //#region src/types/agent-pipeline-settings.ts
5429
+ /**
5430
+ * Is `key` a step setting that only the accelerator running the model may
5431
+ * carry (D927)? A model id, a model binding (`<key>ModelId`, D738) or a
5432
+ * confidence floor (`minConfidence*` — every `bindsToModel` field). A camera
5433
+ * layer never stores one: the floor of one model is wrong on the next, and a
5434
+ * camera does not know which accelerator — or which model — it lands on.
5435
+ * (Per-camera thresholds are a possible future extension, see D927.)
5436
+ */
5437
+ function isModelScopedStepSettingKey(key) {
5438
+ return key === "modelId" || key.endsWith("ModelId") || key.startsWith("minConfidence");
5439
+ }
5440
+ /** The keys of `bag` a camera layer may not carry ({@link isModelScopedStepSettingKey}), sorted. */
5441
+ function modelScopedStepSettingKeys(bag) {
5442
+ return Object.keys(bag).filter(isModelScopedStepSettingKey).toSorted();
5443
+ }
5444
+ /** `bag` without its model-scoped keys — what a camera layer contributes at dispatch. Fresh object. */
5445
+ function cameraScopedStepSettings(bag) {
5446
+ return Object.fromEntries(Object.entries(bag).filter(([key]) => !isModelScopedStepSettingKey(key)));
5447
+ }
5448
+ //#endregion
5419
5449
  //#region src/types/appearance.ts
5420
5450
  /**
5421
5451
  * A model-free appearance descriptor of one detection box (D683 §8).
@@ -51015,7 +51045,6 @@ var PipelineAddonSchemaSchema = zod.z.object({
51015
51045
  defaultModelId: zod.z.string(),
51016
51046
  defaultModelIdByFormat: zod.z.record(zod.z.string(), zod.z.string()).optional(),
51017
51047
  enabledByDefault: zod.z.boolean().optional(),
51018
- backfillIntoExistingOverrides: zod.z.boolean().optional(),
51019
51048
  defaultConfidence: zod.z.number(),
51020
51049
  group: zod.z.string().optional(),
51021
51050
  configSchema: zod.z.array(ConfigFieldBridge).readonly().optional()
@@ -51142,7 +51171,6 @@ var AudioTestResultSchema = zod.z.object({
51142
51171
  error: zod.z.string().optional(),
51143
51172
  frame: zod.z.custom().optional()
51144
51173
  });
51145
- var PipelineConfigBridge = zod.z.custom();
51146
51174
  var ConfigUISchemaBridge = zod.z.custom();
51147
51175
  var ConfigUISchemaNullableBridge = zod.z.custom();
51148
51176
  var InferenceCapabilitiesBridge = zod.z.custom();
@@ -51167,7 +51195,6 @@ var pipelineExecutorCapability = {
51167
51195
  methods: {
51168
51196
  getAvailableEngines: require_sleep.method(zod.z.void(), zod.z.array(PipelineEngineChoiceSchema)),
51169
51197
  getSelectedEngine: require_sleep.method(zod.z.void(), PipelineEngineChoiceSchema),
51170
- getDefaultSteps: require_sleep.method(PipelineEngineChoiceSchema, zod.z.array(PipelineDefaultStepSchema)),
51171
51198
  /**
51172
51199
  * Per-node detection-engine provisioning snapshot. Returns the live
51173
51200
  * state of the lazy runtime-provisioning machine on `nodeId`
@@ -51189,54 +51216,6 @@ var pipelineExecutorCapability = {
51189
51216
  auth: "admin"
51190
51217
  }),
51191
51218
  /**
51192
- * Clear THIS node's executor-side PER-DEVICE settings stores (the
51193
- * per-camera step overrides the object-detection root reads via
51194
- * `applyDeviceOverridesToTree`). `nodeId` is the ROUTING key — the
51195
- * generated cap-router strips it (default `nodeIdMode: 'routing'`) and
51196
- * dispatches to that node, so the provider method runs ON the target
51197
- * node and receives no `nodeId`.
51198
- *
51199
- * This is the slimmed executor leg of the orchestrator's
51200
- * `resetNodePipelineDefaults` flow (which owns the real reset: node
51201
- * addonDefaults pins + per-camera orchestrator overrides). The legacy
51202
- * `resetToDefault` — which reset a persisted global step-tree seed
51203
- * nothing in the live per-camera path read — was removed together with
51204
- * that seed.
51205
- */
51206
- clearDeviceOverrides: require_sleep.method(zod.z.object({ nodeId: zod.z.string() }), zod.z.object({
51207
- success: zod.z.literal(true),
51208
- clearedDevices: zod.z.number()
51209
- }), {
51210
- kind: "mutation",
51211
- auth: "admin"
51212
- }),
51213
- /**
51214
- * Auto tune (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
51215
- * the object-detection root, and their binding keys) stored in THIS node's
51216
- * per-camera detector settings — and, unless `dryRun`, remove them so the
51217
- * running model's own defaults apply. Every other key of a camera's store
51218
- * is kept. `nodeId` is the ROUTING key. `deviceIds` absent ⇒ every camera
51219
- * with a store. A camera whose store could not be read is `refused`, never
51220
- * reported as clean.
51221
- */
51222
- clearModelBoundDeviceOverrides: require_sleep.method(zod.z.object({
51223
- nodeId: zod.z.string(),
51224
- deviceIds: zod.z.array(zod.z.number()).readonly().optional(),
51225
- dryRun: zod.z.boolean()
51226
- }), zod.z.object({
51227
- entries: zod.z.array(zod.z.object({
51228
- deviceId: zod.z.number(),
51229
- keys: zod.z.array(zod.z.string()).readonly()
51230
- })).readonly(),
51231
- refused: zod.z.array(zod.z.object({
51232
- deviceId: zod.z.number(),
51233
- reason: zod.z.string()
51234
- })).readonly()
51235
- }), {
51236
- kind: "mutation",
51237
- auth: "admin"
51238
- }),
51239
- /**
51240
51219
  * Which of THIS node's inference devices the executor currently refuses,
51241
51220
  * and why. `nodeId` is the ROUTING key (stripped by the generated router).
51242
51221
  *
@@ -51291,8 +51270,6 @@ var pipelineExecutorCapability = {
51291
51270
  auth: "admin"
51292
51271
  }),
51293
51272
  getSchema: require_sleep.method(zod.z.void(), PipelineSchemaSchema),
51294
- getGlobalSteps: require_sleep.method(zod.z.void(), zod.z.array(PipelineDefaultStepSchema).readonly().nullable()),
51295
- getGlobalPipelineConfig: require_sleep.method(zod.z.void(), PipelineConfigBridge),
51296
51273
  getOrchestratorConfigSchema: require_sleep.method(zod.z.void(), ConfigUISchemaBridge),
51297
51274
  /**
51298
51275
  * Gate B (pre-init config-correctness gate). PURE COMPUTE against this
@@ -51706,40 +51683,20 @@ var NodeDeviceChangeSchema = zod.z.object({
51706
51683
  keys: zod.z.array(zod.z.string()).readonly()
51707
51684
  })).readonly()
51708
51685
  });
51709
- var CameraOverrideClearSchema = zod.z.object({
51710
- deviceId: zod.z.number(),
51711
- source: zod.z.enum(["step-override", "wholesale"]),
51686
+ /**
51687
+ * Every model and model-bound threshold lives on the accelerator that runs it
51688
+ * (D927), so the plan writes node / device entries only — there is no camera
51689
+ * layer for it to clear.
51690
+ */
51691
+ var AutoTuneWarningSchema = zod.z.discriminatedUnion("kind", [zod.z.object({
51692
+ kind: zod.z.literal("custom-pin-kept"),
51712
51693
  nodeId: zod.z.string(),
51713
- deviceKey: zod.z.string().nullable(),
51714
- stepId: zod.z.string(),
51715
- modelIdBefore: zod.z.string().nullable(),
51716
- keys: zod.z.array(zod.z.string()).readonly()
51717
- });
51718
- var DetectorStoreClearSchema = zod.z.object({
51719
- deviceId: zod.z.number(),
51720
- keys: zod.z.array(zod.z.string()).readonly()
51721
- });
51722
- var AutoTuneWarningSchema = zod.z.discriminatedUnion("kind", [
51723
- zod.z.object({
51724
- kind: zod.z.literal("detector-store-cluster-wide"),
51725
- skippedNodes: zod.z.array(zod.z.string()).readonly()
51726
- }),
51727
- zod.z.object({
51728
- kind: zod.z.literal("detector-store-unreadable"),
51729
- error: zod.z.string()
51730
- }),
51731
- zod.z.object({
51732
- kind: zod.z.literal("custom-pin-kept"),
51733
- nodeId: zod.z.string(),
51734
- deviceKey: zod.z.string().nullable(),
51735
- deviceId: zod.z.number().nullable(),
51736
- modelId: zod.z.string()
51737
- }),
51738
- zod.z.object({
51739
- kind: zod.z.literal("custom-registry-unreadable"),
51740
- error: zod.z.string()
51741
- })
51742
- ]);
51694
+ deviceKey: zod.z.string(),
51695
+ modelId: zod.z.string()
51696
+ }), zod.z.object({
51697
+ kind: zod.z.literal("custom-registry-unreadable"),
51698
+ error: zod.z.string()
51699
+ })]);
51743
51700
  var AutoTuneOptionsSchema = zod.z.object({
51744
51701
  /** Share of each accelerator's throughput kept free (0.3–0.5). */
51745
51702
  headroom: zod.z.number().min(.3).max(.5).default(.4),
@@ -51761,8 +51718,6 @@ var AutoTunePlanSchema = zod.z.object({
51761
51718
  generatedAt: zod.z.number(),
51762
51719
  nodes: zod.z.array(NodeRecommendationSchema).readonly(),
51763
51720
  nodeChanges: zod.z.array(NodeDeviceChangeSchema).readonly(),
51764
- cameraClears: zod.z.array(CameraOverrideClearSchema).readonly(),
51765
- detectorStoreClears: zod.z.array(DetectorStoreClearSchema).readonly(),
51766
51721
  warnings: zod.z.array(AutoTuneWarningSchema).readonly()
51767
51722
  });
51768
51723
  var AutoTuneApplyInputSchema = zod.z.object({
@@ -51773,8 +51728,6 @@ var AutoTuneApplyInputSchema = zod.z.object({
51773
51728
  var AutoTunePhaseResultSchema = zod.z.object({
51774
51729
  phase: zod.z.enum([
51775
51730
  "download",
51776
- "camera-overrides",
51777
- "detector-thresholds",
51778
51731
  "node-models",
51779
51732
  "redispatch"
51780
51733
  ]),
@@ -53966,6 +53919,12 @@ var AgentPipelineSettingsSchema = zod.z.object({
53966
53919
  /** Hub-persisted UI colour (`--color-node-*` theme tokens). */
53967
53920
  color: require_node_color.NodeColorIdSchema.optional(),
53968
53921
  /**
53922
+ * NODE-wide step settings (D927): `stepId → { key → value }`, applied on
53923
+ * every accelerator of the node under the device's own settings. Never a
53924
+ * model or a model-bound threshold. Written by `setNodeStepSettings`.
53925
+ */
53926
+ stepSettings: zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), zod.z.unknown()).readonly()).optional(),
53927
+ /**
53969
53928
  * Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
53970
53929
  * weight, steps}. Absent / all-disabled ⇒ the node's single default
53971
53930
  * accelerator (safe default); two+ enabled ⇒ the dispatcher balances
@@ -53981,17 +53940,6 @@ var AgentPipelineSettingsSchema = zod.z.object({
53981
53940
  steps: zod.z.record(zod.z.string(), DeviceStepConfigSchema).optional()
53982
53941
  })).optional()
53983
53942
  });
53984
- var CameraPipelineForAgentSchema = zod.z.object({
53985
- steps: zod.z.array(PipelineStepInputSchema).readonly(),
53986
- audio: zod.z.object({
53987
- modelId: zod.z.string(),
53988
- enabled: zod.z.boolean()
53989
- }).nullable()
53990
- });
53991
- var CameraStepOverridePatchSchema = zod.z.object({
53992
- modelId: zod.z.string().optional(),
53993
- settings: zod.z.record(zod.z.string(), zod.z.unknown()).readonly().optional()
53994
- });
53995
53943
  var CameraStepSettingsSchema = zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), zod.z.unknown()).readonly());
53996
53944
  /** The three root-detector choices a camera has (D507: at most one root). */
53997
53945
  var CameraDetectionSourceSchema = zod.z.enum([
@@ -54001,9 +53949,7 @@ var CameraDetectionSourceSchema = zod.z.enum([
54001
53949
  ]);
54002
53950
  var CameraPipelineSettingsSchema = zod.z.object({
54003
53951
  stepToggles: zod.z.record(zod.z.string(), zod.z.boolean()).optional(),
54004
- stepSettings: CameraStepSettingsSchema.optional(),
54005
- stepOverridesByDevice: zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), CameraStepOverridePatchSchema))).optional(),
54006
- pipelineByAgent: zod.z.record(zod.z.string(), CameraPipelineForAgentSchema).optional()
53952
+ stepSettings: CameraStepSettingsSchema.optional()
54007
53953
  });
54008
53954
  /**
54009
53955
  * Pipeline placement record persisted by `addon-pipeline-orchestrator` via
@@ -54790,6 +54736,21 @@ var pipelineOrchestratorCapability = {
54790
54736
  auth: "admin"
54791
54737
  }),
54792
54738
  /**
54739
+ * Write or clear one step's NODE-wide settings (D927) — the content that
54740
+ * holds on every accelerator of the node (`agentSettings[node].stepSettings`).
54741
+ * `settings` is the whole bag for the step; `null` or `{}` clears it.
54742
+ * REFUSES a model-scoped key (a model id, a binding, a `minConfidence*`
54743
+ * floor): those are set on the accelerator (`setAgentInferenceDevices`).
54744
+ */
54745
+ setNodeStepSettings: require_sleep.method(zod.z.object({
54746
+ agentNodeId: zod.z.string(),
54747
+ addonId: zod.z.string(),
54748
+ settings: zod.z.record(zod.z.string(), zod.z.unknown()).nullable()
54749
+ }), zod.z.object({ success: zod.z.literal(true) }), {
54750
+ kind: "mutation",
54751
+ auth: "admin"
54752
+ }),
54753
+ /**
54793
54754
  * DEVICE-AWARE merged view of ONE node's inference accelerators. Joins each
54794
54755
  * physical device the node HAS — probed live via a node-pinned
54795
54756
  * `platformProbe.getCapabilities` (the platform-probe singleton is targeted
@@ -54823,23 +54784,17 @@ var pipelineOrchestratorCapability = {
54823
54784
  * (a) strips every `modelId` pin from that node's
54824
54785
  * `agentSettings.addonDefaults` (cells revert to Auto — the node
54825
54786
  * resolves its own hardware-aware format default at runtime);
54826
- * (b) clears per-camera step overrides scoped to that node
54827
- * (`stepOverridesByAgent[node]` + the wholesale
54828
- * `pipelineByAgent[node]` escape hatch);
54829
- * (c) clears the executor-side per-device settings stores on that node
54830
- * (`pipelineExecutor.clearDeviceOverrides`);
54831
- * (d) hot-reloads every camera assigned to the node.
54787
+ * (b) hot-reloads every camera assigned to the node.
54788
+ * There is no per-camera model to clear (D927).
54832
54789
  *
54833
54790
  * Returns the EFFECTIVE post-reset object-detection model for the node
54834
- * (the executor's pure hardware-aware default) so the UI can report what
54835
- * will actually run — not a value that never reaches the live path.
54791
+ * (the format default of the accelerator hosting the camera root) so the
54792
+ * UI can report what will actually run.
54836
54793
  */
54837
54794
  resetNodePipelineDefaults: require_sleep.method(zod.z.object({ agentNodeId: zod.z.string() }), zod.z.object({
54838
54795
  success: zod.z.literal(true),
54839
54796
  /** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
54840
- effectiveModelId: zod.z.string().nullable(),
54841
- /** Number of cameras whose node-scoped overrides were cleared. */
54842
- clearedCameraOverrides: zod.z.number()
54797
+ effectiveModelId: zod.z.string().nullable()
54843
54798
  }), {
54844
54799
  kind: "mutation",
54845
54800
  auth: "admin"
@@ -54851,8 +54806,8 @@ var pipelineOrchestratorCapability = {
54851
54806
  * that sustains at least `minSessionsPerDevice` parallel sessions at the
54852
54807
  * camera rate with the headroom kept free (no load input), and lists every write
54853
54808
  * the apply would make: the node model pins set, the enrichment pins and
54854
- * model-bound thresholds removed (node level and per camera), and the
54855
- * per-camera detector thresholds cleared. Writes nothing. Step
54809
+ * model-bound thresholds removed — all on the accelerators, the only
54810
+ * layer that carries a model (D927). Writes nothing. Step
54856
54811
  * enablement, device enablement, pins, recording, notifications, zones and
54857
54812
  * rules are never part of it. `planHash` names exactly this diff.
54858
54813
  */
@@ -55005,31 +54960,14 @@ var pipelineOrchestratorCapability = {
55005
54960
  kind: "mutation",
55006
54961
  auth: "admin"
55007
54962
  }),
55008
- /** Read every per-(node,device) override map for a device. Null when device has no overrides. */
55009
- getCameraStepOverrides: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), CameraStepOverridePatchSchema))).nullable()),
55010
- /**
55011
- * Write or clear the per-(camera,node,device) override for one addonId.
55012
- * `patch: null` clears the entry entirely for that (node, deviceKey, addon)
55013
- * triple (empty parents are pruned). Model/settings only — enablement is
55014
- * the per-camera `stepToggles` authority.
55015
- */
55016
- setCameraStepOverride: require_sleep.method(zod.z.object({
55017
- deviceId: zod.z.number(),
55018
- agentNodeId: zod.z.string(),
55019
- deviceKey: zod.z.string(),
55020
- addonId: zod.z.string(),
55021
- patch: CameraStepOverridePatchSchema.nullable()
55022
- }), zod.z.object({ success: zod.z.literal(true) }), {
55023
- kind: "mutation",
55024
- auth: "admin"
55025
- }),
55026
54963
  /**
55027
- * Write or clear one step's CAMERA-WIDE settings (D754) — the fields this
55028
- * camera overrides on every accelerator it runs on. `settings` is the
55029
- * whole field-level bag for that step (only the overridden keys; a
55030
- * model-bound field travels with its binding key); `null` or `{}` clears
55031
- * it. Merged at dispatch between the node base and the per-(node,device)
55032
- * override, key by key.
54964
+ * Write or clear one step's CAMERA-WIDE settings (D754) — the
54965
+ * camera-semantic fields this camera overrides on every accelerator it
54966
+ * runs on. `settings` is the whole field-level bag for that step (only the
54967
+ * overridden keys); `null` or `{}` clears it. Merged at dispatch over the
54968
+ * node base, key by key. REFUSES a model-scoped key — a model id, a model
54969
+ * binding or a `minConfidence*` floor (D927): those belong to the
54970
+ * accelerator that runs the model.
55033
54971
  */
55034
54972
  setCameraStepSettings: require_sleep.method(zod.z.object({
55035
54973
  deviceId: zod.z.number(),
@@ -55039,15 +54977,6 @@ var pipelineOrchestratorCapability = {
55039
54977
  kind: "mutation",
55040
54978
  auth: "admin"
55041
54979
  }),
55042
- /** Write or clear the wholesale per-agent pipeline override. Pass `pipeline: null` to drop the override. */
55043
- setCameraPipelineForAgent: require_sleep.method(zod.z.object({
55044
- deviceId: zod.z.number(),
55045
- agentNodeId: zod.z.string(),
55046
- pipeline: CameraPipelineForAgentSchema.nullable()
55047
- }), zod.z.object({ success: zod.z.literal(true) }), {
55048
- kind: "mutation",
55049
- auth: "admin"
55050
- }),
55051
54980
  /** Resolve the effective pipeline for `(deviceId, agentNodeId?)` — walks the full precedence chain. Read-only preview used by the UI to show what will run. */
55052
54981
  resolvePipeline: require_sleep.method(zod.z.object({
55053
54982
  deviceId: zod.z.number(),
@@ -74721,7 +74650,7 @@ var trainingProviderCapability = {
74721
74650
  * - **Jobs.** A persisted state machine, a reconcile loop against the
74722
74651
  * provider, a cost guard, a daily orphan sweep and the retention rules.
74723
74652
  * - **The return flow.** Verified artefacts → Model Studio
74724
- * (`custom-model-registry.importModelBundle`) → canary on cameras →
74653
+ * (`custom-model-registry.importModelBundle`) → canary on accelerators →
74725
74654
  * rollback. Nothing is ever registered automatically.
74726
74655
  *
74727
74656
  * Plan/start takes a live {@link TrainingCorpusSelection} (collections +
@@ -74858,20 +74787,24 @@ var TrainingProgressPointSchema = zod.z.object({
74858
74787
  map50: zod.z.number().nullable(),
74859
74788
  map50_95: zod.z.number().nullable()
74860
74789
  });
74790
+ /** One accelerator: a `(node, inference device)` that runs the root detector. */
74791
+ var TrainingAcceleratorRefSchema = zod.z.object({
74792
+ nodeId: zod.z.string(),
74793
+ deviceKey: zod.z.string()
74794
+ });
74795
+ /**
74796
+ * A canary pins the registered model on chosen ACCELERATORS — a model is
74797
+ * chosen by the accelerator that runs it (D927); every camera balanced onto
74798
+ * one runs it. `previous` is the root-detector pin each one had (`null` = it
74799
+ * ran its default), exactly, so rollback restores it.
74800
+ */
74861
74801
  var TrainingCanarySchema = zod.z.object({
74862
- deviceIds: zod.z.array(zod.z.number().int()).readonly(),
74802
+ accelerators: zod.z.array(TrainingAcceleratorRefSchema).readonly(),
74863
74803
  since: zod.z.number(),
74864
- /** Every override the canary replaced, exactly, so rollback restores it. */
74865
- previous: zod.z.array(zod.z.object({
74866
- deviceId: zod.z.number().int(),
74867
- nodeId: zod.z.string(),
74868
- deviceKey: zod.z.string(),
74869
- patch: zod.z.object({
74870
- modelId: zod.z.string().optional(),
74871
- settings: zod.z.record(zod.z.string(), zod.z.unknown()).readonly().optional()
74872
- }).nullable()
74873
- })).readonly()
74804
+ previous: zod.z.array(TrainingAcceleratorRefSchema.extend({ modelId: zod.z.string().nullable() })).readonly()
74874
74805
  });
74806
+ /** An accelerator a canary may pin: it runs the root detector, on this model now. */
74807
+ var TrainingCanaryTargetSchema = TrainingAcceleratorRefSchema.extend({ pinnedModelId: zod.z.string().nullable() });
74875
74808
  var TrainingJobSchema = zod.z.object({
74876
74809
  id: zod.z.string(),
74877
74810
  idempotencyKey: zod.z.string(),
@@ -75011,19 +74944,21 @@ var trainingCapability = {
75011
74944
  }),
75012
74945
  /** The verified `result.json` of a job in `ready` or later; null before. */
75013
74946
  getJobResult: require_sleep.method(IdInput, TrainingResultSchema.nullable(), { auth: "admin" }),
74947
+ /** The accelerators a canary may pin: every enabled one that runs the root detector. */
74948
+ listCanaryTargets: require_sleep.method(zod.z.void(), zod.z.array(TrainingCanaryTargetSchema).readonly(), { auth: "admin" }),
75014
74949
  /** Hand the verified bundle to Model Studio; optionally canary right after. */
75015
- registerResult: require_sleep.method(IdInput.extend({ canaryDeviceIds: zod.z.array(zod.z.number().int()).readonly() }), TrainingJobSchema, {
74950
+ registerResult: require_sleep.method(IdInput.extend({ canaryAccelerators: zod.z.array(TrainingAcceleratorRefSchema).readonly() }), TrainingJobSchema, {
75016
74951
  kind: "mutation",
75017
74952
  auth: "admin",
75018
74953
  timeoutMs: 30 * 6e4
75019
74954
  }),
75020
- /** Pin the registered model on these cameras, remembering what it replaced. */
75021
- canaryResult: require_sleep.method(IdInput.extend({ deviceIds: zod.z.array(zod.z.number().int()).min(1).readonly() }), TrainingJobSchema, {
74955
+ /** Pin the registered model on these accelerators, remembering what it replaced. */
74956
+ canaryResult: require_sleep.method(IdInput.extend({ accelerators: zod.z.array(TrainingAcceleratorRefSchema).min(1).readonly() }), TrainingJobSchema, {
75022
74957
  kind: "mutation",
75023
74958
  auth: "admin",
75024
74959
  timeoutMs: 12e4
75025
74960
  }),
75026
- /** Put every canary camera back exactly as it was. */
74961
+ /** Put every canary accelerator back exactly as it was. */
75027
74962
  rollbackCanary: require_sleep.method(IdInput, TrainingJobSchema, {
75028
74963
  kind: "mutation",
75029
74964
  auth: "admin",
@@ -84623,20 +84558,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
84623
84558
  access: "create",
84624
84559
  role: "admin"
84625
84560
  },
84626
- "pipelineExecutor.clearDeviceOverrides": {
84627
- capName: "pipeline-executor",
84628
- capScope: "system",
84629
- addonId: null,
84630
- access: "delete",
84631
- role: "admin"
84632
- },
84633
- "pipelineExecutor.clearModelBoundDeviceOverrides": {
84634
- capName: "pipeline-executor",
84635
- capScope: "system",
84636
- addonId: null,
84637
- access: "delete",
84638
- role: "admin"
84639
- },
84640
84561
  "pipelineExecutor.deleteModel": {
84641
84562
  capName: "pipeline-executor",
84642
84563
  capScope: "system",
@@ -84679,13 +84600,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
84679
84600
  access: "view",
84680
84601
  role: "admin"
84681
84602
  },
84682
- "pipelineExecutor.getDefaultSteps": {
84683
- capName: "pipeline-executor",
84684
- capScope: "system",
84685
- addonId: null,
84686
- access: "view",
84687
- role: "admin"
84688
- },
84689
84603
  "pipelineExecutor.getDetectionConfigSchema": {
84690
84604
  capName: "pipeline-executor",
84691
84605
  capScope: "system",
@@ -84707,20 +84621,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
84707
84621
  access: "view",
84708
84622
  role: "admin"
84709
84623
  },
84710
- "pipelineExecutor.getGlobalPipelineConfig": {
84711
- capName: "pipeline-executor",
84712
- capScope: "system",
84713
- addonId: null,
84714
- access: "view",
84715
- role: "admin"
84716
- },
84717
- "pipelineExecutor.getGlobalSteps": {
84718
- capName: "pipeline-executor",
84719
- capScope: "system",
84720
- addonId: null,
84721
- access: "view",
84722
- role: "admin"
84723
- },
84724
84624
  "pipelineExecutor.getInferenceDeviceHealth": {
84725
84625
  capName: "pipeline-executor",
84726
84626
  capScope: "system",
@@ -84980,13 +84880,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
84980
84880
  access: "view",
84981
84881
  role: "admin"
84982
84882
  },
84983
- "pipelineOrchestrator.getCameraStepOverrides": {
84984
- capName: "pipeline-orchestrator",
84985
- capScope: "system",
84986
- addonId: null,
84987
- access: "view",
84988
- role: "admin"
84989
- },
84990
84883
  "pipelineOrchestrator.getCameraSwitches": {
84991
84884
  capName: "pipeline-orchestrator",
84992
84885
  capScope: "system",
@@ -85225,13 +85118,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
85225
85118
  access: "create",
85226
85119
  role: "admin"
85227
85120
  },
85228
- "pipelineOrchestrator.setCameraPipelineForAgent": {
85229
- capName: "pipeline-orchestrator",
85230
- capScope: "system",
85231
- addonId: null,
85232
- access: "create",
85233
- role: "admin"
85234
- },
85235
85121
  "pipelineOrchestrator.setCameraSensors": {
85236
85122
  capName: "pipeline-orchestrator",
85237
85123
  capScope: "system",
@@ -85239,42 +85125,42 @@ var METHOD_ACCESS_MAP = Object.freeze({
85239
85125
  access: "create",
85240
85126
  role: "admin"
85241
85127
  },
85242
- "pipelineOrchestrator.setCameraStepOverride": {
85128
+ "pipelineOrchestrator.setCameraStepSettings": {
85243
85129
  capName: "pipeline-orchestrator",
85244
85130
  capScope: "system",
85245
85131
  addonId: null,
85246
85132
  access: "create",
85247
85133
  role: "admin"
85248
85134
  },
85249
- "pipelineOrchestrator.setCameraStepSettings": {
85135
+ "pipelineOrchestrator.setCameraStepToggle": {
85250
85136
  capName: "pipeline-orchestrator",
85251
85137
  capScope: "system",
85252
85138
  addonId: null,
85253
85139
  access: "create",
85254
85140
  role: "admin"
85255
85141
  },
85256
- "pipelineOrchestrator.setCameraStepToggle": {
85142
+ "pipelineOrchestrator.setCameraSwitch": {
85257
85143
  capName: "pipeline-orchestrator",
85258
85144
  capScope: "system",
85259
85145
  addonId: null,
85260
85146
  access: "create",
85261
85147
  role: "admin"
85262
85148
  },
85263
- "pipelineOrchestrator.setCameraSwitch": {
85149
+ "pipelineOrchestrator.setCapabilityBinding": {
85264
85150
  capName: "pipeline-orchestrator",
85265
85151
  capScope: "system",
85266
85152
  addonId: null,
85267
85153
  access: "create",
85268
85154
  role: "admin"
85269
85155
  },
85270
- "pipelineOrchestrator.setCapabilityBinding": {
85156
+ "pipelineOrchestrator.setLoadBalancingShares": {
85271
85157
  capName: "pipeline-orchestrator",
85272
85158
  capScope: "system",
85273
85159
  addonId: null,
85274
85160
  access: "create",
85275
85161
  role: "admin"
85276
85162
  },
85277
- "pipelineOrchestrator.setLoadBalancingShares": {
85163
+ "pipelineOrchestrator.setNodeStepSettings": {
85278
85164
  capName: "pipeline-orchestrator",
85279
85165
  capScope: "system",
85280
85166
  addonId: null,
@@ -87633,6 +87519,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
87633
87519
  access: "view",
87634
87520
  role: "admin"
87635
87521
  },
87522
+ "training.listCanaryTargets": {
87523
+ capName: "training",
87524
+ capScope: "system",
87525
+ addonId: null,
87526
+ access: "view",
87527
+ role: "admin"
87528
+ },
87636
87529
  "training.listJobs": {
87637
87530
  capName: "training",
87638
87531
  capScope: "system",
@@ -97172,11 +97065,6 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
97172
97065
  form: "single",
97173
97066
  optional: false
97174
97067
  }],
97175
- "pipelineExecutor.clearModelBoundDeviceOverrides": [{
97176
- name: "deviceIds",
97177
- form: "array",
97178
- optional: true
97179
- }],
97180
97068
  "pipelineExecutor.runPipeline": [{
97181
97069
  name: "deviceId",
97182
97070
  form: "single",
@@ -97232,11 +97120,6 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
97232
97120
  form: "array",
97233
97121
  optional: true
97234
97122
  }],
97235
- "pipelineOrchestrator.getCameraStepOverrides": [{
97236
- name: "deviceId",
97237
- form: "single",
97238
- optional: false
97239
- }],
97240
97123
  "pipelineOrchestrator.getCameraSwitches": [{
97241
97124
  name: "deviceId",
97242
97125
  form: "single",
@@ -97277,21 +97160,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
97277
97160
  form: "single",
97278
97161
  optional: false
97279
97162
  }],
97280
- "pipelineOrchestrator.setCameraPipelineForAgent": [{
97281
- name: "deviceId",
97282
- form: "single",
97283
- optional: false
97284
- }],
97285
97163
  "pipelineOrchestrator.setCameraSensors": [{
97286
97164
  name: "deviceId",
97287
97165
  form: "single",
97288
97166
  optional: false
97289
97167
  }],
97290
- "pipelineOrchestrator.setCameraStepOverride": [{
97291
- name: "deviceId",
97292
- form: "single",
97293
- optional: false
97294
- }],
97295
97168
  "pipelineOrchestrator.setCameraStepSettings": [{
97296
97169
  name: "deviceId",
97297
97170
  form: "single",
@@ -97969,11 +97842,6 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
97969
97842
  form: "single",
97970
97843
  optional: false
97971
97844
  }],
97972
- "training.canaryResult": [{
97973
- name: "deviceIds",
97974
- form: "array",
97975
- optional: false
97976
- }],
97977
97845
  "update.getStatus": [{
97978
97846
  name: "deviceId",
97979
97847
  form: "single",
@@ -98307,7 +98175,6 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
98307
98175
  "osdManager.renderDevice",
98308
98176
  "osdManager.setSlotBinding",
98309
98177
  "osdManager.setSlotCameraEnabled",
98310
- "pipelineExecutor.clearModelBoundDeviceOverrides",
98311
98178
  "pipelineExecutor.runPipeline",
98312
98179
  "pipelineExecutor.runPipelineBatch",
98313
98180
  "pipelineOrchestrator.applyDeviceSettingsPatch",
@@ -98319,7 +98186,6 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
98319
98186
  "pipelineOrchestrator.getCameraSettings",
98320
98187
  "pipelineOrchestrator.getCameraStatus",
98321
98188
  "pipelineOrchestrator.getCameraStatuses",
98322
- "pipelineOrchestrator.getCameraStepOverrides",
98323
98189
  "pipelineOrchestrator.getCameraSwitches",
98324
98190
  "pipelineOrchestrator.getDeviceLiveContribution",
98325
98191
  "pipelineOrchestrator.getDeviceSettingsContribution",
@@ -98328,9 +98194,7 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
98328
98194
  "pipelineOrchestrator.requestOccupancyLook",
98329
98195
  "pipelineOrchestrator.resolvePipeline",
98330
98196
  "pipelineOrchestrator.setCameraDetectionSource",
98331
- "pipelineOrchestrator.setCameraPipelineForAgent",
98332
98197
  "pipelineOrchestrator.setCameraSensors",
98333
- "pipelineOrchestrator.setCameraStepOverride",
98334
98198
  "pipelineOrchestrator.setCameraStepSettings",
98335
98199
  "pipelineOrchestrator.setCameraStepToggle",
98336
98200
  "pipelineOrchestrator.setCameraSwitch",
@@ -98395,8 +98259,7 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
98395
98259
  "streamBroker.restartProfile",
98396
98260
  "streamBroker.retractCameraStream",
98397
98261
  "streamBroker.setDeviceAudioMute",
98398
- "streamBroker.unassignProfile",
98399
- "training.canaryResult"
98262
+ "streamBroker.unassignProfile"
98400
98263
  ];
98401
98264
  //#endregion
98402
98265
  //#region src/generated/provider-kind-map.ts
@@ -99863,17 +99726,12 @@ function createSystemProxy(api) {
99863
99726
  pipelineExecutor: {
99864
99727
  getAvailableEngines: (input) => dispatch("pipelineExecutor", "getAvailableEngines", "query", input),
99865
99728
  getSelectedEngine: (input) => dispatch("pipelineExecutor", "getSelectedEngine", "query", input),
99866
- getDefaultSteps: (input) => dispatch("pipelineExecutor", "getDefaultSteps", "query", input),
99867
99729
  getEngineProvisioning: (input) => dispatch("pipelineExecutor", "getEngineProvisioning", "query", input),
99868
99730
  getVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "getVideoPipelineSteps", "query", input),
99869
99731
  setVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "setVideoPipelineSteps", "mutation", input),
99870
- clearDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearDeviceOverrides", "mutation", input),
99871
- clearModelBoundDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearModelBoundDeviceOverrides", "mutation", input),
99872
99732
  getInferenceDeviceHealth: (input) => dispatch("pipelineExecutor", "getInferenceDeviceHealth", "query", input),
99873
99733
  rearmInferenceDevice: (input) => dispatch("pipelineExecutor", "rearmInferenceDevice", "mutation", input),
99874
99734
  getSchema: (input) => dispatch("pipelineExecutor", "getSchema", "query", input),
99875
- getGlobalSteps: (input) => dispatch("pipelineExecutor", "getGlobalSteps", "query", input),
99876
- getGlobalPipelineConfig: (input) => dispatch("pipelineExecutor", "getGlobalPipelineConfig", "query", input),
99877
99735
  getOrchestratorConfigSchema: (input) => dispatch("pipelineExecutor", "getOrchestratorConfigSchema", "query", input),
99878
99736
  validatePipeline: (input) => dispatch("pipelineExecutor", "validatePipeline", "query", input),
99879
99737
  getCapabilities: (input) => dispatch("pipelineExecutor", "getCapabilities", "query", input),
@@ -99917,6 +99775,7 @@ function createSystemProxy(api) {
99917
99775
  setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
99918
99776
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
99919
99777
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
99778
+ setNodeStepSettings: (input) => dispatch("pipelineOrchestrator", "setNodeStepSettings", "mutation", input),
99920
99779
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
99921
99780
  forgetInferenceDevice: (input) => dispatch("pipelineOrchestrator", "forgetInferenceDevice", "mutation", input),
99922
99781
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
@@ -100137,6 +99996,7 @@ function createSystemProxy(api) {
100137
99996
  getJob: (input) => dispatch("training", "getJob", "query", input),
100138
99997
  cancelJob: (input) => dispatch("training", "cancelJob", "mutation", input),
100139
99998
  getJobResult: (input) => dispatch("training", "getJobResult", "query", input),
99999
+ listCanaryTargets: (input) => dispatch("training", "listCanaryTargets", "query", input),
100140
100000
  registerResult: (input) => dispatch("training", "registerResult", "mutation", input),
100141
100001
  canaryResult: (input) => dispatch("training", "canaryResult", "mutation", input),
100142
100002
  rollbackCanary: (input) => dispatch("training", "rollbackCanary", "mutation", input),
@@ -105893,14 +105753,14 @@ function collectModelBoundKeys(fields) {
105893
105753
  //#region src/pipeline/step-settings-layers.ts
105894
105754
  /**
105895
105755
  * The layers of a detection step's settings, and the field-level edits on them
105896
- * (D754).
105756
+ * (D754, D927).
105897
105757
  *
105898
- * A step's settings reach a session through up to three stored layers, merged
105899
- * key by key — a key in a higher layer wins:
105758
+ * A step's settings reach a session through two stored layers, merged key by
105759
+ * key — a key in the higher layer wins:
105900
105760
  *
105901
- * node the node's folded base (`inferenceDevices[node][*].steps`)
105902
- * camera `cameraSettings[cam].stepSettings[step]` — every accelerator
105903
- * accelerator `cameraSettings[cam].stepOverridesByDevice[node][key][step].settings`
105761
+ * node the node's base for the accelerator that runs the step
105762
+ * camera `cameraSettings[cam].stepSettings[step]` — camera-semantic
105763
+ * keys only, on every accelerator (never a model-bound field)
105904
105764
  *
105905
105765
  * Below them sits the default: the running model's (D738) or the field's own.
105906
105766
  *
@@ -105917,11 +105777,7 @@ function collectModelBoundKeys(fields) {
105917
105777
  * edits below never reach it (the full-copy "Override" this replaced).
105918
105778
  */
105919
105779
  /** Top-down order of the stored layers. */
105920
- var LAYER_ORDER = [
105921
- "accelerator",
105922
- "camera",
105923
- "node"
105924
- ];
105780
+ var LAYER_ORDER = ["camera", "node"];
105925
105781
  /**
105926
105782
  * The keys one field occupies in a bag: its own, plus its binding key when it
105927
105783
  * binds to a model. `boundKeys` = `collectModelBoundKeys(schema)`.
@@ -105960,7 +105816,7 @@ function settingsBelow(layers, layer) {
105960
105816
  }
105961
105817
  /** The effective bag: every stored layer merged. */
105962
105818
  function effectiveStepSettings(layers) {
105963
- return mergeSettingsBags(layers.node, layers.camera, layers.accelerator);
105819
+ return mergeSettingsBags(layers.node, layers.camera);
105964
105820
  }
105965
105821
  /** The highest stored layer that holds any key of `key`'s unit, or `default`. */
105966
105822
  function stepSettingSource(layers, key, boundKeys) {
@@ -110184,7 +110040,6 @@ exports.CameraMetricsSchema = CameraMetricsSchema;
110184
110040
  exports.CameraMetricsWithDeviceIdSchema = CameraMetricsWithDeviceIdSchema;
110185
110041
  exports.CameraMotionStatusSchema = CameraMotionStatusSchema;
110186
110042
  exports.CameraOccupancySnapshotForDeviceSchema = CameraOccupancySnapshotForDeviceSchema;
110187
- exports.CameraOverrideClearSchema = CameraOverrideClearSchema;
110188
110043
  exports.CameraOwnMotionSchema = CameraOwnMotionSchema;
110189
110044
  exports.CameraRawLevelSchema = CameraRawLevelSchema;
110190
110045
  exports.CameraRecordingModeSchema = CameraRecordingModeSchema;
@@ -110437,7 +110292,6 @@ exports.DetailCropConventionSchema = DetailCropConventionSchema;
110437
110292
  exports.DetectionCatalogClassMapSchema = DetectionCatalogClassMapSchema;
110438
110293
  exports.DetectionSourceSchema = DetectionSourceSchema;
110439
110294
  exports.DetectionSourcesSchema = DetectionSourcesSchema;
110440
- exports.DetectorStoreClearSchema = DetectorStoreClearSchema;
110441
110295
  exports.DeviceAdminLinkSchema = DeviceAdminLinkSchema;
110442
110296
  exports.DeviceCaStatusSchema = DeviceCaStatusSchema;
110443
110297
  exports.DeviceCertificateLoginMethodSchema = DeviceCertificateLoginMethodSchema;
@@ -111745,8 +111599,10 @@ exports.TrackStateSchema = TrackStateSchema;
111745
111599
  exports.TrackZoneFilterSchema = TrackZoneFilterSchema;
111746
111600
  exports.TrackedDetectionSchema = TrackedDetectionSchema;
111747
111601
  exports.TrainerSourceRefSchema = TrainerSourceRefSchema;
111602
+ exports.TrainingAcceleratorRefSchema = TrainingAcceleratorRefSchema;
111748
111603
  exports.TrainingBaseModelSchema = TrainingBaseModelSchema;
111749
111604
  exports.TrainingCanarySchema = TrainingCanarySchema;
111605
+ exports.TrainingCanaryTargetSchema = TrainingCanaryTargetSchema;
111750
111606
  exports.TrainingCatalogDraftSchema = TrainingCatalogDraftSchema;
111751
111607
  exports.TrainingCorpusSelectionSchema = TrainingCorpusSelectionSchema;
111752
111608
  exports.TrainingCredentialCheckSchema = TrainingCredentialCheckSchema;
@@ -111977,6 +111833,7 @@ exports.cameraCredentialsCapability = cameraCredentialsCapability;
111977
111833
  exports.cameraGridLayoutCapability = cameraGridLayoutCapability;
111978
111834
  exports.cameraOwnsMotionViaSensor = cameraOwnsMotionViaSensor;
111979
111835
  exports.cameraPipelineConfigCapability = cameraPipelineConfigCapability;
111836
+ exports.cameraScopedStepSettings = cameraScopedStepSettings;
111980
111837
  exports.cameraSensorRefKey = cameraSensorRefKey;
111981
111838
  exports.cameraStreamsCapability = cameraStreamsCapability;
111982
111839
  exports.canConvertUnit = canConvertUnit;
@@ -112314,6 +112171,7 @@ exports.isKnownTemplateVar = isKnownTemplateVar;
112314
112171
  exports.isLabelSupplyStepId = isLabelSupplyStepId;
112315
112172
  exports.isLocationEnabled = isLocationEnabled;
112316
112173
  exports.isMediaOwnerType = isMediaOwnerType;
112174
+ exports.isModelScopedStepSettingKey = isModelScopedStepSettingKey;
112317
112175
  exports.isNode = isNode;
112318
112176
  exports.isOauthLandingReason = isOauthLandingReason;
112319
112177
  exports.isObjectInput = isObjectInput;
@@ -112413,6 +112271,7 @@ exports.modelBindingKey = modelBindingKey;
112413
112271
  exports.modelConvertCapability = modelConvertCapability;
112414
112272
  exports.modelDistributorCapability = modelDistributorCapability;
112415
112273
  exports.modelFormatForRuntime = modelFormatForRuntime;
112274
+ exports.modelScopedStepSettingKeys = modelScopedStepSettingKeys;
112416
112275
  exports.motionCapability = motionCapability;
112417
112276
  exports.motionDetectionCapability = motionDetectionCapability;
112418
112277
  exports.motionSourceLabel = motionSourceLabel;