@acedatacloud/nexior 3.357.0 → 3.358.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/dist/assets/ApiCodeButton-CiNqmFYp.js +1 -0
  2. package/dist/assets/ApiCodeDialog-D5xtaIx6.css +1 -0
  3. package/dist/assets/ApiCodeDialog-z5vXc7Xi.js +282 -0
  4. package/dist/assets/{Artifacts-BEwz85G1.js → Artifacts-BgCwr5i5.js} +1 -1
  5. package/dist/assets/{AskUserQuestionCard-DszOz9O7.js → AskUserQuestionCard-c9PYBcSn.js} +1 -1
  6. package/dist/assets/{VideoPreview-CoUwodYx.css → AudioPreview-DJmmKcHK.css} +1 -1
  7. package/dist/assets/AudioPreview-uUWI_oVU.js +1 -0
  8. package/dist/assets/{Auth-4KSwo7U9.js → Auth-D7rXWt2c.js} +1 -1
  9. package/dist/assets/{Bare-LiVix71v.js → Bare-QIH-zKDl.js} +1 -1
  10. package/dist/assets/{BotPlaceholder-Bu9BbNUw.js → BotPlaceholder-CDv27X3P.js} +1 -1
  11. package/dist/assets/BottomFooter-CWWBSFTa.css +1 -0
  12. package/dist/assets/BottomFooter-CgjUhGFP.js +1 -0
  13. package/dist/assets/{BrowseConnectors-BNPBP42g.js → BrowseConnectors-1biG2Qgb.js} +1 -1
  14. package/dist/assets/{BrowserPairingDialog-CYZ_3lH5.js → BrowserPairingDialog-BIBE8_J9.js} +1 -1
  15. package/dist/assets/{Callback-oA5QMgjb.js → Callback-CgQSpuL1.js} +1 -1
  16. package/dist/assets/{CodeSnippet-Dt7rbpdx.js → CodeSnippet-CBWP_eZL.js} +1 -1
  17. package/dist/assets/{Console-dY3dWKr1.js → Console-XKqCKdZn.js} +1 -1
  18. package/dist/assets/{Consumption-B1H9Udpr.js → Consumption-Byk7yTVz.js} +1 -1
  19. package/dist/assets/{Conversation-DjuA6bV4.js → Conversation-D8Wm_Zri.js} +1 -1
  20. package/dist/assets/{Conversation-DJ5UhU4S.js → Conversation-dprhbIvD.js} +1 -1
  21. package/dist/assets/{CopyToClipboard-CrS-3Doq.js → CopyToClipboard-BMiCg7d2.js} +1 -1
  22. package/dist/assets/{Detail-DzWBjma1.css → Detail-BbDnDZ62.css} +1 -1
  23. package/dist/assets/Detail-BxuN8k_9.js +2 -0
  24. package/dist/assets/{Extra-B9IVw-0O.js → Extra-xrdEsbzz.js} +1 -1
  25. package/dist/assets/{FilePreview-Dqm4w0Zz.js → FilePreview-B2BrZCN4.js} +1 -1
  26. package/dist/assets/{Hailuo-DBe5Q4ZS.js → Hailuo-C2sgwciH.js} +1 -1
  27. package/dist/assets/{History-DnVVJzIr.js → History-DwzwIr-b.js} +1 -1
  28. package/dist/assets/{ImagePreview-Dx93HYYQ.js → ImagePreview-ESZQ89R1.js} +1 -1
  29. package/dist/assets/{ImageWrapper-BvF7E-9g.js → ImageWrapper-ByG7FJxY.js} +1 -1
  30. package/dist/assets/{Index-c6h5-cwk.js → Index-B3f-1Ux6.js} +1 -1
  31. package/dist/assets/Index-B8RYaLCH.js +1 -0
  32. package/dist/assets/Index-BMpUhZ9q.js +1 -0
  33. package/dist/assets/{Index-Bi11aQ4F2.js → Index-BSvC21Tn.js} +1 -1
  34. package/dist/assets/Index-B_Iz0WQh.js +1 -0
  35. package/dist/assets/{Index-Db0VUwx32.js → Index-Bpb4LsMP.js} +1 -1
  36. package/dist/assets/{Index-BZMb1YsP.js → Index-C6oXyNiR.js} +1 -1
  37. package/dist/assets/Index-CFip9nIj.css +1 -0
  38. package/dist/assets/Index-CP8kmAF9.js +1 -0
  39. package/dist/assets/Index-CQX-mX8l.js +1 -0
  40. package/dist/assets/Index-CRHRqEjI.js +1 -0
  41. package/dist/assets/{Index-COStC3a3.js → Index-CZTEOg82.js} +1 -1
  42. package/dist/assets/Index-C_69L5xX.js +1 -0
  43. package/dist/assets/{Index-pm4u6nZH.js → Index-CirWkDBR.js} +1 -1
  44. package/dist/assets/{Index-DSCQuNcd2.js → Index-CiwW7_xF.js} +1 -1
  45. package/dist/assets/{Index-Cb4WrYLI.js → Index-Cj5n4RJn2.js} +1 -1
  46. package/dist/assets/Index-CmbZFmpj.js +1 -0
  47. package/dist/assets/{Index-BpKi2l1M.js → Index-CvB6FNVL.js} +1 -1
  48. package/dist/assets/{Index-D1YCCMvB.js → Index-D2m8ATNJ.js} +2 -2
  49. package/dist/assets/Index-D3VSffBn.js +1 -0
  50. package/dist/assets/{Index-BsmkqifM.js → Index-D8Zqoj4n.js} +1 -1
  51. package/dist/assets/{Index-D7ckHLXP.js → Index-D8yq23DF.js} +1 -1
  52. package/dist/assets/Index-DG5VlJU5.js +1 -0
  53. package/dist/assets/{Index-B1JzWZxL.js → Index-DK143DDK.js} +1 -1
  54. package/dist/assets/Index-DOXpcGvC.js +1 -0
  55. package/dist/assets/{Index-DG2Sl0_0.js → Index-DSE4_905.js} +1 -1
  56. package/dist/assets/Index-DfULgGDk.js +1 -0
  57. package/dist/assets/{Index-BBEdzq_0.js → Index-Dh6I-L3l.js} +1 -1
  58. package/dist/assets/{Index-CKvzWqDc.js → Index-DpsQqW9b.js} +1 -1
  59. package/dist/assets/{Index-CQbOysRZ.js → Index-DrFIjAC4.js} +1 -1
  60. package/dist/assets/Index-DtxAmXcP.js +1 -0
  61. package/dist/assets/Index-DzfWc7R3.js +1 -0
  62. package/dist/assets/{Index-CCYVCct8.js → Index-YcZrDvKK.js} +1 -1
  63. package/dist/assets/{Index-DS_wLYVw.js → Index-alCHtqWd.js} +1 -1
  64. package/dist/assets/{Index-DZKSbHxm.js → Index-iHUpduNy.js} +1 -1
  65. package/dist/assets/Index-vI1pmCgu.js +1 -0
  66. package/dist/assets/{Invitees-CDhJx8UL.js → Invitees-DV3QywcL.js} +1 -1
  67. package/dist/assets/List-BARsKpTh.js +1 -0
  68. package/dist/assets/List-BW8OTe4G.js +1 -0
  69. package/dist/assets/List-DuRVdIUe.js +1 -0
  70. package/dist/assets/{LocalTools-CSUGxxHq.js → LocalTools-B5ToSxwe.js} +1 -1
  71. package/dist/assets/{LocalTools-CHKfOgco.js → LocalTools-BhSf8_Y4.js} +3 -3
  72. package/dist/assets/{Logo-Bhc7s5iP.js → Logo-BCsapzVO.js} +1 -1
  73. package/dist/assets/Main-Cy6-Ifg-.js +1 -0
  74. package/dist/assets/Main-DWK8rjPk.css +1 -0
  75. package/dist/assets/{Message--rJ5FRr0.js → Message-DlnFjCzr.js} +2 -2
  76. package/dist/assets/Model-Dt3P_UQQ.js +1 -0
  77. package/dist/assets/{Navigator-QERhEabp.js → Navigator-E7FCgVs1.js} +4 -4
  78. package/dist/assets/{NotFound-BTGjEVoq.js → NotFound-BopsMgLM.js} +1 -1
  79. package/dist/assets/{PageHeader-CRMBEU2F.js → PageHeader-Cd9mBW43.js} +1 -1
  80. package/dist/assets/{Pay-uyUwNQb3.js → Pay-0x3gmRoq.js} +1 -1
  81. package/dist/assets/{Player-BkhmrMhz.js → Player-DQNg6dOq.js} +1 -1
  82. package/dist/assets/{Poivelle-B3995q76.js → Poivelle-0k_mctcv.js} +1 -1
  83. package/dist/assets/{RealtimeCall-oro05Ct1.js → RealtimeCall-BgkQdni0.js} +1 -1
  84. package/dist/assets/{ReportButton-0FaWenrZ.js → ReportButton-CuTsbpH1.js} +1 -1
  85. package/dist/assets/{ReportDialog-CMbgvq9G.js → ReportDialog-dN-kkVrJ.js} +1 -1
  86. package/dist/assets/ScheduledTasks-CvrES_A8.css +1 -0
  87. package/dist/assets/ScheduledTasks-D-qGHm0o.js +2 -0
  88. package/dist/assets/SolanaWalletPickerDialog-CS7bSwXe.js +1 -0
  89. package/dist/assets/SolanaWalletPickerDialog-t81xwej4.css +1 -0
  90. package/dist/assets/Status-AZzfal7k.js +1 -0
  91. package/dist/assets/{Status-8gHhjAIu.css → Status-BDIpm7RB.css} +1 -1
  92. package/dist/assets/{Subscribe-DPDON8PP.js → Subscribe-zhWEFj1j.js} +1 -1
  93. package/dist/assets/{TabSwitcher-4H7n1Tlw.js → TabSwitcher-C4UtlgZ0.js} +1 -1
  94. package/dist/assets/Tts-CqGAcIoB.js +1 -0
  95. package/dist/assets/{VideoPlayer-BuqN0Gx_.js → VideoPlayer-B9ZoxGwN.js} +1 -1
  96. package/dist/assets/VideoPreview-D0f8om32.js +1 -0
  97. package/dist/assets/VideoPreview-DBUdhybU.css +1 -0
  98. package/dist/assets/arrow-down-CnzBxJOK.js +1 -0
  99. package/dist/assets/{arrow-down-wide-narrow-CbCKh4QV.js → arrow-down-wide-narrow-D9hT9P8T.js} +1 -1
  100. package/dist/assets/arrow-left-igb8AMz_.js +1 -0
  101. package/dist/assets/arrow-right-CGXNgdDZ.js +1 -0
  102. package/dist/assets/arrow-up-Drhcfl9s.js +1 -0
  103. package/dist/assets/{authorizeFlow-T33pIG_A.js → authorizeFlow-DjzUZZcO.js} +1 -1
  104. package/dist/assets/{avatar-Ch_b5GkH.js → avatar-DIY5kVwM.js} +1 -1
  105. package/dist/assets/{basic-BcJIU0kn.js → basic-C9st9xfO.js} +1 -1
  106. package/dist/assets/{book-open-CxPet1iD.js → book-open-89ot7rat.js} +1 -1
  107. package/dist/assets/{box-D01T0Rfx.js → box-C1K_05R1.js} +1 -1
  108. package/dist/assets/{boxes-Br6u6h7W.js → boxes-CVfQGj6z.js} +1 -1
  109. package/dist/assets/{brain-7SbdzKi-.js → brain-DFSeKAZC.js} +1 -1
  110. package/dist/assets/buffer-CnhyIITQ.js +1 -0
  111. package/dist/assets/{chart-no-axes-combined-a76jXeKY.js → chart-no-axes-combined-k3QiYa3s.js} +1 -1
  112. package/dist/assets/{chat-tVMgy5Vp.js → chat-BY9DKfAi.js} +1 -1
  113. package/dist/assets/{chat-BCesDtJ3.js → chat-BbW_31UJ.js} +1 -1
  114. package/dist/assets/{chat-X8Cat-XB.js → chat-C-7WVcbW.js} +1 -1
  115. package/dist/assets/{chat-D1g6XsR2.js → chat-C1uZputZ.js} +1 -1
  116. package/dist/assets/{chat-D8fIUUHI.js → chat-CA0MD_st.js} +1 -1
  117. package/dist/assets/{chat-IIVf-p05.js → chat-CFPaNnVM.js} +1 -1
  118. package/dist/assets/chat-CK9a-_Ni.js +1 -0
  119. package/dist/assets/{chat-Qs-jqcie.js → chat-CPepUbBA.js} +1 -1
  120. package/dist/assets/{chat-BBM7q6iO.js → chat-CPyDS1s8.js} +1 -1
  121. package/dist/assets/{chat-DCJKYRGJ.js → chat-CmjlhXy_.js} +1 -1
  122. package/dist/assets/{chat-3ZBsk2R8.js → chat-CwJDPmon.js} +1 -1
  123. package/dist/assets/{chat-a-osbcqP.js → chat-D0orhGlF.js} +1 -1
  124. package/dist/assets/{chat-CMr-RhTA.js → chat-DCsVMCF2.js} +1 -1
  125. package/dist/assets/{chat--hdiwTE1.js → chat-DPYlE44u.js} +1 -1
  126. package/dist/assets/{chat-ob9mF2EV.js → chat-DpRbp8uT.js} +1 -1
  127. package/dist/assets/{chat-N7Bh40up.js → chat-DsACa9Pk.js} +1 -1
  128. package/dist/assets/{chat-HPZrpkXN.js → chat-duM8vKdA.js} +1 -1
  129. package/dist/assets/{chat-CJ_Wx6Pf.js → chat-tfvZdHmk.js} +1 -1
  130. package/dist/assets/{chat-BJ3bwj1q.js → chat-yJqk9kt9.js} +1 -1
  131. package/dist/assets/check-sZ3LdzYe.js +1 -0
  132. package/dist/assets/chevron-down-B9A1h-il.js +1 -0
  133. package/dist/assets/chevron-right-CSsOai_n.js +1 -0
  134. package/dist/assets/circle-check-Cm0vi3QJ.js +1 -0
  135. package/dist/assets/{circle-question-mark-BYI0Fw8i.js → circle-question-mark-C5ETt-Gy.js} +1 -1
  136. package/dist/assets/{clipboard-list-q6zyt251.js → clipboard-list-BaOyMkLK.js} +1 -1
  137. package/dist/assets/clock-BRjX06BR.js +1 -0
  138. package/dist/assets/code-4fXy3EJM.js +1 -0
  139. package/dist/assets/{codingBridge-D94yLp8q.js → codingBridge-ZH5aQjeX.js} +2 -2
  140. package/dist/assets/codingBridgeNotify-Djdt8v1B.js +2 -0
  141. package/dist/assets/{coins-FZL59XN_.js → coins-o7-8OSvE.js} +1 -1
  142. package/dist/assets/{collapse-DJqll19W.js → collapse-B7B33h1p.js} +1 -1
  143. package/dist/assets/common-B0AwyZ0R.js +1 -0
  144. package/dist/assets/common-BhFY4Nfj.js +1 -0
  145. package/dist/assets/common-BxghAawV.js +1 -0
  146. package/dist/assets/common-C91IcTAP.js +1 -0
  147. package/dist/assets/common-CFA9D-B8.js +1 -0
  148. package/dist/assets/common-CGyig8uz.js +1 -0
  149. package/dist/assets/common-CIIPW1V6.js +1 -0
  150. package/dist/assets/common-CS44-vkN.js +1 -0
  151. package/dist/assets/common-Ci6lFKFu.js +1 -0
  152. package/dist/assets/common-D10tIq4t.js +1 -0
  153. package/dist/assets/common-DCZ9WgJa.js +1 -0
  154. package/dist/assets/common-DHIqv_E2.js +1 -0
  155. package/dist/assets/common-D_IBIEcB.js +1 -0
  156. package/dist/assets/common-DnhdQFuG.js +1 -0
  157. package/dist/assets/common-DvJgI5Kb.js +1 -0
  158. package/dist/assets/common-NE7dgihi.js +1 -0
  159. package/dist/assets/common-Xc5jgBlX.js +1 -0
  160. package/dist/assets/common-h-S2acsx.js +1 -0
  161. package/dist/assets/connector-gXUM4d-8.js +1 -0
  162. package/dist/assets/constants-CX4j41GC.js +1 -0
  163. package/dist/assets/{copy-DRq4dd9Q.js → copy-CS92scYJ.js} +1 -1
  164. package/dist/assets/{createTaskActions-CONOE9Ox.js → createTaskActions-DLdbSeB0.js} +1 -1
  165. package/dist/assets/debounce-5xtusvLq.js +1 -0
  166. package/dist/assets/{digitalhuman-C5_9rekl.js → digitalhuman-CRLcje7j.js} +1 -1
  167. package/dist/assets/{dollar-sign-DWx_G9MH.js → dollar-sign-Dp4uO1oi.js} +1 -1
  168. package/dist/assets/{download-CJKM7jCz.js → download-BdbUJy-0.js} +1 -1
  169. package/dist/assets/{drawer-CKZxuyy2.js → drawer-BWJ3_fqW.js} +1 -1
  170. package/dist/assets/{dropdown-DpNMkxRO.js → dropdown--LXlsWOR.js} +1 -1
  171. package/dist/assets/{dropdown-D1pMxYwA.js → dropdown-gJTX6f0h.js} +1 -1
  172. package/dist/assets/{ellipsis-CILfOizt.js → ellipsis-CGG2t4rN.js} +1 -1
  173. package/dist/assets/{esm-2PB4gbIJ.js → esm-BbAKv0FA.js} +1 -1
  174. package/dist/assets/{esm-BohU7l72.js → esm-BdQ3IlZD.js} +1 -1
  175. package/dist/assets/esm-COArLl5w.js +2 -0
  176. package/dist/assets/{esm-CA8Uyl0O.js → esm-ClxEw27d.js} +1 -1
  177. package/dist/assets/esm-D0SEwzQg.js +1 -0
  178. package/dist/assets/{esm-BtJ2xZct.js → esm-DJYfkLDv.js} +3 -3
  179. package/dist/assets/{esm-BADAICpD.js → esm-xK2aBMtJ.js} +2 -2
  180. package/dist/assets/{external-link-sLbl4U1-.js → external-link-B_1us9v2.js} +1 -1
  181. package/dist/assets/{eye-DmwkAD9t.js → eye-B7qn04JQ.js} +1 -1
  182. package/dist/assets/{file-FeLyPUia.js → file-BexmqRy7.js} +1 -1
  183. package/dist/assets/{file-output-kTMJELKZ.js → file-output-BJhPINIu.js} +1 -1
  184. package/dist/assets/{file-text-cKaWTcoM.js → file-text-CJaP1sSt.js} +1 -1
  185. package/dist/assets/fish-BJ8_esph.js +1 -0
  186. package/dist/assets/{flux-Du4-4xdo.js → flux-St5avyWB.js} +1 -1
  187. package/dist/assets/{folder-CapB5Yye.js → folder-CVwMb5LW.js} +1 -1
  188. package/dist/assets/gauge-DZ-l2vCx.js +1 -0
  189. package/dist/assets/{globe-3aOK7J1b.js → globe-BUY6KxOP.js} +1 -1
  190. package/dist/assets/{omni-CIzaCByJ.js → grokvideo-BzBXIfSN.js} +1 -1
  191. package/dist/assets/hailuo-Ehj7U293.js +1 -0
  192. package/dist/assets/{headphones-BV6kUfof.js → headphones-DP3Pmamv.js} +1 -1
  193. package/dist/assets/{history-D-fKzBv8.js → history-Drg92s0e.js} +1 -1
  194. package/dist/assets/{house-Cm0ctS2v.js → house-B1TwBkue.js} +1 -1
  195. package/dist/assets/i18n-thhk7vzg.js +3 -0
  196. package/dist/assets/{image-9QrJZd7m.js → image-DLh3kiN0.js} +1 -1
  197. package/dist/assets/imageRequests-BMlSTRGz.js +1 -0
  198. package/dist/assets/imageRequests-DGx3ElFQ.css +1 -0
  199. package/dist/assets/index-DKnFv8oI.js +570 -0
  200. package/dist/assets/{index-Bme61TZ_.css → index-DW-VIENs.css} +1 -1
  201. package/dist/assets/index.browser.esm-D1e4_8C8.js +2 -0
  202. package/dist/assets/{index.es-B4bDjPfm.js → index.es-lCrLu01L.js} +1 -1
  203. package/dist/assets/{info-BbgRo3R9.js → info-JrDUNc3f.js} +1 -1
  204. package/dist/assets/{input-number-OCoLwwKA.js → input-number-C61XfqeG.js} +1 -1
  205. package/dist/assets/{intro-2CIeLa4V.js → intro-BRxhwzgc.js} +1 -1
  206. package/dist/assets/{intro-CVqOAs0d.js → intro-B_1rEL4k.js} +1 -1
  207. package/dist/assets/{intro-D26BGrp9.js → intro-BcRXuT1K.js} +1 -1
  208. package/dist/assets/{intro-CumGy2RC.js → intro-Bg7QV5Rq.js} +1 -1
  209. package/dist/assets/{intro-DFfBLUfo.js → intro-CAF9HiWf.js} +1 -1
  210. package/dist/assets/{intro-CX-tVM1n.js → intro-CBekcUNN.js} +1 -1
  211. package/dist/assets/{intro-Dq8aF71M.js → intro-CGuk1jLl.js} +1 -1
  212. package/dist/assets/{intro-msK-p0lY.js → intro-COm5xqdX.js} +1 -1
  213. package/dist/assets/{intro-Z5WuhH2a.js → intro-CVWe7Kot.js} +1 -1
  214. package/dist/assets/{intro-BQHGX5HW.js → intro-CZrEGpvV.js} +1 -1
  215. package/dist/assets/{intro-HirJwSQO.js → intro-D8jlxqfD.js} +1 -1
  216. package/dist/assets/{intro-bo9fZbK4.js → intro-DdpC81qG.js} +1 -1
  217. package/dist/assets/{intro-D7SWXPm3.js → intro-Dty7Xa3w.js} +1 -1
  218. package/dist/assets/{intro-BTSbJEHO.js → intro-DxIDK4-7.js} +1 -1
  219. package/dist/assets/{intro-zxCwJqFb.js → intro-PFBIw-8e.js} +1 -1
  220. package/dist/assets/{intro-JkrATbbK.js → intro-RnQVpcEg.js} +1 -1
  221. package/dist/assets/{intro-BuaD45ZB.js → intro-SyZF6diN.js} +1 -1
  222. package/dist/assets/intro-xnV3M4NM.js +1 -0
  223. package/dist/assets/{key-round-AltJ_oGX.js → key-round-DXFWRMd5.js} +1 -1
  224. package/dist/assets/{kling-CmEWSSqE.js → kling-DoGXHJTZ.js} +1 -1
  225. package/dist/assets/{languages-BVZdKT0O.js → languages-Cgvplr1A.js} +1 -1
  226. package/dist/assets/{laptop-vuRLXAz4.js → laptop-I-UIq9Vj.js} +1 -1
  227. package/dist/assets/{lightbulb-BaRcDNdi.js → lightbulb-DQPhT5Fv.js} +1 -1
  228. package/dist/assets/{link-7MNWAqYH.js → link-DqeldxUU.js} +1 -1
  229. package/dist/assets/loader-circle-BOu6l4ZA.js +1 -0
  230. package/dist/assets/{lock-FlTMsW3N.js → lock-Cyg1wnc-.js} +1 -1
  231. package/dist/assets/{luma-C_X9uHsP.js → luma-gSaEzmni.js} +1 -1
  232. package/dist/assets/{maestro-DAyqXxl3.js → maestro-DpyfDSpq.js} +1 -1
  233. package/dist/assets/{maestro-B6dkh2k5.js → maestro-EccNg3GS.js} +1 -1
  234. package/dist/assets/{mail-CxH_j43J.js → mail-qBSkwZDU.js} +1 -1
  235. package/dist/assets/{message-circle--668KoV2.js → message-circle-BQZnKfis.js} +1 -1
  236. package/dist/assets/{mic-9FMbLwpP.js → mic-DcJCGd7v.js} +1 -1
  237. package/dist/assets/{midjourney-_sZ4XK7W.js → midjourney-CT0W-uYP.js} +1 -1
  238. package/dist/assets/minimax-6eNHY7wD.js +1 -0
  239. package/dist/assets/minimax-BXYNPt9a.js +1 -0
  240. package/dist/assets/minimax-Br7fn1f4.js +1 -0
  241. package/dist/assets/minimax-Bwj6f8AH.js +1 -0
  242. package/dist/assets/minimax-CAsYD5hY.js +1 -0
  243. package/dist/assets/minimax-CO0p_Bsi.js +1 -0
  244. package/dist/assets/minimax-Cfgk-7-d.js +1 -0
  245. package/dist/assets/minimax-D4ChR8N8.js +1 -0
  246. package/dist/assets/minimax-DPq7G_Om.js +1 -0
  247. package/dist/assets/minimax-DYwUq6OA.js +1 -0
  248. package/dist/assets/minimax-D_MqaBJe.js +1 -0
  249. package/dist/assets/minimax-Dgzja64h.js +1 -0
  250. package/dist/assets/minimax-DjOXj0u0.js +1 -0
  251. package/dist/assets/minimax-DzbpBiCf.js +1 -0
  252. package/dist/assets/{hailuo-CoiyFOk9.js → minimax-Pf3RXf5W.js} +1 -1
  253. package/dist/assets/minimax-UjKnoa_7.js +1 -0
  254. package/dist/assets/minimax-VLuwz_4L.js +1 -0
  255. package/dist/assets/minimax-kEKp0gQL.js +1 -0
  256. package/dist/assets/minimax-tk9lT-9L.js +1 -0
  257. package/dist/assets/{mobileLocalExec-CsJ1DlhZ.js → mobileLocalExec-ChALdNhl.js} +2 -2
  258. package/dist/assets/{models-p9iPUELt.js → models-D6J60Ang.js} +1 -1
  259. package/dist/assets/{monitor-DjWc24pt.js → monitor-C6EmGPtA.js} +1 -1
  260. package/dist/assets/{mouse-pointer-2-BaLCE3k6.js → mouse-pointer-2-BJ6u3j3g.js} +1 -1
  261. package/dist/assets/music-2-CuTbesAz.js +1 -0
  262. package/dist/assets/{nanobanana-CYMVtjQJ.js → nanobanana-DHdmNSY7.js} +1 -1
  263. package/dist/assets/{grokvideo-Cm8lZFLk.js → omni-DNB82gzr.js} +1 -1
  264. package/dist/assets/{openaiimage-d2R5G4CF.js → openaiimage-67EecuUS.js} +1 -1
  265. package/dist/assets/pagination-4fpGtxqE.css +1 -0
  266. package/dist/assets/{pagination-jkoF9i4Q.js → pagination-Bh_-G5Ma.js} +1 -1
  267. package/dist/assets/{pagination-Opqw9ZQt.js → pagination-D0KEjXO1.js} +1 -1
  268. package/dist/assets/pagination-D8oUwQ9k.js +1 -0
  269. package/dist/assets/{palette-DGfxXhb2.js → palette-BP1_UTBm.js} +1 -1
  270. package/dist/assets/{paperclip-DwOOMtLD.js → paperclip-bLPkbpvE.js} +1 -1
  271. package/dist/assets/{pause-CyDvWTEs.js → pause-DThYSFfn.js} +1 -1
  272. package/dist/assets/{pencil-dd20SUzj.js → pencil-U1H8ouvD.js} +1 -1
  273. package/dist/assets/{pika-C9Nl_EgS.js → pika-CWpxgVbz.js} +1 -1
  274. package/dist/assets/{pixverse-C66Q_ClW.js → pixverse-DzV6JmiT.js} +1 -1
  275. package/dist/assets/play-DUVZyA7n.js +1 -0
  276. package/dist/assets/{plug-DF1Drmqf.js → plug-qlX-ubkq.js} +1 -1
  277. package/dist/assets/plus-Coq-6ZBW.js +1 -0
  278. package/dist/assets/{poivelle-CPAzbABG.js → poivelle-BpE_pkIX.js} +1 -1
  279. package/dist/assets/{popover-DLr7y_Uh.js → popover-Bf9u8EI7.js} +1 -1
  280. package/dist/assets/{producer-C80raq6U.js → producer-B0atTy_p.js} +1 -1
  281. package/dist/assets/{qrart-Du4H365U.js → qrart-qKp7QNwE.js} +1 -1
  282. package/dist/assets/{realtime-A1shWHou.js → realtime-C9h-cRy7.js} +1 -1
  283. package/dist/assets/{refresh-cw-DkA2Ry2h.js → refresh-cw-DKpjew0c.js} +1 -1
  284. package/dist/assets/rotate-ccw-mdSBnuP9.js +1 -0
  285. package/dist/assets/rotate-cw-C-F1OyBK.js +1 -0
  286. package/dist/assets/{row-VbE9AC9S.js → row-CSMwp8He.js} +1 -1
  287. package/dist/assets/scenarioPayment-BQxaybOL.js +1 -0
  288. package/dist/assets/search-C73sRSFS.js +1 -0
  289. package/dist/assets/{seedance-C46ZkvoT.js → seedance-CgiMOVoI.js} +1 -1
  290. package/dist/assets/{seedream-gSv2k-4j.js → seedream-CCN_-T37.js} +1 -1
  291. package/dist/assets/select-BPmmsYsL.js +1 -0
  292. package/dist/assets/{serp-DVpfEC9H.js → serp-75AFhZeM.js} +1 -1
  293. package/dist/assets/{shield-CQ9k7RbX.js → shield-DYsoSjvj.js} +1 -1
  294. package/dist/assets/{shuffle-DdEsELXO.js → shuffle-C2cXZMq5.js} +1 -1
  295. package/dist/assets/site-AhbD1cAy.js +1 -0
  296. package/dist/assets/site-ApsDzXmT.js +1 -0
  297. package/dist/assets/site-B5aK2u48.js +1 -0
  298. package/dist/assets/{site-DHk_XgpA.js → site-BSs5bzZR.js} +1 -1
  299. package/dist/assets/site-Bp09pxfx.js +1 -0
  300. package/dist/assets/site-CAj6esyl.js +1 -0
  301. package/dist/assets/site-CFOpzeB9.js +1 -0
  302. package/dist/assets/site-CgKjNFLm.js +1 -0
  303. package/dist/assets/site-CpvOXr5j.js +1 -0
  304. package/dist/assets/site-Cz55lBe5.js +1 -0
  305. package/dist/assets/site-D0_3FJ19.js +1 -0
  306. package/dist/assets/site-DSnZF7EC.js +1 -0
  307. package/dist/assets/site-DUtm0lCL.js +1 -0
  308. package/dist/assets/site-Dyw5SF13.js +1 -0
  309. package/dist/assets/site-HEpGPpP9.js +1 -0
  310. package/dist/assets/site-KpCMucOQ.js +1 -0
  311. package/dist/assets/site-awqEUONZ.js +1 -0
  312. package/dist/assets/site-wXX_sllY.js +1 -0
  313. package/dist/assets/{slider-C4r6NKNm.js → slider-BkpC12ud.js} +1 -1
  314. package/dist/assets/solana-BXAF_MAk.js +2 -0
  315. package/dist/assets/solana-wallets-DX1uEpyK.js +2 -0
  316. package/dist/assets/{solana-wallets-vue-DAQ5o4O_.js → solana-wallets-vue-BnsXwDtg.js} +1 -1
  317. package/dist/assets/{sora-C8XocUnV.js → sora-BkHyNKjN.js} +1 -1
  318. package/dist/assets/{sparkles-CbcZMIfo.js → sparkles-BwWvghRX.js} +1 -1
  319. package/dist/assets/square-B1xtLDOg.js +1 -0
  320. package/dist/assets/{store-mGO3sGR3.js → store-p6xQ2bAP.js} +1 -1
  321. package/dist/assets/{suno-Doqed2Wn.js → suno-CFFLk4vG.js} +1 -1
  322. package/dist/assets/{switch-DQqqW0wa.js → switch-B42bu5O7.js} +1 -1
  323. package/dist/assets/table-BD6Hv1lx.js +1 -0
  324. package/dist/assets/{tabs-Di1oS89l.js → tabs-MtKgGPfn.js} +1 -1
  325. package/dist/assets/{tag-BE2K9Ewm.js → tag-q7oTj4uz.js} +1 -1
  326. package/dist/assets/terminal-bgNmS1ov.js +1 -0
  327. package/dist/assets/time-picker-BcOKI3mu.js +1 -0
  328. package/dist/assets/{tooltip-BPdAozKj.js → tooltip-DKF_sGto.js} +1 -1
  329. package/dist/assets/{trash-2-DW1SgSXi.js → trash-2-Cf1lYl_N.js} +1 -1
  330. package/dist/assets/{triangle-alert-DsomYnuJ.js → triangle-alert-_LVPy92s.js} +1 -1
  331. package/dist/assets/{upload-Bh12CGQx.js → upload-C1h3h1KN.js} +1 -1
  332. package/dist/assets/{upload-B8IAn10v.js → upload-CTvrSmVZ.js} +1 -1
  333. package/dist/assets/user-F688Rsm5.js +1 -0
  334. package/dist/assets/{veo-C86UrRN2.js → veo-sG-RXLUg.js} +1 -1
  335. package/dist/assets/{video-Ck_qgs54.js → video-BaKcHmj6.js} +1 -1
  336. package/dist/assets/{volume-2-BRbvvNs-.js → volume-2-CY9fv2mC.js} +1 -1
  337. package/dist/assets/{wallet-tq2jwvVE.js → wallet-3BCb_2vC.js} +1 -1
  338. package/dist/assets/{wan-CXCg5qaC.js → wan-DKcIIxSa.js} +1 -1
  339. package/dist/assets/{wand-sparkles-C3ALfy6z.js → wand-sparkles-DNHHWq-f.js} +1 -1
  340. package/dist/assets/{web-Bscx0aaK.js → web-BLn3-jMx.js} +1 -1
  341. package/dist/assets/{web-j2yPIGe7.js → web-CFOndwVN.js} +1 -1
  342. package/dist/assets/{web-mnX9fKey.js → web-CFTtGOqY.js} +1 -1
  343. package/dist/assets/web-DK27GiIu.js +1 -0
  344. package/dist/assets/{web-B1aVByrm.js → web-oUobTiGG.js} +1 -1
  345. package/dist/assets/{webextrator-CKOLzgYV.js → webextrator-C8hHzuf5.js} +1 -1
  346. package/dist/assets/{zap-CZjQNphx.js → zap-BQE62bDm.js} +1 -1
  347. package/dist/index.html +8 -7
  348. package/dist/llms.txt +1 -0
  349. package/package.json +3 -1
  350. package/dist/assets/ApiCodeButton-CRlp6GD-.js +0 -1
  351. package/dist/assets/BottomFooter-C0SdkqUC.css +0 -1
  352. package/dist/assets/BottomFooter-DkrgDnSg.js +0 -1
  353. package/dist/assets/Detail-BidG7sXY.js +0 -2
  354. package/dist/assets/Index-BPapRrP0.js +0 -1
  355. package/dist/assets/Index-B_F1a1zs2.js +0 -1
  356. package/dist/assets/Index-BtNX8PST.js +0 -1
  357. package/dist/assets/Index-CETf2VGo.js +0 -1
  358. package/dist/assets/Index-D3Ns4o6p.js +0 -1
  359. package/dist/assets/Index-D5cgyNi3.js +0 -1
  360. package/dist/assets/Index-DSKqWu0B.js +0 -1
  361. package/dist/assets/Index-DcuFghgf.js +0 -1
  362. package/dist/assets/Index-DxuT9E1c.js +0 -1
  363. package/dist/assets/Index-MIdGVr_9.js +0 -1
  364. package/dist/assets/Index-TzhxEvXJ.js +0 -1
  365. package/dist/assets/Index-a2z0Y2iK.js +0 -1
  366. package/dist/assets/Index-aMaloB8u.js +0 -1
  367. package/dist/assets/Index-czhLphPj2.js +0 -1
  368. package/dist/assets/List-B_2l-zWb.js +0 -1
  369. package/dist/assets/List-CLjZLy4L.js +0 -1
  370. package/dist/assets/List-rmkbUytg.js +0 -1
  371. package/dist/assets/Main-2YjTjyp5.js +0 -1
  372. package/dist/assets/Main-BALdIhZB.css +0 -1
  373. package/dist/assets/Model-C5bRMXQz.js +0 -1
  374. package/dist/assets/ScheduledTasks-B1OjmRtz.js +0 -2
  375. package/dist/assets/ScheduledTasks-BvzXEojt.css +0 -1
  376. package/dist/assets/Status-Bfnjonis.js +0 -1
  377. package/dist/assets/Tts-BtaWoKMF.js +0 -1
  378. package/dist/assets/VideoPreview-Byn0YMDk.js +0 -1
  379. package/dist/assets/arrow-down-BQCQC8nV.js +0 -1
  380. package/dist/assets/arrow-left-BbbM5t3V.js +0 -1
  381. package/dist/assets/arrow-right-CushVcKS.js +0 -1
  382. package/dist/assets/arrow-up-KQxjqQmQ.js +0 -1
  383. package/dist/assets/chat-ZabZ8MFE.js +0 -1
  384. package/dist/assets/check-C3_2-V6X.js +0 -1
  385. package/dist/assets/chevron-down-CHoFb-pv.js +0 -1
  386. package/dist/assets/chevron-right-tp5-Jg7b.js +0 -1
  387. package/dist/assets/circle-check-yNp9lEPH.js +0 -1
  388. package/dist/assets/clock-DZS73nzp.js +0 -1
  389. package/dist/assets/code-R3uyMdPG.js +0 -1
  390. package/dist/assets/codingBridgeNotify-B4HxVU3L.js +0 -2
  391. package/dist/assets/common-0xkfUWM4.js +0 -1
  392. package/dist/assets/common-3KCHcrTl.js +0 -1
  393. package/dist/assets/common-B9H_zz9e.js +0 -1
  394. package/dist/assets/common-BpcRKD49.js +0 -1
  395. package/dist/assets/common-BqGcbDl7.js +0 -1
  396. package/dist/assets/common-BxIeKYny.js +0 -1
  397. package/dist/assets/common-CGbweoim.js +0 -1
  398. package/dist/assets/common-CLqGazEF.js +0 -1
  399. package/dist/assets/common-Ct-EpYwz.js +0 -1
  400. package/dist/assets/common-CvTXmvLn.js +0 -1
  401. package/dist/assets/common-Cwu1Gn5P.js +0 -1
  402. package/dist/assets/common-DegDnkpe.js +0 -1
  403. package/dist/assets/common-DoAmMmay.js +0 -1
  404. package/dist/assets/common-GzY-Z64w.js +0 -1
  405. package/dist/assets/common-WNyCiTYq.js +0 -1
  406. package/dist/assets/common-fZ1LBM7O.js +0 -1
  407. package/dist/assets/common-ueJlzLRe.js +0 -1
  408. package/dist/assets/common-zE-rMniU.js +0 -1
  409. package/dist/assets/connector-tdn_tiGZ.js +0 -1
  410. package/dist/assets/constants-nRb-ZD8Y.js +0 -1
  411. package/dist/assets/esm-D640cN7p.js +0 -1
  412. package/dist/assets/esm-DCnhbcXq.js +0 -2
  413. package/dist/assets/fish-DrIDKV1G.js +0 -1
  414. package/dist/assets/gauge-BpfNtyBm.js +0 -1
  415. package/dist/assets/i18n-D5TLPQOi.js +0 -3
  416. package/dist/assets/index-Ckt9JRr7.js +0 -570
  417. package/dist/assets/index.browser.esm-DDMjyGsz.js +0 -2
  418. package/dist/assets/intro-Y10dLinG.js +0 -1
  419. package/dist/assets/loader-circle-BVPxZbHr.js +0 -1
  420. package/dist/assets/music-2-CtD5-QLb.js +0 -1
  421. package/dist/assets/pagination-BL2RhP-o.js +0 -282
  422. package/dist/assets/pagination-CRTv_yDs.css +0 -1
  423. package/dist/assets/play-DX2GAS2m.js +0 -1
  424. package/dist/assets/plus-cKUQQazx.js +0 -1
  425. package/dist/assets/rotate-ccw-MV5cIaG4.js +0 -1
  426. package/dist/assets/rotate-cw-b0KArUXq.js +0 -1
  427. package/dist/assets/search-CJ78r1po.js +0 -1
  428. package/dist/assets/select-C90FIlgu.js +0 -1
  429. package/dist/assets/site-6Ci_fg9y.js +0 -1
  430. package/dist/assets/site-B5RTMBqu.js +0 -1
  431. package/dist/assets/site-BMDSkjob.js +0 -1
  432. package/dist/assets/site-BiVr0_ek.js +0 -1
  433. package/dist/assets/site-BwLFMUFh.js +0 -1
  434. package/dist/assets/site-C-KQgU-K.js +0 -1
  435. package/dist/assets/site-Ci9B-nmV.js +0 -1
  436. package/dist/assets/site-CzIcrHMT.js +0 -1
  437. package/dist/assets/site-D-WFYnzU.js +0 -1
  438. package/dist/assets/site-D0DPN8zr.js +0 -1
  439. package/dist/assets/site-D0LRUG99.js +0 -1
  440. package/dist/assets/site-DHABVFTD.js +0 -1
  441. package/dist/assets/site-DZFl5W1X.js +0 -1
  442. package/dist/assets/site-DoqeUy8k.js +0 -1
  443. package/dist/assets/site-Dz45PCvb.js +0 -1
  444. package/dist/assets/site-m5Aai-D9.js +0 -1
  445. package/dist/assets/site-psVaJ5kf.js +0 -1
  446. package/dist/assets/solana-wallets-CYHIHIkN.js +0 -2
  447. package/dist/assets/square-uwdrImGE.js +0 -1
  448. package/dist/assets/table-Cl_Yjqcx.js +0 -1
  449. package/dist/assets/terminal-D0Ga62Jo.js +0 -1
  450. package/dist/assets/time-picker-PqTvJMDy.js +0 -1
  451. package/dist/assets/user-DmlcZfLh.js +0 -1
  452. package/dist/assets/web-DM7m2lDa.js +0 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,j as d,mt as f,ot as p,rt as m,tt as h,z as g}from"./vendor-chart-Dw-P17PN.js";import{r as _,t as v}from"./select-C90FIlgu.js";import{n as y,t as b}from"./tabs-Di1oS89l.js";import{n as x,t as S}from"./form-BdKMEyCR.js";import{t as C}from"./tooltip-BPdAozKj.js";import{t as w}from"./alert-BprQRUmf.js";import{v as T}from"./models-p9iPUELt.js";import{r as E,t as D}from"./radio-BNhFzeBO.js";import{n as O,r as k,t as A}from"./dropdown-DpNMkxRO.js";import{t as j}from"./empty-C5KjRN0h.js";import{t as M}from"./chevron-down-CHoFb-pv.js";import{t as N}from"./circle-check-yNp9lEPH.js";import{t as P}from"./loader-circle-BVPxZbHr.js";import{t as F}from"./plug-DF1Drmqf.js";import{t as I}from"./plus-cKUQQazx.js";import{t as L}from"./search-CJ78r1po.js";import{t as R}from"./shield-CQ9k7RbX.js";import{t as z}from"./triangle-alert-DsomYnuJ.js";import{Ei as B,Er as V,Fi as H,O as U,Ui as W,oi as ee}from"./index-Ckt9JRr7.js";import{n as G,t as te}from"./authorizeFlow-T33pIG_A.js";import{n as ne,t as re}from"./BrowserPairingDialog-CYZ_3lH5.js";var K=()=>({baseURL:`${ee()}/api/v1`});function q(e,t){let n=J(e);if(n.length!==0){if(t){let e=n.find(e=>e.id===t);if(e)return e}if(e?.recommended_method_id){let t=n.find(t=>t.id===e.recommended_method_id);if(t)return t}return n.find(e=>e.recommended)||n[0]}}function J(e){return e?.connection_methods||[]}var Y=new class{key=`connections`;async list(){return V.get(`/${this.key}/`,K())}async authorize(e){return V.post(`/${this.key}/authorize/`,e,K())}async authorizeCustom(e){return V.post(`/${this.key}/authorize-custom/`,e,K())}async exchangeCustom(e,t){return V.post(`/${this.key}/${e}/exchange-custom/`,t,K())}async refresh(e){return V.post(`/${this.key}/${e}/refresh/`,void 0,K())}async setDefault(e){return await V.post(`/connections/${e}/set-default/`,void 0,K())}async rename(e,t){return await V.patch(`/connections/${e}/`,{label:t},K())}async disconnect(e){return V.delete(`/${this.key}/${e}/`,K())}async rebindBrowserDevice(e,t){return V.put(`/${this.key}/${e}/browser-device/`,{browser_device_id:t},K())}async stopBrowserSessions(e){return V.post(`/${this.key}/${e}/browser-sessions/stop/`,void 0,K())}async tools(e){return V.get(`/${this.key}/${e}/tools/`,K())}async listCatalog(e={}){return V.get(`/connectors/`,{...K(),params:e})}async getCatalogItem(e){return V.get(`/connectors/${e}/`,K())}async catalogCategories(){return V.get(`/connectors/categories/`,K())}async installFromCatalog(e,t={}){return V.post(`/connectors/${e}/install/`,t,K())}async submitCatalogCredentials(e,t){return V.post(`/connectors/${e}/credentials/`,t,K())}},ie=1e4,ae=`https://platform.acedata.cloud/documents/acedataext`;function X(e){return e==null?``:typeof e==`string`?e:Array.isArray(e)?e.map(X).filter(Boolean).join(`; `):typeof e==`object`?Object.values(e).map(X).filter(Boolean).join(`; `):String(e)}var oe=g({name:`ByocCredentialsDialog`,components:{ElDialog:B,ElForm:S,ElFormItem:x,ElInput:W,ElSelect:_,ElOption:v,ElButton:H,SecurityIcon:R,WarningIcon:z},props:{modelValue:{type:Boolean,default:!1},item:{type:Object,default:null},method:{type:Object,default:null},createNew:{type:Boolean,default:!1}},emits:[`update:modelValue`,`installed`],data(){return{visible:this.modelValue,submitting:!1,detecting:!1,extensionReady:!1,formModel:{}}},computed:{activeMethod(){return this.method?this.method:q(this.item)||null},schema(){return this.activeMethod?.credential.credential_schema||[]},isExtension(){return this.activeMethod?.credential.source===`extension`},ACE_EXTENSION_DOC(){return ae},loginUrl(){return this.activeMethod?.credential.login_url||``},captureDomain(){return((this.activeMethod?.credential.cookie_domains||[])[0]||``).replace(/^\./,``)},dialogTitle(){let e=this.item?.name||``;return this.$t(`connection.byoc.dialogTitle`,{name:e})},formRules(){let e={},t=this.$t(`connection.byoc.required`);for(let n of this.schema)n.required&&(e[n.key]=[{required:!0,message:t,trigger:`blur`}]);return e}},watch:{modelValue(e){this.visible=e,e&&(this.resetForm(),this.isExtension&&this.pollDetect(8))},visible(e){this.$emit(`update:modelValue`,e)}},methods:{isSecret(e){return e.type===`password`||!!e.secret},resetForm(){let e={};for(let t of this.schema)t.default&&!this.isSecret(t)?e[t.key]=t.default:e[t.key]=``;this.formModel=e},onClose(){this.formModel={},this.visible=!1},openLogin(){this.loginUrl&&window.open(this.loginUrl,`_blank`,`noopener`)},detectExtension(){return this.extensionReady=!!document.getElementById(`acedataext`),this.extensionReady},pollDetect(e){this.detectExtension()||e<=0||window.setTimeout(()=>this.pollDetect(e-1),400)},recheckExtension(){this.detecting=!0,window.setTimeout(()=>{this.detectExtension(),this.detecting=!1,this.extensionReady||T.warning(this.$t(`connection.byoc.extensionMissing`))},300)},captureCookies(){return new Promise((e,t)=>{if(!document.getElementById(`acedataext`)){t(Error(`extension-missing`));return}let n=!1,r=a=>{let o=a.data;!o||o.from!==`EXTENSION`||o.action!==`getCookies`||(n=!0,window.removeEventListener(`message`,r),window.clearTimeout(i),o.error?t(Error(o.error)):e(o.cookies||[]))},i=window.setTimeout(()=>{n||(window.removeEventListener(`message`,r),t(Error(`extension-missing`)))},ie);window.addEventListener(`message`,r),window.postMessage({action:`getCookies`,from:`PAGE`,domain:this.captureDomain,name:this.item?.slug},`*`)})},async onCapture(){if(this.item){this.submitting=!0;try{let e=await this.captureCookies();if(!e.length){T.error(this.$t(`connection.byoc.extensionNoCookies`));return}let{data:t}=await Y.submitCatalogCredentials(this.item.id,{payload:{cookies:e},method_id:this.activeMethod?.id,...this.createNew?{create_new:!0}:{}});T.success(this.$t(`connection.message.installed`,{name:this.item.name})),this.$emit(`installed`,{item:this.item,connection_id:t.connection_id}),this.onClose()}catch(e){if(e?.message===`extension-missing`)T.error(this.$t(`connection.byoc.extensionMissing`));else{let t=X(e?.response?.data?.detail);T.error(t||this.$t(`connection.message.installFailed`))}}finally{this.submitting=!1}}},async onSubmit(){if(!this.item)return;let e=this.$refs.formRef;if(!(e&&!await e.validate().catch(()=>!1))){this.submitting=!0;try{let{data:e}=await Y.submitCatalogCredentials(this.item.id,{payload:Object.fromEntries(Object.entries(this.formModel).map(([e,t])=>[e,(t??``).trim()])),method_id:this.activeMethod?.id,...this.createNew?{create_new:!0}:{}});T.success(this.$t(`connection.message.installed`,{name:this.item.name})),this.$emit(`installed`,{item:this.item,connection_id:e.connection_id}),this.onClose()}catch(e){let t=X(e?.response?.data?.detail);T.error(t||this.$t(`connection.message.installFailed`))}finally{this.submitting=!1}}}}}),se={key:0,class:`byoc-missing`},ce={class:`byoc-missing-body`},le={class:`byoc-missing-title`},ue={class:`byoc-missing-text`},de=[`href`],fe={class:`byoc-intro`},pe=[`href`],me={class:`byoc-steps`},he={class:`byoc-disclaimer`},ge={key:0,class:`byoc-intro`},_e={key:2,class:`byoc-help`},ve={class:`byoc-disclaimer`};function ye(n,u,p,g,_,v){let y=l(`warning-icon`),b=l(`el-button`),x=l(`security-icon`),S=l(`el-option`),C=l(`el-select`),w=l(`el-input`),T=l(`el-form-item`),E=l(`el-form`),D=l(`el-dialog`);return h(),d(D,{modelValue:n.visible,"onUpdate:modelValue":u[1]||=e=>n.visible=e,title:n.dialogTitle,width:`min(520px, 94vw)`,"append-to-body":``,"destroy-on-close":``,onClose:n.onClose},{footer:f(()=>[a(b,{onClick:n.onClose},{default:f(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),n.isExtension?(h(),s(c,{key:0},[n.extensionReady?(h(),d(b,{key:1,type:`primary`,loading:n.submitting,onClick:n.onCapture},{default:f(()=>[r(i(n.$t(`connection.byoc.extensionCapture`)),1)]),_:1},8,[`loading`,`onClick`])):(h(),d(b,{key:0,type:`primary`,loading:n.detecting,onClick:n.recheckExtension},{default:f(()=>[r(i(n.$t(`connection.byoc.extensionRecheck`)),1)]),_:1},8,[`loading`,`onClick`]))],64)):(h(),d(b,{key:1,type:`primary`,loading:n.submitting,onClick:n.onSubmit},{default:f(()=>[r(i(n.$t(`connection.byoc.submit`)),1)]),_:1},8,[`loading`,`onClick`]))]),default:f(()=>[n.isExtension?(h(),s(c,{key:0},[n.extensionReady?(h(),s(c,{key:1},[e(`p`,fe,i(n.$t(`connection.byoc.extensionIntro`)),1),e(`a`,{class:`byoc-doc-link byoc-doc-link-inline`,href:n.ACE_EXTENSION_DOC,target:`_blank`,rel:`noopener`},i(n.$t(`connection.byoc.extensionGuide`))+` → `,9,pe),e(`ol`,me,[e(`li`,null,[r(i(n.$t(`connection.byoc.extensionStepLogin`))+` `,1),n.loginUrl?(h(),d(b,{key:0,link:``,type:`primary`,onClick:n.openLogin},{default:f(()=>[r(i(n.$t(`connection.byoc.extensionOpenLogin`)),1)]),_:1},8,[`onClick`])):o(``,!0)]),e(`li`,null,i(n.$t(`connection.byoc.extensionStepCapture`)),1)]),e(`p`,he,[a(x,{class:`byoc-shield`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`connection.byoc.disclaimer`)),1)])],64)):(h(),s(`div`,se,[a(y,{class:`byoc-missing-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`div`,ce,[e(`p`,le,i(n.$t(`connection.byoc.extensionMissingTitle`)),1),e(`p`,ue,i(n.$t(`connection.byoc.extensionMissingBody`)),1),e(`a`,{class:`byoc-doc-link`,href:n.ACE_EXTENSION_DOC,target:`_blank`,rel:`noopener`},i(n.$t(`connection.byoc.extensionGuide`))+` → `,9,de)])]))],64)):(h(),s(c,{key:1},[n.schema.length>0?(h(),s(`p`,ge,i(n.$t(`connection.byoc.intro`)),1)):o(``,!0),a(E,{ref:`formRef`,model:n.formModel,rules:n.formRules,"label-position":`top`,class:`byoc-form`,onSubmit:u[0]||=t(()=>{},[`prevent`])},{default:f(()=>[(h(!0),s(c,null,m(n.schema,e=>(h(),d(T,{key:e.key,label:e.label,prop:e.key},{default:f(()=>[e.type===`select`?(h(),d(C,{key:0,modelValue:n.formModel[e.key],"onUpdate:modelValue":t=>n.formModel[e.key]=t,placeholder:e.help||``,filterable:``,class:`byoc-input`},{default:f(()=>[(h(!0),s(c,null,m(e.options||[],e=>(h(),d(S,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(h(),d(w,{key:1,modelValue:n.formModel[e.key],"onUpdate:modelValue":t=>n.formModel[e.key]=t,type:n.isSecret(e)?`password`:`text`,"show-password":n.isSecret(e),placeholder:e.help||``,autocomplete:n.isSecret(e)?`new-password`:`off`,class:`byoc-input`},null,8,[`modelValue`,`onUpdate:modelValue`,`type`,`show-password`,`placeholder`,`autocomplete`])),e.help?(h(),s(`div`,_e,i(e.help),1)):o(``,!0)]),_:2},1032,[`label`,`prop`]))),128))]),_:1},8,[`model`,`rules`]),e(`p`,ve,[a(x,{class:`byoc-shield`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`connection.byoc.disclaimer`)),1)])],64))]),_:1},8,[`modelValue`,`title`,`onClose`])}var Z=U(oe,[[`render`,ye],[`__scopeId`,`data-v-9a4fc02f`]]),be=g({name:`ConnectorMethodPicker`,components:{ElDialog:B,ElTabs:y,ElTabPane:b,ElButton:H},props:{modelValue:{type:Boolean,default:!1},item:{type:Object,default:null}},emits:[`update:modelValue`,`select`],data(){return{visible:this.modelValue,selectedId:``}},computed:{methods(){return J(this.item)},dialogTitle(){let e=this.item?.name||``;return this.$t(`connection.method.dialogTitle`,{name:e})}},watch:{modelValue(e){this.visible=e,e&&(this.selectedId=q(this.item)?.id||``)},visible(e){this.$emit(`update:modelValue`,e)}},methods:{methodLabel(e){return e.label?e.label:e.id},methodDesc(e){return e.description||``},onConfirm(){let e=this.methods.find(e=>e.id===this.selectedId);!e||!this.item||(this.$emit(`select`,{item:this.item,method:e}),this.visible=!1)},onClose(){this.visible=!1}}}),xe={class:`picker-intro`},Se={class:`picker-tab-label`},Ce={key:0,class:`picker-recommended`},we={key:0,class:`picker-pane-desc`};function Te(t,n,u,p,g,_){let v=l(`el-tab-pane`),y=l(`el-tabs`),b=l(`el-button`),x=l(`el-dialog`);return h(),d(x,{modelValue:t.visible,"onUpdate:modelValue":n[1]||=e=>t.visible=e,title:t.dialogTitle,width:`min(480px, 94vw)`,"append-to-body":``,"destroy-on-close":``,onClose:t.onClose},{footer:f(()=>[a(b,{onClick:t.onClose},{default:f(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),a(b,{type:`primary`,disabled:!t.selectedId,onClick:t.onConfirm},{default:f(()=>[r(i(t.$t(`common.button.confirm`)),1)]),_:1},8,[`disabled`,`onClick`])]),default:f(()=>[e(`p`,xe,i(t.$t(`connection.method.heading`)),1),a(y,{modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`picker-tabs`},{default:f(()=>[(h(!0),s(c,null,m(t.methods,n=>(h(),d(v,{key:n.id,name:n.id},{label:f(()=>[e(`span`,Se,[r(i(t.methodLabel(n))+` `,1),n.recommended?(h(),s(`span`,Ce,i(t.$t(`connection.method.recommended`)),1)):o(``,!0)])]),default:f(()=>[t.methodDesc(n)?(h(),s(`p`,we,i(t.methodDesc(n)),1)):o(``,!0)]),_:2},1032,[`name`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`,`onClose`])}var Q=U(be,[[`render`,Te],[`__scopeId`,`data-v-3a0a8526`]]);function $(e,t){let n=new Set(e.capabilities||[]),r=t.filter(e=>!n.has(e));return e.compatible?r.length?{compatible:!1,reason:`missing_capabilities`,missingCapabilities:r}:{compatible:!0,reason:null,missingCapabilities:[]}:{compatible:!1,reason:e.incompatibility_reason||`device_inactive`,missingCapabilities:r}}var Ee=g({name:`BrowserDevicePicker`,components:{ElAlert:w,ElButton:H,ElDialog:B,ElEmpty:j,ElRadio:D,ElRadioGroup:E},props:{modelValue:{type:Boolean,required:!0},method:{type:Object,default:null},installing:{type:Boolean,default:!1}},emits:[`update:modelValue`,`select`,`pair`],data(){return{devices:[],selectedId:``,loading:!1,loadError:``}},computed:{visible:{get(){return this.modelValue},set(e){this.$emit(`update:modelValue`,e)}},origins(){return this.method?.execution.origins||[]},requiredCapabilities(){return this.method?.execution.capabilities||[]}},methods:{missingCapabilities(e){return $(e,this.requiredCapabilities).missingCapabilities},compatible(e){return $(e,this.requiredCapabilities).compatible},incompatibilityText(e){let t=$(e,this.requiredCapabilities);return t.reason===`missing_capabilities`?this.$t(`connection.message.browserMissingCapabilities`,{capabilities:t.missingCapabilities.join(`, `)}).toString():this.$t(`connection.message.browserIncompatibility.${t.reason}`).toString()},async loadDevices(e=``){this.loading=!0,this.loadError=``;try{let{data:t}=await ne.list();this.devices=t.filter(e=>e.status===`active`);let n=this.devices.filter(this.compatible);e&&n.some(t=>t.id===e)?this.selectedId=e:n.length===1?this.selectedId=n[0].id:n.some(e=>e.id===this.selectedId)||(this.selectedId=``)}catch{this.loadError=this.$t(`user.browserDevice.loadFailed`).toString()}finally{this.loading=!1}},async refreshAfterPair(e){this.visible=!0,await this.loadDevices(e.id);let t=this.devices.find(t=>t.id===e.id)||e;this.compatible(t)||(this.loadError=this.$t(`connection.message.browserPairedIncompatible`,{version:t.extension_version||`?`,capabilities:this.missingCapabilities(t).join(`, `)}).toString())},showInstallError(e){this.loadError=e},confirm(){this.selectedId&&this.$emit(`select`,this.selectedId)}}}),De={key:1,class:`browser-policy`},Oe={class:`device-list`},ke={class:`device-name`},Ae={class:`device-meta`},je={class:`device-meta`},Me={class:`device-digest`},Ne={key:0,class:`device-missing`};function Pe(t,n,g,_,v,y){let b=l(`el-alert`),x=l(`el-radio`),S=l(`el-radio-group`),C=l(`el-empty`),w=l(`el-button`),T=l(`el-dialog`),E=p(`loading`);return h(),d(T,{modelValue:t.visible,"onUpdate:modelValue":n[2]||=e=>t.visible=e,title:t.$t(`connection.message.selectBrowserDevice`),width:`min(520px, 94vw)`,"append-to-body":``,"close-on-click-modal":!1,onOpen:t.loadDevices},{footer:f(()=>[a(w,{onClick:n[1]||=e=>t.$emit(`pair`)},{default:f(()=>[r(i(t.$t(`user.browserDevice.pairButton`)),1)]),_:1}),a(w,{type:`primary`,disabled:!t.selectedId,loading:t.installing,onClick:t.confirm},{default:f(()=>[r(i(t.$t(`connection.button.connect`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])]),default:f(()=>[t.loadError?(h(),d(b,{key:0,title:t.loadError,type:`error`,closable:!1,"show-icon":``,class:`mb-4`},null,8,[`title`])):o(``,!0),t.origins.length?(h(),s(`p`,De,i(t.$t(`connection.message.browserAllowedSites`))+`: `+i(t.origins.join(`, `)),1)):o(``,!0),a(b,{title:t.$t(`connection.message.browserHighPrivilegeDisclosure`),type:`warning`,closable:!1,"show-icon":``,class:`mb-4`},null,8,[`title`]),u((h(),s(`div`,Oe,[t.devices.length?(h(),d(S,{key:0,modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`device-options`},{default:f(()=>[(h(!0),s(c,null,m(t.devices,n=>(h(),d(x,{key:n.id,value:n.id,label:n.id,disabled:!t.compatible(n),border:``,class:`device-option`},{default:f(()=>[e(`span`,ke,i(n.name),1),e(`span`,Ae,i(n.platform)+` · v`+i(n.extension_version||`?`),1),e(`span`,je,i(t.$t(n.online?`connection.message.browserOnline`:`connection.message.browserOffline`))+` · `+i(t.$t(`connection.message.browserActiveSessions`,{count:n.active_session_count})),1),e(`span`,Me,i(n.wire_contract_digest),1),t.compatible(n)?o(``,!0):(h(),s(`span`,Ne,i(t.incompatibilityText(n)),1))]),_:2},1032,[`value`,`label`,`disabled`]))),128))]),_:1},8,[`modelValue`])):t.loading?o(``,!0):(h(),d(C,{key:1,description:t.$t(`user.browserDevice.empty`)},null,8,[`description`]))])),[[E,t.loading]])]),_:1},8,[`modelValue`,`title`,`onOpen`])}var Fe=U(Ee,[[`render`,Pe],[`__scopeId`,`data-v-7eaca81f`]]);function Ie(e){return String(e??``).normalize(`NFKC`).trim().toLowerCase()}function Le(e){let t=[e.name,e.identifier,e.namespace,e.slug,e.short_description,e.description,e.publisher,e.category,e.acedata_service_alias,...Array.isArray(e.tags)?e.tags:[]];for(let n of e.permissions||[])t.push(n.id,n.label,n.desc);for(let n of J(e)){t.push(n.id,n.label,n.execution.type,n.execution.server_url,n.credential.type,n.credential.provider_id);for(let e of n.permissions||[])t.push(e.id,e.label,e.desc)}return t.map(Ie).filter(Boolean).join(` `)}var Re=g({name:`BrowseConnectors`,components:{ElDialog:B,ElInput:W,ElSelect:_,ElOption:v,ElTooltip:C,ElDropdown:A,ElDropdownMenu:k,ElDropdownItem:O,AddIcon:I,ConnectionIcon:F,ExpandDownIcon:M,LoadingIcon:P,SearchIcon:L,SuccessIcon:N,ByocCredentialsDialog:Z,ConnectorMethodPicker:Q,BrowserPairingDialog:re,BrowserDevicePicker:Fe},props:{modelValue:{type:Boolean,default:!1}},emits:[`update:modelValue`,`installed`,`add-account`,`manage`],data(){return{visible:this.modelValue,loading:!1,installingId:null,query:``,source:`all`,category:``,sort:`popular`,items:[],facets:[],byocDialogVisible:!1,byocDialogItem:null,byocDialogMethod:null,pickerVisible:!1,pickerItem:null,pairingDialogVisible:!1,browserDevicePickerVisible:!1,browserDialogItem:null,browserDialogMethod:null,browserInstalling:!1}},computed:{sourceOptions(){let e=this.facets.reduce((e,t)=>e+t.count,0),t={official:0,partner:0,public:0};for(let e of this.facets)t[e.source]=(t[e.source]||0)+e.count;return[{key:`all`,label:String(this.$t(`connection.label.all`)),count:e},{key:`official`,label:String(this.$t(`connection.label.official`)),count:t.official},{key:`partner`,label:String(this.$t(`connection.label.partner`)),count:t.partner},{key:`public`,label:String(this.$t(`connection.label.community`)),count:t.public}]},categoryOptions(){let e={};for(let t of this.facets){if(this.source!==`all`&&this.source!==`featured`&&t.source!==this.source)continue;let n=t.category||`uncategorized`;e[n]=(e[n]||0)+t.count}let t=Object.values(e).reduce((e,t)=>e+t,0),n=[{key:``,label:String(this.$t(`connection.category.all`)),count:t}];for(let[t,r]of Object.entries(e)){if(r<=0)continue;let e=`connection.category.${t}`,i=String(this.$t(e));n.push({key:t,label:i===e?t:i,count:r})}return n},filteredItems(){let e=Ie(this.query),t=this.items;return e&&(t=t.filter(t=>Le(t).includes(e))),this.source!==`all`&&this.source!==`featured`&&(t=t.filter(e=>e.source===this.source)),this.source===`featured`&&(t=t.filter(e=>e.is_featured)),this.category&&(t=t.filter(e=>(e.category||`uncategorized`)===this.category)),t}},watch:{modelValue(e){this.visible=e},visible(e){this.$emit(`update:modelValue`,e)}},methods:{onOpen(){this.fetchItems(),this.fetchFacets()},accountCount(e){let t=typeof e.account_count==`number`?e.account_count:0;return e.installed?Math.max(1,t):t},accountLabel(e){return String(this.$t(`connection.message.connectedAccounts`,{name:e.name,count:this.accountCount(e)}))},markInstalled(e){this.items=this.items.map(t=>t.id===e?{...t,installed:!0,install_count:t.install_count+1,account_count:this.accountCount(t)+1}:t)},onInstalledCommand(e,t){if(e===`addAccount`){if(!t.installable)return;this.$emit(`add-account`,{item:t});return}e===`manage`&&this.$emit(`manage`,{item:t})},sourceLabel(e){switch(e){case`official`:return String(this.$t(`connection.label.official`));case`partner`:return String(this.$t(`connection.label.partner`));case`public`:return String(this.$t(`connection.label.community`));default:return e}},setSource(e){this.source=e,this.fetchItems()},setCategory(e){this.category=e,this.fetchItems()},async fetchItems(){this.loading=!0;try{let e={sort:this.sort,limit:200};this.source!==`all`&&this.source!==`featured`&&(e.source=this.source),this.source===`featured`&&(e.featured=!0),this.category&&(e.category=this.category);let{data:t}=await Y.listCatalog(e);this.items=t.items||[]}catch(e){T.error(e?.response?.data?.detail||e?.message||`Failed to load directory`)}finally{this.loading=!1}},async fetchFacets(){try{let{data:e}=await Y.catalogCategories();this.facets=e.facets||[]}catch{this.facets=[]}},async onInstall(e){if(!e.installable)return;if(J(e).length>1){this.pickerItem=e,this.pickerVisible=!0;return}let t=q(e);t&&await this.installWithMethod(e,t)},onMethodSelected(e){this.pickerVisible=!1,this.installWithMethod(e.item,e.method)},async installWithMethod(e,t){if(t.execution.type===`browser_device`){this.browserDialogItem=e,this.browserDialogMethod=t,this.browserDevicePickerVisible=!0;return}if(t.credential.type===`user_secret`||t.credential.type===`cookie_jar`){this.byocDialogItem=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}this.installingId=e.id;try{let{data:n}=await Y.installFromCatalog(e.id,{return_url:G(),method_id:t.id});if(n.type===`redirect`){await te(n.authorization_url),this.$emit(`installed`),await this.fetchItems();return}if(n.type===`form`){this.byocDialogItem=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}this.markInstalled(e.id),T.success(this.$t(`connection.message.installed`,{name:e.name})),this.$emit(`installed`,{item:e,connection_id:n.connection_id})}catch(e){T.error(e?.message===`desktop-authorize-unsupported`?this.$t(`connection.message.desktopUpdateRequired`):e?.response?.data?.detail||this.$t(`connection.message.installFailed`))}finally{this.installingId=null}},onByocInstalled(e){this.markInstalled(e.item.id),this.$emit(`installed`,e)},openBrowserPairing(){this.browserDevicePickerVisible=!1,this.pairingDialogVisible=!0},async onBrowserPaired(e){this.pairingDialogVisible=!1,await this.$refs.browserDevicePicker?.refreshAfterPair(e)},async onBrowserDeviceSelected(e){let t=this.browserDialogItem,n=this.browserDialogMethod;if(!(!t||!n)){this.browserInstalling=!0,this.installingId=t.id;try{let{data:r}=await Y.installFromCatalog(t.id,{return_url:G(),method_id:n.id,browser_device_id:e});if(r.type!==`active`)throw Error(this.$t(`connection.message.installFailed`));this.browserDevicePickerVisible=!1,this.browserDialogItem=null,this.browserDialogMethod=null,this.markInstalled(t.id),T.success(this.$t(`connection.message.installed`,{name:t.name})),this.$emit(`installed`,{item:t,connection_id:r.connection_id})}catch(e){let t=e?.response?.data?.detail||e?.message||this.$t(`connection.message.installFailed`);this.$refs.browserDevicePicker?.showInstallError(String(t))}finally{this.browserInstalling=!1,this.installingId=null}}}}}),ze={class:`browse-intro`},Be={class:`browse-toolbar`},Ve={class:`browse-shell`},He={class:`browse-sidebar`},Ue={class:`sidebar-section`},We=[`onClick`],Ge={class:`sidebar-label`},Ke={key:0,class:`sidebar-count`},qe={class:`sidebar-section`},Je={class:`sidebar-heading`},Ye=[`onClick`],Xe={class:`sidebar-label`},Ze={key:0,class:`sidebar-count`},Qe={class:`browse-grid-wrapper`},$e={key:0,class:`browse-empty`},et={key:1,class:`browse-grid`},tt={class:`card-head`},nt={class:`card-icon`},rt=[`src`,`alt`],it={class:`card-title-block`},at={class:`card-title-row`},ot={class:`card-title`},st={class:`card-meta`},ct=[`title`],lt={key:1,class:`card-pill card-pill-new`},ut={key:2,class:`card-pill card-pill-trending`},dt={key:3,class:`card-publisher`},ft={class:`card-action-slot`},pt=[`disabled`,`onClick`],mt={class:`ml-1`},ht=[`aria-label`,`title`],gt={class:`ml-1 card-action-count`},_t={key:0,class:`card-description`};function vt(t,g,_,v,y,b){let x=l(`search-icon`),S=l(`el-input`),C=l(`el-option`),w=l(`el-select`),T=l(`connection-icon`),E=l(`loading-icon`),D=l(`add-icon`),O=l(`el-tooltip`),k=l(`success-icon`),A=l(`expand-down-icon`),j=l(`el-dropdown-item`),M=l(`el-dropdown-menu`),N=l(`el-dropdown`),P=l(`connector-method-picker`),F=l(`browser-pairing-dialog`),I=l(`browser-device-picker`),L=l(`byoc-credentials-dialog`),R=l(`el-dialog`),z=p(`loading`);return h(),d(R,{modelValue:t.visible,"onUpdate:modelValue":g[6]||=e=>t.visible=e,title:t.$t(`connection.title.browse`),width:`min(900px, 94vw)`,top:`5vh`,"close-on-click-modal":!1,onOpen:t.onOpen},{default:f(()=>[e(`p`,ze,i(t.$t(`connection.message.browseHint`)),1),e(`div`,Be,[a(S,{modelValue:t.query,"onUpdate:modelValue":g[0]||=e=>t.query=e,class:`search-input`,size:`default`,clearable:``,placeholder:t.$t(`connection.placeholder.search`)},{prefix:f(()=>[a(x,{size:14,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`modelValue`,`placeholder`]),a(w,{modelValue:t.sort,"onUpdate:modelValue":g[1]||=e=>t.sort=e,size:`default`,class:`sort-select`,onChange:t.fetchItems},{default:f(()=>[a(C,{label:t.$t(`connection.label.featured`),value:`popular`},null,8,[`label`]),a(C,{label:t.$t(`connection.label.new`),value:`new`},null,8,[`label`]),a(C,{label:`A-Z`,value:`name`})]),_:1},8,[`modelValue`,`onChange`])]),u((h(),s(`div`,Ve,[e(`aside`,He,[e(`div`,Ue,[(h(!0),s(c,null,m(t.sourceOptions,r=>(h(),s(`div`,{key:r.key,class:n([`sidebar-item`,{active:t.source===r.key}]),onClick:e=>t.setSource(r.key)},[e(`span`,Ge,i(r.label),1),r.count>0?(h(),s(`span`,Ke,i(r.count),1)):o(``,!0)],10,We))),128))]),g[7]||=e(`div`,{class:`sidebar-divider`},null,-1),e(`div`,qe,[e(`div`,Je,i(t.$t(`connection.field.account`)),1),(h(!0),s(c,null,m(t.categoryOptions,r=>(h(),s(`div`,{key:r.key,class:n([`sidebar-item`,{active:t.category===r.key}]),onClick:e=>t.setCategory(r.key)},[e(`span`,Xe,i(r.label),1),r.count>0?(h(),s(`span`,Ze,i(r.count),1)):o(``,!0)],10,Ye))),128))])]),e(`section`,Qe,[!t.loading&&t.filteredItems.length===0?(h(),s(`div`,$e,i(t.$t(`connection.message.browseEmpty`)),1)):(h(),s(`div`,et,[(h(!0),s(c,null,m(t.filteredItems,c=>(h(),s(`article`,{key:c.id,class:`card`},[e(`div`,tt,[e(`span`,nt,[c.icon_url?(h(),s(`img`,{key:0,src:c.icon_url,alt:c.name},null,8,rt)):(h(),d(T,{key:1,size:16,"aria-hidden":`true`,focusable:`false`}))]),e(`div`,it,[e(`div`,at,[e(`h4`,ot,i(c.name),1)]),e(`div`,st,[c.is_featured?(h(),s(`span`,{key:0,class:`card-pill card-pill-featured`,title:t.$t(`connection.label.featured`)},i(t.$t(`connection.label.featured`)),9,ct)):c.is_new?(h(),s(`span`,lt,i(t.$t(`connection.label.new`)),1)):c.is_trending?(h(),s(`span`,ut,i(t.$t(`connection.label.trending`)),1)):o(``,!0),e(`span`,{class:n([`source-badge`,`source-${c.source}`])},i(t.sourceLabel(c.source)),3),c.publisher?(h(),s(`span`,dt,i(c.publisher),1)):o(``,!0)])]),c.installed?(h(),d(N,{key:1,trigger:`click`,placement:`bottom-end`,"popper-class":`connection-actions-popper`,onCommand:e=>t.onInstalledCommand(e,c)},{dropdown:f(()=>[a(M,{class:`connection-actions-menu`},{default:f(()=>[a(j,{command:`addAccount`,disabled:!c.installable},{default:f(()=>[r(i(t.$t(`connection.button.addAccount`)),1)]),_:1},8,[`disabled`]),a(j,{command:`manage`},{default:f(()=>[r(i(t.$t(`connection.button.manageAccounts`)),1)]),_:1})]),_:2},1024)]),default:f(()=>[e(`button`,{type:`button`,class:`card-action card-action-installed`,"aria-label":t.accountLabel(c),title:t.accountLabel(c)},[a(k,{size:16,"aria-hidden":`true`,focusable:`false`}),e(`span`,gt,i(t.accountCount(c)),1),a(A,{class:`ml-1 card-action-caret`,size:12,"aria-hidden":`true`,focusable:`false`})],8,ht)]),_:2},1032,[`onCommand`])):(h(),d(O,{key:0,disabled:c.installable,content:t.$t(`skill.menu.soon`),placement:`top`},{default:f(()=>[e(`span`,ft,[e(`button`,{type:`button`,class:`card-action card-action-add`,disabled:!c.installable||t.installingId===c.id,onClick:e=>t.onInstall(c)},[t.installingId===c.id?(h(),d(E,{key:0,class:`icon-spin`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),d(D,{key:1,size:16,"aria-hidden":`true`,focusable:`false`})),e(`span`,mt,i(t.$t(`connection.button.install`)),1)],8,pt)])]),_:2},1032,[`disabled`,`content`]))]),c.short_description||c.description?(h(),s(`p`,_t,i(c.short_description||c.description),1)):o(``,!0)]))),128))]))])])),[[z,t.loading]]),a(P,{modelValue:t.pickerVisible,"onUpdate:modelValue":g[2]||=e=>t.pickerVisible=e,item:t.pickerItem,onSelect:t.onMethodSelected},null,8,[`modelValue`,`item`,`onSelect`]),a(F,{modelValue:t.pairingDialogVisible,"onUpdate:modelValue":g[3]||=e=>t.pairingDialogVisible=e,onPaired:t.onBrowserPaired},null,8,[`modelValue`,`onPaired`]),a(I,{ref:`browserDevicePicker`,modelValue:t.browserDevicePickerVisible,"onUpdate:modelValue":g[4]||=e=>t.browserDevicePickerVisible=e,method:t.browserDialogMethod,installing:t.browserInstalling,onPair:t.openBrowserPairing,onSelect:t.onBrowserDeviceSelected},null,8,[`modelValue`,`method`,`installing`,`onPair`,`onSelect`]),a(L,{modelValue:t.byocDialogVisible,"onUpdate:modelValue":g[5]||=e=>t.byocDialogVisible=e,item:t.byocDialogItem,method:t.byocDialogMethod,onInstalled:t.onByocInstalled},null,8,[`modelValue`,`item`,`method`,`onInstalled`])]),_:1},8,[`modelValue`,`title`,`onOpen`])}var yt=U(Re,[[`render`,vt],[`__scopeId`,`data-v-f373ab4f`]]);export{Y as a,Z as i,Fe as n,J as o,Q as r,q as s,yt as t};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,j as d,mt as f,ot as p,rt as m,tt as h,z as g}from"./vendor-chart-Dw-P17PN.js";import{r as _,t as v}from"./select-BPmmsYsL.js";import{n as y,t as b}from"./tabs-MtKgGPfn.js";import{n as x,t as S}from"./form-BdKMEyCR.js";import{t as C}from"./tooltip-DKF_sGto.js";import{t as w}from"./alert-BprQRUmf.js";import{v as T}from"./models-D6J60Ang.js";import{r as E,t as D}from"./radio-BNhFzeBO.js";import{n as O,r as k,t as A}from"./dropdown--LXlsWOR.js";import{t as j}from"./empty-C5KjRN0h.js";import{t as M}from"./chevron-down-B9A1h-il.js";import{t as N}from"./circle-check-Cm0vi3QJ.js";import{t as P}from"./loader-circle-BOu6l4ZA.js";import{t as F}from"./plug-qlX-ubkq.js";import{t as I}from"./plus-Coq-6ZBW.js";import{t as L}from"./search-C73sRSFS.js";import{t as R}from"./shield-DYsoSjvj.js";import{t as z}from"./triangle-alert-_LVPy92s.js";import{Mi as B,O as V,Vi as H,Yi as U,fi as ee,jr as W}from"./index-DKnFv8oI.js";import{n as G,t as te}from"./authorizeFlow-DjzUZZcO.js";import{n as ne,t as re}from"./BrowserPairingDialog-BIBE8_J9.js";var K=()=>({baseURL:`${ee()}/api/v1`});function q(e,t){let n=J(e);if(n.length!==0){if(t){let e=n.find(e=>e.id===t);if(e)return e}if(e?.recommended_method_id){let t=n.find(t=>t.id===e.recommended_method_id);if(t)return t}return n.find(e=>e.recommended)||n[0]}}function J(e){return e?.connection_methods||[]}var Y=new class{key=`connections`;async list(){return W.get(`/${this.key}/`,K())}async authorize(e){return W.post(`/${this.key}/authorize/`,e,K())}async authorizeCustom(e){return W.post(`/${this.key}/authorize-custom/`,e,K())}async exchangeCustom(e,t){return W.post(`/${this.key}/${e}/exchange-custom/`,t,K())}async refresh(e){return W.post(`/${this.key}/${e}/refresh/`,void 0,K())}async setDefault(e){return await W.post(`/connections/${e}/set-default/`,void 0,K())}async rename(e,t){return await W.patch(`/connections/${e}/`,{label:t},K())}async disconnect(e){return W.delete(`/${this.key}/${e}/`,K())}async rebindBrowserDevice(e,t){return W.put(`/${this.key}/${e}/browser-device/`,{browser_device_id:t},K())}async stopBrowserSessions(e){return W.post(`/${this.key}/${e}/browser-sessions/stop/`,void 0,K())}async tools(e){return W.get(`/${this.key}/${e}/tools/`,K())}async listCatalog(e={}){return W.get(`/connectors/`,{...K(),params:e})}async getCatalogItem(e){return W.get(`/connectors/${e}/`,K())}async catalogCategories(){return W.get(`/connectors/categories/`,K())}async installFromCatalog(e,t={}){return W.post(`/connectors/${e}/install/`,t,K())}async submitCatalogCredentials(e,t){return W.post(`/connectors/${e}/credentials/`,t,K())}},ie=1e4,ae=`https://platform.acedata.cloud/documents/acedataext`;function X(e){return e==null?``:typeof e==`string`?e:Array.isArray(e)?e.map(X).filter(Boolean).join(`; `):typeof e==`object`?Object.values(e).map(X).filter(Boolean).join(`; `):String(e)}var oe=g({name:`ByocCredentialsDialog`,components:{ElDialog:B,ElForm:S,ElFormItem:x,ElInput:U,ElSelect:_,ElOption:v,ElButton:H,SecurityIcon:R,WarningIcon:z},props:{modelValue:{type:Boolean,default:!1},item:{type:Object,default:null},method:{type:Object,default:null},createNew:{type:Boolean,default:!1}},emits:[`update:modelValue`,`installed`],data(){return{visible:this.modelValue,submitting:!1,detecting:!1,extensionReady:!1,formModel:{}}},computed:{activeMethod(){return this.method?this.method:q(this.item)||null},schema(){return this.activeMethod?.credential.credential_schema||[]},isExtension(){return this.activeMethod?.credential.source===`extension`},ACE_EXTENSION_DOC(){return ae},loginUrl(){return this.activeMethod?.credential.login_url||``},captureDomain(){return((this.activeMethod?.credential.cookie_domains||[])[0]||``).replace(/^\./,``)},dialogTitle(){let e=this.item?.name||``;return this.$t(`connection.byoc.dialogTitle`,{name:e})},formRules(){let e={},t=this.$t(`connection.byoc.required`);for(let n of this.schema)n.required&&(e[n.key]=[{required:!0,message:t,trigger:`blur`}]);return e}},watch:{modelValue(e){this.visible=e,e&&(this.resetForm(),this.isExtension&&this.pollDetect(8))},visible(e){this.$emit(`update:modelValue`,e)}},methods:{isSecret(e){return e.type===`password`||!!e.secret},resetForm(){let e={};for(let t of this.schema)t.default&&!this.isSecret(t)?e[t.key]=t.default:e[t.key]=``;this.formModel=e},onClose(){this.formModel={},this.visible=!1},openLogin(){this.loginUrl&&window.open(this.loginUrl,`_blank`,`noopener`)},detectExtension(){return this.extensionReady=!!document.getElementById(`acedataext`),this.extensionReady},pollDetect(e){this.detectExtension()||e<=0||window.setTimeout(()=>this.pollDetect(e-1),400)},recheckExtension(){this.detecting=!0,window.setTimeout(()=>{this.detectExtension(),this.detecting=!1,this.extensionReady||T.warning(this.$t(`connection.byoc.extensionMissing`))},300)},captureCookies(){return new Promise((e,t)=>{if(!document.getElementById(`acedataext`)){t(Error(`extension-missing`));return}let n=!1,r=a=>{let o=a.data;!o||o.from!==`EXTENSION`||o.action!==`getCookies`||(n=!0,window.removeEventListener(`message`,r),window.clearTimeout(i),o.error?t(Error(o.error)):e(o.cookies||[]))},i=window.setTimeout(()=>{n||(window.removeEventListener(`message`,r),t(Error(`extension-missing`)))},ie);window.addEventListener(`message`,r),window.postMessage({action:`getCookies`,from:`PAGE`,domain:this.captureDomain,name:this.item?.slug},`*`)})},async onCapture(){if(this.item){this.submitting=!0;try{let e=await this.captureCookies();if(!e.length){T.error(this.$t(`connection.byoc.extensionNoCookies`));return}let{data:t}=await Y.submitCatalogCredentials(this.item.id,{payload:{cookies:e},method_id:this.activeMethod?.id,...this.createNew?{create_new:!0}:{}});T.success(this.$t(`connection.message.installed`,{name:this.item.name})),this.$emit(`installed`,{item:this.item,connection_id:t.connection_id}),this.onClose()}catch(e){if(e?.message===`extension-missing`)T.error(this.$t(`connection.byoc.extensionMissing`));else{let t=X(e?.response?.data?.detail);T.error(t||this.$t(`connection.message.installFailed`))}}finally{this.submitting=!1}}},async onSubmit(){if(!this.item)return;let e=this.$refs.formRef;if(!(e&&!await e.validate().catch(()=>!1))){this.submitting=!0;try{let{data:e}=await Y.submitCatalogCredentials(this.item.id,{payload:Object.fromEntries(Object.entries(this.formModel).map(([e,t])=>[e,(t??``).trim()])),method_id:this.activeMethod?.id,...this.createNew?{create_new:!0}:{}});T.success(this.$t(`connection.message.installed`,{name:this.item.name})),this.$emit(`installed`,{item:this.item,connection_id:e.connection_id}),this.onClose()}catch(e){let t=X(e?.response?.data?.detail);T.error(t||this.$t(`connection.message.installFailed`))}finally{this.submitting=!1}}}}}),se={key:0,class:`byoc-missing`},ce={class:`byoc-missing-body`},le={class:`byoc-missing-title`},ue={class:`byoc-missing-text`},de=[`href`],fe={class:`byoc-intro`},pe=[`href`],me={class:`byoc-steps`},he={class:`byoc-disclaimer`},ge={key:0,class:`byoc-intro`},_e={key:2,class:`byoc-help`},ve={class:`byoc-disclaimer`};function ye(n,u,p,g,_,v){let y=l(`warning-icon`),b=l(`el-button`),x=l(`security-icon`),S=l(`el-option`),C=l(`el-select`),w=l(`el-input`),T=l(`el-form-item`),E=l(`el-form`),D=l(`el-dialog`);return h(),d(D,{modelValue:n.visible,"onUpdate:modelValue":u[1]||=e=>n.visible=e,title:n.dialogTitle,width:`min(520px, 94vw)`,"append-to-body":``,"destroy-on-close":``,onClose:n.onClose},{footer:f(()=>[a(b,{onClick:n.onClose},{default:f(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),n.isExtension?(h(),s(c,{key:0},[n.extensionReady?(h(),d(b,{key:1,type:`primary`,loading:n.submitting,onClick:n.onCapture},{default:f(()=>[r(i(n.$t(`connection.byoc.extensionCapture`)),1)]),_:1},8,[`loading`,`onClick`])):(h(),d(b,{key:0,type:`primary`,loading:n.detecting,onClick:n.recheckExtension},{default:f(()=>[r(i(n.$t(`connection.byoc.extensionRecheck`)),1)]),_:1},8,[`loading`,`onClick`]))],64)):(h(),d(b,{key:1,type:`primary`,loading:n.submitting,onClick:n.onSubmit},{default:f(()=>[r(i(n.$t(`connection.byoc.submit`)),1)]),_:1},8,[`loading`,`onClick`]))]),default:f(()=>[n.isExtension?(h(),s(c,{key:0},[n.extensionReady?(h(),s(c,{key:1},[e(`p`,fe,i(n.$t(`connection.byoc.extensionIntro`)),1),e(`a`,{class:`byoc-doc-link byoc-doc-link-inline`,href:n.ACE_EXTENSION_DOC,target:`_blank`,rel:`noopener`},i(n.$t(`connection.byoc.extensionGuide`))+` → `,9,pe),e(`ol`,me,[e(`li`,null,[r(i(n.$t(`connection.byoc.extensionStepLogin`))+` `,1),n.loginUrl?(h(),d(b,{key:0,link:``,type:`primary`,onClick:n.openLogin},{default:f(()=>[r(i(n.$t(`connection.byoc.extensionOpenLogin`)),1)]),_:1},8,[`onClick`])):o(``,!0)]),e(`li`,null,i(n.$t(`connection.byoc.extensionStepCapture`)),1)]),e(`p`,he,[a(x,{class:`byoc-shield`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`connection.byoc.disclaimer`)),1)])],64)):(h(),s(`div`,se,[a(y,{class:`byoc-missing-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`div`,ce,[e(`p`,le,i(n.$t(`connection.byoc.extensionMissingTitle`)),1),e(`p`,ue,i(n.$t(`connection.byoc.extensionMissingBody`)),1),e(`a`,{class:`byoc-doc-link`,href:n.ACE_EXTENSION_DOC,target:`_blank`,rel:`noopener`},i(n.$t(`connection.byoc.extensionGuide`))+` → `,9,de)])]))],64)):(h(),s(c,{key:1},[n.schema.length>0?(h(),s(`p`,ge,i(n.$t(`connection.byoc.intro`)),1)):o(``,!0),a(E,{ref:`formRef`,model:n.formModel,rules:n.formRules,"label-position":`top`,class:`byoc-form`,onSubmit:u[0]||=t(()=>{},[`prevent`])},{default:f(()=>[(h(!0),s(c,null,m(n.schema,e=>(h(),d(T,{key:e.key,label:e.label,prop:e.key},{default:f(()=>[e.type===`select`?(h(),d(C,{key:0,modelValue:n.formModel[e.key],"onUpdate:modelValue":t=>n.formModel[e.key]=t,placeholder:e.help||``,filterable:``,class:`byoc-input`},{default:f(()=>[(h(!0),s(c,null,m(e.options||[],e=>(h(),d(S,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(h(),d(w,{key:1,modelValue:n.formModel[e.key],"onUpdate:modelValue":t=>n.formModel[e.key]=t,type:n.isSecret(e)?`password`:`text`,"show-password":n.isSecret(e),placeholder:e.help||``,autocomplete:n.isSecret(e)?`new-password`:`off`,class:`byoc-input`},null,8,[`modelValue`,`onUpdate:modelValue`,`type`,`show-password`,`placeholder`,`autocomplete`])),e.help?(h(),s(`div`,_e,i(e.help),1)):o(``,!0)]),_:2},1032,[`label`,`prop`]))),128))]),_:1},8,[`model`,`rules`]),e(`p`,ve,[a(x,{class:`byoc-shield`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`connection.byoc.disclaimer`)),1)])],64))]),_:1},8,[`modelValue`,`title`,`onClose`])}var Z=V(oe,[[`render`,ye],[`__scopeId`,`data-v-9a4fc02f`]]),be=g({name:`ConnectorMethodPicker`,components:{ElDialog:B,ElTabs:y,ElTabPane:b,ElButton:H},props:{modelValue:{type:Boolean,default:!1},item:{type:Object,default:null}},emits:[`update:modelValue`,`select`],data(){return{visible:this.modelValue,selectedId:``}},computed:{methods(){return J(this.item)},dialogTitle(){let e=this.item?.name||``;return this.$t(`connection.method.dialogTitle`,{name:e})}},watch:{modelValue(e){this.visible=e,e&&(this.selectedId=q(this.item)?.id||``)},visible(e){this.$emit(`update:modelValue`,e)}},methods:{methodLabel(e){return e.label?e.label:e.id},methodDesc(e){return e.description||``},onConfirm(){let e=this.methods.find(e=>e.id===this.selectedId);!e||!this.item||(this.$emit(`select`,{item:this.item,method:e}),this.visible=!1)},onClose(){this.visible=!1}}}),xe={class:`picker-intro`},Se={class:`picker-tab-label`},Ce={key:0,class:`picker-recommended`},we={key:0,class:`picker-pane-desc`};function Te(t,n,u,p,g,_){let v=l(`el-tab-pane`),y=l(`el-tabs`),b=l(`el-button`),x=l(`el-dialog`);return h(),d(x,{modelValue:t.visible,"onUpdate:modelValue":n[1]||=e=>t.visible=e,title:t.dialogTitle,width:`min(480px, 94vw)`,"append-to-body":``,"destroy-on-close":``,onClose:t.onClose},{footer:f(()=>[a(b,{onClick:t.onClose},{default:f(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),a(b,{type:`primary`,disabled:!t.selectedId,onClick:t.onConfirm},{default:f(()=>[r(i(t.$t(`common.button.confirm`)),1)]),_:1},8,[`disabled`,`onClick`])]),default:f(()=>[e(`p`,xe,i(t.$t(`connection.method.heading`)),1),a(y,{modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`picker-tabs`},{default:f(()=>[(h(!0),s(c,null,m(t.methods,n=>(h(),d(v,{key:n.id,name:n.id},{label:f(()=>[e(`span`,Se,[r(i(t.methodLabel(n))+` `,1),n.recommended?(h(),s(`span`,Ce,i(t.$t(`connection.method.recommended`)),1)):o(``,!0)])]),default:f(()=>[t.methodDesc(n)?(h(),s(`p`,we,i(t.methodDesc(n)),1)):o(``,!0)]),_:2},1032,[`name`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`,`onClose`])}var Q=V(be,[[`render`,Te],[`__scopeId`,`data-v-3a0a8526`]]);function $(e,t){let n=new Set(e.capabilities||[]),r=t.filter(e=>!n.has(e));return e.compatible?r.length?{compatible:!1,reason:`missing_capabilities`,missingCapabilities:r}:{compatible:!0,reason:null,missingCapabilities:[]}:{compatible:!1,reason:e.incompatibility_reason||`device_inactive`,missingCapabilities:r}}var Ee=g({name:`BrowserDevicePicker`,components:{ElAlert:w,ElButton:H,ElDialog:B,ElEmpty:j,ElRadio:D,ElRadioGroup:E},props:{modelValue:{type:Boolean,required:!0},method:{type:Object,default:null},installing:{type:Boolean,default:!1}},emits:[`update:modelValue`,`select`,`pair`],data(){return{devices:[],selectedId:``,loading:!1,loadError:``}},computed:{visible:{get(){return this.modelValue},set(e){this.$emit(`update:modelValue`,e)}},origins(){return this.method?.execution.origins||[]},requiredCapabilities(){return this.method?.execution.capabilities||[]}},methods:{missingCapabilities(e){return $(e,this.requiredCapabilities).missingCapabilities},compatible(e){return $(e,this.requiredCapabilities).compatible},incompatibilityText(e){let t=$(e,this.requiredCapabilities);return t.reason===`missing_capabilities`?this.$t(`connection.message.browserMissingCapabilities`,{capabilities:t.missingCapabilities.join(`, `)}).toString():this.$t(`connection.message.browserIncompatibility.${t.reason}`).toString()},async loadDevices(e=``){this.loading=!0,this.loadError=``;try{let{data:t}=await ne.list();this.devices=t.filter(e=>e.status===`active`);let n=this.devices.filter(this.compatible);e&&n.some(t=>t.id===e)?this.selectedId=e:n.length===1?this.selectedId=n[0].id:n.some(e=>e.id===this.selectedId)||(this.selectedId=``)}catch{this.loadError=this.$t(`user.browserDevice.loadFailed`).toString()}finally{this.loading=!1}},async refreshAfterPair(e){this.visible=!0,await this.loadDevices(e.id);let t=this.devices.find(t=>t.id===e.id)||e;this.compatible(t)||(this.loadError=this.$t(`connection.message.browserPairedIncompatible`,{version:t.extension_version||`?`,capabilities:this.missingCapabilities(t).join(`, `)}).toString())},showInstallError(e){this.loadError=e},confirm(){this.selectedId&&this.$emit(`select`,this.selectedId)}}}),De={key:1,class:`browser-policy`},Oe={class:`device-list`},ke={class:`device-name`},Ae={class:`device-meta`},je={class:`device-meta`},Me={class:`device-digest`},Ne={key:0,class:`device-missing`};function Pe(t,n,g,_,v,y){let b=l(`el-alert`),x=l(`el-radio`),S=l(`el-radio-group`),C=l(`el-empty`),w=l(`el-button`),T=l(`el-dialog`),E=p(`loading`);return h(),d(T,{modelValue:t.visible,"onUpdate:modelValue":n[2]||=e=>t.visible=e,title:t.$t(`connection.message.selectBrowserDevice`),width:`min(520px, 94vw)`,"append-to-body":``,"close-on-click-modal":!1,onOpen:t.loadDevices},{footer:f(()=>[a(w,{onClick:n[1]||=e=>t.$emit(`pair`)},{default:f(()=>[r(i(t.$t(`user.browserDevice.pairButton`)),1)]),_:1}),a(w,{type:`primary`,disabled:!t.selectedId,loading:t.installing,onClick:t.confirm},{default:f(()=>[r(i(t.$t(`connection.button.connect`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])]),default:f(()=>[t.loadError?(h(),d(b,{key:0,title:t.loadError,type:`error`,closable:!1,"show-icon":``,class:`mb-4`},null,8,[`title`])):o(``,!0),t.origins.length?(h(),s(`p`,De,i(t.$t(`connection.message.browserAllowedSites`))+`: `+i(t.origins.join(`, `)),1)):o(``,!0),a(b,{title:t.$t(`connection.message.browserHighPrivilegeDisclosure`),type:`warning`,closable:!1,"show-icon":``,class:`mb-4`},null,8,[`title`]),u((h(),s(`div`,Oe,[t.devices.length?(h(),d(S,{key:0,modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`device-options`},{default:f(()=>[(h(!0),s(c,null,m(t.devices,n=>(h(),d(x,{key:n.id,value:n.id,label:n.id,disabled:!t.compatible(n),border:``,class:`device-option`},{default:f(()=>[e(`span`,ke,i(n.name),1),e(`span`,Ae,i(n.platform)+` · v`+i(n.extension_version||`?`),1),e(`span`,je,i(t.$t(n.online?`connection.message.browserOnline`:`connection.message.browserOffline`))+` · `+i(t.$t(`connection.message.browserActiveSessions`,{count:n.active_session_count})),1),e(`span`,Me,i(n.wire_contract_digest),1),t.compatible(n)?o(``,!0):(h(),s(`span`,Ne,i(t.incompatibilityText(n)),1))]),_:2},1032,[`value`,`label`,`disabled`]))),128))]),_:1},8,[`modelValue`])):t.loading?o(``,!0):(h(),d(C,{key:1,description:t.$t(`user.browserDevice.empty`)},null,8,[`description`]))])),[[E,t.loading]])]),_:1},8,[`modelValue`,`title`,`onOpen`])}var Fe=V(Ee,[[`render`,Pe],[`__scopeId`,`data-v-7eaca81f`]]);function Ie(e){return String(e??``).normalize(`NFKC`).trim().toLowerCase()}function Le(e){let t=[e.name,e.identifier,e.namespace,e.slug,e.short_description,e.description,e.publisher,e.category,e.acedata_service_alias,...Array.isArray(e.tags)?e.tags:[]];for(let n of e.permissions||[])t.push(n.id,n.label,n.desc);for(let n of J(e)){t.push(n.id,n.label,n.execution.type,n.execution.server_url,n.credential.type,n.credential.provider_id);for(let e of n.permissions||[])t.push(e.id,e.label,e.desc)}return t.map(Ie).filter(Boolean).join(` `)}var Re=g({name:`BrowseConnectors`,components:{ElDialog:B,ElInput:U,ElSelect:_,ElOption:v,ElTooltip:C,ElDropdown:A,ElDropdownMenu:k,ElDropdownItem:O,AddIcon:I,ConnectionIcon:F,ExpandDownIcon:M,LoadingIcon:P,SearchIcon:L,SuccessIcon:N,ByocCredentialsDialog:Z,ConnectorMethodPicker:Q,BrowserPairingDialog:re,BrowserDevicePicker:Fe},props:{modelValue:{type:Boolean,default:!1}},emits:[`update:modelValue`,`installed`,`add-account`,`manage`],data(){return{visible:this.modelValue,loading:!1,installingId:null,query:``,source:`all`,category:``,sort:`popular`,items:[],facets:[],byocDialogVisible:!1,byocDialogItem:null,byocDialogMethod:null,pickerVisible:!1,pickerItem:null,pairingDialogVisible:!1,browserDevicePickerVisible:!1,browserDialogItem:null,browserDialogMethod:null,browserInstalling:!1}},computed:{sourceOptions(){let e=this.facets.reduce((e,t)=>e+t.count,0),t={official:0,partner:0,public:0};for(let e of this.facets)t[e.source]=(t[e.source]||0)+e.count;return[{key:`all`,label:String(this.$t(`connection.label.all`)),count:e},{key:`official`,label:String(this.$t(`connection.label.official`)),count:t.official},{key:`partner`,label:String(this.$t(`connection.label.partner`)),count:t.partner},{key:`public`,label:String(this.$t(`connection.label.community`)),count:t.public}]},categoryOptions(){let e={};for(let t of this.facets){if(this.source!==`all`&&this.source!==`featured`&&t.source!==this.source)continue;let n=t.category||`uncategorized`;e[n]=(e[n]||0)+t.count}let t=Object.values(e).reduce((e,t)=>e+t,0),n=[{key:``,label:String(this.$t(`connection.category.all`)),count:t}];for(let[t,r]of Object.entries(e)){if(r<=0)continue;let e=`connection.category.${t}`,i=String(this.$t(e));n.push({key:t,label:i===e?t:i,count:r})}return n},filteredItems(){let e=Ie(this.query),t=this.items;return e&&(t=t.filter(t=>Le(t).includes(e))),this.source!==`all`&&this.source!==`featured`&&(t=t.filter(e=>e.source===this.source)),this.source===`featured`&&(t=t.filter(e=>e.is_featured)),this.category&&(t=t.filter(e=>(e.category||`uncategorized`)===this.category)),t}},watch:{modelValue(e){this.visible=e},visible(e){this.$emit(`update:modelValue`,e)}},methods:{onOpen(){this.fetchItems(),this.fetchFacets()},accountCount(e){let t=typeof e.account_count==`number`?e.account_count:0;return e.installed?Math.max(1,t):t},accountLabel(e){return String(this.$t(`connection.message.connectedAccounts`,{name:e.name,count:this.accountCount(e)}))},markInstalled(e){this.items=this.items.map(t=>t.id===e?{...t,installed:!0,install_count:t.install_count+1,account_count:this.accountCount(t)+1}:t)},onInstalledCommand(e,t){if(e===`addAccount`){if(!t.installable)return;this.$emit(`add-account`,{item:t});return}e===`manage`&&this.$emit(`manage`,{item:t})},sourceLabel(e){switch(e){case`official`:return String(this.$t(`connection.label.official`));case`partner`:return String(this.$t(`connection.label.partner`));case`public`:return String(this.$t(`connection.label.community`));default:return e}},setSource(e){this.source=e,this.fetchItems()},setCategory(e){this.category=e,this.fetchItems()},async fetchItems(){this.loading=!0;try{let e={sort:this.sort,limit:200};this.source!==`all`&&this.source!==`featured`&&(e.source=this.source),this.source===`featured`&&(e.featured=!0),this.category&&(e.category=this.category);let{data:t}=await Y.listCatalog(e);this.items=t.items||[]}catch(e){T.error(e?.response?.data?.detail||e?.message||`Failed to load directory`)}finally{this.loading=!1}},async fetchFacets(){try{let{data:e}=await Y.catalogCategories();this.facets=e.facets||[]}catch{this.facets=[]}},async onInstall(e){if(!e.installable)return;if(J(e).length>1){this.pickerItem=e,this.pickerVisible=!0;return}let t=q(e);t&&await this.installWithMethod(e,t)},onMethodSelected(e){this.pickerVisible=!1,this.installWithMethod(e.item,e.method)},async installWithMethod(e,t){if(t.execution.type===`browser_device`){this.browserDialogItem=e,this.browserDialogMethod=t,this.browserDevicePickerVisible=!0;return}if(t.credential.type===`user_secret`||t.credential.type===`cookie_jar`){this.byocDialogItem=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}this.installingId=e.id;try{let{data:n}=await Y.installFromCatalog(e.id,{return_url:G(),method_id:t.id});if(n.type===`redirect`){await te(n.authorization_url),this.$emit(`installed`),await this.fetchItems();return}if(n.type===`form`){this.byocDialogItem=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}this.markInstalled(e.id),T.success(this.$t(`connection.message.installed`,{name:e.name})),this.$emit(`installed`,{item:e,connection_id:n.connection_id})}catch(e){T.error(e?.message===`desktop-authorize-unsupported`?this.$t(`connection.message.desktopUpdateRequired`):e?.response?.data?.detail||this.$t(`connection.message.installFailed`))}finally{this.installingId=null}},onByocInstalled(e){this.markInstalled(e.item.id),this.$emit(`installed`,e)},openBrowserPairing(){this.browserDevicePickerVisible=!1,this.pairingDialogVisible=!0},async onBrowserPaired(e){this.pairingDialogVisible=!1,await this.$refs.browserDevicePicker?.refreshAfterPair(e)},async onBrowserDeviceSelected(e){let t=this.browserDialogItem,n=this.browserDialogMethod;if(!(!t||!n)){this.browserInstalling=!0,this.installingId=t.id;try{let{data:r}=await Y.installFromCatalog(t.id,{return_url:G(),method_id:n.id,browser_device_id:e});if(r.type!==`active`)throw Error(this.$t(`connection.message.installFailed`));this.browserDevicePickerVisible=!1,this.browserDialogItem=null,this.browserDialogMethod=null,this.markInstalled(t.id),T.success(this.$t(`connection.message.installed`,{name:t.name})),this.$emit(`installed`,{item:t,connection_id:r.connection_id})}catch(e){let t=e?.response?.data?.detail||e?.message||this.$t(`connection.message.installFailed`);this.$refs.browserDevicePicker?.showInstallError(String(t))}finally{this.browserInstalling=!1,this.installingId=null}}}}}),ze={class:`browse-intro`},Be={class:`browse-toolbar`},Ve={class:`browse-shell`},He={class:`browse-sidebar`},Ue={class:`sidebar-section`},We=[`onClick`],Ge={class:`sidebar-label`},Ke={key:0,class:`sidebar-count`},qe={class:`sidebar-section`},Je={class:`sidebar-heading`},Ye=[`onClick`],Xe={class:`sidebar-label`},Ze={key:0,class:`sidebar-count`},Qe={class:`browse-grid-wrapper`},$e={key:0,class:`browse-empty`},et={key:1,class:`browse-grid`},tt={class:`card-head`},nt={class:`card-icon`},rt=[`src`,`alt`],it={class:`card-title-block`},at={class:`card-title-row`},ot={class:`card-title`},st={class:`card-meta`},ct=[`title`],lt={key:1,class:`card-pill card-pill-new`},ut={key:2,class:`card-pill card-pill-trending`},dt={key:3,class:`card-publisher`},ft={class:`card-action-slot`},pt=[`disabled`,`onClick`],mt={class:`ml-1`},ht=[`aria-label`,`title`],gt={class:`ml-1 card-action-count`},_t={key:0,class:`card-description`};function vt(t,g,_,v,y,b){let x=l(`search-icon`),S=l(`el-input`),C=l(`el-option`),w=l(`el-select`),T=l(`connection-icon`),E=l(`loading-icon`),D=l(`add-icon`),O=l(`el-tooltip`),k=l(`success-icon`),A=l(`expand-down-icon`),j=l(`el-dropdown-item`),M=l(`el-dropdown-menu`),N=l(`el-dropdown`),P=l(`connector-method-picker`),F=l(`browser-pairing-dialog`),I=l(`browser-device-picker`),L=l(`byoc-credentials-dialog`),R=l(`el-dialog`),z=p(`loading`);return h(),d(R,{modelValue:t.visible,"onUpdate:modelValue":g[6]||=e=>t.visible=e,title:t.$t(`connection.title.browse`),width:`min(900px, 94vw)`,top:`5vh`,"close-on-click-modal":!1,onOpen:t.onOpen},{default:f(()=>[e(`p`,ze,i(t.$t(`connection.message.browseHint`)),1),e(`div`,Be,[a(S,{modelValue:t.query,"onUpdate:modelValue":g[0]||=e=>t.query=e,class:`search-input`,size:`default`,clearable:``,placeholder:t.$t(`connection.placeholder.search`)},{prefix:f(()=>[a(x,{size:14,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`modelValue`,`placeholder`]),a(w,{modelValue:t.sort,"onUpdate:modelValue":g[1]||=e=>t.sort=e,size:`default`,class:`sort-select`,onChange:t.fetchItems},{default:f(()=>[a(C,{label:t.$t(`connection.label.featured`),value:`popular`},null,8,[`label`]),a(C,{label:t.$t(`connection.label.new`),value:`new`},null,8,[`label`]),a(C,{label:`A-Z`,value:`name`})]),_:1},8,[`modelValue`,`onChange`])]),u((h(),s(`div`,Ve,[e(`aside`,He,[e(`div`,Ue,[(h(!0),s(c,null,m(t.sourceOptions,r=>(h(),s(`div`,{key:r.key,class:n([`sidebar-item`,{active:t.source===r.key}]),onClick:e=>t.setSource(r.key)},[e(`span`,Ge,i(r.label),1),r.count>0?(h(),s(`span`,Ke,i(r.count),1)):o(``,!0)],10,We))),128))]),g[7]||=e(`div`,{class:`sidebar-divider`},null,-1),e(`div`,qe,[e(`div`,Je,i(t.$t(`connection.field.account`)),1),(h(!0),s(c,null,m(t.categoryOptions,r=>(h(),s(`div`,{key:r.key,class:n([`sidebar-item`,{active:t.category===r.key}]),onClick:e=>t.setCategory(r.key)},[e(`span`,Xe,i(r.label),1),r.count>0?(h(),s(`span`,Ze,i(r.count),1)):o(``,!0)],10,Ye))),128))])]),e(`section`,Qe,[!t.loading&&t.filteredItems.length===0?(h(),s(`div`,$e,i(t.$t(`connection.message.browseEmpty`)),1)):(h(),s(`div`,et,[(h(!0),s(c,null,m(t.filteredItems,c=>(h(),s(`article`,{key:c.id,class:`card`},[e(`div`,tt,[e(`span`,nt,[c.icon_url?(h(),s(`img`,{key:0,src:c.icon_url,alt:c.name},null,8,rt)):(h(),d(T,{key:1,size:16,"aria-hidden":`true`,focusable:`false`}))]),e(`div`,it,[e(`div`,at,[e(`h4`,ot,i(c.name),1)]),e(`div`,st,[c.is_featured?(h(),s(`span`,{key:0,class:`card-pill card-pill-featured`,title:t.$t(`connection.label.featured`)},i(t.$t(`connection.label.featured`)),9,ct)):c.is_new?(h(),s(`span`,lt,i(t.$t(`connection.label.new`)),1)):c.is_trending?(h(),s(`span`,ut,i(t.$t(`connection.label.trending`)),1)):o(``,!0),e(`span`,{class:n([`source-badge`,`source-${c.source}`])},i(t.sourceLabel(c.source)),3),c.publisher?(h(),s(`span`,dt,i(c.publisher),1)):o(``,!0)])]),c.installed?(h(),d(N,{key:1,trigger:`click`,placement:`bottom-end`,"popper-class":`connection-actions-popper`,onCommand:e=>t.onInstalledCommand(e,c)},{dropdown:f(()=>[a(M,{class:`connection-actions-menu`},{default:f(()=>[a(j,{command:`addAccount`,disabled:!c.installable},{default:f(()=>[r(i(t.$t(`connection.button.addAccount`)),1)]),_:1},8,[`disabled`]),a(j,{command:`manage`},{default:f(()=>[r(i(t.$t(`connection.button.manageAccounts`)),1)]),_:1})]),_:2},1024)]),default:f(()=>[e(`button`,{type:`button`,class:`card-action card-action-installed`,"aria-label":t.accountLabel(c),title:t.accountLabel(c)},[a(k,{size:16,"aria-hidden":`true`,focusable:`false`}),e(`span`,gt,i(t.accountCount(c)),1),a(A,{class:`ml-1 card-action-caret`,size:12,"aria-hidden":`true`,focusable:`false`})],8,ht)]),_:2},1032,[`onCommand`])):(h(),d(O,{key:0,disabled:c.installable,content:t.$t(`skill.menu.soon`),placement:`top`},{default:f(()=>[e(`span`,ft,[e(`button`,{type:`button`,class:`card-action card-action-add`,disabled:!c.installable||t.installingId===c.id,onClick:e=>t.onInstall(c)},[t.installingId===c.id?(h(),d(E,{key:0,class:`icon-spin`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),d(D,{key:1,size:16,"aria-hidden":`true`,focusable:`false`})),e(`span`,mt,i(t.$t(`connection.button.install`)),1)],8,pt)])]),_:2},1032,[`disabled`,`content`]))]),c.short_description||c.description?(h(),s(`p`,_t,i(c.short_description||c.description),1)):o(``,!0)]))),128))]))])])),[[z,t.loading]]),a(P,{modelValue:t.pickerVisible,"onUpdate:modelValue":g[2]||=e=>t.pickerVisible=e,item:t.pickerItem,onSelect:t.onMethodSelected},null,8,[`modelValue`,`item`,`onSelect`]),a(F,{modelValue:t.pairingDialogVisible,"onUpdate:modelValue":g[3]||=e=>t.pairingDialogVisible=e,onPaired:t.onBrowserPaired},null,8,[`modelValue`,`onPaired`]),a(I,{ref:`browserDevicePicker`,modelValue:t.browserDevicePickerVisible,"onUpdate:modelValue":g[4]||=e=>t.browserDevicePickerVisible=e,method:t.browserDialogMethod,installing:t.browserInstalling,onPair:t.openBrowserPairing,onSelect:t.onBrowserDeviceSelected},null,8,[`modelValue`,`method`,`installing`,`onPair`,`onSelect`]),a(L,{modelValue:t.byocDialogVisible,"onUpdate:modelValue":g[5]||=e=>t.byocDialogVisible=e,item:t.byocDialogItem,method:t.byocDialogMethod,onInstalled:t.onByocInstalled},null,8,[`modelValue`,`item`,`method`,`onInstalled`])]),_:1},8,[`modelValue`,`title`,`onOpen`])}var yt=V(Re,[[`render`,vt],[`__scopeId`,`data-v-f373ab4f`]]);export{Y as a,Z as i,Fe as n,J as o,Q as r,q as s,yt as t};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,j as c,mt as l,tt as u,z as d}from"./vendor-chart-Dw-P17PN.js";import{t as f}from"./alert-BprQRUmf.js";import{v as p}from"./models-p9iPUELt.js";import{t as m}from"./divider-Du_3kymg.js";import{t as h}from"./skeleton-Dj_a_iIP.js";import{t as g}from"./copy-DRq4dd9Q.js";import{t as _}from"./loader-circle-BVPxZbHr.js";import{Ei as v,Er as y,Fi as b,O as x,Ui as S,oi as C}from"./index-Ckt9JRr7.js";var w=()=>({baseURL:`${C()}/api/v1`}),T=new class{key=`browser-devices`;async list(){return y.get(`/${this.key}/`,w())}async rename(e,t){return y.patch(`/${this.key}/${e}/`,{name:t},w())}async delete(e){return y.delete(`/${this.key}/${e}/`,w())}async createPairingChallenge(){return y.post(`/${this.key}/pairing-challenges/`,{},w())}async listPendingClaims(){return y.get(`/${this.key}/pairing-claims/`,w())}async confirmClaim(e,t,n){return y.post(`/${this.key}/pairing-claims/${e}/confirm/`,{key_fingerprint:t,...n?{name:n}:{}},w())}async rejectClaim(e,t){return y.post(`/${this.key}/pairing-claims/${e}/reject/`,{key_fingerprint:t},w())}},E=null,D=d({name:`BrowserPairingDialog`,components:{CopyIcon:g,ElAlert:f,ElButton:b,ElDialog:v,ElDivider:m,ElInput:S,ElSkeleton:h,LoadingIcon:_},props:{modelValue:{type:Boolean,default:!1}},emits:[`update:modelValue`,`paired`,`rejected`,`closed`],data(){return{visible:this.modelValue,loading:!1,polling:!1,challenge:E?.expires_at_ms&&E.expires_at_ms>Date.now()?E:null,claim:null,deviceName:``,errorMessage:``,nowMs:Date.now(),pollTimer:null,clockTimer:null,decision:null,requestGeneration:0}},computed:{secondsRemaining(){let e=this.claim?.expires_at_ms??this.challenge?.expires_at_ms;return e?Math.max(0,Math.ceil((e-this.nowMs)/1e3)):0},decisionExpired(){return this.secondsRemaining===0}},watch:{modelValue(e){this.visible=e,e&&this.startPairing()},visible(e){this.$emit(`update:modelValue`,e),e?this.startClock():this.stopTimers()}},mounted(){this.visible&&this.startPairing()},beforeUnmount(){this.stopTimers()},methods:{async startPairing(){if(this.loading)return;this.stopPolling();let e=++this.requestGeneration;this.loading=!0,this.errorMessage=``,this.decision=null;try{if(this.startClock(),!this.challenge||this.challenge.expires_at_ms<=Date.now()){let{data:t}=await T.createPairingChallenge();if(!this.visible||e!==this.requestGeneration)return;this.challenge=t,E=t,this.claim=null,this.deviceName=``}this.nowMs=Date.now(),await this.pollClaims(),!this.claim&&this.challenge&&!this.errorMessage&&(this.pollTimer=window.setInterval(()=>this.pollClaims(),1500))}catch(t){this.visible&&e===this.requestGeneration&&(this.errorMessage=this.errorDetail(t,`user.browserDevice.pairUnavailable`))}finally{e===this.requestGeneration&&(this.loading=!1)}},async pollClaims(){if(!this.challenge||this.polling||this.claim)return;let e=this.requestGeneration,t=this.challenge.challenge_id;if(this.nowMs=Date.now(),this.challenge.expires_at_ms<=this.nowMs){this.errorMessage=String(this.$t(`user.browserDevice.codeExpired`)),this.stopPolling();return}this.polling=!0;try{let{data:n}=await T.listPendingClaims();if(!this.visible||e!==this.requestGeneration||this.challenge?.challenge_id!==t)return;let r=n.find(e=>e.challenge_id===t);r&&(this.claim=r,this.stopPolling())}catch(t){this.visible&&e===this.requestGeneration&&(this.errorMessage=this.errorDetail(t,`user.browserDevice.pollFailed`),this.stopPolling())}finally{e===this.requestGeneration&&(this.polling=!1)}},async copyCode(){if(this.challenge)try{await navigator.clipboard.writeText(this.challenge.code),p.success(this.$t(`common.message.copied`))}catch{p.error(this.$t(`common.message.copyFailed`))}},async confirm(){let e=this.claim;if(!e||this.decision||this.decisionExpired)return;let t=this.requestGeneration,n=e.claim_id;this.decision=`confirm`;try{let{data:r}=await T.confirmClaim(e.claim_id,e.key_fingerprint,this.deviceName||void 0);if(!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;p.success(this.$t(`user.browserDevice.pairSuccess`)),this.$emit(`paired`,r.device),this.challenge=null,E=null,this.claim=null,this.visible=!1}catch(e){this.visible&&t===this.requestGeneration&&this.claim?.claim_id===n&&(this.errorMessage=this.errorDetail(e,`user.browserDevice.decisionFailed`))}finally{t===this.requestGeneration&&this.claim?.claim_id===n&&(this.decision=null)}},async reject(){let e=this.claim;if(!e||this.decision||this.decisionExpired)return;let t=this.requestGeneration,n=e.claim_id;this.decision=`reject`;try{if(await T.rejectClaim(e.claim_id,e.key_fingerprint),!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;p.success(this.$t(`user.browserDevice.rejectSuccess`)),this.$emit(`rejected`,e),this.challenge=null,E=null,this.claim=null,this.visible=!1}catch(e){this.visible&&t===this.requestGeneration&&this.claim?.claim_id===n&&(this.errorMessage=this.errorDetail(e,`user.browserDevice.decisionFailed`))}finally{t===this.requestGeneration&&this.claim?.claim_id===n&&(this.decision=null)}},errorDetail(e,t){return e?.response?.data?.detail||String(this.$t(t))},stopPolling(){this.pollTimer!==null&&(window.clearInterval(this.pollTimer),this.pollTimer=null)},startClock(){this.nowMs=Date.now(),this.clockTimer===null&&(this.clockTimer=window.setInterval(()=>{this.nowMs=Date.now(),this.secondsRemaining===0&&this.stopPolling()},1e3))},stopTimers(){this.stopPolling(),this.clockTimer!==null&&(window.clearInterval(this.clockTimer),this.clockTimer=null)},onClosed(){this.requestGeneration+=1,this.stopTimers(),this.loading=!1,this.polling=!1,this.errorMessage=``,this.decision=null,this.$emit(`closed`)}}}),O={key:0,class:`pairing-loading`},k={class:`pairing-intro`},A={class:`pairing-code-row`},j={class:`pairing-code`},M={class:`pairing-expiry`},N={class:`claim-title`},P={class:`claim-hint`},F={class:`claim-details`},I={key:1,class:`waiting-claim`};function L(d,f,p,m,h,g){let _=s(`el-alert`),v=s(`el-skeleton`),y=s(`copy-icon`),b=s(`el-button`),x=s(`el-divider`),S=s(`el-input`),C=s(`loading-icon`),w=s(`el-dialog`);return u(),c(w,{modelValue:d.visible,"onUpdate:modelValue":f[2]||=e=>d.visible=e,title:d.$t(`user.browserDevice.pairTitle`),width:`min(620px, 94vw)`,"append-to-body":``,"destroy-on-close":``,"close-on-click-modal":!1,onClosed:d.onClosed},{footer:l(()=>[d.claim?i(``,!0):(u(),c(b,{key:0,onClick:f[1]||=e=>d.visible=!1},{default:l(()=>[t(n(d.$t(`common.button.cancel`)),1)]),_:1})),d.errorMessage&&!d.claim?(u(),c(b,{key:1,type:`primary`,loading:d.loading,onClick:d.startPairing},{default:l(()=>[t(n(d.$t(`user.browserDevice.tryAgain`)),1)]),_:1},8,[`loading`,`onClick`])):i(``,!0),d.claim?(u(),a(o,{key:2},[r(b,{type:`danger`,plain:``,loading:d.decision===`reject`,disabled:d.decision!==null||d.decisionExpired,onClick:d.reject},{default:l(()=>[t(n(d.$t(`user.browserDevice.rejectClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),r(b,{type:`primary`,loading:d.decision===`confirm`,disabled:d.decision!==null||d.decisionExpired,onClick:d.confirm},{default:l(()=>[t(n(d.$t(`user.browserDevice.confirmClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])],64)):i(``,!0)]),default:l(()=>[r(_,{title:d.$t(`user.browserDevice.localApprovalOnly`),type:`info`,closable:!1,"show-icon":``,class:`pairing-alert`},null,8,[`title`]),d.loading?(u(),a(`div`,O,[r(v,{rows:4,animated:``})])):d.challenge?(u(),a(o,{key:1},[e(`p`,k,n(d.$t(`user.browserDevice.pairInstructions`)),1),e(`div`,A,[e(`code`,j,n(d.challenge.code),1),r(b,{size:`small`,onClick:d.copyCode},{default:l(()=>[r(y,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),t(` `+n(d.$t(`common.button.copy`)),1)]),_:1},8,[`onClick`])]),e(`p`,M,n(d.$t(`user.browserDevice.codeExpiresIn`,{seconds:d.secondsRemaining})),1),d.claim?(u(),a(o,{key:0},[r(x),e(`h3`,N,n(d.$t(`user.browserDevice.verifyClaimTitle`)),1),e(`p`,P,n(d.$t(`user.browserDevice.verifyClaimHint`)),1),e(`dl`,F,[e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.keyFingerprint`)),1),e(`dd`,null,[e(`code`,null,n(d.claim.key_fingerprint),1)])]),e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.platform`)),1),e(`dd`,null,n(d.claim.platform),1)]),e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.extensionVersion`)),1),e(`dd`,null,n(d.claim.extension_version),1)]),e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.origin`)),1),e(`dd`,null,[e(`code`,null,n(d.claim.origin),1)])])]),r(S,{modelValue:d.deviceName,"onUpdate:modelValue":f[0]||=e=>d.deviceName=e,modelModifiers:{trim:!0},placeholder:d.$t(`user.browserDevice.namePlaceholder`),maxlength:`128`,"show-word-limit":``},null,8,[`modelValue`,`placeholder`])],64)):(u(),a(`div`,I,[r(C,{class:`waiting-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,n(d.$t(`user.browserDevice.waitingForAgent`)),1)]))],64)):i(``,!0),d.errorMessage?(u(),c(_,{key:2,title:d.errorMessage,type:`error`,closable:!1,"show-icon":``},null,8,[`title`])):i(``,!0)]),_:1},8,[`modelValue`,`title`,`onClosed`])}var R=x(D,[[`render`,L],[`__scopeId`,`data-v-eac2e965`]]);export{T as n,R as t};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,j as c,mt as l,tt as u,z as d}from"./vendor-chart-Dw-P17PN.js";import{t as f}from"./alert-BprQRUmf.js";import{v as p}from"./models-D6J60Ang.js";import{t as m}from"./divider-Du_3kymg.js";import{t as h}from"./skeleton-Dj_a_iIP.js";import{t as g}from"./copy-CS92scYJ.js";import{t as _}from"./loader-circle-BOu6l4ZA.js";import{Mi as v,O as y,Vi as b,Yi as x,fi as S,jr as C}from"./index-DKnFv8oI.js";var w=()=>({baseURL:`${S()}/api/v1`}),T=new class{key=`browser-devices`;async list(){return C.get(`/${this.key}/`,w())}async rename(e,t){return C.patch(`/${this.key}/${e}/`,{name:t},w())}async delete(e){return C.delete(`/${this.key}/${e}/`,w())}async createPairingChallenge(){return C.post(`/${this.key}/pairing-challenges/`,{},w())}async listPendingClaims(){return C.get(`/${this.key}/pairing-claims/`,w())}async confirmClaim(e,t,n){return C.post(`/${this.key}/pairing-claims/${e}/confirm/`,{key_fingerprint:t,...n?{name:n}:{}},w())}async rejectClaim(e,t){return C.post(`/${this.key}/pairing-claims/${e}/reject/`,{key_fingerprint:t},w())}},E=null,D=d({name:`BrowserPairingDialog`,components:{CopyIcon:g,ElAlert:f,ElButton:b,ElDialog:v,ElDivider:m,ElInput:x,ElSkeleton:h,LoadingIcon:_},props:{modelValue:{type:Boolean,default:!1}},emits:[`update:modelValue`,`paired`,`rejected`,`closed`],data(){return{visible:this.modelValue,loading:!1,polling:!1,challenge:E?.expires_at_ms&&E.expires_at_ms>Date.now()?E:null,claim:null,deviceName:``,errorMessage:``,nowMs:Date.now(),pollTimer:null,clockTimer:null,decision:null,requestGeneration:0}},computed:{secondsRemaining(){let e=this.claim?.expires_at_ms??this.challenge?.expires_at_ms;return e?Math.max(0,Math.ceil((e-this.nowMs)/1e3)):0},decisionExpired(){return this.secondsRemaining===0}},watch:{modelValue(e){this.visible=e,e&&this.startPairing()},visible(e){this.$emit(`update:modelValue`,e),e?this.startClock():this.stopTimers()}},mounted(){this.visible&&this.startPairing()},beforeUnmount(){this.stopTimers()},methods:{async startPairing(){if(this.loading)return;this.stopPolling();let e=++this.requestGeneration;this.loading=!0,this.errorMessage=``,this.decision=null;try{if(this.startClock(),!this.challenge||this.challenge.expires_at_ms<=Date.now()){let{data:t}=await T.createPairingChallenge();if(!this.visible||e!==this.requestGeneration)return;this.challenge=t,E=t,this.claim=null,this.deviceName=``}this.nowMs=Date.now(),await this.pollClaims(),!this.claim&&this.challenge&&!this.errorMessage&&(this.pollTimer=window.setInterval(()=>this.pollClaims(),1500))}catch(t){this.visible&&e===this.requestGeneration&&(this.errorMessage=this.errorDetail(t,`user.browserDevice.pairUnavailable`))}finally{e===this.requestGeneration&&(this.loading=!1)}},async pollClaims(){if(!this.challenge||this.polling||this.claim)return;let e=this.requestGeneration,t=this.challenge.challenge_id;if(this.nowMs=Date.now(),this.challenge.expires_at_ms<=this.nowMs){this.errorMessage=String(this.$t(`user.browserDevice.codeExpired`)),this.stopPolling();return}this.polling=!0;try{let{data:n}=await T.listPendingClaims();if(!this.visible||e!==this.requestGeneration||this.challenge?.challenge_id!==t)return;let r=n.find(e=>e.challenge_id===t);r&&(this.claim=r,this.stopPolling())}catch(t){this.visible&&e===this.requestGeneration&&(this.errorMessage=this.errorDetail(t,`user.browserDevice.pollFailed`),this.stopPolling())}finally{e===this.requestGeneration&&(this.polling=!1)}},async copyCode(){if(this.challenge)try{await navigator.clipboard.writeText(this.challenge.code),p.success(this.$t(`common.message.copied`))}catch{p.error(this.$t(`common.message.copyFailed`))}},async confirm(){let e=this.claim;if(!e||this.decision||this.decisionExpired)return;let t=this.requestGeneration,n=e.claim_id;this.decision=`confirm`;try{let{data:r}=await T.confirmClaim(e.claim_id,e.key_fingerprint,this.deviceName||void 0);if(!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;p.success(this.$t(`user.browserDevice.pairSuccess`)),this.$emit(`paired`,r.device),this.challenge=null,E=null,this.claim=null,this.visible=!1}catch(e){this.visible&&t===this.requestGeneration&&this.claim?.claim_id===n&&(this.errorMessage=this.errorDetail(e,`user.browserDevice.decisionFailed`))}finally{t===this.requestGeneration&&this.claim?.claim_id===n&&(this.decision=null)}},async reject(){let e=this.claim;if(!e||this.decision||this.decisionExpired)return;let t=this.requestGeneration,n=e.claim_id;this.decision=`reject`;try{if(await T.rejectClaim(e.claim_id,e.key_fingerprint),!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;p.success(this.$t(`user.browserDevice.rejectSuccess`)),this.$emit(`rejected`,e),this.challenge=null,E=null,this.claim=null,this.visible=!1}catch(e){this.visible&&t===this.requestGeneration&&this.claim?.claim_id===n&&(this.errorMessage=this.errorDetail(e,`user.browserDevice.decisionFailed`))}finally{t===this.requestGeneration&&this.claim?.claim_id===n&&(this.decision=null)}},errorDetail(e,t){return e?.response?.data?.detail||String(this.$t(t))},stopPolling(){this.pollTimer!==null&&(window.clearInterval(this.pollTimer),this.pollTimer=null)},startClock(){this.nowMs=Date.now(),this.clockTimer===null&&(this.clockTimer=window.setInterval(()=>{this.nowMs=Date.now(),this.secondsRemaining===0&&this.stopPolling()},1e3))},stopTimers(){this.stopPolling(),this.clockTimer!==null&&(window.clearInterval(this.clockTimer),this.clockTimer=null)},onClosed(){this.requestGeneration+=1,this.stopTimers(),this.loading=!1,this.polling=!1,this.errorMessage=``,this.decision=null,this.$emit(`closed`)}}}),O={key:0,class:`pairing-loading`},k={class:`pairing-intro`},A={class:`pairing-code-row`},j={class:`pairing-code`},M={class:`pairing-expiry`},N={class:`claim-title`},P={class:`claim-hint`},F={class:`claim-details`},I={key:1,class:`waiting-claim`};function L(d,f,p,m,h,g){let _=s(`el-alert`),v=s(`el-skeleton`),y=s(`copy-icon`),b=s(`el-button`),x=s(`el-divider`),S=s(`el-input`),C=s(`loading-icon`),w=s(`el-dialog`);return u(),c(w,{modelValue:d.visible,"onUpdate:modelValue":f[2]||=e=>d.visible=e,title:d.$t(`user.browserDevice.pairTitle`),width:`min(620px, 94vw)`,"append-to-body":``,"destroy-on-close":``,"close-on-click-modal":!1,onClosed:d.onClosed},{footer:l(()=>[d.claim?i(``,!0):(u(),c(b,{key:0,onClick:f[1]||=e=>d.visible=!1},{default:l(()=>[t(n(d.$t(`common.button.cancel`)),1)]),_:1})),d.errorMessage&&!d.claim?(u(),c(b,{key:1,type:`primary`,loading:d.loading,onClick:d.startPairing},{default:l(()=>[t(n(d.$t(`user.browserDevice.tryAgain`)),1)]),_:1},8,[`loading`,`onClick`])):i(``,!0),d.claim?(u(),a(o,{key:2},[r(b,{type:`danger`,plain:``,loading:d.decision===`reject`,disabled:d.decision!==null||d.decisionExpired,onClick:d.reject},{default:l(()=>[t(n(d.$t(`user.browserDevice.rejectClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),r(b,{type:`primary`,loading:d.decision===`confirm`,disabled:d.decision!==null||d.decisionExpired,onClick:d.confirm},{default:l(()=>[t(n(d.$t(`user.browserDevice.confirmClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])],64)):i(``,!0)]),default:l(()=>[r(_,{title:d.$t(`user.browserDevice.localApprovalOnly`),type:`info`,closable:!1,"show-icon":``,class:`pairing-alert`},null,8,[`title`]),d.loading?(u(),a(`div`,O,[r(v,{rows:4,animated:``})])):d.challenge?(u(),a(o,{key:1},[e(`p`,k,n(d.$t(`user.browserDevice.pairInstructions`)),1),e(`div`,A,[e(`code`,j,n(d.challenge.code),1),r(b,{size:`small`,onClick:d.copyCode},{default:l(()=>[r(y,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),t(` `+n(d.$t(`common.button.copy`)),1)]),_:1},8,[`onClick`])]),e(`p`,M,n(d.$t(`user.browserDevice.codeExpiresIn`,{seconds:d.secondsRemaining})),1),d.claim?(u(),a(o,{key:0},[r(x),e(`h3`,N,n(d.$t(`user.browserDevice.verifyClaimTitle`)),1),e(`p`,P,n(d.$t(`user.browserDevice.verifyClaimHint`)),1),e(`dl`,F,[e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.keyFingerprint`)),1),e(`dd`,null,[e(`code`,null,n(d.claim.key_fingerprint),1)])]),e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.platform`)),1),e(`dd`,null,n(d.claim.platform),1)]),e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.extensionVersion`)),1),e(`dd`,null,n(d.claim.extension_version),1)]),e(`div`,null,[e(`dt`,null,n(d.$t(`user.browserDevice.origin`)),1),e(`dd`,null,[e(`code`,null,n(d.claim.origin),1)])])]),r(S,{modelValue:d.deviceName,"onUpdate:modelValue":f[0]||=e=>d.deviceName=e,modelModifiers:{trim:!0},placeholder:d.$t(`user.browserDevice.namePlaceholder`),maxlength:`128`,"show-word-limit":``},null,8,[`modelValue`,`placeholder`])],64)):(u(),a(`div`,I,[r(C,{class:`waiting-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,n(d.$t(`user.browserDevice.waitingForAgent`)),1)]))],64)):i(``,!0),d.errorMessage?(u(),c(_,{key:2,title:d.errorMessage,type:`error`,closable:!1,"show-icon":``},null,8,[`title`])):i(``,!0)]),_:1},8,[`modelValue`,`title`,`onClosed`])}var R=y(D,[[`render`,L],[`__scopeId`,`data-v-eac2e965`]]);export{T as n,R as t};
@@ -1 +1 @@
1
- import{z as e}from"./vendor-chart-Dw-P17PN.js";import{O as t}from"./index-Ckt9JRr7.js";var n=t(e({name:`AuthCallback`,data(){return{redirect:this.$route.query.redirect?.toString()}},async mounted(){this.redirect?await this.$router.push(this.redirect):await this.$router.push(`/`)}}),[[`__scopeId`,`data-v-0779b8a8`]]);export{n as default};
1
+ import{z as e}from"./vendor-chart-Dw-P17PN.js";import{O as t}from"./index-DKnFv8oI.js";var n=t(e({name:`AuthCallback`,data(){return{redirect:this.$route.query.redirect?.toString()}},async mounted(){this.redirect?await this.$router.push(this.redirect):await this.$router.push(`/`)}}),[[`__scopeId`,`data-v-0779b8a8`]]);export{n as default};
@@ -1 +1 @@
1
- import{A as e,Gt as t,Jt as n,L as r,M as i,N as a,at as o,ht as s,ot as c,tt as l,z as u}from"./vendor-chart-Dw-P17PN.js";import{O as d,on as f}from"./index-Ckt9JRr7.js";import"./vendor-highlight-BHrfT4-E.js";import{t as p}from"./CopyToClipboard-CrS-3Doq.js";var m=u({name:`CodeSnippet`,components:{CopyToClipboard:p},directives:{highlight:f},props:{code:{type:String,required:!0},lang:{type:String,required:!1,default:``},copyable:{type:Boolean,required:!1,default:!1}},computed:{languageClass(){let e=(this.lang||``).toLowerCase();return e?`language-${{shell:`bash`,bash:`bash`,javascript:`javascript`,js:`javascript`,python:`python`,py:`python`,java:`java`,go:`go`,php:`php`}[e]||e}`:``}}}),h={key:0,class:`cb-code-copy`};function g(u,d,f,p,m,g){let _=o(`copy-to-clipboard`),v=c(`highlight`);return s((l(),a(`div`,{class:t([`code-snippet rounded-md overflow-hidden`,{"is-copyable":u.copyable}])},[u.copyable?(l(),a(`div`,h,[r(_,{content:u.code},null,8,[`content`])])):i(``,!0),e(`pre`,null,[e(`code`,{class:t(u.languageClass)},n(u.code),3)])],2)),[[v]])}var _=d(m,[[`render`,g],[`__scopeId`,`data-v-571a19d1`]]);export{_ as t};
1
+ import{A as e,Gt as t,Jt as n,L as r,M as i,N as a,at as o,ht as s,ot as c,tt as l,z as u}from"./vendor-chart-Dw-P17PN.js";import{O as d,sn as f}from"./index-DKnFv8oI.js";import"./vendor-highlight-BHrfT4-E.js";import{t as p}from"./CopyToClipboard-BMiCg7d2.js";var m=u({name:`CodeSnippet`,components:{CopyToClipboard:p},directives:{highlight:f},props:{code:{type:String,required:!0},lang:{type:String,required:!1,default:``},copyable:{type:Boolean,required:!1,default:!1}},computed:{languageClass(){let e=(this.lang||``).toLowerCase();return e?`language-${{shell:`bash`,bash:`bash`,javascript:`javascript`,js:`javascript`,python:`python`,py:`python`,java:`java`,go:`go`,php:`php`}[e]||e}`:``}}}),h={key:0,class:`cb-code-copy`};function g(u,d,f,p,m,g){let _=o(`copy-to-clipboard`),v=c(`highlight`);return s((l(),a(`div`,{class:t([`code-snippet rounded-md overflow-hidden`,{"is-copyable":u.copyable}])},[u.copyable?(l(),a(`div`,h,[r(_,{content:u.code},null,8,[`content`])])):i(``,!0),e(`pre`,null,[e(`code`,{class:t(u.languageClass)},n(u.code),3)])],2)),[[v]])}var _=d(m,[[`render`,g],[`__scopeId`,`data-v-571a19d1`]]);export{_ as t};
@@ -1 +1 @@
1
- import{A as e,Gt as t,Jt as n,L as r,M as i,N as a,T as o,at as s,j as c,rt as l,st as u,tt as d,z as f}from"./vendor-chart-Dw-P17PN.js";import{t as p}from"./Navigator-QERhEabp.js";import{t as m}from"./box-D01T0Rfx.js";import{t as h}from"./external-link-sLbl4U1-.js";import{t as g}from"./history-D-fKzBv8.js";import{t as _}from"./monitor-DjWc24pt.js";import{t as v}from"./plug-DF1Drmqf.js";import{n as y,t as b}from"./store-mGO3sGR3.js";import{$ as x,J as S,K as C,O as w,Y as T,Z as E,et as D,vn as O,vt as k}from"./index-Ckt9JRr7.js";var A=f({name:`ConsoleSidePanel`,components:{ExternalLinkIcon:h},computed:{isOfficial(){return O()},active(){return this.$route.matched[0].path},user(){return this.$store.getters.user},links(){return[{key:`application-list`,text:this.$t(`console.menu.applicationList`),name:C,icon:m},{key:`order-list`,text:this.$t(`console.menu.orderList`),name:E,icon:b},{key:`usage-list`,text:this.$t(`console.menu.usageList`),name:D,icon:g},{key:`connectors`,text:this.$t(`console.menu.connectors`),name:T,icon:v},{key:`skills`,text:this.$t(`console.menu.skills`),name:x,icon:y},{key:`browser-devices`,text:this.$t(`console.menu.browserDevices`),name:S,icon:_}]}},mounted(){},methods:{onHome(){this.$router.push({name:k})},onNavigate(e){e.name?this.$router.push({name:e.name}):e.href&&window.open(e.href,`_blank`)}}}),j={class:`side`},M={class:`links`},N=[`onClick`],P={class:`icon`},F={class:`text`},I={class:`outer`};function L(r,f,p,m,h,g){let _=s(`external-link-icon`);return d(),a(`div`,j,[e(`div`,M,[(d(!0),a(o,null,l(r.links,(o,s)=>(d(),a(`a`,{key:s,class:t({link:!0,active:r.$route.name===o.name}),onClick:e=>r.onNavigate(o)},[e(`span`,P,[(d(),c(u(o.icon),{class:`text-sm`,size:`1em`,"aria-hidden":`true`,focusable:`false`}))]),e(`span`,F,n(o.text),1),e(`span`,I,[!o.name&&o.href?(d(),c(_,{key:0,class:`text-sm ml-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):i(``,!0)])],10,N))),128))])])}var R=f({name:`LayoutConsole`,components:{SidePanel:w(A,[[`render`,L],[`__scopeId`,`data-v-24e009d7`]]),Navigator:p},data(){return{mobile:window.innerWidth<768}},computed:{panelVariant(){return this.$route.meta?.layout||`document`}},mounted(){window.addEventListener(`resize`,this.onResize)},beforeUnmount(){window.removeEventListener(`resize`,this.onResize)},methods:{onResize(){this.mobile=window.innerWidth<768}}}),z={class:`console`},B={class:`main`};function V(n,i,o,c,l,u){let f=s(`side-panel`),p=s(`router-view`),m=s(`navigator`);return d(),a(`div`,z,[e(`div`,B,[r(f,{class:`side`}),r(p,{class:t([`panel`,`panel--${n.panelVariant}`])},null,8,[`class`])]),r(m,{class:`navigator`,direction:n.mobile?`row`:`column`},null,8,[`direction`])])}var H=w(R,[[`render`,V],[`__scopeId`,`data-v-4109e98b`]]);export{H as default};
1
+ import{A as e,Gt as t,Jt as n,L as r,M as i,N as a,T as o,at as s,j as c,rt as l,st as u,tt as d,z as f}from"./vendor-chart-Dw-P17PN.js";import{t as p}from"./Navigator-E7FCgVs1.js";import{t as m}from"./box-C1K_05R1.js";import{t as h}from"./external-link-B_1us9v2.js";import{t as g}from"./history-Drg92s0e.js";import{t as _}from"./monitor-C6EmGPtA.js";import{t as v}from"./plug-qlX-ubkq.js";import{n as y,t as b}from"./store-p6xQ2bAP.js";import{$ as x,J as S,K as C,O as w,Y as T,Z as E,et as D,vt as O,yn as k}from"./index-DKnFv8oI.js";var A=f({name:`ConsoleSidePanel`,components:{ExternalLinkIcon:h},computed:{isOfficial(){return k()},active(){return this.$route.matched[0].path},user(){return this.$store.getters.user},links(){return[{key:`application-list`,text:this.$t(`console.menu.applicationList`),name:C,icon:m},{key:`order-list`,text:this.$t(`console.menu.orderList`),name:E,icon:b},{key:`usage-list`,text:this.$t(`console.menu.usageList`),name:D,icon:g},{key:`connectors`,text:this.$t(`console.menu.connectors`),name:T,icon:v},{key:`skills`,text:this.$t(`console.menu.skills`),name:x,icon:y},{key:`browser-devices`,text:this.$t(`console.menu.browserDevices`),name:S,icon:_}]}},mounted(){},methods:{onHome(){this.$router.push({name:O})},onNavigate(e){e.name?this.$router.push({name:e.name}):e.href&&window.open(e.href,`_blank`)}}}),j={class:`side`},M={class:`links`},N=[`onClick`],P={class:`icon`},F={class:`text`},I={class:`outer`};function L(r,f,p,m,h,g){let _=s(`external-link-icon`);return d(),a(`div`,j,[e(`div`,M,[(d(!0),a(o,null,l(r.links,(o,s)=>(d(),a(`a`,{key:s,class:t({link:!0,active:r.$route.name===o.name}),onClick:e=>r.onNavigate(o)},[e(`span`,P,[(d(),c(u(o.icon),{class:`text-sm`,size:`1em`,"aria-hidden":`true`,focusable:`false`}))]),e(`span`,F,n(o.text),1),e(`span`,I,[!o.name&&o.href?(d(),c(_,{key:0,class:`text-sm ml-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):i(``,!0)])],10,N))),128))])])}var R=f({name:`LayoutConsole`,components:{SidePanel:w(A,[[`render`,L],[`__scopeId`,`data-v-24e009d7`]]),Navigator:p},data(){return{mobile:window.innerWidth<768}},computed:{panelVariant(){return this.$route.meta?.layout||`document`}},mounted(){window.addEventListener(`resize`,this.onResize)},beforeUnmount(){window.removeEventListener(`resize`,this.onResize)},methods:{onResize(){this.mobile=window.innerWidth<768}}}),z={class:`console`},B={class:`main`};function V(n,i,o,c,l,u){let f=s(`side-panel`),p=s(`router-view`),m=s(`navigator`);return d(),a(`div`,z,[e(`div`,B,[r(f,{class:`side`}),r(p,{class:t([`panel`,`panel--${n.panelVariant}`])},null,8,[`class`])]),r(m,{class:`navigator`,direction:n.mobile?`row`:`column`},null,8,[`direction`])])}var H=w(R,[[`render`,V],[`__scopeId`,`data-v-4109e98b`]]);export{H as default};
@@ -1 +1 @@
1
- import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,tt as c,z as l}from"./vendor-chart-Dw-P17PN.js";import{t as u}from"./coins-FZL59XN_.js";import{O as d}from"./index-Ckt9JRr7.js";var f=l({name:`Consumption`,components:{CreditsIcon:u},props:{value:{type:Number,required:!1,default:null},service:{type:Object,required:!0},rateUnit:{type:String,required:!1,default:``},note:{type:String,required:!1,default:``}},computed:{formattedValue(){return this.value>0&&this.value<1e-4?`<0.0001`:this.value<.01?this.value.toFixed(4):this.value.toFixed(2)}}}),p={key:0,class:`text-center text-[var(--el-text-color-secondary)] mb-1`},m={class:`inline-flex items-center justify-center gap-1 text-xs`},h={class:`font-medium`},g={key:0,class:`text-[10px] leading-tight mt-0.5 opacity-80`};function _(l,u,d,f,_,v){let y=s(`credits-icon`);return l.value!==null&&l.value!==void 0?(c(),a(`div`,p,[e(`span`,m,[r(y,{class:`text-[var(--el-color-primary-light-3)]`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,h,[t(n(l.formattedValue)+` `+n(l.$t(`service.unit.${l.service?.unit||`credits`}`)),1),l.rateUnit?(c(),a(o,{key:0},[t(`/`+n(l.rateUnit),1)],64)):i(``,!0)])]),l.note?(c(),a(`div`,g,n(l.note),1)):i(``,!0)])):i(``,!0)}var v=d(f,[[`render`,_]]);export{v as t};
1
+ import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,tt as c,z as l}from"./vendor-chart-Dw-P17PN.js";import{t as u}from"./coins-o7-8OSvE.js";import{O as d}from"./index-DKnFv8oI.js";var f=l({name:`Consumption`,components:{CreditsIcon:u},props:{value:{type:Number,required:!1,default:null},service:{type:Object,required:!0},rateUnit:{type:String,required:!1,default:``},note:{type:String,required:!1,default:``}},computed:{formattedValue(){return this.value>0&&this.value<1e-4?`<0.0001`:this.value<.01?this.value.toFixed(4):this.value.toFixed(2)}}}),p={key:0,class:`text-center text-[var(--el-text-color-secondary)] mb-1`},m={class:`inline-flex items-center justify-center gap-1 text-xs`},h={class:`font-medium`},g={key:0,class:`text-[10px] leading-tight mt-0.5 opacity-80`};function _(l,u,d,f,_,v){let y=s(`credits-icon`);return l.value!==null&&l.value!==void 0?(c(),a(`div`,p,[e(`span`,m,[r(y,{class:`text-[var(--el-color-primary-light-3)]`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,h,[t(n(l.formattedValue)+` `+n(l.$t(`service.unit.${l.service?.unit||`credits`}`)),1),l.rateUnit?(c(),a(o,{key:0},[t(`/`+n(l.rateUnit),1)],64)):i(``,!0)])]),l.note?(c(),a(`div`,g,n(l.note),1)):i(``,!0)])):i(``,!0)}var v=d(f,[[`render`,_]]);export{v as t};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,j as c,mt as l,nt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{t as m}from"./skeleton-Dj_a_iIP.js";import{t as h}from"./eye-DmwkAD9t.js";import{i as g,t as _}from"./Message--rJ5FRr0.js";import{Li as v,Ri as y}from"./constants-nRb-ZD8Y.js";import{Fi as b,O as x,yr as S}from"./index-Ckt9JRr7.js";import{t as C}from"./Logo-Bhc7s5iP.js";import{n as w}from"./VueMarkdown-CiiRjbWs.js";var T=p({name:`SharedConversation`,components:{UnlinkIcon:g,ViewIcon:h,Message:_,Logo:C,ElButton:b,ElSkeleton:m},setup(){u(w,!0)},data(){return{loading:!0,error:!1,conversation:void 0}},computed:{shareId(){return this.$route.params?.id?.toString()||``},messages(){return this.conversation?.messages||[]},title(){return this.conversation?.title||this.$t(`chat.share.untitled`)},modelGroup(){let e=this.conversation?.model_group;if(e){let t=y.find(t=>t.name===e);if(t)return t}let t=this.conversation?.model,n=v.find(e=>e.name===t);return y.find(e=>e.name===n?.modelGroup)},modelGroupName(){return this.modelGroup?.getDisplayName?.()||``}},async mounted(){this.setNoIndex(),await this.fetchShared()},beforeUnmount(){let e=document.querySelector(`meta[name="robots"]`);e&&e.setAttribute(`content`,`index, follow`)},methods:{async fetchShared(){if(this.loading=!0,this.error=!1,!this.shareId){this.error=!0,this.loading=!1;return}try{this.conversation=await S.getSharedConversation(this.shareId),typeof document<`u`&&this.conversation?.title&&(document.title=this.conversation.title)}catch(e){console.error(`getSharedConversation failed`,this.shareId,e),this.error=!0}finally{this.loading=!1}},goToApp(){this.$router.push(`/`)},setNoIndex(){if(typeof document>`u`)return;let e=document.querySelector(`meta[name="robots"]`);e||(e=document.createElement(`meta`),e.setAttribute(`name`,`robots`),document.head.appendChild(e)),e.setAttribute(`content`,`noindex, nofollow`)}}}),E={class:`shared-page`},D={class:`shared-header`},O={class:`brand`},k={class:`shared-body`},A={key:1,class:`unavailable`},j={class:`unavailable-title`},M={class:`unavailable-hint`},N={key:2,class:`conversation`},P={class:`conversation-head`},F={class:`conversation-title`},I={class:`conversation-meta`},L=[`src`],R={key:1,class:`meta-model`},z={class:`meta-badge`},B={class:`messages`},V={class:`shared-footer`},H={class:`footer-note`};function U(u,p,m,h,g,_){let v=s(`logo`),y=s(`el-button`),b=s(`el-skeleton`),x=s(`unlink-icon`),S=s(`view-icon`),C=s(`message`);return f(),a(`div`,E,[e(`header`,D,[e(`div`,O,[r(v,{onClick:u.goToApp},null,8,[`onClick`])]),r(y,{class:`cta`,type:`primary`,round:``,onClick:u.goToApp},{default:l(()=>[t(n(u.$t(`chat.share.startYourOwn`)),1)]),_:1},8,[`onClick`])]),e(`main`,k,[u.loading?(f(),c(b,{key:0,rows:6,animated:``,class:`skeleton`})):u.error?(f(),a(`div`,A,[r(x,{class:`unavailable-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`h1`,j,n(u.$t(`chat.share.unavailableTitle`)),1),e(`p`,M,n(u.$t(`chat.share.unavailableHint`)),1),r(y,{type:`primary`,round:``,onClick:u.goToApp},{default:l(()=>[t(n(u.$t(`chat.share.startYourOwn`)),1)]),_:1},8,[`onClick`])])):(f(),a(`div`,N,[e(`div`,P,[e(`h1`,F,n(u.title),1),e(`div`,I,[u.modelGroup?.icon?(f(),a(`img`,{key:0,src:u.modelGroup.icon,class:`meta-icon`,alt:`model`},null,8,L)):i(``,!0),u.modelGroupName?(f(),a(`span`,R,n(u.modelGroupName),1)):i(``,!0),e(`span`,z,[r(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),t(` `+n(u.$t(`chat.share.viewOnly`)),1)])])]),e(`div`,B,[(f(!0),a(o,null,d(u.messages,(e,t)=>(f(),c(C,{key:t,message:e,messages:u.messages,application:void 0,readonly:!0,"model-group-override":u.modelGroup,class:`message`},null,8,[`message`,`messages`,`model-group-override`]))),128))]),e(`footer`,V,[e(`span`,H,n(u.$t(`chat.share.footerNote`)),1),r(y,{class:`footer-cta`,type:`primary`,round:``,onClick:u.goToApp},{default:l(()=>[t(n(u.$t(`chat.share.startYourOwn`)),1)]),_:1},8,[`onClick`])])]))])])}var W=x(T,[[`render`,U],[`__scopeId`,`data-v-36e1e990`]]);export{W as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,j as c,mt as l,nt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{t as m}from"./skeleton-Dj_a_iIP.js";import{t as h}from"./eye-B7qn04JQ.js";import{i as g,t as _}from"./Message-DlnFjCzr.js";import{Bi as v,zi as y}from"./constants-CX4j41GC.js";import{O as b,Vi as x,wr as S}from"./index-DKnFv8oI.js";import{t as C}from"./Logo-BCsapzVO.js";import{n as w}from"./VueMarkdown-CiiRjbWs.js";var T=p({name:`SharedConversation`,components:{UnlinkIcon:g,ViewIcon:h,Message:_,Logo:C,ElButton:x,ElSkeleton:m},setup(){u(w,!0)},data(){return{loading:!0,error:!1,conversation:void 0}},computed:{shareId(){return this.$route.params?.id?.toString()||``},messages(){return this.conversation?.messages||[]},title(){return this.conversation?.title||this.$t(`chat.share.untitled`)},modelGroup(){let e=this.conversation?.model_group;if(e){let t=v.find(t=>t.name===e);if(t)return t}let t=this.conversation?.model,n=y.find(e=>e.name===t);return v.find(e=>e.name===n?.modelGroup)},modelGroupName(){return this.modelGroup?.getDisplayName?.()||``}},async mounted(){this.setNoIndex(),await this.fetchShared()},beforeUnmount(){let e=document.querySelector(`meta[name="robots"]`);e&&e.setAttribute(`content`,`index, follow`)},methods:{async fetchShared(){if(this.loading=!0,this.error=!1,!this.shareId){this.error=!0,this.loading=!1;return}try{this.conversation=await S.getSharedConversation(this.shareId),typeof document<`u`&&this.conversation?.title&&(document.title=this.conversation.title)}catch(e){console.error(`getSharedConversation failed`,this.shareId,e),this.error=!0}finally{this.loading=!1}},goToApp(){this.$router.push(`/`)},setNoIndex(){if(typeof document>`u`)return;let e=document.querySelector(`meta[name="robots"]`);e||(e=document.createElement(`meta`),e.setAttribute(`name`,`robots`),document.head.appendChild(e)),e.setAttribute(`content`,`noindex, nofollow`)}}}),E={class:`shared-page`},D={class:`shared-header`},O={class:`brand`},k={class:`shared-body`},A={key:1,class:`unavailable`},j={class:`unavailable-title`},M={class:`unavailable-hint`},N={key:2,class:`conversation`},P={class:`conversation-head`},F={class:`conversation-title`},I={class:`conversation-meta`},L=[`src`],R={key:1,class:`meta-model`},z={class:`meta-badge`},B={class:`messages`},V={class:`shared-footer`},H={class:`footer-note`};function U(u,p,m,h,g,_){let v=s(`logo`),y=s(`el-button`),b=s(`el-skeleton`),x=s(`unlink-icon`),S=s(`view-icon`),C=s(`message`);return f(),a(`div`,E,[e(`header`,D,[e(`div`,O,[r(v,{onClick:u.goToApp},null,8,[`onClick`])]),r(y,{class:`cta`,type:`primary`,round:``,onClick:u.goToApp},{default:l(()=>[t(n(u.$t(`chat.share.startYourOwn`)),1)]),_:1},8,[`onClick`])]),e(`main`,k,[u.loading?(f(),c(b,{key:0,rows:6,animated:``,class:`skeleton`})):u.error?(f(),a(`div`,A,[r(x,{class:`unavailable-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`h1`,j,n(u.$t(`chat.share.unavailableTitle`)),1),e(`p`,M,n(u.$t(`chat.share.unavailableHint`)),1),r(y,{type:`primary`,round:``,onClick:u.goToApp},{default:l(()=>[t(n(u.$t(`chat.share.startYourOwn`)),1)]),_:1},8,[`onClick`])])):(f(),a(`div`,N,[e(`div`,P,[e(`h1`,F,n(u.title),1),e(`div`,I,[u.modelGroup?.icon?(f(),a(`img`,{key:0,src:u.modelGroup.icon,class:`meta-icon`,alt:`model`},null,8,L)):i(``,!0),u.modelGroupName?(f(),a(`span`,R,n(u.modelGroupName),1)):i(``,!0),e(`span`,z,[r(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),t(` `+n(u.$t(`chat.share.viewOnly`)),1)])])]),e(`div`,B,[(f(!0),a(o,null,d(u.messages,(e,t)=>(f(),c(C,{key:t,message:e,messages:u.messages,application:void 0,readonly:!0,"model-group-override":u.modelGroup,class:`message`},null,8,[`message`,`messages`,`model-group-override`]))),128))]),e(`footer`,V,[e(`span`,H,n(u.$t(`chat.share.footerNote`)),1),r(y,{class:`footer-cta`,type:`primary`,round:``,onClick:u.goToApp},{default:l(()=>[t(n(u.$t(`chat.share.startYourOwn`)),1)]),_:1},8,[`onClick`])])]))])])}var W=b(T,[[`render`,U],[`__scopeId`,`data-v-36e1e990`]]);export{W as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,S as c,T as l,at as u,b as d,ht as f,it as p,j as m,mt as h,qt as g,rt as _,tt as v,x as y,z as b}from"./vendor-chart-Dw-P17PN.js";import{t as x}from"./upload-Bh12CGQx.js";import{t as S}from"./tooltip-BPdAozKj.js";import{d as C,h as w,n as T,v as E}from"./models-p9iPUELt.js";import{t as D}from"./drawer-CKZxuyy2.js";import{n as O,r as k,t as A}from"./dropdown-DpNMkxRO.js";import{n as j,t as M}from"./skeleton-Dj_a_iIP.js";import{t as N}from"./arrow-up-KQxjqQmQ.js";import{t as P}from"./check-C3_2-V6X.js";import{t as F}from"./chevron-down-CHoFb-pv.js";import{t as I}from"./clock-DZS73nzp.js";import{t as L}from"./ellipsis-CILfOizt.js";import{a as R,i as ee,n as te,r as ne,t as re}from"./Message--rJ5FRr0.js";import{t as ie}from"./file-text-cKaWTcoM.js";import{t as ae}from"./folder-CapB5Yye.js";import{t as oe}from"./key-round-AltJ_oGX.js";import{t as se}from"./link-7MNWAqYH.js";import{t as ce}from"./mic-9FMbLwpP.js";import{t as z}from"./pencil-dd20SUzj.js";import{t as le}from"./plug-DF1Drmqf.js";import{t as B}from"./plus-cKUQQazx.js";import{t as ue}from"./square-uwdrImGE.js";import{t as V}from"./trash-2-DW1SgSXi.js";import{t as de}from"./wand-sparkles-C3ALfy6z.js";import{t as fe}from"./vendor-axios-Ck2ffRoh.js";import{Bi as pe,Hi as me,Li as he,Ri as ge,Sa as _e,Ui as ve,Vi as ye,Wi as be,ea as H,ga as xe,ia as Se,na as U,ta as W,ya as G,zi as K}from"./constants-nRb-ZD8Y.js";import{$t as Ce,A as q,B as we,Cr as Te,Ei as Ee,Fi as J,L as De,O as Y,Or as Oe,Ui as ke,V as Ae,Xt as je,Yt as Me,Zt as Ne,_i as Pe,bi as Fe,fi as Ie,gn as Le,jn as Re,nn as ze,pn as Be,qt as Ve,si as He,sn as Ue,tn as We,vi as X,xr as Z,yr as Q}from"./index-Ckt9JRr7.js";import{t as Ge}from"./FilePreview-Dqm4w0Zz.js";import{t as Ke}from"./ImagePreview-Dx93HYYQ.js";import{t as qe}from"./authorizeFlow-T33pIG_A.js";var Je=Fe(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ye=Fe(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]);function Xe(){return Oe(`SEND_SHORTCUT`)===`mod-enter`?`mod-enter`:`enter`}function Ze(e){if(e){e.push({path:`/console/skills`});return}window.location.href=new URL(`/console/skills`,window.location.origin).toString()}var Qe=b({name:`Composer`,components:{AddIcon:B,ConnectionIcon:le,FileTextIcon:ie,MagicIcon:de,MicrophoneIcon:ce,StopIcon:ue,UpIcon:N,FilePreview:Ge,ImagePreview:Ke,ElTooltip:S,ElUpload:x,ElButton:J,ElDropdown:A,ElDropdownMenu:k,ElDropdownItem:O},mixins:[ze,We,Ce],props:{answering:{type:Boolean,required:!1,default:!1},ready:{type:Boolean,required:!1,default:!0},references:{type:Array,required:!1,default:()=>[]},question:{type:String,required:!0}},emits:[`update:question`,`update:references`,`submit`,`stop`],data(){return{inputHeight:`35px`,questionValue:this.question||``,fileList:[],uploadUrl:He()+`/api/v1/files/`}},computed:{model(){return this.$store.state.chat.model},modelGroup(){return this.$store.state.chat.modelGroup},isVoiceCallSupported(){return this.modelGroup?.isVoiceCallSupported??!1},isFileSupported(){return this.model?.isFileSupported},isImageSupported(){return this.model?.isImageSupported},dropDisabled(){return!this.isFileSupported&&!this.isImageSupported||this.answering},headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},refs(){let e=[];for(let t of this.fileList){let n=t?.response?.file_url;if(!n)continue;let r=t.response,i=t?.name?{url:n,name:t.name}:{url:n};typeof r.file_id==`string`&&typeof r.sha256==`string`&&typeof r.mime==`string`&&typeof r.size==`number`&&Object.assign(i,{file_id:r.file_id,sha256:r.sha256,mime:r.mime,size:r.size}),e.push(i)}return e},uploading(){return this.fileList.some(e=>e.status===`ready`||e.status===`uploading`)},extensions(){if(this.isFileSupported===!1&&this.isImageSupported===!0)return`.png,.jpg,.jpeg,.gif,.bmp,.webp,.svg,.tiff,.ico,.heic`},pasteAccept(){return`.png,.jpg,.jpeg,.gif,.bmp,.webp,.svg,.tiff,.ico,.heic,image/*`}},watch:{refs(e){this.$emit(`update:references`,e)},questionValue(e){this.$emit(`update:question`,e.trim())},question(e){e!==this.questionValue&&(this.questionValue=e)},references(e){e.length===0&&this.fileList.length>0&&!this.uploading&&(this.fileList=[])},isFileSupported(e,t){t&&!e&&(this.fileList=[])}},methods:{isImageUrl:Le,onStartCall(){this.$router.push({name:De})},adjustTextareaHeight(){this.$nextTick(()=>{let e=this.$refs.textarea;e&&(e.style.height=`35px`,e.style.height=e.scrollHeight+`px`)})},onSubmit(){!this.question||this.uploading||!this.ready||this.$emit(`submit`)},onEnterKey(e){if(e.isComposing||e.keyCode===229||e.shiftKey)return;let t=e.metaKey||e.ctrlKey;(Xe()===`mod-enter`?t:!t&&!e.altKey)&&(e.preventDefault(),this.onSubmit())},onStop(){this.$emit(`stop`)},onProgress(e,t){console.debug(`File upload progress:`,t.name,e.loaded,e.total,t.percentage)},onBeforeUpload(e){return Ne(e.size)?!0:(E.error(this.$t(`chat.message.uploadReferencesTooLarge`,{size:je(e.size),max:je(Me)})),!1)},onExceed(){E.warning(this.$t(`chat.message.uploadReferencesExceed`))},onError(){E.error(this.$t(`chat.message.uploadReferencesError`))},onTriggerUpload(){!this.isFileSupported&&!this.isImageSupported||this.answering||this.$nextTick(()=>{let e=this.$refs.uploader?.$el;(e?.querySelector(`input.el-upload__input`)||e?.querySelector(`input[type="file"]`))?.click()})},onOpenSkills(){Ze(this.$router)},onOpenConnections(){Ve(void 0,this.$router)}}}),$e={class:`composer`},et={ref:`uploadTrigger`,class:`upload-trigger`,"aria-hidden":`true`},tt={key:0,class:`file-previews`},nt=[`disabled`,`placeholder`],rt={class:`tools`},it={class:`btn-plus-trigger`},at=[`disabled`,`aria-label`,`title`],ot=[`aria-label`,`title`];function st(r,p,b,x,S,C){let w=u(`el-upload`),T=u(`image-preview`),E=u(`file-preview`),D=u(`add-icon`),O=u(`el-tooltip`),k=u(`file-text-icon`),A=u(`el-dropdown-item`),j=u(`magic-icon`),M=u(`connection-icon`),N=u(`el-dropdown-menu`),P=u(`el-dropdown`),F=u(`microphone-icon`),I=u(`up-icon`),L=u(`el-button`),R=u(`stop-icon`);return v(),s(`div`,$e,[a(w,{ref:`uploader`,"file-list":r.fileList,"onUpdate:fileList":p[0]||=e=>r.fileList=e,class:`upload-hidden`,accept:r.extensions,disabled:!r.isFileSupported&&!r.isImageSupported||r.answering,name:`file`,limit:10,multiple:!0,action:r.uploadUrl,"show-file-list":!1,"before-upload":r.onBeforeUpload,"on-exceed":r.onExceed,"on-error":r.onError,"on-progress":r.onProgress,headers:r.headers},{default:h(()=>[e(`span`,et,null,512)]),_:1},8,[`file-list`,`accept`,`disabled`,`action`,`before-upload`,`on-exceed`,`on-error`,`on-progress`,`headers`]),r.fileList.length>0?(v(),s(`div`,tt,[(v(!0),s(l,null,_(r.fileList,e=>(v(),s(l,{key:e.uid},[r.isImageUrl(e.name)?(v(),m(T,{key:0,url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):(v(),m(E,{key:1,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`name`,`percentage`,`onRemove`]))],64))),128))])):o(``,!0),f(e(`textarea`,{ref:`textarea`,"onUpdate:modelValue":p[1]||=e=>r.questionValue=e,disabled:r.answering,class:`input`,placeholder:r.$t(`chat.message.newMessagePlaceholder`),style:g({height:r.inputHeight}),onKeydown:p[2]||=c((...e)=>r.onEnterKey&&r.onEnterKey(...e),[`enter`]),onInput:p[3]||=(...e)=>r.adjustTextareaHeight&&r.adjustTextareaHeight(...e)},null,44,nt),[[d,r.questionValue]]),e(`div`,rt,[a(P,{trigger:`click`,placement:`top-start`,"hide-on-click":!0,"popper-class":`composer-plus-popper`},{dropdown:h(()=>[a(N,null,{default:h(()=>[a(A,{disabled:!r.isFileSupported&&!r.isImageSupported||r.answering,onClick:r.onTriggerUpload},{default:h(()=>[a(k,{class:`menu-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(r.$t(`chat.composer.addFiles`)),1)]),_:1},8,[`disabled`,`onClick`]),a(A,{onClick:r.onOpenSkills},{default:h(()=>[a(j,{class:`menu-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(r.$t(`chat.composer.skills`)),1)]),_:1},8,[`onClick`]),a(A,{onClick:r.onOpenConnections},{default:h(()=>[a(M,{class:`menu-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(r.$t(`chat.composer.connections`)),1)]),_:1},8,[`onClick`])]),_:1})]),default:h(()=>[e(`span`,it,[a(O,{class:`box-item`,effect:`dark`,content:r.$t(`chat.composer.addAction`),placement:`top`},{default:h(()=>[e(`button`,{type:`button`,class:n({btn:!0,"btn-plus":!0,disabled:r.answering}),disabled:r.answering,"aria-label":r.$t(`chat.composer.addAction`),title:r.$t(`chat.composer.addAction`)},[a(D,{class:`icon icon-plus`,size:`1em`,"aria-hidden":`true`,focusable:`false`})],10,at)]),_:1},8,[`content`])])]),_:1}),r.isVoiceCallSupported?(v(),m(O,{key:0,class:`box-item`,effect:`dark`,content:r.$t(`realtime.callTooltip`),placement:`top`},{default:h(()=>[e(`span`,{class:n({btn:!0,"btn-voice":!0}),role:`button`,tabindex:`0`,"aria-label":r.$t(`realtime.callTooltip`),title:r.$t(`realtime.callTooltip`),onClick:p[4]||=(...e)=>r.onStartCall&&r.onStartCall(...e),onKeydown:[p[5]||=c(t((...e)=>r.onStartCall&&r.onStartCall(...e),[`prevent`]),[`enter`]),p[6]||=c(t((...e)=>r.onStartCall&&r.onStartCall(...e),[`prevent`]),[`space`])]},[a(F,{class:`icon icon-voice`,size:`1em`,"aria-hidden":`true`,focusable:`false`})],40,ot)]),_:1},8,[`content`])):o(``,!0)]),a(L,{disabled:r.answering||!r.questionValue||r.uploading||!r.ready,type:`primary`,"aria-label":r.$t(`common.button.send`),title:r.$t(`common.button.send`),class:n({btn:!0,"btn-send":!0}),onClick:r.onSubmit},{default:h(()=>[a(I,{class:`icon icon-send`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`disabled`,`aria-label`,`title`,`onClick`]),f(a(L,{disabled:!r.answering,type:`primary`,"aria-label":r.$t(`common.button.stop`),title:r.$t(`common.button.stop`),class:n({btn:!0,"btn-stop":!0}),onClick:r.onStop},{default:h(()=>[a(R,{class:`icon icon-stop`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`disabled`,`aria-label`,`title`,`onClick`]),[[y,r.answering]])])}var ct=Y(Qe,[[`render`,st],[`__scopeId`,`data-v-f2e60753`]]),lt=b({name:`ModelSelector`,components:{ConfirmIcon:P,ExpandDownIcon:F,ElDropdown:A,ElDropdownMenu:k,ElDropdownItem:O},emits:[`update:modelValue`,`select`,`model-group-changed`,`model-changed`],data(){return{options:[K,ye,ve,me,pe,be]}},computed:{model(){return console.log(`model`,this.$store.state.chat.model),this.$store.state.chat.model},modelGroup(){return this.$route.meta?.modelGroup||K}},watch:{modelGroup(e){console.debug(`modelGroup from route changed`,e),this.$store.dispatch(`chat/setModelGroup`,e),this.$store.dispatch(`chat/setModel`,U(e))}},mounted(){let e=this.modelGroup;this.$store.state.chat?.modelGroup?.name!==e.name&&this.$store.dispatch(`chat/setModelGroup`,e);let t=this.$store.state.chat?.model;e.models.some(e=>e.name===t?.name)||this.$store.dispatch(`chat/setModel`,U(e))},methods:{onModelGroupChange(e){this.$store.dispatch(`chat/setModelGroup`,e),this.$emit(`model-group-changed`,e)},onModelChange(e){this.$store.dispatch(`chat/setModel`,e),this.$emit(`model-changed`,e)}}}),ut={class:`selector`},dt={class:`trigger`},ft=[`src`],pt={class:`trigger-name`},mt={class:`item`},ht=[`src`],gt={class:`item-info`},_t={key:0,class:`item-name`},vt={key:0,class:`item-free-tag`},yt={key:1,class:`item-desc`};function bt(t,c,d,f,p,g){let y=u(`expand-down-icon`),b=u(`confirm-icon`),x=u(`el-dropdown-item`),S=u(`el-dropdown-menu`),C=u(`el-dropdown`);return v(),s(`div`,ut,[a(C,{trigger:`click`,"popper-class":`model-selector-popper`},{dropdown:h(()=>[t.modelGroup&&t.modelGroup?.models?(v(),m(S,{key:0},{default:h(()=>[(v(!0),s(l,null,_(t.modelGroup?.models?.filter(e=>e.enabled),(a,c)=>(v(),m(x,{key:c,class:n({active:t.model?.name===a?.name}),onClick:e=>t.onModelChange(a)},{default:h(()=>[e(`div`,mt,[a?.icon?(v(),s(`img`,{key:0,src:a.icon,class:`item-icon`},null,8,ht)):o(``,!0),e(`div`,gt,[a?.getDisplayName?(v(),s(`p`,_t,[r(i(a?.getDisplayName())+` `,1),a?.isFree?(v(),s(`span`,vt,i(t.$t(`chat.model.freeTag`)),1)):o(``,!0)])):o(``,!0),a?.getDescription?(v(),s(`p`,yt,i(a?.getDescription()),1)):o(``,!0)]),t.model?.name===a?.name?(v(),m(b,{key:1,class:`item-check`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):o(``,!0)])]),_:2},1032,[`class`,`onClick`]))),128))]),_:1})):o(``,!0)]),default:h(()=>[e(`div`,dt,[t.model?.icon?(v(),s(`img`,{key:0,src:t.model.icon,class:`trigger-icon`},null,8,ft)):o(``,!0),e(`span`,pt,i(t.model?.getDisplayName?.()??t.model?.name??``),1),a(y,{class:`trigger-arrow`,size:`1em`,"aria-hidden":`true`,focusable:`false`})])]),_:1})])}var xt=Y(lt,[[`render`,bt],[`__scopeId`,`data-v-54ccc62e`]]),St={chatgpt:`openai`,claude:`anthropic`,gemini:`google`,grok:`xai`,deepseek:`deepseek`,kimi:`moonshot`,glm:`zhipu`},Ct=b({name:`BYOKBadge`,components:{KeyIcon:oe,ElTooltip:S},data(){return{credentials:[],loaded:!1}},computed:{token(){return this.$store?.state?.chat?.credential?.token},modelGroup(){return this.$store?.state?.chat?.modelGroup?.name},expectedProvider(){let e=this.modelGroup;if(e)return St[e]},activeCredential(){let e=this.expectedProvider;if(e)return this.credentials.find(t=>t.provider===e&&t.is_active)},providerLabel(){return this.activeCredential?.provider_label},show(){return!!this.activeCredential}},watch:{token:{immediate:!0,handler(e){e&&!this.loaded&&this.fetch()}}},methods:{async fetch(){if(this.token)try{let{data:e}=await Re.list({token:this.token});this.credentials=e?.items??[],this.loaded=!0}catch(e){console.debug(`BYOK badge fetch skipped`,e),this.credentials=[]}},onClickManage(){window.dispatchEvent(new CustomEvent(`open-user-settings`,{detail:{tab:`apiKey`}}))}}}),wt={class:`badge-text`};function Tt(t,n,r,s,c,l){let d=u(`key-icon`),f=u(`el-tooltip`);return t.show&&t.providerLabel?(v(),m(f,{key:0,content:`${t.$t(`byok.badge.tooltip`,{provider:t.providerLabel})} — ${t.$t(`byok.badge.manage`)}`,placement:`bottom`},{default:h(()=>[e(`button`,{type:`button`,class:`byok-badge`,onClick:n[0]||=(...e)=>t.onClickManage&&t.onClickManage(...e)},[a(d,{class:`badge-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,wt,i(t.$t(`byok.badge.active`,{provider:t.providerLabel})),1)])]),_:1},8,[`content`])):o(``,!0)}var Et=Y(Ct,[[`render`,Tt],[`__scopeId`,`data-v-edd17f30`]]),Dt=b({name:`ShareConversationDialog`,components:{LinkIcon:se,UnlinkIcon:ee,ElDialog:Ee,ElInput:ke,ElButton:J},props:{modelValue:{type:Boolean,default:!1},conversationId:{type:String,default:void 0},shareId:{type:String,default:void 0}},emits:[`update:modelValue`,`update:shareId`],data(){return{localShareId:this.shareId,creating:!1,disabling:!1,copied:!1}},computed:{visible:{get(){return this.modelValue},set(e){this.$emit(`update:modelValue`,e)}},token(){return this.$store.state.chat?.credential?.token},shareUrl(){return this.localShareId?`${typeof window<`u`?window.location.origin:``}/share/${this.localShareId}`:``}},watch:{shareId(e){this.localShareId=e},modelValue(e){e&&(this.localShareId=this.shareId,this.copied=!1)}},methods:{selectAll(e){e.target?.select?.()},async onCreate(){if(!this.token){E.error(this.$t(`chat.share.needLogin`));return}if(!this.conversationId){E.error(this.$t(`chat.share.noConversation`));return}this.creating=!0;try{let{data:e}=await Q.shareConversation(this.conversationId,{token:this.token}),t=e?.share_id;if(!t)throw Error(`missing share_id`);this.localShareId=t,this.$emit(`update:shareId`,t)}catch(e){console.error(`shareConversation failed`,e),E.error(this.$t(`chat.share.createFailed`))}finally{this.creating=!1}},onCopy(){this.shareUrl&&(Ue(this.shareUrl,{debug:!1}),this.copied=!0,E.success(this.$t(`chat.share.copied`)),setTimeout(()=>{this.copied=!1},2500))},async onDisable(){if(!this.token||!this.conversationId){this.localShareId=void 0,this.$emit(`update:shareId`,void 0);return}this.disabling=!0;try{await Q.unshareConversation(this.conversationId,{token:this.token}),this.localShareId=void 0,this.$emit(`update:shareId`,void 0),E.success(this.$t(`chat.share.disabled`))}catch(e){console.error(`unshareConversation failed`,e),E.error(this.$t(`chat.share.disableFailed`))}finally{this.disabling=!1}}}}),Ot={class:`share-desc`},kt={key:0,class:`share-linked`},At={class:`share-url-row`},jt={key:1,class:`share-create`};function Mt(t,n,o,c,l,d){let f=u(`el-input`),p=u(`el-button`),g=u(`unlink-icon`),_=u(`link-icon`),y=u(`el-dialog`);return v(),m(y,{modelValue:t.visible,"onUpdate:modelValue":n[2]||=e=>t.visible=e,width:`460px`,title:t.$t(`chat.share.dialogTitle`),"close-on-click-modal":!0},{footer:h(()=>[a(p,{onClick:n[1]||=e=>t.visible=!1},{default:h(()=>[r(i(t.$t(`common.button.close`)),1)]),_:1})]),default:h(()=>[e(`p`,Ot,i(t.$t(`chat.share.description`)),1),t.localShareId?(v(),s(`div`,kt,[e(`div`,At,[a(f,{modelValue:t.shareUrl,"onUpdate:modelValue":n[0]||=e=>t.shareUrl=e,readonly:``,class:`share-url`,onFocus:t.selectAll},null,8,[`modelValue`,`onFocus`]),a(p,{type:`primary`,onClick:t.onCopy},{default:h(()=>[r(i(t.copied?t.$t(`chat.share.copied`):t.$t(`chat.share.copy`)),1)]),_:1},8,[`onClick`])]),a(p,{link:``,type:`danger`,class:`share-disable`,loading:t.disabling,onClick:t.onDisable},{default:h(()=>[a(g,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.share.disable`)),1)]),_:1},8,[`loading`,`onClick`])])):(v(),s(`div`,jt,[a(p,{type:`primary`,round:``,loading:t.creating,onClick:t.onCreate},{default:h(()=>[a(_,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.share.createLink`)),1)]),_:1},8,[`loading`,`onClick`])]))]),_:1},8,[`modelValue`,`title`])}var Nt=b({name:`ConversationActions`,components:{ElButton:J,ElDialog:Ee,ElInput:ke,ShareConversationDialog:Y(Dt,[[`render`,Mt],[`__scopeId`,`data-v-ab67a2e6`]])},props:{activeConversationId:{type:String,default:void 0}},emits:[`change-conversation`],data(){return{renameDialogVisible:!1,deleteDialogVisible:!1,shareDialogVisible:!1,actingConversation:void 0,renameDraft:``,renameSubmitting:!1,deleteSubmitting:!1}},computed:{token(){return this.$store.state.chat?.credential?.token}},methods:{run(e,t){e===`rename`?this.openRenameDialog(t):e===`delete`?this.openDeleteDialog(t):e===`share`&&this.openShareDialog(t)},openShareDialog(e){this.actingConversation=e,this.shareDialogVisible=!0},onShareIdUpdated(e){let t=this.actingConversation;t?.id&&(t.share_id=e,this.$store.state.chat?.conversations?.some(e=>e.id===t.id)&&this.$store.dispatch(`chat/setConversation`,{...t,share_id:e}))},openRenameDialog(e){this.actingConversation=e,this.renameDraft=(e?.title||``).trim(),this.renameDialogVisible=!0},openDeleteDialog(e){this.actingConversation=e,this.deleteDialogVisible=!0},async onConfirmRename(){let e=this.token,t=this.actingConversation?.id,n=(this.renameDraft||``).trim();if(!e){E.error(this.$t(`chat.actions.tokenMissing`));return}if(!t){E.error(this.$t(`chat.actions.conversationMissing`));return}if(!n){E.warning(this.$t(`chat.actions.renameEmpty`));return}this.renameSubmitting=!0;try{await Q.updateConversation({id:t,title:n},{token:e}),await this.$store.dispatch(`chat/getConversations`),this.renameDialogVisible=!1,E.success(this.$t(`chat.actions.renameSuccess`))}catch(e){console.error(e),E.error(this.$t(`chat.actions.renameFailed`))}finally{this.renameSubmitting=!1}},async onConfirmDelete(){let e=this.token,t=this.actingConversation?.id;if(!e){E.error(this.$t(`chat.actions.tokenMissing`));return}if(!t){E.error(this.$t(`chat.actions.conversationMissing`));return}this.deleteSubmitting=!0;try{await Q.deleteConversation(t,{token:e}),await this.$store.dispatch(`chat/getConversations`),t===this.activeConversationId&&this.$emit(`change-conversation`,void 0),this.deleteDialogVisible=!1,E.success(this.$t(`chat.actions.deleteSuccess`))}catch(e){console.error(e),E.error(this.$t(`chat.actions.deleteFailed`))}finally{this.deleteSubmitting=!1}}}}),Pt={class:`conversation-actions`},Ft={class:`delete-tip`};function It(t,n,o,l,d,f){let p=u(`el-input`),m=u(`el-button`),g=u(`el-dialog`),_=u(`share-conversation-dialog`);return v(),s(`div`,Pt,[a(g,{modelValue:t.renameDialogVisible,"onUpdate:modelValue":n[2]||=e=>t.renameDialogVisible=e,width:`420px`,title:t.$t(`chat.actions.renameTitle`),"close-on-click-modal":!1},{footer:h(()=>[a(m,{onClick:n[1]||=e=>t.renameDialogVisible=!1},{default:h(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1}),a(m,{type:`primary`,loading:t.renameSubmitting,onClick:t.onConfirmRename},{default:h(()=>[r(i(t.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`,`onClick`])]),default:h(()=>[a(p,{modelValue:t.renameDraft,"onUpdate:modelValue":n[0]||=e=>t.renameDraft=e,autofocus:``,onKeydown:c(t.onConfirmRename,[`enter`])},null,8,[`modelValue`,`onKeydown`])]),_:1},8,[`modelValue`,`title`]),a(g,{modelValue:t.deleteDialogVisible,"onUpdate:modelValue":n[4]||=e=>t.deleteDialogVisible=e,width:`420px`,title:t.$t(`chat.message.confirmDelete`),"close-on-click-modal":!1},{footer:h(()=>[a(m,{onClick:n[3]||=e=>t.deleteDialogVisible=!1},{default:h(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1}),a(m,{type:`danger`,loading:t.deleteSubmitting,onClick:t.onConfirmDelete},{default:h(()=>[r(i(t.$t(`common.button.delete`)),1)]),_:1},8,[`loading`,`onClick`])]),default:h(()=>[e(`div`,Ft,i(t.$t(`chat.actions.deleteConfirm`)),1)]),_:1},8,[`modelValue`,`title`]),a(_,{modelValue:t.shareDialogVisible,"onUpdate:modelValue":n[5]||=e=>t.shareDialogVisible=e,"conversation-id":t.actingConversation?.id,"share-id":t.actingConversation?.share_id,"onUpdate:shareId":t.onShareIdUpdated},null,8,[`modelValue`,`conversation-id`,`share-id`,`onUpdate:shareId`])])}var Lt=Y(Nt,[[`render`,It],[`__scopeId`,`data-v-8ad15b0d`]]),Rt={},zt={class:`disclaimer`};function Bt(e,t){return v(),s(`p`,zt,i(e.$t(`chat.message.howToUse`)),1)}var Vt=Y(Rt,[[`render`,Bt],[`__scopeId`,`data-v-d2d980ab`]]),$=5,Ht=b({name:`ConnectorStrip`,components:{ElTooltip:S},data(){return{enabledConnectors:[],loadSeq:0}},computed:{visibleConnectors(){return this.enabledConnectors.length<=$?this.enabledConnectors:this.enabledConnectors.slice(0,$-1)},overflowCount(){return this.enabledConnectors.length<=$?0:this.enabledConnectors.length-($-1)},userId(){return this.$store.getters.user?.id??null}},watch:{userId(){this.enabledConnectors=[],this.loadConnectors(!0)}},mounted(){this.loadConnectors(),document.addEventListener(`visibilitychange`,this.onVisibilityChange)},beforeUnmount(){document.removeEventListener(`visibilitychange`,this.onVisibilityChange)},methods:{async loadConnectors(e=!1){let t=this.userId,n=++this.loadSeq,r=await te(t,e);n===this.loadSeq&&this.userId===t&&(this.enabledConnectors=r)},onVisibilityChange(){document.visibilityState===`visible`&&this.loadConnectors(!0)},onOpen(){Ve(void 0,this.$router)}}}),Ut={key:0,class:`connector-strip`},Wt=[`src`,`alt`];function Gt(t,n,r,a,c,d){let f=u(`el-tooltip`);return t.visibleConnectors.length>0?(v(),s(`div`,Ut,[(v(!0),s(l,null,_(t.visibleConnectors,r=>(v(),m(f,{key:r.id,effect:`dark`,content:r.name,placement:`top`},{default:h(()=>[e(`span`,{class:`connector-chip`,role:`button`,onClick:n[0]||=(...e)=>t.onOpen&&t.onOpen(...e)},[e(`img`,{class:`connector-icon`,src:r.icon_url,alt:r.name,loading:`lazy`},null,8,Wt)])]),_:2},1032,[`content`]))),128)),t.overflowCount>0?(v(),m(f,{key:0,effect:`dark`,content:t.$t(`chat.composer.connections`),placement:`top`},{default:h(()=>[e(`span`,{class:`connector-chip connector-more`,role:`button`,onClick:n[1]||=(...e)=>t.onOpen&&t.onOpen(...e)},` +`+i(t.overflowCount),1)]),_:1},8,[`content`])):o(``,!0)])):o(``,!0)}var Kt=Y(Ht,[[`render`,Gt],[`__scopeId`,`data-v-8841aa76`]]),qt=2,Jt=b({name:`WorkingDirectoryBar`,components:{ElButton:J,ElTooltip:S,FolderIcon:ae},data(){return{picking:!1}},computed:{supported(){return Ie()&&!!q()},workingDirectory(){return this.$store.state.chat?.workingDirectory??``},displayPath(){let e=this.workingDirectory.split(/[/\\]/).filter(Boolean);return e.length<=qt?this.workingDirectory:`…/`+e.slice(-2).join(`/`)}},async mounted(){if(this.supported)try{let e=(await q()?.getConfig())?.workingDir??``;e!==this.workingDirectory&&this.$store.commit(`chat/setWorkingDirectory`,e)}catch{}},methods:{async onPick(){if(!this.picking){this.picking=!0;try{let e=await q()?.pickFolder();if(!e)return;let t=await q()?.getConfig();await q()?.saveConfig({roots:t?.roots??[],mcp:t?.mcp??[],computerUse:t?.computerUse,workingDir:e}),this.$store.commit(`chat/setWorkingDirectory`,e)}finally{this.picking=!1}}}}}),Yt={class:`working-dir-tip`},Xt={class:`working-dir-tip__hint`},Zt={class:`working-dir-path`};function Qt(t,l,d,f,p,g){let _=u(`folder-icon`),y=u(`el-button`),b=u(`el-tooltip`);return t.supported?(v(),s(`div`,{key:0,class:n([`working-dir`,{"working-dir--unset":!t.workingDirectory}])},[t.workingDirectory?(v(),m(b,{key:1,effect:`dark`,placement:`top`},{content:h(()=>[e(`div`,Yt,[e(`div`,null,i(t.workingDirectory),1),e(`div`,Xt,i(t.$t(`chat.workingDir.switchHint`)),1)])]),default:h(()=>[e(`span`,{class:`working-dir-link`,role:`button`,tabindex:`0`,onClick:l[0]||=(...e)=>t.onPick&&t.onPick(...e),onKeydown:l[1]||=c((...e)=>t.onPick&&t.onPick(...e),[`enter`])},[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,Zt,i(t.displayPath),1)],32)]),_:1})):(v(),m(y,{key:0,size:`small`,type:`primary`,loading:t.picking,onClick:t.onPick},{default:h(()=>[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.workingDir.choose`)),1)]),_:1},8,[`loading`,`onClick`]))],2)):o(``,!0)}var $t=Y(Jt,[[`render`,Qt],[`__scopeId`,`data-v-5ce13550`]]),en=b({name:`SidePanel`,components:{AddIcon:B,DeleteIcon:V,EditIcon:z,FileArchiveIcon:R,MoreIcon:L,ShareIcon:Ye,TimeIcon:I,ElDropdown:A,ElDropdownItem:O,ElDropdownMenu:k,ElSkeleton:M,ConversationActions:Lt},props:{},emits:[`change-conversation`],data(){return{}},computed:{conversationId(){return console.debug(`conversationId in side`,this.$route.params?.id),this.$route.params?.id?.toString()},conversations(){return this.$store.state.chat.conversations},conversationGroups(){let e=new Date;e.setHours(0,0,0,0);let t=new Date(e);t.setDate(t.getDate()-1);let n=new Date(e);n.setDate(n.getDate()-e.getDay());let r=new Date(n);r.setDate(r.getDate()-7);let i=this.conversations?.reduce((r,i)=>{let a=new Date(i.updated_at*1e3);return a>=e?r.today.push(i):a>=t?r.yesterday.push(i):a>=n?r.thisWeek.push(i):r.earlier.push(i),r},{today:[],yesterday:[],thisWeek:[],earlier:[]});return{...i?.today?.length>0?{today:i?.today?.sort((e,t)=>t.updated_at-e.updated_at)}:{},...i?.yesterday?.length>0?{yesterday:i?.yesterday?.sort((e,t)=>t.updated_at-e.updated_at)}:{},...i?.thisWeek?.length>0?{thisWeek:i?.thisWeek?.sort((e,t)=>t.updated_at-e.updated_at)}:{},...i?.earlier?.length>0?{earlier:i?.earlier?.sort((e,t)=>t.updated_at-e.updated_at)}:{}}},application(){return this.$store.state.chat.application},loading(){return this.$store.state.chat.status.getConversations===w.Request}},methods:{async onNewConversation(){console.debug(`onNewConversation from side panel`),this.$emit(`change-conversation`,void 0)},onScheduledTasks(){this.$router.push({name:Ae})},onArtifacts(){this.$router.push({name:we})},onClickConversation(e){console.debug(`onClickConversation in side panel`,e),this.$emit(`change-conversation`,e)},getConversationTitle(e){return e?.title||e?.last_message_preview||``},onConversationCommand(e,t){this.$refs.actions?.run(e,t)}}}),tn={class:`panel`},nn={key:1,class:`conversations`},rn={class:`icons`},an={class:`title`},on={class:`icons`},sn={class:`title`},cn={class:`icons`},ln={class:`title`},un={class:`key`},dn=[`onClick`],fn={class:`title`},pn={class:`operations`},mn=[`aria-label`,`title`];function hn(o,d,f,p,g,y){let b=u(`el-skeleton`),x=u(`add-icon`),S=u(`time-icon`),C=u(`file-archive-icon`),w=u(`more-icon`),T=u(`edit-icon`),E=u(`el-dropdown-item`),D=u(`share-icon`),O=u(`delete-icon`),k=u(`el-dropdown-menu`),A=u(`el-dropdown`),j=u(`conversation-actions`);return v(),s(`div`,tn,[o.loading&&o.conversationGroups===void 0?(v(),m(b,{key:0})):(v(),s(`div`,nn,[e(`div`,{class:`conversation`,onClick:d[0]||=(...e)=>o.onNewConversation&&o.onNewConversation(...e)},[e(`div`,rn,[a(x,{class:`icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,an,i(o.$t(`chat.message.startNewChat`)),1)]),e(`div`,{class:`conversation`,onClick:d[1]||=(...e)=>o.onScheduledTasks&&o.onScheduledTasks(...e)},[e(`div`,on,[a(S,{class:`icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,sn,i(o.$t(`chat.scheduledTasks.navTitle`)),1)]),e(`div`,{class:`conversation`,onClick:d[2]||=(...e)=>o.onArtifacts&&o.onArtifacts(...e)},[e(`div`,cn,[a(C,{class:`icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,ln,i(o.$t(`chat.artifacts.navTitle`)),1)]),(v(!0),s(l,null,_(o.conversationGroups,(u,f)=>(v(),s(`div`,{key:f,class:`group`},[e(`div`,un,i(o.$t(`chat.group.${f}`)),1),(v(!0),s(l,null,_(u,(l,u)=>(v(),s(`div`,{key:u,class:n({conversation:!0,active:l.id===o.conversationId}),onClick:e=>o.onClickConversation(l.id)},[e(`div`,fn,i(o.getConversationTitle(l)),1),e(`div`,pn,[a(A,{trigger:`click`,placement:`bottom-end`,teleported:!0,onCommand:e=>o.onConversationCommand(e,l)},{dropdown:h(()=>[a(k,null,{default:h(()=>[a(E,{command:`rename`,onClick:d[6]||=t(()=>{},[`stop`])},{default:h(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(o.$t(`chat.actions.rename`)),1)]),_:1}),a(E,{command:`share`,onClick:d[7]||=t(()=>{},[`stop`])},{default:h(()=>[a(D,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(o.$t(`chat.share.menu`)),1)]),_:1}),a(E,{command:`delete`,onClick:d[8]||=t(()=>{},[`stop`])},{default:h(()=>[a(O,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(o.$t(`common.button.delete`)),1)]),_:1})]),_:1})]),default:h(()=>[e(`span`,{class:`more`,role:`button`,tabindex:`0`,"aria-label":o.$t(`common.button.more`),title:o.$t(`common.button.more`),onClick:d[3]||=t(()=>{},[`stop`]),onKeydown:[d[4]||=c(t(()=>{},[`stop`]),[`enter`]),d[5]||=c(t(()=>{},[`prevent`,`stop`]),[`space`])]},[a(w,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],40,mn)]),_:1},8,[`onCommand`])])],10,dn))),128))]))),128))])),a(j,{ref:`actions`,"active-conversation-id":o.conversationId,onChangeConversation:d[9]||=e=>o.$emit(`change-conversation`,e)},null,8,[`active-conversation-id`])])}var gn=b({name:`LayoutChat`,components:{MenuIcon:Je,SidePanel:Y(en,[[`render`,hn],[`__scopeId`,`data-v-a2118dd8`]]),ElDrawer:D,ElButton:J},emits:[`change-conversation`],data(){return{drawer:!1}},methods:{onChangeConversation(e){console.debug(`onChangeConversation in layout`,e),this.$emit(`change-conversation`,e)}}}),_n={class:`main`},vn={class:`side`},yn={class:`chat`};function bn(t,n,r,i,o,c){let l=u(`side-panel`),d=u(`menu-icon`),f=u(`el-button`),m=u(`el-drawer`);return v(),s(`div`,_n,[e(`div`,vn,[p(t.$slots,`side`,{},()=>[a(l,{onChangeConversation:t.onChangeConversation},null,8,[`onChangeConversation`])],!0)]),e(`div`,yn,[p(t.$slots,`chat`,{},void 0,!0)]),a(f,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:h(()=>[a(d,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),a(m,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`290px`},{default:h(()=>[a(l,{onChangeConversation:t.onChangeConversation},null,8,[`onChangeConversation`])]),_:1},8,[`modelValue`])])}var xn=Y(gn,[[`render`,bn],[`__scopeId`,`data-v-6d114d1e`]]);function Sn(e){return typeof e==`string`&&e.trim().length>0?e:Array.isArray(e)&&typeof e[0]==`string`&&e[0].trim().length>0?e[0]:null}function Cn(e){let t=Sn(e.consent),n=Sn(e.connector);return!t||!n?null:{consentRequestId:t,connector:n}}function wn(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.role===`assistant`&&Array.isArray(r.content)){for(let e=r.content.length-1;e>=0;e--){let n=r.content[e];if(n.type!==`tool_use`||n.tool_name!==`request_user_consent`||n.status!==`awaiting_input`)continue;let i=n.pending_consent_request;if(!(!i||i.consent_request_id!==t)&&n.tool_id)return{toolUseId:n.tool_id,payload:i}}break}}return null}function Tn(e,t){return ne(e,[t],[])}function En(e,t){try{let n=new URL(e),r=n.searchParams.get(`return_to`);if(!r||!t)return e;let i=new URL(r),a=i.pathname.match(/^\/chat\/c\/([^/]+)/);if(!a)return e;let o=a[1],s=new URL(`${i.origin}${t}/conversations/${o}`);return i.searchParams.forEach((e,t)=>s.searchParams.set(t,e)),n.searchParams.set(`return_to`,s.toString()),n.toString()}catch{return e}}function Dn(e){return Array.isArray(e?.messages)&&e.messages.length>0}var On=b({name:`ChatConversation`,components:{DeleteIcon:V,EditIcon:z,MoreIcon:L,ShareIcon:Ye,Composer:ct,Disclaimer:Vt,ConnectorStrip:Kt,WorkingDirectoryBar:$t,ModelSelector:xt,"byok-badge":Et,ConversationActions:Lt,Message:re,Layout:xn,ElDropdown:A,ElDropdownItem:O,ElDropdownMenu:k,ElSkeleton:M,ElSkeletonItem:j},data(){return{drawer:!1,question:``,references:[],localTools:[],localMcpDeferSupported:!1,localMcpProbed:!1,pendingClientTools:[],clientToolRunId:0,upload:!1,answering:!1,canceler:void 0,restoringConversationId:void 0,skipNextRestoreId:void 0,messages:[],pendingConsentReturn:null}},computed:{modelGroup(){return this.$store.state.chat.modelGroup},model(){return this.$store.state.chat.model},conversationId(){return this.$route.params.id?.toString()},conversation(){return this.$store.state.chat.conversations?.find(e=>e.id===this.conversationId)},restoringConversation(){return!!this.conversationId&&this.restoringConversationId===this.conversationId},service(){return this.$store.state.chat.service},application(){return this.$store.state.chat.application},applications(){return this.$store.state.chat.applications},credential(){return this.$store.state.chat?.credential},memoryEnabled(){return this.$store.state.chat?.memoryEnabled!==!1},needApply(){return this.$store.state.chat.status.getApplications===w.Success&&!this.application},conversations(){return this.$store.state.chat.conversations},initializing(){return this.$store.state.chat.status.getApplications===w.Request},needsWorkingDirectory(){return Ie()&&!!q()&&!this.$store.state.chat?.workingDirectory},ready(){return this.restoringConversation?!1:this.$store.getters.authenticated?this.needsWorkingDirectory?!1:!this.initializing&&!!this.credential?.token&&!!this.application:!0}},watch:{question(e){this.$store.commit(`chat/setPendingDraft`,e||``)},async modelGroup(e){console.debug(`modelGroup changed`,e),this.$store.commit(`chat/setConversations`,[]),await this.$store.dispatch(`chat/getConversations`)},"credential.token":{immediate:!0,async handler(e){e&&(this.modelGroup?.name&&await this.$store.dispatch(`chat/getConversations`),await this.onRestoreCurrentConversation())}},async conversationId(e){if(console.debug(`conversationId changed`,e),!e){this.resetConversation();return}await this.onRestoreCurrentConversation()},messages:{handler(){this.pendingConsentReturn&&this.onConsumePendingConsentReturn()},deep:!1}},async mounted(){this.onCaptureConsentReturnFromUrl(),await this.onGetService(),await this.onGetApplication(),this.onConsumePendingDraft(),this.onApplyQueryFromUrl(),X()&&(this.localTools=await q()?.listTools()??[],this.onProbeWorkerFeatures())},methods:{async onProbeWorkerFeatures(){if(!(this.localMcpProbed||this.localMcpDeferSupported)&&this.localTools.some(e=>e.source===`mcp`)){this.localMcpProbed=!0;try{let e=await fetch(`${Se}/aichat2/health`);if(!e.ok)return;let t=await e.json();this.localMcpDeferSupported=Array.isArray(t?.features)&&t.features.includes(`local_mcp_servers`)}catch{}}},resetConversation(){this.restoringConversationId=void 0,this.messages=[],this.question=``,this.references=[],this.pendingClientTools=[]},onConversationCommand(e){let t=this.conversation??{id:this.conversationId};t.id&&this.$refs.actions?.run(e,t)},async onRestoreCurrentConversation(){let e=this.conversationId;if(!(!e||!this.credential?.token)){if(this.skipNextRestoreId===e){this.skipNextRestoreId=void 0;return}await this.onRestoreConversation(e)}},onConsumePendingDraft(){if(this.conversationId||this.question&&this.question.trim().length>0)return;let e=this.$store.state.chat?.pendingDraft;e&&(this.question=e)},onApplyQueryFromUrl(){let e=this.$route.query?.query,t=Array.isArray(e)?e[0]:e;if(!t||typeof t!=`string`||this.conversationId)return;if(this.question&&this.question.trim().length>0){let e=this.$store.state.chat?.pendingDraft;if(!(e!=null&&this.question===e))return}this.question=t;let n=new Set([`query`,`source`,`suggestion_id`,`connector`]),r={};for(let[e,t]of Object.entries(this.$route.query||{}))n.has(e)||t!=null&&(r[e]=t);this.$router.replace({path:this.$route.path,query:r})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`chat/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`chat/getApplications`),console.debug(`end onGetApplication`)},async onDraft(e){this.question=e,this.onSubmit()},async onStop(){this.pendingClientTools=[],this.clientToolRunId++,this.canceler&&(this.canceler.abort(),this.answering=!1)},async onStopBrowserSession(e){await this.onStop()},onBrowserRecovery(e){if(e===`open-consent-card`){document.querySelector(`.connector-consent-card`)?.scrollIntoView({behavior:`smooth`,block:`center`});return}this.$router.push({name:`settings-index`,query:{browserRecovery:e}})},async onRestart(e){let t=this.messages.findIndex(t=>t===e),n=this.messages[t-1],r=[];if(t!==-1){if(r=this.messages.slice(0,t-1),this.messages=this.messages.slice(0,t),this.references=[],typeof n.content==`string`)this.question=n.content;else if(Array.isArray(n.content))for(let e of n.content)if(e.type===`image_url`||e.type===`file_url`){let t=e.type===`image_url`?e.image_url:e.file_url,n=typeof t==`string`?t:t?.url;if(n){let t=e.name?{url:n,name:e.name}:{url:n};e.file_id&&e.sha256&&e.mime&&typeof e.size==`number`&&Object.assign(t,{file_id:e.file_id,sha256:e.sha256,mime:e.mime,size:e.size}),this.references.push(t)}}else e.type===`text`&&e.text&&(this.question=e.text)}console.debug(`onRestart!`,this.question,JSON.stringify(this.references));let i=this.credential?.token,a=this.question.trim();if(!i||!a){console.error(`no token or endpoint or question`),this.messages.push({error:{code:G},role:H,state:C.FAILED});return}let o=this.conversationId;Q.updateConversation({id:this.conversationId,messages:r},{token:i}).then(async()=>{await this.$store.dispatch(`chat/setConversation`,{id:o,messages:this.messages}),console.debug(`finished update conversation`,this.messages),console.debug(`onRestart`,this.question),await this.onRequest()}).catch(e=>{this.handleRequestError(e)})},async onEdit(e,t){let n=this.messages.findIndex(t=>t===e);n!==-1&&(this.messages=this.messages.slice(0,n)),this.question=t;let r=this.credential?.token;if(!r){console.error(`no token or endpoint or question`),this.messages.push({error:{code:G},role:H,state:C.FAILED});return}let i=this.conversationId;Q.updateConversation({id:this.conversationId,messages:this.messages},{token:r}).then(async()=>{await this.$store.dispatch(`chat/setConversation`,{id:i,messages:this.messages}),console.debug(`finished update conversation`,this.messages),this.messages.push({content:this.question,role:W}),console.debug(`onEdit`,this.question),await this.onRequest()}).catch(e=>{this.handleRequestError(e)})},conversationsPath(e){let t=this.$route.matched[0]?.path??``;return e?`${t}/conversations/${e}`:`${t}/conversations`},async onNewConversation(){this.conversationId?await this.$router.push(this.conversationsPath()):this.resetConversation()},async onRestoreConversation(e){console.debug(`onRestoreConversation id`,e);let t=this.conversations?.find(t=>t.id===e),n=!Dn(t);n&&(this.messages=[],this.restoringConversationId=e);try{if(n){let n=await this.$store.dispatch(`chat/getConversation`,e);n&&(t=n)}if(this.conversationId!==e)return;let r=t?.model,i=he.find(e=>e.name===r),a=ge.find(e=>e.name===i?.modelGroup);a&&this.$store.dispatch(`chat/setModelGroup`,a),i&&this.$store.dispatch(`chat/setModel`,i),this.messages=t?.messages||[],this.onScrollDown()}finally{this.restoringConversationId===e&&(this.restoringConversationId=void 0)}},async onChangeConversation(e){console.log(`onChangeConversation in conversation`,e),await this.onStop();let t=e||``;if(t===(this.conversationId||``)){t||await this.onNewConversation();return}await this.$router.push(this.conversationsPath(t))},async onSubmit(){if(!this.restoringConversation&&!this.needsWorkingDirectory&&Be()){if(this.references.length>0){let e=[{type:`text`,text:this.question.trim()}];for(let t of this.references){let n=Le(t.url)?{type:`image_url`,image_url:t.url}:{type:`file_url`,file_url:t.url};t.name&&(n.name=t.name),t.file_id&&t.sha256&&t.mime&&typeof t.size==`number`&&Object.assign(n,{file_id:t.file_id,sha256:t.sha256,mime:t.mime,size:t.size}),e.push(n)}this.messages.push({content:e,role:W})}else this.messages.push({content:this.question.trim(),role:W});console.debug(`onSubmit`,this.question,this.references),await this.onRequest()}},async onRequest(){if(!Be())return;X()&&(this.localTools=await q()?.listTools()??[],await this.onProbeWorkerFeatures()),console.debug(`start to get answer`,this.messages);let e=this.credential?.token,t=this.question.trim(),n=this.references.map(e=>({...e}));if(console.debug(`validated`,t,n),this.question=``,this.references=[],!e||!t){console.error(`no token or endpoint or question`),this.messages.push({error:{code:G},role:H,state:C.FAILED});return}let r=this.conversationId;this.messages.push({content:``,role:H,state:C.PENDING}),console.debug(`start to get answer`,this.messages),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({question:t,model:this.model.name,references:n,id:this.conversationId,stateful:!0,...this._localToolInjection()},e,r)},_resumeWithToolResults(e,t){let n=this.credential?.token,r=t??this.conversationId;if(!n||!r||!e.length){console.error(`cannot resume: no token / conversation id / results`);return}let i=[...this.messages].reverse().find(e=>e.role===H);if(i&&Array.isArray(i.content)){let t=i.content,n=[];for(let r of e){let e=t.find(e=>e.type===`tool_use`&&e.tool_id===r.tool_use_id);if(e&&(e.status=`done`,e.output=r.output,r.is_error&&(e.is_error=!0),delete e.pending_question),r.image&&this._isValidResultImage(r.image)){let e=`${r.tool_use_id} screenshot`,i=t.some(t=>t.type===`image_url`&&t.alt===e),a=n.some(t=>t.alt===e);!i&&!a&&n.push({type:`image_url`,image_url:{url:r.image},alt:e})}}n.length&&t.push(...n)}this.messages.push({content:``,role:H,state:C.PENDING}),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({id:r,model:this.model.name,stateful:!0,tool_results:e,...this._localToolInjection()},n,r)},async onAnswerAskUserQuestion(e){this._resumeWithToolResults([{tool_use_id:e.tool_use_id,output:e.output,...e.is_error?{is_error:!0}:{}}],e.conversationId)},_localToolInjection(){if(!X()||!this.localTools.length)return{};let e=this.$store.state.chat?.workingDirectory,t=this._wiredTools(),n=({spec:e,wire:t})=>({name:t,displayName:e.name,description:e.description,inputSchema:e.input_schema}),r=t.filter(e=>e.spec.source!==`mcp`),i=t.filter(e=>e.spec.source===`mcp`),a=new Map;for(let e of i){let t=e.spec.name.slice(4),n=t.indexOf(`.`),r=n<0?t:t.slice(0,n);if(!r)continue;let i=a.get(r);i?i.push(e):a.set(r,[e])}let o=i.map(n),s=this.localMcpDeferSupported?r.map(n):[...r.map(n),...o];return{...s.length?{client_tools:s}:{},...a.size?{local_mcp_servers:[...a].map(([e,t])=>({id:e,tools:t.map(n)}))}:{},...e?{working_directory:e}:{}}},_wiredTools(){let e=new Set;return this.localTools.map(t=>{let n=t.name.replace(/[^a-zA-Z0-9_-]/g,`_`);if(e.has(n)){let t=2;for(;e.has(`${n}_${t}`);)t++;n=`${n}_${t}`}return e.add(n),{spec:t,wire:n}})},async _runClientTools(e,t,n){let r=(t??this.conversationId)||``,i=[];for(let t of e){if(n!==void 0&&n!==this.clientToolRunId)return;let e=this._wiredTools().find(e=>e.wire===t.name)?.spec.name??t.name,a;try{a=JSON.parse(JSON.stringify(t.input??{}))}catch{a={}}let o;try{o=await q()?.invoke({name:e,input:a,sessionId:r})??{output:`local execution unavailable`,is_error:!0}}catch(e){o={output:e instanceof Error?e.message:String(e),is_error:!0}}let s=o.image?await this._hostToolResultImage(o.image)||o.image:void 0;i.push({tool_use_id:t.toolId,output:o.output,...o.is_error?{is_error:!0}:{},...s?{image:s}:{}})}n!==void 0&&n!==this.clientToolRunId||this._resumeWithToolResults(i,t)},_isValidResultImage(e){return!e||e.length>6e6?!1:e.startsWith(`https://`)?!/\s/.test(e):/^data:image\/(png|jpe?g|webp);base64,[A-Za-z0-9+/]+={0,2}$/.test(e)},async _hostToolResultImage(e){if(!e||!e.startsWith(`data:`))return e||null;let t=this.$store.getters.token?.access;if(!t)return null;try{let n=await(await fetch(e)).blob(),r=(n.type.split(`/`)[1]||`png`).split(`;`)[0],i=new FormData;i.append(`file`,n,`screenshot.${r}`);let a=await fetch(`${He()}/api/v1/files/`,{method:`POST`,headers:{Authorization:`Bearer ${t}`},body:i});if(!a.ok)return null;let o=await a.json(),s=o?.file_url||o?.data?.file_url;return typeof s==`string`&&s?s:null}catch(e){return console.warn(`[computer-use] screenshot upload failed; sending inline`,e),null}},onSkipAskUserQuestion(e){let t=[...this.messages].reverse().find(e=>e.role===H);if(!t||!Array.isArray(t.content))return;let n=t.content.find(t=>t.type===`tool_use`&&t.tool_id===e.tool_use_id);n&&(n.status=`done`,n.is_error=!0,n.output=n.output||``,delete n.pending_question)},async onRespondConnectorConsent(e){let t=this.credential?.token;if(!t||!this.conversationId){console.error(`cannot resume: no token or no conversation id`);return}let n=[...this.messages].reverse().find(e=>e.role===H);if(n&&Array.isArray(n.content)){let t=n.content.find(t=>t.type===`tool_use`&&t.tool_id===e.tool_use_id);t&&(t.status=`done`,t.output=e.output)}this.messages.push({content:``,role:H,state:C.PENDING}),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({id:this.conversationId,model:this.model.name,stateful:!0,tool_results:[{tool_use_id:e.tool_use_id,output:e.output}],...this._localToolInjection()},t,this.conversationId)},async onRespondActionConfirmation(e){let t=this.credential?.token;if(!t||!this.conversationId){console.error(`cannot resume: no token or no conversation id`);return}let n=JSON.stringify(e.result),r=[...this.messages].reverse().find(e=>e.role===H);if(r&&Array.isArray(r.content)){let t=r.content.find(t=>t.type===`tool_use`&&t.tool_id===e.tool_use_id);t&&(t.status=`done`,t.output=n)}this.messages.push({content:``,role:H,state:C.PENDING}),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({id:this.conversationId,model:this.model.name,stateful:!0,tool_results:[{tool_use_id:e.tool_use_id,output:n}],...this._localToolInjection()},t,this.conversationId)},async onAuthorizeConnector(e){let t=e.entry?.install_url;if(!t){console.warn(`authorize click with no install_url`,e);return}let n=En(t,this.$route.matched[0]?.path??``);if(Pe()){window.location.href=n;return}try{await qe(n)}catch(e){E.error(e?.message===`desktop-authorize-unsupported`?this.$t(`connection.message.desktopUpdateRequired`):e?.message||this.$t(`connection.message.installFailed`))}},onCaptureConsentReturnFromUrl(){let e=Cn(this.$route.query||{});e&&(this.pendingConsentReturn=e)},onConsumePendingConsentReturn(){let e=this.pendingConsentReturn;if(!e||this.messages.length===0)return;let t=wn(this.messages,e.consentRequestId);if(!t)return;this.pendingConsentReturn=null;let n=Tn(t.payload,e.connector);this.stripConsentReturnFromUrl(),this.onRespondConnectorConsent({tool_use_id:t.toolUseId,output:n})},stripConsentReturnFromUrl(){let e={};for(let[t,n]of Object.entries(this.$route.query||{}))t===`consent`||t===`connector`||n!=null&&(e[t]=n);this.$router.replace({path:this.$route.path,query:e})},_streamAssistantTurn(e,t,n){let r=n,i=this.messages.length-1,a=[],o=new Map,s=new Map,c=``,l=0;Q.chatConversation(e,{token:t,stream:e=>{console.debug(`stream response`,e);let t=this.messages[i],n=e.tool_id?o.get(e.tool_id):void 0;if(e.tool_id&&e.execution===`browser`&&e.execution_state&&!n){let t=s.get(e.tool_id)??{};s.set(e.tool_id,Z(t,e))}if(n&&e.execution_state&&(e.execution===`browser`||n.execution===`browser`)&&(n.execution=`browser`,Object.assign(n,Z(n,e))),e.type===`thinking`&&e.content){let t=this.messages[i];t.thinking=(t.thinking??``)+e.content}else if(e.type===`tool_use_start`&&e.tool_id){let t=o.get(e.tool_id);if(t){if(e.tool_name&&(t.tool_name=e.tool_name),e.tool_display_name&&(t.tool_display_name=e.tool_display_name),e.execution&&(t.execution=e.execution),e.execution===`browser`){Object.assign(t,Z(t,e));let n=s.get(e.tool_id);n&&(Object.assign(t,Z(t,n)),s.delete(e.tool_id))}e.input&&Object.keys(e.input).length>0&&(t.input=e.input)}else c&&(a.push({type:`text`,text:c}),c=``,l=e.answer?.length??0),t={type:`tool_use`,tool_id:e.tool_id,tool_name:e.tool_name,tool_display_name:e.tool_display_name,execution:e.execution,...e.execution===`browser`?Z({},e):{},input:e.input,status:`running`},a.push(t),o.set(e.tool_id,t);X()&&Te(e.execution)&&!this.pendingClientTools.some(t=>t.toolId===e.tool_id)&&(t.status=`awaiting_input`,this.pendingClientTools.push({toolId:e.tool_id,name:e.tool_name||``,input:e.input||{}}))}else if(e.type===`tool_progress`&&e.tool_id){let t=o.get(e.tool_id);t&&(t.input_stream=(t.input_stream??``)+(e.progress??``))}else if(e.type===`tool_result`&&e.tool_id){let t=o.get(e.tool_id);t&&(t.output=e.output,t.is_error=e.is_error,t.duration_ms=e.duration_ms,t.status=`done`,delete t.input_stream,delete t.pending_question)}else if(e.type===`ask_user_question`&&e.tool_id&&e.payload){let t=o.get(e.tool_id);t&&(t.status=`awaiting_input`,t.pending_question=e.payload)}else if(e.type===`consent_request`&&e.tool_id&&e.payload){let t=o.get(e.tool_id);t&&(t.status=`awaiting_input`,t.pending_consent_request=e.payload)}else if(e.type===`action_confirmation`&&e.tool_id&&e.payload){let t=o.get(e.tool_id);t&&(t.status=`awaiting_input`,t.pending_action_confirmation=e.payload)}else if(e.type===`artifact`&&e.artifact)e.artifact.type===`image`||e.artifact.mimeType?.startsWith(`image/`)?a.push({type:`image_url`,image_url:e.artifact.url,name:e.artifact.name,mimeType:e.artifact.mimeType}):a.push({type:`file_url`,file_url:e.artifact.url,name:e.artifact.name,mimeType:e.artifact.mimeType});else if(e.type===`card`&&e.card)c&&(a.push({type:`text`,text:c}),c=``,l=e.answer?.length??0),a.push({type:`card`,card:e.card});else if(e.type===`citation`&&e.citation){let t=this.messages[i];t.citations={...t.citations??{},[e.citation.id]:e.citation}}else e.delta_answer&&(c=(e.answer||``).slice(l));let u=a.map(e=>({...e}));c&&u.push({type:`text`,text:c}),u.length>0?this.messages[i]={role:H,content:u,thinking:t?.thinking,citations:t?.citations,state:t?.state===C.FINISHED?t?.state:C.ANSWERING}:this.messages[i]={role:H,content:e.answer,thinking:t?.thinking,citations:t?.citations,state:t?.state===C.FINISHED?t?.state:C.ANSWERING},r=e?.id},signal:this.canceler.signal}).then(async()=>{if(console.debug(`finished fetch answer`,this.messages),this.messages[i].state=C.FINISHED,console.debug(`finished fetch answer`,JSON.stringify(this.messages)),await this.$store.dispatch(`chat/setConversation`,{id:r,messages:this.messages}),this.pendingClientTools.length||(this.answering=!1),r&&(this.skipNextRestoreId=r,await this.$router.push(this.conversationsPath(r))),this.onScrollDown(),await this.$store.dispatch(`chat/getConversations`),await this.$store.dispatch(`chat/getApplications`),this.pendingClientTools.length){let e=this.pendingClientTools;this.pendingClientTools=[];let t=++this.clientToolRunId;await this._runClientTools(e,r,t)}}).catch(e=>{this.handleRequestError(e,i)})},async handleRequestError(e,t){console.error(`error happened`,e),this.pendingClientTools=[];let n=t??this.messages.length-1,r=n>=0?this.messages[n]:void 0;if(r&&(r.state=C.FAILED),e.name===`AbortError`){console.error(`aborted`),this.answering=!1;return}else e instanceof T?(console.debug(`BaseError`,e),r&&(r.error={code:e.code,message:e.detail})):fe.isCancel(e)?r&&(r.error={code:xe}):r&&(r.error={code:_e});this.answering=!1},async onScrollDown(){setTimeout(()=>{let e=document.querySelector(`.messages`);!e||!this.messages||this.messages.length===0||(e.scrollTop=e?.scrollHeight)},0)}}}),kn={class:`toolbar`},An={class:`toolbar-left`},jn=[`aria-label`,`title`],Mn=[`aria-label`],Nn={class:`conversation-loading-content`},Pn={key:1,class:`messages`},Fn={class:`starter`},In={class:`composer-connectors`},Ln={class:`composer-footer`};function Rn(t,c,d,f,p,y){let b=u(`model-selector`),x=u(`byok-badge`),S=u(`more-icon`),C=u(`edit-icon`),w=u(`el-dropdown-item`),T=u(`share-icon`),E=u(`delete-icon`),D=u(`el-dropdown-menu`),O=u(`el-dropdown`),k=u(`conversation-actions`),A=u(`el-skeleton-item`),j=u(`el-skeleton`),M=u(`message`),N=u(`connector-strip`),P=u(`composer`),F=u(`working-directory-bar`),I=u(`disclaimer`),L=u(`layout`);return v(),m(L,{onChangeConversation:c[4]||=e=>t.onChangeConversation(e)},{chat:h(()=>[e(`div`,kn,[e(`div`,An,[a(b,{class:`selector`,onModelGroupChanged:c[0]||=e=>t.onChangeConversation(void 0)}),a(x,{class:`byok-badge`}),t.conversationId?(v(),m(O,{key:0,trigger:`click`,placement:`bottom-start`,teleported:!0,onCommand:t.onConversationCommand},{dropdown:h(()=>[a(D,null,{default:h(()=>[a(w,{command:`rename`},{default:h(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.actions.rename`)),1)]),_:1}),a(w,{command:`share`},{default:h(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.share.menu`)),1)]),_:1}),a(w,{command:`delete`},{default:h(()=>[a(E,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`common.button.delete`)),1)]),_:1})]),_:1})]),default:h(()=>[e(`span`,{class:`toolbar-more`,role:`button`,tabindex:`0`,"aria-label":t.$t(`common.button.more`),title:t.$t(`common.button.more`)},[a(S,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,jn)]),_:1},8,[`onCommand`])):o(``,!0)])]),a(k,{ref:`actions`,"active-conversation-id":t.conversationId,onChangeConversation:t.onChangeConversation},null,8,[`active-conversation-id`,`onChangeConversation`]),e(`div`,{class:n({dialogue:!0,empty:t.messages.length===0&&!t.restoringConversation})},[t.restoringConversation?(v(),s(`div`,{key:0,class:`conversation-loading`,role:`status`,"aria-live":`polite`,"aria-label":t.$t(`common.status.loading`)},[(v(),s(l,null,_(3,t=>a(j,{key:t,animated:``,class:`conversation-loading-row`},{template:h(()=>[a(A,{variant:`circle`,class:`conversation-loading-avatar`}),e(`div`,Nn,[a(A,{variant:`text`,style:g({width:t===2?`42%`:`68%`})},null,8,[`style`]),a(A,{variant:`text`,style:g({width:t===2?`72%`:`88%`})},null,8,[`style`]),a(A,{variant:`text`,style:g({width:t===2?`56%`:`61%`})},null,8,[`style`])])]),_:2},1024)),64))],8,Mn)):t.messages.length>0?(v(),s(`div`,Pn,[(v(!0),s(l,null,_(t.messages,(e,n)=>(v(),m(M,{key:n,message:e,messages:t.messages,question:t.question,application:t.application,class:`message`,"onUpdate:question":c[1]||=e=>t.question=e,onEdit:t.onEdit,onRestart:t.onRestart,onAnswerAskUserQuestion:t.onAnswerAskUserQuestion,onSkipAskUserQuestion:t.onSkipAskUserQuestion,onRespondConnectorConsent:t.onRespondConnectorConsent,onRespondActionConfirmation:t.onRespondActionConfirmation,onAuthorizeConnector:t.onAuthorizeConnector,onStopBrowserSession:t.onStopBrowserSession,onBrowserRecovery:t.onBrowserRecovery},null,8,[`message`,`messages`,`question`,`application`,`onEdit`,`onRestart`,`onAnswerAskUserQuestion`,`onSkipAskUserQuestion`,`onRespondConnectorConsent`,`onRespondActionConfirmation`,`onAuthorizeConnector`,`onStopBrowserSession`,`onBrowserRecovery`]))),128))])):o(``,!0),e(`div`,Fn,[e(`div`,In,[a(N)]),a(P,{question:t.question,"onUpdate:question":c[2]||=e=>t.question=e,answering:t.answering,ready:t.ready,references:t.references,"onUpdate:references":c[3]||=e=>t.references=e,onSubmit:t.onSubmit,onStop:t.onStop},null,8,[`question`,`answering`,`ready`,`references`,`onSubmit`,`onStop`]),e(`div`,Ln,[a(F),a(I,{class:`composer-disclaimer`})])])],2)]),_:1})}var zn=Y(On,[[`render`,Rn],[`__scopeId`,`data-v-0748cf48`]]);export{zn as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,S as c,T as l,at as u,b as d,ht as f,it as p,j as m,mt as h,qt as g,rt as _,tt as v,x as y,z as b}from"./vendor-chart-Dw-P17PN.js";import{t as x}from"./upload-C1h3h1KN.js";import{t as S}from"./tooltip-DKF_sGto.js";import{d as C,h as w,n as T,v as E}from"./models-D6J60Ang.js";import{t as D}from"./drawer-BWJ3_fqW.js";import{n as O,r as k,t as A}from"./dropdown--LXlsWOR.js";import{n as j,t as M}from"./skeleton-Dj_a_iIP.js";import{t as N}from"./arrow-up-Drhcfl9s.js";import{t as P}from"./check-sZ3LdzYe.js";import{t as F}from"./chevron-down-B9A1h-il.js";import{t as I}from"./clock-BRjX06BR.js";import{t as L}from"./ellipsis-CGG2t4rN.js";import{a as R,i as ee,n as te,r as ne,t as re}from"./Message-DlnFjCzr.js";import{t as ie}from"./file-text-CJaP1sSt.js";import{t as ae}from"./folder-CVwMb5LW.js";import{t as oe}from"./key-round-DXFWRMd5.js";import{t as se}from"./link-DqeldxUU.js";import{t as ce}from"./mic-DcJCGd7v.js";import{t as z}from"./pencil-U1H8ouvD.js";import{t as le}from"./plug-qlX-ubkq.js";import{t as B}from"./plus-Coq-6ZBW.js";import{t as ue}from"./square-B1xtLDOg.js";import{t as V}from"./trash-2-Cf1lYl_N.js";import{t as de}from"./wand-sparkles-DNHHWq-f.js";import{t as fe}from"./vendor-axios-Ck2ffRoh.js";import{Bi as pe,Gi as me,Hi as he,Ki as ge,Sa as H,Ta as _e,Ui as ve,Vi as U,Wi as ye,ia as W,na as G,oa as be,ra as K,ya as xe,zi as Se}from"./constants-CX4j41GC.js";import{A as q,B as Ce,Ci as we,Ei as Te,Er as J,Jt as Ee,L as De,Mi as Oe,Nr as ke,O as Y,Or as Ae,Pn as je,Qt as Me,V as Ne,Vi as X,Xt as Pe,Yi as Fe,Zt as Ie,_n as Le,cn as Re,en as ze,mn as Be,nn as Ve,pi as He,rn as Ue,vi as We,wi as Z,wr as Q}from"./index-DKnFv8oI.js";import{t as Ge}from"./FilePreview-B2BrZCN4.js";import{t as Ke}from"./ImagePreview-ESZQ89R1.js";import{t as qe}from"./authorizeFlow-DjzUZZcO.js";var Je=Te(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ye=Te(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]);function Xe(){return ke(`SEND_SHORTCUT`)===`mod-enter`?`mod-enter`:`enter`}function Ze(e){if(e){e.push({path:`/console/skills`});return}window.location.href=new URL(`/console/skills`,window.location.origin).toString()}var Qe=b({name:`Composer`,components:{AddIcon:B,ConnectionIcon:le,FileTextIcon:ie,MagicIcon:de,MicrophoneIcon:ce,StopIcon:ue,UpIcon:N,FilePreview:Ge,ImagePreview:Ke,ElTooltip:S,ElUpload:x,ElButton:X,ElDropdown:A,ElDropdownMenu:k,ElDropdownItem:O},mixins:[Ue,Ve,ze],props:{answering:{type:Boolean,required:!1,default:!1},ready:{type:Boolean,required:!1,default:!0},references:{type:Array,required:!1,default:()=>[]},question:{type:String,required:!0}},emits:[`update:question`,`update:references`,`submit`,`stop`],data(){return{inputHeight:`35px`,questionValue:this.question||``,fileList:[],uploadUrl:He()+`/api/v1/files/`}},computed:{model(){return this.$store.state.chat.model},modelGroup(){return this.$store.state.chat.modelGroup},isVoiceCallSupported(){return this.modelGroup?.isVoiceCallSupported??!1},isFileSupported(){return this.model?.isFileSupported},isImageSupported(){return this.model?.isImageSupported},dropDisabled(){return!this.isFileSupported&&!this.isImageSupported||this.answering},headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},refs(){let e=[];for(let t of this.fileList){let n=t?.response?.file_url;if(!n)continue;let r=t.response,i=t?.name?{url:n,name:t.name}:{url:n};typeof r.file_id==`string`&&typeof r.sha256==`string`&&typeof r.mime==`string`&&typeof r.size==`number`&&Object.assign(i,{file_id:r.file_id,sha256:r.sha256,mime:r.mime,size:r.size}),e.push(i)}return e},uploading(){return this.fileList.some(e=>e.status===`ready`||e.status===`uploading`)},extensions(){if(this.isFileSupported===!1&&this.isImageSupported===!0)return`.png,.jpg,.jpeg,.gif,.bmp,.webp,.svg,.tiff,.ico,.heic`},pasteAccept(){return`.png,.jpg,.jpeg,.gif,.bmp,.webp,.svg,.tiff,.ico,.heic,image/*`}},watch:{refs(e){this.$emit(`update:references`,e)},questionValue(e){this.$emit(`update:question`,e.trim())},question(e){e!==this.questionValue&&(this.questionValue=e)},references(e){e.length===0&&this.fileList.length>0&&!this.uploading&&(this.fileList=[])},isFileSupported(e,t){t&&!e&&(this.fileList=[])}},methods:{isImageUrl:Le,onStartCall(){this.$router.push({name:De})},adjustTextareaHeight(){this.$nextTick(()=>{let e=this.$refs.textarea;e&&(e.style.height=`35px`,e.style.height=e.scrollHeight+`px`)})},onSubmit(){!this.question||this.uploading||!this.ready||this.$emit(`submit`)},onEnterKey(e){if(e.isComposing||e.keyCode===229||e.shiftKey)return;let t=e.metaKey||e.ctrlKey;(Xe()===`mod-enter`?t:!t&&!e.altKey)&&(e.preventDefault(),this.onSubmit())},onStop(){this.$emit(`stop`)},onProgress(e,t){console.debug(`File upload progress:`,t.name,e.loaded,e.total,t.percentage)},onBeforeUpload(e){return Me(e.size)?!0:(E.error(this.$t(`chat.message.uploadReferencesTooLarge`,{size:Ie(e.size),max:Ie(Pe)})),!1)},onExceed(){E.warning(this.$t(`chat.message.uploadReferencesExceed`))},onError(){E.error(this.$t(`chat.message.uploadReferencesError`))},onTriggerUpload(){!this.isFileSupported&&!this.isImageSupported||this.answering||this.$nextTick(()=>{let e=this.$refs.uploader?.$el;(e?.querySelector(`input.el-upload__input`)||e?.querySelector(`input[type="file"]`))?.click()})},onOpenSkills(){Ze(this.$router)},onOpenConnections(){Ee(void 0,this.$router)}}}),$e={class:`composer`},et={ref:`uploadTrigger`,class:`upload-trigger`,"aria-hidden":`true`},tt={key:0,class:`file-previews`},nt=[`disabled`,`placeholder`],rt={class:`tools`},it={class:`btn-plus-trigger`},at=[`disabled`,`aria-label`,`title`],ot=[`aria-label`,`title`];function st(r,p,b,x,S,C){let w=u(`el-upload`),T=u(`image-preview`),E=u(`file-preview`),D=u(`add-icon`),O=u(`el-tooltip`),k=u(`file-text-icon`),A=u(`el-dropdown-item`),j=u(`magic-icon`),M=u(`connection-icon`),N=u(`el-dropdown-menu`),P=u(`el-dropdown`),F=u(`microphone-icon`),I=u(`up-icon`),L=u(`el-button`),R=u(`stop-icon`);return v(),s(`div`,$e,[a(w,{ref:`uploader`,"file-list":r.fileList,"onUpdate:fileList":p[0]||=e=>r.fileList=e,class:`upload-hidden`,accept:r.extensions,disabled:!r.isFileSupported&&!r.isImageSupported||r.answering,name:`file`,limit:10,multiple:!0,action:r.uploadUrl,"show-file-list":!1,"before-upload":r.onBeforeUpload,"on-exceed":r.onExceed,"on-error":r.onError,"on-progress":r.onProgress,headers:r.headers},{default:h(()=>[e(`span`,et,null,512)]),_:1},8,[`file-list`,`accept`,`disabled`,`action`,`before-upload`,`on-exceed`,`on-error`,`on-progress`,`headers`]),r.fileList.length>0?(v(),s(`div`,tt,[(v(!0),s(l,null,_(r.fileList,e=>(v(),s(l,{key:e.uid},[r.isImageUrl(e.name)?(v(),m(T,{key:0,url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):(v(),m(E,{key:1,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`name`,`percentage`,`onRemove`]))],64))),128))])):o(``,!0),f(e(`textarea`,{ref:`textarea`,"onUpdate:modelValue":p[1]||=e=>r.questionValue=e,disabled:r.answering,class:`input`,placeholder:r.$t(`chat.message.newMessagePlaceholder`),style:g({height:r.inputHeight}),onKeydown:p[2]||=c((...e)=>r.onEnterKey&&r.onEnterKey(...e),[`enter`]),onInput:p[3]||=(...e)=>r.adjustTextareaHeight&&r.adjustTextareaHeight(...e)},null,44,nt),[[d,r.questionValue]]),e(`div`,rt,[a(P,{trigger:`click`,placement:`top-start`,"hide-on-click":!0,"popper-class":`composer-plus-popper`},{dropdown:h(()=>[a(N,null,{default:h(()=>[a(A,{disabled:!r.isFileSupported&&!r.isImageSupported||r.answering,onClick:r.onTriggerUpload},{default:h(()=>[a(k,{class:`menu-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(r.$t(`chat.composer.addFiles`)),1)]),_:1},8,[`disabled`,`onClick`]),a(A,{onClick:r.onOpenSkills},{default:h(()=>[a(j,{class:`menu-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(r.$t(`chat.composer.skills`)),1)]),_:1},8,[`onClick`]),a(A,{onClick:r.onOpenConnections},{default:h(()=>[a(M,{class:`menu-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(r.$t(`chat.composer.connections`)),1)]),_:1},8,[`onClick`])]),_:1})]),default:h(()=>[e(`span`,it,[a(O,{class:`box-item`,effect:`dark`,content:r.$t(`chat.composer.addAction`),placement:`top`},{default:h(()=>[e(`button`,{type:`button`,class:n({btn:!0,"btn-plus":!0,disabled:r.answering}),disabled:r.answering,"aria-label":r.$t(`chat.composer.addAction`),title:r.$t(`chat.composer.addAction`)},[a(D,{class:`icon icon-plus`,size:`1em`,"aria-hidden":`true`,focusable:`false`})],10,at)]),_:1},8,[`content`])])]),_:1}),r.isVoiceCallSupported?(v(),m(O,{key:0,class:`box-item`,effect:`dark`,content:r.$t(`realtime.callTooltip`),placement:`top`},{default:h(()=>[e(`span`,{class:n({btn:!0,"btn-voice":!0}),role:`button`,tabindex:`0`,"aria-label":r.$t(`realtime.callTooltip`),title:r.$t(`realtime.callTooltip`),onClick:p[4]||=(...e)=>r.onStartCall&&r.onStartCall(...e),onKeydown:[p[5]||=c(t((...e)=>r.onStartCall&&r.onStartCall(...e),[`prevent`]),[`enter`]),p[6]||=c(t((...e)=>r.onStartCall&&r.onStartCall(...e),[`prevent`]),[`space`])]},[a(F,{class:`icon icon-voice`,size:`1em`,"aria-hidden":`true`,focusable:`false`})],40,ot)]),_:1},8,[`content`])):o(``,!0)]),a(L,{disabled:r.answering||!r.questionValue||r.uploading||!r.ready,type:`primary`,"aria-label":r.$t(`common.button.send`),title:r.$t(`common.button.send`),class:n({btn:!0,"btn-send":!0}),onClick:r.onSubmit},{default:h(()=>[a(I,{class:`icon icon-send`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`disabled`,`aria-label`,`title`,`onClick`]),f(a(L,{disabled:!r.answering,type:`primary`,"aria-label":r.$t(`common.button.stop`),title:r.$t(`common.button.stop`),class:n({btn:!0,"btn-stop":!0}),onClick:r.onStop},{default:h(()=>[a(R,{class:`icon icon-stop`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`disabled`,`aria-label`,`title`,`onClick`]),[[y,r.answering]])])}var ct=Y(Qe,[[`render`,st],[`__scopeId`,`data-v-f2e60753`]]),lt=b({name:`ModelSelector`,components:{ConfirmIcon:P,ExpandDownIcon:F,ElDropdown:A,ElDropdownMenu:k,ElDropdownItem:O},emits:[`update:modelValue`,`select`,`model-group-changed`,`model-changed`],data(){return{options:[U,ve,me,ye,he,ge]}},computed:{model(){return console.log(`model`,this.$store.state.chat.model),this.$store.state.chat.model},modelGroup(){return this.$route.meta?.modelGroup||U}},watch:{modelGroup(e){console.debug(`modelGroup from route changed`,e),this.$store.dispatch(`chat/setModelGroup`,e),this.$store.dispatch(`chat/setModel`,W(e))}},mounted(){let e=this.modelGroup;this.$store.state.chat?.modelGroup?.name!==e.name&&this.$store.dispatch(`chat/setModelGroup`,e);let t=this.$store.state.chat?.model;e.models.some(e=>e.name===t?.name)||this.$store.dispatch(`chat/setModel`,W(e))},methods:{onModelGroupChange(e){this.$store.dispatch(`chat/setModelGroup`,e),this.$emit(`model-group-changed`,e)},onModelChange(e){this.$store.dispatch(`chat/setModel`,e),this.$emit(`model-changed`,e)}}}),ut={class:`selector`},dt={class:`trigger`},ft=[`src`],pt={class:`trigger-name`},mt={class:`item`},ht=[`src`],gt={class:`item-info`},_t={key:0,class:`item-name`},vt={key:0,class:`item-free-tag`},yt={key:1,class:`item-desc`};function bt(t,c,d,f,p,g){let y=u(`expand-down-icon`),b=u(`confirm-icon`),x=u(`el-dropdown-item`),S=u(`el-dropdown-menu`),C=u(`el-dropdown`);return v(),s(`div`,ut,[a(C,{trigger:`click`,"popper-class":`model-selector-popper`},{dropdown:h(()=>[t.modelGroup&&t.modelGroup?.models?(v(),m(S,{key:0},{default:h(()=>[(v(!0),s(l,null,_(t.modelGroup?.models?.filter(e=>e.enabled),(a,c)=>(v(),m(x,{key:c,class:n({active:t.model?.name===a?.name}),onClick:e=>t.onModelChange(a)},{default:h(()=>[e(`div`,mt,[a?.icon?(v(),s(`img`,{key:0,src:a.icon,class:`item-icon`},null,8,ht)):o(``,!0),e(`div`,gt,[a?.getDisplayName?(v(),s(`p`,_t,[r(i(a?.getDisplayName())+` `,1),a?.isFree?(v(),s(`span`,vt,i(t.$t(`chat.model.freeTag`)),1)):o(``,!0)])):o(``,!0),a?.getDescription?(v(),s(`p`,yt,i(a?.getDescription()),1)):o(``,!0)]),t.model?.name===a?.name?(v(),m(b,{key:1,class:`item-check`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):o(``,!0)])]),_:2},1032,[`class`,`onClick`]))),128))]),_:1})):o(``,!0)]),default:h(()=>[e(`div`,dt,[t.model?.icon?(v(),s(`img`,{key:0,src:t.model.icon,class:`trigger-icon`},null,8,ft)):o(``,!0),e(`span`,pt,i(t.model?.getDisplayName?.()??t.model?.name??``),1),a(y,{class:`trigger-arrow`,size:`1em`,"aria-hidden":`true`,focusable:`false`})])]),_:1})])}var xt=Y(lt,[[`render`,bt],[`__scopeId`,`data-v-54ccc62e`]]),St={chatgpt:`openai`,claude:`anthropic`,gemini:`google`,grok:`xai`,deepseek:`deepseek`,kimi:`moonshot`,glm:`zhipu`},Ct=b({name:`BYOKBadge`,components:{KeyIcon:oe,ElTooltip:S},data(){return{credentials:[],loaded:!1}},computed:{token(){return this.$store?.state?.chat?.credential?.token},modelGroup(){return this.$store?.state?.chat?.modelGroup?.name},expectedProvider(){let e=this.modelGroup;if(e)return St[e]},activeCredential(){let e=this.expectedProvider;if(e)return this.credentials.find(t=>t.provider===e&&t.is_active)},providerLabel(){return this.activeCredential?.provider_label},show(){return!!this.activeCredential}},watch:{token:{immediate:!0,handler(e){e&&!this.loaded&&this.fetch()}}},methods:{async fetch(){if(this.token)try{let{data:e}=await je.list({token:this.token});this.credentials=e?.items??[],this.loaded=!0}catch(e){console.debug(`BYOK badge fetch skipped`,e),this.credentials=[]}},onClickManage(){window.dispatchEvent(new CustomEvent(`open-user-settings`,{detail:{tab:`apiKey`}}))}}}),wt={class:`badge-text`};function Tt(t,n,r,s,c,l){let d=u(`key-icon`),f=u(`el-tooltip`);return t.show&&t.providerLabel?(v(),m(f,{key:0,content:`${t.$t(`byok.badge.tooltip`,{provider:t.providerLabel})} — ${t.$t(`byok.badge.manage`)}`,placement:`bottom`},{default:h(()=>[e(`button`,{type:`button`,class:`byok-badge`,onClick:n[0]||=(...e)=>t.onClickManage&&t.onClickManage(...e)},[a(d,{class:`badge-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,wt,i(t.$t(`byok.badge.active`,{provider:t.providerLabel})),1)])]),_:1},8,[`content`])):o(``,!0)}var Et=Y(Ct,[[`render`,Tt],[`__scopeId`,`data-v-edd17f30`]]),Dt=b({name:`ShareConversationDialog`,components:{LinkIcon:se,UnlinkIcon:ee,ElDialog:Oe,ElInput:Fe,ElButton:X},props:{modelValue:{type:Boolean,default:!1},conversationId:{type:String,default:void 0},shareId:{type:String,default:void 0}},emits:[`update:modelValue`,`update:shareId`],data(){return{localShareId:this.shareId,creating:!1,disabling:!1,copied:!1}},computed:{visible:{get(){return this.modelValue},set(e){this.$emit(`update:modelValue`,e)}},token(){return this.$store.state.chat?.credential?.token},shareUrl(){return this.localShareId?`${typeof window<`u`?window.location.origin:``}/share/${this.localShareId}`:``}},watch:{shareId(e){this.localShareId=e},modelValue(e){e&&(this.localShareId=this.shareId,this.copied=!1)}},methods:{selectAll(e){e.target?.select?.()},async onCreate(){if(!this.token){E.error(this.$t(`chat.share.needLogin`));return}if(!this.conversationId){E.error(this.$t(`chat.share.noConversation`));return}this.creating=!0;try{let{data:e}=await Q.shareConversation(this.conversationId,{token:this.token}),t=e?.share_id;if(!t)throw Error(`missing share_id`);this.localShareId=t,this.$emit(`update:shareId`,t)}catch(e){console.error(`shareConversation failed`,e),E.error(this.$t(`chat.share.createFailed`))}finally{this.creating=!1}},onCopy(){this.shareUrl&&(Re(this.shareUrl,{debug:!1}),this.copied=!0,E.success(this.$t(`chat.share.copied`)),setTimeout(()=>{this.copied=!1},2500))},async onDisable(){if(!this.token||!this.conversationId){this.localShareId=void 0,this.$emit(`update:shareId`,void 0);return}this.disabling=!0;try{await Q.unshareConversation(this.conversationId,{token:this.token}),this.localShareId=void 0,this.$emit(`update:shareId`,void 0),E.success(this.$t(`chat.share.disabled`))}catch(e){console.error(`unshareConversation failed`,e),E.error(this.$t(`chat.share.disableFailed`))}finally{this.disabling=!1}}}}),Ot={class:`share-desc`},kt={key:0,class:`share-linked`},At={class:`share-url-row`},jt={key:1,class:`share-create`};function Mt(t,n,o,c,l,d){let f=u(`el-input`),p=u(`el-button`),g=u(`unlink-icon`),_=u(`link-icon`),y=u(`el-dialog`);return v(),m(y,{modelValue:t.visible,"onUpdate:modelValue":n[2]||=e=>t.visible=e,width:`460px`,title:t.$t(`chat.share.dialogTitle`),"close-on-click-modal":!0},{footer:h(()=>[a(p,{onClick:n[1]||=e=>t.visible=!1},{default:h(()=>[r(i(t.$t(`common.button.close`)),1)]),_:1})]),default:h(()=>[e(`p`,Ot,i(t.$t(`chat.share.description`)),1),t.localShareId?(v(),s(`div`,kt,[e(`div`,At,[a(f,{modelValue:t.shareUrl,"onUpdate:modelValue":n[0]||=e=>t.shareUrl=e,readonly:``,class:`share-url`,onFocus:t.selectAll},null,8,[`modelValue`,`onFocus`]),a(p,{type:`primary`,onClick:t.onCopy},{default:h(()=>[r(i(t.copied?t.$t(`chat.share.copied`):t.$t(`chat.share.copy`)),1)]),_:1},8,[`onClick`])]),a(p,{link:``,type:`danger`,class:`share-disable`,loading:t.disabling,onClick:t.onDisable},{default:h(()=>[a(g,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.share.disable`)),1)]),_:1},8,[`loading`,`onClick`])])):(v(),s(`div`,jt,[a(p,{type:`primary`,round:``,loading:t.creating,onClick:t.onCreate},{default:h(()=>[a(_,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.share.createLink`)),1)]),_:1},8,[`loading`,`onClick`])]))]),_:1},8,[`modelValue`,`title`])}var Nt=b({name:`ConversationActions`,components:{ElButton:X,ElDialog:Oe,ElInput:Fe,ShareConversationDialog:Y(Dt,[[`render`,Mt],[`__scopeId`,`data-v-ab67a2e6`]])},props:{activeConversationId:{type:String,default:void 0}},emits:[`change-conversation`],data(){return{renameDialogVisible:!1,deleteDialogVisible:!1,shareDialogVisible:!1,actingConversation:void 0,renameDraft:``,renameSubmitting:!1,deleteSubmitting:!1}},computed:{token(){return this.$store.state.chat?.credential?.token}},methods:{run(e,t){e===`rename`?this.openRenameDialog(t):e===`delete`?this.openDeleteDialog(t):e===`share`&&this.openShareDialog(t)},openShareDialog(e){this.actingConversation=e,this.shareDialogVisible=!0},onShareIdUpdated(e){let t=this.actingConversation;t?.id&&(t.share_id=e,this.$store.state.chat?.conversations?.some(e=>e.id===t.id)&&this.$store.dispatch(`chat/setConversation`,{...t,share_id:e}))},openRenameDialog(e){this.actingConversation=e,this.renameDraft=(e?.title||``).trim(),this.renameDialogVisible=!0},openDeleteDialog(e){this.actingConversation=e,this.deleteDialogVisible=!0},async onConfirmRename(){let e=this.token,t=this.actingConversation?.id,n=(this.renameDraft||``).trim();if(!e){E.error(this.$t(`chat.actions.tokenMissing`));return}if(!t){E.error(this.$t(`chat.actions.conversationMissing`));return}if(!n){E.warning(this.$t(`chat.actions.renameEmpty`));return}this.renameSubmitting=!0;try{await Q.updateConversation({id:t,title:n},{token:e}),await this.$store.dispatch(`chat/getConversations`),this.renameDialogVisible=!1,E.success(this.$t(`chat.actions.renameSuccess`))}catch(e){console.error(e),E.error(this.$t(`chat.actions.renameFailed`))}finally{this.renameSubmitting=!1}},async onConfirmDelete(){let e=this.token,t=this.actingConversation?.id;if(!e){E.error(this.$t(`chat.actions.tokenMissing`));return}if(!t){E.error(this.$t(`chat.actions.conversationMissing`));return}this.deleteSubmitting=!0;try{await Q.deleteConversation(t,{token:e}),await this.$store.dispatch(`chat/getConversations`),t===this.activeConversationId&&this.$emit(`change-conversation`,void 0),this.deleteDialogVisible=!1,E.success(this.$t(`chat.actions.deleteSuccess`))}catch(e){console.error(e),E.error(this.$t(`chat.actions.deleteFailed`))}finally{this.deleteSubmitting=!1}}}}),Pt={class:`conversation-actions`},Ft={class:`delete-tip`};function It(t,n,o,l,d,f){let p=u(`el-input`),m=u(`el-button`),g=u(`el-dialog`),_=u(`share-conversation-dialog`);return v(),s(`div`,Pt,[a(g,{modelValue:t.renameDialogVisible,"onUpdate:modelValue":n[2]||=e=>t.renameDialogVisible=e,width:`420px`,title:t.$t(`chat.actions.renameTitle`),"close-on-click-modal":!1},{footer:h(()=>[a(m,{onClick:n[1]||=e=>t.renameDialogVisible=!1},{default:h(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1}),a(m,{type:`primary`,loading:t.renameSubmitting,onClick:t.onConfirmRename},{default:h(()=>[r(i(t.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`,`onClick`])]),default:h(()=>[a(p,{modelValue:t.renameDraft,"onUpdate:modelValue":n[0]||=e=>t.renameDraft=e,autofocus:``,onKeydown:c(t.onConfirmRename,[`enter`])},null,8,[`modelValue`,`onKeydown`])]),_:1},8,[`modelValue`,`title`]),a(g,{modelValue:t.deleteDialogVisible,"onUpdate:modelValue":n[4]||=e=>t.deleteDialogVisible=e,width:`420px`,title:t.$t(`chat.message.confirmDelete`),"close-on-click-modal":!1},{footer:h(()=>[a(m,{onClick:n[3]||=e=>t.deleteDialogVisible=!1},{default:h(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1}),a(m,{type:`danger`,loading:t.deleteSubmitting,onClick:t.onConfirmDelete},{default:h(()=>[r(i(t.$t(`common.button.delete`)),1)]),_:1},8,[`loading`,`onClick`])]),default:h(()=>[e(`div`,Ft,i(t.$t(`chat.actions.deleteConfirm`)),1)]),_:1},8,[`modelValue`,`title`]),a(_,{modelValue:t.shareDialogVisible,"onUpdate:modelValue":n[5]||=e=>t.shareDialogVisible=e,"conversation-id":t.actingConversation?.id,"share-id":t.actingConversation?.share_id,"onUpdate:shareId":t.onShareIdUpdated},null,8,[`modelValue`,`conversation-id`,`share-id`,`onUpdate:shareId`])])}var Lt=Y(Nt,[[`render`,It],[`__scopeId`,`data-v-8ad15b0d`]]),Rt={},zt={class:`disclaimer`};function Bt(e,t){return v(),s(`p`,zt,i(e.$t(`chat.message.howToUse`)),1)}var Vt=Y(Rt,[[`render`,Bt],[`__scopeId`,`data-v-d2d980ab`]]),$=5,Ht=b({name:`ConnectorStrip`,components:{ElTooltip:S},data(){return{enabledConnectors:[],loadSeq:0}},computed:{visibleConnectors(){return this.enabledConnectors.length<=$?this.enabledConnectors:this.enabledConnectors.slice(0,$-1)},overflowCount(){return this.enabledConnectors.length<=$?0:this.enabledConnectors.length-($-1)},userId(){return this.$store.getters.user?.id??null}},watch:{userId(){this.enabledConnectors=[],this.loadConnectors(!0)}},mounted(){this.loadConnectors(),document.addEventListener(`visibilitychange`,this.onVisibilityChange)},beforeUnmount(){document.removeEventListener(`visibilitychange`,this.onVisibilityChange)},methods:{async loadConnectors(e=!1){let t=this.userId,n=++this.loadSeq,r=await te(t,e);n===this.loadSeq&&this.userId===t&&(this.enabledConnectors=r)},onVisibilityChange(){document.visibilityState===`visible`&&this.loadConnectors(!0)},onOpen(){Ee(void 0,this.$router)}}}),Ut={key:0,class:`connector-strip`},Wt=[`src`,`alt`];function Gt(t,n,r,a,c,d){let f=u(`el-tooltip`);return t.visibleConnectors.length>0?(v(),s(`div`,Ut,[(v(!0),s(l,null,_(t.visibleConnectors,r=>(v(),m(f,{key:r.id,effect:`dark`,content:r.name,placement:`top`},{default:h(()=>[e(`span`,{class:`connector-chip`,role:`button`,onClick:n[0]||=(...e)=>t.onOpen&&t.onOpen(...e)},[e(`img`,{class:`connector-icon`,src:r.icon_url,alt:r.name,loading:`lazy`},null,8,Wt)])]),_:2},1032,[`content`]))),128)),t.overflowCount>0?(v(),m(f,{key:0,effect:`dark`,content:t.$t(`chat.composer.connections`),placement:`top`},{default:h(()=>[e(`span`,{class:`connector-chip connector-more`,role:`button`,onClick:n[1]||=(...e)=>t.onOpen&&t.onOpen(...e)},` +`+i(t.overflowCount),1)]),_:1},8,[`content`])):o(``,!0)])):o(``,!0)}var Kt=Y(Ht,[[`render`,Gt],[`__scopeId`,`data-v-8841aa76`]]),qt=2,Jt=b({name:`WorkingDirectoryBar`,components:{ElButton:X,ElTooltip:S,FolderIcon:ae},data(){return{picking:!1}},computed:{supported(){return We()&&!!q()},workingDirectory(){return this.$store.state.chat?.workingDirectory??``},displayPath(){let e=this.workingDirectory.split(/[/\\]/).filter(Boolean);return e.length<=qt?this.workingDirectory:`…/`+e.slice(-2).join(`/`)}},async mounted(){if(this.supported)try{let e=(await q()?.getConfig())?.workingDir??``;e!==this.workingDirectory&&this.$store.commit(`chat/setWorkingDirectory`,e)}catch{}},methods:{async onPick(){if(!this.picking){this.picking=!0;try{let e=await q()?.pickFolder();if(!e)return;let t=await q()?.getConfig();await q()?.saveConfig({roots:t?.roots??[],mcp:t?.mcp??[],computerUse:t?.computerUse,workingDir:e}),this.$store.commit(`chat/setWorkingDirectory`,e)}finally{this.picking=!1}}}}}),Yt={class:`working-dir-tip`},Xt={class:`working-dir-tip__hint`},Zt={class:`working-dir-path`};function Qt(t,l,d,f,p,g){let _=u(`folder-icon`),y=u(`el-button`),b=u(`el-tooltip`);return t.supported?(v(),s(`div`,{key:0,class:n([`working-dir`,{"working-dir--unset":!t.workingDirectory}])},[t.workingDirectory?(v(),m(b,{key:1,effect:`dark`,placement:`top`},{content:h(()=>[e(`div`,Yt,[e(`div`,null,i(t.workingDirectory),1),e(`div`,Xt,i(t.$t(`chat.workingDir.switchHint`)),1)])]),default:h(()=>[e(`span`,{class:`working-dir-link`,role:`button`,tabindex:`0`,onClick:l[0]||=(...e)=>t.onPick&&t.onPick(...e),onKeydown:l[1]||=c((...e)=>t.onPick&&t.onPick(...e),[`enter`])},[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,Zt,i(t.displayPath),1)],32)]),_:1})):(v(),m(y,{key:0,size:`small`,type:`primary`,loading:t.picking,onClick:t.onPick},{default:h(()=>[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.workingDir.choose`)),1)]),_:1},8,[`loading`,`onClick`]))],2)):o(``,!0)}var $t=Y(Jt,[[`render`,Qt],[`__scopeId`,`data-v-5ce13550`]]),en=b({name:`SidePanel`,components:{AddIcon:B,DeleteIcon:V,EditIcon:z,FileArchiveIcon:R,MoreIcon:L,ShareIcon:Ye,TimeIcon:I,ElDropdown:A,ElDropdownItem:O,ElDropdownMenu:k,ElSkeleton:M,ConversationActions:Lt},props:{},emits:[`change-conversation`],data(){return{}},computed:{conversationId(){return console.debug(`conversationId in side`,this.$route.params?.id),this.$route.params?.id?.toString()},conversations(){return this.$store.state.chat.conversations},conversationGroups(){let e=new Date;e.setHours(0,0,0,0);let t=new Date(e);t.setDate(t.getDate()-1);let n=new Date(e);n.setDate(n.getDate()-e.getDay());let r=new Date(n);r.setDate(r.getDate()-7);let i=this.conversations?.reduce((r,i)=>{let a=new Date(i.updated_at*1e3);return a>=e?r.today.push(i):a>=t?r.yesterday.push(i):a>=n?r.thisWeek.push(i):r.earlier.push(i),r},{today:[],yesterday:[],thisWeek:[],earlier:[]});return{...i?.today?.length>0?{today:i?.today?.sort((e,t)=>t.updated_at-e.updated_at)}:{},...i?.yesterday?.length>0?{yesterday:i?.yesterday?.sort((e,t)=>t.updated_at-e.updated_at)}:{},...i?.thisWeek?.length>0?{thisWeek:i?.thisWeek?.sort((e,t)=>t.updated_at-e.updated_at)}:{},...i?.earlier?.length>0?{earlier:i?.earlier?.sort((e,t)=>t.updated_at-e.updated_at)}:{}}},application(){return this.$store.state.chat.application},loading(){return this.$store.state.chat.status.getConversations===w.Request}},methods:{async onNewConversation(){console.debug(`onNewConversation from side panel`),this.$emit(`change-conversation`,void 0)},onScheduledTasks(){this.$router.push({name:Ne})},onArtifacts(){this.$router.push({name:Ce})},onClickConversation(e){console.debug(`onClickConversation in side panel`,e),this.$emit(`change-conversation`,e)},getConversationTitle(e){return e?.title||e?.last_message_preview||``},onConversationCommand(e,t){this.$refs.actions?.run(e,t)}}}),tn={class:`panel`},nn={key:1,class:`conversations`},rn={class:`icons`},an={class:`title`},on={class:`icons`},sn={class:`title`},cn={class:`icons`},ln={class:`title`},un={class:`key`},dn=[`onClick`],fn={class:`title`},pn={class:`operations`},mn=[`aria-label`,`title`];function hn(o,d,f,p,g,y){let b=u(`el-skeleton`),x=u(`add-icon`),S=u(`time-icon`),C=u(`file-archive-icon`),w=u(`more-icon`),T=u(`edit-icon`),E=u(`el-dropdown-item`),D=u(`share-icon`),O=u(`delete-icon`),k=u(`el-dropdown-menu`),A=u(`el-dropdown`),j=u(`conversation-actions`);return v(),s(`div`,tn,[o.loading&&o.conversationGroups===void 0?(v(),m(b,{key:0})):(v(),s(`div`,nn,[e(`div`,{class:`conversation`,onClick:d[0]||=(...e)=>o.onNewConversation&&o.onNewConversation(...e)},[e(`div`,rn,[a(x,{class:`icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,an,i(o.$t(`chat.message.startNewChat`)),1)]),e(`div`,{class:`conversation`,onClick:d[1]||=(...e)=>o.onScheduledTasks&&o.onScheduledTasks(...e)},[e(`div`,on,[a(S,{class:`icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,sn,i(o.$t(`chat.scheduledTasks.navTitle`)),1)]),e(`div`,{class:`conversation`,onClick:d[2]||=(...e)=>o.onArtifacts&&o.onArtifacts(...e)},[e(`div`,cn,[a(C,{class:`icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,ln,i(o.$t(`chat.artifacts.navTitle`)),1)]),(v(!0),s(l,null,_(o.conversationGroups,(u,f)=>(v(),s(`div`,{key:f,class:`group`},[e(`div`,un,i(o.$t(`chat.group.${f}`)),1),(v(!0),s(l,null,_(u,(l,u)=>(v(),s(`div`,{key:u,class:n({conversation:!0,active:l.id===o.conversationId}),onClick:e=>o.onClickConversation(l.id)},[e(`div`,fn,i(o.getConversationTitle(l)),1),e(`div`,pn,[a(A,{trigger:`click`,placement:`bottom-end`,teleported:!0,onCommand:e=>o.onConversationCommand(e,l)},{dropdown:h(()=>[a(k,null,{default:h(()=>[a(E,{command:`rename`,onClick:d[6]||=t(()=>{},[`stop`])},{default:h(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(o.$t(`chat.actions.rename`)),1)]),_:1}),a(E,{command:`share`,onClick:d[7]||=t(()=>{},[`stop`])},{default:h(()=>[a(D,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(o.$t(`chat.share.menu`)),1)]),_:1}),a(E,{command:`delete`,onClick:d[8]||=t(()=>{},[`stop`])},{default:h(()=>[a(O,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(o.$t(`common.button.delete`)),1)]),_:1})]),_:1})]),default:h(()=>[e(`span`,{class:`more`,role:`button`,tabindex:`0`,"aria-label":o.$t(`common.button.more`),title:o.$t(`common.button.more`),onClick:d[3]||=t(()=>{},[`stop`]),onKeydown:[d[4]||=c(t(()=>{},[`stop`]),[`enter`]),d[5]||=c(t(()=>{},[`prevent`,`stop`]),[`space`])]},[a(w,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],40,mn)]),_:1},8,[`onCommand`])])],10,dn))),128))]))),128))])),a(j,{ref:`actions`,"active-conversation-id":o.conversationId,onChangeConversation:d[9]||=e=>o.$emit(`change-conversation`,e)},null,8,[`active-conversation-id`])])}var gn=b({name:`LayoutChat`,components:{MenuIcon:Je,SidePanel:Y(en,[[`render`,hn],[`__scopeId`,`data-v-a2118dd8`]]),ElDrawer:D,ElButton:X},emits:[`change-conversation`],data(){return{drawer:!1}},methods:{onChangeConversation(e){console.debug(`onChangeConversation in layout`,e),this.$emit(`change-conversation`,e)}}}),_n={class:`main`},vn={class:`side`},yn={class:`chat`};function bn(t,n,r,i,o,c){let l=u(`side-panel`),d=u(`menu-icon`),f=u(`el-button`),m=u(`el-drawer`);return v(),s(`div`,_n,[e(`div`,vn,[p(t.$slots,`side`,{},()=>[a(l,{onChangeConversation:t.onChangeConversation},null,8,[`onChangeConversation`])],!0)]),e(`div`,yn,[p(t.$slots,`chat`,{},void 0,!0)]),a(f,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:h(()=>[a(d,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),a(m,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`290px`},{default:h(()=>[a(l,{onChangeConversation:t.onChangeConversation},null,8,[`onChangeConversation`])]),_:1},8,[`modelValue`])])}var xn=Y(gn,[[`render`,bn],[`__scopeId`,`data-v-6d114d1e`]]);function Sn(e){return typeof e==`string`&&e.trim().length>0?e:Array.isArray(e)&&typeof e[0]==`string`&&e[0].trim().length>0?e[0]:null}function Cn(e){let t=Sn(e.consent),n=Sn(e.connector);return!t||!n?null:{consentRequestId:t,connector:n}}function wn(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.role===`assistant`&&Array.isArray(r.content)){for(let e=r.content.length-1;e>=0;e--){let n=r.content[e];if(n.type!==`tool_use`||n.tool_name!==`request_user_consent`||n.status!==`awaiting_input`)continue;let i=n.pending_consent_request;if(!(!i||i.consent_request_id!==t)&&n.tool_id)return{toolUseId:n.tool_id,payload:i}}break}}return null}function Tn(e,t){return ne(e,[t],[])}function En(e,t){try{let n=new URL(e),r=n.searchParams.get(`return_to`);if(!r||!t)return e;let i=new URL(r),a=i.pathname.match(/^\/chat\/c\/([^/]+)/);if(!a)return e;let o=a[1],s=new URL(`${i.origin}${t}/conversations/${o}`);return i.searchParams.forEach((e,t)=>s.searchParams.set(t,e)),n.searchParams.set(`return_to`,s.toString()),n.toString()}catch{return e}}function Dn(e){return Array.isArray(e?.messages)&&e.messages.length>0}var On=b({name:`ChatConversation`,components:{DeleteIcon:V,EditIcon:z,MoreIcon:L,ShareIcon:Ye,Composer:ct,Disclaimer:Vt,ConnectorStrip:Kt,WorkingDirectoryBar:$t,ModelSelector:xt,"byok-badge":Et,ConversationActions:Lt,Message:re,Layout:xn,ElDropdown:A,ElDropdownItem:O,ElDropdownMenu:k,ElSkeleton:M,ElSkeletonItem:j},data(){return{drawer:!1,question:``,references:[],localTools:[],localMcpDeferSupported:!1,localMcpProbed:!1,pendingClientTools:[],clientToolRunId:0,upload:!1,answering:!1,canceler:void 0,restoringConversationId:void 0,skipNextRestoreId:void 0,messages:[],pendingConsentReturn:null}},computed:{modelGroup(){return this.$store.state.chat.modelGroup},model(){return this.$store.state.chat.model},conversationId(){return this.$route.params.id?.toString()},conversation(){return this.$store.state.chat.conversations?.find(e=>e.id===this.conversationId)},restoringConversation(){return!!this.conversationId&&this.restoringConversationId===this.conversationId},service(){return this.$store.state.chat.service},application(){return this.$store.state.chat.application},applications(){return this.$store.state.chat.applications},credential(){return this.$store.state.chat?.credential},memoryEnabled(){return this.$store.state.chat?.memoryEnabled!==!1},needApply(){return this.$store.state.chat.status.getApplications===w.Success&&!this.application},conversations(){return this.$store.state.chat.conversations},initializing(){return this.$store.state.chat.status.getApplications===w.Request},needsWorkingDirectory(){return We()&&!!q()&&!this.$store.state.chat?.workingDirectory},ready(){return this.restoringConversation?!1:this.$store.getters.authenticated?this.needsWorkingDirectory?!1:!this.initializing&&!!this.credential?.token&&!!this.application:!0}},watch:{question(e){this.$store.commit(`chat/setPendingDraft`,e||``)},async modelGroup(e){console.debug(`modelGroup changed`,e),this.$store.commit(`chat/setConversations`,[]),await this.$store.dispatch(`chat/getConversations`)},"credential.token":{immediate:!0,async handler(e){e&&(this.modelGroup?.name&&await this.$store.dispatch(`chat/getConversations`),await this.onRestoreCurrentConversation())}},async conversationId(e){if(console.debug(`conversationId changed`,e),!e){this.resetConversation();return}await this.onRestoreCurrentConversation()},messages:{handler(){this.pendingConsentReturn&&this.onConsumePendingConsentReturn()},deep:!1}},async mounted(){this.onCaptureConsentReturnFromUrl(),await this.onGetService(),await this.onGetApplication(),this.onConsumePendingDraft(),this.onApplyQueryFromUrl(),Z()&&(this.localTools=await q()?.listTools()??[],this.onProbeWorkerFeatures())},methods:{async onProbeWorkerFeatures(){if(!(this.localMcpProbed||this.localMcpDeferSupported)&&this.localTools.some(e=>e.source===`mcp`)){this.localMcpProbed=!0;try{let e=await fetch(`${be}/aichat2/health`);if(!e.ok)return;let t=await e.json();this.localMcpDeferSupported=Array.isArray(t?.features)&&t.features.includes(`local_mcp_servers`)}catch{}}},resetConversation(){this.restoringConversationId=void 0,this.messages=[],this.question=``,this.references=[],this.pendingClientTools=[]},onConversationCommand(e){let t=this.conversation??{id:this.conversationId};t.id&&this.$refs.actions?.run(e,t)},async onRestoreCurrentConversation(){let e=this.conversationId;if(!(!e||!this.credential?.token)){if(this.skipNextRestoreId===e){this.skipNextRestoreId=void 0;return}await this.onRestoreConversation(e)}},onConsumePendingDraft(){if(this.conversationId||this.question&&this.question.trim().length>0)return;let e=this.$store.state.chat?.pendingDraft;e&&(this.question=e)},onApplyQueryFromUrl(){let e=this.$route.query?.query,t=Array.isArray(e)?e[0]:e;if(!t||typeof t!=`string`||this.conversationId)return;if(this.question&&this.question.trim().length>0){let e=this.$store.state.chat?.pendingDraft;if(!(e!=null&&this.question===e))return}this.question=t;let n=new Set([`query`,`source`,`suggestion_id`,`connector`]),r={};for(let[e,t]of Object.entries(this.$route.query||{}))n.has(e)||t!=null&&(r[e]=t);this.$router.replace({path:this.$route.path,query:r})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`chat/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`chat/getApplications`),console.debug(`end onGetApplication`)},async onDraft(e){this.question=e,this.onSubmit()},async onStop(){this.pendingClientTools=[],this.clientToolRunId++,this.canceler&&(this.canceler.abort(),this.answering=!1)},async onStopBrowserSession(e){await this.onStop()},onBrowserRecovery(e){if(e===`open-consent-card`){document.querySelector(`.connector-consent-card`)?.scrollIntoView({behavior:`smooth`,block:`center`});return}this.$router.push({name:`settings-index`,query:{browserRecovery:e}})},async onRestart(e){let t=this.messages.findIndex(t=>t===e),n=this.messages[t-1],r=[];if(t!==-1){if(r=this.messages.slice(0,t-1),this.messages=this.messages.slice(0,t),this.references=[],typeof n.content==`string`)this.question=n.content;else if(Array.isArray(n.content))for(let e of n.content)if(e.type===`image_url`||e.type===`file_url`){let t=e.type===`image_url`?e.image_url:e.file_url,n=typeof t==`string`?t:t?.url;if(n){let t=e.name?{url:n,name:e.name}:{url:n};e.file_id&&e.sha256&&e.mime&&typeof e.size==`number`&&Object.assign(t,{file_id:e.file_id,sha256:e.sha256,mime:e.mime,size:e.size}),this.references.push(t)}}else e.type===`text`&&e.text&&(this.question=e.text)}console.debug(`onRestart!`,this.question,JSON.stringify(this.references));let i=this.credential?.token,a=this.question.trim();if(!i||!a){console.error(`no token or endpoint or question`),this.messages.push({error:{code:H},role:G,state:C.FAILED});return}let o=this.conversationId;Q.updateConversation({id:this.conversationId,messages:r},{token:i}).then(async()=>{await this.$store.dispatch(`chat/setConversation`,{id:o,messages:this.messages}),console.debug(`finished update conversation`,this.messages),console.debug(`onRestart`,this.question),await this.onRequest()}).catch(e=>{this.handleRequestError(e)})},async onEdit(e,t){let n=this.messages.findIndex(t=>t===e);n!==-1&&(this.messages=this.messages.slice(0,n)),this.question=t;let r=this.credential?.token;if(!r){console.error(`no token or endpoint or question`),this.messages.push({error:{code:H},role:G,state:C.FAILED});return}let i=this.conversationId;Q.updateConversation({id:this.conversationId,messages:this.messages},{token:r}).then(async()=>{await this.$store.dispatch(`chat/setConversation`,{id:i,messages:this.messages}),console.debug(`finished update conversation`,this.messages),this.messages.push({content:this.question,role:K}),console.debug(`onEdit`,this.question),await this.onRequest()}).catch(e=>{this.handleRequestError(e)})},conversationsPath(e){let t=this.$route.matched[0]?.path??``;return e?`${t}/conversations/${e}`:`${t}/conversations`},async onNewConversation(){this.conversationId?await this.$router.push(this.conversationsPath()):this.resetConversation()},async onRestoreConversation(e){console.debug(`onRestoreConversation id`,e);let t=this.conversations?.find(t=>t.id===e),n=!Dn(t);n&&(this.messages=[],this.restoringConversationId=e);try{if(n){let n=await this.$store.dispatch(`chat/getConversation`,e);n&&(t=n)}if(this.conversationId!==e)return;let r=t?.model,i=Se.find(e=>e.name===r),a=pe.find(e=>e.name===i?.modelGroup);a&&this.$store.dispatch(`chat/setModelGroup`,a),i&&this.$store.dispatch(`chat/setModel`,i),this.messages=t?.messages||[],this.onScrollDown()}finally{this.restoringConversationId===e&&(this.restoringConversationId=void 0)}},async onChangeConversation(e){console.log(`onChangeConversation in conversation`,e),await this.onStop();let t=e||``;if(t===(this.conversationId||``)){t||await this.onNewConversation();return}await this.$router.push(this.conversationsPath(t))},async onSubmit(){if(!this.restoringConversation&&!this.needsWorkingDirectory&&Be()){if(this.references.length>0){let e=[{type:`text`,text:this.question.trim()}];for(let t of this.references){let n=Le(t.url)?{type:`image_url`,image_url:t.url}:{type:`file_url`,file_url:t.url};t.name&&(n.name=t.name),t.file_id&&t.sha256&&t.mime&&typeof t.size==`number`&&Object.assign(n,{file_id:t.file_id,sha256:t.sha256,mime:t.mime,size:t.size}),e.push(n)}this.messages.push({content:e,role:K})}else this.messages.push({content:this.question.trim(),role:K});console.debug(`onSubmit`,this.question,this.references),await this.onRequest()}},async onRequest(){if(!Be())return;Z()&&(this.localTools=await q()?.listTools()??[],await this.onProbeWorkerFeatures()),console.debug(`start to get answer`,this.messages);let e=this.credential?.token,t=this.question.trim(),n=this.references.map(e=>({...e}));if(console.debug(`validated`,t,n),this.question=``,this.references=[],!e||!t){console.error(`no token or endpoint or question`),this.messages.push({error:{code:H},role:G,state:C.FAILED});return}let r=this.conversationId;this.messages.push({content:``,role:G,state:C.PENDING}),console.debug(`start to get answer`,this.messages),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({question:t,model:this.model.name,references:n,id:this.conversationId,stateful:!0,...this._localToolInjection()},e,r)},_resumeWithToolResults(e,t){let n=this.credential?.token,r=t??this.conversationId;if(!n||!r||!e.length){console.error(`cannot resume: no token / conversation id / results`);return}let i=[...this.messages].reverse().find(e=>e.role===G);if(i&&Array.isArray(i.content)){let t=i.content,n=[];for(let r of e){let e=t.find(e=>e.type===`tool_use`&&e.tool_id===r.tool_use_id);if(e&&(e.status=`done`,e.output=r.output,r.is_error&&(e.is_error=!0),delete e.pending_question),r.image&&this._isValidResultImage(r.image)){let e=`${r.tool_use_id} screenshot`,i=t.some(t=>t.type===`image_url`&&t.alt===e),a=n.some(t=>t.alt===e);!i&&!a&&n.push({type:`image_url`,image_url:{url:r.image},alt:e})}}n.length&&t.push(...n)}this.messages.push({content:``,role:G,state:C.PENDING}),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({id:r,model:this.model.name,stateful:!0,tool_results:e,...this._localToolInjection()},n,r)},async onAnswerAskUserQuestion(e){this._resumeWithToolResults([{tool_use_id:e.tool_use_id,output:e.output,...e.is_error?{is_error:!0}:{}}],e.conversationId)},_localToolInjection(){if(!Z()||!this.localTools.length)return{};let e=this.$store.state.chat?.workingDirectory,t=this._wiredTools(),n=({spec:e,wire:t})=>({name:t,displayName:e.name,description:e.description,inputSchema:e.input_schema}),r=t.filter(e=>e.spec.source!==`mcp`),i=t.filter(e=>e.spec.source===`mcp`),a=new Map;for(let e of i){let t=e.spec.name.slice(4),n=t.indexOf(`.`),r=n<0?t:t.slice(0,n);if(!r)continue;let i=a.get(r);i?i.push(e):a.set(r,[e])}let o=i.map(n),s=this.localMcpDeferSupported?r.map(n):[...r.map(n),...o];return{...s.length?{client_tools:s}:{},...a.size?{local_mcp_servers:[...a].map(([e,t])=>({id:e,tools:t.map(n)}))}:{},...e?{working_directory:e}:{}}},_wiredTools(){let e=new Set;return this.localTools.map(t=>{let n=t.name.replace(/[^a-zA-Z0-9_-]/g,`_`);if(e.has(n)){let t=2;for(;e.has(`${n}_${t}`);)t++;n=`${n}_${t}`}return e.add(n),{spec:t,wire:n}})},async _runClientTools(e,t,n){let r=(t??this.conversationId)||``,i=[];for(let t of e){if(n!==void 0&&n!==this.clientToolRunId)return;let e=this._wiredTools().find(e=>e.wire===t.name)?.spec.name??t.name,a;try{a=JSON.parse(JSON.stringify(t.input??{}))}catch{a={}}let o;try{o=await q()?.invoke({name:e,input:a,sessionId:r})??{output:`local execution unavailable`,is_error:!0}}catch(e){o={output:e instanceof Error?e.message:String(e),is_error:!0}}let s=o.image?await this._hostToolResultImage(o.image)||o.image:void 0;i.push({tool_use_id:t.toolId,output:o.output,...o.is_error?{is_error:!0}:{},...s?{image:s}:{}})}n!==void 0&&n!==this.clientToolRunId||this._resumeWithToolResults(i,t)},_isValidResultImage(e){return!e||e.length>6e6?!1:e.startsWith(`https://`)?!/\s/.test(e):/^data:image\/(png|jpe?g|webp);base64,[A-Za-z0-9+/]+={0,2}$/.test(e)},async _hostToolResultImage(e){if(!e||!e.startsWith(`data:`))return e||null;let t=this.$store.getters.token?.access;if(!t)return null;try{let n=await(await fetch(e)).blob(),r=(n.type.split(`/`)[1]||`png`).split(`;`)[0],i=new FormData;i.append(`file`,n,`screenshot.${r}`);let a=await fetch(`${He()}/api/v1/files/`,{method:`POST`,headers:{Authorization:`Bearer ${t}`},body:i});if(!a.ok)return null;let o=await a.json(),s=o?.file_url||o?.data?.file_url;return typeof s==`string`&&s?s:null}catch(e){return console.warn(`[computer-use] screenshot upload failed; sending inline`,e),null}},onSkipAskUserQuestion(e){let t=[...this.messages].reverse().find(e=>e.role===G);if(!t||!Array.isArray(t.content))return;let n=t.content.find(t=>t.type===`tool_use`&&t.tool_id===e.tool_use_id);n&&(n.status=`done`,n.is_error=!0,n.output=n.output||``,delete n.pending_question)},async onRespondConnectorConsent(e){let t=this.credential?.token;if(!t||!this.conversationId){console.error(`cannot resume: no token or no conversation id`);return}let n=[...this.messages].reverse().find(e=>e.role===G);if(n&&Array.isArray(n.content)){let t=n.content.find(t=>t.type===`tool_use`&&t.tool_id===e.tool_use_id);t&&(t.status=`done`,t.output=e.output)}this.messages.push({content:``,role:G,state:C.PENDING}),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({id:this.conversationId,model:this.model.name,stateful:!0,tool_results:[{tool_use_id:e.tool_use_id,output:e.output}],...this._localToolInjection()},t,this.conversationId)},async onRespondActionConfirmation(e){let t=this.credential?.token;if(!t||!this.conversationId){console.error(`cannot resume: no token or no conversation id`);return}let n=JSON.stringify(e.result),r=[...this.messages].reverse().find(e=>e.role===G);if(r&&Array.isArray(r.content)){let t=r.content.find(t=>t.type===`tool_use`&&t.tool_id===e.tool_use_id);t&&(t.status=`done`,t.output=n)}this.messages.push({content:``,role:G,state:C.PENDING}),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,this._streamAssistantTurn({id:this.conversationId,model:this.model.name,stateful:!0,tool_results:[{tool_use_id:e.tool_use_id,output:n}],...this._localToolInjection()},t,this.conversationId)},async onAuthorizeConnector(e){let t=e.entry?.install_url;if(!t){console.warn(`authorize click with no install_url`,e);return}let n=En(t,this.$route.matched[0]?.path??``);if(we()){window.location.href=n;return}try{await qe(n)}catch(e){E.error(e?.message===`desktop-authorize-unsupported`?this.$t(`connection.message.desktopUpdateRequired`):e?.message||this.$t(`connection.message.installFailed`))}},onCaptureConsentReturnFromUrl(){let e=Cn(this.$route.query||{});e&&(this.pendingConsentReturn=e)},onConsumePendingConsentReturn(){let e=this.pendingConsentReturn;if(!e||this.messages.length===0)return;let t=wn(this.messages,e.consentRequestId);if(!t)return;this.pendingConsentReturn=null;let n=Tn(t.payload,e.connector);this.stripConsentReturnFromUrl(),this.onRespondConnectorConsent({tool_use_id:t.toolUseId,output:n})},stripConsentReturnFromUrl(){let e={};for(let[t,n]of Object.entries(this.$route.query||{}))t===`consent`||t===`connector`||n!=null&&(e[t]=n);this.$router.replace({path:this.$route.path,query:e})},_streamAssistantTurn(e,t,n){let r=n,i=this.messages.length-1,a=[],o=new Map,s=new Map,c=``,l=0;Q.chatConversation(e,{token:t,stream:e=>{console.debug(`stream response`,e);let t=this.messages[i],n=e.tool_id?o.get(e.tool_id):void 0;if(e.tool_id&&e.execution===`browser`&&e.execution_state&&!n){let t=s.get(e.tool_id)??{};s.set(e.tool_id,J(t,e))}if(n&&e.execution_state&&(e.execution===`browser`||n.execution===`browser`)&&(n.execution=`browser`,Object.assign(n,J(n,e))),e.type===`thinking`&&e.content){let t=this.messages[i];t.thinking=(t.thinking??``)+e.content}else if(e.type===`tool_use_start`&&e.tool_id){let t=o.get(e.tool_id);if(t){if(e.tool_name&&(t.tool_name=e.tool_name),e.tool_display_name&&(t.tool_display_name=e.tool_display_name),e.execution&&(t.execution=e.execution),e.execution===`browser`){Object.assign(t,J(t,e));let n=s.get(e.tool_id);n&&(Object.assign(t,J(t,n)),s.delete(e.tool_id))}e.input&&Object.keys(e.input).length>0&&(t.input=e.input)}else c&&(a.push({type:`text`,text:c}),c=``,l=e.answer?.length??0),t={type:`tool_use`,tool_id:e.tool_id,tool_name:e.tool_name,tool_display_name:e.tool_display_name,execution:e.execution,...e.execution===`browser`?J({},e):{},input:e.input,status:`running`},a.push(t),o.set(e.tool_id,t);Z()&&Ae(e.execution)&&!this.pendingClientTools.some(t=>t.toolId===e.tool_id)&&(t.status=`awaiting_input`,this.pendingClientTools.push({toolId:e.tool_id,name:e.tool_name||``,input:e.input||{}}))}else if(e.type===`tool_progress`&&e.tool_id){let t=o.get(e.tool_id);t&&(t.input_stream=(t.input_stream??``)+(e.progress??``))}else if(e.type===`tool_result`&&e.tool_id){let t=o.get(e.tool_id);t&&(t.output=e.output,t.is_error=e.is_error,t.duration_ms=e.duration_ms,t.status=`done`,delete t.input_stream,delete t.pending_question)}else if(e.type===`ask_user_question`&&e.tool_id&&e.payload){let t=o.get(e.tool_id);t&&(t.status=`awaiting_input`,t.pending_question=e.payload)}else if(e.type===`consent_request`&&e.tool_id&&e.payload){let t=o.get(e.tool_id);t&&(t.status=`awaiting_input`,t.pending_consent_request=e.payload)}else if(e.type===`action_confirmation`&&e.tool_id&&e.payload){let t=o.get(e.tool_id);t&&(t.status=`awaiting_input`,t.pending_action_confirmation=e.payload)}else if(e.type===`artifact`&&e.artifact)e.artifact.type===`image`||e.artifact.mimeType?.startsWith(`image/`)?a.push({type:`image_url`,image_url:e.artifact.url,name:e.artifact.name,mimeType:e.artifact.mimeType}):a.push({type:`file_url`,file_url:e.artifact.url,name:e.artifact.name,mimeType:e.artifact.mimeType});else if(e.type===`card`&&e.card)c&&(a.push({type:`text`,text:c}),c=``,l=e.answer?.length??0),a.push({type:`card`,card:e.card});else if(e.type===`citation`&&e.citation){let t=this.messages[i];t.citations={...t.citations??{},[e.citation.id]:e.citation}}else e.delta_answer&&(c=(e.answer||``).slice(l));let u=a.map(e=>({...e}));c&&u.push({type:`text`,text:c}),u.length>0?this.messages[i]={role:G,content:u,thinking:t?.thinking,citations:t?.citations,state:t?.state===C.FINISHED?t?.state:C.ANSWERING}:this.messages[i]={role:G,content:e.answer,thinking:t?.thinking,citations:t?.citations,state:t?.state===C.FINISHED?t?.state:C.ANSWERING},r=e?.id},signal:this.canceler.signal}).then(async()=>{if(console.debug(`finished fetch answer`,this.messages),this.messages[i].state=C.FINISHED,console.debug(`finished fetch answer`,JSON.stringify(this.messages)),await this.$store.dispatch(`chat/setConversation`,{id:r,messages:this.messages}),this.pendingClientTools.length||(this.answering=!1),r&&(this.skipNextRestoreId=r,await this.$router.push(this.conversationsPath(r))),this.onScrollDown(),await this.$store.dispatch(`chat/getConversations`),await this.$store.dispatch(`chat/getApplications`),this.pendingClientTools.length){let e=this.pendingClientTools;this.pendingClientTools=[];let t=++this.clientToolRunId;await this._runClientTools(e,r,t)}}).catch(e=>{this.handleRequestError(e,i)})},async handleRequestError(e,t){console.error(`error happened`,e),this.pendingClientTools=[];let n=t??this.messages.length-1,r=n>=0?this.messages[n]:void 0;if(r&&(r.state=C.FAILED),e.name===`AbortError`){console.error(`aborted`),this.answering=!1;return}else e instanceof T?(console.debug(`BaseError`,e),r&&(r.error={code:e.code,message:e.detail})):fe.isCancel(e)?r&&(r.error={code:xe}):r&&(r.error={code:_e});this.answering=!1},async onScrollDown(){setTimeout(()=>{let e=document.querySelector(`.messages`);!e||!this.messages||this.messages.length===0||(e.scrollTop=e?.scrollHeight)},0)}}}),kn={class:`toolbar`},An={class:`toolbar-left`},jn=[`aria-label`,`title`],Mn=[`aria-label`],Nn={class:`conversation-loading-content`},Pn={key:1,class:`messages`},Fn={class:`starter`},In={class:`composer-connectors`},Ln={class:`composer-footer`};function Rn(t,c,d,f,p,y){let b=u(`model-selector`),x=u(`byok-badge`),S=u(`more-icon`),C=u(`edit-icon`),w=u(`el-dropdown-item`),T=u(`share-icon`),E=u(`delete-icon`),D=u(`el-dropdown-menu`),O=u(`el-dropdown`),k=u(`conversation-actions`),A=u(`el-skeleton-item`),j=u(`el-skeleton`),M=u(`message`),N=u(`connector-strip`),P=u(`composer`),F=u(`working-directory-bar`),I=u(`disclaimer`),L=u(`layout`);return v(),m(L,{onChangeConversation:c[4]||=e=>t.onChangeConversation(e)},{chat:h(()=>[e(`div`,kn,[e(`div`,An,[a(b,{class:`selector`,onModelGroupChanged:c[0]||=e=>t.onChangeConversation(void 0)}),a(x,{class:`byok-badge`}),t.conversationId?(v(),m(O,{key:0,trigger:`click`,placement:`bottom-start`,teleported:!0,onCommand:t.onConversationCommand},{dropdown:h(()=>[a(D,null,{default:h(()=>[a(w,{command:`rename`},{default:h(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.actions.rename`)),1)]),_:1}),a(w,{command:`share`},{default:h(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`chat.share.menu`)),1)]),_:1}),a(w,{command:`delete`},{default:h(()=>[a(E,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`common.button.delete`)),1)]),_:1})]),_:1})]),default:h(()=>[e(`span`,{class:`toolbar-more`,role:`button`,tabindex:`0`,"aria-label":t.$t(`common.button.more`),title:t.$t(`common.button.more`)},[a(S,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,jn)]),_:1},8,[`onCommand`])):o(``,!0)])]),a(k,{ref:`actions`,"active-conversation-id":t.conversationId,onChangeConversation:t.onChangeConversation},null,8,[`active-conversation-id`,`onChangeConversation`]),e(`div`,{class:n({dialogue:!0,empty:t.messages.length===0&&!t.restoringConversation})},[t.restoringConversation?(v(),s(`div`,{key:0,class:`conversation-loading`,role:`status`,"aria-live":`polite`,"aria-label":t.$t(`common.status.loading`)},[(v(),s(l,null,_(3,t=>a(j,{key:t,animated:``,class:`conversation-loading-row`},{template:h(()=>[a(A,{variant:`circle`,class:`conversation-loading-avatar`}),e(`div`,Nn,[a(A,{variant:`text`,style:g({width:t===2?`42%`:`68%`})},null,8,[`style`]),a(A,{variant:`text`,style:g({width:t===2?`72%`:`88%`})},null,8,[`style`]),a(A,{variant:`text`,style:g({width:t===2?`56%`:`61%`})},null,8,[`style`])])]),_:2},1024)),64))],8,Mn)):t.messages.length>0?(v(),s(`div`,Pn,[(v(!0),s(l,null,_(t.messages,(e,n)=>(v(),m(M,{key:n,message:e,messages:t.messages,question:t.question,application:t.application,class:`message`,"onUpdate:question":c[1]||=e=>t.question=e,onEdit:t.onEdit,onRestart:t.onRestart,onAnswerAskUserQuestion:t.onAnswerAskUserQuestion,onSkipAskUserQuestion:t.onSkipAskUserQuestion,onRespondConnectorConsent:t.onRespondConnectorConsent,onRespondActionConfirmation:t.onRespondActionConfirmation,onAuthorizeConnector:t.onAuthorizeConnector,onStopBrowserSession:t.onStopBrowserSession,onBrowserRecovery:t.onBrowserRecovery},null,8,[`message`,`messages`,`question`,`application`,`onEdit`,`onRestart`,`onAnswerAskUserQuestion`,`onSkipAskUserQuestion`,`onRespondConnectorConsent`,`onRespondActionConfirmation`,`onAuthorizeConnector`,`onStopBrowserSession`,`onBrowserRecovery`]))),128))])):o(``,!0),e(`div`,Fn,[e(`div`,In,[a(N)]),a(P,{question:t.question,"onUpdate:question":c[2]||=e=>t.question=e,answering:t.answering,ready:t.ready,references:t.references,"onUpdate:references":c[3]||=e=>t.references=e,onSubmit:t.onSubmit,onStop:t.onStop},null,8,[`question`,`answering`,`ready`,`references`,`onSubmit`,`onStop`]),e(`div`,Ln,[a(F),a(I,{class:`composer-disclaimer`})])])],2)]),_:1})}var zn=Y(On,[[`render`,Rn],[`__scopeId`,`data-v-0748cf48`]]);export{zn as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,L as n,at as r,j as i,mt as a,tt as o,z as s}from"./vendor-chart-Dw-P17PN.js";import{t as c}from"./tooltip-BPdAozKj.js";import{t as l}from"./check-C3_2-V6X.js";import{t as u}from"./copy-DRq4dd9Q.js";import{O as d,sn as f}from"./index-Ckt9JRr7.js";var p=s({name:`CopyToClipboard`,components:{ConfirmIcon:l,CopyIcon:u,ElTooltip:c},props:{content:{type:[String,Number],required:!1,default:``}},data(){return{copied:!1}},methods:{onCopy(){this.content&&(f(this.content.toString(),{debug:!0}),this.copied=!0,setTimeout(()=>{this.copied=!1},3e3))}}}),m=[`aria-label`,`title`];function h(s,c,l,u,d,f){let p=r(`copy-icon`),h=r(`el-tooltip`),g=r(`confirm-icon`);return s.copied?(o(),i(h,{key:1,visible:s.copied,effect:`dark`,content:s.$t(`common.message.copied`),placement:`bottom`},{default:a(()=>[n(g,{class:`icon-check`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`visible`,`content`])):(o(),i(h,{key:0,effect:`dark`,content:s.$t(`common.button.copy`),placement:`bottom`},{default:a(()=>[e(`button`,{type:`button`,class:`icon-copy`,"aria-label":s.$t(`common.button.copy`),title:s.$t(`common.button.copy`),onClick:c[0]||=t((...e)=>s.onCopy&&s.onCopy(...e),[`stop`])},[n(p,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,m)]),_:1},8,[`content`]))}var g=d(p,[[`render`,h],[`__scopeId`,`data-v-2da90d99`]]);export{g as t};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,L as n,at as r,j as i,mt as a,tt as o,z as s}from"./vendor-chart-Dw-P17PN.js";import{t as c}from"./tooltip-DKF_sGto.js";import{t as l}from"./check-sZ3LdzYe.js";import{t as u}from"./copy-CS92scYJ.js";import{O as d,cn as f}from"./index-DKnFv8oI.js";var p=s({name:`CopyToClipboard`,components:{ConfirmIcon:l,CopyIcon:u,ElTooltip:c},props:{content:{type:[String,Number],required:!1,default:``}},data(){return{copied:!1}},methods:{onCopy(){this.content&&(f(this.content.toString(),{debug:!0}),this.copied=!0,setTimeout(()=>{this.copied=!1},3e3))}}}),m=[`aria-label`,`title`];function h(s,c,l,u,d,f){let p=r(`copy-icon`),h=r(`el-tooltip`),g=r(`confirm-icon`);return s.copied?(o(),i(h,{key:1,visible:s.copied,effect:`dark`,content:s.$t(`common.message.copied`),placement:`bottom`},{default:a(()=>[n(g,{class:`icon-check`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`visible`,`content`])):(o(),i(h,{key:0,effect:`dark`,content:s.$t(`common.button.copy`),placement:`bottom`},{default:a(()=>[e(`button`,{type:`button`,class:`icon-copy`,"aria-label":s.$t(`common.button.copy`),title:s.$t(`common.button.copy`),onClick:c[0]||=t((...e)=>s.onCopy&&s.onCopy(...e),[`stop`])},[n(p,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,m)]),_:1},8,[`content`]))}var g=d(p,[[`render`,h],[`__scopeId`,`data-v-2da90d99`]]);export{g as t};