@camera.ui/server 2.2.5-beta.4 → 2.2.6

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 (664) hide show
  1. package/dist/interface/assets/{404-YZOLos9r.js → 404-BLVuKvLk.js} +1 -1
  2. package/dist/interface/assets/{About-HtxMc8JZ.js → About-C-AJ0jfI.js} +1 -1
  3. package/dist/interface/assets/Assistant-BJKGIvVo.js +1 -0
  4. package/dist/interface/assets/{Assistant-BMscGKnc.css → Assistant-BQ6Ld-bt.css} +1 -1
  5. package/dist/interface/assets/{Automation-D3DcUyui.js → Automation-C95DzuZb.js} +3 -3
  6. package/dist/interface/assets/{AutomationImport-Dp_hT6hQ.js → AutomationImport-C8VYjDzf.js} +2 -2
  7. package/dist/interface/assets/{AutomationStore-BKR7GXMk.js → AutomationStore-CE4PKRGd.js} +2 -2
  8. package/dist/interface/assets/{AutomationStoreDetail-B9yh51WQ.js → AutomationStoreDetail-DavWfjLv.js} +2 -2
  9. package/dist/interface/assets/Automations-BOP_17Ri.js +2 -0
  10. package/dist/interface/assets/Camera-BW9ikKqh.css +1 -0
  11. package/dist/interface/assets/Camera-C5S7eI9a.js +2 -0
  12. package/dist/interface/assets/{CameraConsole-BI93OaRt.js → CameraConsole-C4AmtcrM.js} +1 -1
  13. package/dist/interface/assets/{Cameras-Ctub8sVt.js → Cameras-DR577Bno.js} +2 -2
  14. package/dist/interface/assets/{Camview-CZct5cnP.css → Camview-Bri_T7Tq.css} +1 -1
  15. package/dist/interface/assets/Camview-CHxKB41T.js +1 -0
  16. package/dist/interface/assets/{CertificateUpload-xW55NA1Q.js → CertificateUpload-BYFKZCP9.js} +1 -1
  17. package/dist/interface/assets/Config-BrDDGWpr.js +2 -0
  18. package/dist/interface/assets/{ConfigActionAssistant-B488rOp5.js → ConfigActionAssistant-YtCVI8LZ.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionCameraControl-ZMUuBxOs.js → ConfigActionCameraControl-Dg_1zOYt.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionDelay-BJ11xvOW.js → ConfigActionDelay-_EqbfWgo.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionHttp-DOUo69OR.js → ConfigActionHttp-BzwLv2tn.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionImageInput-BMzuVZW9.js → ConfigActionImageInput-CLdY2sV4.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionMqtt-Co_uksca.js → ConfigActionMqtt-lGqYshl3.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotification-CcZkstYx.js → ConfigActionNotification-D5Dj3EoU.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionNotificationControl--VeucoTw.js → ConfigActionNotificationControl-Dy5fKamr.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionOutput-CyDa1LGA.js → ConfigActionOutput-DzsQ31L0.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionPlugin-Kfg3ZEQF.js → ConfigActionPlugin-BFrBcXvL.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSensor-DhAF0HPw.js → ConfigActionSensor-CX8ePlan.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionSnapshot-zMe3SPvW.js → ConfigActionSnapshot-BATLRmh6.js} +1 -1
  30. package/dist/interface/assets/{ConfigActionVariable-BE5q3NwY.js → ConfigActionVariable-Dgn5jvaR.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionIfElse-BNIRtSVD.js → ConfigConditionIfElse-D5IIBjyk.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSensorState-DTNd-SzI.js → ConfigConditionSensorState-C0JxBWdG.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionSwitch-BU5wWMU1.js → ConfigConditionSwitch-Brlgd0XP.js} +1 -1
  34. package/dist/interface/assets/{ConfigConditionTime-KXTCIVIV.js → ConfigConditionTime-CM4bSMyU.js} +1 -1
  35. package/dist/interface/assets/{ConfigSensorValueInput-BC1FpMm-.js → ConfigSensorValueInput-CtuH8dCa.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerDetection-hIN1hi53.js → ConfigTriggerDetection-DsL7lLQl.js} +1 -1
  37. package/dist/interface/assets/ConfigTriggerGeofence-CAGIk1_W.js +1 -0
  38. package/dist/interface/assets/{ConfigTriggerManual-C5vwxS-e.js → ConfigTriggerManual-DgkR-GWy.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerMqtt-B4PtWC3E.js → ConfigTriggerMqtt-B_iFalAQ.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSchedule-BZzUdGBa.js → ConfigTriggerSchedule-E_QWfNKy.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSensor-D18nwMsj.js → ConfigTriggerSensor-hYNbLXUu.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerSystem-BhygWLB4.js → ConfigTriggerSystem-DR1EFpE9.js} +1 -1
  43. package/dist/interface/assets/{ConfigTriggerWebhook-yyuBuhLD.js → ConfigTriggerWebhook-C-B5GGFH.js} +1 -1
  44. package/dist/interface/assets/Console-cIr6lYux.js +1 -0
  45. package/dist/interface/assets/CuiAssistantConversation-Bigl43Ph.js +5 -0
  46. package/dist/interface/assets/CuiAssistantConversation-BmshW6Vc.css +1 -0
  47. package/dist/interface/assets/CuiAutomationRunsDialog-Ci7SWAml.js +1 -0
  48. package/dist/interface/assets/{CuiBottomSheet-DWefGWK2.js → CuiBottomSheet-C2sM2E3M.js} +1 -1
  49. package/dist/interface/assets/CuiBottomSheet-ViBOgklN.js +1 -0
  50. package/dist/interface/assets/CuiCameraPipCard-wdK7xir-.js +1 -0
  51. package/dist/interface/assets/CuiCameraRecordings-BB7bF67B.js +1 -0
  52. package/dist/interface/assets/{CuiCameraShares-DcqOcePX.js → CuiCameraShares-B6jdUBVm.js} +1 -1
  53. package/dist/interface/assets/CuiCameraTable-CHnQFkce.js +1 -0
  54. package/dist/interface/assets/{CuiCameraTable-BOkfp_5M.js → CuiCameraTable-CpBo25Qc.js} +2 -2
  55. package/dist/interface/assets/{CuiChartTable-DP38uBwK.js → CuiChartTable-dIcxGtfl.js} +1 -1
  56. package/dist/interface/assets/{CuiConsole-C7xE_nQg.js → CuiConsole-BGptpT6r.js} +2 -2
  57. package/dist/interface/assets/CuiDataTable-CQmp5mAy.js +1 -0
  58. package/dist/interface/assets/CuiLightControl-wbZi3fA1.js +1 -0
  59. package/dist/interface/assets/{CuiList-DJp0__mV.js → CuiList-Dsu5m0TA.js} +1 -1
  60. package/dist/interface/assets/{CuiMarkdownContent-BUYtK_wD.js → CuiMarkdownContent-BYBQX_aF.js} +1 -1
  61. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +1 -0
  62. package/dist/interface/assets/CuiPluginCard-BjIc7It9.js +2 -0
  63. package/dist/interface/assets/{CuiPluginCategoryChip-Ch_upS6Y.js → CuiPluginCategoryChip-BtJ_6_gN.js} +1 -1
  64. package/dist/interface/assets/{CuiPluginOAuthButton-DEQ9xILN.js → CuiPluginOAuthButton-Duf35I8K.js} +2 -2
  65. package/dist/interface/assets/{CuiPluginTrustBadge-sVWdvHcM.js → CuiPluginTrustBadge-jxXeRTH2.js} +1 -1
  66. package/dist/interface/assets/{CuiQRCode-DqSF4SkD.js → CuiQRCode-BNchrpoB.js} +1 -1
  67. package/dist/interface/assets/CuiSchema-DGTMkVSe.js +1 -0
  68. package/dist/interface/assets/{CuiTopNavbarItem-B_KWykgq.js → CuiTopNavbarItem-CHtLvn53.js} +1 -1
  69. package/dist/interface/assets/Faces-p18jNfXl.js +1 -0
  70. package/dist/interface/assets/FirstSteps-HzaBMDbH.js +1 -0
  71. package/dist/interface/assets/Floorplan-DYyEx7WO.js +1 -0
  72. package/dist/interface/assets/Instances-Dl-6rL5O.js +1 -0
  73. package/dist/interface/assets/{Logs-BSPT80vP.js → Logs-DsJkuQFq.js} +2 -2
  74. package/dist/interface/assets/{Menu-HHtuhIS2.js → Menu-D_woMkjL.js} +1 -1
  75. package/dist/interface/assets/Metrics-ChVnC6f6.css +1 -0
  76. package/dist/interface/assets/Metrics-l3UwykCM.js +12 -0
  77. package/dist/interface/assets/{OAuthDeviceFlow-Bn1nlWNa.js → OAuthDeviceFlow-CXfILAE1.js} +1 -1
  78. package/dist/interface/assets/Plugin-Ldj3HygQ.js +1 -0
  79. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +1 -0
  80. package/dist/interface/assets/{PluginConsole-Cv-uhnPY.js → PluginConsole-C96m5zKy.js} +1 -1
  81. package/dist/interface/assets/{PluginDetail-cpOz7FkA.js → PluginDetail-CnfaI1vh.js} +2 -2
  82. package/dist/interface/assets/{PluginSchema-DW3TGeTM.js → PluginSchema-u1bqXU29.js} +1 -1
  83. package/dist/interface/assets/PluginSearch-BiXG3Xk2.js +2 -0
  84. package/dist/interface/assets/PluginSearch-BuE7we1T.js +1 -0
  85. package/dist/interface/assets/{PluginUpdateProgress-n6q6vzyd.js → PluginUpdateProgress-BT4lN9HT.js} +1 -1
  86. package/dist/interface/assets/Plugins-Csx6AXaW.js +1 -0
  87. package/dist/interface/assets/{RecentEventsFilter-CTR5JK_P.js → RecentEventsFilter-Kp_lTOuG.js} +1 -1
  88. package/dist/interface/assets/Recordings-BEKAn6QK.css +1 -0
  89. package/dist/interface/assets/Recordings-D0KTY5cI.js +1 -0
  90. package/dist/interface/assets/SensorEdit-zs-f_o1N.js +1 -0
  91. package/dist/interface/assets/{SensorHistory-9CdOpCPs.js → SensorHistory-Cet35_RO.js} +1 -1
  92. package/dist/interface/assets/Sensors-BLAoalEt.js +2 -0
  93. package/dist/interface/assets/Settings-C-LCDIbK.js +1 -0
  94. package/dist/interface/assets/SettingsAccount-BsN7jGmo.js +1 -0
  95. package/dist/interface/assets/SettingsAccount-DuVyCSE-.js +1 -0
  96. package/dist/interface/assets/{SettingsAppearance-BY1xQMx4.js → SettingsAppearance-BS4EQNjH.js} +1 -1
  97. package/dist/interface/assets/SettingsAppearance-DQcGbYbV.js +1 -0
  98. package/dist/interface/assets/SettingsAssistant-B0PF3Rdg.css +1 -0
  99. package/dist/interface/assets/SettingsAssistant-DViJklFd.js +1 -0
  100. package/dist/interface/assets/{SettingsBackup-D_weokqu.js → SettingsBackup-DBlV1gej.js} +1 -1
  101. package/dist/interface/assets/{SettingsList-Bq24WTDU.js → SettingsList-D8eSwbBY.js} +1 -1
  102. package/dist/interface/assets/SettingsMqtt-JoszJJgV.js +1 -0
  103. package/dist/interface/assets/{SettingsNotifications-8TZOUxg2.js → SettingsNotifications-3veSrxa_.js} +1 -1
  104. package/dist/interface/assets/{SettingsPermissions-M8u_jrN0.js → SettingsPermissions-CJiz0Z7B.js} +1 -1
  105. package/dist/interface/assets/{SettingsRecordings-C1Kp5xW_.js → SettingsRecordings-CLz9Zp47.js} +1 -1
  106. package/dist/interface/assets/SettingsRemote-DUyl8k7I.js +2 -0
  107. package/dist/interface/assets/{SettingsSystem-Cetu2faJ.js → SettingsSystem-txTFGomQ.js} +2 -2
  108. package/dist/interface/assets/{SettingsUsers-CDwtQLdV.js → SettingsUsers-CUp6vQPc.js} +1 -1
  109. package/dist/interface/assets/Terminal-hln2UuSR.js +4 -0
  110. package/dist/interface/assets/Training-Bkn52mPJ.css +1 -0
  111. package/dist/interface/assets/Training-D6lhvUf-.js +1 -0
  112. package/dist/interface/assets/Updates-BwSWt9w7.js +2 -0
  113. package/dist/interface/assets/{VariableInput-BxPj5wo6.js → VariableInput-183LygmK.js} +1 -1
  114. package/dist/interface/assets/{VariableSuggestions-CbizvAkz.js → VariableSuggestions-DwLtlzVz.js} +1 -1
  115. package/dist/interface/assets/{VersionsHandler-CePyEUVO.js → VersionsHandler-DkbkcypK.js} +2 -2
  116. package/dist/interface/assets/{VirtualSensorCreate-D_GVoeL7.js → VirtualSensorCreate-Bn4tgdxA.js} +1 -1
  117. package/dist/interface/assets/Workers-B6b15izn.js +2 -0
  118. package/dist/interface/assets/{account-Bu30He0P.js → account-DwW7pBOb.js} +1 -1
  119. package/dist/interface/assets/{alert-circle-D2fAQwTX.js → alert-circle-BdUVAt1B.js} +1 -1
  120. package/dist/interface/assets/{alert-outline-D7zaSJH_.js → alert-outline-IRxYbw0j.js} +1 -1
  121. package/dist/interface/assets/api-C9mnOxie.js +4 -0
  122. package/dist/interface/assets/api-Cj9a6qPu.css +2 -0
  123. package/dist/interface/assets/{api-DW2niHRN.js → api-h4HRB3ef.js} +1 -1
  124. package/dist/interface/assets/{arrow-left-BGLyEqqa.js → arrow-left-Bk-ZrOVr.js} +1 -1
  125. package/dist/interface/assets/assistant-4hYyIu6D.js +1 -0
  126. package/dist/interface/assets/{assistantModels-D0soYqq7.js → assistantModels-BsSgRsws.js} +1 -1
  127. package/dist/interface/assets/{auth-Dc8bUpc-.js → auth-DFesRtwI.js} +1 -1
  128. package/dist/interface/assets/{automations-DXrjbArj.js → automations-D2bnX8uw.js} +1 -1
  129. package/dist/interface/assets/{back-filled-BPBVnQjx.js → back-filled-D-X19YMO.js} +1 -1
  130. package/dist/interface/assets/{bell-ring-CyCFPUL_.js → bell-ring-DreEHgoT.js} +1 -1
  131. package/dist/interface/assets/{brain-CIJB1ree.js → brain-DuDAg544.js} +1 -1
  132. package/dist/interface/assets/{cameraSources-QJfUDOQJ.js → cameraSources-DmVZWs4-.js} +1 -1
  133. package/dist/interface/assets/{cctv-D6kxZ-lp.js → cctv-DM-C_8_6.js} +1 -1
  134. package/dist/interface/assets/{check-circle-DHAAn6A6.js → check-circle-Bevuw8-0.js} +1 -1
  135. package/dist/interface/assets/{check-circle-outline-BbqeKfIK.js → check-circle-outline-aMxkvksr.js} +1 -1
  136. package/dist/interface/assets/{chevron-down-ZYTrU871.js → chevron-down-CCFn9Z56.js} +1 -1
  137. package/dist/interface/assets/{chevron-up-LQXNz9CE.js → chevron-up-CSImUM3_.js} +1 -1
  138. package/dist/interface/assets/{clock-outline-CKTiLKoR.js → clock-outline-DH3WIEJt.js} +1 -1
  139. package/dist/interface/assets/{close-BbEPZQqa.js → close-CMxyM4v9.js} +1 -1
  140. package/dist/interface/assets/{close-circle-BSUSUs4K.js → close-circle-CfgJCZ9A.js} +1 -1
  141. package/dist/interface/assets/{cloud-check-BTGbrAQ_.js → cloud-check-CbdFLIdR.js} +1 -1
  142. package/dist/interface/assets/cloudHandoff-Ba98bzeq.js +1 -0
  143. package/dist/interface/assets/{config-CiQDwB4t.js → config-DDaCrMSU.js} +1 -1
  144. package/dist/interface/assets/{content-copy-V0DW9ZbH.js → content-copy-Bz49QPOI.js} +1 -1
  145. package/dist/interface/assets/{copy-DsmMEtSH.js → copy-DA6QQHRt.js} +1 -1
  146. package/dist/interface/assets/{cube-scan-DGhUFV1x.js → cube-scan-IiH8zwm2.js} +1 -1
  147. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +1 -0
  148. package/dist/interface/assets/{delete-CY8fsIW6.js → delete-Btu-UVx9.js} +1 -1
  149. package/dist/interface/assets/{dist-DNyx_J8o.js → dist-D_qWDAKp.js} +1 -1
  150. package/dist/interface/assets/{dots-vertical-pP1vP0Qa.js → dots-vertical-D496SIss.js} +1 -1
  151. package/dist/interface/assets/{download-CyjJ7yJW.js → download-BSC7lwq_.js} +1 -1
  152. package/dist/interface/assets/esm-Bn9gXwX4.js +1 -0
  153. package/dist/interface/assets/esm-BzM6y2-F.js +1 -0
  154. package/dist/interface/assets/esm-CP3JWrtj.js +1 -0
  155. package/dist/interface/assets/esm-CjAXkqCf.js +1 -0
  156. package/dist/interface/assets/esm-Cqxk-j1S.js +1 -0
  157. package/dist/interface/assets/esm-DFHd3JNU.js +1 -0
  158. package/dist/interface/assets/esm-DfMLJtug.js +1 -0
  159. package/dist/interface/assets/esm-DhDrpq7a.js +1 -0
  160. package/dist/interface/assets/esm-DvhM-SOd.js +1 -0
  161. package/dist/interface/assets/esm-G63bqygQ.js +1 -0
  162. package/dist/interface/assets/esm-Gn-Y59hU.js +1 -0
  163. package/dist/interface/assets/esm-KJSOz2vj.js +1 -0
  164. package/dist/interface/assets/esm-Ryfc94Tm.js +1 -0
  165. package/dist/interface/assets/esm-rSfI5Poy.js +1 -0
  166. package/dist/interface/assets/{eventIcons-cdzqQc0W.js → eventIcons-UQutPG3p.js} +1 -1
  167. package/dist/interface/assets/{eye-off-JCu1iUer.js → eye-off-CSU0U8g7.js} +1 -1
  168. package/dist/interface/assets/{eye-off-outline-GErp76H2.js → eye-off-outline-DCxLRGo_.js} +1 -1
  169. package/dist/interface/assets/{flowSchema-BRTZHQ1w.js → flowSchema-YJtAu9gB.js} +1 -1
  170. package/dist/interface/assets/{help-circle-outline-G43EJuch.js → help-circle-outline-Cr_yNhPi.js} +1 -1
  171. package/dist/interface/assets/{history-CNJREqJG.js → history-anuCbp1T.js} +1 -1
  172. package/dist/interface/assets/{home-B-_OQpZ6.js → home-N3bDR1vX.js} +1 -1
  173. package/dist/interface/assets/{information-outline-Blt4EtWJ.js → information-outline-CMWIvLNB.js} +1 -1
  174. package/dist/interface/assets/{intercomService-BnA-FQ0Q.js → intercomService-CjoJaOZ7.js} +1 -1
  175. package/dist/interface/assets/{lan-C3jliANx.js → lan-CYXjdk7L.js} +1 -1
  176. package/dist/interface/assets/main-C796FmqQ.js +3 -0
  177. package/dist/interface/assets/{main-BoGhBedC.css → main-DVa5U7UB.css} +1 -1
  178. package/dist/interface/assets/{microphone-B6xc9JQ2.js → microphone-BB2pATI_.js} +1 -1
  179. package/dist/interface/assets/{minus-BI5qXFwJ.js → minus-BCp3ZNKO.js} +1 -1
  180. package/dist/interface/assets/{mqtt-iD9XHYO_.js → mqtt-DGBPptzB.js} +1 -1
  181. package/dist/interface/assets/native-CZJE8bTs.js +1 -0
  182. package/dist/interface/assets/native-DKZwialB.js +1 -0
  183. package/dist/interface/assets/{nodeDefinitions-Dop49tx8.js → nodeDefinitions-ByrqsENY.js} +1 -1
  184. package/dist/interface/assets/{notifications-CbAJX7RF.js → notifications-5yeK345h.js} +1 -1
  185. package/dist/interface/assets/{pause-DKzvPG2b.js → pause-BQlxwAW2.js} +1 -1
  186. package/dist/interface/assets/{pencil-DKbi9SsG.js → pencil-CDsNnEXi.js} +1 -1
  187. package/dist/interface/assets/{pencil-outline-CD3Xv98d.js → pencil-outline-CIQL5Kui.js} +1 -1
  188. package/dist/interface/assets/plugin-DSEMkqaK.js +1 -0
  189. package/dist/interface/assets/{plugins-eIUrXNeM.js → plugins-BTOdE_zv.js} +1 -1
  190. package/dist/interface/assets/{plus-CHPYoMO_.js → plus-Bp4q9G7S.js} +1 -1
  191. package/dist/interface/assets/{plus--kDl8ben.js → plus-CySoovdr.js} +1 -1
  192. package/dist/interface/assets/{power-C9wmNlFS.js → power-WmBLDR0-.js} +1 -1
  193. package/dist/interface/assets/{radar-B3ra28GD.js → radar-CyYAmume.js} +1 -1
  194. package/dist/interface/assets/{refresh-DfqyhMOh.js → refresh-CHTA3jVN.js} +1 -1
  195. package/dist/interface/assets/{restore-FMacmqd_.js → restore-C8RNM5yX.js} +1 -1
  196. package/dist/interface/assets/{rooms-BqPyo8jc.js → rooms-BCdm6IAx.js} +1 -1
  197. package/dist/interface/assets/{round-alt-arrow-left-bold-56eF9Bol.js → round-alt-arrow-left-bold-Gh5mi_yR.js} +1 -1
  198. package/dist/interface/assets/{search-BXbDWhLk.js → search-BajCVmOI.js} +1 -1
  199. package/dist/interface/assets/sensorIcons-5Ynqwo3e.js +1 -0
  200. package/dist/interface/assets/{sensorSlots-BZCXtnb6.js → sensorSlots-BF70tpV7.js} +1 -1
  201. package/dist/interface/assets/{sensors-DttBNEEt.js → sensors-CeFEEz8r.js} +1 -1
  202. package/dist/interface/assets/{server-DUFhf2c_.js → server-bhW2Mw4D.js} +1 -1
  203. package/dist/interface/assets/{settings-Cw63SIJl.js → settings-DnksaK7m.js} +1 -1
  204. package/dist/interface/assets/{source-branch-oyzrlfCD.js → source-branch-CzqIPffP.js} +1 -1
  205. package/dist/interface/assets/{theme-BMmjtQ4w.js → theme-DF_XA58O.js} +1 -1
  206. package/dist/interface/assets/{trash-2-BQc04l9M.js → trash-2-DJeEhHf4.js} +1 -1
  207. package/dist/interface/assets/{trash-can-outline-Bk5eENNM.js → trash-can-outline-DrT6iw7I.js} +1 -1
  208. package/dist/interface/assets/{trash-fill-CXk8BmtF.js → trash-fill-Bb_-UicM.js} +1 -1
  209. package/dist/interface/assets/{trash2-2rUvghml.js → trash2-Dsl8gfxq.js} +1 -1
  210. package/dist/interface/assets/{types-CXw7CEzu.js → types-ArGM5-5O.js} +1 -1
  211. package/dist/interface/assets/types-BcAxmlqC.js +1 -0
  212. package/dist/interface/assets/{types-DWTSNJ79.js → types-CklFkUXk.js} +1 -1
  213. package/dist/interface/assets/{undo-Dcf7vcsv.js → undo-DoqJW-k7.js} +1 -1
  214. package/dist/interface/assets/{ungrouped-DHMJ9Rg1.css → ungrouped-BnQIcSQd.css} +1 -1
  215. package/dist/interface/assets/ungrouped-CkIlDUwl.js +1 -0
  216. package/dist/interface/assets/{updates-TIPWXKzL.js → updates-D3x_kPMM.js} +1 -1
  217. package/dist/interface/assets/{upload-nnbfDypK.js → upload-C3w1XH-o.js} +1 -1
  218. package/dist/interface/assets/{upload-B-ZYPekV.js → upload-DtIcwiNC.js} +1 -1
  219. package/dist/interface/assets/{useAppVersion-BIz44Bg4.js → useAppVersion-Dcvu95bZ.js} +1 -1
  220. package/dist/interface/assets/{useAssistantActions-CLkkw9kB.js → useAssistantActions-Cc_O6M9_.js} +1 -1
  221. package/dist/interface/assets/useBackupRestore-xp5KhKVn.js +1 -0
  222. package/dist/interface/assets/{useCameraOptions-A97teAIr.js → useCameraOptions-8I4MTDgj.js} +1 -1
  223. package/dist/interface/assets/useKeyboardInset-C0Lp0UcX.js +1 -0
  224. package/dist/interface/assets/{useLogsSocket-BlFxVXjF.js → useLogsSocket-bpOiLgWT.js} +1 -1
  225. package/dist/interface/assets/{useNavLayout-C5obaCNv.js → useNavLayout-Cjf6Da2u.js} +1 -1
  226. package/dist/interface/assets/{usePermissions-C8hB_pG1.js → usePermissions-BXTw4tII.js} +1 -1
  227. package/dist/interface/assets/{usePluginUpdates-DO0-Gk4Q.js → usePluginUpdates-bOMj-IvL.js} +1 -1
  228. package/dist/interface/assets/{usePushRegistration-BUttCraQ.js → usePushRegistration-HOvLuUVP.js} +2 -2
  229. package/dist/interface/assets/{useServerRestart-Cz9eVHUE.js → useServerRestart-CQN4cdHJ.js} +1 -1
  230. package/dist/interface/assets/{useStreamStatus-BhS_MCCB.js → useStreamStatus-Da7c2Wme.js} +1 -1
  231. package/dist/interface/assets/{useTabSwipe-D4k8lm1M.js → useTabSwipe-fFuyJJBQ.js} +1 -1
  232. package/dist/interface/assets/{useUpdateChannel-D9lhfW0y.js → useUpdateChannel-Ca1RX32u.js} +1 -1
  233. package/dist/interface/assets/{useUpdatesSocket-DnH9sON5.js → useUpdatesSocket-DHZNpLQX.js} +1 -1
  234. package/dist/interface/assets/useUserOptions-BQdOB-Dp.js +1 -0
  235. package/dist/interface/assets/{variable-CcE0ZwTr.js → variable-ywTlRfo5.js} +1 -1
  236. package/dist/interface/assets/{vendor-cameraui-QXD8jkcj.js → vendor-cameraui-CK4yHsJi.js} +45 -45
  237. package/dist/interface/assets/{vendor-capacitor-COL6Kz75.js → vendor-capacitor-Bs_WzL0Q.js} +2 -2
  238. package/dist/interface/assets/{vendor-chart-80wrH3md.js → vendor-chart-DBK083Hu.js} +1 -1
  239. package/dist/interface/assets/{vendor-core-CnhnyKDl.js → vendor-core-B-Q4es-f.js} +1 -1
  240. package/dist/interface/assets/{vendor-dnd-CEJS9JKU.js → vendor-dnd-DGQLvX6Y.js} +1 -1
  241. package/dist/interface/assets/{vendor-draggabilly-BY7O1F_Z.js → vendor-draggabilly-D8CK6M-y.js} +1 -1
  242. package/dist/interface/assets/{vendor-DGke_6M4.js → vendor-gFkr2qsZ.js} +1 -1
  243. package/dist/interface/assets/vendor-gridstack-DtDG3os6.js +3 -0
  244. package/dist/interface/assets/{vendor-markdown-DD4teg2u.js → vendor-markdown-qHIinIUE.js} +1 -1
  245. package/dist/interface/assets/{vendor-primevue-CCUqY55W.js → vendor-primevue-Cmp3VjIC.js} +72 -72
  246. package/dist/interface/assets/{vendor-vueflow-Bmwd2les.js → vendor-vueflow-bSwRZ9X8.js} +1 -1
  247. package/dist/interface/assets/web-BDNQnMmA.js +1 -0
  248. package/dist/interface/assets/web-B_9Qyt8E.js +1 -0
  249. package/dist/interface/assets/web-BhJykCtq.js +1 -0
  250. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +1 -0
  251. package/dist/interface/assets/web-C7nJwIOa.js +1 -0
  252. package/dist/interface/assets/web-CGJsJQDb.js +1 -0
  253. package/dist/interface/assets/web-CJwASxrl.js +1 -0
  254. package/dist/interface/assets/web-CLe0L31Y.js +1 -0
  255. package/dist/interface/assets/web-DEv1hAn1.js +1 -0
  256. package/dist/interface/assets/web-DaeQvsXT.js +1 -0
  257. package/dist/interface/assets/web-H3-wNunW.js +1 -0
  258. package/dist/interface/assets/web-LCdyqJq1.js +1 -0
  259. package/dist/interface/assets/web-XZWYTK65.js +1 -0
  260. package/dist/interface/assets/web-rU5hlxxW.js +1 -0
  261. package/dist/interface/assets/{webhook-oVbP79Yk.js → webhook-CWKf2Qxu.js} +1 -1
  262. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +1 -0
  263. package/dist/interface/assets/{zoom-in-GKNy8xA7.js → zoom-in-CHkXAWHy.js} +1 -1
  264. package/dist/interface/ha/{404-DLhJqxRl.js → 404-C0mWQGWl.js} +1 -1
  265. package/dist/interface/ha/{About-DC0i1iE4.js → About-ByE7XErJ.js} +6 -6
  266. package/dist/interface/ha/{Assistant-BmazMPIg.js → Assistant-Z3FTR868.js} +2233 -2099
  267. package/dist/interface/ha/{Automation-gabF9YzQ.js → Automation-COQqTFNw.js} +237 -237
  268. package/dist/interface/ha/{AutomationImport-DaqZNs9s.js → AutomationImport-ueWqMBX9.js} +6 -6
  269. package/dist/interface/ha/{AutomationStore-DzM4huo5.js → AutomationStore-DBO4aZqy.js} +76 -76
  270. package/dist/interface/ha/{AutomationStoreDetail-CpzQMt_D.js → AutomationStoreDetail-DMnYu7hf.js} +19 -19
  271. package/dist/interface/ha/{Automations-Dcm4Us50.js → Automations-CMdbidc0.js} +73 -73
  272. package/dist/interface/ha/{Camera-CNK3QR7l.js → Camera-C28q_3pu.js} +183 -180
  273. package/dist/interface/ha/{CameraConsole-CpcF0411.js → CameraConsole-oMNZfKE6.js} +3 -3
  274. package/dist/interface/ha/{Cameras-Cf9rwRyf.js → Cameras-CsqrLx97.js} +166 -166
  275. package/dist/interface/ha/{Camview-BFKR2t6C.js → Camview-Br0LUakz.js} +389 -389
  276. package/dist/interface/ha/{Config-1XH3zfr2.js → Config-Y5eUNSW7.js} +110 -110
  277. package/dist/interface/ha/{ConfigActionAssistant-C0-NFoTB.js → ConfigActionAssistant-hl-6ZACj.js} +4 -4
  278. package/dist/interface/ha/{ConfigActionCameraControl-DNSKZPSZ.js → ConfigActionCameraControl-DnXlVFWD.js} +3 -3
  279. package/dist/interface/ha/{ConfigActionHttp-DVJAcGkl.js → ConfigActionHttp-BkpkMmRd.js} +2 -2
  280. package/dist/interface/ha/{ConfigActionImageInput-VVbHHHZs.js → ConfigActionImageInput-Dp78_QS_.js} +1 -1
  281. package/dist/interface/ha/{ConfigActionMqtt-N5OUJDzM.js → ConfigActionMqtt-DA_UWb5j.js} +4 -4
  282. package/dist/interface/ha/{ConfigActionNotification-s142tQoU.js → ConfigActionNotification-CQ4Ses3a.js} +3 -3
  283. package/dist/interface/ha/{ConfigActionNotificationControl-Dh7kaKVP.js → ConfigActionNotificationControl-Cb5PNGz-.js} +2 -2
  284. package/dist/interface/ha/{ConfigActionOutput-B4HHTg5C.js → ConfigActionOutput-DLuNHwRb.js} +1 -1
  285. package/dist/interface/ha/{ConfigActionPlugin-D20G2Dqf.js → ConfigActionPlugin-ChKFCNaj.js} +5 -5
  286. package/dist/interface/ha/{ConfigActionSensor-BS3jrFaG.js → ConfigActionSensor-DOutFalW.js} +5 -5
  287. package/dist/interface/ha/{ConfigActionSnapshot-CInLAcwK.js → ConfigActionSnapshot-GWgY6YIN.js} +2 -2
  288. package/dist/interface/ha/{ConfigActionVariable-C5vADGNF.js → ConfigActionVariable-bu-9VYTG.js} +1 -1
  289. package/dist/interface/ha/{ConfigConditionIfElse-CPeWDD31.js → ConfigConditionIfElse-iNp8tlZV.js} +3 -3
  290. package/dist/interface/ha/{ConfigConditionSensorState-BM5GmpN6.js → ConfigConditionSensorState-Dn7kcHpJ.js} +4 -4
  291. package/dist/interface/ha/{ConfigConditionSwitch-Dmz9FduJ.js → ConfigConditionSwitch-DaUlDgo0.js} +5 -5
  292. package/dist/interface/ha/{ConfigSensorValueInput-Ch5njvtv.js → ConfigSensorValueInput-D6m6suqJ.js} +9 -9
  293. package/dist/interface/ha/{ConfigTriggerDetection-BR2QWNyO.js → ConfigTriggerDetection-C5B_DC_L.js} +12 -12
  294. package/dist/interface/ha/{ConfigTriggerGeofence-CaImOjyW.js → ConfigTriggerGeofence-B4WVNcK5.js} +5 -5
  295. package/dist/interface/ha/{ConfigTriggerMqtt-DWz1XwZQ.js → ConfigTriggerMqtt-wnMfk_Un.js} +1 -1
  296. package/dist/interface/ha/{ConfigTriggerSensor-lfnhz0im.js → ConfigTriggerSensor-xFpI5KPu.js} +1 -1
  297. package/dist/interface/ha/{ConfigTriggerSystem-CwUhyFAj.js → ConfigTriggerSystem-YI9WYYVM.js} +2 -2
  298. package/dist/interface/ha/{ConfigTriggerWebhook-J6Xts7GQ.js → ConfigTriggerWebhook-58c2KgUe.js} +2 -2
  299. package/dist/interface/ha/{Console-BSdKFm6Y.js → Console-Coiqh32K.js} +13 -13
  300. package/dist/interface/ha/{CuiAutomationRunsDialog-BU8sympp.js → CuiAutomationRunsDialog-CJ2MGfEY.js} +2 -2
  301. package/dist/interface/ha/{CuiBottomSheet-Bnp7ta7V.js → CuiBottomSheet-BlG9Pl9j.js} +1 -1
  302. package/dist/interface/ha/{CuiCameraRecordings-E-mMqKSs.js → CuiCameraRecordings-DLXEB4Q7.js} +13 -13
  303. package/dist/interface/ha/{CuiCameraShares-DcNwd2OC.js → CuiCameraShares-BCIeaM6u.js} +6 -6
  304. package/dist/interface/ha/{CuiCameraTable-DNW9Vm_A.js → CuiCameraTable-PYYC7sOu.js} +9 -9
  305. package/dist/interface/ha/{CuiChartTable-muC7jL2H.js → CuiChartTable-FQ2iR5Hd.js} +42 -42
  306. package/dist/interface/ha/{CuiConsole-ND8bcuTg.js → CuiConsole-C77k5q_-.js} +6 -6
  307. package/dist/interface/ha/{CuiDataTable-CN4T8DgP.js → CuiDataTable-CIKQLseG.js} +6 -6
  308. package/dist/interface/ha/{CuiPluginCard-nIQiyQvH.js → CuiPluginCard-DZNXKP_P.js} +51 -51
  309. package/dist/interface/ha/{CuiPluginOAuthButton-FJ49NfUh.js → CuiPluginOAuthButton-DVf52_Zc.js} +6 -6
  310. package/dist/interface/ha/{CuiPluginTrustBadge-D6eanMyI.js → CuiPluginTrustBadge-CPljYiM8.js} +3 -3
  311. package/dist/interface/ha/{CuiQRCode-BdJzeeoE.js → CuiQRCode-oe8PLnLj.js} +7 -7
  312. package/dist/interface/ha/{CuiSchema-DY0V-8xP.js → CuiSchema-CQy94ZTs.js} +60 -60
  313. package/dist/interface/ha/{CuiTopNavbarItem-DT5pAKHp.js → CuiTopNavbarItem-D6OHZLQY.js} +5 -5
  314. package/dist/interface/ha/Faces-DxAPvemO.js +1441 -0
  315. package/dist/interface/ha/{FirstSteps-yS2M2cor.js → FirstSteps-ZINTSaeL.js} +67 -67
  316. package/dist/interface/ha/{Floorplan-DSOeScjI.js → Floorplan-DkbL8ppT.js} +300 -300
  317. package/dist/interface/ha/{Instances-B4h5EKpF.js → Instances-totWtqd7.js} +66 -66
  318. package/dist/interface/ha/{Logs-BH0Lxvs6.js → Logs-CzabIFja.js} +11 -11
  319. package/dist/interface/ha/{Menu-COH7QXuE.js → Menu-DcVBOQfw.js} +12 -12
  320. package/dist/interface/ha/{Metrics-BtnRqL_I.js → Metrics-B_SN5hbp.js} +410 -409
  321. package/dist/interface/ha/{OAuthDeviceFlow-D2QJ9MnP.js → OAuthDeviceFlow-B28TPsTQ.js} +7 -7
  322. package/dist/interface/ha/{Plugin-EfUSqwyh.js → Plugin-B2PbbB8d.js} +418 -279
  323. package/dist/interface/ha/{PluginConsole-hh_o15f7.js → PluginConsole-_KeG4FvO.js} +4 -4
  324. package/dist/interface/ha/{PluginDetail-DFiXGkrY.js → PluginDetail-GK_Fx14e.js} +185 -185
  325. package/dist/interface/ha/{PluginSearch-Cdrfubrj.js → PluginSearch-qSy4aqAW.js} +51 -51
  326. package/dist/interface/ha/{PluginUpdateProgress-BD2g2kVj.js → PluginUpdateProgress-C4Q2j6VO.js} +3 -3
  327. package/dist/interface/ha/{Plugins-qFiHW-Nk.js → Plugins-D0tvZHie.js} +64 -64
  328. package/dist/interface/ha/{RecentEventsFilter-UWrXnvfq.js → RecentEventsFilter-9ZkDHD1g.js} +1 -1
  329. package/dist/interface/ha/{Recordings-BzeC6tOz.js → Recordings-CpxJYaAa.js} +510 -489
  330. package/dist/interface/ha/{SensorEdit-BSgy7lkZ.js → SensorEdit-8KtqLXEu.js} +377 -377
  331. package/dist/interface/ha/{SensorHistory-IDvP8LKH.js → SensorHistory-CPTTsdjM.js} +2 -2
  332. package/dist/interface/ha/{Sensors-Diqp4oZ0.js → Sensors-DJt_Hnn2.js} +484 -469
  333. package/dist/interface/ha/{Settings-BgDsxAlx.js → Settings-B-OdG5pG.js} +18 -18
  334. package/dist/interface/ha/{SettingsAccount-DBXMQPYk.js → SettingsAccount-Ba2-2Lbi.js} +175 -175
  335. package/dist/interface/ha/{SettingsAppearance-VmbjnT3o.js → SettingsAppearance-D56HjSuQ.js} +7 -7
  336. package/dist/interface/ha/SettingsAssistant-DglU0auc.js +2025 -0
  337. package/dist/interface/ha/{SettingsBackup-BqY9TwYn.js → SettingsBackup-DZx4McDz.js} +38 -38
  338. package/dist/interface/ha/{SettingsList-CzHcfo2N.js → SettingsList-D9nIGkbE.js} +4 -4
  339. package/dist/interface/ha/{SettingsMqtt-DqV3h3Ow.js → SettingsMqtt-BOszh--k.js} +150 -150
  340. package/dist/interface/ha/{SettingsNotifications-yn5fIR_7.js → SettingsNotifications-DBVpZfp0.js} +118 -118
  341. package/dist/interface/ha/{SettingsRecordings-DDs1lyfY.js → SettingsRecordings-D3oJnizu.js} +9 -9
  342. package/dist/interface/ha/{SettingsRemote-jBw3l5E0.js → SettingsRemote-BOotvcOT.js} +332 -332
  343. package/dist/interface/ha/{SettingsSystem-BOv9hNlk.js → SettingsSystem-Bg11qoQX.js} +10 -10
  344. package/dist/interface/ha/{SettingsUsers-Biv-2F4C.js → SettingsUsers-KpLs9Jnh.js} +92 -92
  345. package/dist/interface/ha/{Terminal-CmcrGEV0.js → Terminal-D6opTHYI.js} +165 -170
  346. package/dist/interface/ha/Training-OB2KOQ7L.js +1694 -0
  347. package/dist/interface/ha/{Updates-DJAcmDQJ.js → Updates-C_OvXJjd.js} +12 -12
  348. package/dist/interface/ha/{VariableInput-DlYg7t0m.js → VariableInput-CfaDp67S.js} +1 -1
  349. package/dist/interface/ha/{VersionsHandler-UnrAWn-b.js → VersionsHandler-D1FVeYUZ.js} +10 -10
  350. package/dist/interface/ha/{VirtualSensorCreate-CssxeaCC.js → VirtualSensorCreate-DJIgMVrt.js} +7 -7
  351. package/dist/interface/ha/{Workers-CLpqLugC.js → Workers-cJMI4mYX.js} +29 -29
  352. package/dist/interface/ha/{api-B_tDa73J.js → api-CDawdL4p.js} +3 -3
  353. package/dist/interface/ha/{api-BP7mlzjP.js → api-D2VzV4is.js} +9943 -9546
  354. package/dist/interface/ha/{assistant-Cb6ACguQ.js → assistant-BmDAfChm.js} +101 -97
  355. package/dist/interface/ha/{auth-DOYDRgFm.js → auth-CvLz9C4w.js} +33 -33
  356. package/dist/interface/ha/{automationBlueprint-CbbG_ku4.js → automationBlueprint-BhNaeOZ1.js} +4 -4
  357. package/dist/interface/ha/{base-C-TYDHjS.js → base-XgWmQghV.js} +14 -3
  358. package/dist/interface/ha/cameraui-cards.js +1 -1
  359. package/dist/interface/ha/{cards-BpBP1zVW.js → cards-MQrnU0T8.js} +1197 -1121
  360. package/dist/interface/ha/{config-DroY1HBs.js → config-t_oAKFkJ.js} +14 -14
  361. package/dist/interface/ha/database-refresh-outline-PiqlCkA7.js +19 -0
  362. package/dist/interface/ha/{dist-BTp4AyuI.js → dist-BIngHzHx.js} +5 -5
  363. package/dist/interface/ha/{dist-C6MBHJhs.js → dist-oFWkn6pD.js} +5 -8
  364. package/dist/interface/ha/{esm-i8Tigknm.js → esm-C9XVFkXu.js} +4 -4
  365. package/dist/interface/ha/{mqtt-NJTVdd53.js → mqtt-C20h1uze.js} +14 -14
  366. package/dist/interface/ha/{native-DBH9ocSq.js → native-BVUxNLM1.js} +4 -4
  367. package/dist/interface/ha/{notifications-BPTvvgvv.js → notifications-Cy9DKiEn.js} +19 -19
  368. package/dist/interface/ha/{pinia-C6gt7A_Q.js → pinia-BokSpDzj.js} +640 -625
  369. package/dist/interface/ha/{plugins-B29K3nQP.js → plugins-jozYyBhV.js} +53 -53
  370. package/dist/interface/ha/{rooms-DLw0WUy_.js → rooms-DyfT3cXp.js} +11 -11
  371. package/dist/interface/ha/{server-B4b5_Ecu.js → server-hCCjQjZE.js} +28 -28
  372. package/dist/interface/ha/{types-DJHHL7nn.js → types-RG0SckNR.js} +49 -38
  373. package/dist/interface/ha/{types-XqA3YJPD.js → types-wLECk3Ml.js} +3 -1
  374. package/dist/interface/ha/{ungrouped-xyK1QrsM.js → ungrouped-BbyfoCQp.js} +121 -121
  375. package/dist/interface/ha/{updates-XFSu9Tfm.js → updates-hUgVDgoD.js} +36 -36
  376. package/dist/interface/ha/{useAppVersion-BH3rU1zz.js → useAppVersion-wNhZDuvR.js} +1 -1
  377. package/dist/interface/ha/useKeyboardInset-Cmbvb_W3.js +27 -0
  378. package/dist/interface/ha/{useLogsSocket-CaTRzvgU.js → useLogsSocket-y9Aex3tJ.js} +1 -1
  379. package/dist/interface/ha/{useNavLayout-DV0_OQx0.js → useNavLayout-Ehb0t34k.js} +2 -2
  380. package/dist/interface/ha/{useServerRestart-C8tynLUf.js → useServerRestart-CRSVcz3z.js} +1 -1
  381. package/dist/interface/ha/{useTabSwipe-CFoLDp3j.js → useTabSwipe-B_bseZkI.js} +1 -1
  382. package/dist/interface/ha/{useUpdateChannel-DSG2RTPe.js → useUpdateChannel-C_GU6lj6.js} +2 -2
  383. package/dist/interface/ha/{useUpdatesSocket-CSQ0g7-6.js → useUpdatesSocket-CYgHb7UX.js} +1 -1
  384. package/dist/interface/ha/{useUserOptions-CFaCy6L1.js → useUserOptions-pVYr-s3O.js} +1 -1
  385. package/dist/interface/ha/{web-D_q41D0i.js → web-CLbVbnCW.js} +5 -5
  386. package/dist/interface/index.html +70 -70
  387. package/dist/interface/sw.js +1 -1
  388. package/dist/server/package.json +30 -30
  389. package/dist/server/requirements.txt +2 -2
  390. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +44 -0
  391. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +2 -0
  392. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +7 -2
  393. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +42 -0
  394. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/assistant_models.py +300 -0
  395. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +9 -0
  396. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +21 -0
  397. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +80 -4
  398. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +6 -0
  399. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +2 -0
  400. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +3 -7
  401. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +69 -0
  402. package/dist/server/src/api/controllers/assistant.controller.js +1 -1
  403. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  404. package/dist/server/src/api/controllers/rooms.controller.js +3 -1
  405. package/dist/server/src/api/controllers/rooms.controller.js.map +1 -1
  406. package/dist/server/src/api/database/index.d.ts +1 -1
  407. package/dist/server/src/api/database/index.js +1 -1
  408. package/dist/server/src/api/database/migrations/v2-2-5.d.ts +3 -0
  409. package/dist/server/src/api/database/migrations/v2-2-5.js +19 -0
  410. package/dist/server/src/api/database/migrations/v2-2-5.js.map +1 -0
  411. package/dist/server/src/api/database/record-schemas.d.ts +4 -2
  412. package/dist/server/src/api/database/record-schemas.js +4 -1
  413. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  414. package/dist/server/src/api/database/types.d.ts +6 -1
  415. package/dist/server/src/api/schemas/assistant.schema.d.ts +23 -7
  416. package/dist/server/src/api/schemas/assistant.schema.js +5 -1
  417. package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
  418. package/dist/server/src/api/schemas/cameras.schema.d.ts +56 -8
  419. package/dist/server/src/api/schemas/cameras.schema.js +4 -3
  420. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  421. package/dist/server/src/api/services/assistant.service.d.ts +1 -1
  422. package/dist/server/src/api/services/assistant.service.js +4 -1
  423. package/dist/server/src/api/services/assistant.service.js.map +1 -1
  424. package/dist/server/src/api/services/cameras.service.d.ts +1 -0
  425. package/dist/server/src/api/services/cameras.service.js +10 -2
  426. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  427. package/dist/server/src/api/websocket/nsp/worker-perf.js +13 -0
  428. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  429. package/dist/server/src/api/websocket/types.d.ts +12 -0
  430. package/dist/server/src/assistant/budget.d.ts +27 -0
  431. package/dist/server/src/assistant/budget.js +118 -0
  432. package/dist/server/src/assistant/budget.js.map +1 -0
  433. package/dist/server/src/assistant/compaction.d.ts +10 -0
  434. package/dist/server/src/assistant/compaction.js +83 -0
  435. package/dist/server/src/assistant/compaction.js.map +1 -0
  436. package/dist/server/src/assistant/docs.js +4 -3
  437. package/dist/server/src/assistant/docs.js.map +1 -1
  438. package/dist/server/src/assistant/history.d.ts +1 -0
  439. package/dist/server/src/assistant/history.js +28 -0
  440. package/dist/server/src/assistant/history.js.map +1 -1
  441. package/dist/server/src/assistant/manager.d.ts +11 -0
  442. package/dist/server/src/assistant/manager.js +262 -63
  443. package/dist/server/src/assistant/manager.js.map +1 -1
  444. package/dist/server/src/assistant/plugin-models.d.ts +34 -0
  445. package/dist/server/src/assistant/plugin-models.js +266 -0
  446. package/dist/server/src/assistant/plugin-models.js.map +1 -0
  447. package/dist/server/src/assistant/prompt.d.ts +7 -1
  448. package/dist/server/src/assistant/prompt.js +75 -11
  449. package/dist/server/src/assistant/prompt.js.map +1 -1
  450. package/dist/server/src/assistant/providers.js +7 -3
  451. package/dist/server/src/assistant/providers.js.map +1 -1
  452. package/dist/server/src/assistant/recap.d.ts +3 -0
  453. package/dist/server/src/assistant/recap.js +65 -0
  454. package/dist/server/src/assistant/recap.js.map +1 -0
  455. package/dist/server/src/assistant/registry.d.ts +16 -1
  456. package/dist/server/src/assistant/registry.js +49 -1
  457. package/dist/server/src/assistant/registry.js.map +1 -1
  458. package/dist/server/src/assistant/retry.js +38 -24
  459. package/dist/server/src/assistant/retry.js.map +1 -1
  460. package/dist/server/src/assistant/router.d.ts +7 -0
  461. package/dist/server/src/assistant/router.js +67 -0
  462. package/dist/server/src/assistant/router.js.map +1 -0
  463. package/dist/server/src/assistant/scheduler.js +8 -1
  464. package/dist/server/src/assistant/scheduler.js.map +1 -1
  465. package/dist/server/src/assistant/skills.d.ts +8 -0
  466. package/dist/server/src/assistant/skills.js +59 -1
  467. package/dist/server/src/assistant/skills.js.map +1 -1
  468. package/dist/server/src/assistant/threads.d.ts +1 -0
  469. package/dist/server/src/assistant/threads.js +7 -1
  470. package/dist/server/src/assistant/threads.js.map +1 -1
  471. package/dist/server/src/assistant/tool-names.js +9 -1
  472. package/dist/server/src/assistant/tool-names.js.map +1 -1
  473. package/dist/server/src/assistant/tool-rank.d.ts +2 -0
  474. package/dist/server/src/assistant/tool-rank.js +48 -0
  475. package/dist/server/src/assistant/tool-rank.js.map +1 -0
  476. package/dist/server/src/assistant/tool-schema.d.ts +3 -0
  477. package/dist/server/src/assistant/tool-schema.js +65 -0
  478. package/dist/server/src/assistant/tool-schema.js.map +1 -0
  479. package/dist/server/src/assistant/tools/api.js +7 -9
  480. package/dist/server/src/assistant/tools/api.js.map +1 -1
  481. package/dist/server/src/assistant/tools/ask.js +1 -2
  482. package/dist/server/src/assistant/tools/ask.js.map +1 -1
  483. package/dist/server/src/assistant/tools/automations.js +3 -5
  484. package/dist/server/src/assistant/tools/automations.js.map +1 -1
  485. package/dist/server/src/assistant/tools/cameras.js +3 -4
  486. package/dist/server/src/assistant/tools/cameras.js.map +1 -1
  487. package/dist/server/src/assistant/tools/docs.js +5 -6
  488. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  489. package/dist/server/src/assistant/tools/instance.js +19 -19
  490. package/dist/server/src/assistant/tools/instance.js.map +1 -1
  491. package/dist/server/src/assistant/tools/memory.js +3 -4
  492. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  493. package/dist/server/src/assistant/tools/metrics.js +1 -2
  494. package/dist/server/src/assistant/tools/metrics.js.map +1 -1
  495. package/dist/server/src/assistant/tools/notifications.js +4 -11
  496. package/dist/server/src/assistant/tools/notifications.js.map +1 -1
  497. package/dist/server/src/assistant/tools/plugins.js +12 -14
  498. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  499. package/dist/server/src/assistant/tools/report.js +17 -12
  500. package/dist/server/src/assistant/tools/report.js.map +1 -1
  501. package/dist/server/src/assistant/tools/schedules.js +6 -11
  502. package/dist/server/src/assistant/tools/schedules.js.map +1 -1
  503. package/dist/server/src/assistant/tools/sensors.js +63 -4
  504. package/dist/server/src/assistant/tools/sensors.js.map +1 -1
  505. package/dist/server/src/assistant/tools/settings.js +2 -3
  506. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  507. package/dist/server/src/assistant/tools/system.js +3 -5
  508. package/dist/server/src/assistant/tools/system.js.map +1 -1
  509. package/dist/server/src/assistant/tools/terminal.js +4 -5
  510. package/dist/server/src/assistant/tools/terminal.js.map +1 -1
  511. package/dist/server/src/assistant/types.d.ts +10 -1
  512. package/dist/server/src/assistant/uploads.d.ts +2 -1
  513. package/dist/server/src/assistant/uploads.js +25 -3
  514. package/dist/server/src/assistant/uploads.js.map +1 -1
  515. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -0
  516. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -14
  517. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  518. package/dist/server/src/camera/decoder/detection-pipeline.js +2 -1
  519. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  520. package/dist/server/src/camera/decoder/event-manager.d.ts +27 -4
  521. package/dist/server/src/camera/decoder/event-manager.js +175 -48
  522. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  523. package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -1
  524. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  525. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  526. package/dist/server/src/camera/decoder/perf-tracker.d.ts +10 -0
  527. package/dist/server/src/camera/decoder/perf-tracker.js +20 -0
  528. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  529. package/dist/server/src/camera/decoder/secondary-stage.d.ts +21 -1
  530. package/dist/server/src/camera/decoder/secondary-stage.js +301 -59
  531. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  532. package/dist/server/src/camera/decoder/side-queue.d.ts +13 -0
  533. package/dist/server/src/camera/decoder/side-queue.js +53 -0
  534. package/dist/server/src/camera/decoder/side-queue.js.map +1 -0
  535. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +2 -0
  536. package/dist/server/src/camera/decoder/sources/buffered-source.js +7 -1
  537. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  538. package/dist/server/src/camera/decoder/types.d.ts +11 -1
  539. package/dist/server/src/camera/decoder/types.js +9 -1
  540. package/dist/server/src/camera/decoder/types.js.map +1 -1
  541. package/dist/server/src/camera/sensors/controller.d.ts +1 -0
  542. package/dist/server/src/camera/sensors/controller.js +28 -4
  543. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  544. package/dist/server/src/main.js +11 -2
  545. package/dist/server/src/main.js.map +1 -1
  546. package/dist/server/src/plugins/index.js +5 -4
  547. package/dist/server/src/plugins/index.js.map +1 -1
  548. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -14
  549. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +14 -1
  550. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +1 -13
  551. package/dist/server/src/rpc/interfaces/detection.d.ts +14 -2
  552. package/dist/server/src/rpc/server.js +1 -0
  553. package/dist/server/src/rpc/server.js.map +1 -1
  554. package/dist/server/src/services/config/index.d.ts +1 -0
  555. package/dist/server/src/services/config/index.js +6 -11
  556. package/dist/server/src/services/config/index.js.map +1 -1
  557. package/dist/server/src/utils/camera.js +8 -5
  558. package/dist/server/src/utils/camera.js.map +1 -1
  559. package/dist/server/src/utils/instance-lock.d.ts +1 -0
  560. package/dist/server/src/utils/instance-lock.js +57 -0
  561. package/dist/server/src/utils/instance-lock.js.map +1 -0
  562. package/dist/server/src/workers/agent.d.ts +2 -0
  563. package/dist/server/src/workers/agent.js +11 -1
  564. package/dist/server/src/workers/agent.js.map +1 -1
  565. package/dist/server/src/workers/manager.js +9 -2
  566. package/dist/server/src/workers/manager.js.map +1 -1
  567. package/dist/server/src/workers/types.d.ts +1 -0
  568. package/npm-shrinkwrap.json +213 -213
  569. package/package.json +30 -30
  570. package/dist/interface/assets/Assistant-bB8RBo-m.js +0 -1
  571. package/dist/interface/assets/Automations-BdZZW2eN.js +0 -2
  572. package/dist/interface/assets/Camera-B4ojNnKb.css +0 -1
  573. package/dist/interface/assets/Camera-Ct7ndOxr.js +0 -2
  574. package/dist/interface/assets/Camview-BjQdTHNh.js +0 -1
  575. package/dist/interface/assets/Config-CBTbYd5v.js +0 -2
  576. package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +0 -1
  577. package/dist/interface/assets/Console-Cfk9MA9m.js +0 -1
  578. package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +0 -5
  579. package/dist/interface/assets/CuiAssistantConversation-lkpZg3ML.css +0 -1
  580. package/dist/interface/assets/CuiAutomationRunsDialog-B0ohEHw0.js +0 -1
  581. package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +0 -1
  582. package/dist/interface/assets/CuiCameraPipCard-C2qaGJlH.js +0 -1
  583. package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +0 -1
  584. package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +0 -1
  585. package/dist/interface/assets/CuiDataTable-CsqH-RB1.js +0 -1
  586. package/dist/interface/assets/CuiLightControl-ChGYpQAK.js +0 -1
  587. package/dist/interface/assets/CuiMarkdownContent-DSArmS0V.js +0 -1
  588. package/dist/interface/assets/CuiPluginCard-CWImTZ6l.js +0 -2
  589. package/dist/interface/assets/CuiSchema-ytExUVhI.js +0 -1
  590. package/dist/interface/assets/Faces-Cb6XMxDC.js +0 -1
  591. package/dist/interface/assets/FirstSteps-QNYTkEJo.js +0 -1
  592. package/dist/interface/assets/Floorplan-DbqADtN1.js +0 -1
  593. package/dist/interface/assets/Instances-DrMzPD65.js +0 -1
  594. package/dist/interface/assets/Metrics-BUP_-7o7.css +0 -1
  595. package/dist/interface/assets/Metrics-CqhUnVRA.js +0 -12
  596. package/dist/interface/assets/Plugin-BDqNeTCT.css +0 -1
  597. package/dist/interface/assets/Plugin-DyOg_fbg.js +0 -1
  598. package/dist/interface/assets/PluginSearch-BgecD9Ob.js +0 -2
  599. package/dist/interface/assets/PluginSearch-C8xHKikH.js +0 -1
  600. package/dist/interface/assets/Plugins-CuujWEtM.js +0 -1
  601. package/dist/interface/assets/Recordings-9FJqCfdM.css +0 -1
  602. package/dist/interface/assets/Recordings-ths9khZr.js +0 -1
  603. package/dist/interface/assets/SensorEdit-BzoIH7QC.js +0 -1
  604. package/dist/interface/assets/Sensors-CK5uExfU.js +0 -2
  605. package/dist/interface/assets/Settings-DN5hFtw_.js +0 -1
  606. package/dist/interface/assets/SettingsAccount-BCrmon5O.js +0 -1
  607. package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +0 -1
  608. package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +0 -1
  609. package/dist/interface/assets/SettingsAssistant-BESab92C.css +0 -1
  610. package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +0 -1
  611. package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +0 -1
  612. package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +0 -2
  613. package/dist/interface/assets/Terminal-Dl-aAZME.js +0 -4
  614. package/dist/interface/assets/Training-B1oQjAr8.css +0 -1
  615. package/dist/interface/assets/Training-DdZjXgt1.js +0 -1
  616. package/dist/interface/assets/Updates-CkB1lXuo.js +0 -2
  617. package/dist/interface/assets/Workers-7yiebNkl.js +0 -2
  618. package/dist/interface/assets/api-DK2Bav9D.js +0 -4
  619. package/dist/interface/assets/api-DTCqDA-h.css +0 -2
  620. package/dist/interface/assets/assistant-BJ6xKcw_.js +0 -1
  621. package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +0 -1
  622. package/dist/interface/assets/esm-4Hzzm93H.js +0 -1
  623. package/dist/interface/assets/esm-BrFPi5_4.js +0 -1
  624. package/dist/interface/assets/esm-C7pcdfXf.js +0 -1
  625. package/dist/interface/assets/esm-C8bsO829.js +0 -1
  626. package/dist/interface/assets/esm-CXzdnAMk.js +0 -1
  627. package/dist/interface/assets/esm-CZNGZkPu.js +0 -1
  628. package/dist/interface/assets/esm-D0iI7OVb.js +0 -1
  629. package/dist/interface/assets/esm-DKolm6KU.js +0 -1
  630. package/dist/interface/assets/esm-DTywI9gs.js +0 -1
  631. package/dist/interface/assets/esm-DifXcK9i.js +0 -1
  632. package/dist/interface/assets/esm-Dq5o-Xb4.js +0 -1
  633. package/dist/interface/assets/esm-IbQuUZ5l.js +0 -1
  634. package/dist/interface/assets/esm-Xre_AP5i.js +0 -1
  635. package/dist/interface/assets/esm-zYnXHhpH.js +0 -1
  636. package/dist/interface/assets/main-D74mRIxc.js +0 -3
  637. package/dist/interface/assets/native-CAujTO6L.js +0 -1
  638. package/dist/interface/assets/native-sQ88qazf.js +0 -1
  639. package/dist/interface/assets/plugin-D7K50k_y.js +0 -1
  640. package/dist/interface/assets/sensorIcons-DQVgryYP.js +0 -1
  641. package/dist/interface/assets/types-5rE8Tz0_.js +0 -1
  642. package/dist/interface/assets/ungrouped-D56FGIrg.js +0 -1
  643. package/dist/interface/assets/useBackupRestore-Crfd592q.js +0 -1
  644. package/dist/interface/assets/useKeyboardInset-DXVi1dLG.js +0 -1
  645. package/dist/interface/assets/useUserOptions-BTRBUuE2.js +0 -1
  646. package/dist/interface/assets/vendor-gridstack-anPyIu9V.js +0 -3
  647. package/dist/interface/assets/web-3M-ddn4G.js +0 -1
  648. package/dist/interface/assets/web-BY80VGyU.js +0 -1
  649. package/dist/interface/assets/web-B_tUYyM0.js +0 -1
  650. package/dist/interface/assets/web-BjKL51lK-Bb5NYhpJ.js +0 -1
  651. package/dist/interface/assets/web-Bv-4PJGI.js +0 -1
  652. package/dist/interface/assets/web-C3Pk8qeB.js +0 -1
  653. package/dist/interface/assets/web-CLcvGPH6.js +0 -1
  654. package/dist/interface/assets/web-DO8gTOVJ.js +0 -1
  655. package/dist/interface/assets/web-DR5q_DmI.js +0 -1
  656. package/dist/interface/assets/web-DRHbG4Te.js +0 -1
  657. package/dist/interface/assets/web-DaQ8d8yk.js +0 -1
  658. package/dist/interface/assets/web-EVRW5whF.js +0 -1
  659. package/dist/interface/assets/web-S6Dk3UWN.js +0 -1
  660. package/dist/interface/assets/web-pWIp0wf0.js +0 -1
  661. package/dist/interface/assets/workbox-window.prod.es5-Dz5rcO1z.js +0 -1
  662. package/dist/interface/ha/Faces-C_svyTrr.js +0 -1282
  663. package/dist/interface/ha/SettingsAssistant-C2R4ZetE.js +0 -1857
  664. package/dist/interface/ha/Training-BEzPiXZg.js +0 -1512
@@ -1,1857 +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, rt as g, u as _, ut as v, v as y, x as b, xt as x, y as S } from "./runtime-core.esm-bundler-_TfE0DWz.js";
2
- import { t as C } from "./tooltip-BDrlgLof.js";
3
- import { t as te } from "./message-D6dIy_hz.js";
4
- import { t as w } from "./chevron-down-BNj8w2js.js";
5
- import { t as T } from "./tag-mchuCAPR.js";
6
- import { Dt as ne, On as E, Ot as D, Sr as re, V as O, Zi as k, _t as A, a as j, bi as ie, dt as ae, en as M, jn as oe, kt as se, mn as ce, nn as le, p as ue, pn as de, r as fe, tn as pe, wr as N } from "./api-BP7mlzjP.js";
7
- import { i as me } from "./intercomService-B7HkLs6z.js";
8
- import { K as P } from "./pinia-C6gt7A_Q.js";
9
- import { n as F } from "./vue-i18n-D5EAy78K.js";
10
- import { t as he } from "./button-BouAFgf5.js";
11
- import { t as ge } from "./inputtext-C_ygnPrC.js";
12
- import { t as _e } from "./select-DV7p2EDj.js";
13
- import { t as ve } from "./autocomplete-Cp3u2Ywa.js";
14
- import { i as ye, t as be } from "./CuiDataTable-CN4T8DgP.js";
15
- import { t as xe } from "./inputnumber-DZRwKgXr.js";
16
- import { t as Se } from "./multiselect-BOb4ScAZ.js";
17
- import { t as Ce } from "./textarea-ByXnzJzx.js";
18
- import { t as I } from "./assistant-Cb6ACguQ.js";
19
- import { t as we } from "./content-copy-CHPYjxRC.js";
20
- import { u as Te } from "./cards-BpBP1zVW.js";
21
- import { a as L, c as Ee, d as De, i as Oe, l as R, o as ke, s as Ae, u as z } from "./types-XqA3YJPD.js";
22
- import { t as je } from "./pause-BbFQ0FqK.js";
23
- import { t as Me } from "./restore-BxzmXRET.js";
24
- import { t as Ne } from "./dots-vertical-B0dv1-jL.js";
25
- import { t as Pe } from "./pencil-outline-SN9ingm5.js";
26
- //#region ~icons/mdi/wrench-outline
27
- var Fe = {
28
- viewBox: "0 0 24 24",
29
- width: "1.2em",
30
- height: "1.2em"
31
- };
32
- function B(e, t) {
33
- return n(), m("svg", Fe, [...t[0] ||= [_("path", {
34
- fill: "currentColor",
35
- 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"
36
- }, null, -1)]]);
37
- }
38
- var Ie = o({
39
- name: "mdi-wrench-outline",
40
- render: B
41
- }), V = {
42
- viewBox: "0 0 24 24",
43
- width: "1.2em",
44
- height: "1.2em"
45
- };
46
- function Le(e, t) {
47
- return n(), m("svg", V, [...t[0] ||= [_("path", {
48
- fill: "currentColor",
49
- d: "M11 9.47V11h3.76L13 14.53V13H9.24zM13 1L6 15h5v8l7-14h-5z"
50
- }, null, -1)]]);
51
- }
52
- var Re = o({
53
- name: "mdi-lightning-bolt-outline",
54
- render: Le
55
- }), ze = {
56
- viewBox: "0 0 24 24",
57
- width: "1.2em",
58
- height: "1.2em"
59
- };
60
- function H(e, t) {
61
- return n(), m("svg", ze, [...t[0] ||= [_("path", {
62
- fill: "currentColor",
63
- 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"
64
- }, null, -1)]]);
65
- }
66
- var Be = o({
67
- name: "mdi-star-outline",
68
- render: H
69
- }), U = { class: "flex w-full flex-col gap-6" }, Ve = { class: "flex flex-col field-gap" }, He = {
70
- for: "assistantModelProvider",
71
- class: "cui-label"
72
- }, Ue = {
73
- key: 0,
74
- class: "flex flex-col field-gap"
75
- }, We = {
76
- for: "assistantModelBaseUrl",
77
- class: "cui-label"
78
- }, Ge = {
79
- key: 1,
80
- class: "flex flex-col field-gap"
81
- }, W = {
82
- for: "assistantModelKey",
83
- class: "cui-label"
84
- }, G = { class: "flex flex-col field-gap" }, K = {
85
- for: "assistantModelModel",
86
- class: "cui-label"
87
- }, q = { class: "flex flex-col field-gap" }, Ke = {
88
- for: "assistantModelName",
89
- class: "cui-label"
90
- }, J = { class: "flex items-center gap-4 cui-toggle-switch" }, Y = { class: "flex flex-col field-switch-gap" }, qe = {
91
- for: "assistantModelUsers",
92
- class: "cui-label-switch"
93
- }, Je = {
94
- key: 2,
95
- class: "flex items-center gap-4 cui-toggle-switch"
96
- }, X = { class: "flex flex-col field-switch-gap" }, Ye = {
97
- for: "assistantModelImages",
98
- class: "cui-label-switch"
99
- }, Xe = /* @__PURE__ */ b({
100
- __name: "AssistantModel",
101
- props: {
102
- entry: {},
103
- models: {}
104
- },
105
- setup(t, { expose: i }) {
106
- let a = new I(), o = t, { t: p } = F(), ee = ie(), g = a.listAssistantModelsMutation(), v = x(o.entry?.provider ?? "ollama"), b = x(o.entry?.baseURL ?? ""), C = x(""), w = x(o.entry?.model ?? ""), T = x(o.entry && o.entry.name !== o.entry.model ? o.entry.name : ""), ne = x(o.entry?.sendImages ?? !1), E = x(o.entry?.userAccess !== !1), D = x("new"), re = x([]), O = x([]), k = x(!1), A = d(() => ke.includes(v.value)), j = d(() => v.value === "ollama" || v.value === "openai-compatible"), M = d(() => o.entry?.apiKeySet === !0 && o.entry.provider === v.value), se = d(() => o.models.filter((e) => e._id !== o.entry?._id && e.provider === v.value && e.apiKeySet)), ce = d(() => [{
107
- label: M.value ? p("views.settings.assistant_api_key_stored") : p("views.settings.assistant_api_key_new"),
108
- value: "new"
109
- }, ...se.value.map((e) => ({
110
- label: p("views.settings.assistant_api_key_from", { name: e.name }),
111
- value: e._id
112
- }))]), le = d(() => A.value && D.value === "new" && !C.value && !M.value);
113
- function ue() {
114
- return M.value ? "new" : se.value[0]?._id ?? "new";
115
- }
116
- function de() {
117
- let e = D.value === "new" ? C.value ? { apiKey: C.value } : o.entry && !M.value ? { apiKey: null } : {} : { copyKeyFrom: D.value };
118
- return {
119
- ...o.entry ? {
120
- id: o.entry._id,
121
- retest: !0,
122
- sendImages: ne.value
123
- } : {},
124
- ...e,
125
- name: T.value,
126
- provider: v.value,
127
- baseURL: j.value && b.value ? b.value : null,
128
- model: w.value.trim(),
129
- userAccess: E.value
130
- };
131
- }
132
- function fe() {
133
- b.value = "", w.value = "", re.value = [], O.value = [], D.value = ue();
134
- }
135
- function pe(e) {
136
- let t = e.query.toLowerCase();
137
- O.value = re.value.filter((e) => e.toLowerCase().includes(t));
138
- }
139
- async function N() {
140
- let e = await g.mutateAsync(de());
141
- if (e.error) {
142
- ee.add({
143
- severity: "warn",
144
- detail: p("views.settings.assistant_models_failed", { message: e.error }),
145
- life: 5e3
146
- });
147
- return;
148
- }
149
- re.value = e.models, O.value = e.models;
150
- }
151
- return e(() => {
152
- D.value = ue();
153
- }), i({ onConfirm: async () => !w.value.trim() || le.value ? (k.value = !0, null) : de() }), (e, i) => {
154
- let a = _e, o = te, d = ge, p = ae, ee = ve, x = oe;
155
- return n(), m("div", U, [
156
- _("div", Ve, [
157
- _("label", He, r(e.$t("views.settings.assistant_provider_label")), 1),
158
- S(a, {
159
- modelValue: u(v),
160
- "onUpdate:modelValue": i[0] ||= (e) => l(v) ? v.value = e : null,
161
- "input-id": "assistantModelProvider",
162
- options: u(Ae),
163
- "option-label": "label",
164
- "option-value": "value",
165
- fluid: "",
166
- onChange: fe
167
- }, null, 8, ["modelValue", "options"]),
168
- S(o, {
169
- severity: "secondary",
170
- variant: "simple",
171
- size: "small",
172
- class: "cui-input-hint"
173
- }, {
174
- default: f(() => [y(r(e.$t(`views.settings.assistant_provider_hint_${u(v).replace("-", "_")}`)), 1)]),
175
- _: 1
176
- })
177
- ]),
178
- u(j) ? (n(), m("div", Ue, [_("label", We, r(e.$t("views.settings.assistant_base_url_label")), 1), S(d, {
179
- id: "assistantModelBaseUrl",
180
- modelValue: u(b),
181
- "onUpdate:modelValue": i[1] ||= (e) => l(b) ? b.value = e : null,
182
- modelModifiers: { trim: !0 },
183
- placeholder: u(L)[u(v)],
184
- fluid: "",
185
- autocomplete: "off"
186
- }, null, 8, ["modelValue", "placeholder"])])) : c("", !0),
187
- u(A) || u(v) === "openai-compatible" ? (n(), m("div", Ge, [
188
- _("label", W, r(e.$t("views.settings.assistant_api_key_label")), 1),
189
- u(se).length ? (n(), s(a, {
190
- key: 0,
191
- modelValue: u(D),
192
- "onUpdate:modelValue": i[2] ||= (e) => l(D) ? D.value = e : null,
193
- options: u(ce),
194
- "option-label": "label",
195
- "option-value": "value",
196
- fluid: ""
197
- }, null, 8, ["modelValue", "options"])) : c("", !0),
198
- u(D) === u("new") ? (n(), m(h, { key: 1 }, [S(p, {
199
- modelValue: u(C),
200
- "onUpdate:modelValue": i[3] ||= (e) => l(C) ? C.value = e : null,
201
- "input-id": "assistantModelKey",
202
- feedback: !1,
203
- "toggle-mask": "",
204
- fluid: "",
205
- autocomplete: "new-password",
206
- invalid: u(k) && u(le),
207
- placeholder: u(M) ? "••••••••" : ""
208
- }, null, 8, [
209
- "modelValue",
210
- "invalid",
211
- "placeholder"
212
- ]), u(M) ? (n(), s(o, {
213
- key: 0,
214
- severity: "secondary",
215
- variant: "simple",
216
- size: "small",
217
- class: "cui-input-hint"
218
- }, {
219
- default: f(() => [y(r(e.$t("views.settings.assistant_api_key_keep_hint")), 1)]),
220
- _: 1
221
- })) : u(A) ? c("", !0) : (n(), s(o, {
222
- key: 1,
223
- severity: "secondary",
224
- variant: "simple",
225
- size: "small",
226
- class: "cui-input-hint"
227
- }, {
228
- default: f(() => [y(r(e.$t("views.settings.assistant_api_key_optional")), 1)]),
229
- _: 1
230
- }))], 64)) : c("", !0)
231
- ])) : c("", !0),
232
- _("div", G, [
233
- _("label", K, r(e.$t("views.settings.assistant_model_label")), 1),
234
- S(ee, {
235
- modelValue: u(w),
236
- "onUpdate:modelValue": i[4] ||= (e) => l(w) ? w.value = e : null,
237
- "input-id": "assistantModelModel",
238
- suggestions: u(O),
239
- loading: u(g).isPending.value,
240
- invalid: u(k) && !u(w).trim(),
241
- dropdown: "",
242
- fluid: "",
243
- placeholder: e.$t("views.settings.assistant_model_placeholder"),
244
- onComplete: pe,
245
- onDropdownClick: N
246
- }, null, 8, [
247
- "modelValue",
248
- "suggestions",
249
- "loading",
250
- "invalid",
251
- "placeholder"
252
- ]),
253
- S(o, {
254
- severity: "secondary",
255
- variant: "simple",
256
- size: "small",
257
- class: "cui-input-hint"
258
- }, {
259
- default: f(() => [y(r(e.$t("views.settings.assistant_model_info")), 1)]),
260
- _: 1
261
- })
262
- ]),
263
- _("div", q, [_("label", Ke, r(e.$t("views.settings.assistant_model_name_label")), 1), S(d, {
264
- id: "assistantModelName",
265
- modelValue: u(T),
266
- "onUpdate:modelValue": i[5] ||= (e) => l(T) ? T.value = e : null,
267
- modelModifiers: { trim: !0 },
268
- placeholder: u(w).trim() || e.$t("views.settings.assistant_model_name_placeholder"),
269
- maxlength: "40",
270
- fluid: ""
271
- }, null, 8, ["modelValue", "placeholder"])]),
272
- _("div", J, [_("div", Y, [_("label", qe, r(e.$t("views.settings.assistant_model_users")), 1), S(o, {
273
- severity: "secondary",
274
- variant: "simple",
275
- size: "small",
276
- class: "cui-input-switch-hint"
277
- }, {
278
- default: f(() => [y(r(e.$t("views.settings.assistant_model_users_info")), 1)]),
279
- _: 1
280
- })]), S(x, {
281
- modelValue: u(E),
282
- "onUpdate:modelValue": i[6] ||= (e) => l(E) ? E.value = e : null,
283
- "input-id": "assistantModelUsers",
284
- class: "ml-auto shrink-0"
285
- }, null, 8, ["modelValue"])]),
286
- t.entry ? (n(), m("div", Je, [_("div", X, [_("label", Ye, r(e.$t("views.settings.assistant_send_images")), 1), S(o, {
287
- severity: "secondary",
288
- variant: "simple",
289
- size: "small",
290
- class: "cui-input-switch-hint"
291
- }, {
292
- default: f(() => [y(r(t.entry.capabilities?.vision === !1 ? e.$t("views.settings.assistant_send_images_no_vision") : e.$t("views.settings.assistant_send_images_info")), 1)]),
293
- _: 1
294
- })]), S(x, {
295
- modelValue: u(ne),
296
- "onUpdate:modelValue": i[7] ||= (e) => l(ne) ? ne.value = e : null,
297
- "input-id": "assistantModelImages",
298
- class: "ml-auto shrink-0"
299
- }, null, 8, ["modelValue"])])) : c("", !0)
300
- ]);
301
- };
302
- }
303
- }), Ze = { class: "w-full h-full" }, Qe = {
304
- key: 0,
305
- class: "w-full h-full flex items-center justify-center"
306
- }, $e = {
307
- key: 1,
308
- class: "flex flex-col w-full gap-6"
309
- }, et = { class: "card-title" }, tt = { class: "flex items-center gap-4" }, nt = { class: "flex flex-col field-switch-gap min-w-0" }, rt = { class: "text-sm font-bold text-color" }, it = { class: "card-title" }, at = { class: "flex flex-col gap-6" }, ot = { class: "flex items-center gap-4 cui-toggle-switch" }, st = { class: "flex flex-col field-switch-gap" }, ct = {
310
- for: "enabled",
311
- class: "cui-label-switch"
312
- }, lt = {
313
- key: 0,
314
- class: "flex flex-col divide-y divide-(--border-color)"
315
- }, ut = { class: "flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1" }, dt = { class: "max-w-full basis-full truncate font-medium text-color md:basis-auto" }, ft = { class: "order-3 mt-1 flex flex-wrap items-center gap-1.5 md:order-2 md:mt-0" }, pt = { class: "order-2 basis-full truncate text-muted md:order-3" }, mt = {
316
- key: 0,
317
- class: "order-4 basis-full text-xs text-danger line-clamp-2"
318
- }, ht = { class: "hidden shrink-0 items-center gap-1 md:flex" }, gt = { class: "shrink-0 md:hidden" }, _t = {
319
- key: 1,
320
- class: "text-sm text-muted"
321
- }, vt = { class: "flex" }, yt = { class: "card-title" }, bt = { class: "flex flex-col gap-6" }, xt = { class: "flex min-w-0 items-center gap-2" }, St = ["for"], Ct = {
322
- key: 1,
323
- class: "text-sm text-muted"
324
- }, wt = { class: "flex" }, Tt = { class: "card-title" }, Et = { class: "flex flex-col gap-6" }, Dt = { class: "flex items-center gap-4 cui-toggle-switch" }, Ot = { class: "flex flex-col field-switch-gap" }, kt = {
325
- for: "memoryEnabled",
326
- class: "cui-label-switch"
327
- }, At = { class: "flex items-center gap-4 cui-toggle-switch" }, jt = { class: "flex flex-col field-switch-gap" }, Mt = {
328
- for: "terminalEnabled",
329
- class: "cui-label-switch"
330
- }, Nt = { class: "flex flex-col field-gap" }, Pt = {
331
- for: "language",
332
- class: "cui-label"
333
- }, Ft = { class: "flex flex-col field-gap" }, It = {
334
- for: "reasoning",
335
- class: "cui-label"
336
- }, Lt = { class: "flex flex-col md:flex-row gap-6" }, Rt = { class: "flex flex-col field-gap flex-1" }, zt = {
337
- for: "maxIterations",
338
- class: "cui-label"
339
- }, Bt = { class: "flex flex-col field-gap flex-1" }, Vt = {
340
- for: "maxToolCalls",
341
- class: "cui-label"
342
- }, Ht = { class: "flex flex-col field-gap" }, Ut = {
343
- for: "contextTokens",
344
- class: "cui-label"
345
- }, Wt = { class: "flex flex-col md:flex-row gap-4" }, Gt = { class: "flex flex-col field-gap flex-1" }, Kt = {
346
- for: "historyThreads",
347
- class: "cui-label"
348
- }, qt = { class: "flex flex-col field-gap flex-1" }, Jt = {
349
- for: "historyImages",
350
- class: "cui-label"
351
- }, Yt = { class: "flex flex-col field-gap" }, Xt = {
352
- for: "systemPromptExtra",
353
- class: "cui-label"
354
- }, Zt = { class: "flex items-center gap-2" }, Qt = { class: "card-title" }, $t = { class: "flex flex-col gap-6" }, en = { class: "flex flex-col gap-4" }, tn = { class: "flex items-center justify-between gap-4" }, nn = { class: "flex flex-col" }, rn = { class: "text-sm font-medium text-color" }, an = { class: "text-xs text-muted" }, on = { class: "flex items-center justify-between gap-4" }, sn = { class: "flex flex-col" }, cn = { class: "text-sm font-medium text-color" }, ln = { class: "text-xs text-muted" }, un = {
355
- key: 0,
356
- class: "flex flex-col gap-6"
357
- }, dn = { class: "flex flex-col field-gap" }, fn = {
358
- for: "mcpEndpoint",
359
- class: "cui-label"
360
- }, pn = { class: "flex flex-col field-gap" }, mn = {
361
- for: "mcpClient",
362
- class: "cui-label"
363
- }, hn = { class: "flex" }, gn = { class: "card-title" }, _n = { class: "flex flex-col gap-6" }, vn = ["aria-expanded", "onClick"], yn = { class: "flex min-w-0 flex-1 flex-col gap-0.5" }, bn = { class: "truncate text-sm font-medium text-color" }, xn = ["inert"], Sn = { class: "flex flex-col gap-4 px-4 pb-4" }, Cn = { class: "flex items-center gap-4 cui-toggle-switch" }, wn = { class: "flex flex-col field-switch-gap" }, Tn = ["for"], En = { class: "flex flex-col md:flex-row gap-4" }, Dn = { class: "flex flex-col field-gap md:w-56" }, On = ["for"], kn = { class: "flex flex-col field-gap flex-1" }, An = ["for"], jn = { class: "flex flex-col field-gap" }, Mn = ["for"], Nn = { class: "flex items-center gap-4 cui-toggle-switch" }, Pn = { class: "flex flex-col field-switch-gap" }, Fn = ["for"], In = { class: "flex" }, Ln = { class: "flex items-center gap-2" }, Rn = { class: "card-title" }, zn = { class: "flex flex-col gap-6" }, Bn = {
364
- key: 0,
365
- class: "flex flex-col divide-y divide-(--border-color)"
366
- }, Vn = { class: "max-w-full basis-full truncate font-medium text-color md:basis-auto" }, Hn = { class: "flex flex-wrap items-center gap-1.5" }, Un = { class: "basis-full text-muted line-clamp-2" }, Wn = { class: "basis-full text-xs text-muted" }, Gn = { key: 0 }, Kn = { key: 1 }, qn = {
367
- key: 0,
368
- class: "basis-full text-xs text-danger line-clamp-2"
369
- }, Jn = { class: "shrink-0" }, Yn = { class: "hidden items-center gap-1 md:flex" }, Xn = { class: "md:hidden" }, Zn = { class: "flex flex-col md:flex-row gap-6" }, Qn = { class: "flex flex-col field-gap flex-1" }, $n = {
370
- for: "scheduleTitle",
371
- class: "cui-label"
372
- }, er = { class: "flex flex-col field-gap w-full md:w-52 shrink-0" }, tr = {
373
- for: "scheduleDeliver",
374
- class: "cui-label"
375
- }, nr = { class: "flex flex-col field-gap" }, rr = {
376
- for: "schedulePrompt",
377
- class: "cui-label"
378
- }, ir = {
379
- key: 0,
380
- class: "flex flex-col field-gap"
381
- }, ar = {
382
- for: "scheduleProfile",
383
- class: "cui-label"
384
- }, or = { class: "flex flex-col md:flex-row gap-6" }, sr = { class: "flex flex-col field-gap flex-1" }, cr = {
385
- for: "schedulePreset",
386
- class: "cui-label"
387
- }, lr = {
388
- key: 0,
389
- class: "flex flex-col field-gap w-full md:w-40 shrink-0"
390
- }, ur = {
391
- for: "scheduleTime",
392
- class: "cui-label"
393
- }, dr = {
394
- key: 1,
395
- class: "flex flex-col field-gap flex-1"
396
- }, fr = {
397
- for: "scheduleCron",
398
- class: "cui-label"
399
- }, pr = { class: "flex" }, mr = { class: "card-title" }, hr = { class: "flex flex-col gap-3" }, gr = { class: "text-sm text-muted" }, _r = { class: "truncate" }, vr = { class: "truncate" }, yr = { class: "card-title" }, br = {
400
- key: 0,
401
- class: "text-sm text-muted"
402
- }, xr = {
403
- key: 1,
404
- class: "flex flex-col gap-6"
405
- }, Sr = {
406
- key: 0,
407
- class: "mb-4 flex flex-col field-gap"
408
- }, Cr = ["for"], wr = { class: "flex max-h-96 flex-col divide-y divide-(--border-color) overflow-y-auto pr-2" }, Tr = { class: "min-w-0 flex-1" }, Er = { class: "flex flex-wrap items-center gap-2" }, Dr = { class: "font-medium text-color" }, Or = { class: "text-muted" }, kr = {
409
- key: 0,
410
- class: "flex"
411
- }, Z = "none", Ar = /*#__PURE__*/ N(/* @__PURE__ */ b({
412
- __name: "SettingsAssistant",
413
- setup(e) {
414
- let o = {
415
- icon: O,
416
- iconProps: { class: "text-red-500" },
417
- labelProps: { class: "text-red-500" },
418
- buttonProps: { severity: "danger" }
419
- }, b = {
420
- memoryEnabled: !0,
421
- terminalEnabled: !1,
422
- language: null,
423
- reasoning: "default",
424
- maxIterations: 8,
425
- maxToolCalls: 25,
426
- contextTokens: 48e3,
427
- historyThreads: 50,
428
- historyImages: 24
429
- }, N = { columnHeaderContent: { class: "justify-end" } }, ve = {
430
- bodyRow: { class: "text-sm text-secondary" },
431
- column: { columnTitle: { class: "text-sm" } }
432
- }, L = new I(), ke = ie(), Fe = A(), { t: B, locale: V } = F(), { data: Le, isLoading: ze } = L.usageAllQuery(), { data: H } = L.getAssistantInfoQuery(), U = L.patchAssistantInfoMutation(), { data: Ve } = L.listProfilesQuery(), { data: He } = L.listSchedulesQuery(), Ue = L.createScheduleMutation(), We = L.patchScheduleMutation(), Ge = L.deleteScheduleMutation(), W = L.runScheduleMutation(), G = x(null), K = x({
433
- title: "",
434
- prompt: "",
435
- preset: "daily",
436
- time: "20:00",
437
- cron: "",
438
- deliver: "push",
439
- profileId: null
440
- }), q = x({}), Ke = x([]), J = x([]), Y = x("claude-code"), qe = x("core"), Je = g("rowMenuRef"), X = d(() => H.value?.settings.models ?? []), Ye = d(() => H.value ? R(H.value.settings) : void 0), Ar = d(() => [{
441
- label: B("views.settings.assistant_plugin_no_access"),
442
- value: Z
443
- }, ...X.value.map((e) => ({
444
- label: e.name,
445
- value: e._id
446
- }))]), jr = d(() => {
447
- let e = /* @__PURE__ */ new Map();
448
- for (let t of H.value?.tools ?? []) {
449
- 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) ?? {
450
- key: n,
451
- label: r,
452
- serverId: t.source.kind === "external" ? t.source.serverId : void 0,
453
- tools: []
454
- };
455
- i.tools.push(t), e.set(n, i);
456
- }
457
- return Array.from(e.values());
458
- }), Mr = d(() => Le.value?.map((e) => ({
459
- ...e,
460
- key: `${e.userId}-${e.month}-${e.provider}-${e.model}`
461
- }))), Q = d(() => H.value?.status), Nr = d(() => {
462
- let e = new Intl.DisplayNames([V.value], { type: "language" }), t = P.map((t) => ({
463
- label: e.of(t) ?? t,
464
- value: t
465
- })).sort((e, t) => e.label.localeCompare(t.label, V.value));
466
- return [{
467
- label: B("views.settings.assistant_language_auto"),
468
- value: null
469
- }, ...t];
470
- }), Pr = d(() => [
471
- "default",
472
- "off",
473
- "low",
474
- "high"
475
- ].map((e) => ({
476
- label: B(`views.settings.assistant_reasoning_${e}`),
477
- value: e
478
- }))), Fr = d(() => new URL(`${k.defaults.baseURL ?? "/api"}/assistant/mcp`.replace(/\/{2,}/g, "/"), window.location.origin).toString()), Ir = d(() => [
479
- {
480
- label: "Claude Code",
481
- value: "claude-code"
482
- },
483
- {
484
- label: "Cursor, Windsurf, VS Code",
485
- value: "cursor"
486
- },
487
- {
488
- label: "Claude Desktop",
489
- value: "claude-desktop"
490
- }
491
- ]), Lr = d(() => {
492
- let e = Fr.value;
493
- return Y.value === "claude-code" ? `claude mcp add --transport http camera-ui ${e} --header "Authorization: Bearer <api token>"` : Y.value === "cursor" ? JSON.stringify({ mcpServers: { "camera-ui": {
494
- url: e,
495
- headers: { Authorization: "Bearer <api token>" }
496
- } } }, null, 2) : JSON.stringify({ mcpServers: { "camera-ui": {
497
- command: "npx",
498
- args: [
499
- "-y",
500
- "mcp-remote",
501
- e,
502
- "--header",
503
- "Authorization: Bearer <api token>"
504
- ]
505
- } } }, null, 2);
506
- }), Rr = d(() => [
507
- "push",
508
- "thread",
509
- "both"
510
- ].map((e) => ({
511
- label: B(`views.settings.assistant_schedule_deliver_${e}`),
512
- value: e
513
- }))), zr = d(() => [
514
- "daily",
515
- "weekdays",
516
- "weekends",
517
- "weekly",
518
- "hourly",
519
- "custom"
520
- ].map((e) => ({
521
- label: B(`views.settings.assistant_schedule_preset_${e}`),
522
- value: e
523
- }))), Br = d(() => {
524
- let { preset: e, time: t, cron: n } = K.value, [r, i] = t.split(":").map((e) => Number.parseInt(e, 10));
525
- 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" : "*"}`;
526
- }), Vr = d(() => {
527
- switch (Q.value?.state) {
528
- case "ready": return "success";
529
- case "unconfigured": return "warn";
530
- default: return "secondary";
531
- }
532
- }), Hr = d(() => B(`views.settings.assistant_state_${Q.value?.state ?? "disabled"}`)), Ur = d(() => Q.value ? Q.value.state === "ready" ? B("views.settings.assistant_status_ready", { model: Q.value.model }) : B("views.settings.assistant_status_info") : "");
533
- function Wr(e) {
534
- let t = /^(\d+) (\d+) \* \* (\*|1-5|0,6|0)$/.exec(e);
535
- if (!t) return e;
536
- 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";
537
- return `${B(`views.settings.assistant_schedule_preset_${r}`)} ${n}`;
538
- }
539
- function Gr(e) {
540
- return e === "push" ? "info" : e === "thread" ? "secondary" : "success";
541
- }
542
- function Kr(e) {
543
- return new Date(e).toLocaleString(V.value, {
544
- day: "2-digit",
545
- month: "2-digit",
546
- hour: "2-digit",
547
- minute: "2-digit"
548
- });
549
- }
550
- async function qr() {
551
- await Ue.mutateAsync({
552
- title: K.value.title,
553
- prompt: K.value.prompt,
554
- cron: Br.value,
555
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
556
- language: V.value,
557
- deliver: K.value.deliver,
558
- profileId: K.value.profileId,
559
- enabled: !0
560
- }), K.value = {
561
- ...K.value,
562
- title: "",
563
- prompt: "",
564
- cron: "",
565
- profileId: null
566
- };
567
- }
568
- function Jr(e) {
569
- return e.replace(/^\[[^\]]+\]\s*/, "");
570
- }
571
- function Yr(e) {
572
- if (e.source.kind !== "external") return e.approval;
573
- let { serverId: t, toolName: n } = e.source;
574
- return G.value?.mcpServers.find((e) => e.id === t)?.toolApproval[n] ?? e.approval;
575
- }
576
- function Xr(e) {
577
- return e.tools.flatMap((e) => e.source.kind === "external" ? [{
578
- label: Oe(e.name),
579
- value: e.source.toolName
580
- }] : []);
581
- }
582
- function Zr(e) {
583
- return e.tools.flatMap((e) => e.source.kind === "external" && !Yr(e) ? [e.source.toolName] : []);
584
- }
585
- function Qr(e, t) {
586
- let n = G.value?.mcpServers.find((t) => t.id === e.serverId);
587
- n && (n.toolApproval = Object.fromEntries(Xr(e).map((e) => [e.value, !t.includes(e.value)])));
588
- }
589
- function $r(e) {
590
- return e < 1e3 ? String(e) : e < 1e6 ? `${(e / 1e3).toFixed(+(e < 1e4))}k` : `${(e / 1e6).toFixed(2)}M`;
591
- }
592
- function ei(e) {
593
- return H.value?.external.find((t) => t.id === e);
594
- }
595
- function ti(e) {
596
- let t = ei(e);
597
- return t ? t.state === "connected" ? B("views.settings.assistant_external_state_connected", { n: t.toolCount }) : t.state === "error" ? B("views.settings.assistant_external_state_error", { message: t.error ?? "" }) : B(`views.settings.assistant_external_state_${t.state}`) : "";
598
- }
599
- function ni(e) {
600
- let t = ei(e)?.state;
601
- return t === "connected" ? "text-success" : t === "error" ? "text-danger" : "text-muted";
602
- }
603
- function ri() {
604
- if (!G.value) return;
605
- let e = ue();
606
- G.value.mcpServers.push({
607
- id: e,
608
- name: "",
609
- url: "",
610
- enabled: !0,
611
- insecure: !1,
612
- tokenSet: !1,
613
- toolApproval: {}
614
- }), J.value.push(e);
615
- }
616
- function ii(e) {
617
- J.value = J.value.includes(e) ? J.value.filter((t) => t !== e) : [...J.value, e];
618
- }
619
- function ai(e) {
620
- G.value && (G.value.mcpServers = G.value.mcpServers.filter((t) => t.id !== e), J.value = J.value.filter((t) => t !== e), delete q.value[e]);
621
- }
622
- function oi() {
623
- let e = j(G.value);
624
- return {
625
- language: e.language,
626
- maxIterations: e.maxIterations,
627
- maxToolCalls: e.maxToolCalls,
628
- contextTokens: e.contextTokens,
629
- historyThreads: e.historyThreads,
630
- historyImages: e.historyImages,
631
- terminalEnabled: e.terminalEnabled,
632
- reasoning: e.reasoning,
633
- systemPromptExtra: e.systemPromptExtra,
634
- mcpEnabled: e.mcpEnabled,
635
- mcpWrites: e.mcpWrites,
636
- memoryEnabled: e.memoryEnabled,
637
- plugins: e.plugins.map(({ pluginId: e, modelId: t }) => ({
638
- pluginId: e,
639
- modelId: t
640
- })),
641
- mcpServers: e.mcpServers.filter((e) => e.name.trim() || e.url.trim()).map((e) => ({
642
- id: e.id,
643
- name: e.name.trim(),
644
- url: e.url.trim(),
645
- enabled: e.enabled,
646
- insecure: e.insecure,
647
- toolApproval: e.toolApproval,
648
- ...q.value[e.id] ? { token: q.value[e.id] } : {}
649
- }))
650
- };
651
- }
652
- function si() {
653
- G.value && Object.assign(G.value, b);
654
- }
655
- async function ci() {
656
- G.value && (await U.mutateAsync(oi()), q.value = {});
657
- }
658
- function li(e) {
659
- return Ae.find((t) => t.value === e)?.label ?? e;
660
- }
661
- async function ui(e) {
662
- return U.mutateAsync({ models: e });
663
- }
664
- function di(e, t) {
665
- Ke.value = [
666
- {
667
- label: B("views.settings.assistant_model_make_default"),
668
- icon: Be,
669
- hide: t._id === Ye.value?._id,
670
- disabled: U.isPending.value,
671
- onClick: () => _i(t)
672
- },
673
- {
674
- label: B("views.settings.assistant_model_edit"),
675
- icon: Pe,
676
- onClick: () => mi(t)
677
- },
678
- {
679
- ...o,
680
- label: B("views.settings.assistant_model_delete"),
681
- onClick: () => gi(t)
682
- }
683
- ], Je.value?.toggleMenu(e);
684
- }
685
- function fi(e) {
686
- We.mutate({
687
- scheduleId: e._id,
688
- patch: { enabled: !e.enabled }
689
- });
690
- }
691
- function pi(e, t) {
692
- Ke.value = [
693
- {
694
- label: B("views.settings.assistant_schedule_run"),
695
- icon: Re,
696
- onClick: () => W.mutate(t._id)
697
- },
698
- t.enabled ? {
699
- label: B("views.settings.assistant_schedule_pause"),
700
- icon: je,
701
- onClick: () => fi(t)
702
- } : {
703
- label: B("views.settings.assistant_schedule_resume"),
704
- icon: De,
705
- onClick: () => fi(t)
706
- },
707
- {
708
- ...o,
709
- label: B("views.settings.assistant_schedule_delete"),
710
- onClick: () => Ge.mutate(t._id)
711
- }
712
- ], Je.value?.toggleMenu(e);
713
- }
714
- function mi(e) {
715
- let t = new Set(X.value.map((e) => e._id));
716
- Fe.openComponentDialog(Xe, {
717
- data: {
718
- title: B(e ? "views.settings.assistant_model_edit" : "views.settings.assistant_model_add"),
719
- confirmText: B("components.form.button.save"),
720
- awaitConfirm: !0,
721
- contentProps: {
722
- entry: e ? i(e) : void 0,
723
- models: i(X.value)
724
- }
725
- },
726
- onConfirm: async (n) => {
727
- hi((await ui(e ? X.value.map((t) => t._id === e._id ? n : z(t)) : [...X.value.map(z), n])).settings.models.find((n) => e ? n._id === e._id : !t.has(n._id)));
728
- }
729
- });
730
- }
731
- function hi(e) {
732
- let t = e?.capabilities;
733
- if (!t) return;
734
- let n = t.error ? B("views.settings.assistant_test_failed", { message: t.error }) : t.toolCalling ? t.vision === !1 ? B("views.settings.assistant_test_vision_missing") : "" : B("views.settings.assistant_test_tools_missing");
735
- n && ke.add({
736
- severity: t.error ? "error" : "warn",
737
- detail: n,
738
- life: 8e3
739
- });
740
- }
741
- function gi(e) {
742
- Fe.openTextDialog({
743
- data: {
744
- title: B("views.settings.assistant_model_delete"),
745
- contentText: B("views.settings.assistant_model_delete_confirm", { name: e.name }),
746
- confirmText: B("views.settings.assistant_model_delete"),
747
- confirmButtonProps: { severity: "danger" }
748
- },
749
- onConfirm: async () => {
750
- await ui(X.value.filter((t) => t._id !== e._id).map(z));
751
- }
752
- });
753
- }
754
- async function _i(e) {
755
- await U.mutateAsync({ defaultModelId: e._id });
756
- }
757
- function vi(e) {
758
- return G.value?.plugins.find((t) => t.pluginId === e)?.modelId ?? Z;
759
- }
760
- function yi(e) {
761
- return X.value.find((t) => t._id === vi(e));
762
- }
763
- function bi(e, t) {
764
- if (!G.value) return;
765
- let n = G.value.plugins.filter((t) => t.pluginId !== e);
766
- G.value.plugins = t === Z ? n : [...n, {
767
- pluginId: e,
768
- modelId: t
769
- }];
770
- }
771
- function xi(e) {
772
- return X.value.find((t) => t.provider === e.provider && t.model === e.model)?.name ?? e.model;
773
- }
774
- function Si(e) {
775
- return Ve.value?.find((t) => t._id === e)?.name;
776
- }
777
- return p(H, (e) => {
778
- e && !G.value && (G.value = j(e.settings));
779
- }, { immediate: !0 }), (e, i) => {
780
- let o = re, d = te, p = T, g = me, b = oe, x = Be, k = he, A = Pe, j = O, ie = Ne, ue = Te, P = _e, F = xe, I = Ce, L = Me, R = ge, ke = ne, Ae = D, z = se, Fe = ee("RouterLink"), B = w, V = ae, Le = Re, We = je, Xe = De, Z = ye, Q = be, ei = M, oi = pe, ui = Se, hi = Ie, Ci = le, wi = de, Ti = ce, $ = C;
781
- return n(), m("div", Ze, [u(G) ? (n(), m("div", $e, [
782
- _("div", null, [_("span", et, r(e.$t("views.settings.status")), 1), S(g, { class: "cui-card" }, {
783
- content: f(() => [_("div", tt, [_("div", nt, [_("span", rt, r(e.$t("views.settings.assistant_title")), 1), S(d, {
784
- severity: "secondary",
785
- variant: "simple",
786
- size: "small",
787
- class: "cui-input-switch-hint truncate"
788
- }, {
789
- default: f(() => [y(r(u(Ur)), 1)]),
790
- _: 1
791
- })]), S(p, {
792
- class: "ml-auto shrink-0",
793
- severity: u(Vr),
794
- value: u(Hr)
795
- }, null, 8, ["severity", "value"])])]),
796
- _: 1
797
- })]),
798
- _("div", null, [_("span", it, r(e.$t("views.settings.assistant_model")), 1), S(g, { class: "cui-card" }, {
799
- content: f(() => [_("div", at, [
800
- _("div", ot, [_("div", st, [_("label", ct, r(e.$t("components.form.label.enabled")), 1), S(d, {
801
- severity: "secondary",
802
- variant: "simple",
803
- size: "small",
804
- class: "cui-input-switch-hint"
805
- }, {
806
- default: f(() => [y(r(e.$t("views.settings.assistant_enabled_info")), 1)]),
807
- _: 1
808
- })]), S(b, {
809
- "model-value": u(H)?.settings.enabled ?? !1,
810
- "input-id": "enabled",
811
- disabled: u(U).isPending.value,
812
- class: "ml-auto shrink-0",
813
- "onUpdate:modelValue": i[0] ||= (e) => u(U).mutate({ enabled: e })
814
- }, null, 8, ["model-value", "disabled"])]),
815
- S(d, {
816
- severity: "secondary",
817
- variant: "simple",
818
- size: "small",
819
- class: "cui-input-hint"
820
- }, {
821
- default: f(() => [y(r(e.$t("views.settings.assistant_models_info")), 1)]),
822
- _: 1
823
- }),
824
- u(X).length ? (n(), m("div", lt, [(n(!0), m(h, null, t(u(X), (i) => (n(), m("div", {
825
- key: i._id,
826
- class: "flex items-start gap-3 py-3 text-sm"
827
- }, [
828
- _("div", ut, [
829
- _("span", dt, r(i.name), 1),
830
- _("div", ft, [
831
- i._id === u(Ye)?._id ? (n(), s(p, {
832
- key: 0,
833
- severity: "info",
834
- value: e.$t("views.settings.assistant_model_default"),
835
- class: "text-[10px]"
836
- }, null, 8, ["value"])) : c("", !0),
837
- i.userAccess === !1 ? (n(), s(p, {
838
- key: 1,
839
- severity: "secondary",
840
- value: e.$t("views.settings.assistant_model_admins_only"),
841
- class: "text-[10px]"
842
- }, null, 8, ["value"])) : c("", !0),
843
- (n(!0), m(h, null, t(u(Ee)(i), (t) => (n(), s(p, {
844
- key: t.key,
845
- severity: t.severity,
846
- value: e.$t(`views.settings.assistant_capability_${t.key}`),
847
- class: "text-[10px]"
848
- }, null, 8, ["severity", "value"]))), 128))
849
- ]),
850
- _("div", pt, r(li(i.provider)) + " · " + r(i.model), 1),
851
- i.capabilities?.error ? (n(), m("div", mt, r(i.capabilities.error), 1)) : c("", !0)
852
- ]),
853
- _("div", ht, [
854
- i._id === u(Ye)?._id ? c("", !0) : v((n(), s(k, {
855
- key: 0,
856
- type: "button",
857
- severity: "secondary",
858
- text: "",
859
- rounded: "",
860
- class: "cui-icon-md",
861
- disabled: u(U).isPending.value,
862
- onClick: (e) => _i(i)
863
- }, {
864
- icon: f(() => [S(x, {
865
- width: "100%",
866
- height: "100%"
867
- })]),
868
- _: 1
869
- }, 8, ["disabled", "onClick"])), [[
870
- $,
871
- { value: e.$t("views.settings.assistant_model_make_default") },
872
- void 0,
873
- { top: !0 }
874
- ]]),
875
- v((n(), s(k, {
876
- type: "button",
877
- severity: "secondary",
878
- text: "",
879
- rounded: "",
880
- class: "cui-icon-md",
881
- onClick: (e) => mi(i)
882
- }, {
883
- icon: f(() => [S(A, {
884
- width: "100%",
885
- height: "100%"
886
- })]),
887
- _: 1
888
- }, 8, ["onClick"])), [[
889
- $,
890
- { value: e.$t("views.settings.assistant_model_edit") },
891
- void 0,
892
- { top: !0 }
893
- ]]),
894
- v((n(), s(k, {
895
- type: "button",
896
- severity: "danger",
897
- text: "",
898
- rounded: "",
899
- class: "cui-icon-md",
900
- onClick: (e) => gi(i)
901
- }, {
902
- icon: f(() => [S(j, {
903
- width: "100%",
904
- height: "100%"
905
- })]),
906
- _: 1
907
- }, 8, ["onClick"])), [[
908
- $,
909
- { value: e.$t("views.settings.assistant_model_delete") },
910
- void 0,
911
- { top: !0 }
912
- ]])
913
- ]),
914
- _("div", gt, [S(k, {
915
- type: "button",
916
- severity: "secondary",
917
- text: "",
918
- rounded: "",
919
- class: "cui-icon-md",
920
- onClick: (e) => di(e, i)
921
- }, {
922
- icon: f(() => [S(ie, {
923
- width: "100%",
924
- height: "100%"
925
- })]),
926
- _: 1
927
- }, 8, ["onClick"])])
928
- ]))), 128))])) : (n(), m("div", _t, r(e.$t("views.settings.assistant_models_empty")), 1)),
929
- _("div", vt, [S(k, {
930
- type: "button",
931
- severity: "secondary",
932
- outlined: "",
933
- class: "cui-button-medium ml-auto",
934
- label: e.$t("views.settings.assistant_model_add"),
935
- disabled: u(X).length >= 20,
936
- onClick: i[1] ||= (e) => mi()
937
- }, {
938
- icon: f(() => [S(ue, { class: "w-4 h-4" })]),
939
- _: 1
940
- }, 8, ["label", "disabled"])])
941
- ])]),
942
- _: 1
943
- })]),
944
- _("div", null, [_("span", yt, r(e.$t("views.settings.assistant_plugins")), 1), S(g, { class: "cui-card" }, {
945
- content: f(() => [_("div", bt, [
946
- S(d, {
947
- severity: "secondary",
948
- variant: "simple",
949
- size: "small",
950
- class: "cui-input-hint"
951
- }, {
952
- default: f(() => [y(r(e.$t("views.settings.assistant_plugins_info")), 1)]),
953
- _: 1
954
- }),
955
- u(H)?.plugins.length ? (n(!0), m(h, { key: 0 }, t(u(H).plugins, (t) => (n(), m("div", {
956
- key: t.id,
957
- class: "flex flex-col field-gap"
958
- }, [_("div", xt, [_("label", {
959
- for: `plugin-${t.id}`,
960
- class: "cui-label truncate"
961
- }, r(t.name), 9, St), yi(t.id)?.capabilities?.vision === !1 ? (n(), s(p, {
962
- key: 0,
963
- severity: "warn",
964
- value: e.$t("views.settings.assistant_capability_no_vision"),
965
- class: "shrink-0 text-[10px]"
966
- }, null, 8, ["value"])) : c("", !0)]), S(P, {
967
- "model-value": vi(t.id),
968
- "input-id": `plugin-${t.id}`,
969
- options: u(Ar),
970
- "option-label": "label",
971
- "option-value": "value",
972
- fluid: "",
973
- "onUpdate:modelValue": (e) => bi(t.id, e)
974
- }, null, 8, [
975
- "model-value",
976
- "input-id",
977
- "options",
978
- "onUpdate:modelValue"
979
- ])]))), 128)) : (n(), m("div", Ct, r(e.$t("views.settings.assistant_plugins_empty")), 1)),
980
- _("div", wt, [S(k, {
981
- type: "button",
982
- loading: u(U).isPending.value,
983
- class: "cui-button-medium ml-auto",
984
- label: e.$t("components.form.button.save"),
985
- onClick: ci
986
- }, null, 8, ["loading", "label"])])
987
- ])]),
988
- _: 1
989
- })]),
990
- _("div", null, [_("span", Tt, r(e.$t("views.settings.assistant_behavior")), 1), S(g, { class: "cui-card" }, {
991
- content: f(() => [_("div", Et, [
992
- _("div", Dt, [_("div", Ot, [_("label", kt, r(e.$t("views.settings.assistant_memory")), 1), S(d, {
993
- severity: "secondary",
994
- variant: "simple",
995
- size: "small",
996
- class: "cui-input-switch-hint"
997
- }, {
998
- default: f(() => [y(r(e.$t("views.settings.assistant_memory_info")), 1)]),
999
- _: 1
1000
- })]), S(b, {
1001
- modelValue: u(G).memoryEnabled,
1002
- "onUpdate:modelValue": i[2] ||= (e) => u(G).memoryEnabled = e,
1003
- "input-id": "memoryEnabled",
1004
- class: "ml-auto shrink-0"
1005
- }, null, 8, ["modelValue"])]),
1006
- _("div", At, [_("div", jt, [_("label", Mt, r(e.$t("views.settings.assistant_terminal")), 1), S(d, {
1007
- severity: "secondary",
1008
- variant: "simple",
1009
- size: "small",
1010
- class: "cui-input-switch-hint"
1011
- }, {
1012
- default: f(() => [y(r(e.$t("views.settings.assistant_terminal_info")), 1)]),
1013
- _: 1
1014
- })]), S(b, {
1015
- modelValue: u(G).terminalEnabled,
1016
- "onUpdate:modelValue": i[3] ||= (e) => u(G).terminalEnabled = e,
1017
- "input-id": "terminalEnabled",
1018
- class: "ml-auto shrink-0"
1019
- }, null, 8, ["modelValue"])]),
1020
- _("div", Nt, [
1021
- _("label", Pt, r(e.$t("views.settings.assistant_language_label")), 1),
1022
- S(P, {
1023
- modelValue: u(G).language,
1024
- "onUpdate:modelValue": i[4] ||= (e) => u(G).language = e,
1025
- "input-id": "language",
1026
- options: u(Nr),
1027
- "option-label": "label",
1028
- "option-value": "value",
1029
- filter: "",
1030
- fluid: ""
1031
- }, null, 8, ["modelValue", "options"]),
1032
- S(d, {
1033
- severity: "secondary",
1034
- variant: "simple",
1035
- size: "small",
1036
- class: "cui-input-hint"
1037
- }, {
1038
- default: f(() => [y(r(e.$t("views.settings.assistant_language_info")), 1)]),
1039
- _: 1
1040
- })
1041
- ]),
1042
- _("div", Ft, [
1043
- _("label", It, r(e.$t("views.settings.assistant_reasoning_label")), 1),
1044
- S(P, {
1045
- modelValue: u(G).reasoning,
1046
- "onUpdate:modelValue": i[5] ||= (e) => u(G).reasoning = e,
1047
- "input-id": "reasoning",
1048
- options: u(Pr),
1049
- "option-label": "label",
1050
- "option-value": "value",
1051
- fluid: ""
1052
- }, null, 8, ["modelValue", "options"]),
1053
- S(d, {
1054
- severity: "secondary",
1055
- variant: "simple",
1056
- size: "small",
1057
- class: "cui-input-hint"
1058
- }, {
1059
- default: f(() => [y(r(e.$t("views.settings.assistant_reasoning_info")), 1)]),
1060
- _: 1
1061
- })
1062
- ]),
1063
- _("div", Lt, [_("div", Rt, [
1064
- _("label", zt, r(e.$t("views.settings.assistant_max_iterations_label")), 1),
1065
- S(F, {
1066
- modelValue: u(G).maxIterations,
1067
- "onUpdate:modelValue": i[6] ||= (e) => u(G).maxIterations = e,
1068
- min: 1,
1069
- max: 30,
1070
- "use-grouping": !1,
1071
- fluid: ""
1072
- }, null, 8, ["modelValue"]),
1073
- S(d, {
1074
- severity: "secondary",
1075
- variant: "simple",
1076
- size: "small",
1077
- class: "cui-input-hint"
1078
- }, {
1079
- default: f(() => [y(r(e.$t("views.settings.assistant_max_iterations_info")), 1)]),
1080
- _: 1
1081
- })
1082
- ]), _("div", Bt, [
1083
- _("label", Vt, r(e.$t("views.settings.assistant_max_tool_calls_label")), 1),
1084
- S(F, {
1085
- modelValue: u(G).maxToolCalls,
1086
- "onUpdate:modelValue": i[7] ||= (e) => u(G).maxToolCalls = e,
1087
- min: 1,
1088
- max: 100,
1089
- "use-grouping": !1,
1090
- fluid: ""
1091
- }, null, 8, ["modelValue"]),
1092
- S(d, {
1093
- severity: "secondary",
1094
- variant: "simple",
1095
- size: "small",
1096
- class: "cui-input-hint"
1097
- }, {
1098
- default: f(() => [y(r(e.$t("views.settings.assistant_max_tool_calls_info")), 1)]),
1099
- _: 1
1100
- })
1101
- ])]),
1102
- _("div", Ht, [
1103
- _("label", Ut, r(e.$t("views.settings.assistant_context_tokens_label")), 1),
1104
- S(F, {
1105
- id: "contextTokens",
1106
- modelValue: u(G).contextTokens,
1107
- "onUpdate:modelValue": i[8] ||= (e) => u(G).contextTokens = e,
1108
- min: 8e3,
1109
- max: 4e5,
1110
- step: 1e3,
1111
- "use-grouping": !1,
1112
- fluid: ""
1113
- }, null, 8, ["modelValue"]),
1114
- S(d, {
1115
- severity: "secondary",
1116
- variant: "simple",
1117
- size: "small",
1118
- class: "cui-input-hint"
1119
- }, {
1120
- default: f(() => [y(r(e.$t("views.settings.assistant_context_tokens_info")), 1)]),
1121
- _: 1
1122
- })
1123
- ]),
1124
- _("div", Wt, [_("div", Gt, [
1125
- _("label", Kt, r(e.$t("views.settings.assistant_history_threads_label")), 1),
1126
- S(F, {
1127
- id: "historyThreads",
1128
- modelValue: u(G).historyThreads,
1129
- "onUpdate:modelValue": i[9] ||= (e) => u(G).historyThreads = e,
1130
- min: 5,
1131
- max: 500,
1132
- "use-grouping": !1,
1133
- fluid: ""
1134
- }, null, 8, ["modelValue"]),
1135
- S(d, {
1136
- severity: "secondary",
1137
- variant: "simple",
1138
- size: "small",
1139
- class: "cui-input-hint"
1140
- }, {
1141
- default: f(() => [y(r(e.$t("views.settings.assistant_history_threads_info")), 1)]),
1142
- _: 1
1143
- })
1144
- ]), _("div", qt, [
1145
- _("label", Jt, r(e.$t("views.settings.assistant_history_images_label")), 1),
1146
- S(F, {
1147
- id: "historyImages",
1148
- modelValue: u(G).historyImages,
1149
- "onUpdate:modelValue": i[10] ||= (e) => u(G).historyImages = e,
1150
- min: 0,
1151
- max: 200,
1152
- "use-grouping": !1,
1153
- fluid: ""
1154
- }, null, 8, ["modelValue"]),
1155
- S(d, {
1156
- severity: "secondary",
1157
- variant: "simple",
1158
- size: "small",
1159
- class: "cui-input-hint"
1160
- }, {
1161
- default: f(() => [y(r(e.$t("views.settings.assistant_history_images_info")), 1)]),
1162
- _: 1
1163
- })
1164
- ])]),
1165
- _("div", Yt, [
1166
- _("label", Xt, r(e.$t("views.settings.assistant_extra_prompt_label")), 1),
1167
- S(I, {
1168
- modelValue: u(G).systemPromptExtra,
1169
- "onUpdate:modelValue": i[11] ||= (e) => u(G).systemPromptExtra = e,
1170
- rows: "3",
1171
- "auto-resize": "",
1172
- placeholder: e.$t("views.settings.assistant_extra_prompt_placeholder")
1173
- }, null, 8, ["modelValue", "placeholder"]),
1174
- S(d, {
1175
- severity: "secondary",
1176
- variant: "simple",
1177
- size: "small",
1178
- class: "cui-input-hint"
1179
- }, {
1180
- default: f(() => [y(r(e.$t("views.settings.assistant_extra_prompt_info")), 1)]),
1181
- _: 1
1182
- })
1183
- ]),
1184
- _("div", Zt, [S(k, {
1185
- type: "button",
1186
- severity: "secondary",
1187
- outlined: "",
1188
- class: "cui-button-medium ml-auto",
1189
- label: e.$t("components.form.button.reset_defaults"),
1190
- onClick: si
1191
- }, {
1192
- icon: f(() => [S(L, { class: "w-4 h-4" })]),
1193
- _: 1
1194
- }, 8, ["label"]), S(k, {
1195
- type: "button",
1196
- loading: u(U).isPending.value,
1197
- class: "cui-button-medium",
1198
- label: e.$t("components.form.button.save"),
1199
- onClick: ci
1200
- }, null, 8, ["loading", "label"])])
1201
- ])]),
1202
- _: 1
1203
- })]),
1204
- _("div", null, [_("span", Qt, r(e.$t("views.settings.assistant_mcp")), 1), S(g, { class: "cui-card" }, {
1205
- content: f(() => [_("div", $t, [
1206
- S(d, {
1207
- severity: "secondary",
1208
- variant: "simple",
1209
- size: "small",
1210
- class: "cui-input-hint"
1211
- }, {
1212
- default: f(() => [y(r(e.$t("views.settings.assistant_mcp_info")), 1)]),
1213
- _: 1
1214
- }),
1215
- _("div", en, [_("div", tn, [_("div", nn, [_("span", rn, r(e.$t("views.settings.assistant_mcp_enabled_label")), 1), _("span", an, r(e.$t("views.settings.assistant_mcp_enabled_info")), 1)]), S(b, {
1216
- modelValue: u(G).mcpEnabled,
1217
- "onUpdate:modelValue": i[12] ||= (e) => u(G).mcpEnabled = e
1218
- }, null, 8, ["modelValue"])]), _("div", on, [_("div", sn, [_("span", cn, r(e.$t("views.settings.assistant_mcp_writes_label")), 1), _("span", ln, r(e.$t("views.settings.assistant_mcp_writes_info")), 1)]), S(b, {
1219
- modelValue: u(G).mcpWrites,
1220
- "onUpdate:modelValue": i[13] ||= (e) => u(G).mcpWrites = e,
1221
- disabled: !u(G).mcpEnabled
1222
- }, null, 8, ["modelValue", "disabled"])])]),
1223
- u(G).mcpEnabled ? (n(), m("div", un, [_("div", dn, [
1224
- _("label", fn, r(e.$t("views.settings.assistant_mcp_endpoint_label")), 1),
1225
- S(z, null, {
1226
- default: f(() => [S(R, {
1227
- id: "mcpEndpoint",
1228
- "model-value": u(Fr),
1229
- readonly: "",
1230
- class: "font-mono text-sm"
1231
- }, null, 8, ["model-value"]), S(Ae, null, {
1232
- default: f(() => [S(ke, {
1233
- "action-text": e.$t("components.form.tooltip.copied"),
1234
- icon: u(we),
1235
- "button-props": {
1236
- severity: "secondary",
1237
- text: !0
1238
- },
1239
- onAction: i[14] ||= (e) => u(fe)(u(Fr))
1240
- }, null, 8, ["action-text", "icon"])]),
1241
- _: 1
1242
- })]),
1243
- _: 1
1244
- }),
1245
- S(d, {
1246
- severity: "secondary",
1247
- variant: "simple",
1248
- size: "small",
1249
- class: "cui-input-hint"
1250
- }, {
1251
- default: f(() => [y(r(e.$t("views.settings.assistant_mcp_token_info")) + " ", 1), S(Fe, {
1252
- to: { name: "SettingsAccount" },
1253
- class: "underline"
1254
- }, {
1255
- default: f(() => [y(r(e.$t("views.settings.assistant_mcp_token_link")), 1)]),
1256
- _: 1
1257
- })]),
1258
- _: 1
1259
- })
1260
- ]), _("div", pn, [
1261
- _("label", mn, r(e.$t("views.settings.assistant_mcp_client_label")), 1),
1262
- S(P, {
1263
- modelValue: u(Y),
1264
- "onUpdate:modelValue": i[15] ||= (e) => l(Y) ? Y.value = e : null,
1265
- "input-id": "mcpClient",
1266
- options: u(Ir),
1267
- "option-label": "label",
1268
- "option-value": "value",
1269
- class: "w-full"
1270
- }, null, 8, ["modelValue", "options"]),
1271
- S(z, null, {
1272
- default: f(() => [S(I, {
1273
- id: "mcpSnippet",
1274
- "model-value": u(Lr),
1275
- readonly: "",
1276
- "auto-resize": "",
1277
- rows: "3",
1278
- class: "font-mono text-xs"
1279
- }, null, 8, ["model-value"]), S(Ae, null, {
1280
- default: f(() => [S(ke, {
1281
- "action-text": e.$t("components.form.tooltip.copied"),
1282
- icon: u(we),
1283
- "button-props": {
1284
- severity: "secondary",
1285
- text: !0
1286
- },
1287
- onAction: i[16] ||= (e) => u(fe)(u(Lr))
1288
- }, null, 8, ["action-text", "icon"])]),
1289
- _: 1
1290
- })]),
1291
- _: 1
1292
- }),
1293
- S(d, {
1294
- severity: "secondary",
1295
- variant: "simple",
1296
- size: "small",
1297
- class: "cui-input-hint"
1298
- }, {
1299
- default: f(() => [y(r(e.$t("views.settings.assistant_mcp_snippet_info")), 1)]),
1300
- _: 1
1301
- })
1302
- ])])) : c("", !0),
1303
- _("div", hn, [S(k, {
1304
- type: "button",
1305
- loading: u(U).isPending.value,
1306
- class: "cui-button-medium ml-auto",
1307
- label: e.$t("components.form.button.save"),
1308
- onClick: ci
1309
- }, null, 8, ["loading", "label"])])
1310
- ])]),
1311
- _: 1
1312
- })]),
1313
- _("div", null, [_("span", gn, r(e.$t("views.settings.assistant_external")), 1), S(g, { class: "cui-card" }, {
1314
- content: f(() => [_("div", _n, [
1315
- S(d, {
1316
- severity: "secondary",
1317
- variant: "simple",
1318
- size: "small",
1319
- class: "cui-input-hint"
1320
- }, {
1321
- default: f(() => [y(r(e.$t("views.settings.assistant_external_info")), 1)]),
1322
- _: 1
1323
- }),
1324
- (n(!0), m(h, null, t(u(G).mcpServers, (t) => (n(), m("div", {
1325
- key: t.id,
1326
- class: "cui-assistant-server overflow-hidden rounded-xl"
1327
- }, [_("button", {
1328
- type: "button",
1329
- class: "flex w-full cursor-pointer items-center gap-3 p-4 text-left",
1330
- "aria-expanded": u(J).includes(t.id),
1331
- onClick: (e) => ii(t.id)
1332
- }, [_("div", yn, [_("span", bn, r(t.name || e.$t("views.settings.assistant_external_new")), 1), ti(t.id) ? (n(), m("span", {
1333
- key: 0,
1334
- class: a(["truncate text-xs", ni(t.id)])
1335
- }, r(ti(t.id)), 3)) : c("", !0)]), S(B, { class: a(["h-5 w-5 shrink-0 text-muted transition-transform duration-200", { "rotate-180": u(J).includes(t.id) }]) }, null, 8, ["class"])], 8, vn), _("div", { class: a(["cui-assistant-server-body grid", { "cui-assistant-server-open": u(J).includes(t.id) }]) }, [_("div", {
1336
- class: "min-h-0 overflow-hidden",
1337
- inert: !u(J).includes(t.id)
1338
- }, [_("div", Sn, [
1339
- _("div", Cn, [_("div", wn, [_("label", {
1340
- for: `server-enabled-${t.id}`,
1341
- class: "cui-label-switch"
1342
- }, r(e.$t("components.form.label.enabled")), 9, Tn), S(d, {
1343
- severity: "secondary",
1344
- variant: "simple",
1345
- size: "small",
1346
- class: "cui-input-switch-hint"
1347
- }, {
1348
- default: f(() => [y(r(e.$t("views.settings.assistant_external_enabled_info")), 1)]),
1349
- _: 1
1350
- })]), S(b, {
1351
- modelValue: t.enabled,
1352
- "onUpdate:modelValue": (e) => t.enabled = e,
1353
- "input-id": `server-enabled-${t.id}`,
1354
- class: "ml-auto shrink-0"
1355
- }, null, 8, [
1356
- "modelValue",
1357
- "onUpdate:modelValue",
1358
- "input-id"
1359
- ])]),
1360
- _("div", En, [_("div", Dn, [_("label", {
1361
- for: `server-name-${t.id}`,
1362
- class: "cui-label"
1363
- }, r(e.$t("views.settings.assistant_external_name")), 9, On), S(R, {
1364
- id: `server-name-${t.id}`,
1365
- modelValue: t.name,
1366
- "onUpdate:modelValue": (e) => t.name = e,
1367
- fluid: "",
1368
- placeholder: "Home Assistant"
1369
- }, null, 8, [
1370
- "id",
1371
- "modelValue",
1372
- "onUpdate:modelValue"
1373
- ])]), _("div", kn, [_("label", {
1374
- for: `server-url-${t.id}`,
1375
- class: "cui-label"
1376
- }, r(e.$t("views.settings.assistant_external_url")), 9, An), S(R, {
1377
- id: `server-url-${t.id}`,
1378
- modelValue: t.url,
1379
- "onUpdate:modelValue": (e) => t.url = e,
1380
- fluid: "",
1381
- placeholder: "http://homeassistant.local:8123/api/mcp"
1382
- }, null, 8, [
1383
- "id",
1384
- "modelValue",
1385
- "onUpdate:modelValue"
1386
- ])])]),
1387
- _("div", jn, [
1388
- _("label", {
1389
- for: `server-token-${t.id}`,
1390
- class: "cui-label"
1391
- }, r(e.$t("views.settings.assistant_external_token")), 9, Mn),
1392
- S(V, {
1393
- id: `server-token-${t.id}`,
1394
- modelValue: u(q)[t.id],
1395
- "onUpdate:modelValue": (e) => u(q)[t.id] = e,
1396
- feedback: !1,
1397
- "toggle-mask": "",
1398
- fluid: "",
1399
- autocomplete: "new-password",
1400
- placeholder: t.tokenSet ? "••••••••" : ""
1401
- }, null, 8, [
1402
- "id",
1403
- "modelValue",
1404
- "onUpdate:modelValue",
1405
- "placeholder"
1406
- ]),
1407
- S(d, {
1408
- severity: "secondary",
1409
- variant: "simple",
1410
- size: "small",
1411
- class: "cui-input-hint"
1412
- }, {
1413
- default: f(() => [y(r(t.tokenSet ? e.$t("views.settings.assistant_external_token_set") : e.$t("views.settings.assistant_external_token_info")), 1)]),
1414
- _: 2
1415
- }, 1024)
1416
- ]),
1417
- _("div", Nn, [_("div", Pn, [_("label", {
1418
- for: `server-insecure-${t.id}`,
1419
- class: "cui-label-switch"
1420
- }, r(e.$t("views.settings.assistant_external_insecure")), 9, Fn), S(d, {
1421
- severity: "secondary",
1422
- variant: "simple",
1423
- size: "small",
1424
- class: "cui-input-switch-hint"
1425
- }, {
1426
- default: f(() => [y(r(e.$t("views.settings.assistant_external_insecure_info")), 1)]),
1427
- _: 1
1428
- })]), S(b, {
1429
- "input-id": `server-insecure-${t.id}`,
1430
- modelValue: t.insecure,
1431
- "onUpdate:modelValue": (e) => t.insecure = e,
1432
- class: "ml-auto shrink-0"
1433
- }, null, 8, [
1434
- "input-id",
1435
- "modelValue",
1436
- "onUpdate:modelValue"
1437
- ])]),
1438
- _("div", In, [S(k, {
1439
- type: "button",
1440
- severity: "danger",
1441
- outlined: "",
1442
- class: "cui-button-medium ml-auto",
1443
- label: e.$t("views.settings.assistant_external_remove"),
1444
- onClick: (e) => ai(t.id)
1445
- }, {
1446
- icon: f(() => [S(j, { class: "w-4 h-4" })]),
1447
- _: 1
1448
- }, 8, ["label", "onClick"])])
1449
- ])], 8, xn)], 2)]))), 128)),
1450
- _("div", Ln, [S(k, {
1451
- type: "button",
1452
- severity: "secondary",
1453
- outlined: "",
1454
- class: "cui-button-medium",
1455
- label: e.$t("views.settings.assistant_external_add"),
1456
- disabled: u(G).mcpServers.length >= 10,
1457
- onClick: ri
1458
- }, {
1459
- icon: f(() => [S(ue, { class: "w-4 h-4" })]),
1460
- _: 1
1461
- }, 8, ["label", "disabled"]), S(k, {
1462
- type: "button",
1463
- loading: u(U).isPending.value,
1464
- class: "cui-button-medium ml-auto",
1465
- label: e.$t("components.form.button.save"),
1466
- onClick: ci
1467
- }, null, 8, ["loading", "label"])])
1468
- ])]),
1469
- _: 1
1470
- })]),
1471
- _("div", null, [_("span", Rn, r(e.$t("views.settings.assistant_schedules")), 1), S(g, { class: "cui-card" }, {
1472
- content: f(() => [_("div", zn, [
1473
- S(d, {
1474
- severity: "secondary",
1475
- variant: "simple",
1476
- size: "small",
1477
- class: "cui-input-hint"
1478
- }, {
1479
- default: f(() => [y(r(e.$t("views.settings.assistant_schedules_info")), 1)]),
1480
- _: 1
1481
- }),
1482
- u(He)?.length ? (n(), m("div", Bn, [(n(!0), m(h, null, t(u(He), (t) => (n(), m("div", {
1483
- key: t._id,
1484
- class: "flex items-start gap-3 py-3 text-sm"
1485
- }, [_("div", { class: a(["flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1", { "opacity-60": !t.enabled }]) }, [
1486
- _("span", Vn, r(t.title), 1),
1487
- _("div", Hn, [
1488
- S(p, {
1489
- severity: "secondary",
1490
- value: Wr(t.cron),
1491
- class: "text-[10px]"
1492
- }, null, 8, ["value"]),
1493
- S(p, {
1494
- severity: Gr(t.deliver),
1495
- value: e.$t(`views.settings.assistant_schedule_deliver_${t.deliver}`),
1496
- class: "text-[10px]"
1497
- }, null, 8, ["severity", "value"]),
1498
- t.profileId ? (n(), s(p, {
1499
- key: 0,
1500
- severity: Si(t.profileId) ? "secondary" : "warn",
1501
- value: Si(t.profileId) ?? e.$t("views.settings.assistant_schedule_profile_missing"),
1502
- class: "text-[10px]"
1503
- }, null, 8, ["severity", "value"])) : c("", !0)
1504
- ]),
1505
- _("div", Un, r(t.prompt), 1),
1506
- _("div", Wn, [t.enabled && t.nextRun ? (n(), m("span", Gn, r(e.$t("views.settings.assistant_schedule_next", { time: Kr(t.nextRun) })), 1)) : t.enabled ? c("", !0) : (n(), m("span", Kn, r(e.$t("views.settings.assistant_schedule_paused")), 1)), t.lastRun ? (n(), m("span", {
1507
- key: 2,
1508
- class: a({ "text-danger": t.lastRun.status === "error" })
1509
- }, " · " + r(e.$t(`views.settings.assistant_schedule_last_${t.lastRun.status}`, { time: Kr(t.lastRun.at) })), 3)) : c("", !0)]),
1510
- t.lastRun?.status === "error" && t.lastRun.message ? (n(), m("div", qn, r(t.lastRun.message), 1)) : c("", !0)
1511
- ], 2), _("div", Jn, [_("div", Yn, [
1512
- v((n(), s(k, {
1513
- type: "button",
1514
- severity: "secondary",
1515
- text: "",
1516
- rounded: "",
1517
- class: "cui-icon-md",
1518
- loading: u(W).isPending.value && u(W).variables.value === t._id,
1519
- onClick: (e) => u(W).mutate(t._id)
1520
- }, {
1521
- icon: f(() => [S(Le, {
1522
- width: "100%",
1523
- height: "100%"
1524
- })]),
1525
- _: 1
1526
- }, 8, ["loading", "onClick"])), [[
1527
- $,
1528
- { value: e.$t("views.settings.assistant_schedule_run") },
1529
- void 0,
1530
- { top: !0 }
1531
- ]]),
1532
- v((n(), s(k, {
1533
- type: "button",
1534
- severity: "secondary",
1535
- text: "",
1536
- rounded: "",
1537
- class: "cui-icon-md",
1538
- onClick: (e) => fi(t)
1539
- }, {
1540
- icon: f(() => [t.enabled ? (n(), s(We, {
1541
- key: 0,
1542
- width: "100%",
1543
- height: "100%"
1544
- })) : (n(), s(Xe, {
1545
- key: 1,
1546
- width: "100%",
1547
- height: "100%"
1548
- }))]),
1549
- _: 2
1550
- }, 1032, ["onClick"])), [[
1551
- $,
1552
- { value: t.enabled ? e.$t("views.settings.assistant_schedule_pause") : e.$t("views.settings.assistant_schedule_resume") },
1553
- void 0,
1554
- { top: !0 }
1555
- ]]),
1556
- v((n(), s(k, {
1557
- type: "button",
1558
- severity: "danger",
1559
- text: "",
1560
- rounded: "",
1561
- class: "cui-icon-md",
1562
- onClick: (e) => u(Ge).mutate(t._id)
1563
- }, {
1564
- icon: f(() => [S(j, {
1565
- width: "100%",
1566
- height: "100%"
1567
- })]),
1568
- _: 1
1569
- }, 8, ["onClick"])), [[
1570
- $,
1571
- { value: e.$t("views.settings.assistant_schedule_delete") },
1572
- void 0,
1573
- { top: !0 }
1574
- ]])
1575
- ]), _("div", Xn, [S(k, {
1576
- type: "button",
1577
- severity: "secondary",
1578
- text: "",
1579
- rounded: "",
1580
- class: "cui-icon-md",
1581
- loading: u(W).isPending.value && u(W).variables.value === t._id,
1582
- onClick: (e) => pi(e, t)
1583
- }, {
1584
- icon: f(() => [S(ie, {
1585
- width: "100%",
1586
- height: "100%"
1587
- })]),
1588
- _: 1
1589
- }, 8, ["loading", "onClick"])])])]))), 128))])) : c("", !0),
1590
- _("div", { class: a(["flex flex-col gap-6", { "cui-assistant-schedule-form": u(He)?.length }]) }, [
1591
- _("div", Zn, [_("div", Qn, [_("label", $n, r(e.$t("views.settings.assistant_schedule_title_label")), 1), S(R, {
1592
- modelValue: u(K).title,
1593
- "onUpdate:modelValue": i[17] ||= (e) => u(K).title = e,
1594
- modelModifiers: { trim: !0 },
1595
- type: "text",
1596
- placeholder: e.$t("views.settings.assistant_schedule_title_placeholder"),
1597
- class: "w-full"
1598
- }, null, 8, ["modelValue", "placeholder"])]), _("div", er, [_("label", tr, r(e.$t("views.settings.assistant_schedule_deliver_label")), 1), S(P, {
1599
- modelValue: u(K).deliver,
1600
- "onUpdate:modelValue": i[18] ||= (e) => u(K).deliver = e,
1601
- options: u(Rr),
1602
- "option-label": "label",
1603
- "option-value": "value",
1604
- fluid: ""
1605
- }, null, 8, ["modelValue", "options"])])]),
1606
- _("div", nr, [_("label", rr, r(e.$t("views.settings.assistant_schedule_prompt_label")), 1), S(I, {
1607
- modelValue: u(K).prompt,
1608
- "onUpdate:modelValue": i[19] ||= (e) => u(K).prompt = e,
1609
- rows: "2",
1610
- "auto-resize": "",
1611
- placeholder: e.$t("views.settings.assistant_schedule_prompt_placeholder")
1612
- }, null, 8, ["modelValue", "placeholder"])]),
1613
- u(Ve)?.length ? (n(), m("div", ir, [_("label", ar, r(e.$t("views.settings.assistant_schedule_profile_label")), 1), S(P, {
1614
- modelValue: u(K).profileId,
1615
- "onUpdate:modelValue": i[20] ||= (e) => u(K).profileId = e,
1616
- "input-id": "scheduleProfile",
1617
- options: u(Ve),
1618
- "option-label": "name",
1619
- "option-value": "_id",
1620
- "show-clear": "",
1621
- fluid: "",
1622
- placeholder: e.$t("views.settings.assistant_schedule_profile_none")
1623
- }, null, 8, [
1624
- "modelValue",
1625
- "options",
1626
- "placeholder"
1627
- ])])) : c("", !0),
1628
- _("div", or, [
1629
- _("div", sr, [_("label", cr, r(e.$t("views.settings.assistant_schedule_when_label")), 1), S(P, {
1630
- modelValue: u(K).preset,
1631
- "onUpdate:modelValue": i[21] ||= (e) => u(K).preset = e,
1632
- options: u(zr),
1633
- "option-label": "label",
1634
- "option-value": "value",
1635
- fluid: ""
1636
- }, null, 8, ["modelValue", "options"])]),
1637
- u(K).preset !== "hourly" && u(K).preset !== "custom" ? (n(), m("div", lr, [_("label", ur, r(e.$t("views.settings.assistant_schedule_time_label")), 1), S(R, {
1638
- modelValue: u(K).time,
1639
- "onUpdate:modelValue": i[22] ||= (e) => u(K).time = e,
1640
- type: "time",
1641
- class: "cui-time-input w-full"
1642
- }, null, 8, ["modelValue"])])) : c("", !0),
1643
- u(K).preset === "custom" ? (n(), m("div", dr, [_("label", fr, r(e.$t("views.settings.assistant_schedule_cron_label")), 1), S(R, {
1644
- modelValue: u(K).cron,
1645
- "onUpdate:modelValue": i[23] ||= (e) => u(K).cron = e,
1646
- modelModifiers: { trim: !0 },
1647
- type: "text",
1648
- placeholder: "0 20 * * *",
1649
- class: "w-full font-mono text-sm"
1650
- }, null, 8, ["modelValue"])])) : c("", !0)
1651
- ]),
1652
- _("div", pr, [S(k, {
1653
- type: "button",
1654
- loading: u(Ue).isPending.value,
1655
- disabled: !u(K).title || !u(K).prompt || !u(Br),
1656
- class: "cui-button-medium ml-auto",
1657
- label: e.$t("views.settings.assistant_schedule_add"),
1658
- onClick: qr
1659
- }, null, 8, [
1660
- "loading",
1661
- "disabled",
1662
- "label"
1663
- ])])
1664
- ], 2)
1665
- ])]),
1666
- _: 1
1667
- })]),
1668
- _("div", null, [_("span", mr, r(e.$t("views.settings.assistant_usage")), 1), S(g, { class: "cui-card" }, {
1669
- content: f(() => [_("div", hr, [S(d, {
1670
- severity: "secondary",
1671
- variant: "simple",
1672
- size: "small",
1673
- class: "cui-input-hint"
1674
- }, {
1675
- default: f(() => [y(r(e.$t("views.settings.assistant_usage_info")), 1)]),
1676
- _: 1
1677
- }), S(Q, {
1678
- value: u(Mr) ?? [],
1679
- "data-key": "key",
1680
- loading: u(ze),
1681
- pt: ve,
1682
- "striped-rows": "",
1683
- scrollable: ""
1684
- }, {
1685
- loading: f(() => [S(o, {
1686
- class: "w-[30px] h-[30px] m-0",
1687
- "stroke-width": "5"
1688
- })]),
1689
- empty: f(() => [_("span", gr, r(e.$t("views.settings.assistant_usage_empty")), 1)]),
1690
- default: f(() => [
1691
- S(Z, {
1692
- field: "month",
1693
- header: e.$t("views.settings.assistant_usage_month"),
1694
- "header-class": "p-2",
1695
- class: "p-2 tabular-nums"
1696
- }, null, 8, ["header"]),
1697
- S(Z, {
1698
- field: "username",
1699
- header: e.$t("views.settings.assistant_usage_user"),
1700
- "header-class": "p-2",
1701
- class: "p-2"
1702
- }, {
1703
- body: f(({ data: e }) => [_("span", _r, r(e.pluginName ?? e.username ?? e.userId), 1)]),
1704
- _: 1
1705
- }, 8, ["header"]),
1706
- S(Z, {
1707
- field: "model",
1708
- header: e.$t("views.settings.assistant_usage_model"),
1709
- "header-class": "p-2",
1710
- class: "p-2"
1711
- }, {
1712
- body: f(({ data: e }) => [_("span", vr, r(xi(e)), 1)]),
1713
- _: 1
1714
- }, 8, ["header"]),
1715
- S(Z, {
1716
- field: "runs",
1717
- header: e.$t("views.settings.assistant_usage_runs"),
1718
- "header-class": "p-2",
1719
- class: "p-2 text-right tabular-nums",
1720
- pt: N
1721
- }, null, 8, ["header"]),
1722
- S(Z, {
1723
- field: "promptTokens",
1724
- header: e.$t("views.settings.assistant_usage_in"),
1725
- "header-class": "p-2",
1726
- class: "p-2 text-right tabular-nums",
1727
- pt: N
1728
- }, {
1729
- body: f(({ data: e }) => [y(r($r(e.promptTokens)), 1)]),
1730
- _: 1
1731
- }, 8, ["header"]),
1732
- S(Z, {
1733
- field: "completionTokens",
1734
- header: e.$t("views.settings.assistant_usage_out"),
1735
- "header-class": "p-2",
1736
- class: "p-2 text-right tabular-nums",
1737
- pt: N
1738
- }, {
1739
- body: f(({ data: e }) => [y(r($r(e.completionTokens)), 1)]),
1740
- _: 1
1741
- }, 8, ["header"]),
1742
- S(Z, {
1743
- field: "costUsd",
1744
- header: e.$t("views.settings.assistant_usage_cost"),
1745
- "header-class": "p-2",
1746
- class: "p-2 text-right tabular-nums",
1747
- pt: N
1748
- }, {
1749
- body: f(({ data: e }) => [y(r(e.costUsd ? `$${e.costUsd.toFixed(e.costUsd < 1 ? 3 : 2)}` : "–"), 1)]),
1750
- _: 1
1751
- }, 8, ["header"])
1752
- ]),
1753
- _: 1
1754
- }, 8, ["value", "loading"])])]),
1755
- _: 1
1756
- })]),
1757
- _("div", null, [_("span", yr, r(e.$t("views.settings.assistant_tools")), 1), S(g, { class: "cui-card" }, {
1758
- content: f(() => [u(jr).length ? (n(), m("div", xr, [S(Ti, {
1759
- value: u(qe),
1760
- "onUpdate:value": i[24] ||= (e) => l(qe) ? qe.value = e : null,
1761
- scrollable: ""
1762
- }, {
1763
- default: f(() => [S(oi, { class: "mb-3" }, {
1764
- default: f(() => [(n(!0), m(h, null, t(u(jr), (e) => (n(), s(ei, {
1765
- key: e.key,
1766
- value: e.key,
1767
- class: "text-sm"
1768
- }, {
1769
- default: f(() => [y(r(e.label) + " (" + r(e.tools.length) + ")", 1)]),
1770
- _: 2
1771
- }, 1032, ["value"]))), 128))]),
1772
- _: 1
1773
- }), S(wi, { class: "!p-0 !bg-transparent" }, {
1774
- default: f(() => [(n(!0), m(h, null, t(u(jr), (i) => (n(), s(Ci, {
1775
- key: i.key,
1776
- value: i.key
1777
- }, {
1778
- default: f(() => [i.serverId ? (n(), m("div", Sr, [
1779
- _("label", {
1780
- for: `trusted-${i.key}`,
1781
- class: "cui-label"
1782
- }, r(e.$t("views.settings.assistant_tools_trusted_label")), 9, Cr),
1783
- S(ui, {
1784
- "model-value": Zr(i),
1785
- "input-id": `trusted-${i.key}`,
1786
- options: Xr(i),
1787
- "option-label": "label",
1788
- "option-value": "value",
1789
- "max-selected-labels": 3,
1790
- "selected-items-label": e.$t("views.settings.assistant_tools_trusted_selected", { n: Zr(i).length }),
1791
- placeholder: e.$t("views.settings.assistant_tools_trusted_none"),
1792
- filter: "",
1793
- fluid: "",
1794
- "onUpdate:modelValue": (e) => Qr(i, e)
1795
- }, null, 8, [
1796
- "model-value",
1797
- "input-id",
1798
- "options",
1799
- "selected-items-label",
1800
- "placeholder",
1801
- "onUpdate:modelValue"
1802
- ]),
1803
- S(d, {
1804
- severity: "secondary",
1805
- variant: "simple",
1806
- size: "small",
1807
- class: "cui-input-hint"
1808
- }, {
1809
- default: f(() => [y(r(e.$t("views.settings.assistant_tools_trusted_info")), 1)]),
1810
- _: 1
1811
- })
1812
- ])) : c("", !0), _("div", wr, [(n(!0), m(h, null, t(i.tools, (t) => (n(), m("div", {
1813
- key: t.name,
1814
- class: "flex items-start gap-3 py-2 text-sm"
1815
- }, [S(hi, { class: "w-4 h-4 mt-0.5 shrink-0 text-muted" }), _("div", Tr, [_("div", Er, [
1816
- _("span", Dr, r(u(Oe)(t.name)), 1),
1817
- Yr(t) ? (n(), s(p, {
1818
- key: 0,
1819
- severity: "warn",
1820
- value: e.$t("views.settings.assistant_tool_approval"),
1821
- class: "text-[10px]"
1822
- }, null, 8, ["value"])) : c("", !0),
1823
- t.adminOnly ? (n(), s(p, {
1824
- key: 1,
1825
- severity: "info",
1826
- value: e.$t("views.settings.assistant_tool_admin"),
1827
- class: "text-[10px]"
1828
- }, null, 8, ["value"])) : c("", !0)
1829
- ]), _("div", Or, r(Jr(t.description)), 1)])]))), 128))])]),
1830
- _: 2
1831
- }, 1032, ["value"]))), 128))]),
1832
- _: 1
1833
- })]),
1834
- _: 1
1835
- }, 8, ["value"]), u(jr).some((e) => e.serverId) ? (n(), m("div", kr, [S(k, {
1836
- type: "button",
1837
- loading: u(U).isPending.value,
1838
- class: "cui-button-medium ml-auto",
1839
- label: e.$t("components.form.button.save"),
1840
- onClick: ci
1841
- }, null, 8, ["loading", "label"])])) : c("", !0)])) : (n(), m("div", br, r(e.$t("views.settings.assistant_tools_empty")), 1))]),
1842
- _: 1
1843
- })])
1844
- ])) : (n(), m("div", Qe, [S(o, {
1845
- class: "w-[30px] h-[30px] m-0",
1846
- "stroke-width": "5"
1847
- })])), S(E, {
1848
- ref_key: "rowMenuRef",
1849
- ref: Je,
1850
- items: u(Ke),
1851
- popover: { pt: { content: { class: "p-0! rounded-xl! overflow-hidden!" } } }
1852
- }, null, 8, ["items"])]);
1853
- };
1854
- }
1855
- }), [["__scopeId", "data-v-69f75eeb"]]);
1856
- //#endregion
1857
- export { Ar as default };