@camera.ui/server 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/dist/interface/assets/{404-bSMSPWcp.js → 404-D0S6IGok.js} +1 -1
  2. package/dist/interface/assets/{About-DqMxC4AO.js → About-DAw9u8ZY.js} +1 -1
  3. package/dist/interface/assets/{Assistant-CIHF-bHs.js → Assistant-Gi6_YkEY.js} +1 -1
  4. package/dist/interface/assets/{Automation-CUDypjZw.js → Automation-6eFKPJPu.js} +3 -3
  5. package/dist/interface/assets/{AutomationImport-Cr14tF-Q.js → AutomationImport-95PfbPvG.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-BnZgfI9i.js → AutomationStore-BHxzzx7a.js} +2 -2
  7. package/dist/interface/assets/AutomationStoreDetail-DEVlRllt.js +2 -0
  8. package/dist/interface/assets/Automations-DEivoiS1.js +2 -0
  9. package/dist/interface/assets/Camera-B5l_gv7t.js +2 -0
  10. package/dist/interface/assets/{CameraConsole-BK8TqHgA.js → CameraConsole-B8bBYQzk.js} +1 -1
  11. package/dist/interface/assets/Cameras-HblWPGCv.js +651 -0
  12. package/dist/interface/assets/Camview-DEKrbg5R.js +1 -0
  13. package/dist/interface/assets/{CertificateUpload-PfgVZa4M.js → CertificateUpload-CC6YtX7h.js} +1 -1
  14. package/dist/interface/assets/{Config-DapgreIX.js → Config-DQEaOnaN.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionAssistant-v0w4E-mE.js → ConfigActionAssistant-C_XRnBzo.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionCameraControl-fdrsnRyE.js → ConfigActionCameraControl-oRzM9rjX.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionDelay-C_dq3ozL.js → ConfigActionDelay-Dc-NZS5L.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionHttp-1hDI-38w.js → ConfigActionHttp-Nw0wt-JZ.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionImageInput-DCF8qeg9.js → ConfigActionImageInput-Do60Upqm.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionMqtt-XpVD7lFg.js → ConfigActionMqtt-BeQVgaGX.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotification-CB1ymMRz.js → ConfigActionNotification-BA0FjOWs.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionNotificationControl-BfDtLS5h.js → ConfigActionNotificationControl-Ce3Kd_Xv.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionOutput-CMfXI1b3.js → ConfigActionOutput-ChiOMWDy.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionPlugin-CZo6SudQ.js → ConfigActionPlugin-Cn3r0glk.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSensor-CetFuASa.js → ConfigActionSensor-DkdBCu-6.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionSnapshot-BpPhHpIk.js → ConfigActionSnapshot-CLlaDFUV.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionVariable-SJomTISn.js → ConfigActionVariable-D4x3Luxl.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionIfElse-ClTxvZJz.js → ConfigConditionIfElse-BpL8KZ5X.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSensorState-FbLmmHyP.js → ConfigConditionSensorState-CSQexUF_.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionSwitch--qAHkOdE.js → ConfigConditionSwitch-CB2J_5kr.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionTime-BqjDUPVR.js → ConfigConditionTime-X9fsNsYu.js} +1 -1
  32. package/dist/interface/assets/{ConfigSensorValueInput-B1dLcmSO.js → ConfigSensorValueInput-VPhPxrQl.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerDetection-CMZyEWui.js → ConfigTriggerDetection-Dhzng4X5.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerGeofence-B9JPVvhP.js → ConfigTriggerGeofence-Cm0CLNf5.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerManual-CSdF69jM.js → ConfigTriggerManual-CRi3rsgG.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerMqtt-BzN7_xVm.js → ConfigTriggerMqtt-Ck__CWck.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSchedule-BK_Ogvxn.js → ConfigTriggerSchedule-C1PZrHEu.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSensor-BaQklhHP.js → ConfigTriggerSensor-9xVgCtkn.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSystem-DIX95l0X.js → ConfigTriggerSystem-Denf1gkO.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerWebhook-_EOJAgNk.js → ConfigTriggerWebhook-im24LkCn.js} +1 -1
  41. package/dist/interface/assets/Console-Q1HpmyO_.js +1 -0
  42. package/dist/interface/assets/CuiAssistantConversation-BxJf9sdu.js +5 -0
  43. package/dist/interface/assets/{CuiAssistantConversation-CWCLLi3b.css → CuiAssistantConversation-DmSdiv1b.css} +1 -1
  44. package/dist/interface/assets/{CuiAutomationRunsDialog-DpskKeEe.js → CuiAutomationRunsDialog-B3tJ-Cma.js} +1 -1
  45. package/dist/interface/assets/CuiBottomSheet-C37blNu-.js +1 -0
  46. package/dist/interface/assets/{CuiBottomSheet-Bg_AIuGY.js → CuiBottomSheet-kvvLw1MQ.js} +1 -1
  47. package/dist/interface/assets/CuiCameraPipCard-TVAf5ZYQ.js +1 -0
  48. package/dist/interface/assets/CuiCameraRecordings-C26rX8dh.css +1 -0
  49. package/dist/interface/assets/CuiCameraRecordings-IHg1dNf4.js +1 -0
  50. package/dist/interface/assets/CuiCameraShares-B5ghuJS-.js +1 -0
  51. package/dist/interface/assets/{CuiCameraTable-CyAYYPvd.js → CuiCameraTable-Y5XUkU7w.js} +2 -2
  52. package/dist/interface/assets/CuiCameraTable-xDZz7Wpe.js +1 -0
  53. package/dist/interface/assets/{CuiChartTable-BklHSjRr.js → CuiChartTable-CXdupaj5.js} +1 -1
  54. package/dist/interface/assets/CuiChartTable-DXY7rY3O.css +1 -0
  55. package/dist/interface/assets/{CuiConsole-4rDfDj0a.js → CuiConsole-5KgXSOS5.js} +2 -2
  56. package/dist/interface/assets/CuiDataTable-DPIbKnvU.css +1 -0
  57. package/dist/interface/assets/CuiDataTable-hArZWV9B.js +1 -0
  58. package/dist/interface/assets/CuiLightControl-MRpR0XIZ.js +1 -0
  59. package/dist/interface/assets/{CuiList-BafzuN0H.js → CuiList-D-l4HrBP.js} +1 -1
  60. package/dist/interface/assets/CuiPluginCard-whoQ5YHn.js +2 -0
  61. package/dist/interface/assets/{CuiPluginCategoryChip-B4w2DH_j.js → CuiPluginCategoryChip-CH53zk2o.js} +1 -1
  62. package/dist/interface/assets/{CuiPluginOAuthButton-C_jxPrPQ.js → CuiPluginOAuthButton-BBA0AzVO.js} +2 -2
  63. package/dist/interface/assets/{CuiPluginTrustBadge-pLnF2Ggn.js → CuiPluginTrustBadge-C0EX5aCI.js} +1 -1
  64. package/dist/interface/assets/{CuiQRCode-8Q6cFdfs.js → CuiQRCode-BRT0NO5c.js} +1 -1
  65. package/dist/interface/assets/CuiSchema-DBY1x1BT.js +1 -0
  66. package/dist/interface/assets/{CuiTopNavbarItem-BZXzuV42.js → CuiTopNavbarItem-CpMT8_0r.js} +1 -1
  67. package/dist/interface/assets/Faces-Dqi30qs9.js +1 -0
  68. package/dist/interface/assets/{FirstSteps-BNcAFp2c.js → FirstSteps-B8n4fGK3.js} +1 -1
  69. package/dist/interface/assets/Floorplan-ZHXNaZA8.js +1 -0
  70. package/dist/interface/assets/{Instances-DUWWy-El.js → Instances-DEj3gs6H.js} +1 -1
  71. package/dist/interface/assets/{Logs-7CxXc2Re.js → Logs-CwHvSKd6.js} +2 -2
  72. package/dist/interface/assets/Menu-C4BxUV0P.js +1 -0
  73. package/dist/interface/assets/Metrics-BCOE-rcw.js +9 -0
  74. package/dist/interface/assets/OAuthDeviceFlow-D6bjZOYS.js +1 -0
  75. package/dist/interface/assets/Plugin-ppCvxkl4.js +1 -0
  76. package/dist/interface/assets/{PluginConsole-BOaU7Ey0.js → PluginConsole-BP42Qpee.js} +1 -1
  77. package/dist/interface/assets/PluginDetail-BnX5lZGz.js +2 -0
  78. package/dist/interface/assets/{PluginSchema-BWlRMPo6.js → PluginSchema-uVKXzfo6.js} +1 -1
  79. package/dist/interface/assets/PluginSearch-C4MvWyLb.js +1 -0
  80. package/dist/interface/assets/PluginSearch-no79fTuf.js +2 -0
  81. package/dist/interface/assets/{PluginUpdateProgress-DFg14vV8.js → PluginUpdateProgress-73jprYHA.js} +1 -1
  82. package/dist/interface/assets/Plugins-DtEqS6_j.js +1 -0
  83. package/dist/interface/assets/{RecentEventsFilter-B6Ph-pxb.js → RecentEventsFilter-CtyCbt6Z.js} +1 -1
  84. package/dist/interface/assets/Recordings-DrcOsRLn.js +1 -0
  85. package/dist/interface/assets/{SensorEdit-DEenjJ8S.js → SensorEdit-D4-mMg8S.js} +1 -1
  86. package/dist/interface/assets/{SensorHistory-CU1Uwf5f.js → SensorHistory-C-X7VI-f.js} +1 -1
  87. package/dist/interface/assets/{Sensors-LnVLPDWf.js → Sensors-BJh8BkCR.js} +2 -2
  88. package/dist/interface/assets/{Settings-uk3RVXCS.js → Settings-B9CZvA-d.js} +1 -1
  89. package/dist/interface/assets/SettingsAccount-CkvScQmF.js +1 -0
  90. package/dist/interface/assets/SettingsAccount-D3zF2kLc.js +1 -0
  91. package/dist/interface/assets/{SettingsAppearance-CRYcal9v.js → SettingsAppearance-CbG8M38w.js} +1 -1
  92. package/dist/interface/assets/SettingsAppearance-ZHqNXXIL.js +1 -0
  93. package/dist/interface/assets/SettingsAssistant-BESab92C.css +1 -0
  94. package/dist/interface/assets/SettingsAssistant-DxYPnbms.js +1 -0
  95. package/dist/interface/assets/{SettingsBackup-CSvGqsru.js → SettingsBackup-DZBzUyQm.js} +1 -1
  96. package/dist/interface/assets/{SettingsList-BQR6jnP-.js → SettingsList-DFg8g7IM.js} +1 -1
  97. package/dist/interface/assets/SettingsMqtt-BeujOZkh.js +1 -0
  98. package/dist/interface/assets/{SettingsNotifications-8sSoP-8S.js → SettingsNotifications-DtSTE76r.js} +1 -1
  99. package/dist/interface/assets/{SettingsPermissions-D7kYdjfw.js → SettingsPermissions-CPOAefv0.js} +1 -1
  100. package/dist/interface/assets/{SettingsRecordings-DjLYqbKo.js → SettingsRecordings-ClAtT4Bh.js} +1 -1
  101. package/dist/interface/assets/SettingsRemote-58S4Thfp.js +2 -0
  102. package/dist/interface/assets/{SettingsSystem-BxQNJc8n.js → SettingsSystem-tTGpuiRW.js} +2 -2
  103. package/dist/interface/assets/SettingsUsers-D8b7I5c2.js +1 -0
  104. package/dist/interface/assets/{Terminal-Bsnvs8gs.js → Terminal-1_Fi0VW-.js} +2 -2
  105. package/dist/interface/assets/Training-CQHfQjUP.css +1 -0
  106. package/dist/interface/assets/Training-DfOqDTHJ.js +1 -0
  107. package/dist/interface/assets/{Updates-Dsn_fJ-N.js → Updates-BW0p7Wc5.js} +1 -1
  108. package/dist/interface/assets/{VariableInput-DCWiIgaZ.js → VariableInput-sqnLuk6S.js} +1 -1
  109. package/dist/interface/assets/{VariableSuggestions-BhIlXJ6r.js → VariableSuggestions-3pbnxhyT.js} +1 -1
  110. package/dist/interface/assets/{VersionsHandler-DM_Jf4EA.js → VersionsHandler-CWmjDygB.js} +1 -1
  111. package/dist/interface/assets/{VirtualSensorCreate-Q4kd0dfE.js → VirtualSensorCreate-BzmFlvYD.js} +1 -1
  112. package/dist/interface/assets/Workers-Dm9o2wMo.js +2 -0
  113. package/dist/interface/assets/{api-BKiE8A_V.css → api-B6TtU9Ew.css} +1 -1
  114. package/dist/interface/assets/{api-LjAY3aa3.js → api-CQ-3I3-i.js} +1 -1
  115. package/dist/interface/assets/api-DPgKdIQZ.js +4 -0
  116. package/dist/interface/assets/{assistant-BFc44oq-.js → assistant-0UymvpMy.js} +1 -1
  117. package/dist/interface/assets/{auth-CUPvHARA.js → auth-C0jhqNaz.js} +1 -1
  118. package/dist/interface/assets/{automations-Dw4L5sT0.js → automations-Bj30nb8s.js} +1 -1
  119. package/dist/interface/assets/{cameraSources-CzENFiZx.js → cameraSources-CiMjIjsh.js} +1 -1
  120. package/dist/interface/assets/cloudHandoff-Cxljjl7N.js +1 -0
  121. package/dist/interface/assets/{config-EBcNBZkb.js → config-D-uVfwYp.js} +1 -1
  122. package/dist/interface/assets/{flowSchema-CdzBw69a.js → flowSchema-D3nNJVLL.js} +1 -1
  123. package/dist/interface/assets/{intercomService-DIfdcsXc.js → intercomService-BeoNs-09.js} +1 -1
  124. package/dist/interface/assets/main-BrNGfemk.js +3 -0
  125. package/dist/interface/assets/{mqtt-D_wH18eJ.js → mqtt-D7jRwifB.js} +1 -1
  126. package/dist/interface/assets/{notifications-wLsrlI9N.js → notifications-BpRVoerg.js} +1 -1
  127. package/dist/interface/assets/pause-B7ud2O8d.js +1 -0
  128. package/dist/interface/assets/{plugins-DwmkpOPJ.js → plugins-wZ4RDxCb.js} +1 -1
  129. package/dist/interface/assets/rooms-CFcu2dU1.js +1 -0
  130. package/dist/interface/assets/{sensorIcons-BY853M0u.js → sensorIcons-B117n8l2.js} +1 -1
  131. package/dist/interface/assets/{sensorSlots-DnRJdaTG.js → sensorSlots-CAr3prFc.js} +1 -1
  132. package/dist/interface/assets/{sensors-B9etOqBI.js → sensors-oriEG3KR.js} +1 -1
  133. package/dist/interface/assets/{server-BTKgKMye.js → server-Ce6ou2NV.js} +1 -1
  134. package/dist/interface/assets/{theme-CbtGvohq.js → theme-CBTC6-Lp.js} +1 -1
  135. package/dist/interface/assets/{types-CEhVWRYD.js → types-C-amdBz6.js} +1 -1
  136. package/dist/interface/assets/{types-COlvVtDn.js → types-CjU6-JvD.js} +1 -1
  137. package/dist/interface/assets/types-CzjppLwt.js +1 -0
  138. package/dist/interface/assets/{ungrouped-Dbr16vFt.css → ungrouped-AYNBKz52.css} +1 -1
  139. package/dist/interface/assets/ungrouped-BQzKp2PT.js +1 -0
  140. package/dist/interface/assets/{updates-BQ6Ugcup.js → updates-Cohtc6vb.js} +1 -1
  141. package/dist/interface/assets/{useAppVersion-BO-3jbup.js → useAppVersion-xxi6fR7J.js} +1 -1
  142. package/dist/interface/assets/{useAssistantActions-CRVHZw4o.js → useAssistantActions-BkRK1FBg.js} +1 -1
  143. package/dist/interface/assets/useBackupRestore-BGvhSqJB.js +1 -0
  144. package/dist/interface/assets/{useCameraOptions-C7tgceJ1.js → useCameraOptions-ophs2V4p.js} +1 -1
  145. package/dist/interface/assets/{useKeyboardInset-yu3BVnj7.js → useKeyboardInset-Cpz6Hs5c.js} +1 -1
  146. package/dist/interface/assets/{useLogsSocket-B4wTnSno.js → useLogsSocket-CB07yhv4.js} +1 -1
  147. package/dist/interface/assets/{useNavLayout-Z61-OsIG.js → useNavLayout-BYEejBpb.js} +1 -1
  148. package/dist/interface/assets/{usePermissions-Bjx4t0x3.js → usePermissions-yWhjYMcr.js} +1 -1
  149. package/dist/interface/assets/{usePluginUpdates-Dv3_XJTK.js → usePluginUpdates-9rvsWfdJ.js} +1 -1
  150. package/dist/interface/assets/{usePushRegistration-CHNMZ94f.js → usePushRegistration-b5owOzjH.js} +1 -1
  151. package/dist/interface/assets/{useServerRestart-C-AsOdJP.js → useServerRestart-yRXDWnH_.js} +1 -1
  152. package/dist/interface/assets/{useStreamStatus-BJoJF68x.js → useStreamStatus-BHyWrAHu.js} +1 -1
  153. package/dist/interface/assets/{useTabSwipe-b_K3BIkW.js → useTabSwipe-Dr9HYP1J.js} +1 -1
  154. package/dist/interface/assets/{useUpdateChannel-Cc4IrrDy.js → useUpdateChannel-IVj0XKlN.js} +1 -1
  155. package/dist/interface/assets/{useUpdatesSocket-Cz9lN4Bc.js → useUpdatesSocket-CuPHbSF7.js} +1 -1
  156. package/dist/interface/assets/{useUserOptions-DrNB17kY.js → useUserOptions-zIfrMDiG.js} +1 -1
  157. package/dist/interface/assets/{vendor-cameraui-CqKq4Yeo.js → vendor-cameraui-Dhg7MEnt.js} +2 -2
  158. package/dist/interface/assets/{vendor-core-BTkC8NzR.js → vendor-core-CQ2HVu0L.js} +1 -1
  159. package/dist/interface/assets/{vendor-primevue-DQz5Qnqu.js → vendor-primevue-CeWNZxSE.js} +1 -1
  160. package/dist/interface/assets/{vendor-zod-BigRv4ty.js → vendor-zod-CBbC1rE7.js} +2 -2
  161. package/dist/interface/ha/{404-Bg2Vlt5S.js → 404-B70KNhsW.js} +1 -1
  162. package/dist/interface/ha/{About-C6u2wgUi.js → About-DLNqqctZ.js} +6 -6
  163. package/dist/interface/ha/{Assistant-BCyiVnwD.js → Assistant-Duvvoz2B.js} +334 -319
  164. package/dist/interface/ha/{Automation-DU_qv5xD.js → Automation-DZ8zvsvo.js} +189 -189
  165. package/dist/interface/ha/{AutomationImport-BpDyhabF.js → AutomationImport-DOCdim5O.js} +6 -6
  166. package/dist/interface/ha/{AutomationStore-DPQsunpH.js → AutomationStore-Bjoubp-m.js} +7 -7
  167. package/dist/interface/ha/{AutomationStoreDetail-CASMQ-mD.js → AutomationStoreDetail-H-RWNpwm.js} +13 -13
  168. package/dist/interface/ha/{Automations-DSHVzwX4.js → Automations-GyofQfo7.js} +99 -112
  169. package/dist/interface/ha/{Camera-ESmteicm.js → Camera-Bo5nMQaU.js} +27 -27
  170. package/dist/interface/ha/{CameraConsole-BE_jl4Co.js → CameraConsole-BmDQ3rcS.js} +5 -5
  171. package/dist/interface/ha/{Cameras-otaj2xZO.js → Cameras-BfHoFjpC.js} +242 -242
  172. package/dist/interface/ha/{Camview-BU1027if.js → Camview-DVoIdM3o.js} +520 -520
  173. package/dist/interface/ha/{Config-BlEvHYVP.js → Config-CC8tQiOy.js} +110 -110
  174. package/dist/interface/ha/{ConfigActionAssistant-uDf5fgoJ.js → ConfigActionAssistant-hfsz38an.js} +4 -4
  175. package/dist/interface/ha/{ConfigActionCameraControl-BAQsXVLz.js → ConfigActionCameraControl-C0-wxlAS.js} +3 -3
  176. package/dist/interface/ha/{ConfigActionHttp-Dy2MZHSm.js → ConfigActionHttp-CM_3bIUq.js} +2 -2
  177. package/dist/interface/ha/{ConfigActionImageInput-B5kyV3Un.js → ConfigActionImageInput-B5306Z_7.js} +1 -1
  178. package/dist/interface/ha/{ConfigActionMqtt-DHCgh1xx.js → ConfigActionMqtt-DLiM83Kz.js} +4 -4
  179. package/dist/interface/ha/{ConfigActionNotification-mbA5PfcJ.js → ConfigActionNotification-36VBlfim.js} +3 -3
  180. package/dist/interface/ha/{ConfigActionNotificationControl-TLaL7tYm.js → ConfigActionNotificationControl-DRjDvA1H.js} +2 -2
  181. package/dist/interface/ha/{ConfigActionOutput-CJ40Fniw.js → ConfigActionOutput-BkGHERoJ.js} +1 -1
  182. package/dist/interface/ha/{ConfigActionPlugin-BwTd-mdQ.js → ConfigActionPlugin-Ds1_Pow7.js} +5 -5
  183. package/dist/interface/ha/{ConfigActionSensor-BI438ihg.js → ConfigActionSensor-22uKE0d0.js} +5 -5
  184. package/dist/interface/ha/{ConfigActionSnapshot-DJ4zI2a0.js → ConfigActionSnapshot-uTTsTfo2.js} +2 -2
  185. package/dist/interface/ha/{ConfigActionVariable-Bhy5jf_w.js → ConfigActionVariable-DNMJBiQV.js} +1 -1
  186. package/dist/interface/ha/{ConfigConditionIfElse-I7Qq8nfN.js → ConfigConditionIfElse-BVzmIDKK.js} +3 -3
  187. package/dist/interface/ha/{ConfigConditionSensorState-CTLP3ppx.js → ConfigConditionSensorState-Di7Ic1xI.js} +4 -4
  188. package/dist/interface/ha/{ConfigConditionSwitch-UUupXf1b.js → ConfigConditionSwitch-D8CcTHJ1.js} +5 -5
  189. package/dist/interface/ha/{ConfigSensorValueInput-CoHheDT0.js → ConfigSensorValueInput-DthsOthT.js} +4 -4
  190. package/dist/interface/ha/{ConfigTriggerDetection-Cg_jKNed.js → ConfigTriggerDetection-BDYanDEV.js} +2 -2
  191. package/dist/interface/ha/{ConfigTriggerGeofence-WlJbu3sC.js → ConfigTriggerGeofence-Binp0lYx.js} +5 -5
  192. package/dist/interface/ha/{ConfigTriggerMqtt-BeRJoceK.js → ConfigTriggerMqtt-BaPzSHbK.js} +1 -1
  193. package/dist/interface/ha/{ConfigTriggerSensor-k58gVKdG.js → ConfigTriggerSensor-DiTaTZXm.js} +1 -1
  194. package/dist/interface/ha/{ConfigTriggerSystem-Ckm5yoUm.js → ConfigTriggerSystem-CsdWiz-S.js} +2 -2
  195. package/dist/interface/ha/{ConfigTriggerWebhook-D425z-p1.js → ConfigTriggerWebhook-Ca0PsUmU.js} +6 -6
  196. package/dist/interface/ha/{Console-C1Ub4Rji.js → Console-0amlIoZR.js} +10 -10
  197. package/dist/interface/ha/{CuiAutomationRunsDialog-opy5qXwE.js → CuiAutomationRunsDialog-DNBuwkgL.js} +2 -2
  198. package/dist/interface/ha/{CuiBottomSheet-DbCwVXl1.js → CuiBottomSheet-CdXBYz4P.js} +1 -1
  199. package/dist/interface/ha/{CuiCameraRecordings-CifJLj7G.js → CuiCameraRecordings-D4ZB56nd.js} +14 -15
  200. package/dist/interface/ha/{CuiCameraShares-Xty8LRcn.js → CuiCameraShares-YmzZusZR.js} +7 -7
  201. package/dist/interface/ha/{CuiCameraTable-CqfxX0Yn.js → CuiCameraTable-DFzhCO3J.js} +9 -9
  202. package/dist/interface/ha/{CuiChartTable-ABHnLdR0.js → CuiChartTable-BvfJbFNS.js} +46 -44
  203. package/dist/interface/ha/{CuiConsole-3JwbeUYD.js → CuiConsole-DtxyD6Sd.js} +1 -1
  204. package/dist/interface/ha/{CuiDataTable-BwE7D2h5.js → CuiDataTable-CHvx6ALQ.js} +16 -10
  205. package/dist/interface/ha/{CuiPluginCard-bzxiy1yb.js → CuiPluginCard-B3vU57eD.js} +77 -77
  206. package/dist/interface/ha/{CuiPluginOAuthButton-DSxrzDmg.js → CuiPluginOAuthButton-DgOFfP5e.js} +6 -6
  207. package/dist/interface/ha/{CuiPluginTrustBadge-g0XkvDt8.js → CuiPluginTrustBadge-udmtgGHt.js} +1 -1
  208. package/dist/interface/ha/{CuiQRCode-uyRFbzd6.js → CuiQRCode-8yDZMC3o.js} +6 -6
  209. package/dist/interface/ha/{CuiSchema-DZIrlY8R.js → CuiSchema-0Hikg2mm.js} +138 -138
  210. package/dist/interface/ha/{CuiTopNavbarItem-C3a5NA7u.js → CuiTopNavbarItem-B139fVxP.js} +1 -1
  211. package/dist/interface/ha/{Faces-D2eca8MN.js → Faces-YdAf9USr.js} +107 -107
  212. package/dist/interface/ha/{FirstSteps-CdTE1cvw.js → FirstSteps-Dts6TJ6O.js} +7 -7
  213. package/dist/interface/ha/{Floorplan-BrEC2Au5.js → Floorplan-D6XXe8ni.js} +193 -193
  214. package/dist/interface/ha/{Instances-ClOsPOi8.js → Instances-DsIsonqp.js} +68 -68
  215. package/dist/interface/ha/{Logs-DnY1gTnb.js → Logs-Cyo3LC94.js} +11 -11
  216. package/dist/interface/ha/{Menu-cLDE76XZ.js → Menu-yh_sI9d9.js} +15 -20
  217. package/dist/interface/ha/{Metrics-pMQX_0m1.js → Metrics-VehQmsmN.js} +64 -64
  218. package/dist/interface/ha/{OAuthDeviceFlow-D1PGQ8r9.js → OAuthDeviceFlow-CXp9NvbY.js} +9 -9
  219. package/dist/interface/ha/{Plugin-DiC23P97.js → Plugin-BqvlXx43.js} +97 -97
  220. package/dist/interface/ha/{PluginConsole-B-lX5KJu.js → PluginConsole-Dx84BNoO.js} +4 -4
  221. package/dist/interface/ha/{PluginDetail-B_tVJf6y.js → PluginDetail-DUpDS2nD.js} +6 -6
  222. package/dist/interface/ha/{PluginSearch-n8nfjx9q.js → PluginSearch-Cvh0P9VB.js} +124 -124
  223. package/dist/interface/ha/{PluginUpdateProgress-BjsYyrRk.js → PluginUpdateProgress-CfyI2Qdp.js} +3 -3
  224. package/dist/interface/ha/{Plugins-CFhOUaqq.js → Plugins-DXreIUwr.js} +173 -173
  225. package/dist/interface/ha/{Recordings-B07eUJwH.js → Recordings-Cb8ifRcB.js} +225 -227
  226. package/dist/interface/ha/{SensorEdit-DFPiBXQD.js → SensorEdit-CsNXxcdj.js} +58 -58
  227. package/dist/interface/ha/{SensorHistory-B2FOK4Qa.js → SensorHistory-DToDalOm.js} +2 -2
  228. package/dist/interface/ha/{Sensors-DtzmTc-L.js → Sensors-B6giaowJ.js} +434 -434
  229. package/dist/interface/ha/{Settings-ClqSoFjT.js → Settings-CVed7MM_.js} +22 -22
  230. package/dist/interface/ha/{SettingsAccount-Bh8FfH7J.js → SettingsAccount-CvvsLPoT.js} +31 -31
  231. package/dist/interface/ha/{SettingsAppearance--FJgY8cj.js → SettingsAppearance-BDJeNGTd.js} +6 -6
  232. package/dist/interface/ha/{SettingsAssistant-ClDfxd_d.js → SettingsAssistant-B168p5HB.js} +615 -508
  233. package/dist/interface/ha/{SettingsBackup-BYM55pQ7.js → SettingsBackup-Bz_9xJ61.js} +14 -14
  234. package/dist/interface/ha/{SettingsList-CMSEKVCD.js → SettingsList-B42rajJc.js} +1 -1
  235. package/dist/interface/ha/{SettingsMqtt-CFpgJ-E5.js → SettingsMqtt-B5Qy6bxD.js} +148 -148
  236. package/dist/interface/ha/SettingsNotifications-C59UxYic.js +529 -0
  237. package/dist/interface/ha/{SettingsRecordings-Bz686yU7.js → SettingsRecordings-CkJGOiyQ.js} +7 -7
  238. package/dist/interface/ha/{SettingsRemote-DT4ZMjJO.js → SettingsRemote-Cc-qt3si.js} +231 -231
  239. package/dist/interface/ha/{SettingsSystem-CHctt06D.js → SettingsSystem-Cco2XXsS.js} +9 -9
  240. package/dist/interface/ha/{SettingsUsers-C_hvntON.js → SettingsUsers-BDh-3saR.js} +33 -33
  241. package/dist/interface/ha/{Terminal-B5FXq4-Z.js → Terminal-D2U-kFPW.js} +8 -8
  242. package/dist/interface/ha/Training-DWcaCI-3.js +1499 -0
  243. package/dist/interface/ha/{Updates-D0osNjqS.js → Updates-DGHNcvO9.js} +13 -13
  244. package/dist/interface/ha/{VariableInput-BK0qqMc7.js → VariableInput-Bujz1T1I.js} +1 -1
  245. package/dist/interface/ha/{VersionsHandler-B-vpKHJN.js → VersionsHandler-CXvbeKbl.js} +10 -10
  246. package/dist/interface/ha/{VirtualSensorCreate-Bp2201iM.js → VirtualSensorCreate-DOYONbgu.js} +2 -2
  247. package/dist/interface/ha/{Workers-BQ_luGWk.js → Workers-tQbC3WS6.js} +90 -90
  248. package/dist/interface/ha/{api-JPS8NpNG.js → api-BI6_Fcag.js} +8979 -8895
  249. package/dist/interface/ha/{api-BufZW7-A.js → api-DfJZj7ht.js} +1 -1
  250. package/dist/interface/ha/{assistant-BXVGCw2q.js → assistant-BqSg4N8v.js} +25 -25
  251. package/dist/interface/ha/{auth-CJC9G9BA.js → auth-BFoSqfzS.js} +34 -34
  252. package/dist/interface/ha/{automationBlueprint-DWuBiu_Q.js → automationBlueprint-Q0yt2MdH.js} +3 -3
  253. package/dist/interface/ha/cameraui-cards.js +1 -1
  254. package/dist/interface/ha/{cards-CGP6dWjy.js → cards-BW9I5B5Z.js} +114 -114
  255. package/dist/interface/ha/{config-BVURO_DZ.js → config-CeNHEP9A.js} +9 -9
  256. package/dist/interface/ha/{dist-Ca4K4HIm.js → dist-BV3OfApt.js} +1 -1
  257. package/dist/interface/ha/{mqtt-DY6EvMC9.js → mqtt-BkYa2CXH.js} +7 -7
  258. package/dist/interface/ha/{notifications-BdIqgnrC.js → notifications-E3WSCGpc.js} +12 -12
  259. package/dist/interface/ha/pause-Ch6v65wA.js +19 -0
  260. package/dist/interface/ha/{pinia-CqffEnzx.js → pinia-DoDLbPZ3.js} +11 -7
  261. package/dist/interface/ha/{plugins-Bnq2Iw00.js → plugins-2jjU7TfW.js} +30 -30
  262. package/dist/interface/ha/{rooms-AiJ5Tfir.js → rooms-BkEw1ev-.js} +1 -1
  263. package/dist/interface/ha/{server-BHhFn2RZ.js → server-CuK4o2fS.js} +15 -15
  264. package/dist/interface/ha/{types-7oMK8VO-.js → types-BRHWeX0a.js} +36 -22
  265. package/dist/interface/ha/{ungrouped-hib17Nvu.js → ungrouped-BDwep3kg.js} +195 -213
  266. package/dist/interface/ha/{updates-DvnEEUsx.js → updates-R4xTxour.js} +24 -24
  267. package/dist/interface/ha/{useAppVersion-BmWXr96y.js → useAppVersion-uaFjqUpx.js} +1 -1
  268. package/dist/interface/ha/{useLogsSocket-BKlJKGCB.js → useLogsSocket-BZq9GXfy.js} +1 -1
  269. package/dist/interface/ha/{useNavLayout-Dt0NH-G5.js → useNavLayout-BJdDE__R.js} +2 -2
  270. package/dist/interface/ha/{useServerRestart-DWs2dqQc.js → useServerRestart-DDCKnE6c.js} +1 -1
  271. package/dist/interface/ha/{useTabSwipe-vX79p6V_.js → useTabSwipe-CEH6ltIZ.js} +1 -1
  272. package/dist/interface/ha/{useUpdateChannel-CHlRp8uj.js → useUpdateChannel-CHt1il2V.js} +2 -2
  273. package/dist/interface/ha/{useUpdatesSocket-B40Cx-2L.js → useUpdatesSocket-BnVaNioY.js} +1 -1
  274. package/dist/interface/ha/{useUserOptions-hXz79rIV.js → useUserOptions-C7cQ1P3Q.js} +1 -1
  275. package/dist/interface/index.html +34 -34
  276. package/dist/interface/sw.js +1 -1
  277. package/dist/server/package.json +6 -7
  278. package/dist/server/requirements.txt +1 -1
  279. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +2 -0
  280. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +2 -0
  281. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/frames.py +9 -5
  282. package/dist/server/src/api/controllers/assistant.controller.js +2 -1
  283. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  284. package/dist/server/src/api/controllers/plugins.controller.js +3 -3
  285. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  286. package/dist/server/src/api/database/index.d.ts +1 -1
  287. package/dist/server/src/api/database/index.js +1 -1
  288. package/dist/server/src/api/database/index.js.map +1 -1
  289. package/dist/server/src/api/database/migrations/v2-2-3.d.ts +3 -0
  290. package/dist/server/src/api/database/migrations/v2-2-3.js +22 -0
  291. package/dist/server/src/api/database/migrations/v2-2-3.js.map +1 -0
  292. package/dist/server/src/api/schemas/cameras.schema.d.ts +32 -16
  293. package/dist/server/src/api/schemas/cameras.schema.js +5 -5
  294. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  295. package/dist/server/src/api/websocket/nsp/logs.d.ts +5 -2
  296. package/dist/server/src/api/websocket/nsp/logs.js +20 -5
  297. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
  298. package/dist/server/src/api/websocket/nsp/training.d.ts +1 -1
  299. package/dist/server/src/api/websocket/nsp/training.js +3 -2
  300. package/dist/server/src/api/websocket/nsp/training.js.map +1 -1
  301. package/dist/server/src/assistant/manager.d.ts +1 -0
  302. package/dist/server/src/assistant/manager.js +24 -2
  303. package/dist/server/src/assistant/manager.js.map +1 -1
  304. package/dist/server/src/assistant/reasoning.d.ts +1 -1
  305. package/dist/server/src/assistant/reasoning.js +6 -3
  306. package/dist/server/src/assistant/reasoning.js.map +1 -1
  307. package/dist/server/src/assistant/retry.d.ts +4 -0
  308. package/dist/server/src/assistant/retry.js +3 -0
  309. package/dist/server/src/assistant/retry.js.map +1 -1
  310. package/dist/server/src/assistant/tool-names.d.ts +2 -0
  311. package/dist/server/src/assistant/tool-names.js +23 -0
  312. package/dist/server/src/assistant/tool-names.js.map +1 -0
  313. package/dist/server/src/assistant/tools/api.js +2 -0
  314. package/dist/server/src/assistant/tools/api.js.map +1 -1
  315. package/dist/server/src/assistant/tools/docs.js +1 -0
  316. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  317. package/dist/server/src/assistant/tools/memory.js +1 -0
  318. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  319. package/dist/server/src/assistant/tools/settings.js +1 -0
  320. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  321. package/dist/server/src/automations/utilities/imageInput.js +4 -2
  322. package/dist/server/src/automations/utilities/imageInput.js.map +1 -1
  323. package/dist/server/src/camera/controller.d.ts +3 -0
  324. package/dist/server/src/camera/controller.js +41 -28
  325. package/dist/server/src/camera/controller.js.map +1 -1
  326. package/dist/server/src/camera/index.d.ts +1 -7
  327. package/dist/server/src/camera/index.js +0 -13
  328. package/dist/server/src/camera/index.js.map +1 -1
  329. package/dist/server/src/camera/privacy/snapshot.js +4 -2
  330. package/dist/server/src/camera/privacy/snapshot.js.map +1 -1
  331. package/dist/server/src/camera/snapshot-store.d.ts +22 -0
  332. package/dist/server/src/camera/snapshot-store.js +78 -0
  333. package/dist/server/src/camera/snapshot-store.js.map +1 -0
  334. package/dist/server/src/camera/streaming/fmp4-session.d.ts +2 -1
  335. package/dist/server/src/camera/streaming/fmp4-session.js +4 -0
  336. package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
  337. package/dist/server/src/camera/streaming/rtp-session.js +1 -0
  338. package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
  339. package/dist/server/src/manager/trainingCandidateManager.js +17 -13
  340. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
  341. package/dist/server/src/manager/types.d.ts +4 -0
  342. package/dist/server/src/rpc/interfaces/device.d.ts +1 -0
  343. package/dist/server/src/sensors/registry.js +2 -2
  344. package/dist/server/src/sensors/registry.js.map +1 -1
  345. package/dist/server/src/utils/image.d.ts +1 -0
  346. package/dist/server/src/utils/image.js +95 -0
  347. package/dist/server/src/utils/image.js.map +1 -0
  348. package/package.json +6 -7
  349. package/dist/interface/assets/AutomationStoreDetail-btcIglkw.js +0 -2
  350. package/dist/interface/assets/Automations-CKpwXTyc.js +0 -2
  351. package/dist/interface/assets/Camera-BEP_HAQm.js +0 -2
  352. package/dist/interface/assets/Cameras-DJreIgtW.js +0 -651
  353. package/dist/interface/assets/Camview-D4VNMv_l.js +0 -1
  354. package/dist/interface/assets/Console-Y1IutnkC.js +0 -1
  355. package/dist/interface/assets/CuiAssistantConversation-C4RYcMAM.js +0 -5
  356. package/dist/interface/assets/CuiBottomSheet-S8bM23jj.js +0 -1
  357. package/dist/interface/assets/CuiCameraPipCard-HTjvF3yG.js +0 -1
  358. package/dist/interface/assets/CuiCameraRecordings-B7BhgPpP.css +0 -1
  359. package/dist/interface/assets/CuiCameraRecordings-Cx6FYz3Y.js +0 -1
  360. package/dist/interface/assets/CuiCameraShares-J728G9wF.js +0 -1
  361. package/dist/interface/assets/CuiCameraTable-CKur0qLE.js +0 -1
  362. package/dist/interface/assets/CuiChartTable-DCGY-zVy.css +0 -1
  363. package/dist/interface/assets/CuiDataTable-BLyeEEAp.js +0 -1
  364. package/dist/interface/assets/CuiDataTable-DbkFXZeg.css +0 -1
  365. package/dist/interface/assets/CuiLightControl-C1YSJSWd.js +0 -1
  366. package/dist/interface/assets/CuiPluginCard-enc00hbc.js +0 -2
  367. package/dist/interface/assets/CuiSchema-CRHUMY0B.js +0 -1
  368. package/dist/interface/assets/Faces-fMMd6-PY.js +0 -1
  369. package/dist/interface/assets/Floorplan-BQbOWCCf.js +0 -1
  370. package/dist/interface/assets/Menu-B3VA0LMx.js +0 -1
  371. package/dist/interface/assets/Metrics-C0q2BdKH.js +0 -9
  372. package/dist/interface/assets/OAuthDeviceFlow-ZiCl4400.js +0 -1
  373. package/dist/interface/assets/Plugin-C0CPlt4f.js +0 -1
  374. package/dist/interface/assets/PluginDetail-DDh6PfMd.js +0 -2
  375. package/dist/interface/assets/PluginSearch-BR_ei8Pa.js +0 -1
  376. package/dist/interface/assets/PluginSearch-C2AXz2KG.js +0 -2
  377. package/dist/interface/assets/Plugins-CN1YIfNk.js +0 -1
  378. package/dist/interface/assets/Recordings-jhxwdrQY.js +0 -1
  379. package/dist/interface/assets/SettingsAccount-CJ_fPrT-.js +0 -1
  380. package/dist/interface/assets/SettingsAccount-CYn81m0Z.js +0 -1
  381. package/dist/interface/assets/SettingsAppearance-DFe8JsT5.js +0 -1
  382. package/dist/interface/assets/SettingsAssistant-CDyI6fee.css +0 -1
  383. package/dist/interface/assets/SettingsAssistant-Dm4oINqB.js +0 -1
  384. package/dist/interface/assets/SettingsMqtt-ByQYIRkm.js +0 -1
  385. package/dist/interface/assets/SettingsRemote-7iDccnV9.js +0 -2
  386. package/dist/interface/assets/SettingsUsers-yYobKcPv.js +0 -1
  387. package/dist/interface/assets/Training-BUhrkDzA.css +0 -1
  388. package/dist/interface/assets/Training-SOWa6Ay1.js +0 -1
  389. package/dist/interface/assets/Workers-D7mXpfvC.js +0 -2
  390. package/dist/interface/assets/api-Cl7JjXOQ.js +0 -4
  391. package/dist/interface/assets/cloudHandoff-CGMLCwMb.js +0 -1
  392. package/dist/interface/assets/main-W8WcKa2g.js +0 -3
  393. package/dist/interface/assets/rooms-D_7As09p.js +0 -1
  394. package/dist/interface/assets/types-BEy4uGJ0.js +0 -1
  395. package/dist/interface/assets/ungrouped-BJyBDv5e.js +0 -1
  396. package/dist/interface/assets/useBackupRestore-D305pYHT.js +0 -1
  397. package/dist/interface/ha/SettingsNotifications-CzgsBNtW.js +0 -529
  398. package/dist/interface/ha/Training-BgvpsKPM.js +0 -1469
@@ -6,27 +6,27 @@ import { t as N } from "./message-BExXUXHN.js";
6
6
  import { t as ne } from "./chevron-down-CN3LNAsG.js";
7
7
  import { t as P } from "./tag-Bko2QYOK.js";
8
8
  import { t as F } from "./history-Bm6QaZ6b.js";
9
- import { Dn as I, Dr as re, Et as L, J as R, Jn as z, Or as B, Q as V, Rr as ie, Tt as ae, V as oe, Yt as se, Zi as H, ar as ce, g as U, hr as W, it as G, li as K, mr as le, mt as ue, p as q, r as J, rr as de, vi as fe, vr as Y, wt as pe, yr as me, zr as he } from "./api-JPS8NpNG.js";
10
- import { A as ge, b as _e, u as ve } from "./intercomService-Dwd0bhSN.js";
11
- import { G as ye, U as be, W as xe, r as Se } from "./pinia-CqffEnzx.js";
12
- import { n as Ce } from "./vue-i18n-BBObX4QY.js";
13
- import { i as we } from "./alert-outline-BssBb-kV.js";
14
- import { p as Te, s as Ee } from "./eventIcons-DrjNuTS2.js";
15
- import { t as De } from "./button-DJDZxmKj.js";
16
- import { n as Oe, t as ke } from "./inputicon-BPVltPdr.js";
17
- import { t as Ae } from "./inputtext-vdcrNX6K.js";
18
- import { t as je } from "./close-C_ajB9j7.js";
19
- import { t as Me } from "./select-CaVzuLaS.js";
20
- import { t as Ne } from "./multiselect-B0fAnW75.js";
21
- import { t as Pe } from "./textarea-DrKQ6YMZ.js";
22
- import { t as Fe } from "./clock-outline-CLOrwuhP.js";
23
- import { t as Ie } from "./source-branch-CimaS9J1.js";
24
- import { a as Le, i as Re, n as ze, o as Be, r as Ve, t as He } from "./assistant-BXVGCw2q.js";
9
+ import { Br as I, Dt as re, Et as L, J as R, On as z, Or as ie, Q as B, Qi as V, Tt as ae, V as oe, Vn as se, Xt as H, at as ce, br as U, g as W, gr as le, hr as G, ht as ue, ir as de, kr as K, or as fe, p as q, r as pe, ui as me, yi as he, yr as J, zr as ge } from "./api-BI6_Fcag.js";
10
+ import { A as _e, b as ve, u as ye } from "./intercomService-Dwd0bhSN.js";
11
+ import { G as be, U as xe, W as Se, r as Ce } from "./pinia-DoDLbPZ3.js";
12
+ import { n as we } from "./vue-i18n-BBObX4QY.js";
13
+ import { i as Te } from "./alert-outline-BssBb-kV.js";
14
+ import { p as Ee, s as De } from "./eventIcons-DrjNuTS2.js";
15
+ import { t as Oe } from "./button-DJDZxmKj.js";
16
+ import { n as ke, t as Ae } from "./inputicon-BPVltPdr.js";
17
+ import { t as je } from "./inputtext-vdcrNX6K.js";
18
+ import { t as Me } from "./close-C_ajB9j7.js";
19
+ import { t as Ne } from "./select-CaVzuLaS.js";
20
+ import { t as Pe } from "./multiselect-B0fAnW75.js";
21
+ import { t as Fe } from "./textarea-DrKQ6YMZ.js";
22
+ import { t as Ie } from "./clock-outline-CLOrwuhP.js";
23
+ import { t as Le } from "./source-branch-CimaS9J1.js";
24
+ import { a as Re, i as ze, n as Be, o as Ve, r as He, t as Y } from "./assistant-BqSg4N8v.js";
25
25
  import { t as Ue } from "./search-DMJuYUDF.js";
26
26
  import { t as We } from "./content-copy-ChfuNPUb.js";
27
27
  import { t as Ge } from "./CuiMarkdownContent-CU4eGw6l.js";
28
28
  import { t as Ke } from "./brain-DBagansp.js";
29
- import { u as qe } from "./cards-CGP6dWjy.js";
29
+ import { u as qe } from "./cards-BW9I5B5Z.js";
30
30
  import { c as Je, d as Ye, i as Xe, l as Ze, n as Qe, r as $e, t as et, u as tt } from "./types-B9Rna2FN.js";
31
31
  import { t as nt } from "./pencil-outline-3AYc7WXi.js";
32
32
  import { t as rt } from "./back-filled-B-jI6Dqb.js";
@@ -60,7 +60,7 @@ var ft = d({
60
60
  }, vt = { class: "flex flex-1 flex-col gap-1" }, yt = ["for"], bt = { class: "flex flex-1 flex-col gap-1" }, xt = ["for"], St = { class: "flex items-center gap-2" }, Ct = {
61
61
  key: 1,
62
62
  class: "flex-1"
63
- }, wt = /*#__PURE__*/ Y(/* @__PURE__ */ A({
63
+ }, wt = /*#__PURE__*/ J(/* @__PURE__ */ A({
64
64
  __name: "CuiAssistantQuestion",
65
65
  props: {
66
66
  question: {},
@@ -78,7 +78,7 @@ var ft = d({
78
78
  v.value && c("answer", v.value);
79
79
  }
80
80
  return (a, s) => {
81
- let _ = it, y = De, S = Ae;
81
+ let _ = it, y = Oe, S = je;
82
82
  return i(), x("div", pt, [
83
83
  T("div", mt, [M(_, { class: "w-5 h-5 shrink-0 text-muted mt-0.5" }), T("div", ht, o(e.question.question), 1)]),
84
84
  g(f).length ? (i(), x("div", gt, [(i(!0), x(C, null, r(g(f), (t) => (i(), p(y, {
@@ -161,7 +161,7 @@ var ft = d({
161
161
  }, jt = {
162
162
  key: 1,
163
163
  class: "mt-2 flex flex-col gap-1"
164
- }, Mt = { class: "flex justify-end gap-2" }, Nt = /*#__PURE__*/ Y(/* @__PURE__ */ A({
164
+ }, Mt = { class: "flex justify-end gap-2" }, Nt = /*#__PURE__*/ J(/* @__PURE__ */ A({
165
165
  __name: "CuiAssistantApproval",
166
166
  props: {
167
167
  toolName: {},
@@ -200,7 +200,7 @@ var ft = d({
200
200
  r("approve", l.value === s.value ? void 0 : e);
201
201
  }
202
202
  return (t, n) => {
203
- let _ = Ee, y = Pe, b = N, S = De;
203
+ let _ = De, y = Fe, b = N, S = Oe;
204
204
  return i(), x("div", Tt, [T("div", Et, [M(_, { class: "w-5 h-5 shrink-0 text-warning mt-0.5" }), T("div", Dt, [
205
205
  T("div", Ot, o(t.$t("views.assistant.approval_title", { tool: g(c) })), 1),
206
206
  T("div", kt, o(t.$t("views.assistant.approval_hint")), 1),
@@ -309,9 +309,9 @@ var Ht = d({
309
309
  //#endregion
310
310
  //#region src/composables/useAssistantReferences.ts
311
311
  function Ut() {
312
- let e = he(), { t } = Ce(), n = fe(), r = ue(), { openEpisodePlayer: i } = V(), a = z("@camera.ui/camera-ui-nvr"), { download: o } = le(), s = j(null);
312
+ let e = I(), { t } = we(), n = he(), r = ue(), { openEpisodePlayer: i } = B(), a = se("@camera.ui/camera-ui-nvr"), { download: o } = G(), s = j(null);
313
313
  async function c() {
314
- let e = await se({
314
+ let e = await H({
315
315
  parameter: {
316
316
  page: 1,
317
317
  pageSize: -1
@@ -321,7 +321,7 @@ function Ut() {
321
321
  return new Map(e.result.map((e) => [e._id, e]));
322
322
  }
323
323
  function l(e, t) {
324
- r.openComponentDialog(G, {
324
+ r.openComponentDialog(ce, {
325
325
  data: {
326
326
  title: e.name,
327
327
  dedupeKey: `camera-event:${e._id}:${t}`,
@@ -390,11 +390,11 @@ function Ut() {
390
390
  }
391
391
  //#endregion
392
392
  //#region src/components/CuiAssistantReferences/CuiAssistantReferences.vue?vue&type=script&setup=true&lang.ts
393
- var Wt = { class: "flex flex-wrap gap-1.5" }, Gt = ["disabled", "onClick"], Kt = { class: "truncate max-w-[16rem]" }, qt = /*#__PURE__*/ Y(/* @__PURE__ */ A({
393
+ var Wt = { class: "flex flex-wrap gap-1.5" }, Gt = ["disabled", "onClick"], Kt = { class: "truncate max-w-[16rem]" }, qt = /*#__PURE__*/ J(/* @__PURE__ */ A({
394
394
  __name: "CuiAssistantReferences",
395
395
  props: { references: {} },
396
396
  setup(e) {
397
- let { t } = Ce(), { busy: n, open: a } = Ut();
397
+ let { t } = we(), { busy: n, open: a } = Ut();
398
398
  function s(e) {
399
399
  return e.kind === "camera" ? t("views.assistant.open_camera") : e.kind === "episode" ? t("views.assistant.open_episode") : e.kind === "download" ? t("views.assistant.download_clip") : t("views.assistant.open_recording");
400
400
  }
@@ -418,7 +418,7 @@ var Wt = { class: "flex flex-wrap gap-1.5" }, Gt = ["disabled", "onClick"], Kt =
418
418
  })), T("span", Kt, o(e.label || s(e)), 1)], 8, Gt))), 128))]);
419
419
  };
420
420
  }
421
- }), [["__scopeId", "data-v-aae1a6dd"]]), Jt = { class: "flex items-center gap-3" }, Yt = { class: "flex min-w-0 flex-1 flex-col" }, Xt = { class: "text-sm font-medium" }, Zt = { class: "text-xs" }, Qt = /*#__PURE__*/ Y(/* @__PURE__ */ A({
421
+ }), [["__scopeId", "data-v-aae1a6dd"]]), Jt = { class: "flex items-center gap-3" }, Yt = { class: "flex min-w-0 flex-1 flex-col" }, Xt = { class: "text-sm font-medium" }, Zt = { class: "text-xs" }, Qt = /*#__PURE__*/ J(/* @__PURE__ */ A({
422
422
  __name: "CuiAssistantNotice",
423
423
  props: {
424
424
  title: {},
@@ -445,7 +445,7 @@ var Wt = { class: "flex flex-wrap gap-1.5" }, Gt = ["disabled", "onClick"], Kt =
445
445
  modelId: {}
446
446
  },
447
447
  setup(e) {
448
- let t = new He(), n = e, r = U(), { user: a } = Se(r), { data: o } = t.getAssistantInfoQuery(), s = t.patchAssistantInfoMutation(), c = _(() => a.value?.role === "admin" || a.value?.role === "master"), l = _(() => o.value?.settings.models ?? []), u = _(() => l.value.find((e) => e._id === n.modelId) ?? (o.value ? Ze(o.value.settings) : void 0)), d = _(() => n.setting === "sendImages" ? u.value?.sendImages === !0 : o.value?.settings[n.setting] === !0);
448
+ let t = new Y(), n = e, r = W(), { user: a } = Ce(r), { data: o } = t.getAssistantInfoQuery(), s = t.patchAssistantInfoMutation(), c = _(() => a.value?.role === "admin" || a.value?.role === "master"), l = _(() => o.value?.settings.models ?? []), u = _(() => l.value.find((e) => e._id === n.modelId) ?? (o.value ? Ze(o.value.settings) : void 0)), d = _(() => n.setting === "sendImages" ? u.value?.sendImages === !0 : o.value?.settings[n.setting] === !0);
449
449
  async function f(e) {
450
450
  if (n.setting !== "sendImages") {
451
451
  await s.mutateAsync({ [n.setting]: e });
@@ -458,7 +458,7 @@ var Wt = { class: "flex flex-wrap gap-1.5" }, Gt = ["disabled", "onClick"], Kt =
458
458
  })) });
459
459
  }
460
460
  return (t, n) => {
461
- let r = I, a = Qt;
461
+ let r = z, a = Qt;
462
462
  return i(), p(a, {
463
463
  severity: g(d) ? "success" : "warn",
464
464
  title: t.$t(`views.assistant.setting_${e.setting}_title`),
@@ -536,7 +536,7 @@ var ln = d({
536
536
  }, bn = {
537
537
  key: 0,
538
538
  class: "mt-3 text-xs text-muted"
539
- }, xn = /*#__PURE__*/ Y(/* @__PURE__ */ A({
539
+ }, xn = /*#__PURE__*/ J(/* @__PURE__ */ A({
540
540
  __name: "CuiAssistantCard",
541
541
  props: {
542
542
  card: {},
@@ -555,7 +555,7 @@ var ln = d({
555
555
  return e === "ok" ? "bg-success" : e === "warn" ? "bg-warning" : e === "error" ? "bg-danger" : "cui-assistant-card-dot-plain";
556
556
  }
557
557
  return (t, d) => {
558
- let f = ln, h = on, _ = nn, y = ce;
558
+ let f = ln, h = on, _ = nn, y = fe;
559
559
  return i(), x("div", un, [
560
560
  T("div", dn, [e.card.kind === "system_health" ? (i(), p(f, {
561
561
  key: 0,
@@ -632,7 +632,7 @@ var wn = d({
632
632
  }, Fn = {
633
633
  key: 4,
634
634
  class: "cui-assistant-tool-details px-3 py-2 flex flex-col gap-2"
635
- }, In = { key: 0 }, Ln = { class: "text-xs uppercase tracking-wide text-muted" }, Rn = { class: "cui-assistant-pre mt-1 max-h-64 overflow-auto rounded-lg p-2 text-xs whitespace-pre-wrap break-words font-mono" }, zn = { key: 1 }, Bn = { class: "text-xs uppercase tracking-wide text-muted" }, Vn = { class: "cui-assistant-pre mt-1 max-h-64 overflow-auto rounded-lg p-2 text-xs whitespace-pre-wrap break-words font-mono" }, Hn = /*#__PURE__*/ Y(/* @__PURE__ */ A({
635
+ }, In = { key: 0 }, Ln = { class: "text-xs uppercase tracking-wide text-muted" }, Rn = { class: "cui-assistant-pre mt-1 max-h-64 overflow-auto rounded-lg p-2 text-xs whitespace-pre-wrap break-words font-mono" }, zn = { key: 1 }, Bn = { class: "text-xs uppercase tracking-wide text-muted" }, Vn = { class: "cui-assistant-pre mt-1 max-h-64 overflow-auto rounded-lg p-2 text-xs whitespace-pre-wrap break-words font-mono" }, Hn = /*#__PURE__*/ J(/* @__PURE__ */ A({
636
636
  __name: "CuiAssistantToolCall",
637
637
  props: {
638
638
  part: {},
@@ -653,7 +653,7 @@ var wn = d({
653
653
  }
654
654
  },
655
655
  setup(e) {
656
- let t = e, { t: n } = Ce(), { openImageDialog: a } = ue(), s = j(!1), c = _(() => Xe(t.part.name)), l = _(() => [
656
+ let t = e, { t: n } = we(), { openImageDialog: a } = ue(), s = j(!1), c = _(() => Xe(t.part.name)), l = _(() => [
657
657
  "awaiting-input",
658
658
  "input-streaming",
659
659
  "input-complete",
@@ -683,7 +683,7 @@ var wn = d({
683
683
  } });
684
684
  }
685
685
  return (t, n) => {
686
- let a = me, l = Te, _ = Ee, S = wn, D = ot, k = st, A = ne, j = xn, ee = $t, te = Qt, N = qt;
686
+ let a = U, l = Ee, _ = De, S = wn, D = ot, k = st, A = ne, j = xn, ee = $t, te = Qt, N = qt;
687
687
  return i(), x("div", Tn, [
688
688
  T("button", {
689
689
  type: "button",
@@ -821,7 +821,7 @@ var Yn = {
821
821
  }, Cr = {
822
822
  key: 0,
823
823
  class: "cui-assistant-usage text-[11px] tabular-nums text-muted"
824
- }, wr = { class: "flex gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100" }, Tr = 6, Er = /*#__PURE__*/ Y(/* @__PURE__ */ A({
824
+ }, wr = { class: "flex gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100" }, Tr = 6, Er = /*#__PURE__*/ J(/* @__PURE__ */ A({
825
825
  __name: "CuiAssistantMessage",
826
826
  props: {
827
827
  message: {},
@@ -846,7 +846,7 @@ var Yn = {
846
846
  "continue"
847
847
  ],
848
848
  setup(e, { emit: a }) {
849
- let s = e, u = a, { t: d } = Ce(), { openImageDialog: f } = ue(), y = [
849
+ let s = e, u = a, { t: d } = we(), { openImageDialog: f } = ue(), y = [
850
850
  "awaiting-input",
851
851
  "input-streaming",
852
852
  "input-complete",
@@ -931,17 +931,17 @@ var Yn = {
931
931
  function z(e) {
932
932
  return `$${e.toFixed(e < .01 ? 4 : 3)}`;
933
933
  }
934
- function B(e) {
934
+ function ie(e) {
935
935
  return !!s.busy && e.items.some((e) => !e.result && y.includes(e.part.state));
936
936
  }
937
- async function V() {
937
+ async function B() {
938
938
  O.value = k.value, S.value = !0, await c(), b.value?.$el.focus();
939
939
  }
940
- function ie() {
940
+ function V() {
941
941
  let e = O.value.trim();
942
942
  e && (S.value = !1, e !== k.value && u("edit", e));
943
943
  }
944
- function ae(e) {
944
+ function se(e) {
945
945
  f({ data: {
946
946
  title: e.alt,
947
947
  src: e.src,
@@ -949,11 +949,11 @@ var Yn = {
949
949
  hideCancelButton: !0
950
950
  } });
951
951
  }
952
- async function se() {
953
- await J(P.value);
952
+ async function H() {
953
+ await pe(P.value);
954
954
  }
955
955
  return (a, s) => {
956
- let c = Pe, d = De, f = Gn, _ = Ht, y = nt, w = Ie, j = oe, N = Ge, R = Hn, z = me, H = ot, ce = xn, U = $t, W = Qt, G = qt, K = Ye, le = pe, ue = at, q = te;
956
+ let c = Fe, d = Oe, f = Gn, _ = Ht, y = nt, w = Le, j = oe, N = Ge, R = Hn, z = U, ce = ot, W = xn, le = $t, G = Qt, ue = qt, de = Ye, K = ae, fe = at, q = te;
957
957
  return e.message.role === "user" ? (i(), x("div", Yn, [g(S) ? (i(), x("div", Xn, [M(c, {
958
958
  ref_key: "editRef",
959
959
  ref: b,
@@ -962,7 +962,7 @@ var Yn = {
962
962
  "auto-resize": "",
963
963
  rows: "2",
964
964
  class: "w-full text-[15px] leading-relaxed",
965
- onKeydown: [n(t(ie, ["exact", "prevent"]), ["enter"]), s[1] ||= n(t((e) => S.value = !1, ["prevent"]), ["esc"])]
965
+ onKeydown: [n(t(V, ["exact", "prevent"]), ["enter"]), s[1] ||= n(t((e) => S.value = !1, ["prevent"]), ["esc"])]
966
966
  }, null, 8, ["modelValue", "onKeydown"]), T("div", Zn, [M(d, {
967
967
  type: "button",
968
968
  size: "small",
@@ -975,7 +975,7 @@ var Yn = {
975
975
  size: "small",
976
976
  label: a.$t("views.assistant.edit_send"),
977
977
  disabled: !g(O).trim(),
978
- onClick: ie
978
+ onClick: V
979
979
  }, null, 8, ["label", "disabled"])])])) : (i(), x("div", Qn, [
980
980
  D(o(g(k)) + " ", 1),
981
981
  g(A).length ? (i(), x("div", $n, [(i(!0), x(C, null, r(g(A), (e) => (i(), x("img", {
@@ -1001,7 +1001,7 @@ var Yn = {
1001
1001
  text: "",
1002
1002
  rounded: "",
1003
1003
  class: "cui-icon-md text-muted",
1004
- onClick: V
1004
+ onClick: B
1005
1005
  }, {
1006
1006
  icon: v(() => [M(y, { class: "w-3.5 h-3.5" })]),
1007
1007
  _: 1
@@ -1077,11 +1077,11 @@ var Yn = {
1077
1077
  class: "cui-assistant-steps rounded-xl text-sm",
1078
1078
  open: e.streaming
1079
1079
  }, [T("summary", lr, [
1080
- B(t) ? (i(), p(z, {
1080
+ ie(t) ? (i(), p(z, {
1081
1081
  key: 0,
1082
1082
  class: "w-4 h-4 m-0 shrink-0",
1083
1083
  "stroke-width": "6"
1084
- })) : (i(), p(H, {
1084
+ })) : (i(), p(ce, {
1085
1085
  key: 1,
1086
1086
  class: "w-4 h-4 shrink-0 text-success"
1087
1087
  })),
@@ -1120,29 +1120,29 @@ var Yn = {
1120
1120
  key: e.src,
1121
1121
  type: "button",
1122
1122
  class: "cui-assistant-thumb cursor-pointer overflow-hidden rounded-lg",
1123
- onClick: (t) => ae(e)
1123
+ onClick: (t) => se(e)
1124
1124
  }, [T("img", {
1125
1125
  src: e.src,
1126
1126
  alt: e.alt,
1127
1127
  class: "h-32 w-auto object-cover",
1128
1128
  loading: "lazy"
1129
1129
  }, null, 8, br)], 8, yr))), 128))])) : m("", !0),
1130
- (i(!0), x(C, null, r(g(F).cards, (e, t) => (i(), p(ce, {
1130
+ (i(!0), x(C, null, r(g(F).cards, (e, t) => (i(), p(W, {
1131
1131
  key: t,
1132
1132
  card: e,
1133
1133
  references: g(F).all
1134
1134
  }, null, 8, ["card", "references"]))), 128)),
1135
- (i(!0), x(C, null, r(g(F).settings, (t) => (i(), p(U, {
1135
+ (i(!0), x(C, null, r(g(F).settings, (t) => (i(), p(le, {
1136
1136
  key: t,
1137
1137
  setting: t,
1138
1138
  "model-id": e.modelId
1139
1139
  }, null, 8, ["setting", "model-id"]))), 128)),
1140
- (i(!0), x(C, null, r(g(F).notices, (e) => (i(), p(W, {
1140
+ (i(!0), x(C, null, r(g(F).notices, (e) => (i(), p(G, {
1141
1141
  key: `${e.capability}:${e.model}`,
1142
1142
  title: a.$t(`views.assistant.notice_${e.capability}_title`, { model: e.model }),
1143
1143
  text: a.$t(`views.assistant.notice_${e.capability}_text`)
1144
1144
  }, null, 8, ["title", "text"]))), 128)),
1145
- g(F).references.length ? (i(), p(G, {
1145
+ g(F).references.length ? (i(), p(ue, {
1146
1146
  key: 1,
1147
1147
  references: g(F).references
1148
1148
  }, null, 8, ["references"])) : m("", !0)
@@ -1157,7 +1157,7 @@ var Yn = {
1157
1157
  disabled: e.busy,
1158
1158
  onClick: s[5] ||= (e) => u("continue")
1159
1159
  }, {
1160
- icon: v(() => [M(K, { class: "w-3.5 h-3.5" })]),
1160
+ icon: v(() => [M(de, { class: "w-3.5 h-3.5" })]),
1161
1161
  _: 1
1162
1162
  }, 8, ["label", "disabled"])])) : m("", !0),
1163
1163
  !e.streaming && (g(P) || e.stopped) ? (i(), x("div", Sr, [g(re) ? E((i(), x("span", Cr, [D(o(g(re)), 1)])), [[
@@ -1166,7 +1166,7 @@ var Yn = {
1166
1166
  void 0,
1167
1167
  { top: !0 }
1168
1168
  ]]) : m("", !0), T("div", wr, [
1169
- g(P) ? E((i(), p(le, {
1169
+ g(P) ? E((i(), p(K, {
1170
1170
  key: 0,
1171
1171
  "action-text": a.$t("views.assistant.copied"),
1172
1172
  icon: g(We),
@@ -1177,7 +1177,7 @@ var Yn = {
1177
1177
  rounded: !0,
1178
1178
  class: "cui-icon-md text-muted"
1179
1179
  },
1180
- onAction: se
1180
+ onAction: H
1181
1181
  }, null, 8, ["action-text", "icon"])), [[
1182
1182
  q,
1183
1183
  { value: a.$t("views.assistant.copy_answer") },
@@ -1193,7 +1193,7 @@ var Yn = {
1193
1193
  disabled: e.busy,
1194
1194
  onClick: s[6] ||= (e) => u("regenerate")
1195
1195
  }, {
1196
- icon: v(() => [M(ue, { class: "w-3.5 h-3.5" })]),
1196
+ icon: v(() => [M(fe, { class: "w-3.5 h-3.5" })]),
1197
1197
  _: 1
1198
1198
  }, 8, ["disabled"])), [[
1199
1199
  q,
@@ -1313,7 +1313,7 @@ var Fr = d({
1313
1313
  }, Jr = {
1314
1314
  key: 2,
1315
1315
  class: "ml-auto"
1316
- }, Yr = /*#__PURE__*/ Y(/* @__PURE__ */ A({
1316
+ }, Yr = /*#__PURE__*/ J(/* @__PURE__ */ A({
1317
1317
  __name: "CuiAssistantComposer",
1318
1318
  props: {
1319
1319
  busy: {
@@ -1333,16 +1333,16 @@ var Fr = d({
1333
1333
  },
1334
1334
  emits: ["send", "stop"],
1335
1335
  setup(e, { expose: u, emit: d }) {
1336
- let f = e, _ = d, { smBreakpoint: y } = re(), { t: S, locale: O } = Ce(), k = window.SpeechRecognition ?? window.webkitSpeechRecognition, A = !!k && window.isSecureContext, ee = w("inputRef"), ne = w("fileInput"), P = j(""), F = j(!1), I = j([]), L = j(""), R = null, z;
1337
- function B() {
1336
+ let f = e, _ = d, { smBreakpoint: y } = ie(), { t: S, locale: O } = we(), k = window.SpeechRecognition ?? window.webkitSpeechRecognition, A = !!k && window.isSecureContext, ee = w("inputRef"), ne = w("fileInput"), P = j(""), F = j(!1), I = j([]), re = j(""), L = null, R;
1337
+ function z() {
1338
1338
  let e = ee.value?.$el;
1339
1339
  return e?.tagName === "TEXTAREA" ? e : e?.querySelector("textarea");
1340
1340
  }
1341
- function V() {
1342
- B()?.focus();
1341
+ function B() {
1342
+ z()?.focus();
1343
1343
  }
1344
- function ie() {
1345
- let e = B();
1344
+ function V() {
1345
+ let e = z();
1346
1346
  e && (e.style.height = "auto", e.style.height = `${e.scrollHeight}px`);
1347
1347
  }
1348
1348
  function ae() {
@@ -1353,7 +1353,7 @@ var Fr = d({
1353
1353
  }), P.value = "", I.value = []);
1354
1354
  }
1355
1355
  function oe(e) {
1356
- L.value = e, clearTimeout(z), z = setTimeout(() => L.value = "", 4e3);
1356
+ re.value = e, clearTimeout(R), R = setTimeout(() => re.value = "", 4e3);
1357
1357
  }
1358
1358
  function se(e) {
1359
1359
  let t = e.type.split("/")[0];
@@ -1399,16 +1399,16 @@ var Fr = d({
1399
1399
  let t = e.target;
1400
1400
  t.files?.length && await U(Array.from(t.files)), t.value = "";
1401
1401
  }
1402
- async function G(e) {
1402
+ async function le(e) {
1403
1403
  let t = Array.from(e.clipboardData?.files ?? []);
1404
1404
  t.length && (e.preventDefault(), await U(t));
1405
1405
  }
1406
- function K(e) {
1406
+ function G(e) {
1407
1407
  I.value = I.value.filter((t) => t.id !== e);
1408
1408
  }
1409
- function le() {
1409
+ function ue() {
1410
1410
  if (F.value) {
1411
- R?.stop();
1411
+ L?.stop();
1412
1412
  return;
1413
1413
  }
1414
1414
  if (!k) return;
@@ -1418,15 +1418,15 @@ var Fr = d({
1418
1418
  for (let e = 0; e < t.results.length; e += 1) n += t.results[e][0]?.transcript ?? "";
1419
1419
  P.value = e ? `${e} ${n.trim()}` : n.trim();
1420
1420
  }, t.onend = () => {
1421
- F.value = !1, R = null, V();
1422
- }, t.onerror = () => {
1423
- F.value = !1, R = null;
1424
- }, R = t, F.value = !0, t.start();
1425
- }
1426
- return b(P, () => c(ie)), a(() => {
1427
- R?.abort(), clearTimeout(z);
1428
- }), u({ focus: V }), (a, c) => {
1429
- let u = Pe, d = Qt, f = Gn, b = Ht, S = je, w = De, O = N, k = Fr, j = ct, re = Mr, R = kr, z = te;
1421
+ F.value = !1, L = null, B();
1422
+ }, t.onerror = (e) => {
1423
+ F.value = !1, L = null, e.error !== "no-speech" && e.error !== "aborted" && oe(e.error === "not-allowed" || e.error === "service-not-allowed" ? S("views.assistant.voice_denied") : S("views.assistant.voice_failed", { error: e.error }));
1424
+ }, L = t, F.value = !0, t.start();
1425
+ }
1426
+ return b(P, () => c(V)), a(() => {
1427
+ L?.abort(), clearTimeout(R);
1428
+ }), u({ focus: B }), (a, c) => {
1429
+ let u = Fe, d = Qt, f = Gn, b = Ht, S = Me, w = Oe, O = N, k = Fr, j = ct, L = Mr, R = kr, z = te;
1430
1430
  return i(), x("div", zr, [
1431
1431
  M(u, {
1432
1432
  ref_key: "inputRef",
@@ -1439,7 +1439,7 @@ var Fr = d({
1439
1439
  rows: "1",
1440
1440
  class: "cui-assistant-input block w-full max-h-52 resize-none px-4 pt-3.5 pb-1 text-[15px] leading-relaxed",
1441
1441
  onKeydown: n(t(ae, ["exact", "prevent"]), ["enter"]),
1442
- onPaste: G
1442
+ onPaste: le
1443
1443
  }, null, 8, [
1444
1444
  "modelValue",
1445
1445
  "placeholder",
@@ -1473,7 +1473,7 @@ var Fr = d({
1473
1473
  severity: "secondary",
1474
1474
  rounded: "",
1475
1475
  class: "cui-assistant-attachment-remove cui-icon-sm absolute -top-1.5 -right-1.5",
1476
- onClick: (t) => K(e.id)
1476
+ onClick: (t) => G(e.id)
1477
1477
  }, {
1478
1478
  icon: v(() => [M(S, { class: "w-3 h-3" })]),
1479
1479
  _: 1
@@ -1483,14 +1483,14 @@ var Fr = d({
1483
1483
  void 0,
1484
1484
  { top: !0 }
1485
1485
  ]])]))), 128))])) : m("", !0),
1486
- g(L) ? (i(), p(O, {
1486
+ g(re) ? (i(), p(O, {
1487
1487
  key: 2,
1488
1488
  severity: "warn",
1489
1489
  variant: "simple",
1490
1490
  size: "small",
1491
1491
  class: "px-3 pb-1"
1492
1492
  }, {
1493
- default: v(() => [D(o(g(L)), 1)]),
1493
+ default: v(() => [D(o(g(re)), 1)]),
1494
1494
  _: 1
1495
1495
  })) : m("", !0),
1496
1496
  T("div", { class: l(["flex items-center px-2 pb-2 pl-3", e.compact ? "gap-0.5" : "gap-2"]) }, [
@@ -1529,7 +1529,7 @@ var Fr = d({
1529
1529
  rounded: "",
1530
1530
  class: l(["cui-assistant-voice shrink-0", { "cui-assistant-voice-active": g(F) }]),
1531
1531
  disabled: e.disabled || e.busy,
1532
- onClick: le
1532
+ onClick: ue
1533
1533
  }, {
1534
1534
  icon: v(() => [M(j, { class: "w-4 h-4" })]),
1535
1535
  _: 1
@@ -1553,7 +1553,7 @@ var Fr = d({
1553
1553
  class: "cui-assistant-send shrink-0",
1554
1554
  onClick: c[2] ||= (e) => _("stop")
1555
1555
  }, {
1556
- icon: v(() => [M(re, { class: "w-4 h-4" })]),
1556
+ icon: v(() => [M(L, { class: "w-4 h-4" })]),
1557
1557
  _: 1
1558
1558
  })), [[
1559
1559
  z,
@@ -1574,7 +1574,7 @@ var Fr = d({
1574
1574
  ]);
1575
1575
  };
1576
1576
  }
1577
- }), [["__scopeId", "data-v-59b0a765"]]), Xr = {
1577
+ }), [["__scopeId", "data-v-1b2f48d6"]]), Xr = {
1578
1578
  viewBox: "0 0 24 24",
1579
1579
  width: "1.2em",
1580
1580
  height: "1.2em"
@@ -7694,14 +7694,14 @@ function Jc(e) {
7694
7694
  }
7695
7695
  async function Yc(e, t) {
7696
7696
  let n = new Headers(t?.headers ?? {});
7697
- for (let [e, t] of Object.entries(await W())) n.set(e, t);
7697
+ for (let [e, t] of Object.entries(await le())) n.set(e, t);
7698
7698
  return n.set("X-Cui-Timezone", Intl.DateTimeFormat().resolvedOptions().timeZone), fetch(e, {
7699
7699
  ...t,
7700
7700
  headers: n
7701
7701
  });
7702
7702
  }
7703
7703
  function Xc() {
7704
- return `${(H().target.value?.endpoint.url ?? window.location.origin).replace(/\/+$/, "")}/api/assistant/chat`;
7704
+ return `${(V().target.value?.endpoint.url ?? window.location.origin).replace(/\/+$/, "")}/api/assistant/chat`;
7705
7705
  }
7706
7706
  function Zc(e, t) {
7707
7707
  try {
@@ -7738,7 +7738,7 @@ async function Qc(e, t, n, r) {
7738
7738
  }
7739
7739
  case "open_camview": return Zc(e, "/camview");
7740
7740
  case "open_page": {
7741
- let t = ye[String(r.page ?? "")];
7741
+ let t = be[String(r.page ?? "")];
7742
7742
  return t ? Zc(e, t.path) : {
7743
7743
  ok: !1,
7744
7744
  message: "unknown page"
@@ -7780,12 +7780,12 @@ async function Qc(e, t, n, r) {
7780
7780
  }
7781
7781
  }
7782
7782
  function $c(e) {
7783
- let t = he(), n = lt(), r = [...(e.approvalTools ?? []).filter((e) => e.approval && e.inputSchema).map((e) => uo({
7783
+ let t = I(), n = lt(), r = [...(e.approvalTools ?? []).filter((e) => e.approval && e.inputSchema).map((e) => uo({
7784
7784
  name: e.name,
7785
7785
  description: e.description,
7786
7786
  inputSchema: e.inputSchema,
7787
7787
  needsApproval: !0
7788
- })), ...xe.map((e) => uo({
7788
+ })), ...Se.map((e) => uo({
7789
7789
  name: e.name,
7790
7790
  description: e.description,
7791
7791
  inputSchema: e.inputSchema
@@ -7793,8 +7793,8 @@ function $c(e) {
7793
7793
  language: e.language.value,
7794
7794
  timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
7795
7795
  }, a = j({}), o = j({}), s = j({}), c = j({}), l = j({}), u = j({}), d = j(null);
7796
- function f() {
7797
- i.disabledGroups = [...e.disabledGroups?.value ?? []], i.instructions = e.instructions?.value?.trim() || void 0, i.modelId = e.modelId?.value ?? void 0;
7796
+ function f(t = !1) {
7797
+ i.regenerate = t, i.disabledGroups = [...e.disabledGroups?.value ?? []], i.instructions = e.instructions?.value?.trim() || void 0, i.modelId = e.modelId?.value ?? void 0;
7798
7798
  }
7799
7799
  function p(e) {
7800
7800
  for (let [t, n] of Object.entries(e)) n.images.length && (a.value[t] = n.images.map((e) => ({
@@ -7808,13 +7808,13 @@ function $c(e) {
7808
7808
  connection: {
7809
7809
  ...Ss(Xc, { fetchClient: Yc }),
7810
7810
  hydrate: async (e) => {
7811
- let t = await Le(e);
7811
+ let t = await Re(e);
7812
7812
  return p(t.attachments), t;
7813
7813
  }
7814
7814
  },
7815
7815
  persistence: !0,
7816
7816
  tools: r,
7817
- interrupts: [be],
7817
+ interrupts: [xe],
7818
7818
  queue: {
7819
7819
  whenBusy: "queue",
7820
7820
  maxSize: 5
@@ -7883,11 +7883,11 @@ function $c(e) {
7883
7883
  d.value = null, f(), await m.sendMessage(e);
7884
7884
  }
7885
7885
  async function x() {
7886
- d.value = null, f(), await m.reload();
7886
+ d.value = null, f(!0), await m.reload();
7887
7887
  }
7888
7888
  function S() {
7889
7889
  let e = m.runId.value;
7890
- e && Ve(e).catch(() => void 0), m.stop();
7890
+ e && He(e).catch(() => void 0), m.stop();
7891
7891
  let t = m.messages.value.at(-1);
7892
7892
  d.value = t?.role === "assistant" ? t.id : null;
7893
7893
  }
@@ -7939,7 +7939,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
7939
7939
  class: "cui-assistant-note pl-3 text-[13.5px] text-muted"
7940
7940
  }, ml = { class: "font-medium text-color-faded" }, hl = {
7941
7941
  key: 0,
7942
- class: "cui-assistant-dock relative px-4 pb-3 pt-6"
7942
+ class: "relative px-4 pb-3 pt-6"
7943
7943
  }, gl = { class: "mx-auto w-full max-w-[720px]" }, _l = {
7944
7944
  key: 0,
7945
7945
  class: "mb-2 flex flex-col gap-1"
@@ -7976,7 +7976,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
7976
7976
  }, Yl = {
7977
7977
  key: 1,
7978
7978
  class: "flex max-h-64 flex-col overflow-y-auto"
7979
- }, Xl = { class: "min-w-0 flex-1 leading-snug" }, Zl = /*#__PURE__*/ Y(/* @__PURE__ */ A({
7979
+ }, Xl = { class: "min-w-0 flex-1 leading-snug" }, Zl = /*#__PURE__*/ J(/* @__PURE__ */ A({
7980
7980
  __name: "CuiAssistantConversation",
7981
7981
  props: {
7982
7982
  threadId: {},
@@ -7997,23 +7997,19 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
7997
7997
  "emptied"
7998
7998
  ],
7999
7999
  setup(e, { expose: a, emit: s }) {
8000
- let u = new He(), d = e, f = s, { t: y, locale: S } = Ce(), O = fe(), { data: k } = u.listProfilesQuery(), A = u.createProfileMutation(), N = u.patchProfileMutation(), F = u.deleteProfileMutation(), { data: I, refetch: re } = u.memoryQuery(), R = u.deleteMemoryFactMutation(), z = u.deleteMemoryMutation(), { data: B } = u.getAssistantInfoQuery(), V = w("scrollRef"), ie = w("contentRef"), se = w("composerRef"), H = w("toolsPopover"), ce = w("memoryPopover"), U = j(!0), W = j([]), G = j(""), K = j(null), le = j(!1), ue = j(""), q = j(null), J = $c({
8000
+ let u = new Y(), d = e, f = s, { t: y, locale: S } = we(), O = he(), { data: k } = u.listProfilesQuery(), A = u.createProfileMutation(), N = u.patchProfileMutation(), F = u.deleteProfileMutation(), { data: I, refetch: R } = u.memoryQuery(), z = u.deleteMemoryFactMutation(), ie = u.deleteMemoryMutation(), { data: B } = u.getAssistantInfoQuery(), V = w("scrollRef"), ae = w("contentRef"), se = w("composerRef"), H = w("toolsPopover"), ce = w("memoryPopover"), U = j(!0), W = j([]), le = j(""), G = j(null), ue = j(!1), K = j(""), fe = j(null), q = $c({
8001
8001
  threadId: _(() => d.threadId),
8002
8002
  initialMessages: d.initialMessages,
8003
8003
  initialAttachments: d.initialAttachments,
8004
8004
  language: S,
8005
8005
  disabledGroups: W,
8006
- instructions: G,
8007
- modelId: q,
8006
+ instructions: le,
8007
+ modelId: fe,
8008
8008
  approvalTools: d.approvalTools,
8009
8009
  onFinish: () => f("finished"),
8010
- onError: (e) => O.add({
8011
- severity: "error",
8012
- detail: e.message,
8013
- life: 5e3
8014
- })
8015
- }), Y = _(() => J.messages.value.length === 0), pe = _(() => B.value?.settings.models ?? []), me = _(() => B.value ? Ze(B.value.settings) : void 0), he = _(() => pe.value.find((e) => e._id === q.value) ?? me.value), ve = _(() => he.value?.capabilities?.vision === !1 ? he.value.name : void 0), ye = _(() => J.busy.value && !J.approvals.value.length && !J.questions.value.length && !J.pausedElsewhere.value), be = _(() => ye.value && J.messages.value.at(-1)?.role !== "assistant"), xe = _(() => {
8016
- let e = J.messages.value, t = [];
8010
+ onError: ot
8011
+ }), pe = _(() => q.messages.value.length === 0), me = _(() => B.value?.settings.models ?? []), J = _(() => B.value ? Ze(B.value.settings) : void 0), ge = _(() => me.value.find((e) => e._id === fe.value) ?? J.value), ye = _(() => ge.value?.capabilities?.vision === !1 ? ge.value.name : void 0), be = _(() => q.busy.value && !q.approvals.value.length && !q.questions.value.length && !q.pausedElsewhere.value), xe = _(() => be.value && q.messages.value.at(-1)?.role !== "assistant"), Se = _(() => {
8012
+ let e = q.messages.value, t = [];
8017
8013
  return e.forEach((n, r) => {
8018
8014
  if (Jn(n)) return;
8019
8015
  let i = n.role === "assistant" && Jn(e[r - 1]), a = t[t.length - 1];
@@ -8032,7 +8028,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8032
8028
  continuation: i
8033
8029
  });
8034
8030
  }), t;
8035
- }), Se = _(() => {
8031
+ }), Ce = _(() => {
8036
8032
  let e = /* @__PURE__ */ new Map();
8037
8033
  for (let t of d.tools) {
8038
8034
  let n = t.group === "core" ? y("views.assistant.tool_group_core") : t.group === "docs" ? y("views.assistant.tool_group_docs") : t.group === "terminal" ? y("views.assistant.tool_group_terminal") : t.source.kind === "plugin" ? t.source.pluginName : t.source.kind === "external" ? t.source.serverName : t.group, r = e.get(t.group) ?? {
@@ -8044,98 +8040,98 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8044
8040
  }
8045
8041
  let t = (e) => e === "core" ? 0 : e === "docs" ? 1 : e.startsWith("plugin:") ? 2 : 3;
8046
8042
  return Array.from(e.values()).sort((e, n) => t(e.id) - t(n.id) || e.label.localeCompare(n.label));
8047
- }), Te = _({
8048
- get: () => Se.value.filter((e) => !W.value.includes(e.id)).map((e) => e.id),
8043
+ }), Ee = _({
8044
+ get: () => Ce.value.filter((e) => !W.value.includes(e.id)).map((e) => e.id),
8049
8045
  set: (e) => {
8050
- W.value = Se.value.filter((t) => !e.includes(t.id)).map((e) => e.id);
8046
+ W.value = Ce.value.filter((t) => !e.includes(t.id)).map((e) => e.id);
8051
8047
  }
8052
- }), Ee = _(() => {
8048
+ }), De = _(() => {
8053
8049
  let e = (/* @__PURE__ */ new Date()).getHours();
8054
8050
  return y(e < 5 ? "views.assistant.greeting_night" : e < 11 ? "views.assistant.greeting_morning" : e < 18 ? "views.assistant.greeting_day" : "views.assistant.greeting_evening");
8055
8051
  });
8056
- function Oe(e) {
8057
- for (let t of e.ids) if (J.usage.value[t]) return J.usage.value[t];
8052
+ function ke(e) {
8053
+ for (let t of e.ids) if (q.usage.value[t]) return q.usage.value[t];
8058
8054
  }
8059
- function ke() {
8055
+ function Ae() {
8060
8056
  let e = V.value;
8061
8057
  e && (U.value = e.scrollHeight - e.scrollTop - e.clientHeight < 120);
8062
8058
  }
8063
- function Ie() {
8064
- U.value = !0, Le();
8065
- }
8066
8059
  function Le() {
8060
+ U.value = !0, Re();
8061
+ }
8062
+ function Re() {
8067
8063
  let e = V.value;
8068
8064
  e && (e.scrollTop = e.scrollHeight);
8069
8065
  }
8070
- function Re(e) {
8071
- ce.value?.toggle(e), re();
8072
- }
8073
- function Ve(e) {
8074
- let t = k.value?.find((t) => t._id === e);
8075
- t && (W.value = [...t.disabledGroups], G.value = t.instructions, q.value = pe.value.some((e) => e._id === t.modelId) ? t.modelId : null);
8066
+ function He(e) {
8067
+ ce.value?.toggle(e), R();
8076
8068
  }
8077
8069
  function Ue(e) {
8078
- return pe.value.find((t) => t._id === e.modelId) ?? me.value;
8070
+ let t = k.value?.find((t) => t._id === e);
8071
+ t && (W.value = [...t.disabledGroups], le.value = t.instructions, fe.value = me.value.some((e) => e._id === t.modelId) ? t.modelId : null);
8079
8072
  }
8080
8073
  function We(e) {
8074
+ return me.value.find((t) => t._id === e.modelId) ?? J.value;
8075
+ }
8076
+ function Ge(e) {
8081
8077
  return e ? Je(e).filter((e) => e.severity !== "success") : [];
8082
8078
  }
8083
- async function Ge() {
8084
- let e = ue.value.trim();
8079
+ async function qe() {
8080
+ let e = K.value.trim();
8085
8081
  if (!e) return;
8086
8082
  let t = await A.mutateAsync({
8087
8083
  name: e,
8088
- modelId: he.value?._id ?? "",
8084
+ modelId: ge.value?._id ?? "",
8089
8085
  disabledGroups: [...W.value],
8090
- instructions: G.value.trim()
8086
+ instructions: le.value.trim()
8091
8087
  });
8092
- K.value = t._id, le.value = !1, ue.value = "";
8088
+ G.value = t._id, ue.value = !1, K.value = "";
8093
8089
  }
8094
- async function qe() {
8095
- K.value && await N.mutateAsync({
8096
- profileId: K.value,
8090
+ async function Ye() {
8091
+ G.value && await N.mutateAsync({
8092
+ profileId: G.value,
8097
8093
  patch: {
8098
- modelId: he.value?._id ?? "",
8094
+ modelId: ge.value?._id ?? "",
8099
8095
  disabledGroups: [...W.value],
8100
- instructions: G.value.trim()
8096
+ instructions: le.value.trim()
8101
8097
  }
8102
8098
  });
8103
8099
  }
8104
- async function Ye() {
8105
- K.value &&= (await F.mutateAsync(K.value), null);
8100
+ async function Xe() {
8101
+ G.value &&= (await F.mutateAsync(G.value), null);
8106
8102
  }
8107
- function Xe() {
8103
+ function Qe() {
8108
8104
  for (let e of [H.value, ce.value]) e?.visible && e.alignOverlay();
8109
8105
  }
8110
- function Qe(e) {
8111
- let t = J.messages.value, n = e + 1;
8106
+ function $e(e) {
8107
+ let t = q.messages.value, n = e + 1;
8112
8108
  for (; n < t.length && (t[n].role !== "user" || Jn(t[n]));) n++;
8113
8109
  return n;
8114
8110
  }
8115
- function $e(e) {
8116
- let t = J.messages.value, n = e;
8111
+ function et(e) {
8112
+ let t = q.messages.value, n = e;
8117
8113
  for (; n > 0 && (t[n].role !== "user" || Jn(t[n]));) n--;
8118
8114
  return n;
8119
8115
  }
8120
- async function et(e) {
8121
- U.value = !0, J.setMessages(J.messages.value.slice(0, e)), await J.reload();
8116
+ async function tt(e) {
8117
+ U.value = !0, q.setMessages(q.messages.value.slice(0, e)), await q.reload();
8122
8118
  }
8123
- async function tt(e, t) {
8119
+ async function nt(e, t) {
8124
8120
  U.value = !0;
8125
- let n = J.messages.value[e].parts.filter((e) => e.type === "image" || e.type === "audio" || e.type === "video");
8126
- J.setMessages(J.messages.value.slice(0, e)), n.length ? await J.sendMessage({ content: [{
8121
+ let n = q.messages.value[e].parts.filter((e) => e.type === "image" || e.type === "audio" || e.type === "video");
8122
+ q.setMessages(q.messages.value.slice(0, e)), n.length ? await q.sendMessage({ content: [{
8127
8123
  type: "text",
8128
8124
  content: t
8129
- }, ...n] }) : await J.sendMessage(t);
8125
+ }, ...n] }) : await q.sendMessage(t);
8130
8126
  }
8131
- async function nt(e) {
8132
- let t = J.messages.value, n = [...t.slice(0, $e(e)), ...t.slice(Qe(e))];
8133
- if (J.setMessages(n), !n.length) {
8127
+ async function rt(e) {
8128
+ let t = q.messages.value, n = [...t.slice(0, et(e)), ...t.slice($e(e))];
8129
+ if (q.setMessages(n), !n.length) {
8134
8130
  f("emptied");
8135
8131
  return;
8136
8132
  }
8137
8133
  try {
8138
- await Be(d.threadId, n);
8134
+ await Ve(d.threadId, n);
8139
8135
  } catch (e) {
8140
8136
  e?.response?.status !== 404 && O.add({
8141
8137
  severity: "error",
@@ -8144,9 +8140,9 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8144
8140
  });
8145
8141
  }
8146
8142
  }
8147
- async function rt(e) {
8143
+ async function it(e) {
8148
8144
  try {
8149
- let t = await ze(d.threadId, Qe(e) - 1);
8145
+ let t = await Be(d.threadId, $e(e) - 1);
8150
8146
  f("branched", t);
8151
8147
  } catch (e) {
8152
8148
  O.add({
@@ -8156,9 +8152,9 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8156
8152
  });
8157
8153
  }
8158
8154
  }
8159
- async function it(e) {
8155
+ async function at(e) {
8160
8156
  if (U.value = !0, !e.attachments.length) {
8161
- await J.sendMessage(e.text);
8157
+ await q.sendMessage(e.text);
8162
8158
  return;
8163
8159
  }
8164
8160
  let t = e.text ? [{
@@ -8173,79 +8169,98 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8173
8169
  mimeType: n.mimeType
8174
8170
  }
8175
8171
  });
8176
- await J.sendMessage({ content: t });
8172
+ await q.sendMessage({ content: t });
8177
8173
  }
8178
- function at(e) {
8179
- return !J.busy.value && (J.replaceFromStore(e.messages, e.attachments), !0);
8174
+ function ot(e) {
8175
+ if (e.message.includes("status: 409")) {
8176
+ st();
8177
+ return;
8178
+ }
8179
+ O.add({
8180
+ severity: "error",
8181
+ detail: e.message,
8182
+ life: 5e3
8183
+ });
8180
8184
  }
8181
- return b(() => J.messages.value, async () => {
8182
- U.value && (await c(), Le());
8183
- }, { deep: !0 }), b(() => J.approvals.value.length + J.questions.value.length, async (e, t) => {
8184
- e <= t || (U.value = !0, await c(), Le());
8185
- }), b(Y, async () => {
8185
+ async function st() {
8186
+ let e = await ze(d.threadId).catch(() => void 0);
8187
+ e && (q.replaceFromStore(e.messages, e.attachments), O.add({
8188
+ severity: "info",
8189
+ detail: y("views.assistant.thread_reloaded"),
8190
+ life: 5e3
8191
+ }));
8192
+ }
8193
+ function ct(e) {
8194
+ return !q.busy.value && (q.replaceFromStore(e.messages, e.attachments), !0);
8195
+ }
8196
+ return b(() => q.messages.value, async () => {
8197
+ U.value && (await c(), Re());
8198
+ }, { deep: !0 }), b(() => q.approvals.value.length + q.questions.value.length, async (e, t) => {
8199
+ e <= t || (U.value = !0, await c(), Re());
8200
+ }), b(pe, async () => {
8186
8201
  await c(), se.value?.focus();
8187
- }), _e(window, "scroll", Xe, {
8202
+ }), ve(window, "scroll", Qe, {
8188
8203
  capture: !0,
8189
8204
  passive: !0
8190
- }), ge(ie, () => {
8191
- U.value && Le();
8205
+ }), _e([V, ae], () => {
8206
+ U.value && Re();
8192
8207
  }), ee(async () => {
8193
- await c(), Le(), se.value?.focus(), d.initialPrompt && await it({
8208
+ await c(), Re(), se.value?.focus(), d.initialPrompt && await at({
8194
8209
  text: d.initialPrompt,
8195
8210
  attachments: []
8196
8211
  });
8197
- }), a({ refreshFromStore: at }), (a, s) => {
8198
- let c = we, u = Qt, d = Qr, f = De, _ = Ke, y = Yr, b = Er, S = Nt, w = wt, O = ne, j = Fe, ee = je, re = Pe, B = Ne, fe = P, ge = Me, _e = ft, Ce = ae, Le = oe, ze = L, Be = Ae, He = de, Je = te;
8212
+ }), a({ refreshFromStore: ct }), (a, s) => {
8213
+ let c = Te, u = Qt, d = Qr, f = Oe, _ = Ke, y = Yr, b = Er, S = Nt, w = wt, O = ne, j = Ie, ee = Me, R = Fe, B = Pe, he = P, _e = Ne, ve = ft, we = L, Re = oe, ze = re, Be = je, Ve = de, Y = te;
8199
8214
  return i(), x("div", el, [
8200
8215
  T("div", {
8201
8216
  ref_key: "scrollRef",
8202
8217
  ref: V,
8203
- class: l(["flex-1 min-h-0 overflow-y-auto px-4", { "flex items-center justify-center pb-[8vh]": g(Y) }]),
8204
- onScrollPassive: ke
8205
- }, [g(Y) ? (i(), x("div", tl, [
8206
- T("div", nl, [T("div", rl, [M(c, { class: "w-6 h-6 text-color" })]), T("h1", il, [D(o(g(Ee)) + " ", 1), T("span", al, o(a.$t("views.assistant.greeting_sub")), 1)])]),
8207
- g(he)?.capabilities?.toolCalling === !1 ? (i(), p(u, {
8218
+ class: l(["flex-1 min-h-0 overflow-y-auto px-4", { "flex items-center justify-center pb-[8vh]": g(pe) }]),
8219
+ onScrollPassive: Ae
8220
+ }, [g(pe) ? (i(), x("div", tl, [
8221
+ T("div", nl, [T("div", rl, [M(c, { class: "w-6 h-6 text-color" })]), T("h1", il, [D(o(g(De)) + " ", 1), T("span", al, o(a.$t("views.assistant.greeting_sub")), 1)])]),
8222
+ g(ge)?.capabilities?.toolCalling === !1 ? (i(), p(u, {
8208
8223
  key: 0,
8209
8224
  class: "mb-4",
8210
- title: a.$t("views.assistant.notice_tools_title", { model: g(he).name }),
8225
+ title: a.$t("views.assistant.notice_tools_title", { model: g(ge).name }),
8211
8226
  text: a.$t("views.assistant.notice_tools_text")
8212
8227
  }, null, 8, ["title", "text"])) : m("", !0),
8213
8228
  M(y, {
8214
8229
  ref_key: "composerRef",
8215
8230
  ref: se,
8216
- busy: g(J).busy.value,
8217
- "vision-missing": g(ve),
8231
+ busy: g(q).busy.value,
8232
+ "vision-missing": g(ye),
8218
8233
  compact: e.compact,
8219
8234
  placeholder: a.$t("views.assistant.composer_placeholder"),
8220
- onSend: it,
8221
- onStop: s[2] ||= (e) => g(J).stop()
8235
+ onSend: at,
8236
+ onStop: s[2] ||= (e) => g(q).stop()
8222
8237
  }, {
8223
8238
  tools: v(() => [T("span", ol, [E((i(), p(f, {
8224
8239
  type: "button",
8225
8240
  severity: "secondary",
8226
8241
  text: "",
8227
8242
  rounded: "",
8228
- disabled: g(J).busy.value,
8243
+ disabled: g(q).busy.value,
8229
8244
  onClick: s[0] ||= (e) => g(H)?.toggle(e)
8230
8245
  }, {
8231
8246
  icon: v(() => [M(d, { class: "w-4 h-4" })]),
8232
8247
  _: 1
8233
8248
  }, 8, ["disabled"])), [[
8234
- Je,
8249
+ Y,
8235
8250
  { value: a.$t("views.assistant.tools_title") },
8236
8251
  void 0,
8237
8252
  { top: !0 }
8238
- ]]), g(W).length ? (i(), x("span", sl, o(g(Te).length), 1)) : m("", !0)]), T("span", cl, [E((i(), p(f, {
8253
+ ]]), g(W).length ? (i(), x("span", sl, o(g(Ee).length), 1)) : m("", !0)]), T("span", cl, [E((i(), p(f, {
8239
8254
  type: "button",
8240
8255
  severity: "secondary",
8241
8256
  text: "",
8242
8257
  rounded: "",
8243
- onClick: s[1] ||= (e) => Re(e)
8258
+ onClick: s[1] ||= (e) => He(e)
8244
8259
  }, {
8245
8260
  icon: v(() => [M(_, { class: "w-4 h-4" })]),
8246
8261
  _: 1
8247
8262
  })), [[
8248
- Je,
8263
+ Y,
8249
8264
  { value: a.$t("views.assistant.memory_title") },
8250
8265
  void 0,
8251
8266
  { top: !0 }
@@ -8261,7 +8276,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8261
8276
  key: e,
8262
8277
  type: "button",
8263
8278
  class: "cui-assistant-chip cursor-pointer rounded-full px-3.5 py-1.5 text-[13px]",
8264
- onClick: (t) => it({
8279
+ onClick: (t) => at({
8265
8280
  text: e,
8266
8281
  attachments: []
8267
8282
  })
@@ -8269,30 +8284,30 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8269
8284
  ])) : (i(), x("div", {
8270
8285
  key: 1,
8271
8286
  ref_key: "contentRef",
8272
- ref: ie,
8287
+ ref: ae,
8273
8288
  class: "mx-auto flex w-full max-w-[720px] flex-col gap-7 pt-6 pb-4"
8274
8289
  }, [
8275
- (i(!0), x(C, null, r(g(xe), (e) => (i(), p(b, {
8290
+ (i(!0), x(C, null, r(g(Se), (e) => (i(), p(b, {
8276
8291
  key: e.message.id,
8277
8292
  message: e.message,
8278
- streaming: g(J).isLoading.value && e.lastIndex === g(J).messages.value.length - 1 && e.message.role === "assistant",
8279
- working: g(ye) && e.lastIndex === g(J).messages.value.length - 1 && e.message.role === "assistant",
8280
- busy: g(J).busy.value,
8293
+ streaming: g(q).isLoading.value && e.lastIndex === g(q).messages.value.length - 1 && e.message.role === "assistant",
8294
+ working: g(be) && e.lastIndex === g(q).messages.value.length - 1 && e.message.role === "assistant",
8295
+ busy: g(q).busy.value,
8281
8296
  continuation: e.continuation,
8282
- stopped: e.ids.includes(g(J).stoppedId.value ?? ""),
8283
- "tool-images": g(J).toolImages.value,
8284
- "tool-references": g(J).toolReferences.value,
8285
- "tool-cards": g(J).toolCards.value,
8286
- "tool-settings": g(J).toolSettings.value,
8287
- "tool-notices": g(J).toolNotices.value,
8288
- "model-id": g(he)?._id,
8289
- usage: Oe(e),
8297
+ stopped: e.ids.includes(g(q).stoppedId.value ?? ""),
8298
+ "tool-images": g(q).toolImages.value,
8299
+ "tool-references": g(q).toolReferences.value,
8300
+ "tool-cards": g(q).toolCards.value,
8301
+ "tool-settings": g(q).toolSettings.value,
8302
+ "tool-notices": g(q).toolNotices.value,
8303
+ "model-id": g(ge)?._id,
8304
+ usage: ke(e),
8290
8305
  class: l({ "-mt-5": e.continuation }),
8291
- onRegenerate: (t) => et(e.index),
8292
- onEdit: (t) => tt(e.index, t),
8293
- onDelete: (t) => nt(e.index),
8294
- onBranch: (t) => rt(e.index),
8295
- onContinue: s[3] ||= (e) => g(J).continueAnswer()
8306
+ onRegenerate: (t) => tt(e.index),
8307
+ onEdit: (t) => nt(e.index, t),
8308
+ onDelete: (t) => rt(e.index),
8309
+ onBranch: (t) => it(e.index),
8310
+ onContinue: s[3] ||= (e) => g(q).continueAnswer()
8296
8311
  }, null, 8, [
8297
8312
  "message",
8298
8313
  "streaming",
@@ -8313,24 +8328,24 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8313
8328
  "onDelete",
8314
8329
  "onBranch"
8315
8330
  ]))), 128)),
8316
- g(be) ? (i(), p(b, {
8331
+ g(xe) ? (i(), p(b, {
8317
8332
  key: 0,
8318
8333
  message: g($r),
8319
8334
  working: "",
8320
8335
  busy: "",
8321
- continuation: g(Jn)(g(J).messages.value.at(-1)),
8322
- class: l({ "-mt-5": g(Jn)(g(J).messages.value.at(-1)) })
8336
+ continuation: g(Jn)(g(q).messages.value.at(-1)),
8337
+ class: l({ "-mt-5": g(Jn)(g(q).messages.value.at(-1)) })
8323
8338
  }, null, 8, [
8324
8339
  "message",
8325
8340
  "continuation",
8326
8341
  "class"
8327
8342
  ])) : m("", !0),
8328
- (i(!0), x(C, null, r(g(J).approvals.value, (e) => (i(), p(S, {
8343
+ (i(!0), x(C, null, r(g(q).approvals.value, (e) => (i(), p(S, {
8329
8344
  key: e.id,
8330
8345
  "tool-name": e.toolName,
8331
8346
  args: e.originalArgs,
8332
8347
  "can-resolve": e.canResolve,
8333
- busy: g(J).resuming.value,
8348
+ busy: g(q).resuming.value,
8334
8349
  onApprove: (t) => t ? e.resolveInterrupt(!0, { editedArgs: t }) : e.resolveInterrupt(!0),
8335
8350
  onReject: (t) => e.resolveInterrupt(!1)
8336
8351
  }, null, 8, [
@@ -8341,7 +8356,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8341
8356
  "onApprove",
8342
8357
  "onReject"
8343
8358
  ]))), 128)),
8344
- (i(!0), x(C, null, r(g(J).questions.value, (e) => (i(), p(w, {
8359
+ (i(!0), x(C, null, r(g(q).questions.value, (e) => (i(), p(w, {
8345
8360
  key: e.id,
8346
8361
  question: e.payload ?? {
8347
8362
  toolCallId: e.id,
@@ -8349,7 +8364,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8349
8364
  kind: "text"
8350
8365
  },
8351
8366
  "can-resolve": e.canResolve,
8352
- busy: g(J).resuming.value,
8367
+ busy: g(q).resuming.value,
8353
8368
  onAnswer: (t) => e.resolveInterrupt({ answer: t }),
8354
8369
  onSkip: (t) => e.cancel()
8355
8370
  }, null, 8, [
@@ -8359,26 +8374,26 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8359
8374
  "onAnswer",
8360
8375
  "onSkip"
8361
8376
  ]))), 128)),
8362
- g(J).pausedElsewhere.value ? (i(), x("div", fl, o(a.$t("views.assistant.paused_elsewhere")), 1)) : m("", !0),
8363
- g(J).error.value ? (i(), x("div", pl, [T("strong", ml, o(g(J).error.value.message), 1)])) : m("", !0)
8377
+ g(q).pausedElsewhere.value ? (i(), x("div", fl, o(a.$t("views.assistant.paused_elsewhere")), 1)) : m("", !0),
8378
+ g(q).error.value ? (i(), x("div", pl, [T("strong", ml, o(g(q).error.value.message), 1)])) : m("", !0)
8364
8379
  ], 512))], 34),
8365
- g(Y) ? m("", !0) : (i(), x("div", hl, [g(U) ? m("", !0) : E((i(), p(f, {
8380
+ g(pe) ? m("", !0) : (i(), x("div", hl, [g(U) ? m("", !0) : E((i(), p(f, {
8366
8381
  key: 0,
8367
8382
  type: "button",
8368
8383
  rounded: "",
8369
8384
  severity: "secondary",
8370
8385
  class: "cui-assistant-jump absolute left-1/2 top-0 z-[2] -translate-x-1/2 -translate-y-1/2",
8371
- onClick: Ie
8386
+ onClick: Le
8372
8387
  }, {
8373
8388
  icon: v(() => [M(O, { class: "w-4 h-4" })]),
8374
8389
  _: 1
8375
8390
  })), [[
8376
- Je,
8391
+ Y,
8377
8392
  { value: a.$t("views.assistant.scroll_to_latest") },
8378
8393
  void 0,
8379
8394
  { top: !0 }
8380
8395
  ]]), T("div", gl, [
8381
- g(J).queue.value.length ? (i(), x("div", _l, [(i(!0), x(C, null, r(g(J).queue.value, (e) => (i(), x("div", {
8396
+ g(q).queue.value.length ? (i(), x("div", _l, [(i(!0), x(C, null, r(g(q).queue.value, (e) => (i(), x("div", {
8382
8397
  key: e.id,
8383
8398
  class: "cui-assistant-queued flex items-center gap-2 rounded-lg px-3 py-1.5 text-[13px] text-muted"
8384
8399
  }, [
@@ -8390,12 +8405,12 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8390
8405
  text: "",
8391
8406
  rounded: "",
8392
8407
  class: "cui-icon-md shrink-0",
8393
- onClick: (t) => g(J).cancelQueued(e.id)
8408
+ onClick: (t) => g(q).cancelQueued(e.id)
8394
8409
  }, {
8395
8410
  icon: v(() => [M(ee, { class: "w-3.5 h-3.5" })]),
8396
8411
  _: 1
8397
8412
  }, 8, ["onClick"])), [[
8398
- Je,
8413
+ Y,
8399
8414
  { value: a.$t("views.assistant.queue_cancel") },
8400
8415
  void 0,
8401
8416
  { top: !0 }
@@ -8404,39 +8419,39 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8404
8419
  M(y, {
8405
8420
  ref_key: "composerRef",
8406
8421
  ref: se,
8407
- busy: g(J).busy.value,
8408
- "vision-missing": g(ve),
8422
+ busy: g(q).busy.value,
8423
+ "vision-missing": g(ye),
8409
8424
  compact: e.compact,
8410
8425
  placeholder: a.$t("views.assistant.composer_placeholder"),
8411
- onSend: it,
8412
- onStop: s[6] ||= (e) => g(J).stop()
8426
+ onSend: at,
8427
+ onStop: s[6] ||= (e) => g(q).stop()
8413
8428
  }, {
8414
8429
  tools: v(() => [T("span", yl, [E((i(), p(f, {
8415
8430
  type: "button",
8416
8431
  severity: "secondary",
8417
8432
  text: "",
8418
8433
  rounded: "",
8419
- disabled: g(J).busy.value,
8434
+ disabled: g(q).busy.value,
8420
8435
  onClick: s[4] ||= (e) => g(H)?.toggle(e)
8421
8436
  }, {
8422
8437
  icon: v(() => [M(d, { class: "w-4 h-4" })]),
8423
8438
  _: 1
8424
8439
  }, 8, ["disabled"])), [[
8425
- Je,
8440
+ Y,
8426
8441
  { value: a.$t("views.assistant.tools_title") },
8427
8442
  void 0,
8428
8443
  { top: !0 }
8429
- ]]), g(W).length ? (i(), x("span", bl, o(g(Te).length), 1)) : m("", !0)]), T("span", xl, [E((i(), p(f, {
8444
+ ]]), g(W).length ? (i(), x("span", bl, o(g(Ee).length), 1)) : m("", !0)]), T("span", xl, [E((i(), p(f, {
8430
8445
  type: "button",
8431
8446
  severity: "secondary",
8432
8447
  text: "",
8433
8448
  rounded: "",
8434
- onClick: s[5] ||= (e) => Re(e)
8449
+ onClick: s[5] ||= (e) => He(e)
8435
8450
  }, {
8436
8451
  icon: v(() => [M(_, { class: "w-4 h-4" })]),
8437
8452
  _: 1
8438
8453
  })), [[
8439
- Je,
8454
+ Y,
8440
8455
  { value: a.$t("views.assistant.memory_title") },
8441
8456
  void 0,
8442
8457
  { top: !0 }
@@ -8450,30 +8465,30 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8450
8465
  ]),
8451
8466
  T("div", Cl, o(a.$t("views.assistant.disclaimer")), 1)
8452
8467
  ])])),
8453
- M(He, {
8468
+ M(Ve, {
8454
8469
  ref_key: "toolsPopover",
8455
8470
  ref: H
8456
8471
  }, {
8457
8472
  default: v(() => [T("div", wl, [
8458
8473
  T("span", Tl, o(a.$t("views.assistant.tools_title")), 1),
8459
- T("div", El, [T("label", Dl, o(a.$t("views.assistant.instructions_label")), 1), M(re, {
8474
+ T("div", El, [T("label", Dl, o(a.$t("views.assistant.instructions_label")), 1), M(R, {
8460
8475
  id: "assistantInstructions",
8461
- modelValue: g(G),
8462
- "onUpdate:modelValue": s[7] ||= (e) => h(G) ? G.value = e : null,
8476
+ modelValue: g(le),
8477
+ "onUpdate:modelValue": s[7] ||= (e) => h(le) ? le.value = e : null,
8463
8478
  rows: "2",
8464
8479
  "auto-resize": "",
8465
8480
  class: "text-sm",
8466
8481
  placeholder: a.$t("views.assistant.instructions_placeholder")
8467
8482
  }, null, 8, ["modelValue", "placeholder"])]),
8468
8483
  T("div", Ol, [T("label", kl, o(a.$t("views.assistant.tools_label")), 1), M(B, {
8469
- modelValue: g(Te),
8470
- "onUpdate:modelValue": s[8] ||= (e) => h(Te) ? Te.value = e : null,
8484
+ modelValue: g(Ee),
8485
+ "onUpdate:modelValue": s[8] ||= (e) => h(Ee) ? Ee.value = e : null,
8471
8486
  "input-id": "assistantTools",
8472
- options: g(Se),
8487
+ options: g(Ce),
8473
8488
  "option-label": "label",
8474
8489
  "option-value": "id",
8475
8490
  "max-selected-labels": 2,
8476
- "selected-items-label": a.$t("views.assistant.tools_selected", { n: g(Te).length }),
8491
+ "selected-items-label": a.$t("views.assistant.tools_selected", { n: g(Ee).length }),
8477
8492
  placeholder: a.$t("views.assistant.tools_none"),
8478
8493
  class: "min-w-0"
8479
8494
  }, {
@@ -8485,17 +8500,17 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8485
8500
  "selected-items-label",
8486
8501
  "placeholder"
8487
8502
  ])]),
8488
- g(pe).length > 1 ? (i(), x("div", Nl, [T("label", Pl, o(a.$t("views.assistant.model_label")), 1), M(ge, {
8489
- modelValue: g(q),
8490
- "onUpdate:modelValue": s[9] ||= (e) => h(q) ? q.value = e : null,
8503
+ g(me).length > 1 ? (i(), x("div", Nl, [T("label", Pl, o(a.$t("views.assistant.model_label")), 1), M(_e, {
8504
+ modelValue: g(fe),
8505
+ "onUpdate:modelValue": s[9] ||= (e) => h(fe) ? fe.value = e : null,
8491
8506
  "input-id": "assistantModel",
8492
- options: g(pe),
8507
+ options: g(me),
8493
8508
  "option-label": "name",
8494
8509
  "option-value": "_id",
8495
8510
  class: "min-w-0",
8496
- placeholder: g(me)?.name
8511
+ placeholder: g(J)?.name
8497
8512
  }, {
8498
- option: v(({ option: e }) => [T("div", Fl, [T("span", Il, o(e.name), 1), T("span", Ll, [(i(!0), x(C, null, r(We(e), (e) => (i(), p(fe, {
8513
+ option: v(({ option: e }) => [T("div", Fl, [T("span", Il, o(e.name), 1), T("span", Ll, [(i(!0), x(C, null, r(Ge(e), (e) => (i(), p(he, {
8499
8514
  key: e.key,
8500
8515
  severity: e.severity,
8501
8516
  value: a.$t(`views.settings.assistant_capability_${e.key}`),
@@ -8511,9 +8526,9 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8511
8526
  T("label", zl, o(a.$t("views.assistant.profiles_label")), 1),
8512
8527
  M(ze, null, {
8513
8528
  default: v(() => [
8514
- M(ge, {
8515
- modelValue: g(K),
8516
- "onUpdate:modelValue": [s[10] ||= (e) => h(K) ? K.value = e : null, Ve],
8529
+ M(_e, {
8530
+ modelValue: g(G),
8531
+ "onUpdate:modelValue": [s[10] ||= (e) => h(G) ? G.value = e : null, Ue],
8517
8532
  "input-id": "assistantProfile",
8518
8533
  options: g(k) ?? [],
8519
8534
  "option-label": "name",
@@ -8522,7 +8537,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8522
8537
  class: "min-w-0",
8523
8538
  placeholder: a.$t("views.assistant.profile_none")
8524
8539
  }, {
8525
- option: v(({ option: e }) => [T("div", Bl, [T("span", Vl, o(e.name), 1), T("span", Hl, [(i(!0), x(C, null, r(We(Ue(e)), (e) => (i(), p(fe, {
8540
+ option: v(({ option: e }) => [T("div", Bl, [T("span", Vl, o(e.name), 1), T("span", Hl, [(i(!0), x(C, null, r(Ge(We(e)), (e) => (i(), p(he, {
8526
8541
  key: e.key,
8527
8542
  severity: e.severity,
8528
8543
  value: a.$t(`views.settings.assistant_capability_${e.key}`),
@@ -8534,26 +8549,26 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8534
8549
  "options",
8535
8550
  "placeholder"
8536
8551
  ]),
8537
- M(Ce, { class: "!p-0" }, {
8552
+ M(we, { class: "!p-0" }, {
8538
8553
  default: v(() => [E((i(), p(f, {
8539
8554
  type: "button",
8540
8555
  severity: "secondary",
8541
8556
  text: "",
8542
8557
  class: "h-full rounded-none",
8543
8558
  loading: g(A).isPending.value || g(N).isPending.value,
8544
- onClick: s[11] ||= (e) => g(K) ? qe() : le.value = !0
8559
+ onClick: s[11] ||= (e) => g(G) ? Ye() : ue.value = !0
8545
8560
  }, {
8546
- icon: v(() => [M(_e, { class: "w-4 h-4" })]),
8561
+ icon: v(() => [M(ve, { class: "w-4 h-4" })]),
8547
8562
  _: 1
8548
8563
  }, 8, ["loading"])), [[
8549
- Je,
8550
- { value: g(K) ? a.$t("views.assistant.profile_update") : a.$t("views.assistant.profile_save") },
8564
+ Y,
8565
+ { value: g(G) ? a.$t("views.assistant.profile_update") : a.$t("views.assistant.profile_save") },
8551
8566
  void 0,
8552
8567
  { top: !0 }
8553
8568
  ]])]),
8554
8569
  _: 1
8555
8570
  }),
8556
- g(K) ? (i(), p(Ce, {
8571
+ g(G) ? (i(), p(we, {
8557
8572
  key: 0,
8558
8573
  class: "!p-0"
8559
8574
  }, {
@@ -8563,12 +8578,12 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8563
8578
  text: "",
8564
8579
  class: "h-full rounded-none",
8565
8580
  loading: g(F).isPending.value,
8566
- onClick: Ye
8581
+ onClick: Xe
8567
8582
  }, {
8568
- icon: v(() => [M(Le, { class: "w-4 h-4" })]),
8583
+ icon: v(() => [M(Re, { class: "w-4 h-4" })]),
8569
8584
  _: 1
8570
8585
  }, 8, ["loading"])), [[
8571
- Je,
8586
+ Y,
8572
8587
  { value: a.$t("views.assistant.profile_delete") },
8573
8588
  void 0,
8574
8589
  { top: !0 }
@@ -8578,13 +8593,13 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8578
8593
  ]),
8579
8594
  _: 1
8580
8595
  }),
8581
- g(le) ? (i(), x("div", Ul, [M(Be, {
8582
- modelValue: g(ue),
8583
- "onUpdate:modelValue": s[12] ||= (e) => h(ue) ? ue.value = e : null,
8596
+ g(ue) ? (i(), x("div", Ul, [M(Be, {
8597
+ modelValue: g(K),
8598
+ "onUpdate:modelValue": s[12] ||= (e) => h(K) ? K.value = e : null,
8584
8599
  class: "flex-1 min-w-0",
8585
8600
  size: "small",
8586
8601
  placeholder: a.$t("views.assistant.profile_name_placeholder"),
8587
- onKeydown: [n(t(Ge, ["prevent"]), ["enter"]), s[13] ||= n((e) => le.value = !1, ["esc"])]
8602
+ onKeydown: [n(t(qe, ["prevent"]), ["enter"]), s[13] ||= n((e) => ue.value = !1, ["esc"])]
8588
8603
  }, null, 8, [
8589
8604
  "modelValue",
8590
8605
  "placeholder",
@@ -8593,14 +8608,14 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8593
8608
  type: "button",
8594
8609
  size: "small",
8595
8610
  label: a.$t("components.form.button.save"),
8596
- disabled: !g(ue).trim(),
8597
- onClick: Ge
8611
+ disabled: !g(K).trim(),
8612
+ onClick: qe
8598
8613
  }, null, 8, ["label", "disabled"])])) : m("", !0)
8599
8614
  ])
8600
8615
  ])]),
8601
8616
  _: 1
8602
8617
  }, 512),
8603
- M(He, {
8618
+ M(Ve, {
8604
8619
  ref_key: "memoryPopover",
8605
8620
  ref: ce
8606
8621
  }, {
@@ -8615,13 +8630,13 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8615
8630
  text: "",
8616
8631
  rounded: "",
8617
8632
  class: "cui-icon-md shrink-0 text-muted",
8618
- loading: g(R).isPending.value,
8619
- onClick: (t) => g(R).mutate(e._id)
8633
+ loading: g(z).isPending.value,
8634
+ onClick: (t) => g(z).mutate(e._id)
8620
8635
  }, {
8621
8636
  icon: v(() => [M(ee, { class: "w-3 h-3" })]),
8622
8637
  _: 1
8623
8638
  }, 8, ["loading", "onClick"])), [[
8624
- Je,
8639
+ Y,
8625
8640
  { value: a.$t("views.assistant.memory_forget") },
8626
8641
  void 0,
8627
8642
  { top: !0 }
@@ -8634,8 +8649,8 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8634
8649
  outlined: "",
8635
8650
  class: "w-full",
8636
8651
  label: a.$t("views.assistant.memory_forget_all"),
8637
- loading: g(z).isPending.value,
8638
- onClick: s[14] ||= (e) => g(z).mutate()
8652
+ loading: g(ie).isPending.value,
8653
+ onClick: s[14] ||= (e) => g(ie).mutate()
8639
8654
  }, null, 8, ["label", "loading"])) : m("", !0)
8640
8655
  ])]),
8641
8656
  _: 1
@@ -8643,7 +8658,7 @@ var el = { class: "relative flex h-full min-h-0 flex-col" }, tl = {
8643
8658
  ]);
8644
8659
  };
8645
8660
  }
8646
- }), [["__scopeId", "data-v-98a9b392"]]), Ql = {
8661
+ }), [["__scopeId", "data-v-e50ce56d"]]), Ql = {
8647
8662
  viewBox: "0 0 24 24",
8648
8663
  width: "1.2em",
8649
8664
  height: "1.2em"
@@ -8669,7 +8684,7 @@ var eu = d({
8669
8684
  }, ou = { class: "cui-assistant-group px-2 pt-3.5 pb-1 text-[11.5px] font-medium text-muted" }, su = ["onClick"], cu = { class: "min-w-0 flex-1 truncate" }, lu = {
8670
8685
  key: 3,
8671
8686
  class: "cui-assistant-sidebar-foot px-3 py-2"
8672
- }, uu = /*#__PURE__*/ Y(/* @__PURE__ */ A({
8687
+ }, uu = /*#__PURE__*/ J(/* @__PURE__ */ A({
8673
8688
  __name: "CuiAssistantSidebar",
8674
8689
  props: {
8675
8690
  threads: {},
@@ -8693,7 +8708,7 @@ var eu = d({
8693
8708
  "close"
8694
8709
  ],
8695
8710
  setup(e, { emit: n }) {
8696
- let a = e, s = n, { topbarOffset: c, bottombarHeight: u } = B(), d = w("sidebarRef"), f = j(""), y = _(() => a.isOpen ? 288 : 0), b = _(() => {
8711
+ let a = e, s = n, { topbarOffset: c, bottombarHeight: u } = K(), d = w("sidebarRef"), f = j(""), y = _(() => a.isOpen ? 288 : 0), b = _(() => {
8697
8712
  let e = f.value.trim().toLowerCase(), t = a.threads.filter((t) => !e || t.title.toLowerCase().includes(e)).sort((e, t) => t.updatedAt - e.updatedAt), n = [
8698
8713
  "today",
8699
8714
  "yesterday",
@@ -8714,10 +8729,10 @@ var eu = d({
8714
8729
  let t = (e) => new Date(e.getFullYear(), e.getMonth(), e.getDate()).getTime(), n = Math.round((t(/* @__PURE__ */ new Date()) - t(new Date(e))) / 864e5);
8715
8730
  return n <= 0 ? "today" : n === 1 ? "yesterday" : n <= 7 ? "week" : n <= 30 ? "month" : "older";
8716
8731
  }
8717
- return ve(d, (e) => {
8732
+ return ye(d, (e) => {
8718
8733
  a.isOpen && a.isOverlay && (e.target.closest("#assistant-sidebar-toggle") || s("close"));
8719
8734
  }), (n, a) => {
8720
- let _ = eu, w = De, O = qe, k = Ue, A = ke, j = Ae, ee = Oe, N = me, ne = oe, P = te;
8735
+ let _ = eu, w = Oe, O = qe, k = Ue, A = Ae, j = je, ee = ke, N = U, ne = oe, P = te;
8721
8736
  return i(), x("nav", {
8722
8737
  ref_key: "sidebarRef",
8723
8738
  ref: d,
@@ -8820,49 +8835,49 @@ var eu = d({
8820
8835
  }, vu = {
8821
8836
  key: 1,
8822
8837
  class: "flex flex-1 flex-col items-center justify-center gap-5 px-6 text-center"
8823
- }, yu = { class: "cui-assistant-hero-icon flex h-16 w-16 items-center justify-center rounded-full" }, bu = { class: "max-w-md" }, xu = { class: "text-lg font-semibold text-color" }, Su = { class: "mt-1 text-sm text-muted" }, Cu = /*#__PURE__*/ Y(/* @__PURE__ */ A({
8838
+ }, yu = { class: "cui-assistant-hero-icon flex h-16 w-16 items-center justify-center rounded-full" }, bu = { class: "max-w-md" }, xu = { class: "text-lg font-semibold text-color" }, Su = { class: "mt-1 text-sm text-muted" }, Cu = /*#__PURE__*/ J(/* @__PURE__ */ A({
8824
8839
  __name: "Assistant",
8825
8840
  setup(e) {
8826
- let t = new He(), n = ie(), r = he(), { t: a } = Ce(), { smBreakpoint: s, mdBreakpoint: u, xlBreakpoint: d } = re(), { openTextDialog: f } = ue(), h = K("/notifications"), C = U(), { user: D } = Se(C), { data: O, isLoading: k } = t.getAssistantInfoQuery(), { data: A, isLoading: N } = t.listThreadsQuery(), ne = t.deleteThreadMutation(), P = t.deleteAllThreadsMutation(), I = w("conversationRef"), L = j(Y()), z = j([]), B = j({}), V = j(typeof n.query.prompt == "string" ? n.query.prompt : void 0), ae = j(!1), oe = j(d.value ? "opened" : "closed"), se = j(!1), H = _(() => O.value?.status.state ?? "disabled"), ce = _(() => D.value?.role === "admin" || D.value?.role === "master"), W = _(() => (O.value?.tools ?? []).filter((e) => e.approval)), G = _(() => oe.value === "opened"), le = _(() => A.value?.find((e) => e.id === L.value)?.title ?? ""), J = _(() => u.value), de = _(() => u.value || H.value !== "ready" ? "0px" : G.value ? "288px" : "0px"), fe = _(() => [
8841
+ let t = new Y(), n = ge(), r = I(), { t: a } = we(), { smBreakpoint: s, mdBreakpoint: u, xlBreakpoint: d } = ie(), { openTextDialog: f } = ue(), h = me("/notifications"), C = W(), { user: D } = Ce(C), { data: O, isLoading: k } = t.getAssistantInfoQuery(), { data: A, isLoading: N } = t.listThreadsQuery(), ne = t.deleteThreadMutation(), P = t.deleteAllThreadsMutation(), re = w("conversationRef"), L = j(he()), z = j([]), B = j({}), V = j(typeof n.query.prompt == "string" ? n.query.prompt : void 0), ae = j(!1), oe = j(d.value ? "opened" : "closed"), se = j(!1), H = _(() => O.value?.status.state ?? "disabled"), ce = _(() => D.value?.role === "admin" || D.value?.role === "master"), le = _(() => (O.value?.tools ?? []).filter((e) => e.approval)), G = _(() => oe.value === "opened"), de = _(() => A.value?.find((e) => e.id === L.value)?.title ?? ""), K = _(() => u.value), fe = _(() => u.value || H.value !== "ready" ? "0px" : G.value ? "288px" : "0px"), pe = _(() => [
8827
8842
  a("views.assistant.suggestion_today"),
8828
8843
  a("views.assistant.suggestion_week"),
8829
8844
  a("views.assistant.suggestion_offline"),
8830
8845
  a("views.assistant.suggestion_sensors"),
8831
8846
  a("views.assistant.suggestion_tools")
8832
8847
  ]);
8833
- function Y() {
8848
+ function he() {
8834
8849
  return q();
8835
8850
  }
8836
- function pe() {
8851
+ function J() {
8837
8852
  oe.value = oe.value === "opened" ? "closed" : "opened";
8838
8853
  }
8839
- function ge() {
8854
+ function _e() {
8840
8855
  oe.value = "closed";
8841
8856
  }
8842
- function _e() {
8843
- z.value = [], B.value = {}, V.value = void 0, L.value = Y(), J.value && ge();
8857
+ function ve() {
8858
+ z.value = [], B.value = {}, V.value = void 0, L.value = he(), K.value && _e();
8844
8859
  }
8845
- async function ve(e) {
8846
- if (J.value && ge(), e !== L.value) {
8860
+ async function ye(e) {
8861
+ if (K.value && _e(), e !== L.value) {
8847
8862
  ae.value = !0;
8848
8863
  try {
8849
- let t = await Re(e);
8864
+ let t = await ze(e);
8850
8865
  z.value = t.messages, B.value = t.attachments, V.value = void 0, L.value = e;
8851
8866
  } finally {
8852
8867
  ae.value = !1;
8853
8868
  }
8854
8869
  }
8855
8870
  }
8856
- async function ye(e) {
8857
- await ne.mutateAsync(e).catch(() => void 0), e === L.value && _e();
8858
- }
8859
8871
  async function be(e) {
8872
+ await ne.mutateAsync(e).catch(() => void 0), e === L.value && ve();
8873
+ }
8874
+ async function xe(e) {
8860
8875
  z.value = e.messages, B.value = e.attachments, V.value = void 0, L.value = e._id, await t.queryClient.refetchQueries({
8861
8876
  queryKey: ["assistant", "threads"],
8862
8877
  exact: !0
8863
8878
  });
8864
8879
  }
8865
- function xe() {
8880
+ function Se() {
8866
8881
  f({
8867
8882
  data: {
8868
8883
  title: a("views.assistant.delete_all_conversations"),
@@ -8871,47 +8886,47 @@ var eu = d({
8871
8886
  confirmButtonProps: { severity: "danger" }
8872
8887
  },
8873
8888
  onConfirm: async () => {
8874
- await P.mutateAsync(), _e();
8889
+ await P.mutateAsync(), ve();
8875
8890
  }
8876
8891
  });
8877
8892
  }
8878
- async function Te(e) {
8893
+ async function Ee(e) {
8879
8894
  try {
8880
- await ve(e);
8895
+ await ye(e);
8881
8896
  } catch {
8882
8897
  L.value = e;
8883
8898
  }
8884
8899
  }
8885
- async function Ee() {
8900
+ async function De() {
8886
8901
  await t.queryClient.refetchQueries({
8887
8902
  queryKey: ["assistant", "threads"],
8888
8903
  exact: !0
8889
8904
  });
8890
8905
  }
8891
- async function Oe(e) {
8906
+ async function ke(e) {
8892
8907
  if (await t.queryClient.refetchQueries({
8893
8908
  queryKey: ["assistant", "threads"],
8894
8909
  exact: !0
8895
8910
  }), e.threadId !== L.value) return;
8896
- let n = await Re(e.threadId).catch(() => void 0);
8897
- n && I.value?.refreshFromStore(n);
8911
+ let n = await ze(e.threadId).catch(() => void 0);
8912
+ n && re.value?.refreshFromStore(n);
8898
8913
  }
8899
- function ke() {
8914
+ function Ae() {
8900
8915
  let e = A.value?.some((e) => e.id === L.value), t = {
8901
8916
  ...n.query,
8902
8917
  thread: e ? L.value : void 0
8903
8918
  };
8904
8919
  t.thread !== n.query.thread && r.replace({ query: t });
8905
8920
  }
8906
- return b([L, A], ke), ee(async () => {
8907
- h.on("assistant-thread", (e) => Oe(e));
8921
+ return b([L, A], Ae), ee(async () => {
8922
+ h.on("assistant-thread", (e) => ke(e));
8908
8923
  let e = typeof n.query.thread == "string" ? n.query.thread : void 0;
8909
8924
  n.query.prompt !== void 0 && r.replace({ query: {
8910
8925
  ...n.query,
8911
8926
  prompt: void 0
8912
- } }), e && !V.value && await Te(e), await c(), se.value = !0;
8927
+ } }), e && !V.value && await Ee(e), await c(), se.value = !0;
8913
8928
  }), (e, t) => {
8914
- let n = R, r = rt, a = De, c = F, u = qe, d = uu, f = eu, h = me, _ = we, b = Zl, C = te;
8929
+ let n = R, r = rt, a = Oe, c = F, u = qe, d = uu, f = eu, h = U, _ = Te, b = Zl, C = te;
8915
8930
  return i(), x("div", null, [
8916
8931
  M(n, { position: "center" }, {
8917
8932
  default: v(() => [T("span", du, o(e.$t("views.assistant.title")), 1)]),
@@ -8932,7 +8947,7 @@ var eu = d({
8932
8947
  class: "cui-button p-2 text-color",
8933
8948
  text: "",
8934
8949
  rounded: "",
8935
- onClick: pe
8950
+ onClick: J
8936
8951
  }, {
8937
8952
  icon: v(() => [M(c, {
8938
8953
  width: "100%",
@@ -8949,7 +8964,7 @@ var eu = d({
8949
8964
  text: "",
8950
8965
  rounded: "",
8951
8966
  disabled: g(H) !== "ready",
8952
- onClick: _e
8967
+ onClick: ve
8953
8968
  }, {
8954
8969
  icon: v(() => [M(u, {
8955
8970
  width: "100%",
@@ -8965,12 +8980,12 @@ var eu = d({
8965
8980
  "active-id": g(L),
8966
8981
  loading: g(N),
8967
8982
  "is-open": g(G),
8968
- "is-overlay": g(J),
8969
- onSelect: ve,
8970
- onCreate: _e,
8971
- onDelete: ye,
8972
- onDeleteAll: xe,
8973
- onClose: ge
8983
+ "is-overlay": g(K),
8984
+ onSelect: ye,
8985
+ onCreate: ve,
8986
+ onDelete: be,
8987
+ onDeleteAll: Se,
8988
+ onClose: _e
8974
8989
  }, null, 8, [
8975
8990
  "threads",
8976
8991
  "active-id",
@@ -8981,15 +8996,15 @@ var eu = d({
8981
8996
  (i(), p(y, {
8982
8997
  to: "#container",
8983
8998
  defer: ""
8984
- }, [g(G) && g(J) ? (i(), x("div", {
8999
+ }, [g(G) && g(K) ? (i(), x("div", {
8985
9000
  key: 0,
8986
9001
  class: "fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1",
8987
- onClick: ge
9002
+ onClick: _e
8988
9003
  })) : m("", !0)])),
8989
9004
  T("main", {
8990
9005
  class: "relative w-full h-full",
8991
9006
  style: S({
8992
- paddingLeft: g(de),
9007
+ paddingLeft: g(fe),
8993
9008
  transition: g(se) ? "padding-left 200ms" : void 0
8994
9009
  })
8995
9010
  }, [T("div", fu, [
@@ -9002,7 +9017,7 @@ var eu = d({
9002
9017
  class: "mr-2 cui-icon-lg relative z-2",
9003
9018
  text: "",
9004
9019
  rounded: "",
9005
- onClick: pe
9020
+ onClick: J
9006
9021
  }, {
9007
9022
  icon: v(() => [M(f, {
9008
9023
  width: "100%",
@@ -9016,7 +9031,7 @@ var eu = d({
9016
9031
  { bottom: !0 }
9017
9032
  ]]) : m("", !0),
9018
9033
  T("h1", mu, o(e.$t("views.assistant.title")), 1),
9019
- g(le) ? (i(), x("span", hu, o(g(le)), 1)) : m("", !0),
9034
+ g(de) ? (i(), x("span", hu, o(g(de)), 1)) : m("", !0),
9020
9035
  t[4] ||= T("div", { class: "gradient-blur rotate-180 !h-[70px]" }, [
9021
9036
  T("div"),
9022
9037
  T("div"),
@@ -9031,7 +9046,7 @@ var eu = d({
9031
9046
  text: "",
9032
9047
  rounded: "",
9033
9048
  class: "cui-icon-lg relative z-2",
9034
- onClick: _e
9049
+ onClick: ve
9035
9050
  }, {
9036
9051
  icon: v(() => [M(u, {
9037
9052
  width: "100%",
@@ -9052,19 +9067,19 @@ var eu = d({
9052
9067
  "stroke-width": "5"
9053
9068
  })])) : g(H) === "ready" ? (i(), p(b, {
9054
9069
  ref_key: "conversationRef",
9055
- ref: I,
9070
+ ref: re,
9056
9071
  key: g(L),
9057
9072
  "thread-id": g(L),
9058
9073
  "initial-messages": g(z),
9059
9074
  "initial-attachments": g(B),
9060
9075
  "initial-prompt": g(V),
9061
- suggestions: g(fe),
9062
- "approval-tools": g(W),
9076
+ suggestions: g(pe),
9077
+ "approval-tools": g(le),
9063
9078
  tools: g(O)?.tools ?? [],
9064
9079
  class: "flex-1 min-h-0",
9065
- onFinished: Ee,
9066
- onBranched: be,
9067
- onEmptied: t[2] ||= (e) => ye(g(L))
9080
+ onFinished: De,
9081
+ onBranched: xe,
9082
+ onEmptied: t[2] ||= (e) => be(g(L))
9068
9083
  }, null, 8, [
9069
9084
  "thread-id",
9070
9085
  "initial-messages",