@acedatacloud/nexior 3.349.1 → 3.349.2

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 (247) hide show
  1. package/dist/assets/{ApiCodeButton-DQfIqta7.js → ApiCodeButton-Ck-LkZnA.js} +1 -1
  2. package/dist/assets/{Artifacts-kWL9Riji.js → Artifacts-BgIY0V5w.js} +1 -1
  3. package/dist/assets/{AskUserQuestionCard-F6QltHc7.js → AskUserQuestionCard-BHIzmvpA.js} +1 -1
  4. package/dist/assets/{AudioPreview-64v3DHym.js → AudioPreview-B-vGM5ZE.js} +1 -1
  5. package/dist/assets/{Auth-D6M98il0.js → Auth-BSB5j2IR.js} +1 -1
  6. package/dist/assets/{Bare-lk4XPATw.js → Bare-CGpzlaiP.js} +1 -1
  7. package/dist/assets/{BotPlaceholder-DUy5q_lY.js → BotPlaceholder-SAI3U7Vk.js} +1 -1
  8. package/dist/assets/{BottomFooter-Djj35Gv6.js → BottomFooter-BPu8gJnO.js} +1 -1
  9. package/dist/assets/{Callback-CUicfzzX.js → Callback-DI7I7e9o.js} +1 -1
  10. package/dist/assets/{CodeSnippet-C6IMRLP5.js → CodeSnippet-nfL3VN6b.js} +1 -1
  11. package/dist/assets/{Console-tm3KZ31s.js → Console-C1p-WtRP.js} +1 -1
  12. package/dist/assets/{Consumption-Bwtr-oKm.js → Consumption-JN0X0f8c.js} +1 -1
  13. package/dist/assets/{Conversation-BR2OsN-v.js → Conversation-C2YzpBK3.js} +1 -1
  14. package/dist/assets/{Conversation-Cx2puCv5.js → Conversation-C348UZiO.js} +1 -1
  15. package/dist/assets/{CopyToClipboard-BC8MgUTU.js → CopyToClipboard-DOx2-KTG.js} +1 -1
  16. package/dist/assets/{Detail-BT1KV9_K.js → Detail-MUwXxjGI.js} +2 -2
  17. package/dist/assets/{Extra-BrfHDlNl.js → Extra-DefQxg0y.js} +1 -1
  18. package/dist/assets/{FilePreview-BsvcYriG.js → FilePreview-CibPHhpy.js} +1 -1
  19. package/dist/assets/{Hailuo-CXcL-krx.js → Hailuo-CE5R8cCt.js} +1 -1
  20. package/dist/assets/{History-BZjDOAbi.js → History-CQt5uXkC.js} +1 -1
  21. package/dist/assets/{ImagePreview-COWWmcN6.js → ImagePreview-CSSReHgL.js} +1 -1
  22. package/dist/assets/{ImageWrapper-Cm2rWx3d.js → ImageWrapper-DkF7PVGL.js} +1 -1
  23. package/dist/assets/{Index-Cw5emgdO.js → Index-B5TInMYN.js} +1 -1
  24. package/dist/assets/{Index-wIABtMV9.js → Index-B7vEEPhg.js} +1 -1
  25. package/dist/assets/{Index-BjNd8nJ_2.js → Index-BDnHLDfB2.js} +1 -1
  26. package/dist/assets/{Index-B3NFE_m2.js → Index-BIEqYgeq.js} +1 -1
  27. package/dist/assets/{Index-D_m4uHK92.js → Index-B_o8lp612.js} +1 -1
  28. package/dist/assets/{Index-CqskEb2x.js → Index-BmXYmlZt.js} +1 -1
  29. package/dist/assets/{Index-DT_HG8rV.js → Index-Bo9HAK0V.js} +1 -1
  30. package/dist/assets/{Index-Y5988nG3.js → Index-BxkXq-kP.js} +1 -1
  31. package/dist/assets/{Index-D2B6uJ-h.js → Index-ByI27Xqj.js} +1 -1
  32. package/dist/assets/{Index-jM4hJZCH.js → Index-C82TTXNf.js} +1 -1
  33. package/dist/assets/{Index-Bsr0Y0-7.js → Index-CBRHBLT-.js} +1 -1
  34. package/dist/assets/{Index-D6YsyB-8.js → Index-CCfbH63M.js} +1 -1
  35. package/dist/assets/{Index-DyI3f68Y.js → Index-CETeiJqR.js} +1 -1
  36. package/dist/assets/{Index-CM_dFqwv.js → Index-Cg-dC_Jb.js} +1 -1
  37. package/dist/assets/{Index-BKixWAdW.js → Index-Cr4TQ-xE.js} +1 -1
  38. package/dist/assets/{Index-CGMLyKiA.js → Index-DDUzpZ0O.js} +1 -1
  39. package/dist/assets/{Index-CDrAXXyt.js → Index-DNo4I4BL.js} +1 -1
  40. package/dist/assets/{Index-Dxfy1h192.js → Index-DYteu8It2.js} +1 -1
  41. package/dist/assets/{Index-a6RmlG1c.js → Index-DZx0iwsI.js} +1 -1
  42. package/dist/assets/{Index-lHrMgoRp.js → Index-DaXmhISA.js} +1 -1
  43. package/dist/assets/{Index-CCTvgJ6F.js → Index-DfVd1UkS.js} +1 -1
  44. package/dist/assets/{Index-WHvyEe86.js → Index-Do3syugm.js} +1 -1
  45. package/dist/assets/{Index-RIz17uAA.js → Index-DpbjqT2k.js} +1 -1
  46. package/dist/assets/{Index-CPCPDvtj.js → Index-DxD497tW.js} +1 -1
  47. package/dist/assets/{Index-pP7LKfCF.js → Index-FNMBrHbM.js} +1 -1
  48. package/dist/assets/{Index-B2mhxxRK.js → Index-FQ4q5-hl.js} +1 -1
  49. package/dist/assets/{Index-ROnaQL-D.js → Index-G-IlVG_I.js} +1 -1
  50. package/dist/assets/{Index-Bl91_uC82.js → Index-NTeyVOvk2.js} +1 -1
  51. package/dist/assets/{Index-BjOkqHzx.js → Index-i5okuoPn.js} +1 -1
  52. package/dist/assets/{Index-DoNGPVE6.js → Index-iKaft8ke.js} +1 -1
  53. package/dist/assets/{Index-DTLbeAxS.js → Index-q8_pYIR6.js} +1 -1
  54. package/dist/assets/{Index-9Ay0leMc.js → Index-wD6dVDos.js} +1 -1
  55. package/dist/assets/{Invitees-BILT3z2_.js → Invitees-DS4bwsvn.js} +1 -1
  56. package/dist/assets/{List-npLXSfbK.js → List-Bpu2Pidt.js} +1 -1
  57. package/dist/assets/{List-C3nDlEjr.js → List-C9Z8Wip0.js} +1 -1
  58. package/dist/assets/{List-B2Ch3yc5.js → List-DAeJuNL1.js} +1 -1
  59. package/dist/assets/{LocalTools-C3A7PNEU.js → LocalTools-CDaNo5_1.js} +1 -1
  60. package/dist/assets/{LocalTools-8kExdDm8.js → LocalTools-CHjjKZLq.js} +1 -1
  61. package/dist/assets/{Logo-BQHbeQsM.js → Logo-DdeUQOfD.js} +1 -1
  62. package/dist/assets/{Main-BdJ6YdEi.js → Main-DwWx37vb.js} +1 -1
  63. package/dist/assets/{Message-DtsaQttD.js → Message-HtQyFDWX.js} +1 -1
  64. package/dist/assets/{Model-K5ShzHzz.js → Model-BVtu2MqI.js} +1 -1
  65. package/dist/assets/{Navigator-Bv_MscZu.js → Navigator-D4znkCq3.js} +3 -3
  66. package/dist/assets/{NotFound-CuZnXKE2.js → NotFound-DUFo-kbQ.js} +1 -1
  67. package/dist/assets/{Pay-CgY8eRaL.js → Pay-BGp7Pc6d.js} +1 -1
  68. package/dist/assets/{Player-C0lraAbb.js → Player-DPDc2wPX.js} +1 -1
  69. package/dist/assets/{Poivelle-dw68Js7k.js → Poivelle-DYy7nBfz.js} +1 -1
  70. package/dist/assets/{PromptTextarea-DIx8KWwe.js → PromptTextarea-O8KxwMGn.js} +1 -1
  71. package/dist/assets/{RealtimeCall-CQB14u7k.js → RealtimeCall-BamozLji.js} +1 -1
  72. package/dist/assets/{ScheduledTasks-zGZ0ySiy.js → ScheduledTasks-DawIJs2a.js} +1 -1
  73. package/dist/assets/{Status-D-sl3ntz.js → Status-DIFSbgzO.js} +1 -1
  74. package/dist/assets/{Subscribe-DhdmXmRy.js → Subscribe-DBMALSdv.js} +1 -1
  75. package/dist/assets/{TabSwitcher-p-qcmsep.js → TabSwitcher-BtIo_WJk.js} +1 -1
  76. package/dist/assets/{Tts-DpGGF8dP.js → Tts-BFhwi7Nm.js} +1 -1
  77. package/dist/assets/{VideoPlayer-CYq2VZJJ.js → VideoPlayer-BnwIjt1E.js} +1 -1
  78. package/dist/assets/{alert-DIqm-Kad.js → alert-G37GiXIg.js} +1 -1
  79. package/dist/assets/arrow-down-B47oLEZg.js +1 -0
  80. package/dist/assets/{arrow-down-wide-narrow-sZbuga-c.js → arrow-down-wide-narrow-Bw3-m9uw.js} +1 -1
  81. package/dist/assets/arrow-left-xCa4y53k.js +1 -0
  82. package/dist/assets/arrow-right-ZB-S5Hdw.js +1 -0
  83. package/dist/assets/arrow-up-BeYMyDMK.js +1 -0
  84. package/dist/assets/{avatar-C1vjMCSH.js → avatar-BsiZaXKt.js} +1 -1
  85. package/dist/assets/{basic-Cc41Fhmw.js → basic-CUD9ixpS.js} +1 -1
  86. package/dist/assets/{book-open-BbaTABUc.js → book-open-VOA-qRz-.js} +1 -1
  87. package/dist/assets/{box-DzrSsXb8.js → box-BTYdpeSs.js} +1 -1
  88. package/dist/assets/{boxes-CbI3ri12.js → boxes-wDC71gk_.js} +1 -1
  89. package/dist/assets/{brain-yOHAoTDj.js → brain-CVKUI3Ty.js} +1 -1
  90. package/dist/assets/{chart-no-axes-combined-FKmtdBaZ.js → chart-no-axes-combined-Css_xsI4.js} +1 -1
  91. package/dist/assets/{chat-DWuPz9vw.js → chat-Cluz0DyK.js} +1 -1
  92. package/dist/assets/check-D47LmiyR.js +1 -0
  93. package/dist/assets/chevron-down-BumkMWkr.js +1 -0
  94. package/dist/assets/chevron-right-DJAkv6gb.js +1 -0
  95. package/dist/assets/circle-check-D5h_jiB2.js +1 -0
  96. package/dist/assets/{circle-question-mark-DE0O8vxY.js → circle-question-mark-PRKtc95j.js} +1 -1
  97. package/dist/assets/{clipboard-list-Rsq5M2Nz.js → clipboard-list-DS2oQz8T.js} +1 -1
  98. package/dist/assets/clock-BbOTrjoQ.js +1 -0
  99. package/dist/assets/code-DIu2zrn0.js +1 -0
  100. package/dist/assets/{codingBridge-B10viDZh.js → codingBridge-Bfu7FDAD.js} +1 -1
  101. package/dist/assets/{codingBridgeNotify-BNlDtT0c.js → codingBridgeNotify--CrnyiFc.js} +2 -2
  102. package/dist/assets/{coins-MP0mZyiq.js → coins-CbJVFUNa.js} +1 -1
  103. package/dist/assets/{collapse-0Kxpo1XO.js → collapse-D-Az5Y1x.js} +1 -1
  104. package/dist/assets/{copy-BuBuMUSy.js → copy-BV2l4S4i.js} +1 -1
  105. package/dist/assets/{createTaskActions-HLn9rRlN.js → createTaskActions-Dc-9CHrk.js} +1 -1
  106. package/dist/assets/{digitalhuman-B88DD4iR.js → digitalhuman-Dz67yLQj.js} +1 -1
  107. package/dist/assets/{dollar-sign-atK6VBbL.js → dollar-sign-C1g65vkD.js} +1 -1
  108. package/dist/assets/{download-BfG9EpAP.js → download-DH4XAzhp.js} +1 -1
  109. package/dist/assets/{drawer-DcAaZIVn.js → drawer-BF8tPGkj.js} +1 -1
  110. package/dist/assets/{dropdown-CsUCrZAZ.js → dropdown-BPFUku-f.js} +1 -1
  111. package/dist/assets/{dropdown-BK55ixdu.js → dropdown-Dxiw3zEy.js} +1 -1
  112. package/dist/assets/{ellipsis-In1Yb9VJ.js → ellipsis-Dne0PaxK.js} +1 -1
  113. package/dist/assets/{esm-CS65Xs2R.js → esm-BLmcHm-_.js} +1 -1
  114. package/dist/assets/{esm-Br7a3VFs.js → esm-D2EUd9-p.js} +2 -2
  115. package/dist/assets/{esm-C06KdT5r.js → esm-D3RGWycH.js} +1 -1
  116. package/dist/assets/{esm-CJSkUzDW.js → esm-D48kK9Ia.js} +3 -3
  117. package/dist/assets/{esm-JkKD4-F_.js → esm-DcMLRHGU.js} +1 -1
  118. package/dist/assets/{esm-D4oWOswP.js → esm-VF3xOK5d.js} +2 -2
  119. package/dist/assets/esm-VeU-Svd3.js +1 -0
  120. package/dist/assets/{external-link-BEIhmD26.js → external-link-Y1fuqa_d.js} +1 -1
  121. package/dist/assets/{eye-C1bTVOBo.js → eye-uumNqt6F.js} +1 -1
  122. package/dist/assets/{file-DD9Lna7S.js → file-B6BY8JCh.js} +1 -1
  123. package/dist/assets/{file-output-bhQpbo5l.js → file-output-BRGppmHm.js} +1 -1
  124. package/dist/assets/{file-text-BN1gU3ZM.js → file-text-BD_ZgyAJ.js} +1 -1
  125. package/dist/assets/{fish-Dpe8gRq6.js → fish-D0SCi3ei.js} +1 -1
  126. package/dist/assets/{flux-BuA3BIs0.js → flux-QvdaqKdp.js} +1 -1
  127. package/dist/assets/{folder-rv9DxoE4.js → folder-D8OqMpU-.js} +1 -1
  128. package/dist/assets/gauge-kqBdc9W1.js +1 -0
  129. package/dist/assets/{globe-PJ9sTZNb.js → globe-DogeYs6l.js} +1 -1
  130. package/dist/assets/{grokvideo-fqvMBEh2.js → grokvideo-DyWrWpO4.js} +1 -1
  131. package/dist/assets/{hailuo-BOh0rePI.js → hailuo-m02yWO8T.js} +1 -1
  132. package/dist/assets/{headphones-CR_6T7Wm.js → headphones-B24PnKmj.js} +1 -1
  133. package/dist/assets/{history-ba0-pw0K.js → history-hh_iVs0t.js} +1 -1
  134. package/dist/assets/{house-BnLmSfxc.js → house-DMuPgP0K.js} +1 -1
  135. package/dist/assets/{image-B13GFkdr.js → image-4hDRDwRY.js} +1 -1
  136. package/dist/assets/{index-S2D3KxIN.js → index-dzU0SACS.js} +3 -3
  137. package/dist/assets/{index.browser.esm-9DXoovs-.js → index.browser.esm-DEBg8Czw.js} +1 -1
  138. package/dist/assets/{index.es-CR3OWAv9.js → index.es-B_JRhb1z.js} +1 -1
  139. package/dist/assets/{info-B5kD0bjW.js → info-C7eq8W70.js} +1 -1
  140. package/dist/assets/{input-number-bfnLLHoF.js → input-number-DwjoHB_t.js} +1 -1
  141. package/dist/assets/{key-round-Cu7RQ2TD.js → key-round-CbX1QjS3.js} +1 -1
  142. package/dist/assets/{kling-2hKUY8Vt.js → kling-Uz16T18I.js} +1 -1
  143. package/dist/assets/{languages-DyqDD_jY.js → languages-kMgQhORN.js} +1 -1
  144. package/dist/assets/{laptop-CkBPu-wQ.js → laptop--KTFz907.js} +1 -1
  145. package/dist/assets/{lightbulb-Bt0-3_2v.js → lightbulb-Btwo92TP.js} +1 -1
  146. package/dist/assets/{link-B2fUiu3P.js → link-BHUi4UzQ.js} +1 -1
  147. package/dist/assets/loader-circle-Chlmw50N.js +1 -0
  148. package/dist/assets/{lock-BN9HCeSw.js → lock-HFF7LqQ6.js} +1 -1
  149. package/dist/assets/{luma-DfCvm1--.js → luma-B8gBcwfK.js} +1 -1
  150. package/dist/assets/{maestro-Dwk7RTTU.js → maestro-DtHatUjf.js} +1 -1
  151. package/dist/assets/{mail-rIZF6fYg.js → mail-Cf8LFguX.js} +1 -1
  152. package/dist/assets/{message-circle-BwF7ok3T.js → message-circle-75uDV2HU.js} +1 -1
  153. package/dist/assets/{mic-hCKzZgRm.js → mic-U9HFofCv.js} +1 -1
  154. package/dist/assets/{midjourney-D9afYoFk.js → midjourney-DLsZDLHN.js} +1 -1
  155. package/dist/assets/{mobileLocalExec-B5JnmUhl.js → mobileLocalExec-Jy6peL1O.js} +2 -2
  156. package/dist/assets/{monitor-DwUIFVs4.js → monitor-CaLaxqsl.js} +1 -1
  157. package/dist/assets/{mouse-pointer-2-DhUGQ7ZH.js → mouse-pointer-2-OdaCocrT.js} +1 -1
  158. package/dist/assets/music-2-Bntsr1pc.js +1 -0
  159. package/dist/assets/{nanobanana-DA2GduwI.js → nanobanana-Dl-ipICX.js} +1 -1
  160. package/dist/assets/{omni-xmJPCNtQ.js → omni-CI7RALc3.js} +1 -1
  161. package/dist/assets/{openaiimage-2fQ-9rfR.js → openaiimage-x5VnybkH.js} +1 -1
  162. package/dist/assets/{pagination-DtHw8A6D.js → pagination-Bzi2EMHv.js} +1 -1
  163. package/dist/assets/{pagination-V-HQo9KR.js → pagination-C5nrzUF9.js} +1 -1
  164. package/dist/assets/{pagination-C60kxWZe.js → pagination-DZKa3-YT.js} +1 -1
  165. package/dist/assets/{palette-B6_cijkw.js → palette-Dcz8R07T.js} +1 -1
  166. package/dist/assets/{paperclip-CFrO-Wn5.js → paperclip-C9CPT-QH.js} +1 -1
  167. package/dist/assets/{pause-DaFJqaMW.js → pause-B7nZk56m.js} +1 -1
  168. package/dist/assets/{pencil-B9copLoS.js → pencil-DjYsRqzY.js} +1 -1
  169. package/dist/assets/{pika-CN3tdiBe.js → pika-JthT3pXY.js} +1 -1
  170. package/dist/assets/{pixverse-BAFM6H2P.js → pixverse-BdQw9oon.js} +1 -1
  171. package/dist/assets/play-D4UKBipL.js +1 -0
  172. package/dist/assets/{plug-CJn2rNBP.js → plug-Pqr_YrfP.js} +1 -1
  173. package/dist/assets/plus-Yte47cek.js +1 -0
  174. package/dist/assets/{poivelle-ChIyy-EH.js → poivelle-BhoxBCwR.js} +1 -1
  175. package/dist/assets/{popover-Dii1mMtm.js → popover-vu3TWrhj.js} +1 -1
  176. package/dist/assets/{producer-a40YkPpg.js → producer-DqmOMlav.js} +1 -1
  177. package/dist/assets/{qrart-CVYY3JqO.js → qrart-wpmoj2Md.js} +1 -1
  178. package/dist/assets/{realtime-D-hgT5rf.js → realtime-Ce9utybp.js} +1 -1
  179. package/dist/assets/{refresh-cw-Dexs11YW.js → refresh-cw-CfsQ44rr.js} +1 -1
  180. package/dist/assets/rotate-ccw-C2vE6W20.js +1 -0
  181. package/dist/assets/rotate-cw-B3ZTq3Bo.js +1 -0
  182. package/dist/assets/{row-DJjKecw-.js → row-ig5nVOkc.js} +1 -1
  183. package/dist/assets/search-Dd9GL0kL.js +1 -0
  184. package/dist/assets/{seedance-Bkhqwyxg.js → seedance-tg7fYegi.js} +1 -1
  185. package/dist/assets/{seedream-XE2D-OF0.js → seedream-BN7uBnTq.js} +1 -1
  186. package/dist/assets/{select-wPYO0KL0.js → select--z-fac6_.js} +1 -1
  187. package/dist/assets/{serp-ISzYa1VG.js → serp-B6cjTPwx.js} +1 -1
  188. package/dist/assets/{shield-ltlAnxJj.js → shield-DTxeqQnl.js} +1 -1
  189. package/dist/assets/{shuffle-DmJvfh5Q.js → shuffle-BGv-o6iw.js} +1 -1
  190. package/dist/assets/{slider-y-dr3F-C.js → slider-7iC9uVCH.js} +1 -1
  191. package/dist/assets/{sliders-horizontal-CI4HLf6g.js → sliders-horizontal-BJThi7W3.js} +1 -1
  192. package/dist/assets/{solana-wallets-BlV5vs9p.js → solana-wallets-BOOwBWgF.js} +2 -2
  193. package/dist/assets/{solana-wallets-vue-IyI9vQtZ.js → solana-wallets-vue-CeTGdA4N.js} +1 -1
  194. package/dist/assets/{sora-H7mbBzEU.js → sora-CmhEupYX.js} +1 -1
  195. package/dist/assets/{sparkles-DTtL3_VY.js → sparkles-BXttUKHs.js} +1 -1
  196. package/dist/assets/square-DUN4iYgL.js +1 -0
  197. package/dist/assets/{store-plcsEF7T.js → store-f5a0TlJm.js} +1 -1
  198. package/dist/assets/{suno-B9NnVc_f.js → suno-CMpuwwKN.js} +1 -1
  199. package/dist/assets/{switch-CGc7vZAq.js → switch-CU7Lbydn.js} +1 -1
  200. package/dist/assets/{table-BUZvX-Et.js → table-B1ktVOIV.js} +1 -1
  201. package/dist/assets/{tabs-CeP4BX60.js → tabs-CMeHhbQd.js} +1 -1
  202. package/dist/assets/{tag-Brs_vqpG.js → tag-D88Sfg4N.js} +1 -1
  203. package/dist/assets/terminal-BXyA_hw_.js +1 -0
  204. package/dist/assets/{time-picker-DcBgjET5.js → time-picker-D3G4t_oE.js} +1 -1
  205. package/dist/assets/{tooltip-DjLl_Tv9.js → tooltip-CVVApYjJ.js} +1 -1
  206. package/dist/assets/{trash-2-jm25a3wz.js → trash-2-B7h9iX5Q.js} +1 -1
  207. package/dist/assets/{triangle-alert-RGg8X9Hu.js → triangle-alert-C_NcfP7e.js} +1 -1
  208. package/dist/assets/{upload-CIMqvT63.js → upload-DRjQvPEd.js} +1 -1
  209. package/dist/assets/{upload-D-5KHpRy.js → upload-GC5EGmwp.js} +1 -1
  210. package/dist/assets/user-DAcxFEzJ.js +1 -0
  211. package/dist/assets/{veo-DrzkEdnG.js → veo-aFwNCFqW.js} +1 -1
  212. package/dist/assets/{video-CeuAAsEB.js → video-DzECS7d8.js} +1 -1
  213. package/dist/assets/{volume-2-eVailN2d.js → volume-2-P5c2kRYc.js} +1 -1
  214. package/dist/assets/{wallet-CX9SKZRT.js → wallet-Dx1JWzUk.js} +1 -1
  215. package/dist/assets/{wan-C0mdV9Rz.js → wan-BSz5Kzfp.js} +1 -1
  216. package/dist/assets/{wand-sparkles-DIimd5K-.js → wand-sparkles-BQfGRD0P.js} +1 -1
  217. package/dist/assets/{web-BVpxeVn9.js → web-Bd7fTTXa.js} +1 -1
  218. package/dist/assets/{web-BO8Wllv3.js → web-CQd8Y7AZ.js} +1 -1
  219. package/dist/assets/{web-BO5Pdh_K.js → web-Jqmx6K36.js} +1 -1
  220. package/dist/assets/{web-wBLWPFcq.js → web-bobTX3fT.js} +1 -1
  221. package/dist/assets/{web-B7xnbizz.js → web-sGhtaPRt.js} +1 -1
  222. package/dist/assets/{webextrator-aanjbblU.js → webextrator-Blj-ynVW.js} +1 -1
  223. package/dist/assets/{zap-BsvIhLIz.js → zap-BAyq1MAX.js} +1 -1
  224. package/dist/index.html +1 -1
  225. package/package.json +1 -1
  226. package/dist/assets/arrow-down-Dh452YIC.js +0 -1
  227. package/dist/assets/arrow-left-Ch_lXtQi.js +0 -1
  228. package/dist/assets/arrow-right-wyaZljl1.js +0 -1
  229. package/dist/assets/arrow-up-lL0oPCkq.js +0 -1
  230. package/dist/assets/check-pR3vm7Fd.js +0 -1
  231. package/dist/assets/chevron-down-CjOUzYER.js +0 -1
  232. package/dist/assets/chevron-right-hQDGFAdA.js +0 -1
  233. package/dist/assets/circle-check-BRrtyFQR.js +0 -1
  234. package/dist/assets/clock-CYQS4x6R.js +0 -1
  235. package/dist/assets/code-BW5Yks2E.js +0 -1
  236. package/dist/assets/esm-DJikXHl0.js +0 -1
  237. package/dist/assets/gauge-B1-tdKSR.js +0 -1
  238. package/dist/assets/loader-circle-CVdEfzJY.js +0 -1
  239. package/dist/assets/music-2-Dt2ZUjFq.js +0 -1
  240. package/dist/assets/play-V3reP3Bw.js +0 -1
  241. package/dist/assets/plus-C0Y7fZjt.js +0 -1
  242. package/dist/assets/rotate-ccw-CtkUdLFt.js +0 -1
  243. package/dist/assets/rotate-cw-B5OvUSKK.js +0 -1
  244. package/dist/assets/search-gH7NbLUO.js +0 -1
  245. package/dist/assets/square-9zBx8cT8.js +0 -1
  246. package/dist/assets/terminal-Bk-Dcy9N.js +0 -1
  247. package/dist/assets/user-CWDZ6e_c.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,S as c,T as l,at as u,ht as d,j as f,mt as p,ot as ee,rt as m,tt as h,x as te,z as g}from"./vendor-chart-Dw-P17PN.js";import{r as _,t as v}from"./select-wPYO0KL0.js";import{n as y,t as b}from"./tabs-CeP4BX60.js";import{n as x,t as S}from"./form-BNJ9LdPs.js";import{t as C}from"./tooltip-DjLl_Tv9.js";import{t as w}from"./alert-DIqm-Kad.js";import{t as T}from"./avatar-CGdf6QsT.js";import{n as E,t as D}from"./checkbox-CeoqKfX8.js";import{r as O,t as k}from"./radio-DgDgyT2l.js";import{t as ne}from"./divider-BNWJAaA2.js";import{n as A,r as j,t as M}from"./dropdown-BK55ixdu.js";import{t as N}from"./empty-B1wenOj5.js";import{n as P,t as F}from"./skeleton-B3LIGUiE.js";import{t as I}from"./chevron-down-CjOUzYER.js";import{t as re}from"./chevron-right-hQDGFAdA.js";import{t as ie}from"./circle-check-BRrtyFQR.js";import{t as ae}from"./copy-BuBuMUSy.js";import{t as oe}from"./ellipsis-In1Yb9VJ.js";import{t as se}from"./external-link-BEIhmD26.js";import{t as ce}from"./lightbulb-Bt0-3_2v.js";import{t as le}from"./loader-circle-CVdEfzJY.js";import{t as ue}from"./lock-BN9HCeSw.js";import{t as de}from"./monitor-DwUIFVs4.js";import{t as fe}from"./plug-CJn2rNBP.js";import{t as L}from"./plus-C0Y7fZjt.js";import{t as pe}from"./search-gH7NbLUO.js";import{t as me}from"./shield-ltlAnxJj.js";import{t as he}from"./triangle-alert-RGg8X9Hu.js";import{Ai as R,Ci as ge,E as z,Ji as B,Li as _e,Ti as V,gr as H,ui as U,wi as ve,zi as W}from"./index-S2D3KxIN.js";var ye=ge(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),G=()=>({baseURL:`${U()}/api/v1`});function K(e,t){let n=q(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 q(e){return e?.connection_methods||[]}var J=new class{key=`connections`;async list(){return H.get(`/${this.key}/`,G())}async authorize(e){return H.post(`/${this.key}/authorize/`,e,G())}async authorizeCustom(e){return H.post(`/${this.key}/authorize-custom/`,e,G())}async exchangeCustom(e,t){return H.post(`/${this.key}/${e}/exchange-custom/`,t,G())}async refresh(e){return H.post(`/${this.key}/${e}/refresh/`,void 0,G())}async setDefault(e){return await H.post(`/connections/${e}/set-default/`,void 0,G())}async rename(e,t){return await H.patch(`/connections/${e}/`,{label:t},G())}async disconnect(e){return H.delete(`/${this.key}/${e}/`,G())}async rebindBrowserDevice(e,t){return H.put(`/${this.key}/${e}/browser-device/`,{browser_device_id:t},G())}async stopBrowserSessions(e){return H.post(`/${this.key}/${e}/browser-sessions/stop/`,void 0,G())}async tools(e){return H.get(`/${this.key}/${e}/tools/`,G())}async listCatalog(e={}){return H.get(`/connectors/`,{...G(),params:e})}async getCatalogItem(e){return H.get(`/connectors/${e}/`,G())}async catalogCategories(){return H.get(`/connectors/categories/`,G())}async installFromCatalog(e,t={}){return H.post(`/connectors/${e}/install/`,t,G())}async submitCatalogCredentials(e,t){return H.post(`/connectors/${e}/credentials/`,t,G())}},be=1e4,xe=`https://platform.acedata.cloud/documents/acedataext`;function Y(e){return e==null?``:typeof e==`string`?e:Array.isArray(e)?e.map(Y).filter(Boolean).join(`; `):typeof e==`object`?Object.values(e).map(Y).filter(Boolean).join(`; `):String(e)}var Se=g({name:`ByocCredentialsDialog`,components:{ElDialog:R,ElForm:S,ElFormItem:x,ElInput:B,ElSelect:_,ElOption:v,ElButton:W,SecurityIcon:me,WarningIcon:he},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:K(this.item)||null},schema(){return this.activeMethod?.credential.credential_schema||[]},isExtension(){return this.activeMethod?.credential.source===`extension`},ACE_EXTENSION_DOC(){return xe},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||V.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`)))},be);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){V.error(this.$t(`connection.byoc.extensionNoCookies`));return}let{data:t}=await J.submitCatalogCredentials(this.item.id,{payload:{cookies:e},method_id:this.activeMethod?.id,...this.createNew?{create_new:!0}:{}});V.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`)V.error(this.$t(`connection.byoc.extensionMissing`));else{let t=Y(e?.response?.data?.detail);V.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 J.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}:{}});V.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=Y(e?.response?.data?.detail);V.error(t||this.$t(`connection.message.installFailed`))}finally{this.submitting=!1}}}}}),Ce={key:0,class:`byoc-missing`},we={class:`byoc-missing-body`},Te={class:`byoc-missing-title`},Ee={class:`byoc-missing-text`},De=[`href`],Oe={class:`byoc-intro`},ke=[`href`],Ae={class:`byoc-steps`},je={class:`byoc-disclaimer`},Me={key:0,class:`byoc-intro`},Ne={key:2,class:`byoc-help`},Pe={class:`byoc-disclaimer`};function Fe(n,c,d,ee,te,g){let _=u(`warning-icon`),v=u(`el-button`),y=u(`security-icon`),b=u(`el-option`),x=u(`el-select`),S=u(`el-input`),C=u(`el-form-item`),w=u(`el-form`),T=u(`el-dialog`);return h(),f(T,{modelValue:n.visible,"onUpdate:modelValue":c[1]||=e=>n.visible=e,title:n.dialogTitle,width:`min(520px, 94vw)`,"append-to-body":``,"destroy-on-close":``,onClose:n.onClose},{footer:p(()=>[a(v,{onClick:n.onClose},{default:p(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),n.isExtension?(h(),s(l,{key:0},[n.extensionReady?(h(),f(v,{key:1,type:`primary`,loading:n.submitting,onClick:n.onCapture},{default:p(()=>[r(i(n.$t(`connection.byoc.extensionCapture`)),1)]),_:1},8,[`loading`,`onClick`])):(h(),f(v,{key:0,type:`primary`,loading:n.detecting,onClick:n.recheckExtension},{default:p(()=>[r(i(n.$t(`connection.byoc.extensionRecheck`)),1)]),_:1},8,[`loading`,`onClick`]))],64)):(h(),f(v,{key:1,type:`primary`,loading:n.submitting,onClick:n.onSubmit},{default:p(()=>[r(i(n.$t(`connection.byoc.submit`)),1)]),_:1},8,[`loading`,`onClick`]))]),default:p(()=>[n.isExtension?(h(),s(l,{key:0},[n.extensionReady?(h(),s(l,{key:1},[e(`p`,Oe,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,ke),e(`ol`,Ae,[e(`li`,null,[r(i(n.$t(`connection.byoc.extensionStepLogin`))+` `,1),n.loginUrl?(h(),f(v,{key:0,link:``,type:`primary`,onClick:n.openLogin},{default:p(()=>[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`,je,[a(y,{class:`byoc-shield`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`connection.byoc.disclaimer`)),1)])],64)):(h(),s(`div`,Ce,[a(_,{class:`byoc-missing-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`div`,we,[e(`p`,Te,i(n.$t(`connection.byoc.extensionMissingTitle`)),1),e(`p`,Ee,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(l,{key:1},[n.schema.length>0?(h(),s(`p`,Me,i(n.$t(`connection.byoc.intro`)),1)):o(``,!0),a(w,{ref:`formRef`,model:n.formModel,rules:n.formRules,"label-position":`top`,class:`byoc-form`,onSubmit:c[0]||=t(()=>{},[`prevent`])},{default:p(()=>[(h(!0),s(l,null,m(n.schema,e=>(h(),f(C,{key:e.key,label:e.label,prop:e.key},{default:p(()=>[e.type===`select`?(h(),f(x,{key:0,modelValue:n.formModel[e.key],"onUpdate:modelValue":t=>n.formModel[e.key]=t,placeholder:e.help||``,filterable:``,class:`byoc-input`},{default:p(()=>[(h(!0),s(l,null,m(e.options||[],e=>(h(),f(b,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(h(),f(S,{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`,Ne,i(e.help),1)):o(``,!0)]),_:2},1032,[`label`,`prop`]))),128))]),_:1},8,[`model`,`rules`]),e(`p`,Pe,[a(y,{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 Ie=z(Se,[[`render`,Fe],[`__scopeId`,`data-v-9a4fc02f`]]),Le=g({name:`ConnectorMethodPicker`,components:{ElDialog:R,ElTabs:y,ElTabPane:b,ElButton:W},props:{modelValue:{type:Boolean,default:!1},item:{type:Object,default:null}},emits:[`update:modelValue`,`select`],data(){return{visible:this.modelValue,selectedId:``}},computed:{methods(){return q(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=K(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}}}),Re={class:`picker-intro`},ze={class:`picker-tab-label`},Be={key:0,class:`picker-recommended`},Ve={key:0,class:`picker-pane-desc`};function He(t,n,c,d,ee,te){let g=u(`el-tab-pane`),_=u(`el-tabs`),v=u(`el-button`),y=u(`el-dialog`);return h(),f(y,{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:p(()=>[a(v,{onClick:t.onClose},{default:p(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),a(v,{type:`primary`,disabled:!t.selectedId,onClick:t.onConfirm},{default:p(()=>[r(i(t.$t(`common.button.confirm`)),1)]),_:1},8,[`disabled`,`onClick`])]),default:p(()=>[e(`p`,Re,i(t.$t(`connection.method.heading`)),1),a(_,{modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`picker-tabs`},{default:p(()=>[(h(!0),s(l,null,m(t.methods,n=>(h(),f(g,{key:n.id,name:n.id},{label:p(()=>[e(`span`,ze,[r(i(t.methodLabel(n))+` `,1),n.recommended?(h(),s(`span`,Be,i(t.$t(`connection.method.recommended`)),1)):o(``,!0)])]),default:p(()=>[t.methodDesc(n)?(h(),s(`p`,Ve,i(t.methodDesc(n)),1)):o(``,!0)]),_:2},1032,[`name`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`,`onClose`])}var Ue=z(Le,[[`render`,He],[`__scopeId`,`data-v-3a0a8526`]]),X=()=>({baseURL:`${U()}/api/v1`}),Z=new class{key=`browser-devices`;async list(){return H.get(`/${this.key}/`,X())}async rename(e,t){return H.patch(`/${this.key}/${e}/`,{name:t},X())}async delete(e){return H.delete(`/${this.key}/${e}/`,X())}async createPairingChallenge(){return H.post(`/${this.key}/pairing-challenges/`,{},X())}async listPendingClaims(){return H.get(`/${this.key}/pairing-claims/`,X())}async confirmClaim(e,t,n){return H.post(`/${this.key}/pairing-claims/${e}/confirm/`,{key_fingerprint:t,...n?{name:n}:{}},X())}async rejectClaim(e,t){return H.post(`/${this.key}/pairing-claims/${e}/reject/`,{key_fingerprint:t},X())}},Q=null,We=g({name:`BrowserPairingDialog`,components:{CopyIcon:ae,ElAlert:w,ElButton:W,ElDialog:R,ElDivider:ne,ElInput:B,ElSkeleton:F,LoadingIcon:le},props:{modelValue:{type:Boolean,default:!1}},emits:[`update:modelValue`,`paired`,`rejected`,`closed`],data(){return{visible:this.modelValue,loading:!1,polling:!1,challenge:Q?.expires_at_ms&&Q.expires_at_ms>Date.now()?Q: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 Z.createPairingChallenge();if(!this.visible||e!==this.requestGeneration)return;this.challenge=t,Q=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 Z.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),V.success(this.$t(`common.message.copied`))}catch{V.error(this.$t(`common.message.updateFailed`))}},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 Z.confirmClaim(e.claim_id,e.key_fingerprint,this.deviceName||void 0);if(!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;V.success(this.$t(`user.browserDevice.pairSuccess`)),this.$emit(`paired`,r.device),this.challenge=null,Q=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 Z.rejectClaim(e.claim_id,e.key_fingerprint),!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;V.success(this.$t(`user.browserDevice.rejectSuccess`)),this.$emit(`rejected`,e),this.challenge=null,Q=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`)}}}),Ge={key:0,class:`pairing-loading`},Ke={class:`pairing-intro`},qe={class:`pairing-code-row`},Je={class:`pairing-code`},Ye={class:`pairing-expiry`},Xe={class:`claim-title`},Ze={class:`claim-hint`},Qe={class:`claim-details`},$e={key:1,class:`waiting-claim`};function et(t,n,c,d,ee,m){let te=u(`el-alert`),g=u(`el-skeleton`),_=u(`copy-icon`),v=u(`el-button`),y=u(`el-divider`),b=u(`el-input`),x=u(`loading-icon`),S=u(`el-dialog`);return h(),f(S,{modelValue:t.visible,"onUpdate:modelValue":n[2]||=e=>t.visible=e,title:t.$t(`user.browserDevice.pairTitle`),width:`min(620px, 94vw)`,"append-to-body":``,"destroy-on-close":``,"close-on-click-modal":!1,onClosed:t.onClosed},{footer:p(()=>[t.claim?o(``,!0):(h(),f(v,{key:0,onClick:n[1]||=e=>t.visible=!1},{default:p(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1})),t.errorMessage&&!t.claim?(h(),f(v,{key:1,type:`primary`,loading:t.loading,onClick:t.startPairing},{default:p(()=>[r(i(t.$t(`user.browserDevice.tryAgain`)),1)]),_:1},8,[`loading`,`onClick`])):o(``,!0),t.claim?(h(),s(l,{key:2},[a(v,{type:`danger`,plain:``,loading:t.decision===`reject`,disabled:t.decision!==null||t.decisionExpired,onClick:t.reject},{default:p(()=>[r(i(t.$t(`user.browserDevice.rejectClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),a(v,{type:`primary`,loading:t.decision===`confirm`,disabled:t.decision!==null||t.decisionExpired,onClick:t.confirm},{default:p(()=>[r(i(t.$t(`user.browserDevice.confirmClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])],64)):o(``,!0)]),default:p(()=>[a(te,{title:t.$t(`user.browserDevice.localApprovalOnly`),type:`info`,closable:!1,"show-icon":``,class:`pairing-alert`},null,8,[`title`]),t.loading?(h(),s(`div`,Ge,[a(g,{rows:4,animated:``})])):t.challenge?(h(),s(l,{key:1},[e(`p`,Ke,i(t.$t(`user.browserDevice.pairInstructions`)),1),e(`div`,qe,[e(`code`,Je,i(t.challenge.code),1),a(v,{size:`small`,onClick:t.copyCode},{default:p(()=>[a(_,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`common.button.copy`)),1)]),_:1},8,[`onClick`])]),e(`p`,Ye,i(t.$t(`user.browserDevice.codeExpiresIn`,{seconds:t.secondsRemaining})),1),t.claim?(h(),s(l,{key:0},[a(y),e(`h3`,Xe,i(t.$t(`user.browserDevice.verifyClaimTitle`)),1),e(`p`,Ze,i(t.$t(`user.browserDevice.verifyClaimHint`)),1),e(`dl`,Qe,[e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.keyFingerprint`)),1),e(`dd`,null,[e(`code`,null,i(t.claim.key_fingerprint),1)])]),e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.platform`)),1),e(`dd`,null,i(t.claim.platform),1)]),e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.extensionVersion`)),1),e(`dd`,null,i(t.claim.extension_version),1)]),e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.origin`)),1),e(`dd`,null,[e(`code`,null,i(t.claim.origin),1)])])]),a(b,{modelValue:t.deviceName,"onUpdate:modelValue":n[0]||=e=>t.deviceName=e,modelModifiers:{trim:!0},placeholder:t.$t(`user.browserDevice.namePlaceholder`),maxlength:`128`,"show-word-limit":``},null,8,[`modelValue`,`placeholder`])],64)):(h(),s(`div`,$e,[a(x,{class:`waiting-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(t.$t(`user.browserDevice.waitingForAgent`)),1)]))],64)):o(``,!0),t.errorMessage?(h(),f(te,{key:2,title:t.errorMessage,type:`error`,closable:!1,"show-icon":``},null,8,[`title`])):o(``,!0)]),_:1},8,[`modelValue`,`title`,`onClosed`])}var tt=z(We,[[`render`,et],[`__scopeId`,`data-v-c2df4763`]]);function nt(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 rt=g({name:`BrowserDevicePicker`,components:{ElAlert:w,ElButton:W,ElDialog:R,ElEmpty:N,ElRadio:k,ElRadioGroup:O},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 nt(e,this.requiredCapabilities).missingCapabilities},compatible(e){return nt(e,this.requiredCapabilities).compatible},incompatibilityText(e){let t=nt(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 Z.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)}}}),it={key:1,class:`browser-policy`},at={class:`device-list`},ot={class:`device-name`},st={class:`device-meta`},ct={class:`device-meta`},lt={class:`device-digest`},ut={key:0,class:`device-missing`};function dt(t,n,c,te,g,_){let v=u(`el-alert`),y=u(`el-radio`),b=u(`el-radio-group`),x=u(`el-empty`),S=u(`el-button`),C=u(`el-dialog`),w=ee(`loading`);return h(),f(C,{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:p(()=>[a(S,{onClick:n[1]||=e=>t.$emit(`pair`)},{default:p(()=>[r(i(t.$t(`user.browserDevice.pairButton`)),1)]),_:1}),a(S,{type:`primary`,disabled:!t.selectedId,loading:t.installing,onClick:t.confirm},{default:p(()=>[r(i(t.$t(`connection.button.connect`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])]),default:p(()=>[t.loadError?(h(),f(v,{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`,it,i(t.$t(`connection.message.browserAllowedSites`))+`: `+i(t.origins.join(`, `)),1)):o(``,!0),a(v,{title:t.$t(`connection.message.browserHighPrivilegeDisclosure`),type:`warning`,closable:!1,"show-icon":``,class:`mb-4`},null,8,[`title`]),d((h(),s(`div`,at,[t.devices.length?(h(),f(b,{key:0,modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`device-options`},{default:p(()=>[(h(!0),s(l,null,m(t.devices,n=>(h(),f(y,{key:n.id,value:n.id,label:n.id,disabled:!t.compatible(n),border:``,class:`device-option`},{default:p(()=>[e(`span`,ot,i(n.name),1),e(`span`,st,i(n.platform)+` · v`+i(n.extension_version||`?`),1),e(`span`,ct,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`,lt,i(n.wire_contract_digest),1),t.compatible(n)?o(``,!0):(h(),s(`span`,ut,i(t.incompatibilityText(n)),1))]),_:2},1032,[`value`,`label`,`disabled`]))),128))]),_:1},8,[`modelValue`])):t.loading?o(``,!0):(h(),f(x,{key:1,description:t.$t(`user.browserDevice.empty`)},null,8,[`description`]))])),[[w,t.loading]])]),_:1},8,[`modelValue`,`title`,`onOpen`])}var ft=z(rt,[[`render`,dt],[`__scopeId`,`data-v-7eaca81f`]]);function $(){let e=new URL(`/connections/popup-return`,U());return e.searchParams.set(`opener_origin`,window.location.origin),e.toString()}var pt=`popup=yes,width=600,height=760,noopener=no,noreferrer=no`;function mt(e){let t=window.open(e,`acedata-connect`,pt);if(!t)return null;let n=new URL(U()).origin;return new Promise(e=>{let r=!1,i=t=>{r||(r=!0,window.removeEventListener(`message`,a),window.clearInterval(o),e(t))},a=e=>{if(e.origin!==n||e.source!==t)return;let r=e.data;if(!(!r||r.name!==`connection-result`)){i(r.data??{status:`success`});try{t.close()}catch{}}};window.addEventListener(`message`,a);let o=window.setInterval(()=>{t.closed&&i(null)},500)})}function ht(e){return String(e??``).normalize(`NFKC`).trim().toLowerCase()}function gt(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 q(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(ht).filter(Boolean).join(` `)}var _t=g({name:`BrowseConnectors`,components:{ElDialog:R,ElInput:B,ElSelect:_,ElOption:v,ElTooltip:C,ElDropdown:M,ElDropdownMenu:j,ElDropdownItem:A,AddIcon:L,ConnectionIcon:fe,ExpandDownIcon:I,LoadingIcon:le,SearchIcon:pe,SuccessIcon:ie,ByocCredentialsDialog:Ie,ConnectorMethodPicker:Ue,BrowserPairingDialog:tt,BrowserDevicePicker:ft},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=ht(this.query),t=this.items;return e&&(t=t.filter(t=>gt(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 J.listCatalog(e);this.items=t.items||[]}catch(e){V.error(e?.response?.data?.detail||e?.message||`Failed to load directory`)}finally{this.loading=!1}},async fetchFacets(){try{let{data:e}=await J.catalogCategories();this.facets=e.facets||[]}catch{this.facets=[]}},async onInstall(e){if(!e.installable)return;if(q(e).length>1){this.pickerItem=e,this.pickerVisible=!0;return}let t=K(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 J.installFromCatalog(e.id,{return_url:$(),method_id:t.id});if(n.type===`redirect`){let e=mt(n.authorization_url);if(!e){window.location.href=n.authorization_url;return}await e,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),V.success(this.$t(`connection.message.installed`,{name:e.name})),this.$emit(`installed`,{item:e,connection_id:n.connection_id})}catch(e){V.error(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 J.installFromCatalog(t.id,{return_url:$(),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),V.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}}}}}),vt={class:`browse-intro`},yt={class:`browse-toolbar`},bt={class:`browse-shell`},xt={class:`browse-sidebar`},St={class:`sidebar-section`},Ct=[`onClick`],wt={class:`sidebar-label`},Tt={key:0,class:`sidebar-count`},Et={class:`sidebar-section`},Dt={class:`sidebar-heading`},Ot=[`onClick`],kt={class:`sidebar-label`},At={key:0,class:`sidebar-count`},jt={class:`browse-grid-wrapper`},Mt={key:0,class:`browse-empty`},Nt={key:1,class:`browse-grid`},Pt={class:`card-head`},Ft={class:`card-icon`},It=[`src`,`alt`],Lt={class:`card-title-block`},Rt={class:`card-title-row`},zt={class:`card-title`},Bt={class:`card-meta`},Vt=[`title`],Ht={key:1,class:`card-pill card-pill-new`},Ut={key:2,class:`card-pill card-pill-trending`},Wt={key:3,class:`card-publisher`},Gt={class:`card-action-slot`},Kt=[`disabled`,`onClick`],qt={class:`ml-1`},Jt=[`aria-label`,`title`],Yt={class:`ml-1 card-action-count`},Xt={key:0,class:`card-description`};function Zt(t,c,te,g,_,v){let y=u(`search-icon`),b=u(`el-input`),x=u(`el-option`),S=u(`el-select`),C=u(`connection-icon`),w=u(`loading-icon`),T=u(`add-icon`),E=u(`el-tooltip`),D=u(`success-icon`),O=u(`expand-down-icon`),k=u(`el-dropdown-item`),ne=u(`el-dropdown-menu`),A=u(`el-dropdown`),j=u(`connector-method-picker`),M=u(`browser-pairing-dialog`),N=u(`browser-device-picker`),P=u(`byoc-credentials-dialog`),F=u(`el-dialog`),I=ee(`loading`);return h(),f(F,{modelValue:t.visible,"onUpdate:modelValue":c[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:p(()=>[e(`p`,vt,i(t.$t(`connection.message.browseHint`)),1),e(`div`,yt,[a(b,{modelValue:t.query,"onUpdate:modelValue":c[0]||=e=>t.query=e,class:`search-input`,size:`default`,clearable:``,placeholder:t.$t(`connection.placeholder.search`)},{prefix:p(()=>[a(y,{size:14,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`modelValue`,`placeholder`]),a(S,{modelValue:t.sort,"onUpdate:modelValue":c[1]||=e=>t.sort=e,size:`default`,class:`sort-select`,onChange:t.fetchItems},{default:p(()=>[a(x,{label:t.$t(`connection.label.featured`),value:`popular`},null,8,[`label`]),a(x,{label:t.$t(`connection.label.new`),value:`new`},null,8,[`label`]),a(x,{label:`A-Z`,value:`name`})]),_:1},8,[`modelValue`,`onChange`])]),d((h(),s(`div`,bt,[e(`aside`,xt,[e(`div`,St,[(h(!0),s(l,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`,wt,i(r.label),1),r.count>0?(h(),s(`span`,Tt,i(r.count),1)):o(``,!0)],10,Ct))),128))]),c[7]||=e(`div`,{class:`sidebar-divider`},null,-1),e(`div`,Et,[e(`div`,Dt,i(t.$t(`connection.field.account`)),1),(h(!0),s(l,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`,kt,i(r.label),1),r.count>0?(h(),s(`span`,At,i(r.count),1)):o(``,!0)],10,Ot))),128))])]),e(`section`,jt,[!t.loading&&t.filteredItems.length===0?(h(),s(`div`,Mt,i(t.$t(`connection.message.browseEmpty`)),1)):(h(),s(`div`,Nt,[(h(!0),s(l,null,m(t.filteredItems,c=>(h(),s(`article`,{key:c.id,class:`card`},[e(`div`,Pt,[e(`span`,Ft,[c.icon_url?(h(),s(`img`,{key:0,src:c.icon_url,alt:c.name},null,8,It)):(h(),f(C,{key:1,size:16,"aria-hidden":`true`,focusable:`false`}))]),e(`div`,Lt,[e(`div`,Rt,[e(`h4`,zt,i(c.name),1)]),e(`div`,Bt,[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,Vt)):c.is_new?(h(),s(`span`,Ht,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`,Wt,i(c.publisher),1)):o(``,!0)])]),c.installed?(h(),f(A,{key:1,trigger:`click`,placement:`bottom-end`,"popper-class":`connection-actions-popper`,onCommand:e=>t.onInstalledCommand(e,c)},{dropdown:p(()=>[a(ne,{class:`connection-actions-menu`},{default:p(()=>[a(k,{command:`addAccount`,disabled:!c.installable},{default:p(()=>[r(i(t.$t(`connection.button.addAccount`)),1)]),_:1},8,[`disabled`]),a(k,{command:`manage`},{default:p(()=>[r(i(t.$t(`connection.button.manageAccounts`)),1)]),_:1})]),_:2},1024)]),default:p(()=>[e(`button`,{type:`button`,class:`card-action card-action-installed`,"aria-label":t.accountLabel(c),title:t.accountLabel(c)},[a(D,{size:16,"aria-hidden":`true`,focusable:`false`}),e(`span`,Yt,i(t.accountCount(c)),1),a(O,{class:`ml-1 card-action-caret`,size:12,"aria-hidden":`true`,focusable:`false`})],8,Jt)]),_:2},1032,[`onCommand`])):(h(),f(E,{key:0,disabled:c.installable,content:t.$t(`skill.menu.soon`),placement:`top`},{default:p(()=>[e(`span`,Gt,[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(),f(w,{key:0,class:`icon-spin`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(T,{key:1,size:16,"aria-hidden":`true`,focusable:`false`})),e(`span`,qt,i(t.$t(`connection.button.install`)),1)],8,Kt)])]),_:2},1032,[`disabled`,`content`]))]),c.short_description||c.description?(h(),s(`p`,Xt,i(c.short_description||c.description),1)):o(``,!0)]))),128))]))])])),[[I,t.loading]]),a(j,{modelValue:t.pickerVisible,"onUpdate:modelValue":c[2]||=e=>t.pickerVisible=e,item:t.pickerItem,onSelect:t.onMethodSelected},null,8,[`modelValue`,`item`,`onSelect`]),a(M,{modelValue:t.pairingDialogVisible,"onUpdate:modelValue":c[3]||=e=>t.pairingDialogVisible=e,onPaired:t.onBrowserPaired},null,8,[`modelValue`,`onPaired`]),a(N,{ref:`browserDevicePicker`,modelValue:t.browserDevicePickerVisible,"onUpdate:modelValue":c[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(P,{modelValue:t.byocDialogVisible,"onUpdate:modelValue":c[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 Qt=g({name:`UserConnections`,components:{ElButton:W,ElTag:_e,ElAvatar:T,ElDialog:R,ElInput:B,ElCheckbox:D,ElCheckboxGroup:E,ElDropdown:M,ElDropdownMenu:j,ElDropdownItem:A,AddIcon:L,CollapseUpIcon:ye,ConnectionIcon:fe,DesktopIcon:de,ExpandDownIcon:I,ExpandRightIcon:re,ExternalLinkIcon:se,LockIcon:ue,MoreIcon:oe,SearchIcon:pe,SuggestionIcon:ce,BrowseConnectors:z(_t,[[`render`,Zt],[`__scopeId`,`data-v-b6e6bb0c`]]),ByocCredentialsDialog:Ie,ConnectorMethodPicker:Ue,BrowserPairingDialog:tt,BrowserDevicePicker:ft,ElSkeleton:F,ElSkeletonItem:P,ElTooltip:C},data(){return{connections:[],connectionsRequestId:0,manageRequestId:0,catalog:[],loading:!1,loadingCatalog:!1,firstLoadComplete:!1,refreshingId:null,searchQuery:``,selectedKey:null,collapsedGroups:{},faviconBlocked:{},customServerUrl:``,customName:``,customClientId:``,customClientSecret:``,customDialogVisible:!1,customAdvancedVisible:!1,customAuthorizing:!1,scopeDialogVisible:!1,scopeDialogCatalog:null,scopeDialogMethod:null,selectedScopes:[],mcpToolsByConnection:{},mcpToolsState:{},browseDialogVisible:!1,pendingCreateNew:!1,byocDialogVisible:!1,byocDialogCatalog:null,byocDialogMethod:null,pickerVisible:!1,pickerCatalog:null,pairingDialogVisible:!1,browserDevicePickerVisible:!1,browserDialogCatalog:null,browserDialogMethod:null,browserInstalling:!1,browserRebindConnectionId:null,pairedBrowserDevice:null}},computed:{catalogByIdentifier(){let e={};for(let t of this.catalog)t.identifier&&(e[t.identifier]=t);return e},catalogForConnection(){let e=this.catalogByIdentifier;return t=>{let n=t.connector_identifier;return n?e[n]:void 0}},detailActions(){let e=this.selectedItem,t=e?.connection;if(!e||!t)return[];let n=[],r=this.normalizedStatus(t.status)===`active`,i=!!e.catalog?.installable,a=this.refreshingId===t.id;return t.supports_refresh&&n.push({command:`refresh`,label:String(this.$t(`connection.button.refresh`)),disabled:a}),e.browserSession&&r&&(n.push({command:`rebind`,label:String(this.$t(`connection.button.rebindBrowserDevice`)),disabled:this.browserInstalling}),(t.browser_device?.active_session_count||0)>0&&n.push({command:`stopSessions`,label:String(this.$t(`connection.button.stopBrowserSessions`)),disabled:a})),e.catalog&&!e.browserSession&&(n.push({command:`reconnect`,label:String(this.$t(`connection.button.reconnect`)),disabled:!i}),n.push({command:`addAccount`,label:String(this.$t(`connection.button.addAccount`)),disabled:!i})),e.catalog&&n.push({command:`setDefault`,label:String(t.is_default?this.$t(`connection.button.isDefault`):this.$t(`connection.button.setDefault`)),disabled:!!t.is_default}),n.push({command:`rename`,label:String(this.$t(`connection.button.rename`))}),n.push({command:`disconnect`,label:String(this.$t(`connection.button.disconnect`)),danger:!0,divided:!0}),n},activeConnectedCatalogIds(){let e=new Set,t=this.catalogByIdentifier;for(let n of this.connections){if(this.normalizedStatus(n.status)!==`active`)continue;let r=n.connector_identifier,i=r?t[r]:void 0;i&&e.add(i.identifier)}return e},items(){let e=[],t={};for(let e of this.connections){let n=e.connector_identifier||``;n&&(t[n]=(t[n]||0)+1)}let n=new Set(Object.keys(t).filter(e=>t[e]>1));for(let t of this.connections){let r=`connection:${t.id}`,i=this.catalogForConnection(t),a=t.execution_type===`remote_mcp`,o=t.credential_type===`user_secret`||t.credential_type===`cookie_jar`,s=t.execution_type===`browser_device`,c=a&&!i,l=this.faviconBlocked[r]?void 0:i?.icon_url||void 0;e.push({key:r,name:i?.name||(s?t.profile?.name||t.connector_identifier||String(this.$t(`user.browserDevice.title`)):a&&t.server_url||t.provider),faviconUrl:l,custom:a,byoc:o,browserSession:s,byo:c,description:i?.short_description||i?.description||void 0,serverUrl:a&&t.server_url||void 0,connection:t,catalog:i,accountLabel:this.connectionAccountLabel(t),isDefault:n.has(t.connector_identifier||``)&&!!t.is_default,clusterKey:t.connector_identifier||r,createdAt:Date.parse(t.created_at)||0,accountSeq:t.account_seq??0,groupKey:`connected`})}let r=this.activeConnectedCatalogIds;for(let t of this.catalog){if(!t.is_featured||r.has(t.identifier))continue;let n=`catalog:${t.identifier}`,i=this.faviconBlocked[n]?void 0:t.icon_url||void 0;e.push({key:n,name:t.name||t.identifier,faviconUrl:i,custom:!1,byoc:!1,browserSession:!1,byo:!1,description:t.short_description||t.description||void 0,catalog:t,groupKey:`available`})}return e},orderedItems(){let e=this.items.filter(e=>e.groupKey===`connected`),t=this.items.filter(e=>e.groupKey===`available`),n=new Map;for(let t of e){let e=t.clusterKey||t.key;n.set(e,Math.max(n.get(e)??0,t.createdAt||0))}return e.sort((e,t)=>{let r=e.clusterKey||e.key,i=t.clusterKey||t.key;if(r!==i){let e=(n.get(i)??0)-(n.get(r)??0);return e===0?r<i?-1:1:e}if(!!e.isDefault!=!!t.isDefault)return e.isDefault?-1:1;let a=(t.createdAt||0)-(e.createdAt||0);if(a!==0)return a;let o=(e.accountSeq??0)-(t.accountSeq??0);return o===0?e.key<t.key?-1:+(e.key>t.key):o}),[...e,...t]},filteredItems(){let e=this.searchQuery.trim().toLowerCase();return e?this.orderedItems.filter(t=>t.name.toLowerCase().includes(e)||(t.serverUrl||``).toLowerCase().includes(e)||(t.description||``).toLowerCase().includes(e)):this.orderedItems},filteredGroups(){let e=[],t=this.filteredItems.filter(e=>e.groupKey===`connected`),n=this.filteredItems.filter(e=>e.groupKey===`available`);return t.length&&e.push({key:`connected`,label:String(this.$t(`connection.title.groupConnected`)),collapsed:!!this.collapsedGroups.connected,items:t}),n.length&&e.push({key:`available`,label:String(this.$t(`connection.title.groupRecommended`)),collapsed:!!this.collapsedGroups.available,items:n}),e},selectedItem(){return this.selectedKey&&this.items.find(e=>e.key===this.selectedKey)||null},detailScopes(){let e=this.selectedItem;if(!e||!e.catalog)return[];let t=e.catalog.permissions||[],n=new Map(t.map(e=>[e.id,e])),r=e.connection;return r&&(r.scopes||[]).length>0?(r.scopes||[]).map(e=>{let t=n.get(e);return{id:e,label:t?.label||e,desc:t?.desc||``}}):t.map(e=>({id:e.id,label:e.label||e.id,desc:e.desc||``}))},selectedMcpTools(){let e=this.selectedItem?.connection;return!e||e.execution_type!==`remote_mcp`?null:this.mcpToolsByConnection[e.id]||null},selectedMcpToolsLoading(){let e=this.selectedItem?.connection;return!e||e.execution_type!==`remote_mcp`?!1:this.mcpToolsState[e.id]===!0},selectedMcpToolsError(){let e=this.selectedItem?.connection;if(!e||e.execution_type!==`remote_mcp`)return null;let t=this.mcpToolsState[e.id];return typeof t==`string`?t:null},permissionRowCount(){return this.selectedItem?.custom&&this.selectedItem.connection?this.selectedMcpTools?.length??0:this.detailScopes.length},showsAccountIdentity(){let e=this.selectedItem?.connection;return!e||this.selectedItem?.browserSession?!1:this.selectedItem?.byoc?!!(e.profile?.name||e.profile?.login||e.profile?.email):!0},scopeDialogPermissions(){return this.scopeDialogMethod?.permissions||this.scopeDialogCatalog?.permissions||[]},suggestions(){let e=this.selectedItem;return e&&e.catalog?.suggestions||[]},overviewText(){let e=(this.selectedItem?.catalog?.description||``).trim();return e?e===(this.selectedItem?.description||``).trim()?``:e:``},isMcpConnector(){return K(this.selectedItem?.catalog)?.execution.type===`remote_mcp`},suggestionsLocked(){let e=this.selectedItem?.connection;return!e||this.normalizedStatus(e.status)!==`active`}},watch:{orderedItems:{handler(e){if(e.length===0){this.selectedKey=null;return}(!this.selectedKey||!e.some(e=>e.key===this.selectedKey))&&(this.selectedKey=e[0].key)},immediate:!1}},async mounted(){await Promise.all([this.fetchConnections(),this.fetchCatalog()]),this.firstLoadComplete=!0,!this.selectedKey&&this.orderedItems.length&&(this.selectedKey=this.orderedItems[0].key);let e=this.selectedKey?this.items.find(e=>e.key===this.selectedKey):null;e?.connection?.execution_type===`remote_mcp`&&this.normalizedStatus(e.connection.status)===`active`&&this.loadMcpTools(e.connection.id);let t=this.$route.query.connect?.toString();if(t){let e=this.orderedItems.find(e=>e.catalog?.identifier===t);if(e){this.selectedKey=e.key;let t=e.connection&&this.normalizedStatus(e.connection.status)===`active`;e.catalog&&!t&&this.onConnect(e.catalog)}}},methods:{onSelect(e){this.selectedKey=e.key;let t=e.connection;t&&t.execution_type===`remote_mcp`&&this.normalizedStatus(t.status)===`active`&&(this.mcpToolsState[t.id]??this.loadMcpTools(t.id))},async loadMcpTools(e){this.mcpToolsState={...this.mcpToolsState,[e]:!0};try{let{data:t}=await J.tools(e);this.mcpToolsByConnection={...this.mcpToolsByConnection,[e]:t.items||[]},this.mcpToolsState={...this.mcpToolsState,[e]:null}}catch(t){let n=t,r=n.response?.data?.detail||n.message||`Failed to load tools`;this.mcpToolsState={...this.mcpToolsState,[e]:r}}},toggleGroup(e){this.collapsedGroups={...this.collapsedGroups,[e]:!this.collapsedGroups[e]}},onFaviconError(e){this.faviconBlocked={...this.faviconBlocked,[e.key]:!0}},oauthMetadata(e){return(e.metadata||{}).oauth||{}},connectionProviderName(e){let t=this.catalogForConnection(e);return t?.name?t.name:e.execution_type===`remote_mcp`&&e.server_url||e.provider},connectionAccountLabel(e){return e.label||e.profile?.name||e.profile?.login||e.profile?.email||``},connectionAccountName(e){return e.profile?.name||e.profile?.login||e.profile?.email||`—`},connectionAvatar(e){return e.profile?.avatar||e.profile?.avatar_url||e.profile?.picture||``},connectionAccountInitial(e){let t=this.connectionAccountName(e),n=t&&t!==`—`?t.trim().charAt(0):``;return n?n.toUpperCase():`?`},connectionAccountSubtext(e){let t=e.profile?.email;return t&&t!==e.profile?.name?t:e.profile?.login||``},customAuthSummary(e){let t=this.oauthMetadata(e),n=t.token_endpoint_auth_method||`none`;return[t.client_registration_type||`dynamic`,n,(t.authorization_server_metadata||{}).issuer||t.authorization_server_url].filter(Boolean).join(` / `)},byocCredentialSummary(e){return((e.connection?.method_snapshot||K(e.catalog,e.connection?.method_id))?.credential.credential_schema||[]).map(e=>e.label).filter(Boolean).join(` · `)},normalizedStatus(e){return e.toString().toLowerCase()},statusLabel(e){return String(this.$t(`connection.status.${this.normalizedStatus(e)}`))},statusTagType(e){switch(this.normalizedStatus(e)){case`active`:return`success`;case`expired`:return`warning`;case`revoked`:return`danger`;default:return`info`}},browserDeviceStatusLabel(e){let t=e.browser_device?.status;return t?String(this.$t(`user.browserDevice.status.${t}`)):this.statusLabel(e.status)},browserDeviceStatusTagType(e){let t=e.browser_device;if(t&&!t.compatible)return t.incompatibility_reason===`device_offline`?`warning`:`danger`;let n=t?.status;if(!n)return this.statusTagType(e.status);switch(n.toLowerCase()){case`active`:return`success`;case`pending`:return`warning`;case`suspended`:case`quarantined`:case`revoked`:return`danger`;default:return`info`}},browserDeviceCompatibilityLabel(e){let t=e.browser_device;return t?t.compatible?String(this.$t(`connection.message.browserCompatible`)):String(this.$t(`connection.message.browserIncompatibility.${t.incompatibility_reason}`)):this.statusLabel(e.status)},async fetchConnections(){let e=++this.connectionsRequestId;this.loading=!0;try{let{data:t}=await J.list();return e===this.connectionsRequestId?(this.connections=(t||[]).filter(e=>e.execution_type!==`browser_device`||this.normalizedStatus(e.status)===`active`),!0):!1}catch(e){return console.error(`Failed to load connections`,e),!1}finally{e===this.connectionsRequestId&&(this.loading=!1)}},async fetchCatalog(){this.loadingCatalog=!0;try{let{data:e}=await J.listCatalog({sort:`popular`,limit:200});this.catalog=e?.items||[]}catch(e){console.error(`Failed to load connector catalog`,e)}finally{this.loadingCatalog=!1}},onSuggestionClick(e){let t=e.prompt;if(!t)return;let n=e.model_group||`claude`;this.$router.push({path:`/${n}/conversations`,query:{query:t,source:`connector_suggestion`,suggestion_id:e.id,...this.selectedItem?.catalog?.identifier?{connector:this.selectedItem.catalog.identifier}:{}}})},async onConnect(e,t=!1){if(!e.installable)return;if(this.pendingCreateNew=t,q(e).length>1){this.pickerCatalog=e,this.pickerVisible=!0;return}let n=K(e);n&&await this.connectWithMethod(e,n)},clearCreateNewIntent(){this.pendingCreateNew=!1},onMethodSelected(e){this.pickerVisible=!1,this.connectWithMethod(e.item,e.method)},async connectWithMethod(e,t){if(t.execution.type===`browser_device`){this.browserRebindConnectionId=null,this.browserDialogCatalog=e,this.browserDialogMethod=t,this.browserDevicePickerVisible=!0;return}if(t.credential.type===`user_secret`||t.credential.type===`cookie_jar`){this.byocDialogCatalog=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}let n=t.permissions||[];if(n.length>1){this.scopeDialogCatalog=e,this.scopeDialogMethod=t,this.selectedScopes=n.map(e=>e.id),this.scopeDialogVisible=!0;return}try{await ve.confirm(this.$t(`connection.message.connectConfirm`,{provider:e.name||e.identifier}),``,{confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`),roundButton:!0})}catch{return}await this.startAuthorize(e,t,void 0)},async onConfirmScopes(){let e=this.scopeDialogCatalog,t=this.scopeDialogMethod;if(!e||!t)return;let n=[...this.selectedScopes];this.scopeDialogVisible=!1,this.scopeDialogCatalog=null,this.scopeDialogMethod=null,this.selectedScopes=[],await this.startAuthorize(e,t,n)},async startAuthorize(e,t,n){try{let{data:r}=await J.installFromCatalog(e.id,{scopes:n&&n.length?n:void 0,return_url:$(),method_id:t.id,...this.pendingCreateNew?{create_new:!0}:{}});if(r&&r.type===`form`){this.byocDialogCatalog=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}r&&r.authorization_url?await this.runAuthorizePopup(r.authorization_url):r&&r.type===`active`&&await this.fetchConnections()}catch(e){this.pendingCreateNew=!1,V.error(e?.response?.data?.detail||e?.message||`Failed to start authorization`)}},async runAuthorizePopup(e){let t=mt(e);if(!t){window.location.href=e;return}await t,this.pendingCreateNew=!1,await this.fetchConnections()},openCustomDialog(){this.customDialogVisible=!0},onAddCommand(e){e===`browse`?this.browseDialogVisible=!0:e===`custom`&&this.openCustomDialog()},async onCatalogInstalled(){this.pendingCreateNew=!1,await Promise.all([this.fetchConnections(),this.fetchCatalog()])},openBrowserPairing(){this.browserDevicePickerVisible=!1,this.pairingDialogVisible=!0},clearBrowserDialog(){this.browserDevicePickerVisible=!1,this.browserRebindConnectionId=null,this.browserDialogCatalog=null,this.browserDialogMethod=null,this.pendingCreateNew=!1},onBrowserPickerVisibility(e){e||this.$nextTick(()=>{!this.pairingDialogVisible&&!this.browserInstalling&&this.clearBrowserDialog()})},openBrowserRebind(e){let t=this.catalogForConnection(e),n=e.method_snapshot;!t||!n||(this.browserRebindConnectionId=e.id,this.browserDialogCatalog=t,this.browserDialogMethod=n,this.browserDevicePickerVisible=!0)},onBrowserPaired(e){this.pairedBrowserDevice=e,this.pairingDialogVisible=!1},async onBrowserPairingClosed(){if(this.browserDialogCatalog&&this.browserDialogMethod){let e=this.pairedBrowserDevice;this.pairedBrowserDevice=null,e?await this.$refs.browserDevicePicker?.refreshAfterPair(e):this.browserDevicePickerVisible=!0;return}this.pairedBrowserDevice=null,this.clearBrowserDialog()},async stopBrowserSessions(e){this.refreshingId=e.id;try{let{data:t}=await J.stopBrowserSessions(e.id);V.success(this.$t(`connection.message.browserSessionsStopped`,{count:t.stopped_session_count})),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.browserSessionStopFailed`))}finally{this.refreshingId=null}},async onBrowserDeviceSelected(e){let t=this.browserDialogCatalog,n=this.browserDialogMethod;if(!(!t||!n)){this.browserInstalling=!0;try{if(this.browserRebindConnectionId){let{data:t}=await J.rebindBrowserDevice(this.browserRebindConnectionId,e);this.connections=this.connections.map(e=>e.id===t.id?t:e),this.browserDevicePickerVisible=!1,this.browserRebindConnectionId=null,this.browserDialogCatalog=null,this.browserDialogMethod=null,V.success(this.$t(`connection.message.browserRebindSuccess`));return}let{data:r}=await J.installFromCatalog(t.id,{return_url:$(),method_id:n.id,browser_device_id:e});if(r.type!==`active`)throw Error(this.$t(`connection.message.installFailed`));this.browserDevicePickerVisible=!1,this.browserDialogCatalog=null,this.browserDialogMethod=null,V.success(this.$t(`connection.message.installed`,{name:t.name})),await this.onCatalogInstalled()}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}}},async onConnectCustom(){if(this.customServerUrl){this.customAuthorizing=!0;try{let{data:e}=await J.authorizeCustom({name:this.customName||void 0,server_url:this.customServerUrl,client_id:this.customClientId||void 0,client_secret:this.customClientSecret||void 0,provider:`mcp`,return_url:window.location.href});e?.authorization_url&&(window.location.href=e.authorization_url)}catch(e){V.error(e?.response?.data?.detail||e?.message||`Failed to start authorization`)}finally{this.customAuthorizing=!1}}},async onReconnect(e){if(!e.installable)return;this.pendingCreateNew=!1;let t=this.selectedItem?.connection?.method_id,n=K(e,t);if(n&&t&&n.id===t){await this.connectWithMethod(e,n);return}await this.onConnect(e)},onDetailAction(e){let t=this.selectedItem,n=t?.connection;if(!(!t||!n))switch(e){case`refresh`:this.onRefresh(n);break;case`rebind`:this.openBrowserRebind(n);break;case`stopSessions`:this.stopBrowserSessions(n);break;case`reconnect`:t.catalog&&this.onReconnect(t.catalog);break;case`addAccount`:t.catalog&&this.onAddAccount(t.catalog);break;case`setDefault`:this.onSetDefault(n);break;case`rename`:this.onRename(n);break;case`disconnect`:this.onDisconnect(n);break}},async onBrowseAddAccount(e){this.browseDialogVisible=!1,await this.onAddAccount(e.item)},async onBrowseManage(e){this.browseDialogVisible=!1;let t=e.item.identifier;if(!t)return;let n=++this.manageRequestId,r=this.findConnectionRow(t),i=!0;if(!r){if(i=await this.fetchConnections(),n!==this.manageRequestId)return;r=this.findConnectionRow(t)}if(!r){i&&V.warning(this.$t(`connection.message.manageUnavailable`));return}this.searchQuery=``,this.collapsedGroups={...this.collapsedGroups,[r.groupKey]:!1},this.onSelect(r)},findConnectionRow(e){let t=this.orderedItems.filter(t=>t.connection?.connector_identifier===e);if(!t.length)return null;let n=t.filter(e=>this.normalizedStatus(e.connection.status)===`active`),r=n.length?n:t;return r.find(e=>e.connection?.is_default)||r[0]},async onAddAccount(e){await this.onConnect(e,!0)},async onSetDefault(e){try{await J.setDefault(e.id),V.success(this.$t(`connection.message.defaultUpdated`)),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.defaultUpdateFailed`))}},async onRename(e){let t;try{let{value:n}=await ve.prompt(this.$t(`connection.message.renamePrompt`),``,{confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`),inputValue:this.connectionAccountLabel(e),inputValidator:e=>(e||``).length<=64,inputErrorMessage:this.$t(`connection.message.renameTooLong`),roundButton:!0});t=n||``}catch{return}try{await J.rename(e.id,t),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.renameFailed`))}},async onRefresh(e){this.refreshingId=e.id;try{await J.refresh(e.id),V.success(this.$t(`connection.message.refreshed`)),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.refreshFailed`))}finally{this.refreshingId=null}},async onDisconnect(e){try{await ve.confirm(this.$t(`connection.message.disconnectConfirm`,{provider:this.connectionProviderName(e)}),``,{confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`,roundButton:!0})}catch{return}try{await J.disconnect(e.id);let t=`connection:${e.id}`;this.connections=this.connections.filter(t=>t.id!==e.id),this.selectedKey===t&&(this.selectedKey=this.orderedItems[0]?.key||null),V.success(this.$t(`connection.message.disconnected`,{provider:this.connectionProviderName(e)})),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||e?.message||`Failed to disconnect`)}}}}),$t={class:`page-shell`},en={class:`page-heading`},tn={class:`page-title`},nn={class:`page-subtitle`},rn={class:`connectors-shell`},an={class:`connectors-list`},on={class:`list-toolbar`},sn=[`aria-label`,`title`],cn={class:`list-scroll`},ln={class:`list-group`},un={class:`group-header skeleton-header`},dn={class:`group-items`},fn={class:`group-header`},pn=[`aria-label`,`title`,`onClick`],mn=[`onClick`],hn={class:`group-items`},gn=[`onClick`],_n={class:`list-item-icon`},vn=[`src`,`alt`,`onError`],yn={class:`list-item-name`},bn=[`title`],xn={key:1,class:`list-item-badge list-item-badge-default`},Sn={key:2,class:`list-item-badge`},Cn=[`title`],wn={key:2,class:`list-empty`},Tn={class:`list-footer`},En={class:`connectors-detail`},Dn={key:0,class:`detail-skeleton`},On={class:`detail-skeleton-header`},kn={class:`detail-skeleton-section`},An={key:1,class:`detail-empty`},jn={class:`detail-empty-title`},Mn={class:`detail-empty-hint`},Nn={class:`detail-header`},Pn={class:`detail-title-row`},Fn={class:`detail-icon`},In=[`src`,`alt`],Ln={class:`detail-title`},Rn={class:`detail-actions`},zn=[`aria-label`,`title`],Bn={key:0,class:`detail-server-url`},Vn={key:1,class:`detail-description`},Hn={key:0,class:`detail-section`},Un={class:`section-heading`},Wn={class:`section-title`},Gn={class:`overview-text`},Kn={key:1,class:`detail-section`},qn={class:`account-row`},Jn={class:`account-info`},Yn={class:`account-name`},Xn={key:0,class:`account-sub`},Zn={key:2,class:`detail-section browser-session`},Qn={class:`browser-session-heading`},$n={class:`browser-session-icon`},er={class:`browser-session-copy`},tr={class:`meta-grid browser-session-meta`},nr={key:0},rr={key:1,class:`muted`},ir={class:`browser-digest-row`},ar={key:0,class:`browser-capabilities`},or={class:`browser-capabilities-label`},sr={class:`browser-capability-list`},cr={key:3,class:`detail-section`},lr={class:`meta-grid`},ur={key:0},dr={key:4,class:`detail-section`},fr={class:`meta-grid`},pr={key:0},mr={key:1},hr={key:5,class:`detail-section`},gr={class:`section-heading`},_r={class:`section-title`},vr={class:`section-count`},yr={class:`section-hint`},br={class:`suggestion-list`},xr=[`role`,`tabindex`,`aria-disabled`,`onClick`,`onKeyup`],Sr={class:`suggestion-text`},Cr={key:6,class:`detail-section`},wr={class:`section-heading`},Tr={class:`section-title`},Er={key:0,class:`section-count`},Dr={key:0,class:`permission-empty`},Or={key:1,class:`permission-empty error`},kr={key:2,class:`permission-list`},Ar={class:`permission-name`},jr={class:`permission-tool-name`},Mr={key:0,class:`permission-tool-desc`},Nr={key:3,class:`permission-empty`},Pr={key:1,class:`permission-empty`},Fr={key:0,class:`permission-list`},Ir={class:`permission-name`},Lr={class:`permission-scope-label`},Rr={key:0,class:`permission-tool-desc`},zr={key:1,class:`permission-empty`},Br={key:7,class:`detail-section meta-section`},Vr={class:`meta-grid`},Hr={key:0},Ur={key:1,class:`muted`},Wr={key:0},Gr={key:1,class:`muted`},Kr={class:`custom-dialog-intro`},qr={class:`custom-dialog-form`},Jr={key:0,class:`advanced-fields`},Yr={class:`custom-trust-copy`},Xr={class:`text-sm text-gray-500 mb-4`},Zr={class:`scope-dialog-label`},Qr={key:0,class:`scope-dialog-desc`};function $r(g,_,v,y,b,x){let S=u(`search-icon`),C=u(`el-input`),w=u(`add-icon`),T=u(`el-dropdown-item`),E=u(`el-dropdown-menu`),D=u(`el-dropdown`),O=u(`el-skeleton-item`),k=u(`el-skeleton`),ne=u(`expand-right-icon`),A=u(`expand-down-icon`),j=u(`desktop-icon`),M=u(`connection-icon`),N=u(`el-tag`),P=u(`el-button`),F=u(`more-icon`),I=u(`el-avatar`),re=u(`suggestion-icon`),ie=u(`lock-icon`),ae=u(`external-link-icon`),oe=u(`el-tooltip`),se=u(`browse-connectors`),ce=u(`byoc-credentials-dialog`),le=u(`connector-method-picker`),ue=u(`browser-pairing-dialog`),de=u(`browser-device-picker`),fe=u(`collapse-up-icon`),L=u(`el-dialog`),pe=u(`el-checkbox`),me=u(`el-checkbox-group`),he=ee(`loading`);return h(),s(`div`,$t,[e(`div`,en,[e(`h2`,tn,i(g.$t(`connection.title.connections`)),1),e(`p`,nn,i(g.$t(`connection.message.pageDescription`)),1)]),e(`div`,rn,[e(`aside`,an,[e(`div`,on,[a(C,{modelValue:g.searchQuery,"onUpdate:modelValue":_[0]||=e=>g.searchQuery=e,class:`search-input`,size:`default`,clearable:``,placeholder:g.$t(`connection.placeholder.search`)},{prefix:p(()=>[a(S,{size:14,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`modelValue`,`placeholder`]),a(D,{trigger:`click`,placement:`bottom-end`,onCommand:g.onAddCommand},{dropdown:p(()=>[a(E,null,{default:p(()=>[a(T,{command:`browse`},{default:p(()=>[a(S,{class:`mr-2`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(g.$t(`connection.title.browse`)),1)]),_:1}),a(T,{command:`custom`},{default:p(()=>[a(w,{class:`mr-2`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(g.$t(`connection.button.addCustomConnector`)),1)]),_:1})]),_:1})]),default:p(()=>[e(`button`,{type:`button`,class:`add-button`,"aria-label":g.$t(`connection.title.addCustomConnector`),title:g.$t(`connection.title.addCustomConnector`)},[a(w,{size:16,"aria-hidden":`true`,focusable:`false`})],8,sn)]),_:1},8,[`onCommand`])]),d((h(),s(`div`,cn,[g.firstLoadComplete?g.filteredGroups.length?(h(!0),s(l,{key:1},m(g.filteredGroups,t=>(h(),s(`div`,{key:t.key,class:`list-group`},[e(`div`,fn,[e(`button`,{type:`button`,class:`group-chevron-button`,"aria-label":g.$t(t.collapsed?`common.button.expand`:`common.button.collapse`),title:g.$t(t.collapsed?`common.button.expand`:`common.button.collapse`),onClick:e=>g.toggleGroup(t.key)},[t.collapsed?(h(),f(ne,{key:0,class:`group-chevron`,size:14,"aria-hidden":`true`,focusable:`false`})):(h(),f(A,{key:1,class:`group-chevron`,size:14,"aria-hidden":`true`,focusable:`false`}))],8,pn),e(`span`,{class:`group-title`,onClick:e=>g.toggleGroup(t.key)},i(t.label),9,mn)]),d(e(`ul`,hn,[(h(!0),s(l,null,m(t.items,r=>(h(),s(`li`,{key:r.key,class:n({"list-item":!0,active:g.selectedKey===r.key}),onClick:e=>g.onSelect(r)},[e(`span`,_n,[r.faviconUrl?(h(),s(`img`,{key:0,src:r.faviconUrl,alt:r.name,onError:e=>g.onFaviconError(r)},null,40,vn)):r.browserSession?(h(),f(j,{key:1,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(M,{key:2,size:16,"aria-hidden":`true`,focusable:`false`}))]),e(`span`,yn,i(r.name),1),r.accountLabel?(h(),s(`span`,{key:0,class:`list-item-account`,title:r.accountLabel},i(r.accountLabel),9,bn)):o(``,!0),r.isDefault?(h(),s(`span`,xn,i(g.$t(`connection.label.defaultAccount`)),1)):o(``,!0),r.byo?(h(),s(`span`,Sn,i(g.$t(`connection.label.custom`)),1)):t.key===`available`?(h(),s(`span`,{key:3,class:`list-item-badge list-item-badge-hint`,title:g.$t(`connection.message.notConnectedYet`)},i(g.$t(`connection.label.notConnected`)),9,Cn)):o(``,!0)],10,gn))),128))],512),[[te,!t.collapsed]])]))),128)):(h(),s(`div`,wn,i(g.searchQuery?g.$t(`connection.message.noMatch`):g.$t(`connection.message.noConnections`)),1)):(h(),f(k,{key:0,animated:``},{template:p(()=>[e(`div`,ln,[e(`div`,un,[a(O,{variant:`text`,style:{width:`100px`,height:`11px`}})]),e(`ul`,dn,[(h(),s(l,null,m(5,t=>e(`li`,{key:`skeleton-${t}`,class:`list-item skeleton-item`},[a(O,{variant:`image`,style:{width:`20px`,height:`20px`,"border-radius":`4px`}}),a(O,{variant:`text`,style:{flex:`1 1 auto`,height:`14px`}})])),64))])])]),_:1}))])),[[he,g.firstLoadComplete&&(g.loading||g.loadingCatalog)]]),e(`div`,Tn,[e(`button`,{type:`button`,class:`browse-all-button`,onClick:_[1]||=e=>g.browseDialogVisible=!0},[a(S,{class:`mr-1`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(g.$t(`connection.button.browseAll`)),1)])])]),e(`section`,En,[g.firstLoadComplete?g.selectedItem?o(``,!0):(h(),s(`div`,An,[a(M,{class:`detail-empty-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`p`,jn,i(g.$t(`connection.message.selectConnector`)),1),e(`p`,Mn,i(g.$t(`connection.message.noConnectionsHint`)),1)])):(h(),s(`div`,Dn,[a(k,{animated:``},{template:p(()=>[e(`div`,On,[a(O,{variant:`circle`,style:{width:`32px`,height:`32px`}}),a(O,{variant:`h3`,style:{width:`220px`,height:`22px`,"margin-left":`12px`}})]),a(O,{variant:`text`,style:{width:`60%`,height:`12px`,"margin-top":`12px`}}),e(`div`,kn,[a(O,{variant:`text`,style:{width:`140px`,height:`14px`}}),a(O,{variant:`p`,style:{width:`33%`,"margin-top":`16px`}}),a(O,{variant:`p`,style:{"margin-top":`16px`}}),a(O,{variant:`p`,style:{"margin-top":`16px`}}),a(O,{variant:`p`,style:{"margin-top":`16px`}}),a(O,{variant:`p`,style:{width:`61%`,"margin-top":`16px`}})])]),_:1})])),g.firstLoadComplete&&g.selectedItem?(h(),s(l,{key:2},[e(`header`,Nn,[e(`div`,Pn,[e(`span`,Fn,[g.selectedItem.faviconUrl?(h(),s(`img`,{key:0,src:g.selectedItem.faviconUrl,alt:g.selectedItem.name,onError:_[2]||=e=>g.onFaviconError(g.selectedItem)},null,40,In)):g.selectedItem.browserSession?(h(),f(j,{key:1,size:20,"aria-hidden":`true`,focusable:`false`})):(h(),f(M,{key:2,size:20,"aria-hidden":`true`,focusable:`false`}))]),e(`h3`,Ln,i(g.selectedItem.name),1),g.selectedItem.byo?(h(),f(N,{key:0,size:`small`,type:`info`,class:`detail-custom-tag`},{default:p(()=>[r(i(g.$t(`connection.label.custom`)),1)]),_:1})):o(``,!0),e(`div`,Rn,[!g.selectedItem.connection&&g.selectedItem.catalog?(h(),f(P,{key:0,type:`primary`,size:`small`,disabled:!g.selectedItem.catalog?.installable,onClick:_[3]||=e=>g.selectedItem.catalog&&g.onConnect(g.selectedItem.catalog)},{default:p(()=>[r(i(g.$t(`connection.button.connect`)),1)]),_:1},8,[`disabled`])):o(``,!0),g.selectedItem.connection&&g.detailActions.length?(h(),f(D,{key:1,trigger:`click`,placement:`bottom-end`,"popper-class":`connection-actions-popper`,onCommand:g.onDetailAction},{dropdown:p(()=>[a(E,{class:`connection-actions-menu`},{default:p(()=>[(h(!0),s(l,null,m(g.detailActions,e=>(h(),f(T,{key:e.command,command:e.command,disabled:e.disabled,divided:e.divided,class:n({"actions-item-danger":e.danger})},{default:p(()=>[r(i(e.label),1)]),_:2},1032,[`command`,`disabled`,`divided`,`class`]))),128))]),_:1})]),default:p(()=>[e(`button`,{type:`button`,class:`actions-button`,"aria-label":g.$t(`connection.title.actions`),title:g.$t(`connection.title.actions`)},[a(F,{size:16,"aria-hidden":`true`,focusable:`false`})],8,zn)]),_:1},8,[`onCommand`])):o(``,!0)])]),g.selectedItem.serverUrl?(h(),s(`p`,Bn,i(g.selectedItem.serverUrl),1)):g.selectedItem.description?(h(),s(`p`,Vn,i(g.selectedItem.description),1)):o(``,!0)]),g.overviewText?(h(),s(`div`,Hn,[e(`div`,Un,[e(`span`,Wn,i(g.$t(`connection.title.overview`)),1)]),e(`p`,Gn,i(g.overviewText),1)])):o(``,!0),g.selectedItem.connection&&!g.selectedItem.custom&&g.showsAccountIdentity?(h(),s(`div`,Kn,[e(`div`,qn,[g.connectionAvatar(g.selectedItem.connection)?(h(),f(I,{key:0,src:g.connectionAvatar(g.selectedItem.connection),size:40},null,8,[`src`])):(h(),f(I,{key:1,size:40,class:`account-avatar-fallback`},{default:p(()=>[r(i(g.connectionAccountInitial(g.selectedItem.connection)),1)]),_:1})),e(`div`,Jn,[e(`span`,Yn,i(g.connectionAccountName(g.selectedItem.connection)),1),g.connectionAccountSubtext(g.selectedItem.connection)?(h(),s(`span`,Xn,i(g.connectionAccountSubtext(g.selectedItem.connection)),1)):o(``,!0)]),a(N,{type:g.statusTagType(g.selectedItem.connection.status),size:`small`},{default:p(()=>[r(i(g.statusLabel(g.selectedItem.connection.status)),1)]),_:1},8,[`type`])])])):o(``,!0),g.selectedItem.connection&&g.selectedItem.browserSession?(h(),s(`div`,Zn,[e(`div`,Qn,[e(`span`,$n,[a(j,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,er,[e(`strong`,null,i(g.selectedItem.connection.browser_device?.name||g.$t(`user.browserDevice.title`)),1),e(`span`,null,i(g.$t(`user.browserDevice.localApprovalOnly`)),1)]),a(N,{type:g.browserDeviceStatusTagType(g.selectedItem.connection),size:`small`},{default:p(()=>[r(i(g.browserDeviceCompatibilityLabel(g.selectedItem.connection)),1)]),_:1},8,[`type`])]),e(`dl`,tr,[e(`div`,null,[e(`dt`,null,i(g.$t(`user.browserDevice.platform`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.platform||`—`),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`user.browserDevice.extensionVersion`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.extension_version||`—`),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`user.browserDevice.lastSeen`)),1),e(`dd`,null,[g.selectedItem.connection.browser_device?.last_seen_at?(h(),s(`span`,nr,i(g.$dayjs.format(g.selectedItem.connection.browser_device.last_seen_at)),1)):(h(),s(`span`,rr,i(g.$t(`user.browserDevice.neverSeen`)),1))])]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.createdAt`)),1),e(`dd`,null,i(g.$dayjs.format(g.selectedItem.connection.browser_device?.created_at||g.selectedItem.connection.created_at)),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.connectionRevision`)),1),e(`dd`,null,i(g.selectedItem.connection.revision),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.activeSessions`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.active_session_count??0),1)]),e(`div`,ir,[e(`dt`,null,i(g.$t(`connection.field.wireContractDigest`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.wire_contract_digest||`—`),1)])]),g.selectedItem.connection.browser_device?.capabilities?.length?(h(),s(`div`,ar,[e(`span`,or,i(g.$t(`user.browserDevice.capabilities`)),1),e(`div`,sr,[(h(!0),s(l,null,m(g.selectedItem.connection.browser_device.capabilities,e=>(h(),f(N,{key:e,size:`small`,effect:`plain`},{default:p(()=>[r(i(e.replaceAll(`_`,` `)),1)]),_:2},1024))),128))])])):o(``,!0)])):o(``,!0),g.selectedItem.connection&&g.selectedItem.custom?(h(),s(`div`,cr,[e(`dl`,lr,[e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.status`)),1),e(`dd`,null,[a(N,{type:g.statusTagType(g.selectedItem.connection.status),size:`small`},{default:p(()=>[r(i(g.statusLabel(g.selectedItem.connection.status)),1)]),_:1},8,[`type`])])]),g.customAuthSummary(g.selectedItem.connection)?(h(),s(`div`,ur,[e(`dt`,null,i(g.$t(`connection.label.authMethod`)),1),e(`dd`,null,i(g.customAuthSummary(g.selectedItem.connection)),1)])):o(``,!0)])])):o(``,!0),g.selectedItem.connection&&g.selectedItem.byoc?(h(),s(`div`,dr,[e(`dl`,fr,[g.showsAccountIdentity?o(``,!0):(h(),s(`div`,pr,[e(`dt`,null,i(g.$t(`connection.field.status`)),1),e(`dd`,null,[a(N,{type:g.statusTagType(g.selectedItem.connection.status),size:`small`},{default:p(()=>[r(i(g.statusLabel(g.selectedItem.connection.status)),1)]),_:1},8,[`type`])])])),g.byocCredentialSummary(g.selectedItem)?(h(),s(`div`,mr,[e(`dt`,null,i(g.$t(`connection.label.credentials`)),1),e(`dd`,null,i(g.byocCredentialSummary(g.selectedItem)),1)])):o(``,!0)])])):o(``,!0),g.suggestions.length?(h(),s(`div`,hr,[e(`div`,gr,[e(`span`,_r,i(g.$t(`connection.title.tryIt`)),1),e(`span`,vr,i(g.suggestions.length),1)]),e(`p`,yr,i(g.suggestionsLocked?g.$t(`connection.message.tryItConnectFirst`):g.$t(`connection.message.tryItHint`)),1),e(`ul`,br,[(h(!0),s(l,null,m(g.suggestions,r=>(h(),f(oe,{key:r.id,content:g.$t(`connection.message.tryItConnectFirst`),disabled:!g.suggestionsLocked,placement:`top`},{default:p(()=>[e(`li`,{class:n([`suggestion-row`,{locked:g.suggestionsLocked}]),role:g.suggestionsLocked?void 0:`button`,tabindex:g.suggestionsLocked?void 0:0,"aria-disabled":g.suggestionsLocked?`true`:void 0,onClick:e=>!g.suggestionsLocked&&g.onSuggestionClick(r),onKeyup:[c(e=>!g.suggestionsLocked&&g.onSuggestionClick(r),[`enter`]),c(t(e=>!g.suggestionsLocked&&g.onSuggestionClick(r),[`prevent`]),[`space`])]},[a(re,{class:`suggestion-icon`,size:16,"aria-hidden":`true`,focusable:`false`}),e(`span`,Sr,i(r.prompt),1),g.suggestionsLocked?(h(),f(ie,{key:0,class:`suggestion-cta`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(ae,{key:1,class:`suggestion-cta`,size:16,"aria-hidden":`true`,focusable:`false`}))],42,xr)]),_:2},1032,[`content`,`disabled`]))),128))])])):o(``,!0),g.selectedItem.browserSession?o(``,!0):(h(),s(`div`,Cr,[e(`div`,wr,[e(`span`,Tr,i(g.$t(`connection.title.toolPermissions`)),1),g.permissionRowCount?(h(),s(`span`,Er,i(g.permissionRowCount),1)):o(``,!0)]),g.selectedItem.custom&&g.selectedItem.connection?(h(),s(l,{key:0},[g.selectedMcpToolsLoading?(h(),s(`p`,Dr,i(g.$t(`connection.message.toolsLoading`)),1)):g.selectedMcpToolsError?(h(),s(`p`,Or,i(g.selectedMcpToolsError),1)):g.selectedMcpTools&&g.selectedMcpTools.length?(h(),s(`ul`,kr,[(h(!0),s(l,null,m(g.selectedMcpTools,t=>(h(),s(`li`,{key:t.name,class:`permission-row`},[e(`span`,Ar,[e(`span`,jr,i(t.name),1),t.description?(h(),s(`span`,Mr,i(t.description),1)):o(``,!0)])]))),128))])):(h(),s(`p`,Nr,i(g.$t(`connection.label.noTools`)),1))],64)):g.isMcpConnector&&!g.selectedItem.connection?(h(),s(`p`,Pr,i(g.$t(`connection.label.toolsConnectFirst`)),1)):(h(),s(l,{key:2},[g.detailScopes.length?(h(),s(`ul`,Fr,[(h(!0),s(l,null,m(g.detailScopes,t=>(h(),s(`li`,{key:t.id,class:`permission-row`},[e(`span`,Ir,[e(`span`,Lr,i(t.label),1),t.desc?(h(),s(`span`,Rr,i(t.desc),1)):o(``,!0)])]))),128))])):(h(),s(`p`,zr,i(g.$t(`connection.label.noScopes`)),1))],64))])),g.selectedItem.connection&&!g.selectedItem.browserSession?(h(),s(`div`,Br,[e(`dl`,Vr,[e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.expiresAt`)),1),e(`dd`,null,[g.selectedItem.connection.expires_at?(h(),s(`span`,Hr,i(g.$dayjs.format(g.selectedItem.connection.expires_at)),1)):(h(),s(`span`,Ur,`—`))])]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.lastRefreshedAt`)),1),e(`dd`,null,[g.selectedItem.connection.last_refreshed_at?(h(),s(`span`,Wr,i(g.$dayjs.format(g.selectedItem.connection.last_refreshed_at)),1)):(h(),s(`span`,Gr,i(g.$t(`connection.label.never`)),1))])]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.createdAt`)),1),e(`dd`,null,i(g.$dayjs.format(g.selectedItem.connection.created_at)),1)])])])):o(``,!0)],64)):o(``,!0)])]),a(se,{modelValue:g.browseDialogVisible,"onUpdate:modelValue":_[4]||=e=>g.browseDialogVisible=e,onInstalled:g.onCatalogInstalled,onAddAccount:g.onBrowseAddAccount,onManage:g.onBrowseManage},null,8,[`modelValue`,`onInstalled`,`onAddAccount`,`onManage`]),a(ce,{modelValue:g.byocDialogVisible,"onUpdate:modelValue":[_[5]||=e=>g.byocDialogVisible=e,_[6]||=e=>!e&&g.clearCreateNewIntent()],item:g.byocDialogCatalog,method:g.byocDialogMethod,"create-new":g.pendingCreateNew,onInstalled:g.onCatalogInstalled},null,8,[`modelValue`,`item`,`method`,`create-new`,`onInstalled`]),a(le,{modelValue:g.pickerVisible,"onUpdate:modelValue":[_[7]||=e=>g.pickerVisible=e,_[8]||=e=>!e&&g.clearCreateNewIntent()],item:g.pickerCatalog,onSelect:g.onMethodSelected},null,8,[`modelValue`,`item`,`onSelect`]),a(ue,{modelValue:g.pairingDialogVisible,"onUpdate:modelValue":_[9]||=e=>g.pairingDialogVisible=e,onPaired:g.onBrowserPaired,onClosed:g.onBrowserPairingClosed},null,8,[`modelValue`,`onPaired`,`onClosed`]),a(de,{ref:`browserDevicePicker`,modelValue:g.browserDevicePickerVisible,"onUpdate:modelValue":[_[10]||=e=>g.browserDevicePickerVisible=e,g.onBrowserPickerVisibility],method:g.browserDialogMethod,installing:g.browserInstalling,onPair:g.openBrowserPairing,onSelect:g.onBrowserDeviceSelected},null,8,[`modelValue`,`method`,`installing`,`onPair`,`onSelect`,`onUpdate:modelValue`]),a(L,{modelValue:g.customDialogVisible,"onUpdate:modelValue":_[17]||=e=>g.customDialogVisible=e,title:g.$t(`connection.title.addCustomConnector`),width:`560px`,"close-on-click-modal":!1},{footer:p(()=>[a(P,{onClick:_[16]||=e=>g.customDialogVisible=!1},{default:p(()=>[r(i(g.$t(`common.button.cancel`)),1)]),_:1}),a(P,{type:`primary`,loading:g.customAuthorizing,disabled:!g.customServerUrl,onClick:g.onConnectCustom},{default:p(()=>[r(i(g.$t(`connection.button.addCustom`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])]),default:p(()=>[e(`p`,Kr,i(g.$t(`connection.message.customConnectorHint`)),1),e(`div`,qr,[a(C,{modelValue:g.customName,"onUpdate:modelValue":_[11]||=e=>g.customName=e,modelModifiers:{trim:!0},placeholder:g.$t(`connection.placeholder.name`),clearable:``},null,8,[`modelValue`,`placeholder`]),a(C,{modelValue:g.customServerUrl,"onUpdate:modelValue":_[12]||=e=>g.customServerUrl=e,modelModifiers:{trim:!0},placeholder:g.$t(`connection.placeholder.serverUrl`),clearable:``,onKeyup:c(g.onConnectCustom,[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeyup`]),e(`button`,{type:`button`,class:`advanced-toggle`,onClick:_[13]||=e=>g.customAdvancedVisible=!g.customAdvancedVisible},[g.customAdvancedVisible?(h(),f(fe,{key:0,class:`mr-1`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(A,{key:1,class:`mr-1`,size:16,"aria-hidden":`true`,focusable:`false`})),e(`span`,null,i(g.$t(`connection.label.advancedSettings`)),1)]),g.customAdvancedVisible?(h(),s(`div`,Jr,[a(C,{modelValue:g.customClientId,"onUpdate:modelValue":_[14]||=e=>g.customClientId=e,modelModifiers:{trim:!0},placeholder:g.$t(`connection.placeholder.clientId`),clearable:``},null,8,[`modelValue`,`placeholder`]),a(C,{modelValue:g.customClientSecret,"onUpdate:modelValue":_[15]||=e=>g.customClientSecret=e,placeholder:g.$t(`connection.placeholder.clientSecret`),clearable:``,"show-password":``},null,8,[`modelValue`,`placeholder`])])):o(``,!0),e(`p`,Yr,i(g.$t(`connection.message.customConnectorTrust`)),1)])]),_:1},8,[`modelValue`,`title`]),a(L,{modelValue:g.scopeDialogVisible,"onUpdate:modelValue":_[20]||=e=>g.scopeDialogVisible=e,title:g.scopeDialogCatalog?g.$t(`connection.message.selectScopes`,{provider:g.scopeDialogCatalog.name}):``,width:`480px`,"close-on-click-modal":!1,onClosed:_[21]||=e=>!g.scopeDialogCatalog&&g.clearCreateNewIntent()},{footer:p(()=>[a(P,{onClick:_[19]||=e=>g.scopeDialogVisible=!1},{default:p(()=>[r(i(g.$t(`common.button.cancel`)),1)]),_:1}),a(P,{type:`primary`,onClick:g.onConfirmScopes},{default:p(()=>[r(i(g.$t(`common.button.confirm`)),1)]),_:1},8,[`onClick`])]),default:p(()=>[e(`p`,Xr,i(g.$t(`connection.message.selectScopesHint`)),1),a(me,{modelValue:g.selectedScopes,"onUpdate:modelValue":_[18]||=e=>g.selectedScopes=e},{default:p(()=>[(h(!0),s(l,null,m(g.scopeDialogPermissions,t=>(h(),s(`div`,{key:t.id,class:`scope-dialog-row`},[a(pe,{value:t.id,label:t.id},{default:p(()=>[e(`span`,Zr,i(t.label||t.id),1)]),_:2},1032,[`value`,`label`]),t.desc?(h(),s(`p`,Qr,i(t.desc),1)):o(``,!0)]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`])])}var ei=z(Qt,[[`render`,$r],[`__scopeId`,`data-v-87503d72`]]);export{ei 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,ht as d,j as f,mt as p,ot as ee,rt as m,tt as h,x as te,z as g}from"./vendor-chart-Dw-P17PN.js";import{r as _,t as v}from"./select--z-fac6_.js";import{n as y,t as b}from"./tabs-CMeHhbQd.js";import{n as x,t as S}from"./form-BNJ9LdPs.js";import{t as C}from"./tooltip-CVVApYjJ.js";import{t as w}from"./alert-G37GiXIg.js";import{t as T}from"./avatar-CGdf6QsT.js";import{n as E,t as D}from"./checkbox-CeoqKfX8.js";import{r as O,t as k}from"./radio-DgDgyT2l.js";import{t as ne}from"./divider-BNWJAaA2.js";import{n as A,r as j,t as M}from"./dropdown-Dxiw3zEy.js";import{t as N}from"./empty-B1wenOj5.js";import{n as P,t as F}from"./skeleton-B3LIGUiE.js";import{t as I}from"./chevron-down-BumkMWkr.js";import{t as re}from"./chevron-right-DJAkv6gb.js";import{t as ie}from"./circle-check-D5h_jiB2.js";import{t as ae}from"./copy-BV2l4S4i.js";import{t as oe}from"./ellipsis-Dne0PaxK.js";import{t as se}from"./external-link-Y1fuqa_d.js";import{t as ce}from"./lightbulb-Btwo92TP.js";import{t as le}from"./loader-circle-Chlmw50N.js";import{t as ue}from"./lock-HFF7LqQ6.js";import{t as de}from"./monitor-CaLaxqsl.js";import{t as fe}from"./plug-Pqr_YrfP.js";import{t as L}from"./plus-Yte47cek.js";import{t as pe}from"./search-Dd9GL0kL.js";import{t as me}from"./shield-DTxeqQnl.js";import{t as he}from"./triangle-alert-C_NcfP7e.js";import{Ai as R,Ci as ge,E as z,Ji as B,Li as _e,Ti as V,gr as H,ui as U,wi as ve,zi as W}from"./index-dzU0SACS.js";var ye=ge(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),G=()=>({baseURL:`${U()}/api/v1`});function K(e,t){let n=q(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 q(e){return e?.connection_methods||[]}var J=new class{key=`connections`;async list(){return H.get(`/${this.key}/`,G())}async authorize(e){return H.post(`/${this.key}/authorize/`,e,G())}async authorizeCustom(e){return H.post(`/${this.key}/authorize-custom/`,e,G())}async exchangeCustom(e,t){return H.post(`/${this.key}/${e}/exchange-custom/`,t,G())}async refresh(e){return H.post(`/${this.key}/${e}/refresh/`,void 0,G())}async setDefault(e){return await H.post(`/connections/${e}/set-default/`,void 0,G())}async rename(e,t){return await H.patch(`/connections/${e}/`,{label:t},G())}async disconnect(e){return H.delete(`/${this.key}/${e}/`,G())}async rebindBrowserDevice(e,t){return H.put(`/${this.key}/${e}/browser-device/`,{browser_device_id:t},G())}async stopBrowserSessions(e){return H.post(`/${this.key}/${e}/browser-sessions/stop/`,void 0,G())}async tools(e){return H.get(`/${this.key}/${e}/tools/`,G())}async listCatalog(e={}){return H.get(`/connectors/`,{...G(),params:e})}async getCatalogItem(e){return H.get(`/connectors/${e}/`,G())}async catalogCategories(){return H.get(`/connectors/categories/`,G())}async installFromCatalog(e,t={}){return H.post(`/connectors/${e}/install/`,t,G())}async submitCatalogCredentials(e,t){return H.post(`/connectors/${e}/credentials/`,t,G())}},be=1e4,xe=`https://platform.acedata.cloud/documents/acedataext`;function Y(e){return e==null?``:typeof e==`string`?e:Array.isArray(e)?e.map(Y).filter(Boolean).join(`; `):typeof e==`object`?Object.values(e).map(Y).filter(Boolean).join(`; `):String(e)}var Se=g({name:`ByocCredentialsDialog`,components:{ElDialog:R,ElForm:S,ElFormItem:x,ElInput:B,ElSelect:_,ElOption:v,ElButton:W,SecurityIcon:me,WarningIcon:he},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:K(this.item)||null},schema(){return this.activeMethod?.credential.credential_schema||[]},isExtension(){return this.activeMethod?.credential.source===`extension`},ACE_EXTENSION_DOC(){return xe},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||V.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`)))},be);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){V.error(this.$t(`connection.byoc.extensionNoCookies`));return}let{data:t}=await J.submitCatalogCredentials(this.item.id,{payload:{cookies:e},method_id:this.activeMethod?.id,...this.createNew?{create_new:!0}:{}});V.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`)V.error(this.$t(`connection.byoc.extensionMissing`));else{let t=Y(e?.response?.data?.detail);V.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 J.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}:{}});V.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=Y(e?.response?.data?.detail);V.error(t||this.$t(`connection.message.installFailed`))}finally{this.submitting=!1}}}}}),Ce={key:0,class:`byoc-missing`},we={class:`byoc-missing-body`},Te={class:`byoc-missing-title`},Ee={class:`byoc-missing-text`},De=[`href`],Oe={class:`byoc-intro`},ke=[`href`],Ae={class:`byoc-steps`},je={class:`byoc-disclaimer`},Me={key:0,class:`byoc-intro`},Ne={key:2,class:`byoc-help`},Pe={class:`byoc-disclaimer`};function Fe(n,c,d,ee,te,g){let _=u(`warning-icon`),v=u(`el-button`),y=u(`security-icon`),b=u(`el-option`),x=u(`el-select`),S=u(`el-input`),C=u(`el-form-item`),w=u(`el-form`),T=u(`el-dialog`);return h(),f(T,{modelValue:n.visible,"onUpdate:modelValue":c[1]||=e=>n.visible=e,title:n.dialogTitle,width:`min(520px, 94vw)`,"append-to-body":``,"destroy-on-close":``,onClose:n.onClose},{footer:p(()=>[a(v,{onClick:n.onClose},{default:p(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),n.isExtension?(h(),s(l,{key:0},[n.extensionReady?(h(),f(v,{key:1,type:`primary`,loading:n.submitting,onClick:n.onCapture},{default:p(()=>[r(i(n.$t(`connection.byoc.extensionCapture`)),1)]),_:1},8,[`loading`,`onClick`])):(h(),f(v,{key:0,type:`primary`,loading:n.detecting,onClick:n.recheckExtension},{default:p(()=>[r(i(n.$t(`connection.byoc.extensionRecheck`)),1)]),_:1},8,[`loading`,`onClick`]))],64)):(h(),f(v,{key:1,type:`primary`,loading:n.submitting,onClick:n.onSubmit},{default:p(()=>[r(i(n.$t(`connection.byoc.submit`)),1)]),_:1},8,[`loading`,`onClick`]))]),default:p(()=>[n.isExtension?(h(),s(l,{key:0},[n.extensionReady?(h(),s(l,{key:1},[e(`p`,Oe,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,ke),e(`ol`,Ae,[e(`li`,null,[r(i(n.$t(`connection.byoc.extensionStepLogin`))+` `,1),n.loginUrl?(h(),f(v,{key:0,link:``,type:`primary`,onClick:n.openLogin},{default:p(()=>[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`,je,[a(y,{class:`byoc-shield`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`connection.byoc.disclaimer`)),1)])],64)):(h(),s(`div`,Ce,[a(_,{class:`byoc-missing-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`div`,we,[e(`p`,Te,i(n.$t(`connection.byoc.extensionMissingTitle`)),1),e(`p`,Ee,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(l,{key:1},[n.schema.length>0?(h(),s(`p`,Me,i(n.$t(`connection.byoc.intro`)),1)):o(``,!0),a(w,{ref:`formRef`,model:n.formModel,rules:n.formRules,"label-position":`top`,class:`byoc-form`,onSubmit:c[0]||=t(()=>{},[`prevent`])},{default:p(()=>[(h(!0),s(l,null,m(n.schema,e=>(h(),f(C,{key:e.key,label:e.label,prop:e.key},{default:p(()=>[e.type===`select`?(h(),f(x,{key:0,modelValue:n.formModel[e.key],"onUpdate:modelValue":t=>n.formModel[e.key]=t,placeholder:e.help||``,filterable:``,class:`byoc-input`},{default:p(()=>[(h(!0),s(l,null,m(e.options||[],e=>(h(),f(b,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(h(),f(S,{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`,Ne,i(e.help),1)):o(``,!0)]),_:2},1032,[`label`,`prop`]))),128))]),_:1},8,[`model`,`rules`]),e(`p`,Pe,[a(y,{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 Ie=z(Se,[[`render`,Fe],[`__scopeId`,`data-v-9a4fc02f`]]),Le=g({name:`ConnectorMethodPicker`,components:{ElDialog:R,ElTabs:y,ElTabPane:b,ElButton:W},props:{modelValue:{type:Boolean,default:!1},item:{type:Object,default:null}},emits:[`update:modelValue`,`select`],data(){return{visible:this.modelValue,selectedId:``}},computed:{methods(){return q(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=K(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}}}),Re={class:`picker-intro`},ze={class:`picker-tab-label`},Be={key:0,class:`picker-recommended`},Ve={key:0,class:`picker-pane-desc`};function He(t,n,c,d,ee,te){let g=u(`el-tab-pane`),_=u(`el-tabs`),v=u(`el-button`),y=u(`el-dialog`);return h(),f(y,{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:p(()=>[a(v,{onClick:t.onClose},{default:p(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1},8,[`onClick`]),a(v,{type:`primary`,disabled:!t.selectedId,onClick:t.onConfirm},{default:p(()=>[r(i(t.$t(`common.button.confirm`)),1)]),_:1},8,[`disabled`,`onClick`])]),default:p(()=>[e(`p`,Re,i(t.$t(`connection.method.heading`)),1),a(_,{modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`picker-tabs`},{default:p(()=>[(h(!0),s(l,null,m(t.methods,n=>(h(),f(g,{key:n.id,name:n.id},{label:p(()=>[e(`span`,ze,[r(i(t.methodLabel(n))+` `,1),n.recommended?(h(),s(`span`,Be,i(t.$t(`connection.method.recommended`)),1)):o(``,!0)])]),default:p(()=>[t.methodDesc(n)?(h(),s(`p`,Ve,i(t.methodDesc(n)),1)):o(``,!0)]),_:2},1032,[`name`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`,`onClose`])}var Ue=z(Le,[[`render`,He],[`__scopeId`,`data-v-3a0a8526`]]),X=()=>({baseURL:`${U()}/api/v1`}),Z=new class{key=`browser-devices`;async list(){return H.get(`/${this.key}/`,X())}async rename(e,t){return H.patch(`/${this.key}/${e}/`,{name:t},X())}async delete(e){return H.delete(`/${this.key}/${e}/`,X())}async createPairingChallenge(){return H.post(`/${this.key}/pairing-challenges/`,{},X())}async listPendingClaims(){return H.get(`/${this.key}/pairing-claims/`,X())}async confirmClaim(e,t,n){return H.post(`/${this.key}/pairing-claims/${e}/confirm/`,{key_fingerprint:t,...n?{name:n}:{}},X())}async rejectClaim(e,t){return H.post(`/${this.key}/pairing-claims/${e}/reject/`,{key_fingerprint:t},X())}},Q=null,We=g({name:`BrowserPairingDialog`,components:{CopyIcon:ae,ElAlert:w,ElButton:W,ElDialog:R,ElDivider:ne,ElInput:B,ElSkeleton:F,LoadingIcon:le},props:{modelValue:{type:Boolean,default:!1}},emits:[`update:modelValue`,`paired`,`rejected`,`closed`],data(){return{visible:this.modelValue,loading:!1,polling:!1,challenge:Q?.expires_at_ms&&Q.expires_at_ms>Date.now()?Q: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 Z.createPairingChallenge();if(!this.visible||e!==this.requestGeneration)return;this.challenge=t,Q=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 Z.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),V.success(this.$t(`common.message.copied`))}catch{V.error(this.$t(`common.message.updateFailed`))}},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 Z.confirmClaim(e.claim_id,e.key_fingerprint,this.deviceName||void 0);if(!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;V.success(this.$t(`user.browserDevice.pairSuccess`)),this.$emit(`paired`,r.device),this.challenge=null,Q=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 Z.rejectClaim(e.claim_id,e.key_fingerprint),!this.visible||t!==this.requestGeneration||this.claim?.claim_id!==n)return;V.success(this.$t(`user.browserDevice.rejectSuccess`)),this.$emit(`rejected`,e),this.challenge=null,Q=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`)}}}),Ge={key:0,class:`pairing-loading`},Ke={class:`pairing-intro`},qe={class:`pairing-code-row`},Je={class:`pairing-code`},Ye={class:`pairing-expiry`},Xe={class:`claim-title`},Ze={class:`claim-hint`},Qe={class:`claim-details`},$e={key:1,class:`waiting-claim`};function et(t,n,c,d,ee,m){let te=u(`el-alert`),g=u(`el-skeleton`),_=u(`copy-icon`),v=u(`el-button`),y=u(`el-divider`),b=u(`el-input`),x=u(`loading-icon`),S=u(`el-dialog`);return h(),f(S,{modelValue:t.visible,"onUpdate:modelValue":n[2]||=e=>t.visible=e,title:t.$t(`user.browserDevice.pairTitle`),width:`min(620px, 94vw)`,"append-to-body":``,"destroy-on-close":``,"close-on-click-modal":!1,onClosed:t.onClosed},{footer:p(()=>[t.claim?o(``,!0):(h(),f(v,{key:0,onClick:n[1]||=e=>t.visible=!1},{default:p(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1})),t.errorMessage&&!t.claim?(h(),f(v,{key:1,type:`primary`,loading:t.loading,onClick:t.startPairing},{default:p(()=>[r(i(t.$t(`user.browserDevice.tryAgain`)),1)]),_:1},8,[`loading`,`onClick`])):o(``,!0),t.claim?(h(),s(l,{key:2},[a(v,{type:`danger`,plain:``,loading:t.decision===`reject`,disabled:t.decision!==null||t.decisionExpired,onClick:t.reject},{default:p(()=>[r(i(t.$t(`user.browserDevice.rejectClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),a(v,{type:`primary`,loading:t.decision===`confirm`,disabled:t.decision!==null||t.decisionExpired,onClick:t.confirm},{default:p(()=>[r(i(t.$t(`user.browserDevice.confirmClaim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])],64)):o(``,!0)]),default:p(()=>[a(te,{title:t.$t(`user.browserDevice.localApprovalOnly`),type:`info`,closable:!1,"show-icon":``,class:`pairing-alert`},null,8,[`title`]),t.loading?(h(),s(`div`,Ge,[a(g,{rows:4,animated:``})])):t.challenge?(h(),s(l,{key:1},[e(`p`,Ke,i(t.$t(`user.browserDevice.pairInstructions`)),1),e(`div`,qe,[e(`code`,Je,i(t.challenge.code),1),a(v,{size:`small`,onClick:t.copyCode},{default:p(()=>[a(_,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`common.button.copy`)),1)]),_:1},8,[`onClick`])]),e(`p`,Ye,i(t.$t(`user.browserDevice.codeExpiresIn`,{seconds:t.secondsRemaining})),1),t.claim?(h(),s(l,{key:0},[a(y),e(`h3`,Xe,i(t.$t(`user.browserDevice.verifyClaimTitle`)),1),e(`p`,Ze,i(t.$t(`user.browserDevice.verifyClaimHint`)),1),e(`dl`,Qe,[e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.keyFingerprint`)),1),e(`dd`,null,[e(`code`,null,i(t.claim.key_fingerprint),1)])]),e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.platform`)),1),e(`dd`,null,i(t.claim.platform),1)]),e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.extensionVersion`)),1),e(`dd`,null,i(t.claim.extension_version),1)]),e(`div`,null,[e(`dt`,null,i(t.$t(`user.browserDevice.origin`)),1),e(`dd`,null,[e(`code`,null,i(t.claim.origin),1)])])]),a(b,{modelValue:t.deviceName,"onUpdate:modelValue":n[0]||=e=>t.deviceName=e,modelModifiers:{trim:!0},placeholder:t.$t(`user.browserDevice.namePlaceholder`),maxlength:`128`,"show-word-limit":``},null,8,[`modelValue`,`placeholder`])],64)):(h(),s(`div`,$e,[a(x,{class:`waiting-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(t.$t(`user.browserDevice.waitingForAgent`)),1)]))],64)):o(``,!0),t.errorMessage?(h(),f(te,{key:2,title:t.errorMessage,type:`error`,closable:!1,"show-icon":``},null,8,[`title`])):o(``,!0)]),_:1},8,[`modelValue`,`title`,`onClosed`])}var tt=z(We,[[`render`,et],[`__scopeId`,`data-v-c2df4763`]]);function nt(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 rt=g({name:`BrowserDevicePicker`,components:{ElAlert:w,ElButton:W,ElDialog:R,ElEmpty:N,ElRadio:k,ElRadioGroup:O},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 nt(e,this.requiredCapabilities).missingCapabilities},compatible(e){return nt(e,this.requiredCapabilities).compatible},incompatibilityText(e){let t=nt(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 Z.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)}}}),it={key:1,class:`browser-policy`},at={class:`device-list`},ot={class:`device-name`},st={class:`device-meta`},ct={class:`device-meta`},lt={class:`device-digest`},ut={key:0,class:`device-missing`};function dt(t,n,c,te,g,_){let v=u(`el-alert`),y=u(`el-radio`),b=u(`el-radio-group`),x=u(`el-empty`),S=u(`el-button`),C=u(`el-dialog`),w=ee(`loading`);return h(),f(C,{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:p(()=>[a(S,{onClick:n[1]||=e=>t.$emit(`pair`)},{default:p(()=>[r(i(t.$t(`user.browserDevice.pairButton`)),1)]),_:1}),a(S,{type:`primary`,disabled:!t.selectedId,loading:t.installing,onClick:t.confirm},{default:p(()=>[r(i(t.$t(`connection.button.connect`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])]),default:p(()=>[t.loadError?(h(),f(v,{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`,it,i(t.$t(`connection.message.browserAllowedSites`))+`: `+i(t.origins.join(`, `)),1)):o(``,!0),a(v,{title:t.$t(`connection.message.browserHighPrivilegeDisclosure`),type:`warning`,closable:!1,"show-icon":``,class:`mb-4`},null,8,[`title`]),d((h(),s(`div`,at,[t.devices.length?(h(),f(b,{key:0,modelValue:t.selectedId,"onUpdate:modelValue":n[0]||=e=>t.selectedId=e,class:`device-options`},{default:p(()=>[(h(!0),s(l,null,m(t.devices,n=>(h(),f(y,{key:n.id,value:n.id,label:n.id,disabled:!t.compatible(n),border:``,class:`device-option`},{default:p(()=>[e(`span`,ot,i(n.name),1),e(`span`,st,i(n.platform)+` · v`+i(n.extension_version||`?`),1),e(`span`,ct,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`,lt,i(n.wire_contract_digest),1),t.compatible(n)?o(``,!0):(h(),s(`span`,ut,i(t.incompatibilityText(n)),1))]),_:2},1032,[`value`,`label`,`disabled`]))),128))]),_:1},8,[`modelValue`])):t.loading?o(``,!0):(h(),f(x,{key:1,description:t.$t(`user.browserDevice.empty`)},null,8,[`description`]))])),[[w,t.loading]])]),_:1},8,[`modelValue`,`title`,`onOpen`])}var ft=z(rt,[[`render`,dt],[`__scopeId`,`data-v-7eaca81f`]]);function $(){let e=new URL(`/connections/popup-return`,U());return e.searchParams.set(`opener_origin`,window.location.origin),e.toString()}var pt=`popup=yes,width=600,height=760,noopener=no,noreferrer=no`;function mt(e){let t=window.open(e,`acedata-connect`,pt);if(!t)return null;let n=new URL(U()).origin;return new Promise(e=>{let r=!1,i=t=>{r||(r=!0,window.removeEventListener(`message`,a),window.clearInterval(o),e(t))},a=e=>{if(e.origin!==n||e.source!==t)return;let r=e.data;if(!(!r||r.name!==`connection-result`)){i(r.data??{status:`success`});try{t.close()}catch{}}};window.addEventListener(`message`,a);let o=window.setInterval(()=>{t.closed&&i(null)},500)})}function ht(e){return String(e??``).normalize(`NFKC`).trim().toLowerCase()}function gt(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 q(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(ht).filter(Boolean).join(` `)}var _t=g({name:`BrowseConnectors`,components:{ElDialog:R,ElInput:B,ElSelect:_,ElOption:v,ElTooltip:C,ElDropdown:M,ElDropdownMenu:j,ElDropdownItem:A,AddIcon:L,ConnectionIcon:fe,ExpandDownIcon:I,LoadingIcon:le,SearchIcon:pe,SuccessIcon:ie,ByocCredentialsDialog:Ie,ConnectorMethodPicker:Ue,BrowserPairingDialog:tt,BrowserDevicePicker:ft},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=ht(this.query),t=this.items;return e&&(t=t.filter(t=>gt(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 J.listCatalog(e);this.items=t.items||[]}catch(e){V.error(e?.response?.data?.detail||e?.message||`Failed to load directory`)}finally{this.loading=!1}},async fetchFacets(){try{let{data:e}=await J.catalogCategories();this.facets=e.facets||[]}catch{this.facets=[]}},async onInstall(e){if(!e.installable)return;if(q(e).length>1){this.pickerItem=e,this.pickerVisible=!0;return}let t=K(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 J.installFromCatalog(e.id,{return_url:$(),method_id:t.id});if(n.type===`redirect`){let e=mt(n.authorization_url);if(!e){window.location.href=n.authorization_url;return}await e,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),V.success(this.$t(`connection.message.installed`,{name:e.name})),this.$emit(`installed`,{item:e,connection_id:n.connection_id})}catch(e){V.error(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 J.installFromCatalog(t.id,{return_url:$(),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),V.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}}}}}),vt={class:`browse-intro`},yt={class:`browse-toolbar`},bt={class:`browse-shell`},xt={class:`browse-sidebar`},St={class:`sidebar-section`},Ct=[`onClick`],wt={class:`sidebar-label`},Tt={key:0,class:`sidebar-count`},Et={class:`sidebar-section`},Dt={class:`sidebar-heading`},Ot=[`onClick`],kt={class:`sidebar-label`},At={key:0,class:`sidebar-count`},jt={class:`browse-grid-wrapper`},Mt={key:0,class:`browse-empty`},Nt={key:1,class:`browse-grid`},Pt={class:`card-head`},Ft={class:`card-icon`},It=[`src`,`alt`],Lt={class:`card-title-block`},Rt={class:`card-title-row`},zt={class:`card-title`},Bt={class:`card-meta`},Vt=[`title`],Ht={key:1,class:`card-pill card-pill-new`},Ut={key:2,class:`card-pill card-pill-trending`},Wt={key:3,class:`card-publisher`},Gt={class:`card-action-slot`},Kt=[`disabled`,`onClick`],qt={class:`ml-1`},Jt=[`aria-label`,`title`],Yt={class:`ml-1 card-action-count`},Xt={key:0,class:`card-description`};function Zt(t,c,te,g,_,v){let y=u(`search-icon`),b=u(`el-input`),x=u(`el-option`),S=u(`el-select`),C=u(`connection-icon`),w=u(`loading-icon`),T=u(`add-icon`),E=u(`el-tooltip`),D=u(`success-icon`),O=u(`expand-down-icon`),k=u(`el-dropdown-item`),ne=u(`el-dropdown-menu`),A=u(`el-dropdown`),j=u(`connector-method-picker`),M=u(`browser-pairing-dialog`),N=u(`browser-device-picker`),P=u(`byoc-credentials-dialog`),F=u(`el-dialog`),I=ee(`loading`);return h(),f(F,{modelValue:t.visible,"onUpdate:modelValue":c[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:p(()=>[e(`p`,vt,i(t.$t(`connection.message.browseHint`)),1),e(`div`,yt,[a(b,{modelValue:t.query,"onUpdate:modelValue":c[0]||=e=>t.query=e,class:`search-input`,size:`default`,clearable:``,placeholder:t.$t(`connection.placeholder.search`)},{prefix:p(()=>[a(y,{size:14,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`modelValue`,`placeholder`]),a(S,{modelValue:t.sort,"onUpdate:modelValue":c[1]||=e=>t.sort=e,size:`default`,class:`sort-select`,onChange:t.fetchItems},{default:p(()=>[a(x,{label:t.$t(`connection.label.featured`),value:`popular`},null,8,[`label`]),a(x,{label:t.$t(`connection.label.new`),value:`new`},null,8,[`label`]),a(x,{label:`A-Z`,value:`name`})]),_:1},8,[`modelValue`,`onChange`])]),d((h(),s(`div`,bt,[e(`aside`,xt,[e(`div`,St,[(h(!0),s(l,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`,wt,i(r.label),1),r.count>0?(h(),s(`span`,Tt,i(r.count),1)):o(``,!0)],10,Ct))),128))]),c[7]||=e(`div`,{class:`sidebar-divider`},null,-1),e(`div`,Et,[e(`div`,Dt,i(t.$t(`connection.field.account`)),1),(h(!0),s(l,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`,kt,i(r.label),1),r.count>0?(h(),s(`span`,At,i(r.count),1)):o(``,!0)],10,Ot))),128))])]),e(`section`,jt,[!t.loading&&t.filteredItems.length===0?(h(),s(`div`,Mt,i(t.$t(`connection.message.browseEmpty`)),1)):(h(),s(`div`,Nt,[(h(!0),s(l,null,m(t.filteredItems,c=>(h(),s(`article`,{key:c.id,class:`card`},[e(`div`,Pt,[e(`span`,Ft,[c.icon_url?(h(),s(`img`,{key:0,src:c.icon_url,alt:c.name},null,8,It)):(h(),f(C,{key:1,size:16,"aria-hidden":`true`,focusable:`false`}))]),e(`div`,Lt,[e(`div`,Rt,[e(`h4`,zt,i(c.name),1)]),e(`div`,Bt,[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,Vt)):c.is_new?(h(),s(`span`,Ht,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`,Wt,i(c.publisher),1)):o(``,!0)])]),c.installed?(h(),f(A,{key:1,trigger:`click`,placement:`bottom-end`,"popper-class":`connection-actions-popper`,onCommand:e=>t.onInstalledCommand(e,c)},{dropdown:p(()=>[a(ne,{class:`connection-actions-menu`},{default:p(()=>[a(k,{command:`addAccount`,disabled:!c.installable},{default:p(()=>[r(i(t.$t(`connection.button.addAccount`)),1)]),_:1},8,[`disabled`]),a(k,{command:`manage`},{default:p(()=>[r(i(t.$t(`connection.button.manageAccounts`)),1)]),_:1})]),_:2},1024)]),default:p(()=>[e(`button`,{type:`button`,class:`card-action card-action-installed`,"aria-label":t.accountLabel(c),title:t.accountLabel(c)},[a(D,{size:16,"aria-hidden":`true`,focusable:`false`}),e(`span`,Yt,i(t.accountCount(c)),1),a(O,{class:`ml-1 card-action-caret`,size:12,"aria-hidden":`true`,focusable:`false`})],8,Jt)]),_:2},1032,[`onCommand`])):(h(),f(E,{key:0,disabled:c.installable,content:t.$t(`skill.menu.soon`),placement:`top`},{default:p(()=>[e(`span`,Gt,[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(),f(w,{key:0,class:`icon-spin`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(T,{key:1,size:16,"aria-hidden":`true`,focusable:`false`})),e(`span`,qt,i(t.$t(`connection.button.install`)),1)],8,Kt)])]),_:2},1032,[`disabled`,`content`]))]),c.short_description||c.description?(h(),s(`p`,Xt,i(c.short_description||c.description),1)):o(``,!0)]))),128))]))])])),[[I,t.loading]]),a(j,{modelValue:t.pickerVisible,"onUpdate:modelValue":c[2]||=e=>t.pickerVisible=e,item:t.pickerItem,onSelect:t.onMethodSelected},null,8,[`modelValue`,`item`,`onSelect`]),a(M,{modelValue:t.pairingDialogVisible,"onUpdate:modelValue":c[3]||=e=>t.pairingDialogVisible=e,onPaired:t.onBrowserPaired},null,8,[`modelValue`,`onPaired`]),a(N,{ref:`browserDevicePicker`,modelValue:t.browserDevicePickerVisible,"onUpdate:modelValue":c[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(P,{modelValue:t.byocDialogVisible,"onUpdate:modelValue":c[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 Qt=g({name:`UserConnections`,components:{ElButton:W,ElTag:_e,ElAvatar:T,ElDialog:R,ElInput:B,ElCheckbox:D,ElCheckboxGroup:E,ElDropdown:M,ElDropdownMenu:j,ElDropdownItem:A,AddIcon:L,CollapseUpIcon:ye,ConnectionIcon:fe,DesktopIcon:de,ExpandDownIcon:I,ExpandRightIcon:re,ExternalLinkIcon:se,LockIcon:ue,MoreIcon:oe,SearchIcon:pe,SuggestionIcon:ce,BrowseConnectors:z(_t,[[`render`,Zt],[`__scopeId`,`data-v-b6e6bb0c`]]),ByocCredentialsDialog:Ie,ConnectorMethodPicker:Ue,BrowserPairingDialog:tt,BrowserDevicePicker:ft,ElSkeleton:F,ElSkeletonItem:P,ElTooltip:C},data(){return{connections:[],connectionsRequestId:0,manageRequestId:0,catalog:[],loading:!1,loadingCatalog:!1,firstLoadComplete:!1,refreshingId:null,searchQuery:``,selectedKey:null,collapsedGroups:{},faviconBlocked:{},customServerUrl:``,customName:``,customClientId:``,customClientSecret:``,customDialogVisible:!1,customAdvancedVisible:!1,customAuthorizing:!1,scopeDialogVisible:!1,scopeDialogCatalog:null,scopeDialogMethod:null,selectedScopes:[],mcpToolsByConnection:{},mcpToolsState:{},browseDialogVisible:!1,pendingCreateNew:!1,byocDialogVisible:!1,byocDialogCatalog:null,byocDialogMethod:null,pickerVisible:!1,pickerCatalog:null,pairingDialogVisible:!1,browserDevicePickerVisible:!1,browserDialogCatalog:null,browserDialogMethod:null,browserInstalling:!1,browserRebindConnectionId:null,pairedBrowserDevice:null}},computed:{catalogByIdentifier(){let e={};for(let t of this.catalog)t.identifier&&(e[t.identifier]=t);return e},catalogForConnection(){let e=this.catalogByIdentifier;return t=>{let n=t.connector_identifier;return n?e[n]:void 0}},detailActions(){let e=this.selectedItem,t=e?.connection;if(!e||!t)return[];let n=[],r=this.normalizedStatus(t.status)===`active`,i=!!e.catalog?.installable,a=this.refreshingId===t.id;return t.supports_refresh&&n.push({command:`refresh`,label:String(this.$t(`connection.button.refresh`)),disabled:a}),e.browserSession&&r&&(n.push({command:`rebind`,label:String(this.$t(`connection.button.rebindBrowserDevice`)),disabled:this.browserInstalling}),(t.browser_device?.active_session_count||0)>0&&n.push({command:`stopSessions`,label:String(this.$t(`connection.button.stopBrowserSessions`)),disabled:a})),e.catalog&&!e.browserSession&&(n.push({command:`reconnect`,label:String(this.$t(`connection.button.reconnect`)),disabled:!i}),n.push({command:`addAccount`,label:String(this.$t(`connection.button.addAccount`)),disabled:!i})),e.catalog&&n.push({command:`setDefault`,label:String(t.is_default?this.$t(`connection.button.isDefault`):this.$t(`connection.button.setDefault`)),disabled:!!t.is_default}),n.push({command:`rename`,label:String(this.$t(`connection.button.rename`))}),n.push({command:`disconnect`,label:String(this.$t(`connection.button.disconnect`)),danger:!0,divided:!0}),n},activeConnectedCatalogIds(){let e=new Set,t=this.catalogByIdentifier;for(let n of this.connections){if(this.normalizedStatus(n.status)!==`active`)continue;let r=n.connector_identifier,i=r?t[r]:void 0;i&&e.add(i.identifier)}return e},items(){let e=[],t={};for(let e of this.connections){let n=e.connector_identifier||``;n&&(t[n]=(t[n]||0)+1)}let n=new Set(Object.keys(t).filter(e=>t[e]>1));for(let t of this.connections){let r=`connection:${t.id}`,i=this.catalogForConnection(t),a=t.execution_type===`remote_mcp`,o=t.credential_type===`user_secret`||t.credential_type===`cookie_jar`,s=t.execution_type===`browser_device`,c=a&&!i,l=this.faviconBlocked[r]?void 0:i?.icon_url||void 0;e.push({key:r,name:i?.name||(s?t.profile?.name||t.connector_identifier||String(this.$t(`user.browserDevice.title`)):a&&t.server_url||t.provider),faviconUrl:l,custom:a,byoc:o,browserSession:s,byo:c,description:i?.short_description||i?.description||void 0,serverUrl:a&&t.server_url||void 0,connection:t,catalog:i,accountLabel:this.connectionAccountLabel(t),isDefault:n.has(t.connector_identifier||``)&&!!t.is_default,clusterKey:t.connector_identifier||r,createdAt:Date.parse(t.created_at)||0,accountSeq:t.account_seq??0,groupKey:`connected`})}let r=this.activeConnectedCatalogIds;for(let t of this.catalog){if(!t.is_featured||r.has(t.identifier))continue;let n=`catalog:${t.identifier}`,i=this.faviconBlocked[n]?void 0:t.icon_url||void 0;e.push({key:n,name:t.name||t.identifier,faviconUrl:i,custom:!1,byoc:!1,browserSession:!1,byo:!1,description:t.short_description||t.description||void 0,catalog:t,groupKey:`available`})}return e},orderedItems(){let e=this.items.filter(e=>e.groupKey===`connected`),t=this.items.filter(e=>e.groupKey===`available`),n=new Map;for(let t of e){let e=t.clusterKey||t.key;n.set(e,Math.max(n.get(e)??0,t.createdAt||0))}return e.sort((e,t)=>{let r=e.clusterKey||e.key,i=t.clusterKey||t.key;if(r!==i){let e=(n.get(i)??0)-(n.get(r)??0);return e===0?r<i?-1:1:e}if(!!e.isDefault!=!!t.isDefault)return e.isDefault?-1:1;let a=(t.createdAt||0)-(e.createdAt||0);if(a!==0)return a;let o=(e.accountSeq??0)-(t.accountSeq??0);return o===0?e.key<t.key?-1:+(e.key>t.key):o}),[...e,...t]},filteredItems(){let e=this.searchQuery.trim().toLowerCase();return e?this.orderedItems.filter(t=>t.name.toLowerCase().includes(e)||(t.serverUrl||``).toLowerCase().includes(e)||(t.description||``).toLowerCase().includes(e)):this.orderedItems},filteredGroups(){let e=[],t=this.filteredItems.filter(e=>e.groupKey===`connected`),n=this.filteredItems.filter(e=>e.groupKey===`available`);return t.length&&e.push({key:`connected`,label:String(this.$t(`connection.title.groupConnected`)),collapsed:!!this.collapsedGroups.connected,items:t}),n.length&&e.push({key:`available`,label:String(this.$t(`connection.title.groupRecommended`)),collapsed:!!this.collapsedGroups.available,items:n}),e},selectedItem(){return this.selectedKey&&this.items.find(e=>e.key===this.selectedKey)||null},detailScopes(){let e=this.selectedItem;if(!e||!e.catalog)return[];let t=e.catalog.permissions||[],n=new Map(t.map(e=>[e.id,e])),r=e.connection;return r&&(r.scopes||[]).length>0?(r.scopes||[]).map(e=>{let t=n.get(e);return{id:e,label:t?.label||e,desc:t?.desc||``}}):t.map(e=>({id:e.id,label:e.label||e.id,desc:e.desc||``}))},selectedMcpTools(){let e=this.selectedItem?.connection;return!e||e.execution_type!==`remote_mcp`?null:this.mcpToolsByConnection[e.id]||null},selectedMcpToolsLoading(){let e=this.selectedItem?.connection;return!e||e.execution_type!==`remote_mcp`?!1:this.mcpToolsState[e.id]===!0},selectedMcpToolsError(){let e=this.selectedItem?.connection;if(!e||e.execution_type!==`remote_mcp`)return null;let t=this.mcpToolsState[e.id];return typeof t==`string`?t:null},permissionRowCount(){return this.selectedItem?.custom&&this.selectedItem.connection?this.selectedMcpTools?.length??0:this.detailScopes.length},showsAccountIdentity(){let e=this.selectedItem?.connection;return!e||this.selectedItem?.browserSession?!1:this.selectedItem?.byoc?!!(e.profile?.name||e.profile?.login||e.profile?.email):!0},scopeDialogPermissions(){return this.scopeDialogMethod?.permissions||this.scopeDialogCatalog?.permissions||[]},suggestions(){let e=this.selectedItem;return e&&e.catalog?.suggestions||[]},overviewText(){let e=(this.selectedItem?.catalog?.description||``).trim();return e?e===(this.selectedItem?.description||``).trim()?``:e:``},isMcpConnector(){return K(this.selectedItem?.catalog)?.execution.type===`remote_mcp`},suggestionsLocked(){let e=this.selectedItem?.connection;return!e||this.normalizedStatus(e.status)!==`active`}},watch:{orderedItems:{handler(e){if(e.length===0){this.selectedKey=null;return}(!this.selectedKey||!e.some(e=>e.key===this.selectedKey))&&(this.selectedKey=e[0].key)},immediate:!1}},async mounted(){await Promise.all([this.fetchConnections(),this.fetchCatalog()]),this.firstLoadComplete=!0,!this.selectedKey&&this.orderedItems.length&&(this.selectedKey=this.orderedItems[0].key);let e=this.selectedKey?this.items.find(e=>e.key===this.selectedKey):null;e?.connection?.execution_type===`remote_mcp`&&this.normalizedStatus(e.connection.status)===`active`&&this.loadMcpTools(e.connection.id);let t=this.$route.query.connect?.toString();if(t){let e=this.orderedItems.find(e=>e.catalog?.identifier===t);if(e){this.selectedKey=e.key;let t=e.connection&&this.normalizedStatus(e.connection.status)===`active`;e.catalog&&!t&&this.onConnect(e.catalog)}}},methods:{onSelect(e){this.selectedKey=e.key;let t=e.connection;t&&t.execution_type===`remote_mcp`&&this.normalizedStatus(t.status)===`active`&&(this.mcpToolsState[t.id]??this.loadMcpTools(t.id))},async loadMcpTools(e){this.mcpToolsState={...this.mcpToolsState,[e]:!0};try{let{data:t}=await J.tools(e);this.mcpToolsByConnection={...this.mcpToolsByConnection,[e]:t.items||[]},this.mcpToolsState={...this.mcpToolsState,[e]:null}}catch(t){let n=t,r=n.response?.data?.detail||n.message||`Failed to load tools`;this.mcpToolsState={...this.mcpToolsState,[e]:r}}},toggleGroup(e){this.collapsedGroups={...this.collapsedGroups,[e]:!this.collapsedGroups[e]}},onFaviconError(e){this.faviconBlocked={...this.faviconBlocked,[e.key]:!0}},oauthMetadata(e){return(e.metadata||{}).oauth||{}},connectionProviderName(e){let t=this.catalogForConnection(e);return t?.name?t.name:e.execution_type===`remote_mcp`&&e.server_url||e.provider},connectionAccountLabel(e){return e.label||e.profile?.name||e.profile?.login||e.profile?.email||``},connectionAccountName(e){return e.profile?.name||e.profile?.login||e.profile?.email||`—`},connectionAvatar(e){return e.profile?.avatar||e.profile?.avatar_url||e.profile?.picture||``},connectionAccountInitial(e){let t=this.connectionAccountName(e),n=t&&t!==`—`?t.trim().charAt(0):``;return n?n.toUpperCase():`?`},connectionAccountSubtext(e){let t=e.profile?.email;return t&&t!==e.profile?.name?t:e.profile?.login||``},customAuthSummary(e){let t=this.oauthMetadata(e),n=t.token_endpoint_auth_method||`none`;return[t.client_registration_type||`dynamic`,n,(t.authorization_server_metadata||{}).issuer||t.authorization_server_url].filter(Boolean).join(` / `)},byocCredentialSummary(e){return((e.connection?.method_snapshot||K(e.catalog,e.connection?.method_id))?.credential.credential_schema||[]).map(e=>e.label).filter(Boolean).join(` · `)},normalizedStatus(e){return e.toString().toLowerCase()},statusLabel(e){return String(this.$t(`connection.status.${this.normalizedStatus(e)}`))},statusTagType(e){switch(this.normalizedStatus(e)){case`active`:return`success`;case`expired`:return`warning`;case`revoked`:return`danger`;default:return`info`}},browserDeviceStatusLabel(e){let t=e.browser_device?.status;return t?String(this.$t(`user.browserDevice.status.${t}`)):this.statusLabel(e.status)},browserDeviceStatusTagType(e){let t=e.browser_device;if(t&&!t.compatible)return t.incompatibility_reason===`device_offline`?`warning`:`danger`;let n=t?.status;if(!n)return this.statusTagType(e.status);switch(n.toLowerCase()){case`active`:return`success`;case`pending`:return`warning`;case`suspended`:case`quarantined`:case`revoked`:return`danger`;default:return`info`}},browserDeviceCompatibilityLabel(e){let t=e.browser_device;return t?t.compatible?String(this.$t(`connection.message.browserCompatible`)):String(this.$t(`connection.message.browserIncompatibility.${t.incompatibility_reason}`)):this.statusLabel(e.status)},async fetchConnections(){let e=++this.connectionsRequestId;this.loading=!0;try{let{data:t}=await J.list();return e===this.connectionsRequestId?(this.connections=(t||[]).filter(e=>e.execution_type!==`browser_device`||this.normalizedStatus(e.status)===`active`),!0):!1}catch(e){return console.error(`Failed to load connections`,e),!1}finally{e===this.connectionsRequestId&&(this.loading=!1)}},async fetchCatalog(){this.loadingCatalog=!0;try{let{data:e}=await J.listCatalog({sort:`popular`,limit:200});this.catalog=e?.items||[]}catch(e){console.error(`Failed to load connector catalog`,e)}finally{this.loadingCatalog=!1}},onSuggestionClick(e){let t=e.prompt;if(!t)return;let n=e.model_group||`claude`;this.$router.push({path:`/${n}/conversations`,query:{query:t,source:`connector_suggestion`,suggestion_id:e.id,...this.selectedItem?.catalog?.identifier?{connector:this.selectedItem.catalog.identifier}:{}}})},async onConnect(e,t=!1){if(!e.installable)return;if(this.pendingCreateNew=t,q(e).length>1){this.pickerCatalog=e,this.pickerVisible=!0;return}let n=K(e);n&&await this.connectWithMethod(e,n)},clearCreateNewIntent(){this.pendingCreateNew=!1},onMethodSelected(e){this.pickerVisible=!1,this.connectWithMethod(e.item,e.method)},async connectWithMethod(e,t){if(t.execution.type===`browser_device`){this.browserRebindConnectionId=null,this.browserDialogCatalog=e,this.browserDialogMethod=t,this.browserDevicePickerVisible=!0;return}if(t.credential.type===`user_secret`||t.credential.type===`cookie_jar`){this.byocDialogCatalog=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}let n=t.permissions||[];if(n.length>1){this.scopeDialogCatalog=e,this.scopeDialogMethod=t,this.selectedScopes=n.map(e=>e.id),this.scopeDialogVisible=!0;return}try{await ve.confirm(this.$t(`connection.message.connectConfirm`,{provider:e.name||e.identifier}),``,{confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`),roundButton:!0})}catch{return}await this.startAuthorize(e,t,void 0)},async onConfirmScopes(){let e=this.scopeDialogCatalog,t=this.scopeDialogMethod;if(!e||!t)return;let n=[...this.selectedScopes];this.scopeDialogVisible=!1,this.scopeDialogCatalog=null,this.scopeDialogMethod=null,this.selectedScopes=[],await this.startAuthorize(e,t,n)},async startAuthorize(e,t,n){try{let{data:r}=await J.installFromCatalog(e.id,{scopes:n&&n.length?n:void 0,return_url:$(),method_id:t.id,...this.pendingCreateNew?{create_new:!0}:{}});if(r&&r.type===`form`){this.byocDialogCatalog=e,this.byocDialogMethod=t,this.byocDialogVisible=!0;return}r&&r.authorization_url?await this.runAuthorizePopup(r.authorization_url):r&&r.type===`active`&&await this.fetchConnections()}catch(e){this.pendingCreateNew=!1,V.error(e?.response?.data?.detail||e?.message||`Failed to start authorization`)}},async runAuthorizePopup(e){let t=mt(e);if(!t){window.location.href=e;return}await t,this.pendingCreateNew=!1,await this.fetchConnections()},openCustomDialog(){this.customDialogVisible=!0},onAddCommand(e){e===`browse`?this.browseDialogVisible=!0:e===`custom`&&this.openCustomDialog()},async onCatalogInstalled(){this.pendingCreateNew=!1,await Promise.all([this.fetchConnections(),this.fetchCatalog()])},openBrowserPairing(){this.browserDevicePickerVisible=!1,this.pairingDialogVisible=!0},clearBrowserDialog(){this.browserDevicePickerVisible=!1,this.browserRebindConnectionId=null,this.browserDialogCatalog=null,this.browserDialogMethod=null,this.pendingCreateNew=!1},onBrowserPickerVisibility(e){e||this.$nextTick(()=>{!this.pairingDialogVisible&&!this.browserInstalling&&this.clearBrowserDialog()})},openBrowserRebind(e){let t=this.catalogForConnection(e),n=e.method_snapshot;!t||!n||(this.browserRebindConnectionId=e.id,this.browserDialogCatalog=t,this.browserDialogMethod=n,this.browserDevicePickerVisible=!0)},onBrowserPaired(e){this.pairedBrowserDevice=e,this.pairingDialogVisible=!1},async onBrowserPairingClosed(){if(this.browserDialogCatalog&&this.browserDialogMethod){let e=this.pairedBrowserDevice;this.pairedBrowserDevice=null,e?await this.$refs.browserDevicePicker?.refreshAfterPair(e):this.browserDevicePickerVisible=!0;return}this.pairedBrowserDevice=null,this.clearBrowserDialog()},async stopBrowserSessions(e){this.refreshingId=e.id;try{let{data:t}=await J.stopBrowserSessions(e.id);V.success(this.$t(`connection.message.browserSessionsStopped`,{count:t.stopped_session_count})),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.browserSessionStopFailed`))}finally{this.refreshingId=null}},async onBrowserDeviceSelected(e){let t=this.browserDialogCatalog,n=this.browserDialogMethod;if(!(!t||!n)){this.browserInstalling=!0;try{if(this.browserRebindConnectionId){let{data:t}=await J.rebindBrowserDevice(this.browserRebindConnectionId,e);this.connections=this.connections.map(e=>e.id===t.id?t:e),this.browserDevicePickerVisible=!1,this.browserRebindConnectionId=null,this.browserDialogCatalog=null,this.browserDialogMethod=null,V.success(this.$t(`connection.message.browserRebindSuccess`));return}let{data:r}=await J.installFromCatalog(t.id,{return_url:$(),method_id:n.id,browser_device_id:e});if(r.type!==`active`)throw Error(this.$t(`connection.message.installFailed`));this.browserDevicePickerVisible=!1,this.browserDialogCatalog=null,this.browserDialogMethod=null,V.success(this.$t(`connection.message.installed`,{name:t.name})),await this.onCatalogInstalled()}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}}},async onConnectCustom(){if(this.customServerUrl){this.customAuthorizing=!0;try{let{data:e}=await J.authorizeCustom({name:this.customName||void 0,server_url:this.customServerUrl,client_id:this.customClientId||void 0,client_secret:this.customClientSecret||void 0,provider:`mcp`,return_url:window.location.href});e?.authorization_url&&(window.location.href=e.authorization_url)}catch(e){V.error(e?.response?.data?.detail||e?.message||`Failed to start authorization`)}finally{this.customAuthorizing=!1}}},async onReconnect(e){if(!e.installable)return;this.pendingCreateNew=!1;let t=this.selectedItem?.connection?.method_id,n=K(e,t);if(n&&t&&n.id===t){await this.connectWithMethod(e,n);return}await this.onConnect(e)},onDetailAction(e){let t=this.selectedItem,n=t?.connection;if(!(!t||!n))switch(e){case`refresh`:this.onRefresh(n);break;case`rebind`:this.openBrowserRebind(n);break;case`stopSessions`:this.stopBrowserSessions(n);break;case`reconnect`:t.catalog&&this.onReconnect(t.catalog);break;case`addAccount`:t.catalog&&this.onAddAccount(t.catalog);break;case`setDefault`:this.onSetDefault(n);break;case`rename`:this.onRename(n);break;case`disconnect`:this.onDisconnect(n);break}},async onBrowseAddAccount(e){this.browseDialogVisible=!1,await this.onAddAccount(e.item)},async onBrowseManage(e){this.browseDialogVisible=!1;let t=e.item.identifier;if(!t)return;let n=++this.manageRequestId,r=this.findConnectionRow(t),i=!0;if(!r){if(i=await this.fetchConnections(),n!==this.manageRequestId)return;r=this.findConnectionRow(t)}if(!r){i&&V.warning(this.$t(`connection.message.manageUnavailable`));return}this.searchQuery=``,this.collapsedGroups={...this.collapsedGroups,[r.groupKey]:!1},this.onSelect(r)},findConnectionRow(e){let t=this.orderedItems.filter(t=>t.connection?.connector_identifier===e);if(!t.length)return null;let n=t.filter(e=>this.normalizedStatus(e.connection.status)===`active`),r=n.length?n:t;return r.find(e=>e.connection?.is_default)||r[0]},async onAddAccount(e){await this.onConnect(e,!0)},async onSetDefault(e){try{await J.setDefault(e.id),V.success(this.$t(`connection.message.defaultUpdated`)),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.defaultUpdateFailed`))}},async onRename(e){let t;try{let{value:n}=await ve.prompt(this.$t(`connection.message.renamePrompt`),``,{confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`),inputValue:this.connectionAccountLabel(e),inputValidator:e=>(e||``).length<=64,inputErrorMessage:this.$t(`connection.message.renameTooLong`),roundButton:!0});t=n||``}catch{return}try{await J.rename(e.id,t),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.renameFailed`))}},async onRefresh(e){this.refreshingId=e.id;try{await J.refresh(e.id),V.success(this.$t(`connection.message.refreshed`)),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||this.$t(`connection.message.refreshFailed`))}finally{this.refreshingId=null}},async onDisconnect(e){try{await ve.confirm(this.$t(`connection.message.disconnectConfirm`,{provider:this.connectionProviderName(e)}),``,{confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`,roundButton:!0})}catch{return}try{await J.disconnect(e.id);let t=`connection:${e.id}`;this.connections=this.connections.filter(t=>t.id!==e.id),this.selectedKey===t&&(this.selectedKey=this.orderedItems[0]?.key||null),V.success(this.$t(`connection.message.disconnected`,{provider:this.connectionProviderName(e)})),await this.fetchConnections()}catch(e){V.error(e?.response?.data?.detail||e?.message||`Failed to disconnect`)}}}}),$t={class:`page-shell`},en={class:`page-heading`},tn={class:`page-title`},nn={class:`page-subtitle`},rn={class:`connectors-shell`},an={class:`connectors-list`},on={class:`list-toolbar`},sn=[`aria-label`,`title`],cn={class:`list-scroll`},ln={class:`list-group`},un={class:`group-header skeleton-header`},dn={class:`group-items`},fn={class:`group-header`},pn=[`aria-label`,`title`,`onClick`],mn=[`onClick`],hn={class:`group-items`},gn=[`onClick`],_n={class:`list-item-icon`},vn=[`src`,`alt`,`onError`],yn={class:`list-item-name`},bn=[`title`],xn={key:1,class:`list-item-badge list-item-badge-default`},Sn={key:2,class:`list-item-badge`},Cn=[`title`],wn={key:2,class:`list-empty`},Tn={class:`list-footer`},En={class:`connectors-detail`},Dn={key:0,class:`detail-skeleton`},On={class:`detail-skeleton-header`},kn={class:`detail-skeleton-section`},An={key:1,class:`detail-empty`},jn={class:`detail-empty-title`},Mn={class:`detail-empty-hint`},Nn={class:`detail-header`},Pn={class:`detail-title-row`},Fn={class:`detail-icon`},In=[`src`,`alt`],Ln={class:`detail-title`},Rn={class:`detail-actions`},zn=[`aria-label`,`title`],Bn={key:0,class:`detail-server-url`},Vn={key:1,class:`detail-description`},Hn={key:0,class:`detail-section`},Un={class:`section-heading`},Wn={class:`section-title`},Gn={class:`overview-text`},Kn={key:1,class:`detail-section`},qn={class:`account-row`},Jn={class:`account-info`},Yn={class:`account-name`},Xn={key:0,class:`account-sub`},Zn={key:2,class:`detail-section browser-session`},Qn={class:`browser-session-heading`},$n={class:`browser-session-icon`},er={class:`browser-session-copy`},tr={class:`meta-grid browser-session-meta`},nr={key:0},rr={key:1,class:`muted`},ir={class:`browser-digest-row`},ar={key:0,class:`browser-capabilities`},or={class:`browser-capabilities-label`},sr={class:`browser-capability-list`},cr={key:3,class:`detail-section`},lr={class:`meta-grid`},ur={key:0},dr={key:4,class:`detail-section`},fr={class:`meta-grid`},pr={key:0},mr={key:1},hr={key:5,class:`detail-section`},gr={class:`section-heading`},_r={class:`section-title`},vr={class:`section-count`},yr={class:`section-hint`},br={class:`suggestion-list`},xr=[`role`,`tabindex`,`aria-disabled`,`onClick`,`onKeyup`],Sr={class:`suggestion-text`},Cr={key:6,class:`detail-section`},wr={class:`section-heading`},Tr={class:`section-title`},Er={key:0,class:`section-count`},Dr={key:0,class:`permission-empty`},Or={key:1,class:`permission-empty error`},kr={key:2,class:`permission-list`},Ar={class:`permission-name`},jr={class:`permission-tool-name`},Mr={key:0,class:`permission-tool-desc`},Nr={key:3,class:`permission-empty`},Pr={key:1,class:`permission-empty`},Fr={key:0,class:`permission-list`},Ir={class:`permission-name`},Lr={class:`permission-scope-label`},Rr={key:0,class:`permission-tool-desc`},zr={key:1,class:`permission-empty`},Br={key:7,class:`detail-section meta-section`},Vr={class:`meta-grid`},Hr={key:0},Ur={key:1,class:`muted`},Wr={key:0},Gr={key:1,class:`muted`},Kr={class:`custom-dialog-intro`},qr={class:`custom-dialog-form`},Jr={key:0,class:`advanced-fields`},Yr={class:`custom-trust-copy`},Xr={class:`text-sm text-gray-500 mb-4`},Zr={class:`scope-dialog-label`},Qr={key:0,class:`scope-dialog-desc`};function $r(g,_,v,y,b,x){let S=u(`search-icon`),C=u(`el-input`),w=u(`add-icon`),T=u(`el-dropdown-item`),E=u(`el-dropdown-menu`),D=u(`el-dropdown`),O=u(`el-skeleton-item`),k=u(`el-skeleton`),ne=u(`expand-right-icon`),A=u(`expand-down-icon`),j=u(`desktop-icon`),M=u(`connection-icon`),N=u(`el-tag`),P=u(`el-button`),F=u(`more-icon`),I=u(`el-avatar`),re=u(`suggestion-icon`),ie=u(`lock-icon`),ae=u(`external-link-icon`),oe=u(`el-tooltip`),se=u(`browse-connectors`),ce=u(`byoc-credentials-dialog`),le=u(`connector-method-picker`),ue=u(`browser-pairing-dialog`),de=u(`browser-device-picker`),fe=u(`collapse-up-icon`),L=u(`el-dialog`),pe=u(`el-checkbox`),me=u(`el-checkbox-group`),he=ee(`loading`);return h(),s(`div`,$t,[e(`div`,en,[e(`h2`,tn,i(g.$t(`connection.title.connections`)),1),e(`p`,nn,i(g.$t(`connection.message.pageDescription`)),1)]),e(`div`,rn,[e(`aside`,an,[e(`div`,on,[a(C,{modelValue:g.searchQuery,"onUpdate:modelValue":_[0]||=e=>g.searchQuery=e,class:`search-input`,size:`default`,clearable:``,placeholder:g.$t(`connection.placeholder.search`)},{prefix:p(()=>[a(S,{size:14,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`modelValue`,`placeholder`]),a(D,{trigger:`click`,placement:`bottom-end`,onCommand:g.onAddCommand},{dropdown:p(()=>[a(E,null,{default:p(()=>[a(T,{command:`browse`},{default:p(()=>[a(S,{class:`mr-2`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(g.$t(`connection.title.browse`)),1)]),_:1}),a(T,{command:`custom`},{default:p(()=>[a(w,{class:`mr-2`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(g.$t(`connection.button.addCustomConnector`)),1)]),_:1})]),_:1})]),default:p(()=>[e(`button`,{type:`button`,class:`add-button`,"aria-label":g.$t(`connection.title.addCustomConnector`),title:g.$t(`connection.title.addCustomConnector`)},[a(w,{size:16,"aria-hidden":`true`,focusable:`false`})],8,sn)]),_:1},8,[`onCommand`])]),d((h(),s(`div`,cn,[g.firstLoadComplete?g.filteredGroups.length?(h(!0),s(l,{key:1},m(g.filteredGroups,t=>(h(),s(`div`,{key:t.key,class:`list-group`},[e(`div`,fn,[e(`button`,{type:`button`,class:`group-chevron-button`,"aria-label":g.$t(t.collapsed?`common.button.expand`:`common.button.collapse`),title:g.$t(t.collapsed?`common.button.expand`:`common.button.collapse`),onClick:e=>g.toggleGroup(t.key)},[t.collapsed?(h(),f(ne,{key:0,class:`group-chevron`,size:14,"aria-hidden":`true`,focusable:`false`})):(h(),f(A,{key:1,class:`group-chevron`,size:14,"aria-hidden":`true`,focusable:`false`}))],8,pn),e(`span`,{class:`group-title`,onClick:e=>g.toggleGroup(t.key)},i(t.label),9,mn)]),d(e(`ul`,hn,[(h(!0),s(l,null,m(t.items,r=>(h(),s(`li`,{key:r.key,class:n({"list-item":!0,active:g.selectedKey===r.key}),onClick:e=>g.onSelect(r)},[e(`span`,_n,[r.faviconUrl?(h(),s(`img`,{key:0,src:r.faviconUrl,alt:r.name,onError:e=>g.onFaviconError(r)},null,40,vn)):r.browserSession?(h(),f(j,{key:1,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(M,{key:2,size:16,"aria-hidden":`true`,focusable:`false`}))]),e(`span`,yn,i(r.name),1),r.accountLabel?(h(),s(`span`,{key:0,class:`list-item-account`,title:r.accountLabel},i(r.accountLabel),9,bn)):o(``,!0),r.isDefault?(h(),s(`span`,xn,i(g.$t(`connection.label.defaultAccount`)),1)):o(``,!0),r.byo?(h(),s(`span`,Sn,i(g.$t(`connection.label.custom`)),1)):t.key===`available`?(h(),s(`span`,{key:3,class:`list-item-badge list-item-badge-hint`,title:g.$t(`connection.message.notConnectedYet`)},i(g.$t(`connection.label.notConnected`)),9,Cn)):o(``,!0)],10,gn))),128))],512),[[te,!t.collapsed]])]))),128)):(h(),s(`div`,wn,i(g.searchQuery?g.$t(`connection.message.noMatch`):g.$t(`connection.message.noConnections`)),1)):(h(),f(k,{key:0,animated:``},{template:p(()=>[e(`div`,ln,[e(`div`,un,[a(O,{variant:`text`,style:{width:`100px`,height:`11px`}})]),e(`ul`,dn,[(h(),s(l,null,m(5,t=>e(`li`,{key:`skeleton-${t}`,class:`list-item skeleton-item`},[a(O,{variant:`image`,style:{width:`20px`,height:`20px`,"border-radius":`4px`}}),a(O,{variant:`text`,style:{flex:`1 1 auto`,height:`14px`}})])),64))])])]),_:1}))])),[[he,g.firstLoadComplete&&(g.loading||g.loadingCatalog)]]),e(`div`,Tn,[e(`button`,{type:`button`,class:`browse-all-button`,onClick:_[1]||=e=>g.browseDialogVisible=!0},[a(S,{class:`mr-1`,size:16,"aria-hidden":`true`,focusable:`false`}),r(` `+i(g.$t(`connection.button.browseAll`)),1)])])]),e(`section`,En,[g.firstLoadComplete?g.selectedItem?o(``,!0):(h(),s(`div`,An,[a(M,{class:`detail-empty-icon`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`p`,jn,i(g.$t(`connection.message.selectConnector`)),1),e(`p`,Mn,i(g.$t(`connection.message.noConnectionsHint`)),1)])):(h(),s(`div`,Dn,[a(k,{animated:``},{template:p(()=>[e(`div`,On,[a(O,{variant:`circle`,style:{width:`32px`,height:`32px`}}),a(O,{variant:`h3`,style:{width:`220px`,height:`22px`,"margin-left":`12px`}})]),a(O,{variant:`text`,style:{width:`60%`,height:`12px`,"margin-top":`12px`}}),e(`div`,kn,[a(O,{variant:`text`,style:{width:`140px`,height:`14px`}}),a(O,{variant:`p`,style:{width:`33%`,"margin-top":`16px`}}),a(O,{variant:`p`,style:{"margin-top":`16px`}}),a(O,{variant:`p`,style:{"margin-top":`16px`}}),a(O,{variant:`p`,style:{"margin-top":`16px`}}),a(O,{variant:`p`,style:{width:`61%`,"margin-top":`16px`}})])]),_:1})])),g.firstLoadComplete&&g.selectedItem?(h(),s(l,{key:2},[e(`header`,Nn,[e(`div`,Pn,[e(`span`,Fn,[g.selectedItem.faviconUrl?(h(),s(`img`,{key:0,src:g.selectedItem.faviconUrl,alt:g.selectedItem.name,onError:_[2]||=e=>g.onFaviconError(g.selectedItem)},null,40,In)):g.selectedItem.browserSession?(h(),f(j,{key:1,size:20,"aria-hidden":`true`,focusable:`false`})):(h(),f(M,{key:2,size:20,"aria-hidden":`true`,focusable:`false`}))]),e(`h3`,Ln,i(g.selectedItem.name),1),g.selectedItem.byo?(h(),f(N,{key:0,size:`small`,type:`info`,class:`detail-custom-tag`},{default:p(()=>[r(i(g.$t(`connection.label.custom`)),1)]),_:1})):o(``,!0),e(`div`,Rn,[!g.selectedItem.connection&&g.selectedItem.catalog?(h(),f(P,{key:0,type:`primary`,size:`small`,disabled:!g.selectedItem.catalog?.installable,onClick:_[3]||=e=>g.selectedItem.catalog&&g.onConnect(g.selectedItem.catalog)},{default:p(()=>[r(i(g.$t(`connection.button.connect`)),1)]),_:1},8,[`disabled`])):o(``,!0),g.selectedItem.connection&&g.detailActions.length?(h(),f(D,{key:1,trigger:`click`,placement:`bottom-end`,"popper-class":`connection-actions-popper`,onCommand:g.onDetailAction},{dropdown:p(()=>[a(E,{class:`connection-actions-menu`},{default:p(()=>[(h(!0),s(l,null,m(g.detailActions,e=>(h(),f(T,{key:e.command,command:e.command,disabled:e.disabled,divided:e.divided,class:n({"actions-item-danger":e.danger})},{default:p(()=>[r(i(e.label),1)]),_:2},1032,[`command`,`disabled`,`divided`,`class`]))),128))]),_:1})]),default:p(()=>[e(`button`,{type:`button`,class:`actions-button`,"aria-label":g.$t(`connection.title.actions`),title:g.$t(`connection.title.actions`)},[a(F,{size:16,"aria-hidden":`true`,focusable:`false`})],8,zn)]),_:1},8,[`onCommand`])):o(``,!0)])]),g.selectedItem.serverUrl?(h(),s(`p`,Bn,i(g.selectedItem.serverUrl),1)):g.selectedItem.description?(h(),s(`p`,Vn,i(g.selectedItem.description),1)):o(``,!0)]),g.overviewText?(h(),s(`div`,Hn,[e(`div`,Un,[e(`span`,Wn,i(g.$t(`connection.title.overview`)),1)]),e(`p`,Gn,i(g.overviewText),1)])):o(``,!0),g.selectedItem.connection&&!g.selectedItem.custom&&g.showsAccountIdentity?(h(),s(`div`,Kn,[e(`div`,qn,[g.connectionAvatar(g.selectedItem.connection)?(h(),f(I,{key:0,src:g.connectionAvatar(g.selectedItem.connection),size:40},null,8,[`src`])):(h(),f(I,{key:1,size:40,class:`account-avatar-fallback`},{default:p(()=>[r(i(g.connectionAccountInitial(g.selectedItem.connection)),1)]),_:1})),e(`div`,Jn,[e(`span`,Yn,i(g.connectionAccountName(g.selectedItem.connection)),1),g.connectionAccountSubtext(g.selectedItem.connection)?(h(),s(`span`,Xn,i(g.connectionAccountSubtext(g.selectedItem.connection)),1)):o(``,!0)]),a(N,{type:g.statusTagType(g.selectedItem.connection.status),size:`small`},{default:p(()=>[r(i(g.statusLabel(g.selectedItem.connection.status)),1)]),_:1},8,[`type`])])])):o(``,!0),g.selectedItem.connection&&g.selectedItem.browserSession?(h(),s(`div`,Zn,[e(`div`,Qn,[e(`span`,$n,[a(j,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),e(`div`,er,[e(`strong`,null,i(g.selectedItem.connection.browser_device?.name||g.$t(`user.browserDevice.title`)),1),e(`span`,null,i(g.$t(`user.browserDevice.localApprovalOnly`)),1)]),a(N,{type:g.browserDeviceStatusTagType(g.selectedItem.connection),size:`small`},{default:p(()=>[r(i(g.browserDeviceCompatibilityLabel(g.selectedItem.connection)),1)]),_:1},8,[`type`])]),e(`dl`,tr,[e(`div`,null,[e(`dt`,null,i(g.$t(`user.browserDevice.platform`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.platform||`—`),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`user.browserDevice.extensionVersion`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.extension_version||`—`),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`user.browserDevice.lastSeen`)),1),e(`dd`,null,[g.selectedItem.connection.browser_device?.last_seen_at?(h(),s(`span`,nr,i(g.$dayjs.format(g.selectedItem.connection.browser_device.last_seen_at)),1)):(h(),s(`span`,rr,i(g.$t(`user.browserDevice.neverSeen`)),1))])]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.createdAt`)),1),e(`dd`,null,i(g.$dayjs.format(g.selectedItem.connection.browser_device?.created_at||g.selectedItem.connection.created_at)),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.connectionRevision`)),1),e(`dd`,null,i(g.selectedItem.connection.revision),1)]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.activeSessions`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.active_session_count??0),1)]),e(`div`,ir,[e(`dt`,null,i(g.$t(`connection.field.wireContractDigest`)),1),e(`dd`,null,i(g.selectedItem.connection.browser_device?.wire_contract_digest||`—`),1)])]),g.selectedItem.connection.browser_device?.capabilities?.length?(h(),s(`div`,ar,[e(`span`,or,i(g.$t(`user.browserDevice.capabilities`)),1),e(`div`,sr,[(h(!0),s(l,null,m(g.selectedItem.connection.browser_device.capabilities,e=>(h(),f(N,{key:e,size:`small`,effect:`plain`},{default:p(()=>[r(i(e.replaceAll(`_`,` `)),1)]),_:2},1024))),128))])])):o(``,!0)])):o(``,!0),g.selectedItem.connection&&g.selectedItem.custom?(h(),s(`div`,cr,[e(`dl`,lr,[e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.status`)),1),e(`dd`,null,[a(N,{type:g.statusTagType(g.selectedItem.connection.status),size:`small`},{default:p(()=>[r(i(g.statusLabel(g.selectedItem.connection.status)),1)]),_:1},8,[`type`])])]),g.customAuthSummary(g.selectedItem.connection)?(h(),s(`div`,ur,[e(`dt`,null,i(g.$t(`connection.label.authMethod`)),1),e(`dd`,null,i(g.customAuthSummary(g.selectedItem.connection)),1)])):o(``,!0)])])):o(``,!0),g.selectedItem.connection&&g.selectedItem.byoc?(h(),s(`div`,dr,[e(`dl`,fr,[g.showsAccountIdentity?o(``,!0):(h(),s(`div`,pr,[e(`dt`,null,i(g.$t(`connection.field.status`)),1),e(`dd`,null,[a(N,{type:g.statusTagType(g.selectedItem.connection.status),size:`small`},{default:p(()=>[r(i(g.statusLabel(g.selectedItem.connection.status)),1)]),_:1},8,[`type`])])])),g.byocCredentialSummary(g.selectedItem)?(h(),s(`div`,mr,[e(`dt`,null,i(g.$t(`connection.label.credentials`)),1),e(`dd`,null,i(g.byocCredentialSummary(g.selectedItem)),1)])):o(``,!0)])])):o(``,!0),g.suggestions.length?(h(),s(`div`,hr,[e(`div`,gr,[e(`span`,_r,i(g.$t(`connection.title.tryIt`)),1),e(`span`,vr,i(g.suggestions.length),1)]),e(`p`,yr,i(g.suggestionsLocked?g.$t(`connection.message.tryItConnectFirst`):g.$t(`connection.message.tryItHint`)),1),e(`ul`,br,[(h(!0),s(l,null,m(g.suggestions,r=>(h(),f(oe,{key:r.id,content:g.$t(`connection.message.tryItConnectFirst`),disabled:!g.suggestionsLocked,placement:`top`},{default:p(()=>[e(`li`,{class:n([`suggestion-row`,{locked:g.suggestionsLocked}]),role:g.suggestionsLocked?void 0:`button`,tabindex:g.suggestionsLocked?void 0:0,"aria-disabled":g.suggestionsLocked?`true`:void 0,onClick:e=>!g.suggestionsLocked&&g.onSuggestionClick(r),onKeyup:[c(e=>!g.suggestionsLocked&&g.onSuggestionClick(r),[`enter`]),c(t(e=>!g.suggestionsLocked&&g.onSuggestionClick(r),[`prevent`]),[`space`])]},[a(re,{class:`suggestion-icon`,size:16,"aria-hidden":`true`,focusable:`false`}),e(`span`,Sr,i(r.prompt),1),g.suggestionsLocked?(h(),f(ie,{key:0,class:`suggestion-cta`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(ae,{key:1,class:`suggestion-cta`,size:16,"aria-hidden":`true`,focusable:`false`}))],42,xr)]),_:2},1032,[`content`,`disabled`]))),128))])])):o(``,!0),g.selectedItem.browserSession?o(``,!0):(h(),s(`div`,Cr,[e(`div`,wr,[e(`span`,Tr,i(g.$t(`connection.title.toolPermissions`)),1),g.permissionRowCount?(h(),s(`span`,Er,i(g.permissionRowCount),1)):o(``,!0)]),g.selectedItem.custom&&g.selectedItem.connection?(h(),s(l,{key:0},[g.selectedMcpToolsLoading?(h(),s(`p`,Dr,i(g.$t(`connection.message.toolsLoading`)),1)):g.selectedMcpToolsError?(h(),s(`p`,Or,i(g.selectedMcpToolsError),1)):g.selectedMcpTools&&g.selectedMcpTools.length?(h(),s(`ul`,kr,[(h(!0),s(l,null,m(g.selectedMcpTools,t=>(h(),s(`li`,{key:t.name,class:`permission-row`},[e(`span`,Ar,[e(`span`,jr,i(t.name),1),t.description?(h(),s(`span`,Mr,i(t.description),1)):o(``,!0)])]))),128))])):(h(),s(`p`,Nr,i(g.$t(`connection.label.noTools`)),1))],64)):g.isMcpConnector&&!g.selectedItem.connection?(h(),s(`p`,Pr,i(g.$t(`connection.label.toolsConnectFirst`)),1)):(h(),s(l,{key:2},[g.detailScopes.length?(h(),s(`ul`,Fr,[(h(!0),s(l,null,m(g.detailScopes,t=>(h(),s(`li`,{key:t.id,class:`permission-row`},[e(`span`,Ir,[e(`span`,Lr,i(t.label),1),t.desc?(h(),s(`span`,Rr,i(t.desc),1)):o(``,!0)])]))),128))])):(h(),s(`p`,zr,i(g.$t(`connection.label.noScopes`)),1))],64))])),g.selectedItem.connection&&!g.selectedItem.browserSession?(h(),s(`div`,Br,[e(`dl`,Vr,[e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.expiresAt`)),1),e(`dd`,null,[g.selectedItem.connection.expires_at?(h(),s(`span`,Hr,i(g.$dayjs.format(g.selectedItem.connection.expires_at)),1)):(h(),s(`span`,Ur,`—`))])]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.lastRefreshedAt`)),1),e(`dd`,null,[g.selectedItem.connection.last_refreshed_at?(h(),s(`span`,Wr,i(g.$dayjs.format(g.selectedItem.connection.last_refreshed_at)),1)):(h(),s(`span`,Gr,i(g.$t(`connection.label.never`)),1))])]),e(`div`,null,[e(`dt`,null,i(g.$t(`connection.field.createdAt`)),1),e(`dd`,null,i(g.$dayjs.format(g.selectedItem.connection.created_at)),1)])])])):o(``,!0)],64)):o(``,!0)])]),a(se,{modelValue:g.browseDialogVisible,"onUpdate:modelValue":_[4]||=e=>g.browseDialogVisible=e,onInstalled:g.onCatalogInstalled,onAddAccount:g.onBrowseAddAccount,onManage:g.onBrowseManage},null,8,[`modelValue`,`onInstalled`,`onAddAccount`,`onManage`]),a(ce,{modelValue:g.byocDialogVisible,"onUpdate:modelValue":[_[5]||=e=>g.byocDialogVisible=e,_[6]||=e=>!e&&g.clearCreateNewIntent()],item:g.byocDialogCatalog,method:g.byocDialogMethod,"create-new":g.pendingCreateNew,onInstalled:g.onCatalogInstalled},null,8,[`modelValue`,`item`,`method`,`create-new`,`onInstalled`]),a(le,{modelValue:g.pickerVisible,"onUpdate:modelValue":[_[7]||=e=>g.pickerVisible=e,_[8]||=e=>!e&&g.clearCreateNewIntent()],item:g.pickerCatalog,onSelect:g.onMethodSelected},null,8,[`modelValue`,`item`,`onSelect`]),a(ue,{modelValue:g.pairingDialogVisible,"onUpdate:modelValue":_[9]||=e=>g.pairingDialogVisible=e,onPaired:g.onBrowserPaired,onClosed:g.onBrowserPairingClosed},null,8,[`modelValue`,`onPaired`,`onClosed`]),a(de,{ref:`browserDevicePicker`,modelValue:g.browserDevicePickerVisible,"onUpdate:modelValue":[_[10]||=e=>g.browserDevicePickerVisible=e,g.onBrowserPickerVisibility],method:g.browserDialogMethod,installing:g.browserInstalling,onPair:g.openBrowserPairing,onSelect:g.onBrowserDeviceSelected},null,8,[`modelValue`,`method`,`installing`,`onPair`,`onSelect`,`onUpdate:modelValue`]),a(L,{modelValue:g.customDialogVisible,"onUpdate:modelValue":_[17]||=e=>g.customDialogVisible=e,title:g.$t(`connection.title.addCustomConnector`),width:`560px`,"close-on-click-modal":!1},{footer:p(()=>[a(P,{onClick:_[16]||=e=>g.customDialogVisible=!1},{default:p(()=>[r(i(g.$t(`common.button.cancel`)),1)]),_:1}),a(P,{type:`primary`,loading:g.customAuthorizing,disabled:!g.customServerUrl,onClick:g.onConnectCustom},{default:p(()=>[r(i(g.$t(`connection.button.addCustom`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])]),default:p(()=>[e(`p`,Kr,i(g.$t(`connection.message.customConnectorHint`)),1),e(`div`,qr,[a(C,{modelValue:g.customName,"onUpdate:modelValue":_[11]||=e=>g.customName=e,modelModifiers:{trim:!0},placeholder:g.$t(`connection.placeholder.name`),clearable:``},null,8,[`modelValue`,`placeholder`]),a(C,{modelValue:g.customServerUrl,"onUpdate:modelValue":_[12]||=e=>g.customServerUrl=e,modelModifiers:{trim:!0},placeholder:g.$t(`connection.placeholder.serverUrl`),clearable:``,onKeyup:c(g.onConnectCustom,[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeyup`]),e(`button`,{type:`button`,class:`advanced-toggle`,onClick:_[13]||=e=>g.customAdvancedVisible=!g.customAdvancedVisible},[g.customAdvancedVisible?(h(),f(fe,{key:0,class:`mr-1`,size:16,"aria-hidden":`true`,focusable:`false`})):(h(),f(A,{key:1,class:`mr-1`,size:16,"aria-hidden":`true`,focusable:`false`})),e(`span`,null,i(g.$t(`connection.label.advancedSettings`)),1)]),g.customAdvancedVisible?(h(),s(`div`,Jr,[a(C,{modelValue:g.customClientId,"onUpdate:modelValue":_[14]||=e=>g.customClientId=e,modelModifiers:{trim:!0},placeholder:g.$t(`connection.placeholder.clientId`),clearable:``},null,8,[`modelValue`,`placeholder`]),a(C,{modelValue:g.customClientSecret,"onUpdate:modelValue":_[15]||=e=>g.customClientSecret=e,placeholder:g.$t(`connection.placeholder.clientSecret`),clearable:``,"show-password":``},null,8,[`modelValue`,`placeholder`])])):o(``,!0),e(`p`,Yr,i(g.$t(`connection.message.customConnectorTrust`)),1)])]),_:1},8,[`modelValue`,`title`]),a(L,{modelValue:g.scopeDialogVisible,"onUpdate:modelValue":_[20]||=e=>g.scopeDialogVisible=e,title:g.scopeDialogCatalog?g.$t(`connection.message.selectScopes`,{provider:g.scopeDialogCatalog.name}):``,width:`480px`,"close-on-click-modal":!1,onClosed:_[21]||=e=>!g.scopeDialogCatalog&&g.clearCreateNewIntent()},{footer:p(()=>[a(P,{onClick:_[19]||=e=>g.scopeDialogVisible=!1},{default:p(()=>[r(i(g.$t(`common.button.cancel`)),1)]),_:1}),a(P,{type:`primary`,onClick:g.onConfirmScopes},{default:p(()=>[r(i(g.$t(`common.button.confirm`)),1)]),_:1},8,[`onClick`])]),default:p(()=>[e(`p`,Xr,i(g.$t(`connection.message.selectScopesHint`)),1),a(me,{modelValue:g.selectedScopes,"onUpdate:modelValue":_[18]||=e=>g.selectedScopes=e},{default:p(()=>[(h(!0),s(l,null,m(g.scopeDialogPermissions,t=>(h(),s(`div`,{key:t.id,class:`scope-dialog-row`},[a(pe,{value:t.id,label:t.id},{default:p(()=>[e(`span`,Zr,i(t.label||t.id),1)]),_:2},1032,[`value`,`label`]),t.desc?(h(),s(`p`,Qr,i(t.desc),1)):o(``,!0)]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`])])}var ei=z(Qt,[[`render`,$r],[`__scopeId`,`data-v-87503d72`]]);export{ei as default};
@@ -1,2 +1,2 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,F 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,it as d,j as f,mt 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-wPYO0KL0.js";import{n as y,t as b}from"./tabs-CeP4BX60.js";import{t as x}from"./tooltip-DjLl_Tv9.js";import{t as S}from"./alert-DIqm-Kad.js";import{n as C,r as w}from"./radio-DgDgyT2l.js";import{n as T,t as E}from"./collapse-0Kxpo1XO.js";import{t as D}from"./drawer-DcAaZIVn.js";import{t as O}from"./input-number-bfnLLHoF.js";import{t as k}from"./switch-CGc7vZAq.js";import{t as A}from"./clock-CYQS4x6R.js";import{t as j}from"./external-link-BEIhmD26.js";import{t as M}from"./globe-PJ9sTZNb.js";import{t as N}from"./info-B5kD0bjW.js";import{t as P}from"./loader-circle-CVdEfzJY.js";import{t as F}from"./sliders-horizontal-CI4HLf6g.js";import{t as ee}from"./tag-Brs_vqpG.js";import{t as te}from"./wand-sparkles-DIimd5K-.js";import{t as I}from"./zap-BsvIhLIz.js";import"./constants-7uZLiijT.js";import{Ci as L,E as R,Ji as z,Oi as B,Ti as V,Yt as H,ci as U,in as W,zi as G}from"./index-S2D3KxIN.js";import{t as K}from"./CopyToClipboard-BC8MgUTU.js";import{t as q}from"./Consumption-Bwtr-oKm.js";var J=L(`signal`,[[`path`,{d:`M2 20h.01`,key:`4haj6o`}],[`path`,{d:`M7 20v-4`,key:`j294jx`}],[`path`,{d:`M12 20v-8`,key:`i3yub9`}],[`path`,{d:`M17 20V8`,key:`1tkaf5`}],[`path`,{d:`M22 4v16`,key:`sih9yq`}]]),Y=g({name:`LayoutWebextrator`,components:{ControlsIcon:F,ElDrawer:D,ElButton:G},data(){return{drawer:!1}}}),X={class:`main flex flex-row flex-1`},Z={class:`config w-[340px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Q={class:`result h-full flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ne(t,n,r,i,o,c){let l=u(`controls-icon`),f=u(`el-button`),m=u(`el-drawer`);return h(),s(`div`,X,[e(`div`,Z,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,Q,[d(t.$slots,`result`,{},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:p(()=>[a(l,{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:`340px`,class:`drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var re=R(Y,[[`render`,ne],[`__scopeId`,`data-v-0ca47a5f`]]),ie=g({name:`ModeSelector`,components:{GlobeIcon:M,MagicIcon:te,ElRadioGroup:w,ElRadioButton:C},computed:{value:{get(){return this.$store.state.webextrator?.config?.mode},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,mode:e})}}}}),ae={class:`field`},oe={class:`title font-bold`};function se(t,n,o,c,l,d){let f=u(`magic-icon`),m=u(`el-radio-button`),g=u(`globe-icon`),_=u(`el-radio-group`);return h(),s(`div`,ae,[e(`h2`,oe,i(t.$t(`webextrator.name.mode`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value w-full`},{default:p(()=>[a(m,{label:`extract`,value:`extract`},{default:p(()=>[a(f,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`webextrator.mode.extract`)),1)]),_:1}),a(m,{label:`render`,value:`render`},{default:p(()=>[a(g,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`webextrator.mode.render`)),1)]),_:1})]),_:1},8,[`modelValue`])])}var ce=R(ie,[[`render`,se],[`__scopeId`,`data-v-76c5bea5`]]),le=g({name:`UrlInput`,components:{ElInput:z},emits:[`submit`],computed:{url:{get(){return this.$store.state.webextrator?.config?.url||``},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,url:e})}}},methods:{onEnter(){this.$emit(`submit`)}}}),ue={class:`field`},de={class:`title font-bold`};function fe(n,r,o,l,d,f){let p=u(`el-input`);return h(),s(`div`,ue,[e(`h2`,de,i(n.$t(`webextrator.name.url`)),1),a(p,{modelValue:n.url,"onUpdate:modelValue":r[0]||=e=>n.url=e,type:`textarea`,rows:2,class:`prompt`,placeholder:n.$t(`webextrator.placeholder.url`),onKeydown:c(t(n.onEnter,[`exact`,`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])}var pe=R(le,[[`render`,fe],[`__scopeId`,`data-v-18488009`]]),me=g({name:`ExpectedTypeSelector`,components:{ElSelect:_,ElOption:v},computed:{value:{get(){return this.$store.state.webextrator?.config?.expected_type},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,expected_type:e})}}},mounted(){this.value||=`general`}}),he={class:`field`},ge={class:`title font-bold`};function _e(t,n,r,o,c,l){let d=u(`el-option`),f=u(`el-select`);return h(),s(`div`,he,[e(`h2`,ge,i(t.$t(`webextrator.name.expectedType`)),1),a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},{default:p(()=>[a(d,{value:`general`,label:t.$t(`webextrator.expectedType.general`)},null,8,[`label`]),a(d,{value:`article`,label:t.$t(`webextrator.expectedType.article`)},null,8,[`label`]),a(d,{value:`product`,label:t.$t(`webextrator.expectedType.product`)},null,8,[`label`])]),_:1},8,[`modelValue`])])}var ve=R(me,[[`render`,_e],[`__scopeId`,`data-v-3b572c49`]]),ye=g({name:`LlmToggle`,components:{InfoIcon:N,ElSwitch:k,ElTooltip:x},computed:{value:{get(){return!!this.$store.state.webextrator?.config?.enable_llm},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,enable_llm:e})}}}}),be={class:`field`},xe={class:`title font-bold`};function Se(t,n,o,c,l,d){let f=u(`info-icon`),m=u(`el-tooltip`),g=u(`el-switch`);return h(),s(`div`,be,[e(`h2`,xe,[r(i(t.$t(`webextrator.name.enableLlm`))+` `,1),a(m,{effect:`dark`,content:t.$t(`webextrator.description.enableLlm`),placement:`top`},{default:p(()=>[a(f,{class:`ml-1 text-[var(--el-text-color-secondary)] text-xs`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`content`])]),a(g,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])}var Ce=R(ye,[[`render`,Se],[`__scopeId`,`data-v-a0c2f78c`]]),we=[`image`,`font`,`media`,`stylesheet`,`xhr`,`fetch`],Te=g({name:`AdvancedOptions`,components:{ElCollapse:E,ElCollapseItem:T,ElInput:z,ElInputNumber:O,ElSelect:_,ElOption:v},data(){return{active:[]}},computed:{resourceKinds(){return we},waitUntil:{get(){return this.$store.state.webextrator?.config?.wait_until||`networkidle`},set(e){this.commit({wait_until:e})}},waitForSelector:{get(){return this.$store.state.webextrator?.config?.wait_for_selector||``},set(e){this.commit({wait_for_selector:e})}},timeout:{get(){return this.$store.state.webextrator?.config?.timeout??30},set(e){this.commit({timeout:e})}},delay:{get(){return this.$store.state.webextrator?.config?.delay??0},set(e){this.commit({delay:e})}},blockResources:{get(){return this.$store.state.webextrator?.config?.block_resources||[]},set(e){this.commit({block_resources:e})}}},methods:{commit(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,...e})}}}),Ee={class:`field`},De={class:`sub-title`},Oe={class:`field`},ke={class:`sub-title`},Ae={class:`field`},je={class:`sub-title`},Me={class:`field`},Ne={class:`sub-title`},Pe={class:`field`},Fe={class:`sub-title`};function Ie(t,n,r,o,c,d){let g=u(`el-option`),_=u(`el-select`),v=u(`el-input`),y=u(`el-input-number`),b=u(`el-collapse-item`),x=u(`el-collapse`);return h(),f(x,{modelValue:t.active,"onUpdate:modelValue":n[5]||=e=>t.active=e,class:`advanced`},{default:p(()=>[a(b,{title:t.$t(`webextrator.name.advanced`),name:`advanced`},{default:p(()=>[e(`div`,Ee,[e(`h2`,De,i(t.$t(`webextrator.name.waitUntil`)),1),a(_,{modelValue:t.waitUntil,"onUpdate:modelValue":n[0]||=e=>t.waitUntil=e,class:`value`},{default:p(()=>[a(g,{value:`networkidle`,label:t.$t(`webextrator.waitUntil.networkidle`)},null,8,[`label`]),a(g,{value:`load`,label:t.$t(`webextrator.waitUntil.load`)},null,8,[`label`]),a(g,{value:`domcontentloaded`,label:t.$t(`webextrator.waitUntil.domcontentloaded`)},null,8,[`label`]),a(g,{value:`commit`,label:t.$t(`webextrator.waitUntil.commit`)},null,8,[`label`])]),_:1},8,[`modelValue`])]),e(`div`,Oe,[e(`h2`,ke,i(t.$t(`webextrator.name.waitForSelector`)),1),a(v,{modelValue:t.waitForSelector,"onUpdate:modelValue":n[1]||=e=>t.waitForSelector=e,placeholder:t.$t(`webextrator.placeholder.waitForSelector`)},null,8,[`modelValue`,`placeholder`])]),e(`div`,Ae,[e(`h2`,je,i(t.$t(`webextrator.name.timeout`)),1),a(y,{modelValue:t.timeout,"onUpdate:modelValue":n[2]||=e=>t.timeout=e,min:1,max:120,step:5,"controls-position":`right`,class:`w-full`},null,8,[`modelValue`])]),e(`div`,Me,[e(`h2`,Ne,i(t.$t(`webextrator.name.delay`)),1),a(y,{modelValue:t.delay,"onUpdate:modelValue":n[3]||=e=>t.delay=e,min:0,max:30,step:1,"controls-position":`right`,class:`w-full`},null,8,[`modelValue`])]),e(`div`,Pe,[e(`h2`,Fe,i(t.$t(`webextrator.name.blockResources`)),1),a(_,{modelValue:t.blockResources,"onUpdate:modelValue":n[4]||=e=>t.blockResources=e,multiple:``,"collapse-tags":``,placeholder:t.$t(`webextrator.placeholder.blockResources`),class:`w-full`},{default:p(()=>[(h(!0),s(l,null,m(t.resourceKinds,e=>(h(),f(g,{key:e,label:t.$t(`webextrator.blockResource.${e}`),value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])]),_:1},8,[`title`])]),_:1},8,[`modelValue`])}var Le=g({name:`WebextratorConfigPanel`,components:{LightningIcon:I,ElButton:G,ModeSelector:ce,UrlInput:pe,ExpectedTypeSelector:ve,LlmToggle:Ce,AdvancedOptions:R(Te,[[`render`,Ie],[`__scopeId`,`data-v-8f36d2df`]]),Consumption:q},emits:[`run`],computed:{config(){return this.$store.state.webextrator?.config},service(){return this.$store.state.webextrator?.service},consumption(){return H(this.config||{},this.service?.cost)},running(){return this.$store.state.webextrator?.status?.run===U.Request},isExtract(){return(this.config?.mode||`extract`)===`extract`},canRun(){let e=(this.config?.url||``).trim();return/^https?:\/\//i.test(e)}},methods:{onRun(){this.canRun&&this.$emit(`run`)}}}),Re={class:`flex flex-col h-full`},ze={class:`flex-1 overflow-y-auto p-5`},Be={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ve(t,n,c,d,f,m){let g=u(`mode-selector`),_=u(`url-input`),v=u(`expected-type-selector`),y=u(`llm-toggle`),b=u(`advanced-options`),x=u(`consumption`),S=u(`lightning-icon`),C=u(`el-button`);return h(),s(`div`,Re,[e(`div`,ze,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`,onSubmit:t.onRun},null,8,[`onSubmit`]),t.isExtract?(h(),s(l,{key:0},[a(v,{class:`mb-4`}),a(y,{class:`mb-4`})],64)):o(``,!0),a(b,{class:`mb-4`})]),e(`div`,Be,[a(x,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(C,{type:`primary`,class:`w-full`,round:``,loading:t.running,disabled:!t.canRun,onClick:t.onRun},{default:p(()=>[a(S,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(t.isExtract?`webextrator.button.extract`:`webextrator.button.render`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])])])}var He=R(Le,[[`render`,Ve]]),Ue=e=>!!e&&e.kind!==`render`,We=g({name:`WebextratorResultPanel`,components:{ExternalLinkIcon:j,GlobeIcon:M,LabelIcon:ee,LoadingIcon:P,SignalIcon:J,TimeIcon:A,ElAlert:S,ElImage:B,ElTabs:y,ElTabPane:b,CopyToClipboard:K},data(){return{activeTab:`markdown`}},computed:{response(){return this.$store.state.webextrator?.response},running(){return this.$store.state.webextrator?.status?.run===U.Request},data(){return this.response?.data},renderData(){return this.data&&this.data.kind===`render`?this.data:void 0},extractData(){return Ue(this.data)?this.data:void 0},finalUrl(){let e=this.data;return e?.finalUrl||e?.final_url||e?.url},contentTypeLabel(){let e=this.data;return e?.contentType||e?.content_type||e?.expected_type},screenshotSrc(){let e=this.data?.screenshot;if(e)return e.startsWith(`data:`)||e.startsWith(`http`)?e:`data:image/png;base64,${e}`},markdown(){let e=this.data;return e?.markdown||e?.content||``},plainText(){return this.data?.text||``},html(){return this.data?.html||``},links(){return Array.isArray(this.data?.links)?this.data.links:[]},linksPlain(){return this.links.join(`
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,F 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,it as d,j as f,mt 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--z-fac6_.js";import{n as y,t as b}from"./tabs-CMeHhbQd.js";import{t as x}from"./tooltip-CVVApYjJ.js";import{t as S}from"./alert-G37GiXIg.js";import{n as C,r as w}from"./radio-DgDgyT2l.js";import{n as T,t as E}from"./collapse-D-Az5Y1x.js";import{t as D}from"./drawer-BF8tPGkj.js";import{t as O}from"./input-number-DwjoHB_t.js";import{t as k}from"./switch-CU7Lbydn.js";import{t as A}from"./clock-BbOTrjoQ.js";import{t as j}from"./external-link-Y1fuqa_d.js";import{t as M}from"./globe-DogeYs6l.js";import{t as N}from"./info-C7eq8W70.js";import{t as P}from"./loader-circle-Chlmw50N.js";import{t as F}from"./sliders-horizontal-BJThi7W3.js";import{t as ee}from"./tag-D88Sfg4N.js";import{t as te}from"./wand-sparkles-BQfGRD0P.js";import{t as I}from"./zap-BAyq1MAX.js";import"./constants-7uZLiijT.js";import{Ci as L,E as R,Ji as z,Oi as B,Ti as V,Yt as H,ci as U,in as W,zi as G}from"./index-dzU0SACS.js";import{t as K}from"./CopyToClipboard-DOx2-KTG.js";import{t as q}from"./Consumption-JN0X0f8c.js";var J=L(`signal`,[[`path`,{d:`M2 20h.01`,key:`4haj6o`}],[`path`,{d:`M7 20v-4`,key:`j294jx`}],[`path`,{d:`M12 20v-8`,key:`i3yub9`}],[`path`,{d:`M17 20V8`,key:`1tkaf5`}],[`path`,{d:`M22 4v16`,key:`sih9yq`}]]),Y=g({name:`LayoutWebextrator`,components:{ControlsIcon:F,ElDrawer:D,ElButton:G},data(){return{drawer:!1}}}),X={class:`main flex flex-row flex-1`},Z={class:`config w-[340px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Q={class:`result h-full flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ne(t,n,r,i,o,c){let l=u(`controls-icon`),f=u(`el-button`),m=u(`el-drawer`);return h(),s(`div`,X,[e(`div`,Z,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,Q,[d(t.$slots,`result`,{},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:p(()=>[a(l,{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:`340px`,class:`drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var re=R(Y,[[`render`,ne],[`__scopeId`,`data-v-0ca47a5f`]]),ie=g({name:`ModeSelector`,components:{GlobeIcon:M,MagicIcon:te,ElRadioGroup:w,ElRadioButton:C},computed:{value:{get(){return this.$store.state.webextrator?.config?.mode},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,mode:e})}}}}),ae={class:`field`},oe={class:`title font-bold`};function se(t,n,o,c,l,d){let f=u(`magic-icon`),m=u(`el-radio-button`),g=u(`globe-icon`),_=u(`el-radio-group`);return h(),s(`div`,ae,[e(`h2`,oe,i(t.$t(`webextrator.name.mode`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value w-full`},{default:p(()=>[a(m,{label:`extract`,value:`extract`},{default:p(()=>[a(f,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`webextrator.mode.extract`)),1)]),_:1}),a(m,{label:`render`,value:`render`},{default:p(()=>[a(g,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`webextrator.mode.render`)),1)]),_:1})]),_:1},8,[`modelValue`])])}var ce=R(ie,[[`render`,se],[`__scopeId`,`data-v-76c5bea5`]]),le=g({name:`UrlInput`,components:{ElInput:z},emits:[`submit`],computed:{url:{get(){return this.$store.state.webextrator?.config?.url||``},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,url:e})}}},methods:{onEnter(){this.$emit(`submit`)}}}),ue={class:`field`},de={class:`title font-bold`};function fe(n,r,o,l,d,f){let p=u(`el-input`);return h(),s(`div`,ue,[e(`h2`,de,i(n.$t(`webextrator.name.url`)),1),a(p,{modelValue:n.url,"onUpdate:modelValue":r[0]||=e=>n.url=e,type:`textarea`,rows:2,class:`prompt`,placeholder:n.$t(`webextrator.placeholder.url`),onKeydown:c(t(n.onEnter,[`exact`,`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])}var pe=R(le,[[`render`,fe],[`__scopeId`,`data-v-18488009`]]),me=g({name:`ExpectedTypeSelector`,components:{ElSelect:_,ElOption:v},computed:{value:{get(){return this.$store.state.webextrator?.config?.expected_type},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,expected_type:e})}}},mounted(){this.value||=`general`}}),he={class:`field`},ge={class:`title font-bold`};function _e(t,n,r,o,c,l){let d=u(`el-option`),f=u(`el-select`);return h(),s(`div`,he,[e(`h2`,ge,i(t.$t(`webextrator.name.expectedType`)),1),a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},{default:p(()=>[a(d,{value:`general`,label:t.$t(`webextrator.expectedType.general`)},null,8,[`label`]),a(d,{value:`article`,label:t.$t(`webextrator.expectedType.article`)},null,8,[`label`]),a(d,{value:`product`,label:t.$t(`webextrator.expectedType.product`)},null,8,[`label`])]),_:1},8,[`modelValue`])])}var ve=R(me,[[`render`,_e],[`__scopeId`,`data-v-3b572c49`]]),ye=g({name:`LlmToggle`,components:{InfoIcon:N,ElSwitch:k,ElTooltip:x},computed:{value:{get(){return!!this.$store.state.webextrator?.config?.enable_llm},set(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,enable_llm:e})}}}}),be={class:`field`},xe={class:`title font-bold`};function Se(t,n,o,c,l,d){let f=u(`info-icon`),m=u(`el-tooltip`),g=u(`el-switch`);return h(),s(`div`,be,[e(`h2`,xe,[r(i(t.$t(`webextrator.name.enableLlm`))+` `,1),a(m,{effect:`dark`,content:t.$t(`webextrator.description.enableLlm`),placement:`top`},{default:p(()=>[a(f,{class:`ml-1 text-[var(--el-text-color-secondary)] text-xs`,size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`content`])]),a(g,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])}var Ce=R(ye,[[`render`,Se],[`__scopeId`,`data-v-a0c2f78c`]]),we=[`image`,`font`,`media`,`stylesheet`,`xhr`,`fetch`],Te=g({name:`AdvancedOptions`,components:{ElCollapse:E,ElCollapseItem:T,ElInput:z,ElInputNumber:O,ElSelect:_,ElOption:v},data(){return{active:[]}},computed:{resourceKinds(){return we},waitUntil:{get(){return this.$store.state.webextrator?.config?.wait_until||`networkidle`},set(e){this.commit({wait_until:e})}},waitForSelector:{get(){return this.$store.state.webextrator?.config?.wait_for_selector||``},set(e){this.commit({wait_for_selector:e})}},timeout:{get(){return this.$store.state.webextrator?.config?.timeout??30},set(e){this.commit({timeout:e})}},delay:{get(){return this.$store.state.webextrator?.config?.delay??0},set(e){this.commit({delay:e})}},blockResources:{get(){return this.$store.state.webextrator?.config?.block_resources||[]},set(e){this.commit({block_resources:e})}}},methods:{commit(e){this.$store.commit(`webextrator/setConfig`,{...this.$store.state.webextrator?.config,...e})}}}),Ee={class:`field`},De={class:`sub-title`},Oe={class:`field`},ke={class:`sub-title`},Ae={class:`field`},je={class:`sub-title`},Me={class:`field`},Ne={class:`sub-title`},Pe={class:`field`},Fe={class:`sub-title`};function Ie(t,n,r,o,c,d){let g=u(`el-option`),_=u(`el-select`),v=u(`el-input`),y=u(`el-input-number`),b=u(`el-collapse-item`),x=u(`el-collapse`);return h(),f(x,{modelValue:t.active,"onUpdate:modelValue":n[5]||=e=>t.active=e,class:`advanced`},{default:p(()=>[a(b,{title:t.$t(`webextrator.name.advanced`),name:`advanced`},{default:p(()=>[e(`div`,Ee,[e(`h2`,De,i(t.$t(`webextrator.name.waitUntil`)),1),a(_,{modelValue:t.waitUntil,"onUpdate:modelValue":n[0]||=e=>t.waitUntil=e,class:`value`},{default:p(()=>[a(g,{value:`networkidle`,label:t.$t(`webextrator.waitUntil.networkidle`)},null,8,[`label`]),a(g,{value:`load`,label:t.$t(`webextrator.waitUntil.load`)},null,8,[`label`]),a(g,{value:`domcontentloaded`,label:t.$t(`webextrator.waitUntil.domcontentloaded`)},null,8,[`label`]),a(g,{value:`commit`,label:t.$t(`webextrator.waitUntil.commit`)},null,8,[`label`])]),_:1},8,[`modelValue`])]),e(`div`,Oe,[e(`h2`,ke,i(t.$t(`webextrator.name.waitForSelector`)),1),a(v,{modelValue:t.waitForSelector,"onUpdate:modelValue":n[1]||=e=>t.waitForSelector=e,placeholder:t.$t(`webextrator.placeholder.waitForSelector`)},null,8,[`modelValue`,`placeholder`])]),e(`div`,Ae,[e(`h2`,je,i(t.$t(`webextrator.name.timeout`)),1),a(y,{modelValue:t.timeout,"onUpdate:modelValue":n[2]||=e=>t.timeout=e,min:1,max:120,step:5,"controls-position":`right`,class:`w-full`},null,8,[`modelValue`])]),e(`div`,Me,[e(`h2`,Ne,i(t.$t(`webextrator.name.delay`)),1),a(y,{modelValue:t.delay,"onUpdate:modelValue":n[3]||=e=>t.delay=e,min:0,max:30,step:1,"controls-position":`right`,class:`w-full`},null,8,[`modelValue`])]),e(`div`,Pe,[e(`h2`,Fe,i(t.$t(`webextrator.name.blockResources`)),1),a(_,{modelValue:t.blockResources,"onUpdate:modelValue":n[4]||=e=>t.blockResources=e,multiple:``,"collapse-tags":``,placeholder:t.$t(`webextrator.placeholder.blockResources`),class:`w-full`},{default:p(()=>[(h(!0),s(l,null,m(t.resourceKinds,e=>(h(),f(g,{key:e,label:t.$t(`webextrator.blockResource.${e}`),value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])]),_:1},8,[`title`])]),_:1},8,[`modelValue`])}var Le=g({name:`WebextratorConfigPanel`,components:{LightningIcon:I,ElButton:G,ModeSelector:ce,UrlInput:pe,ExpectedTypeSelector:ve,LlmToggle:Ce,AdvancedOptions:R(Te,[[`render`,Ie],[`__scopeId`,`data-v-8f36d2df`]]),Consumption:q},emits:[`run`],computed:{config(){return this.$store.state.webextrator?.config},service(){return this.$store.state.webextrator?.service},consumption(){return H(this.config||{},this.service?.cost)},running(){return this.$store.state.webextrator?.status?.run===U.Request},isExtract(){return(this.config?.mode||`extract`)===`extract`},canRun(){let e=(this.config?.url||``).trim();return/^https?:\/\//i.test(e)}},methods:{onRun(){this.canRun&&this.$emit(`run`)}}}),Re={class:`flex flex-col h-full`},ze={class:`flex-1 overflow-y-auto p-5`},Be={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ve(t,n,c,d,f,m){let g=u(`mode-selector`),_=u(`url-input`),v=u(`expected-type-selector`),y=u(`llm-toggle`),b=u(`advanced-options`),x=u(`consumption`),S=u(`lightning-icon`),C=u(`el-button`);return h(),s(`div`,Re,[e(`div`,ze,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`,onSubmit:t.onRun},null,8,[`onSubmit`]),t.isExtract?(h(),s(l,{key:0},[a(v,{class:`mb-4`}),a(y,{class:`mb-4`})],64)):o(``,!0),a(b,{class:`mb-4`})]),e(`div`,Be,[a(x,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(C,{type:`primary`,class:`w-full`,round:``,loading:t.running,disabled:!t.canRun,onClick:t.onRun},{default:p(()=>[a(S,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(t.isExtract?`webextrator.button.extract`:`webextrator.button.render`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])])])}var He=R(Le,[[`render`,Ve]]),Ue=e=>!!e&&e.kind!==`render`,We=g({name:`WebextratorResultPanel`,components:{ExternalLinkIcon:j,GlobeIcon:M,LabelIcon:ee,LoadingIcon:P,SignalIcon:J,TimeIcon:A,ElAlert:S,ElImage:B,ElTabs:y,ElTabPane:b,CopyToClipboard:K},data(){return{activeTab:`markdown`}},computed:{response(){return this.$store.state.webextrator?.response},running(){return this.$store.state.webextrator?.status?.run===U.Request},data(){return this.response?.data},renderData(){return this.data&&this.data.kind===`render`?this.data:void 0},extractData(){return Ue(this.data)?this.data:void 0},finalUrl(){let e=this.data;return e?.finalUrl||e?.final_url||e?.url},contentTypeLabel(){let e=this.data;return e?.contentType||e?.content_type||e?.expected_type},screenshotSrc(){let e=this.data?.screenshot;if(e)return e.startsWith(`data:`)||e.startsWith(`http`)?e:`data:image/png;base64,${e}`},markdown(){let e=this.data;return e?.markdown||e?.content||``},plainText(){return this.data?.text||``},html(){return this.data?.html||``},links(){return Array.isArray(this.data?.links)?this.data.links:[]},linksPlain(){return this.links.join(`
2
2
  `)},images(){return Array.isArray(this.data?.images)?this.data.images:[]},structuredPretty(){return this.extractData?.structured?JSON.stringify(this.extractData.structured,null,2):``},rawPretty(){return this.response?JSON.stringify(this.response,null,2):``},errorMessage(){if(this.response?.success===!1){let e=this.response?.error;return e?.message||e?.code||this.$t(`webextrator.message.failed`)}}},watch:{response:{handler(){this.resetTab()},immediate:!0}},methods:{resetTab(){this.markdown?this.activeTab=`markdown`:this.extractData?.structured?this.activeTab=`structured`:this.plainText?this.activeTab=`text`:this.html?this.activeTab=`html`:this.activeTab=`raw`}}}),Ge={class:`h-full overflow-y-auto p-6`},Ke={key:0,class:`max-w-4xl mx-auto py-4`},qe={class:`flex items-center gap-2 mb-3 text-[var(--el-color-primary)] text-sm`},Je={key:1,class:`flex flex-col items-center justify-center py-24 text-[var(--el-text-color-disabled)]`},Ye={class:`text-base mb-1`},Xe={class:`text-xs opacity-70`},Ze={key:2,class:`max-w-4xl mx-auto py-4`},Qe={class:`text-xs whitespace-pre-wrap break-words`},$e={key:3,class:`max-w-4xl mx-auto`},et={class:`mb-4`},tt={class:`text-xl font-semibold leading-snug mb-1 break-words text-[var(--el-text-color-primary)]`},nt={class:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-[var(--el-text-color-secondary)]`},rt=[`href`],it={key:1},at={key:2},ot={key:3},st={key:0,class:`mt-2 text-sm text-[var(--el-text-color-regular)] leading-relaxed line-clamp-3`},ct={key:0,class:`mb-5`},lt={class:`tab-toolbar`},ut={class:`content-block`},dt={class:`tab-toolbar`},ft={class:`content-block`},$={class:`tab-toolbar`},pt={class:`content-block code`},mt={class:`tab-toolbar`},ht={class:`links-list`},gt=[`href`],_t={class:`grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2`},vt={class:`tab-toolbar`},yt={class:`content-block code`},bt={class:`tab-toolbar`},xt={class:`content-block code`};function St(t,c,d,g,_,v){let y=u(`loading-icon`),b=u(`globe-icon`),x=u(`el-alert`),S=u(`external-link-icon`),C=u(`signal-icon`),w=u(`time-icon`),T=u(`label-icon`),E=u(`el-image`),D=u(`copy-to-clipboard`),O=u(`el-tab-pane`),k=u(`el-tabs`);return h(),s(`div`,Ge,[t.running?(h(),s(`div`,Ke,[e(`div`,qe,[a(y,{class:`adc-icon-spin`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`span`,null,i(t.$t(`webextrator.message.running`)),1)]),c[1]||=n(`<div class="mb-6 animate-pulse" data-v-4ec341a6><div class="h-5 w-3/5 rounded bg-[var(--el-fill-color-dark)] mb-2" data-v-4ec341a6></div><div class="h-3 w-2/5 rounded bg-[var(--el-fill-color)] mb-4" data-v-4ec341a6></div><div class="h-64 w-full rounded bg-[var(--el-fill-color)] mb-3" data-v-4ec341a6></div><div class="h-3 w-full rounded bg-[var(--el-fill-color)] mb-1" data-v-4ec341a6></div><div class="h-3 w-5/6 rounded bg-[var(--el-fill-color)] mb-1" data-v-4ec341a6></div><div class="h-3 w-4/6 rounded bg-[var(--el-fill-color)]" data-v-4ec341a6></div></div>`,1)])):!t.response&&!t.errorMessage?(h(),s(`div`,Je,[a(b,{class:`text-6xl mb-4 opacity-30`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),e(`p`,Ye,i(t.$t(`webextrator.description.intro`)),1),e(`p`,Xe,i(t.$t(`webextrator.description.introHint`)),1)])):t.errorMessage?(h(),s(`div`,Ze,[a(x,{type:`error`,closable:!1,"show-icon":``,title:t.$t(`webextrator.message.failed`)},{default:p(()=>[e(`pre`,Qe,i(t.errorMessage),1)]),_:1},8,[`title`])])):t.data?(h(),s(`div`,$e,[e(`header`,et,[e(`h1`,tt,i(t.data.title||t.$t(`webextrator.message.untitled`)),1),e(`div`,nt,[t.finalUrl?(h(),s(`a`,{key:0,href:t.finalUrl,target:`_blank`,rel:`noopener`,class:`hover:underline truncate max-w-[60%]`},[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(i(t.finalUrl),1)],8,rt)):o(``,!0),t.renderData?.status?(h(),s(`span`,it,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(i(t.renderData.status),1)])):o(``,!0),t.response?.elapsed?(h(),s(`span`,at,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(i(t.response.elapsed.toFixed(2))+`s `,1)])):o(``,!0),t.contentTypeLabel?(h(),s(`span`,ot,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(i(t.contentTypeLabel),1)])):o(``,!0)]),t.extractData?.description?(h(),s(`p`,st,i(t.extractData.description),1)):o(``,!0)]),t.screenshotSrc?(h(),s(`figure`,ct,[a(E,{src:t.screenshotSrc,fit:`contain`,"preview-src-list":[t.screenshotSrc],"preview-teleported":``,"hide-on-click-modal":``,class:`w-full max-h-[480px] rounded border border-[var(--app-border-subtle)] bg-[var(--el-fill-color-light)]`},null,8,[`src`,`preview-src-list`])])):o(``,!0),a(k,{modelValue:t.activeTab,"onUpdate:modelValue":c[0]||=e=>t.activeTab=e,class:`result-tabs`},{default:p(()=>[t.markdown?(h(),f(O,{key:0,label:t.$t(`webextrator.tab.markdown`),name:`markdown`},{default:p(()=>[e(`div`,lt,[a(D,{content:t.markdown},null,8,[`content`])]),e(`pre`,ut,i(t.markdown),1)]),_:1},8,[`label`])):o(``,!0),t.plainText?(h(),f(O,{key:1,label:t.$t(`webextrator.tab.text`),name:`text`},{default:p(()=>[e(`div`,dt,[a(D,{content:t.plainText},null,8,[`content`])]),e(`pre`,ft,i(t.plainText),1)]),_:1},8,[`label`])):o(``,!0),t.extractData?.structured?(h(),f(O,{key:2,label:t.$t(`webextrator.tab.structured`),name:`structured`},{default:p(()=>[e(`div`,$,[a(D,{content:t.structuredPretty},null,8,[`content`])]),e(`pre`,pt,i(t.structuredPretty),1)]),_:1},8,[`label`])):o(``,!0),t.links.length?(h(),f(O,{key:3,label:`${t.$t(`webextrator.tab.links`)} (${t.links.length})`,name:`links`},{default:p(()=>[e(`div`,mt,[a(D,{content:t.linksPlain},null,8,[`content`])]),e(`ul`,ht,[(h(!0),s(l,null,m(t.links,(t,n)=>(h(),s(`li`,{key:n,class:`truncate`},[e(`a`,{href:t,target:`_blank`,rel:`noopener`},i(t),9,gt)]))),128))])]),_:1},8,[`label`])):o(``,!0),t.images.length?(h(),f(O,{key:4,label:`${t.$t(`webextrator.tab.images`)} (${t.images.length})`,name:`images`},{default:p(()=>[e(`div`,_t,[(h(!0),s(l,null,m(t.images,(e,n)=>(h(),f(E,{key:n,src:e,fit:`cover`,loading:`lazy`,"preview-src-list":t.images,"initial-index":n,"preview-teleported":``,"hide-on-click-modal":``,class:`aspect-square w-full rounded bg-[var(--el-fill-color-light)]`},null,8,[`src`,`preview-src-list`,`initial-index`]))),128))])]),_:1},8,[`label`])):o(``,!0),t.html?(h(),f(O,{key:5,label:t.$t(`webextrator.tab.html`),name:`html`},{default:p(()=>[e(`div`,vt,[a(D,{content:t.html},null,8,[`content`])]),e(`pre`,yt,i(t.html),1)]),_:1},8,[`label`])):o(``,!0),a(O,{label:t.$t(`webextrator.tab.raw`),name:`raw`},{default:p(()=>[e(`div`,bt,[a(D,{content:t.rawPretty},null,8,[`content`])]),e(`pre`,xt,i(t.rawPretty),1)]),_:1},8,[`label`])]),_:1},8,[`modelValue`])])):o(``,!0)])}var Ct=g({name:`WebextratorIndex`,components:{Layout:re,ConfigPanel:He,ResultPanel:R(We,[[`render`,St],[`__scopeId`,`data-v-4ec341a6`]])},inject:[`initialized`],async mounted(){await this.$store.dispatch(`webextrator/getService`)},methods:{async onRun(){if(!W())return;let e=this.$store.state.webextrator?.config;if(!e?.url)return;let t=(e.mode||`extract`)===`extract`;V.info(this.$t(t?`webextrator.message.extracting`:`webextrator.message.rendering`));try{await this.$store.dispatch(`webextrator/run`),V.success(this.$t(`webextrator.message.success`))}catch(e){let t=e?.response?.data?.error?.code||e?.response?.data?.code;t===`used_up`?V.error(this.$t(`webextrator.message.usedUp`)):t===`too_many_requests`?V.error(this.$t(`webextrator.message.busy`)):t===`timeout`?V.error(this.$t(`webextrator.message.timeout`)):t===`antibot_blocked`?V.error(this.$t(`webextrator.message.antibotBlocked`)):V.error(this.$t(`webextrator.message.failed`))}}}});function wt(e,t,n,r,i,o){let s=u(`config-panel`),c=u(`result-panel`),l=u(`layout`);return h(),f(l,null,{config:p(()=>[a(s,{onRun:e.onRun},null,8,[`onRun`])]),result:p(()=>[a(c)]),_:1})}var Tt=R(Ct,[[`render`,wt]]);export{Tt 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,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-wPYO0KL0.js";import{t as b}from"./upload-D-5KHpRy.js";import{t as x}from"./tooltip-DjLl_Tv9.js";import{t as S}from"./alert-DIqm-Kad.js";import{t as C}from"./drawer-DcAaZIVn.js";import{t as w}from"./input-number-bfnLLHoF.js";import{t as T}from"./slider-y-dr3F-C.js";import{t as E}from"./clock-CYQS4x6R.js";import{r as D,t as O}from"./PromptTextarea-DIx8KWwe.js";import{t as k}from"./info-B5kD0bjW.js";import{t as A}from"./trash-2-jm25a3wz.js";import{t as j}from"./triangle-alert-RGg8X9Hu.js";import{t as ee}from"./upload-CIMqvT63.js";import{t as M}from"./wand-sparkles-DIimd5K-.js";import{cr as N,lr as P,ur as te}from"./constants-7uZLiijT.js";import{E as F,Gt as ne,Kt as I,Sr as L,Ti as R,Ut as z,Vn as B,Wt as V,Yt as H,ci as U,di as W,in as G,qt as K,wi as q,zi as J}from"./index-S2D3KxIN.js";import{t as Y}from"./CopyToClipboard-BC8MgUTU.js";import{t as X}from"./ImagePreview-COWWmcN6.js";import{n as Z}from"./taskDrawerMixin-DyAUhFEq.js";import{t as re}from"./Consumption-Bwtr-oKm.js";import{a as Q,n as ie,r as ae,t as oe}from"./pagination-C60kxWZe.js";import{t as se}from"./ApiCodeButton-DQfIqta7.js";import{t as ce}from"./BotPlaceholder-DUy5q_lY.js";import{t as le}from"./ImageWrapper-Cm2rWx3d.js";var ue=_({name:`LayoutFlux`,components:{MagicIcon:M,ElDrawer:C,ElButton:J},mixins:[Z]}),de={class:`main flex flex-row flex-1`},fe={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},pe={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function me(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,de,[e(`div`,fe,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,pe,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var he=F(ue,[[`render`,me],[`__scopeId`,`data-v-72e82d52`]]),ge=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=te}}),_e={class:`field`},ve={class:`title font-bold`};function ye(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,_e,[e(`h2`,ve,i(t.$t(`flux.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var be=F(ge,[[`render`,ye],[`__scopeId`,`data-v-e9b17945`]]),xe=_({name:`CountSelector`,components:{ElSlider:T,InfoIcon:Q,ElInputNumber:w},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),Se={class:`flex justify-between`},Ce={class:`flex justify-start items-center`},we={class:`text-sm font-bold`},Te={class:`flex justify-end items-center`},Ee={class:`w-full`};function De(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-input-number`),p=l(`el-slider`);return h(),s(`div`,null,[e(`div`,Se,[e(`div`,Ce,[e(`span`,we,i(t.$t(`flux.name.numbers`)),1),a(d,{content:t.$t(`flux.description.numbers`)},null,8,[`content`])]),e(`div`,Te,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),e(`div`,Ee,[a(p,{modelValue:t.value,"onUpdate:modelValue":n[1]||=e=>t.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var Oe=F(xe,[[`render`,De]]),ke=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=P}}),Ae={class:`field`},je={class:`title font-bold`};function Me(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ae,[e(`h2`,je,i(t.$t(`flux.name.task`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ne=F(ke,[[`render`,Me],[`__scopeId`,`data-v-81fd05e5`]]),Pe=_({name:`ImageUrlInput`,components:{UploadIcon:ee,ElUpload:b,ElButton:J,InfoIcon:Q,ImagePreview:X},mixins:[K,I,V],emits:[`change`],data(){return{fileList:[],uploadUrl:W()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){R.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){R.error(this.$t(`flux.message.uploadStartImageError`))}}}),Fe={class:`relative`},Ie={class:`flex justify-between`},Le={class:`flex justify-start items-center`},Re={class:`text-sm font-bold`};function ze(t,n,o,c,u,d){let f=l(`info-icon`),m=l(`image-preview`),g=l(`upload-icon`),_=l(`el-button`),v=l(`el-upload`);return h(),s(`div`,Fe,[e(`div`,Ie,[e(`div`,Le,[e(`span`,Re,i(t.$t(`flux.name.imageUrl`)),1),a(f,{content:t.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),a(v,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,headers:t.headers},{file:p(({file:e})=>[a(m,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:p(()=>[a(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(g,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`headers`])])}var Be=F(Pe,[[`render`,ze],[`__scopeId`,`data-v-2e7e6966`]]),Ve=_({name:`PromptInput`,components:{PromptTextarea:O},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function He(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ue=F(Ve,[[`render`,He]]),We=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:N}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),Ge={class:`field`},Ke={class:`title font-bold`};function qe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ge,[e(`h2`,Ke,i(t.$t(`flux.name.ratio`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Je=_({name:`PresetPanel`,components:{MagicIcon:M,ElButton:J,PromptInput:Ue,ModelSelector:be,CountSelector:Oe,Consumption:re,ActionSelector:Ne,ImageUrlInput:Be,SizeSelector:F(We,[[`render`,qe],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return H(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ye={class:`flex flex-col h-full`},Xe={class:`flex-1 overflow-y-auto p-5`},Ze={class:`flex flex-col items-center justify-center px-5 pb-5`};function Qe(t,n,c,u,d,m){let g=l(`action-selector`),_=l(`prompt-input`),v=l(`image-url-input`),y=l(`model-selector`),b=l(`size-selector`),x=l(`count-selector`),S=l(`consumption`),C=l(`magic-icon`),w=l(`el-button`);return h(),s(`div`,Ye,[e(`div`,Xe,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.config?.action===`edits`?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`})]),e(`div`,Ze,[a(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var $e=F(Je,[[`render`,Qe]]),et=_({name:`TaskPreview`,components:{DeleteIcon:A,ElTooltip:x,ChannelIcon:D,InfoIcon:k,MagicIcon:M,TimeIcon:E,WarningIcon:j,CopyToClipboard:Y,ElAlert:S,ImageWrapper:le,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await q.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`flux/deleteTask`,{id:e}),R.success(this.$t(`common.message.deleteTaskSuccess`))}catch{R.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),tt={class:`preview`},nt={class:`left`},rt={class:`main`},it={class:`bot`},at={class:`datetime`},ot=[`aria-label`],st={class:`info`},ct={key:0,class:`prompt mt-2`},lt={key:0},ut={key:0,class:n({content:!0,failed:!0})},dt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},ft={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},pt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gt={key:1,class:n({content:!0})},_t={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},bt={key:2,class:n({content:!0})},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function St(n,u,d,g,_,v){let y=l(`capability-presentation`),b=l(`delete-icon`),x=l(`el-tooltip`),S=l(`image-wrapper`),C=l(`api-code-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return h(),s(`div`,tt,[e(`div`,nt,[a(y,{capability:`flux`,part:`avatar`,class:`avatar`})]),e(`div`,rt,[e(`div`,it,[a(y,{capability:`flux`,part:`name`}),e(`span`,at,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(x,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:u[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(b,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,ot)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,st,[n.modelValue?.request?.prompt?(h(),s(`p`,ct,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,lt,` - (`+i(n.$t(`flux.status.pending`))+`) `,1))])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,ut,[e(`div`,dt,[(h(!0),s(c,null,m(n.images,(e,t)=>(h(),f(S,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),e(`div`,ft,[a(C,{path:`/flux/images`,body:n.modelValue?.request},null,8,[`body`])]),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,mt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,ht,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(h(),s(`div`,gt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failure`)),1)]),default:p(()=>[e(`p`,_t,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,vt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,yt,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,$,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0),n.modelValue?.response?o(``,!0):(h(),s(`div`,bt,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.status.pending`)),1)]),default:p(()=>[e(`p`,xt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var Ct=_({name:`RecentPanel`,components:{TaskPreview:F(et,[[`render`,St],[`__scopeId`,`data-v-6df6d58d`]]),BotPlaceholder:ce,NoTasks:ae,ScrollList:ie},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),wt={key:0},Tt={key:2,class:`w-full h-full flex items-center justify-center`};function Et(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,wt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Tt,[a(v)])):o(``,!0)],64)}var Dt=_({name:`FluxIndex`,components:{ConfigPanel:$e,Layout:he,RecentPanel:F(Ct,[[`render`,Et]])},mixins:[ne],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===U.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===U.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await oe({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!z(this.uploadTracker,e=>this.$t(e),e=>R.warning(e)))return;let e={...this.config,async:!0};if(!G())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}R.info(this.$t(`flux.message.startingTask`)),L(`flux`,B.generate(e,{token:t})).then(()=>{R.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?R.error(this.$t(`flux.message.usedUp`)):R.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ot(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var kt=F(Dt,[[`render`,Ot]]);export{kt 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,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select--z-fac6_.js";import{t as b}from"./upload-GC5EGmwp.js";import{t as x}from"./tooltip-CVVApYjJ.js";import{t as S}from"./alert-G37GiXIg.js";import{t as C}from"./drawer-BF8tPGkj.js";import{t as w}from"./input-number-DwjoHB_t.js";import{t as T}from"./slider-7iC9uVCH.js";import{t as E}from"./clock-BbOTrjoQ.js";import{r as D,t as O}from"./PromptTextarea-O8KxwMGn.js";import{t as k}from"./info-C7eq8W70.js";import{t as A}from"./trash-2-B7h9iX5Q.js";import{t as j}from"./triangle-alert-C_NcfP7e.js";import{t as ee}from"./upload-DRjQvPEd.js";import{t as M}from"./wand-sparkles-BQfGRD0P.js";import{cr as N,lr as P,ur as te}from"./constants-7uZLiijT.js";import{E as F,Gt as ne,Kt as I,Sr as L,Ti as R,Ut as z,Vn as B,Wt as V,Yt as H,ci as U,di as W,in as G,qt as K,wi as q,zi as J}from"./index-dzU0SACS.js";import{t as Y}from"./CopyToClipboard-DOx2-KTG.js";import{t as X}from"./ImagePreview-CSSReHgL.js";import{n as Z}from"./taskDrawerMixin-DyAUhFEq.js";import{t as re}from"./Consumption-JN0X0f8c.js";import{a as Q,n as ie,r as ae,t as oe}from"./pagination-DZKa3-YT.js";import{t as se}from"./ApiCodeButton-Ck-LkZnA.js";import{t as ce}from"./BotPlaceholder-SAI3U7Vk.js";import{t as le}from"./ImageWrapper-DkF7PVGL.js";var ue=_({name:`LayoutFlux`,components:{MagicIcon:M,ElDrawer:C,ElButton:J},mixins:[Z]}),de={class:`main flex flex-row flex-1`},fe={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},pe={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function me(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,de,[e(`div`,fe,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,pe,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var he=F(ue,[[`render`,me],[`__scopeId`,`data-v-72e82d52`]]),ge=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=te}}),_e={class:`field`},ve={class:`title font-bold`};function ye(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,_e,[e(`h2`,ve,i(t.$t(`flux.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var be=F(ge,[[`render`,ye],[`__scopeId`,`data-v-e9b17945`]]),xe=_({name:`CountSelector`,components:{ElSlider:T,InfoIcon:Q,ElInputNumber:w},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),Se={class:`flex justify-between`},Ce={class:`flex justify-start items-center`},we={class:`text-sm font-bold`},Te={class:`flex justify-end items-center`},Ee={class:`w-full`};function De(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-input-number`),p=l(`el-slider`);return h(),s(`div`,null,[e(`div`,Se,[e(`div`,Ce,[e(`span`,we,i(t.$t(`flux.name.numbers`)),1),a(d,{content:t.$t(`flux.description.numbers`)},null,8,[`content`])]),e(`div`,Te,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),e(`div`,Ee,[a(p,{modelValue:t.value,"onUpdate:modelValue":n[1]||=e=>t.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var Oe=F(xe,[[`render`,De]]),ke=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=P}}),Ae={class:`field`},je={class:`title font-bold`};function Me(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ae,[e(`h2`,je,i(t.$t(`flux.name.task`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ne=F(ke,[[`render`,Me],[`__scopeId`,`data-v-81fd05e5`]]),Pe=_({name:`ImageUrlInput`,components:{UploadIcon:ee,ElUpload:b,ElButton:J,InfoIcon:Q,ImagePreview:X},mixins:[K,I,V],emits:[`change`],data(){return{fileList:[],uploadUrl:W()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){R.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){R.error(this.$t(`flux.message.uploadStartImageError`))}}}),Fe={class:`relative`},Ie={class:`flex justify-between`},Le={class:`flex justify-start items-center`},Re={class:`text-sm font-bold`};function ze(t,n,o,c,u,d){let f=l(`info-icon`),m=l(`image-preview`),g=l(`upload-icon`),_=l(`el-button`),v=l(`el-upload`);return h(),s(`div`,Fe,[e(`div`,Ie,[e(`div`,Le,[e(`span`,Re,i(t.$t(`flux.name.imageUrl`)),1),a(f,{content:t.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),a(v,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,headers:t.headers},{file:p(({file:e})=>[a(m,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:p(()=>[a(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(g,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`headers`])])}var Be=F(Pe,[[`render`,ze],[`__scopeId`,`data-v-2e7e6966`]]),Ve=_({name:`PromptInput`,components:{PromptTextarea:O},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function He(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ue=F(Ve,[[`render`,He]]),We=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:N}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),Ge={class:`field`},Ke={class:`title font-bold`};function qe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ge,[e(`h2`,Ke,i(t.$t(`flux.name.ratio`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Je=_({name:`PresetPanel`,components:{MagicIcon:M,ElButton:J,PromptInput:Ue,ModelSelector:be,CountSelector:Oe,Consumption:re,ActionSelector:Ne,ImageUrlInput:Be,SizeSelector:F(We,[[`render`,qe],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return H(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ye={class:`flex flex-col h-full`},Xe={class:`flex-1 overflow-y-auto p-5`},Ze={class:`flex flex-col items-center justify-center px-5 pb-5`};function Qe(t,n,c,u,d,m){let g=l(`action-selector`),_=l(`prompt-input`),v=l(`image-url-input`),y=l(`model-selector`),b=l(`size-selector`),x=l(`count-selector`),S=l(`consumption`),C=l(`magic-icon`),w=l(`el-button`);return h(),s(`div`,Ye,[e(`div`,Xe,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.config?.action===`edits`?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`})]),e(`div`,Ze,[a(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var $e=F(Je,[[`render`,Qe]]),et=_({name:`TaskPreview`,components:{DeleteIcon:A,ElTooltip:x,ChannelIcon:D,InfoIcon:k,MagicIcon:M,TimeIcon:E,WarningIcon:j,CopyToClipboard:Y,ElAlert:S,ImageWrapper:le,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await q.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`flux/deleteTask`,{id:e}),R.success(this.$t(`common.message.deleteTaskSuccess`))}catch{R.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),tt={class:`preview`},nt={class:`left`},rt={class:`main`},it={class:`bot`},at={class:`datetime`},ot=[`aria-label`],st={class:`info`},ct={key:0,class:`prompt mt-2`},lt={key:0},ut={key:0,class:n({content:!0,failed:!0})},dt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},ft={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},pt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gt={key:1,class:n({content:!0})},_t={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},bt={key:2,class:n({content:!0})},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function St(n,u,d,g,_,v){let y=l(`capability-presentation`),b=l(`delete-icon`),x=l(`el-tooltip`),S=l(`image-wrapper`),C=l(`api-code-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return h(),s(`div`,tt,[e(`div`,nt,[a(y,{capability:`flux`,part:`avatar`,class:`avatar`})]),e(`div`,rt,[e(`div`,it,[a(y,{capability:`flux`,part:`name`}),e(`span`,at,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(x,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:u[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(b,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,ot)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,st,[n.modelValue?.request?.prompt?(h(),s(`p`,ct,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,lt,` - (`+i(n.$t(`flux.status.pending`))+`) `,1))])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,ut,[e(`div`,dt,[(h(!0),s(c,null,m(n.images,(e,t)=>(h(),f(S,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),e(`div`,ft,[a(C,{path:`/flux/images`,body:n.modelValue?.request},null,8,[`body`])]),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,mt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,ht,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(h(),s(`div`,gt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failure`)),1)]),default:p(()=>[e(`p`,_t,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,vt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,yt,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,$,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0),n.modelValue?.response?o(``,!0):(h(),s(`div`,bt,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.status.pending`)),1)]),default:p(()=>[e(`p`,xt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var Ct=_({name:`RecentPanel`,components:{TaskPreview:F(et,[[`render`,St],[`__scopeId`,`data-v-6df6d58d`]]),BotPlaceholder:ce,NoTasks:ae,ScrollList:ie},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),wt={key:0},Tt={key:2,class:`w-full h-full flex items-center justify-center`};function Et(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,wt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Tt,[a(v)])):o(``,!0)],64)}var Dt=_({name:`FluxIndex`,components:{ConfigPanel:$e,Layout:he,RecentPanel:F(Ct,[[`render`,Et]])},mixins:[ne],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===U.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===U.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await oe({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!z(this.uploadTracker,e=>this.$t(e),e=>R.warning(e)))return;let e={...this.config,async:!0};if(!G())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}R.info(this.$t(`flux.message.startingTask`)),L(`flux`,B.generate(e,{token:t})).then(()=>{R.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?R.error(this.$t(`flux.message.usedUp`)):R.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ot(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var kt=F(Dt,[[`render`,Ot]]);export{kt as default};