@camstack/addon-auth 1.2.164 → 1.2.166

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.
@@ -5597,7 +5597,7 @@ var ZodIssueCode = {
5597
5597
  var ZodFirstPartyTypeKind;
5598
5598
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5599
5599
  //#endregion
5600
- //#region ../types/dist/sleep-DJFUfKvA.mjs
5600
+ //#region ../types/dist/sleep-CUp20JkO.mjs
5601
5601
  /**
5602
5602
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5603
5603
  * window to float samples (D455).
@@ -8663,7 +8663,11 @@ var ContributionSectionSchema = object({
8663
8663
  literal(4)
8664
8664
  ]).optional(),
8665
8665
  tab: string().optional(),
8666
- location: _enum(["settings", "top-tab"]).optional(),
8666
+ location: _enum([
8667
+ "settings",
8668
+ "top-tab",
8669
+ "hero"
8670
+ ]).optional(),
8667
8671
  order: number().optional(),
8668
8672
  fields: array(any())
8669
8673
  });
@@ -13936,7 +13940,11 @@ var ConfigSectionWithValuesSchema = object({
13936
13940
  literal(4)
13937
13941
  ]).optional(),
13938
13942
  tab: string().optional(),
13939
- location: _enum(["settings", "top-tab"]).optional(),
13943
+ location: _enum([
13944
+ "settings",
13945
+ "top-tab",
13946
+ "hero"
13947
+ ]).optional(),
13940
13948
  order: number().optional(),
13941
13949
  fields: array(any())
13942
13950
  });
@@ -17742,6 +17750,52 @@ var TierStatusSchema = object({
17742
17750
  countedAt: number().nullable()
17743
17751
  });
17744
17752
  /** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
17753
+ /**
17754
+ * Why a series is orphan. `device-gone`: its device is absent from the
17755
+ * successful device listings (the departure clock). `undeclared`: its `cap:`
17756
+ * key is declared by no capability any more (a field a cap removed).
17757
+ */
17758
+ var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
17759
+ /** Rows held per stored tier. */
17760
+ var TierRowsSchema = object({
17761
+ raw: number().int(),
17762
+ "5m": number().int(),
17763
+ "1h": number().int(),
17764
+ "1d": number().int()
17765
+ });
17766
+ var OrphanSeriesSchema = object({
17767
+ seriesId: number().int(),
17768
+ deviceId: number().int(),
17769
+ key: string(),
17770
+ scope: string(),
17771
+ /** The metric's display name; `null` when its metric row is gone too. */
17772
+ displayName: string().nullable(),
17773
+ reason: DeviceHistoryOrphanReasonSchema,
17774
+ /** `device-gone`: since when the device has been absent; `null` otherwise. */
17775
+ missingSince: number().nullable(),
17776
+ firstTs: number(),
17777
+ lastTs: number(),
17778
+ rows: TierRowsSchema
17779
+ });
17780
+ var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
17781
+ "not-found",
17782
+ "not-orphan",
17783
+ "failed"
17784
+ ]);
17785
+ var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
17786
+ seriesId: number().int(),
17787
+ ok: literal(true),
17788
+ deleted: TierRowsSchema
17789
+ }), object({
17790
+ seriesId: number().int(),
17791
+ ok: literal(false),
17792
+ reason: DeviceHistoryOrphanDeleteRefusalSchema
17793
+ })]);
17794
+ var OrphanListSchema = object({
17795
+ series: array(OrphanSeriesSchema).readonly(),
17796
+ /** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
17797
+ truncated: boolean()
17798
+ });
17745
17799
  var DeviceHistoryStatusSchema = object({
17746
17800
  startedAt: number(),
17747
17801
  /** The store is declared, series loaded and the first reconcile has answered. */
@@ -17839,7 +17893,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
17839
17893
  }), object({ enabled: boolean() }), {
17840
17894
  kind: "mutation",
17841
17895
  auth: "admin"
17842
- }), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
17896
+ }), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" }), method(object({}), OrphanListSchema, { auth: "admin" }), method(object({ seriesIds: array(number().int()).min(1).max(50) }), object({ results: array(OrphanDeleteEntrySchema).readonly() }), {
17897
+ kind: "mutation",
17898
+ auth: "admin"
17899
+ });
17843
17900
  var DeviceCaStatusSchema = discriminatedUnion("state", [
17844
17901
  object({ state: literal("absent") }),
17845
17902
  object({
@@ -50555,6 +50612,19 @@ var NodeInferenceDeviceSchema = object({
50555
50612
  /** Whether the node's live probe reports the device as usable right now. */
50556
50613
  available: boolean(),
50557
50614
  /**
50615
+ * Is the device on the node at all (D919)? `present` — the live probe
50616
+ * reported it; `absent` — the probe ANSWERED and did not report it, so only
50617
+ * its stored settings remain (unplugged, moved to another node): never
50618
+ * eligible, whatever its stored `enabled`, and forgettable with
50619
+ * `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
50620
+ * claimed (D315). Optional only for an orchestrator older than the field.
50621
+ */
50622
+ presence: _enum([
50623
+ "present",
50624
+ "absent",
50625
+ "unknown"
50626
+ ]).optional(),
50627
+ /**
50558
50628
  * Whether this device participates in dispatch. AUTO default (spec C2):
50559
50629
  * accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
50560
50630
  * entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
@@ -50780,7 +50850,13 @@ method(object({
50780
50850
  }), object({ success: literal(true) }), {
50781
50851
  kind: "mutation",
50782
50852
  auth: "admin"
50783
- }), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({ agentNodeId: string() }), object({
50853
+ }), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
50854
+ agentNodeId: string(),
50855
+ deviceKey: string()
50856
+ }), object({ success: literal(true) }), {
50857
+ kind: "mutation",
50858
+ auth: "admin"
50859
+ }), method(object({ agentNodeId: string() }), object({
50784
50860
  success: literal(true),
50785
50861
  /** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
50786
50862
  effectiveModelId: string().nullable(),
@@ -54925,17 +55001,69 @@ object({
54925
55001
  });
54926
55002
  DeviceType.Sensor;
54927
55003
  /**
54928
- * Generic device-consumables capability — surfaces a device's
54929
- * maintenance items (vacuum filters/brushes, replaceable cartridges,
54930
- * descaling cycles, …) with their remaining life and an optional
54931
- * "Replaced" reset action. Device-agnostic: any provider that knows its
54932
- * device tracks consumables can register it; the cap declares no
54933
- * vocabulary of its own — the provider names each item verbatim.
55004
+ * Generic device-consumables capability — the ONE place a device reports what
55005
+ * it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
55006
+ * descaling cycles), supplies it draws from (a vacuum's clean-water tank and
55007
+ * detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
55008
+ * water tank, a dust bin). Each item carries its remaining life or fill and an
55009
+ * optional "Replaced" reset action. Device-agnostic: any provider that knows
55010
+ * its device tracks consumables registers it; the provider names each item
55011
+ * verbatim and says which `kind` it is.
55012
+ *
55013
+ * The admin UI renders it as ONE collapsible section directly under the
55014
+ * device page's hero card (`placement: 'hero'`), for every device bound to
55015
+ * this cap — never drawn by a device type's hero card itself (D915).
54934
55016
  *
54935
55017
  * Like `childLayout`, the cap is INERT until a provider sets items: no
54936
55018
  * provider populates it by guessing (no HA inference). The UI renders a
54937
55019
  * "No consumables reported" placeholder when `items` is empty.
54938
55020
  */
55021
+ /**
55022
+ * What an item IS, which decides which direction is bad:
55023
+ * - `wear` — a part that wears out (a brush, a filter); low life is bad.
55024
+ * - `supply` — something the device draws from (clean water, detergent,
55025
+ * salt, rinse aid); low or empty is bad.
55026
+ * - `waste` — something the device fills (dirty water, a dust bin); full is
55027
+ * bad.
55028
+ * Absent = `wear`.
55029
+ */
55030
+ var ConsumableKindSchema = _enum([
55031
+ "wear",
55032
+ "supply",
55033
+ "waste"
55034
+ ]);
55035
+ /**
55036
+ * What an item LOOKS like, which decides how a client draws it — independent
55037
+ * of `kind`, which decides which direction is bad:
55038
+ * - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
55039
+ * remaining time and a reset.
55040
+ * - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
55041
+ * - `product` — something bought and refilled (detergent, salt, rinse aid):
55042
+ * a stepped level and "refill".
55043
+ * - `bin` — a container that collects waste (a dust bin): a fill gauge
55044
+ * that warns when full.
55045
+ * Absent = derived from the kind ({@link consumableFormOf}).
55046
+ */
55047
+ var ConsumableFormSchema = _enum([
55048
+ "part",
55049
+ "tank",
55050
+ "product",
55051
+ "bin"
55052
+ ]);
55053
+ /** The provider's own discrete verdict on an item. */
55054
+ var ConsumableStatusSchema = _enum([
55055
+ "ok",
55056
+ "low",
55057
+ "empty",
55058
+ "full",
55059
+ "replace"
55060
+ ]);
55061
+ _enum([
55062
+ "ok",
55063
+ "low",
55064
+ "empty",
55065
+ "full"
55066
+ ]);
54939
55067
  /** Units a remaining-life counter is reported in. Closed: the panel renders
54940
55068
  * each. */
54941
55069
  var ConsumableRemainingUnitSchema = _enum([
@@ -54955,10 +55083,14 @@ var ConsumablesStatusSchema = object({
54955
55083
  key: string().min(1),
54956
55084
  /** Display name. */
54957
55085
  label: string().min(1),
54958
- /** Remaining life % when known (0..100). */
55086
+ /** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
54959
55087
  level: number().min(0).max(100).nullable(),
54960
- /** Discrete state when known (binary mode). */
54961
- status: _enum(["ok", "replace"]).nullable(),
55088
+ /** The provider's discrete verdict when known (binary mode). */
55089
+ status: ConsumableStatusSchema.nullable(),
55090
+ /** What the item is — decides whether low or full is bad. Absent = `wear`. */
55091
+ kind: ConsumableKindSchema.optional(),
55092
+ /** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
55093
+ form: ConsumableFormSchema.optional(),
54962
55094
  /** Ms epoch of the last replace, when known. */
54963
55095
  lastResetAt: number().nullable(),
54964
55096
  /** Whether `reset()` is meaningful for this item. */
@@ -55193,8 +55325,9 @@ object({
55193
55325
  status: DeviceStatusSchema
55194
55326
  });
55195
55327
  /**
55196
- * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
55197
- * consumable levels (salt, rinse aid) and common program options.
55328
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates and
55329
+ * common program options. Salt and rinse aid are NOT here: they are items of
55330
+ * the device's `consumables` cap, like every other device's (D915).
55198
55331
  *
55199
55332
  * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
55200
55333
  * by any integration that exposes the same program / option surface.
@@ -55242,11 +55375,6 @@ var DishwasherAvailabilitySchema = _enum([
55242
55375
  "offline",
55243
55376
  "description-missing"
55244
55377
  ]);
55245
- var DishwasherConsumableLevelSchema = _enum([
55246
- "ok",
55247
- "low",
55248
- "empty"
55249
- ]);
55250
55378
  object({
55251
55379
  availability: DishwasherAvailabilitySchema,
55252
55380
  /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
@@ -55279,8 +55407,6 @@ object({
55279
55407
  powerOn: boolean().nullable(),
55280
55408
  /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
55281
55409
  powerState: string().nullable(),
55282
- saltLevel: DishwasherConsumableLevelSchema.nullable(),
55283
- rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
55284
55410
  /**
55285
55411
  * True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
55286
55412
  * combined care-and-filter reminder raised); false when every such reminder reads clear; null
@@ -57320,7 +57446,7 @@ DeviceType.Light, DeviceType.Siren, DeviceType.Switch, method(object({
57320
57446
  enabled: boolean()
57321
57447
  }), _void(), {
57322
57448
  kind: "mutation",
57323
- auth: "admin"
57449
+ auth: "protected"
57324
57450
  }), object({
57325
57451
  deviceId: number(),
57326
57452
  enabled: boolean(),
@@ -57810,6 +57936,13 @@ var TopologyNodeSchema = object({
57810
57936
  cpuModel: string().nullable(),
57811
57937
  cpuCores: number(),
57812
57938
  memoryMB: number(),
57939
+ /**
57940
+ * The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
57941
+ * openvino, edgetpu …) — not its devices. An installed runtime says nothing
57942
+ * about whether its hardware is there (a Coral delegate stays installed
57943
+ * after the stick leaves, D919); the live device set is
57944
+ * `pipelineOrchestrator.getNodeInferenceDevices`.
57945
+ */
57813
57946
  engines: array(string()).readonly(),
57814
57947
  isHub: boolean(),
57815
57948
  isOnline: boolean(),
@@ -58774,7 +58907,28 @@ var ResolvedInferenceConfigSchema = object({
58774
58907
  format: ModelFormatSchema,
58775
58908
  reason: string()
58776
58909
  });
58777
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
58910
+ /**
58911
+ * The answer of an accelerator rescan (D919): the node's device list after
58912
+ * the re-probe, what changed, and the evidence that decided the Coral answer
58913
+ * (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
58914
+ * bus, the installed-delegate fallback, or nothing).
58915
+ */
58916
+ var AcceleratorRescanSchema = object({
58917
+ devices: array(InferenceDeviceDescriptorSchema).readonly(),
58918
+ appeared: array(string()).readonly(),
58919
+ disappeared: array(string()).readonly(),
58920
+ usbBus: _enum(["observed", "unobservable"]),
58921
+ decidedBy: _enum([
58922
+ "usb-ids",
58923
+ "pci",
58924
+ "delegate-fallback",
58925
+ "none"
58926
+ ])
58927
+ });
58928
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), AcceleratorRescanSchema, {
58929
+ kind: "mutation",
58930
+ auth: "admin"
58931
+ });
58778
58932
  object({
58779
58933
  /** Instantaneous power draw in watts. */
58780
58934
  watts: number().optional(),
@@ -62063,60 +62217,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
62063
62217
  auth: "admin",
62064
62218
  access: "delete"
62065
62219
  });
62066
- /**
62067
- * Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
62068
- * cleaning lifecycle plus a return-to-base / locate surface and an
62069
- * optional fan-speed selector.
62070
- *
62071
- * State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
62072
- * `paused` / `returning` / `docked` / `error`. `batteryLevel`
62073
- * (0..100) is nullable — some vacuums don't report a battery
62074
- * percentage. `fanSpeed` is the current speed token (provider-verbatim,
62075
- * e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
62076
- * tokens the hardware accepts so the UI renders only supported choices.
62077
- *
62078
- * The `setFanSpeed` method takes the bare `speed` token — the provider
62079
- * validates it against the vacuum's own list. `locate` triggers the
62080
- * find-me chirp; `returnToBase` sends it home.
62081
- *
62082
- * Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
62083
- * `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
62084
- * 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
62085
- * SHOULD populate whichever tanks the hardware has — leave a field `null`
62086
- * only when the device has no such tank at all, and use a `TankStatus`
62087
- * with both inner fields `null` when the tank exists but its level is
62088
- * currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
62089
- * so the HA provider leaves all four `null`.
62090
- */
62091
- var VacuumStateSchema = _enum([
62092
- "idle",
62093
- "cleaning",
62094
- "paused",
62095
- "returning",
62096
- "docked",
62097
- "drying",
62098
- "error"
62099
- ]);
62100
- /**
62101
- * One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
62102
- * detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
62103
- * a discrete `status` (binary-style hardware), or both. Both `null` means the
62104
- * level is currently unknown; the OWNING field being `null` means the
62105
- * hardware has no such tank at all.
62106
- */
62107
- var TankStatusSchema = object({
62108
- /** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
62109
- level: number().min(0).max(100).nullable(),
62110
- /** Discrete state when the hardware is binary-mode; null otherwise. */
62111
- status: _enum([
62112
- "ok",
62113
- "low",
62114
- "full"
62115
- ]).nullable()
62116
- });
62117
62220
  object({
62118
62221
  /** Lifecycle state of the vacuum. */
62119
- state: VacuumStateSchema,
62222
+ state: _enum([
62223
+ "idle",
62224
+ "cleaning",
62225
+ "paused",
62226
+ "returning",
62227
+ "docked",
62228
+ "drying",
62229
+ "error"
62230
+ ]),
62120
62231
  /** 0..100 battery percentage. Null when the device has no battery
62121
62232
  * reading. */
62122
62233
  batteryLevel: number().min(0).max(100).nullable(),
@@ -62125,14 +62236,6 @@ object({
62125
62236
  fanSpeed: string().nullable(),
62126
62237
  /** Speed tokens the hardware accepts — drives the UI selector. */
62127
62238
  availableFanSpeeds: array(string()),
62128
- /** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
62129
- cleanWater: TankStatusSchema.nullable(),
62130
- /** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
62131
- dirtyWater: TankStatusSchema.nullable(),
62132
- /** Detergent tank. Null when the hardware has no detergent tank. */
62133
- detergent: TankStatusSchema.nullable(),
62134
- /** Dust bin. Null when the hardware has no dust bin. */
62135
- dustBin: TankStatusSchema.nullable(),
62136
62239
  /** 0..100 cleaning-completion percentage of the current task, or null. */
62137
62240
  progressPercent: number().min(0).max(100).nullable(),
62138
62241
  /** Current error code (0 / null = no error). */
@@ -64673,6 +64776,12 @@ Object.freeze({
64673
64776
  addonId: null,
64674
64777
  access: "create"
64675
64778
  },
64779
+ "deviceHistory.deleteOrphanSeries": {
64780
+ capName: "device-history",
64781
+ capScope: "system",
64782
+ addonId: null,
64783
+ access: "delete"
64784
+ },
64676
64785
  "deviceHistory.getDeviceEnabled": {
64677
64786
  capName: "device-history",
64678
64787
  capScope: "system",
@@ -64691,6 +64800,12 @@ Object.freeze({
64691
64800
  addonId: null,
64692
64801
  access: "view"
64693
64802
  },
64803
+ "deviceHistory.listOrphanSeries": {
64804
+ capName: "device-history",
64805
+ capScope: "system",
64806
+ addonId: null,
64807
+ access: "view"
64808
+ },
64694
64809
  "deviceHistory.listSeries": {
64695
64810
  capName: "device-history",
64696
64811
  capScope: "system",
@@ -68315,6 +68430,12 @@ Object.freeze({
68315
68430
  addonId: null,
68316
68431
  access: "delete"
68317
68432
  },
68433
+ "pipelineOrchestrator.forgetInferenceDevice": {
68434
+ capName: "pipeline-orchestrator",
68435
+ capScope: "system",
68436
+ addonId: null,
68437
+ access: "delete"
68438
+ },
68318
68439
  "pipelineOrchestrator.getAgentLoad": {
68319
68440
  capName: "pipeline-orchestrator",
68320
68441
  capScope: "system",
@@ -68891,6 +69012,12 @@ Object.freeze({
68891
69012
  addonId: null,
68892
69013
  access: "view"
68893
69014
  },
69015
+ "platformProbe.rescanAccelerators": {
69016
+ capName: "platform-probe",
69017
+ capScope: "system",
69018
+ addonId: null,
69019
+ access: "create"
69020
+ },
68894
69021
  "platformProbe.resolveHwAccel": {
68895
69022
  capName: "platform-probe",
68896
69023
  capScope: "system",
@@ -74696,7 +74823,7 @@ var STATE_SUMMARY_VARS = [
74696
74823
  ([...RULE_TEXT], [...COMBINED_ALARM]),
74697
74824
  ([...RULE_TEXT], [...DEVICE_EVENTS]),
74698
74825
  ([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
74699
- ([...RULE_TEXT], [...CONSUMABLE]),
74826
+ ([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
74700
74827
  ([...RULE_TEXT], [...TANK]),
74701
74828
  [...RULE_TEXT],
74702
74829
  ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),