@camera.ui/server 2.2.1 → 2.2.3

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 (490) hide show
  1. package/dist/interface/assets/{404-Ci4V-7l9.js → 404-D0S6IGok.js} +1 -1
  2. package/dist/interface/assets/{About-BSGYUvI7.js → About-DAw9u8ZY.js} +1 -1
  3. package/dist/interface/assets/Assistant-Gi6_YkEY.js +1 -0
  4. package/dist/interface/assets/Automation-6eFKPJPu.js +3 -0
  5. package/dist/interface/assets/AutomationImport-95PfbPvG.js +2 -0
  6. package/dist/interface/assets/AutomationStore-BHxzzx7a.js +2 -0
  7. package/dist/interface/assets/AutomationStoreDetail-DEVlRllt.js +2 -0
  8. package/dist/interface/assets/Automations-DEivoiS1.js +2 -0
  9. package/dist/interface/assets/Camera-B5l_gv7t.js +2 -0
  10. package/dist/interface/assets/{CameraConsole-DbmJ9PNU.js → CameraConsole-B8bBYQzk.js} +1 -1
  11. package/dist/interface/assets/Cameras-HblWPGCv.js +651 -0
  12. package/dist/interface/assets/Camview-DEKrbg5R.js +1 -0
  13. package/dist/interface/assets/{CertificateUpload-_VQx5fjA.js → CertificateUpload-CC6YtX7h.js} +1 -1
  14. package/dist/interface/assets/{Config-BuuQmMOC.js → Config-DQEaOnaN.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionAssistant-DforDPLT.js → ConfigActionAssistant-C_XRnBzo.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionCameraControl-LwL8BSZX.js → ConfigActionCameraControl-oRzM9rjX.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionDelay-C6u-CHFE.js → ConfigActionDelay-Dc-NZS5L.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionHttp-CxbJVkf2.js → ConfigActionHttp-Nw0wt-JZ.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionImageInput-BpDXjbnf.js → ConfigActionImageInput-Do60Upqm.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionMqtt-BkbAAepo.js → ConfigActionMqtt-BeQVgaGX.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotification-B2Dtkf2b.js → ConfigActionNotification-BA0FjOWs.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionNotificationControl-DMW2_Vez.js → ConfigActionNotificationControl-Ce3Kd_Xv.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionOutput-WVe74xXz.js → ConfigActionOutput-ChiOMWDy.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionPlugin-C3iZfPRv.js → ConfigActionPlugin-Cn3r0glk.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSensor-DSW92VVP.js → ConfigActionSensor-DkdBCu-6.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionSnapshot-Cl3NLmyn.js → ConfigActionSnapshot-CLlaDFUV.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionVariable-Due14Kwt.js → ConfigActionVariable-D4x3Luxl.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionIfElse-mIXw954j.js → ConfigConditionIfElse-BpL8KZ5X.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSensorState-C_FpJLnM.js → ConfigConditionSensorState-CSQexUF_.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionSwitch-CYRUg-Uo.js → ConfigConditionSwitch-CB2J_5kr.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionTime-WkevpYaO.js → ConfigConditionTime-X9fsNsYu.js} +1 -1
  32. package/dist/interface/assets/{ConfigSensorValueInput-BDz5olLY.js → ConfigSensorValueInput-VPhPxrQl.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerDetection-Cb_BObEL.js → ConfigTriggerDetection-Dhzng4X5.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerGeofence-B7Iugx3i.js → ConfigTriggerGeofence-Cm0CLNf5.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerManual-D7w6C58j.js → ConfigTriggerManual-CRi3rsgG.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerMqtt-D_ozlopI.js → ConfigTriggerMqtt-Ck__CWck.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSchedule-1UcaRD5S.js → ConfigTriggerSchedule-C1PZrHEu.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSensor-D9_lg6yH.js → ConfigTriggerSensor-9xVgCtkn.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSystem-COPR6t7r.js → ConfigTriggerSystem-Denf1gkO.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerWebhook-C0v6uR67.js → ConfigTriggerWebhook-im24LkCn.js} +1 -1
  41. package/dist/interface/assets/Console-Q1HpmyO_.js +1 -0
  42. package/dist/interface/assets/CuiAssistantConversation-BxJf9sdu.js +5 -0
  43. package/dist/interface/assets/{CuiAssistantConversation-BkWDr6uX.css → CuiAssistantConversation-DmSdiv1b.css} +1 -1
  44. package/dist/interface/assets/{CuiAutomationRunsDialog-CGBqZXR4.js → CuiAutomationRunsDialog-B3tJ-Cma.js} +1 -1
  45. package/dist/interface/assets/CuiBottomSheet-C37blNu-.js +1 -0
  46. package/dist/interface/assets/{CuiBottomSheet-DomRjKV8.js → CuiBottomSheet-kvvLw1MQ.js} +1 -1
  47. package/dist/interface/assets/CuiCameraPipCard-TVAf5ZYQ.js +1 -0
  48. package/dist/interface/assets/CuiCameraRecordings-C26rX8dh.css +1 -0
  49. package/dist/interface/assets/CuiCameraRecordings-IHg1dNf4.js +1 -0
  50. package/dist/interface/assets/{CuiCameraShares-CVbWZZ_i.js → CuiCameraShares-B5ghuJS-.js} +1 -1
  51. package/dist/interface/assets/{CuiCameraTable-B1F2UjZk.js → CuiCameraTable-Y5XUkU7w.js} +1 -1
  52. package/dist/interface/assets/CuiCameraTable-xDZz7Wpe.js +1 -0
  53. package/dist/interface/assets/{CuiChartTable-CcovDii1.js → CuiChartTable-CXdupaj5.js} +1 -1
  54. package/dist/interface/assets/CuiChartTable-DXY7rY3O.css +1 -0
  55. package/dist/interface/assets/{CuiConsole-BzJJnQTd.js → CuiConsole-5KgXSOS5.js} +2 -2
  56. package/dist/interface/assets/CuiDataTable-DPIbKnvU.css +1 -0
  57. package/dist/interface/assets/CuiDataTable-hArZWV9B.js +1 -0
  58. package/dist/interface/assets/CuiLightControl-MRpR0XIZ.js +1 -0
  59. package/dist/interface/assets/{CuiList-Dfklll0h.js → CuiList-D-l4HrBP.js} +1 -1
  60. package/dist/interface/assets/CuiPluginCard-whoQ5YHn.js +2 -0
  61. package/dist/interface/assets/CuiPluginCategoryChip-CH53zk2o.js +1 -0
  62. package/dist/interface/assets/CuiPluginOAuthButton-BBA0AzVO.js +2 -0
  63. package/dist/interface/assets/{CuiPluginTrustBadge-CILKiExH.js → CuiPluginTrustBadge-C0EX5aCI.js} +1 -1
  64. package/dist/interface/assets/{CuiQRCode-DHUwFLQz.js → CuiQRCode-BRT0NO5c.js} +1 -1
  65. package/dist/interface/assets/CuiSchema-DBY1x1BT.js +1 -0
  66. package/dist/interface/assets/{CuiTopNavbarItem-DBsbHvkJ.js → CuiTopNavbarItem-CpMT8_0r.js} +1 -1
  67. package/dist/interface/assets/Faces-Dqi30qs9.js +1 -0
  68. package/dist/interface/assets/FirstSteps-B8n4fGK3.js +1 -0
  69. package/dist/interface/assets/Floorplan-ZHXNaZA8.js +1 -0
  70. package/dist/interface/assets/{Instances-cgw_Xzu0.js → Instances-DEj3gs6H.js} +1 -1
  71. package/dist/interface/assets/{Logs-BrTGt33Q.js → Logs-CwHvSKd6.js} +2 -2
  72. package/dist/interface/assets/Menu-C4BxUV0P.js +1 -0
  73. package/dist/interface/assets/Metrics-BCOE-rcw.js +9 -0
  74. package/dist/interface/assets/{OAuthDeviceFlow-Bx6YBLUX.js → OAuthDeviceFlow-D6bjZOYS.js} +1 -1
  75. package/dist/interface/assets/Plugin-ppCvxkl4.js +1 -0
  76. package/dist/interface/assets/{PluginConsole-C6xky2l3.js → PluginConsole-BP42Qpee.js} +1 -1
  77. package/dist/interface/assets/PluginDetail-BnX5lZGz.js +2 -0
  78. package/dist/interface/assets/{PluginSchema-D5dmitq0.js → PluginSchema-uVKXzfo6.js} +1 -1
  79. package/dist/interface/assets/PluginSearch-C4MvWyLb.js +1 -0
  80. package/dist/interface/assets/PluginSearch-no79fTuf.js +2 -0
  81. package/dist/interface/assets/{PluginUpdateProgress-Cj4Ilm8M.js → PluginUpdateProgress-73jprYHA.js} +1 -1
  82. package/dist/interface/assets/Plugins-DtEqS6_j.js +1 -0
  83. package/dist/interface/assets/RecentEventsFilter-CtyCbt6Z.js +1 -0
  84. package/dist/interface/assets/Recordings-DrcOsRLn.js +1 -0
  85. package/dist/interface/assets/{SensorEdit-BBTdSbok.js → SensorEdit-D4-mMg8S.js} +1 -1
  86. package/dist/interface/assets/{SensorHistory-BmGYTFWx.js → SensorHistory-C-X7VI-f.js} +1 -1
  87. package/dist/interface/assets/Sensors-BJh8BkCR.js +2 -0
  88. package/dist/interface/assets/{Settings-B-lq2Bls.js → Settings-B9CZvA-d.js} +1 -1
  89. package/dist/interface/assets/SettingsAccount-CkvScQmF.js +1 -0
  90. package/dist/interface/assets/SettingsAccount-D3zF2kLc.js +1 -0
  91. package/dist/interface/assets/{SettingsAppearance-DMhqHxXU.js → SettingsAppearance-CbG8M38w.js} +1 -1
  92. package/dist/interface/assets/SettingsAppearance-ZHqNXXIL.js +1 -0
  93. package/dist/interface/assets/SettingsAssistant-BESab92C.css +1 -0
  94. package/dist/interface/assets/SettingsAssistant-DxYPnbms.js +1 -0
  95. package/dist/interface/assets/{SettingsBackup-C9clJ_2F.js → SettingsBackup-DZBzUyQm.js} +1 -1
  96. package/dist/interface/assets/{SettingsList-Ba5TjVzD.js → SettingsList-DFg8g7IM.js} +1 -1
  97. package/dist/interface/assets/{SettingsMqtt-4tFIdfzL.js → SettingsMqtt-BeujOZkh.js} +1 -1
  98. package/dist/interface/assets/SettingsNotifications-DtSTE76r.js +1 -0
  99. package/dist/interface/assets/{SettingsPermissions-B6vNyFvJ.js → SettingsPermissions-CPOAefv0.js} +1 -1
  100. package/dist/interface/assets/SettingsRecordings-ClAtT4Bh.js +1 -0
  101. package/dist/interface/assets/SettingsRemote-58S4Thfp.js +2 -0
  102. package/dist/interface/assets/SettingsSystem-tTGpuiRW.js +2 -0
  103. package/dist/interface/assets/{SettingsUsers-DOUvMVjf.js → SettingsUsers-D8b7I5c2.js} +1 -1
  104. package/dist/interface/assets/{Terminal-BoMq8civ.js → Terminal-1_Fi0VW-.js} +2 -2
  105. package/dist/interface/assets/Training-CQHfQjUP.css +1 -0
  106. package/dist/interface/assets/Training-DfOqDTHJ.js +1 -0
  107. package/dist/interface/assets/{Updates-Cceza_vs.js → Updates-BW0p7Wc5.js} +1 -1
  108. package/dist/interface/assets/{VariableInput-Ds5NaShw.js → VariableInput-sqnLuk6S.js} +1 -1
  109. package/dist/interface/assets/{VariableSuggestions-B0Y5QsCw.js → VariableSuggestions-3pbnxhyT.js} +1 -1
  110. package/dist/interface/assets/{VersionsHandler-D3ugTFh9.js → VersionsHandler-CWmjDygB.js} +1 -1
  111. package/dist/interface/assets/VirtualSensorCreate-BzmFlvYD.js +1 -0
  112. package/dist/interface/assets/Workers-Dm9o2wMo.js +2 -0
  113. package/dist/interface/assets/api-B6TtU9Ew.css +2 -0
  114. package/dist/interface/assets/{api-C4b9FQa5.js → api-CQ-3I3-i.js} +1 -1
  115. package/dist/interface/assets/api-DPgKdIQZ.js +4 -0
  116. package/dist/interface/assets/{assistant-DfBoMwZZ.js → assistant-0UymvpMy.js} +1 -1
  117. package/dist/interface/assets/{auth-jXwc9evv.js → auth-C0jhqNaz.js} +1 -1
  118. package/dist/interface/assets/{automations-Bx7_-5ll.js → automations-Bj30nb8s.js} +1 -1
  119. package/dist/interface/assets/cameraSources-CiMjIjsh.js +1 -0
  120. package/dist/interface/assets/cloudHandoff-Cxljjl7N.js +1 -0
  121. package/dist/interface/assets/{config-4L2n-1_z.js → config-D-uVfwYp.js} +1 -1
  122. package/dist/interface/assets/dots-vertical-C4DlXZyp.js +1 -0
  123. package/dist/interface/assets/eventIcons-BPQ-zSnz.js +1 -0
  124. package/dist/interface/assets/{flowSchema-ZMBzlKJI.js → flowSchema-D3nNJVLL.js} +1 -1
  125. package/dist/interface/assets/{intercomService-DQ4LZJfW.js → intercomService-BeoNs-09.js} +1 -1
  126. package/dist/interface/assets/main-BrNGfemk.js +3 -0
  127. package/dist/interface/assets/{mqtt-DEt78fr7.js → mqtt-D7jRwifB.js} +1 -1
  128. package/dist/interface/assets/{notifications-mJrKtTFp.js → notifications-BpRVoerg.js} +1 -1
  129. package/dist/interface/assets/pause-B7ud2O8d.js +1 -0
  130. package/dist/interface/assets/{plugins-IMJg5aI8.js → plugins-wZ4RDxCb.js} +1 -1
  131. package/dist/interface/assets/{rooms-Dt3X1UEj.js → rooms-CFcu2dU1.js} +1 -1
  132. package/dist/interface/assets/sensorIcons-B117n8l2.js +1 -0
  133. package/dist/interface/assets/{sensorSlots-CUWphRrL.js → sensorSlots-CAr3prFc.js} +1 -1
  134. package/dist/interface/assets/{sensors-DG-GPuvr.js → sensors-oriEG3KR.js} +1 -1
  135. package/dist/interface/assets/{server-CFtdMCM4.js → server-Ce6ou2NV.js} +1 -1
  136. package/dist/interface/assets/{theme-C8wlVvxI.js → theme-CBTC6-Lp.js} +1 -1
  137. package/dist/interface/assets/{types-BxQYBZ2c.js → types-C-amdBz6.js} +1 -1
  138. package/dist/interface/assets/types-CjU6-JvD.js +1 -0
  139. package/dist/interface/assets/types-CzjppLwt.js +1 -0
  140. package/dist/interface/assets/{ungrouped-Dbr16vFt.css → ungrouped-AYNBKz52.css} +1 -1
  141. package/dist/interface/assets/ungrouped-BQzKp2PT.js +1 -0
  142. package/dist/interface/assets/{updates-DqHYjhVs.js → updates-Cohtc6vb.js} +1 -1
  143. package/dist/interface/assets/{useAppVersion-iJHv6EYQ.js → useAppVersion-xxi6fR7J.js} +1 -1
  144. package/dist/interface/assets/{useAssistantActions-BeXqj2-6.js → useAssistantActions-BkRK1FBg.js} +1 -1
  145. package/dist/interface/assets/useBackupRestore-BGvhSqJB.js +1 -0
  146. package/dist/interface/assets/{useCameraOptions-DVcUIXzh.js → useCameraOptions-ophs2V4p.js} +1 -1
  147. package/dist/interface/assets/{useKeyboardInset-DpxykA20.js → useKeyboardInset-Cpz6Hs5c.js} +1 -1
  148. package/dist/interface/assets/{useLogsSocket-D2gJ0e00.js → useLogsSocket-CB07yhv4.js} +1 -1
  149. package/dist/interface/assets/{useNavLayout-D-KmCM3U.js → useNavLayout-BYEejBpb.js} +1 -1
  150. package/dist/interface/assets/{usePermissions-CsWQ7pWp.js → usePermissions-yWhjYMcr.js} +1 -1
  151. package/dist/interface/assets/{usePluginUpdates-D0bz8TeJ.js → usePluginUpdates-9rvsWfdJ.js} +1 -1
  152. package/dist/interface/assets/{usePushRegistration-B9vouC4k.js → usePushRegistration-b5owOzjH.js} +1 -1
  153. package/dist/interface/assets/{useServerRestart-CaYRL38s.js → useServerRestart-yRXDWnH_.js} +1 -1
  154. package/dist/interface/assets/{useStreamStatus-BSl9TJlX.js → useStreamStatus-BHyWrAHu.js} +1 -1
  155. package/dist/interface/assets/{useTabSwipe-B6GIPOrZ.js → useTabSwipe-Dr9HYP1J.js} +1 -1
  156. package/dist/interface/assets/{useUpdateChannel-BuIKUKQ9.js → useUpdateChannel-IVj0XKlN.js} +1 -1
  157. package/dist/interface/assets/{useUpdatesSocket-B8F-9tUI.js → useUpdatesSocket-CuPHbSF7.js} +1 -1
  158. package/dist/interface/assets/{useUserOptions-9Lcq7htw.js → useUserOptions-zIfrMDiG.js} +1 -1
  159. package/dist/interface/assets/{vendor-cameraui-zaB6gIk1.js → vendor-cameraui-Dhg7MEnt.js} +2 -2
  160. package/dist/interface/assets/{vendor-core-CfoDuMvj.js → vendor-core-CQ2HVu0L.js} +1 -1
  161. package/dist/interface/assets/{vendor-primevue-5HrOunkM.js → vendor-primevue-CeWNZxSE.js} +1 -1
  162. package/dist/interface/assets/vendor-zod-CBbC1rE7.js +109 -0
  163. package/dist/interface/ha/{404-BA6DAi0I.js → 404-B70KNhsW.js} +1 -1
  164. package/dist/interface/ha/{About-D3tEPbYC.js → About-DLNqqctZ.js} +3 -3
  165. package/dist/interface/ha/{Assistant-BSlIm7T1.js → Assistant-Duvvoz2B.js} +1004 -988
  166. package/dist/interface/ha/{Automation-B7ZCtbpe.js → Automation-DZ8zvsvo.js} +199 -199
  167. package/dist/interface/ha/{AutomationImport-CVEGBlET.js → AutomationImport-DOCdim5O.js} +7 -7
  168. package/dist/interface/ha/{AutomationStore-hW-ReFbV.js → AutomationStore-Bjoubp-m.js} +52 -51
  169. package/dist/interface/ha/{AutomationStoreDetail-R-1XPudW.js → AutomationStoreDetail-H-RWNpwm.js} +20 -20
  170. package/dist/interface/ha/{Automations-9CLEXB1U.js → Automations-GyofQfo7.js} +87 -100
  171. package/dist/interface/ha/{Camera-CQK1LgJe.js → Camera-Bo5nMQaU.js} +30 -30
  172. package/dist/interface/ha/{CameraConsole-C6CZ3tzc.js → CameraConsole-BmDQ3rcS.js} +5 -5
  173. package/dist/interface/ha/{Cameras-Bw_Co8e9.js → Cameras-BfHoFjpC.js} +224 -224
  174. package/dist/interface/ha/{Camview-fb7D6KvD.js → Camview-DVoIdM3o.js} +332 -331
  175. package/dist/interface/ha/{Config-Cf0XlhJ-.js → Config-CC8tQiOy.js} +110 -110
  176. package/dist/interface/ha/{ConfigActionAssistant-BtnJwaka.js → ConfigActionAssistant-hfsz38an.js} +4 -4
  177. package/dist/interface/ha/{ConfigActionCameraControl-B1NtlCI4.js → ConfigActionCameraControl-C0-wxlAS.js} +5 -5
  178. package/dist/interface/ha/{ConfigActionHttp-BpI7XQC3.js → ConfigActionHttp-CM_3bIUq.js} +2 -2
  179. package/dist/interface/ha/{ConfigActionImageInput-tLzrOm0l.js → ConfigActionImageInput-B5306Z_7.js} +1 -1
  180. package/dist/interface/ha/{ConfigActionMqtt-DIuCKfQL.js → ConfigActionMqtt-DLiM83Kz.js} +4 -4
  181. package/dist/interface/ha/{ConfigActionNotification-CotMZbgF.js → ConfigActionNotification-36VBlfim.js} +4 -4
  182. package/dist/interface/ha/{ConfigActionNotificationControl-ClnOPBa2.js → ConfigActionNotificationControl-DRjDvA1H.js} +2 -2
  183. package/dist/interface/ha/{ConfigActionOutput-DFRh3xK2.js → ConfigActionOutput-BkGHERoJ.js} +1 -1
  184. package/dist/interface/ha/{ConfigActionPlugin-BSUdCGwz.js → ConfigActionPlugin-Ds1_Pow7.js} +5 -5
  185. package/dist/interface/ha/{ConfigActionSensor-B-PHlt11.js → ConfigActionSensor-22uKE0d0.js} +6 -6
  186. package/dist/interface/ha/{ConfigActionSnapshot-DomyiKiQ.js → ConfigActionSnapshot-uTTsTfo2.js} +2 -2
  187. package/dist/interface/ha/{ConfigActionVariable-D4QZ0GSg.js → ConfigActionVariable-DNMJBiQV.js} +1 -1
  188. package/dist/interface/ha/{ConfigConditionIfElse-Din_LVbb.js → ConfigConditionIfElse-BVzmIDKK.js} +3 -3
  189. package/dist/interface/ha/{ConfigConditionSensorState-cnMbVYSj.js → ConfigConditionSensorState-Di7Ic1xI.js} +4 -4
  190. package/dist/interface/ha/{ConfigConditionSwitch-nLCPZ02V.js → ConfigConditionSwitch-D8CcTHJ1.js} +10 -10
  191. package/dist/interface/ha/{ConfigConditionTime-CcZFjBil.js → ConfigConditionTime-CRn4k6uE.js} +2 -2
  192. package/dist/interface/ha/{ConfigSensorValueInput-CrZoNX72.js → ConfigSensorValueInput-DthsOthT.js} +5 -4
  193. package/dist/interface/ha/{ConfigTriggerDetection-MsrbiErr.js → ConfigTriggerDetection-BDYanDEV.js} +4 -4
  194. package/dist/interface/ha/{ConfigTriggerGeofence-BxQ0n4-f.js → ConfigTriggerGeofence-Binp0lYx.js} +7 -7
  195. package/dist/interface/ha/{ConfigTriggerMqtt-ti8xd7vF.js → ConfigTriggerMqtt-BaPzSHbK.js} +1 -1
  196. package/dist/interface/ha/{ConfigTriggerSensor-CNlsV9yo.js → ConfigTriggerSensor-DiTaTZXm.js} +2 -2
  197. package/dist/interface/ha/{ConfigTriggerSystem-CsULDPX-.js → ConfigTriggerSystem-CsdWiz-S.js} +2 -2
  198. package/dist/interface/ha/{ConfigTriggerWebhook-BnUer9x_.js → ConfigTriggerWebhook-Ca0PsUmU.js} +2 -2
  199. package/dist/interface/ha/{Console-B1Y6mBPP.js → Console-0amlIoZR.js} +100 -100
  200. package/dist/interface/ha/{CuiAutomationRunsDialog-BHJIQ0Tj.js → CuiAutomationRunsDialog-DNBuwkgL.js} +2 -2
  201. package/dist/interface/ha/{CuiBottomSheet-DyCegs0G.js → CuiBottomSheet-CdXBYz4P.js} +1 -1
  202. package/dist/interface/ha/{CuiCameraRecordings-Cfzu3-OA.js → CuiCameraRecordings-D4ZB56nd.js} +21 -21
  203. package/dist/interface/ha/{CuiCameraShares-CE2Z9Osp.js → CuiCameraShares-YmzZusZR.js} +5 -5
  204. package/dist/interface/ha/{CuiCameraTable-DCm-DNjq.js → CuiCameraTable-DFzhCO3J.js} +8 -8
  205. package/dist/interface/ha/{CuiChartTable-BYkhLvXA.js → CuiChartTable-BvfJbFNS.js} +20 -18
  206. package/dist/interface/ha/{CuiConsole-DTDUpQ_E.js → CuiConsole-DtxyD6Sd.js} +5 -5
  207. package/dist/interface/ha/{CuiDataTable-Cxk-gD0O.js → CuiDataTable-CHvx6ALQ.js} +19 -12
  208. package/dist/interface/ha/{CuiPluginCard-CaJWPBXm.js → CuiPluginCard-B3vU57eD.js} +50 -50
  209. package/dist/interface/ha/{CuiPluginOAuthButton--RbsaIiq.js → CuiPluginOAuthButton-DgOFfP5e.js} +8 -8
  210. package/dist/interface/ha/{CuiPluginTrustBadge-G79t87hq.js → CuiPluginTrustBadge-udmtgGHt.js} +3 -3
  211. package/dist/interface/ha/{CuiQRCode-C0o0cS3C.js → CuiQRCode-8yDZMC3o.js} +7 -7
  212. package/dist/interface/ha/{CuiSchema-BmfjaboJ.js → CuiSchema-0Hikg2mm.js} +125 -125
  213. package/dist/interface/ha/{CuiTopNavbarItem-KlOpTPMA.js → CuiTopNavbarItem-B139fVxP.js} +1 -1
  214. package/dist/interface/ha/{Faces-CG1S8jsV.js → Faces-YdAf9USr.js} +45 -44
  215. package/dist/interface/ha/{FirstSteps-B4cODn_E.js → FirstSteps-Dts6TJ6O.js} +64 -64
  216. package/dist/interface/ha/{Floorplan-CM5cL4_h.js → Floorplan-D6XXe8ni.js} +428 -427
  217. package/dist/interface/ha/{Instances-B1KAGADd.js → Instances-DsIsonqp.js} +71 -71
  218. package/dist/interface/ha/{Logs-CNVJvujx.js → Logs-Cyo3LC94.js} +11 -11
  219. package/dist/interface/ha/{Menu-hlaVYE5G.js → Menu-yh_sI9d9.js} +20 -25
  220. package/dist/interface/ha/{Metrics-CUllrnJc.js → Metrics-VehQmsmN.js} +91 -90
  221. package/dist/interface/ha/{OAuthDeviceFlow-kYPoT4p2.js → OAuthDeviceFlow-CXp9NvbY.js} +9 -9
  222. package/dist/interface/ha/{Plugin-QvBE-VHD.js → Plugin-BqvlXx43.js} +127 -126
  223. package/dist/interface/ha/{PluginConsole-Cpd8sx5a.js → PluginConsole-Dx84BNoO.js} +6 -6
  224. package/dist/interface/ha/{PluginDetail-CqSaIeH-.js → PluginDetail-DUpDS2nD.js} +10 -10
  225. package/dist/interface/ha/{PluginSearch-C-3nAbyu.js → PluginSearch-Cvh0P9VB.js} +127 -126
  226. package/dist/interface/ha/{PluginUpdateProgress-Izcgxa6-.js → PluginUpdateProgress-CfyI2Qdp.js} +3 -3
  227. package/dist/interface/ha/Plugins-DXreIUwr.js +692 -0
  228. package/dist/interface/ha/RecentEventsFilter-C1deXNIS.js +79 -0
  229. package/dist/interface/ha/{Recordings-BSR6AGq2.js → Recordings-Cb8ifRcB.js} +352 -383
  230. package/dist/interface/ha/{SensorEdit-KLS5N1YP.js → SensorEdit-CsNXxcdj.js} +353 -351
  231. package/dist/interface/ha/{SensorHistory-nHGwqzDW.js → SensorHistory-DToDalOm.js} +2 -2
  232. package/dist/interface/ha/{Sensors-VAy09hDh.js → Sensors-B6giaowJ.js} +191 -189
  233. package/dist/interface/ha/{Settings-DINmP-PB.js → Settings-CVed7MM_.js} +22 -22
  234. package/dist/interface/ha/{SettingsAccount-B-3XO53P.js → SettingsAccount-CvvsLPoT.js} +263 -262
  235. package/dist/interface/ha/{SettingsAppearance-B7ONsdV3.js → SettingsAppearance-BDJeNGTd.js} +19 -19
  236. package/dist/interface/ha/SettingsAssistant-B168p5HB.js +1857 -0
  237. package/dist/interface/ha/{SettingsBackup-CRzyW7Ce.js → SettingsBackup-Bz_9xJ61.js} +42 -42
  238. package/dist/interface/ha/{SettingsList-GWb7HKeq.js → SettingsList-B42rajJc.js} +2 -2
  239. package/dist/interface/ha/{SettingsMqtt-Db8CUtzi.js → SettingsMqtt-B5Qy6bxD.js} +23 -23
  240. package/dist/interface/ha/SettingsNotifications-C59UxYic.js +529 -0
  241. package/dist/interface/ha/{SettingsRecordings-s52rT7TX.js → SettingsRecordings-CkJGOiyQ.js} +11 -10
  242. package/dist/interface/ha/{SettingsRemote-DYUJdmKW.js → SettingsRemote-Cc-qt3si.js} +340 -340
  243. package/dist/interface/ha/{SettingsSystem-Bkfc5Tky.js → SettingsSystem-Cco2XXsS.js} +9 -9
  244. package/dist/interface/ha/{SettingsUsers-BHLsFMG9.js → SettingsUsers-BDh-3saR.js} +36 -36
  245. package/dist/interface/ha/{Terminal-CDZjjg7e.js → Terminal-D2U-kFPW.js} +41 -41
  246. package/dist/interface/ha/Training-DWcaCI-3.js +1499 -0
  247. package/dist/interface/ha/{Updates-DM5YITjv.js → Updates-DGHNcvO9.js} +13 -13
  248. package/dist/interface/ha/{VariableInput-DOiVQbEb.js → VariableInput-Bujz1T1I.js} +1 -1
  249. package/dist/interface/ha/{VersionsHandler-CjzF5jII.js → VersionsHandler-CXvbeKbl.js} +10 -10
  250. package/dist/interface/ha/{VirtualSensorCreate-q7b13gfi.js → VirtualSensorCreate-DOYONbgu.js} +3 -3
  251. package/dist/interface/ha/{Workers-Vf16lK9P.js → Workers-tQbC3WS6.js} +28 -28
  252. package/dist/interface/ha/{accordion-DdpJ2jcK.js → accordion-X9Wa7KVq.js} +1 -1
  253. package/dist/interface/ha/{api-C0pVlzsW.js → api-BI6_Fcag.js} +9483 -9888
  254. package/dist/interface/ha/{api-Bnk0paIs.js → api-DfJZj7ht.js} +3 -3
  255. package/dist/interface/ha/{assistant-DJPdidEd.js → assistant-BqSg4N8v.js} +55 -55
  256. package/dist/interface/ha/{auth-CmCJIpis.js → auth-BFoSqfzS.js} +39 -39
  257. package/dist/interface/ha/{automationBlueprint-CtX7AOzy.js → automationBlueprint-Q0yt2MdH.js} +4 -3
  258. package/dist/interface/ha/cameraui-cards.js +1 -1
  259. package/dist/interface/ha/{cards-Cn0baEOx.js → cards-BW9I5B5Z.js} +561 -560
  260. package/dist/interface/ha/checkbox-D012nd17.js +279 -0
  261. package/dist/interface/ha/{config-DxaLI3Wy.js → config-CeNHEP9A.js} +16 -16
  262. package/dist/interface/ha/{datepicker-DpDmhDeD.js → datepicker-44Ub2Hx0.js} +329 -604
  263. package/dist/interface/ha/dist-BTp4AyuI.js +287 -0
  264. package/dist/interface/ha/{dist-aGnBxAoZ.js → dist-BV3OfApt.js} +763 -1048
  265. package/dist/interface/ha/dots-vertical-BEPlUtxU.js +19 -0
  266. package/dist/interface/ha/eventIcons-DrjNuTS2.js +676 -0
  267. package/dist/interface/ha/{mqtt-BSUalkMz.js → mqtt-BkYa2CXH.js} +12 -12
  268. package/dist/interface/ha/{multiselect-Cedfen4P.js → multiselect-B0fAnW75.js} +1 -1
  269. package/dist/interface/ha/{notifications-DuVSTES6.js → notifications-E3WSCGpc.js} +22 -22
  270. package/dist/interface/ha/pause-Ch6v65wA.js +19 -0
  271. package/dist/interface/ha/{pinia-Dk3LfWcE.js → pinia-DoDLbPZ3.js} +2293 -2274
  272. package/dist/interface/ha/{plugins-XTsvVLj3.js → plugins-2jjU7TfW.js} +68 -68
  273. package/dist/interface/ha/pwa/favicon-16.ico +0 -0
  274. package/dist/interface/ha/pwa/favicon-32.ico +0 -0
  275. package/dist/interface/ha/pwa/favicon-48.ico +0 -0
  276. package/dist/interface/ha/pwa/pwa-120x120.png +0 -0
  277. package/dist/interface/ha/pwa/pwa-24x24.png +0 -0
  278. package/dist/interface/ha/pwa/pwa-36x36.png +0 -0
  279. package/dist/interface/ha/pwa/pwa-48x48.png +0 -0
  280. package/dist/interface/ha/pwa/pwa-50x50.png +0 -0
  281. package/dist/interface/ha/pwa/pwa-64x64.png +0 -0
  282. package/dist/interface/ha/pwa/pwa-72x72.png +0 -0
  283. package/dist/interface/ha/pwa/pwa-88x88.png +0 -0
  284. package/dist/interface/ha/pwa/pwa-96x96.png +0 -0
  285. package/dist/interface/ha/{rooms-Ch5UrfPN.js → rooms-BkEw1ev-.js} +8 -8
  286. package/dist/interface/ha/{server-h-kQ6sSS.js → server-CuK4o2fS.js} +31 -31
  287. package/dist/interface/ha/{types-DjunpV_X.js → types-BRHWeX0a.js} +48 -34
  288. package/dist/interface/ha/{ungrouped-DkDSBlpG.js → ungrouped-BDwep3kg.js} +189 -206
  289. package/dist/interface/ha/{updates-D0cNiMIr.js → updates-R4xTxour.js} +42 -42
  290. package/dist/interface/ha/{useAppVersion-Cpv2npEz.js → useAppVersion-uaFjqUpx.js} +1 -1
  291. package/dist/interface/ha/{useLogsSocket-Du83S3Wz.js → useLogsSocket-BZq9GXfy.js} +1 -1
  292. package/dist/interface/ha/{useNavLayout-XBJRTK3F.js → useNavLayout-BJdDE__R.js} +11 -11
  293. package/dist/interface/ha/{useServerRestart-CWhJrEyy.js → useServerRestart-DDCKnE6c.js} +1 -1
  294. package/dist/interface/ha/{useTabSwipe-BSlykGzV.js → useTabSwipe-CEH6ltIZ.js} +1 -1
  295. package/dist/interface/ha/{useUpdateChannel-DZttbpyK.js → useUpdateChannel-CHt1il2V.js} +2 -2
  296. package/dist/interface/ha/{useUpdatesSocket-DI15Udke.js → useUpdatesSocket-BnVaNioY.js} +1 -1
  297. package/dist/interface/ha/{useUserOptions-CQL8tMr4.js → useUserOptions-C7cQ1P3Q.js} +1 -1
  298. package/dist/interface/index.html +35 -34
  299. package/dist/interface/pwa/favicon-16.ico +0 -0
  300. package/dist/interface/pwa/favicon-32.ico +0 -0
  301. package/dist/interface/pwa/favicon-48.ico +0 -0
  302. package/dist/interface/pwa/pwa-120x120.png +0 -0
  303. package/dist/interface/pwa/pwa-24x24.png +0 -0
  304. package/dist/interface/pwa/pwa-36x36.png +0 -0
  305. package/dist/interface/pwa/pwa-48x48.png +0 -0
  306. package/dist/interface/pwa/pwa-50x50.png +0 -0
  307. package/dist/interface/pwa/pwa-64x64.png +0 -0
  308. package/dist/interface/pwa/pwa-72x72.png +0 -0
  309. package/dist/interface/pwa/pwa-88x88.png +0 -0
  310. package/dist/interface/pwa/pwa-96x96.png +0 -0
  311. package/dist/interface/sw.js +1 -1
  312. package/dist/server/package.json +7 -8
  313. package/dist/server/requirements.txt +1 -1
  314. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +2 -0
  315. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +2 -0
  316. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/frames.py +9 -5
  317. package/dist/server/src/api/controllers/assistant.controller.js +2 -1
  318. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  319. package/dist/server/src/api/controllers/plugins.controller.js +3 -3
  320. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  321. package/dist/server/src/api/controllers/users.controller.d.ts +3 -1
  322. package/dist/server/src/api/controllers/users.controller.js +38 -0
  323. package/dist/server/src/api/controllers/users.controller.js.map +1 -1
  324. package/dist/server/src/api/database/index.d.ts +1 -1
  325. package/dist/server/src/api/database/index.js +1 -1
  326. package/dist/server/src/api/database/index.js.map +1 -1
  327. package/dist/server/src/api/database/migrations/v2-2-3.d.ts +3 -0
  328. package/dist/server/src/api/database/migrations/v2-2-3.js +22 -0
  329. package/dist/server/src/api/database/migrations/v2-2-3.js.map +1 -0
  330. package/dist/server/src/api/database/record-schemas.d.ts +44 -1
  331. package/dist/server/src/api/database/record-schemas.js +3 -3
  332. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  333. package/dist/server/src/api/database/types.d.ts +4 -2
  334. package/dist/server/src/api/routes/users.routes.js +24 -1
  335. package/dist/server/src/api/routes/users.routes.js.map +1 -1
  336. package/dist/server/src/api/schemas/assistant.schema.d.ts +43 -1
  337. package/dist/server/src/api/schemas/assistant.schema.js +2 -1
  338. package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
  339. package/dist/server/src/api/schemas/cameras.schema.d.ts +32 -16
  340. package/dist/server/src/api/schemas/cameras.schema.js +5 -5
  341. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  342. package/dist/server/src/api/schemas/users.schema.d.ts +8 -0
  343. package/dist/server/src/api/schemas/users.schema.js +45 -0
  344. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  345. package/dist/server/src/api/services/users.service.d.ts +3 -1
  346. package/dist/server/src/api/services/users.service.js +33 -0
  347. package/dist/server/src/api/services/users.service.js.map +1 -1
  348. package/dist/server/src/api/types/index.d.ts +4 -1
  349. package/dist/server/src/api/types/index.js.map +1 -1
  350. package/dist/server/src/api/websocket/nsp/logs.d.ts +5 -2
  351. package/dist/server/src/api/websocket/nsp/logs.js +20 -5
  352. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
  353. package/dist/server/src/api/websocket/nsp/training.d.ts +1 -1
  354. package/dist/server/src/api/websocket/nsp/training.js +3 -2
  355. package/dist/server/src/api/websocket/nsp/training.js.map +1 -1
  356. package/dist/server/src/assistant/manager.d.ts +1 -0
  357. package/dist/server/src/assistant/manager.js +24 -2
  358. package/dist/server/src/assistant/manager.js.map +1 -1
  359. package/dist/server/src/assistant/prompt.d.ts +1 -0
  360. package/dist/server/src/assistant/prompt.js +10 -1
  361. package/dist/server/src/assistant/prompt.js.map +1 -1
  362. package/dist/server/src/assistant/reasoning.d.ts +1 -1
  363. package/dist/server/src/assistant/reasoning.js +6 -3
  364. package/dist/server/src/assistant/reasoning.js.map +1 -1
  365. package/dist/server/src/assistant/retry.d.ts +4 -0
  366. package/dist/server/src/assistant/retry.js +3 -0
  367. package/dist/server/src/assistant/retry.js.map +1 -1
  368. package/dist/server/src/assistant/search.js +4 -2
  369. package/dist/server/src/assistant/search.js.map +1 -1
  370. package/dist/server/src/assistant/skills.js +3 -2
  371. package/dist/server/src/assistant/skills.js.map +1 -1
  372. package/dist/server/src/assistant/tool-names.d.ts +2 -0
  373. package/dist/server/src/assistant/tool-names.js +23 -0
  374. package/dist/server/src/assistant/tool-names.js.map +1 -0
  375. package/dist/server/src/assistant/tools/api.js +2 -0
  376. package/dist/server/src/assistant/tools/api.js.map +1 -1
  377. package/dist/server/src/assistant/tools/docs.js +1 -0
  378. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  379. package/dist/server/src/assistant/tools/index.js +2 -2
  380. package/dist/server/src/assistant/tools/index.js.map +1 -1
  381. package/dist/server/src/assistant/tools/memory.js +1 -0
  382. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  383. package/dist/server/src/assistant/tools/notifications.d.ts +2 -1
  384. package/dist/server/src/assistant/tools/notifications.js +69 -35
  385. package/dist/server/src/assistant/tools/notifications.js.map +1 -1
  386. package/dist/server/src/assistant/tools/plugins.d.ts +7 -1
  387. package/dist/server/src/assistant/tools/plugins.js +13 -9
  388. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  389. package/dist/server/src/assistant/tools/settings.js +1 -0
  390. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  391. package/dist/server/src/assistant/uploads.js +8 -1
  392. package/dist/server/src/assistant/uploads.js.map +1 -1
  393. package/dist/server/src/automations/utilities/imageInput.js +4 -2
  394. package/dist/server/src/automations/utilities/imageInput.js.map +1 -1
  395. package/dist/server/src/camera/controller.d.ts +3 -0
  396. package/dist/server/src/camera/controller.js +41 -28
  397. package/dist/server/src/camera/controller.js.map +1 -1
  398. package/dist/server/src/camera/index.d.ts +1 -7
  399. package/dist/server/src/camera/index.js +0 -13
  400. package/dist/server/src/camera/index.js.map +1 -1
  401. package/dist/server/src/camera/privacy/snapshot.js +4 -2
  402. package/dist/server/src/camera/privacy/snapshot.js.map +1 -1
  403. package/dist/server/src/camera/snapshot-store.d.ts +22 -0
  404. package/dist/server/src/camera/snapshot-store.js +78 -0
  405. package/dist/server/src/camera/snapshot-store.js.map +1 -0
  406. package/dist/server/src/camera/streaming/fmp4-session.d.ts +2 -1
  407. package/dist/server/src/camera/streaming/fmp4-session.js +4 -0
  408. package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
  409. package/dist/server/src/camera/streaming/rtp-session.js +1 -0
  410. package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
  411. package/dist/server/src/manager/downloadManager.d.ts +1 -0
  412. package/dist/server/src/manager/downloadManager.js +3 -0
  413. package/dist/server/src/manager/downloadManager.js.map +1 -1
  414. package/dist/server/src/manager/notificationManager.d.ts +1 -0
  415. package/dist/server/src/manager/notificationManager.js +13 -2
  416. package/dist/server/src/manager/notificationManager.js.map +1 -1
  417. package/dist/server/src/manager/trainingCandidateManager.js +17 -13
  418. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
  419. package/dist/server/src/manager/types.d.ts +4 -0
  420. package/dist/server/src/rpc/interfaces/device.d.ts +1 -0
  421. package/dist/server/src/sensors/registry.js +2 -2
  422. package/dist/server/src/sensors/registry.js.map +1 -1
  423. package/dist/server/src/utils/image.d.ts +1 -0
  424. package/dist/server/src/utils/image.js +95 -0
  425. package/dist/server/src/utils/image.js.map +1 -0
  426. package/package.json +7 -8
  427. package/dist/interface/assets/Assistant-CblA57eC.js +0 -1
  428. package/dist/interface/assets/Automation-WFaHCnEO.js +0 -3
  429. package/dist/interface/assets/AutomationImport-HRMq3VvF.js +0 -2
  430. package/dist/interface/assets/AutomationStore-BaaFYySv.js +0 -2
  431. package/dist/interface/assets/AutomationStoreDetail-IiLAbn4L.js +0 -2
  432. package/dist/interface/assets/Automations-DRTUxje4.js +0 -2
  433. package/dist/interface/assets/Camera-CaNYoR20.js +0 -2
  434. package/dist/interface/assets/Cameras-DnLbeJFs.js +0 -651
  435. package/dist/interface/assets/Camview-uZ50ebLh.js +0 -1
  436. package/dist/interface/assets/Console-CHdFH_Ip.js +0 -1
  437. package/dist/interface/assets/CuiAssistantConversation-B_eSNMuO.js +0 -5
  438. package/dist/interface/assets/CuiBottomSheet-B7hreGA-.js +0 -1
  439. package/dist/interface/assets/CuiCameraPipCard-BXCRph8M.js +0 -1
  440. package/dist/interface/assets/CuiCameraRecordings-B7BhgPpP.css +0 -1
  441. package/dist/interface/assets/CuiCameraRecordings-CztUs6YM.js +0 -1
  442. package/dist/interface/assets/CuiCameraTable-BmsSlihU.js +0 -1
  443. package/dist/interface/assets/CuiChartTable-DCGY-zVy.css +0 -1
  444. package/dist/interface/assets/CuiDataTable-CNFiiz_X.js +0 -1
  445. package/dist/interface/assets/CuiDataTable-DbkFXZeg.css +0 -1
  446. package/dist/interface/assets/CuiLightControl-u_yM0oyh.js +0 -1
  447. package/dist/interface/assets/CuiPluginCard-Bib3KXMs.js +0 -2
  448. package/dist/interface/assets/CuiPluginCategoryChip-CKSV5COz.js +0 -1
  449. package/dist/interface/assets/CuiPluginOAuthButton-Cug_uTVq.js +0 -2
  450. package/dist/interface/assets/CuiSchema-ycZ4rNC_.js +0 -1
  451. package/dist/interface/assets/Faces-D6pm4dxq.js +0 -1
  452. package/dist/interface/assets/FirstSteps-DotR0zU_.js +0 -1
  453. package/dist/interface/assets/Floorplan-xxlvYsYV.js +0 -1
  454. package/dist/interface/assets/Menu-6FMKvbpH.js +0 -1
  455. package/dist/interface/assets/Metrics-SQdgeJrD.js +0 -9
  456. package/dist/interface/assets/Plugin-CsT7_OZp.js +0 -1
  457. package/dist/interface/assets/PluginDetail-Bz65OQlN.js +0 -2
  458. package/dist/interface/assets/PluginSearch-CrzD6rwo.js +0 -1
  459. package/dist/interface/assets/PluginSearch-DKSrC539.js +0 -2
  460. package/dist/interface/assets/Plugins-BvuGEkhs.js +0 -1
  461. package/dist/interface/assets/Recordings-6MHDmY05.js +0 -1
  462. package/dist/interface/assets/Sensors-XQLst9D2.js +0 -2
  463. package/dist/interface/assets/SettingsAccount-BwC-JLu1.js +0 -1
  464. package/dist/interface/assets/SettingsAccount-D8txIS7w.js +0 -1
  465. package/dist/interface/assets/SettingsAppearance-D1PEIzvU.js +0 -1
  466. package/dist/interface/assets/SettingsAssistant-BpTwRGXe.css +0 -1
  467. package/dist/interface/assets/SettingsAssistant-C_9kjVnu.js +0 -1
  468. package/dist/interface/assets/SettingsNotifications-DhXKEfw0.js +0 -1
  469. package/dist/interface/assets/SettingsRecordings-BqRtaATr.js +0 -1
  470. package/dist/interface/assets/SettingsRemote-9YXNd_d3.js +0 -2
  471. package/dist/interface/assets/SettingsSystem-CwlTgN12.js +0 -2
  472. package/dist/interface/assets/Training-DMNjB3uX.css +0 -1
  473. package/dist/interface/assets/Training-DQP1EUdI.js +0 -1
  474. package/dist/interface/assets/VirtualSensorCreate-VIHqPQuq.js +0 -1
  475. package/dist/interface/assets/Workers-CJXGSHP0.js +0 -2
  476. package/dist/interface/assets/api-0KzHya6g.js +0 -4
  477. package/dist/interface/assets/api-C85p0Dk3.css +0 -2
  478. package/dist/interface/assets/cameraSources-B5dOcB7w.js +0 -1
  479. package/dist/interface/assets/cloudHandoff-DzrB62Ot.js +0 -1
  480. package/dist/interface/assets/main-BREBoPYq.js +0 -3
  481. package/dist/interface/assets/sensorIcons-Dwg45YYo.js +0 -1
  482. package/dist/interface/assets/types-B5ZroTch.js +0 -1
  483. package/dist/interface/assets/types-BZz-3rol.js +0 -1
  484. package/dist/interface/assets/ungrouped-CH2Ug0hy.js +0 -1
  485. package/dist/interface/assets/useBackupRestore-5E-Y8DMu.js +0 -1
  486. package/dist/interface/assets/vendor-zod-BMOt_yT8.js +0 -109
  487. package/dist/interface/ha/Plugins-BkvUlAHi.js +0 -705
  488. package/dist/interface/ha/SettingsAssistant-VQkALMWq.js +0 -1699
  489. package/dist/interface/ha/SettingsNotifications-lNH9mh9I.js +0 -529
  490. package/dist/interface/ha/Training-BbRm4L9a.js +0 -1469
@@ -1,1699 +0,0 @@
1
- import { F as e, G as t, H as n, Jt as r, Tt as i, Wt as a, _t as o, d as s, f as c, gt as l, kt as u, l as d, lt as f, ot as p, p as m, q as ee, r as h, u as g, ut as _, v, x as y, xt as b, y as x } from "./runtime-core.esm-bundler-DCktklpY.js";
2
- import { t as S } from "./tooltip-X5MY9FoG.js";
3
- import { t as te } from "./message-BExXUXHN.js";
4
- import { t as C } from "./tag-Bko2QYOK.js";
5
- import { Ln as ne, Mt as w, Nt as T, Or as E, Pt as D, V as O, a as k, an as A, bn as re, ft as j, ki as M, kr as ie, oa as N, on as P, p as F, r as ae, sn as oe, st as se, yn as ce } from "./api-C0pVlzsW.js";
6
- import { i as le } from "./intercomService-Dwd0bhSN.js";
7
- import { n as ue } from "./vue-i18n-BBObX4QY.js";
8
- import { t as de } from "./button-DJDZxmKj.js";
9
- import { t as fe } from "./inputtext-vdcrNX6K.js";
10
- import { t as pe } from "./select-CaVzuLaS.js";
11
- import { t as I } from "./autocomplete-gFZBpGxE.js";
12
- import { i as me, t as he } from "./CuiDataTable-Cxk-gD0O.js";
13
- import { t as ge } from "./inputnumber-MSv4Pb-P.js";
14
- import { t as _e } from "./multiselect-Cedfen4P.js";
15
- import { t as ve } from "./textarea-DrKQ6YMZ.js";
16
- import { t as L } from "./assistant-DJPdidEd.js";
17
- import { t as ye } from "./content-copy-ChfuNPUb.js";
18
- import { u as be } from "./cards-Cn0baEOx.js";
19
- import { a as R, c as xe, d as Se, i as Ce, l as we, o as z, s as Te, u as B } from "./types-B9Rna2FN.js";
20
- import { t as Ee } from "./restore-DMczh46P.js";
21
- import { t as De } from "./pencil-outline-3AYc7WXi.js";
22
- //#region ~icons/mdi/wrench-outline
23
- var V = {
24
- viewBox: "0 0 24 24",
25
- width: "1.2em",
26
- height: "1.2em"
27
- };
28
- function Oe(e, t) {
29
- return n(), m("svg", V, [...t[0] ||= [g("path", {
30
- fill: "currentColor",
31
- d: "m22.61 19l-9.08-9.09c.93-2.34.47-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11L6.08 7.5L2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.39-.4.39-1.01 0-1.4m-3 1.59l-9.46-9.46c-.61.45-1.29.72-2 .82c-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09l4.24-4.24L7.24 3c1.26-.05 2.49.39 3.44 1.33a4.47 4.47 0 0 1 1.24 3.96a4.35 4.35 0 0 1-.88 1.96l9.46 9.45z"
32
- }, null, -1)]]);
33
- }
34
- var ke = o({
35
- name: "mdi-wrench-outline",
36
- render: Oe
37
- }), Ae = {
38
- viewBox: "0 0 24 24",
39
- width: "1.2em",
40
- height: "1.2em"
41
- };
42
- function je(e, t) {
43
- return n(), m("svg", Ae, [...t[0] ||= [g("path", {
44
- fill: "currentColor",
45
- d: "m12 15.39l-3.76 2.27l.99-4.28l-3.32-2.88l4.38-.37L12 6.09l1.71 4.04l4.38.37l-3.32 2.88l.99 4.28M22 9.24l-7.19-.61L12 2L9.19 8.63L2 9.24l5.45 4.73L5.82 21L12 17.27L18.18 21l-1.64-7.03z"
46
- }, null, -1)]]);
47
- }
48
- var Me = o({
49
- name: "mdi-star-outline",
50
- render: je
51
- }), H = { class: "flex w-full flex-col gap-6" }, U = { class: "flex flex-col field-gap" }, Ne = {
52
- for: "assistantModelProvider",
53
- class: "cui-label"
54
- }, Pe = {
55
- key: 0,
56
- class: "flex flex-col field-gap"
57
- }, Fe = {
58
- for: "assistantModelBaseUrl",
59
- class: "cui-label"
60
- }, Ie = {
61
- key: 1,
62
- class: "flex flex-col field-gap"
63
- }, Le = {
64
- for: "assistantModelKey",
65
- class: "cui-label"
66
- }, Re = { class: "flex flex-col field-gap" }, W = {
67
- for: "assistantModelModel",
68
- class: "cui-label"
69
- }, G = { class: "flex flex-col field-gap" }, K = {
70
- for: "assistantModelName",
71
- class: "cui-label"
72
- }, q = { class: "flex items-center gap-4 cui-toggle-switch" }, ze = { class: "flex flex-col field-switch-gap" }, J = {
73
- for: "assistantModelUsers",
74
- class: "cui-label-switch"
75
- }, Be = {
76
- key: 2,
77
- class: "flex items-center gap-4 cui-toggle-switch"
78
- }, Ve = { class: "flex flex-col field-switch-gap" }, Y = {
79
- for: "assistantModelImages",
80
- class: "cui-label-switch"
81
- }, He = /* @__PURE__ */ y({
82
- __name: "AssistantModel",
83
- props: {
84
- entry: {},
85
- models: {}
86
- },
87
- setup(t, { expose: i }) {
88
- let a = new L(), o = t, { t: p } = ue(), ee = M(), _ = a.listAssistantModelsMutation(), y = b(o.entry?.provider ?? "ollama"), S = b(o.entry?.baseURL ?? ""), C = b(""), w = b(o.entry?.model ?? ""), T = b(o.entry && o.entry.name !== o.entry.model ? o.entry.name : ""), E = b(o.entry?.sendImages ?? !1), D = b(o.entry?.userAccess !== !1), O = b("new"), k = b([]), A = b([]), re = b(!1), j = d(() => z.includes(y.value)), ie = d(() => y.value === "ollama" || y.value === "openai-compatible"), N = d(() => o.entry?.apiKeySet === !0 && o.entry.provider === y.value), P = d(() => o.models.filter((e) => e._id !== o.entry?._id && e.provider === y.value && e.apiKeySet)), F = d(() => [{
89
- label: N.value ? p("views.settings.assistant_api_key_stored") : p("views.settings.assistant_api_key_new"),
90
- value: "new"
91
- }, ...P.value.map((e) => ({
92
- label: p("views.settings.assistant_api_key_from", { name: e.name }),
93
- value: e._id
94
- }))]), ae = d(() => j.value && O.value === "new" && !C.value && !N.value);
95
- function oe() {
96
- return N.value ? "new" : P.value[0]?._id ?? "new";
97
- }
98
- function ce() {
99
- let e = O.value === "new" ? C.value ? { apiKey: C.value } : o.entry && !N.value ? { apiKey: null } : {} : { copyKeyFrom: O.value };
100
- return {
101
- ...o.entry ? {
102
- id: o.entry._id,
103
- retest: !0,
104
- sendImages: E.value
105
- } : {},
106
- ...e,
107
- name: T.value,
108
- provider: y.value,
109
- baseURL: ie.value && S.value ? S.value : null,
110
- model: w.value.trim(),
111
- userAccess: D.value
112
- };
113
- }
114
- function le() {
115
- S.value = "", w.value = "", k.value = [], A.value = [], O.value = oe();
116
- }
117
- function de(e) {
118
- let t = e.query.toLowerCase();
119
- A.value = k.value.filter((e) => e.toLowerCase().includes(t));
120
- }
121
- async function me() {
122
- let e = await _.mutateAsync(ce());
123
- if (e.error) {
124
- ee.add({
125
- severity: "warn",
126
- detail: p("views.settings.assistant_models_failed", { message: e.error }),
127
- life: 5e3
128
- });
129
- return;
130
- }
131
- k.value = e.models, A.value = e.models;
132
- }
133
- return e(() => {
134
- O.value = oe();
135
- }), i({ onConfirm: async () => !w.value.trim() || ae.value ? (re.value = !0, null) : ce() }), (e, i) => {
136
- let a = pe, o = te, d = fe, p = se, ee = I, b = ne;
137
- return n(), m("div", H, [
138
- g("div", U, [
139
- g("label", Ne, r(e.$t("views.settings.assistant_provider_label")), 1),
140
- x(a, {
141
- modelValue: u(y),
142
- "onUpdate:modelValue": i[0] ||= (e) => l(y) ? y.value = e : null,
143
- "input-id": "assistantModelProvider",
144
- options: u(Te),
145
- "option-label": "label",
146
- "option-value": "value",
147
- fluid: "",
148
- onChange: le
149
- }, null, 8, ["modelValue", "options"]),
150
- x(o, {
151
- severity: "secondary",
152
- variant: "simple",
153
- size: "small",
154
- class: "cui-input-hint"
155
- }, {
156
- default: f(() => [v(r(e.$t(`views.settings.assistant_provider_hint_${u(y).replace("-", "_")}`)), 1)]),
157
- _: 1
158
- })
159
- ]),
160
- u(ie) ? (n(), m("div", Pe, [g("label", Fe, r(e.$t("views.settings.assistant_base_url_label")), 1), x(d, {
161
- id: "assistantModelBaseUrl",
162
- modelValue: u(S),
163
- "onUpdate:modelValue": i[1] ||= (e) => l(S) ? S.value = e : null,
164
- modelModifiers: { trim: !0 },
165
- placeholder: u(R)[u(y)],
166
- fluid: "",
167
- autocomplete: "off"
168
- }, null, 8, ["modelValue", "placeholder"])])) : c("", !0),
169
- u(j) || u(y) === "openai-compatible" ? (n(), m("div", Ie, [
170
- g("label", Le, r(e.$t("views.settings.assistant_api_key_label")), 1),
171
- u(P).length ? (n(), s(a, {
172
- key: 0,
173
- modelValue: u(O),
174
- "onUpdate:modelValue": i[2] ||= (e) => l(O) ? O.value = e : null,
175
- options: u(F),
176
- "option-label": "label",
177
- "option-value": "value",
178
- fluid: ""
179
- }, null, 8, ["modelValue", "options"])) : c("", !0),
180
- u(O) === u("new") ? (n(), m(h, { key: 1 }, [x(p, {
181
- modelValue: u(C),
182
- "onUpdate:modelValue": i[3] ||= (e) => l(C) ? C.value = e : null,
183
- "input-id": "assistantModelKey",
184
- feedback: !1,
185
- "toggle-mask": "",
186
- fluid: "",
187
- autocomplete: "new-password",
188
- invalid: u(re) && u(ae),
189
- placeholder: u(N) ? "••••••••" : ""
190
- }, null, 8, [
191
- "modelValue",
192
- "invalid",
193
- "placeholder"
194
- ]), u(N) ? (n(), s(o, {
195
- key: 0,
196
- severity: "secondary",
197
- variant: "simple",
198
- size: "small",
199
- class: "cui-input-hint"
200
- }, {
201
- default: f(() => [v(r(e.$t("views.settings.assistant_api_key_keep_hint")), 1)]),
202
- _: 1
203
- })) : u(j) ? c("", !0) : (n(), s(o, {
204
- key: 1,
205
- severity: "secondary",
206
- variant: "simple",
207
- size: "small",
208
- class: "cui-input-hint"
209
- }, {
210
- default: f(() => [v(r(e.$t("views.settings.assistant_api_key_optional")), 1)]),
211
- _: 1
212
- }))], 64)) : c("", !0)
213
- ])) : c("", !0),
214
- g("div", Re, [
215
- g("label", W, r(e.$t("views.settings.assistant_model_label")), 1),
216
- x(ee, {
217
- modelValue: u(w),
218
- "onUpdate:modelValue": i[4] ||= (e) => l(w) ? w.value = e : null,
219
- "input-id": "assistantModelModel",
220
- suggestions: u(A),
221
- loading: u(_).isPending.value,
222
- invalid: u(re) && !u(w).trim(),
223
- dropdown: "",
224
- fluid: "",
225
- placeholder: e.$t("views.settings.assistant_model_placeholder"),
226
- onComplete: de,
227
- onDropdownClick: me
228
- }, null, 8, [
229
- "modelValue",
230
- "suggestions",
231
- "loading",
232
- "invalid",
233
- "placeholder"
234
- ]),
235
- x(o, {
236
- severity: "secondary",
237
- variant: "simple",
238
- size: "small",
239
- class: "cui-input-hint"
240
- }, {
241
- default: f(() => [v(r(e.$t("views.settings.assistant_model_info")), 1)]),
242
- _: 1
243
- })
244
- ]),
245
- g("div", G, [g("label", K, r(e.$t("views.settings.assistant_model_name_label")), 1), x(d, {
246
- id: "assistantModelName",
247
- modelValue: u(T),
248
- "onUpdate:modelValue": i[5] ||= (e) => l(T) ? T.value = e : null,
249
- modelModifiers: { trim: !0 },
250
- placeholder: u(w).trim() || e.$t("views.settings.assistant_model_name_placeholder"),
251
- maxlength: "40",
252
- fluid: ""
253
- }, null, 8, ["modelValue", "placeholder"])]),
254
- g("div", q, [g("div", ze, [g("label", J, r(e.$t("views.settings.assistant_model_users")), 1), x(o, {
255
- severity: "secondary",
256
- variant: "simple",
257
- size: "small",
258
- class: "cui-input-switch-hint"
259
- }, {
260
- default: f(() => [v(r(e.$t("views.settings.assistant_model_users_info")), 1)]),
261
- _: 1
262
- })]), x(b, {
263
- modelValue: u(D),
264
- "onUpdate:modelValue": i[6] ||= (e) => l(D) ? D.value = e : null,
265
- "input-id": "assistantModelUsers",
266
- class: "ml-auto shrink-0"
267
- }, null, 8, ["modelValue"])]),
268
- t.entry ? (n(), m("div", Be, [g("div", Ve, [g("label", Y, r(e.$t("views.settings.assistant_send_images")), 1), x(o, {
269
- severity: "secondary",
270
- variant: "simple",
271
- size: "small",
272
- class: "cui-input-switch-hint"
273
- }, {
274
- default: f(() => [v(r(t.entry.capabilities?.vision === !1 ? e.$t("views.settings.assistant_send_images_no_vision") : e.$t("views.settings.assistant_send_images_info")), 1)]),
275
- _: 1
276
- })]), x(b, {
277
- modelValue: u(E),
278
- "onUpdate:modelValue": i[7] ||= (e) => l(E) ? E.value = e : null,
279
- "input-id": "assistantModelImages",
280
- class: "ml-auto shrink-0"
281
- }, null, 8, ["modelValue"])])) : c("", !0)
282
- ]);
283
- };
284
- }
285
- }), Ue = { class: "w-full h-full" }, We = {
286
- key: 0,
287
- class: "w-full h-full flex items-center justify-center"
288
- }, Ge = {
289
- key: 1,
290
- class: "flex flex-col w-full gap-6"
291
- }, Ke = { class: "card-title" }, qe = { class: "flex items-center gap-4" }, Je = { class: "flex flex-col field-switch-gap min-w-0" }, Ye = { class: "text-sm font-bold text-color" }, Xe = { class: "card-title" }, Ze = { class: "flex flex-col gap-6" }, Qe = { class: "flex items-center gap-4 cui-toggle-switch" }, $e = { class: "flex flex-col field-switch-gap" }, et = {
292
- for: "enabled",
293
- class: "cui-label-switch"
294
- }, tt = {
295
- key: 0,
296
- class: "flex flex-col divide-y divide-(--border-color)"
297
- }, nt = { class: "min-w-0 flex-1" }, rt = { class: "flex flex-wrap items-center gap-2" }, it = { class: "font-medium text-color" }, at = { class: "mt-0.5 truncate text-muted" }, ot = {
298
- key: 0,
299
- class: "mt-1 text-xs text-danger line-clamp-2"
300
- }, st = { class: "flex shrink-0 items-center gap-1" }, ct = {
301
- key: 1,
302
- class: "text-sm text-muted"
303
- }, lt = { class: "flex" }, ut = { class: "card-title" }, dt = { class: "flex flex-col gap-6" }, ft = {
304
- key: 0,
305
- class: "flex flex-col divide-y divide-(--border-color)"
306
- }, pt = { class: "flex min-w-0 items-center gap-2 md:w-48 md:shrink-0" }, mt = { class: "truncate font-medium text-color" }, ht = {
307
- key: 1,
308
- class: "text-sm text-muted"
309
- }, gt = { class: "flex" }, _t = { class: "card-title" }, vt = { class: "flex flex-col gap-6" }, yt = { class: "flex items-center gap-4 cui-toggle-switch" }, bt = { class: "flex flex-col field-switch-gap" }, xt = {
310
- for: "memoryEnabled",
311
- class: "cui-label-switch"
312
- }, St = { class: "flex items-center gap-4 cui-toggle-switch" }, Ct = { class: "flex flex-col field-switch-gap" }, wt = {
313
- for: "terminalEnabled",
314
- class: "cui-label-switch"
315
- }, Tt = { class: "flex flex-col field-gap" }, Et = {
316
- for: "language",
317
- class: "cui-label"
318
- }, Dt = { class: "flex flex-col field-gap" }, Ot = {
319
- for: "reasoning",
320
- class: "cui-label"
321
- }, kt = { class: "flex flex-col md:flex-row gap-6" }, At = { class: "flex flex-col field-gap flex-1" }, jt = {
322
- for: "maxIterations",
323
- class: "cui-label"
324
- }, Mt = { class: "flex flex-col field-gap flex-1" }, Nt = {
325
- for: "maxToolCalls",
326
- class: "cui-label"
327
- }, Pt = { class: "flex flex-col field-gap" }, Ft = {
328
- for: "contextTokens",
329
- class: "cui-label"
330
- }, It = { class: "flex flex-col md:flex-row gap-4" }, Lt = { class: "flex flex-col field-gap flex-1" }, Rt = {
331
- for: "historyThreads",
332
- class: "cui-label"
333
- }, zt = { class: "flex flex-col field-gap flex-1" }, Bt = {
334
- for: "historyImages",
335
- class: "cui-label"
336
- }, Vt = { class: "flex flex-col field-gap" }, Ht = {
337
- for: "systemPromptExtra",
338
- class: "cui-label"
339
- }, Ut = { class: "flex items-center gap-2" }, Wt = { class: "card-title" }, Gt = { class: "flex flex-col gap-6" }, Kt = { class: "flex flex-col gap-4" }, qt = { class: "flex items-center justify-between gap-4" }, Jt = { class: "flex flex-col" }, Yt = { class: "text-sm font-medium text-color" }, Xt = { class: "text-xs text-muted" }, Zt = { class: "flex items-center justify-between gap-4" }, Qt = { class: "flex flex-col" }, $t = { class: "text-sm font-medium text-color" }, en = { class: "text-xs text-muted" }, tn = {
340
- key: 0,
341
- class: "flex flex-col gap-6"
342
- }, nn = { class: "flex flex-col field-gap" }, rn = {
343
- for: "mcpEndpoint",
344
- class: "cui-label"
345
- }, an = { class: "flex flex-col field-gap" }, on = {
346
- for: "mcpClient",
347
- class: "cui-label"
348
- }, sn = { class: "flex" }, cn = { class: "card-title" }, ln = { class: "flex flex-col gap-6" }, un = { class: "flex items-center gap-3" }, dn = { class: "text-sm font-medium text-color truncate" }, fn = { class: "flex flex-col md:flex-row gap-4" }, pn = { class: "flex flex-col field-gap md:w-56" }, mn = ["for"], hn = { class: "flex flex-col field-gap flex-1" }, gn = ["for"], _n = { class: "flex flex-col field-gap" }, vn = ["for"], yn = { class: "flex items-center gap-4 cui-toggle-switch" }, bn = { class: "flex flex-col field-switch-gap" }, xn = ["for"], Sn = { class: "flex items-center gap-2" }, Cn = { class: "card-title" }, wn = { class: "flex flex-col gap-6" }, Tn = {
349
- key: 0,
350
- class: "flex flex-col divide-y divide-(--border-color)"
351
- }, En = { class: "min-w-0 flex-1" }, Dn = { class: "flex flex-wrap items-center gap-2" }, On = { class: "font-medium text-color" }, kn = { class: "mt-0.5 text-muted line-clamp-2" }, An = { class: "mt-1 text-xs text-muted" }, jn = { key: 0 }, Mn = { key: 1 }, Nn = { class: "flex shrink-0 items-center gap-1" }, Pn = { class: "flex flex-col md:flex-row gap-6" }, Fn = { class: "flex flex-col field-gap flex-1" }, In = {
352
- for: "scheduleTitle",
353
- class: "cui-label"
354
- }, Ln = { class: "flex flex-col field-gap w-full md:w-52 shrink-0" }, Rn = {
355
- for: "scheduleDeliver",
356
- class: "cui-label"
357
- }, zn = { class: "flex flex-col field-gap" }, Bn = {
358
- for: "schedulePrompt",
359
- class: "cui-label"
360
- }, Vn = {
361
- key: 0,
362
- class: "flex flex-col field-gap"
363
- }, Hn = {
364
- for: "scheduleProfile",
365
- class: "cui-label"
366
- }, Un = { class: "flex flex-col md:flex-row gap-6" }, Wn = { class: "flex flex-col field-gap flex-1" }, Gn = {
367
- for: "schedulePreset",
368
- class: "cui-label"
369
- }, Kn = {
370
- key: 0,
371
- class: "flex flex-col field-gap w-full md:w-40 shrink-0"
372
- }, qn = {
373
- for: "scheduleTime",
374
- class: "cui-label"
375
- }, Jn = {
376
- key: 1,
377
- class: "flex flex-col field-gap flex-1"
378
- }, Yn = {
379
- for: "scheduleCron",
380
- class: "cui-label"
381
- }, Xn = { class: "flex" }, Zn = { class: "card-title" }, Qn = { class: "flex flex-col gap-3" }, $n = { class: "text-sm text-muted" }, er = { class: "truncate" }, tr = { class: "truncate" }, nr = { class: "card-title" }, rr = {
382
- key: 0,
383
- class: "text-sm text-muted"
384
- }, ir = {
385
- key: 1,
386
- class: "flex flex-col gap-6"
387
- }, ar = {
388
- key: 0,
389
- class: "mb-4 flex flex-col field-gap"
390
- }, or = ["for"], sr = { class: "flex max-h-96 flex-col divide-y divide-(--border-color) overflow-y-auto pr-2" }, cr = { class: "min-w-0 flex-1" }, lr = { class: "flex flex-wrap items-center gap-2" }, ur = { class: "font-medium text-color" }, dr = { class: "text-muted" }, fr = {
391
- key: 0,
392
- class: "flex"
393
- }, X = "none", pr = /*#__PURE__*/ E(/* @__PURE__ */ y({
394
- __name: "SettingsAssistant",
395
- setup(e) {
396
- let o = {
397
- memoryEnabled: !0,
398
- terminalEnabled: !1,
399
- language: null,
400
- reasoning: "default",
401
- maxIterations: 8,
402
- maxToolCalls: 25,
403
- contextTokens: 48e3,
404
- historyThreads: 50,
405
- historyImages: 24
406
- }, y = { columnHeaderContent: { class: "justify-end" } }, E = {
407
- bodyRow: { class: "text-sm text-secondary" },
408
- column: { columnTitle: { class: "text-sm" } }
409
- }, I = new L(), R = M(), z = j(), { t: V, locale: Oe } = ue(), { data: Ae, isLoading: je } = I.usageAllQuery(), { data: H } = I.getAssistantInfoQuery(), U = I.patchAssistantInfoMutation(), { data: Ne } = I.listProfilesQuery(), { data: Pe } = I.listSchedulesQuery(), Fe = I.createScheduleMutation(), Ie = I.patchScheduleMutation(), Le = I.deleteScheduleMutation(), Re = I.runScheduleMutation(), W = b(null), G = b({
410
- title: "",
411
- prompt: "",
412
- preset: "daily",
413
- time: "20:00",
414
- cron: "",
415
- deliver: "push",
416
- profileId: null
417
- }), K = b({}), q = b("claude-code"), ze = b("core"), J = d(() => H.value?.settings.models ?? []), Be = d(() => H.value ? we(H.value.settings) : void 0), Ve = d(() => [{
418
- label: V("views.settings.assistant_plugin_no_access"),
419
- value: X
420
- }, ...J.value.map((e) => ({
421
- label: e.name,
422
- value: e._id
423
- }))]), Y = d(() => {
424
- let e = /* @__PURE__ */ new Map();
425
- for (let t of H.value?.tools ?? []) {
426
- let n = t.source.kind === "plugin" ? t.source.pluginId : t.source.kind === "external" ? t.source.serverId : "core", r = t.source.kind === "plugin" ? t.source.pluginName : t.source.kind === "external" ? t.source.serverName : "camera.ui", i = e.get(n) ?? {
427
- key: n,
428
- label: r,
429
- serverId: t.source.kind === "external" ? t.source.serverId : void 0,
430
- tools: []
431
- };
432
- i.tools.push(t), e.set(n, i);
433
- }
434
- return Array.from(e.values());
435
- }), pr = d(() => Ae.value?.map((e) => ({
436
- ...e,
437
- key: `${e.userId}-${e.month}-${e.provider}-${e.model}`
438
- }))), Z = d(() => H.value?.status), mr = d(() => [
439
- {
440
- label: V("views.settings.assistant_language_auto"),
441
- value: null
442
- },
443
- {
444
- label: "Deutsch",
445
- value: "de"
446
- },
447
- {
448
- label: "English",
449
- value: "en"
450
- }
451
- ]), hr = d(() => [
452
- "default",
453
- "off",
454
- "low",
455
- "high"
456
- ].map((e) => ({
457
- label: V(`views.settings.assistant_reasoning_${e}`),
458
- value: e
459
- }))), gr = d(() => new URL(`${N.defaults.baseURL ?? "/api"}/assistant/mcp`.replace(/\/{2,}/g, "/"), window.location.origin).toString()), _r = d(() => [
460
- {
461
- label: "Claude Code",
462
- value: "claude-code"
463
- },
464
- {
465
- label: "Cursor, Windsurf, VS Code",
466
- value: "cursor"
467
- },
468
- {
469
- label: "Claude Desktop",
470
- value: "claude-desktop"
471
- }
472
- ]), vr = d(() => {
473
- let e = gr.value;
474
- return q.value === "claude-code" ? `claude mcp add --transport http camera-ui ${e} --header "Authorization: Bearer <api token>"` : q.value === "cursor" ? JSON.stringify({ mcpServers: { "camera-ui": {
475
- url: e,
476
- headers: { Authorization: "Bearer <api token>" }
477
- } } }, null, 2) : JSON.stringify({ mcpServers: { "camera-ui": {
478
- command: "npx",
479
- args: [
480
- "-y",
481
- "mcp-remote",
482
- e,
483
- "--header",
484
- "Authorization: Bearer <api token>"
485
- ]
486
- } } }, null, 2);
487
- }), yr = d(() => [
488
- "push",
489
- "thread",
490
- "both"
491
- ].map((e) => ({
492
- label: V(`views.settings.assistant_schedule_deliver_${e}`),
493
- value: e
494
- }))), br = d(() => [
495
- "daily",
496
- "weekdays",
497
- "weekends",
498
- "weekly",
499
- "hourly",
500
- "custom"
501
- ].map((e) => ({
502
- label: V(`views.settings.assistant_schedule_preset_${e}`),
503
- value: e
504
- }))), xr = d(() => {
505
- let { preset: e, time: t, cron: n } = G.value, [r, i] = t.split(":").map((e) => Number.parseInt(e, 10));
506
- return e === "custom" ? n.trim() : e === "hourly" ? "0 * * * *" : Number.isNaN(r) || Number.isNaN(i) ? "" : `${i} ${r} * * ${e === "weekdays" ? "1-5" : e === "weekends" ? "0,6" : e === "weekly" ? "0" : "*"}`;
507
- }), Sr = d(() => {
508
- switch (Z.value?.state) {
509
- case "ready": return "success";
510
- case "unconfigured": return "warn";
511
- default: return "secondary";
512
- }
513
- }), Cr = d(() => V(`views.settings.assistant_state_${Z.value?.state ?? "disabled"}`)), wr = d(() => Z.value ? Z.value.state === "ready" ? V("views.settings.assistant_status_ready", { model: Z.value.model }) : V("views.settings.assistant_status_info") : "");
514
- function Tr(e) {
515
- let t = /^(\d+) (\d+) \* \* (\*|1-5|0,6|0)$/.exec(e);
516
- if (!t) return e;
517
- let n = `${t[2].padStart(2, "0")}:${t[1].padStart(2, "0")}`, r = t[3] === "*" ? "daily" : t[3] === "1-5" ? "weekdays" : t[3] === "0" ? "weekly" : "weekends";
518
- return `${V(`views.settings.assistant_schedule_preset_${r}`)} ${n}`;
519
- }
520
- function Er(e) {
521
- return e === "push" ? "info" : e === "thread" ? "secondary" : "success";
522
- }
523
- function Dr(e) {
524
- return new Date(e).toLocaleString(Oe.value, {
525
- day: "2-digit",
526
- month: "2-digit",
527
- hour: "2-digit",
528
- minute: "2-digit"
529
- });
530
- }
531
- async function Or() {
532
- await Fe.mutateAsync({
533
- title: G.value.title,
534
- prompt: G.value.prompt,
535
- cron: xr.value,
536
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
537
- language: Oe.value,
538
- deliver: G.value.deliver,
539
- profileId: G.value.profileId,
540
- enabled: !0
541
- }), G.value = {
542
- ...G.value,
543
- title: "",
544
- prompt: "",
545
- cron: "",
546
- profileId: null
547
- };
548
- }
549
- function kr(e) {
550
- return e.replace(/^\[[^\]]+\]\s*/, "");
551
- }
552
- function Ar(e) {
553
- if (e.source.kind !== "external") return e.approval;
554
- let { serverId: t, toolName: n } = e.source;
555
- return W.value?.mcpServers.find((e) => e.id === t)?.toolApproval[n] ?? e.approval;
556
- }
557
- function jr(e) {
558
- return e.tools.flatMap((e) => e.source.kind === "external" ? [{
559
- label: Ce(e.name),
560
- value: e.source.toolName
561
- }] : []);
562
- }
563
- function Mr(e) {
564
- return e.tools.flatMap((e) => e.source.kind === "external" && !Ar(e) ? [e.source.toolName] : []);
565
- }
566
- function Nr(e, t) {
567
- let n = W.value?.mcpServers.find((t) => t.id === e.serverId);
568
- n && (n.toolApproval = Object.fromEntries(jr(e).map((e) => [e.value, !t.includes(e.value)])));
569
- }
570
- function Pr(e) {
571
- return e < 1e3 ? String(e) : e < 1e6 ? `${(e / 1e3).toFixed(+(e < 1e4))}k` : `${(e / 1e6).toFixed(2)}M`;
572
- }
573
- function Fr(e) {
574
- return H.value?.external.find((t) => t.id === e);
575
- }
576
- function Ir(e) {
577
- let t = Fr(e);
578
- return t ? t.state === "connected" ? V("views.settings.assistant_external_state_connected", { n: t.toolCount }) : t.state === "error" ? V("views.settings.assistant_external_state_error", { message: t.error ?? "" }) : V(`views.settings.assistant_external_state_${t.state}`) : "";
579
- }
580
- function Lr(e) {
581
- let t = Fr(e)?.state;
582
- return t === "connected" ? "text-success" : t === "error" ? "text-danger" : "text-muted";
583
- }
584
- function Rr() {
585
- W.value && W.value.mcpServers.push({
586
- id: F(),
587
- name: "",
588
- url: "",
589
- enabled: !0,
590
- insecure: !1,
591
- tokenSet: !1,
592
- toolApproval: {}
593
- });
594
- }
595
- function zr(e) {
596
- W.value && (W.value.mcpServers = W.value.mcpServers.filter((t) => t.id !== e), delete K.value[e]);
597
- }
598
- function Br() {
599
- let e = k(W.value);
600
- return {
601
- language: e.language,
602
- maxIterations: e.maxIterations,
603
- maxToolCalls: e.maxToolCalls,
604
- contextTokens: e.contextTokens,
605
- historyThreads: e.historyThreads,
606
- historyImages: e.historyImages,
607
- terminalEnabled: e.terminalEnabled,
608
- reasoning: e.reasoning,
609
- systemPromptExtra: e.systemPromptExtra,
610
- mcpEnabled: e.mcpEnabled,
611
- mcpWrites: e.mcpWrites,
612
- memoryEnabled: e.memoryEnabled,
613
- plugins: e.plugins.map(({ pluginId: e, modelId: t }) => ({
614
- pluginId: e,
615
- modelId: t
616
- })),
617
- mcpServers: e.mcpServers.filter((e) => e.name.trim() || e.url.trim()).map((e) => ({
618
- id: e.id,
619
- name: e.name.trim(),
620
- url: e.url.trim(),
621
- enabled: e.enabled,
622
- insecure: e.insecure,
623
- toolApproval: e.toolApproval,
624
- ...K.value[e.id] ? { token: K.value[e.id] } : {}
625
- }))
626
- };
627
- }
628
- function Vr() {
629
- W.value && Object.assign(W.value, o);
630
- }
631
- async function Q() {
632
- W.value && (await U.mutateAsync(Br()), K.value = {});
633
- }
634
- function Hr(e) {
635
- return Te.find((t) => t.value === e)?.label ?? e;
636
- }
637
- async function Ur(e) {
638
- return U.mutateAsync({ models: e });
639
- }
640
- function Wr(e) {
641
- let t = new Set(J.value.map((e) => e._id));
642
- z.openComponentDialog(He, {
643
- data: {
644
- title: V(e ? "views.settings.assistant_model_edit" : "views.settings.assistant_model_add"),
645
- confirmText: V("components.form.button.save"),
646
- awaitConfirm: !0,
647
- contentProps: {
648
- entry: e ? i(e) : void 0,
649
- models: i(J.value)
650
- }
651
- },
652
- onConfirm: async (n) => {
653
- Gr((await Ur(e ? J.value.map((t) => t._id === e._id ? n : B(t)) : [...J.value.map(B), n])).settings.models.find((n) => e ? n._id === e._id : !t.has(n._id)));
654
- }
655
- });
656
- }
657
- function Gr(e) {
658
- let t = e?.capabilities;
659
- if (!t) return;
660
- let n = t.error ? V("views.settings.assistant_test_failed", { message: t.error }) : t.toolCalling ? t.vision === !1 ? V("views.settings.assistant_test_vision_missing") : "" : V("views.settings.assistant_test_tools_missing");
661
- n && R.add({
662
- severity: t.error ? "error" : "warn",
663
- detail: n,
664
- life: 8e3
665
- });
666
- }
667
- function Kr(e) {
668
- z.openTextDialog({
669
- data: {
670
- title: V("views.settings.assistant_model_delete"),
671
- contentText: V("views.settings.assistant_model_delete_confirm", { name: e.name }),
672
- confirmText: V("views.settings.assistant_model_delete"),
673
- confirmButtonProps: { severity: "danger" }
674
- },
675
- onConfirm: async () => {
676
- await Ur(J.value.filter((t) => t._id !== e._id).map(B));
677
- }
678
- });
679
- }
680
- async function qr(e) {
681
- await U.mutateAsync({ defaultModelId: e._id });
682
- }
683
- function Jr(e) {
684
- return W.value?.plugins.find((t) => t.pluginId === e)?.modelId ?? X;
685
- }
686
- function Yr(e) {
687
- return J.value.find((t) => t._id === Jr(e));
688
- }
689
- function Xr(e, t) {
690
- if (!W.value) return;
691
- let n = W.value.plugins.filter((t) => t.pluginId !== e);
692
- W.value.plugins = t === X ? n : [...n, {
693
- pluginId: e,
694
- modelId: t
695
- }];
696
- }
697
- function Zr(e) {
698
- return J.value.find((t) => t.provider === e.provider && t.model === e.model)?.name ?? e.model;
699
- }
700
- function Qr(e) {
701
- return Ne.value?.find((t) => t._id === e)?.name;
702
- }
703
- return p(H, (e) => {
704
- e && !W.value && (W.value = k(e.settings));
705
- }, { immediate: !0 }), (e, i) => {
706
- let o = ie, d = te, p = C, b = le, k = ne, j = Me, M = de, N = De, F = O, ue = be, I = pe, L = ge, R = ve, we = Ee, z = fe, Te = w, B = T, V = D, Oe = ee("RouterLink"), Ae = se, He = Se, X = me, Z = he, Fr = A, Br = P, Ur = _e, Gr = ke, $r = oe, ei = ce, ti = re, $ = S;
707
- return n(), m("div", Ue, [u(W) ? (n(), m("div", Ge, [
708
- g("div", null, [g("span", Ke, r(e.$t("views.settings.status")), 1), x(b, { class: "cui-card" }, {
709
- content: f(() => [g("div", qe, [g("div", Je, [g("span", Ye, r(e.$t("views.settings.assistant_title")), 1), x(d, {
710
- severity: "secondary",
711
- variant: "simple",
712
- size: "small",
713
- class: "cui-input-switch-hint truncate"
714
- }, {
715
- default: f(() => [v(r(u(wr)), 1)]),
716
- _: 1
717
- })]), x(p, {
718
- class: "ml-auto shrink-0",
719
- severity: u(Sr),
720
- value: u(Cr)
721
- }, null, 8, ["severity", "value"])])]),
722
- _: 1
723
- })]),
724
- g("div", null, [g("span", Xe, r(e.$t("views.settings.assistant_model")), 1), x(b, { class: "cui-card" }, {
725
- content: f(() => [g("div", Ze, [
726
- g("div", Qe, [g("div", $e, [g("label", et, r(e.$t("components.form.label.enabled")), 1), x(d, {
727
- severity: "secondary",
728
- variant: "simple",
729
- size: "small",
730
- class: "cui-input-switch-hint"
731
- }, {
732
- default: f(() => [v(r(e.$t("views.settings.assistant_enabled_info")), 1)]),
733
- _: 1
734
- })]), x(k, {
735
- "model-value": u(H)?.settings.enabled ?? !1,
736
- "input-id": "enabled",
737
- disabled: u(U).isPending.value,
738
- class: "ml-auto shrink-0",
739
- "onUpdate:modelValue": i[0] ||= (e) => u(U).mutate({ enabled: e })
740
- }, null, 8, ["model-value", "disabled"])]),
741
- x(d, {
742
- severity: "secondary",
743
- variant: "simple",
744
- size: "small",
745
- class: "cui-input-hint"
746
- }, {
747
- default: f(() => [v(r(e.$t("views.settings.assistant_models_info")), 1)]),
748
- _: 1
749
- }),
750
- u(J).length ? (n(), m("div", tt, [(n(!0), m(h, null, t(u(J), (i) => (n(), m("div", {
751
- key: i._id,
752
- class: "flex items-start gap-3 py-3 text-sm"
753
- }, [g("div", nt, [
754
- g("div", rt, [
755
- g("span", it, r(i.name), 1),
756
- i._id === u(Be)?._id ? (n(), s(p, {
757
- key: 0,
758
- severity: "info",
759
- value: e.$t("views.settings.assistant_model_default"),
760
- class: "text-[10px]"
761
- }, null, 8, ["value"])) : c("", !0),
762
- i.userAccess === !1 ? (n(), s(p, {
763
- key: 1,
764
- severity: "secondary",
765
- value: e.$t("views.settings.assistant_model_admins_only"),
766
- class: "text-[10px]"
767
- }, null, 8, ["value"])) : c("", !0),
768
- (n(!0), m(h, null, t(u(xe)(i), (t) => (n(), s(p, {
769
- key: t.key,
770
- severity: t.severity,
771
- value: e.$t(`views.settings.assistant_capability_${t.key}`),
772
- class: "text-[10px]"
773
- }, null, 8, ["severity", "value"]))), 128))
774
- ]),
775
- g("div", at, r(Hr(i.provider)) + " · " + r(i.model), 1),
776
- i.capabilities?.error ? (n(), m("div", ot, r(i.capabilities.error), 1)) : c("", !0)
777
- ]), g("div", st, [
778
- i._id === u(Be)?._id ? c("", !0) : _((n(), s(M, {
779
- key: 0,
780
- type: "button",
781
- severity: "secondary",
782
- text: "",
783
- rounded: "",
784
- class: "cui-icon-md",
785
- disabled: u(U).isPending.value,
786
- onClick: (e) => qr(i)
787
- }, {
788
- icon: f(() => [x(j, {
789
- width: "100%",
790
- height: "100%"
791
- })]),
792
- _: 1
793
- }, 8, ["disabled", "onClick"])), [[
794
- $,
795
- { value: e.$t("views.settings.assistant_model_make_default") },
796
- void 0,
797
- { top: !0 }
798
- ]]),
799
- _((n(), s(M, {
800
- type: "button",
801
- severity: "secondary",
802
- text: "",
803
- rounded: "",
804
- class: "cui-icon-md",
805
- onClick: (e) => Wr(i)
806
- }, {
807
- icon: f(() => [x(N, {
808
- width: "100%",
809
- height: "100%"
810
- })]),
811
- _: 1
812
- }, 8, ["onClick"])), [[
813
- $,
814
- { value: e.$t("views.settings.assistant_model_edit") },
815
- void 0,
816
- { top: !0 }
817
- ]]),
818
- _((n(), s(M, {
819
- type: "button",
820
- severity: "danger",
821
- text: "",
822
- rounded: "",
823
- class: "cui-icon-md",
824
- onClick: (e) => Kr(i)
825
- }, {
826
- icon: f(() => [x(F, {
827
- width: "100%",
828
- height: "100%"
829
- })]),
830
- _: 1
831
- }, 8, ["onClick"])), [[
832
- $,
833
- { value: e.$t("views.settings.assistant_model_delete") },
834
- void 0,
835
- { top: !0 }
836
- ]])
837
- ])]))), 128))])) : (n(), m("div", ct, r(e.$t("views.settings.assistant_models_empty")), 1)),
838
- g("div", lt, [x(M, {
839
- type: "button",
840
- severity: "secondary",
841
- outlined: "",
842
- class: "cui-button-medium ml-auto",
843
- label: e.$t("views.settings.assistant_model_add"),
844
- disabled: u(J).length >= 20,
845
- onClick: i[1] ||= (e) => Wr()
846
- }, {
847
- icon: f(() => [x(ue, { class: "w-4 h-4" })]),
848
- _: 1
849
- }, 8, ["label", "disabled"])])
850
- ])]),
851
- _: 1
852
- })]),
853
- g("div", null, [g("span", ut, r(e.$t("views.settings.assistant_plugins")), 1), x(b, { class: "cui-card" }, {
854
- content: f(() => [g("div", dt, [
855
- x(d, {
856
- severity: "secondary",
857
- variant: "simple",
858
- size: "small",
859
- class: "cui-input-hint"
860
- }, {
861
- default: f(() => [v(r(e.$t("views.settings.assistant_plugins_info")), 1)]),
862
- _: 1
863
- }),
864
- u(H)?.plugins.length ? (n(), m("div", ft, [(n(!0), m(h, null, t(u(H).plugins, (t) => (n(), m("div", {
865
- key: t.id,
866
- class: "flex flex-col gap-2 py-3 text-sm md:flex-row md:items-center md:gap-4"
867
- }, [g("div", pt, [g("span", mt, r(t.name), 1), Yr(t.id)?.capabilities?.vision === !1 ? (n(), s(p, {
868
- key: 0,
869
- severity: "warn",
870
- value: e.$t("views.settings.assistant_capability_no_vision"),
871
- class: "shrink-0 text-[10px]"
872
- }, null, 8, ["value"])) : c("", !0)]), x(I, {
873
- "model-value": Jr(t.id),
874
- options: u(Ve),
875
- "option-label": "label",
876
- "option-value": "value",
877
- class: "w-full md:min-w-0 md:flex-1",
878
- "onUpdate:modelValue": (e) => Xr(t.id, e)
879
- }, null, 8, [
880
- "model-value",
881
- "options",
882
- "onUpdate:modelValue"
883
- ])]))), 128))])) : (n(), m("div", ht, r(e.$t("views.settings.assistant_plugins_empty")), 1)),
884
- g("div", gt, [x(M, {
885
- type: "button",
886
- loading: u(U).isPending.value,
887
- class: "cui-button-medium ml-auto",
888
- label: e.$t("components.form.button.save"),
889
- onClick: Q
890
- }, null, 8, ["loading", "label"])])
891
- ])]),
892
- _: 1
893
- })]),
894
- g("div", null, [g("span", _t, r(e.$t("views.settings.assistant_behavior")), 1), x(b, { class: "cui-card" }, {
895
- content: f(() => [g("div", vt, [
896
- g("div", yt, [g("div", bt, [g("label", xt, r(e.$t("views.settings.assistant_memory")), 1), x(d, {
897
- severity: "secondary",
898
- variant: "simple",
899
- size: "small",
900
- class: "cui-input-switch-hint"
901
- }, {
902
- default: f(() => [v(r(e.$t("views.settings.assistant_memory_info")), 1)]),
903
- _: 1
904
- })]), x(k, {
905
- modelValue: u(W).memoryEnabled,
906
- "onUpdate:modelValue": i[2] ||= (e) => u(W).memoryEnabled = e,
907
- "input-id": "memoryEnabled",
908
- class: "ml-auto shrink-0"
909
- }, null, 8, ["modelValue"])]),
910
- g("div", St, [g("div", Ct, [g("label", wt, r(e.$t("views.settings.assistant_terminal")), 1), x(d, {
911
- severity: "secondary",
912
- variant: "simple",
913
- size: "small",
914
- class: "cui-input-switch-hint"
915
- }, {
916
- default: f(() => [v(r(e.$t("views.settings.assistant_terminal_info")), 1)]),
917
- _: 1
918
- })]), x(k, {
919
- modelValue: u(W).terminalEnabled,
920
- "onUpdate:modelValue": i[3] ||= (e) => u(W).terminalEnabled = e,
921
- "input-id": "terminalEnabled",
922
- class: "ml-auto shrink-0"
923
- }, null, 8, ["modelValue"])]),
924
- g("div", Tt, [
925
- g("label", Et, r(e.$t("views.settings.assistant_language_label")), 1),
926
- x(I, {
927
- modelValue: u(W).language,
928
- "onUpdate:modelValue": i[4] ||= (e) => u(W).language = e,
929
- options: u(mr),
930
- "option-label": "label",
931
- "option-value": "value",
932
- fluid: ""
933
- }, null, 8, ["modelValue", "options"]),
934
- x(d, {
935
- severity: "secondary",
936
- variant: "simple",
937
- size: "small",
938
- class: "cui-input-hint"
939
- }, {
940
- default: f(() => [v(r(e.$t("views.settings.assistant_language_info")), 1)]),
941
- _: 1
942
- })
943
- ]),
944
- g("div", Dt, [
945
- g("label", Ot, r(e.$t("views.settings.assistant_reasoning_label")), 1),
946
- x(I, {
947
- modelValue: u(W).reasoning,
948
- "onUpdate:modelValue": i[5] ||= (e) => u(W).reasoning = e,
949
- "input-id": "reasoning",
950
- options: u(hr),
951
- "option-label": "label",
952
- "option-value": "value",
953
- fluid: ""
954
- }, null, 8, ["modelValue", "options"]),
955
- x(d, {
956
- severity: "secondary",
957
- variant: "simple",
958
- size: "small",
959
- class: "cui-input-hint"
960
- }, {
961
- default: f(() => [v(r(e.$t("views.settings.assistant_reasoning_info")), 1)]),
962
- _: 1
963
- })
964
- ]),
965
- g("div", kt, [g("div", At, [
966
- g("label", jt, r(e.$t("views.settings.assistant_max_iterations_label")), 1),
967
- x(L, {
968
- modelValue: u(W).maxIterations,
969
- "onUpdate:modelValue": i[6] ||= (e) => u(W).maxIterations = e,
970
- min: 1,
971
- max: 30,
972
- "use-grouping": !1,
973
- fluid: ""
974
- }, null, 8, ["modelValue"]),
975
- x(d, {
976
- severity: "secondary",
977
- variant: "simple",
978
- size: "small",
979
- class: "cui-input-hint"
980
- }, {
981
- default: f(() => [v(r(e.$t("views.settings.assistant_max_iterations_info")), 1)]),
982
- _: 1
983
- })
984
- ]), g("div", Mt, [
985
- g("label", Nt, r(e.$t("views.settings.assistant_max_tool_calls_label")), 1),
986
- x(L, {
987
- modelValue: u(W).maxToolCalls,
988
- "onUpdate:modelValue": i[7] ||= (e) => u(W).maxToolCalls = e,
989
- min: 1,
990
- max: 100,
991
- "use-grouping": !1,
992
- fluid: ""
993
- }, null, 8, ["modelValue"]),
994
- x(d, {
995
- severity: "secondary",
996
- variant: "simple",
997
- size: "small",
998
- class: "cui-input-hint"
999
- }, {
1000
- default: f(() => [v(r(e.$t("views.settings.assistant_max_tool_calls_info")), 1)]),
1001
- _: 1
1002
- })
1003
- ])]),
1004
- g("div", Pt, [
1005
- g("label", Ft, r(e.$t("views.settings.assistant_context_tokens_label")), 1),
1006
- x(L, {
1007
- id: "contextTokens",
1008
- modelValue: u(W).contextTokens,
1009
- "onUpdate:modelValue": i[8] ||= (e) => u(W).contextTokens = e,
1010
- min: 8e3,
1011
- max: 4e5,
1012
- step: 1e3,
1013
- "use-grouping": !1,
1014
- fluid: ""
1015
- }, null, 8, ["modelValue"]),
1016
- x(d, {
1017
- severity: "secondary",
1018
- variant: "simple",
1019
- size: "small",
1020
- class: "cui-input-hint"
1021
- }, {
1022
- default: f(() => [v(r(e.$t("views.settings.assistant_context_tokens_info")), 1)]),
1023
- _: 1
1024
- })
1025
- ]),
1026
- g("div", It, [g("div", Lt, [
1027
- g("label", Rt, r(e.$t("views.settings.assistant_history_threads_label")), 1),
1028
- x(L, {
1029
- id: "historyThreads",
1030
- modelValue: u(W).historyThreads,
1031
- "onUpdate:modelValue": i[9] ||= (e) => u(W).historyThreads = e,
1032
- min: 5,
1033
- max: 500,
1034
- "use-grouping": !1,
1035
- fluid: ""
1036
- }, null, 8, ["modelValue"]),
1037
- x(d, {
1038
- severity: "secondary",
1039
- variant: "simple",
1040
- size: "small",
1041
- class: "cui-input-hint"
1042
- }, {
1043
- default: f(() => [v(r(e.$t("views.settings.assistant_history_threads_info")), 1)]),
1044
- _: 1
1045
- })
1046
- ]), g("div", zt, [
1047
- g("label", Bt, r(e.$t("views.settings.assistant_history_images_label")), 1),
1048
- x(L, {
1049
- id: "historyImages",
1050
- modelValue: u(W).historyImages,
1051
- "onUpdate:modelValue": i[10] ||= (e) => u(W).historyImages = e,
1052
- min: 0,
1053
- max: 200,
1054
- "use-grouping": !1,
1055
- fluid: ""
1056
- }, null, 8, ["modelValue"]),
1057
- x(d, {
1058
- severity: "secondary",
1059
- variant: "simple",
1060
- size: "small",
1061
- class: "cui-input-hint"
1062
- }, {
1063
- default: f(() => [v(r(e.$t("views.settings.assistant_history_images_info")), 1)]),
1064
- _: 1
1065
- })
1066
- ])]),
1067
- g("div", Vt, [
1068
- g("label", Ht, r(e.$t("views.settings.assistant_extra_prompt_label")), 1),
1069
- x(R, {
1070
- modelValue: u(W).systemPromptExtra,
1071
- "onUpdate:modelValue": i[11] ||= (e) => u(W).systemPromptExtra = e,
1072
- rows: "3",
1073
- "auto-resize": "",
1074
- placeholder: e.$t("views.settings.assistant_extra_prompt_placeholder")
1075
- }, null, 8, ["modelValue", "placeholder"]),
1076
- x(d, {
1077
- severity: "secondary",
1078
- variant: "simple",
1079
- size: "small",
1080
- class: "cui-input-hint"
1081
- }, {
1082
- default: f(() => [v(r(e.$t("views.settings.assistant_extra_prompt_info")), 1)]),
1083
- _: 1
1084
- })
1085
- ]),
1086
- g("div", Ut, [x(M, {
1087
- type: "button",
1088
- severity: "secondary",
1089
- outlined: "",
1090
- class: "cui-button-medium ml-auto",
1091
- label: e.$t("components.form.button.reset_defaults"),
1092
- onClick: Vr
1093
- }, {
1094
- icon: f(() => [x(we, { class: "w-4 h-4" })]),
1095
- _: 1
1096
- }, 8, ["label"]), x(M, {
1097
- type: "button",
1098
- loading: u(U).isPending.value,
1099
- class: "cui-button-medium",
1100
- label: e.$t("components.form.button.save"),
1101
- onClick: Q
1102
- }, null, 8, ["loading", "label"])])
1103
- ])]),
1104
- _: 1
1105
- })]),
1106
- g("div", null, [g("span", Wt, r(e.$t("views.settings.assistant_mcp")), 1), x(b, { class: "cui-card" }, {
1107
- content: f(() => [g("div", Gt, [
1108
- x(d, {
1109
- severity: "secondary",
1110
- variant: "simple",
1111
- size: "small",
1112
- class: "cui-input-hint"
1113
- }, {
1114
- default: f(() => [v(r(e.$t("views.settings.assistant_mcp_info")), 1)]),
1115
- _: 1
1116
- }),
1117
- g("div", Kt, [g("div", qt, [g("div", Jt, [g("span", Yt, r(e.$t("views.settings.assistant_mcp_enabled_label")), 1), g("span", Xt, r(e.$t("views.settings.assistant_mcp_enabled_info")), 1)]), x(k, {
1118
- modelValue: u(W).mcpEnabled,
1119
- "onUpdate:modelValue": i[12] ||= (e) => u(W).mcpEnabled = e
1120
- }, null, 8, ["modelValue"])]), g("div", Zt, [g("div", Qt, [g("span", $t, r(e.$t("views.settings.assistant_mcp_writes_label")), 1), g("span", en, r(e.$t("views.settings.assistant_mcp_writes_info")), 1)]), x(k, {
1121
- modelValue: u(W).mcpWrites,
1122
- "onUpdate:modelValue": i[13] ||= (e) => u(W).mcpWrites = e,
1123
- disabled: !u(W).mcpEnabled
1124
- }, null, 8, ["modelValue", "disabled"])])]),
1125
- u(W).mcpEnabled ? (n(), m("div", tn, [g("div", nn, [
1126
- g("label", rn, r(e.$t("views.settings.assistant_mcp_endpoint_label")), 1),
1127
- x(V, null, {
1128
- default: f(() => [x(z, {
1129
- id: "mcpEndpoint",
1130
- "model-value": u(gr),
1131
- readonly: "",
1132
- class: "font-mono text-sm"
1133
- }, null, 8, ["model-value"]), x(B, null, {
1134
- default: f(() => [x(Te, {
1135
- "action-text": e.$t("components.form.tooltip.copied"),
1136
- icon: u(ye),
1137
- "button-props": {
1138
- severity: "secondary",
1139
- text: !0
1140
- },
1141
- onAction: i[14] ||= (e) => u(ae)(u(gr))
1142
- }, null, 8, ["action-text", "icon"])]),
1143
- _: 1
1144
- })]),
1145
- _: 1
1146
- }),
1147
- x(d, {
1148
- severity: "secondary",
1149
- variant: "simple",
1150
- size: "small",
1151
- class: "cui-input-hint"
1152
- }, {
1153
- default: f(() => [v(r(e.$t("views.settings.assistant_mcp_token_info")) + " ", 1), x(Oe, {
1154
- to: { name: "SettingsAccount" },
1155
- class: "underline"
1156
- }, {
1157
- default: f(() => [v(r(e.$t("views.settings.assistant_mcp_token_link")), 1)]),
1158
- _: 1
1159
- })]),
1160
- _: 1
1161
- })
1162
- ]), g("div", an, [
1163
- g("label", on, r(e.$t("views.settings.assistant_mcp_client_label")), 1),
1164
- x(I, {
1165
- modelValue: u(q),
1166
- "onUpdate:modelValue": i[15] ||= (e) => l(q) ? q.value = e : null,
1167
- "input-id": "mcpClient",
1168
- options: u(_r),
1169
- "option-label": "label",
1170
- "option-value": "value",
1171
- class: "w-full"
1172
- }, null, 8, ["modelValue", "options"]),
1173
- x(V, null, {
1174
- default: f(() => [x(R, {
1175
- id: "mcpSnippet",
1176
- "model-value": u(vr),
1177
- readonly: "",
1178
- "auto-resize": "",
1179
- rows: "3",
1180
- class: "font-mono text-xs"
1181
- }, null, 8, ["model-value"]), x(B, null, {
1182
- default: f(() => [x(Te, {
1183
- "action-text": e.$t("components.form.tooltip.copied"),
1184
- icon: u(ye),
1185
- "button-props": {
1186
- severity: "secondary",
1187
- text: !0
1188
- },
1189
- onAction: i[16] ||= (e) => u(ae)(u(vr))
1190
- }, null, 8, ["action-text", "icon"])]),
1191
- _: 1
1192
- })]),
1193
- _: 1
1194
- }),
1195
- x(d, {
1196
- severity: "secondary",
1197
- variant: "simple",
1198
- size: "small",
1199
- class: "cui-input-hint"
1200
- }, {
1201
- default: f(() => [v(r(e.$t("views.settings.assistant_mcp_snippet_info")), 1)]),
1202
- _: 1
1203
- })
1204
- ])])) : c("", !0),
1205
- g("div", sn, [x(M, {
1206
- type: "button",
1207
- loading: u(U).isPending.value,
1208
- class: "cui-button-medium ml-auto",
1209
- label: e.$t("components.form.button.save"),
1210
- onClick: Q
1211
- }, null, 8, ["loading", "label"])])
1212
- ])]),
1213
- _: 1
1214
- })]),
1215
- g("div", null, [g("span", cn, r(e.$t("views.settings.assistant_external")), 1), x(b, { class: "cui-card" }, {
1216
- content: f(() => [g("div", ln, [
1217
- x(d, {
1218
- severity: "secondary",
1219
- variant: "simple",
1220
- size: "small",
1221
- class: "cui-input-hint"
1222
- }, {
1223
- default: f(() => [v(r(e.$t("views.settings.assistant_external_info")), 1)]),
1224
- _: 1
1225
- }),
1226
- (n(!0), m(h, null, t(u(W).mcpServers, (t) => (n(), m("div", {
1227
- key: t.id,
1228
- class: "cui-assistant-server flex flex-col gap-4 rounded-xl p-4"
1229
- }, [
1230
- g("div", un, [
1231
- g("span", dn, r(t.name || e.$t("views.settings.assistant_external_new")), 1),
1232
- g("span", { class: a(["text-xs", Lr(t.id)]) }, r(Ir(t.id)), 3),
1233
- x(k, {
1234
- modelValue: t.enabled,
1235
- "onUpdate:modelValue": (e) => t.enabled = e,
1236
- class: "ml-auto shrink-0"
1237
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
1238
- _((n(), s(M, {
1239
- type: "button",
1240
- severity: "secondary",
1241
- text: "",
1242
- rounded: "",
1243
- class: "cui-icon-md shrink-0",
1244
- onClick: (e) => zr(t.id)
1245
- }, {
1246
- icon: f(() => [x(F, { class: "w-4 h-4" })]),
1247
- _: 1
1248
- }, 8, ["onClick"])), [[
1249
- $,
1250
- { value: e.$t("views.settings.assistant_external_remove") },
1251
- void 0,
1252
- { top: !0 }
1253
- ]])
1254
- ]),
1255
- g("div", fn, [g("div", pn, [g("label", {
1256
- for: `server-name-${t.id}`,
1257
- class: "cui-label"
1258
- }, r(e.$t("views.settings.assistant_external_name")), 9, mn), x(z, {
1259
- id: `server-name-${t.id}`,
1260
- modelValue: t.name,
1261
- "onUpdate:modelValue": (e) => t.name = e,
1262
- fluid: "",
1263
- placeholder: "Home Assistant"
1264
- }, null, 8, [
1265
- "id",
1266
- "modelValue",
1267
- "onUpdate:modelValue"
1268
- ])]), g("div", hn, [g("label", {
1269
- for: `server-url-${t.id}`,
1270
- class: "cui-label"
1271
- }, r(e.$t("views.settings.assistant_external_url")), 9, gn), x(z, {
1272
- id: `server-url-${t.id}`,
1273
- modelValue: t.url,
1274
- "onUpdate:modelValue": (e) => t.url = e,
1275
- fluid: "",
1276
- placeholder: "http://homeassistant.local:8123/api/mcp"
1277
- }, null, 8, [
1278
- "id",
1279
- "modelValue",
1280
- "onUpdate:modelValue"
1281
- ])])]),
1282
- g("div", _n, [
1283
- g("label", {
1284
- for: `server-token-${t.id}`,
1285
- class: "cui-label"
1286
- }, r(e.$t("views.settings.assistant_external_token")), 9, vn),
1287
- x(Ae, {
1288
- id: `server-token-${t.id}`,
1289
- modelValue: u(K)[t.id],
1290
- "onUpdate:modelValue": (e) => u(K)[t.id] = e,
1291
- feedback: !1,
1292
- "toggle-mask": "",
1293
- fluid: "",
1294
- autocomplete: "new-password",
1295
- placeholder: t.tokenSet ? "••••••••" : ""
1296
- }, null, 8, [
1297
- "id",
1298
- "modelValue",
1299
- "onUpdate:modelValue",
1300
- "placeholder"
1301
- ]),
1302
- x(d, {
1303
- severity: "secondary",
1304
- variant: "simple",
1305
- size: "small",
1306
- class: "cui-input-hint"
1307
- }, {
1308
- default: f(() => [v(r(t.tokenSet ? e.$t("views.settings.assistant_external_token_set") : e.$t("views.settings.assistant_external_token_info")), 1)]),
1309
- _: 2
1310
- }, 1024)
1311
- ]),
1312
- g("div", yn, [g("div", bn, [g("label", {
1313
- for: `server-insecure-${t.id}`,
1314
- class: "cui-label-switch"
1315
- }, r(e.$t("views.settings.assistant_external_insecure")), 9, xn), x(d, {
1316
- severity: "secondary",
1317
- variant: "simple",
1318
- size: "small",
1319
- class: "cui-input-switch-hint"
1320
- }, {
1321
- default: f(() => [v(r(e.$t("views.settings.assistant_external_insecure_info")), 1)]),
1322
- _: 1
1323
- })]), x(k, {
1324
- "input-id": `server-insecure-${t.id}`,
1325
- modelValue: t.insecure,
1326
- "onUpdate:modelValue": (e) => t.insecure = e,
1327
- class: "ml-auto shrink-0"
1328
- }, null, 8, [
1329
- "input-id",
1330
- "modelValue",
1331
- "onUpdate:modelValue"
1332
- ])])
1333
- ]))), 128)),
1334
- g("div", Sn, [x(M, {
1335
- type: "button",
1336
- severity: "secondary",
1337
- outlined: "",
1338
- class: "cui-button-medium",
1339
- label: e.$t("views.settings.assistant_external_add"),
1340
- disabled: u(W).mcpServers.length >= 10,
1341
- onClick: Rr
1342
- }, {
1343
- icon: f(() => [x(ue, { class: "w-4 h-4" })]),
1344
- _: 1
1345
- }, 8, ["label", "disabled"]), x(M, {
1346
- type: "button",
1347
- loading: u(U).isPending.value,
1348
- class: "cui-button-medium ml-auto",
1349
- label: e.$t("components.form.button.save"),
1350
- onClick: Q
1351
- }, null, 8, ["loading", "label"])])
1352
- ])]),
1353
- _: 1
1354
- })]),
1355
- g("div", null, [g("span", Cn, r(e.$t("views.settings.assistant_schedules")), 1), x(b, { class: "cui-card" }, {
1356
- content: f(() => [g("div", wn, [
1357
- x(d, {
1358
- severity: "secondary",
1359
- variant: "simple",
1360
- size: "small",
1361
- class: "cui-input-hint"
1362
- }, {
1363
- default: f(() => [v(r(e.$t("views.settings.assistant_schedules_info")), 1)]),
1364
- _: 1
1365
- }),
1366
- u(Pe)?.length ? (n(), m("div", Tn, [(n(!0), m(h, null, t(u(Pe), (t) => (n(), m("div", {
1367
- key: t._id,
1368
- class: "flex items-start gap-3 py-3 text-sm"
1369
- }, [g("div", En, [
1370
- g("div", Dn, [
1371
- g("span", On, r(t.title), 1),
1372
- x(p, {
1373
- severity: "secondary",
1374
- value: Tr(t.cron),
1375
- class: "text-[10px]"
1376
- }, null, 8, ["value"]),
1377
- x(p, {
1378
- severity: Er(t.deliver),
1379
- value: e.$t(`views.settings.assistant_schedule_deliver_${t.deliver}`),
1380
- class: "text-[10px]"
1381
- }, null, 8, ["severity", "value"]),
1382
- t.profileId ? (n(), s(p, {
1383
- key: 0,
1384
- severity: Qr(t.profileId) ? "secondary" : "warn",
1385
- value: Qr(t.profileId) ?? e.$t("views.settings.assistant_schedule_profile_missing"),
1386
- class: "text-[10px]"
1387
- }, null, 8, ["severity", "value"])) : c("", !0)
1388
- ]),
1389
- g("div", kn, r(t.prompt), 1),
1390
- g("div", An, [t.enabled && t.nextRun ? (n(), m("span", jn, r(e.$t("views.settings.assistant_schedule_next", { time: Dr(t.nextRun) })), 1)) : t.enabled ? c("", !0) : (n(), m("span", Mn, r(e.$t("views.settings.assistant_schedule_paused")), 1)), t.lastRun ? (n(), m("span", {
1391
- key: 2,
1392
- class: a(t.lastRun.status === "error" ? "text-danger" : "")
1393
- }, [v(" · " + r(e.$t(`views.settings.assistant_schedule_last_${t.lastRun.status}`, { time: Dr(t.lastRun.at) })) + " ", 1), t.lastRun.message ? (n(), m(h, { key: 0 }, [v("(" + r(t.lastRun.message) + ")", 1)], 64)) : c("", !0)], 2)) : c("", !0)])
1394
- ]), g("div", Nn, [
1395
- _((n(), s(M, {
1396
- type: "button",
1397
- severity: "secondary",
1398
- text: "",
1399
- rounded: "",
1400
- class: "cui-icon-md",
1401
- loading: u(Re).isPending.value && u(Re).variables.value === t._id,
1402
- onClick: (e) => u(Re).mutate(t._id)
1403
- }, {
1404
- icon: f(() => [x(He, {
1405
- width: "100%",
1406
- height: "100%"
1407
- })]),
1408
- _: 1
1409
- }, 8, ["loading", "onClick"])), [[
1410
- $,
1411
- { value: e.$t("views.settings.assistant_schedule_run") },
1412
- void 0,
1413
- { top: !0 }
1414
- ]]),
1415
- x(k, {
1416
- "model-value": t.enabled,
1417
- "onUpdate:modelValue": (e) => u(Ie).mutate({
1418
- scheduleId: t._id,
1419
- patch: { enabled: e }
1420
- })
1421
- }, null, 8, ["model-value", "onUpdate:modelValue"]),
1422
- x(M, {
1423
- type: "button",
1424
- severity: "danger",
1425
- text: "",
1426
- rounded: "",
1427
- class: "cui-icon-md",
1428
- onClick: (e) => u(Le).mutate(t._id)
1429
- }, {
1430
- icon: f(() => [x(F, {
1431
- width: "100%",
1432
- height: "100%"
1433
- })]),
1434
- _: 1
1435
- }, 8, ["onClick"])
1436
- ])]))), 128))])) : c("", !0),
1437
- g("div", { class: a(["flex flex-col gap-6", { "cui-assistant-schedule-form": u(Pe)?.length }]) }, [
1438
- g("div", Pn, [g("div", Fn, [g("label", In, r(e.$t("views.settings.assistant_schedule_title_label")), 1), x(z, {
1439
- modelValue: u(G).title,
1440
- "onUpdate:modelValue": i[17] ||= (e) => u(G).title = e,
1441
- modelModifiers: { trim: !0 },
1442
- type: "text",
1443
- placeholder: e.$t("views.settings.assistant_schedule_title_placeholder"),
1444
- class: "w-full"
1445
- }, null, 8, ["modelValue", "placeholder"])]), g("div", Ln, [g("label", Rn, r(e.$t("views.settings.assistant_schedule_deliver_label")), 1), x(I, {
1446
- modelValue: u(G).deliver,
1447
- "onUpdate:modelValue": i[18] ||= (e) => u(G).deliver = e,
1448
- options: u(yr),
1449
- "option-label": "label",
1450
- "option-value": "value",
1451
- fluid: ""
1452
- }, null, 8, ["modelValue", "options"])])]),
1453
- g("div", zn, [g("label", Bn, r(e.$t("views.settings.assistant_schedule_prompt_label")), 1), x(R, {
1454
- modelValue: u(G).prompt,
1455
- "onUpdate:modelValue": i[19] ||= (e) => u(G).prompt = e,
1456
- rows: "2",
1457
- "auto-resize": "",
1458
- placeholder: e.$t("views.settings.assistant_schedule_prompt_placeholder")
1459
- }, null, 8, ["modelValue", "placeholder"])]),
1460
- u(Ne)?.length ? (n(), m("div", Vn, [g("label", Hn, r(e.$t("views.settings.assistant_schedule_profile_label")), 1), x(I, {
1461
- modelValue: u(G).profileId,
1462
- "onUpdate:modelValue": i[20] ||= (e) => u(G).profileId = e,
1463
- "input-id": "scheduleProfile",
1464
- options: u(Ne),
1465
- "option-label": "name",
1466
- "option-value": "_id",
1467
- "show-clear": "",
1468
- fluid: "",
1469
- placeholder: e.$t("views.settings.assistant_schedule_profile_none")
1470
- }, null, 8, [
1471
- "modelValue",
1472
- "options",
1473
- "placeholder"
1474
- ])])) : c("", !0),
1475
- g("div", Un, [
1476
- g("div", Wn, [g("label", Gn, r(e.$t("views.settings.assistant_schedule_when_label")), 1), x(I, {
1477
- modelValue: u(G).preset,
1478
- "onUpdate:modelValue": i[21] ||= (e) => u(G).preset = e,
1479
- options: u(br),
1480
- "option-label": "label",
1481
- "option-value": "value",
1482
- fluid: ""
1483
- }, null, 8, ["modelValue", "options"])]),
1484
- u(G).preset !== "hourly" && u(G).preset !== "custom" ? (n(), m("div", Kn, [g("label", qn, r(e.$t("views.settings.assistant_schedule_time_label")), 1), x(z, {
1485
- modelValue: u(G).time,
1486
- "onUpdate:modelValue": i[22] ||= (e) => u(G).time = e,
1487
- type: "time",
1488
- class: "cui-time-input w-full"
1489
- }, null, 8, ["modelValue"])])) : c("", !0),
1490
- u(G).preset === "custom" ? (n(), m("div", Jn, [g("label", Yn, r(e.$t("views.settings.assistant_schedule_cron_label")), 1), x(z, {
1491
- modelValue: u(G).cron,
1492
- "onUpdate:modelValue": i[23] ||= (e) => u(G).cron = e,
1493
- modelModifiers: { trim: !0 },
1494
- type: "text",
1495
- placeholder: "0 20 * * *",
1496
- class: "w-full font-mono text-sm"
1497
- }, null, 8, ["modelValue"])])) : c("", !0)
1498
- ]),
1499
- g("div", Xn, [x(M, {
1500
- type: "button",
1501
- loading: u(Fe).isPending.value,
1502
- disabled: !u(G).title || !u(G).prompt || !u(xr),
1503
- class: "cui-button-medium ml-auto",
1504
- label: e.$t("views.settings.assistant_schedule_add"),
1505
- onClick: Or
1506
- }, null, 8, [
1507
- "loading",
1508
- "disabled",
1509
- "label"
1510
- ])])
1511
- ], 2)
1512
- ])]),
1513
- _: 1
1514
- })]),
1515
- g("div", null, [g("span", Zn, r(e.$t("views.settings.assistant_usage")), 1), x(b, { class: "cui-card" }, {
1516
- content: f(() => [g("div", Qn, [x(d, {
1517
- severity: "secondary",
1518
- variant: "simple",
1519
- size: "small",
1520
- class: "cui-input-hint"
1521
- }, {
1522
- default: f(() => [v(r(e.$t("views.settings.assistant_usage_info")), 1)]),
1523
- _: 1
1524
- }), x(Z, {
1525
- value: u(pr) ?? [],
1526
- "data-key": "key",
1527
- loading: u(je),
1528
- pt: E,
1529
- "striped-rows": "",
1530
- scrollable: ""
1531
- }, {
1532
- loading: f(() => [x(o, {
1533
- class: "w-[30px] h-[30px] m-0",
1534
- "stroke-width": "5"
1535
- })]),
1536
- empty: f(() => [g("span", $n, r(e.$t("views.settings.assistant_usage_empty")), 1)]),
1537
- default: f(() => [
1538
- x(X, {
1539
- field: "month",
1540
- header: e.$t("views.settings.assistant_usage_month"),
1541
- "header-class": "p-2",
1542
- class: "p-2 tabular-nums"
1543
- }, null, 8, ["header"]),
1544
- x(X, {
1545
- field: "username",
1546
- header: e.$t("views.settings.assistant_usage_user"),
1547
- "header-class": "p-2",
1548
- class: "p-2"
1549
- }, {
1550
- body: f(({ data: e }) => [g("span", er, r(e.pluginName ?? e.username ?? e.userId), 1)]),
1551
- _: 1
1552
- }, 8, ["header"]),
1553
- x(X, {
1554
- field: "model",
1555
- header: e.$t("views.settings.assistant_usage_model"),
1556
- "header-class": "p-2",
1557
- class: "p-2"
1558
- }, {
1559
- body: f(({ data: e }) => [g("span", tr, r(Zr(e)), 1)]),
1560
- _: 1
1561
- }, 8, ["header"]),
1562
- x(X, {
1563
- field: "runs",
1564
- header: e.$t("views.settings.assistant_usage_runs"),
1565
- "header-class": "p-2",
1566
- class: "p-2 text-right tabular-nums",
1567
- pt: y
1568
- }, null, 8, ["header"]),
1569
- x(X, {
1570
- field: "promptTokens",
1571
- header: e.$t("views.settings.assistant_usage_in"),
1572
- "header-class": "p-2",
1573
- class: "p-2 text-right tabular-nums",
1574
- pt: y
1575
- }, {
1576
- body: f(({ data: e }) => [v(r(Pr(e.promptTokens)), 1)]),
1577
- _: 1
1578
- }, 8, ["header"]),
1579
- x(X, {
1580
- field: "completionTokens",
1581
- header: e.$t("views.settings.assistant_usage_out"),
1582
- "header-class": "p-2",
1583
- class: "p-2 text-right tabular-nums",
1584
- pt: y
1585
- }, {
1586
- body: f(({ data: e }) => [v(r(Pr(e.completionTokens)), 1)]),
1587
- _: 1
1588
- }, 8, ["header"]),
1589
- x(X, {
1590
- field: "costUsd",
1591
- header: e.$t("views.settings.assistant_usage_cost"),
1592
- "header-class": "p-2",
1593
- class: "p-2 text-right tabular-nums",
1594
- pt: y
1595
- }, {
1596
- body: f(({ data: e }) => [v(r(e.costUsd ? `$${e.costUsd.toFixed(e.costUsd < 1 ? 3 : 2)}` : "–"), 1)]),
1597
- _: 1
1598
- }, 8, ["header"])
1599
- ]),
1600
- _: 1
1601
- }, 8, ["value", "loading"])])]),
1602
- _: 1
1603
- })]),
1604
- g("div", null, [g("span", nr, r(e.$t("views.settings.assistant_tools")), 1), x(b, { class: "cui-card" }, {
1605
- content: f(() => [u(Y).length ? (n(), m("div", ir, [x(ti, {
1606
- value: u(ze),
1607
- "onUpdate:value": i[24] ||= (e) => l(ze) ? ze.value = e : null,
1608
- scrollable: ""
1609
- }, {
1610
- default: f(() => [x(Br, { class: "mb-3" }, {
1611
- default: f(() => [(n(!0), m(h, null, t(u(Y), (e) => (n(), s(Fr, {
1612
- key: e.key,
1613
- value: e.key,
1614
- class: "text-sm"
1615
- }, {
1616
- default: f(() => [v(r(e.label) + " (" + r(e.tools.length) + ")", 1)]),
1617
- _: 2
1618
- }, 1032, ["value"]))), 128))]),
1619
- _: 1
1620
- }), x(ei, { class: "!p-0 !bg-transparent" }, {
1621
- default: f(() => [(n(!0), m(h, null, t(u(Y), (i) => (n(), s($r, {
1622
- key: i.key,
1623
- value: i.key
1624
- }, {
1625
- default: f(() => [i.serverId ? (n(), m("div", ar, [
1626
- g("label", {
1627
- for: `trusted-${i.key}`,
1628
- class: "cui-label"
1629
- }, r(e.$t("views.settings.assistant_tools_trusted_label")), 9, or),
1630
- x(Ur, {
1631
- "model-value": Mr(i),
1632
- "input-id": `trusted-${i.key}`,
1633
- options: jr(i),
1634
- "option-label": "label",
1635
- "option-value": "value",
1636
- "max-selected-labels": 3,
1637
- "selected-items-label": e.$t("views.settings.assistant_tools_trusted_selected", { n: Mr(i).length }),
1638
- placeholder: e.$t("views.settings.assistant_tools_trusted_none"),
1639
- filter: "",
1640
- fluid: "",
1641
- "onUpdate:modelValue": (e) => Nr(i, e)
1642
- }, null, 8, [
1643
- "model-value",
1644
- "input-id",
1645
- "options",
1646
- "selected-items-label",
1647
- "placeholder",
1648
- "onUpdate:modelValue"
1649
- ]),
1650
- x(d, {
1651
- severity: "secondary",
1652
- variant: "simple",
1653
- size: "small",
1654
- class: "cui-input-hint"
1655
- }, {
1656
- default: f(() => [v(r(e.$t("views.settings.assistant_tools_trusted_info")), 1)]),
1657
- _: 1
1658
- })
1659
- ])) : c("", !0), g("div", sr, [(n(!0), m(h, null, t(i.tools, (t) => (n(), m("div", {
1660
- key: t.name,
1661
- class: "flex items-start gap-3 py-2 text-sm"
1662
- }, [x(Gr, { class: "w-4 h-4 mt-0.5 shrink-0 text-muted" }), g("div", cr, [g("div", lr, [
1663
- g("span", ur, r(u(Ce)(t.name)), 1),
1664
- Ar(t) ? (n(), s(p, {
1665
- key: 0,
1666
- severity: "warn",
1667
- value: e.$t("views.settings.assistant_tool_approval"),
1668
- class: "text-[10px]"
1669
- }, null, 8, ["value"])) : c("", !0),
1670
- t.adminOnly ? (n(), s(p, {
1671
- key: 1,
1672
- severity: "info",
1673
- value: e.$t("views.settings.assistant_tool_admin"),
1674
- class: "text-[10px]"
1675
- }, null, 8, ["value"])) : c("", !0)
1676
- ]), g("div", dr, r(kr(t.description)), 1)])]))), 128))])]),
1677
- _: 2
1678
- }, 1032, ["value"]))), 128))]),
1679
- _: 1
1680
- })]),
1681
- _: 1
1682
- }, 8, ["value"]), u(Y).some((e) => e.serverId) ? (n(), m("div", fr, [x(M, {
1683
- type: "button",
1684
- loading: u(U).isPending.value,
1685
- class: "cui-button-medium ml-auto",
1686
- label: e.$t("components.form.button.save"),
1687
- onClick: Q
1688
- }, null, 8, ["loading", "label"])])) : c("", !0)])) : (n(), m("div", rr, r(e.$t("views.settings.assistant_tools_empty")), 1))]),
1689
- _: 1
1690
- })])
1691
- ])) : (n(), m("div", We, [x(o, {
1692
- class: "w-[30px] h-[30px] m-0",
1693
- "stroke-width": "5"
1694
- })]))]);
1695
- };
1696
- }
1697
- }), [["__scopeId", "data-v-31057f1e"]]);
1698
- //#endregion
1699
- export { pr as default };