@camstack/addon-training 0.1.57 → 0.1.59

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 (21) hide show
  1. package/dist/{MotionZonesSettings-B1MFjLvT.mjs → MotionZonesSettings-D3MA168j.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-BsCT1qXL.mjs → PrivacyMaskSettings-DlILfRb9.mjs} +2 -2
  3. package/dist/{SceneMonitorEditor-DYTrCHNh.mjs → SceneMonitorEditor-DgOpS2v_.mjs} +1 -1
  4. package/dist/_stub.js +4170 -3996
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-Bas5pktv.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BbkzYirO.mjs} +4 -4
  6. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DlLXF7aF.mjs +26 -0
  7. package/dist/addon-training.css +1 -1
  8. package/dist/{dist-RNhXRDvn.mjs → dist-DM9y4CJe.mjs} +323 -36
  9. package/dist/{dist-CQWU7Lpk.js → dist-DfNFNGnO.js} +323 -36
  10. package/dist/{hostInit-jpGr5jVe.mjs → hostInit-SLlPYdLV.mjs} +3 -3
  11. package/dist/index.js +1 -1
  12. package/dist/orchestrator/training.addon.js +1 -1
  13. package/dist/orchestrator/training.addon.mjs +1 -1
  14. package/dist/{player-overlays-Cdh_GNzb.mjs → player-overlays-pM6iC4GI.mjs} +1 -1
  15. package/dist/providers/modal/training-modal.addon.js +1 -1
  16. package/dist/providers/modal/training-modal.addon.mjs +1 -1
  17. package/dist/remoteEntry.js +1 -1
  18. package/dist/{responsive-DzwIz4dK.mjs → responsive-BAAHnmTT.mjs} +1 -1
  19. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CxB3fjqQ.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-D81A7IJp.mjs} +1 -1
  20. package/package.json +1 -1
  21. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-o-C5PmDm.mjs +0 -26
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
32
32
  }) : target, mod));
33
33
  var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
34
  require("node:crypto");
35
- //#region ../types/dist/event-category-BvOFi6PY.mjs
35
+ //#region ../types/dist/event-category-DOl51-Ij.mjs
36
36
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
37
37
  EventCategory["SystemBoot"] = "system.boot";
38
38
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -111,9 +111,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
111
111
  /**
112
112
  * The node's one-shot runner boot check (D877): planned runners against the
113
113
  * process service, `degraded` when any is failed, refused or missing. The
114
- * alert centre turns it into one alert and a direct critical push.
114
+ * alert centre turns it into one critical alert.
115
115
  */
116
116
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
117
+ /**
118
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
119
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
120
+ * centre sends no notification of its own: Notification Center turns this
121
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
122
+ * system-event kinds, and reconciles from the alerts store because a bus
123
+ * event may be dropped (D8, D11).
124
+ */
125
+ EventCategory["AlertEpisode"] = "alert.episode";
117
126
  EventCategory["AddonError"] = "addon.error";
118
127
  EventCategory["AddonPageReady"] = "addon.page-ready";
119
128
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -5571,7 +5580,7 @@ var ZodIssueCode = {
5571
5580
  var ZodFirstPartyTypeKind;
5572
5581
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5573
5582
  //#endregion
5574
- //#region ../types/dist/sleep-BOjuyoPC.mjs
5583
+ //#region ../types/dist/sleep-BxjU_fJM.mjs
5575
5584
  /**
5576
5585
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5577
5586
  * window to float samples (D455).
@@ -13547,7 +13556,14 @@ var AlertSeveritySchema = _enum([
13547
13556
  ]);
13548
13557
  var AlertActionSchema = object({
13549
13558
  label: string(),
13550
- href: string().optional()
13559
+ href: string().optional(),
13560
+ /**
13561
+ * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
13562
+ * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
13563
+ * start) — the browser must leave the SPA with a full navigation, because
13564
+ * the SPA has no such route and would bounce to the home page.
13565
+ */
13566
+ navigation: _enum(["app", "server"]).optional()
13551
13567
  });
13552
13568
  var AlertStatusSchema = _enum([
13553
13569
  "active",
@@ -17711,7 +17727,11 @@ DeviceType.Hub, DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: number().int
17711
17727
  });
17712
17728
  /**
17713
17729
  * `device-adoption` — generic discovery + adoption surface,
17714
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17730
+ * system-scoped collection (one provider per integration addon), routed
17731
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17732
+ * pin model as `connection-test`. The admin UI keeps using
17733
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17734
+ * successor to `ha-discovery`:
17715
17735
  * keyed by `integrationId` (the addon resolves integrationId → broker
17716
17736
  * internally) rather than a connection-specific `brokerId`, and it
17717
17737
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -41919,6 +41939,9 @@ var NcSystemEventKindSchema = _enum([
41919
41939
  "server-updated",
41920
41940
  "export-completed",
41921
41941
  "backup-completed",
41942
+ "alert-critical",
41943
+ "alert-error",
41944
+ "alert-critical-resolved",
41922
41945
  "camera-online",
41923
41946
  "camera-offline",
41924
41947
  "camera-disabled",
@@ -50951,7 +50974,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
50951
50974
  }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
50952
50975
  kind: "mutation",
50953
50976
  auth: "admin"
50954
- }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
50977
+ }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
50978
+ clear: boolean(),
50979
+ repointLocationId: string().optional()
50980
+ }), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
50955
50981
  kind: "mutation",
50956
50982
  auth: "admin"
50957
50983
  }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
@@ -54386,6 +54412,11 @@ object({
54386
54412
  *
54387
54413
  * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54388
54414
  * provider refreshes the slice on an interval and eagerly after commands.
54415
+ *
54416
+ * UNKNOWN IS NOT OFF. Every field the appliance reports separately is
54417
+ * nullable: `null` means "not known right now" (the appliance has not said,
54418
+ * the link is down, or the description does not carry it) and is never
54419
+ * rendered or exported as `false` / `0`. `availability` says why.
54389
54420
  */
54390
54421
  var DishwasherStateSchema = _enum([
54391
54422
  "idle",
@@ -54395,80 +54426,227 @@ var DishwasherStateSchema = _enum([
54395
54426
  "error",
54396
54427
  "unavailable"
54397
54428
  ]);
54429
+ /**
54430
+ * The appliance's own operation state, uncollapsed. `state` above is the coarse
54431
+ * view for compact surfaces; this is what the appliance said.
54432
+ */
54433
+ var DishwasherOperationStateSchema = _enum([
54434
+ "Inactive",
54435
+ "Ready",
54436
+ "DelayedStart",
54437
+ "Run",
54438
+ "Pause",
54439
+ "ActionRequired",
54440
+ "Finished",
54441
+ "Error",
54442
+ "Aborting"
54443
+ ]);
54444
+ /**
54445
+ * Why fields may be `null`:
54446
+ * - `available` — the link is up and the description is loaded;
54447
+ * - `offline` — the local link is down (values are unknown, not last-known);
54448
+ * - `description-missing` — the link is up but the appliance's description could not
54449
+ * be loaded, so its values cannot be decoded.
54450
+ */
54451
+ var DishwasherAvailabilitySchema = _enum([
54452
+ "available",
54453
+ "offline",
54454
+ "description-missing"
54455
+ ]);
54398
54456
  var DishwasherConsumableLevelSchema = _enum([
54399
54457
  "ok",
54400
54458
  "low",
54401
54459
  "empty"
54402
54460
  ]);
54403
54461
  object({
54462
+ availability: DishwasherAvailabilitySchema,
54463
+ /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
54404
54464
  state: DishwasherStateSchema,
54405
- /** Active program id/name, or null when none selected / unknown. */
54465
+ /** The appliance's operation state as reported; null when not known. */
54466
+ operationState: DishwasherOperationStateSchema.nullable(),
54467
+ /** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
54406
54468
  program: string().nullable(),
54407
- /** Program tokens the hardware accepts — drives the UI selector. */
54469
+ /** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
54470
+ selectedProgram: string().nullable(),
54471
+ /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
54408
54472
  availablePrograms: array(string()),
54409
- /** Minutes remaining on the active cycle, or null when not running. */
54410
- remainingMinutes: number().int().nonnegative().nullable(),
54473
+ /** Seconds remaining on the active cycle, or null when not running / not known. */
54474
+ remainingSeconds: number().int().nonnegative().nullable(),
54475
+ /** Seconds the delayed start is set to (time until the cycle starts), or null. */
54476
+ delayedStartSeconds: number().int().nonnegative().nullable(),
54411
54477
  /** Cycle completion 0..100, or null when not applicable. */
54412
54478
  progressPercent: number().min(0).max(100).nullable(),
54413
- /** True when the door is reported open. */
54414
- doorOpen: boolean(),
54415
- /** True when remote start is allowed (door closed, power on, etc.). */
54416
- remoteStartAllowed: boolean(),
54417
- /** Main power / switched-on state. */
54418
- powerOn: boolean(),
54479
+ /** True when the door is reported open; null when the door state is not known. */
54480
+ doorOpen: boolean().nullable(),
54481
+ /** True when the door is latched (locked) during a cycle; null when not reported. */
54482
+ doorLocked: boolean().nullable(),
54483
+ /** True when remote start is allowed (door closed, power on, etc.); null when not known. */
54484
+ remoteStartAllowed: boolean().nullable(),
54485
+ /** True when the appliance accepts remote control now; null when not known. */
54486
+ remoteControlActive: boolean().nullable(),
54487
+ /** True while somebody operates the appliance at its panel; null when not reported. */
54488
+ localControlActive: boolean().nullable(),
54489
+ /** Main power / switched-on state; null when not known. */
54490
+ powerOn: boolean().nullable(),
54491
+ /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
54492
+ powerState: string().nullable(),
54419
54493
  saltLevel: DishwasherConsumableLevelSchema.nullable(),
54420
54494
  rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54421
- halfLoad: boolean(),
54422
- hygienePlus: boolean(),
54495
+ /** Option states: null when the appliance does not expose the option or has not said. */
54496
+ halfLoad: boolean().nullable(),
54497
+ hygienePlus: boolean().nullable(),
54498
+ /** Extra dry option when the appliance exposes it. */
54499
+ extraDry: boolean().nullable(),
54500
+ /** Intensive zone (lower basket) when the appliance exposes it. */
54501
+ intensiveZone: boolean().nullable(),
54502
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
54503
+ varioSpeedPlus: boolean().nullable(),
54504
+ /** Child lock (controls disabled on the appliance); null when not known. */
54505
+ childLock: boolean().nullable(),
54506
+ /** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
54507
+ activeEvents: array(string()),
54508
+ /** Numeric error code when the appliance reports one; null otherwise. */
54423
54509
  errorCode: number().nullable(),
54510
+ /** Name of the raised alert-level event while the appliance is in error; null otherwise. */
54424
54511
  errorLabel: string().nullable(),
54512
+ /** Ms epoch of the last value received from the appliance; 0 = never. */
54425
54513
  lastFetchedAt: number()
54426
54514
  });
54427
- DeviceType.Dishwasher, method(object({ deviceId: number().int().nonnegative() }), _void(), {
54515
+ var DeviceIdSchema = number().int().nonnegative();
54516
+ /** A value a program option or setting can take. */
54517
+ var DishwasherValueSchema = union([
54518
+ boolean(),
54519
+ string(),
54520
+ number()
54521
+ ]);
54522
+ var DishwasherAccessSchema = _enum([
54523
+ "none",
54524
+ "read",
54525
+ "readWrite",
54526
+ "writeOnly",
54527
+ "readStatic"
54528
+ ]);
54529
+ /**
54530
+ * One option or setting the appliance declares, with the constraints its description
54531
+ * gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
54532
+ */
54533
+ var DishwasherOptionDescriptorSchema = object({
54534
+ /** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
54535
+ key: string(),
54536
+ /** Last segment of the key, for display. */
54537
+ name: string(),
54538
+ type: _enum([
54539
+ "boolean",
54540
+ "number",
54541
+ "enum",
54542
+ "string"
54543
+ ]),
54544
+ access: DishwasherAccessSchema,
54545
+ /** The appliance reports this entity as currently available. */
54546
+ available: boolean(),
54547
+ /** Unit the description declares for a number; null when it declares none. */
54548
+ unit: string().nullable(),
54549
+ min: number().nullable(),
54550
+ max: number().nullable(),
54551
+ step: number().nullable(),
54552
+ /** Allowed members of an enum; null for other types. */
54553
+ enumValues: array(string()).nullable(),
54554
+ defaultValue: DishwasherValueSchema.nullable()
54555
+ });
54556
+ var DishwasherProgramSchema = object({
54557
+ /** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
54558
+ key: string(),
54559
+ name: string(),
54560
+ /** The appliance currently offers this program. */
54561
+ available: boolean(),
54562
+ /** The options this program lists, with the program-level access / availability / default. */
54563
+ options: array(DishwasherOptionDescriptorSchema)
54564
+ });
54565
+ var DishwasherOptionsSchema = object({
54566
+ availability: DishwasherAvailabilitySchema,
54567
+ /** What the appliance can be told to do, from the commands its description declares. */
54568
+ supportsStart: boolean(),
54569
+ supportsPause: boolean(),
54570
+ supportsResume: boolean(),
54571
+ supportsStop: boolean(),
54572
+ supportsPower: boolean(),
54573
+ /** Every program the description lists, with its options. */
54574
+ programs: array(DishwasherProgramSchema),
54575
+ /** Every option and setting entity the description lists (programs reference these by key). */
54576
+ options: array(DishwasherOptionDescriptorSchema)
54577
+ });
54578
+ DeviceType.Dishwasher, method(object({
54579
+ deviceId: DeviceIdSchema,
54580
+ program: string().min(1).optional(),
54581
+ options: record(string(), DishwasherValueSchema).optional()
54582
+ }), _void(), {
54428
54583
  kind: "mutation",
54429
54584
  auth: "protected"
54430
- }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54585
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54431
54586
  kind: "mutation",
54432
54587
  auth: "protected"
54433
- }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54588
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54589
+ kind: "mutation",
54590
+ auth: "protected"
54591
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54434
54592
  kind: "mutation",
54435
54593
  auth: "protected"
54436
54594
  }), method(object({
54437
- deviceId: number().int().nonnegative(),
54595
+ deviceId: DeviceIdSchema,
54438
54596
  program: string().min(1)
54439
54597
  }), _void(), {
54440
54598
  kind: "mutation",
54441
54599
  auth: "protected"
54442
54600
  }), method(object({
54443
- deviceId: number().int().nonnegative(),
54601
+ deviceId: DeviceIdSchema,
54444
54602
  on: boolean()
54445
54603
  }), _void(), {
54446
54604
  kind: "mutation",
54447
54605
  auth: "protected"
54448
54606
  }), method(object({
54449
- deviceId: number().int().nonnegative(),
54607
+ deviceId: DeviceIdSchema,
54450
54608
  on: boolean()
54451
54609
  }), _void(), {
54452
54610
  kind: "mutation",
54453
54611
  auth: "protected"
54454
54612
  }), method(object({
54455
- deviceId: number().int().nonnegative(),
54613
+ deviceId: DeviceIdSchema,
54456
54614
  on: boolean()
54457
54615
  }), _void(), {
54458
54616
  kind: "mutation",
54459
54617
  auth: "protected"
54460
54618
  }), method(object({
54461
- deviceId: number().int().nonnegative(),
54619
+ deviceId: DeviceIdSchema,
54620
+ on: boolean()
54621
+ }), _void(), {
54622
+ kind: "mutation",
54623
+ auth: "protected"
54624
+ }), method(object({
54625
+ deviceId: DeviceIdSchema,
54626
+ on: boolean()
54627
+ }), _void(), {
54628
+ kind: "mutation",
54629
+ auth: "protected"
54630
+ }), method(object({
54631
+ deviceId: DeviceIdSchema,
54632
+ on: boolean()
54633
+ }), _void(), {
54634
+ kind: "mutation",
54635
+ auth: "protected"
54636
+ }), method(object({
54637
+ deviceId: DeviceIdSchema,
54638
+ on: boolean()
54639
+ }), _void(), {
54640
+ kind: "mutation",
54641
+ auth: "protected"
54642
+ }), method(object({
54643
+ deviceId: DeviceIdSchema,
54462
54644
  key: string().min(1),
54463
- value: union([
54464
- boolean(),
54465
- string(),
54466
- number()
54467
- ])
54645
+ value: DishwasherValueSchema
54468
54646
  }), _void(), {
54469
54647
  kind: "mutation",
54470
54648
  auth: "protected"
54471
- });
54649
+ }), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
54472
54650
  object({
54473
54651
  /** Ms epoch of the last press. null = never observed since this provider started. */
54474
54652
  lastPressedAt: number().nullable(),
@@ -64628,6 +64806,12 @@ Object.freeze({
64628
64806
  addonId: null,
64629
64807
  access: "view"
64630
64808
  },
64809
+ "dishwasher.getOptions": {
64810
+ capName: "dishwasher",
64811
+ capScope: "device",
64812
+ addonId: null,
64813
+ access: "view"
64814
+ },
64631
64815
  "dishwasher.getStatus": {
64632
64816
  capName: "dishwasher",
64633
64817
  capScope: "device",
@@ -64640,6 +64824,24 @@ Object.freeze({
64640
64824
  addonId: null,
64641
64825
  access: "create"
64642
64826
  },
64827
+ "dishwasher.resume": {
64828
+ capName: "dishwasher",
64829
+ capScope: "device",
64830
+ addonId: null,
64831
+ access: "create"
64832
+ },
64833
+ "dishwasher.setChildLock": {
64834
+ capName: "dishwasher",
64835
+ capScope: "device",
64836
+ addonId: null,
64837
+ access: "create"
64838
+ },
64839
+ "dishwasher.setExtraDry": {
64840
+ capName: "dishwasher",
64841
+ capScope: "device",
64842
+ addonId: null,
64843
+ access: "create"
64844
+ },
64643
64845
  "dishwasher.setHalfLoad": {
64644
64846
  capName: "dishwasher",
64645
64847
  capScope: "device",
@@ -64652,6 +64854,12 @@ Object.freeze({
64652
64854
  addonId: null,
64653
64855
  access: "create"
64654
64856
  },
64857
+ "dishwasher.setIntensiveZone": {
64858
+ capName: "dishwasher",
64859
+ capScope: "device",
64860
+ addonId: null,
64861
+ access: "create"
64862
+ },
64655
64863
  "dishwasher.setOption": {
64656
64864
  capName: "dishwasher",
64657
64865
  capScope: "device",
@@ -64670,6 +64878,12 @@ Object.freeze({
64670
64878
  addonId: null,
64671
64879
  access: "create"
64672
64880
  },
64881
+ "dishwasher.setVarioSpeedPlus": {
64882
+ capName: "dishwasher",
64883
+ capScope: "device",
64884
+ addonId: null,
64885
+ access: "create"
64886
+ },
64673
64887
  "dishwasher.start": {
64674
64888
  capName: "dishwasher",
64675
64889
  capScope: "device",
@@ -69116,6 +69330,12 @@ Object.freeze({
69116
69330
  addonId: null,
69117
69331
  access: "view"
69118
69332
  },
69333
+ "storageMigration.moverClearance": {
69334
+ capName: "storage-migration",
69335
+ capScope: "system",
69336
+ addonId: null,
69337
+ access: "view"
69338
+ },
69119
69339
  "storageMigration.movers": {
69120
69340
  capName: "storage-migration",
69121
69341
  capScope: "system",
@@ -71309,6 +71529,11 @@ Object.freeze({
71309
71529
  form: "single",
71310
71530
  optional: false
71311
71531
  }],
71532
+ "dishwasher.getOptions": [{
71533
+ name: "deviceId",
71534
+ form: "single",
71535
+ optional: false
71536
+ }],
71312
71537
  "dishwasher.getStatus": [{
71313
71538
  name: "deviceId",
71314
71539
  form: "single",
@@ -71319,6 +71544,21 @@ Object.freeze({
71319
71544
  form: "single",
71320
71545
  optional: false
71321
71546
  }],
71547
+ "dishwasher.resume": [{
71548
+ name: "deviceId",
71549
+ form: "single",
71550
+ optional: false
71551
+ }],
71552
+ "dishwasher.setChildLock": [{
71553
+ name: "deviceId",
71554
+ form: "single",
71555
+ optional: false
71556
+ }],
71557
+ "dishwasher.setExtraDry": [{
71558
+ name: "deviceId",
71559
+ form: "single",
71560
+ optional: false
71561
+ }],
71322
71562
  "dishwasher.setHalfLoad": [{
71323
71563
  name: "deviceId",
71324
71564
  form: "single",
@@ -71329,6 +71569,11 @@ Object.freeze({
71329
71569
  form: "single",
71330
71570
  optional: false
71331
71571
  }],
71572
+ "dishwasher.setIntensiveZone": [{
71573
+ name: "deviceId",
71574
+ form: "single",
71575
+ optional: false
71576
+ }],
71332
71577
  "dishwasher.setOption": [{
71333
71578
  name: "deviceId",
71334
71579
  form: "single",
@@ -71344,6 +71589,11 @@ Object.freeze({
71344
71589
  form: "single",
71345
71590
  optional: false
71346
71591
  }],
71592
+ "dishwasher.setVarioSpeedPlus": [{
71593
+ name: "deviceId",
71594
+ form: "single",
71595
+ optional: false
71596
+ }],
71347
71597
  "dishwasher.start": [{
71348
71598
  name: "deviceId",
71349
71599
  form: "single",
@@ -73385,6 +73635,9 @@ new Map(Object.entries({
73385
73635
  "wrapper-update-available": "system",
73386
73636
  "backup-completed": "system",
73387
73637
  "export-completed": "system",
73638
+ "alert-critical": "system",
73639
+ "alert-error": "system",
73640
+ "alert-critical-resolved": "system",
73388
73641
  "storage-location-low": "system",
73389
73642
  "storage-location-critical": "system",
73390
73643
  "storage-location-ok": "system",
@@ -73509,6 +73762,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73509
73762
  "storage-location-ok"
73510
73763
  ]
73511
73764
  },
73765
+ {
73766
+ id: "alerts",
73767
+ family: "system",
73768
+ label: "Alerts",
73769
+ kinds: [
73770
+ "alert-critical",
73771
+ "alert-error",
73772
+ "alert-critical-resolved"
73773
+ ]
73774
+ },
73512
73775
  {
73513
73776
  id: "alarm",
73514
73777
  family: "alarm",
@@ -73553,6 +73816,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
73553
73816
  return [[descriptor.kind, field]];
73554
73817
  })));
73555
73818
  Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
73819
+ object({
73820
+ phase: _enum(["raised", "resolved"]),
73821
+ episodeId: string().min(1),
73822
+ alertId: string().min(1),
73823
+ severity: AlertSeveritySchema,
73824
+ category: string(),
73825
+ title: string(),
73826
+ message: string(),
73827
+ sourceType: string().optional(),
73828
+ sourceId: string().optional(),
73829
+ nodeId: string().optional(),
73830
+ /** The alert's own action link (where the operator acts on it), when it has one. */
73831
+ actionUrl: string().optional(),
73832
+ at: number()
73833
+ });
73556
73834
  var RULE_BODY_ONLY = ["body"];
73557
73835
  var RULE_TEXT = ["title", "body"];
73558
73836
  var BATTERY = ["device-battery-low", "device-battery-normal"];
@@ -73562,6 +73840,11 @@ var TANK = [
73562
73840
  "device-tank-full",
73563
73841
  "device-tank-normal"
73564
73842
  ];
73843
+ var ALERT_EPISODE = [
73844
+ "alert-critical",
73845
+ "alert-error",
73846
+ "alert-critical-resolved"
73847
+ ];
73565
73848
  var UPDATES = [
73566
73849
  "addon-update-available",
73567
73850
  "server-update-available",
@@ -73754,14 +74037,14 @@ var STATE_SUMMARY_VARS = [
73754
74037
  ([...RULE_TEXT], [...CONSUMABLE]),
73755
74038
  ([...RULE_TEXT], [...TANK]),
73756
74039
  [...RULE_TEXT],
73757
- ([...RULE_TEXT], [...UPDATES]),
73758
- ([...RULE_TEXT], [...UPDATES]),
73759
- [...RULE_TEXT],
74040
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
74041
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73760
74042
  [...RULE_TEXT],
73761
74043
  [...RULE_TEXT],
73762
74044
  [...RULE_TEXT],
73763
74045
  [...RULE_TEXT],
73764
74046
  [...RULE_TEXT],
74047
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73765
74048
  [...RULE_TEXT],
73766
74049
  [...RULE_TEXT],
73767
74050
  [...RULE_TEXT],
@@ -73779,7 +74062,11 @@ var STATE_SUMMARY_VARS = [
73779
74062
  [...RULE_TEXT],
73780
74063
  [...RULE_TEXT],
73781
74064
  [...RULE_TEXT],
73782
- [...RULE_TEXT],
74065
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74066
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74067
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74068
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74069
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73783
74070
  [...RULE_TEXT],
73784
74071
  [...RULE_TEXT],
73785
74072
  [...RULE_TEXT],
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.382",
39
+ version: "1.2.385",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.133",
48
+ version: "1.2.135",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.300",
84
+ version: "1.2.302",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- require("./dist-CQWU7Lpk.js");
2
+ require("./dist-DfNFNGnO.js");
3
3
  const require_orchestrator_training_addon = require("./orchestrator/training.addon.js");
4
4
  const require_providers_modal_training_modal_addon = require("./providers/modal/training-modal.addon.js");
5
5
  //#region src/providers/fake/fake-provider.ts
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("../dist-CQWU7Lpk.js");
2
+ const require_dist = require("../dist-DfNFNGnO.js");
3
3
  let node_path = require("node:path");
4
4
  node_path = require_dist.__toESM(node_path);
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, m as defineRecordKinds, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA, u as RECORD_MAX_DATA_BYTES } from "../dist-RNhXRDvn.mjs";
1
+ import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, m as defineRecordKinds, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA, u as RECORD_MAX_DATA_BYTES } from "../dist-DM9y4CJe.mjs";
2
2
  import path from "node:path";
3
3
  import { createHash } from "node:crypto";
4
4
  import { createReadStream } from "node:fs";
@@ -1,7 +1,7 @@
1
1
  import { d as e, u as t, w as n, y as r } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs";
2
2
  import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
3
3
  import { n as s, t as c } from "./chevron-right-cA8Hucbi.mjs";
4
- import { h as l } from "./responsive-DzwIz4dK.mjs";
4
+ import { h as l } from "./responsive-BAAHnmTT.mjs";
5
5
  //#region ../ui-library/src/composites/widget-panel.tsx
6
6
  n();
7
7
  function u({ title: e, icon: t, headerRight: n, collapsible: l = !1, defaultOpen: u = !0, bodyClassName: d = "p-3", children: f }) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("../../dist-CQWU7Lpk.js");
2
+ const require_dist = require("../../dist-DfNFNGnO.js");
3
3
  let node_path = require("node:path");
4
4
  node_path = require_dist.__toESM(node_path, 1);
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { C as object, S as number, T as string, _ as isSecretClear, b as toSecretFieldView, c as trainingProviderCapability, d as SECRET_CLEAR, f as arrayItemFieldPath, g as globalSecretScope, h as entryBody, l as BaseAddon, p as defineEntryKind, v as isSecretMarker, w as record, x as boolean, y as settingsArrayAdoptsFrom } from "../../dist-RNhXRDvn.mjs";
1
+ import { C as object, S as number, T as string, _ as isSecretClear, b as toSecretFieldView, c as trainingProviderCapability, d as SECRET_CLEAR, f as arrayItemFieldPath, g as globalSecretScope, h as entryBody, l as BaseAddon, p as defineEntryKind, v as isSecretMarker, w as record, x as boolean, y as settingsArrayAdoptsFrom } from "../../dist-DM9y4CJe.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import path, { dirname, posix } from "node:path";
4
4
  import { createHash, createPrivateKey, createPublicKey, createSign, randomBytes, randomUUID } from "node:crypto";
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CxB3fjqQ.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-D81A7IJp.mjs";
2
2
  export { t as get, e as init };
@@ -1,6 +1,6 @@
1
1
  import { b as e, d as t, g as n, l as r, n as i, u as a, w as o, y as s } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs";
2
2
  import "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
3
- import { y as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-o-C5PmDm.mjs";
3
+ import { y as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DlLXF7aF.mjs";
4
4
  //#region ../ui-library/src/lib/shared-context.ts
5
5
  o();
6
6
  function l(e, t) {
@@ -2762,7 +2762,7 @@ async function or(e) {
2762
2762
  }
2763
2763
  }
2764
2764
  async function sr() {
2765
- return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-Bas5pktv.mjs")).catch((e) => {
2765
+ return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BbkzYirO.mjs")).catch((e) => {
2766
2766
  throw ir = void 0, e;
2767
2767
  }), ir;
2768
2768
  }