@camstack/addon-training 0.1.101 → 0.1.102

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 +6 -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 +6070 -6058
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-1Dc2a8Cs.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-p2vBd39W.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-DjTcrGXt.js → dist-CNkCexYe.js} +126 -5
  9. package/dist/{dist-Bfob1jSz.mjs → dist-u3tq3l-n.mjs} +126 -5
  10. package/dist/{hostInit-2grmKwjr.mjs → hostInit-CvBrePIu.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-B2ShwDvL.mjs} +1 -1
  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
@@ -5580,7 +5580,7 @@ var ZodIssueCode = {
5580
5580
  var ZodFirstPartyTypeKind;
5581
5581
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5582
5582
  //#endregion
5583
- //#region ../types/dist/sleep-Crlmu_tO.mjs
5583
+ //#region ../types/dist/sleep-BAvUCi_2.mjs
5584
5584
  /**
5585
5585
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5586
5586
  * window to float samples (D455).
@@ -8962,6 +8962,7 @@ var CAP_NAMES = Object.freeze([
8962
8962
  "image-settings",
8963
8963
  "integrations",
8964
8964
  "intercom",
8965
+ "ir-transmitter",
8965
8966
  "keychain",
8966
8967
  "keychain-admin",
8967
8968
  "lawn-mower-control",
@@ -10209,6 +10210,11 @@ Object.freeze({
10209
10210
  "path": "batteryPower",
10210
10211
  "valueType": "number"
10211
10212
  },
10213
+ {
10214
+ "path": "powerSource",
10215
+ "valueType": "enum",
10216
+ "enumValues": ["mains", "battery"]
10217
+ },
10212
10218
  {
10213
10219
  "path": "desiccantLeftDays",
10214
10220
  "valueType": "number"
@@ -10792,7 +10798,7 @@ object({
10792
10798
  params: record(string(), union([string(), number()])).optional()
10793
10799
  });
10794
10800
  //#endregion
10795
- //#region ../types/dist/err-msg-DIorGYeC.mjs
10801
+ //#region ../types/dist/err-msg-BCdlR2Li.mjs
10796
10802
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
10797
10803
  DeviceType["Camera"] = "camera";
10798
10804
  DeviceType["Hub"] = "hub";
@@ -11138,10 +11144,13 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
11138
11144
  /** Fallback when the notifier service name doesn't match a known
11139
11145
  * pattern. */
11140
11146
  DeviceRole["GenericNotifier"] = "generic-notifier";
11147
+ /** Emits a pulse train (infrared or RF) on request — the `ir-transmitter`
11148
+ * cap. A `DeviceType.Generic` device. */
11149
+ DeviceRole["IrTransmitter"] = "ir-transmitter";
11141
11150
  return DeviceRole;
11142
11151
  }({});
11143
11152
  //#endregion
11144
- //#region ../types/dist/composition-DwA0uVW5.mjs
11153
+ //#region ../types/dist/composition-DpFv_J6D.mjs
11145
11154
  /**
11146
11155
  * The ffmpeg build every CamStack node downloads, per platform and arch.
11147
11156
  *
@@ -43374,6 +43383,17 @@ var LlmProfileSchema = object({
43374
43383
  * field in its editor only when its descriptor lists it in `profileFields`. */
43375
43384
  topK: number().int().positive().optional(),
43376
43385
  maxTokens: number().int().positive().optional(),
43386
+ /** How hard the model "thinks" before it answers. Omitted = the model's own
43387
+ * default. `off` matters for structured output: a thinking model can spend
43388
+ * the whole completion on reasoning and return an empty `content`. Carried
43389
+ * only by the wires that have it — a kind offers the field in its editor
43390
+ * only when its descriptor lists it in `profileFields`. */
43391
+ reasoningEffort: _enum([
43392
+ "off",
43393
+ "low",
43394
+ "medium",
43395
+ "high"
43396
+ ]).optional(),
43377
43397
  /** Prompt context window. Advisory for cloud kinds (they enforce their own). */
43378
43398
  contextLength: number().int().positive().optional(),
43379
43399
  /** Default system prompt. A caller's `system` REPLACES it (never appends —
@@ -43412,6 +43432,7 @@ var LlmProfileFieldSchema = _enum([
43412
43432
  "topP",
43413
43433
  "topK",
43414
43434
  "maxTokens",
43435
+ "reasoningEffort",
43415
43436
  "contextLength",
43416
43437
  "systemPrompt",
43417
43438
  "timeoutMs",
@@ -57732,6 +57753,56 @@ DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _v
57732
57753
  auth: "protected"
57733
57754
  });
57734
57755
  /**
57756
+ * A pulse train in signed microseconds: mark (+) first, then space (-), strictly
57757
+ * alternating, no zeros, 2..1024 entries.
57758
+ */
57759
+ var IrTimingsSchema = array(number().int()).min(2).max(1024).superRefine((timings, ctx) => {
57760
+ timings.forEach((value, index) => {
57761
+ const expectMark = index % 2 === 0;
57762
+ if (value === 0 || value > 0 !== expectMark) ctx.addIssue({
57763
+ code: "custom",
57764
+ message: `timing ${index} must be a non-zero ${expectMark ? "mark (positive)" : "space (negative)"}`,
57765
+ path: [index]
57766
+ });
57767
+ });
57768
+ });
57769
+ /** Per-command transmit options. Every key is optional; a transmitter applies what it can. */
57770
+ var TransmitSettingsSchema = object({
57771
+ carrierHz: number().int().positive().optional(),
57772
+ dutyCyclePercent: number().int().min(1).max(100).optional(),
57773
+ repeat: number().int().min(0).max(20).optional(),
57774
+ repeatDelayMs: number().int().min(0).optional()
57775
+ });
57776
+ /** The setting keys a transmitter may declare as settable (`getInfo.settable`). */
57777
+ var TransmitSettingKeySchema = _enum([
57778
+ "carrierHz",
57779
+ "dutyCyclePercent",
57780
+ "repeat",
57781
+ "repeatDelayMs"
57782
+ ]);
57783
+ var IrMediumSchema = _enum(["ir", "rf"]);
57784
+ var IrSendResultSchema = object({
57785
+ ok: literal(true),
57786
+ /** Settings the transmitter could not apply; the train was still sent. */
57787
+ ignoredSettings: array(string())
57788
+ });
57789
+ var IrTransmitterInfoSchema = object({
57790
+ media: array(IrMediumSchema),
57791
+ settable: array(TransmitSettingKeySchema),
57792
+ maxTimings: number().int().positive()
57793
+ });
57794
+ DeviceType.Generic, method(object({
57795
+ deviceId: number().int().nonnegative(),
57796
+ timings: IrTimingsSchema,
57797
+ settings: TransmitSettingsSchema.optional()
57798
+ }), IrSendResultSchema, {
57799
+ kind: "mutation",
57800
+ auth: "protected"
57801
+ }), method(object({ deviceId: number().int().nonnegative() }), IrTransmitterInfoSchema, {
57802
+ kind: "query",
57803
+ auth: "protected"
57804
+ });
57805
+ /**
57735
57806
  * `calendar-source` — collection cap exposing per-provider calendars and
57736
57807
  * their events. Every addon that contributes calendars (Home Assistant,
57737
57808
  * a future Google Calendar addon, …) registers a provider here. The hub
@@ -61834,9 +61905,14 @@ object({
61834
61905
  * (`device_class: problem`, on = low). True when the tank reports empty,
61835
61906
  * or, on a dual-hopper model, when EITHER hopper is empty. */
61836
61907
  lowFood: boolean(),
61837
- /** Battery charge 0..100 (%). Null on mains-powered models or when the
61838
- * device has no battery reading. */
61908
+ /** Battery charge 0..100 (%). On a feeder running on `mains` this is the
61909
+ * BACKUP battery's charge, not the power source. Null when the device has
61910
+ * no battery reading. */
61839
61911
  batteryPower: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
61912
+ /** What the feeder is powered from right now: `mains` (plugged in, the
61913
+ * battery is only a backup) or `battery`. Null when the device does not
61914
+ * report it. */
61915
+ powerSource: _enum(["mains", "battery"]).nullable(),
61840
61916
  /**
61841
61917
  * Desiccant life remaining, stored in seconds (duration base, D944).
61842
61918
  * Providers convert from the days the feeder reports. Null when the
@@ -70214,6 +70290,20 @@ Object.freeze({
70214
70290
  access: "create",
70215
70291
  role: "viewer"
70216
70292
  },
70293
+ "irTransmitter.getInfo": {
70294
+ capName: "ir-transmitter",
70295
+ capScope: "device",
70296
+ addonId: null,
70297
+ access: "view",
70298
+ role: "viewer"
70299
+ },
70300
+ "irTransmitter.send": {
70301
+ capName: "ir-transmitter",
70302
+ capScope: "device",
70303
+ addonId: null,
70304
+ access: "create",
70305
+ role: "viewer"
70306
+ },
70217
70307
  "keychain.delete": {
70218
70308
  capName: "keychain",
70219
70309
  capScope: "system",
@@ -77837,6 +77927,11 @@ var ACTUATOR_CAP_VOCABULARY = {
77837
77927
  icon: "circle-dot"
77838
77928
  }]
77839
77929
  },
77930
+ "ir-transmitter": {
77931
+ scope: "device",
77932
+ noun: t("IR / RF transmitter", "Trasmettitore IR / RF"),
77933
+ notOperatorFacing: { send: "a raw pulse train is not something an operator composes in an automation; the remote that owns the command table sends it" }
77934
+ },
77840
77935
  control: {
77841
77936
  scope: "device",
77842
77937
  noun: t("Control", "Controllo"),
@@ -81556,6 +81651,16 @@ Object.freeze({
81556
81651
  form: "single",
81557
81652
  optional: false
81558
81653
  }],
81654
+ "irTransmitter.getInfo": [{
81655
+ name: "deviceId",
81656
+ form: "single",
81657
+ optional: false
81658
+ }],
81659
+ "irTransmitter.send": [{
81660
+ name: "deviceId",
81661
+ form: "single",
81662
+ optional: false
81663
+ }],
81559
81664
  "keychain.deleteDeviceScope": [{
81560
81665
  name: "deviceId",
81561
81666
  form: "single",
@@ -84589,5 +84694,21 @@ DEFAULT_NATIVE_LEASE_SETTINGS.admission;
84589
84694
  String.raw`(?<=^|["'(\s>,\[{])`;
84590
84695
  var MB = 1024 * 1024;
84591
84696
  1024 * MB, 3072 * MB;
84697
+ discriminatedUnion("kind", [object({
84698
+ kind: literal("raw"),
84699
+ timings: array(number().int()),
84700
+ settings: TransmitSettingsSchema.optional()
84701
+ }), object({
84702
+ kind: literal("pronto"),
84703
+ code: string()
84704
+ })]);
84705
+ object({
84706
+ manufacturer: string().optional(),
84707
+ supportedModels: array(string()).optional(),
84708
+ supportedController: string().optional(),
84709
+ commandsEncoding: string(),
84710
+ delay: number().nonnegative().optional(),
84711
+ commands: record(string(), unknown())
84712
+ });
84592
84713
  //#endregion
84593
84714
  export { record as C, object as S, isSecretClear as _, addonPagesSourceCapability as a, boolean as b, trainingProviderCapability as c, SECRET_CLEAR as d, arrayItemFieldPath as f, globalSecretScope as g, entryBody as h, TrainingResultSchema as i, BaseAddon as l, defineRecordKinds as m, TrainingJobSchema as n, parseTrainingEventLine as o, defineEntryKind as p, TrainingJobSpecSchema as r, trainingCapability as s, TRAINING_JOB_SCHEMA as t, RECORD_MAX_DATA_BYTES as u, isSecretMarker as v, string as w, number as x, toSecretFieldView as y };
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.436",
39
+ version: "1.2.438",
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.346",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,