iobroker.assistant 1.0.2 → 1.1.0

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 (65) hide show
  1. package/README.md +6 -0
  2. package/admin/custom/.vite/manifest.json +91 -87
  3. package/admin/custom/assets/Components-C6qcpaRC.js +1 -0
  4. package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-DcAGnE2z.js → _virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-A4gakomR.js} +1 -1
  5. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js} +1 -1
  6. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-1XsLCK2M.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CwqmfMvn.js} +1 -1
  7. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js} +80 -97
  8. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare__shared-3mzaJWDF.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare__shared-BxjZmnpc.js} +2 -2
  9. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-TM4l0OYm.js +122 -0
  10. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-B_v57Qfr.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js} +1 -1
  11. package/admin/custom/assets/{dist-DiU1y0R9.js → dist-B3E7IYuQ.js} +1 -1
  12. package/admin/custom/assets/helpers-DE61bb74.js +1 -0
  13. package/admin/custom/assets/{hostInit-MshDicd1.js → hostInit-4roC4hEj.js} +1 -1
  14. package/admin/custom/assets/{lib-DjwHKtRi.js → lib-CchzgTUs.js} +1 -1
  15. package/admin/custom/assets/{mf-entry-bootstrap-0-7c1ddf47.js → mf-entry-bootstrap-0-4806bbe4.js} +2 -2
  16. package/admin/custom/assets/{pendingShares-CaJDCKLB.js → pendingShares-DLlv8yFY.js} +2 -2
  17. package/admin/custom/assets/prod-ChPGnyiA.js +15 -0
  18. package/admin/custom/assets/rolldown-runtime-COiEfhsA.js +1 -0
  19. package/admin/custom/assets/utils-Bi7ATSfV.js +4 -0
  20. package/admin/custom/customComponents.js +2 -2
  21. package/admin/custom/i18n/de.json +25 -0
  22. package/admin/custom/i18n/en.json +25 -0
  23. package/admin/custom/i18n/es.json +25 -0
  24. package/admin/custom/i18n/fr.json +25 -0
  25. package/admin/custom/i18n/it.json +25 -0
  26. package/admin/custom/i18n/nl.json +25 -0
  27. package/admin/custom/i18n/pl.json +25 -0
  28. package/admin/custom/i18n/pt.json +25 -0
  29. package/admin/custom/i18n/ru.json +25 -0
  30. package/admin/custom/i18n/uk.json +25 -0
  31. package/admin/custom/i18n/zh-cn.json +25 -0
  32. package/admin/custom/index.html +2 -2
  33. package/admin/custom/mf-manifest.json +1 -1
  34. package/admin/custom/mf-stats.json +1 -1
  35. package/admin/i18n/de.json +9 -1
  36. package/admin/i18n/en.json +9 -1
  37. package/admin/i18n/es.json +9 -1
  38. package/admin/i18n/fr.json +9 -1
  39. package/admin/i18n/it.json +9 -1
  40. package/admin/i18n/nl.json +9 -1
  41. package/admin/i18n/pl.json +9 -1
  42. package/admin/i18n/pt.json +9 -1
  43. package/admin/i18n/ru.json +9 -1
  44. package/admin/i18n/uk.json +9 -1
  45. package/admin/i18n/zh-cn.json +9 -1
  46. package/admin/jsonConfig.json +45 -0
  47. package/build/lib/journal.js +273 -0
  48. package/build/lib/journal.js.map +1 -0
  49. package/build/lib/voice/esphome.js +9 -1
  50. package/build/lib/voice/esphome.js.map +1 -1
  51. package/build/lib/voice/voiceServer.js +3 -1
  52. package/build/lib/voice/voiceServer.js.map +1 -1
  53. package/build/lib/voice/wyoming.js +3 -1
  54. package/build/lib/voice/wyoming.js.map +1 -1
  55. package/build/lib/youtube.js +625 -0
  56. package/build/lib/youtube.js.map +1 -0
  57. package/build/main.js +580 -12
  58. package/build/main.js.map +1 -1
  59. package/io-package.json +50 -1
  60. package/package.json +7 -7
  61. package/admin/custom/assets/Components-7BDDNrGP.js +0 -1
  62. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-DS8oaQQt.js +0 -122
  63. package/admin/custom/assets/helpers-Dot7vgQQ.js +0 -1
  64. package/admin/custom/assets/rolldown-runtime-Dd_uD5pT.js +0 -1
  65. package/admin/custom/assets/utils-towTPKqG.js +0 -4
package/README.md CHANGED
@@ -182,6 +182,12 @@ each one shows up under `assistant.0.satellites.*` like any other.
182
182
  Placeholder for the next version (at the beginning of the line):
183
183
  ### **WORK IN PROGRESS**
184
184
  -->
185
+ ### 1.1.0 (2026-10-25)
186
+ * (@GermanBluefox) YouTube on the TV: "play the channel Sailing OceanAir" finds the channel, video or playlist on YouTube (no API key needed), switches the TV on if it is off and plays it over the youtube-remote adapter. The players are set in a table in the settings; the first one is used when no player is named. Pause, skip, volume and "what is playing" work too
187
+
188
+ ### 1.0.3 (2026-10-23)
189
+ * (@GermanBluefox) The Chat tab now shows every request of the last hours live - from satellites, Telegram, scripts and the chat itself - with the satellite, the detected wake word, which stage answered (rule-based NLU, routine, local LLM, cloud LLM), the tool calls and the state ids that were read and written. How many hours are kept is set in the settings (0 = record nothing)
190
+
185
191
  ### 1.0.2 (2026-10-14)
186
192
  * (@GermanBluefox) Added the missing translations and the sizes for all screens to the settings. The tests run on Windows and macOS too
187
193
  * (@GermanBluefox) The ports the adapter really opens (UDP satellites, Wyoming, ESPHome media server) are reported to js-controller 8 as used resources; the satellite port in the settings is no longer listed as an occupied TCP port
@@ -1,69 +1,67 @@
1
1
  {
2
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js": {
3
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js",
4
- "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js",
2
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js": {
3
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js",
4
+ "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js",
5
5
  "imports": [
6
- "_rolldown-runtime-Dd_uD5pT.js"
6
+ "_rolldown-runtime-COiEfhsA.js"
7
7
  ]
8
8
  },
9
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-1XsLCK2M.js": {
10
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-1XsLCK2M.js",
11
- "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js",
9
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CwqmfMvn.js": {
10
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CwqmfMvn.js",
11
+ "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js",
12
12
  "imports": [
13
- "_rolldown-runtime-Dd_uD5pT.js",
14
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js"
13
+ "_rolldown-runtime-COiEfhsA.js",
14
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"
15
15
  ]
16
16
  },
17
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js": {
18
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js",
19
- "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js",
17
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js": {
18
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js",
19
+ "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js",
20
20
  "imports": [
21
- "_rolldown-runtime-Dd_uD5pT.js",
21
+ "_rolldown-runtime-COiEfhsA.js",
22
22
  "_vite-preload-helper-BbbETgeG.js",
23
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js",
24
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-1XsLCK2M.js"
23
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js",
24
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CwqmfMvn.js"
25
25
  ],
26
26
  "dynamicImports": [
27
- "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
27
+ "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
28
+ "node_modules/@sentry/browser/build/npm/esm/prod/index.js",
28
29
  "node_modules/@iobroker/gui-components/build/Components/IconLibrary/iconLibraryData.js"
29
30
  ]
30
31
  },
31
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare__shared-3mzaJWDF.js": {
32
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare__shared-3mzaJWDF.js",
33
- "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare__shared",
32
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare__shared-BxjZmnpc.js": {
33
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare__shared-BxjZmnpc.js",
34
+ "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare__shared",
34
35
  "imports": [
35
- "_rolldown-runtime-Dd_uD5pT.js",
36
+ "_rolldown-runtime-COiEfhsA.js",
36
37
  "_vite-preload-helper-BbbETgeG.js",
37
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js"
38
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js"
38
39
  ],
39
40
  "dynamicImports": [
40
- "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
41
+ "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
41
42
  ]
42
43
  },
43
- "_dist-DiU1y0R9.js": {
44
- "file": "assets/dist-DiU1y0R9.js",
44
+ "_dist-B3E7IYuQ.js": {
45
+ "file": "assets/dist-B3E7IYuQ.js",
45
46
  "name": "dist",
46
47
  "imports": [
47
- "_utils-towTPKqG.js"
48
+ "_utils-Bi7ATSfV.js"
48
49
  ]
49
50
  },
50
- "_helpers-Dot7vgQQ.js": {
51
- "file": "assets/helpers-Dot7vgQQ.js",
51
+ "_helpers-DE61bb74.js": {
52
+ "file": "assets/helpers-DE61bb74.js",
52
53
  "name": "helpers",
53
54
  "imports": [
54
- "_utils-towTPKqG.js"
55
+ "_utils-Bi7ATSfV.js"
55
56
  ]
56
57
  },
57
- "_rolldown-runtime-Dd_uD5pT.js": {
58
- "file": "assets/rolldown-runtime-Dd_uD5pT.js",
58
+ "_rolldown-runtime-COiEfhsA.js": {
59
+ "file": "assets/rolldown-runtime-COiEfhsA.js",
59
60
  "name": "rolldown-runtime"
60
61
  },
61
- "_utils-towTPKqG.js": {
62
- "file": "assets/utils-towTPKqG.js",
63
- "name": "utils",
64
- "imports": [
65
- "_vite-preload-helper-BbbETgeG.js"
66
- ]
62
+ "_utils-Bi7ATSfV.js": {
63
+ "file": "assets/utils-Bi7ATSfV.js",
64
+ "name": "utils"
67
65
  },
68
66
  "_vite-preload-helper-BbbETgeG.js": {
69
67
  "file": "assets/vite-preload-helper-BbbETgeG.js",
@@ -81,27 +79,33 @@
81
79
  "src": "node_modules/@iobroker/gui-components/build/Components/IconLibrary/iconLibraryData.js",
82
80
  "isDynamicEntry": true
83
81
  },
82
+ "node_modules/@sentry/browser/build/npm/esm/prod/index.js": {
83
+ "file": "assets/prod-ChPGnyiA.js",
84
+ "name": "prod",
85
+ "src": "node_modules/@sentry/browser/build/npm/esm/prod/index.js",
86
+ "isDynamicEntry": true
87
+ },
84
88
  "node_modules/react-qr-code/lib/index.mjs": {
85
- "file": "assets/lib-DjwHKtRi.js",
89
+ "file": "assets/lib-CchzgTUs.js",
86
90
  "name": "lib",
87
91
  "src": "node_modules/react-qr-code/lib/index.mjs",
88
92
  "isDynamicEntry": true,
89
93
  "imports": [
90
- "_rolldown-runtime-Dd_uD5pT.js",
91
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js",
92
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js"
94
+ "_rolldown-runtime-COiEfhsA.js",
95
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js",
96
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js"
93
97
  ]
94
98
  },
95
99
  "src/Components.tsx": {
96
- "file": "assets/Components-7BDDNrGP.js",
100
+ "file": "assets/Components-C6qcpaRC.js",
97
101
  "name": "Components",
98
102
  "src": "src/Components.tsx",
99
103
  "isEntry": true,
100
104
  "imports": [
101
- "_rolldown-runtime-Dd_uD5pT.js",
102
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js",
103
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js",
104
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare__shared-3mzaJWDF.js"
105
+ "_rolldown-runtime-COiEfhsA.js",
106
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js",
107
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js",
108
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare__shared-BxjZmnpc.js"
105
109
  ]
106
110
  },
107
111
  "virtual:mf-REMOTE_ENTRY_ID:__mfe_internal__ConfigCustomAssistant__customComponents_js": {
@@ -109,9 +113,9 @@
109
113
  "name": "remoteEntry",
110
114
  "src": "virtual:mf-REMOTE_ENTRY_ID:__mfe_internal__ConfigCustomAssistant__customComponents_js",
111
115
  "imports": [
116
+ "_dist-B3E7IYuQ.js",
112
117
  "_vite-preload-helper-BbbETgeG.js",
113
- "_dist-DiU1y0R9.js",
114
- "_helpers-Dot7vgQQ.js"
118
+ "_helpers-DE61bb74.js"
115
119
  ],
116
120
  "dynamicImports": [
117
121
  "src/Components.tsx",
@@ -119,54 +123,29 @@
119
123
  ]
120
124
  },
121
125
  "virtual:mf-localSharedImportMap:__mfe_internal__ConfigCustomAssistant__mf_owner__1": {
122
- "file": "assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-DcAGnE2z.js",
126
+ "file": "assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-A4gakomR.js",
123
127
  "name": "_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1",
124
128
  "src": "virtual:mf-localSharedImportMap:__mfe_internal__ConfigCustomAssistant__mf_owner__1",
125
129
  "isDynamicEntry": true,
126
130
  "imports": [
127
- "_vite-preload-helper-BbbETgeG.js",
128
- "_dist-DiU1y0R9.js"
129
- ],
130
- "dynamicImports": [
131
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js",
132
- "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
133
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js",
134
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-1XsLCK2M.js",
135
- "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
136
- ]
137
- },
138
- "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js": {
139
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-DS8oaQQt.js",
140
- "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__",
141
- "src": "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js",
142
- "isDynamicEntry": true,
143
- "imports": [
144
- "_rolldown-runtime-Dd_uD5pT.js",
145
- "_vite-preload-helper-BbbETgeG.js",
146
- "_dist-DiU1y0R9.js",
147
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js",
148
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js"
131
+ "_dist-B3E7IYuQ.js",
132
+ "_vite-preload-helper-BbbETgeG.js"
149
133
  ],
150
134
  "dynamicImports": [
151
- "node_modules/react-qr-code/lib/index.mjs"
152
- ]
153
- },
154
- "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js": {
155
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-B_v57Qfr.js",
156
- "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__",
157
- "src": "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
158
- "isDynamicEntry": true,
159
- "imports": [
160
- "_rolldown-runtime-Dd_uD5pT.js"
135
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js",
136
+ "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
137
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js",
138
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CwqmfMvn.js",
139
+ "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
161
140
  ]
162
141
  },
163
142
  "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__1__H_A_I__hostAutoInit__H_A_I__.js": {
164
- "file": "assets/hostInit-MshDicd1.js",
143
+ "file": "assets/hostInit-4roC4hEj.js",
165
144
  "name": "hostInit",
166
145
  "src": "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__1__H_A_I__hostAutoInit__H_A_I__.js",
167
146
  "imports": [
168
147
  "_vite-preload-helper-BbbETgeG.js",
169
- "_helpers-Dot7vgQQ.js"
148
+ "_helpers-DE61bb74.js"
170
149
  ],
171
150
  "dynamicImports": [
172
151
  "virtual:mf-REMOTE_ENTRY_ID:__mfe_internal__ConfigCustomAssistant__customComponents_js",
@@ -174,18 +153,43 @@
174
153
  ]
175
154
  },
176
155
  "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__1__P_S__pendingShares__P_S__.js": {
177
- "file": "assets/pendingShares-CaJDCKLB.js",
156
+ "file": "assets/pendingShares-DLlv8yFY.js",
178
157
  "name": "pendingShares",
179
158
  "src": "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__1__P_S__pendingShares__P_S__.js",
180
159
  "imports": [
181
160
  "_vite-preload-helper-BbbETgeG.js"
182
161
  ],
183
162
  "dynamicImports": [
184
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-CzBMxGFr.js",
185
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CMv8bcyA.js",
186
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-1XsLCK2M.js",
187
- "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__198531368674860__loadShare__shared-3mzaJWDF.js",
163
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js",
164
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js",
165
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CwqmfMvn.js",
166
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare__shared-BxjZmnpc.js",
188
167
  "virtual:mf-localSharedImportMap:__mfe_internal__ConfigCustomAssistant__mf_owner__1"
189
168
  ]
169
+ },
170
+ "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js": {
171
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-TM4l0OYm.js",
172
+ "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__",
173
+ "src": "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js",
174
+ "isDynamicEntry": true,
175
+ "imports": [
176
+ "_rolldown-runtime-COiEfhsA.js",
177
+ "_dist-B3E7IYuQ.js",
178
+ "_vite-preload-helper-BbbETgeG.js",
179
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js",
180
+ "__virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js"
181
+ ],
182
+ "dynamicImports": [
183
+ "node_modules/react-qr-code/lib/index.mjs"
184
+ ]
185
+ },
186
+ "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js": {
187
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js",
188
+ "name": "_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__",
189
+ "src": "virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
190
+ "isDynamicEntry": true,
191
+ "imports": [
192
+ "_rolldown-runtime-COiEfhsA.js"
193
+ ]
190
194
  }
191
195
  }
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-COiEfhsA.js";import{v as t}from"./_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js";import{$t as n,Dn as r,Dt as i,En as a,Fn as o,Ht as s,I as c,In as l,It as u,Jn as d,Jt as f,Kt as p,Lt as ee,Mn as m,Mt as te,O as ne,Qt as h,R as re,Sn as ie,Vn as g,W as ae,Wn as oe,Xr as _,Xt as v,Yr as y,Yt as se,Zt as ce,_n as b,an as x,cn as S,ct as le,d as ue,f as de,fn as fe,jr as C,k as pe,lt as me,mn as w,nn as T,on as E,p as D,pn as O,qn as k,un as A,vn as j,xn as M,yn as N,yt as he}from"./_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BMuLYe6f.js";import{t as P}from"./_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__201375093093590__loadShare__shared-BxjZmnpc.js";var F=e({custom_assistant_Announcement:()=>I,custom_assistant_Cancel:()=>L,custom_assistant_Chat:()=>R,custom_assistant_Close:()=>z,custom_assistant_Delete:()=>B,custom_assistant_Host:()=>V,custom_assistant_Room:()=>ge,custom_assistant_Routine:()=>_e,custom_assistant_Satellite:()=>ve,custom_assistant_Satellites:()=>ye,custom_assistant_Script:()=>be,custom_assistant_Source:()=>xe,custom_assistant_Speak:()=>Se,custom_assistant_State:()=>Ce,custom_assistant_Status:()=>we,custom_assistant_auto:()=>Te,custom_assistant_device:()=>Ee,custom_assistant_filter:()=>De,custom_assistant_hint:()=>Oe,custom_assistant_llm_downloading:()=>ke,custom_assistant_llm_error:()=>Ae,custom_assistant_llm_idle:()=>je,custom_assistant_llm_installing:()=>Me,custom_assistant_llm_loading:()=>Ne,custom_assistant_llm_ready:()=>Pe,custom_assistant_offline:()=>Fe,custom_assistant_online:()=>Ie,custom_assistant_read:()=>Le,custom_assistant_room:()=>Re,custom_assistant_sat_idle:()=>ze,custom_assistant_sat_listening:()=>Be,custom_assistant_sat_offline:()=>Ve,custom_assistant_sat_processing:()=>He,custom_assistant_sat_speaking:()=>Ue,custom_assistant_type:()=>`Typ`,custom_assistant_wake_word_hint:()=>We,custom_assistant_write:()=>Ge,default:()=>Ke}),I=`Ansage`,L=`Abbrechen`,R=`Chat`,z=`Schließen`,B=`Löschen`,V=`Host`,ge=`Raum`,_e=`Routine`,ve=`Satellit`,ye=`Satelliten`,be=`Skript`,xe=`Quelle`,Se=`Sprechen`,Ce=`State`,we=`Status`,Te=`automatisch`,Ee=`Gerät`,De=`Filter`,Oe=`Deaktivieren Sie die Leseberechtigung, um ein Gerät vor dem Assistenten auszublenden, oder die Schreibberechtigung, um es schreibgeschützt zu halten (z. B. bei Sperren). Geräte sind standardmäßig vollständig zugelassen.`,ke=`Modell wird geladen …`,Ae=`Fehler`,je=`inaktiv`,Me=`Engine wird installiert …`,Ne=`lädt …`,Pe=`bereit`,Fe=`offline`,Ie=`online`,Le=`Lesen`,Re=`Zimmer`,ze=`inaktiv`,Be=`hört zu`,Ve=`offline`,He=`verarbeitet`,Ue=`spricht`,We=`Das Wake-Word läuft auf dem Gerät. Mit der Maus über ein Wort siehst du die trainierten Sprachen — die meisten können nur Englisch.`,Ge=`Schreiben`,Ke={"custom_assistant_%s of %s active":`%s von %s aktiv`,"custom_assistant_(no spoken answer)":`(keine gesprochene Antwort)`,"custom_assistant_All sources":`Alle Quellen`,custom_assistant_Announcement:I,custom_assistant_Cancel:L,custom_assistant_Chat:R,"custom_assistant_Clear chat":`Chat leeren`,custom_assistant_Close:z,"custom_assistant_Cloud LLM":`Cloud-LLM`,custom_assistant_Delete:B,"custom_assistant_Delete the recorded history of all sources?":`Den aufgezeichneten Verlauf aller Quellen löschen?`,"custom_assistant_Device cache cleared.":`Gerätecache geleert.`,"custom_assistant_Device settings":`Geräte-Einstellungen`,"custom_assistant_Hide disabled":`Deaktivierte ausblenden`,"custom_assistant_Hide processing details":`Verarbeitungsdetails ausblenden`,custom_assistant_Host:V,"custom_assistant_Last seen":`Zuletzt gesehen`,"custom_assistant_Listening…":`Höre zu …`,"custom_assistant_Local LLM":`Lokales LLM`,"custom_assistant_Local model":`Lokales Modell`,"custom_assistant_Mic re-opened without wake word":`Mikrofon ohne Wake-Word wieder geöffnet (Nachfrage oder Rückfrage)`,"custom_assistant_Name language: %s":`Namens-Sprache: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Es wurden keine Geräte erkannt. Weisen Sie Räumen und Funktionen in ioBroker Zustände zu.`,"custom_assistant_No messages yet. Type a question below.":`Noch keine Nachrichten. Geben Sie unten eine Frage ein.`,"custom_assistant_No satellites registered yet.":`Noch keine Satelliten registriert.`,"custom_assistant_Not understood":`Nicht verstanden`,"custom_assistant_Per-device permissions":`Gerätespezifische Berechtigungen`,"custom_assistant_Play answer (backend TTS)":`Antwort abspielen (Backend-TTS)`,"custom_assistant_Read answers aloud":`Antworten vorlesen`,"custom_assistant_Refresh device cache":`Gerätecache aktualisieren`,"custom_assistant_Reply to a question":`Antwort auf Rückfrage`,custom_assistant_Room:ge,custom_assistant_Routine:_e,"custom_assistant_Rule-based NLU":`Regel-NLU (lokal)`,custom_assistant_Satellite:ve,custom_assistant_Satellites:ye,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Speichern Sie die Konfiguration (die Instanz startet neu), bevor Sie chatten.`,custom_assistant_Script:be,"custom_assistant_Send announcement":`Ansage senden`,"custom_assistant_Settings for %s":`Einstellungen für %s`,"custom_assistant_Show processing details":`Verarbeitungsdetails anzeigen`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Zeigt alle Anfragen live: Satelliten, Telegram, Skripte und diesen Chat.`,custom_assistant_Source:xe,custom_assistant_Speak:Se,"custom_assistant_Speak on all satellites":`Auf allen Satelliten ansagen`,"custom_assistant_Speech recognition time":`Dauer der Spracherkennung`,"custom_assistant_Start the assistant instance to chat.":`Starten Sie die Assistenteninstanz, um zu chatten.`,"custom_assistant_Start the assistant instance to load the device list.":`Starten Sie die Assistenteninstanz, um die Geräteliste zu laden.`,custom_assistant_State:Ce,custom_assistant_Status:we,"custom_assistant_Stop listening":`Zuhören beenden`,"custom_assistant_Stop reading answers aloud":`Vorlesen beenden`,"custom_assistant_Stop word":`Stopp-Wort`,"custom_assistant_Test chat":`Test-Chat`,"custom_assistant_Thinking…":`Denkt nach …`,"custom_assistant_This satellite exposes no settings.":`Dieser Satellit bietet keine Einstellungen.`,"custom_assistant_Translate all missing (%s)":`Alle fehlenden übersetzen (%s)`,"custom_assistant_Translate name into %s":`Namen nach %s übersetzen`,"custom_assistant_Type a message…":`Nachricht eingeben …`,"custom_assistant_Wake word":`Wake-Word`,"custom_assistant_Wake words":`Wake-Words`,custom_assistant_auto:Te,"custom_assistant_change it on the Voice tab":`im Voice-Tab umschalten`,custom_assistant_device:Ee,custom_assistant_filter:De,"custom_assistant_follow-up":`Nachfrage`,custom_assistant_hint:Oe,custom_assistant_llm_downloading:ke,custom_assistant_llm_error:Ae,custom_assistant_llm_idle:je,custom_assistant_llm_installing:Me,custom_assistant_llm_loading:Ne,"custom_assistant_llm_not installed":`nicht installiert`,custom_assistant_llm_ready:Pe,"custom_assistant_no name in %s (showing %s)":`Kein Name in "%s" — angezeigt: "%s"`,custom_assistant_offline:Fe,custom_assistant_online:Ie,custom_assistant_read:Le,custom_assistant_room:Re,custom_assistant_sat_idle:ze,custom_assistant_sat_listening:Be,custom_assistant_sat_offline:Ve,custom_assistant_sat_processing:He,custom_assistant_sat_speaking:Ue,custom_assistant_type:`Typ`,"custom_assistant_waits for reply":`wartet auf Antwort`,custom_assistant_wake_word_hint:We,custom_assistant_write:Ge},H=e({custom_assistant_Announcement:()=>qe,custom_assistant_Cancel:()=>Je,custom_assistant_Chat:()=>Ye,custom_assistant_Close:()=>Xe,custom_assistant_Delete:()=>Ze,custom_assistant_Host:()=>Qe,custom_assistant_Room:()=>$e,custom_assistant_Routine:()=>et,custom_assistant_Satellite:()=>tt,custom_assistant_Satellites:()=>nt,custom_assistant_Script:()=>rt,custom_assistant_Source:()=>it,custom_assistant_Speak:()=>at,custom_assistant_State:()=>ot,custom_assistant_Status:()=>st,custom_assistant_auto:()=>ct,custom_assistant_device:()=>lt,custom_assistant_filter:()=>ut,custom_assistant_hint:()=>dt,custom_assistant_llm_downloading:()=>ft,custom_assistant_llm_error:()=>pt,custom_assistant_llm_idle:()=>mt,custom_assistant_llm_installing:()=>ht,custom_assistant_llm_loading:()=>gt,custom_assistant_llm_ready:()=>_t,custom_assistant_offline:()=>vt,custom_assistant_online:()=>yt,custom_assistant_read:()=>bt,custom_assistant_room:()=>xt,custom_assistant_sat_idle:()=>St,custom_assistant_sat_listening:()=>Ct,custom_assistant_sat_offline:()=>wt,custom_assistant_sat_processing:()=>Tt,custom_assistant_sat_speaking:()=>Et,custom_assistant_type:()=>Dt,custom_assistant_wake_word_hint:()=>Ot,custom_assistant_write:()=>kt,default:()=>At}),qe=`Announcement`,Je=`Cancel`,Ye=`Chat`,Xe=`Close`,Ze=`Delete`,Qe=`Host`,$e=`Room`,et=`Routine`,tt=`Satellite`,nt=`Satellites`,rt=`Script`,it=`Source`,at=`Speak`,ot=`State`,st=`Status`,ct=`auto`,lt=`Device`,ut=`Filter`,dt=`Uncheck read to hide a device from the assistant, or uncheck write to keep it read-only (e.g. locks). Devices default to fully allowed.`,ft=`downloading model…`,pt=`error`,mt=`idle`,ht=`installing engine…`,gt=`loading…`,_t=`ready`,vt=`offline`,yt=`online`,bt=`Read`,xt=`Room`,St=`idle`,Ct=`listening`,wt=`offline`,Tt=`processing`,Et=`speaking`,Dt=`Type`,Ot=`The wake word runs on the device. Hover a word to see which languages it was trained on — most are English only.`,kt=`Write`,At={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:qe,custom_assistant_Cancel:Je,custom_assistant_Chat:Ye,"custom_assistant_Clear chat":`Clear chat`,custom_assistant_Close:Xe,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:Ze,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Device cache cleared.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Hide disabled`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:Qe,"custom_assistant_Last seen":`Last seen`,"custom_assistant_Listening…":`Listening…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Local model`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Name language: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`No devices detected. Assign states to rooms and functions in ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`No messages yet. Type a question below.`,"custom_assistant_No satellites registered yet.":`No satellites registered yet.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Per-device permissions`,"custom_assistant_Play answer (backend TTS)":`Play answer (backend TTS)`,"custom_assistant_Read answers aloud":`Read answers aloud`,"custom_assistant_Refresh device cache":`Refresh device cache`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:$e,custom_assistant_Routine:et,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:tt,custom_assistant_Satellites:nt,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Save the configuration (the instance will restart) before chatting.`,custom_assistant_Script:rt,"custom_assistant_Send announcement":`Send announcement`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:it,custom_assistant_Speak:at,"custom_assistant_Speak on all satellites":`Speak on all satellites`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Start the assistant instance to chat.`,"custom_assistant_Start the assistant instance to load the device list.":`Start the assistant instance to load the device list.`,custom_assistant_State:ot,custom_assistant_Status:st,"custom_assistant_Stop listening":`Stop listening`,"custom_assistant_Stop reading answers aloud":`Stop reading answers aloud`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Test chat`,"custom_assistant_Thinking…":`Thinking…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Translate all missing (%s)`,"custom_assistant_Translate name into %s":`Translate name into %s`,"custom_assistant_Type a message…":`Type a message…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:ct,"custom_assistant_change it on the Voice tab":`change it on the Voice tab`,custom_assistant_device:lt,custom_assistant_filter:ut,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:dt,custom_assistant_llm_downloading:ft,custom_assistant_llm_error:pt,custom_assistant_llm_idle:mt,custom_assistant_llm_installing:ht,custom_assistant_llm_loading:gt,"custom_assistant_llm_not installed":`not installed`,custom_assistant_llm_ready:_t,"custom_assistant_no name in %s (showing %s)":`No name in "%s" — showing "%s"`,custom_assistant_offline:vt,custom_assistant_online:yt,custom_assistant_read:bt,custom_assistant_room:xt,custom_assistant_sat_idle:St,custom_assistant_sat_listening:Ct,custom_assistant_sat_offline:wt,custom_assistant_sat_processing:Tt,custom_assistant_sat_speaking:Et,custom_assistant_type:Dt,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:Ot,custom_assistant_write:kt},U=e({custom_assistant_Announcement:()=>jt,custom_assistant_Cancel:()=>Mt,custom_assistant_Chat:()=>Nt,custom_assistant_Close:()=>Pt,custom_assistant_Delete:()=>Ft,custom_assistant_Host:()=>It,custom_assistant_Room:()=>Lt,custom_assistant_Routine:()=>Rt,custom_assistant_Satellite:()=>zt,custom_assistant_Satellites:()=>Bt,custom_assistant_Script:()=>Vt,custom_assistant_Source:()=>Ht,custom_assistant_Speak:()=>Ut,custom_assistant_State:()=>Wt,custom_assistant_Status:()=>Gt,custom_assistant_auto:()=>Kt,custom_assistant_device:()=>qt,custom_assistant_filter:()=>Jt,custom_assistant_hint:()=>Yt,custom_assistant_llm_downloading:()=>Xt,custom_assistant_llm_error:()=>Zt,custom_assistant_llm_idle:()=>Qt,custom_assistant_llm_installing:()=>$t,custom_assistant_llm_loading:()=>en,custom_assistant_llm_ready:()=>tn,custom_assistant_offline:()=>nn,custom_assistant_online:()=>rn,custom_assistant_read:()=>an,custom_assistant_room:()=>on,custom_assistant_sat_idle:()=>sn,custom_assistant_sat_listening:()=>cn,custom_assistant_sat_offline:()=>ln,custom_assistant_sat_processing:()=>un,custom_assistant_sat_speaking:()=>dn,custom_assistant_type:()=>fn,custom_assistant_wake_word_hint:()=>pn,custom_assistant_write:()=>mn,default:()=>hn}),jt=`Anuncio`,Mt=`Cancel`,Nt=`Chat`,Pt=`Close`,Ft=`Delete`,It=`Anfitrión`,Lt=`Room`,Rt=`Routine`,zt=`Satélite`,Bt=`satélites`,Vt=`Script`,Ht=`Source`,Ut=`Hablar`,Wt=`State`,Gt=`Estado`,Kt=`auto`,qt=`Dispositivo`,Jt=`Filtrar`,Yt=`Desactive la opción de lectura para ocultar un dispositivo al asistente, o desactive la opción de escritura para mantenerlo en modo de solo lectura (por ejemplo, candados). Los dispositivos vienen configurados por defecto con acceso completo.`,Xt=`Descargando modelo…`,Zt=`error`,Qt=`inactivo`,$t=`instalando el motor…`,en=`cargando…`,tn=`listo`,nn=`desconectado`,rn=`en línea`,an=`Leer`,on=`Habitación`,sn=`inactivo`,cn=`escuchando`,ln=`desconectado`,un=`tratamiento`,dn=`discurso`,fn=`Tipo`,pn=`La palabra de activación se procesa en el dispositivo. Pasa el ratón sobre una palabra para ver en qué idiomas se entrenó — la mayoría solo en inglés.`,mn=`Escribir`,hn={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:jt,custom_assistant_Cancel:Mt,custom_assistant_Chat:Nt,"custom_assistant_Clear chat":`Chat claro`,custom_assistant_Close:Pt,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:Ft,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Se ha borrado la caché del dispositivo.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Ocultar deshabilitado`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:It,"custom_assistant_Last seen":`Última vez visto`,"custom_assistant_Listening…":`Escuchando…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Modelo local`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Idioma del nombre: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`No se detectaron dispositivos. Asigne estados a las salas y funciones en ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Aún no hay mensajes. Escribe tu pregunta a continuación.`,"custom_assistant_No satellites registered yet.":`Aún no se han registrado satélites.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Permisos por dispositivo`,"custom_assistant_Play answer (backend TTS)":`Reproducir respuesta (TTS de backend)`,"custom_assistant_Read answers aloud":`Lee las respuestas en voz alta.`,"custom_assistant_Refresh device cache":`Actualizar la caché del dispositivo`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:Lt,custom_assistant_Routine:Rt,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:zt,custom_assistant_Satellites:Bt,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Guarda la configuración (la instancia se reiniciará) antes de chatear.`,custom_assistant_Script:Vt,"custom_assistant_Send announcement":`Enviar anuncio`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:Ht,custom_assistant_Speak:Ut,"custom_assistant_Speak on all satellites":`Hablar por todos los satélites`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Inicia la instancia del asistente para chatear.`,"custom_assistant_Start the assistant instance to load the device list.":`Inicie la instancia del asistente para cargar la lista de dispositivos.`,custom_assistant_State:Wt,custom_assistant_Status:Gt,"custom_assistant_Stop listening":`Deja de escuchar`,"custom_assistant_Stop reading answers aloud":`Deja de leer las respuestas en voz alta.`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Chat de prueba`,"custom_assistant_Thinking…":`Pensamiento…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Traducir todos los (%s) faltantes`,"custom_assistant_Translate name into %s":`Traducir nombre a %s`,"custom_assistant_Type a message…":`Escribe un mensaje…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:Kt,"custom_assistant_change it on the Voice tab":`Cámbialo en la pestaña Voz.`,custom_assistant_device:qt,custom_assistant_filter:Jt,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:Yt,custom_assistant_llm_downloading:Xt,custom_assistant_llm_error:Zt,custom_assistant_llm_idle:Qt,custom_assistant_llm_installing:$t,custom_assistant_llm_loading:en,"custom_assistant_llm_not installed":`no instalado`,custom_assistant_llm_ready:tn,"custom_assistant_no name in %s (showing %s)":`No se encontró ningún nombre en "%s" — se muestra "%s"`,custom_assistant_offline:nn,custom_assistant_online:rn,custom_assistant_read:an,custom_assistant_room:on,custom_assistant_sat_idle:sn,custom_assistant_sat_listening:cn,custom_assistant_sat_offline:ln,custom_assistant_sat_processing:un,custom_assistant_sat_speaking:dn,custom_assistant_type:fn,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:pn,custom_assistant_write:mn},W=e({custom_assistant_Announcement:()=>gn,custom_assistant_Cancel:()=>_n,custom_assistant_Chat:()=>vn,custom_assistant_Close:()=>yn,custom_assistant_Delete:()=>bn,custom_assistant_Host:()=>xn,custom_assistant_Room:()=>Sn,custom_assistant_Routine:()=>Cn,custom_assistant_Satellite:()=>wn,custom_assistant_Satellites:()=>Tn,custom_assistant_Script:()=>En,custom_assistant_Source:()=>Dn,custom_assistant_Speak:()=>On,custom_assistant_State:()=>kn,custom_assistant_Status:()=>An,custom_assistant_auto:()=>jn,custom_assistant_device:()=>Mn,custom_assistant_filter:()=>Nn,custom_assistant_hint:()=>Pn,custom_assistant_llm_downloading:()=>Fn,custom_assistant_llm_error:()=>In,custom_assistant_llm_idle:()=>Ln,custom_assistant_llm_installing:()=>Rn,custom_assistant_llm_loading:()=>zn,custom_assistant_llm_ready:()=>Bn,custom_assistant_offline:()=>Vn,custom_assistant_online:()=>Hn,custom_assistant_read:()=>Un,custom_assistant_room:()=>Wn,custom_assistant_sat_idle:()=>Gn,custom_assistant_sat_listening:()=>Kn,custom_assistant_sat_offline:()=>qn,custom_assistant_sat_processing:()=>Jn,custom_assistant_sat_speaking:()=>Yn,custom_assistant_type:()=>Xn,custom_assistant_wake_word_hint:()=>Zn,custom_assistant_write:()=>Qn,default:()=>$n}),gn=`Annonce`,_n=`Cancel`,vn=`Chat`,yn=`Close`,bn=`Delete`,xn=`Hôte`,Sn=`Room`,Cn=`Routine`,wn=`Satellite`,Tn=`Satellites`,En=`Script`,Dn=`Source`,On=`Parler`,kn=`State`,An=`Statut`,jn=`auto`,Mn=`Appareil`,Nn=`Filtre`,Pn=`Décochez l'option «\xA0Lecture\xA0» pour masquer un périphérique à l'assistant, ou décochez l'option «\xA0Écriture\xA0» pour le rendre accessible en lecture seule (par exemple, les verrous). Par défaut, tous les périphériques sont autorisés.`,Fn=`téléchargement du modèle…`,In=`erreur`,Ln=`inactif`,Rn=`installation du moteur…`,zn=`chargement…`,Bn=`prêt`,Vn=`hors ligne`,Hn=`en ligne`,Un=`Lire`,Wn=`Chambre`,Gn=`inactif`,Kn=`écoute`,qn=`hors ligne`,Jn=`traitement`,Yn=`Parlant`,Xn=`Taper`,Zn=`Le mot d'activation s'exécute sur l'appareil. Survolez un mot pour voir dans quelles langues il a été entraîné — la plupart uniquement en anglais.`,Qn=`Écrire`,$n={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:gn,custom_assistant_Cancel:_n,custom_assistant_Chat:vn,"custom_assistant_Clear chat":`Discussion claire`,custom_assistant_Close:yn,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:bn,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Cache du périphérique effacé.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Masquer les fonctions désactivées`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:xn,"custom_assistant_Last seen":`Dernière observation`,"custom_assistant_Listening…":`Écoute…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Modèle local`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Langue du nom\xA0: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Aucun appareil détecté. Attribuez des états aux salles et aux fonctions dans ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Aucun message pour l'instant. Posez votre question ci-dessous.`,"custom_assistant_No satellites registered yet.":`Aucun satellite enregistré pour le moment.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Autorisations par appareil`,"custom_assistant_Play answer (backend TTS)":`Réponse de lecture (TTS backend)`,"custom_assistant_Read answers aloud":`Lisez les réponses à voix haute`,"custom_assistant_Refresh device cache":`Actualiser le cache de l'appareil`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:Sn,custom_assistant_Routine:Cn,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:wn,custom_assistant_Satellites:Tn,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Enregistrez la configuration (l'instance redémarrera) avant de discuter.`,custom_assistant_Script:En,"custom_assistant_Send announcement":`Envoyer l'annonce`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:Dn,custom_assistant_Speak:On,"custom_assistant_Speak on all satellites":`Parlez sur tous les satellites`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Démarrez l'instance de l'assistant pour discuter.`,"custom_assistant_Start the assistant instance to load the device list.":`Démarrez l'instance de l'assistant pour charger la liste des périphériques.`,custom_assistant_State:kn,custom_assistant_Status:An,"custom_assistant_Stop listening":`Arrêtez d'écouter`,"custom_assistant_Stop reading answers aloud":`Arrêtez de lire les réponses à voix haute`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Chat de test`,"custom_assistant_Thinking…":`Pensée…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Traduire tout ce qui est manquant (%s)`,"custom_assistant_Translate name into %s":`Traduire le nom en %s`,"custom_assistant_Type a message…":`Saisissez un message…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:jn,"custom_assistant_change it on the Voice tab":`modifiez-le dans l'onglet Voix`,custom_assistant_device:Mn,custom_assistant_filter:Nn,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:Pn,custom_assistant_llm_downloading:Fn,custom_assistant_llm_error:In,custom_assistant_llm_idle:Ln,custom_assistant_llm_installing:Rn,custom_assistant_llm_loading:zn,"custom_assistant_llm_not installed":`non installé`,custom_assistant_llm_ready:Bn,"custom_assistant_no name in %s (showing %s)":`Aucun nom dans « %s » — affichage de « %s »`,custom_assistant_offline:Vn,custom_assistant_online:Hn,custom_assistant_read:Un,custom_assistant_room:Wn,custom_assistant_sat_idle:Gn,custom_assistant_sat_listening:Kn,custom_assistant_sat_offline:qn,custom_assistant_sat_processing:Jn,custom_assistant_sat_speaking:Yn,custom_assistant_type:Xn,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:Zn,custom_assistant_write:Qn},G=e({custom_assistant_Announcement:()=>er,custom_assistant_Cancel:()=>tr,custom_assistant_Chat:()=>nr,custom_assistant_Close:()=>rr,custom_assistant_Delete:()=>ir,custom_assistant_Host:()=>ar,custom_assistant_Room:()=>or,custom_assistant_Routine:()=>sr,custom_assistant_Satellite:()=>cr,custom_assistant_Satellites:()=>lr,custom_assistant_Script:()=>ur,custom_assistant_Source:()=>dr,custom_assistant_Speak:()=>fr,custom_assistant_State:()=>pr,custom_assistant_Status:()=>mr,custom_assistant_auto:()=>hr,custom_assistant_device:()=>gr,custom_assistant_filter:()=>_r,custom_assistant_hint:()=>vr,custom_assistant_llm_downloading:()=>yr,custom_assistant_llm_error:()=>br,custom_assistant_llm_idle:()=>xr,custom_assistant_llm_installing:()=>Sr,custom_assistant_llm_loading:()=>Cr,custom_assistant_llm_ready:()=>wr,custom_assistant_offline:()=>Tr,custom_assistant_online:()=>Er,custom_assistant_read:()=>Dr,custom_assistant_room:()=>Or,custom_assistant_sat_idle:()=>kr,custom_assistant_sat_listening:()=>Ar,custom_assistant_sat_offline:()=>jr,custom_assistant_sat_processing:()=>Mr,custom_assistant_sat_speaking:()=>Nr,custom_assistant_type:()=>Pr,custom_assistant_wake_word_hint:()=>Fr,custom_assistant_write:()=>Ir,default:()=>Lr}),er=`Annuncio`,tr=`Cancel`,nr=`Chat`,rr=`Close`,ir=`Delete`,ar=`Ospite`,or=`Room`,sr=`Routine`,cr=`Satellitare`,lr=`Satelliti`,ur=`Script`,dr=`Source`,fr=`Parlare`,pr=`State`,mr=`Stato`,hr=`auto`,gr=`Dispositivo`,_r=`Filtro`,vr=`Deseleziona "Lettura" per nascondere un dispositivo all'assistente, oppure deseleziona "Scrittura" per mantenerlo in sola lettura (ad esempio, per bloccare le serrature). Per impostazione predefinita, i dispositivi sono completamente accessibili.`,yr=`modello di download…`,br=`errore`,xr=`oziare`,Sr=`installazione del motore…`,Cr=`caricamento…`,wr=`pronto`,Tr=`offline`,Er=`online`,Dr=`Leggere`,Or=`Camera`,kr=`oziare`,Ar=`ascolto`,jr=`offline`,Mr=`elaborazione`,Nr=`A proposito di`,Pr=`Tipo`,Fr=`La parola di attivazione viene elaborata sul dispositivo. Passa il mouse su una parola per vedere in quali lingue è stata addestrata — la maggior parte solo in inglese.`,Ir=`Scrivere`,Lr={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:er,custom_assistant_Cancel:tr,custom_assistant_Chat:nr,"custom_assistant_Clear chat":`Chat chiara`,custom_assistant_Close:rr,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:ir,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Cache del dispositivo svuotata.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Nascondi disabilitato`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:ar,"custom_assistant_Last seen":`Ultimo avvistamento`,"custom_assistant_Listening…":`Ascolto…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Modello locale`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Lingua del nome: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Nessun dispositivo rilevato. Assegna stati a stanze e funzioni in ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Nessun messaggio ancora. Scrivi una domanda qui sotto.`,"custom_assistant_No satellites registered yet.":`Nessun satellite ancora registrato.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Autorizzazioni per dispositivo`,"custom_assistant_Play answer (backend TTS)":`Riproduci la risposta (TST di backend)`,"custom_assistant_Read answers aloud":`Leggi le risposte ad alta voce`,"custom_assistant_Refresh device cache":`Aggiorna la cache del dispositivo`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:or,custom_assistant_Routine:sr,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:cr,custom_assistant_Satellites:lr,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Salva la configurazione (l'istanza si riavvierà) prima di iniziare la chat.`,custom_assistant_Script:ur,"custom_assistant_Send announcement":`Invia annuncio`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:dr,custom_assistant_Speak:fr,"custom_assistant_Speak on all satellites":`Comunicare su tutti i satelliti`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Avvia l'assistente per chattare.`,"custom_assistant_Start the assistant instance to load the device list.":`Avvia l'istanza dell'assistente per caricare l'elenco dei dispositivi.`,custom_assistant_State:pr,custom_assistant_Status:mr,"custom_assistant_Stop listening":`Smetti di ascoltare`,"custom_assistant_Stop reading answers aloud":`Smetti di leggere le risposte ad alta voce`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Chat di prova`,"custom_assistant_Thinking…":`Pensiero…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Traduci tutto ciò che manca (%s)`,"custom_assistant_Translate name into %s":`Traduci il nome in %s`,"custom_assistant_Type a message…":`Digita un messaggio…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:hr,"custom_assistant_change it on the Voice tab":`modificalo nella scheda Voce`,custom_assistant_device:gr,custom_assistant_filter:_r,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:vr,custom_assistant_llm_downloading:yr,custom_assistant_llm_error:br,custom_assistant_llm_idle:xr,custom_assistant_llm_installing:Sr,custom_assistant_llm_loading:Cr,"custom_assistant_llm_not installed":`non installato`,custom_assistant_llm_ready:wr,"custom_assistant_no name in %s (showing %s)":`Nessun nome in "%s" — visualizzazione di "%s"`,custom_assistant_offline:Tr,custom_assistant_online:Er,custom_assistant_read:Dr,custom_assistant_room:Or,custom_assistant_sat_idle:kr,custom_assistant_sat_listening:Ar,custom_assistant_sat_offline:jr,custom_assistant_sat_processing:Mr,custom_assistant_sat_speaking:Nr,custom_assistant_type:Pr,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:Fr,custom_assistant_write:Ir},K=e({custom_assistant_Announcement:()=>Rr,custom_assistant_Cancel:()=>zr,custom_assistant_Chat:()=>Br,custom_assistant_Close:()=>Vr,custom_assistant_Delete:()=>Hr,custom_assistant_Host:()=>Ur,custom_assistant_Room:()=>Wr,custom_assistant_Routine:()=>Gr,custom_assistant_Satellite:()=>Kr,custom_assistant_Satellites:()=>qr,custom_assistant_Script:()=>Jr,custom_assistant_Source:()=>Yr,custom_assistant_Speak:()=>Xr,custom_assistant_State:()=>Zr,custom_assistant_Status:()=>Qr,custom_assistant_auto:()=>$r,custom_assistant_device:()=>ei,custom_assistant_filter:()=>ti,custom_assistant_hint:()=>ni,custom_assistant_llm_downloading:()=>ri,custom_assistant_llm_error:()=>ii,custom_assistant_llm_idle:()=>ai,custom_assistant_llm_installing:()=>oi,custom_assistant_llm_loading:()=>si,custom_assistant_llm_ready:()=>ci,custom_assistant_offline:()=>li,custom_assistant_online:()=>ui,custom_assistant_read:()=>di,custom_assistant_room:()=>fi,custom_assistant_sat_idle:()=>pi,custom_assistant_sat_listening:()=>mi,custom_assistant_sat_offline:()=>hi,custom_assistant_sat_processing:()=>gi,custom_assistant_sat_speaking:()=>_i,custom_assistant_type:()=>q,custom_assistant_wake_word_hint:()=>vi,custom_assistant_write:()=>yi,default:()=>bi}),Rr=`Aankondiging`,zr=`Cancel`,Br=`Chat`,Vr=`Close`,Hr=`Delete`,Ur=`Gastheer`,Wr=`Room`,Gr=`Routine`,Kr=`Satelliet`,qr=`Satellieten`,Jr=`Script`,Yr=`Source`,Xr=`Spreken`,Zr=`State`,Qr=`Status`,$r=`auto`,ei=`Apparaat`,ti=`Filter`,ni=`Schakel de optie 'Lezen' uit om een apparaat voor de assistent te verbergen, of schakel de optie 'Schrijven' uit om het apparaat alleen-lezen te houden (bijv. sloten). Apparaten zijn standaard volledig toegestaan.`,ri=`Model downloaden…`,ii=`fout`,ai=`inactief`,oi=`motor installeren…`,si=`laden…`,ci=`klaar`,li=`offline`,ui=`online`,di=`Lezen`,fi=`Kamer`,pi=`inactief`,mi=`luisteren`,hi=`offline`,gi=`verwerking`,_i=`spreken`,q=`Type`,vi=`Het activeringswoord draait op het apparaat. Beweeg de muis over een woord om te zien in welke talen het getraind is — de meeste alleen Engels.`,yi=`Schrijven`,bi={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:Rr,custom_assistant_Cancel:zr,custom_assistant_Chat:Br,"custom_assistant_Clear chat":`Duidelijke chat`,custom_assistant_Close:Vr,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:Hr,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Apparaatcache gewist.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Verberg uitgeschakeld`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:Ur,"custom_assistant_Last seen":`Laatst gezien`,"custom_assistant_Listening…":`Luisteren…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Lokaal model`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Naamtaal: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Geen apparaten gedetecteerd. Wijs statussen toe aan kamers en functies in ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Nog geen berichten. Typ hieronder een vraag.`,"custom_assistant_No satellites registered yet.":`Er zijn nog geen satellieten geregistreerd.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Machtigingen per apparaat`,"custom_assistant_Play answer (backend TTS)":`Speel antwoord (backend TTS)`,"custom_assistant_Read answers aloud":`Lees de antwoorden hardop voor.`,"custom_assistant_Refresh device cache":`Vernieuw de apparaatcache.`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:Wr,custom_assistant_Routine:Gr,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:Kr,custom_assistant_Satellites:qr,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Sla de configuratie op (het apparaat zal opnieuw opstarten) voordat je gaat chatten.`,custom_assistant_Script:Jr,"custom_assistant_Send announcement":`Aankondiging verzenden`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:Yr,custom_assistant_Speak:Xr,"custom_assistant_Speak on all satellites":`Communiceer via alle satellieten`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Start de assistent-instantie om te chatten.`,"custom_assistant_Start the assistant instance to load the device list.":`Start de assistent-instantie om de lijst met apparaten te laden.`,custom_assistant_State:Zr,custom_assistant_Status:Qr,"custom_assistant_Stop listening":`Stop met luisteren`,"custom_assistant_Stop reading answers aloud":`Stop met het hardop voorlezen van antwoorden.`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Testchat`,"custom_assistant_Thinking…":`Aan het nadenken…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Vertaal alle ontbrekende (%) tekens`,"custom_assistant_Translate name into %s":`Vertaal de naam naar %s`,"custom_assistant_Type a message…":`Typ een bericht…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:$r,"custom_assistant_change it on the Voice tab":`Wijzig dit op het tabblad 'Stem'.`,custom_assistant_device:ei,custom_assistant_filter:ti,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:ni,custom_assistant_llm_downloading:ri,custom_assistant_llm_error:ii,custom_assistant_llm_idle:ai,custom_assistant_llm_installing:oi,custom_assistant_llm_loading:si,"custom_assistant_llm_not installed":`niet geïnstalleerd`,custom_assistant_llm_ready:ci,"custom_assistant_no name in %s (showing %s)":`Geen naam in "%s" — "%s" wordt weergegeven`,custom_assistant_offline:li,custom_assistant_online:ui,custom_assistant_read:di,custom_assistant_room:fi,custom_assistant_sat_idle:pi,custom_assistant_sat_listening:mi,custom_assistant_sat_offline:hi,custom_assistant_sat_processing:gi,custom_assistant_sat_speaking:_i,custom_assistant_type:q,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:vi,custom_assistant_write:yi},J=e({custom_assistant_Announcement:()=>xi,custom_assistant_Cancel:()=>Si,custom_assistant_Chat:()=>Ci,custom_assistant_Close:()=>wi,custom_assistant_Delete:()=>Ti,custom_assistant_Host:()=>Ei,custom_assistant_Room:()=>Di,custom_assistant_Routine:()=>Oi,custom_assistant_Satellite:()=>ki,custom_assistant_Satellites:()=>Ai,custom_assistant_Script:()=>ji,custom_assistant_Source:()=>Mi,custom_assistant_Speak:()=>Ni,custom_assistant_State:()=>Pi,custom_assistant_Status:()=>Fi,custom_assistant_auto:()=>Ii,custom_assistant_device:()=>Li,custom_assistant_filter:()=>Ri,custom_assistant_hint:()=>zi,custom_assistant_llm_downloading:()=>Bi,custom_assistant_llm_error:()=>Vi,custom_assistant_llm_idle:()=>Hi,custom_assistant_llm_installing:()=>Ui,custom_assistant_llm_loading:()=>Wi,custom_assistant_llm_ready:()=>Gi,custom_assistant_offline:()=>Ki,custom_assistant_online:()=>qi,custom_assistant_read:()=>Ji,custom_assistant_room:()=>Yi,custom_assistant_sat_idle:()=>Xi,custom_assistant_sat_listening:()=>Zi,custom_assistant_sat_offline:()=>Qi,custom_assistant_sat_processing:()=>$i,custom_assistant_sat_speaking:()=>ea,custom_assistant_type:()=>`Typ`,custom_assistant_wake_word_hint:()=>ta,custom_assistant_write:()=>na,default:()=>ra}),xi=`Ogłoszenie`,Si=`Cancel`,Ci=`Chat`,wi=`Close`,Ti=`Delete`,Ei=`Gospodarz`,Di=`Room`,Oi=`Routine`,ki=`Satelita`,Ai=`Satelity`,ji=`Script`,Mi=`Source`,Ni=`Mówić`,Pi=`State`,Fi=`Status`,Ii=`automatyczny`,Li=`Urządzenie`,Ri=`Filtr`,zi=`Odznacz opcję „Odczyt”, aby ukryć urządzenie przed asystentem, lub odznacz opcję „Zapis”, aby zachować je tylko do odczytu (np. blokady). Domyślnie urządzenia mają pełne uprawnienia.`,Bi=`pobieranie modelu…`,Vi=`błąd`,Hi=`bezczynny`,Ui=`instalowanie silnika…`,Wi=`załadunek…`,Gi=`gotowy`,Ki=`nieaktywny`,qi=`w sieci`,Ji=`Czytać`,Yi=`Pokój`,Xi=`bezczynny`,Zi=`słuchający`,Qi=`nieaktywny`,$i=`przetwarzanie`,ea=`mówiąc`,ta=`Słowo aktywujące działa na urządzeniu. Najedź na słowo, aby zobaczyć, w jakich językach było trenowane — większość tylko po angielsku.`,na=`Pisać`,ra={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:xi,custom_assistant_Cancel:Si,custom_assistant_Chat:Ci,"custom_assistant_Clear chat":`Wyczyść czat`,custom_assistant_Close:wi,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:Ti,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Pamięć podręczna urządzenia została wyczyszczona.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Ukryj wyłączone`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:Ei,"custom_assistant_Last seen":`Ostatnio widziany`,"custom_assistant_Listening…":`Słuchający…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Model lokalny`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Język nazwy: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Nie wykryto urządzeń. Przypisz stany do pomieszczeń i funkcji w ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Brak wiadomości. Wpisz pytanie poniżej.`,"custom_assistant_No satellites registered yet.":`Nie zarejestrowano jeszcze żadnych satelitów.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Uprawnienia na urządzenie`,"custom_assistant_Play answer (backend TTS)":`Odtwórz odpowiedź (TTS w tle)`,"custom_assistant_Read answers aloud":`Przeczytaj odpowiedzi na głos`,"custom_assistant_Refresh device cache":`Odśwież pamięć podręczną urządzenia`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:Di,custom_assistant_Routine:Oi,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:ki,custom_assistant_Satellites:Ai,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Przed rozpoczęciem czatu zapisz konfigurację (instancja zostanie uruchomiona ponownie).`,custom_assistant_Script:ji,"custom_assistant_Send announcement":`Wyślij ogłoszenie`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:Mi,custom_assistant_Speak:Ni,"custom_assistant_Speak on all satellites":`Mów na wszystkich satelitach`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Uruchom asystenta, aby rozpocząć rozmowę.`,"custom_assistant_Start the assistant instance to load the device list.":`Uruchom instancję asystenta, aby załadować listę urządzeń.`,custom_assistant_State:Pi,custom_assistant_Status:Fi,"custom_assistant_Stop listening":`Przestań słuchać`,"custom_assistant_Stop reading answers aloud":`Przestań czytać odpowiedzi na głos`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Czat testowy`,"custom_assistant_Thinking…":`Myślący…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Przetłumacz wszystkie brakujące (%s)`,"custom_assistant_Translate name into %s":`Przetłumacz nazwę na %s`,"custom_assistant_Type a message…":`Wpisz wiadomość…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:Ii,"custom_assistant_change it on the Voice tab":`zmień to na karcie Głos`,custom_assistant_device:Li,custom_assistant_filter:Ri,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:zi,custom_assistant_llm_downloading:Bi,custom_assistant_llm_error:Vi,custom_assistant_llm_idle:Hi,custom_assistant_llm_installing:Ui,custom_assistant_llm_loading:Wi,"custom_assistant_llm_not installed":`nie zainstalowano`,custom_assistant_llm_ready:Gi,"custom_assistant_no name in %s (showing %s)":`Brak nazwy w "%s" — wyświetlanie "%s"`,custom_assistant_offline:Ki,custom_assistant_online:qi,custom_assistant_read:Ji,custom_assistant_room:Yi,custom_assistant_sat_idle:Xi,custom_assistant_sat_listening:Zi,custom_assistant_sat_offline:Qi,custom_assistant_sat_processing:$i,custom_assistant_sat_speaking:ea,custom_assistant_type:`Typ`,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:ta,custom_assistant_write:na},Y=e({custom_assistant_Announcement:()=>ia,custom_assistant_Cancel:()=>aa,custom_assistant_Chat:()=>oa,custom_assistant_Close:()=>sa,custom_assistant_Delete:()=>ca,custom_assistant_Host:()=>la,custom_assistant_Room:()=>ua,custom_assistant_Routine:()=>da,custom_assistant_Satellite:()=>fa,custom_assistant_Satellites:()=>pa,custom_assistant_Script:()=>ma,custom_assistant_Source:()=>ha,custom_assistant_Speak:()=>ga,custom_assistant_State:()=>_a,custom_assistant_Status:()=>va,custom_assistant_auto:()=>ya,custom_assistant_device:()=>ba,custom_assistant_filter:()=>xa,custom_assistant_hint:()=>Sa,custom_assistant_llm_downloading:()=>Ca,custom_assistant_llm_error:()=>wa,custom_assistant_llm_idle:()=>Ta,custom_assistant_llm_installing:()=>Ea,custom_assistant_llm_loading:()=>Da,custom_assistant_llm_ready:()=>Oa,custom_assistant_offline:()=>ka,custom_assistant_online:()=>Aa,custom_assistant_read:()=>`Ler`,custom_assistant_room:()=>ja,custom_assistant_sat_idle:()=>Ma,custom_assistant_sat_listening:()=>Na,custom_assistant_sat_offline:()=>Pa,custom_assistant_sat_processing:()=>Fa,custom_assistant_sat_speaking:()=>Ia,custom_assistant_type:()=>La,custom_assistant_wake_word_hint:()=>Ra,custom_assistant_write:()=>za,default:()=>Ba}),ia=`Anúncio`,aa=`Cancel`,oa=`Chat`,sa=`Close`,ca=`Delete`,la=`Hospedar`,ua=`Room`,da=`Routine`,fa=`Satélite`,pa=`Satélites`,ma=`Script`,ha=`Source`,ga=`Falar`,_a=`State`,va=`Status`,ya=`auto`,ba=`Dispositivo`,xa=`Filtro`,Sa=`Desmarque a opção "Ler" para ocultar um dispositivo do assistente ou desmarque a opção "Gravar" para mantê-lo somente leitura (por exemplo, fechaduras). Os dispositivos são configurados por padrão para permitir totalmente o acesso.`,Ca=`baixando modelo…`,wa=`erro`,Ta=`parado`,Ea=`Instalando o motor…`,Da=`carregando…`,Oa=`preparar`,ka=`offline`,Aa=`on-line`,ja=`Sala`,Ma=`parado`,Na=`audição`,Pa=`offline`,Fa=`processamento`,Ia=`Falando`,La=`Tipo`,Ra=`A palavra de ativação é processada no dispositivo. Passe o mouse sobre uma palavra para ver em quais idiomas ela foi treinada — a maioria apenas em inglês.`,za=`Escrever`,Ba={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:ia,custom_assistant_Cancel:aa,custom_assistant_Chat:oa,"custom_assistant_Clear chat":`Chat limpo`,custom_assistant_Close:sa,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:ca,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Cache do dispositivo limpo.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Ocultar desativado`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:la,"custom_assistant_Last seen":`Última vez visto`,"custom_assistant_Listening…":`Audição…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Modelo local`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Idioma do nome: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Nenhum dispositivo detectado. Atribua estados a salas e funções no ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Ainda não há mensagens. Digite sua pergunta abaixo.`,"custom_assistant_No satellites registered yet.":`Nenhum satélite registrado ainda.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Permissões por dispositivo`,"custom_assistant_Play answer (backend TTS)":`Reproduzir resposta (TTS em segundo plano)`,"custom_assistant_Read answers aloud":`Leia as respostas em voz alta.`,"custom_assistant_Refresh device cache":`Atualizar cache do dispositivo`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:ua,custom_assistant_Routine:da,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:fa,custom_assistant_Satellites:pa,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Salve a configuração (a instância será reiniciada) antes de iniciar o chat.`,custom_assistant_Script:ma,"custom_assistant_Send announcement":`Enviar anúncio`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:ha,custom_assistant_Speak:ga,"custom_assistant_Speak on all satellites":`Fale em todos os satélites`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Inicie a instância do assistente para conversar.`,"custom_assistant_Start the assistant instance to load the device list.":`Inicie a instância do assistente para carregar a lista de dispositivos.`,custom_assistant_State:_a,custom_assistant_Status:va,"custom_assistant_Stop listening":`Pare de ouvir`,"custom_assistant_Stop reading answers aloud":`Pare de ler as respostas em voz alta.`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Chat de teste`,"custom_assistant_Thinking…":`Pensamento…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Traduzir todos os (%s) ausentes`,"custom_assistant_Translate name into %s":`Traduzir nome para %s`,"custom_assistant_Type a message…":`Digite uma mensagem…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:ya,"custom_assistant_change it on the Voice tab":`Altere isso na guia Voz.`,custom_assistant_device:ba,custom_assistant_filter:xa,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:Sa,custom_assistant_llm_downloading:Ca,custom_assistant_llm_error:wa,custom_assistant_llm_idle:Ta,custom_assistant_llm_installing:Ea,custom_assistant_llm_loading:Da,"custom_assistant_llm_not installed":`não instalado`,custom_assistant_llm_ready:Oa,"custom_assistant_no name in %s (showing %s)":`Nenhum nome em "%s" — exibindo "%s"`,custom_assistant_offline:ka,custom_assistant_online:Aa,custom_assistant_read:`Ler`,custom_assistant_room:ja,custom_assistant_sat_idle:Ma,custom_assistant_sat_listening:Na,custom_assistant_sat_offline:Pa,custom_assistant_sat_processing:Fa,custom_assistant_sat_speaking:Ia,custom_assistant_type:La,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:Ra,custom_assistant_write:za},X=e({custom_assistant_Announcement:()=>Va,custom_assistant_Cancel:()=>Ha,custom_assistant_Chat:()=>Ua,custom_assistant_Close:()=>Wa,custom_assistant_Delete:()=>Ga,custom_assistant_Host:()=>Ka,custom_assistant_Room:()=>qa,custom_assistant_Routine:()=>Ja,custom_assistant_Satellite:()=>Ya,custom_assistant_Satellites:()=>Xa,custom_assistant_Script:()=>Za,custom_assistant_Source:()=>Qa,custom_assistant_Speak:()=>$a,custom_assistant_State:()=>eo,custom_assistant_Status:()=>to,custom_assistant_auto:()=>no,custom_assistant_device:()=>ro,custom_assistant_filter:()=>io,custom_assistant_hint:()=>ao,custom_assistant_llm_downloading:()=>oo,custom_assistant_llm_error:()=>so,custom_assistant_llm_idle:()=>co,custom_assistant_llm_installing:()=>lo,custom_assistant_llm_loading:()=>uo,custom_assistant_llm_ready:()=>fo,custom_assistant_offline:()=>po,custom_assistant_online:()=>mo,custom_assistant_read:()=>ho,custom_assistant_room:()=>go,custom_assistant_sat_idle:()=>_o,custom_assistant_sat_listening:()=>vo,custom_assistant_sat_offline:()=>yo,custom_assistant_sat_processing:()=>bo,custom_assistant_sat_speaking:()=>xo,custom_assistant_type:()=>So,custom_assistant_wake_word_hint:()=>Co,custom_assistant_write:()=>wo,default:()=>To}),Va=`Объявление`,Ha=`Отмена`,Ua=`Чат`,Wa=`Закрыть`,Ga=`Удалить`,Ka=`Хозяин`,qa=`Комната`,Ja=`Сценарий`,Ya=`Спутник`,Xa=`Спутники`,Za=`Скрипт`,Qa=`Источник`,$a=`Говорить`,eo=`Состояние`,to=`Статус`,no=`авто`,ro=`Устройство`,io=`Фильтр`,ao=`Снимите флажок «Чтение», чтобы скрыть устройство от голосового помощника, или снимите флажок «Запись», чтобы оставить его только для чтения (например, блокировка). По умолчанию устройствам разрешен полный доступ.`,oo=`Загрузка модели…`,so=`ошибка`,co=`праздный`,lo=`установка двигателя…`,uo=`Загрузка…`,fo=`готовый`,po=`офлайн`,mo=`онлайн`,ho=`Читать`,go=`Комната`,_o=`праздный`,vo=`слушание`,yo=`офлайн`,bo=`обработка`,xo=`Говорящий`,So=`Тип`,Co=`Слово активации обрабатывается на устройстве. Наведите курсор на слово, чтобы увидеть, на каких языках оно обучено — большинство только на английском.`,wo=`Писать`,To={"custom_assistant_%s of %s active":`активно %s из %s`,"custom_assistant_(no spoken answer)":`(без голосового ответа)`,"custom_assistant_All sources":`Все источники`,custom_assistant_Announcement:Va,custom_assistant_Cancel:Ha,custom_assistant_Chat:Ua,"custom_assistant_Clear chat":`Четкий чат`,custom_assistant_Close:Wa,"custom_assistant_Cloud LLM":`Облачная LLM`,custom_assistant_Delete:Ga,"custom_assistant_Delete the recorded history of all sources?":`Удалить записанную историю всех источников?`,"custom_assistant_Device cache cleared.":`Кэш устройства очищен.`,"custom_assistant_Device settings":`Настройки устройства`,"custom_assistant_Hide disabled":`Скрыть отключено`,"custom_assistant_Hide processing details":`Скрыть детали обработки`,custom_assistant_Host:Ka,"custom_assistant_Last seen":`Последний раз видели`,"custom_assistant_Listening…":`Слушаю…`,"custom_assistant_Local LLM":`Локальная LLM`,"custom_assistant_Local model":`Локальная модель`,"custom_assistant_Mic re-opened without wake word":`Микрофон снова открыт без слова активации (уточнение или вопрос)`,"custom_assistant_Name language: %s":`Название языка: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Устройства не обнаружены. Назначьте состояния комнатам и функциям в ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Сообщений пока нет. Задайте вопрос ниже.`,"custom_assistant_No satellites registered yet.":`Спутники пока не зарегистрированы.`,"custom_assistant_Not understood":`Не понято`,"custom_assistant_Per-device permissions":`Разрешения для каждого устройства`,"custom_assistant_Play answer (backend TTS)":`Воспроизвести ответ (синтезатор речи на стороне сервера)`,"custom_assistant_Read answers aloud":`Прочитайте ответы вслух.`,"custom_assistant_Refresh device cache":`Обновить кэш устройства`,"custom_assistant_Reply to a question":`Ответ на вопрос`,custom_assistant_Room:qa,custom_assistant_Routine:Ja,"custom_assistant_Rule-based NLU":`Правила NLU (локально)`,custom_assistant_Satellite:Ya,custom_assistant_Satellites:Xa,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Сохраните конфигурацию (при этом экземпляр перезапустится) перед началом чата.`,custom_assistant_Script:Za,"custom_assistant_Send announcement":`Отправить объявление`,"custom_assistant_Settings for %s":`Настройки для %s`,"custom_assistant_Show processing details":`Показать детали обработки`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Показывает все запросы в реальном времени: сателлиты, Telegram, скрипты и этот чат.`,custom_assistant_Source:Qa,custom_assistant_Speak:$a,"custom_assistant_Speak on all satellites":`Выступить на всех спутниках`,"custom_assistant_Speech recognition time":`Время распознавания речи`,"custom_assistant_Start the assistant instance to chat.":`Запустите экземпляр ассистента для начала чата.`,"custom_assistant_Start the assistant instance to load the device list.":`Запустите экземпляр помощника, чтобы загрузить список устройств.`,custom_assistant_State:eo,custom_assistant_Status:to,"custom_assistant_Stop listening":`Прекратите слушать`,"custom_assistant_Stop reading answers aloud":`Прекратите зачитывать ответы вслух.`,"custom_assistant_Stop word":`Стоп-слово`,"custom_assistant_Test chat":`Тестовый чат`,"custom_assistant_Thinking…":`Размышления…`,"custom_assistant_This satellite exposes no settings.":`Этот сателлит не предоставляет настроек.`,"custom_assistant_Translate all missing (%s)":`Переведите все отсутствующие (%s)`,"custom_assistant_Translate name into %s":`Переведите имя в %s`,"custom_assistant_Type a message…":`Введите сообщение…`,"custom_assistant_Wake word":`Слово активации`,"custom_assistant_Wake words":`Слова активации`,custom_assistant_auto:no,"custom_assistant_change it on the Voice tab":`Измените это на вкладке «Голос».`,custom_assistant_device:ro,custom_assistant_filter:io,"custom_assistant_follow-up":`продолжение`,custom_assistant_hint:ao,custom_assistant_llm_downloading:oo,custom_assistant_llm_error:so,custom_assistant_llm_idle:co,custom_assistant_llm_installing:lo,custom_assistant_llm_loading:uo,"custom_assistant_llm_not installed":`не установлен`,custom_assistant_llm_ready:fo,"custom_assistant_no name in %s (showing %s)":`Имя отсутствует в "%s" — отображается "%s"`,custom_assistant_offline:po,custom_assistant_online:mo,custom_assistant_read:ho,custom_assistant_room:go,custom_assistant_sat_idle:_o,custom_assistant_sat_listening:vo,custom_assistant_sat_offline:yo,custom_assistant_sat_processing:bo,custom_assistant_sat_speaking:xo,custom_assistant_type:So,"custom_assistant_waits for reply":`ждёт ответа`,custom_assistant_wake_word_hint:Co,custom_assistant_write:wo},Z=e({custom_assistant_Announcement:()=>Eo,custom_assistant_Cancel:()=>Do,custom_assistant_Chat:()=>Oo,custom_assistant_Close:()=>ko,custom_assistant_Delete:()=>Ao,custom_assistant_Host:()=>jo,custom_assistant_Room:()=>Mo,custom_assistant_Routine:()=>No,custom_assistant_Satellite:()=>Po,custom_assistant_Satellites:()=>Fo,custom_assistant_Script:()=>Io,custom_assistant_Source:()=>Lo,custom_assistant_Speak:()=>Ro,custom_assistant_State:()=>zo,custom_assistant_Status:()=>Bo,custom_assistant_auto:()=>Vo,custom_assistant_device:()=>Ho,custom_assistant_filter:()=>Uo,custom_assistant_hint:()=>Wo,custom_assistant_llm_downloading:()=>Go,custom_assistant_llm_error:()=>Ko,custom_assistant_llm_idle:()=>qo,custom_assistant_llm_installing:()=>Jo,custom_assistant_llm_loading:()=>Yo,custom_assistant_llm_ready:()=>Xo,custom_assistant_offline:()=>Zo,custom_assistant_online:()=>Qo,custom_assistant_read:()=>$o,custom_assistant_room:()=>es,custom_assistant_sat_idle:()=>ts,custom_assistant_sat_listening:()=>ns,custom_assistant_sat_offline:()=>rs,custom_assistant_sat_processing:()=>is,custom_assistant_sat_speaking:()=>as,custom_assistant_type:()=>os,custom_assistant_wake_word_hint:()=>ss,custom_assistant_write:()=>cs,default:()=>ls}),Eo=`Оголошення`,Do=`Cancel`,Oo=`Chat`,ko=`Close`,Ao=`Delete`,jo=`Хост`,Mo=`Room`,No=`Routine`,Po=`Супутник`,Fo=`Супутники`,Io=`Script`,Lo=`Source`,Ro=`Говоріть`,zo=`State`,Bo=`Статус`,Vo=`авто`,Ho=`Пристрій`,Uo=`Фільтр`,Wo=`Зніміть позначку «Читання», щоб приховати пристрій від помічника, або «Запис», щоб залишити його в режимі лише для читання (наприклад, блокування). За замовчуванням пристрої повністю дозволені.`,Go=`завантаження моделі…`,Ko=`помилка`,qo=`бездіяльність`,Jo=`встановлення двигуна…`,Yo=`завантаження…`,Xo=`готовий`,Zo=`офлайн`,Qo=`онлайн`,$o=`Читати`,es=`Кімната`,ts=`бездіяльність`,ns=`прослуховування`,rs=`офлайн`,is=`обробка`,as=`розмова`,os=`Тип`,ss=`Слово активації обробляється на пристрої. Наведіть курсор на слово, щоб побачити, якими мовами його навчено — більшість лише англійською.`,cs=`Написати`,ls={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:Eo,custom_assistant_Cancel:Do,custom_assistant_Chat:Oo,"custom_assistant_Clear chat":`Очистити чат`,custom_assistant_Close:ko,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:Ao,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`Кеш пристрою очищено.`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`Приховати вимкнено`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:jo,"custom_assistant_Last seen":`Бачили востаннє`,"custom_assistant_Listening…":`Слухання…`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`Локальна модель`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`Мова назви: %s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`Пристроїв не виявлено. Призначте стани кімнатам та функціям в ioBroker.`,"custom_assistant_No messages yet. Type a question below.":`Поки що немає повідомлень. Введіть запитання нижче.`,"custom_assistant_No satellites registered yet.":`Поки що не зареєстровано жодного супутника.`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`Дозволи для кожного пристрою`,"custom_assistant_Play answer (backend TTS)":`Відтворити відповідь (бекенд TTS)`,"custom_assistant_Read answers aloud":`Прочитайте відповіді вголос`,"custom_assistant_Refresh device cache":`Оновити кеш пристрою`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:Mo,custom_assistant_Routine:No,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:Po,custom_assistant_Satellites:Fo,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`Збережіть конфігурацію (екземпляр перезавантажиться) перед спілкуванням у чаті.`,custom_assistant_Script:Io,"custom_assistant_Send announcement":`Надіслати оголошення`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:Lo,custom_assistant_Speak:Ro,"custom_assistant_Speak on all satellites":`Розмовляйте на всіх супутниках`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`Запустіть екземпляр помічника для спілкування в чаті.`,"custom_assistant_Start the assistant instance to load the device list.":`Запустіть екземпляр помічника, щоб завантажити список пристроїв.`,custom_assistant_State:zo,custom_assistant_Status:Bo,"custom_assistant_Stop listening":`Перестань слухати`,"custom_assistant_Stop reading answers aloud":`Перестаньте читати відповіді вголос`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`Тестовий чат`,"custom_assistant_Thinking…":`Мислення…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`Перекласти все, що відсутні (%s)`,"custom_assistant_Translate name into %s":`Перекладіть назву мовою %s`,"custom_assistant_Type a message…":`Введіть повідомлення…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:Vo,"custom_assistant_change it on the Voice tab":`змінити це на вкладці «Голос»`,custom_assistant_device:Ho,custom_assistant_filter:Uo,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:Wo,custom_assistant_llm_downloading:Go,custom_assistant_llm_error:Ko,custom_assistant_llm_idle:qo,custom_assistant_llm_installing:Jo,custom_assistant_llm_loading:Yo,"custom_assistant_llm_not installed":`не встановлено`,custom_assistant_llm_ready:Xo,"custom_assistant_no name in %s (showing %s)":`Немає імені в "%s" — відображається "%s"`,custom_assistant_offline:Zo,custom_assistant_online:Qo,custom_assistant_read:$o,custom_assistant_room:es,custom_assistant_sat_idle:ts,custom_assistant_sat_listening:ns,custom_assistant_sat_offline:rs,custom_assistant_sat_processing:is,custom_assistant_sat_speaking:as,custom_assistant_type:os,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:ss,custom_assistant_write:cs},Q=e({custom_assistant_Announcement:()=>us,custom_assistant_Cancel:()=>ds,custom_assistant_Chat:()=>fs,custom_assistant_Close:()=>ps,custom_assistant_Delete:()=>ms,custom_assistant_Host:()=>hs,custom_assistant_Room:()=>gs,custom_assistant_Routine:()=>_s,custom_assistant_Satellite:()=>vs,custom_assistant_Satellites:()=>ys,custom_assistant_Script:()=>bs,custom_assistant_Source:()=>xs,custom_assistant_Speak:()=>Ss,custom_assistant_State:()=>Cs,custom_assistant_Status:()=>ws,custom_assistant_auto:()=>Ts,custom_assistant_device:()=>Es,custom_assistant_filter:()=>Ds,custom_assistant_hint:()=>Os,custom_assistant_llm_downloading:()=>ks,custom_assistant_llm_error:()=>As,custom_assistant_llm_idle:()=>js,custom_assistant_llm_installing:()=>Ms,custom_assistant_llm_loading:()=>Ns,custom_assistant_llm_ready:()=>Ps,custom_assistant_offline:()=>Fs,custom_assistant_online:()=>Is,custom_assistant_read:()=>`读`,custom_assistant_room:()=>Ls,custom_assistant_sat_idle:()=>Rs,custom_assistant_sat_listening:()=>zs,custom_assistant_sat_offline:()=>Bs,custom_assistant_sat_processing:()=>Vs,custom_assistant_sat_speaking:()=>Hs,custom_assistant_type:()=>Us,custom_assistant_wake_word_hint:()=>Ws,custom_assistant_write:()=>`写`,default:()=>Gs}),us=`公告`,ds=`Cancel`,fs=`Chat`,ps=`Close`,ms=`Delete`,hs=`主持人`,gs=`Room`,_s=`Routine`,vs=`卫星`,ys=`卫星`,bs=`Script`,xs=`Source`,Ss=`说话`,Cs=`State`,ws=`地位`,Ts=`汽车`,Es=`设备`,Ds=`筛选`,Os=`取消勾选“读取”选项可将设备对语音助手隐藏,取消勾选“写入”选项可将其设置为只读(例如,锁定设备)。设备默认设置为完全允许访问。`,ks=`正在下载模型…`,As=`错误`,js=`闲置的`,Ms=`安装发动机…`,Ns=`加载中…`,Ps=`准备好`,Fs=`离线`,Is=`在线的`,Ls=`房间`,Rs=`闲置的`,zs=`聆听`,Bs=`离线`,Vs=`加工`,Hs=`请讲`,Us=`类型`,Ws=`唤醒词在设备上运行。将鼠标悬停在某个词上可查看它训练所用的语言——大多数仅支持英语。`,Gs={"custom_assistant_%s of %s active":`%s of %s active`,"custom_assistant_(no spoken answer)":`(no spoken answer)`,"custom_assistant_All sources":`All sources`,custom_assistant_Announcement:us,custom_assistant_Cancel:ds,custom_assistant_Chat:fs,"custom_assistant_Clear chat":`清晰聊天`,custom_assistant_Close:ps,"custom_assistant_Cloud LLM":`Cloud LLM`,custom_assistant_Delete:ms,"custom_assistant_Delete the recorded history of all sources?":`Delete the recorded history of all sources?`,"custom_assistant_Device cache cleared.":`设备缓存已清除。`,"custom_assistant_Device settings":`Device settings`,"custom_assistant_Hide disabled":`隐藏已禁用`,"custom_assistant_Hide processing details":`Hide processing details`,custom_assistant_Host:hs,"custom_assistant_Last seen":`最后一次出现`,"custom_assistant_Listening…":`正在听……`,"custom_assistant_Local LLM":`Local LLM`,"custom_assistant_Local model":`本地模型`,"custom_assistant_Mic re-opened without wake word":`Mic re-opened without wake word (follow-up or question)`,"custom_assistant_Name language: %s":`名称语言:%s`,"custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.":`未检测到设备。请在ioBroker中为房间和功能分配状态。`,"custom_assistant_No messages yet. Type a question below.":`暂无消息。请在下方输入问题。`,"custom_assistant_No satellites registered yet.":`目前尚未注册任何卫星。`,"custom_assistant_Not understood":`Not understood`,"custom_assistant_Per-device permissions":`每个设备的权限`,"custom_assistant_Play answer (backend TTS)":`播放答案(后端 TTS)`,"custom_assistant_Read answers aloud":`大声朗读答案`,"custom_assistant_Refresh device cache":`刷新设备缓存`,"custom_assistant_Reply to a question":`Reply to a question`,custom_assistant_Room:gs,custom_assistant_Routine:_s,"custom_assistant_Rule-based NLU":`Rule-based NLU (local)`,custom_assistant_Satellite:vs,custom_assistant_Satellites:ys,"custom_assistant_Save the configuration (the instance will restart) before chatting.":`聊天前请保存配置(实例将重启)。`,custom_assistant_Script:bs,"custom_assistant_Send announcement":`发送公告`,"custom_assistant_Settings for %s":`Settings for %s`,"custom_assistant_Show processing details":`Show processing details`,"custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.":`Shows all requests live: satellites, Telegram, scripts and this chat.`,custom_assistant_Source:xs,custom_assistant_Speak:Ss,"custom_assistant_Speak on all satellites":`在所有卫星上通话`,"custom_assistant_Speech recognition time":`Speech recognition time`,"custom_assistant_Start the assistant instance to chat.":`启动助手实例进行聊天。`,"custom_assistant_Start the assistant instance to load the device list.":`启动助手实例以加载设备列表。`,custom_assistant_State:Cs,custom_assistant_Status:ws,"custom_assistant_Stop listening":`别听了`,"custom_assistant_Stop reading answers aloud":`停止大声朗读答案`,"custom_assistant_Stop word":`Stop word`,"custom_assistant_Test chat":`测试聊天`,"custom_assistant_Thinking…":`思维…`,"custom_assistant_This satellite exposes no settings.":`This satellite exposes no settings.`,"custom_assistant_Translate all missing (%s)":`翻译所有缺失值(%s)`,"custom_assistant_Translate name into %s":`将名称翻译成 %s`,"custom_assistant_Type a message…":`输入消息…`,"custom_assistant_Wake word":`Wake word`,"custom_assistant_Wake words":`Wake words`,custom_assistant_auto:Ts,"custom_assistant_change it on the Voice tab":`在“语音”选项卡上更改。`,custom_assistant_device:Es,custom_assistant_filter:Ds,"custom_assistant_follow-up":`follow-up`,custom_assistant_hint:Os,custom_assistant_llm_downloading:ks,custom_assistant_llm_error:As,custom_assistant_llm_idle:js,custom_assistant_llm_installing:Ms,custom_assistant_llm_loading:Ns,"custom_assistant_llm_not installed":`未安装`,custom_assistant_llm_ready:Ps,"custom_assistant_no name in %s (showing %s)":`“%s”中没有名称——显示“%s”`,custom_assistant_offline:Fs,custom_assistant_online:Is,custom_assistant_read:`读`,custom_assistant_room:Ls,custom_assistant_sat_idle:Rs,custom_assistant_sat_listening:zs,custom_assistant_sat_offline:Bs,custom_assistant_sat_processing:Vs,custom_assistant_sat_speaking:Hs,custom_assistant_type:Us,"custom_assistant_waits for reply":`waits for reply`,custom_assistant_wake_word_hint:Ws,custom_assistant_write:`写`};de();var Ks={},qs=Object.assign({"./i18n/de.json":F,"./i18n/en.json":H,"./i18n/es.json":U,"./i18n/fr.json":W,"./i18n/it.json":G,"./i18n/nl.json":K,"./i18n/pl.json":J,"./i18n/pt.json":Y,"./i18n/ru.json":X,"./i18n/uk.json":Z,"./i18n/zh-cn.json":Q});for(let[e,t]of Object.entries(qs)){var Js;let n=((Js=e.split(`/`).pop())==null?void 0:Js.replace(`.json`,``))||`en`;Ks[n]=t.default}D.extendTranslations(Ks);var Ys=new Set([`temperature`,`humidity`,`illuminance`,`motion`,`door`,`window`,`windowTilt`,`fireAlarm`,`floodAlarm`,`camera`,`weatherCurrent`,`weatherForecast`,`warning`,`location`,`info`,`chart`,`image`,`instance`]);function Xs(e){return e===`lock`?{read:!0,write:!1}:{read:!0,write:!0}}var Zs=[{value:`en`,label:`English`},{value:`de`,label:`Deutsch`},{value:`ru`,label:`Русский`},{value:`pt`,label:`Português`},{value:`nl`,label:`Nederlands`},{value:`fr`,label:`Français`},{value:`it`,label:`Italiano`},{value:`es`,label:`Español`},{value:`pl`,label:`Polski`},{value:`uk`,label:`Українська`},{value:`zh-cn`,label:`简体中文`}],Qs=class extends P{constructor(e){super(e),C(this,`aliveSubId`,``),C(this,`onAliveChange`,(e,t)=>{let n=!!(t!=null&&t.val);n!==this.state.alive&&this.setState({alive:n,loading:n},()=>{n&&this.loadDevices()})}),this.state={...this.state,devices:[],loading:!0,alive:!1,filter:``,edits:{},savingKey:``,translatingKeys:{},rowStatus:{},hideDisabled:!1}}rowColor(e){switch(this.state.rowStatus[e]){case`dirty`:return`rgba(128,128,128,0.20)`;case`saving`:return`rgba(244,67,54,0.20)`;case`saved`:return`rgba(76,175,80,0.28)`;default:return}}setRowStatus(e,t){this.setState(n=>{let r={...n.rowStatus};return t?r[e]=t:delete r[e],{rowStatus:r}})}get instanceId(){let e=this.props.oContext;return`${e.adapterName}.${e.instance}`}get editLang(){return String(this.props.data.voiceLanguage||``)||D.getLanguage()}componentDidUpdate(e){String(e.data.voiceLanguage||``)!==String(this.props.data.voiceLanguage||``)&&Object.keys(this.state.edits).length&&this.setState({edits:{}})}async componentDidMount(){super.componentDidMount(),this.aliveSubId=`system.adapter.${this.instanceId}.alive`;let e=!1;try{let t=await this.props.oContext.socket.getState(this.aliveSubId);e=!!(t!=null&&t.val)}catch{e=!1}this.setState({alive:e},()=>void this.loadDevices()),this.props.oContext.socket.subscribeState(this.aliveSubId,this.onAliveChange)}componentWillUnmount(){var e;this.aliveSubId&&this.props.oContext.socket.unsubscribeState(this.aliveSubId,this.onAliveChange),(e=super.componentWillUnmount)==null||e.call(this)}async loadDevices(e=4){if(!this.state.alive){this.setState({loading:!1});return}let t=[];try{let e=await this.props.oContext.socket.sendTo(this.instanceId,`getDevices`,{language:D.getLanguage()});t=(Array.isArray(e)?e:[]).filter(e=>e.type!==`button`)}catch{t=[]}!t.length&&e>0?setTimeout(()=>{this.state.alive&&this.loadDevices(e-1)},1200):this.setState({devices:t,edits:{},loading:!1})}nameFor(e){let t=this.editLang,n=e.smartName;if(typeof n==`string`&&n)return{value:n,exact:!0,from:``};if(n&&typeof n==`object`){if(n[t])return{value:n[t],exact:!0,from:t};let e=n.en?`en`:Object.keys(n)[0];if(e&&n[e])return{value:n[e],exact:!1,from:e}}return{value:e.autoName||e.name||``,exact:!1,from:`auto`}}fieldValue(e){return this.state.edits[e.key]??this.nameFor(e).value}onNameChange(e,t){let n=this.state.devices.find(t=>t.key===e),r=n?this.nameFor(n).value:``;this.setState(n=>{let i={...n.rowStatus};return t===r?i[e]===`dirty`&&delete i[e]:i[e]=`dirty`,{edits:{...n.edits,[e]:t},rowStatus:i}})}flashSaved(e){this.setRowStatus(e,`saved`),setTimeout(()=>{this.state.rowStatus[e]===`saved`&&this.setRowStatus(e,null)},2e3)}applyLocalName(e,t,n){this.setState(r=>({devices:r.devices.map(r=>{if(r.key!==e)return r;let i=r.smartName&&typeof r.smartName==`object`?{...r.smartName}:typeof r.smartName==`string`&&r.smartName?{en:r.smartName}:{};return n?i[t]=n:delete i[t],{...r,smartName:i}}),edits:(()=>{let t={...r.edits};return delete t[e],t})()}))}async saveName(e){let t=this.state.edits[e.key];if(t===void 0||t===this.nameFor(e).value)return;let n=this.editLang;this.setState({savingKey:e.key}),this.setRowStatus(e.key,`saving`);try{await this.props.oContext.socket.sendTo(this.instanceId,`setDeviceName`,{stateId:e.key,name:t,language:n}),this.applyLocalName(e.key,n,t.trim()),this.flashSaved(e.key)}catch{this.setRowStatus(e.key,`dirty`)}this.setState({savingKey:``})}async translateName(e){let t=this.nameFor(e).value,n=e.key;if(!t||this.state.translatingKeys[n])return;let r=this.editLang;this.setState(e=>({translatingKeys:{...e.translatingKeys,[n]:!0}})),this.setRowStatus(n,`saving`);try{var i;let e=await this.props.oContext.socket.sendTo(this.instanceId,`translateName`,{text:t,targetLang:r}),a=e==null||(i=e.translation)==null?void 0:i.trim();a?(await this.props.oContext.socket.sendTo(this.instanceId,`setDeviceName`,{stateId:n,name:a,language:r}),this.applyLocalName(n,r,a),this.flashSaved(n)):this.setRowStatus(n,null)}catch{this.setRowStatus(n,null)}this.setState(e=>{let t={...e.translatingKeys};return delete t[n],{translatingKeys:t}})}async translateAllMissing(){let e=this.state.devices.filter(e=>!this.nameFor(e).exact&&!this.state.translatingKeys[e.key]);await Promise.all(e.map(e=>this.translateName(e)))}getAcl(e){var t;return((t=this.props.data.deviceAcl)==null?void 0:t[e.key])||Xs(e.type)}setAcl(e,t){let n=JSON.parse(JSON.stringify(this.props.data));n.deviceAcl=n.deviceAcl||{};let r=Xs(e.type),i={...n.deviceAcl[e.key]||r,...t};i.read===r.read&&i.write===r.write?delete n.deviceAcl[e.key]:n.deviceAcl[e.key]=i,this.props.onChange(n)}renderItem(){var e;if(this.state.loading)return y(l,{});if(!this.state.alive)return y(E,{sx:{p:2},color:`warning.main`,children:D.t(`custom_assistant_Start the assistant instance to load the device list.`)});if(!this.state.devices.length)return y(E,{sx:{p:2},children:D.t(`custom_assistant_No devices detected. Assign states to rooms and functions in ioBroker.`)});let t=this.state.filter.trim().toLowerCase(),i=t?this.state.devices.filter(e=>`${e.name} ${e.type} ${e.room}`.toLowerCase().includes(t)):this.state.devices;this.state.hideDisabled&&(i=i.filter(e=>this.getAcl(e).read));let a=this.props.oContext.themeType===`dark`;return _(S,{sx:{width:`100%`},children:[y(E,{variant:`h6`,sx:{mt:1},children:D.t(`custom_assistant_Per-device permissions`)}),y(E,{variant:`body2`,sx:{mb:1},color:`text.secondary`,children:D.t(`custom_assistant_hint`)}),_(S,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:1,flexWrap:`wrap`},children:[y(O,{size:`small`,color:`primary`,variant:`outlined`,label:D.t(`custom_assistant_Name language: %s`,((e=Zs.find(e=>e.value===this.editLang))==null?void 0:e.label)||this.editLang)}),y(E,{variant:`caption`,color:`text.secondary`,children:D.t(`custom_assistant_change it on the Voice tab`)}),(()=>{let e=this.state.devices.filter(e=>!this.nameFor(e).exact).length,t=Object.keys(this.state.translatingKeys).length>0;return y(A,{size:`small`,variant:`outlined`,startIcon:t?y(w,{size:14}):y(s,{}),disabled:!e||t,onClick:()=>void this.translateAllMissing(),children:D.t(`custom_assistant_Translate all missing (%s)`,e)})})(),y(S,{sx:{flex:1}}),y(r,{control:y(p,{size:`small`,checked:this.state.hideDisabled,onChange:e=>this.setState({hideDisabled:e.target.checked})}),label:D.t(`custom_assistant_Hide disabled`)}),y(T,{variant:`standard`,size:`small`,label:`Filter`,value:this.state.filter,onChange:e=>this.setState({filter:e.target.value}),sx:{width:320}})]}),y(ce,{component:oe,sx:{width:`100%`},children:_(f,{size:`small`,children:[y(h,{children:_(n,{sx:{background:a?`#333`:`#DDD`},children:[y(v,{children:D.t(`custom_assistant_device`)}),y(v,{children:D.t(`custom_assistant_type`)}),y(v,{children:D.t(`custom_assistant_room`)}),y(v,{align:`center`,children:D.t(`custom_assistant_read`)}),y(v,{align:`center`,children:D.t(`custom_assistant_write`)})]})}),y(se,{children:i.map(e=>{let t=this.getAcl(e),r=e.writableStateIds.length>0&&!Ys.has(e.type),i=!t.read;return _(n,{sx:{background:this.rowColor(e.key),opacity:i?.5:1,transition:`background-color 0.4s`},children:[_(v,{children:[(()=>{let t=this.nameFor(e),n=!!this.state.translatingKeys[e.key],r=this.state.savingKey===e.key||n;return _(S,{sx:{display:`flex`,alignItems:`flex-start`,gap:.5},children:[y(T,{variant:`standard`,size:`small`,fullWidth:!0,value:this.fieldValue(e),disabled:r,error:!t.exact&&!this.state.edits[e.key],helperText:!t.exact&&!this.state.edits[e.key]?D.t(`custom_assistant_no name in %s (showing %s)`,this.editLang,t.from===`auto`?D.t(`custom_assistant_auto`):t.from):` `,onChange:t=>this.onNameChange(e.key,t.target.value),onBlur:()=>void this.saveName(e),onKeyDown:e=>{e.key===`Enter`&&e.target.blur()},slotProps:{input:{endAdornment:this.state.savingKey===e.key?y(w,{size:14}):null}}}),y(x,{title:D.t(`custom_assistant_Translate name into %s`,this.editLang),children:y(`span`,{children:y(m,{size:`small`,disabled:r,onClick:()=>void this.translateName(e),children:n?y(w,{size:16}):y(s,{fontSize:`small`})})})})]})})(),e.stateIds.length?y(E,{variant:`caption`,component:`div`,sx:{wordBreak:`break-all`,fontStyle:`italic`,opacity:.7,fontSize:`smaller`},children:e.stateIds.join(`, `)}):null]}),y(v,{children:_(S,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[y(ue,{type:e.type,style:{width:20,height:20}}),y(`span`,{children:D.t(`type-${e.type}`)})]})}),y(v,{children:e.room&&e.room!==`No room`?e.room:`-`}),y(v,{align:`center`,children:y(fe,{checked:t.read,onChange:()=>this.setAcl(e,{read:!t.read})})}),y(v,{align:`center`,children:y(fe,{checked:t.write&&r,disabled:!r,onChange:()=>this.setAcl(e,{write:!t.write})})})]},e.key)})})]})})]})}},$s={},ec=Object.assign({"./i18n/de.json":F,"./i18n/en.json":H,"./i18n/es.json":U,"./i18n/fr.json":W,"./i18n/it.json":G,"./i18n/nl.json":K,"./i18n/pl.json":J,"./i18n/pt.json":Y,"./i18n/ru.json":X,"./i18n/uk.json":Z,"./i18n/zh-cn.json":Q});for(let[e,t]of Object.entries(ec)){var tc;let n=((tc=e.split(`/`).pop())==null?void 0:tc.replace(`.json`,``))||`en`;$s[n]=t.default}D.extendTranslations($s);var nc={chat:`Chat`,script:`custom_assistant_Script`,state:`custom_assistant_State`,telegram:`Telegram`,esphome:`ESPHome`,udp:`UDP`,native:`ioBroker`,wyoming:`Wyoming`},rc={stop:`custom_assistant_Stop word`,askReply:`custom_assistant_Reply to a question`,routine:`custom_assistant_Routine`,nlu:`custom_assistant_Rule-based NLU`,localLlm:`custom_assistant_Local LLM`,cloud:`custom_assistant_Cloud LLM`,none:`custom_assistant_Not understood`},ic={stop:`#78909c`,askReply:`#78909c`,routine:`#00897b`,nlu:`#43a047`,localLlm:`#8e24aa`,cloud:`#1e88e5`,none:`#e53935`};function ac(e){return e.satellite||e.source||e.transport}function oc(e){return typeof e==`string`?`"${e}"`:JSON.stringify(e)}function $(e){return e===void 0?``:e<1e3?`${e} ms`:`${(e/1e3).toFixed(1)} s`}var sc=class extends P{constructor(e){super(e),C(this,`scrollRef`,t.createRef()),C(this,`aliveSubId`,``),C(this,`journalSubId`,``),C(this,`recognition`,null),C(this,`onJournalChange`,(e,t)=>{if(!(t!=null&&t.val)||typeof t.val!=`string`)return;let n;try{n=JSON.parse(t.val)}catch{return}if(!(n!=null&&n.id))return;let r=this.isNearBottom();this.setState(e=>({entries:{...e.entries,[n.id]:n}})),r&&this.scrollToBottom()}),C(this,`onAliveChange`,(e,t)=>{let n=!!(t!=null&&t.val),r=this.state.alive;this.setState({alive:n}),n&&!r&&(this.checkTtsAvailable(),this.loadJournal())}),C(this,`onKeyDown`,e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),this.send())});let n=!0;try{n=window.localStorage.getItem(`assistant.chat.details`)!==`0`}catch{}this.state={...this.state,messages:[],entries:{},journalEnabled:null,showDetails:n,filter:``,confirmClear:!1,input:``,sending:!1,alive:!1,listening:!1,speak:!1,ttsPlaying:``,ttsAvailable:!1}}async checkTtsAvailable(){try{let e=await this.props.oContext.socket.sendTo(this.instanceId,`ttsAvailable`,{});this.setState({ttsAvailable:!!(e!=null&&e.available)})}catch{this.setState({ttsAvailable:!1})}}async loadJournal(){try{let e=await this.props.oContext.socket.sendTo(this.instanceId,`getJournal`,{});if(!e||e.enabled===void 0){this.setState({journalEnabled:!1});return}let t={};for(let n of e.entries||[])t[n.id]=n;this.setState(n=>({journalEnabled:!!e.enabled,entries:{...t,...n.entries}})),this.scrollToBottom()}catch{this.setState({journalEnabled:!1})}}get speechSupported(){let e=window;return(!!e.SpeechRecognition||!!e.webkitSpeechRecognition)&&window.isSecureContext}get ttsSupported(){return typeof window<`u`&&`speechSynthesis`in window}speechLang(){return{de:`de-DE`,en:`en-US`,ru:`ru-RU`,pt:`pt-PT`,nl:`nl-NL`,fr:`fr-FR`,it:`it-IT`,es:`es-ES`,pl:`pl-PL`,uk:`uk-UA`,"zh-cn":`zh-CN`}[D.getLanguage()]||`en-US`}get instanceId(){let e=this.props.oContext;return`${e.adapterName}.${e.instance}`}async componentDidMount(){super.componentDidMount(),this.aliveSubId=`system.adapter.${this.instanceId}.alive`,this.journalSubId=`${this.instanceId}.journal.last`;let e=!1;try{let t=await this.props.oContext.socket.getState(this.aliveSubId);e=!!(t!=null&&t.val)}catch{e=!1}this.setState({alive:e}),e&&(this.checkTtsAvailable(),this.loadJournal()),this.props.oContext.socket.subscribeState(this.aliveSubId,this.onAliveChange),this.props.oContext.socket.subscribeState(this.journalSubId,this.onJournalChange)}componentWillUnmount(){var e;this.aliveSubId&&this.props.oContext.socket.unsubscribeState(this.aliveSubId,this.onAliveChange),this.journalSubId&&this.props.oContext.socket.unsubscribeState(this.journalSubId,this.onJournalChange);try{var t;(t=this.recognition)==null||t.stop()}catch{}this.ttsSupported&&window.speechSynthesis.cancel(),(e=super.componentWillUnmount)==null||e.call(this)}toggleListening(){if(this.state.listening){var e;(e=this.recognition)==null||e.stop();return}let t=window,n=t.SpeechRecognition||t.webkitSpeechRecognition;if(!n)return;let r=new n;r.lang=this.speechLang(),r.interimResults=!1,r.continuous=!1,r.onresult=e=>{var t;let n=((t=e.results)==null||(t=t[0])==null||(t=t[0])==null?void 0:t.transcript)||``;n&&this.setState({input:n},()=>void this.send())},r.onerror=()=>this.setState({listening:!1}),r.onend=()=>this.setState({listening:!1}),this.recognition=r,this.setState({listening:!0});try{r.start()}catch{this.setState({listening:!1})}}speak(e){if(!this.ttsSupported||!e)return;window.speechSynthesis.cancel();let t=new SpeechSynthesisUtterance(e);t.lang=this.speechLang(),window.speechSynthesis.speak(t)}async playViaBackend(e,t){if(this.ready&&t){this.setState({ttsPlaying:e});try{let e=await this.props.oContext.socket.sendTo(this.instanceId,`tts`,{text:t});if(e!=null&&e.audio){let t=new Audio(`data:${e.mime||`audio/wav`};base64,${e.audio}`);t.onended=()=>this.setState({ttsPlaying:``}),t.onerror=()=>this.setState({ttsPlaying:``}),await t.play()}else this.setState({ttsPlaying:``})}catch{this.setState({ttsPlaying:``})}}}isNearBottom(){let e=this.scrollRef.current;return!e||e.scrollHeight-e.scrollTop-e.clientHeight<80}scrollToBottom(){setTimeout(()=>{let e=this.scrollRef.current;e&&(e.scrollTop=e.scrollHeight)},0)}get ready(){return this.state.alive&&!this.props.changed}addMessage(e){this.setState(t=>({messages:[...t.messages,e]})),this.scrollToBottom()}async send(){let e=this.state.input.trim();if(!e||this.state.sending||!this.ready)return;let t=!!this.state.journalEnabled;this.setState({input:``,sending:!0}),t||this.addMessage({role:`user`,text:e,ts:Date.now()}),this.state.filter&&this.state.filter!==`chat`&&this.setState({filter:``}),this.scrollToBottom();try{let t=await this.props.oContext.socket.sendTo(this.instanceId,`ask`,{text:e});(t==null?void 0:t.error)===void 0?t!=null&&t.journaled||this.addMessage({role:`assistant`,text:(t==null?void 0:t.answer)??``,ts:Date.now()}):t.journaled||this.addMessage({role:`error`,text:t.error,ts:Date.now()}),this.state.speak&&t!=null&&t.answer&&this.speak(t.answer)}catch(e){this.addMessage({role:`error`,text:e.message,ts:Date.now()})}this.setState({sending:!1})}async refreshCache(){if(this.ready)try{await this.props.oContext.socket.sendTo(this.instanceId,`clearCache`,{}),this.addMessage({role:`info`,text:D.t(`custom_assistant_Device cache cleared.`),ts:Date.now()})}catch{}}async clearHistory(){if(this.setState({confirmClear:!1,messages:[],entries:{}}),this.state.journalEnabled&&this.state.alive)try{await this.props.oContext.socket.sendTo(this.instanceId,`clearJournal`,{})}catch{}}toggleDetails(){let e=!this.state.showDetails;this.setState({showDetails:e});try{window.localStorage.setItem(`assistant.chat.details`,e?`1`:`0`)}catch{}}bubbleColors(e){let t=this.props.oContext.themeType===`dark`;return e===`user`?{bg:t?`#1e88e5`:`#2196f3`,color:`#fff`}:e===`error`?{bg:t?`#5d1f1f`:`#f8d7da`,color:t?`#ffb4b4`:`#842029`}:{bg:t?`#3a3a3a`:`#eceff1`,color:t?`#eee`:`#111`}}renderBubble(e,t,n,r,a={}){let o=t===`user`,{bg:s,color:c}=this.bubbleColors(t);return y(S,{sx:{display:`flex`,justifyContent:o?`flex-end`:`flex-start`,mb:.5},children:_(oe,{elevation:1,sx:{px:1.5,py:1,maxWidth:`75%`,background:s,color:c,borderRadius:2,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:[a.header,y(E,{variant:`body2`,component:`div`,children:n}),_(S,{sx:{display:`flex`,alignItems:`center`,justifyContent:`flex-end`,gap:.5},children:[a.footer,a.playText&&this.state.ttsAvailable?y(x,{title:D.t(`custom_assistant_Play answer (backend TTS)`),children:y(`span`,{children:y(m,{size:`small`,disabled:!this.ready||this.state.ttsPlaying===e,onClick:()=>void this.playViaBackend(e,a.playText||``),sx:{p:.25,color:`inherit`,opacity:.7},children:this.state.ttsPlaying===e?y(w,{size:12}):y(i,{sx:{fontSize:`0.9rem`}})})})}):null,y(E,{variant:`caption`,component:`div`,sx:{opacity:.6,fontSize:`0.65rem`},children:new Date(r).toLocaleTimeString()})]})]})},e)}renderMessage(e,t){return e.role===`info`?y(E,{variant:`caption`,component:`div`,sx:{textAlign:`center`,opacity:.6,my:1,fontStyle:`italic`},children:e.text},`m${t}`):this.renderBubble(`m${t}`,e.role,e.text,e.ts,{playText:e.role===`assistant`?e.text:void 0})}chip(e,n,r){let i=y(O,{size:`small`,label:e,sx:{height:18,fontSize:`0.68rem`,mr:.5,color:r?`#fff`:`inherit`,background:r||`rgba(127,127,127,0.25)`,"& .MuiChip-label":{px:.75}}});return n?y(x,{title:n,children:i},e):y(t.Fragment,{children:i},e)}renderOrigin(e){let t=[this.chip(D.t(nc[e.transport]||e.transport))],n=e.satellite||(e.transport===`chat`||e.transport===`state`?``:e.source);return n&&t.push(this.chip(n,D.t(`custom_assistant_Source`))),e.room&&e.room!==n&&t.push(this.chip(e.room,D.t(`custom_assistant_Room`))),e.wakeWord!==void 0&&t.push(e.wakeWord?this.chip(`🎙 ${e.wakeWord}`,D.t(`custom_assistant_Wake word`)):this.chip(`🎙 ${D.t(`custom_assistant_follow-up`)}`,D.t(`custom_assistant_Mic re-opened without wake word`))),e.sttMs!==void 0&&t.push(this.chip(`STT ${$(e.sttMs)}`,D.t(`custom_assistant_Speech recognition time`))),y(S,{sx:{mb:.5,opacity:.9},children:t})}renderDetails(e){if(!this.state.showDetails)return null;let t={fontFamily:`monospace`,fontSize:`0.72rem`},n=[];for(let[r,i]of e.tools.entries())n.push(_(S,{sx:{...t,color:i.error?`error.main`:void 0},children:[`🔧 `,i.name,`(`,JSON.stringify(i.args),`) → `,i.error?`⚠ ${i.error}`:i.result,` `,``,y(`span`,{style:{opacity:.6},children:$(i.ms)})]},`t${r}`));e.read.length&&n.push(_(S,{sx:t,children:[`📖 `,e.read.join(`, `)]},`r`));for(let[r,i]of e.written.entries())n.push(_(S,{sx:t,children:[`✏️ `,i.id,` = `,oc(i.value)]},`w${r}`));return _(S,{sx:{ml:1,mb:1.5,pl:1,borderLeft:`2px solid rgba(127,127,127,0.35)`,opacity:.85},children:[_(S,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:.25},children:[e.tier?this.chip(D.t(rc[e.tier]),void 0,ic[e.tier]):null,e.detail?y(E,{variant:`caption`,sx:{...t,mr:1},children:e.detail}):null,e.done?y(E,{variant:`caption`,sx:{opacity:.7},children:$(e.ms)}):null,e.followUp?this.chip(D.t(`custom_assistant_waits for reply`)):null]}),n]})}renderEntry(e){let n;return n=e.done?e.error?this.renderBubble(`${e.id}a`,`error`,e.error,e.ts+(e.ms||0)):this.renderBubble(`${e.id}a`,`assistant`,e.answer||y(`i`,{style:{opacity:.6},children:D.t(`custom_assistant_(no spoken answer)`)}),e.ts+(e.ms||0),{playText:e.answer||void 0}):_(S,{sx:{display:`flex`,alignItems:`center`,gap:1,p:1,opacity:.7},children:[y(w,{size:16}),y(E,{variant:`body2`,children:D.t(`custom_assistant_Thinking…`)})]},`${e.id}a`),_(t.Fragment,{children:[this.renderBubble(`${e.id}q`,`user`,e.question,e.ts,{header:this.renderOrigin(e)}),n,this.renderDetails(e)]},e.id)}renderTimeline(){let{entries:e,messages:t,filter:n}=this.state,r=[];for(let t of Object.values(e))n&&ac(t)!==n||r.push({ts:t.ts,el:()=>this.renderEntry(t)});return n&&n!==`chat`||t.forEach((e,t)=>r.push({ts:e.ts,el:()=>this.renderMessage(e,t)})),r.sort((e,t)=>e.ts-t.ts),r.map(e=>e.el())}renderFilter(){let e=[...new Set(Object.values(this.state.entries).map(ac))].sort();return!this.state.journalEnabled||e.length<2?null:_(k,{size:`small`,variant:`standard`,value:e.includes(this.state.filter)?this.state.filter:``,displayEmpty:!0,onChange:e=>this.setState({filter:String(e.target.value)}),sx:{mr:1,minWidth:140,fontSize:`0.85rem`},children:[y(g,{value:``,children:D.t(`custom_assistant_All sources`)}),e.map(e=>y(g,{value:e,children:e},e))]})}renderItem(){let e=this.props.oContext.themeType===`dark`,{alive:t,messages:n,entries:r,sending:i,input:a,listening:o,speak:s,journalEnabled:c,showDetails:l}=this.state,d=this.ready,f=this.renderTimeline(),p=!n.length&&!Object.keys(r).length;return _(S,{sx:{width:`100%`,display:`flex`,flexDirection:`column`,height:`calc(100vh - 300px)`},children:[_(S,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,mb:1},children:[_(S,{children:[y(E,{variant:`h6`,children:D.t(c?`custom_assistant_Chat`:`custom_assistant_Test chat`)}),c?y(E,{variant:`caption`,sx:{opacity:.7},children:D.t(`custom_assistant_Shows all requests live: satellites, Telegram, scripts and this chat.`)}):null]}),_(S,{sx:{display:`flex`,alignItems:`center`},children:[this.renderFilter(),c?y(x,{title:D.t(l?`custom_assistant_Hide processing details`:`custom_assistant_Show processing details`),children:y(m,{size:`small`,color:l?`primary`:`default`,onClick:()=>this.toggleDetails(),children:y(l?le:me,{})})}):null,this.ttsSupported?y(x,{title:D.t(s?`custom_assistant_Stop reading answers aloud`:`custom_assistant_Read answers aloud`),children:y(m,{size:`small`,color:s?`primary`:`default`,onClick:()=>{s&&window.speechSynthesis.cancel(),this.setState({speak:!s})},children:y(s?pe:ne,{})})}):null,y(x,{title:D.t(`custom_assistant_Refresh device cache`),children:y(`span`,{children:y(m,{size:`small`,disabled:!d,onClick:()=>void this.refreshCache(),children:y(te,{})})})}),y(x,{title:D.t(`custom_assistant_Clear chat`),children:y(`span`,{children:y(m,{size:`small`,disabled:p,onClick:()=>c?this.setState({confirmClear:!0}):void this.clearHistory(),children:y(ae,{})})})})]})]}),d?null:y(E,{sx:{p:2},color:`warning.main`,children:t?D.t(`custom_assistant_Save the configuration (the instance will restart) before chatting.`):D.t(`custom_assistant_Start the assistant instance to chat.`)}),_(S,{ref:this.scrollRef,sx:{flex:1,overflowY:`auto`,p:1,border:`1px solid ${e?`#444`:`#ccc`}`,borderRadius:1,background:e?`#1e1e1e`:`#fafafa`,mb:1},children:[f.length?f:y(E,{sx:{p:2,textAlign:`center`,opacity:.6},variant:`body2`,children:D.t(`custom_assistant_No messages yet. Type a question below.`)}),i&&!c?_(S,{sx:{display:`flex`,alignItems:`center`,gap:1,p:1,opacity:.7},children:[y(w,{size:16}),y(E,{variant:`body2`,children:D.t(`custom_assistant_Thinking…`)})]}):null]}),_(S,{sx:{display:`flex`,alignItems:`flex-end`,gap:1},children:[this.speechSupported?y(x,{title:D.t(o?`custom_assistant_Stop listening`:`custom_assistant_Speak`),children:y(`span`,{children:y(m,{color:o?`error`:`primary`,disabled:!d||i,onClick:()=>this.toggleListening(),children:y(he,{})})})}):null,y(T,{fullWidth:!0,multiline:!0,maxRows:4,size:`small`,variant:`outlined`,placeholder:D.t(o?`custom_assistant_Listening…`:`custom_assistant_Type a message…`),value:a,disabled:!d||i,onChange:e=>this.setState({input:e.target.value}),onKeyDown:this.onKeyDown}),y(m,{color:`primary`,disabled:!d||i||!a.trim(),onClick:()=>void this.send(),children:y(u,{})})]}),_(b,{open:this.state.confirmClear,onClose:()=>this.setState({confirmClear:!1}),children:[y(M,{children:D.t(`custom_assistant_Clear chat`)}),y(N,{children:y(E,{variant:`body2`,children:D.t(`custom_assistant_Delete the recorded history of all sources?`)})}),_(j,{children:[y(A,{color:`error`,variant:`contained`,onClick:()=>void this.clearHistory(),children:D.t(`custom_assistant_Delete`)}),y(A,{onClick:()=>this.setState({confirmClear:!1}),children:D.t(`custom_assistant_Cancel`)})]})]})]})}},cc={},lc=Object.assign({"./i18n/de.json":F,"./i18n/en.json":H,"./i18n/es.json":U,"./i18n/fr.json":W,"./i18n/it.json":G,"./i18n/nl.json":K,"./i18n/pl.json":J,"./i18n/pt.json":Y,"./i18n/ru.json":X,"./i18n/uk.json":Z,"./i18n/zh-cn.json":Q});for(let[e,t]of Object.entries(lc)){var uc;let n=((uc=e.split(`/`).pop())==null?void 0:uc.replace(`.json`,``))||`en`;cc[n]=t.default}D.extendTranslations(cc);var dc={ready:`success`,error:`error`,installing:`info`,downloading:`info`,loading:`info`},fc=class extends P{constructor(e){super(e),C(this,`statusId`,``),C(this,`progressId`,``),C(this,`onStatus`,(e,t)=>{this.setState({status:(t==null?void 0:t.val)||`idle`})}),C(this,`onProgress`,(e,t)=>{this.setState({progress:Number(t==null?void 0:t.val)||0})}),this.state={...this.state,status:`idle`,progress:0}}get instanceId(){let e=this.props.oContext;return`${e.adapterName}.${e.instance}`}async componentDidMount(){super.componentDidMount(),this.statusId=`${this.instanceId}.localLlm.status`,this.progressId=`${this.instanceId}.localLlm.progress`;let e=this.props.oContext.socket;try{let t=await e.getState(this.statusId),n=await e.getState(this.progressId);this.setState({status:(t==null?void 0:t.val)||`idle`,progress:Number(n==null?void 0:n.val)||0})}catch{}e.subscribeState(this.statusId,this.onStatus),e.subscribeState(this.progressId,this.onProgress)}componentWillUnmount(){var e;let t=this.props.oContext.socket;this.statusId&&(t.unsubscribeState(this.statusId,this.onStatus),t.unsubscribeState(this.progressId,this.onProgress)),(e=super.componentWillUnmount)==null||e.call(this)}renderItem(){let{status:e,progress:t}=this.state,n=e===`installing`||e===`downloading`||e===`loading`,r=e===`downloading`;return _(S,{sx:{width:`100%`,mt:.5,mb:1},children:[_(S,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:.5},children:[_(E,{variant:`body2`,children:[D.t(`custom_assistant_Local model`),`:`]}),y(O,{size:`small`,color:dc[e]||`default`,variant:`outlined`,label:D.t(`custom_assistant_llm_${e}`)}),r?_(E,{variant:`body2`,children:[Math.round(t),`%`]}):null]}),n?y(l,{variant:r?`determinate`:`indeterminate`,value:r?t:void 0}):null]})}};function pc(e){return e.common.write===!1}function mc(e){var n,r;let{values:i,objects:s,loading:c,onWrite:l}=e,u=t.useMemo(()=>{try{let e=i.availableWakeWords;return e?JSON.parse(String(e)):null}catch{return null}},[i.availableWakeWords]),f=String(i.wakeWords??``).split(`,`).map(e=>e.trim()).filter(Boolean),ee=e=>{let t=f.includes(e)?f.filter(t=>t!==e):[...f,e];l(`wakeWords`,t.join(`,`))},m=(u==null?void 0:u.max)||0,te=m>0&&f.length>=m,ne=Object.keys(s).sort(),h=new Map;for(let e of ne){let t=e.replace(/^controls\./,``),n=t.indexOf(`.`),r=n<0?t:t.slice(0,n);h.set(r,[...h.get(r)||[],e])}function re(e){let t=s[e],n=t.common,r=n.name&&typeof n.name==`string`?n.name:e,c=i[e];if(n.role===`button`)return y(A,{size:`small`,variant:`outlined`,onClick:()=>l(e,!0),children:r},e);if(pc(t))return _(S,{children:[y(E,{variant:`caption`,sx:{opacity:.7},children:r}),y(E,{variant:`body2`,children:c==null?`—`:String(c)})]},e);if(n.type===`boolean`)return _(S,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[y(E,{variant:`body2`,children:r}),y(p,{size:`small`,checked:!!c,onChange:t=>l(e,t.target.checked)})]},e);if(n.states){let t=Array.isArray(n.states)?Object.fromEntries(n.states.map(e=>[e,e])):n.states;return _(a,{size:`small`,fullWidth:!0,children:[y(o,{children:r}),y(k,{label:r,value:c==null?``:String(c),onChange:t=>l(e,t.target.value),children:Object.entries(t).map(([e,t])=>y(g,{value:e,children:t},e))})]},e)}if(n.type===`number`&&n.min!==void 0&&n.max!==void 0){let t=Number(c??n.min);return _(S,{children:[_(E,{variant:`body2`,children:[r,_(E,{component:`span`,variant:`caption`,sx:{ml:1,opacity:.7},children:[t,n.unit||``,` (`,n.min,`…`,n.max,`)`]})]}),y(d,{size:`small`,value:Number.isFinite(t)?t:n.min,min:n.min,max:n.max,step:n.step||1,onChangeCommitted:(t,n)=>l(e,Array.isArray(n)?n[0]:n),valueLabelDisplay:`auto`})]},e)}return y(T,{size:`small`,fullWidth:!0,label:r,defaultValue:c==null?``:String(c),onBlur:t=>l(e,t.target.value),onKeyDown:t=>{t.key===`Enter`&&l(e,t.target.value)}},e)}return _(b,{open:!0,onClose:e.onClose,maxWidth:`sm`,fullWidth:!0,children:[_(M,{children:[D.t(`custom_assistant_Settings for %s`,e.satId),e.room?y(E,{variant:`caption`,sx:{ml:1,opacity:.7},children:e.room}):null]}),y(N,{dividers:!0,children:c?y(S,{sx:{display:`flex`,justifyContent:`center`,p:3},children:y(w,{size:28})}):_(S,{sx:{display:`flex`,flexDirection:`column`,gap:2},children:[u!=null&&(n=u.words)!=null&&n.length?_(S,{children:[_(E,{variant:`subtitle2`,children:[D.t(`custom_assistant_Wake words`),y(E,{component:`span`,variant:`caption`,sx:{ml:1,opacity:.7},children:D.t(`custom_assistant_%s of %s active`,f.length,m)})]}),y(S,{sx:{display:`flex`,flexWrap:`wrap`,gap:.5,mt:1},children:u.words.map(e=>{let t=f.includes(e.id);return y(x,{title:e.languages.join(`, `),children:y(O,{size:`small`,label:e.phrase||e.id,color:t?`primary`:`default`,variant:t?`filled`:`outlined`,disabled:!t&&te,onClick:()=>ee(e.id),sx:{border:`1px solid`,borderColor:t?`primary.main`:`text.secondary`,bgcolor:t?void 0:`action.hover`,fontWeight:t?600:400}})},e.id)})}),y(E,{variant:`caption`,sx:{display:`block`,mt:.5,opacity:.7},children:D.t(`custom_assistant_wake_word_hint`)})]}):null,u!=null&&(r=u.words)!=null&&r.length&&h.size?y(ie,{}):null,[...h.entries()].map(([e,t])=>_(S,{sx:{display:`flex`,flexDirection:`column`,gap:1},children:[t.length>1?y(E,{variant:`subtitle2`,sx:{opacity:.8},children:e}):null,t.map(re)]},e)),!h.size&&!u?y(E,{variant:`body2`,sx:{opacity:.7},children:D.t(`custom_assistant_This satellite exposes no settings.`)}):null]})}),y(j,{children:y(A,{onClick:e.onClose,children:D.t(`custom_assistant_Close`)})})]})}var hc={},gc=Object.assign({"./i18n/de.json":F,"./i18n/en.json":H,"./i18n/es.json":U,"./i18n/fr.json":W,"./i18n/it.json":G,"./i18n/nl.json":K,"./i18n/pl.json":J,"./i18n/pt.json":Y,"./i18n/ru.json":X,"./i18n/uk.json":Z,"./i18n/zh-cn.json":Q});for(let[e,t]of Object.entries(gc)){var _c;let n=((_c=e.split(`/`).pop())==null?void 0:_c.replace(`.json`,``))||`en`;hc[n]=t.default}D.extendTranslations(hc);var vc={idle:`default`,listening:`info`,processing:`warning`,speaking:`success`,offline:`error`},yc=`__all__`,bc={DeviceAclComponent:Qs,ChatComponent:sc,LocalLlmProgress:fc,SatellitesComponent:class extends P{constructor(e){super(e),C(this,`pattern`,``),C(this,`onState`,(e,t)=>{this.setState(n=>{let r={...n.sats},i=this.parse(e);i&&r[i.satId]&&(r[i.satId]={...r[i.satId]}),this.applyToMap(r,e,t);let a={...n.vals};return this.applyToVals(a,e,t),{sats:r,vals:a}})}),this.state={...this.state,sats:{},speak:{},vals:{},settingsFor:null,settingsObjects:{},settingsLoading:!1}}get instanceId(){let e=this.props.oContext;return`${e.adapterName}.${e.instance}`}async componentDidMount(){super.componentDidMount(),this.pattern=`${this.instanceId}.satellites.*`;try{let e=await this.props.oContext.socket.getForeignStates(this.pattern),t={},n={};for(let[r,i]of Object.entries(e||{}))this.applyToMap(t,r,i),this.applyToVals(n,r,i);this.setState({sats:t,vals:n})}catch{}this.props.oContext.socket.subscribeState(this.pattern,this.onState)}componentWillUnmount(){var e;this.pattern&&this.props.oContext.socket.unsubscribeState(this.pattern,this.onState),(e=super.componentWillUnmount)==null||e.call(this)}parse(e){let t=`${this.instanceId}.satellites.`;if(!e.startsWith(t))return null;let n=e.slice(t.length),r=n.indexOf(`.`);return r<0?null:{satId:n.slice(0,r),prop:n.slice(r+1)}}applyToMap(e,t,n){let r=this.parse(t);if(!r)return;let i=e[r.satId]||{status:`idle`,room:``,host:``,alive:!1,lastSeen:0};r.prop===`status`?i.status=String((n==null?void 0:n.val)??`idle`):r.prop===`room`?i.room=String((n==null?void 0:n.val)??``):r.prop===`host`?i.host=String((n==null?void 0:n.val)??``):r.prop===`alive`?i.alive=!!(n!=null&&n.val):r.prop===`lastSeen`&&(i.lastSeen=Number(n==null?void 0:n.val)||0),e[r.satId]=i}applyToVals(e,t,n){let r=this.parse(t);r&&(e[r.satId]={...e[r.satId]||{},[r.prop]:(n==null?void 0:n.val)??null})}async openSettings(e){this.setState({settingsFor:e,settingsObjects:{},settingsLoading:!0});let t=`${this.instanceId}.satellites.${e}.`;try{let e=await this.props.oContext.socket.getForeignObjects(`${t}controls.*`,`state`),n={};for(let[r,i]of Object.entries(e||{}))i!=null&&i.common&&(n[r.slice(t.length)]=i);this.setState({settingsObjects:n,settingsLoading:!1})}catch{this.setState({settingsLoading:!1})}}writeSetting(e,t,n){this.props.oContext.socket.setState(`${this.instanceId}.satellites.${e}.${t}`,{val:n,ack:!1}).catch(()=>{})}announce(e){let t=(this.state.speak[e]||``).trim();if(!t)return;let n=e===yc?`${this.instanceId}.tts.text`:`${this.instanceId}.satellites.${e}.tts`;this.props.oContext.socket.setState(n,{val:t,ack:!1}).catch(()=>{}),this.setState(t=>({speak:{...t.speak,[e]:``}}))}ago(e){if(!e)return`—`;let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<60?`${t} s`:t<3600?`${Math.round(t/60)} min`:t<86400?`${Math.round(t/3600)} h`:`${Math.round(t/86400)} d`}renderComposer(e,t){let n=this.state.speak[e]||``;return _(S,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[y(T,{size:`small`,variant:`outlined`,placeholder:t,value:n,onChange:t=>this.setState(n=>({speak:{...n.speak,[e]:t.target.value}})),onKeyDown:t=>{t.key===`Enter`&&(t.preventDefault(),this.announce(e))},sx:{minWidth:180}}),y(x,{title:D.t(`custom_assistant_Send announcement`),children:y(`span`,{children:y(m,{size:`small`,color:`primary`,disabled:!n.trim(),onClick:()=>this.announce(e),children:y(c,{})})})})]})}renderItem(){var e;let t=Object.keys(this.state.sats).sort();return _(S,{sx:{width:`100%`},children:[_(S,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,mb:1},children:[y(E,{variant:`h6`,children:D.t(`custom_assistant_Satellites`)}),t.length?this.renderComposer(yc,D.t(`custom_assistant_Speak on all satellites`)):null]}),t.length?_(f,{size:`small`,sx:{"& td, & th":{px:1}},children:[y(h,{children:_(n,{children:[y(v,{}),y(v,{children:D.t(`custom_assistant_Satellite`)}),y(v,{children:D.t(`custom_assistant_room`)}),y(v,{children:D.t(`custom_assistant_Host`)}),y(v,{children:D.t(`custom_assistant_Status`)}),y(v,{children:D.t(`custom_assistant_Last seen`)}),y(v,{children:D.t(`custom_assistant_Announcement`)}),y(v,{})]})}),y(se,{children:t.map(e=>{let t=this.state.sats[e];return _(n,{children:[y(v,{sx:{width:24},children:y(x,{title:t.alive?D.t(`custom_assistant_online`):D.t(`custom_assistant_offline`),children:y(re,{sx:{fontSize:`0.8rem`,color:t.alive?`success.main`:`error.main`}})})}),y(v,{children:e}),y(v,{children:t.room||`—`}),y(v,{children:t.host||`—`}),y(v,{children:y(O,{size:`small`,variant:`outlined`,color:vc[t.status]||`default`,label:D.t(`custom_assistant_sat_${t.status}`)})}),y(v,{children:y(x,{title:t.lastSeen?new Date(t.lastSeen).toLocaleString():``,children:y(`span`,{children:this.ago(t.lastSeen)})})}),y(v,{children:this.renderComposer(e,D.t(`custom_assistant_Type a message…`))}),y(v,{sx:{width:40},children:y(x,{title:D.t(`custom_assistant_Device settings`),children:y(`span`,{children:y(m,{size:`small`,disabled:!t.alive,onClick:()=>void this.openSettings(e),children:y(ee,{})})})})})]},e)})})]}):y(E,{sx:{p:2,opacity:.7},variant:`body2`,children:D.t(`custom_assistant_No satellites registered yet.`)}),this.state.settingsFor?y(mc,{instanceId:this.instanceId,satId:this.state.settingsFor,room:((e=this.state.sats[this.state.settingsFor])==null?void 0:e.room)||``,values:this.state.vals[this.state.settingsFor]||{},objects:this.state.settingsObjects,loading:this.state.settingsLoading,onWrite:(e,t)=>this.writeSetting(this.state.settingsFor,e,t),onClose:()=>this.setState({settingsFor:null,settingsObjects:{}})}):null]})}}};export{bc as default};