@camstack/addon-provider-homeassistant 1.2.160 → 1.2.162

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.
@@ -5379,7 +5379,7 @@ var ZodIssueCode = {
5379
5379
  var ZodFirstPartyTypeKind;
5380
5380
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5381
5381
  //#endregion
5382
- //#region ../types/dist/sleep-DXKLNFvA.mjs
5382
+ //#region ../types/dist/sleep-C16NCZR2.mjs
5383
5383
  /**
5384
5384
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5385
5385
  * window to float samples (D455).
@@ -10668,57 +10668,15 @@ var ClipSearchStrictnessSchema = _enum([
10668
10668
  "balanced",
10669
10669
  "strict"
10670
10670
  ]);
10671
- new Set([
10672
- {
10673
- id: "person",
10674
- name: "Person"
10675
- },
10676
- {
10677
- id: "vehicle",
10678
- name: "Vehicle"
10679
- },
10680
- {
10681
- id: "animal",
10682
- name: "Animal"
10683
- },
10684
- {
10685
- id: "package",
10686
- name: "Package"
10687
- }
10688
- ].map((l) => l.id));
10689
- var COCO_TO_MACRO = {
10690
- mapping: {
10691
- person: "person",
10692
- bicycle: "vehicle",
10693
- car: "vehicle",
10694
- motorcycle: "vehicle",
10695
- airplane: "vehicle",
10696
- bus: "vehicle",
10697
- train: "vehicle",
10698
- truck: "vehicle",
10699
- boat: "vehicle",
10700
- bird: "animal",
10701
- cat: "animal",
10702
- dog: "animal",
10703
- horse: "animal",
10704
- sheep: "animal",
10705
- cow: "animal",
10706
- elephant: "animal",
10707
- bear: "animal",
10708
- zebra: "animal",
10709
- giraffe: "animal",
10710
- suitcase: "package",
10711
- backpack: "package",
10712
- handbag: "package"
10713
- },
10714
- preserveOriginal: false
10715
- };
10716
- /** Steps a root detector may declare it fills. */
10717
- var FILLABLE_STEP_IDS = [
10671
+ /** Steps whose effect a root label can BE. */
10672
+ var LABEL_SUPPLY_STEP_IDS = [
10718
10673
  "animal-classifier",
10719
10674
  "vehicle-classifier",
10720
10675
  "package-detection"
10721
10676
  ];
10677
+ /** Steps whose box a root detection can BE. */
10678
+ var CROP_SUPPLY_STEP_IDS = ["plate-detection", "face-detection"];
10679
+ [...LABEL_SUPPLY_STEP_IDS, ...CROP_SUPPLY_STEP_IDS];
10722
10680
  var MODEL_FORMATS = [
10723
10681
  "onnx",
10724
10682
  "coreml",
@@ -10851,12 +10809,35 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
10851
10809
  /** True when the weights or their data forbid commercial use. */
10852
10810
  nonCommercial: boolean().optional()
10853
10811
  }));
10854
- /** One `fillsClassifierEffects` entry — see `ModelCatalogEntry.fillsClassifierEffects`. */
10855
- var FillsClassifierEffectSchema = object({
10856
- stepId: _enum(FILLABLE_STEP_IDS),
10812
+ /**
10813
+ * One step a ROOT detector can supply from its own output (D730) — see
10814
+ * `ModelCatalogEntry.suppliesSteps`.
10815
+ *
10816
+ * - `label`: the root's raw class IS the step's answer. `labelToEffect` maps
10817
+ * the root's label to the step's vocabulary; `uncovered` is the vocabulary
10818
+ * the root cannot produce (shown as unavailable, never a blocker).
10819
+ * - `crop`: the root draws the box the step would have found (`license_plate`
10820
+ * for plate-detection, `face` for face-detection). The box becomes a detail
10821
+ * child of the `parentMacro` detection that contains it — never a track.
10822
+ */
10823
+ var RootStepSupplySchema = discriminatedUnion("kind", [object({
10824
+ kind: literal("label"),
10825
+ stepId: _enum(LABEL_SUPPLY_STEP_IDS),
10857
10826
  labelToEffect: record(string(), string()),
10858
10827
  uncovered: array(string()).readonly()
10859
- });
10828
+ }), object({
10829
+ kind: literal("crop"),
10830
+ stepId: _enum(CROP_SUPPLY_STEP_IDS),
10831
+ rootLabels: array(string()).readonly(),
10832
+ parentMacro: _enum(["vehicle", "person"]),
10833
+ childClass: _enum(["plate", "face"]),
10834
+ /**
10835
+ * The root's smaller input side, stamped on read by `rootSuppliesOf` from
10836
+ * the model entry — what a step's `minRootInputPx` gate judges. Never
10837
+ * stored by an import.
10838
+ */
10839
+ rootInputPx: number().int().positive().optional()
10840
+ })]);
10860
10841
  var ModelCatalogEntrySchema = object({
10861
10842
  id: string(),
10862
10843
  name: string(),
@@ -10983,15 +10964,15 @@ var ModelCatalogEntrySchema = object({
10983
10964
  */
10984
10965
  classMap: DetectionCatalogClassMapSchema.optional(),
10985
10966
  /**
10986
- * The pipeline steps this ROOT detector already does the work of (D715):
10987
- * its labels name the effect the step exists to produce (`deer` for
10988
- * `animal-classifier`, `package` for `package-detection`). Derived from the
10989
- * labelmap by `deriveClassifierFills`, never hand-written; a COCO model
10990
- * declares none. Whether a declaration is honoured is the step's own
10991
- * `labelLink` policy (`resolveLabelLink`). `labelToEffect` values are in
10992
- * `FILLABLE_STEP_VOCABULARIES` (guard `check-label-link-vocabulary`).
10967
+ * The pipeline steps this ROOT detector can supply from its own output
10968
+ * (D730): its labels name a step's effect (`deer` for `animal-classifier`)
10969
+ * or draw a step's box (`license_plate` for `plate-detection`). Computed at
10970
+ * import from THIS model's labelmap by `deriveRootSupplies`, never written
10971
+ * by hand and never assumed per family; a row without it is derived on read
10972
+ * (`rootSuppliesOf`). Whether a camera uses it is the step's own
10973
+ * `useRootModel` flag (`resolveRootSupply`).
10993
10974
  */
10994
- fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional(),
10975
+ suppliesSteps: array(RootStepSupplySchema).readonly().optional(),
10995
10976
  /**
10996
10977
  * The model's CLIP feature-space contract (text encoder, dimension, vector
10997
10978
  * index, token window, search floor) — see `clip-model.ts`. Present ONLY on a
@@ -16743,6 +16724,12 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
16743
16724
  kind: "mutation",
16744
16725
  auth: "admin"
16745
16726
  });
16727
+ var HUB_ADDRESS_ROLES = [
16728
+ "appConnections",
16729
+ "notificationTaps",
16730
+ "internal",
16731
+ "publicEndpoint"
16732
+ ];
16746
16733
  /**
16747
16734
  * Transport bounds for AI capability methods.
16748
16735
  *
@@ -18527,6 +18514,51 @@ var notificationOutputCapability = {
18527
18514
  })
18528
18515
  }
18529
18516
  };
18517
+ new Set([
18518
+ {
18519
+ id: "person",
18520
+ name: "Person"
18521
+ },
18522
+ {
18523
+ id: "vehicle",
18524
+ name: "Vehicle"
18525
+ },
18526
+ {
18527
+ id: "animal",
18528
+ name: "Animal"
18529
+ },
18530
+ {
18531
+ id: "package",
18532
+ name: "Package"
18533
+ }
18534
+ ].map((l) => l.id));
18535
+ var COCO_TO_MACRO = {
18536
+ mapping: {
18537
+ person: "person",
18538
+ bicycle: "vehicle",
18539
+ car: "vehicle",
18540
+ motorcycle: "vehicle",
18541
+ airplane: "vehicle",
18542
+ bus: "vehicle",
18543
+ train: "vehicle",
18544
+ truck: "vehicle",
18545
+ boat: "vehicle",
18546
+ bird: "animal",
18547
+ cat: "animal",
18548
+ dog: "animal",
18549
+ horse: "animal",
18550
+ sheep: "animal",
18551
+ cow: "animal",
18552
+ elephant: "animal",
18553
+ bear: "animal",
18554
+ zebra: "animal",
18555
+ giraffe: "animal",
18556
+ suitcase: "package",
18557
+ backpack: "package",
18558
+ handbag: "package"
18559
+ },
18560
+ preserveOriginal: false
18561
+ };
18530
18562
  var AUDIO_MACRO_LABELS = [
18531
18563
  {
18532
18564
  id: "speech",
@@ -19322,6 +19354,8 @@ var NcSystemEventKindSchema = _enum([
19322
19354
  "stream-offline",
19323
19355
  "node-online",
19324
19356
  "node-offline",
19357
+ "node-restarting",
19358
+ "node-updating",
19325
19359
  "node-inference-unavailable",
19326
19360
  "detection-blind",
19327
19361
  "addon-crash-loop",
@@ -20927,7 +20961,13 @@ var NcAlarmModeDelaysListSchema = array(object({
20927
20961
  * Absent = false (logged, not sent). Even when true it is not sent when that same sensor
20928
20962
  * is the one that starts the entry delay — the entry-delay notification already names it.
20929
20963
  */
20930
- notifySensorRewatched: boolean().optional()
20964
+ notifySensorRewatched: boolean().optional(),
20965
+ /**
20966
+ * D735: notify "ignored" when a sensor this arm bypassed really MOVED while armed (its own
20967
+ * change time is after the arm) and set nothing off. Absent = false (logged, not sent). A
20968
+ * re-sync, a recovery from `unavailable` or a duplicate is never announced, switch or not.
20969
+ */
20970
+ notifySensorIgnored: boolean().optional()
20931
20971
  })).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
20932
20972
  var NcAlarmModeDelaysEditListSchema = array(object({
20933
20973
  mode: AlarmArmModeSchema,
@@ -20940,7 +20980,9 @@ var NcAlarmModeDelaysEditListSchema = array(object({
20940
20980
  /** D706: set the switch, or `null` to clear it (back to the default, false). */
20941
20981
  notifyDuringEntryDelay: boolean().nullable().optional(),
20942
20982
  /** D706: set the switch, or `null` to clear it (back to the default, false). */
20943
- notifySensorRewatched: boolean().nullable().optional()
20983
+ notifySensorRewatched: boolean().nullable().optional(),
20984
+ /** D735: set the switch, or `null` to clear it (back to the default, false). */
20985
+ notifySensorIgnored: boolean().nullable().optional()
20944
20986
  })).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
20945
20987
  /** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
20946
20988
  var NcAlarmNonBlockingEditSchema = object({
@@ -23855,6 +23897,34 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
23855
23897
  timestamp: number()
23856
23898
  });
23857
23899
  /**
23900
+ * A root model's boxes standing in for one crop-kind step's own inference
23901
+ * (D730) — see `runPipeline.suppliedRoot`.
23902
+ */
23903
+ var SuppliedRootOutputSchema = object({
23904
+ stepId: string(),
23905
+ /** The root model that drew the boxes — stamped on the result. */
23906
+ modelId: string(),
23907
+ detections: array(object({
23908
+ /** `[x1, y1, x2, y2]` in the pixels of the call's image. */
23909
+ bbox: tuple([
23910
+ number(),
23911
+ number(),
23912
+ number(),
23913
+ number()
23914
+ ]),
23915
+ score: number(),
23916
+ /**
23917
+ * Five facial landmarks in the same pixels — a face the step's own
23918
+ * detector already re-found inside a root face box (D730), so its
23919
+ * embedder child aligns it exactly as it aligns any detected face.
23920
+ */
23921
+ landmarks: array(object({
23922
+ x: number(),
23923
+ y: number()
23924
+ })).optional()
23925
+ })).min(1)
23926
+ });
23927
+ /**
23858
23928
  * Reference to the frame's retained NATIVE surface + the parent crop's placement
23859
23929
  * within the frame, so the executor can re-cut a leaf child ROI at native
23860
23930
  * resolution on the detail plane. See the `runPipeline` `nativeCropRef` field.
@@ -23985,7 +24055,7 @@ var PipelineModelOptionSchema = object({
23985
24055
  legacy: boolean().optional(),
23986
24056
  provider: ModelProviderIdSchema.optional(),
23987
24057
  defaultConfidence: number().optional(),
23988
- fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional()
24058
+ suppliesSteps: array(RootStepSupplySchema).readonly().optional()
23989
24059
  });
23990
24060
  var ConfigFieldBridge = custom();
23991
24061
  var PipelineAddonSchemaSchema = object({
@@ -24253,7 +24323,16 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
24253
24323
  * `device-not-servable`), and nothing reaches the camera's live
24254
24324
  * trace stream. Absent ⇒ unchanged behaviour.
24255
24325
  */
24256
- replay: literal(true).optional()
24326
+ replay: literal(true).optional(),
24327
+ /**
24328
+ * Root-supplied detections for the tree's ROOT step (D730). Set by
24329
+ * `runDetailSubtree` when the camera's root model supplies a crop-kind
24330
+ * step (a Frigate+ `license_plate` for `plate-detection`): the step is
24331
+ * NOT inferred, these boxes are its output, and its children (the plate
24332
+ * reader) run on them through their own crop policy. Boxes are in the
24333
+ * PIXELS of the image this call carries. Absent ⇒ the root step runs.
24334
+ */
24335
+ suppliedRoot: SuppliedRootOutputSchema.optional()
24257
24336
  }), PipelineRunResultBridge, { kind: "mutation" }), method(object({
24258
24337
  steps: array(PipelineStepInputSchema).min(1),
24259
24338
  frames: array(FrameInputSchema).min(1).max(255),
@@ -25395,7 +25474,22 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
25395
25474
  */
25396
25475
  cropJpeg: string().optional(),
25397
25476
  parent: DetailParentSchema,
25398
- steps: array(string()).optional()
25477
+ steps: array(string()).optional(),
25478
+ /**
25479
+ * The camera's root model already drew this step's boxes (D730): a
25480
+ * `license_plate` inside the parent vehicle. The named step is NOT
25481
+ * inferred — these FRAME-space boxes are its output — and its
25482
+ * requested children (the plate reader) run on them. Absent ⇒ every
25483
+ * requested step infers as before.
25484
+ */
25485
+ supplied: object({
25486
+ stepId: string(),
25487
+ modelId: string(),
25488
+ boxes: array(object({
25489
+ bbox: NativeCropBboxSchema,
25490
+ score: number()
25491
+ })).min(1)
25492
+ }).optional()
25399
25493
  }), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" }), method(object({
25400
25494
  /** Catalog step id, e.g. `clip-embedding`. */
25401
25495
  stepId: string(),
@@ -28725,6 +28819,14 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
28725
28819
  */
28726
28820
  alive: boolean()
28727
28821
  })), method(object({
28822
+ deviceId: number().int().nonnegative(),
28823
+ sessionId: string(),
28824
+ downlinkMbps: number().nonnegative()
28825
+ }), object({
28826
+ outcome: _enum(["switching", "held"]),
28827
+ tier: CamProfileSchema.nullable(),
28828
+ reason: string()
28829
+ }), { kind: "mutation" }), method(object({
28728
28830
  deviceId: number().int().nonnegative(),
28729
28831
  sessionId: string()
28730
28832
  }), WebrtcSessionDebugSchema, { kind: "query" });
@@ -32634,7 +32736,8 @@ var ConnectionEndpointSchema = object({
32634
32736
  "lan-ipv6",
32635
32737
  "public",
32636
32738
  "loopback",
32637
- "app-link"
32739
+ "app-link",
32740
+ "custom"
32638
32741
  ]),
32639
32742
  /**
32640
32743
  * Originating-interface kind — `lan`/`wifi`/`docker`/`vpn`/`other`/
@@ -32703,7 +32806,7 @@ var GetConnectionEndpointsResultSchema = object({
32703
32806
  localPort: AdvertisedLocalPortSchema
32704
32807
  });
32705
32808
  /**
32706
- * The address flagged for notification links. `baseUrl: null` = AUTO, which
32809
+ * The address flagged for notification taps (`notificationTaps`). `baseUrl: null` = AUTO, which
32707
32810
  * since D709 is the CamStack app link; `resolved` reports the effective value,
32708
32811
  * so the UI can show it either way.
32709
32812
  */
@@ -32736,6 +32839,72 @@ var ViewerEndpointsSchema = object({
32736
32839
  /** What the ranking currently resolves to (may be empty if nothing is up). */
32737
32840
  resolved: array(string()).readonly()
32738
32841
  });
32842
+ /**
32843
+ * DEPRECATED compatibility shape of `getHubAddresses` (D729 amendment, kept
32844
+ * for addons built against it): `cluster` is the `internal` role, `browser`
32845
+ * the `publicEndpoint` role; `override` is the flagged address.
32846
+ */
32847
+ var HubAddressSnapshotSchema = object({
32848
+ override: string().nullable(),
32849
+ resolved: string().nullable(),
32850
+ source: _enum([
32851
+ "override",
32852
+ "auto",
32853
+ "none"
32854
+ ])
32855
+ });
32856
+ var HubAddressesSchema = object({
32857
+ cluster: HubAddressSnapshotSchema,
32858
+ browser: HubAddressSnapshotSchema
32859
+ });
32860
+ /**
32861
+ * What an address is used for (`hub-address.ts`, D734). `appConnections` is
32862
+ * many-valued; `notificationTaps`, `publicEndpoint` and `internal` are carried
32863
+ * by at most one address.
32864
+ */
32865
+ var HubAddressRoleSchema = _enum(HUB_ADDRESS_ROLES);
32866
+ var RoleSourceSchema = _enum([
32867
+ "flagged",
32868
+ "auto",
32869
+ "none"
32870
+ ]);
32871
+ /** One single-valued role: the flagged address, the one in use, and why. */
32872
+ var HubAddressRoleResolutionSchema = object({
32873
+ /** The address carrying the flag, or null = automatic. */
32874
+ flagged: string().nullable(),
32875
+ /** The address in use, or null when nothing qualifies (never loopback). */
32876
+ resolved: string().nullable(),
32877
+ source: RoleSourceSchema
32878
+ });
32879
+ var HubAppConnectionsResolutionSchema = object({
32880
+ /** The addresses flagged `appConnections`, or empty = automatic. */
32881
+ flagged: array(string()).readonly(),
32882
+ /** What the apps race right now. */
32883
+ resolved: array(string()).readonly(),
32884
+ source: RoleSourceSchema
32885
+ });
32886
+ var HubAddressBookSchema = object({
32887
+ rows: array(ConnectionEndpointSchema.extend({
32888
+ /** In the hub's detected palette right now. */
32889
+ detected: boolean(),
32890
+ /** Entered by the operator (removable). */
32891
+ custom: boolean(),
32892
+ /** The roles explicitly flagged on this address. */
32893
+ flags: array(HubAddressRoleSchema).readonly(),
32894
+ /** The roles this address serves right now — flagged or automatic. */
32895
+ inUse: array(HubAddressRoleSchema).readonly(),
32896
+ /** The roles this address may be flagged with. */
32897
+ eligible: array(HubAddressRoleSchema).readonly()
32898
+ })).readonly(),
32899
+ roles: object({
32900
+ appConnections: HubAppConnectionsResolutionSchema,
32901
+ notificationTaps: HubAddressRoleResolutionSchema,
32902
+ internal: HubAddressRoleResolutionSchema,
32903
+ publicEndpoint: HubAddressRoleResolutionSchema
32904
+ }),
32905
+ /** The `hub=` an app link carries (D709), or null. */
32906
+ appLinkHub: string().nullable()
32907
+ });
32739
32908
  var AllowedAddressesSchema = object({
32740
32909
  /**
32741
32910
  * Allowlist of interface addresses operators have explicitly opted
@@ -32779,10 +32948,27 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
32779
32948
  * tunnel always emits `https://` regardless. */
32780
32949
  scheme: _enum(["http", "https"]).optional(),
32781
32950
  /** Append the CamStack app link entry (`kind: 'app-link'`, D709) —
32782
- * an address notification links can be flagged with, not a hub
32951
+ * an address notification taps can be flagged with, not a hub
32783
32952
  * route. Default `false`: racers and rankers never see it. */
32784
32953
  includeAppLink: boolean().optional()
32785
- }), 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, {
32954
+ }), 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(object({ scheme: _enum(["http", "https"]).optional() }).optional(), HubAddressBookSchema), method(object({
32955
+ baseUrl: string(),
32956
+ label: string().max(80)
32957
+ }), HubAddressBookSchema, {
32958
+ kind: "mutation",
32959
+ auth: "admin"
32960
+ }), method(object({ baseUrl: string() }), HubAddressBookSchema, {
32961
+ kind: "mutation",
32962
+ auth: "admin"
32963
+ }), method(object({
32964
+ role: HubAddressRoleSchema,
32965
+ baseUrl: string().nullable(),
32966
+ enabled: boolean(),
32967
+ acceptInsecureHttp: boolean().optional()
32968
+ }), HubAddressBookSchema, {
32969
+ kind: "mutation",
32970
+ auth: "admin"
32971
+ }), method(_void(), HubAddressesSchema), 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, {
32786
32972
  kind: "mutation",
32787
32973
  auth: "admin"
32788
32974
  }), method(object({
@@ -33240,7 +33426,8 @@ var MotionStatusSchema = object({
33240
33426
  * writes this slice (not even a boot seed), and neither does the runner's
33241
33427
  * phase machine: its phase is "a session is attached" for every on-motion
33242
33428
  * session, not motion, and it now has its own `DetectionPhaseTransition`.
33243
- * A provider's `isDetected` answers from the hub's slice.
33429
+ * A provider's `isDetected` and `getStatus` answer from the hub's slice
33430
+ * (`hubMotionNativeProvider`).
33244
33431
  * - **Sensors** (Home Assistant binary sensors, Homematic, Matter, Alexa
33245
33432
  * imports) — the provider pushes both edges itself, from the upstream
33246
33433
  * system's own state change. That is the sensor's own fact.
@@ -44239,12 +44426,24 @@ Object.freeze({
44239
44426
  addonId: null,
44240
44427
  access: "view"
44241
44428
  },
44429
+ "localNetwork.addCustomAddress": {
44430
+ capName: "local-network",
44431
+ capScope: "system",
44432
+ addonId: null,
44433
+ access: "create"
44434
+ },
44242
44435
  "localNetwork.downloadCa": {
44243
44436
  capName: "local-network",
44244
44437
  capScope: "system",
44245
44438
  addonId: null,
44246
44439
  access: "view"
44247
44440
  },
44441
+ "localNetwork.getAddresses": {
44442
+ capName: "local-network",
44443
+ capScope: "system",
44444
+ addonId: null,
44445
+ access: "view"
44446
+ },
44248
44447
  "localNetwork.getAllowedAddresses": {
44249
44448
  capName: "local-network",
44250
44449
  capScope: "system",
@@ -44257,6 +44456,12 @@ Object.freeze({
44257
44456
  addonId: null,
44258
44457
  access: "view"
44259
44458
  },
44459
+ "localNetwork.getHubAddresses": {
44460
+ capName: "local-network",
44461
+ capScope: "system",
44462
+ addonId: null,
44463
+ access: "view"
44464
+ },
44260
44465
  "localNetwork.getNotificationEndpoint": {
44261
44466
  capName: "local-network",
44262
44467
  capScope: "system",
@@ -44293,6 +44498,12 @@ Object.freeze({
44293
44498
  addonId: null,
44294
44499
  access: "create"
44295
44500
  },
44501
+ "localNetwork.removeCustomAddress": {
44502
+ capName: "local-network",
44503
+ capScope: "system",
44504
+ addonId: null,
44505
+ access: "delete"
44506
+ },
44296
44507
  "localNetwork.resetAllowlistToBestMatch": {
44297
44508
  capName: "local-network",
44298
44509
  capScope: "system",
@@ -44305,6 +44516,12 @@ Object.freeze({
44305
44516
  addonId: null,
44306
44517
  access: "create"
44307
44518
  },
44519
+ "localNetwork.setAddressRole": {
44520
+ capName: "local-network",
44521
+ capScope: "system",
44522
+ addonId: null,
44523
+ access: "create"
44524
+ },
44308
44525
  "localNetwork.setAllowedAddresses": {
44309
44526
  capName: "local-network",
44310
44527
  capScope: "system",
@@ -48559,6 +48776,12 @@ Object.freeze({
48559
48776
  addonId: null,
48560
48777
  access: "create"
48561
48778
  },
48779
+ "webrtcSession.applyDownlinkProbe": {
48780
+ capName: "webrtc-session",
48781
+ capScope: "device",
48782
+ addonId: null,
48783
+ access: "create"
48784
+ },
48562
48785
  "webrtcSession.closeSession": {
48563
48786
  capName: "webrtc-session",
48564
48787
  capScope: "device",
@@ -52481,6 +52704,11 @@ Object.freeze({
52481
52704
  form: "single",
52482
52705
  optional: false
52483
52706
  }],
52707
+ "webrtcSession.applyDownlinkProbe": [{
52708
+ name: "deviceId",
52709
+ form: "single",
52710
+ optional: false
52711
+ }],
52484
52712
  "webrtcSession.closeSession": [{
52485
52713
  name: "deviceId",
52486
52714
  form: "single",
@@ -52917,6 +53145,8 @@ new Map(Object.entries({
52917
53145
  "detection-blind": "device-events",
52918
53146
  "node-online": "system",
52919
53147
  "node-offline": "system",
53148
+ "node-restarting": "system",
53149
+ "node-updating": "system",
52920
53150
  "node-inference-unavailable": "system",
52921
53151
  "addon-crash-loop": "system",
52922
53152
  "addon-update-available": "system",
@@ -52994,6 +53224,7 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
52994
53224
  kinds: [
52995
53225
  "node-offline",
52996
53226
  "node-online",
53227
+ "node-restarting",
52997
53228
  "node-inference-unavailable"
52998
53229
  ]
52999
53230
  },
@@ -53015,6 +53246,7 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
53015
53246
  label: "Server & container updates",
53016
53247
  kinds: [
53017
53248
  "server-update-available",
53249
+ "node-updating",
53018
53250
  "server-updated",
53019
53251
  "wrapper-update-available"
53020
53252
  ]
@@ -53162,6 +53394,7 @@ var STATE_SUMMARY_SECTION_VARS = [
53162
53394
  kinds: [
53163
53395
  "node-offline",
53164
53396
  "node-online",
53397
+ "node-restarting",
53165
53398
  "node-inference-unavailable"
53166
53399
  ]
53167
53400
  },
@@ -53183,6 +53416,7 @@ var STATE_SUMMARY_SECTION_VARS = [
53183
53416
  example: "server 1.2.377 → 1.2.378",
53184
53417
  kinds: [
53185
53418
  "server-update-available",
53419
+ "node-updating",
53186
53420
  "server-updated",
53187
53421
  "wrapper-update-available"
53188
53422
  ]
@@ -53215,7 +53449,7 @@ var STATE_SUMMARY_VARS = [
53215
53449
  {
53216
53450
  name: "summarySection",
53217
53451
  label: "Summary: this section",
53218
- description: "The section a per-section summary row is about (D698); on a summary sent as one message, every section it reports, comma-separated.",
53452
+ description: "The section a per-section summary row is about; on a summary sent as one message, every section it reports, comma-separated.",
53219
53453
  example: "Batterie scariche",
53220
53454
  group: "system",
53221
53455
  families: ["rule"],