@camstack/addon-post-analysis 1.2.627 → 1.2.629

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 (15) hide show
  1. package/dist/{clip-model-registry-RSxtlgdN.js → clip-model-registry-M_QM7l6j.js} +175 -205
  2. package/dist/{clip-model-registry-CCMO8jrp.mjs → clip-model-registry-SrfKJ0e8.mjs} +170 -206
  3. package/dist/embedding-encoder/index.js +1 -1
  4. package/dist/embedding-encoder/index.mjs +1 -1
  5. package/dist/pipeline-analytics/_stub.js +2 -2
  6. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-CB62NeGh.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-CUsaUp1g.mjs} +2 -2
  7. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DxapkUgD.mjs +26 -0
  8. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-D7KeW_uB.mjs +26 -0
  9. package/dist/pipeline-analytics/{hostInit-BUdkjx1s.mjs → hostInit-q1u97PmF.mjs} +2 -2
  10. package/dist/pipeline-analytics/index.js +113448 -110126
  11. package/dist/pipeline-analytics/index.mjs +113623 -110301
  12. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  13. package/package.json +1 -1
  14. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DY-_tUCM.mjs +0 -26
  15. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-_Ip2ZGVX.mjs +0 -26
@@ -30,7 +30,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  }) : target, mod));
31
31
  //#endregion
32
32
  let node_crypto = require("node:crypto");
33
- //#region ../types/dist/event-category-BfJwUd2S.mjs
33
+ //#region ../types/dist/event-category-fDPduoeC.mjs
34
34
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
35
35
  EventCategory["SystemBoot"] = "system.boot";
36
36
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -357,9 +357,8 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
357
357
  EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
358
358
  /**
359
359
  * Per-camera pipeline config was mutated by the orchestrator
360
- * (3-level settings change via `setAgentAddonDefaults` /
361
- * `setCameraStepToggle` / `setCameraPipelineForAgent` or a
362
- * pipeline-scoped `applyDeviceSettingsPatch`). Orchestrator
360
+ * (a settings change via `setAgentInferenceDevices` /
361
+ * `setCameraStepToggle` / `setCameraStepSettings`). Orchestrator
363
362
  * subscribes to its own emission to hot-reload the assigned runner
364
363
  * via `attachCamera` so the next frame executes against the new
365
364
  * engine/steps without waiting for a rebalance or the next
@@ -5660,7 +5659,7 @@ var ZodIssueCode = {
5660
5659
  var ZodFirstPartyTypeKind;
5661
5660
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5662
5661
  //#endregion
5663
- //#region ../types/dist/sleep-6AqUnQIT.mjs
5662
+ //#region ../types/dist/sleep-CHIEEJkY.mjs
5664
5663
  /**
5665
5664
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5666
5665
  * window to float samples (D455).
@@ -11660,13 +11659,22 @@ var BirthDecisionRecordSchema = object({
11660
11659
  decidedByBirthEvidence: boolean(),
11661
11660
  /** Best class-compatible crop score, or `null` when nothing compatible was
11662
11661
  * found — deliberately not 0, which would be a measurement that never was.
11663
- * Includes a box the detector's own per-class floor refused (reason
11664
- * `below-detector-floor`, D922): that box never confirms, but it is the
11665
- * score the crop really held. */
11662
+ * Includes a box the detector's own per-class floor refused (D922): since
11663
+ * D925 the gate's bar, not that floor, decides whether it confirms. */
11666
11664
  bestScore: number().nullable(),
11667
11665
  /** The bar this candidate actually faced (the phantom-cell hook may raise it). */
11668
11666
  appliedMinConfidence: number().nullable(),
11669
11667
  /**
11668
+ * The detector the gate re-judged the birth WITH (D925): the session's own
11669
+ * root model, inference-device pool and node — never a node default. `null`
11670
+ * when the frame named no session detector or no gate ran, and on rows
11671
+ * written before D925. A `session-device-unavailable` row names the session
11672
+ * detector that could not be reached.
11673
+ */
11674
+ detectorModelId: string().nullable().default(null),
11675
+ detectorDeviceKey: string().nullable().default(null),
11676
+ detectorNodeId: string().nullable().default(null),
11677
+ /**
11670
11678
  * The track's own `firstSeen` — the candidate's first frame, which is where
11671
11679
  * the timeline starts. `null` for a suppressed birth, which has no track.
11672
11680
  */
@@ -47587,6 +47595,18 @@ Object.freeze({
47587
47595
  reason: "camera sensor mappings not loaded"
47588
47596
  });
47589
47597
  /**
47598
+ * What the vision model must answer before a package event is emitted
47599
+ * when a packages rule has "Confirm with the LLM" on.
47600
+ *
47601
+ * `package` is the verdict. `confidence` is 0..1. `reason` is the model's
47602
+ * one-line explanation, stored on the event so a drop is not silent.
47603
+ */
47604
+ var PackageLlmVerdictSchema = object({
47605
+ package: boolean(),
47606
+ confidence: number().min(0).max(1),
47607
+ reason: string().min(1)
47608
+ });
47609
+ /**
47590
47610
  * A model choice has a SCOPE, and a scope change has a workflow.
47591
47611
  *
47592
47612
  * ## The two scopes
@@ -48595,6 +48615,21 @@ var ObjectEventSchema = object({
48595
48615
  * pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
48596
48616
  */
48597
48617
  observedAt: number().optional(),
48618
+ /**
48619
+ * The delivery was emitted without a vision-model yes (D931).
48620
+ *
48621
+ * Set only when the packages rule asked for an LLM confirm and the model
48622
+ * was unreachable, timed out, or answered something that did not parse.
48623
+ * A notification reads it so it can say "possible" instead of a definite
48624
+ * delivery. Absent on every other row, and on a confirm that said yes.
48625
+ */
48626
+ packagePossible: boolean().optional(),
48627
+ /**
48628
+ * The vision model's verdict, when a packages rule asked for one and the
48629
+ * model answered the schema (D931). A "no" never becomes a row — the
48630
+ * detector drops it and logs the reason. Present on a yes.
48631
+ */
48632
+ packageLlmVerdict: PackageLlmVerdictSchema.optional(),
48598
48633
  /** The parent track's key-event importance [0,1], propagated to every object
48599
48634
  * event of the track (so an event row can be sorted by importance without a
48600
48635
  * track join). Absent on legacy rows / before the track was scored. */
@@ -51190,7 +51225,6 @@ var PipelineAddonSchemaSchema = object({
51190
51225
  defaultModelId: string(),
51191
51226
  defaultModelIdByFormat: record(string(), string()).optional(),
51192
51227
  enabledByDefault: boolean().optional(),
51193
- backfillIntoExistingOverrides: boolean().optional(),
51194
51228
  defaultConfidence: number(),
51195
51229
  group: string().optional(),
51196
51230
  configSchema: array(ConfigFieldBridge).readonly().optional()
@@ -51317,13 +51351,12 @@ var AudioTestResultSchema = object({
51317
51351
  error: string().optional(),
51318
51352
  frame: custom().optional()
51319
51353
  });
51320
- var PipelineConfigBridge = custom();
51321
51354
  var ConfigUISchemaBridge = custom();
51322
51355
  var ConfigUISchemaNullableBridge = custom();
51323
51356
  var InferenceCapabilitiesBridge = custom();
51324
51357
  var ModelAvailabilityListBridge = custom();
51325
51358
  var PipelineRunResultBridge = custom();
51326
- method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
51359
+ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
51327
51360
  modelId: string(),
51328
51361
  settings: record(string(), unknown()).readonly()
51329
51362
  }))), method(object({ steps: record(string(), object({
@@ -51332,28 +51365,6 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
51332
51365
  })) }), object({ success: literal(true) }), {
51333
51366
  kind: "mutation",
51334
51367
  auth: "admin"
51335
- }), method(object({ nodeId: string() }), object({
51336
- success: literal(true),
51337
- clearedDevices: number()
51338
- }), {
51339
- kind: "mutation",
51340
- auth: "admin"
51341
- }), method(object({
51342
- nodeId: string(),
51343
- deviceIds: array(number()).readonly().optional(),
51344
- dryRun: boolean()
51345
- }), object({
51346
- entries: array(object({
51347
- deviceId: number(),
51348
- keys: array(string()).readonly()
51349
- })).readonly(),
51350
- refused: array(object({
51351
- deviceId: number(),
51352
- reason: string()
51353
- })).readonly()
51354
- }), {
51355
- kind: "mutation",
51356
- auth: "admin"
51357
51368
  }), method(object({ nodeId: string() }), object({ unhealthy: array(object({
51358
51369
  /** `<backend>:<device>`, e.g. `openvino:gpu`. */
51359
51370
  deviceKey: string(),
@@ -51376,7 +51387,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
51376
51387
  }), object({ rearmed: boolean() }), {
51377
51388
  kind: "mutation",
51378
51389
  auth: "admin"
51379
- }), method(_void(), PipelineSchemaSchema), method(_void(), array(PipelineDefaultStepSchema).readonly().nullable()), method(_void(), PipelineConfigBridge), method(_void(), ConfigUISchemaBridge), method(object({
51390
+ }), method(_void(), PipelineSchemaSchema), method(_void(), ConfigUISchemaBridge), method(object({
51380
51391
  steps: array(PipelineStepInputSchema),
51381
51392
  deviceKey: string().optional()
51382
51393
  }), PipelineValidationResultSchema), method(_void(), InferenceCapabilitiesBridge), method(object({ addonId: string() }), ModelAvailabilityListBridge), method(object({
@@ -51624,11 +51635,18 @@ var KeptReasonSchema = _enum(["custom-pin"]);
51624
51635
  * Where a choice's latency came from (D791): this node's own benchmark
51625
51636
  * result, or the hardware-class table. Measured on the node beats the table.
51626
51637
  */
51627
- var LatencySourceSchema = discriminatedUnion("kind", [object({ kind: literal("table") }), object({
51628
- kind: literal("node-benchmark"),
51629
- resultId: string(),
51630
- measuredAtMs: number()
51631
- })]);
51638
+ var LatencySourceSchema = discriminatedUnion("kind", [
51639
+ object({ kind: literal("table") }),
51640
+ object({
51641
+ kind: literal("node-benchmark"),
51642
+ resultId: string(),
51643
+ measuredAtMs: number()
51644
+ }),
51645
+ object({
51646
+ kind: literal("estimated"),
51647
+ estimatedFrom: HardwareClassIdSchema
51648
+ })
51649
+ ]);
51632
51650
  var DeviceModelChoiceSchema = object({
51633
51651
  modelId: string(),
51634
51652
  p50Ms: number(),
@@ -51636,6 +51654,11 @@ var DeviceModelChoiceSchema = object({
51636
51654
  measured: boolean(),
51637
51655
  /** Absent on a plan from before D791 — read as the table. */
51638
51656
  source: LatencySourceSchema.optional(),
51657
+ /**
51658
+ * The measured class this latency was scaled from (D930). Absent when the
51659
+ * cell is the table or a node benchmark.
51660
+ */
51661
+ estimatedFrom: HardwareClassIdSchema.optional(),
51639
51662
  /** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
51640
51663
  capacitySessions: number(),
51641
51664
  personRecall: number()
@@ -51675,40 +51698,20 @@ var NodeDeviceChangeSchema = object({
51675
51698
  keys: array(string()).readonly()
51676
51699
  })).readonly()
51677
51700
  });
51678
- var CameraOverrideClearSchema = object({
51679
- deviceId: number(),
51680
- source: _enum(["step-override", "wholesale"]),
51701
+ /**
51702
+ * Every model and model-bound threshold lives on the accelerator that runs it
51703
+ * (D927), so the plan writes node / device entries only — there is no camera
51704
+ * layer for it to clear.
51705
+ */
51706
+ var AutoTuneWarningSchema = discriminatedUnion("kind", [object({
51707
+ kind: literal("custom-pin-kept"),
51681
51708
  nodeId: string(),
51682
- deviceKey: string().nullable(),
51683
- stepId: string(),
51684
- modelIdBefore: string().nullable(),
51685
- keys: array(string()).readonly()
51686
- });
51687
- var DetectorStoreClearSchema = object({
51688
- deviceId: number(),
51689
- keys: array(string()).readonly()
51690
- });
51691
- var AutoTuneWarningSchema = discriminatedUnion("kind", [
51692
- object({
51693
- kind: literal("detector-store-cluster-wide"),
51694
- skippedNodes: array(string()).readonly()
51695
- }),
51696
- object({
51697
- kind: literal("detector-store-unreadable"),
51698
- error: string()
51699
- }),
51700
- object({
51701
- kind: literal("custom-pin-kept"),
51702
- nodeId: string(),
51703
- deviceKey: string().nullable(),
51704
- deviceId: number().nullable(),
51705
- modelId: string()
51706
- }),
51707
- object({
51708
- kind: literal("custom-registry-unreadable"),
51709
- error: string()
51710
- })
51711
- ]);
51709
+ deviceKey: string(),
51710
+ modelId: string()
51711
+ }), object({
51712
+ kind: literal("custom-registry-unreadable"),
51713
+ error: string()
51714
+ })]);
51712
51715
  var AutoTuneOptionsSchema = object({
51713
51716
  /** Share of each accelerator's throughput kept free (0.3–0.5). */
51714
51717
  headroom: number().min(.3).max(.5).default(.4),
@@ -51730,8 +51733,6 @@ var AutoTunePlanSchema = object({
51730
51733
  generatedAt: number(),
51731
51734
  nodes: array(NodeRecommendationSchema).readonly(),
51732
51735
  nodeChanges: array(NodeDeviceChangeSchema).readonly(),
51733
- cameraClears: array(CameraOverrideClearSchema).readonly(),
51734
- detectorStoreClears: array(DetectorStoreClearSchema).readonly(),
51735
51736
  warnings: array(AutoTuneWarningSchema).readonly()
51736
51737
  });
51737
51738
  var AutoTuneApplyInputSchema = object({
@@ -51742,8 +51743,6 @@ var AutoTuneApplyInputSchema = object({
51742
51743
  var AutoTunePhaseResultSchema = object({
51743
51744
  phase: _enum([
51744
51745
  "download",
51745
- "camera-overrides",
51746
- "detector-thresholds",
51747
51746
  "node-models",
51748
51747
  "redispatch"
51749
51748
  ]),
@@ -53498,6 +53497,12 @@ var AgentPipelineSettingsSchema = object({
53498
53497
  /** Hub-persisted UI colour (`--color-node-*` theme tokens). */
53499
53498
  color: NodeColorIdSchema.optional(),
53500
53499
  /**
53500
+ * NODE-wide step settings (D927): `stepId → { key → value }`, applied on
53501
+ * every accelerator of the node under the device's own settings. Never a
53502
+ * model or a model-bound threshold. Written by `setNodeStepSettings`.
53503
+ */
53504
+ stepSettings: record(string(), record(string(), unknown()).readonly()).optional(),
53505
+ /**
53501
53506
  * Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
53502
53507
  * weight, steps}. Absent / all-disabled ⇒ the node's single default
53503
53508
  * accelerator (safe default); two+ enabled ⇒ the dispatcher balances
@@ -53513,17 +53518,6 @@ var AgentPipelineSettingsSchema = object({
53513
53518
  steps: record(string(), DeviceStepConfigSchema).optional()
53514
53519
  })).optional()
53515
53520
  });
53516
- var CameraPipelineForAgentSchema = object({
53517
- steps: array(PipelineStepInputSchema).readonly(),
53518
- audio: object({
53519
- modelId: string(),
53520
- enabled: boolean()
53521
- }).nullable()
53522
- });
53523
- var CameraStepOverridePatchSchema = object({
53524
- modelId: string().optional(),
53525
- settings: record(string(), unknown()).readonly().optional()
53526
- });
53527
53521
  var CameraStepSettingsSchema = record(string(), record(string(), unknown()).readonly());
53528
53522
  /** The three root-detector choices a camera has (D507: at most one root). */
53529
53523
  var CameraDetectionSourceSchema = _enum([
@@ -53533,9 +53527,7 @@ var CameraDetectionSourceSchema = _enum([
53533
53527
  ]);
53534
53528
  var CameraPipelineSettingsSchema = object({
53535
53529
  stepToggles: record(string(), boolean()).optional(),
53536
- stepSettings: CameraStepSettingsSchema.optional(),
53537
- stepOverridesByDevice: record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).optional(),
53538
- pipelineByAgent: record(string(), CameraPipelineForAgentSchema).optional()
53530
+ stepSettings: CameraStepSettingsSchema.optional()
53539
53531
  });
53540
53532
  /**
53541
53533
  * Pipeline placement record persisted by `addon-pipeline-orchestrator` via
@@ -54081,6 +54073,13 @@ method(object({
54081
54073
  }), object({ success: literal(true) }), {
54082
54074
  kind: "mutation",
54083
54075
  auth: "admin"
54076
+ }), method(object({
54077
+ agentNodeId: string(),
54078
+ addonId: string(),
54079
+ settings: record(string(), unknown()).nullable()
54080
+ }), object({ success: literal(true) }), {
54081
+ kind: "mutation",
54082
+ auth: "admin"
54084
54083
  }), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
54085
54084
  agentNodeId: string(),
54086
54085
  deviceKey: string()
@@ -54090,9 +54089,7 @@ method(object({
54090
54089
  }), method(object({ agentNodeId: string() }), object({
54091
54090
  success: literal(true),
54092
54091
  /** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
54093
- effectiveModelId: string().nullable(),
54094
- /** Number of cameras whose node-scoped overrides were cleared. */
54095
- clearedCameraOverrides: number()
54092
+ effectiveModelId: string().nullable()
54096
54093
  }), {
54097
54094
  kind: "mutation",
54098
54095
  auth: "admin"
@@ -54147,15 +54144,6 @@ method(object({
54147
54144
  }), object({ success: literal(true) }), {
54148
54145
  kind: "mutation",
54149
54146
  auth: "admin"
54150
- }), method(object({ deviceId: number() }), record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).nullable()), method(object({
54151
- deviceId: number(),
54152
- agentNodeId: string(),
54153
- deviceKey: string(),
54154
- addonId: string(),
54155
- patch: CameraStepOverridePatchSchema.nullable()
54156
- }), object({ success: literal(true) }), {
54157
- kind: "mutation",
54158
- auth: "admin"
54159
54147
  }), method(object({
54160
54148
  deviceId: number(),
54161
54149
  addonId: string(),
@@ -54163,13 +54151,6 @@ method(object({
54163
54151
  }), object({ success: literal(true) }), {
54164
54152
  kind: "mutation",
54165
54153
  auth: "admin"
54166
- }), method(object({
54167
- deviceId: number(),
54168
- agentNodeId: string(),
54169
- pipeline: CameraPipelineForAgentSchema.nullable()
54170
- }), object({ success: literal(true) }), {
54171
- kind: "mutation",
54172
- auth: "admin"
54173
54154
  }), method(object({
54174
54155
  deviceId: number(),
54175
54156
  agentNodeId: string().optional()
@@ -64264,6 +64245,30 @@ includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly(
64264
64245
  })
64265
64246
  }
64266
64247
  };
64248
+ var CORE_ULTRA_265K_IGPU_CLOCK_MHZ = 2e3;
64249
+ var positiveOrNull = number().nullable().transform((value) => value !== null && Number.isFinite(value) && value > 0 ? value : null);
64250
+ var textOrNull = string().nullable().transform((value) => value !== null && value.trim() !== "" ? value : null);
64251
+ var PrecisionGopsSchema = object({
64252
+ int8: positiveOrNull,
64253
+ fp16: positiveOrNull
64254
+ });
64255
+ /** What one accelerator device reported. Every failed query is null. */
64256
+ var AcceleratorComputeSchema = object({
64257
+ deviceKey: string(),
64258
+ fullDeviceName: textOrNull,
64259
+ executionUnits: positiveOrNull,
64260
+ clockMHz: positiveOrNull,
64261
+ gops: PrecisionGopsSchema.nullable(),
64262
+ architecture: textOrNull,
64263
+ npuName: textOrNull,
64264
+ tops: positiveOrNull,
64265
+ vendor: textOrNull,
64266
+ webgpuArchitecture: textOrNull,
64267
+ webgpuDevice: textOrNull,
64268
+ computeUnits: positiveOrNull
64269
+ });
64270
+ object({ accelerators: array(AcceleratorComputeSchema).nullable() });
64271
+ 64 * CORE_ULTRA_265K_IGPU_CLOCK_MHZ;
64267
64272
  var ModelFormatSchema = _enum(MODEL_FORMATS);
64268
64273
  var HwAccelBackendInputSchema = _enum([
64269
64274
  "videotoolbox",
@@ -64377,7 +64382,12 @@ var HardwareInfoSchema = object({
64377
64382
  availableRAM_MB: number(),
64378
64383
  gpu: GpuInfoSchema.nullable(),
64379
64384
  npu: NpuInfoSchema.nullable(),
64380
- coral: CoralInfoSchema.nullable().optional()
64385
+ coral: CoralInfoSchema.nullable().optional(),
64386
+ /**
64387
+ * Per-accelerator compute (D930). Omitted by a node that has not probed it.
64388
+ * `null` fields inside an entry are a failed query, never a zero.
64389
+ */
64390
+ accelerators: array(AcceleratorComputeSchema).readonly().optional()
64381
64391
  });
64382
64392
  var PlatformScoreSchema = object({
64383
64393
  runtime: literal("python"),
@@ -67235,7 +67245,20 @@ var ZoneRuleSchema = object({
67235
67245
  * Defaults to `true` so operators creating a rule via the UI
67236
67246
  * see it active immediately.
67237
67247
  */
67238
- enabled: boolean().default(true)
67248
+ enabled: boolean().default(true),
67249
+ /**
67250
+ * Package stage only. When true, a package candidate may open from a
67251
+ * scene difference in this rule's zone after a person leaves. The
67252
+ * package model, when it boxes something overlapping, is extra evidence
67253
+ * and is not the gate. Absent or false keeps today's model path.
67254
+ */
67255
+ detectBySceneDifference: boolean().optional(),
67256
+ /**
67257
+ * Package stage only. When true, a promoted package is shown to the
67258
+ * `llm` cap before the delivery event is emitted. Absent or false emits
67259
+ * as today. Usable with or without `detectBySceneDifference`.
67260
+ */
67261
+ confirmWithLlm: boolean().optional()
67239
67262
  });
67240
67263
  array(ZoneRuleSchema).readonly();
67241
67264
  /**
@@ -69593,7 +69616,7 @@ method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "
69593
69616
  * - **Jobs.** A persisted state machine, a reconcile loop against the
69594
69617
  * provider, a cost guard, a daily orphan sweep and the retention rules.
69595
69618
  * - **The return flow.** Verified artefacts → Model Studio
69596
- * (`custom-model-registry.importModelBundle`) → canary on cameras →
69619
+ * (`custom-model-registry.importModelBundle`) → canary on accelerators →
69597
69620
  * rollback. Nothing is ever registered automatically.
69598
69621
  *
69599
69622
  * Plan/start takes a live {@link TrainingCorpusSelection} (collections +
@@ -69730,20 +69753,24 @@ var TrainingProgressPointSchema = object({
69730
69753
  map50: number().nullable(),
69731
69754
  map50_95: number().nullable()
69732
69755
  });
69756
+ /** One accelerator: a `(node, inference device)` that runs the root detector. */
69757
+ var TrainingAcceleratorRefSchema = object({
69758
+ nodeId: string(),
69759
+ deviceKey: string()
69760
+ });
69761
+ /**
69762
+ * A canary pins the registered model on chosen ACCELERATORS — a model is
69763
+ * chosen by the accelerator that runs it (D927); every camera balanced onto
69764
+ * one runs it. `previous` is the root-detector pin each one had (`null` = it
69765
+ * ran its default), exactly, so rollback restores it.
69766
+ */
69733
69767
  var TrainingCanarySchema = object({
69734
- deviceIds: array(number().int()).readonly(),
69768
+ accelerators: array(TrainingAcceleratorRefSchema).readonly(),
69735
69769
  since: number(),
69736
- /** Every override the canary replaced, exactly, so rollback restores it. */
69737
- previous: array(object({
69738
- deviceId: number().int(),
69739
- nodeId: string(),
69740
- deviceKey: string(),
69741
- patch: object({
69742
- modelId: string().optional(),
69743
- settings: record(string(), unknown()).readonly().optional()
69744
- }).nullable()
69745
- })).readonly()
69770
+ previous: array(TrainingAcceleratorRefSchema.extend({ modelId: string().nullable() })).readonly()
69746
69771
  });
69772
+ /** An accelerator a canary may pin: it runs the root detector, on this model now. */
69773
+ var TrainingCanaryTargetSchema = TrainingAcceleratorRefSchema.extend({ pinnedModelId: string().nullable() });
69747
69774
  var TrainingJobSchema = object({
69748
69775
  id: string(),
69749
69776
  idempotencyKey: string(),
@@ -69855,11 +69882,11 @@ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" })
69855
69882
  kind: "mutation",
69856
69883
  auth: "admin",
69857
69884
  timeoutMs: 12e4
69858
- }), method(IdInput, TrainingResultSchema.nullable(), { auth: "admin" }), method(IdInput.extend({ canaryDeviceIds: array(number().int()).readonly() }), TrainingJobSchema, {
69885
+ }), method(IdInput, TrainingResultSchema.nullable(), { auth: "admin" }), method(_void(), array(TrainingCanaryTargetSchema).readonly(), { auth: "admin" }), method(IdInput.extend({ canaryAccelerators: array(TrainingAcceleratorRefSchema).readonly() }), TrainingJobSchema, {
69859
69886
  kind: "mutation",
69860
69887
  auth: "admin",
69861
69888
  timeoutMs: 30 * 6e4
69862
- }), method(IdInput.extend({ deviceIds: array(number().int()).min(1).readonly() }), TrainingJobSchema, {
69889
+ }), method(IdInput.extend({ accelerators: array(TrainingAcceleratorRefSchema).min(1).readonly() }), TrainingJobSchema, {
69863
69890
  kind: "mutation",
69864
69891
  auth: "admin",
69865
69892
  timeoutMs: 12e4
@@ -76903,20 +76930,6 @@ Object.freeze({
76903
76930
  access: "create",
76904
76931
  role: "admin"
76905
76932
  },
76906
- "pipelineExecutor.clearDeviceOverrides": {
76907
- capName: "pipeline-executor",
76908
- capScope: "system",
76909
- addonId: null,
76910
- access: "delete",
76911
- role: "admin"
76912
- },
76913
- "pipelineExecutor.clearModelBoundDeviceOverrides": {
76914
- capName: "pipeline-executor",
76915
- capScope: "system",
76916
- addonId: null,
76917
- access: "delete",
76918
- role: "admin"
76919
- },
76920
76933
  "pipelineExecutor.deleteModel": {
76921
76934
  capName: "pipeline-executor",
76922
76935
  capScope: "system",
@@ -76959,13 +76972,6 @@ Object.freeze({
76959
76972
  access: "view",
76960
76973
  role: "admin"
76961
76974
  },
76962
- "pipelineExecutor.getDefaultSteps": {
76963
- capName: "pipeline-executor",
76964
- capScope: "system",
76965
- addonId: null,
76966
- access: "view",
76967
- role: "admin"
76968
- },
76969
76975
  "pipelineExecutor.getDetectionConfigSchema": {
76970
76976
  capName: "pipeline-executor",
76971
76977
  capScope: "system",
@@ -76987,20 +76993,6 @@ Object.freeze({
76987
76993
  access: "view",
76988
76994
  role: "admin"
76989
76995
  },
76990
- "pipelineExecutor.getGlobalPipelineConfig": {
76991
- capName: "pipeline-executor",
76992
- capScope: "system",
76993
- addonId: null,
76994
- access: "view",
76995
- role: "admin"
76996
- },
76997
- "pipelineExecutor.getGlobalSteps": {
76998
- capName: "pipeline-executor",
76999
- capScope: "system",
77000
- addonId: null,
77001
- access: "view",
77002
- role: "admin"
77003
- },
77004
76996
  "pipelineExecutor.getInferenceDeviceHealth": {
77005
76997
  capName: "pipeline-executor",
77006
76998
  capScope: "system",
@@ -77260,13 +77252,6 @@ Object.freeze({
77260
77252
  access: "view",
77261
77253
  role: "admin"
77262
77254
  },
77263
- "pipelineOrchestrator.getCameraStepOverrides": {
77264
- capName: "pipeline-orchestrator",
77265
- capScope: "system",
77266
- addonId: null,
77267
- access: "view",
77268
- role: "admin"
77269
- },
77270
77255
  "pipelineOrchestrator.getCameraSwitches": {
77271
77256
  capName: "pipeline-orchestrator",
77272
77257
  capScope: "system",
@@ -77505,13 +77490,6 @@ Object.freeze({
77505
77490
  access: "create",
77506
77491
  role: "admin"
77507
77492
  },
77508
- "pipelineOrchestrator.setCameraPipelineForAgent": {
77509
- capName: "pipeline-orchestrator",
77510
- capScope: "system",
77511
- addonId: null,
77512
- access: "create",
77513
- role: "admin"
77514
- },
77515
77493
  "pipelineOrchestrator.setCameraSensors": {
77516
77494
  capName: "pipeline-orchestrator",
77517
77495
  capScope: "system",
@@ -77519,42 +77497,42 @@ Object.freeze({
77519
77497
  access: "create",
77520
77498
  role: "admin"
77521
77499
  },
77522
- "pipelineOrchestrator.setCameraStepOverride": {
77500
+ "pipelineOrchestrator.setCameraStepSettings": {
77523
77501
  capName: "pipeline-orchestrator",
77524
77502
  capScope: "system",
77525
77503
  addonId: null,
77526
77504
  access: "create",
77527
77505
  role: "admin"
77528
77506
  },
77529
- "pipelineOrchestrator.setCameraStepSettings": {
77507
+ "pipelineOrchestrator.setCameraStepToggle": {
77530
77508
  capName: "pipeline-orchestrator",
77531
77509
  capScope: "system",
77532
77510
  addonId: null,
77533
77511
  access: "create",
77534
77512
  role: "admin"
77535
77513
  },
77536
- "pipelineOrchestrator.setCameraStepToggle": {
77514
+ "pipelineOrchestrator.setCameraSwitch": {
77537
77515
  capName: "pipeline-orchestrator",
77538
77516
  capScope: "system",
77539
77517
  addonId: null,
77540
77518
  access: "create",
77541
77519
  role: "admin"
77542
77520
  },
77543
- "pipelineOrchestrator.setCameraSwitch": {
77521
+ "pipelineOrchestrator.setCapabilityBinding": {
77544
77522
  capName: "pipeline-orchestrator",
77545
77523
  capScope: "system",
77546
77524
  addonId: null,
77547
77525
  access: "create",
77548
77526
  role: "admin"
77549
77527
  },
77550
- "pipelineOrchestrator.setCapabilityBinding": {
77528
+ "pipelineOrchestrator.setLoadBalancingShares": {
77551
77529
  capName: "pipeline-orchestrator",
77552
77530
  capScope: "system",
77553
77531
  addonId: null,
77554
77532
  access: "create",
77555
77533
  role: "admin"
77556
77534
  },
77557
- "pipelineOrchestrator.setLoadBalancingShares": {
77535
+ "pipelineOrchestrator.setNodeStepSettings": {
77558
77536
  capName: "pipeline-orchestrator",
77559
77537
  capScope: "system",
77560
77538
  addonId: null,
@@ -79913,6 +79891,13 @@ Object.freeze({
79913
79891
  access: "view",
79914
79892
  role: "admin"
79915
79893
  },
79894
+ "training.listCanaryTargets": {
79895
+ capName: "training",
79896
+ capScope: "system",
79897
+ addonId: null,
79898
+ access: "view",
79899
+ role: "admin"
79900
+ },
79916
79901
  "training.listJobs": {
79917
79902
  capName: "training",
79918
79903
  capScope: "system",
@@ -86299,11 +86284,6 @@ Object.freeze({
86299
86284
  form: "single",
86300
86285
  optional: false
86301
86286
  }],
86302
- "pipelineExecutor.clearModelBoundDeviceOverrides": [{
86303
- name: "deviceIds",
86304
- form: "array",
86305
- optional: true
86306
- }],
86307
86287
  "pipelineExecutor.runPipeline": [{
86308
86288
  name: "deviceId",
86309
86289
  form: "single",
@@ -86359,11 +86339,6 @@ Object.freeze({
86359
86339
  form: "array",
86360
86340
  optional: true
86361
86341
  }],
86362
- "pipelineOrchestrator.getCameraStepOverrides": [{
86363
- name: "deviceId",
86364
- form: "single",
86365
- optional: false
86366
- }],
86367
86342
  "pipelineOrchestrator.getCameraSwitches": [{
86368
86343
  name: "deviceId",
86369
86344
  form: "single",
@@ -86404,21 +86379,11 @@ Object.freeze({
86404
86379
  form: "single",
86405
86380
  optional: false
86406
86381
  }],
86407
- "pipelineOrchestrator.setCameraPipelineForAgent": [{
86408
- name: "deviceId",
86409
- form: "single",
86410
- optional: false
86411
- }],
86412
86382
  "pipelineOrchestrator.setCameraSensors": [{
86413
86383
  name: "deviceId",
86414
86384
  form: "single",
86415
86385
  optional: false
86416
86386
  }],
86417
- "pipelineOrchestrator.setCameraStepOverride": [{
86418
- name: "deviceId",
86419
- form: "single",
86420
- optional: false
86421
- }],
86422
86387
  "pipelineOrchestrator.setCameraStepSettings": [{
86423
86388
  name: "deviceId",
86424
86389
  form: "single",
@@ -87096,11 +87061,6 @@ Object.freeze({
87096
87061
  form: "single",
87097
87062
  optional: false
87098
87063
  }],
87099
- "training.canaryResult": [{
87100
- name: "deviceIds",
87101
- form: "array",
87102
- optional: false
87103
- }],
87104
87064
  "update.getStatus": [{
87105
87065
  name: "deviceId",
87106
87066
  form: "single",
@@ -91389,6 +91349,10 @@ function readTimelapseGeneratedAt(rule, deviceId) {
91389
91349
  return rule.lastGeneratedAt ?? 0;
91390
91350
  }
91391
91351
  MotionOnMotionChangedDataSchema.omit({ triggeredBy: true });
91352
+ Object.freeze({
91353
+ person: .8,
91354
+ vehicle: .8
91355
+ });
91392
91356
  object({
91393
91357
  /**
91394
91358
  * Fraction of the box's own size added on EACH side before cutting.
@@ -93058,6 +93022,12 @@ Object.defineProperty(exports, "OpsLogEntrySchema", {
93058
93022
  return OpsLogEntrySchema;
93059
93023
  }
93060
93024
  });
93025
+ Object.defineProperty(exports, "PackageLlmVerdictSchema", {
93026
+ enumerable: true,
93027
+ get: function() {
93028
+ return PackageLlmVerdictSchema;
93029
+ }
93030
+ });
93061
93031
  Object.defineProperty(exports, "PoolMemoryWatchdog", {
93062
93032
  enumerable: true,
93063
93033
  get: function() {