@camstack/addon-training 0.1.101 → 0.1.103

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 (24) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{MotionZonesSettings-BJesO_kB.mjs → MotionZonesSettings-HAJ6awj4.mjs} +2 -2
  3. package/dist/{PrivacyMaskSettings-BdPxtLGP.mjs → PrivacyMaskSettings-BF0NUmVm.mjs} +2 -2
  4. package/dist/{SceneMonitorEditor-DZPmgWAn.mjs → SceneMonitorEditor-CeEWTp0p.mjs} +2 -2
  5. package/dist/_stub.js +9509 -9496
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-1Dc2a8Cs.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-T_zCH7zZ.mjs} +3 -3
  7. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CLeWJI6-.mjs +26 -0
  8. package/dist/{dist-Bfob1jSz.mjs → dist-BfxOw6-O.mjs} +138 -5
  9. package/dist/{dist-DjTcrGXt.js → dist-Cq0HT75H.js} +138 -5
  10. package/dist/{hostInit-2grmKwjr.mjs → hostInit-DRiiL3Ka.mjs} +2 -2
  11. package/dist/{icons-BQdiqxUM.mjs → icons-CXruMajc.mjs} +1078 -1109
  12. package/dist/index.js +1 -1
  13. package/dist/orchestrator/training.addon.js +1 -1
  14. package/dist/orchestrator/training.addon.mjs +1 -1
  15. package/dist/{player-overlays-CTRTi-rS.mjs → player-overlays-NVql0bBe.mjs} +1 -1
  16. package/dist/providers/modal/training-modal.addon.js +1 -1
  17. package/dist/providers/modal/training-modal.addon.mjs +1 -1
  18. package/dist/remoteEntry.js +1 -1
  19. package/dist/{responsive-BcjqJDUO.mjs → responsive-Cw10UV1G.mjs} +1 -1
  20. package/dist/{scene-monitor-copy-BIGdNSLV.mjs → scene-monitor-copy-BiaQA_PZ.mjs} +1 -1
  21. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-DNBqRVkn.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Bg8j40fX.mjs} +390 -399
  22. package/dist/{zoom-out-YWRm0VbK.mjs → zoom-out-D4rm3GoJ.mjs} +95 -64
  23. package/package.json +1 -1
  24. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BEP4kcPJ.mjs +0 -26
@@ -5613,7 +5613,7 @@ var ZodIssueCode = {
5613
5613
  var ZodFirstPartyTypeKind;
5614
5614
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5615
5615
  //#endregion
5616
- //#region ../types/dist/sleep-Crlmu_tO.mjs
5616
+ //#region ../types/dist/sleep-BAvUCi_2.mjs
5617
5617
  /**
5618
5618
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5619
5619
  * window to float samples (D455).
@@ -8995,6 +8995,7 @@ var CAP_NAMES = Object.freeze([
8995
8995
  "image-settings",
8996
8996
  "integrations",
8997
8997
  "intercom",
8998
+ "ir-transmitter",
8998
8999
  "keychain",
8999
9000
  "keychain-admin",
9000
9001
  "lawn-mower-control",
@@ -10242,6 +10243,11 @@ Object.freeze({
10242
10243
  "path": "batteryPower",
10243
10244
  "valueType": "number"
10244
10245
  },
10246
+ {
10247
+ "path": "powerSource",
10248
+ "valueType": "enum",
10249
+ "enumValues": ["mains", "battery"]
10250
+ },
10245
10251
  {
10246
10252
  "path": "desiccantLeftDays",
10247
10253
  "valueType": "number"
@@ -10825,7 +10831,7 @@ object({
10825
10831
  params: record(string(), union([string(), number()])).optional()
10826
10832
  });
10827
10833
  //#endregion
10828
- //#region ../types/dist/err-msg-DIorGYeC.mjs
10834
+ //#region ../types/dist/err-msg-BCdlR2Li.mjs
10829
10835
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
10830
10836
  DeviceType["Camera"] = "camera";
10831
10837
  DeviceType["Hub"] = "hub";
@@ -11171,10 +11177,13 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
11171
11177
  /** Fallback when the notifier service name doesn't match a known
11172
11178
  * pattern. */
11173
11179
  DeviceRole["GenericNotifier"] = "generic-notifier";
11180
+ /** Emits a pulse train (infrared or RF) on request — the `ir-transmitter`
11181
+ * cap. A `DeviceType.Generic` device. */
11182
+ DeviceRole["IrTransmitter"] = "ir-transmitter";
11174
11183
  return DeviceRole;
11175
11184
  }({});
11176
11185
  //#endregion
11177
- //#region ../types/dist/composition-DwA0uVW5.mjs
11186
+ //#region ../types/dist/composition-DpFv_J6D.mjs
11178
11187
  /**
11179
11188
  * The ffmpeg build every CamStack node downloads, per platform and arch.
11180
11189
  *
@@ -16619,9 +16628,21 @@ var AlertSeveritySchema = _enum([
16619
16628
  "error",
16620
16629
  "critical"
16621
16630
  ]);
16631
+ /**
16632
+ * An action that RUNS something instead of going somewhere: the admin UI calls
16633
+ * the addon's custom action (`addons.custom`) with exactly these fields. The
16634
+ * producer owns the meaning; the UI knows nothing about the addon or the kind.
16635
+ */
16636
+ var AlertActionInvokeSchema = object({
16637
+ addonId: string().min(1),
16638
+ action: string().min(1),
16639
+ input: record(string(), unknown()).optional()
16640
+ });
16641
+ /** An action has `href` (a link) OR `invoke` (a button that runs a custom action). */
16622
16642
  var AlertActionSchema = object({
16623
16643
  label: string(),
16624
16644
  href: string().optional(),
16645
+ invoke: AlertActionInvokeSchema.optional(),
16625
16646
  /**
16626
16647
  * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
16627
16648
  * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
@@ -43407,6 +43428,17 @@ var LlmProfileSchema = object({
43407
43428
  * field in its editor only when its descriptor lists it in `profileFields`. */
43408
43429
  topK: number().int().positive().optional(),
43409
43430
  maxTokens: number().int().positive().optional(),
43431
+ /** How hard the model "thinks" before it answers. Omitted = the model's own
43432
+ * default. `off` matters for structured output: a thinking model can spend
43433
+ * the whole completion on reasoning and return an empty `content`. Carried
43434
+ * only by the wires that have it — a kind offers the field in its editor
43435
+ * only when its descriptor lists it in `profileFields`. */
43436
+ reasoningEffort: _enum([
43437
+ "off",
43438
+ "low",
43439
+ "medium",
43440
+ "high"
43441
+ ]).optional(),
43410
43442
  /** Prompt context window. Advisory for cloud kinds (they enforce their own). */
43411
43443
  contextLength: number().int().positive().optional(),
43412
43444
  /** Default system prompt. A caller's `system` REPLACES it (never appends —
@@ -43445,6 +43477,7 @@ var LlmProfileFieldSchema = _enum([
43445
43477
  "topP",
43446
43478
  "topK",
43447
43479
  "maxTokens",
43480
+ "reasoningEffort",
43448
43481
  "contextLength",
43449
43482
  "systemPrompt",
43450
43483
  "timeoutMs",
@@ -57765,6 +57798,56 @@ DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _v
57765
57798
  auth: "protected"
57766
57799
  });
57767
57800
  /**
57801
+ * A pulse train in signed microseconds: mark (+) first, then space (-), strictly
57802
+ * alternating, no zeros, 2..1024 entries.
57803
+ */
57804
+ var IrTimingsSchema = array(number().int()).min(2).max(1024).superRefine((timings, ctx) => {
57805
+ timings.forEach((value, index) => {
57806
+ const expectMark = index % 2 === 0;
57807
+ if (value === 0 || value > 0 !== expectMark) ctx.addIssue({
57808
+ code: "custom",
57809
+ message: `timing ${index} must be a non-zero ${expectMark ? "mark (positive)" : "space (negative)"}`,
57810
+ path: [index]
57811
+ });
57812
+ });
57813
+ });
57814
+ /** Per-command transmit options. Every key is optional; a transmitter applies what it can. */
57815
+ var TransmitSettingsSchema = object({
57816
+ carrierHz: number().int().positive().optional(),
57817
+ dutyCyclePercent: number().int().min(1).max(100).optional(),
57818
+ repeat: number().int().min(0).max(20).optional(),
57819
+ repeatDelayMs: number().int().min(0).optional()
57820
+ });
57821
+ /** The setting keys a transmitter may declare as settable (`getInfo.settable`). */
57822
+ var TransmitSettingKeySchema = _enum([
57823
+ "carrierHz",
57824
+ "dutyCyclePercent",
57825
+ "repeat",
57826
+ "repeatDelayMs"
57827
+ ]);
57828
+ var IrMediumSchema = _enum(["ir", "rf"]);
57829
+ var IrSendResultSchema = object({
57830
+ ok: literal(true),
57831
+ /** Settings the transmitter could not apply; the train was still sent. */
57832
+ ignoredSettings: array(string())
57833
+ });
57834
+ var IrTransmitterInfoSchema = object({
57835
+ media: array(IrMediumSchema),
57836
+ settable: array(TransmitSettingKeySchema),
57837
+ maxTimings: number().int().positive()
57838
+ });
57839
+ DeviceType.Generic, method(object({
57840
+ deviceId: number().int().nonnegative(),
57841
+ timings: IrTimingsSchema,
57842
+ settings: TransmitSettingsSchema.optional()
57843
+ }), IrSendResultSchema, {
57844
+ kind: "mutation",
57845
+ auth: "protected"
57846
+ }), method(object({ deviceId: number().int().nonnegative() }), IrTransmitterInfoSchema, {
57847
+ kind: "query",
57848
+ auth: "protected"
57849
+ });
57850
+ /**
57768
57851
  * `calendar-source` — collection cap exposing per-provider calendars and
57769
57852
  * their events. Every addon that contributes calendars (Home Assistant,
57770
57853
  * a future Google Calendar addon, …) registers a provider here. The hub
@@ -61867,9 +61950,14 @@ object({
61867
61950
  * (`device_class: problem`, on = low). True when the tank reports empty,
61868
61951
  * or, on a dual-hopper model, when EITHER hopper is empty. */
61869
61952
  lowFood: boolean(),
61870
- /** Battery charge 0..100 (%). Null on mains-powered models or when the
61871
- * device has no battery reading. */
61953
+ /** Battery charge 0..100 (%). On a feeder running on `mains` this is the
61954
+ * BACKUP battery's charge, not the power source. Null when the device has
61955
+ * no battery reading. */
61872
61956
  batteryPower: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
61957
+ /** What the feeder is powered from right now: `mains` (plugged in, the
61958
+ * battery is only a backup) or `battery`. Null when the device does not
61959
+ * report it. */
61960
+ powerSource: _enum(["mains", "battery"]).nullable(),
61873
61961
  /**
61874
61962
  * Desiccant life remaining, stored in seconds (duration base, D944).
61875
61963
  * Providers convert from the days the feeder reports. Null when the
@@ -70247,6 +70335,20 @@ Object.freeze({
70247
70335
  access: "create",
70248
70336
  role: "viewer"
70249
70337
  },
70338
+ "irTransmitter.getInfo": {
70339
+ capName: "ir-transmitter",
70340
+ capScope: "device",
70341
+ addonId: null,
70342
+ access: "view",
70343
+ role: "viewer"
70344
+ },
70345
+ "irTransmitter.send": {
70346
+ capName: "ir-transmitter",
70347
+ capScope: "device",
70348
+ addonId: null,
70349
+ access: "create",
70350
+ role: "viewer"
70351
+ },
70250
70352
  "keychain.delete": {
70251
70353
  capName: "keychain",
70252
70354
  capScope: "system",
@@ -77870,6 +77972,11 @@ var ACTUATOR_CAP_VOCABULARY = {
77870
77972
  icon: "circle-dot"
77871
77973
  }]
77872
77974
  },
77975
+ "ir-transmitter": {
77976
+ scope: "device",
77977
+ noun: t("IR / RF transmitter", "Trasmettitore IR / RF"),
77978
+ notOperatorFacing: { send: "a raw pulse train is not something an operator composes in an automation; the remote that owns the command table sends it" }
77979
+ },
77873
77980
  control: {
77874
77981
  scope: "device",
77875
77982
  noun: t("Control", "Controllo"),
@@ -81589,6 +81696,16 @@ Object.freeze({
81589
81696
  form: "single",
81590
81697
  optional: false
81591
81698
  }],
81699
+ "irTransmitter.getInfo": [{
81700
+ name: "deviceId",
81701
+ form: "single",
81702
+ optional: false
81703
+ }],
81704
+ "irTransmitter.send": [{
81705
+ name: "deviceId",
81706
+ form: "single",
81707
+ optional: false
81708
+ }],
81592
81709
  "keychain.deleteDeviceScope": [{
81593
81710
  name: "deviceId",
81594
81711
  form: "single",
@@ -84622,6 +84739,22 @@ DEFAULT_NATIVE_LEASE_SETTINGS.admission;
84622
84739
  String.raw`(?<=^|["'(\s>,\[{])`;
84623
84740
  var MB = 1024 * 1024;
84624
84741
  1024 * MB, 3072 * MB;
84742
+ discriminatedUnion("kind", [object({
84743
+ kind: literal("raw"),
84744
+ timings: array(number().int()),
84745
+ settings: TransmitSettingsSchema.optional()
84746
+ }), object({
84747
+ kind: literal("pronto"),
84748
+ code: string()
84749
+ })]);
84750
+ object({
84751
+ manufacturer: string().optional(),
84752
+ supportedModels: array(string()).optional(),
84753
+ supportedController: string().optional(),
84754
+ commandsEncoding: string(),
84755
+ delay: number().nonnegative().optional(),
84756
+ commands: record(string(), unknown())
84757
+ });
84625
84758
  //#endregion
84626
84759
  Object.defineProperty(exports, "BaseAddon", {
84627
84760
  enumerable: true,
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.436",
39
+ version: "1.2.440",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.345",
84
+ version: "1.2.347",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,