@camstack/addon-post-analysis 1.2.624 → 1.2.626

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (15) hide show
  1. package/dist/{clip-model-registry-BpS_EthX.mjs → clip-model-registry-DAWGt4j9.mjs} +257 -121
  2. package/dist/{clip-model-registry-WENnCB-u.js → clip-model-registry-FGmg0uYz.js} +257 -121
  3. package/dist/embedding-encoder/index.js +1 -1
  4. package/dist/embedding-encoder/index.mjs +1 -1
  5. package/dist/pipeline-analytics/_stub.js +2 -2
  6. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-B3M-0LC0.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-Biy-u2yt.mjs} +3 -3
  7. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-yap5surJ.mjs +26 -0
  8. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-_Ip2ZGVX.mjs +26 -0
  9. package/dist/pipeline-analytics/{hostInit-BqU6Q1wQ.mjs → hostInit-4lybsFX0.mjs} +3 -3
  10. package/dist/pipeline-analytics/index.js +206 -222
  11. package/dist/pipeline-analytics/index.mjs +206 -222
  12. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  13. package/package.json +1 -1
  14. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DBuMgPh6.mjs +0 -26
  15. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B1HZu0i3.mjs +0 -26
@@ -5660,7 +5660,7 @@ var ZodIssueCode = {
5660
5660
  var ZodFirstPartyTypeKind;
5661
5661
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5662
5662
  //#endregion
5663
- //#region ../types/dist/sleep-DJFUfKvA.mjs
5663
+ //#region ../types/dist/sleep-CUp20JkO.mjs
5664
5664
  /**
5665
5665
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5666
5666
  * window to float samples (D455).
@@ -8757,7 +8757,11 @@ var ContributionSectionSchema = object({
8757
8757
  literal(4)
8758
8758
  ]).optional(),
8759
8759
  tab: string().optional(),
8760
- location: _enum(["settings", "top-tab"]).optional(),
8760
+ location: _enum([
8761
+ "settings",
8762
+ "top-tab",
8763
+ "hero"
8764
+ ]).optional(),
8761
8765
  order: number().optional(),
8762
8766
  fields: array(any())
8763
8767
  });
@@ -14772,7 +14776,11 @@ var ConfigSectionWithValuesSchema = object({
14772
14776
  literal(4)
14773
14777
  ]).optional(),
14774
14778
  tab: string().optional(),
14775
- location: _enum(["settings", "top-tab"]).optional(),
14779
+ location: _enum([
14780
+ "settings",
14781
+ "top-tab",
14782
+ "hero"
14783
+ ]).optional(),
14776
14784
  order: number().optional(),
14777
14785
  fields: array(any())
14778
14786
  });
@@ -18682,6 +18690,52 @@ var TierStatusSchema = object({
18682
18690
  countedAt: number().nullable()
18683
18691
  });
18684
18692
  /** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
18693
+ /**
18694
+ * Why a series is orphan. `device-gone`: its device is absent from the
18695
+ * successful device listings (the departure clock). `undeclared`: its `cap:`
18696
+ * key is declared by no capability any more (a field a cap removed).
18697
+ */
18698
+ var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
18699
+ /** Rows held per stored tier. */
18700
+ var TierRowsSchema = object({
18701
+ raw: number().int(),
18702
+ "5m": number().int(),
18703
+ "1h": number().int(),
18704
+ "1d": number().int()
18705
+ });
18706
+ var OrphanSeriesSchema = object({
18707
+ seriesId: number().int(),
18708
+ deviceId: number().int(),
18709
+ key: string(),
18710
+ scope: string(),
18711
+ /** The metric's display name; `null` when its metric row is gone too. */
18712
+ displayName: string().nullable(),
18713
+ reason: DeviceHistoryOrphanReasonSchema,
18714
+ /** `device-gone`: since when the device has been absent; `null` otherwise. */
18715
+ missingSince: number().nullable(),
18716
+ firstTs: number(),
18717
+ lastTs: number(),
18718
+ rows: TierRowsSchema
18719
+ });
18720
+ var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
18721
+ "not-found",
18722
+ "not-orphan",
18723
+ "failed"
18724
+ ]);
18725
+ var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
18726
+ seriesId: number().int(),
18727
+ ok: literal(true),
18728
+ deleted: TierRowsSchema
18729
+ }), object({
18730
+ seriesId: number().int(),
18731
+ ok: literal(false),
18732
+ reason: DeviceHistoryOrphanDeleteRefusalSchema
18733
+ })]);
18734
+ var OrphanListSchema = object({
18735
+ series: array(OrphanSeriesSchema).readonly(),
18736
+ /** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
18737
+ truncated: boolean()
18738
+ });
18685
18739
  var DeviceHistoryStatusSchema = object({
18686
18740
  startedAt: number(),
18687
18741
  /** The store is declared, series loaded and the first reconcile has answered. */
@@ -18779,7 +18833,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
18779
18833
  }), object({ enabled: boolean() }), {
18780
18834
  kind: "mutation",
18781
18835
  auth: "admin"
18782
- }), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
18836
+ }), 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() }), {
18837
+ kind: "mutation",
18838
+ auth: "admin"
18839
+ });
18783
18840
  var DeviceCaStatusSchema = discriminatedUnion("state", [
18784
18841
  object({ state: literal("absent") }),
18785
18842
  object({
@@ -53675,6 +53732,19 @@ var NodeInferenceDeviceSchema = object({
53675
53732
  /** Whether the node's live probe reports the device as usable right now. */
53676
53733
  available: boolean(),
53677
53734
  /**
53735
+ * Is the device on the node at all (D919)? `present` — the live probe
53736
+ * reported it; `absent` — the probe ANSWERED and did not report it, so only
53737
+ * its stored settings remain (unplugged, moved to another node): never
53738
+ * eligible, whatever its stored `enabled`, and forgettable with
53739
+ * `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
53740
+ * claimed (D315). Optional only for an orchestrator older than the field.
53741
+ */
53742
+ presence: _enum([
53743
+ "present",
53744
+ "absent",
53745
+ "unknown"
53746
+ ]).optional(),
53747
+ /**
53678
53748
  * Whether this device participates in dispatch. AUTO default (spec C2):
53679
53749
  * accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
53680
53750
  * entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
@@ -53900,7 +53970,13 @@ method(object({
53900
53970
  }), object({ success: literal(true) }), {
53901
53971
  kind: "mutation",
53902
53972
  auth: "admin"
53903
- }), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({ agentNodeId: string() }), object({
53973
+ }), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
53974
+ agentNodeId: string(),
53975
+ deviceKey: string()
53976
+ }), object({ success: literal(true) }), {
53977
+ kind: "mutation",
53978
+ auth: "admin"
53979
+ }), method(object({ agentNodeId: string() }), object({
53904
53980
  success: literal(true),
53905
53981
  /** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
53906
53982
  effectiveModelId: string().nullable(),
@@ -58653,17 +58729,69 @@ var connectivityCapability = {
58653
58729
  volatileStateFields: ["lastChangedAt"]
58654
58730
  };
58655
58731
  /**
58656
- * Generic device-consumables capability — surfaces a device's
58657
- * maintenance items (vacuum filters/brushes, replaceable cartridges,
58658
- * descaling cycles, …) with their remaining life and an optional
58659
- * "Replaced" reset action. Device-agnostic: any provider that knows its
58660
- * device tracks consumables can register it; the cap declares no
58661
- * vocabulary of its own — the provider names each item verbatim.
58732
+ * Generic device-consumables capability — the ONE place a device reports what
58733
+ * it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
58734
+ * descaling cycles), supplies it draws from (a vacuum's clean-water tank and
58735
+ * detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
58736
+ * water tank, a dust bin). Each item carries its remaining life or fill and an
58737
+ * optional "Replaced" reset action. Device-agnostic: any provider that knows
58738
+ * its device tracks consumables registers it; the provider names each item
58739
+ * verbatim and says which `kind` it is.
58740
+ *
58741
+ * The admin UI renders it as ONE collapsible section directly under the
58742
+ * device page's hero card (`placement: 'hero'`), for every device bound to
58743
+ * this cap — never drawn by a device type's hero card itself (D915).
58662
58744
  *
58663
58745
  * Like `childLayout`, the cap is INERT until a provider sets items: no
58664
58746
  * provider populates it by guessing (no HA inference). The UI renders a
58665
58747
  * "No consumables reported" placeholder when `items` is empty.
58666
58748
  */
58749
+ /**
58750
+ * What an item IS, which decides which direction is bad:
58751
+ * - `wear` — a part that wears out (a brush, a filter); low life is bad.
58752
+ * - `supply` — something the device draws from (clean water, detergent,
58753
+ * salt, rinse aid); low or empty is bad.
58754
+ * - `waste` — something the device fills (dirty water, a dust bin); full is
58755
+ * bad.
58756
+ * Absent = `wear`.
58757
+ */
58758
+ var ConsumableKindSchema = _enum([
58759
+ "wear",
58760
+ "supply",
58761
+ "waste"
58762
+ ]);
58763
+ /**
58764
+ * What an item LOOKS like, which decides how a client draws it — independent
58765
+ * of `kind`, which decides which direction is bad:
58766
+ * - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
58767
+ * remaining time and a reset.
58768
+ * - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
58769
+ * - `product` — something bought and refilled (detergent, salt, rinse aid):
58770
+ * a stepped level and "refill".
58771
+ * - `bin` — a container that collects waste (a dust bin): a fill gauge
58772
+ * that warns when full.
58773
+ * Absent = derived from the kind ({@link consumableFormOf}).
58774
+ */
58775
+ var ConsumableFormSchema = _enum([
58776
+ "part",
58777
+ "tank",
58778
+ "product",
58779
+ "bin"
58780
+ ]);
58781
+ /** The provider's own discrete verdict on an item. */
58782
+ var ConsumableStatusSchema = _enum([
58783
+ "ok",
58784
+ "low",
58785
+ "empty",
58786
+ "full",
58787
+ "replace"
58788
+ ]);
58789
+ _enum([
58790
+ "ok",
58791
+ "low",
58792
+ "empty",
58793
+ "full"
58794
+ ]);
58667
58795
  /** Units a remaining-life counter is reported in. Closed: the panel renders
58668
58796
  * each. */
58669
58797
  var ConsumableRemainingUnitSchema = _enum([
@@ -58678,18 +58806,23 @@ var ConsumableRemainingSchema = object({
58678
58806
  unit: ConsumableRemainingUnitSchema
58679
58807
  });
58680
58808
  /** A single consumable item. Either a continuous `level` (remaining
58681
- * life %) or a discrete `status` may be known — both may be null when a
58682
- * provider only knows the item exists. `level` and `status` are not
58683
- * mutually exclusive; a provider may report both. */
58809
+ * life %, or fill % for a `supply` / `waste` item) or a discrete `status`
58810
+ * may be known — both may be null when a provider only knows the item
58811
+ * exists. `level` and `status` are not mutually exclusive; a provider may
58812
+ * report both. */
58684
58813
  var ConsumableItemSchema = object({
58685
58814
  /** Stable id, e.g. 'main-brush'. */
58686
58815
  key: string().min(1),
58687
58816
  /** Display name. */
58688
58817
  label: string().min(1),
58689
- /** Remaining life % when known (0..100). */
58818
+ /** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
58690
58819
  level: number().min(0).max(100).nullable(),
58691
- /** Discrete state when known (binary mode). */
58692
- status: _enum(["ok", "replace"]).nullable(),
58820
+ /** The provider's discrete verdict when known (binary mode). */
58821
+ status: ConsumableStatusSchema.nullable(),
58822
+ /** What the item is — decides whether low or full is bad. Absent = `wear`. */
58823
+ kind: ConsumableKindSchema.optional(),
58824
+ /** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
58825
+ form: ConsumableFormSchema.optional(),
58693
58826
  /** Ms epoch of the last replace, when known. */
58694
58827
  lastResetAt: number().nullable(),
58695
58828
  /** Whether `reset()` is meaningful for this item. */
@@ -58712,7 +58845,7 @@ var consumablesCapability = {
58712
58845
  kind: "widget",
58713
58846
  widgetId: "host/consumables-panel",
58714
58847
  tab: "consumables",
58715
- topTab: true,
58848
+ placement: "hero",
58716
58849
  label: "Consumables",
58717
58850
  order: 5
58718
58851
  } },
@@ -58773,9 +58906,37 @@ reset: method(object({
58773
58906
  */
58774
58907
  durability: "restored",
58775
58908
  /**
58776
- * History (D850): none — `items` is an array keyed by runtime ids; a history path never enters it.
58909
+ * History (D850, D917): one series per (item field, item `key`) — the item key
58910
+ * is the series scope, the item `label` names it. A vacuum tank's fill, a
58911
+ * brush's remaining life and a dishwasher's salt are each recorded the moment
58912
+ * their provider reports them; an item that appears later gets its series.
58777
58913
  */
58778
- history: "none",
58914
+ history: {
58915
+ fields: {},
58916
+ items: {
58917
+ path: "items",
58918
+ key: "key",
58919
+ label: "label",
58920
+ fields: {
58921
+ level: {
58922
+ kind: "gauge",
58923
+ unit: "%",
58924
+ deadband: 2,
58925
+ displayName: "Level"
58926
+ },
58927
+ status: {
58928
+ kind: "enum",
58929
+ displayName: "Status"
58930
+ },
58931
+ "remaining.value": {
58932
+ kind: "gauge",
58933
+ unitFrom: "remaining.unit",
58934
+ deadband: 1,
58935
+ displayName: "Remaining"
58936
+ }
58937
+ }
58938
+ }
58939
+ },
58779
58940
  /** Clocks, not content: a re-read that changed no item costs no commit. */
58780
58941
  volatileStateFields: ["lastChangedAt", "lastFetchedAt"]
58781
58942
  };
@@ -59212,8 +59373,9 @@ onStatusChanged: { data: object({
59212
59373
  volatileStateFields: ["lastChangedAt"]
59213
59374
  };
59214
59375
  /**
59215
- * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
59216
- * consumable levels (salt, rinse aid) and common program options.
59376
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates and
59377
+ * common program options. Salt and rinse aid are NOT here: they are items of
59378
+ * the device's `consumables` cap, like every other device's (D915).
59217
59379
  *
59218
59380
  * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
59219
59381
  * by any integration that exposes the same program / option surface.
@@ -59261,11 +59423,6 @@ var DishwasherAvailabilitySchema = _enum([
59261
59423
  "offline",
59262
59424
  "description-missing"
59263
59425
  ]);
59264
- var DishwasherConsumableLevelSchema = _enum([
59265
- "ok",
59266
- "low",
59267
- "empty"
59268
- ]);
59269
59426
  var DishwasherStatusSchema = object({
59270
59427
  availability: DishwasherAvailabilitySchema,
59271
59428
  /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
@@ -59298,8 +59455,6 @@ var DishwasherStatusSchema = object({
59298
59455
  powerOn: boolean().nullable(),
59299
59456
  /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
59300
59457
  powerState: string().nullable(),
59301
- saltLevel: DishwasherConsumableLevelSchema.nullable(),
59302
- rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
59303
59458
  /**
59304
59459
  * True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
59305
59460
  * combined care-and-filter reminder raised); false when every such reminder reads clear; null
@@ -62260,7 +62415,7 @@ var motionTriggerCapability = {
62260
62415
  enabled: boolean()
62261
62416
  }), _void(), {
62262
62417
  kind: "mutation",
62263
- auth: "admin"
62418
+ auth: "protected"
62264
62419
  }) },
62265
62420
  events: { onMotionTriggerChanged: { data: object({
62266
62421
  deviceId: number(),
@@ -62990,6 +63145,13 @@ var TopologyNodeSchema = object({
62990
63145
  cpuModel: string().nullable(),
62991
63146
  cpuCores: number(),
62992
63147
  memoryMB: number(),
63148
+ /**
63149
+ * The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
63150
+ * openvino, edgetpu …) — not its devices. An installed runtime says nothing
63151
+ * about whether its hardware is there (a Coral delegate stays installed
63152
+ * after the stick leaves, D919); the live device set is
63153
+ * `pipelineOrchestrator.getNodeInferenceDevices`.
63154
+ */
62993
63155
  engines: array(string()).readonly(),
62994
63156
  isHub: boolean(),
62995
63157
  isOnline: boolean(),
@@ -64141,7 +64303,28 @@ var ResolvedInferenceConfigSchema = object({
64141
64303
  format: ModelFormatSchema,
64142
64304
  reason: string()
64143
64305
  });
64144
- method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema);
64306
+ /**
64307
+ * The answer of an accelerator rescan (D919): the node's device list after
64308
+ * the re-probe, what changed, and the evidence that decided the Coral answer
64309
+ * (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
64310
+ * bus, the installed-delegate fallback, or nothing).
64311
+ */
64312
+ var AcceleratorRescanSchema = object({
64313
+ devices: array(InferenceDeviceDescriptorSchema).readonly(),
64314
+ appeared: array(string()).readonly(),
64315
+ disappeared: array(string()).readonly(),
64316
+ usbBus: _enum(["observed", "unobservable"]),
64317
+ decidedBy: _enum([
64318
+ "usb-ids",
64319
+ "pci",
64320
+ "delegate-fallback",
64321
+ "none"
64322
+ ])
64323
+ });
64324
+ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), AcceleratorRescanSchema, {
64325
+ kind: "mutation",
64326
+ auth: "admin"
64327
+ });
64145
64328
  /**
64146
64329
  * Multi-metric electrical meter. One slice can carry any combination
64147
64330
  * of instantaneous power (W), cumulative energy (kWh), voltage (V),
@@ -68284,60 +68467,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
68284
68467
  auth: "admin",
68285
68468
  access: "delete"
68286
68469
  });
68287
- /**
68288
- * Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
68289
- * cleaning lifecycle plus a return-to-base / locate surface and an
68290
- * optional fan-speed selector.
68291
- *
68292
- * State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
68293
- * `paused` / `returning` / `docked` / `error`. `batteryLevel`
68294
- * (0..100) is nullable — some vacuums don't report a battery
68295
- * percentage. `fanSpeed` is the current speed token (provider-verbatim,
68296
- * e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
68297
- * tokens the hardware accepts so the UI renders only supported choices.
68298
- *
68299
- * The `setFanSpeed` method takes the bare `speed` token — the provider
68300
- * validates it against the vacuum's own list. `locate` triggers the
68301
- * find-me chirp; `returnToBase` sends it home.
68302
- *
68303
- * Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
68304
- * `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
68305
- * 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
68306
- * SHOULD populate whichever tanks the hardware has — leave a field `null`
68307
- * only when the device has no such tank at all, and use a `TankStatus`
68308
- * with both inner fields `null` when the tank exists but its level is
68309
- * currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
68310
- * so the HA provider leaves all four `null`.
68311
- */
68312
- var VacuumStateSchema = _enum([
68313
- "idle",
68314
- "cleaning",
68315
- "paused",
68316
- "returning",
68317
- "docked",
68318
- "drying",
68319
- "error"
68320
- ]);
68321
- /**
68322
- * One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
68323
- * detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
68324
- * a discrete `status` (binary-style hardware), or both. Both `null` means the
68325
- * level is currently unknown; the OWNING field being `null` means the
68326
- * hardware has no such tank at all.
68327
- */
68328
- var TankStatusSchema = object({
68329
- /** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
68330
- level: number().min(0).max(100).nullable(),
68331
- /** Discrete state when the hardware is binary-mode; null otherwise. */
68332
- status: _enum([
68333
- "ok",
68334
- "low",
68335
- "full"
68336
- ]).nullable()
68337
- });
68338
68470
  var VacuumControlStatusSchema = object({
68339
68471
  /** Lifecycle state of the vacuum. */
68340
- state: VacuumStateSchema,
68472
+ state: _enum([
68473
+ "idle",
68474
+ "cleaning",
68475
+ "paused",
68476
+ "returning",
68477
+ "docked",
68478
+ "drying",
68479
+ "error"
68480
+ ]),
68341
68481
  /** 0..100 battery percentage. Null when the device has no battery
68342
68482
  * reading. */
68343
68483
  batteryLevel: number().min(0).max(100).nullable(),
@@ -68346,14 +68486,6 @@ var VacuumControlStatusSchema = object({
68346
68486
  fanSpeed: string().nullable(),
68347
68487
  /** Speed tokens the hardware accepts — drives the UI selector. */
68348
68488
  availableFanSpeeds: array(string()),
68349
- /** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
68350
- cleanWater: TankStatusSchema.nullable(),
68351
- /** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
68352
- dirtyWater: TankStatusSchema.nullable(),
68353
- /** Detergent tank. Null when the hardware has no detergent tank. */
68354
- detergent: TankStatusSchema.nullable(),
68355
- /** Dust bin. Null when the hardware has no dust bin. */
68356
- dustBin: TankStatusSchema.nullable(),
68357
68489
  /** 0..100 cleaning-completion percentage of the current task, or null. */
68358
68490
  progressPercent: number().min(0).max(100).nullable(),
68359
68491
  /** Current error code (0 / null = no error). */
@@ -68415,35 +68547,14 @@ var vacuumControlCapability = {
68415
68547
  */
68416
68548
  durability: "session",
68417
68549
  /**
68418
- * History (D850): recorded series. Tank levels are fixed-object paths (`cleanWater.level`, ...).
68550
+ * History (D850): recorded series. The tanks moved to `consumables` (D915), whose
68551
+ * items are keyed by runtime ids and record no history.
68419
68552
  */
68420
- history: { fields: {
68421
- batteryLevel: {
68422
- kind: "gauge",
68423
- unit: "%",
68424
- deadband: 2
68425
- },
68426
- "cleanWater.level": {
68427
- kind: "gauge",
68428
- unit: "%",
68429
- deadband: 2
68430
- },
68431
- "dirtyWater.level": {
68432
- kind: "gauge",
68433
- unit: "%",
68434
- deadband: 2
68435
- },
68436
- "detergent.level": {
68437
- kind: "gauge",
68438
- unit: "%",
68439
- deadband: 2
68440
- },
68441
- "dustBin.level": {
68442
- kind: "gauge",
68443
- unit: "%",
68444
- deadband: 2
68445
- }
68446
- } }
68553
+ history: { fields: { batteryLevel: {
68554
+ kind: "gauge",
68555
+ unit: "%",
68556
+ deadband: 2
68557
+ } } }
68447
68558
  };
68448
68559
  var ValveStatusSchema = object({
68449
68560
  /** Lifecycle state of the valve. */
@@ -72407,6 +72518,12 @@ Object.freeze({
72407
72518
  addonId: null,
72408
72519
  access: "create"
72409
72520
  },
72521
+ "deviceHistory.deleteOrphanSeries": {
72522
+ capName: "device-history",
72523
+ capScope: "system",
72524
+ addonId: null,
72525
+ access: "delete"
72526
+ },
72410
72527
  "deviceHistory.getDeviceEnabled": {
72411
72528
  capName: "device-history",
72412
72529
  capScope: "system",
@@ -72425,6 +72542,12 @@ Object.freeze({
72425
72542
  addonId: null,
72426
72543
  access: "view"
72427
72544
  },
72545
+ "deviceHistory.listOrphanSeries": {
72546
+ capName: "device-history",
72547
+ capScope: "system",
72548
+ addonId: null,
72549
+ access: "view"
72550
+ },
72428
72551
  "deviceHistory.listSeries": {
72429
72552
  capName: "device-history",
72430
72553
  capScope: "system",
@@ -76049,6 +76172,12 @@ Object.freeze({
76049
76172
  addonId: null,
76050
76173
  access: "delete"
76051
76174
  },
76175
+ "pipelineOrchestrator.forgetInferenceDevice": {
76176
+ capName: "pipeline-orchestrator",
76177
+ capScope: "system",
76178
+ addonId: null,
76179
+ access: "delete"
76180
+ },
76052
76181
  "pipelineOrchestrator.getAgentLoad": {
76053
76182
  capName: "pipeline-orchestrator",
76054
76183
  capScope: "system",
@@ -76625,6 +76754,12 @@ Object.freeze({
76625
76754
  addonId: null,
76626
76755
  access: "view"
76627
76756
  },
76757
+ "platformProbe.rescanAccelerators": {
76758
+ capName: "platform-probe",
76759
+ capScope: "system",
76760
+ addonId: null,
76761
+ access: "create"
76762
+ },
76628
76763
  "platformProbe.resolveHwAccel": {
76629
76764
  capName: "platform-probe",
76630
76765
  capScope: "system",
@@ -84157,17 +84292,18 @@ var NC_TEMPLATE_VARS = [
84157
84292
  {
84158
84293
  name: "item",
84159
84294
  label: "Consumable",
84295
+ description: "The device's own name for the item: a filter, a brush, the salt, a tank.",
84160
84296
  example: "Filtro",
84161
84297
  group: "system",
84162
84298
  families: ["rule"],
84163
84299
  fields: [...RULE_TEXT],
84164
84300
  kinds: ["system"],
84165
- systemEventKinds: [...CONSUMABLE]
84301
+ systemEventKinds: [...CONSUMABLE, ...TANK]
84166
84302
  },
84167
84303
  {
84168
84304
  name: "tank",
84169
84305
  label: "Tank",
84170
- description: "Which tank: clean water, dirty water, detergent or dust bin.",
84306
+ description: "Which tank, as a stable token: cleanWater, dirtyWater, detergent, dustBin, or the device key of any other supply (salt, rinse aid).",
84171
84307
  example: "clean water",
84172
84308
  group: "system",
84173
84309
  families: ["rule"],
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_clip_model_registry = require("../clip-model-registry-WENnCB-u.js");
5
+ const require_clip_model_registry = require("../clip-model-registry-FGmg0uYz.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_clip_model_registry.__toESM(node_fs);
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Ki as BaseAddon, Xr as parseProcStatus, a as CLIP_EMBEDDING_STEP_ID, en as PoolMemoryWatchdog, fr as embeddingRequirementsFailedError, i as CLIP_TEXT_MODELS, ia as normalizeNodeId, l as resolveClusterModelPin, lr as embeddingEncoderCapability, n as DEFAULT_CLIP_MODEL, pr as embeddingRequirementsUnavailableError, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, ui as resolvePoolMemoryPolicy, ur as embeddingModelFailedError } from "../clip-model-registry-BpS_EthX.mjs";
1
+ import { Ki as BaseAddon, Xr as parseProcStatus, a as CLIP_EMBEDDING_STEP_ID, en as PoolMemoryWatchdog, fr as embeddingRequirementsFailedError, i as CLIP_TEXT_MODELS, ia as normalizeNodeId, l as resolveClusterModelPin, lr as embeddingEncoderCapability, n as DEFAULT_CLIP_MODEL, pr as embeddingRequirementsUnavailableError, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, ui as resolvePoolMemoryPolicy, ur as embeddingModelFailedError } from "../clip-model-registry-DAWGt4j9.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import * as path$1 from "node:path";
@@ -1,8 +1,8 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-Cx9AsA5q.mjs";
2
2
  import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
3
- import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B1HZu0i3.mjs";
3
+ import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-_Ip2ZGVX.mjs";
4
4
  import { n as x, t as S } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-CkwmHEi0.mjs";
5
- import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DBuMgPh6.mjs";
5
+ import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-yap5surJ.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
7
7
  var w = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), D = (e) => {
8
8
  let t = E(e);
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.149",
6
+ version: "1.2.151",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_pipeline_analytics_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.400",
21
+ version: "1.2.402",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_analytics_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.316",
36
+ version: "1.2.318",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",