@camstack/addon-pipeline-orchestrator 1.2.284 → 1.2.285

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/index.js CHANGED
@@ -11531,57 +11531,15 @@ var ClipSearchStrictnessSchema = _enum([
11531
11531
  "balanced",
11532
11532
  "strict"
11533
11533
  ]);
11534
- new Set([
11535
- {
11536
- id: "person",
11537
- name: "Person"
11538
- },
11539
- {
11540
- id: "vehicle",
11541
- name: "Vehicle"
11542
- },
11543
- {
11544
- id: "animal",
11545
- name: "Animal"
11546
- },
11547
- {
11548
- id: "package",
11549
- name: "Package"
11550
- }
11551
- ].map((l) => l.id));
11552
- var COCO_TO_MACRO = {
11553
- mapping: {
11554
- person: "person",
11555
- bicycle: "vehicle",
11556
- car: "vehicle",
11557
- motorcycle: "vehicle",
11558
- airplane: "vehicle",
11559
- bus: "vehicle",
11560
- train: "vehicle",
11561
- truck: "vehicle",
11562
- boat: "vehicle",
11563
- bird: "animal",
11564
- cat: "animal",
11565
- dog: "animal",
11566
- horse: "animal",
11567
- sheep: "animal",
11568
- cow: "animal",
11569
- elephant: "animal",
11570
- bear: "animal",
11571
- zebra: "animal",
11572
- giraffe: "animal",
11573
- suitcase: "package",
11574
- backpack: "package",
11575
- handbag: "package"
11576
- },
11577
- preserveOriginal: false
11578
- };
11579
- /** Steps a root detector may declare it fills. */
11580
- var FILLABLE_STEP_IDS = [
11534
+ /** Steps whose effect a root label can BE. */
11535
+ var LABEL_SUPPLY_STEP_IDS = [
11581
11536
  "animal-classifier",
11582
11537
  "vehicle-classifier",
11583
11538
  "package-detection"
11584
11539
  ];
11540
+ /** Steps whose box a root detection can BE. */
11541
+ var CROP_SUPPLY_STEP_IDS = ["plate-detection", "face-detection"];
11542
+ [...LABEL_SUPPLY_STEP_IDS, ...CROP_SUPPLY_STEP_IDS];
11585
11543
  var MODEL_FORMATS = [
11586
11544
  "onnx",
11587
11545
  "coreml",
@@ -11714,12 +11672,35 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
11714
11672
  /** True when the weights or their data forbid commercial use. */
11715
11673
  nonCommercial: boolean().optional()
11716
11674
  }));
11717
- /** One `fillsClassifierEffects` entry — see `ModelCatalogEntry.fillsClassifierEffects`. */
11718
- var FillsClassifierEffectSchema = object({
11719
- stepId: _enum(FILLABLE_STEP_IDS),
11675
+ /**
11676
+ * One step a ROOT detector can supply from its own output (D730) — see
11677
+ * `ModelCatalogEntry.suppliesSteps`.
11678
+ *
11679
+ * - `label`: the root's raw class IS the step's answer. `labelToEffect` maps
11680
+ * the root's label to the step's vocabulary; `uncovered` is the vocabulary
11681
+ * the root cannot produce (shown as unavailable, never a blocker).
11682
+ * - `crop`: the root draws the box the step would have found (`license_plate`
11683
+ * for plate-detection, `face` for face-detection). The box becomes a detail
11684
+ * child of the `parentMacro` detection that contains it — never a track.
11685
+ */
11686
+ var RootStepSupplySchema = discriminatedUnion("kind", [object({
11687
+ kind: literal("label"),
11688
+ stepId: _enum(LABEL_SUPPLY_STEP_IDS),
11720
11689
  labelToEffect: record(string(), string()),
11721
11690
  uncovered: array(string()).readonly()
11722
- });
11691
+ }), object({
11692
+ kind: literal("crop"),
11693
+ stepId: _enum(CROP_SUPPLY_STEP_IDS),
11694
+ rootLabels: array(string()).readonly(),
11695
+ parentMacro: _enum(["vehicle", "person"]),
11696
+ childClass: _enum(["plate", "face"]),
11697
+ /**
11698
+ * The root's smaller input side, stamped on read by `rootSuppliesOf` from
11699
+ * the model entry — what a step's `minRootInputPx` gate judges. Never
11700
+ * stored by an import.
11701
+ */
11702
+ rootInputPx: number().int().positive().optional()
11703
+ })]);
11723
11704
  var ModelCatalogEntrySchema = object({
11724
11705
  id: string(),
11725
11706
  name: string(),
@@ -11846,15 +11827,15 @@ var ModelCatalogEntrySchema = object({
11846
11827
  */
11847
11828
  classMap: DetectionCatalogClassMapSchema.optional(),
11848
11829
  /**
11849
- * The pipeline steps this ROOT detector already does the work of (D715):
11850
- * its labels name the effect the step exists to produce (`deer` for
11851
- * `animal-classifier`, `package` for `package-detection`). Derived from the
11852
- * labelmap by `deriveClassifierFills`, never hand-written; a COCO model
11853
- * declares none. Whether a declaration is honoured is the step's own
11854
- * `labelLink` policy (`resolveLabelLink`). `labelToEffect` values are in
11855
- * `FILLABLE_STEP_VOCABULARIES` (guard `check-label-link-vocabulary`).
11830
+ * The pipeline steps this ROOT detector can supply from its own output
11831
+ * (D730): its labels name a step's effect (`deer` for `animal-classifier`)
11832
+ * or draw a step's box (`license_plate` for `plate-detection`). Computed at
11833
+ * import from THIS model's labelmap by `deriveRootSupplies`, never written
11834
+ * by hand and never assumed per family; a row without it is derived on read
11835
+ * (`rootSuppliesOf`). Whether a camera uses it is the step's own
11836
+ * `useRootModel` flag (`resolveRootSupply`).
11856
11837
  */
11857
- fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional(),
11838
+ suppliesSteps: array(RootStepSupplySchema).readonly().optional(),
11858
11839
  /**
11859
11840
  * The model's CLIP feature-space contract (text encoder, dimension, vector
11860
11841
  * index, token window, search floor) — see `clip-model.ts`. Present ONLY on a
@@ -18833,6 +18814,51 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
18833
18814
  kind: "mutation",
18834
18815
  auth: "admin"
18835
18816
  });
18817
+ new Set([
18818
+ {
18819
+ id: "person",
18820
+ name: "Person"
18821
+ },
18822
+ {
18823
+ id: "vehicle",
18824
+ name: "Vehicle"
18825
+ },
18826
+ {
18827
+ id: "animal",
18828
+ name: "Animal"
18829
+ },
18830
+ {
18831
+ id: "package",
18832
+ name: "Package"
18833
+ }
18834
+ ].map((l) => l.id));
18835
+ var COCO_TO_MACRO = {
18836
+ mapping: {
18837
+ person: "person",
18838
+ bicycle: "vehicle",
18839
+ car: "vehicle",
18840
+ motorcycle: "vehicle",
18841
+ airplane: "vehicle",
18842
+ bus: "vehicle",
18843
+ train: "vehicle",
18844
+ truck: "vehicle",
18845
+ boat: "vehicle",
18846
+ bird: "animal",
18847
+ cat: "animal",
18848
+ dog: "animal",
18849
+ horse: "animal",
18850
+ sheep: "animal",
18851
+ cow: "animal",
18852
+ elephant: "animal",
18853
+ bear: "animal",
18854
+ zebra: "animal",
18855
+ giraffe: "animal",
18856
+ suitcase: "package",
18857
+ backpack: "package",
18858
+ handbag: "package"
18859
+ },
18860
+ preserveOriginal: false
18861
+ };
18836
18862
  var AUDIO_MACRO_LABELS = [
18837
18863
  {
18838
18864
  id: "speech",
@@ -24159,6 +24185,34 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
24159
24185
  timestamp: number()
24160
24186
  });
24161
24187
  /**
24188
+ * A root model's boxes standing in for one crop-kind step's own inference
24189
+ * (D730) — see `runPipeline.suppliedRoot`.
24190
+ */
24191
+ var SuppliedRootOutputSchema = object({
24192
+ stepId: string(),
24193
+ /** The root model that drew the boxes — stamped on the result. */
24194
+ modelId: string(),
24195
+ detections: array(object({
24196
+ /** `[x1, y1, x2, y2]` in the pixels of the call's image. */
24197
+ bbox: tuple([
24198
+ number(),
24199
+ number(),
24200
+ number(),
24201
+ number()
24202
+ ]),
24203
+ score: number(),
24204
+ /**
24205
+ * Five facial landmarks in the same pixels — a face the step's own
24206
+ * detector already re-found inside a root face box (D730), so its
24207
+ * embedder child aligns it exactly as it aligns any detected face.
24208
+ */
24209
+ landmarks: array(object({
24210
+ x: number(),
24211
+ y: number()
24212
+ })).optional()
24213
+ })).min(1)
24214
+ });
24215
+ /**
24162
24216
  * Reference to the frame's retained NATIVE surface + the parent crop's placement
24163
24217
  * within the frame, so the executor can re-cut a leaf child ROI at native
24164
24218
  * resolution on the detail plane. See the `runPipeline` `nativeCropRef` field.
@@ -24289,7 +24343,7 @@ var PipelineModelOptionSchema = object({
24289
24343
  legacy: boolean().optional(),
24290
24344
  provider: ModelProviderIdSchema.optional(),
24291
24345
  defaultConfidence: number().optional(),
24292
- fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional()
24346
+ suppliesSteps: array(RootStepSupplySchema).readonly().optional()
24293
24347
  });
24294
24348
  var ConfigFieldBridge = custom();
24295
24349
  var PipelineAddonSchemaSchema = object({
@@ -24693,7 +24747,16 @@ var pipelineExecutorCapability = {
24693
24747
  * `device-not-servable`), and nothing reaches the camera's live
24694
24748
  * trace stream. Absent ⇒ unchanged behaviour.
24695
24749
  */
24696
- replay: literal(true).optional()
24750
+ replay: literal(true).optional(),
24751
+ /**
24752
+ * Root-supplied detections for the tree's ROOT step (D730). Set by
24753
+ * `runDetailSubtree` when the camera's root model supplies a crop-kind
24754
+ * step (a Frigate+ `license_plate` for `plate-detection`): the step is
24755
+ * NOT inferred, these boxes are its output, and its children (the plate
24756
+ * reader) run on them through their own crop policy. Boxes are in the
24757
+ * PIXELS of the image this call carries. Absent ⇒ the root step runs.
24758
+ */
24759
+ suppliedRoot: SuppliedRootOutputSchema.optional()
24697
24760
  }), PipelineRunResultBridge, { kind: "mutation" }),
24698
24761
  /**
24699
24762
  * Batched run — N raw frames packed into one cap call. The provider
@@ -26083,7 +26146,22 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
26083
26146
  */
26084
26147
  cropJpeg: string().optional(),
26085
26148
  parent: DetailParentSchema,
26086
- steps: array(string()).optional()
26149
+ steps: array(string()).optional(),
26150
+ /**
26151
+ * The camera's root model already drew this step's boxes (D730): a
26152
+ * `license_plate` inside the parent vehicle. The named step is NOT
26153
+ * inferred — these FRAME-space boxes are its output — and its
26154
+ * requested children (the plate reader) run on them. Absent ⇒ every
26155
+ * requested step infers as before.
26156
+ */
26157
+ supplied: object({
26158
+ stepId: string(),
26159
+ modelId: string(),
26160
+ boxes: array(object({
26161
+ bbox: NativeCropBboxSchema,
26162
+ score: number()
26163
+ })).min(1)
26164
+ }).optional()
26087
26165
  }), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" }), method(object({
26088
26166
  /** Catalog step id, e.g. `clip-embedding`. */
26089
26167
  stepId: string(),
@@ -32508,6 +32586,27 @@ var ViewerEndpointsSchema = object({
32508
32586
  /** What the ranking currently resolves to (may be empty if nothing is up). */
32509
32587
  resolved: array(string()).readonly()
32510
32588
  });
32589
+ /**
32590
+ * One audience's hub address (see `hub-address.ts`): the operator's stored
32591
+ * override, the address in use, and where it came from.
32592
+ */
32593
+ var HubAddressSnapshotSchema = object({
32594
+ /** The operator's override, or null for automatic. */
32595
+ override: string().nullable(),
32596
+ /** The address in use, or null when nothing qualifies (never loopback). */
32597
+ resolved: string().nullable(),
32598
+ source: _enum([
32599
+ "override",
32600
+ "auto",
32601
+ "none"
32602
+ ])
32603
+ });
32604
+ var HubAddressesSchema = object({
32605
+ /** "Hub address for agents" — agents' bundle/model pulls, LAN devices. */
32606
+ cluster: HubAddressSnapshotSchema,
32607
+ /** "Public address for sign-in links" — e-mail links, OIDC, WebAuthn, OAuth2. */
32608
+ browser: HubAddressSnapshotSchema
32609
+ });
32511
32610
  var AllowedAddressesSchema = object({
32512
32611
  /**
32513
32612
  * Allowlist of interface addresses operators have explicitly opted
@@ -32554,7 +32653,13 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
32554
32653
  * an address notification links can be flagged with, not a hub
32555
32654
  * route. Default `false`: racers and rankers never see it. */
32556
32655
  includeAppLink: boolean().optional()
32557
- }), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), ViewerEndpointsSchema), method(object({ baseUrls: array(string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
32656
+ }), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), ViewerEndpointsSchema), method(object({ baseUrls: array(string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }), method(_void(), HubAddressesSchema), method(object({
32657
+ audience: _enum(["cluster", "browser"]),
32658
+ baseUrl: string().nullable()
32659
+ }), HubAddressesSchema, {
32660
+ kind: "mutation",
32661
+ auth: "admin"
32662
+ }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
32558
32663
  kind: "mutation",
32559
32664
  auth: "admin"
32560
32665
  }), method(object({
@@ -41133,6 +41238,12 @@ Object.freeze({
41133
41238
  addonId: null,
41134
41239
  access: "view"
41135
41240
  },
41241
+ "localNetwork.getHubAddresses": {
41242
+ capName: "local-network",
41243
+ capScope: "system",
41244
+ addonId: null,
41245
+ access: "view"
41246
+ },
41136
41247
  "localNetwork.getNotificationEndpoint": {
41137
41248
  capName: "local-network",
41138
41249
  capScope: "system",
@@ -41187,6 +41298,12 @@ Object.freeze({
41187
41298
  addonId: null,
41188
41299
  access: "create"
41189
41300
  },
41301
+ "localNetwork.setHubAddress": {
41302
+ capName: "local-network",
41303
+ capScope: "system",
41304
+ addonId: null,
41305
+ access: "create"
41306
+ },
41190
41307
  "localNetwork.setNotificationEndpoint": {
41191
41308
  capName: "local-network",
41192
41309
  capScope: "system",
@@ -49918,7 +50035,7 @@ var STATE_SUMMARY_VARS = [
49918
50035
  {
49919
50036
  name: "summarySection",
49920
50037
  label: "Summary: this section",
49921
- description: "The section a per-section summary row is about (D698); on a summary sent as one message, every section it reports, comma-separated.",
50038
+ description: "The section a per-section summary row is about; on a summary sent as one message, every section it reports, comma-separated.",
49922
50039
  example: "Batterie scariche",
49923
50040
  group: "system",
49924
50041
  families: ["rule"],
package/dist/index.mjs CHANGED
@@ -11503,57 +11503,15 @@ var ClipSearchStrictnessSchema = _enum([
11503
11503
  "balanced",
11504
11504
  "strict"
11505
11505
  ]);
11506
- new Set([
11507
- {
11508
- id: "person",
11509
- name: "Person"
11510
- },
11511
- {
11512
- id: "vehicle",
11513
- name: "Vehicle"
11514
- },
11515
- {
11516
- id: "animal",
11517
- name: "Animal"
11518
- },
11519
- {
11520
- id: "package",
11521
- name: "Package"
11522
- }
11523
- ].map((l) => l.id));
11524
- var COCO_TO_MACRO = {
11525
- mapping: {
11526
- person: "person",
11527
- bicycle: "vehicle",
11528
- car: "vehicle",
11529
- motorcycle: "vehicle",
11530
- airplane: "vehicle",
11531
- bus: "vehicle",
11532
- train: "vehicle",
11533
- truck: "vehicle",
11534
- boat: "vehicle",
11535
- bird: "animal",
11536
- cat: "animal",
11537
- dog: "animal",
11538
- horse: "animal",
11539
- sheep: "animal",
11540
- cow: "animal",
11541
- elephant: "animal",
11542
- bear: "animal",
11543
- zebra: "animal",
11544
- giraffe: "animal",
11545
- suitcase: "package",
11546
- backpack: "package",
11547
- handbag: "package"
11548
- },
11549
- preserveOriginal: false
11550
- };
11551
- /** Steps a root detector may declare it fills. */
11552
- var FILLABLE_STEP_IDS = [
11506
+ /** Steps whose effect a root label can BE. */
11507
+ var LABEL_SUPPLY_STEP_IDS = [
11553
11508
  "animal-classifier",
11554
11509
  "vehicle-classifier",
11555
11510
  "package-detection"
11556
11511
  ];
11512
+ /** Steps whose box a root detection can BE. */
11513
+ var CROP_SUPPLY_STEP_IDS = ["plate-detection", "face-detection"];
11514
+ [...LABEL_SUPPLY_STEP_IDS, ...CROP_SUPPLY_STEP_IDS];
11557
11515
  var MODEL_FORMATS = [
11558
11516
  "onnx",
11559
11517
  "coreml",
@@ -11686,12 +11644,35 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
11686
11644
  /** True when the weights or their data forbid commercial use. */
11687
11645
  nonCommercial: boolean().optional()
11688
11646
  }));
11689
- /** One `fillsClassifierEffects` entry — see `ModelCatalogEntry.fillsClassifierEffects`. */
11690
- var FillsClassifierEffectSchema = object({
11691
- stepId: _enum(FILLABLE_STEP_IDS),
11647
+ /**
11648
+ * One step a ROOT detector can supply from its own output (D730) — see
11649
+ * `ModelCatalogEntry.suppliesSteps`.
11650
+ *
11651
+ * - `label`: the root's raw class IS the step's answer. `labelToEffect` maps
11652
+ * the root's label to the step's vocabulary; `uncovered` is the vocabulary
11653
+ * the root cannot produce (shown as unavailable, never a blocker).
11654
+ * - `crop`: the root draws the box the step would have found (`license_plate`
11655
+ * for plate-detection, `face` for face-detection). The box becomes a detail
11656
+ * child of the `parentMacro` detection that contains it — never a track.
11657
+ */
11658
+ var RootStepSupplySchema = discriminatedUnion("kind", [object({
11659
+ kind: literal("label"),
11660
+ stepId: _enum(LABEL_SUPPLY_STEP_IDS),
11692
11661
  labelToEffect: record(string(), string()),
11693
11662
  uncovered: array(string()).readonly()
11694
- });
11663
+ }), object({
11664
+ kind: literal("crop"),
11665
+ stepId: _enum(CROP_SUPPLY_STEP_IDS),
11666
+ rootLabels: array(string()).readonly(),
11667
+ parentMacro: _enum(["vehicle", "person"]),
11668
+ childClass: _enum(["plate", "face"]),
11669
+ /**
11670
+ * The root's smaller input side, stamped on read by `rootSuppliesOf` from
11671
+ * the model entry — what a step's `minRootInputPx` gate judges. Never
11672
+ * stored by an import.
11673
+ */
11674
+ rootInputPx: number().int().positive().optional()
11675
+ })]);
11695
11676
  var ModelCatalogEntrySchema = object({
11696
11677
  id: string(),
11697
11678
  name: string(),
@@ -11818,15 +11799,15 @@ var ModelCatalogEntrySchema = object({
11818
11799
  */
11819
11800
  classMap: DetectionCatalogClassMapSchema.optional(),
11820
11801
  /**
11821
- * The pipeline steps this ROOT detector already does the work of (D715):
11822
- * its labels name the effect the step exists to produce (`deer` for
11823
- * `animal-classifier`, `package` for `package-detection`). Derived from the
11824
- * labelmap by `deriveClassifierFills`, never hand-written; a COCO model
11825
- * declares none. Whether a declaration is honoured is the step's own
11826
- * `labelLink` policy (`resolveLabelLink`). `labelToEffect` values are in
11827
- * `FILLABLE_STEP_VOCABULARIES` (guard `check-label-link-vocabulary`).
11802
+ * The pipeline steps this ROOT detector can supply from its own output
11803
+ * (D730): its labels name a step's effect (`deer` for `animal-classifier`)
11804
+ * or draw a step's box (`license_plate` for `plate-detection`). Computed at
11805
+ * import from THIS model's labelmap by `deriveRootSupplies`, never written
11806
+ * by hand and never assumed per family; a row without it is derived on read
11807
+ * (`rootSuppliesOf`). Whether a camera uses it is the step's own
11808
+ * `useRootModel` flag (`resolveRootSupply`).
11828
11809
  */
11829
- fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional(),
11810
+ suppliesSteps: array(RootStepSupplySchema).readonly().optional(),
11830
11811
  /**
11831
11812
  * The model's CLIP feature-space contract (text encoder, dimension, vector
11832
11813
  * index, token window, search floor) — see `clip-model.ts`. Present ONLY on a
@@ -18805,6 +18786,51 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
18805
18786
  kind: "mutation",
18806
18787
  auth: "admin"
18807
18788
  });
18789
+ new Set([
18790
+ {
18791
+ id: "person",
18792
+ name: "Person"
18793
+ },
18794
+ {
18795
+ id: "vehicle",
18796
+ name: "Vehicle"
18797
+ },
18798
+ {
18799
+ id: "animal",
18800
+ name: "Animal"
18801
+ },
18802
+ {
18803
+ id: "package",
18804
+ name: "Package"
18805
+ }
18806
+ ].map((l) => l.id));
18807
+ var COCO_TO_MACRO = {
18808
+ mapping: {
18809
+ person: "person",
18810
+ bicycle: "vehicle",
18811
+ car: "vehicle",
18812
+ motorcycle: "vehicle",
18813
+ airplane: "vehicle",
18814
+ bus: "vehicle",
18815
+ train: "vehicle",
18816
+ truck: "vehicle",
18817
+ boat: "vehicle",
18818
+ bird: "animal",
18819
+ cat: "animal",
18820
+ dog: "animal",
18821
+ horse: "animal",
18822
+ sheep: "animal",
18823
+ cow: "animal",
18824
+ elephant: "animal",
18825
+ bear: "animal",
18826
+ zebra: "animal",
18827
+ giraffe: "animal",
18828
+ suitcase: "package",
18829
+ backpack: "package",
18830
+ handbag: "package"
18831
+ },
18832
+ preserveOriginal: false
18833
+ };
18808
18834
  var AUDIO_MACRO_LABELS = [
18809
18835
  {
18810
18836
  id: "speech",
@@ -24131,6 +24157,34 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
24131
24157
  timestamp: number()
24132
24158
  });
24133
24159
  /**
24160
+ * A root model's boxes standing in for one crop-kind step's own inference
24161
+ * (D730) — see `runPipeline.suppliedRoot`.
24162
+ */
24163
+ var SuppliedRootOutputSchema = object({
24164
+ stepId: string(),
24165
+ /** The root model that drew the boxes — stamped on the result. */
24166
+ modelId: string(),
24167
+ detections: array(object({
24168
+ /** `[x1, y1, x2, y2]` in the pixels of the call's image. */
24169
+ bbox: tuple([
24170
+ number(),
24171
+ number(),
24172
+ number(),
24173
+ number()
24174
+ ]),
24175
+ score: number(),
24176
+ /**
24177
+ * Five facial landmarks in the same pixels — a face the step's own
24178
+ * detector already re-found inside a root face box (D730), so its
24179
+ * embedder child aligns it exactly as it aligns any detected face.
24180
+ */
24181
+ landmarks: array(object({
24182
+ x: number(),
24183
+ y: number()
24184
+ })).optional()
24185
+ })).min(1)
24186
+ });
24187
+ /**
24134
24188
  * Reference to the frame's retained NATIVE surface + the parent crop's placement
24135
24189
  * within the frame, so the executor can re-cut a leaf child ROI at native
24136
24190
  * resolution on the detail plane. See the `runPipeline` `nativeCropRef` field.
@@ -24261,7 +24315,7 @@ var PipelineModelOptionSchema = object({
24261
24315
  legacy: boolean().optional(),
24262
24316
  provider: ModelProviderIdSchema.optional(),
24263
24317
  defaultConfidence: number().optional(),
24264
- fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional()
24318
+ suppliesSteps: array(RootStepSupplySchema).readonly().optional()
24265
24319
  });
24266
24320
  var ConfigFieldBridge = custom();
24267
24321
  var PipelineAddonSchemaSchema = object({
@@ -24665,7 +24719,16 @@ var pipelineExecutorCapability = {
24665
24719
  * `device-not-servable`), and nothing reaches the camera's live
24666
24720
  * trace stream. Absent ⇒ unchanged behaviour.
24667
24721
  */
24668
- replay: literal(true).optional()
24722
+ replay: literal(true).optional(),
24723
+ /**
24724
+ * Root-supplied detections for the tree's ROOT step (D730). Set by
24725
+ * `runDetailSubtree` when the camera's root model supplies a crop-kind
24726
+ * step (a Frigate+ `license_plate` for `plate-detection`): the step is
24727
+ * NOT inferred, these boxes are its output, and its children (the plate
24728
+ * reader) run on them through their own crop policy. Boxes are in the
24729
+ * PIXELS of the image this call carries. Absent ⇒ the root step runs.
24730
+ */
24731
+ suppliedRoot: SuppliedRootOutputSchema.optional()
24669
24732
  }), PipelineRunResultBridge, { kind: "mutation" }),
24670
24733
  /**
24671
24734
  * Batched run — N raw frames packed into one cap call. The provider
@@ -26055,7 +26118,22 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
26055
26118
  */
26056
26119
  cropJpeg: string().optional(),
26057
26120
  parent: DetailParentSchema,
26058
- steps: array(string()).optional()
26121
+ steps: array(string()).optional(),
26122
+ /**
26123
+ * The camera's root model already drew this step's boxes (D730): a
26124
+ * `license_plate` inside the parent vehicle. The named step is NOT
26125
+ * inferred — these FRAME-space boxes are its output — and its
26126
+ * requested children (the plate reader) run on them. Absent ⇒ every
26127
+ * requested step infers as before.
26128
+ */
26129
+ supplied: object({
26130
+ stepId: string(),
26131
+ modelId: string(),
26132
+ boxes: array(object({
26133
+ bbox: NativeCropBboxSchema,
26134
+ score: number()
26135
+ })).min(1)
26136
+ }).optional()
26059
26137
  }), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" }), method(object({
26060
26138
  /** Catalog step id, e.g. `clip-embedding`. */
26061
26139
  stepId: string(),
@@ -32480,6 +32558,27 @@ var ViewerEndpointsSchema = object({
32480
32558
  /** What the ranking currently resolves to (may be empty if nothing is up). */
32481
32559
  resolved: array(string()).readonly()
32482
32560
  });
32561
+ /**
32562
+ * One audience's hub address (see `hub-address.ts`): the operator's stored
32563
+ * override, the address in use, and where it came from.
32564
+ */
32565
+ var HubAddressSnapshotSchema = object({
32566
+ /** The operator's override, or null for automatic. */
32567
+ override: string().nullable(),
32568
+ /** The address in use, or null when nothing qualifies (never loopback). */
32569
+ resolved: string().nullable(),
32570
+ source: _enum([
32571
+ "override",
32572
+ "auto",
32573
+ "none"
32574
+ ])
32575
+ });
32576
+ var HubAddressesSchema = object({
32577
+ /** "Hub address for agents" — agents' bundle/model pulls, LAN devices. */
32578
+ cluster: HubAddressSnapshotSchema,
32579
+ /** "Public address for sign-in links" — e-mail links, OIDC, WebAuthn, OAuth2. */
32580
+ browser: HubAddressSnapshotSchema
32581
+ });
32483
32582
  var AllowedAddressesSchema = object({
32484
32583
  /**
32485
32584
  * Allowlist of interface addresses operators have explicitly opted
@@ -32526,7 +32625,13 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
32526
32625
  * an address notification links can be flagged with, not a hub
32527
32626
  * route. Default `false`: racers and rankers never see it. */
32528
32627
  includeAppLink: boolean().optional()
32529
- }), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), ViewerEndpointsSchema), method(object({ baseUrls: array(string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
32628
+ }), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), ViewerEndpointsSchema), method(object({ baseUrls: array(string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }), method(_void(), HubAddressesSchema), method(object({
32629
+ audience: _enum(["cluster", "browser"]),
32630
+ baseUrl: string().nullable()
32631
+ }), HubAddressesSchema, {
32632
+ kind: "mutation",
32633
+ auth: "admin"
32634
+ }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
32530
32635
  kind: "mutation",
32531
32636
  auth: "admin"
32532
32637
  }), method(object({
@@ -41105,6 +41210,12 @@ Object.freeze({
41105
41210
  addonId: null,
41106
41211
  access: "view"
41107
41212
  },
41213
+ "localNetwork.getHubAddresses": {
41214
+ capName: "local-network",
41215
+ capScope: "system",
41216
+ addonId: null,
41217
+ access: "view"
41218
+ },
41108
41219
  "localNetwork.getNotificationEndpoint": {
41109
41220
  capName: "local-network",
41110
41221
  capScope: "system",
@@ -41159,6 +41270,12 @@ Object.freeze({
41159
41270
  addonId: null,
41160
41271
  access: "create"
41161
41272
  },
41273
+ "localNetwork.setHubAddress": {
41274
+ capName: "local-network",
41275
+ capScope: "system",
41276
+ addonId: null,
41277
+ access: "create"
41278
+ },
41162
41279
  "localNetwork.setNotificationEndpoint": {
41163
41280
  capName: "local-network",
41164
41281
  capScope: "system",
@@ -49890,7 +50007,7 @@ var STATE_SUMMARY_VARS = [
49890
50007
  {
49891
50008
  name: "summarySection",
49892
50009
  label: "Summary: this section",
49893
- description: "The section a per-section summary row is about (D698); on a summary sent as one message, every section it reports, comma-separated.",
50010
+ description: "The section a per-section summary row is about; on a summary sent as one message, every section it reports, comma-separated.",
49894
50011
  example: "Batterie scariche",
49895
50012
  group: "system",
49896
50013
  families: ["rule"],
@@ -30,7 +30,7 @@ async function d(e) {
30
30
  }
31
31
  }
32
32
  async function f() {
33
- return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BMNGHN3F.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-fPY8Q2bi.mjs")).catch((e) => {
34
34
  throw l = void 0, e;
35
35
  }), l;
36
36
  }