@camstack/addon-notifiers 1.2.617 → 1.2.619
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/addon.js +213 -86
- package/dist/addon.mjs +213 -86
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -5594,7 +5594,7 @@ var ZodIssueCode = {
|
|
|
5594
5594
|
var ZodFirstPartyTypeKind;
|
|
5595
5595
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5596
5596
|
//#endregion
|
|
5597
|
-
//#region ../types/dist/sleep-
|
|
5597
|
+
//#region ../types/dist/sleep-CUp20JkO.mjs
|
|
5598
5598
|
/**
|
|
5599
5599
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5600
5600
|
* window to float samples (D455).
|
|
@@ -8632,7 +8632,11 @@ var ContributionSectionSchema = object({
|
|
|
8632
8632
|
literal(4)
|
|
8633
8633
|
]).optional(),
|
|
8634
8634
|
tab: string().optional(),
|
|
8635
|
-
location: _enum([
|
|
8635
|
+
location: _enum([
|
|
8636
|
+
"settings",
|
|
8637
|
+
"top-tab",
|
|
8638
|
+
"hero"
|
|
8639
|
+
]).optional(),
|
|
8636
8640
|
order: number().optional(),
|
|
8637
8641
|
fields: array(any())
|
|
8638
8642
|
});
|
|
@@ -13723,7 +13727,11 @@ var ConfigSectionWithValuesSchema = object({
|
|
|
13723
13727
|
literal(4)
|
|
13724
13728
|
]).optional(),
|
|
13725
13729
|
tab: string().optional(),
|
|
13726
|
-
location: _enum([
|
|
13730
|
+
location: _enum([
|
|
13731
|
+
"settings",
|
|
13732
|
+
"top-tab",
|
|
13733
|
+
"hero"
|
|
13734
|
+
]).optional(),
|
|
13727
13735
|
order: number().optional(),
|
|
13728
13736
|
fields: array(any())
|
|
13729
13737
|
});
|
|
@@ -17497,6 +17505,52 @@ var TierStatusSchema = object({
|
|
|
17497
17505
|
countedAt: number().nullable()
|
|
17498
17506
|
});
|
|
17499
17507
|
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
17508
|
+
/**
|
|
17509
|
+
* Why a series is orphan. `device-gone`: its device is absent from the
|
|
17510
|
+
* successful device listings (the departure clock). `undeclared`: its `cap:`
|
|
17511
|
+
* key is declared by no capability any more (a field a cap removed).
|
|
17512
|
+
*/
|
|
17513
|
+
var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
|
|
17514
|
+
/** Rows held per stored tier. */
|
|
17515
|
+
var TierRowsSchema = object({
|
|
17516
|
+
raw: number().int(),
|
|
17517
|
+
"5m": number().int(),
|
|
17518
|
+
"1h": number().int(),
|
|
17519
|
+
"1d": number().int()
|
|
17520
|
+
});
|
|
17521
|
+
var OrphanSeriesSchema = object({
|
|
17522
|
+
seriesId: number().int(),
|
|
17523
|
+
deviceId: number().int(),
|
|
17524
|
+
key: string(),
|
|
17525
|
+
scope: string(),
|
|
17526
|
+
/** The metric's display name; `null` when its metric row is gone too. */
|
|
17527
|
+
displayName: string().nullable(),
|
|
17528
|
+
reason: DeviceHistoryOrphanReasonSchema,
|
|
17529
|
+
/** `device-gone`: since when the device has been absent; `null` otherwise. */
|
|
17530
|
+
missingSince: number().nullable(),
|
|
17531
|
+
firstTs: number(),
|
|
17532
|
+
lastTs: number(),
|
|
17533
|
+
rows: TierRowsSchema
|
|
17534
|
+
});
|
|
17535
|
+
var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
|
|
17536
|
+
"not-found",
|
|
17537
|
+
"not-orphan",
|
|
17538
|
+
"failed"
|
|
17539
|
+
]);
|
|
17540
|
+
var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
|
|
17541
|
+
seriesId: number().int(),
|
|
17542
|
+
ok: literal(true),
|
|
17543
|
+
deleted: TierRowsSchema
|
|
17544
|
+
}), object({
|
|
17545
|
+
seriesId: number().int(),
|
|
17546
|
+
ok: literal(false),
|
|
17547
|
+
reason: DeviceHistoryOrphanDeleteRefusalSchema
|
|
17548
|
+
})]);
|
|
17549
|
+
var OrphanListSchema = object({
|
|
17550
|
+
series: array(OrphanSeriesSchema).readonly(),
|
|
17551
|
+
/** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
|
|
17552
|
+
truncated: boolean()
|
|
17553
|
+
});
|
|
17500
17554
|
var DeviceHistoryStatusSchema = object({
|
|
17501
17555
|
startedAt: number(),
|
|
17502
17556
|
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
@@ -17594,7 +17648,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
|
|
|
17594
17648
|
}), object({ enabled: boolean() }), {
|
|
17595
17649
|
kind: "mutation",
|
|
17596
17650
|
auth: "admin"
|
|
17597
|
-
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" })
|
|
17651
|
+
}), 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() }), {
|
|
17652
|
+
kind: "mutation",
|
|
17653
|
+
auth: "admin"
|
|
17654
|
+
});
|
|
17598
17655
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
17599
17656
|
object({ state: literal("absent") }),
|
|
17600
17657
|
object({
|
|
@@ -50290,6 +50347,19 @@ var NodeInferenceDeviceSchema = object({
|
|
|
50290
50347
|
/** Whether the node's live probe reports the device as usable right now. */
|
|
50291
50348
|
available: boolean(),
|
|
50292
50349
|
/**
|
|
50350
|
+
* Is the device on the node at all (D919)? `present` — the live probe
|
|
50351
|
+
* reported it; `absent` — the probe ANSWERED and did not report it, so only
|
|
50352
|
+
* its stored settings remain (unplugged, moved to another node): never
|
|
50353
|
+
* eligible, whatever its stored `enabled`, and forgettable with
|
|
50354
|
+
* `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
|
|
50355
|
+
* claimed (D315). Optional only for an orchestrator older than the field.
|
|
50356
|
+
*/
|
|
50357
|
+
presence: _enum([
|
|
50358
|
+
"present",
|
|
50359
|
+
"absent",
|
|
50360
|
+
"unknown"
|
|
50361
|
+
]).optional(),
|
|
50362
|
+
/**
|
|
50293
50363
|
* Whether this device participates in dispatch. AUTO default (spec C2):
|
|
50294
50364
|
* accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
|
|
50295
50365
|
* entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
|
|
@@ -50515,7 +50585,13 @@ method(object({
|
|
|
50515
50585
|
}), object({ success: literal(true) }), {
|
|
50516
50586
|
kind: "mutation",
|
|
50517
50587
|
auth: "admin"
|
|
50518
|
-
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50588
|
+
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50589
|
+
agentNodeId: string(),
|
|
50590
|
+
deviceKey: string()
|
|
50591
|
+
}), object({ success: literal(true) }), {
|
|
50592
|
+
kind: "mutation",
|
|
50593
|
+
auth: "admin"
|
|
50594
|
+
}), method(object({ agentNodeId: string() }), object({
|
|
50519
50595
|
success: literal(true),
|
|
50520
50596
|
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
50521
50597
|
effectiveModelId: string().nullable(),
|
|
@@ -54625,17 +54701,69 @@ object({
|
|
|
54625
54701
|
});
|
|
54626
54702
|
DeviceType.Sensor;
|
|
54627
54703
|
/**
|
|
54628
|
-
* Generic device-consumables capability —
|
|
54629
|
-
*
|
|
54630
|
-
* descaling cycles,
|
|
54631
|
-
*
|
|
54632
|
-
*
|
|
54633
|
-
*
|
|
54704
|
+
* Generic device-consumables capability — the ONE place a device reports what
|
|
54705
|
+
* it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
|
|
54706
|
+
* descaling cycles), supplies it draws from (a vacuum's clean-water tank and
|
|
54707
|
+
* detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
|
|
54708
|
+
* water tank, a dust bin). Each item carries its remaining life or fill and an
|
|
54709
|
+
* optional "Replaced" reset action. Device-agnostic: any provider that knows
|
|
54710
|
+
* its device tracks consumables registers it; the provider names each item
|
|
54711
|
+
* verbatim and says which `kind` it is.
|
|
54712
|
+
*
|
|
54713
|
+
* The admin UI renders it as ONE collapsible section directly under the
|
|
54714
|
+
* device page's hero card (`placement: 'hero'`), for every device bound to
|
|
54715
|
+
* this cap — never drawn by a device type's hero card itself (D915).
|
|
54634
54716
|
*
|
|
54635
54717
|
* Like `childLayout`, the cap is INERT until a provider sets items: no
|
|
54636
54718
|
* provider populates it by guessing (no HA inference). The UI renders a
|
|
54637
54719
|
* "No consumables reported" placeholder when `items` is empty.
|
|
54638
54720
|
*/
|
|
54721
|
+
/**
|
|
54722
|
+
* What an item IS, which decides which direction is bad:
|
|
54723
|
+
* - `wear` — a part that wears out (a brush, a filter); low life is bad.
|
|
54724
|
+
* - `supply` — something the device draws from (clean water, detergent,
|
|
54725
|
+
* salt, rinse aid); low or empty is bad.
|
|
54726
|
+
* - `waste` — something the device fills (dirty water, a dust bin); full is
|
|
54727
|
+
* bad.
|
|
54728
|
+
* Absent = `wear`.
|
|
54729
|
+
*/
|
|
54730
|
+
var ConsumableKindSchema = _enum([
|
|
54731
|
+
"wear",
|
|
54732
|
+
"supply",
|
|
54733
|
+
"waste"
|
|
54734
|
+
]);
|
|
54735
|
+
/**
|
|
54736
|
+
* What an item LOOKS like, which decides how a client draws it — independent
|
|
54737
|
+
* of `kind`, which decides which direction is bad:
|
|
54738
|
+
* - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
|
|
54739
|
+
* remaining time and a reset.
|
|
54740
|
+
* - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
|
|
54741
|
+
* - `product` — something bought and refilled (detergent, salt, rinse aid):
|
|
54742
|
+
* a stepped level and "refill".
|
|
54743
|
+
* - `bin` — a container that collects waste (a dust bin): a fill gauge
|
|
54744
|
+
* that warns when full.
|
|
54745
|
+
* Absent = derived from the kind ({@link consumableFormOf}).
|
|
54746
|
+
*/
|
|
54747
|
+
var ConsumableFormSchema = _enum([
|
|
54748
|
+
"part",
|
|
54749
|
+
"tank",
|
|
54750
|
+
"product",
|
|
54751
|
+
"bin"
|
|
54752
|
+
]);
|
|
54753
|
+
/** The provider's own discrete verdict on an item. */
|
|
54754
|
+
var ConsumableStatusSchema = _enum([
|
|
54755
|
+
"ok",
|
|
54756
|
+
"low",
|
|
54757
|
+
"empty",
|
|
54758
|
+
"full",
|
|
54759
|
+
"replace"
|
|
54760
|
+
]);
|
|
54761
|
+
_enum([
|
|
54762
|
+
"ok",
|
|
54763
|
+
"low",
|
|
54764
|
+
"empty",
|
|
54765
|
+
"full"
|
|
54766
|
+
]);
|
|
54639
54767
|
/** Units a remaining-life counter is reported in. Closed: the panel renders
|
|
54640
54768
|
* each. */
|
|
54641
54769
|
var ConsumableRemainingUnitSchema = _enum([
|
|
@@ -54655,10 +54783,14 @@ var ConsumablesStatusSchema = object({
|
|
|
54655
54783
|
key: string().min(1),
|
|
54656
54784
|
/** Display name. */
|
|
54657
54785
|
label: string().min(1),
|
|
54658
|
-
/** Remaining life % when known (0..100). */
|
|
54786
|
+
/** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
|
|
54659
54787
|
level: number().min(0).max(100).nullable(),
|
|
54660
|
-
/**
|
|
54661
|
-
status:
|
|
54788
|
+
/** The provider's discrete verdict when known (binary mode). */
|
|
54789
|
+
status: ConsumableStatusSchema.nullable(),
|
|
54790
|
+
/** What the item is — decides whether low or full is bad. Absent = `wear`. */
|
|
54791
|
+
kind: ConsumableKindSchema.optional(),
|
|
54792
|
+
/** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
|
|
54793
|
+
form: ConsumableFormSchema.optional(),
|
|
54662
54794
|
/** Ms epoch of the last replace, when known. */
|
|
54663
54795
|
lastResetAt: number().nullable(),
|
|
54664
54796
|
/** Whether `reset()` is meaningful for this item. */
|
|
@@ -54893,8 +55025,9 @@ object({
|
|
|
54893
55025
|
status: DeviceStatusSchema
|
|
54894
55026
|
});
|
|
54895
55027
|
/**
|
|
54896
|
-
* Smart-dishwasher cap — program lifecycle, door / remote-start gates
|
|
54897
|
-
*
|
|
55028
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates and
|
|
55029
|
+
* common program options. Salt and rinse aid are NOT here: they are items of
|
|
55030
|
+
* the device's `consumables` cap, like every other device's (D915).
|
|
54898
55031
|
*
|
|
54899
55032
|
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
54900
55033
|
* by any integration that exposes the same program / option surface.
|
|
@@ -54942,11 +55075,6 @@ var DishwasherAvailabilitySchema = _enum([
|
|
|
54942
55075
|
"offline",
|
|
54943
55076
|
"description-missing"
|
|
54944
55077
|
]);
|
|
54945
|
-
var DishwasherConsumableLevelSchema = _enum([
|
|
54946
|
-
"ok",
|
|
54947
|
-
"low",
|
|
54948
|
-
"empty"
|
|
54949
|
-
]);
|
|
54950
55078
|
object({
|
|
54951
55079
|
availability: DishwasherAvailabilitySchema,
|
|
54952
55080
|
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
@@ -54979,8 +55107,6 @@ object({
|
|
|
54979
55107
|
powerOn: boolean().nullable(),
|
|
54980
55108
|
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
54981
55109
|
powerState: string().nullable(),
|
|
54982
|
-
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54983
|
-
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54984
55110
|
/**
|
|
54985
55111
|
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
54986
55112
|
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
@@ -57020,7 +57146,7 @@ DeviceType.Light, DeviceType.Siren, DeviceType.Switch, method(object({
|
|
|
57020
57146
|
enabled: boolean()
|
|
57021
57147
|
}), _void(), {
|
|
57022
57148
|
kind: "mutation",
|
|
57023
|
-
auth: "
|
|
57149
|
+
auth: "protected"
|
|
57024
57150
|
}), object({
|
|
57025
57151
|
deviceId: number(),
|
|
57026
57152
|
enabled: boolean(),
|
|
@@ -57510,6 +57636,13 @@ var TopologyNodeSchema = object({
|
|
|
57510
57636
|
cpuModel: string().nullable(),
|
|
57511
57637
|
cpuCores: number(),
|
|
57512
57638
|
memoryMB: number(),
|
|
57639
|
+
/**
|
|
57640
|
+
* The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
|
|
57641
|
+
* openvino, edgetpu …) — not its devices. An installed runtime says nothing
|
|
57642
|
+
* about whether its hardware is there (a Coral delegate stays installed
|
|
57643
|
+
* after the stick leaves, D919); the live device set is
|
|
57644
|
+
* `pipelineOrchestrator.getNodeInferenceDevices`.
|
|
57645
|
+
*/
|
|
57513
57646
|
engines: array(string()).readonly(),
|
|
57514
57647
|
isHub: boolean(),
|
|
57515
57648
|
isOnline: boolean(),
|
|
@@ -58474,7 +58607,28 @@ var ResolvedInferenceConfigSchema = object({
|
|
|
58474
58607
|
format: ModelFormatSchema,
|
|
58475
58608
|
reason: string()
|
|
58476
58609
|
});
|
|
58477
|
-
|
|
58610
|
+
/**
|
|
58611
|
+
* The answer of an accelerator rescan (D919): the node's device list after
|
|
58612
|
+
* the re-probe, what changed, and the evidence that decided the Coral answer
|
|
58613
|
+
* (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
|
|
58614
|
+
* bus, the installed-delegate fallback, or nothing).
|
|
58615
|
+
*/
|
|
58616
|
+
var AcceleratorRescanSchema = object({
|
|
58617
|
+
devices: array(InferenceDeviceDescriptorSchema).readonly(),
|
|
58618
|
+
appeared: array(string()).readonly(),
|
|
58619
|
+
disappeared: array(string()).readonly(),
|
|
58620
|
+
usbBus: _enum(["observed", "unobservable"]),
|
|
58621
|
+
decidedBy: _enum([
|
|
58622
|
+
"usb-ids",
|
|
58623
|
+
"pci",
|
|
58624
|
+
"delegate-fallback",
|
|
58625
|
+
"none"
|
|
58626
|
+
])
|
|
58627
|
+
});
|
|
58628
|
+
method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), AcceleratorRescanSchema, {
|
|
58629
|
+
kind: "mutation",
|
|
58630
|
+
auth: "admin"
|
|
58631
|
+
});
|
|
58478
58632
|
object({
|
|
58479
58633
|
/** Instantaneous power draw in watts. */
|
|
58480
58634
|
watts: number().optional(),
|
|
@@ -61763,60 +61917,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61763
61917
|
auth: "admin",
|
|
61764
61918
|
access: "delete"
|
|
61765
61919
|
});
|
|
61766
|
-
/**
|
|
61767
|
-
* Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
|
|
61768
|
-
* cleaning lifecycle plus a return-to-base / locate surface and an
|
|
61769
|
-
* optional fan-speed selector.
|
|
61770
|
-
*
|
|
61771
|
-
* State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
|
|
61772
|
-
* `paused` / `returning` / `docked` / `error`. `batteryLevel`
|
|
61773
|
-
* (0..100) is nullable — some vacuums don't report a battery
|
|
61774
|
-
* percentage. `fanSpeed` is the current speed token (provider-verbatim,
|
|
61775
|
-
* e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
|
|
61776
|
-
* tokens the hardware accepts so the UI renders only supported choices.
|
|
61777
|
-
*
|
|
61778
|
-
* The `setFanSpeed` method takes the bare `speed` token — the provider
|
|
61779
|
-
* validates it against the vacuum's own list. `locate` triggers the
|
|
61780
|
-
* find-me chirp; `returnToBase` sends it home.
|
|
61781
|
-
*
|
|
61782
|
-
* Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
|
|
61783
|
-
* `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
|
|
61784
|
-
* 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
|
|
61785
|
-
* SHOULD populate whichever tanks the hardware has — leave a field `null`
|
|
61786
|
-
* only when the device has no such tank at all, and use a `TankStatus`
|
|
61787
|
-
* with both inner fields `null` when the tank exists but its level is
|
|
61788
|
-
* currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
|
|
61789
|
-
* so the HA provider leaves all four `null`.
|
|
61790
|
-
*/
|
|
61791
|
-
var VacuumStateSchema = _enum([
|
|
61792
|
-
"idle",
|
|
61793
|
-
"cleaning",
|
|
61794
|
-
"paused",
|
|
61795
|
-
"returning",
|
|
61796
|
-
"docked",
|
|
61797
|
-
"drying",
|
|
61798
|
-
"error"
|
|
61799
|
-
]);
|
|
61800
|
-
/**
|
|
61801
|
-
* One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
|
|
61802
|
-
* detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
|
|
61803
|
-
* a discrete `status` (binary-style hardware), or both. Both `null` means the
|
|
61804
|
-
* level is currently unknown; the OWNING field being `null` means the
|
|
61805
|
-
* hardware has no such tank at all.
|
|
61806
|
-
*/
|
|
61807
|
-
var TankStatusSchema = object({
|
|
61808
|
-
/** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
|
|
61809
|
-
level: number().min(0).max(100).nullable(),
|
|
61810
|
-
/** Discrete state when the hardware is binary-mode; null otherwise. */
|
|
61811
|
-
status: _enum([
|
|
61812
|
-
"ok",
|
|
61813
|
-
"low",
|
|
61814
|
-
"full"
|
|
61815
|
-
]).nullable()
|
|
61816
|
-
});
|
|
61817
61920
|
object({
|
|
61818
61921
|
/** Lifecycle state of the vacuum. */
|
|
61819
|
-
state:
|
|
61922
|
+
state: _enum([
|
|
61923
|
+
"idle",
|
|
61924
|
+
"cleaning",
|
|
61925
|
+
"paused",
|
|
61926
|
+
"returning",
|
|
61927
|
+
"docked",
|
|
61928
|
+
"drying",
|
|
61929
|
+
"error"
|
|
61930
|
+
]),
|
|
61820
61931
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
61821
61932
|
* reading. */
|
|
61822
61933
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
@@ -61825,14 +61936,6 @@ object({
|
|
|
61825
61936
|
fanSpeed: string().nullable(),
|
|
61826
61937
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
61827
61938
|
availableFanSpeeds: array(string()),
|
|
61828
|
-
/** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
|
|
61829
|
-
cleanWater: TankStatusSchema.nullable(),
|
|
61830
|
-
/** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
|
|
61831
|
-
dirtyWater: TankStatusSchema.nullable(),
|
|
61832
|
-
/** Detergent tank. Null when the hardware has no detergent tank. */
|
|
61833
|
-
detergent: TankStatusSchema.nullable(),
|
|
61834
|
-
/** Dust bin. Null when the hardware has no dust bin. */
|
|
61835
|
-
dustBin: TankStatusSchema.nullable(),
|
|
61836
61939
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
61837
61940
|
progressPercent: number().min(0).max(100).nullable(),
|
|
61838
61941
|
/** Current error code (0 / null = no error). */
|
|
@@ -64373,6 +64476,12 @@ Object.freeze({
|
|
|
64373
64476
|
addonId: null,
|
|
64374
64477
|
access: "create"
|
|
64375
64478
|
},
|
|
64479
|
+
"deviceHistory.deleteOrphanSeries": {
|
|
64480
|
+
capName: "device-history",
|
|
64481
|
+
capScope: "system",
|
|
64482
|
+
addonId: null,
|
|
64483
|
+
access: "delete"
|
|
64484
|
+
},
|
|
64376
64485
|
"deviceHistory.getDeviceEnabled": {
|
|
64377
64486
|
capName: "device-history",
|
|
64378
64487
|
capScope: "system",
|
|
@@ -64391,6 +64500,12 @@ Object.freeze({
|
|
|
64391
64500
|
addonId: null,
|
|
64392
64501
|
access: "view"
|
|
64393
64502
|
},
|
|
64503
|
+
"deviceHistory.listOrphanSeries": {
|
|
64504
|
+
capName: "device-history",
|
|
64505
|
+
capScope: "system",
|
|
64506
|
+
addonId: null,
|
|
64507
|
+
access: "view"
|
|
64508
|
+
},
|
|
64394
64509
|
"deviceHistory.listSeries": {
|
|
64395
64510
|
capName: "device-history",
|
|
64396
64511
|
capScope: "system",
|
|
@@ -68015,6 +68130,12 @@ Object.freeze({
|
|
|
68015
68130
|
addonId: null,
|
|
68016
68131
|
access: "delete"
|
|
68017
68132
|
},
|
|
68133
|
+
"pipelineOrchestrator.forgetInferenceDevice": {
|
|
68134
|
+
capName: "pipeline-orchestrator",
|
|
68135
|
+
capScope: "system",
|
|
68136
|
+
addonId: null,
|
|
68137
|
+
access: "delete"
|
|
68138
|
+
},
|
|
68018
68139
|
"pipelineOrchestrator.getAgentLoad": {
|
|
68019
68140
|
capName: "pipeline-orchestrator",
|
|
68020
68141
|
capScope: "system",
|
|
@@ -68591,6 +68712,12 @@ Object.freeze({
|
|
|
68591
68712
|
addonId: null,
|
|
68592
68713
|
access: "view"
|
|
68593
68714
|
},
|
|
68715
|
+
"platformProbe.rescanAccelerators": {
|
|
68716
|
+
capName: "platform-probe",
|
|
68717
|
+
capScope: "system",
|
|
68718
|
+
addonId: null,
|
|
68719
|
+
access: "create"
|
|
68720
|
+
},
|
|
68594
68721
|
"platformProbe.resolveHwAccel": {
|
|
68595
68722
|
capName: "platform-probe",
|
|
68596
68723
|
capScope: "system",
|
|
@@ -74603,7 +74730,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
74603
74730
|
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
74604
74731
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
74605
74732
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
74606
|
-
([...RULE_TEXT], [...CONSUMABLE]),
|
|
74733
|
+
([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
|
|
74607
74734
|
([...RULE_TEXT], [...TANK]),
|
|
74608
74735
|
[...RULE_TEXT],
|
|
74609
74736
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
package/dist/addon.mjs
CHANGED
|
@@ -5567,7 +5567,7 @@ var ZodIssueCode = {
|
|
|
5567
5567
|
var ZodFirstPartyTypeKind;
|
|
5568
5568
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5569
5569
|
//#endregion
|
|
5570
|
-
//#region ../types/dist/sleep-
|
|
5570
|
+
//#region ../types/dist/sleep-CUp20JkO.mjs
|
|
5571
5571
|
/**
|
|
5572
5572
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5573
5573
|
* window to float samples (D455).
|
|
@@ -8605,7 +8605,11 @@ var ContributionSectionSchema = object({
|
|
|
8605
8605
|
literal(4)
|
|
8606
8606
|
]).optional(),
|
|
8607
8607
|
tab: string().optional(),
|
|
8608
|
-
location: _enum([
|
|
8608
|
+
location: _enum([
|
|
8609
|
+
"settings",
|
|
8610
|
+
"top-tab",
|
|
8611
|
+
"hero"
|
|
8612
|
+
]).optional(),
|
|
8609
8613
|
order: number().optional(),
|
|
8610
8614
|
fields: array(any())
|
|
8611
8615
|
});
|
|
@@ -13696,7 +13700,11 @@ var ConfigSectionWithValuesSchema = object({
|
|
|
13696
13700
|
literal(4)
|
|
13697
13701
|
]).optional(),
|
|
13698
13702
|
tab: string().optional(),
|
|
13699
|
-
location: _enum([
|
|
13703
|
+
location: _enum([
|
|
13704
|
+
"settings",
|
|
13705
|
+
"top-tab",
|
|
13706
|
+
"hero"
|
|
13707
|
+
]).optional(),
|
|
13700
13708
|
order: number().optional(),
|
|
13701
13709
|
fields: array(any())
|
|
13702
13710
|
});
|
|
@@ -17470,6 +17478,52 @@ var TierStatusSchema = object({
|
|
|
17470
17478
|
countedAt: number().nullable()
|
|
17471
17479
|
});
|
|
17472
17480
|
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
17481
|
+
/**
|
|
17482
|
+
* Why a series is orphan. `device-gone`: its device is absent from the
|
|
17483
|
+
* successful device listings (the departure clock). `undeclared`: its `cap:`
|
|
17484
|
+
* key is declared by no capability any more (a field a cap removed).
|
|
17485
|
+
*/
|
|
17486
|
+
var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
|
|
17487
|
+
/** Rows held per stored tier. */
|
|
17488
|
+
var TierRowsSchema = object({
|
|
17489
|
+
raw: number().int(),
|
|
17490
|
+
"5m": number().int(),
|
|
17491
|
+
"1h": number().int(),
|
|
17492
|
+
"1d": number().int()
|
|
17493
|
+
});
|
|
17494
|
+
var OrphanSeriesSchema = object({
|
|
17495
|
+
seriesId: number().int(),
|
|
17496
|
+
deviceId: number().int(),
|
|
17497
|
+
key: string(),
|
|
17498
|
+
scope: string(),
|
|
17499
|
+
/** The metric's display name; `null` when its metric row is gone too. */
|
|
17500
|
+
displayName: string().nullable(),
|
|
17501
|
+
reason: DeviceHistoryOrphanReasonSchema,
|
|
17502
|
+
/** `device-gone`: since when the device has been absent; `null` otherwise. */
|
|
17503
|
+
missingSince: number().nullable(),
|
|
17504
|
+
firstTs: number(),
|
|
17505
|
+
lastTs: number(),
|
|
17506
|
+
rows: TierRowsSchema
|
|
17507
|
+
});
|
|
17508
|
+
var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
|
|
17509
|
+
"not-found",
|
|
17510
|
+
"not-orphan",
|
|
17511
|
+
"failed"
|
|
17512
|
+
]);
|
|
17513
|
+
var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
|
|
17514
|
+
seriesId: number().int(),
|
|
17515
|
+
ok: literal(true),
|
|
17516
|
+
deleted: TierRowsSchema
|
|
17517
|
+
}), object({
|
|
17518
|
+
seriesId: number().int(),
|
|
17519
|
+
ok: literal(false),
|
|
17520
|
+
reason: DeviceHistoryOrphanDeleteRefusalSchema
|
|
17521
|
+
})]);
|
|
17522
|
+
var OrphanListSchema = object({
|
|
17523
|
+
series: array(OrphanSeriesSchema).readonly(),
|
|
17524
|
+
/** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
|
|
17525
|
+
truncated: boolean()
|
|
17526
|
+
});
|
|
17473
17527
|
var DeviceHistoryStatusSchema = object({
|
|
17474
17528
|
startedAt: number(),
|
|
17475
17529
|
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
@@ -17567,7 +17621,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
|
|
|
17567
17621
|
}), object({ enabled: boolean() }), {
|
|
17568
17622
|
kind: "mutation",
|
|
17569
17623
|
auth: "admin"
|
|
17570
|
-
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" })
|
|
17624
|
+
}), 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() }), {
|
|
17625
|
+
kind: "mutation",
|
|
17626
|
+
auth: "admin"
|
|
17627
|
+
});
|
|
17571
17628
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
17572
17629
|
object({ state: literal("absent") }),
|
|
17573
17630
|
object({
|
|
@@ -50263,6 +50320,19 @@ var NodeInferenceDeviceSchema = object({
|
|
|
50263
50320
|
/** Whether the node's live probe reports the device as usable right now. */
|
|
50264
50321
|
available: boolean(),
|
|
50265
50322
|
/**
|
|
50323
|
+
* Is the device on the node at all (D919)? `present` — the live probe
|
|
50324
|
+
* reported it; `absent` — the probe ANSWERED and did not report it, so only
|
|
50325
|
+
* its stored settings remain (unplugged, moved to another node): never
|
|
50326
|
+
* eligible, whatever its stored `enabled`, and forgettable with
|
|
50327
|
+
* `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
|
|
50328
|
+
* claimed (D315). Optional only for an orchestrator older than the field.
|
|
50329
|
+
*/
|
|
50330
|
+
presence: _enum([
|
|
50331
|
+
"present",
|
|
50332
|
+
"absent",
|
|
50333
|
+
"unknown"
|
|
50334
|
+
]).optional(),
|
|
50335
|
+
/**
|
|
50266
50336
|
* Whether this device participates in dispatch. AUTO default (spec C2):
|
|
50267
50337
|
* accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
|
|
50268
50338
|
* entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
|
|
@@ -50488,7 +50558,13 @@ method(object({
|
|
|
50488
50558
|
}), object({ success: literal(true) }), {
|
|
50489
50559
|
kind: "mutation",
|
|
50490
50560
|
auth: "admin"
|
|
50491
|
-
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50561
|
+
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
50562
|
+
agentNodeId: string(),
|
|
50563
|
+
deviceKey: string()
|
|
50564
|
+
}), object({ success: literal(true) }), {
|
|
50565
|
+
kind: "mutation",
|
|
50566
|
+
auth: "admin"
|
|
50567
|
+
}), method(object({ agentNodeId: string() }), object({
|
|
50492
50568
|
success: literal(true),
|
|
50493
50569
|
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
50494
50570
|
effectiveModelId: string().nullable(),
|
|
@@ -54598,17 +54674,69 @@ object({
|
|
|
54598
54674
|
});
|
|
54599
54675
|
DeviceType.Sensor;
|
|
54600
54676
|
/**
|
|
54601
|
-
* Generic device-consumables capability —
|
|
54602
|
-
*
|
|
54603
|
-
* descaling cycles,
|
|
54604
|
-
*
|
|
54605
|
-
*
|
|
54606
|
-
*
|
|
54677
|
+
* Generic device-consumables capability — the ONE place a device reports what
|
|
54678
|
+
* it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
|
|
54679
|
+
* descaling cycles), supplies it draws from (a vacuum's clean-water tank and
|
|
54680
|
+
* detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
|
|
54681
|
+
* water tank, a dust bin). Each item carries its remaining life or fill and an
|
|
54682
|
+
* optional "Replaced" reset action. Device-agnostic: any provider that knows
|
|
54683
|
+
* its device tracks consumables registers it; the provider names each item
|
|
54684
|
+
* verbatim and says which `kind` it is.
|
|
54685
|
+
*
|
|
54686
|
+
* The admin UI renders it as ONE collapsible section directly under the
|
|
54687
|
+
* device page's hero card (`placement: 'hero'`), for every device bound to
|
|
54688
|
+
* this cap — never drawn by a device type's hero card itself (D915).
|
|
54607
54689
|
*
|
|
54608
54690
|
* Like `childLayout`, the cap is INERT until a provider sets items: no
|
|
54609
54691
|
* provider populates it by guessing (no HA inference). The UI renders a
|
|
54610
54692
|
* "No consumables reported" placeholder when `items` is empty.
|
|
54611
54693
|
*/
|
|
54694
|
+
/**
|
|
54695
|
+
* What an item IS, which decides which direction is bad:
|
|
54696
|
+
* - `wear` — a part that wears out (a brush, a filter); low life is bad.
|
|
54697
|
+
* - `supply` — something the device draws from (clean water, detergent,
|
|
54698
|
+
* salt, rinse aid); low or empty is bad.
|
|
54699
|
+
* - `waste` — something the device fills (dirty water, a dust bin); full is
|
|
54700
|
+
* bad.
|
|
54701
|
+
* Absent = `wear`.
|
|
54702
|
+
*/
|
|
54703
|
+
var ConsumableKindSchema = _enum([
|
|
54704
|
+
"wear",
|
|
54705
|
+
"supply",
|
|
54706
|
+
"waste"
|
|
54707
|
+
]);
|
|
54708
|
+
/**
|
|
54709
|
+
* What an item LOOKS like, which decides how a client draws it — independent
|
|
54710
|
+
* of `kind`, which decides which direction is bad:
|
|
54711
|
+
* - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
|
|
54712
|
+
* remaining time and a reset.
|
|
54713
|
+
* - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
|
|
54714
|
+
* - `product` — something bought and refilled (detergent, salt, rinse aid):
|
|
54715
|
+
* a stepped level and "refill".
|
|
54716
|
+
* - `bin` — a container that collects waste (a dust bin): a fill gauge
|
|
54717
|
+
* that warns when full.
|
|
54718
|
+
* Absent = derived from the kind ({@link consumableFormOf}).
|
|
54719
|
+
*/
|
|
54720
|
+
var ConsumableFormSchema = _enum([
|
|
54721
|
+
"part",
|
|
54722
|
+
"tank",
|
|
54723
|
+
"product",
|
|
54724
|
+
"bin"
|
|
54725
|
+
]);
|
|
54726
|
+
/** The provider's own discrete verdict on an item. */
|
|
54727
|
+
var ConsumableStatusSchema = _enum([
|
|
54728
|
+
"ok",
|
|
54729
|
+
"low",
|
|
54730
|
+
"empty",
|
|
54731
|
+
"full",
|
|
54732
|
+
"replace"
|
|
54733
|
+
]);
|
|
54734
|
+
_enum([
|
|
54735
|
+
"ok",
|
|
54736
|
+
"low",
|
|
54737
|
+
"empty",
|
|
54738
|
+
"full"
|
|
54739
|
+
]);
|
|
54612
54740
|
/** Units a remaining-life counter is reported in. Closed: the panel renders
|
|
54613
54741
|
* each. */
|
|
54614
54742
|
var ConsumableRemainingUnitSchema = _enum([
|
|
@@ -54628,10 +54756,14 @@ var ConsumablesStatusSchema = object({
|
|
|
54628
54756
|
key: string().min(1),
|
|
54629
54757
|
/** Display name. */
|
|
54630
54758
|
label: string().min(1),
|
|
54631
|
-
/** Remaining life % when known (0..100). */
|
|
54759
|
+
/** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
|
|
54632
54760
|
level: number().min(0).max(100).nullable(),
|
|
54633
|
-
/**
|
|
54634
|
-
status:
|
|
54761
|
+
/** The provider's discrete verdict when known (binary mode). */
|
|
54762
|
+
status: ConsumableStatusSchema.nullable(),
|
|
54763
|
+
/** What the item is — decides whether low or full is bad. Absent = `wear`. */
|
|
54764
|
+
kind: ConsumableKindSchema.optional(),
|
|
54765
|
+
/** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
|
|
54766
|
+
form: ConsumableFormSchema.optional(),
|
|
54635
54767
|
/** Ms epoch of the last replace, when known. */
|
|
54636
54768
|
lastResetAt: number().nullable(),
|
|
54637
54769
|
/** Whether `reset()` is meaningful for this item. */
|
|
@@ -54866,8 +54998,9 @@ object({
|
|
|
54866
54998
|
status: DeviceStatusSchema
|
|
54867
54999
|
});
|
|
54868
55000
|
/**
|
|
54869
|
-
* Smart-dishwasher cap — program lifecycle, door / remote-start gates
|
|
54870
|
-
*
|
|
55001
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates and
|
|
55002
|
+
* common program options. Salt and rinse aid are NOT here: they are items of
|
|
55003
|
+
* the device's `consumables` cap, like every other device's (D915).
|
|
54871
55004
|
*
|
|
54872
55005
|
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
54873
55006
|
* by any integration that exposes the same program / option surface.
|
|
@@ -54915,11 +55048,6 @@ var DishwasherAvailabilitySchema = _enum([
|
|
|
54915
55048
|
"offline",
|
|
54916
55049
|
"description-missing"
|
|
54917
55050
|
]);
|
|
54918
|
-
var DishwasherConsumableLevelSchema = _enum([
|
|
54919
|
-
"ok",
|
|
54920
|
-
"low",
|
|
54921
|
-
"empty"
|
|
54922
|
-
]);
|
|
54923
55051
|
object({
|
|
54924
55052
|
availability: DishwasherAvailabilitySchema,
|
|
54925
55053
|
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
@@ -54952,8 +55080,6 @@ object({
|
|
|
54952
55080
|
powerOn: boolean().nullable(),
|
|
54953
55081
|
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
54954
55082
|
powerState: string().nullable(),
|
|
54955
|
-
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54956
|
-
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54957
55083
|
/**
|
|
54958
55084
|
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
54959
55085
|
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
@@ -56993,7 +57119,7 @@ DeviceType.Light, DeviceType.Siren, DeviceType.Switch, method(object({
|
|
|
56993
57119
|
enabled: boolean()
|
|
56994
57120
|
}), _void(), {
|
|
56995
57121
|
kind: "mutation",
|
|
56996
|
-
auth: "
|
|
57122
|
+
auth: "protected"
|
|
56997
57123
|
}), object({
|
|
56998
57124
|
deviceId: number(),
|
|
56999
57125
|
enabled: boolean(),
|
|
@@ -57483,6 +57609,13 @@ var TopologyNodeSchema = object({
|
|
|
57483
57609
|
cpuModel: string().nullable(),
|
|
57484
57610
|
cpuCores: number(),
|
|
57485
57611
|
memoryMB: number(),
|
|
57612
|
+
/**
|
|
57613
|
+
* The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
|
|
57614
|
+
* openvino, edgetpu …) — not its devices. An installed runtime says nothing
|
|
57615
|
+
* about whether its hardware is there (a Coral delegate stays installed
|
|
57616
|
+
* after the stick leaves, D919); the live device set is
|
|
57617
|
+
* `pipelineOrchestrator.getNodeInferenceDevices`.
|
|
57618
|
+
*/
|
|
57486
57619
|
engines: array(string()).readonly(),
|
|
57487
57620
|
isHub: boolean(),
|
|
57488
57621
|
isOnline: boolean(),
|
|
@@ -58447,7 +58580,28 @@ var ResolvedInferenceConfigSchema = object({
|
|
|
58447
58580
|
format: ModelFormatSchema,
|
|
58448
58581
|
reason: string()
|
|
58449
58582
|
});
|
|
58450
|
-
|
|
58583
|
+
/**
|
|
58584
|
+
* The answer of an accelerator rescan (D919): the node's device list after
|
|
58585
|
+
* the re-probe, what changed, and the evidence that decided the Coral answer
|
|
58586
|
+
* (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
|
|
58587
|
+
* bus, the installed-delegate fallback, or nothing).
|
|
58588
|
+
*/
|
|
58589
|
+
var AcceleratorRescanSchema = object({
|
|
58590
|
+
devices: array(InferenceDeviceDescriptorSchema).readonly(),
|
|
58591
|
+
appeared: array(string()).readonly(),
|
|
58592
|
+
disappeared: array(string()).readonly(),
|
|
58593
|
+
usbBus: _enum(["observed", "unobservable"]),
|
|
58594
|
+
decidedBy: _enum([
|
|
58595
|
+
"usb-ids",
|
|
58596
|
+
"pci",
|
|
58597
|
+
"delegate-fallback",
|
|
58598
|
+
"none"
|
|
58599
|
+
])
|
|
58600
|
+
});
|
|
58601
|
+
method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), AcceleratorRescanSchema, {
|
|
58602
|
+
kind: "mutation",
|
|
58603
|
+
auth: "admin"
|
|
58604
|
+
});
|
|
58451
58605
|
object({
|
|
58452
58606
|
/** Instantaneous power draw in watts. */
|
|
58453
58607
|
watts: number().optional(),
|
|
@@ -61736,60 +61890,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61736
61890
|
auth: "admin",
|
|
61737
61891
|
access: "delete"
|
|
61738
61892
|
});
|
|
61739
|
-
/**
|
|
61740
|
-
* Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
|
|
61741
|
-
* cleaning lifecycle plus a return-to-base / locate surface and an
|
|
61742
|
-
* optional fan-speed selector.
|
|
61743
|
-
*
|
|
61744
|
-
* State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
|
|
61745
|
-
* `paused` / `returning` / `docked` / `error`. `batteryLevel`
|
|
61746
|
-
* (0..100) is nullable — some vacuums don't report a battery
|
|
61747
|
-
* percentage. `fanSpeed` is the current speed token (provider-verbatim,
|
|
61748
|
-
* e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
|
|
61749
|
-
* tokens the hardware accepts so the UI renders only supported choices.
|
|
61750
|
-
*
|
|
61751
|
-
* The `setFanSpeed` method takes the bare `speed` token — the provider
|
|
61752
|
-
* validates it against the vacuum's own list. `locate` triggers the
|
|
61753
|
-
* find-me chirp; `returnToBase` sends it home.
|
|
61754
|
-
*
|
|
61755
|
-
* Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
|
|
61756
|
-
* `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
|
|
61757
|
-
* 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
|
|
61758
|
-
* SHOULD populate whichever tanks the hardware has — leave a field `null`
|
|
61759
|
-
* only when the device has no such tank at all, and use a `TankStatus`
|
|
61760
|
-
* with both inner fields `null` when the tank exists but its level is
|
|
61761
|
-
* currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
|
|
61762
|
-
* so the HA provider leaves all four `null`.
|
|
61763
|
-
*/
|
|
61764
|
-
var VacuumStateSchema = _enum([
|
|
61765
|
-
"idle",
|
|
61766
|
-
"cleaning",
|
|
61767
|
-
"paused",
|
|
61768
|
-
"returning",
|
|
61769
|
-
"docked",
|
|
61770
|
-
"drying",
|
|
61771
|
-
"error"
|
|
61772
|
-
]);
|
|
61773
|
-
/**
|
|
61774
|
-
* One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
|
|
61775
|
-
* detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
|
|
61776
|
-
* a discrete `status` (binary-style hardware), or both. Both `null` means the
|
|
61777
|
-
* level is currently unknown; the OWNING field being `null` means the
|
|
61778
|
-
* hardware has no such tank at all.
|
|
61779
|
-
*/
|
|
61780
|
-
var TankStatusSchema = object({
|
|
61781
|
-
/** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
|
|
61782
|
-
level: number().min(0).max(100).nullable(),
|
|
61783
|
-
/** Discrete state when the hardware is binary-mode; null otherwise. */
|
|
61784
|
-
status: _enum([
|
|
61785
|
-
"ok",
|
|
61786
|
-
"low",
|
|
61787
|
-
"full"
|
|
61788
|
-
]).nullable()
|
|
61789
|
-
});
|
|
61790
61893
|
object({
|
|
61791
61894
|
/** Lifecycle state of the vacuum. */
|
|
61792
|
-
state:
|
|
61895
|
+
state: _enum([
|
|
61896
|
+
"idle",
|
|
61897
|
+
"cleaning",
|
|
61898
|
+
"paused",
|
|
61899
|
+
"returning",
|
|
61900
|
+
"docked",
|
|
61901
|
+
"drying",
|
|
61902
|
+
"error"
|
|
61903
|
+
]),
|
|
61793
61904
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
61794
61905
|
* reading. */
|
|
61795
61906
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
@@ -61798,14 +61909,6 @@ object({
|
|
|
61798
61909
|
fanSpeed: string().nullable(),
|
|
61799
61910
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
61800
61911
|
availableFanSpeeds: array(string()),
|
|
61801
|
-
/** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
|
|
61802
|
-
cleanWater: TankStatusSchema.nullable(),
|
|
61803
|
-
/** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
|
|
61804
|
-
dirtyWater: TankStatusSchema.nullable(),
|
|
61805
|
-
/** Detergent tank. Null when the hardware has no detergent tank. */
|
|
61806
|
-
detergent: TankStatusSchema.nullable(),
|
|
61807
|
-
/** Dust bin. Null when the hardware has no dust bin. */
|
|
61808
|
-
dustBin: TankStatusSchema.nullable(),
|
|
61809
61912
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
61810
61913
|
progressPercent: number().min(0).max(100).nullable(),
|
|
61811
61914
|
/** Current error code (0 / null = no error). */
|
|
@@ -64346,6 +64449,12 @@ Object.freeze({
|
|
|
64346
64449
|
addonId: null,
|
|
64347
64450
|
access: "create"
|
|
64348
64451
|
},
|
|
64452
|
+
"deviceHistory.deleteOrphanSeries": {
|
|
64453
|
+
capName: "device-history",
|
|
64454
|
+
capScope: "system",
|
|
64455
|
+
addonId: null,
|
|
64456
|
+
access: "delete"
|
|
64457
|
+
},
|
|
64349
64458
|
"deviceHistory.getDeviceEnabled": {
|
|
64350
64459
|
capName: "device-history",
|
|
64351
64460
|
capScope: "system",
|
|
@@ -64364,6 +64473,12 @@ Object.freeze({
|
|
|
64364
64473
|
addonId: null,
|
|
64365
64474
|
access: "view"
|
|
64366
64475
|
},
|
|
64476
|
+
"deviceHistory.listOrphanSeries": {
|
|
64477
|
+
capName: "device-history",
|
|
64478
|
+
capScope: "system",
|
|
64479
|
+
addonId: null,
|
|
64480
|
+
access: "view"
|
|
64481
|
+
},
|
|
64367
64482
|
"deviceHistory.listSeries": {
|
|
64368
64483
|
capName: "device-history",
|
|
64369
64484
|
capScope: "system",
|
|
@@ -67988,6 +68103,12 @@ Object.freeze({
|
|
|
67988
68103
|
addonId: null,
|
|
67989
68104
|
access: "delete"
|
|
67990
68105
|
},
|
|
68106
|
+
"pipelineOrchestrator.forgetInferenceDevice": {
|
|
68107
|
+
capName: "pipeline-orchestrator",
|
|
68108
|
+
capScope: "system",
|
|
68109
|
+
addonId: null,
|
|
68110
|
+
access: "delete"
|
|
68111
|
+
},
|
|
67991
68112
|
"pipelineOrchestrator.getAgentLoad": {
|
|
67992
68113
|
capName: "pipeline-orchestrator",
|
|
67993
68114
|
capScope: "system",
|
|
@@ -68564,6 +68685,12 @@ Object.freeze({
|
|
|
68564
68685
|
addonId: null,
|
|
68565
68686
|
access: "view"
|
|
68566
68687
|
},
|
|
68688
|
+
"platformProbe.rescanAccelerators": {
|
|
68689
|
+
capName: "platform-probe",
|
|
68690
|
+
capScope: "system",
|
|
68691
|
+
addonId: null,
|
|
68692
|
+
access: "create"
|
|
68693
|
+
},
|
|
68567
68694
|
"platformProbe.resolveHwAccel": {
|
|
68568
68695
|
capName: "platform-probe",
|
|
68569
68696
|
capScope: "system",
|
|
@@ -74576,7 +74703,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
74576
74703
|
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
74577
74704
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
74578
74705
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
74579
|
-
([...RULE_TEXT], [...CONSUMABLE]),
|
|
74706
|
+
([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
|
|
74580
74707
|
([...RULE_TEXT], [...TANK]),
|
|
74581
74708
|
[...RULE_TEXT],
|
|
74582
74709
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-notifiers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.619",
|
|
4
4
|
"description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|