@vellumai/web 0.8.7-dev.202606052232.2ddc989 → 0.8.8
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.
- package/dist/assets/{about-page-VHKsk9M1.js → about-page-C4tN0hSY.js} +1 -1
- package/dist/assets/{account-page-BiBMYABT.js → account-page-e-4zB_8t.js} +1 -1
- package/dist/assets/{add-credits-modal-BnkD4oSj.js → add-credits-modal-p0gkX1yC.js} +1 -1
- package/dist/assets/{advanced-page-CTM9ByJs.js → advanced-page-Du0vGXNL.js} +1 -1
- package/dist/assets/ai-page-BQOcmKeW.js +1 -0
- package/dist/assets/{angular-html-DoxnP4L3.js → angular-html-CDXMmzLv.js} +1 -1
- package/dist/assets/{angular-ts-9spjMgRd.js → angular-ts-CaUHVMjx.js} +1 -1
- package/dist/assets/{api-DYTu2hC1.js → api-8hqpGaif.js} +2 -2
- package/dist/assets/{api-key-screen-WY11Flti.js → api-key-screen-Bgk6XGC1.js} +1 -1
- package/dist/assets/{apl-BjPuT95r.js → apl-BTRFCz7X.js} +1 -1
- package/dist/assets/archive-page-DhDeJH4l.js +1 -0
- package/dist/assets/{assistant-feature-flag-store-XFfKSl8X.js → assistant-feature-flag-store-CNdFPRBD.js} +1 -1
- package/dist/assets/{assistant-identity-store-CsS_tq85.js → assistant-identity-store-Y4grVs1H.js} +1 -1
- package/dist/assets/assistant-status-panel-C3CvCBVl.js +1 -0
- package/dist/assets/{astro-xfSi9ARd.js → astro-CKyX7s7R.js} +1 -1
- package/dist/assets/auth-store-CYbo7naZ.js +1 -0
- package/dist/assets/{avatar-api-DygRCPqF.js → avatar-api-BfDoaCjw.js} +1 -1
- package/dist/assets/billing-page-CyTcQ9ki.js +34 -0
- package/dist/assets/{blade-C8H1jvQW.js → blade-Rzz0TE8c.js} +1 -1
- package/dist/assets/{bsl-1Uw5GcVj.js → bsl-DpFuAvE8.js} +1 -1
- package/dist/assets/{cairo-LeKPj3R4.js → cairo-Bobk4atY.js} +1 -1
- package/dist/assets/capture-error-1Tr5aMfq.js +1 -0
- package/dist/assets/{cobol-D5SqfAvu.js → cobol-1CNEp2gA.js} +1 -1
- package/dist/assets/{coffee-KrVM6VAY.js → coffee-CCurbO7Q.js} +1 -1
- package/dist/assets/{command-palette-doCEl_ro.js → command-palette-CTF-tqv7.js} +1 -1
- package/dist/assets/{community-page-C16cwwBL.js → community-page-BWc9-V5m.js} +1 -1
- package/dist/assets/{connect-page-BCxdL8Jq.js → connect-page-DLP-KRIF.js} +1 -1
- package/dist/assets/{contacts-gateway-DkmnVa7t.js → contacts-gateway-BF6L_WJp.js} +1 -1
- package/dist/assets/contacts-page-route-ziTjDj3t.js +1 -0
- package/dist/assets/{cpp-C0UxZXSh.js → cpp-D8F2mhyx.js} +1 -1
- package/dist/assets/{crystal-ClJk9iNu.js → crystal-BV5GbE2n.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-BdgSJlIY.js → danger-zone-redirect-page-BlS6Bao4.js} +1 -1
- package/dist/assets/{debug-page--WT90LG1.js → debug-page-B38HF3wu.js} +3 -3
- package/dist/assets/{deploy-dialogs-Bnsia9oU.js → deploy-dialogs-Ddx6WsXp.js} +1 -1
- package/dist/assets/developer-page-CVcwOCG9.js +1 -0
- package/dist/assets/{devices-page-BRAQG74I.js → devices-page-4yNwXw0J.js} +1 -1
- package/dist/assets/{dist-DacRcU3L.js → dist-Ck9KSeuV.js} +3 -3
- package/dist/assets/{document-viewer-page-DZSH_KXd.js → document-viewer-page-BZqF90o0.js} +1 -1
- package/dist/assets/{earn-credits-modal-xyZYOdPP.js → earn-credits-modal-BfVEDIqn.js} +1 -1
- package/dist/assets/{edge-BiYC4_90.js → edge-wZlHrIuI.js} +1 -1
- package/dist/assets/{elixir-CeTC01SF.js → elixir-CxYq-rkj.js} +1 -1
- package/dist/assets/{elm-Cn1hsMyk.js → elm-BgDZWS-i.js} +1 -1
- package/dist/assets/{emails-page-SNlhYBQq.js → emails-page-VM8fJ5kb.js} +1 -1
- package/dist/assets/{erb-DSDLUB86.js → erb-DBocu5OY.js} +1 -1
- package/dist/assets/{erlang-C99b08Nz.js → erlang-Dd9A6Ts8.js} +1 -1
- package/dist/assets/esm-B9MFZJ_e.js +2 -0
- package/dist/assets/esm-BAXpcEfg.js +2 -0
- package/dist/assets/{esm-SU3SyAUz.js → esm-BBKnACgF.js} +2 -2
- package/dist/assets/esm-BesMJi2r.js +2 -0
- package/dist/assets/esm-Dlx5ghIf.js +2 -0
- package/dist/assets/exports-B_RC9sMS.js +4 -0
- package/dist/assets/feature-flag-catalog-CRgdQmMF.js +1 -0
- package/dist/assets/{file-markdown-DLtmfYbc.js → file-markdown-DjJ2NSmS.js} +1 -1
- package/dist/assets/{fortran-fixed-form-CfIW45ck.js → fortran-fixed-form-DMrzopcc.js} +1 -1
- package/dist/assets/{fsharp-CpfXaTmO.js → fsharp-C6m4Hy9y.js} +1 -1
- package/dist/assets/{gateway-session-BEbYXAZw.js → gateway-session-CaFk8wfN.js} +1 -1
- package/dist/assets/{gdresource-Bq9ffHIF.js → gdresource-YKD2wsBt.js} +1 -1
- package/dist/assets/general-page-m_m-DrX4.js +1 -0
- package/dist/assets/{git-commit-4hNTcyXg.js → git-commit-D3W81laO.js} +1 -1
- package/dist/assets/{git-rebase-DoeXBq-R.js → git-rebase-D7A-ZIs_.js} +1 -1
- package/dist/assets/{glimmer-js-CYkye81z.js → glimmer-js-Kj1yb8GI.js} +1 -1
- package/dist/assets/{glimmer-ts-Bk7QAWr2.js → glimmer-ts-CMle0DS9.js} +1 -1
- package/dist/assets/{glsl-BYZink9d.js → glsl-CGs04uf3.js} +1 -1
- package/dist/assets/{graphql-CS_bfAPh.js → graphql-DTpeHwUI.js} +1 -1
- package/dist/assets/{hack-rkugl_pJ.js → hack-DCR-U-qQ.js} +1 -1
- package/dist/assets/{haml-BkhENUsf.js → haml-Cp_ZrdH-.js} +1 -1
- package/dist/assets/{handlebars-Bh3JZxjr.js → handlebars-DTIya8Eo.js} +1 -1
- package/dist/assets/hatching-screen-CI8iOd8-.js +1 -0
- package/dist/assets/home-page-route-ePg1Cu2z.js +1 -0
- package/dist/assets/{hosting-screen-D6IVMcMS.js → hosting-screen-CA6XnVWn.js} +1 -1
- package/dist/assets/{html-Chvx6bbW.js → html-CCPUpDrQ.js} +1 -1
- package/dist/assets/{html-derivative-BZlQ5XVV.js → html-derivative-CoL1ACif.js} +1 -1
- package/dist/assets/{http-CZnYRnoH.js → http-BjpN3wdH.js} +1 -1
- package/dist/assets/{hurl-C9D1SYfx.js → hurl-BHqN3hsl.js} +1 -1
- package/dist/assets/{hxml-CqBwUL68.js → hxml-CthMTwgY.js} +1 -1
- package/dist/assets/identity-page-route-BcE8OAJ6.js +1 -0
- package/dist/assets/index-Cb930VA2.css +2 -0
- package/dist/assets/index-DUwiZuxe.js +124 -0
- package/dist/assets/{inspect-page-Bc6T9uiq.js → inspect-page-CsvH5Rih.js} +2 -2
- package/dist/assets/{install-CqQAdH7r.js → install-OHIUtZSu.js} +1 -1
- package/dist/assets/integrations-page-B54hIoCi.js +1 -0
- package/dist/assets/{intelligence-layout-CK1ONzMq.js → intelligence-layout-Onjx6_Xb.js} +1 -1
- package/dist/assets/{jinja-DA4mN-er.js → jinja-Bn3xB2ml.js} +1 -1
- package/dist/assets/{jison-BUGhbqsC.js → jison-BX4oePNj.js} +1 -1
- package/dist/assets/{julia-DE2tbbof.js → julia-DU_-trts.js} +1 -1
- package/dist/assets/{just-F4pUwLYE.js → just-CyokZPsE.js} +1 -1
- package/dist/assets/{latex-DVRfNFWZ.js → latex-CHvXrGPz.js} +1 -1
- package/dist/assets/{lib-DjjTt2Bu.js → lib-h5KT63h9.js} +1 -1
- package/dist/assets/{library-detail-page-DSVyFZMh.js → library-detail-page-PP_bf3mt.js} +1 -1
- package/dist/assets/library-page-Cg1IA3a6.js +1 -0
- package/dist/assets/{liquid-BQaobxSx.js → liquid-Bs4Sb-po.js} +1 -1
- package/dist/assets/{login-flow-YoZiK8pc.js → login-flow-BbsypWKa.js} +1 -1
- package/dist/assets/login-page-BVX4fr6R.js +1 -0
- package/dist/assets/{logout-page-BlH38xxk.js → logout-page-BkzePxva.js} +1 -1
- package/dist/assets/{logs-layout-dVZP7y5S.js → logs-layout-Cs8hHTTu.js} +1 -1
- package/dist/assets/{lua-C6astBbM.js → lua-Dlulix5z.js} +1 -1
- package/dist/assets/{marko-CDvDU-jy.js → marko-BKY8xXbp.js} +1 -1
- package/dist/assets/{mdc-DYeZOJof.js → mdc-DUJqLRSQ.js} +1 -1
- package/dist/assets/{memory-router-playground-page-CR1ipK38.js → memory-router-playground-page-4uw1uIhg.js} +1 -1
- package/dist/assets/{misc-BwTS2Omn.js → misc-BllImtEn.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-B18QHDel.js → mobile-sidebar-drawer-CSQF2rSV.js} +1 -1
- package/dist/assets/native-biometric-B4t4zElu.js +6 -0
- package/dist/assets/{native-file-BURkYQJV.js → native-file-C2WSS7-h.js} +2 -2
- package/dist/assets/{nextflow-CSmwW5Ci.js → nextflow-7_68OVU_.js} +1 -1
- package/dist/assets/{nginx-CnKPWPN7.js → nginx-eipJu1bl.js} +1 -1
- package/dist/assets/{nim-DVpbAykj.js → nim-CYnL-Wir.js} +1 -1
- package/dist/assets/{notifications-page-5Etr_SRn.js → notifications-page-DRppz7Ms.js} +1 -1
- package/dist/assets/{oauth-complete-page-DdkJeVpO.js → oauth-complete-page-aT6QAfCd.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Z_ICryrb.js → oauth-popup-complete-page-ClfKIV61.js} +1 -1
- package/dist/assets/{onboarding-layout-CTQetjmN.js → onboarding-layout-DMOume9Z.js} +1 -1
- package/dist/assets/{password-reset-page-B0uxgxAb.js → password-reset-page-CugjFViT.js} +1 -1
- package/dist/assets/{perl-DL5nyTE3.js → perl-D0xJm_ah.js} +1 -1
- package/dist/assets/{php-14zLJiK2.js → php-DNtH2WpS.js} +1 -1
- package/dist/assets/{platform-loopback-page-iGsXXAZd.js → platform-loopback-page-DSAaBS5p.js} +1 -1
- package/dist/assets/{plugins-page-CwkVF9QF.js → plugins-page-CYcKA2Ai.js} +1 -1
- package/dist/assets/pre-chat-flow-BLHHoHka.js +1 -0
- package/dist/assets/privacy-page-HiOgrDR9.js +1 -0
- package/dist/assets/privacy-screen-Ca0oGFo0.js +1 -0
- package/dist/assets/{provider-callback-page-DY_r1O5H.js → provider-callback-page-DpGReURP.js} +1 -1
- package/dist/assets/{provider-signup-page-D6hTVQgJ.js → provider-signup-page-BpqjcKpY.js} +1 -1
- package/dist/assets/{pug-BcGFw36t.js → pug-DEPEeomQ.js} +1 -1
- package/dist/assets/{qml-DSBzgwxk.js → qml-C9mVjGBN.js} +1 -1
- package/dist/assets/{razor-DzERoHYk.js → razor-Cyg4V1EK.js} +1 -1
- package/dist/assets/routes-C-DwSCj0.js +1 -0
- package/dist/assets/{rst-BIN6LBBb.js → rst-BiUNp2Fv.js} +1 -1
- package/dist/assets/{ruby-jBJwv2mP.js → ruby-Bddxezn1.js} +1 -1
- package/dist/assets/{sas-yRpQSa4M.js → sas-DAUEkM7Z.js} +1 -1
- package/dist/assets/{schedules-page-nXeTZw2c.js → schedules-page-zyXnmD3U.js} +1 -1
- package/dist/assets/{scss-D6nUDMBD.js → scss-BlEtTolU.js} +1 -1
- package/dist/assets/{sdk.gen-Dvq7zGs0.js → sdk.gen-BO4vbMAj.js} +1 -1
- package/dist/assets/{settings-layout-D48zDU-G.js → settings-layout-Bsi8NeES.js} +1 -1
- package/dist/assets/{shaderlab-2mkDNSZE.js → shaderlab-BH1Q2CVQ.js} +1 -1
- package/dist/assets/share-feedback-modal-BgfMO7ED.js +1 -0
- package/dist/assets/{shellsession-qVduQyG2.js → shellsession-BdTXj0Sh.js} +1 -1
- package/dist/assets/{sidebar-tree-TZtCYoFo.js → sidebar-tree-D9JFk5pQ.js} +1 -1
- package/dist/assets/{signup-page-9RqRMZse.js → signup-page-CI7xziFt.js} +1 -1
- package/dist/assets/skills-page-DrpHzObX.js +1 -0
- package/dist/assets/{sounds-page-CUiVOLN8.js → sounds-page-Dw_ASs77.js} +1 -1
- package/dist/assets/{soy-N-ikyuo0.js → soy-B-FcVSYk.js} +1 -1
- package/dist/assets/{sparql-CXOfNIAD.js → sparql-BjDARHNL.js} +1 -1
- package/dist/assets/{stata-DAwqVBtA.js → stata-Y4GvktLE.js} +1 -1
- package/dist/assets/step-indicator-dots-ClKaa4nc.js +1 -0
- package/dist/assets/{subagent-detail-panel-CaJSI4fI.js → subagent-detail-panel-BcUQAemM.js} +2 -2
- package/dist/assets/{surrealql-mj-mrh8J.js → surrealql-BDSKZaSH.js} +1 -1
- package/dist/assets/{svelte-Dc7E_mCh.js → svelte-CtuvIFmj.js} +1 -1
- package/dist/assets/{system-events-page-BPAFAOyb.js → system-events-page-BC0hWcTo.js} +1 -1
- package/dist/assets/{system-events-redirect-page-kUI6PPyM.js → system-events-redirect-page-BrzAhJZT.js} +1 -1
- package/dist/assets/{templ-B12CJEzs.js → templ-eJUdwoXg.js} +1 -1
- package/dist/assets/{tex-SEHboowz.js → tex-CIRkYPu6.js} +1 -1
- package/dist/assets/{tiptap-document-editor-BQqVV46h.js → tiptap-document-editor-CIVPtfOQ.js} +2 -2
- package/dist/assets/{tool-detail-panel-bd15yZOi.js → tool-detail-panel-y2CN1PtJ.js} +1 -1
- package/dist/assets/trace-page-BX5w9eln.js +1 -0
- package/dist/assets/{ts-tags-D-Jr8mpt.js → ts-tags-Cza2ueQC.js} +1 -1
- package/dist/assets/{twig-CWdkELuI.js → twig-CXZQ9Ol2.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-CCGPhKky.js → upgrade-cancel-page-KQ4EN_I1.js} +1 -1
- package/dist/assets/{upgrade-success-page-DaxBtc0m.js → upgrade-success-page-Bmv-ncJ6.js} +1 -1
- package/dist/assets/{usage-page-B-E9ob9F.js → usage-page-CXNTUrjR.js} +1 -1
- package/dist/assets/{use-bus-subscription-Cz3Ryocr.js → use-bus-subscription-r105Upoa.js} +1 -1
- package/dist/assets/{use-current-platform-assistant-B3gP7gen.js → use-current-platform-assistant-BXRU4B3R.js} +1 -1
- package/dist/assets/use-is-org-ready-Dtde_1TT.js +1 -0
- package/dist/assets/{use-oauth-complete-deep-link-listener-ZuAGEydM.js → use-oauth-complete-deep-link-listener-BkbO4kZ1.js} +1 -1
- package/dist/assets/{utils-CVZ8WTxM.js → utils-DfoBtDfL.js} +1 -1
- package/dist/assets/viewer-store-BIIKltsh.js +1 -0
- package/dist/assets/{voice-page-BIVGEiiK.js → voice-page-D3jl6Uq8.js} +1 -1
- package/dist/assets/{vue-BprQ0-Ub.js → vue-BHoLyUei.js} +1 -1
- package/dist/assets/{vue-html-hp77151s.js → vue-html-DkcwChpt.js} +1 -1
- package/dist/assets/{vue-vine-Cr9pIPKl.js → vue-vine-CWaGKpZ6.js} +1 -1
- package/dist/assets/{weather-forecast-display-Co0Tm-Os.js → weather-forecast-display-BA-3Q5jY.js} +1 -1
- package/dist/assets/{web-qR3jv4Dd.js → web-BURo-fbJ.js} +1 -1
- package/dist/assets/{web-Pb43q_QH.js → web-Bladjo1x.js} +1 -1
- package/dist/assets/{web-BUHhvd6U.js → web-BoYC6fGC.js} +1 -1
- package/dist/assets/{web-tLusY4Su.js → web-ByC97zP5.js} +1 -1
- package/dist/assets/{web-DuNCoqzd.js → web-D4HuJomW.js} +1 -1
- package/dist/assets/{web-BlXL6x8k.js → web-DhGMOrai.js} +1 -1
- package/dist/assets/{web-CBHiUh0h.js → web-St4pj-6p.js} +1 -1
- package/dist/assets/{welcome-screen-BHVV20Ua.js → welcome-screen-B3oZjIVb.js} +1 -1
- package/dist/assets/workspace-page-CUxLMyKc.js +1 -0
- package/dist/assets/{xml-Cm8puQKu.js → xml-CUVPRfsD.js} +1 -1
- package/dist/assets/{xsl-C1TQprpW.js → xsl-imDMVavE.js} +1 -1
- package/dist/index.html +39 -38
- package/package.json +1 -1
- package/dist/assets/BundleConfirmPage-CSaXWfQ1.js +0 -1
- package/dist/assets/ai-page-D4pxJbNn.js +0 -1
- package/dist/assets/archive-page-CSspL6oa.js +0 -1
- package/dist/assets/assistant-status-panel-GQ4MBaan.js +0 -1
- package/dist/assets/auth-store-NinzEiLF.js +0 -1
- package/dist/assets/billing-page-BS8qVqsa.js +0 -34
- package/dist/assets/capture-error-23NwnaZt.js +0 -4
- package/dist/assets/contacts-page-route-BDv_9GZ0.js +0 -1
- package/dist/assets/developer-page-jgraj43o.js +0 -1
- package/dist/assets/esm-DKyh2sdX.js +0 -2
- package/dist/assets/esm-DUUKbDsd.js +0 -2
- package/dist/assets/esm-Da4x-MH2.js +0 -2
- package/dist/assets/esm-dtSsvPGT.js +0 -2
- package/dist/assets/feature-flag-catalog-H7Q8h3pM.js +0 -1
- package/dist/assets/format-file-size-DpQP6eF0.js +0 -1
- package/dist/assets/general-page-Dw5lzX9J.js +0 -1
- package/dist/assets/hatching-screen-Q3XECwIH.js +0 -1
- package/dist/assets/home-page-route-D1gJnqOJ.js +0 -1
- package/dist/assets/identity-page-route-Cqpwctvb.js +0 -1
- package/dist/assets/index-CUnEdGZb.css +0 -2
- package/dist/assets/index-DmTi6dG-.js +0 -124
- package/dist/assets/integrations-page-O1TEamRL.js +0 -1
- package/dist/assets/library-page-FryrD29R.js +0 -1
- package/dist/assets/login-page-N9rNKdE4.js +0 -1
- package/dist/assets/native-biometric-V5gaOHYQ.js +0 -6
- package/dist/assets/pre-chat-flow-DRxx1hYL.js +0 -1
- package/dist/assets/privacy-page-CX4-SR5S.js +0 -1
- package/dist/assets/privacy-screen-BlkfCqKf.js +0 -1
- package/dist/assets/quick-input-page-BPZhSRem.js +0 -1
- package/dist/assets/routes-Dfo11DAg.js +0 -1
- package/dist/assets/share-feedback-modal-HxZUa0Ql.js +0 -1
- package/dist/assets/skills-page-DwZbBgsd.js +0 -1
- package/dist/assets/step-indicator-dots-Bef_HABf.js +0 -1
- package/dist/assets/trace-page-CcJ5f1s8.js +0 -1
- package/dist/assets/use-is-org-ready-C0KPmJ3X.js +0 -1
- package/dist/assets/viewer-store-BIjT34BR.js +0 -1
- package/dist/assets/workspace-page-CEddn9j8.js +0 -1
- /package/dist/assets/{abap-Bfl6OWPB.js → abap-C4iPiDIu.js} +0 -0
- /package/dist/assets/{actionscript-3-Dlqiiy8x.js → actionscript-3-gKpUxVX1.js} +0 -0
- /package/dist/assets/{ada-COUbPro6.js → ada-BNfMfhXG.js} +0 -0
- /package/dist/assets/{andromeeda-BoXZFw2R.js → andromeeda-DLZ1RhgM.js} +0 -0
- /package/dist/assets/{apache-DpKhYfq6.js → apache-CmXtX8w8.js} +0 -0
- /package/dist/assets/{apex-B_uFO61F.js → apex-DQ3YjsTJ.js} +0 -0
- /package/dist/assets/{app-html-cache-B0vrz1YW.js → app-html-cache-BsFOfI0R.js} +0 -0
- /package/dist/assets/{applescript-D3paN7K0.js → applescript-CoELsxRV.js} +0 -0
- /package/dist/assets/{ara-CwbWLquj.js → ara-BLqTzepa.js} +0 -0
- /package/dist/assets/{asciidoc-VGSo8T5D.js → asciidoc-Bu3NXNp3.js} +0 -0
- /package/dist/assets/{asm-FPeQDFEa.js → asm-hlDTKcRV.js} +0 -0
- /package/dist/assets/{aurora-x-COSrEIJC.js → aurora-x-Y3rL1Mno.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-DuV7I45L.js → avatar-svg-compositor-CE52Zi2F.js} +0 -0
- /package/dist/assets/{awk-fUzIbt5q.js → awk-fqp6puV8.js} +0 -0
- /package/dist/assets/{ayu-dark-K3pEfprB.js → ayu-dark-8m2thfgS.js} +0 -0
- /package/dist/assets/{ayu-light-BhBDUJo9.js → ayu-light-B_LzrLW4.js} +0 -0
- /package/dist/assets/{ayu-mirage-CYENPbEi.js → ayu-mirage-C408gKdx.js} +0 -0
- /package/dist/assets/{ballerina-DIi7YSrd.js → ballerina-Dzhgw61p.js} +0 -0
- /package/dist/assets/{bat-tHgyIDGw.js → bat-CM0nyl3e.js} +0 -0
- /package/dist/assets/{beancount-DawK3651.js → beancount-DS2zW2gu.js} +0 -0
- /package/dist/assets/{berry-DkDnrvVb.js → berry-CFa7Vgeg.js} +0 -0
- /package/dist/assets/{bibtex-B5oISiWf.js → bibtex-BgrhWGNJ.js} +0 -0
- /package/dist/assets/{bicep-BlTgOqlL.js → bicep-DtHaVZsZ.js} +0 -0
- /package/dist/assets/{bird2-COHCqf-V.js → bird2-CwlVhixU.js} +0 -0
- /package/dist/assets/{c-DBsgGwh3.js → c-DHEwyzyt.js} +0 -0
- /package/dist/assets/{c3-DG4RoDeZ.js → c3-BjbJ1SWk.js} +0 -0
- /package/dist/assets/{cadence-BHyhLOnE.js → cadence-D5TkDw9F.js} +0 -0
- /package/dist/assets/{catppuccin-frappe-BoFiW_80.js → catppuccin-frappe-AYmKAKbn.js} +0 -0
- /package/dist/assets/{catppuccin-latte-CFlPOnsH.js → catppuccin-latte-rgEci-mq.js} +0 -0
- /package/dist/assets/{catppuccin-macchiato-CLHnCD9Z.js → catppuccin-macchiato-DK631o7w.js} +0 -0
- /package/dist/assets/{catppuccin-mocha-D9O1RTSI.js → catppuccin-mocha-Dxwp0FIj.js} +0 -0
- /package/dist/assets/{clarity-Bad-9p-G.js → clarity-RpeFvelS.js} +0 -0
- /package/dist/assets/{client.gen-BSPUYAay.js → client.gen-BKAMS0D0.js} +0 -0
- /package/dist/assets/{clojure-JsVarUVs.js → clojure-CRAC2t-A.js} +0 -0
- /package/dist/assets/{clsx-CAUM2Ssy.js → clsx-BcPLHiun.js} +0 -0
- /package/dist/assets/{cmake-DXbVPxoO.js → cmake-CR_x8y9A.js} +0 -0
- /package/dist/assets/{codeowners-Co7U_H7C.js → codeowners-DCE2DWuf.js} +0 -0
- /package/dist/assets/{codeql-DbhkTzcI.js → codeql-DsaJqgmb.js} +0 -0
- /package/dist/assets/{common-lisp-5EpYtPq7.js → common-lisp-ssblfVQ2.js} +0 -0
- /package/dist/assets/{conversation-store-D6erO6zc.js → conversation-store-D8-qWog8.js} +0 -0
- /package/dist/assets/{coq-BHTaQtqU.js → coq-CHVp-7H5.js} +0 -0
- /package/dist/assets/{csharp-vNqAk7wS.js → csharp-DI5xNuVa.js} +0 -0
- /package/dist/assets/{css-D8Elscfw.js → css-cWOM3a0B.js} +0 -0
- /package/dist/assets/{csv-BOCRZ51I.js → csv-Bpv-AoF-.js} +0 -0
- /package/dist/assets/{cue--vvB6NEp.js → cue-DDYtbxe3.js} +0 -0
- /package/dist/assets/{cypher-8zw1cZPY.js → cypher-llXjaNz7.js} +0 -0
- /package/dist/assets/{d-DCw6i__G.js → d-CKAGFvTZ.js} +0 -0
- /package/dist/assets/{dark-plus-CJQgO0a2.js → dark-plus-rkBkJwdk.js} +0 -0
- /package/dist/assets/{dart-Di_0TMyS.js → dart-DMYKlTVD.js} +0 -0
- /package/dist/assets/{dax-C3FCmr3K.js → dax-DdvjFH0V.js} +0 -0
- /package/dist/assets/{definitions-BhcK9MeU.js → definitions-BNrrmgWe.js} +0 -0
- /package/dist/assets/{desktop-DfPpjKHQ.js → desktop-w1vLnVHT.js} +0 -0
- /package/dist/assets/{diff-CbXGRoMP.js → diff-OeXZvF1L.js} +0 -0
- /package/dist/assets/{dist-d-PJ8AUi.js → dist-C49TvNNR.js} +0 -0
- /package/dist/assets/{docker-B4Kzg9bz.js → docker-C3A0dfO2.js} +0 -0
- /package/dist/assets/{dotenv-Bou3VaLF.js → dotenv-DW1eN_9r.js} +0 -0
- /package/dist/assets/{dracula-DqvSNsR6.js → dracula-DTBIfZ52.js} +0 -0
- /package/dist/assets/{dracula-soft-h1T06flS.js → dracula-soft-CrJWuJGa.js} +0 -0
- /package/dist/assets/{dream-maker-BVxHB1DY.js → dream-maker-BbcHsNud.js} +0 -0
- /package/dist/assets/{edit-chat-session-DseODZCl.js → edit-chat-session-Bn0bAlP1.js} +0 -0
- /package/dist/assets/{effective-timezone-QeovgyP0.js → effective-timezone-CJWCpcyG.js} +0 -0
- /package/dist/assets/{emacs-lisp-C5w5G5qc.js → emacs-lisp-CXlankGO.js} +0 -0
- /package/dist/assets/{event-bus-DKlaDVAu.js → event-bus-WRYwtHDl.js} +0 -0
- /package/dist/assets/{everforest-dark-8YvZGFtA.js → everforest-dark-B2pu_HKn.js} +0 -0
- /package/dist/assets/{everforest-light-7kDryiLY.js → everforest-light-DN0BkMBf.js} +0 -0
- /package/dist/assets/{fennel-0vdmVKTu.js → fennel-Cr6woGT-.js} +0 -0
- /package/dist/assets/{fish-IyesOFcd.js → fish-BJg8G7KS.js} +0 -0
- /package/dist/assets/{fluent-CcNoA3qp.js → fluent-DwMQdbwA.js} +0 -0
- /package/dist/assets/{fortran-free-form-_mCAt4L5.js → fortran-free-form-CzTB9Sqt.js} +0 -0
- /package/dist/assets/{gdscript-DXUJNbQF.js → gdscript-weUeMolr.js} +0 -0
- /package/dist/assets/{gdshader-DK3kh5kx.js → gdshader-iWAUzgYh.js} +0 -0
- /package/dist/assets/{genie-BDu4LoAt.js → genie-CV-0RB6d.js} +0 -0
- /package/dist/assets/{gherkin-Bj4QY2ZZ.js → gherkin-Bi25xuBx.js} +0 -0
- /package/dist/assets/{github-dark-23T46ITp.js → github-dark-UUFXF3bS.js} +0 -0
- /package/dist/assets/{github-dark-default-YRljnVzM.js → github-dark-default-C5WdYtsR.js} +0 -0
- /package/dist/assets/{github-dark-dimmed-dQav7O6R.js → github-dark-dimmed-CJFXRI6Q.js} +0 -0
- /package/dist/assets/{github-dark-high-contrast-DidY19tg.js → github-dark-high-contrast-JloQ0SAJ.js} +0 -0
- /package/dist/assets/{github-light-BObDDVDh.js → github-light-4CveJiiC.js} +0 -0
- /package/dist/assets/{github-light-default-BoJDCN5R.js → github-light-default-DGIOayrf.js} +0 -0
- /package/dist/assets/{github-light-high-contrast-Bst7qyBs.js → github-light-high-contrast-DOA9HriW.js} +0 -0
- /package/dist/assets/{gleam-mHMeGp-o.js → gleam-CKtDvnYK.js} +0 -0
- /package/dist/assets/{gn-BOh1TF98.js → gn-lpxxrUCu.js} +0 -0
- /package/dist/assets/{gnuplot-BeWb4QIH.js → gnuplot-BhYvNHXT.js} +0 -0
- /package/dist/assets/{go-GgqMuLaN.js → go-CGiDqZ23.js} +0 -0
- /package/dist/assets/{google-logo-CBBlhwbc.js → google-logo-NlVU0R23.js} +0 -0
- /package/dist/assets/{groovy-C9Z63wPJ.js → groovy-CGHX_PQL.js} +0 -0
- /package/dist/assets/{gruvbox-dark-hard-D3hhOWHI.js → gruvbox-dark-hard-WxeIxO0x.js} +0 -0
- /package/dist/assets/{gruvbox-dark-medium-CPtDKE5U.js → gruvbox-dark-medium-BrLRvqzP.js} +0 -0
- /package/dist/assets/{gruvbox-dark-soft--KzcMTkn.js → gruvbox-dark-soft-Yzi926sT.js} +0 -0
- /package/dist/assets/{gruvbox-light-hard-Cr7t7Yc0.js → gruvbox-light-hard-Cw9Re-rI.js} +0 -0
- /package/dist/assets/{gruvbox-light-medium-DSXNnsG2.js → gruvbox-light-medium-4lcJ4wOe.js} +0 -0
- /package/dist/assets/{gruvbox-light-soft-CQt4xaiw.js → gruvbox-light-soft-CXfwWDtY.js} +0 -0
- /package/dist/assets/{haskell-BAFTh2zU.js → haskell-DBidNlOX.js} +0 -0
- /package/dist/assets/{haxe-Bzf0Gule.js → haxe-B6ZewxKA.js} +0 -0
- /package/dist/assets/{hcl-DG1GEjfN.js → hcl-BKeuz7gp.js} +0 -0
- /package/dist/assets/{hjson-CfLJP1MZ.js → hjson-rgQbq9_i.js} +0 -0
- /package/dist/assets/{hlsl-CzJWYpeK.js → hlsl-D7KFXCoM.js} +0 -0
- /package/dist/assets/{horizon-Debh6yGF.js → horizon-DAiINwqJ.js} +0 -0
- /package/dist/assets/{horizon-bright-CKvdi3Tu.js → horizon-bright-CFeHelVZ.js} +0 -0
- /package/dist/assets/{houston-B2Ejyr-g.js → houston-BdHxI9BK.js} +0 -0
- /package/dist/assets/{hy-pcFArSJ6.js → hy-CDDbmdhC.js} +0 -0
- /package/dist/assets/{imba-BQU3ATlD.js → imba-CwLWOt59.js} +0 -0
- /package/dist/assets/{impersonate-version-flag-DC4HAvtV.js → impersonate-version-flag-D_S9-Z77.js} +0 -0
- /package/dist/assets/{ini-Bv5_HvOR.js → ini-Bwb6xY8F.js} +0 -0
- /package/dist/assets/{is-electron-BCDAAC00.js → is-electron-1CyUiqR4.js} +0 -0
- /package/dist/assets/{java-owmbVqcc.js → java-CDWeyxES.js} +0 -0
- /package/dist/assets/{javascript-DTuM3op3.js → javascript-BN3vpbN8.js} +0 -0
- /package/dist/assets/{json-zR3clZYf.js → json-CycFWZcg.js} +0 -0
- /package/dist/assets/{json5-7NU9KTTA.js → json5-BM_H1TCH.js} +0 -0
- /package/dist/assets/{jsonc-B2TECXI_.js → jsonc-EUMfb5CQ.js} +0 -0
- /package/dist/assets/{jsonl-BX_fzJy3.js → jsonl-DvZe68u2.js} +0 -0
- /package/dist/assets/{jsonnet-BbG4eXRI.js → jsonnet-BG4vdzZ4.js} +0 -0
- /package/dist/assets/{jssm-DSjdYnDs.js → jssm-DNeKUJR3.js} +0 -0
- /package/dist/assets/{jsx-uYQiwDAi.js → jsx-jfTE_lQA.js} +0 -0
- /package/dist/assets/{kanagawa-dragon-DRQWRtYa.js → kanagawa-dragon-D9OVubsz.js} +0 -0
- /package/dist/assets/{kanagawa-lotus-B27_zN-N.js → kanagawa-lotus-CSRx4SDl.js} +0 -0
- /package/dist/assets/{kanagawa-wave-EAZwYQVu.js → kanagawa-wave-UOuPU6gH.js} +0 -0
- /package/dist/assets/{kdl-BPFF2QoT.js → kdl-DaJuRpNV.js} +0 -0
- /package/dist/assets/{kotlin-CzYpDily.js → kotlin-BNEzAgnJ.js} +0 -0
- /package/dist/assets/{kusto-Cd20wvqp.js → kusto-BnUa5uHr.js} +0 -0
- /package/dist/assets/{laserwave-Bg9CK1g0.js → laserwave-BPO5VXXS.js} +0 -0
- /package/dist/assets/{lean-BFRCe_H4.js → lean-Z7O9sZeQ.js} +0 -0
- /package/dist/assets/{less-p1NRP6KM.js → less-9u8t21jj.js} +0 -0
- /package/dist/assets/{lib-eGZllh2n.js → lib-B020BIem.js} +0 -0
- /package/dist/assets/{light-plus-upjemLP3.js → light-plus-Wc5scgJh.js} +0 -0
- /package/dist/assets/{llvm-Cet_tzjQ.js → llvm-DUPAzzzh.js} +0 -0
- /package/dist/assets/{log-DBmXghSa.js → log-yVIkEnLV.js} +0 -0
- /package/dist/assets/{logo-BLXhBfIu.js → logo-BMjRBAP1.js} +0 -0
- /package/dist/assets/{luau-CT4sQte_.js → luau-CRLNKfW2.js} +0 -0
- /package/dist/assets/{make-CzZ-Pqm8.js → make-ABiaNV_U.js} +0 -0
- /package/dist/assets/{markdown-CK4ZeF9q.js → markdown-Dn1PAeWy.js} +0 -0
- /package/dist/assets/{material-theme-B0X5JuGU.js → material-theme-DKIEc_9D.js} +0 -0
- /package/dist/assets/{material-theme-darker-bAfX1Mca.js → material-theme-darker-CKATunxP.js} +0 -0
- /package/dist/assets/{material-theme-lighter-kiXQ2ArM.js → material-theme-lighter-Ch4hbIqq.js} +0 -0
- /package/dist/assets/{material-theme-ocean-0YlpVqMF.js → material-theme-ocean-DMLBHhVS.js} +0 -0
- /package/dist/assets/{material-theme-palenight-BuhI7LV9.js → material-theme-palenight-rAwveJbA.js} +0 -0
- /package/dist/assets/{matlab-d4q8V2kc.js → matlab-nAylgdir.js} +0 -0
- /package/dist/assets/{mdx-K6mWiB31.js → mdx-D21b3pUC.js} +0 -0
- /package/dist/assets/{mermaid-CPUZiUu1.js → mermaid-BpHmCKn1.js} +0 -0
- /package/dist/assets/{min-dark-2Rbk1Br6.js → min-dark-B0702Ln3.js} +0 -0
- /package/dist/assets/{min-light-BmT_ha59.js → min-light-9h8I8ujc.js} +0 -0
- /package/dist/assets/{mipsasm-DK7WtL4H.js → mipsasm-CtcdPU2Y.js} +0 -0
- /package/dist/assets/{mojo-C6jO9tbh.js → mojo-Bv8xbxSD.js} +0 -0
- /package/dist/assets/{monokai-n0skDik5.js → monokai-R3M-Pkjy.js} +0 -0
- /package/dist/assets/{moonbit-C-f1WC7g.js → moonbit-MUcZ6VT6.js} +0 -0
- /package/dist/assets/{move-QSx3iSl5.js → move-B0DlmhPE.js} +0 -0
- /package/dist/assets/{narrat-DFAniABg.js → narrat-C1e9cFYb.js} +0 -0
- /package/dist/assets/{nextflow-groovy-B9N2TG62.js → nextflow-groovy-WB_Hv0pj.js} +0 -0
- /package/dist/assets/{night-owl-mCA1q7O0.js → night-owl-BpHVNbG5.js} +0 -0
- /package/dist/assets/{night-owl-light-CVag60SP.js → night-owl-light-B7XHq6BU.js} +0 -0
- /package/dist/assets/{nix-bdwWUuk-.js → nix-Bz43yTHV.js} +0 -0
- /package/dist/assets/{nord-CtXtkaes.js → nord-C3Ef8EYs.js} +0 -0
- /package/dist/assets/{nushell--fLVweC7.js → nushell-BDgFfjsp.js} +0 -0
- /package/dist/assets/{objective-c-DAGpxSED.js → objective-c-CrKuI4kq.js} +0 -0
- /package/dist/assets/{objective-cpp-S9Qw4p5N.js → objective-cpp-Cq2sz32p.js} +0 -0
- /package/dist/assets/{ocaml-CXgsxD0u.js → ocaml-CaddozqL.js} +0 -0
- /package/dist/assets/{odin-BMIOl-Ey.js → odin-3oMQ00A0.js} +0 -0
- /package/dist/assets/{one-dark-pro-D0SOVXc3.js → one-dark-pro-Dtx2KhVV.js} +0 -0
- /package/dist/assets/{one-light-6H2Du-_j.js → one-light-BNUXpRjj.js} +0 -0
- /package/dist/assets/{openscad-nYs158Bh.js → openscad-Bl9bEK7K.js} +0 -0
- /package/dist/assets/{pascal-xdQR9yYI.js → pascal-DAlnwvFf.js} +0 -0
- /package/dist/assets/{pdf-DB2rCsKP.js → pdf-BbxrOchE.js} +0 -0
- /package/dist/assets/{pkl-CKXXcd2b.js → pkl-CUN5bqal.js} +0 -0
- /package/dist/assets/{plastic-CUGHL3mc.js → plastic-BTnTnib5.js} +0 -0
- /package/dist/assets/{plsql-Cbu0u4o0.js → plsql-CSbyze_M.js} +0 -0
- /package/dist/assets/{po-BzXmFbAz.js → po-DNd8SYOs.js} +0 -0
- /package/dist/assets/{poimandres-K0I2PGAn.js → poimandres-Du8CR7IV.js} +0 -0
- /package/dist/assets/{polar-JCQfk1iI.js → polar-BP89cGjR.js} +0 -0
- /package/dist/assets/{postcss-D-Lhrf07.js → postcss-DP5swxmN.js} +0 -0
- /package/dist/assets/{powerquery-B0Xnzpzi.js → powerquery-8FFmlmIB.js} +0 -0
- /package/dist/assets/{powershell-Dhr7o9Mu.js → powershell-Df4bjjrh.js} +0 -0
- /package/dist/assets/{prisma-CP6RFVWH.js → prisma-GVbmmvVi.js} +0 -0
- /package/dist/assets/{prolog--OnDee30.js → prolog-CgVNaQE6.js} +0 -0
- /package/dist/assets/{proto-D5uLba8m.js → proto-DQgw5Bn7.js} +0 -0
- /package/dist/assets/{public-asset-D_6jw-nO.js → public-asset-CdVbP-K-.js} +0 -0
- /package/dist/assets/{puppet-B-NS8S2F.js → puppet-B6qkR0ho.js} +0 -0
- /package/dist/assets/{purescript-YiaGpr2G.js → purescript-D6HPYETy.js} +0 -0
- /package/dist/assets/{python-BLHZUHuM.js → python-BQxVVqSC.js} +0 -0
- /package/dist/assets/{qmldir-BqPbfIfY.js → qmldir-C4uLs1pY.js} +0 -0
- /package/dist/assets/{qss-CNa1aCQe.js → qss-CrbqJ-bS.js} +0 -0
- /package/dist/assets/{query-tags-DAoC-jzg.js → query-tags-yOSQTht4.js} +0 -0
- /package/dist/assets/{r-DA-LaeJg.js → r-BYcMR2CA.js} +0 -0
- /package/dist/assets/{racket-Bbm_5p0C.js → racket-CYlA9b-a.js} +0 -0
- /package/dist/assets/{raku-C97eJ11n.js → raku-DskHTPaV.js} +0 -0
- /package/dist/assets/{red-BcnEthHf.js → red-C6BsNewa.js} +0 -0
- /package/dist/assets/{reg-BE7bjPQ8.js → reg-CVAsZyTh.js} +0 -0
- /package/dist/assets/{regexp-zNGmBvxe.js → regexp-CE46xxOu.js} +0 -0
- /package/dist/assets/{rel-DxkHU6ey.js → rel-C3ws-d8w.js} +0 -0
- /package/dist/assets/{riscv-s2KghewY.js → riscv-zwK-GGe7.js} +0 -0
- /package/dist/assets/{ron-C2k99hFN.js → ron-DKXxeRcR.js} +0 -0
- /package/dist/assets/{rose-pine-DvkjqEA5.js → rose-pine-D16YZ514.js} +0 -0
- /package/dist/assets/{rose-pine-dawn-IDeCX2R_.js → rose-pine-dawn-C6PC9FaW.js} +0 -0
- /package/dist/assets/{rose-pine-moon-AwRS3fIg.js → rose-pine-moon-B-ONpfIN.js} +0 -0
- /package/dist/assets/{rosmsg-DZvmyLbf.js → rosmsg-Cly8Evf4.js} +0 -0
- /package/dist/assets/{rust-BR0kD35m.js → rust-COkR_9xi.js} +0 -0
- /package/dist/assets/{sass-B1iDQwrz.js → sass-DDyX_867.js} +0 -0
- /package/dist/assets/{scala-B_bbzrFM.js → scala-BseDqmtP.js} +0 -0
- /package/dist/assets/{scheme-Bh3SmU2Z.js → scheme-0Ar7fzWG.js} +0 -0
- /package/dist/assets/{sdbl-BjuGg6Hv.js → sdbl-BjheWPT8.js} +0 -0
- /package/dist/assets/{semver-DLbEvyUs.js → semver-DI5hyC-t.js} +0 -0
- /package/dist/assets/{shellscript-Df7hfJNE.js → shellscript-DbCYZXfD.js} +0 -0
- /package/dist/assets/{slack-dark-BMKx-uNu.js → slack-dark-B8yuPDrG.js} +0 -0
- /package/dist/assets/{slack-ochin-DVWF26Tk.js → slack-ochin-DLZ-yxLq.js} +0 -0
- /package/dist/assets/{smalltalk-DOyDlfjw.js → smalltalk-DhsjsTfs.js} +0 -0
- /package/dist/assets/{snazzy-light-CV5I2qfQ.js → snazzy-light-BdZObzxx.js} +0 -0
- /package/dist/assets/{solarized-dark-ROrlu8b7.js → solarized-dark-DnY9BvAi.js} +0 -0
- /package/dist/assets/{solarized-light-DLaQaEqx.js → solarized-light-BfrwmYru.js} +0 -0
- /package/dist/assets/{solidity-Cpy-lQA4.js → solidity-DPjYkHh9.js} +0 -0
- /package/dist/assets/{splunk-amWRSsqJ.js → splunk-aauv22i7.js} +0 -0
- /package/dist/assets/{sql-LDYZUbXj.js → sql-ChQ8ry3n.js} +0 -0
- /package/dist/assets/{ssh-config-DFL3K5A6.js → ssh-config-Dz6ViL0P.js} +0 -0
- /package/dist/assets/{stylus-CpFppqWZ.js → stylus-BOOipACK.js} +0 -0
- /package/dist/assets/{swift-Cm8RIbkm.js → swift-m0EGSEdy.js} +0 -0
- /package/dist/assets/{synthwave-84-B07FyWEU.js → synthwave-84-BgN63B7_.js} +0 -0
- /package/dist/assets/{system-verilog-Efh9Iyxc.js → system-verilog-DA9NXNZH.js} +0 -0
- /package/dist/assets/{systemd-CM8aBYFi.js → systemd-6ndOYGhY.js} +0 -0
- /package/dist/assets/{talonscript-DNBlw3UJ.js → talonscript-B8LuZYir.js} +0 -0
- /package/dist/assets/{tasl-B5CaCj6V.js → tasl-xnHVT9C9.js} +0 -0
- /package/dist/assets/{tcl-LiOm-HhN.js → tcl-BODTsuI7.js} +0 -0
- /package/dist/assets/{terraform-Z3CLHZWW.js → terraform-BKPIDy8E.js} +0 -0
- /package/dist/assets/{tokyo-night-C_9jP15n.js → tokyo-night-DL0vCNuB.js} +0 -0
- /package/dist/assets/{toml-CH-AWylV.js → toml-DFQNE4Bb.js} +0 -0
- /package/dist/assets/{tsv-CbgjNKMk.js → tsv-CiCFnPYM.js} +0 -0
- /package/dist/assets/{tsx-DMQkHAfP.js → tsx-r66DnitA.js} +0 -0
- /package/dist/assets/{turtle-DyuXN5E6.js → turtle-D6TqBP-R.js} +0 -0
- /package/dist/assets/{typescript-DWQix_1Y.js → typescript-DywEkG3h.js} +0 -0
- /package/dist/assets/{typespec-BAtHNJ2P.js → typespec-CGjgqr9W.js} +0 -0
- /package/dist/assets/{typst-Ccl-pSVT.js → typst-Bx-thO8d.js} +0 -0
- /package/dist/assets/{use-is-mobile-BFvLVXwH.js → use-is-mobile-B9vjoiOp.js} +0 -0
- /package/dist/assets/{use-reduced-motion-Blyqtp4V.js → use-reduced-motion-GQ_HVFpK.js} +0 -0
- /package/dist/assets/{v-B-fTy4zo.js → v-4VB7M7V1.js} +0 -0
- /package/dist/assets/{vala-B5pVtMk_.js → vala-DyD7epks.js} +0 -0
- /package/dist/assets/{vb-Bmh_zzxH.js → vb-MkcXsT7p.js} +0 -0
- /package/dist/assets/{verilog-CdTJwARf.js → verilog-CxKKBB7K.js} +0 -0
- /package/dist/assets/{vesper-CLXAFKGT.js → vesper-BWWaFc_5.js} +0 -0
- /package/dist/assets/{vhdl-B4YfSXFK.js → vhdl-FnKcRQFJ.js} +0 -0
- /package/dist/assets/{viml-CCaONKHu.js → viml-CLoIdFzC.js} +0 -0
- /package/dist/assets/{vitesse-black-DRcju0Ze.js → vitesse-black-LsvPTIiF.js} +0 -0
- /package/dist/assets/{vitesse-dark-WdU9udp0.js → vitesse-dark-xzpAWWRe.js} +0 -0
- /package/dist/assets/{vitesse-light-ByFqwcMo.js → vitesse-light-Dw68nIQJ.js} +0 -0
- /package/dist/assets/{vyper-BPJ2UA1J.js → vyper-DMsUwnVX.js} +0 -0
- /package/dist/assets/{wasm-BQxIq9Eb.js → wasm-CGZ0ykRa.js} +0 -0
- /package/dist/assets/{wasm-Du4Oqb3T.js → wasm-ic38CN6z.js} +0 -0
- /package/dist/assets/{wenyan-AvBa7-F9.js → wenyan-COLZAIZW.js} +0 -0
- /package/dist/assets/{wgsl-VJugdx8c.js → wgsl-D-u1_3zX.js} +0 -0
- /package/dist/assets/{wikitext-BPOx0NBh.js → wikitext-l1E17Wn7.js} +0 -0
- /package/dist/assets/{wit-e40cyGQD.js → wit-BW55uw8a.js} +0 -0
- /package/dist/assets/{wolfram-DvIVouaK.js → wolfram-C0owoV7l.js} +0 -0
- /package/dist/assets/{xterm-D62GGRqD.js → xterm-AXHTOo82.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-B4zTZTld.js → xterm-addon-fit-CfpfPbfB.js} +0 -0
- /package/dist/assets/{yaml-c7bUfcEd.js → yaml-DP2H7z8n.js} +0 -0
- /package/dist/assets/{zenscript-CeS3qazQ.js → zenscript-ChRsLAgZ.js} +0 -0
- /package/dist/assets/{zig-DigpDLaV.js → zig-s66PLVk_.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t,s as n}from"./local-settings-lVNyIOJ_.js";import{t as r}from"./capture-error-23NwnaZt.js";import{t as i}from"./react-DJZBPgpf.js";import{d as a,m as o}from"./chunk-5KNZJZUH-BpLAEZ0-.js";import{n as s}from"./QueryClientProvider-DBAeGN3q.js";import{t as c}from"./useQuery-DAtrV0RI.js";import{t as l}from"./useMutation-DTb3lMvF.js";import{t as u}from"./jsx-runtime-XSukodg_.js";import{t as d}from"./button-Cs9tc8OR.js";import{t as f}from"./card-BcKGvsaa.js";import{t as p}from"./confirm-dialog-DavdF-L4.js";import{t as m}from"./notice-BWm2kHlI.js";import{n as h,r as g,t as _}from"./panel-item-BPosLg5Y.js";import{t as v}from"./input-DwAJUlac.js";import{t as y}from"./toast-Cii5pffK.js";import{t as b}from"./external-link-CcV79Arv.js";import{t as x}from"./loader-circle-FEkI0Am4.js";import{t as S}from"./pencil-CESg1M7c.js";import{t as C}from"./x-2OoTSOWJ.js";import{$t as w,Qt as T,Xt as E,Zt as D,en as O,nn as k,rn as A,tn as j}from"./sdk.gen-up8j0_uF.js";import{r as M}from"./api-errors-DhNZwQy5.js";import{r as N}from"./api-DYTu2hC1.js";import{p as P}from"./native-biometric-V5gaOHYQ.js";import{i as F}from"./routes-Dfo11DAg.js";import{n as I}from"./use-is-mobile-BFvLVXwH.js";import{$ as L,F as R,Ft as z,Ji as B,L as V,Mi as H,Mt as U,Nt as W,P as ee,Pt as te,R as G,et as ne,fo as K,ft as re,oo as q,po as J,qa as ie,ta as Y,zi as ae}from"./index-DmTi6dG-.js";import{t as oe}from"./use-oauth-complete-deep-link-listener-ZuAGEydM.js";var X=e(i(),1);async function se(e){let{data:t,error:n}=await A({path:{assistant_id:e},throwOnError:!1});if(n||!t)throw Error(`Failed to fetch OAuth providers`);return t.providers}async function ce(e,t){let{data:n,error:r}=await k({path:{assistant_id:e,providerKey:t},throwOnError:!1});if(r||!n)throw Error(`Failed to fetch OAuth provider detail`);return{oauth_callback_url:n.oauth_callback_url??null}}function Z(e,t){if(e&&typeof e==`object`){let t=e;if(t.error?.message)return t.error.message;if(t.detail)return t.detail;if(t.message)return t.message}return t}async function le(e,t){let{data:n,error:r}=await w({path:{assistant_id:e},query:{provider_key:t},throwOnError:!1});if(r||!n)throw Error(Z(r,`Failed to load OAuth apps`));return n.apps}async function ue(e,t){let{data:n,error:r}=await O({path:{assistant_id:e},body:t,throwOnError:!1});if(r||!n)throw Error(Z(r,`Failed to create OAuth app`));return n.app}async function de(e,t){let{error:n}=await T({path:{assistant_id:e,id:t},throwOnError:!1});if(n)throw Error(Z(n,`Failed to delete OAuth app`))}async function fe(e,t){let{data:n,error:r}=await D({path:{assistant_id:e,appId:t},throwOnError:!1});if(r||!n)throw Error(Z(r,`Failed to load OAuth app connections`));return n.connections}async function pe(e,t){let{error:n}=await j({path:{assistant_id:e,id:t},throwOnError:!1});if(n)throw Error(Z(n,`Failed to disconnect OAuth account`))}async function me(e,t,n){let{data:r,error:i}=await E({path:{assistant_id:e,appId:t},body:{callback_transport:`gateway`,scopes:n??[]},throwOnError:!1});if(i||!r)throw Error(Z(i,`Failed to start OAuth flow`));if(!(`auth_url`in r))throw Error(`OAuth flow did not return an authorization URL`);return{authUrl:r.auth_url,state:r.state}}function he(e){return e.length>16?`${e.slice(0,12)}…${e.slice(-4)}`:e.length>8?`${e.slice(0,8)}…`:e}function ge(e){try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}var Q=u();function _e(e){return new Promise(t=>setTimeout(t,e))}function ve(e){return JSON.stringify({status:e.status,connected:e.connected,account_label:e.account_label,scopes_granted:[...e.scopes_granted].sort(),expires_at:e.expires_at})}function ye(e,t){return new Map((e??[]).filter(e=>e.provider===t).map(e=>[e.id,ve(e)]))}function be(e,t,n){return e.some(e=>e.provider===t&&e.connected&&n.get(e.id)!==ve(e))}function xe({assistantId:e,providerKey:t,displayName:n,description:r,logoUrl:i,platformGate:a,onClose:o}){let u=s(),f=P(),h=a===`full`,[g,_]=(0,X.useState)(a===`gated`?`your-own`:`managed`),[v,b]=(0,X.useState)(null),[x,S]=(0,X.useState)(null),w=(0,X.useRef)(null),T=(0,X.useRef)(null),E=(0,X.useRef)(null),D=(0,X.useRef)(null),[O,k]=(0,X.useState)(!1),A=(0,X.useCallback)(()=>{T.current=null,k(!1)},[]),j=(0,X.useCallback)(()=>{w.current&&!w.current.closed&&w.current.close(),w.current=null,E.current&&=(clearInterval(E.current),null),D.current&&=(clearTimeout(D.current),null)},[]),N=W({path:{assistant_id:e}}),I=(0,X.useCallback)(e=>{if(e.type!==`vellum:oauth-complete`||!T.current||e.requestId!==T.current.requestId)return;let{oauthStatus:t,oauthCode:r}=e;if(j(),A(),t===`connected`)y.success(`${n} account connected.`),u.invalidateQueries({queryKey:N});else{let e=r?`Error: ${r}`:`Authorization failed`;y.error(`${n} ${e}`)}},[A,j,N,n,u]),B=(0,X.useCallback)(async n=>{if(!h)return!1;for(let r=0;r<8;r+=1){r>0&&await _e(750);try{if(u.invalidateQueries({queryKey:N}),be(await u.fetchQuery({...U({path:{assistant_id:e}}),staleTime:0}),t,n))return!0}catch{}}return!1},[e,N,h,t,u]);(0,X.useEffect)(()=>{let e=e=>{e.key===`Escape`&&o()};document.addEventListener(`keydown`,e);let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=t}},[o]),(0,X.useEffect)(()=>{let e=e=>{let t=T.current;if(!t)return;let n=ee(e,window.location.origin,t.requestId);n&&I(n)},t=e=>{let t=T.current;if(!t)return;let n=R(e,t.requestId);n&&(I(n),window.localStorage.removeItem(V(t.requestId)))};return window.addEventListener(`message`,e),window.addEventListener(`storage`,t),()=>{window.removeEventListener(`message`,e),window.removeEventListener(`storage`,t)}},[I]),oe((0,X.useCallback)(e=>{let t=T.current;t&&e.requestId===t.requestId&&I({type:`vellum:oauth-complete`,requestId:e.requestId,oauthStatus:e.oauthStatus,oauthProvider:e.oauthProvider,oauthCode:e.oauthCode})},[I])),(0,X.useEffect)(()=>ne(()=>{let e=T.current;e&&(async()=>{let t=await B(e.baselineConnectionSignatures);T.current&&(A(),t&&y.success(`${n} account connected.`))})()}),[A,B,n]),(0,X.useEffect)(()=>()=>{E.current&&clearInterval(E.current),D.current&&clearTimeout(D.current),w.current&&!w.current.closed&&w.current.close()},[]);let{data:H,isLoading:K}=c({...U({path:{assistant_id:e}}),enabled:h}),re=(H??[]).filter(e=>e.provider===t&&e.connected),q=l({...z()}),J=l({...te(),onSuccess(e,t){y.success(`${n} account disconnected.`);let r=t.path.connection_id;u.setQueryData(N,e=>e?.filter(e=>e.id!==r)),u.invalidateQueries({queryKey:N}),b(null)},onError(e){let t=M(e,void 0,`Failed to disconnect ${n} account.`);y.error(t),b(null)}}),ie=(0,X.useCallback)(()=>{if(!h)return;let r=crypto.randomUUID();if(f){k(!0),T.current={requestId:r,provider:t,baselineConnectionSignatures:ye(u.getQueryData(N)??H,t)},q.mutate({path:{assistant_id:e,provider:t},body:{requested_scopes:[],redirect_after_connect:`${F.account.oauth.popupComplete}?requestId=${r}&native=1`}},{onSuccess(e){L(e.connect_url)},onError(e){A();let t=M(e,void 0,`Failed to start ${n} authorization.`);y.error(t)}});return}let i=window.open(``,`_blank`,`width=500,height=600`);if(i===null){y.error(`Popup blocked. Please enable popups and try again.`);return}w.current=i,k(!0),T.current={requestId:r,provider:t,baselineConnectionSignatures:ye(u.getQueryData(N)??H,t)},E.current=setInterval(()=>{w.current&&w.current.closed&&T.current&&!D.current&&(D.current=setTimeout(async()=>{D.current=null;let e=T.current;if(!e)return;let t=window.localStorage.getItem(V(e.requestId));if(t)try{I(JSON.parse(t)),window.localStorage.removeItem(V(e.requestId));return}catch{}let r=await B(e.baselineConnectionSignatures);if(T.current){if(r){j(),A(),y.success(`${n} account connected.`);return}j(),A(),y.error(`${n} connection failed: authorization popup closed.`)}},1e3))},100),q.mutate({path:{assistant_id:e,provider:t},body:{requested_scopes:[],redirect_after_connect:`${F.account.oauth.popupComplete}?requestId=${r}`}},{onSuccess(e){w.current&&!w.current.closed?w.current.location.href=e.connect_url:T.current&&(j(),A(),y.error(`${n} connection failed: popup closed.`))},onError(e){j(),A();let t=M(e,void 0,`Failed to start ${n} authorization.`);y.error(t)}})},[e,t,n,H,N,u,A,j,I,B,q,f,h]),Y=e=>{S(e)},ae=()=>{let t=x;S(null),t&&(b(t.id),J.mutate({path:{assistant_id:e,connection_id:t.id}}))},se=r?`Configure ${n} OAuth for ${r}`:`Configure ${n} OAuth`;return(0,Q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,children:[(0,Q.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`integration-modal-title`,className:`flex w-full max-w-[520px] flex-col overflow-hidden rounded-xl bg-white shadow-xl dark:bg-[var(--surface-lift)]`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-[var(--border-base)] px-5 py-4 dark:border-[var(--border-base)]`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(G,{providerKey:t,displayName:n,logoUrl:i,size:32}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`h2`,{id:`integration-modal-title`,className:`text-title-small text-[var(--content-default)]`,children:[n,` OAuth`]}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:se})]})]}),(0,Q.jsx)(d,{variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(C,{}),"aria-label":`Close`,onClick:o})]}),(0,Q.jsxs)(`div`,{className:`space-y-4 px-5 py-4`,children:[a!==`gated`&&(0,Q.jsxs)(`div`,{role:`tablist`,"aria-label":`OAuth mode`,className:`flex w-full rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] p-0.5 dark:border-[var(--border-base)] dark:bg-[var(--surface-base)]/40`,children:[(0,Q.jsx)(Se,{active:g===`managed`,onClick:()=>_(`managed`),children:`Managed`}),(0,Q.jsx)(Se,{active:g===`your-own`,onClick:()=>_(`your-own`),children:`Your Own`})]}),g===`managed`&&a!==`gated`?a===`disabled`?(0,Q.jsx)(m,{tone:`info`,children:`Log in to the Vellum platform to manage OAuth connections.`}):(0,Q.jsx)(Ce,{displayName:n,providerKey:t,logoUrl:i,connections:re,connectionsLoading:K,startPending:q.isPending,oauthInProgress:O,disconnectingId:J.isPending?v:null,onConnect:ie,onDisconnect:Y}):(0,Q.jsx)(we,{assistantId:e,providerKey:t,displayName:n,logoUrl:i})]}),(0,Q.jsx)(`div`,{className:`flex justify-end border-t border-[var(--border-base)] px-5 py-3 dark:border-[var(--border-base)]`,children:(0,Q.jsx)(d,{variant:`outlined`,size:`compact`,onClick:o,children:`Confirm`})})]}),(0,Q.jsx)(p,{open:x!==null,title:`Disconnect ${n}?`,message:x?`Disconnect ${x.account_label??`${n} Account`}? You can reconnect later.`:``,confirmLabel:`Disconnect`,destructive:!0,onConfirm:ae,onCancel:()=>S(null)})]})}function Se({active:e,onClick:t,children:n}){return(0,Q.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:t,className:`flex-1 cursor-pointer rounded-[5px] px-3 py-1.5 text-body-medium-default transition-colors ${e?`bg-white text-[var(--content-default)] shadow-sm dark:bg-[var(--surface-lift)] dark:text-[var(--content-default)]`:`text-[var(--content-secondary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`}`,children:n})}function Ce({displayName:e,providerKey:t,logoUrl:n,connections:r,connectionsLoading:i,startPending:a,oauthInProgress:o,disconnectingId:s,onConnect:c,onDisconnect:l}){return i?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,Q.jsx)(x,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):r.length===0?a||o?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,Q.jsx)(G,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(x,{className:`h-3.5 w-3.5 animate-spin`}),`Waiting for authorization...`]})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,Q.jsx)(G,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`Connect Account to continue`}),(0,Q.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,Q.jsx)(Y,{}),onClick:c,disabled:a||o,children:`Connect Account`})]}):(0,Q.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)]`,children:[(0,Q.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(r=>{let i=s===r.id;return(0,Q.jsxs)(`li`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,Q.jsx)(G,{providerKey:t,displayName:e,logoUrl:n,size:20}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:r.account_label??`${e} Account`}),(0,Q.jsx)(d,{variant:`dangerOutline`,size:`compact`,iconOnly:i?(0,Q.jsx)(x,{className:`animate-spin`}):(0,Q.jsx)(H,{}),onClick:()=>l(r),disabled:i,"aria-label":`Disconnect ${r.account_label??`${e} account`}`})]},r.id)})}),(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-base)] px-4 py-3 dark:border-[var(--border-base)]`,children:a||o?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(x,{className:`h-3.5 w-3.5 animate-spin`}),`Waiting for authorization...`]}):(0,Q.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,Q.jsx)(b,{}),onClick:c,disabled:a||o,children:`Connect account`})})]})}function we({assistantId:e,providerKey:t,displayName:n,logoUrl:r}){let[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)({}),[c,l]=(0,X.useState)(!0),[u,m]=(0,X.useState)(!1),[h,g]=(0,X.useState)(``),[_,S]=(0,X.useState)(``),[C,w]=(0,X.useState)(!1),[T,E]=(0,X.useState)(null),[D,O]=(0,X.useState)(!1),[k,A]=(0,X.useState)(null),[j,M]=(0,X.useState)(null),[N,P]=(0,X.useState)(null),[F,I]=(0,X.useState)(null),[L,R]=(0,X.useState)(null),z=(0,X.useCallback)(async t=>{try{let n=await fe(e,t);s(e=>({...e,[t]:n}))}catch(e){let t=e instanceof Error?e.message:`Failed to load connections`;y.error(t)}},[e]),B=(0,X.useCallback)(async()=>{l(!0);try{let n=await le(e,t);a(n),await Promise.all(n.map(e=>z(e.id)))}catch(e){let t=e instanceof Error?e.message:`Failed to load OAuth apps`;y.error(t)}finally{l(!1)}},[e,t,z]);(0,X.useEffect)(()=>{B()},[B]),(0,X.useEffect)(()=>{let n=!0;return ce(e,t).then(e=>{n&&E(e.oauth_callback_url)},()=>{}),()=>{n=!1}},[e,t]);let V=i.length===0||u,U=async()=>{if(!(!h.trim()||!_.trim())){w(!0);try{let r=await ue(e,{provider_key:t,client_id:h.trim(),client_secret:_.trim()});a(e=>[...e,r]),s(e=>({...e,[r.id]:[]})),g(``),S(``),m(!1),y.success(`${n} OAuth app added.`)}catch(e){let t=e instanceof Error?e.message:`Failed to create OAuth app`;y.error(t)}finally{w(!1)}}},W=e=>{I(e)},ee=async()=>{let t=F;if(I(null),t){A(t.id);try{await de(e,t.id),a(e=>e.filter(e=>e.id!==t.id)),s(e=>{let n={...e};return delete n[t.id],n}),y.success(`OAuth app deleted.`)}catch(e){let t=e instanceof Error?e.message:`Failed to delete OAuth app`;y.error(t)}finally{A(null)}}},te=async t=>{M(t.id);try{let{authUrl:n}=await me(e,t.id);window.location.href=n}catch(e){let t=e instanceof Error?e.message:`Failed to start OAuth flow`;y.error(t),M(null)}},ne=(e,t)=>{R({appId:e,connection:t})},K=async()=>{let t=L;if(R(null),!t)return;let{appId:r,connection:i}=t;P(i.id);try{await pe(e,i.id),s(e=>({...e,[r]:(e[r]??[]).filter(e=>e.id!==i.id)})),y.success(`${n} account disconnected.`)}catch(e){let t=e instanceof Error?e.message:`Failed to disconnect account`;y.error(t)}finally{P(null)}};return c?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,Q.jsx)(x,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[V?(0,Q.jsx)(f.Root,{children:(0,Q.jsxs)(f.Body,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:i.length===0?`Add your own ${n} OAuth app`:`Add another ${n} OAuth app`}),(0,Q.jsx)(`p`,{className:`text-body-small-default leading-relaxed text-[var(--content-tertiary)]`,children:`Credentials are stored encrypted on the assistant and are never sent to Vellum.`})]}),T?(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Redirect URL`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(v,{type:`text`,value:T,readOnly:!0,fullWidth:!0}),(0,Q.jsx)(d,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{navigator.clipboard.writeText(T).then(()=>{O(!0),y.success(`Copied to clipboard!`),setTimeout(()=>O(!1),2e3)})},"aria-label":D?`Copied`:`Copy redirect URL`,iconOnly:D?(0,Q.jsx)(J,{"aria-hidden":!0}):(0,Q.jsx)(ie,{"aria-hidden":!0})})]}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Add this URL to your OAuth app's redirect settings.`})]}):null,(0,Q.jsx)(v,{label:`Client ID`,type:`text`,value:h,onChange:e=>g(e.target.value),placeholder:`Enter your client ID`,fullWidth:!0}),(0,Q.jsx)(v,{label:`Client Secret`,type:`password`,value:_,onChange:e=>S(e.target.value),placeholder:`Enter your client secret`,fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-1`,children:[i.length>0?(0,Q.jsx)(d,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{m(!1),g(``),S(``)},disabled:C,children:`Cancel`}):null,(0,Q.jsx)(d,{type:`button`,size:`compact`,onClick:U,disabled:C||!h.trim()||!_.trim(),leftIcon:C?(0,Q.jsx)(x,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(Y,{"aria-hidden":!0}),children:`Add App`})]})]})}):null,i.map(e=>{let i=o[e.id]??[],a=k===e.id,s=j===e.id;return(0,Q.jsx)(f.Root,{children:(0,Q.jsxs)(f.Body,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,Q.jsx)(`p`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:he(e.client_id)}),(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Added `,ge(e.created_at)]})]}),(0,Q.jsx)(d,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>W(e),disabled:a,"aria-label":`Delete OAuth app ${he(e.client_id)}`,iconOnly:a?(0,Q.jsx)(x,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(H,{"aria-hidden":!0})})]}),i.length>0?(0,Q.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)] overflow-hidden rounded-md border border-[var(--border-base)] dark:divide-[var(--border-base)] dark:border-[var(--border-base)]`,children:i.map(i=>{let a=N===i.id;return(0,Q.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2`,children:[(0,Q.jsx)(G,{providerKey:t,displayName:n,logoUrl:r,size:18}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-lighter text-[var(--content-default)]`,children:i.account_info??`${n} Account`}),(0,Q.jsx)(d,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>ne(e.id,i),disabled:a,"aria-label":`Disconnect ${i.account_info??`${n} account`}`,iconOnly:a?(0,Q.jsx)(x,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(H,{"aria-hidden":!0})})]},i.id)})}):null,(0,Q.jsx)(d,{type:`button`,size:`compact`,onClick:()=>te(e),disabled:s,className:`w-full`,leftIcon:s?(0,Q.jsx)(x,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(b,{"aria-hidden":!0}),children:s?`Waiting for authorization...`:`Connect account`})]})},e.id)}),i.length>0&&!u?(0,Q.jsx)(d,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>m(!0),className:`w-full border-dashed`,leftIcon:(0,Q.jsx)(Y,{"aria-hidden":!0}),children:`Add Another App`}):null,(0,Q.jsx)(p,{open:F!==null,title:`Delete OAuth app`,message:F?`Delete OAuth app '${he(F.client_id)}'? This will disconnect all linked accounts.`:``,confirmLabel:`Delete`,destructive:!0,onConfirm:()=>{ee()},onCancel:()=>I(null)}),(0,Q.jsx)(p,{open:L!==null,title:`Disconnect ${n}?`,message:L?`Disconnect ${L.connection.account_info??`${n} Account`}? You can reconnect later.`:``,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{K()},onCancel:()=>R(null)})]})}function Te({assistantId:e,providerKey:t,displayName:n,description:r,logoUrl:i,connection:a,platformGate:o,onConfigure:c}){let u=s(),m=!!a?.connected,[h,g]=(0,X.useState)(!1),[_,v]=(0,X.useState)(!1),b=I(),x=W({path:{assistant_id:e}}),S=l({...te(),onSuccess(e,t){y.success(`${n} account disconnected.`);let r=t.path.connection_id;u.setQueryData(x,e=>e?.filter(e=>e.id!==r)),u.invalidateQueries({queryKey:x})},onError(e){let t=M(e,void 0,`Failed to disconnect ${n} account.`);y.error(t)}}),C=()=>{a?.id&&v(!0)};return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(f.Root,{children:(0,Q.jsxs)(f.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,Q.jsx)(G,{providerKey:t,displayName:n,logoUrl:i,size:32}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:n}),r&&(0,Q.jsx)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:r})]}),m&&o===`full`?(0,Q.jsx)(`div`,{className:`shrink-0`,children:(0,Q.jsx)(Ee,{displayName:n,open:h,onOpenChange:g,onEditConnections:()=>{g(!1),c()},onDisable:()=>{g(!1),C()},disablePending:S.isPending,isMobile:b})}):(0,Q.jsx)(d,{variant:`primary`,onClick:c,className:`shrink-0`,children:`Enable`})]})}),(0,Q.jsx)(p,{open:_,title:`Disconnect ${n}?`,message:`Disconnect your ${n} account? You can reconnect it later.`,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{v(!1),a?.id&&S.mutate({path:{assistant_id:e,connection_id:a.id}})},onCancel:()=>v(!1)})]})}function Ee({displayName:e,open:t,onOpenChange:n,onEditConnections:r,onDisable:i,disablePending:a,isMobile:o}){return o?(0,Q.jsxs)(h.Root,{open:t,onOpenChange:n,children:[(0,Q.jsx)(h.Trigger,{asChild:!0,children:(0,Q.jsx)(d,{variant:`outlined`,rightIcon:(0,Q.jsx)(K,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:`Configure`})}),(0,Q.jsxs)(h.Content,{children:[(0,Q.jsx)(h.Header,{children:(0,Q.jsx)(h.Title,{children:e})}),(0,Q.jsxs)(h.Body,{children:[(0,Q.jsx)(_,{icon:S,label:`Edit connections`,onSelect:r}),(0,Q.jsx)(_,{icon:a?x:q,label:`Disable`,onSelect:()=>{a||i()}})]})]})]}):(0,Q.jsxs)(g.Root,{open:t,onOpenChange:n,children:[(0,Q.jsx)(g.Trigger,{asChild:!0,children:(0,Q.jsx)(d,{variant:`outlined`,rightIcon:(0,Q.jsx)(K,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:`Configure`})}),(0,Q.jsxs)(g.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,Q.jsx)(d,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:r,className:`w-full justify-start rounded-none`,leftIcon:(0,Q.jsx)(S,{"aria-hidden":!0}),children:`Edit connections`}),(0,Q.jsx)(d,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:i,disabled:a,className:`w-full justify-start rounded-none`,leftIcon:a?(0,Q.jsx)(x,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(q,{"aria-hidden":!0}),children:`Disable`})]})]})}var De=`vellum:integrations:bannerDismissed`,Oe=[{value:`all`,label:`All`},{value:`enabled`,label:`Enabled`},{value:`not-enabled`,label:`Not Enabled`}];function $(e,t){return e?.find(e=>e.provider===t)??null}function ke(){let[e]=o(),i=a(),s=re(),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(!0),[p,h]=(0,X.useState)(``),[_,b]=(0,X.useState)(`all`),[S,C]=(0,X.useState)(!1),[w,T]=(0,X.useState)(!0),[E,D]=(0,X.useState)(null);(0,X.useEffect)(()=>{T(t(De,`false`)===`true`)},[]);let O=()=>{T(!0),n(De,`true`)};(0,X.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await N();e&&t.ok&&u(t.data)}catch(e){r(e,{context:`integrations.getAssistant`})}finally{e&&f(!1)}})(),()=>{e=!1}},[]);let{data:k,isLoading:A,isError:j}=c({queryKey:[`oauth-providers`,l?.id],queryFn:()=>se(l.id),enabled:!!l}),{data:M,isLoading:P}=c({...U({path:{assistant_id:l?.id??``}}),enabled:!!l&&s===`full`});(0,X.useEffect)(()=>{let t=e.get(`oauth_status`);if(!t)return;let n=e.get(`oauth_provider`),r=n?n.charAt(0).toUpperCase()+n.slice(1):null;if(t===`connected`)y.success(r?`${r} account connected successfully.`:`Account connected successfully.`);else if(t===`error`){let t=e.get(`oauth_code`)??`unknown`;y.error({denied:`Authorization was denied. Please try again.`,state_invalid:`Authorization state was invalid. Please try again.`,state_expired:`Authorization expired. Please try again.`,exchange_failed:`Failed to complete authorization. Please try again.`,identity_failed:`Failed to verify account identity. Please try again.`}[t]??(r?`Failed to connect ${r}.`:`Failed to connect. Please try again.`))}i(F.settings.integrations,{replace:!0})},[e,i]);let I=(0,X.useMemo)(()=>k?.filter(e=>e.supports_managed_mode)??[],[k]),L=(0,X.useMemo)(()=>{let e=p.trim().toLowerCase(),t=I.filter(t=>{if(!e)return!0;let n=(t.display_name??t.provider_key).toLowerCase(),r=(t.description??``).toLowerCase();return n.includes(e)||r.includes(e)});return _!==`all`&&(t=t.filter(e=>{let t=!!$(M,e.provider_key)?.connected;return _===`enabled`?t:!t})),[...t].sort((e,t)=>{let n=!!$(M,e.provider_key)?.connected;if(n!==!!$(M,t.provider_key)?.connected)return n?-1:1;let r=(e.display_name??e.provider_key).toLowerCase(),i=(t.display_name??t.provider_key).toLowerCase();return r.localeCompare(i)})},[I,M,p,_]),R=d||A||P,z=Oe.find(e=>e.value===_)?.label??`All`,V=(()=>{if(p.trim())return`No integrations matched`;switch(_){case`enabled`:return`No Enabled Integrations`;case`not-enabled`:return`All Integrations Are Enabled`;default:return`No Integrations Available`}})(),H=(()=>{if(p.trim())return`No integrations matched "${p.trim()}"`;switch(_){case`enabled`:return`Connect an integration to get started.`;case`not-enabled`:return`All available integrations have been connected.`;default:return`Check your connection and try again.`}})(),W=(0,X.useMemo)(()=>E?I.find(e=>e.provider_key===E)??null:null,[I,E]);return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[!w&&(0,Q.jsxs)(m,{tone:`info`,icon:(0,Q.jsx)(ae,{className:`h-3.5 w-3.5`}),onDismiss:O,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default`,children:`Tip:`}),` You can enable integrations by mentioning them in chat.`]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(v,{type:`text`,value:p,onChange:e=>h(e.target.value),placeholder:`Search Integrations`,"aria-label":`Search integrations`,leftIcon:(0,Q.jsx)(B,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,wrapperClassName:`flex-1`}),(0,Q.jsxs)(g.Root,{open:S,onOpenChange:C,children:[(0,Q.jsx)(g.Trigger,{asChild:!0,children:(0,Q.jsxs)(`button`,{type:`button`,"aria-haspopup":`listbox`,"aria-expanded":S,className:`flex w-36 cursor-pointer items-center justify-between gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-lighter text-[var(--content-default)] transition-colors hover:bg-[var(--ghost-hover)]`,children:[(0,Q.jsx)(`span`,{children:z}),(0,Q.jsx)(K,{className:`h-3.5 w-3.5`})]})}),(0,Q.jsx)(g.Content,{align:`end`,sideOffset:4,className:`w-36 overflow-hidden p-0`,children:(0,Q.jsx)(`div`,{role:`listbox`,children:Oe.map(e=>{let t=e.value===_;return(0,Q.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":t,onClick:()=>{b(e.value),C(!1)},className:`flex w-full cursor-pointer items-center px-3 py-1.5 text-left hover:bg-[var(--ghost-hover)] ${t?`text-body-medium-default text-[var(--content-default)]`:`text-body-medium-lighter text-[var(--content-default)]`}`,children:e.label},e.value)})})})]})]}),(0,Q.jsx)(`div`,{children:R?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(x,{className:`h-4 w-4 animate-spin`}),(0,Q.jsx)(`span`,{children:`Loading...`})]}):j?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Failed to load integrations. Please try again.`}):l?L.length===0?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-2 rounded-lg border border-dashed border-[var(--border-element)] px-4 py-12 text-center`,children:[(0,Q.jsx)(B,{className:`h-6 w-6 text-[var(--content-disabled)]`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:V}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:H})]}):(0,Q.jsx)(`div`,{className:`space-y-2`,children:L.map(e=>(0,Q.jsx)(Te,{assistantId:l.id,providerKey:e.provider_key,displayName:e.display_name??e.provider_key,description:e.description,logoUrl:e.logo_url,connection:$(M,e.provider_key),platformGate:s,onConfigure:()=>D(e.provider_key)},e.provider_key))}):(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to connect integrations.`})}),W&&l&&(0,Q.jsx)(xe,{assistantId:l.id,providerKey:W.provider_key,displayName:W.display_name??W.provider_key,description:W.description,logoUrl:W.logo_url,platformGate:s,onClose:()=>D(null)})]})}function Ae(){return(0,Q.jsx)(`div`,{className:`space-y-6`,children:(0,Q.jsx)(X.Suspense,{children:(0,Q.jsx)(ke,{})})})}export{Ae as IntegrationsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n}from"./chunk-5KNZJZUH-BpLAEZ0-.js";import{n as r}from"./QueryClientProvider-DBAeGN3q.js";import{t as i}from"./useQuery-DAtrV0RI.js";import{t as a}from"./jsx-runtime-XSukodg_.js";import{t as o}from"./button-Cs9tc8OR.js";import{t as s}from"./menu-0h93UDZw.js";import"./src-Bah0_lDG.js";import{t as c}from"./confirm-dialog-DavdF-L4.js";import{n as l,t as u}from"./panel-item-BPosLg5Y.js";import{t as d}from"./input-DwAJUlac.js";import{t as f}from"./toast-Cii5pffK.js";import{t as p}from"./arrow-up-Cev-d0qQ.js";import{t as m}from"./globe-B6unPYdp.js";import{s as h,t as g}from"./sdk.gen-up8j0_uF.js";import{f as _,n as v,t as y}from"./react-query.gen-CfXF72qo.js";import{i as b}from"./routes-Dfo11DAg.js";import{t as x}from"./assistant-feature-flag-store-XFfKSl8X.js";import{n as S}from"./use-is-mobile-BFvLVXwH.js";import{n as C,t as w}from"./app-html-cache-B0vrz1YW.js";import{t as T}from"./misc-BwTS2Omn.js";import{Ia as E,Ji as D,Mi as O,Va as k,aa as A,at as j,ia as M,jn as N,ki as P,ot as F,wa as I,z as L}from"./index-DmTi6dG-.js";import{t as R}from"./deploy-dialogs-Bnsia9oU.js";import{t as z}from"./use-active-assistant-id-kjFL4dWB.js";import{t as B}from"./page-shell-C4yGVVNa.js";import{t as V}from"./format-date-C_j5UjES.js";var H=e(t(),1),U=a();function W({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,U.jsx)(c,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function G(e){return e===1?`1 word`:`${e} words`}function K({document:e,onOpen:t}){return(0,U.jsxs)(`div`,{className:`group relative flex flex-col gap-2`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:T(`relative flex w-full cursor-pointer flex-col items-center justify-center gap-2 overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-base)]`,`aspect-[16/10]`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:[(0,U.jsx)(E,{size:34,className:`text-[var(--content-tertiary)]`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:G(e.wordCount)})]}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,U.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.title}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:V(new Date(e.updatedAt))})]})]})}function q({fileInputRef:e,isImporting:t,onImportBundle:n,onNewConversation:r}){return(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4 py-24`,children:[(0,U.jsx)(`input`,{ref:e,type:`file`,accept:`.vellum`,className:`hidden`,onChange:n}),(0,U.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,U.jsx)(I,{size:32,className:`text-[var(--content-tertiary)]`})}),(0,U.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Your library is empty`}),(0,U.jsx)(`p`,{className:`max-w-md text-center text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:`Ask your assistant to build something, or import a shared app`}),(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[r?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(o,{variant:`primary`,size:`regular`,onClick:r,children:`New Conversation`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:`or`})]}):null,(0,U.jsxs)(o,{variant:`outlined`,size:`regular`,onClick:()=>e.current?.click(),disabled:t,children:[t?(0,U.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,U.jsx)(P,{size:14}),(0,U.jsx)(`span`,{className:`ml-1.5`,children:`Import .vellum File`})]})]})]})}function J({app:e,assistantId:t,isPinned:n,onOpen:r,onPin:i,onDelete:a,onDeploy:o,justImported:s,onAnimationEnd:c}){let[l,u]=(0,H.useState)(!1),d=(0,H.useCallback)(()=>C(t,e.id),[t,e.id]),p=(0,H.useCallback)(async()=>{if(!l){u(!0);try{await F(t,e.id,e.name),f.success(`App exported`,{description:`${e.name}.vellum`})}catch(e){f.error(`Failed to share app`,{description:e instanceof Error?e.message:void 0})}finally{u(!1)}}},[t,e.id,e.name,l]),[m,h]=(0,H.useState)(!1),g=S();return(0,U.jsxs)(`div`,{className:T(`group relative flex flex-col gap-2`,s&&`animate-[card-entrance_400ms_ease-out]`),onAnimationEnd:s?c:void 0,children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),className:T(`relative w-full cursor-pointer overflow-hidden rounded-xl`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:(0,U.jsx)(L,{name:e.name,icon:e.icon,loadHtml:d})}),(0,U.jsx)(`div`,{className:T(`absolute right-2 top-2 z-20 transition-opacity`,`max-md:opacity-100`,`md:group-hover:opacity-100 md:group-focus-within:opacity-100`,m?`opacity-100`:`md:opacity-0`),children:(0,U.jsx)(Y,{appName:e.name,isPinned:n,open:m,onOpenChange:h,onPin:()=>i(e),onDelete:a?()=>a(e):void 0,onShare:p,onDeploy:o,isMobile:g})}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>r(e.id),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,U.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.name}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:V(new Date(e.createdAt))})]})]})}function Y({appName:e,isPinned:t,open:n,onOpenChange:r,onPin:i,onDelete:a,onShare:c,onDeploy:d,isMobile:f}){return f?(0,U.jsxs)(l.Root,{open:n,onOpenChange:r,children:[(0,U.jsx)(l.Trigger,{asChild:!0,children:(0,U.jsx)(o,{variant:`primary`,size:`compact`,iconOnly:(0,U.jsx)(k,{}),"aria-label":`App actions`,onClick:e=>e.stopPropagation()})}),(0,U.jsxs)(l.Content,{children:[(0,U.jsx)(l.Header,{className:`sr-only`,children:(0,U.jsx)(l.Title,{children:e})}),(0,U.jsxs)(l.Body,{className:`pt-0`,children:[(0,U.jsx)(u,{icon:t?A:M,label:t?`Unpin`:`Pin`,onSelect:()=>{r(!1),i()}}),c?(0,U.jsx)(u,{icon:p,label:(0,U.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,U.jsx)(`span`,{children:`Share`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{r(!1),c()}}):null,d?(0,U.jsx)(u,{icon:m,label:(0,U.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,U.jsx)(`span`,{children:`Deploy to Vercel`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{r(!1),d()}}):null,a?(0,U.jsx)(u,{icon:O,label:`Delete`,onSelect:()=>{r(!1),a()}}):null]})]})]}):(0,U.jsxs)(s.Root,{open:n,onOpenChange:r,children:[(0,U.jsx)(s.Trigger,{asChild:!0,children:(0,U.jsx)(o,{variant:`primary`,size:`compact`,iconOnly:(0,U.jsx)(k,{}),"aria-label":`App actions`,onClick:e=>e.stopPropagation()})}),(0,U.jsxs)(s.Content,{align:`end`,sideOffset:4,children:[(0,U.jsx)(s.Item,{leftIcon:t?(0,U.jsx)(A,{size:14}):(0,U.jsx)(M,{size:14}),onSelect:()=>i(),className:`whitespace-nowrap`,children:t?`Unpin`:`Pin`}),c?(0,U.jsx)(s.Item,{leftIcon:(0,U.jsx)(p,{size:14}),onSelect:()=>c(),className:`whitespace-nowrap`,children:`Share`}):null,d?(0,U.jsx)(s.Item,{leftIcon:(0,U.jsx)(m,{size:14}),onSelect:()=>d(),className:`whitespace-nowrap`,children:`Deploy to Vercel`}):null,a?(0,U.jsx)(s.Item,{leftIcon:(0,U.jsx)(O,{size:14,className:`text-red-600`}),onSelect:()=>a(),className:`whitespace-nowrap text-red-600 data-[highlighted]:text-red-700`,children:`Delete`}):null]})]})}function X({title:e,apps:t,assistantId:n,pinnedAppIds:r,lastImportedAppId:i,onOpen:a,onPin:o,onDelete:s,onDeploy:c,onAnimationEnd:l}){return t.length===0?null:(0,U.jsxs)(`section`,{children:[(0,U.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:e}),(0,U.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:t.map(e=>(0,U.jsx)(J,{app:e,assistantId:n,isPinned:r.has(e.id),onOpen:a,onPin:o,onDelete:s,justImported:e.id===i,onAnimationEnd:l,onDeploy:c?()=>c(e.id):void 0},e.id))})]})}function Z(e){let t=N.use.pinnedAppIds(),{data:n=[],isLoading:r,error:a}=i({...y({path:{assistant_id:e}}),select:e=>e.apps}),{data:o=[],isLoading:s,error:c}=i({..._({path:{assistant_id:e}}),select:e=>e.documents}),l=r||s,u=a&&c?a instanceof Error?a.message:`Failed to load library`:null,[d,f]=(0,H.useState)(``),p=(0,H.useMemo)(()=>{if(!d.trim())return n;let e=d.toLowerCase();return n.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[n,d]);return{apps:n,documents:o,filteredApps:p,pinnedApps:(0,H.useMemo)(()=>p.filter(e=>t.has(e.id)).sort((e,t)=>t.createdAt-e.createdAt),[p,t]),recentApps:(0,H.useMemo)(()=>p.filter(e=>!t.has(e.id)).sort((e,t)=>t.createdAt-e.createdAt),[p,t]),filteredDocuments:(0,H.useMemo)(()=>{if(!d.trim())return o;let e=d.toLowerCase();return o.filter(t=>t.title.toLowerCase().includes(e))},[o,d]),searchText:d,setSearchText:f,loading:l,error:u}}async function ee(e,t){let{data:n,error:r,response:i}=await h({path:{assistant_id:e},body:t,bodySerializer:e=>e,headers:{"Content-Type":`application/octet-stream`},throwOnError:!1});if(!i||!i.ok){let e=(r&&typeof r==`object`&&`message`in r?r.message:null)??`Failed to import app.`;throw Error(e)}return n}function Q({assistantId:e,assistantName:t,title:n,onNewConversation:i,onOpenDocument:a,onOpenApp:s}){let c=r(),l=x.use.deployToVercel(),u=N.use.togglePin(),p=N.use.pinnedAppIds(),m=j.use.isDeploying(),{apps:h,documents:_,filteredApps:y,pinnedApps:b,recentApps:S,filteredDocuments:T,searchText:E,setSearchText:O,loading:k,error:A}=Z(e),[M,F]=(0,H.useState)(null),[I,L]=(0,H.useState)(!1),z=(0,H.useCallback)(async()=>{let t=M;if(!(!t||I)){L(!0);try{await g({path:{assistant_id:e,id:t.id},throwOnError:!0}),w(e,t.id),c.invalidateQueries({queryKey:v({path:{assistant_id:e}})}),p.has(t.id)&&u(t),F(null)}catch(e){f.error(e instanceof Error?e.message:`Failed to delete app`)}finally{L(!1)}}},[M,I,e,p,u,c]),B=(0,H.useCallback)(()=>{I||F(null)},[I]),V=(0,H.useRef)(null),[G,J]=(0,H.useState)(!1),Y=(0,H.useCallback)(async t=>{let n=t.target.files?.[0];if(!(!n||G)){J(!0);try{let t=await ee(e,n);await c.invalidateQueries({queryKey:v({path:{assistant_id:e}})}),f.success(t.name+` imported`),s(t.appId)}catch(e){f.error(e instanceof Error?e.message:`Failed to import app`)}finally{J(!1),V.current&&(V.current.value=``)}}},[e,G,c,s]),Q=(0,H.useCallback)(async t=>{if(m)return;let n=h.find(e=>e.id===t)?.name??`this app`;try{let r=await C(e,t);j.getState().deployApp(e,t,n,r)}catch{j.getState().deployApp(e,t,n,``)}},[e,m,h]),$=(0,H.useCallback)(e=>u(e),[u]);return k?(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,U.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`,role:`status`,"aria-label":`Loading apps`})}):A?(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4`,children:[(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:A}),(0,U.jsx)(`button`,{type:`button`,className:`rounded-lg bg-[var(--primary-base)] px-4 py-2 text-body-medium-default text-[var(--content-inset)] transition-colors hover:bg-[var(--primary-hover)]`,onClick:()=>window.location.reload(),children:`Retry`})]}):h.length===0&&_.length===0?(0,U.jsx)(q,{fileInputRef:V,isImporting:G,onImportBundle:Y,onNewConversation:i?()=>i():void 0}):(0,U.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,U.jsxs)(`div`,{className:`mb-4 flex shrink-0 items-center justify-between gap-4`,children:[n?(0,U.jsx)(`h1`,{className:`text-title-large text-[var(--content-default)]`,children:n}):(0,U.jsx)(`span`,{}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`input`,{ref:V,type:`file`,accept:`.vellum`,className:`hidden`,onChange:Y}),(0,U.jsxs)(o,{variant:`outlined`,size:`regular`,onClick:()=>V.current?.click(),disabled:G,children:[G?(0,U.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,U.jsx)(P,{size:14}),(0,U.jsx)(`span`,{className:`ml-1.5`,children:`Import`})]})]})]}),(0,U.jsx)(`div`,{className:`mb-6 shrink-0`,children:(0,U.jsx)(d,{fullWidth:!0,type:`text`,placeholder:`Search your library`,value:E,onChange:e=>O(e.target.value),leftIcon:(0,U.jsx)(D,{size:16})})}),(0,U.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:y.length===0&&T.length===0?(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16`,children:[(0,U.jsx)(D,{size:32,className:`mb-4 text-[var(--content-tertiary)]`}),(0,U.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`No apps or documents matched “`,E,`”`]})]}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,U.jsx)(X,{title:`Pinned`,apps:b,assistantId:e,pinnedAppIds:p,onOpen:s,onPin:$,onDelete:F,onDeploy:l?Q:void 0}),(0,U.jsx)(X,{title:`Recents`,apps:S,assistantId:e,pinnedAppIds:p,onOpen:s,onPin:$,onDelete:F,onDeploy:l?Q:void 0}),T.length>0?(0,U.jsxs)(`section`,{children:[(0,U.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:`Documents`}),(0,U.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:T.map(e=>(0,U.jsx)(K,{document:e,onOpen:e=>{a&&a(e)}},e.surfaceId))})]}):null]})}),(0,U.jsx)(R,{assistantId:e,assistantName:t,onStartConversation:i}),(0,U.jsx)(W,{app:M,isDeleting:I,onConfirm:z,onCancel:B})]})}function $(){let e=z(),t=n();return(0,U.jsx)(B,{children:(0,U.jsx)(Q,{assistantId:e,title:`Library`,onNewConversation:(0,H.useCallback)(e=>{t(b.assistant)},[t]),onOpenDocument:(0,H.useCallback)(e=>{t(b.document(e))},[t]),onOpenApp:(0,H.useCallback)(e=>{t(b.library.app(e))},[t])})})}export{$ as LibraryPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./capture-error-23NwnaZt.js";import{t as r}from"./react-DJZBPgpf.js";import{d as i,m as a,t as o}from"./chunk-5KNZJZUH-BpLAEZ0-.js";import{t as s}from"./jsx-runtime-XSukodg_.js";import{t as c}from"./cn-DIX4PZch.js";import{t as l}from"./button-Cs9tc8OR.js";import"./src-Bah0_lDG.js";import{n as u}from"./auth-store-NinzEiLF.js";import{E as d,_ as f,c as p,g as m,h,v as g}from"./gateway-session-BEbYXAZw.js";import{d as _,f as v,p as y}from"./native-biometric-V5gaOHYQ.js";import{i as b}from"./routes-Dfo11DAg.js";import{t as x}from"./google-logo-CBBlhwbc.js";import{t as S}from"./public-asset-D_6jw-nO.js";import{G as C,ya as w}from"./index-DmTi6dG-.js";import{n as T,r as E}from"./login-flow-YoZiK8pc.js";import{n as D,r as O}from"./loopback-auth-Dclf8zKT.js";var k=e(r(),1),A=s();function j({children:e}){return(0,A.jsxs)(`div`,{className:`fixed inset-0 z-50 flex flex-col items-center justify-center bg-[var(--surface-base)] text-[var(--content-default)]`,children:[(0,A.jsx)(`img`,{src:S(`/vellum-logo.svg`),alt:`Vellum`,width:220,height:66,className:`block dark:hidden`}),(0,A.jsx)(`img`,{src:S(`/vellum-logo-white.svg`),alt:`Vellum`,width:220,height:66,className:`hidden dark:block`}),e,(0,A.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute left-1/2 w-full max-w-[900px] -translate-x-1/2`,style:{bottom:0},children:(0,A.jsx)(`img`,{src:S(`/login-background-characters.svg`),alt:``,width:880,height:182,className:`h-auto w-full`})})]})}function M(){return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`div`,{className:`pointer-events-none absolute top-[120px] left-1/2 z-0 -translate-x-1/2`,children:(0,A.jsx)(`img`,{src:S(`/vellum-logo-white.svg`),alt:`Vellum`,width:92,height:28})}),(0,A.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute right-0 bottom-0 left-1/2 z-0 w-full max-w-[1100px] -translate-x-1/2`,children:(0,A.jsx)(`img`,{src:S(`/login-background-characters.svg`),alt:``,width:880,height:182,className:`h-auto w-full`})})]})}var N=`flex w-full max-w-[448px] flex-col gap-6 rounded-lg border border-[var(--border-disabled)] bg-[var(--surface-lift)] p-6`;function P({children:e}){return(0,A.jsx)(`div`,{className:N,children:e})}function F({children:e}){return(0,A.jsx)(`h1`,{className:`text-title-large text-center text-[var(--content-emphasised)]`,children:e})}function I({children:e,className:t}){return(0,A.jsx)(`p`,{className:c(`text-body-small-default text-center text-[var(--system-negative-strong)]`,t),children:e})}function L({children:e}){return(0,A.jsx)(`div`,{className:`dark`,children:(0,A.jsxs)(`div`,{className:`relative min-h-screen overflow-x-hidden bg-[var(--surface-base)] text-[var(--content-default)]`,children:[(0,A.jsx)(M,{}),(0,A.jsx)(`div`,{className:`relative z-10 flex min-h-screen flex-col items-center justify-center px-4`,children:e})]})})}function R({signUpHref:e}){return(0,A.jsxs)(`p`,{className:`text-body-small-default flex justify-center gap-1`,children:[(0,A.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Don't have an account?`}),(0,A.jsx)(o,{to:e,className:`font-medium text-[var(--content-emphasised)] hover:underline`,children:`Sign up`})]})}function z({returnTo:e,loading:t,errorMessage:n,onProviderClick:r}){let i=e?`${b.account.signup}?returnTo=${encodeURIComponent(e)}`:b.account.signup;return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(F,{children:`Sign in to Vellum`}),n&&(0,A.jsx)(I,{children:n}),(0,A.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,A.jsx)(l,{type:`button`,variant:`outlined`,fullWidth:!0,onClick:()=>r(`AppleOAuth`),disabled:t,leftIcon:(0,A.jsx)(C,{}),className:`max-w-[300px] gap-3`,children:`Continue with Apple`}),(0,A.jsx)(l,{type:`button`,variant:`outlined`,fullWidth:!0,onClick:()=>r(`GoogleOAuth`),disabled:t,leftIcon:(0,A.jsx)(x,{}),className:`max-w-[300px] gap-3`,children:`Continue with Google`}),(0,A.jsx)(l,{type:`button`,variant:`outlined`,fullWidth:!0,onClick:()=>r(),disabled:t,leftIcon:(0,A.jsx)(w,{}),className:`max-w-[300px] gap-3`,children:`Continue with Email`})]}),(0,A.jsx)(R,{signUpHref:i})]})}function B({error:e}){return e?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(I,{children:e.message}),e.detail&&(0,A.jsx)(`p`,{className:`text-body-small-default text-center text-[var(--content-secondary)] break-words`,children:e.detail})]}):null}function V({returnTo:e}){let r=i(),[a,o]=(0,k.useState)(null),[s,c]=(0,k.useState)(null),[m,v]=(0,k.useState)(null),[y,b]=(0,k.useState)(!1),x=O(),S=d.use.lockfile()?.assistants??[],C=S.filter(h),w=S.filter(f),j=C.length>0,M=w.length>0,N=j&&!M?(p()??C[0])?.assistantId:void 0,R=E(e),V=(0,k.useCallback)(()=>{g()},[]),H=(0,k.useCallback)(async i=>{c(null),o(i);try{await u.getState().connectLocalAssistant(i),r(e||`/assistant`)}catch(e){n(e,{context:`local-login.connect`,extra:{assistantId:i,gatewayPort:C.find(e=>e.assistantId===i)?.resources?.gatewayPort}}),c({message:`Couldn't connect to your assistant. Make sure it's running.`,detail:t(e).message}),o(null)}},[r,e,C]),U=(0,k.useCallback)(async t=>{v(null),b(!0);try{x?await _(T,R,{...t?{providerHint:t}:{},returnTo:e}):await D(e??void 0)}catch(e){console.error(`[local-login] platform auth flow failed:`,e),v(`Something went wrong. Please try again.`),b(!1)}},[e,x,R]),W=(0,k.useCallback)(e=>{U(e)},[U]);return(0,k.useEffect)(()=>{N&&!a&&!s&&H(N)},[N,a,s,H]),(0,k.useEffect)(()=>{M&&!j&&!y&&!m&&x===!1&&(b(!0),U())},[M,j,y,m,x,U]),!j&&x?(0,A.jsx)(L,{children:(0,A.jsx)(P,{children:(0,A.jsx)(z,{returnTo:e,loading:y,errorMessage:m,onProviderClick:W})})}):!j&&!M?(0,A.jsx)(L,{children:(0,A.jsxs)(P,{children:[(0,A.jsx)(F,{children:`Vellum`}),(0,A.jsxs)(`p`,{className:`text-body-small-default text-center text-[var(--content-secondary)]`,children:[`No assistants found. Hatch one via CLI (`,(0,A.jsx)(`code`,{className:`rounded bg-[var(--surface-sunken)] px-1 py-0.5 text-[var(--content-default)]`,children:`vellum hatch`}),`) or the Mac app to get started.`]}),(0,A.jsx)(`div`,{className:`flex justify-center`,children:(0,A.jsx)(l,{type:`button`,variant:`outlined`,onClick:V,children:`Refresh`})})]})}):M&&!j?(0,A.jsx)(L,{children:(0,A.jsxs)(P,{children:[(0,A.jsx)(F,{children:`Vellum`}),m?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(I,{children:m}),(0,A.jsx)(`div`,{className:`flex justify-center`,children:(0,A.jsx)(l,{type:`button`,variant:`outlined`,onClick:()=>{v(null)},children:`Retry`})})]}):(0,A.jsx)(`p`,{className:`text-body-small-default text-center text-[var(--content-secondary)]`,children:`Redirecting to sign in...`})]})}):j&&!M?(0,A.jsx)(L,{children:(0,A.jsxs)(P,{children:[(0,A.jsx)(F,{children:`Vellum`}),s?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(B,{error:s}),(0,A.jsx)(`div`,{className:`flex justify-center`,children:(0,A.jsx)(l,{type:`button`,variant:`outlined`,onClick:()=>{N&&H(N)},children:`Retry`})})]}):(0,A.jsx)(`p`,{className:`text-body-small-default text-center text-[var(--content-secondary)]`,children:a?`Connecting to your assistant...`:`Preparing connection...`})]})}):(0,A.jsx)(L,{children:(0,A.jsxs)(`div`,{className:`flex w-full max-w-[960px] flex-col items-start justify-center gap-6 md:flex-row`,children:[(0,A.jsx)(P,{children:x?(0,A.jsx)(z,{returnTo:e,loading:y,errorMessage:m,onProviderClick:W}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(F,{children:`Vellum Cloud`}),m&&(0,A.jsx)(I,{children:m}),(0,A.jsx)(`div`,{className:`flex justify-center`,children:(0,A.jsx)(l,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>{U()},disabled:y,className:`max-w-[300px]`,children:y?`Redirecting…`:`Sign in`})})]})}),(0,A.jsxs)(P,{children:[(0,A.jsx)(F,{children:`Local Assistant`}),(0,A.jsx)(B,{error:s}),(0,A.jsx)(`div`,{className:`flex flex-col gap-2`,children:C.map(e=>(0,A.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between rounded-lg border border-[var(--border-disabled)] bg-[var(--surface-sunken)] px-4 py-3 text-left transition-colors hover:bg-[var(--surface-lift)] disabled:opacity-50`,disabled:a===e.assistantId,onClick:()=>{H(e.assistantId)},children:[(0,A.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,A.jsx)(`span`,{className:`text-body-small-default text-[var(--content-emphasised)]`,children:e.name||e.assistantId}),e.species&&(0,A.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e.species})]}),a===e.assistantId&&(0,A.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Connecting...`})]},e.assistantId))})]})]})})}var H={signup_closed:`Sign-ups are currently closed. Visit vellum.ai/community to request access.`};function U({returnTo:e}){let[t,n]=(0,k.useState)(null),[r,i]=(0,k.useState)(!1),a=async()=>{n(null),i(!0);try{await v({returnTo:e??null})}catch(e){let t=e&&typeof e==`object`&&`code`in e?e.code:void 0;if(t===`USER_CANCELLED`){i(!1);return}if(t===`AUTH_ERROR`){let t=e&&typeof e==`object`&&`data`in e&&e.data&&typeof e.data==`object`&&`authError`in e.data&&typeof e.data.authError==`string`?e.data.authError:void 0;n((t&&H[t])??`Something went wrong. Please try again.`)}else console.error(`[native-auth] auth flow failed:`,e),n(`Something went wrong. Please try again.`);i(!1)}};return(0,A.jsx)(j,{children:(0,A.jsxs)(`div`,{className:`z-10 mt-8 flex w-full max-w-[320px] flex-col items-center gap-3`,children:[t&&(0,A.jsx)(I,{className:`max-w-[280px]`,children:t}),(0,A.jsx)(l,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>{a()},disabled:r,className:`max-w-[300px]`,children:`Sign in`})]})})}function W({returnTo:e}){let[t,n]=(0,k.useState)(null),[r,i]=(0,k.useState)(!1),a=E(e),o=async t=>{n(null),i(!0);try{await _(T,a,{...t?{providerHint:t}:{},returnTo:e})}catch(e){console.error(`[web-login] auth flow failed:`,e),n(`Something went wrong. Please try again.`),i(!1)}};return(0,A.jsx)(L,{children:(0,A.jsx)(P,{children:(0,A.jsx)(z,{returnTo:e,loading:r,errorMessage:t,onProviderClick:e=>{o(e)}})})})}function G(){let[e]=a(),t=y(),n=e.get(`returnTo`);return m()?(0,A.jsx)(V,{returnTo:n}):t?(0,A.jsx)(U,{returnTo:n}):(0,A.jsx)(W,{returnTo:n})}export{G as LoginPage};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,n}from"./device-settings-C07QvMzm.js";import{t as r}from"./react-DJZBPgpf.js";import{o as i}from"./gateway-session-BEbYXAZw.js";import{t as a}from"./is-electron-BCDAAC00.js";import{i as o,t as s}from"./dist-d-PJ8AUi.js";import{i as c}from"./routes-Dfo11DAg.js";var l={bodySerializer:e=>JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t)};Object.entries({$body_:`body`,$headers_:`headers`,$path_:`path`,$query_:`query`});function u({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:r,responseValidator:i,sseDefaultRetryDelay:a,sseMaxRetryAttempts:o,sseMaxRetryDelay:s,sseSleepFn:c,url:l,...u}){let d,f=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=a??3e3,p=0,m=u.signal??new AbortController().signal;for(;!m.aborted;){p++;let a=u.headers instanceof Headers?u.headers:new Headers(u.headers);d!==void 0&&a.set(`Last-Event-ID`,d);try{let t={redirect:`follow`,...u,body:u.serializedBody,headers:a,signal:m},o=new Request(l,t);e&&(o=await e(l,t));let s=await(u.fetch??globalThis.fetch)(o);if(!s.ok)throw Error(`SSE failed: ${s.status} ${s.statusText}`);if(!s.body)throw Error(`No body in SSE response`);let f=s.body.pipeThrough(new TextDecoderStream).getReader(),p=``,h=()=>{try{f.cancel()}catch{}};m.addEventListener(`abort`,h);try{for(;;){let{done:e,value:t}=await f.read();if(e)break;p+=t,p=p.replace(/\r\n?/g,`
|
|
2
|
-
`);let a=p.split(`
|
|
3
|
-
|
|
4
|
-
`);p=a.pop()??``;for(let e of a){let t=e.split(`
|
|
5
|
-
`),a=[],o;for(let e of t)if(e.startsWith(`data:`))a.push(e.replace(/^data:\s*/,``));else if(e.startsWith(`event:`))o=e.replace(/^event:\s*/,``);else if(e.startsWith(`id:`))d=e.replace(/^id:\s*/,``);else if(e.startsWith(`retry:`)){let t=Number.parseInt(e.replace(/^retry:\s*/,``),10);Number.isNaN(t)||(c=t)}let s,l=!1;if(a.length){let e=a.join(`
|
|
6
|
-
`);try{s=JSON.parse(e),l=!0}catch{s=e}}l&&(i&&await i(s),r&&(s=await r(s))),n?.({data:s,event:o,id:d,retry:c}),a.length&&(yield s)}}}finally{m.removeEventListener(`abort`,h),f.releaseLock()}break}catch(e){if(t?.(e),o!==void 0&&p>=o)break;await f(Math.min(c*2**(p-1),s??3e4))}}}()}}var d=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},f=e=>{switch(e){case`form`:return`,`;case`pipeDelimited`:return`|`;case`spaceDelimited`:return`%20`;default:return`,`}},p=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},m=({allowReserved:e,explode:t,name:n,style:r,value:i})=>{if(!t){let t=(e?i:i.map(e=>encodeURIComponent(e))).join(f(r));switch(r){case`label`:return`.${t}`;case`matrix`:return`;${n}=${t}`;case`simple`:return t;default:return`${n}=${t}`}}let a=d(r),o=i.map(t=>r===`label`||r===`simple`?e?t:encodeURIComponent(t):h({allowReserved:e,name:n,value:t})).join(a);return r===`label`||r===`matrix`?a+o:o},h=({allowReserved:e,name:t,value:n})=>{if(n==null)return``;if(typeof n==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},g=({allowReserved:e,explode:t,name:n,style:r,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${n}=${i.toISOString()}`;if(r!==`deepObject`&&!t){let t=[];Object.entries(i).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});let a=t.join(`,`);switch(r){case`form`:return`${n}=${a}`;case`label`:return`.${a}`;case`matrix`:return`;${n}=${a}`;default:return a}}let o=p(r),s=Object.entries(i).map(([t,i])=>h({allowReserved:e,name:r===`deepObject`?`${n}[${t}]`:t,value:i})).join(o);return r===`label`||r===`matrix`?o+s:s},ee=/\{[^{}]+\}/g,_=({path:e,url:t})=>{let n=t,r=t.match(ee);if(r)for(let t of r){let r=!1,i=t.substring(1,t.length-1),a=`simple`;i.endsWith(`*`)&&(r=!0,i=i.substring(0,i.length-1)),i.startsWith(`.`)?(i=i.substring(1),a=`label`):i.startsWith(`;`)&&(i=i.substring(1),a=`matrix`);let o=e[i];if(o==null)continue;if(Array.isArray(o)){n=n.replace(t,m({explode:r,name:i,style:a,value:o}));continue}if(typeof o==`object`){n=n.replace(t,g({explode:r,name:i,style:a,value:o,valueOnly:!0}));continue}if(a===`matrix`){n=n.replace(t,`;${h({name:i,value:o})}`);continue}let s=encodeURIComponent(a===`label`?`.${o}`:o);n=n.replace(t,s)}return n},te=({baseUrl:e,path:t,query:n,querySerializer:r,url:i})=>{let a=i.startsWith(`/`)?i:`/${i}`,o=(e??``)+a;t&&(o=_({path:t,url:o}));let s=n?r(n):``;return s.startsWith(`?`)&&(s=s.substring(1)),s&&(o+=`?${s}`),o};function v(e){let t=e.body!==void 0;if(t&&e.bodySerializer)return`serializedBody`in e?e.serializedBody!==void 0&&e.serializedBody!==``?e.serializedBody:null:e.body===``?null:e.body;if(t)return e.body}var y=async(e,t)=>{let n=typeof t==`function`?await t(e):t;if(n)return e.scheme===`bearer`?`Bearer ${n}`:e.scheme===`basic`?`Basic ${btoa(n)}`:n},b=({parameters:e={},...t}={})=>n=>{let r=[];if(n&&typeof n==`object`)for(let i in n){let a=n[i];if(a==null)continue;let o=e[i]||t;if(Array.isArray(a)){let e=m({allowReserved:o.allowReserved,explode:!0,name:i,style:`form`,value:a,...o.array});e&&r.push(e)}else if(typeof a==`object`){let e=g({allowReserved:o.allowReserved,explode:!0,name:i,style:`deepObject`,value:a,...o.object});e&&r.push(e)}else{let e=h({allowReserved:o.allowReserved,name:i,value:a});e&&r.push(e)}}return r.join(`&`)},ne=e=>{if(!e)return`stream`;let t=e.split(`;`)[0]?.trim();if(t){if(t.startsWith(`application/json`)||t.endsWith(`+json`))return`json`;if(t===`multipart/form-data`)return`formData`;if([`application/`,`audio/`,`image/`,`video/`].some(e=>t.startsWith(e)))return`blob`;if(t.startsWith(`text/`))return`text`}},re=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get(`Cookie`)?.includes(`${t}=`)):!1,ie=async({security:e,...t})=>{for(let n of e){if(re(t,n.name))continue;let e=await y(n,t.auth);if(!e)continue;let r=n.name??`Authorization`;switch(n.in){case`query`:t.query||={},t.query[r]=e;break;case`cookie`:t.headers.append(`Cookie`,`${r}=${e}`);break;default:t.headers.set(r,e);break}}},x=e=>te({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer==`function`?e.querySerializer:b(e.querySerializer),url:e.url}),S=(e,t)=>{let n={...e,...t};return n.baseUrl?.endsWith(`/`)&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=w(e.headers,t.headers),n},C=e=>{let t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},w=(...e)=>{let t=new Headers;for(let n of e){if(!n)continue;let e=n instanceof Headers?C(n):Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,typeof r==`object`?JSON.stringify(r):r)}return t},T=class{fns=[];clear(){this.fns=[]}eject(e){let t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){let t=this.getInterceptorIndex(e);return!!this.fns[t]}getInterceptorIndex(e){return typeof e==`number`?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){let n=this.getInterceptorIndex(e);return this.fns[n]?(this.fns[n]=t,e):!1}use(e){return this.fns.push(e),this.fns.length-1}},E=()=>({error:new T,request:new T,response:new T}),ae=b({allowReserved:!1,array:{explode:!0,style:`form`},object:{explode:!0,style:`deepObject`}}),oe={"Content-Type":`application/json`},D=(e={})=>({...l,headers:oe,parseAs:`auto`,querySerializer:ae,...e}),O=((e={})=>{let t=S(D(),e),n=()=>({...t}),r=e=>(t=S(t,e),n()),i=E(),a=async e=>{let n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:w(t.headers,e.headers),serializedBody:void 0};n.security&&await ie({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body!==void 0&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.body===void 0||n.serializedBody===``)&&n.headers.delete(`Content-Type`);let r=n;return{opts:r,url:x(r)}},o=async e=>{let n=e.throwOnError??t.throwOnError,r=e.responseStyle??t.responseStyle,o,s;try{let{opts:t,url:n}=await a(e),r={redirect:`follow`,...t,body:v(t)};o=new Request(n,r);for(let e of i.request.fns)e&&(o=await e(o,t));let c=t.fetch;s=await c(o);for(let e of i.response.fns)e&&(s=await e(s,o,t));let l={request:o,response:s};if(s.ok){let e=(t.parseAs===`auto`?ne(s.headers.get(`Content-Type`)):t.parseAs)??`json`;if(s.status===204||s.headers.get(`Content-Length`)===`0`){let n;switch(e){case`arrayBuffer`:case`blob`:case`text`:n=await s[e]();break;case`formData`:n=new FormData;break;case`stream`:n=s.body;break;default:n={};break}return t.responseStyle===`data`?n:{data:n,...l}}let n;switch(e){case`arrayBuffer`:case`blob`:case`formData`:case`text`:n=await s[e]();break;case`json`:{let e=await s.text();n=e?JSON.parse(e):{};break}case`stream`:return t.responseStyle===`data`?s.body:{data:s.body,...l}}return e===`json`&&(t.responseValidator&&await t.responseValidator(n),t.responseTransformer&&(n=await t.responseTransformer(n))),t.responseStyle===`data`?n:{data:n,...l}}let u=await s.text(),d;try{d=JSON.parse(u)}catch{}throw d??u}catch(t){let a=t;for(let t of i.error.fns)t&&(a=await t(a,s,o,e));if(a||={},n)throw a;return r===`data`?void 0:{error:a,request:o,response:s}}},s=e=>t=>o({...t,method:e}),c=e=>async t=>{let{opts:n,url:r}=await a(t);return u({...n,body:n.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(let e of i.request.fns)e&&(r=await e(r,n));return r},serializedBody:v(n),url:r})};return{buildUrl:e=>x({...t,...e}),connect:s(`CONNECT`),delete:s(`DELETE`),get:s(`GET`),getConfig:n,head:s(`HEAD`),interceptors:i,options:s(`OPTIONS`),patch:s(`PATCH`),post:s(`POST`),put:s(`PUT`),request:o,setConfig:r,sse:{connect:c(`CONNECT`),delete:c(`DELETE`),get:c(`GET`),head:c(`HEAD`),options:c(`OPTIONS`),patch:c(`PATCH`),post:c(`POST`),put:c(`PUT`),trace:c(`TRACE`)},trace:s(`TRACE`)}})(D()),se=e=>(e.client??O).get({url:`/_allauth/{client}/v1/auth/provider/signup`,...e}),ce=e=>(e.client??O).post({url:`/_allauth/{client}/v1/auth/provider/signup`,...e,headers:{"Content-Type":`application/json`,...e.headers}}),le=e=>(e.client??O).delete({url:`/_allauth/{client}/v1/auth/session`,...e}),k=e=>(e.client??O).get({url:`/_allauth/{client}/v1/auth/session`,...e});function ue(e){return!e.ok&&e.status===409}function A(e,t){let n=e;if(n&&Array.isArray(n.errors))return{ok:!1,status:t,errors:n.errors};let r=n?.data;return r&&Array.isArray(r.flows)?{ok:!1,status:t,errors:[],flows:r.flows}:{ok:!1,status:t,errors:[]}}async function j(){let{data:e,error:t,response:n}=await k({path:{client:`browser`}});return e?{ok:!0,data:e.data}:A(t,n?.status)}async function de(){let{data:e,error:t,response:n}=await le({path:{client:`browser`}});return e?{ok:!0,data:e}:n?.status===401?{ok:!0,data:{}}:A(t,n?.status)}async function fe(){let{data:e,error:t,response:n}=await se({path:{client:`browser`}});return e?{ok:!0,data:e.data}:A(t,n?.status)}async function pe({email:e,username:t}){let{data:n,error:r,response:i}=await ce({path:{client:`browser`},body:{email:e,username:t}});return n?{ok:!0,data:n.data}:A(r,i?.status)}var M=`__Secure-csrftoken`;function N(){return window.vellum?.csrf?.getToken()||document.cookie.split(`; `).findLast(e=>e.startsWith(`${M}=`))?.split(`=`).slice(1).join(`=`)}function P(){document.cookie.split(`; `).filter(e=>e.startsWith(`${M}=`)).length>1&&(document.cookie=`${M}=; path=/; max-age=0; secure`)}var F=null;async function I(){i()||(P(),!N()&&(F||=(async()=>{for(let e=0;e<2;e++)try{if(await k({path:{client:`browser`}}),N())return}catch{console.warn(`CSRF cookie bootstrap failed (attempt ${e+1}/2)`),e===0&&await new Promise(e=>setTimeout(e,500))}})().finally(()=>{F=null}),await F))}var L=`/accounts/oidc/redirect/`;function R(e,t,n,r={}){let i={provider:e,callback_url:new URL(t,n).href,process:`login`};return r.intent&&(i.intent=r.intent),r.loginHint&&(i.login_hint=r.loginHint),r.providerHint&&(i.provider_hint=r.providerHint),i}function z(e){if(!e)throw Error(`Unable to start provider redirect: CSRF token is missing. The session may not be initialized. Please refresh the page and try again.`)}async function B(e,t,n={}){await I();let r=N();z(r);let i=window.location.origin,a=document.createElement(`form`);a.method=`POST`,a.action=`${i}${L}`;let o=R(e,t,i,n);o.csrfmiddlewaretoken=r;for(let[e,t]of Object.entries(o)){let n=document.createElement(`input`);n.type=`hidden`,n.name=e,n.value=t,a.appendChild(n)}document.body.appendChild(a),a.submit()}function me(e,t){return e?{kind:`authenticated`}:t.some(e=>e.id===`provider_signup`&&e.is_pending)?{kind:`provider_signup`}:{kind:`error`,message:`Unexpected authentication state.`}}function he(e){return e===`vellum.ai`||e.endsWith(`.vellum.ai`)}var ge=/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//;function V(e,t){if(!e)return t;if(ge.test(e)){try{let t=new URL(e);if(t.protocol===`https:`&&he(t.hostname))return e}catch{}return t}return e.startsWith(`//`)||e.includes(`\\`)||!e.startsWith(`/`)?t:e}var _e=e(r(),1),ve=o(`NativeAuth`),H=c.assistant;function ye(){return`${window.location.protocol}//${window.location.host}`}function U(){return typeof window<`u`&&s.isNativePlatform()}var be=()=>()=>{};function xe(){return(0,_e.useSyncExternalStore)(be,U,()=>!1)}async function W(e){let t=e?.baseURL??ye(),{sessionToken:n}=await ve.startAuth({baseURL:t,...e?.loginHint?{loginHint:e.loginHint}:{},...e?.providerHint?{providerHint:e.providerHint}:{}});K(n),U()&&await G(),$()&&await X(n);let r=V(e?.returnTo??null,H);window.location.href=r}async function G(){for(let e=0;e<6;e++){try{let e=await j();if(e.ok&&e.data.user)return}catch{}await new Promise(t=>setTimeout(t,50*(e+1)))}}function K(e){let t=`path=/; domain=.vellum.ai; secure; samesite=lax; max-age=1209600`;document.cookie=`sessionid=${e}; ${t}`,document.cookie=`__Secure-sessionid=${e}; ${t}`}function Se(){if(typeof document>`u`)return null;let e=document.cookie.split(`; `);for(let t of[`__Secure-sessionid`,`sessionid`]){let n=e.find(e=>e.startsWith(`${t}=`));if(n){let e=n.slice(t.length+1);if(e)return e}}return null}async function Ce(e,t,n={}){if(U()){try{await W({returnTo:n.intent===`signup`?c.onboarding.privacy:n.returnTo??null,loginHint:n.loginHint,providerHint:n.providerHint})}catch(e){if(e?.code===`USER_CANCELLED`)return;throw e}return}if(a()&&window.vellum?.auth?.startOAuth){if((await window.vellum.auth.startOAuth({providerHint:n.providerHint,loginHint:n.loginHint,intent:n.intent}))?.sessionToken){let e=V(n.intent===`signup`?c.onboarding.privacy:n.returnTo??null,H);window.location.href=e}return}await B(e,t,n)}var q=o(`NativeBiometric`),J=`vellum.ai`;async function Y(){if(!U())return!1;try{let{available:e}=await q.isAvailable();return e}catch{return!1}}async function X(e){if(!await Y())return!1;try{return await q.storeToken({token:e,server:J}),!0}catch(e){return console.error(`[native-biometric] failed to store token:`,e),!1}}var Z=null;async function we(){return U()?Z||(Z=(async()=>{try{let{token:e}=await q.retrieveToken({server:J,reason:`Sign in to Vellum`});return e}catch{return null}finally{Z=null}})(),Z):null}async function Q(){if(U())try{await q.deleteToken({server:J})}catch{}}function $(){return n(`biometricEnabled`,!0)}function Te(e){t(`biometricEnabled`,e)}async function Ee(){if(!U())return`Biometrics`;try{let{biometryType:e}=await q.isAvailable();switch(e){case`faceId`:return`Face ID`;case`touchId`:return`Touch ID`;case`opticId`:return`Optic ID`;default:return`Biometrics`}}catch{return`Biometrics`}}export{pe as C,de as S,I as _,we as a,j as b,Se as c,Ce as d,W as f,me as g,V as h,$ as i,K as l,G as m,Ee as n,Te as o,xe as p,Y as r,X as s,Q as t,U as u,N as v,O as w,ue as x,fe as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-23NwnaZt.js";import{t as n}from"./react-DJZBPgpf.js";import{d as r,m as i}from"./chunk-5KNZJZUH-BpLAEZ0-.js";import{n as a}from"./QueryClientProvider-DBAeGN3q.js";import{t as o}from"./useQuery-DAtrV0RI.js";import{t as s}from"./useMutation-DTb3lMvF.js";import{t as c}from"./jsx-runtime-XSukodg_.js";import{t as l}from"./button-Cs9tc8OR.js";import{t as u}from"./card-BcKGvsaa.js";import{t as d}from"./input-DwAJUlac.js";import{t as f}from"./selection-store-BCKoLRDh.js";import{t as p}from"./loader-circle-FEkI0Am4.js";import{t as m}from"./pencil-CESg1M7c.js";import{t as h}from"./x-2OoTSOWJ.js";import{a as g,i as _,m as v,n as y,p as b}from"./auth-store-NinzEiLF.js";import{t as x}from"./client.gen-BSPUYAay.js";import{f as S,g as C,p as w}from"./gateway-session-BEbYXAZw.js";import{p as ee}from"./native-biometric-V5gaOHYQ.js";import{i as T}from"./routes-Dfo11DAg.js";import{t as E}from"./public-asset-D_6jw-nO.js";import{$ as te,A as D,F as ne,Ft as re,Gn as O,I as ie,Kn as k,L as A,Mt as j,P as M,Un as N,Va as P,Wn as ae,_ as oe,do as F,et as I,fr as se,g as ce,gi as le,gr as ue,h as de,ht as fe,k as L,m as pe,po as R,pr as me,vr as he}from"./index-DmTi6dG-.js";import{t as z}from"./onboarding-layout-CTQetjmN.js";import{c as ge,i as _e,n as B,o as ve,r as ye,s as be,t as V}from"./step-indicator-dots-Bef_HABf.js";import{t as H}from"./use-oauth-complete-deep-link-listener-ZuAGEydM.js";var U=e(n(),1);async function xe(){try{let{data:e,response:t}=await x.get({url:`/v1/onboarding/recipe/`,throwOnError:!1});if(!t?.ok||!e)return null;let n=e;return typeof n.cohort!=`string`||!Array.isArray(n.tasks)||typeof n.tone!=`string`||typeof n.bootstrap_template!=`string`||typeof n.initial_message!=`string`||!Array.isArray(n.skills)||typeof n.skip_prechat!=`boolean`?null:{cohort:n.cohort,tasks:n.tasks,tone:n.tone,bootstrapTemplate:n.bootstrap_template,initialMessage:n.initial_message,skills:n.skills,skipPrechat:n.skip_prechat}}catch{return null}}var W=c(),Se=[{label:`Push notifications`,detail:`stay in the loop even when the browser is closed`},{label:`Biometric login`,detail:`Face ID & Touch ID for instant, secure access`},{label:`Native haptics`,detail:`tactile feedback that feels part of the device`},{label:`Home screen access`,detail:`launch your assistant with a single tap`}];function Ce({onComplete:e}){function t(){ce(),pe(),e()}return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-md flex-col items-center justify-center px-6 pb-40 text-center`,children:[(0,W.jsx)(`div`,{className:`mb-8 flex size-16 items-center justify-center rounded-2xl border`,style:{background:`var(--surface-overlay)`,borderColor:`var(--border-element)`,boxShadow:`0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04)`,animation:`fadeInUp 0.3s ease-out both`},children:(0,W.jsxs)(`svg`,{width:`28`,height:`28`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{color:`var(--content-default)`},"aria-hidden":!0,children:[(0,W.jsx)(`rect`,{x:`5`,y:`2`,width:`14`,height:`20`,rx:`3`}),(0,W.jsx)(`line`,{x1:`12`,y1:`18`,x2:`12`,y2:`18.01`})]})}),(0,W.jsx)(`p`,{className:`text-label-small-default mb-3 uppercase tracking-[0.2em]`,style:{color:`var(--content-tertiary)`,animation:`fadeInUp 0.3s ease-out 0.05s both`},children:`One more thing`}),(0,W.jsx)(`h1`,{className:`mb-3 text-3xl font-semibold tracking-tight`,style:{color:`var(--content-default)`,animation:`fadeInUp 0.3s ease-out 0.1s both`},children:`Your assistant, in your pocket.`}),(0,W.jsx)(`p`,{className:`text-body-medium-lighter mb-10 max-w-sm`,style:{color:`var(--content-secondary)`,animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`The iOS app keeps your assistant a tap away — with push notifications, biometric login, and native haptics.`}),(0,W.jsx)(`div`,{className:`mb-10 w-full rounded-xl border px-5 py-4`,style:{background:`var(--surface-overlay)`,borderColor:`var(--border-element)`,animation:`fadeInUp 0.3s ease-out 0.2s both`},children:(0,W.jsx)(`ul`,{className:`space-y-4`,children:Se.map((e,t)=>(0,W.jsxs)(`li`,{className:`flex items-start gap-3`,style:{animation:`fadeInUp 0.3s ease-out ${.25+t*.05}s both`},children:[(0,W.jsx)(`span`,{className:`mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full`,style:{background:`var(--system-positive-weak)`},children:(0,W.jsx)(R,{size:12,style:{color:`var(--system-positive-strong)`}})}),(0,W.jsxs)(`span`,{className:`text-left`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),(0,W.jsxs)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[` — `,e.detail]})]})]},e.label))})}),(0,W.jsxs)(`div`,{className:`flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.3s ease-out 0.45s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,onClick:t,className:`h-11 text-base`,children:`Download on the App Store`}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:e,className:`h-11 text-base`,children:`Continue in browser`})]})]})})}var G=`google`,K=[{id:`gmail`,label:`Gmail`,logoSrc:E(`/images/integrations/gmail.svg`)},{id:`google-calendar`,label:`Google Calendar`,logoSrc:E(`/images/integrations/google-calendar.svg`)},{id:`google-drive`,label:`Google Drive`,logoSrc:E(`/images/integrations/google-drive.svg`)}];function we({assistantId:e,assistantName:t,onConnect:n,onSkip:r,onBack:i}){let o=a(),c=ee(),u=(0,U.useRef)(null),d=(0,U.useRef)(null),f=(0,U.useRef)(null),m=(0,U.useRef)(null),h=(0,U.useRef)(null),g=(0,U.useRef)(null),_=(0,U.useRef)(null),[v,y]=(0,U.useState)(!1),b=(0,U.useCallback)(()=>{d.current=null,y(!1)},[]),x=(0,U.useCallback)(()=>{h.current&&=(window.removeEventListener(`message`,h.current),null),g.current&&=(window.removeEventListener(`storage`,g.current),null)},[]),S=(0,U.useCallback)(()=>{u.current&&!u.current.closed&&u.current.close(),u.current=null,f.current&&=(clearInterval(f.current),null),m.current&&=(clearTimeout(m.current),null)},[]),C=s({...re()});(0,U.useEffect)(()=>()=>{f.current&&clearInterval(f.current),m.current&&clearTimeout(m.current),u.current&&!u.current.closed&&u.current.close(),h.current&&window.removeEventListener(`message`,h.current),g.current&&window.removeEventListener(`storage`,g.current),_.current&&=(_.current(),null)},[]);let w=(0,U.useCallback)(async()=>{try{return(await o.fetchQuery({...j({path:{assistant_id:e}}),staleTime:0})).find(e=>e.provider===G&&e.connected)??null}catch{return null}},[e,o]),E=(0,U.useCallback)(async()=>{S(),b(),n((await w())?.scopes_granted??[])},[b,S,w,n]),D=(0,U.useCallback)(e=>{e.type===`vellum:oauth-complete`&&(!d.current||e.requestId!==d.current.requestId||(e.oauthStatus===`connected`?E():(S(),b())))},[b,S,E]),O=(0,U.useCallback)(e=>{let t=d.current;if(!t)return;let n=M(e,window.location.origin,t.requestId);n&&D(n)},[D]),k=(0,U.useCallback)(e=>{let t=d.current;if(!t)return;let n=ne(e,t.requestId);n&&(D(n),window.localStorage.removeItem(A(t.requestId)))},[D]);H((0,U.useCallback)(e=>{let t=d.current;t&&e.requestId===t.requestId&&D({type:`vellum:oauth-complete`,requestId:e.requestId,oauthStatus:e.oauthStatus,oauthProvider:e.oauthProvider,oauthCode:e.oauthCode})},[D]));let N=(0,U.useCallback)(()=>{let t=crypto.randomUUID();if(x(),h.current=O,g.current=k,c){y(!0),d.current={requestId:t},C.mutate({path:{assistant_id:e,provider:G},body:{requested_scopes:[],redirect_after_connect:`${T.account.oauth.popupComplete}?requestId=${t}&native=1`}},{onSuccess(e){te(e.connect_url)},onError(){b()}}),window.addEventListener(`message`,O),window.addEventListener(`storage`,k),_.current&&_.current();let n=I(()=>{if(!d.current){n(),_.current=null;return}(async()=>{let e=await w();d.current&&(e?await E():b(),x(),n(),_.current=null)})()});_.current=n;return}let n=window.open(``,`_blank`,`width=500,height=600`);if(n===null){x();return}u.current=n,y(!0),d.current={requestId:t},window.addEventListener(`message`,O),window.addEventListener(`storage`,k),f.current=setInterval(()=>{u.current&&u.current.closed&&d.current&&!m.current&&(m.current=setTimeout(async()=>{m.current=null;let e=d.current;if(!e)return;let t=window.localStorage.getItem(A(e.requestId));if(t)try{let n=JSON.parse(t);if(ie(n,e.requestId)){D(n),window.localStorage.removeItem(A(e.requestId)),x();return}}catch{}let n=await w();d.current&&(n?await E():(S(),b()),x())},1e3))},100),C.mutate({path:{assistant_id:e,provider:G},body:{requested_scopes:[],redirect_after_connect:`${T.account.oauth.popupComplete}?requestId=${t}`}},{onSuccess(e){u.current&&!u.current.closed?u.current.location.href=e.connect_url:d.current&&(S(),b(),x())},onError(){S(),b(),x()}})},[e,b,S,w,D,O,k,E,c,x,C]),P=t||`your assistant`,ae=t||`Your assistant`;return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex w-full max-w-md flex-col items-center px-6 pb-40 pt-12 text-[var(--content-default)]`,children:[(0,W.jsxs)(`div`,{className:`grid w-full grid-cols-[auto_1fr_auto] items-center`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:[(0,W.jsx)(`button`,{type:`button`,onClick:i,"aria-label":`Back`,className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-base)]`,children:(0,W.jsx)(F,{className:`h-4 w-4`})}),(0,W.jsx)(`h1`,{className:`text-center text-3xl font-semibold tracking-tight`,children:`Connect Google`}),(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`})]}),(0,W.jsx)(`p`,{className:`mt-4 text-center text-body-medium-lighter text-[var(--content-secondary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`If you use Google, ${P} can use Gmail, Calendar, and Drive with your permission.`}),(0,W.jsx)(`div`,{className:`mt-6 flex items-stretch justify-center gap-3`,style:{animation:`fadeInUp 0.3s ease-out 0.2s both`},children:K.map(e=>(0,W.jsxs)(`div`,{className:`flex w-24 flex-col items-center gap-2.5 rounded-2xl bg-[var(--surface-lift)] px-3 pb-3 pt-4`,children:[(0,W.jsx)(`img`,{src:e.logoSrc,alt:``,width:28,height:28,className:`h-7 w-7 object-contain`,loading:`eager`}),(0,W.jsx)(`span`,{className:`text-center text-xs leading-tight text-[var(--content-tertiary)]`,children:e.label})]},e.id))}),(0,W.jsx)(`p`,{className:`mt-8 text-center text-body-medium-lighter text-[var(--content-secondary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.25s both`},children:`${ae} will never send email, change calendar events, or edit files without your permission. You can disconnect at any time.`}),(0,W.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.3s ease-out 0.35s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,onClick:N,disabled:v||C.isPending,className:`h-11 text-base`,children:v||C.isPending?(0,W.jsxs)(`span`,{className:`flex items-center justify-center gap-2`,children:[(0,W.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}),`Waiting for authorization...`]}):`Connect Google`}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:r,disabled:v||C.isPending,className:`h-11 text-base`,children:`Skip for now`})]})]})})}var q=[{id:`grounded`,label:`Grounded`,descriptor:`Calm and precise`,tagline:`Measured. No filler.`,names:[`Penn`,`Sage`,`Atlas`,`Orion`,`Reed`,`Quill`]},{id:`warm`,label:`Warm`,descriptor:`Warm and easy`,tagline:`Friendly and casual.`,names:[`Kit`,`Remy`,`Wren`,`Milo`,`Fenn`,`Cleo`]},{id:`energetic`,label:`Energetic`,descriptor:`Fast and direct`,tagline:`Brief. To the point.`,names:[`Nova`,`Ember`,`Cade`,`Lark`,`Vela`,`Ziggy`]},{id:`poetic`,label:`Poetic`,descriptor:`Quiet and observant`,tagline:`Listens, then replies.`,names:[`Luna`,`Iris`,`Vesper`,`Lyra`,`Juno`,`Ada`]}],Te=6;function Ee(){return q.flatMap(e=>e.names)}function De(){let e=Ee(),t=Math.min(Te,e.length);for(let n=0;n<t;n+=1){let t=n+Math.floor(Math.random()*(e.length-n)),r=e[n];e[n]=e[t],e[t]=r}return e.slice(0,t)}function Oe({userName:e,assistantName:t,selectedGroupId:n,displayedAssistantNames:r,onUserNameChange:i,onAssistantNameChange:a,onGroupChange:o,onBack:s,onComplete:c,onSkip:u}){return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex w-full max-w-md flex-col items-center px-6 pb-40 pt-12 text-[var(--content-default)]`,children:[(0,W.jsxs)(`div`,{className:`grid w-full items-center ${s?`grid-cols-[auto_1fr_auto]`:``}`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:[s?(0,W.jsx)(`button`,{type:`button`,onClick:s,"aria-label":`Back`,className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-base)]`,children:(0,W.jsx)(F,{className:`h-4 w-4`})}):null,(0,W.jsx)(`h1`,{className:`text-center text-3xl font-semibold tracking-tight`,children:`Let's get to know each other.`}),s?(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`}):null]}),(0,W.jsx)(`p`,{className:`mt-2 text-center text-body-medium-lighter text-[var(--content-secondary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`You can change these any time.`}),(0,W.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-6`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(d,{label:`Your name`,placeholder:`Your name`,value:e,onChange:e=>i(e.target.value),fullWidth:!0}),(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(d,{label:`What should I go by?`,placeholder:`Assistant name`,value:t,onChange:e=>a(e.target.value),fullWidth:!0}),(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`A few to try`}),(0,W.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:r.map(e=>{let n=e===t;return(0,W.jsx)(`button`,{type:`button`,onClick:()=>a(e),"aria-pressed":n,className:`cursor-pointer rounded-full border px-3 py-1 text-label-small-default transition-colors ${n?`border-[var(--primary-base)] bg-[var(--primary-base)] text-[var(--content-inset)]`:`border-[var(--border-element)] bg-[var(--surface-lift)] text-[var(--content-secondary)] hover:bg-[var(--surface-base)]`}`,children:e},e)})})]}),(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Pick a vibe`}),(0,W.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:q.map(e=>(0,W.jsx)(ke,{group:e,isActive:n===e.id,onToggle:()=>o(n===e.id?null:e.id)},e.id))})]})]}),(0,W.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,onClick:c,className:`h-11 text-base`,children:`Let's go`}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:u,className:`h-11 text-base`,children:`Skip`})]})]})})}function ke({group:e,isActive:t,onToggle:n}){return(0,W.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,"aria-label":`${e.label}, ${e.descriptor}`,className:`flex cursor-pointer flex-col items-start gap-0.5 rounded-lg border p-3 text-left transition-colors ${t?`border-[var(--primary-base)] bg-[var(--primary-base)] text-[var(--content-inset)]`:`border-[var(--border-element)] bg-[var(--surface-lift)] hover:bg-[var(--surface-base)]`}`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default ${t?`text-[var(--content-inset)]`:`text-[var(--content-default)]`}`,children:e.descriptor}),(0,W.jsx)(`span`,{className:`text-body-small-default ${t?`text-[var(--content-inset)] opacity-60`:`text-[var(--content-tertiary)]`}`,children:e.tagline})]})}function Ae({userName:e,assistantName:t,displayedAssistantNames:n,onUserNameChange:r,onAssistantNameChange:i,onBack:a,onContinue:o,onSkip:s,currentStep:c,totalSteps:u}){return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-md flex-col px-6 pb-40 text-[var(--content-default)]`,children:[(0,W.jsxs)(`div`,{className:`grid w-full grid-cols-[auto_1fr_auto] items-center pb-4`,style:{paddingTop:`calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 1rem)`,animation:`fadeInUp 0.3s ease-out 0.1s both`},children:[a?(0,W.jsx)(l,{variant:`ghost`,size:`compact`,iconOnly:(0,W.jsx)(F,{}),onClick:a,"aria-label":`Back`}):(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`}),(0,W.jsx)(`div`,{className:`flex justify-center`,children:(0,W.jsx)(V,{current:c,total:u})}),(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`})]}),(0,W.jsxs)(`div`,{className:`flex flex-1 flex-col items-center pt-4`,children:[(0,W.jsx)(`h1`,{className:`text-center text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:`Let's get to know each other.`}),(0,W.jsx)(`p`,{className:`mt-2 text-center text-body-medium-lighter text-[var(--content-secondary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`You can change these any time.`}),(0,W.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-6`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(d,{label:`Your name`,placeholder:`Your name`,value:e,onChange:e=>r(e.target.value),fullWidth:!0}),(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(d,{label:`What should I go by?`,placeholder:`Assistant name`,value:t,onChange:e=>i(e.target.value),fullWidth:!0}),(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`A few to try`}),(0,W.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(e=>{let n=e===t;return(0,W.jsx)(`button`,{type:`button`,onClick:()=>i(e),"aria-pressed":n,className:`cursor-pointer rounded-full border px-3 py-1 text-label-small-default transition-colors ${n?`border-[var(--primary-base)] bg-[var(--primary-base)] text-[var(--content-inset)]`:`border-[var(--border-element)] bg-[var(--surface-lift)] text-[var(--content-secondary)] hover:bg-[var(--surface-base)]`}`,children:e},e)})})]})]})]}),(0,W.jsxs)(`div`,{className:`flex w-full flex-col gap-2 pb-4`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,onClick:o,className:`h-11 text-base`,children:`Continue`}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:s,className:`h-11 text-base`,children:`Skip`})]})]})})}var je=[{id:`chatgpt`,label:`ChatGPT`,logoSrc:E(`/images/prior-assistants/chatgpt.svg`)},{id:`claude`,label:`Claude`,logoSrc:E(`/images/prior-assistants/claude.svg`)},{id:`openclaw`,label:`OpenClaw`,logoSrc:E(`/images/prior-assistants/openclaw.png`)},{id:`hermes`,label:`Hermes`,logoSrc:E(`/images/prior-assistants/hermes.png`)},{id:`manus`,label:`Manus`,logoSrc:E(`/images/prior-assistants/manus.svg`)},{id:`gemini`,label:`Gemini`,logoSrc:E(`/images/prior-assistants/gemini.svg`)},{id:`copilot`,label:`Copilot`,logoSrc:E(`/images/prior-assistants/copilot.svg`)}];function Me({selectedAssistants:e,onChange:t,onBack:n,onContinue:r,onSkip:i}){let[a,o]=(0,U.useState)(()=>Pe(e)),[s,c]=(0,U.useState)(()=>a.length>0),f=(0,U.useRef)(J(e));(0,U.useEffect)(()=>{let t=J(e);if(t===f.current)return;let n=Pe(e);o(n),c(e=>e||n.length>0),f.current=t},[e]),(0,U.useEffect)(()=>{let n=new Set([...e].filter(e=>!e.startsWith(`other:`))),r=new Set;for(let e of a.split(`,`)){let t=e.trim();t&&(r.has(t)||(r.add(t),n.add(`other:${t}`)))}Ne(n,e)||(f.current=J(n),t(n))},[a]);let p=n=>{let r=new Set(e);r.has(n)?r.delete(n):r.add(n),t(r)},g=(0,U.useMemo)(()=>{let e=new Set;return a.split(`,`).map(e=>e.trim()).filter(t=>!t||e.has(t)?!1:(e.add(t),!0))},[a]),_=e.size===0?`Continue`:`Continue · ${e.size} selected`;return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex w-full max-w-2xl flex-col items-center px-6 pb-40 pt-12 text-[var(--content-default)]`,children:[(0,W.jsxs)(`div`,{className:`grid w-full items-center grid-cols-[auto_1fr_auto]`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:[(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Back`,className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-base)]`,children:(0,W.jsx)(F,{className:`h-4 w-4`})}),(0,W.jsx)(`h1`,{className:`text-center text-3xl font-semibold tracking-tight`,children:`Have you used any of these?`}),(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`})]}),(0,W.jsx)(`p`,{className:`mt-4 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`If you've built anything with another assistant, I can help you bring it over.`}),(0,W.jsxs)(`div`,{className:`mt-8 grid w-full grid-cols-2 gap-2 sm:grid-cols-3 md:grid-cols-4`,style:{animation:`fadeInUp 0.3s ease-out 0.2s both`},children:[je.map(t=>(0,W.jsx)(Fe,{assistant:t,selected:e.has(t.id),onToggle:()=>p(t.id)},t.id)),s?null:(0,W.jsx)(Ie,{onClick:()=>c(!0)})]}),s?(0,W.jsx)(u,{padding:`md`,className:`mt-3 w-full border-[var(--primary-base)] bg-[color-mix(in_srgb,var(--primary-base)_8%,transparent)]`,children:(0,W.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(m,{className:`h-3.5 w-3.5 text-[var(--content-secondary)]`,"aria-hidden":`true`}),(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Something else`}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>{c(!1),o(``)},"aria-label":`Dismiss custom assistants`,className:`ml-auto inline-flex h-6 w-6 cursor-pointer items-center justify-center rounded-md text-[var(--content-tertiary)] hover:bg-[var(--surface-base)]`,children:(0,W.jsx)(h,{className:`h-3 w-3`,"aria-hidden":`true`})})]}),(0,W.jsx)(d,{"aria-label":`Other assistants`,placeholder:`e.g. Perplexity, Poe, Character.AI...`,value:a,onChange:e=>o(e.target.value),helperText:`Separate multiple assistants with commas`,fullWidth:!0}),g.length>0?(0,W.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:g.map(e=>(0,W.jsx)(`span`,{className:`rounded-full bg-[var(--primary-base)] px-3 py-1 text-label-small-default text-[var(--content-inset)]`,children:e},e))}):null]})}):null,(0,W.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:e.size===0,onClick:r,className:`h-11 text-base`,children:_}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:i,className:`h-11 text-base`,children:`I haven't used any`})]})]})})}function Ne(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Pe(e){return[...e].filter(e=>e.startsWith(`other:`)).map(e=>e.slice(6)).sort().join(`, `)}function J(e){return[...e].filter(e=>e.startsWith(`other:`)).sort().join(`|`)}function Fe({assistant:e,selected:t,onToggle:n}){return(0,W.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,"aria-label":e.label,className:`relative flex h-[88px] w-full cursor-pointer flex-col items-center justify-center gap-1.5 rounded-lg border p-2 transition-colors ${t?`border-[var(--primary-base)] bg-[color-mix(in_srgb,var(--primary-base)_10%,transparent)]`:`border-[var(--border-element)] bg-[var(--surface-lift)] hover:bg-[var(--surface-base)]`}`,children:[(0,W.jsx)(Le,{assistant:e,size:32}),(0,W.jsx)(`span`,{className:`line-clamp-2 text-center text-label-medium-default text-[var(--content-default)]`,children:e.label}),t?(0,W.jsx)(`span`,{"aria-hidden":`true`,className:`absolute right-2 top-2 flex h-4 w-4 items-center justify-center rounded-full bg-[var(--primary-base)]`,children:(0,W.jsx)(R,{className:`h-2.5 w-2.5 text-[var(--content-inset)]`,"aria-hidden":`true`})}):null]})}function Ie({onClick:e}){return(0,W.jsxs)(`button`,{type:`button`,onClick:e,"aria-label":`Something else`,className:`flex h-[88px] w-full cursor-pointer flex-col items-center justify-center gap-1.5 rounded-lg border border-[var(--border-element)] bg-[var(--surface-lift)] p-2 transition-colors hover:bg-[var(--surface-base)]`,children:[(0,W.jsx)(`span`,{className:`flex h-8 w-8 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,W.jsx)(P,{className:`h-4 w-4 text-[var(--content-secondary)]`,"aria-hidden":`true`})}),(0,W.jsx)(`span`,{className:`line-clamp-2 text-center text-label-medium-default text-[var(--content-default)]`,children:`Something else`})]})}function Le({assistant:e,size:t}){if(e.logoSrc)return e.logoSrcDark?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`flex items-center justify-center dark:hidden`,style:{width:t,height:t},"aria-hidden":`true`,children:(0,W.jsx)(`img`,{src:e.logoSrc,alt:``,width:t,height:t,className:`max-h-full max-w-full object-contain`,loading:`eager`})}),(0,W.jsx)(`span`,{className:`hidden items-center justify-center dark:flex`,style:{width:t,height:t},"aria-hidden":`true`,children:(0,W.jsx)(`img`,{src:e.logoSrcDark,alt:``,width:t,height:t,className:`max-h-full max-w-full object-contain`,loading:`eager`})})]}):(0,W.jsx)(`span`,{className:`flex items-center justify-center`,style:{width:t,height:t},children:(0,W.jsx)(`img`,{src:e.logoSrc,alt:``,width:t,height:t,className:`max-h-full max-w-full object-contain`,loading:`eager`})});let n=e.label.slice(0,2).toUpperCase();return(0,W.jsx)(`span`,{className:`flex items-center justify-center rounded-full bg-[var(--surface-base)] text-label-small-default text-[var(--content-default)]`,style:{width:t,height:t},"aria-hidden":`true`,children:n})}function Re({selectedTasks:e,onChange:t,onBack:n,onContinue:r,onSkip:i}){let a=n=>{let r=new Set(e);r.has(n)?r.delete(n):r.add(n),t(r)};return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center px-6 pb-40 pt-12 text-[var(--content-default)]`,children:[(0,W.jsxs)(`div`,{className:`grid w-full grid-cols-[auto_1fr_auto] items-center`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:[(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Back`,className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-base)]`,children:(0,W.jsx)(F,{className:`h-4 w-4`})}),(0,W.jsx)(`h1`,{className:`text-center text-3xl font-semibold tracking-tight`,children:`What are you working on?`}),(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`})]}),(0,W.jsx)(`p`,{className:`mt-4 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`Pick the one or two you do most — you can select more if it really is all of it.`}),(0,W.jsx)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.3s ease-out 0.2s both`},children:L.map(t=>{let n=D[t.iconKey],r=e.has(t.id);return(0,W.jsxs)(`button`,{type:`button`,onClick:()=>a(t.id),"aria-pressed":r,className:`group flex w-full cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 text-left transition-colors ${r?`border-[var(--primary-base)] bg-[var(--primary-base)]/10`:`border-[var(--border-element)] bg-[var(--surface-lift)] hover:bg-[var(--surface-base)]`}`,children:[(0,W.jsx)(`div`,{className:`flex w-6 shrink-0 items-center justify-center text-[var(--content-secondary)]`,children:n?(0,W.jsx)(n,{className:`h-4 w-4`}):null}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t.label}),(0,W.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t.sublabel})]}),(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`flex h-5 w-5 shrink-0 items-center justify-center rounded-md ${r?`bg-[var(--primary-base)]`:`border-[1.5px] border-[var(--border-element)]`}`,children:r?(0,W.jsx)(R,{className:`h-3 w-3 text-[var(--content-inset)]`}):null})]},t.id)})}),(0,W.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:e.size===0,onClick:r,className:`h-11 text-base`,children:`Continue`}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:i,className:`h-11 text-base`,children:`I'll set this up later`})]})]})})}var ze=new Set([`gmail`,`google-calendar`,`google-drive`]),Be=[{id:`gmail`,label:`Gmail`,logoSrc:E(`/images/integrations/gmail.svg`)},{id:`outlook`,label:`Outlook`,logoSrc:E(`/images/integrations/outlook.png`)},{id:`google-calendar`,label:`Google Calendar`,logoSrc:E(`/images/integrations/google-calendar.svg`)},{id:`slack`,label:`Slack`,logoSrc:E(`/images/integrations/slack.svg`)},{id:`notion`,label:`Notion`,logoSrc:E(`/images/integrations/notion.svg`)},{id:`linear`,label:`Linear`,logoSrc:E(`/images/integrations/linear-light-logo.svg`)},{id:`jira`,label:`Jira`,logoSrc:E(`/images/integrations/jira.svg`)},{id:`github`,label:`GitHub`,logoSrc:E(`/images/integrations/github.svg`),logoSrcDark:E(`/images/integrations/github-dark.svg`)},{id:`figma`,label:`Figma`,logoSrc:E(`/images/integrations/figma.svg`)},{id:`google-drive`,label:`Google Drive`,logoSrc:E(`/images/integrations/google-drive.svg`)},{id:`excel`,label:`Excel`,logoSrc:E(`/images/integrations/excel.svg`)},{id:`apple-notes`,label:`Apple Notes`,logoSrc:E(`/images/integrations/apple-notes.svg`)}];function Ve(e){let t=e.map(e=>e.startsWith(`other:`)?e.slice(6):e);return Array.from(new Set(t)).sort()}function He({selectedTools:e,onChange:t,onBack:n,onContinue:r,onSkip:i}){let[a,o]=(0,U.useState)(()=>Y(e)),[s,c]=(0,U.useState)(()=>a.length>0),f=(0,U.useRef)(We(e));(0,U.useEffect)(()=>{let t=We(e);if(t===f.current)return;let n=Y(e);o(n),c(e=>e||n.length>0),f.current=t},[e]),(0,U.useEffect)(()=>{let n=new Set([...e].filter(e=>!e.startsWith(`other:`))),r=new Set;for(let e of a.split(`,`)){let t=e.trim();t&&(r.has(t)||(r.add(t),n.add(`other:${t}`)))}Ue(n,e)||(f.current=We(n),t(n))},[a]);let p=n=>{let r=new Set(e);r.has(n)?r.delete(n):r.add(n),t(r)},g=(0,U.useMemo)(()=>{let e=new Set;return a.split(`,`).map(e=>e.trim()).filter(t=>!t||e.has(t)?!1:(e.add(t),!0))},[a]),_=e.size===0?`Continue`:`Continue · ${e.size} selected`;return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex w-full max-w-2xl flex-col items-center px-6 pb-40 pt-12 text-[var(--content-default)]`,children:[(0,W.jsxs)(`div`,{className:`grid w-full items-center ${n?`grid-cols-[auto_1fr_auto]`:``}`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:[n?(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Back`,className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-base)]`,children:(0,W.jsx)(F,{className:`h-4 w-4`})}):null,(0,W.jsx)(`h1`,{className:`text-center text-3xl font-semibold tracking-tight`,children:`What do you use?`}),n?(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`}):null]}),(0,W.jsx)(`p`,{className:`mt-4 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`This helps me tailor how I assist you. No connections needed — you can set those up later.`}),(0,W.jsxs)(`div`,{className:`mt-8 grid w-full grid-cols-2 gap-2 sm:grid-cols-3 md:grid-cols-4`,style:{animation:`fadeInUp 0.3s ease-out 0.2s both`},children:[Be.map(t=>(0,W.jsx)(Ge,{tool:t,selected:e.has(t.id),onToggle:()=>p(t.id)},t.id)),s?null:(0,W.jsx)(Ke,{onClick:()=>c(!0)})]}),s?(0,W.jsx)(u,{padding:`md`,className:`mt-3 w-full border-[var(--primary-base)] bg-[color-mix(in_srgb,var(--primary-base)_8%,transparent)]`,children:(0,W.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(m,{className:`h-3.5 w-3.5 text-[var(--content-secondary)]`,"aria-hidden":`true`}),(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Something else`}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>{c(!1),o(``)},"aria-label":`Dismiss custom tools`,className:`ml-auto inline-flex h-6 w-6 cursor-pointer items-center justify-center rounded-md text-[var(--content-tertiary)] hover:bg-[var(--surface-base)]`,children:(0,W.jsx)(h,{className:`h-3 w-3`,"aria-hidden":`true`})})]}),(0,W.jsx)(d,{"aria-label":`Other tools`,placeholder:`e.g. Trello, Basecamp, Asana...`,value:a,onChange:e=>o(e.target.value),helperText:`Separate multiple tools with commas`,fullWidth:!0}),g.length>0?(0,W.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:g.map(e=>(0,W.jsx)(`span`,{className:`rounded-full bg-[var(--primary-base)] px-3 py-1 text-label-small-default text-[var(--content-inset)]`,children:e},e))}):null]})}):null,(0,W.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:e.size===0,onClick:r,className:`h-11 text-base`,children:_}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:i,className:`h-11 text-base`,children:`I'll set this up later`})]})]})})}function Ue(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Y(e){return[...e].filter(e=>e.startsWith(`other:`)).map(e=>e.slice(6)).sort().join(`, `)}function We(e){return[...e].filter(e=>e.startsWith(`other:`)).sort().join(`|`)}function Ge({tool:e,selected:t,onToggle:n}){return(0,W.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,"aria-label":e.label,className:`relative flex h-[88px] w-full cursor-pointer flex-col items-center justify-center gap-1.5 rounded-lg border p-2 transition-colors ${t?`border-[var(--primary-base)] bg-[color-mix(in_srgb,var(--primary-base)_10%,transparent)]`:`border-[var(--border-element)] bg-[var(--surface-lift)] hover:bg-[var(--surface-base)]`}`,children:[(0,W.jsx)(qe,{tool:e,size:32}),(0,W.jsx)(`span`,{className:`line-clamp-2 text-center text-label-medium-default text-[var(--content-default)]`,children:e.label}),t?(0,W.jsx)(`span`,{"aria-hidden":`true`,className:`absolute right-2 top-2 flex h-4 w-4 items-center justify-center rounded-full bg-[var(--primary-base)]`,children:(0,W.jsx)(R,{className:`h-2.5 w-2.5 text-[var(--content-inset)]`,"aria-hidden":`true`})}):null]})}function Ke({onClick:e}){return(0,W.jsxs)(`button`,{type:`button`,onClick:e,"aria-label":`Something else`,className:`flex h-[88px] w-full cursor-pointer flex-col items-center justify-center gap-1.5 rounded-lg border border-[var(--border-element)] bg-[var(--surface-lift)] p-2 transition-colors hover:bg-[var(--surface-base)]`,children:[(0,W.jsx)(`span`,{className:`flex h-8 w-8 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,W.jsx)(P,{className:`h-4 w-4 text-[var(--content-secondary)]`,"aria-hidden":`true`})}),(0,W.jsx)(`span`,{className:`line-clamp-2 text-center text-label-medium-default text-[var(--content-default)]`,children:`Something else`})]})}function qe({tool:e,size:t}){if(e.logoSrc)return e.logoSrcDark?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`flex items-center justify-center dark:hidden`,style:{width:t,height:t},"aria-hidden":`true`,children:(0,W.jsx)(`img`,{src:e.logoSrc,alt:``,width:t,height:t,className:`max-h-full max-w-full object-contain`,loading:`eager`})}),(0,W.jsx)(`span`,{className:`hidden items-center justify-center dark:flex`,style:{width:t,height:t},"aria-hidden":`true`,children:(0,W.jsx)(`img`,{src:e.logoSrcDark,alt:``,width:t,height:t,className:`max-h-full max-w-full object-contain`,loading:`eager`})})]}):(0,W.jsx)(`span`,{className:`flex items-center justify-center`,style:{width:t,height:t},children:(0,W.jsx)(`img`,{src:e.logoSrc,alt:``,width:t,height:t,className:`max-h-full max-w-full object-contain`,loading:`eager`})});let n=e.label.slice(0,2).toUpperCase();return(0,W.jsx)(`span`,{className:`flex items-center justify-center rounded-full bg-[var(--surface-base)] text-label-small-default text-[var(--content-default)]`,style:{width:t,height:t},"aria-hidden":`true`,children:n})}function Je({selectedGroupId:e,onGroupChange:t,onBack:n,onContinue:r,onSkip:i,currentStep:a,totalSteps:o}){return(0,W.jsx)(z,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-md flex-col px-6 pb-40 text-[var(--content-default)]`,children:[(0,W.jsxs)(`div`,{className:`grid w-full grid-cols-[auto_1fr_auto] items-center pb-4`,style:{paddingTop:`calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 1rem)`,animation:`fadeInUp 0.3s ease-out 0.1s both`},children:[(0,W.jsx)(l,{variant:`ghost`,size:`compact`,iconOnly:(0,W.jsx)(F,{}),onClick:n,"aria-label":`Back`}),(0,W.jsx)(`div`,{className:`flex justify-center`,children:(0,W.jsx)(V,{current:a,total:o})}),(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`h-8 w-8`})]}),(0,W.jsxs)(`div`,{className:`flex flex-1 flex-col items-center pt-4`,children:[(0,W.jsx)(`h1`,{className:`w-full text-left text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:`What's my vibe?`}),(0,W.jsx)(`p`,{className:`mt-2 w-full text-left text-body-medium-lighter text-[var(--content-secondary)]`,style:{animation:`fadeInUp 0.3s ease-out 0.15s both`},children:`You can change this any time.`}),(0,W.jsx)(`div`,{className:`mt-8 flex w-full flex-col gap-3`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:q.map(n=>{let r=e===n.id;return(0,W.jsxs)(`button`,{type:`button`,onClick:()=>t(r?null:n.id),"aria-pressed":r,className:`flex cursor-pointer items-center justify-between rounded-xl border px-4 py-4 text-left transition-colors ${r?`border-[var(--content-default)] bg-[var(--surface-lift)]`:`border-[var(--border-element)] bg-[var(--surface-lift)] hover:bg-[var(--surface-base)]`}`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:n.descriptor}),(0,W.jsx)(`span`,{className:`flex h-5 w-5 items-center justify-center rounded-full border-2 transition-colors ${r?`border-[var(--content-default)]`:`border-[var(--content-disabled)]`}`,children:r&&(0,W.jsx)(`span`,{className:`h-2.5 w-2.5 rounded-full bg-[var(--content-default)]`})})]},n.id)})})]}),(0,W.jsxs)(`div`,{className:`flex w-full flex-col gap-2 pb-4`,style:{animation:`fadeInUp 0.3s ease-out 0.3s both`},children:[(0,W.jsx)(l,{variant:`primary`,size:`regular`,fullWidth:!0,onClick:r,className:`h-11 text-base`,children:`Continue`}),(0,W.jsx)(l,{variant:`ghost`,size:`regular`,fullWidth:!0,onClick:i,className:`h-11 text-base`,children:`Skip`})]})]})})}function Ye(e){let[t,n]=(0,U.useState)(()=>(e??``).trim()),r=(0,U.useRef)(!1);return(0,U.useEffect)(()=>{if(r.current)return;let t=(e??``).trim();t&&n(e=>e||t)},[e]),{value:t,onChange:(0,U.useCallback)(e=>{r.current=!0,n(e)},[])}}var Xe=[`gmail`,`google-calendar`,`google-drive`],X=`experiment-activation-flow-2026-06-03`,Ze=`BOOTSTRAP-ACTIVATION-RAIL.md`;function Qe(e,t,n){return t?.initialMessage?t.initialMessage:n?ae(e):N}function $e(e){let{mode:t,recipe:n}=e,r=e.connectedScopes!==void 0,i;i=t===`native`?{tools:[],tasks:[],tone:e.tone,googleConnected:!1}:t===`paredDown`?{tools:r?[...Xe]:[],tasks:n?.tasks??[],tone:e.tone,googleConnected:r}:{tools:Ve([...e.selectedTools]),tasks:[...e.selectedTasks].sort(),tone:e.tone},n&&(i.cohort=n.cohort,i.bootstrapTemplate=n.bootstrapTemplate,i.skills=n.skills),e.activationFlowEnabled&&(i.cohort=X,i.bootstrapTemplate=Ze);let a=e.userName.trim();a&&(i.userName=a);let o=e.assistantName.trim();return o&&(i.assistantName=o),t===`paredDown`?r&&(i.googleScopes=e.connectedScopes):t===`control`&&(r?(i.googleConnected=!0,i.googleScopes=e.connectedScopes):e.googleConnected?(i.googleConnected=!0,i.googleScopes=e.googleScopes):i.googleConnected=!1),t===`control`&&e.selectedPriorAssistants.size>0&&(i.priorAssistants=Ve([...e.selectedPriorAssistants])),i.initialMessage=Qe(i,e.activationFlowEnabled?null:n,e.selfIntroGreetingEnabled),i}function et(e){return!e.localMode||e.platformSession===`present`?!0:e.platformSession===`unknown`&&e.hasCachedPlatformAssistant}function tt(e){let{paredDown:t}=e;return[{id:`name`,funnelStep:B.nameVibe,enabled:!0},{id:`taskTone`,funnelStep:B.controlWorkType,enabled:!t},{id:`tools`,funnelStep:B.controlTools,enabled:!t},{id:`priorAssistants`,funnelStep:B.controlPriorAssistants,enabled:!t&&e.canOfferPriorAssistants},{id:`google`,funnelStep:t?B.gmailConnect:B.controlGmailConnect,enabled:e.canOfferGoogleStep&&(t||e.hasGoogleTool)},{id:`iosApp`,funnelStep:B.controlGetApp,enabled:!t&&e.showIOSAppStep}].filter(e=>e.enabled).map(({enabled:e,...t})=>t)}function nt(){return[{id:`nativeName`,funnelStep:null},{id:`nativeVibe`,funnelStep:null}]}var rt=`1`;function it(e){return e===`nativeVibe`||e===rt?`nativeVibe`:null}function at(e,t){let n=e.findIndex(e=>e.id===t);return n<0?null:e[n+1]?.id??null}function ot(e,t){let n=e.findIndex(e=>e.id===t);return n<=0?null:e[n-1]?.id??null}var st=3;function ct(){let e=w();return e?.cloud===`vellum`?e.assistantId:S()[0]?.assistantId??null}function Z(){let e=r(),[n]=i(),a=y.use.user(),s=_(),c=g(),l=a?.id??null,u=a?.firstName??``,d=a?.lastName??``,p=ee(),m=f.use.activeAssistantId(),[,h]=he(),x=C(),S=n.get(`replay`)===`1`,w=oe()&&!de(),E=le.use.stringFlags().preChatOnboardingExperiment20260606??`control`,te=le.use.experimentActivationFlow20260603(),D=le.use.selfIntroGreeting(),ne=ve(E),re=be()??ne,ie=re===ye.paredDown,A=x?ct():null,j=l?`prechat_native_screen:${l}`:null,[M,N]=(0,U.useState)(()=>p?`nativeName`:`name`),P=(0,U.useCallback)(e=>{if(j)try{e===null?sessionStorage.removeItem(j):sessionStorage.setItem(j,e)}catch{}},[j]);(0,U.useLayoutEffect)(()=>{if(j)try{let e=it(sessionStorage.getItem(j));e&&N(e)}catch{}},[j]),(0,U.useEffect)(()=>{p&&P(M===`nativeVibe`?`nativeVibe`:null)},[p,M,P]);let ae=y.use.platformSession(),F=v(ae),[I,ce]=(0,U.useState)(()=>new Set),[L,pe]=(0,U.useState)(()=>new Set),[R,z]=(0,U.useState)(()=>new Set),{value:B,onChange:V}=Ye(x&&!F?``:u||d),[H,Se]=(0,U.useState)(null),[G]=(0,U.useState)(()=>De()),[K,q]=(0,U.useState)(``),[Te,Ee]=(0,U.useState)(!1),[ke,je]=(0,U.useState)([]),{data:Ne}=o({...fe(),enabled:!c&&s&&(!x||F)}),{data:Pe,isLoading:J}=o({queryKey:[`onboarding-recipe`,l],queryFn:xe,enabled:!c&&s&&!p&&!x,staleTime:1/0}),Fe=Pe??null,Ie=Ne?.id??m??A,Le=et({localMode:x,platformSession:ae,hasCachedPlatformAssistant:A!==null}),Be=Le,Ve=Le,Ue=(0,U.useCallback)(async()=>{await b.checkAssistant(),e(`${T.assistant}?onboarding=1`,{replace:!0})},[e]),[Y,We]=(0,U.useState)(()=>c||!s?{userId:l,decision:`pending`}:{userId:l,decision:ue()&&se()?`ok`:`missing`}),Ge=Y.decision;(0,U.useEffect)(()=>{c||!s||Y.userId===l&&Y.decision!==`pending`||We({userId:l,decision:ue()&&se()?`ok`:`missing`})},[Y,c,s,l]),(0,U.useEffect)(()=>{if(!c){if(!s){e(T.account.login,{replace:!0});return}if(me()&&!S){Ue();return}if(Ge===`missing`&&!p){e(T.onboarding.privacy,{replace:!0});return}}},[Ge,c,s,p,S,e,Ue,h,l]);let Ke=c||!s||!(p||Ge===`ok`)||!!J||me()&&!S;function qe(e,t=re){S||_e(e,{userId:l,variant:ge(t)})}let Xe=[...I].some(e=>ze.has(e)),X=p?nt():tt({paredDown:ie,canOfferPriorAssistants:Ve,canOfferGoogleStep:Be,hasGoogleTool:Xe,showIOSAppStep:w});async function Ze(e){k($e({mode:ie?`paredDown`:`control`,recipe:Fe,selectedTools:I,selectedTasks:L,selectedPriorAssistants:e?.selectedPriorAssistants??R,tone:H??Fe?.tone??`grounded`,userName:B,assistantName:K,selfIntroGreetingEnabled:D,activationFlowEnabled:te,googleConnected:Te,googleScopes:ke,connectedScopes:e?.connectedScopes}));let n=K.trim();n&&O(n);try{h(!0)}catch(e){t(e,{context:`prechat_mark_onboarding_completed`})}b.markExpectingFirstMessage(),await Ue()}function Qe(){k($e({mode:`native`,recipe:null,selectedTools:I,selectedTasks:L,selectedPriorAssistants:R,tone:H??`grounded`,userName:B,assistantName:K,selfIntroGreetingEnabled:D,googleConnected:!1,googleScopes:[]}));let t=K.trim();t&&O(t),P(null),e(T.onboarding.privacy)}let rt=e=>{p?Qe():Ze(e)},Z=(e,t)=>{e.funnelStep&&qe(e.funnelStep);let n=at(X,e.id);n?N(n):rt(t)},Q=e=>{let t=ot(X,e);t&&N(t)};if(Ke)return null;let $=X.find(e=>e.id===M)??X[0];return $?$.id===`nativeName`?(0,W.jsx)(Ae,{userName:B,assistantName:K,displayedAssistantNames:G,onUserNameChange:V,onAssistantNameChange:q,onContinue:()=>Z($),onSkip:()=>Z($),currentStep:0,totalSteps:st}):$.id===`nativeVibe`?(0,W.jsx)(Je,{selectedGroupId:H,onGroupChange:Se,onBack:()=>Q($.id),onContinue:()=>Z($),onSkip:()=>Z($),currentStep:1,totalSteps:st}):$.id===`name`?(0,W.jsx)(Oe,{userName:B,assistantName:K,selectedGroupId:H,displayedAssistantNames:G,onUserNameChange:V,onAssistantNameChange:q,onGroupChange:Se,onComplete:()=>Z($),onSkip:()=>Z($)}):$.id===`taskTone`?(0,W.jsx)(Re,{selectedTasks:L,onChange:pe,onBack:()=>Q($.id),onContinue:()=>Z($),onSkip:()=>Z($)}):$.id===`tools`?(0,W.jsx)(He,{selectedTools:I,onChange:ce,onBack:()=>Q($.id),onContinue:()=>Z($),onSkip:()=>Z($)}):$.id===`priorAssistants`?(0,W.jsx)(Me,{selectedAssistants:R,onChange:z,onBack:()=>Q($.id),onContinue:()=>Z($),onSkip:()=>{let e=new Set;z(e),Z($,{selectedPriorAssistants:e})}}):$.id===`google`?Ie?(0,W.jsx)(we,{assistantId:Ie,assistantName:K,onConnect:e=>{Ee(!0),je(e),Z($,{connectedScopes:e})},onSkip:()=>Z($),onBack:()=>Q($.id)}):null:$.id===`iosApp`?(0,W.jsx)(Ce,{onComplete:()=>Z($)}):null:null}export{Z as PreChatFlow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,n,o as r,r as i}from"./device-settings-C07QvMzm.js";import{t as a}from"./react-DJZBPgpf.js";import{n as o}from"./QueryClientProvider-DBAeGN3q.js";import{t as s}from"./useQuery-DAtrV0RI.js";import{t as c}from"./useMutation-DTb3lMvF.js";import{t as l}from"./jsx-runtime-XSukodg_.js";import{t as u}from"./button-Cs9tc8OR.js";import{t as d}from"./card-BcKGvsaa.js";import{t as f}from"./dropdown-PPtOL9bp.js";import{t as p}from"./confirm-dialog-DavdF-L4.js";import{t as m}from"./notice-BWm2kHlI.js";import{t as h}from"./tag-BkZB4euH.js";import{t as g}from"./input-DwAJUlac.js";import{t as _}from"./toggle-DGzEs0L1.js";import{t as v}from"./toast-Cii5pffK.js";import{t as y}from"./chevron-right-CJ0Oykrn.js";import{t as b}from"./loader-circle-FEkI0Am4.js";import{t as x}from"./pencil-CESg1M7c.js";import{t as S}from"./x-2OoTSOWJ.js";import{t as C}from"./sdk.gen-Dvq7zGs0.js";import{c as w,i as T,n as E,o as D,p as O,r as k,s as A,t as j}from"./native-biometric-V5gaOHYQ.js";import{At as M,H as N,Mi as P,S as F,So as ee,U as te,V as ne,Wi as I,b as L,dt as R,fo as z,ft as B,mt as re,pt as ie,ut as ae,x as oe,y as V}from"./index-DmTi6dG-.js";import{t as H}from"./detail-card-Y8InXOgy.js";var U=e(a(),1),W=l();function G(){let e=B({platformHostedOnly:!0}),t=ae(),n=R(),r=o(),{data:i,isLoading:a,isError:l}=s({...ie(),enabled:e===`full`&&t}),u=c({mutationFn:async e=>{let{data:t}=await C({body:{access_consented:e},throwOnError:!0});return t},onSuccess:e=>{r.setQueryData(re(),e),v.success(e?.access_consented?`Admin data access enabled.`:`Admin data access disabled.`)},onError:()=>{v.error(`Failed to update log access consent.`)}});if(e===`gated`)return null;let d=e===`full`&&n,f=i?.access_consented??!1,p=e!==`full`||!t||a||l||u.isPending;return(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex-1`,children:[(0,W.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Allow admin access to assistant data`}),(0,W.jsxs)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-tertiary)]`,children:[`Lets Vellum administrators reach privileged data on your assistant pod for debugging — today this means tailing the daily assistant log at`,` `,(0,W.jsx)(`code`,{className:`rounded bg-[var(--surface-base)] px-1.5 font-mono text-[var(--content-secondary)] dark:bg-[var(--surface-lift)] dark:text-[var(--content-default)]`,children:`/workspace/data/logs/assistant-YYYY-MM-DD.log`}),`. Off by default. Turn on temporarily when asking support to investigate an issue, then turn off when you're done.`]}),e===`full`&&l&&(0,W.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--system-negative-strong)]`,children:`Failed to load consent setting.`})]}),(0,W.jsx)(`div`,{className:`flex items-center gap-2`,children:e===`disabled`?null:(0,W.jsxs)(W.Fragment,{children:[(u.isPending||d)&&(0,W.jsx)(b,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,W.jsx)(_,{checked:f,disabled:p,onChange:()=>u.mutate(!f)})]})})]}),e===`disabled`&&(0,W.jsx)(m,{tone:`info`,className:`mt-3`,children:`Log in to the Vellum platform to manage admin data access.`})]})}function K(){let e=O(),[t,n]=(0,U.useState)(()=>T()),[r,i]=(0,U.useState)(!1),[a,o]=(0,U.useState)(`Face ID`),[s,c]=(0,U.useState)(!1);if((0,U.useEffect)(()=>{e&&(k().then(i),E().then(o))},[e]),!e||!r)return null;let l=async()=>{c(!0);try{if(t)D(!1),await j(),n(!1);else{let e=w();e&&await A(e),D(!0),n(!0)}}finally{c(!1)}};return(0,W.jsx)(H,{title:`Security`,children:(0,W.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex-1`,children:[(0,W.jsxs)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:[`Use `,a,` for sign-in`]}),(0,W.jsxs)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-tertiary)]`,children:[`When your session expires, verify with `,a,` or your device passcode instead of signing in again.`]})]}),(0,W.jsx)(_,{checked:t,onChange:()=>void l(),disabled:s})]})})}function q(){return(0,W.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}var J=V.map(e=>({value:e.id,label:e.label,icon:(0,W.jsx)(e.icon,{className:`h-3.5 w-3.5`})}));function se(){let{data:e}=s(M()),t=e?.results?.[0]?.id??null,n=o(),{data:r,isError:i}=s({queryKey:[`thresholds`,t],queryFn:()=>oe(t),enabled:!!t,staleTime:3e4}),[a,c]=(0,U.useState)(`relaxed`),[l,u]=(0,U.useState)(`conservative`),[p,m]=(0,U.useState)(`strict`),[h,g]=(0,U.useState)(!1),_=(0,U.useRef)(!1),[v,b]=(0,U.useState)(!1),x=(0,U.useRef)(null),S=(0,U.useRef)(null);(0,U.useEffect)(()=>{!r||_.current||(c(L(r.interactive).id),u(L(r.autonomous).id),m(L(r.headless).id),b(!0))},[r]),(0,U.useEffect)(()=>()=>{x.current!==null&&(clearTimeout(x.current),x.current=null,S.current?.(),S.current=null)},[]);let C=(0,U.useCallback)((e,r,i)=>{if(!t||!v)return;let a=V.find(t=>t.id===e)?.riskThreshold,o=V.find(e=>e.id===r)?.riskThreshold,s=V.find(e=>e.id===i)?.riskThreshold;!a||!o||!s||F(t,{interactive:a,autonomous:o,headless:s}).then(()=>{n.invalidateQueries({queryKey:[`thresholds`,t]})}).catch(()=>{})},[t,v,n]),w=(0,U.useCallback)((e,t,n)=>{x.current!==null&&clearTimeout(x.current),S.current=()=>C(e,t,n),x.current=setTimeout(()=>{S.current?.(),x.current=null,S.current=null},500)},[C]),T=(0,U.useCallback)(e=>{_.current=!0,c(e),w(e,l,p)},[l,p,w]),E=(0,U.useCallback)(e=>{_.current=!0,u(e),w(a,e,p)},[a,p,w]),D=(0,U.useCallback)(e=>{_.current=!0,m(e),w(a,l,e)},[a,l,w]),O=V.find(e=>e.id===a),k=V.find(e=>e.id===l),A=V.find(e=>e.id===p),j=!t||!v;return(0,W.jsxs)(d,{children:[(0,W.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Risk Tolerance`}),(0,W.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Control which actions your assistant can take without asking first. Each action is classified by risk level — your tolerance determines which levels auto-approve.`}),i&&(0,W.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--system-negative-strong)]`,children:`Could not load threshold settings. Check your connection and reload.`}),(0,W.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Conversations`}),(0,W.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When you're chatting with your assistant directly.`}),(0,W.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,W.jsx)(f,{value:a,onChange:T,options:J,disabled:j})}),O&&(0,W.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:O.description})]}),(0,W.jsx)(q,{}),(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`button`,{type:`button`,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-[var(--content-secondary)] hover:text-[var(--content-default)] transition-colors`,"aria-expanded":h,children:[h?(0,W.jsx)(z,{className:`h-4 w-4`}):(0,W.jsx)(y,{className:`h-4 w-4`}),(0,W.jsx)(`span`,{className:`text-body-medium-default`,children:`Advanced`})]}),(0,W.jsxs)(`div`,{className:h?`mt-4 space-y-4`:`hidden`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Background`}),(0,W.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When your assistant acts without you — scheduled tasks, background jobs, and external triggers.`}),(0,W.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,W.jsx)(f,{value:l,onChange:E,options:J,disabled:j})}),k&&(0,W.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:k.description})]}),(0,W.jsx)(q,{}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Headless`}),(0,W.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When triggered externally with no interactive client.`}),(0,W.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,W.jsx)(f,{value:p,onChange:D,options:J,disabled:j})}),A&&(0,W.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:A.description})]})]})]})]})]})}var Y=e(ee(),1),ce=[`bash`,`file_read`,`file_write`,`file_edit`,`web_fetch`,`skill_load`],le=[{value:`low`,label:`Low`,description:`Auto-approve without prompting`},{value:`medium`,label:`Medium`,description:`Prompt before executing`},{value:`high`,label:`High`,description:`Always require explicit approval`}];function ue({assistantId:e,existingRule:t,onClose:n,onSaved:r}){let i=(0,U.useRef)(null),[a,o]=(0,U.useState)(t.tool),[s,c]=(0,U.useState)(t.pattern),[l,u]=(0,U.useState)(t.risk),[d,p]=(0,U.useState)(t.description??``),[h,_]=(0,U.useState)(!1),[v,y]=(0,U.useState)(null),b=s.trim(),x=b.length>0&&!h,C=(0,U.useCallback)(async n=>{if(n.preventDefault(),!x)return;let i=d.trim()||`${a} — ${b}`;_(!0),y(null);try{await te(e,t.id,{risk:l,description:i}),r()}catch(e){y(e instanceof Error?e.message:`Failed to save trust rule.`)}finally{_(!1)}},[e,x,d,t,r,l,a,b]);return(0,Y.createPortal)((0,W.jsx)(`div`,{ref:i,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`trust-rule-form-title`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:(0,U.useCallback)(e=>{e.key===`Escape`&&n()},[n]),onClick:(0,U.useCallback)(e=>{e.target===i.current&&n()},[n]),children:(0,W.jsxs)(`div`,{className:`mx-4 flex max-h-[calc(100vh-2rem)] w-full max-w-md flex-col rounded-xl border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-xl`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-[var(--border-base)] px-6 py-4`,children:[(0,W.jsx)(`h2`,{id:`trust-rule-form-title`,className:`text-title-medium text-[var(--content-default)]`,children:`Edit Trust Rule`}),(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Close`,className:`rounded-lg p-1.5 text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-base)] hover:text-[var(--content-default)]`,children:(0,W.jsx)(S,{className:`h-4 w-4`})})]}),(0,W.jsxs)(`form`,{onSubmit:e=>void C(e),className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-6 py-4`,children:[v&&(0,W.jsx)(m,{tone:`error`,children:v}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`label`,{htmlFor:`trust-rule-tool`,className:`block text-body-medium-default text-[var(--content-default)]`,children:`Tool`}),(0,W.jsx)(`div`,{className:`mt-1`,children:(0,W.jsx)(f,{value:a,onChange:o,disabled:!0,options:ce.map(e=>({value:e,label:e}))})})]}),(0,W.jsx)(g,{label:`Pattern`,type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:`e.g., git *`,disabled:!0}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:`Risk Level`}),(0,W.jsx)(`div`,{className:`mt-2 flex gap-2`,children:le.map(e=>(0,W.jsxs)(`button`,{type:`button`,onClick:()=>u(e.value),className:`flex-1 rounded-lg border px-3 py-2 text-left text-body-small-default transition-colors ${l===e.value?e.value===`low`?`border-[var(--system-positive-strong)] bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`:e.value===`medium`?`border-[var(--system-warning-strong)] bg-[var(--system-warning-weak)] text-[var(--system-warning-strong)]`:`border-[var(--system-negative-strong)] bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`:`border-[var(--border-element)] text-[var(--content-default)] hover:bg-[var(--surface-base)]`}`,children:[(0,W.jsx)(`div`,{children:e.label}),(0,W.jsx)(`div`,{className:`mt-0.5 text-label-medium-default leading-tight opacity-70`,children:e.description})]},e.value))})]}),(0,W.jsx)(g,{label:`Description (optional)`,type:`text`,value:d,onChange:e=>p(e.target.value),placeholder:`${a} — ${b||`pattern`}`}),(0,W.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-lg border border-[var(--border-element)] bg-white px-4 py-2 text-body-medium-default text-[var(--content-default)] transition-colors hover:bg-[var(--surface-base)] dark:border-[var(--border-base)] dark:bg-[var(--surface-lift)] dark:hover:bg-[var(--ghost-hover)]`,children:`Cancel`}),(0,W.jsx)(`button`,{type:`submit`,disabled:!x,className:`rounded-lg bg-[var(--system-positive-strong)] px-4 py-2 text-body-medium-default text-white transition-colors hover:bg-[var(--system-positive-strong)] disabled:cursor-not-allowed disabled:opacity-50`,children:h?`Saving…`:`Save`})]})]})]})}),document.body)}function de(e){return e.origin===`default`&&!e.userModified}function fe(e,t){let n=new Set,r=[];for(let t of e)n.has(t.id)||(n.add(t.id),r.push(t));for(let e of t)n.has(e.id)||(n.add(e.id),r.push(e));return r.sort((e,t)=>e.tool===t.tool?e.description.localeCompare(t.description):e.tool.localeCompare(t.tool))}function pe(e){switch(e){case`low`:return`positive`;case`medium`:return`warning`;case`high`:return`negative`}}function X(e){return e.charAt(0).toUpperCase()+e.slice(1)}function me({assistantId:e,onClose:t}){let n=(0,U.useRef)(null),[r,i]=(0,U.useState)([]),[a,o]=(0,U.useState)(!0),[s,c]=(0,U.useState)(null),[l,d]=(0,U.useState)(null),[f,g]=(0,U.useState)(null),[v,y]=(0,U.useState)(!1),b=(0,U.useCallback)(async t=>{if(t){let[t,n]=await Promise.all([N(e),N(e,{origin:`default`})]);return fe(t,n)}return N(e)},[e]),S=(0,U.useCallback)(async()=>{o(!0);try{i(await b(v)),c(null)}catch(e){c(e instanceof Error?e.message:`Failed to load trust rules.`)}finally{o(!1)}},[b,v]);(0,U.useEffect)(()=>{let e=!1;return(async()=>{o(!0);try{let t=await b(v);e||(i(t),c(null))}catch(t){e||c(t instanceof Error?t.message:`Failed to load trust rules.`)}finally{e||o(!1)}})(),()=>{e=!0}},[b,v]);let C=(0,U.useCallback)(async()=>{if(f)try{await ne(e,f.id),S()}catch(e){c(e instanceof Error?e.message:`Failed to delete trust rule.`)}finally{g(null)}},[e,f,S]);return(0,Y.createPortal)((0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{ref:n,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`trust-rules-title`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:(0,U.useCallback)(e=>{e.key===`Escape`&&t()},[t]),onClick:(0,U.useCallback)(e=>{e.target===n.current&&t()},[t]),children:(0,W.jsxs)(`div`,{className:`mx-4 flex max-h-[80vh] w-full max-w-2xl flex-col rounded-xl border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-xl`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-[var(--border-base)] px-6 py-4`,children:[(0,W.jsx)(`h2`,{id:`trust-rules-title`,className:`text-title-medium text-[var(--content-default)]`,children:`Trust Rules`}),(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,W.jsx)(_,{checked:v,onChange:y,label:`Show all defaults`}),(0,W.jsx)(u,{variant:`outlined`,onClick:t,children:`Done`})]})]}),(0,W.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-6 py-4`,children:[s&&(0,W.jsx)(`div`,{className:`mb-3`,children:(0,W.jsx)(m,{tone:`error`,children:s})}),a?(0,W.jsx)(`div`,{className:`flex h-48 items-center justify-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`}):r.length===0?(0,W.jsxs)(`div`,{className:`flex h-48 flex-col items-center justify-center gap-2 px-6 text-[var(--content-tertiary)]`,children:[(0,W.jsx)(I,{className:`h-8 w-8`}),(0,W.jsx)(`p`,{className:`max-w-xs text-center text-body-medium-lighter`,children:`No trust rules yet. Rules are created when you classify actions from permission prompts.`})]}):(0,W.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(e=>{let t=de(e);return(0,W.jsxs)(`li`,{className:`flex items-start gap-3 py-3`,children:[(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.tool}),(0,W.jsx)(h,{tone:pe(e.risk),children:X(e.risk)}),e.origin===`default`&&(0,W.jsx)(h,{tone:`neutral`,children:`Default`}),e.userModified&&(0,W.jsx)(h,{tone:`warning`,children:`Modified`})]}),(0,W.jsx)(`div`,{className:`mt-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:e.pattern}),e.description&&(0,W.jsx)(`div`,{className:`mt-0.5 truncate text-body-small-default text-[var(--content-tertiary)]`,children:e.description})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,W.jsx)(`button`,{type:`button`,"aria-label":`Edit ${e.tool} rule`,onClick:()=>d(e),className:`rounded-lg p-1.5 text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-base)] hover:text-[var(--content-default)]`,children:(0,W.jsx)(x,{className:`h-4 w-4`})}),(!t||e.userModified)&&(0,W.jsx)(`button`,{type:`button`,"aria-label":`Delete ${e.tool} rule`,onClick:()=>g(e),className:`rounded-lg p-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)]`,children:(0,W.jsx)(P,{className:`h-4 w-4`})})]})]},e.id)})})]})]})}),l&&(0,W.jsx)(ue,{assistantId:e,existingRule:l,onClose:()=>d(null),onSaved:()=>{d(null),S()}}),(0,W.jsx)(p,{open:f!==null,title:`Delete Trust Rule?`,message:f?`Remove the ${X(f.risk).toLowerCase()}-risk rule for ${f.tool} matching "${f.pattern}"?`:``,confirmLabel:`Delete`,cancelLabel:`Cancel`,destructive:!0,onConfirm:()=>void C(),onCancel:()=>g(null)})]}),document.body)}function Z(){let{data:e}=s(M()),t=e?.results?.[0]?.id??null,[n,r]=(0,U.useState)(!1);return(0,W.jsxs)(d,{children:[(0,W.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,W.jsx)(I,{className:`mt-0.5 h-5 w-5 shrink-0 text-[var(--content-secondary)]`}),(0,W.jsxs)(`div`,{className:`flex-1`,children:[(0,W.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Trust Rules`}),(0,W.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Manage per-tool rules that control which actions auto-approve and which require your explicit permission.`})]}),(0,W.jsx)(u,{variant:`outlined`,onClick:()=>r(!0),disabled:!t,children:`Manage`})]}),n&&t&&(0,W.jsx)(me,{assistantId:t,onClose:()=>r(!1)})]})}var he=[{value:`dontRetain`,label:`Don't retain`},{value:`oneHour`,label:`1 hour`},{value:`oneDay`,label:`1 day`},{value:`sevenDays`,label:`7 days`},{value:`thirtyDays`,label:`30 days`},{value:`ninetyDays`,label:`90 days`},{value:`keepForever`,label:`Keep forever`}],ge=`thirtyDays`;function Q({label:e,helperText:t,checked:n,onChange:r}){return(0,W.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex-1`,children:[(0,W.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e}),(0,W.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-tertiary)]`,children:t})]}),(0,W.jsx)(_,{checked:n,onChange:r,label:e})]})}function $(){return(0,W.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function _e(){let e=B({platformHostedOnly:!0}),[a,o]=(0,U.useState)(()=>n(`shareAnalytics`,!0)),[s,c]=(0,U.useState)(()=>n(`shareDiagnostics`,!0)),[l,u]=(0,U.useState)(()=>i(`llmLogRetention`,ge));return(0,W.jsxs)(`div`,{className:`space-y-4`,children:[(0,W.jsx)(K,{}),(0,W.jsx)(Z,{}),(0,W.jsx)(se,{}),(0,W.jsx)(H,{title:`Privacy`,children:(0,W.jsxs)(`div`,{className:`space-y-4`,children:[(0,W.jsx)(Q,{label:`Share Analytics`,helperText:`Send anonymous product usage data. Your conversations and personal data are never included.`,checked:a,onChange:()=>{let e=!a;o(e),t(`shareAnalytics`,e)}}),(0,W.jsx)($,{}),(0,W.jsx)(Q,{label:`Share Diagnostics`,helperText:`Send crash reports and performance metrics. Your conversations and personal data are never included.`,checked:s,onChange:()=>{let e=!s;c(e),t(`shareDiagnostics`,e)}}),(0,W.jsx)($,{}),(0,W.jsx)(G,{}),e!==`gated`&&(0,W.jsx)($,{}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`label`,{htmlFor:`llm-log-retention`,className:`block text-body-medium-default text-[var(--content-default)]`,children:`LLM Request Log Retention`}),(0,W.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,W.jsx)(f,{value:l,onChange:e=>{u(e),r(`llmLogRetention`,e)},options:he})}),(0,W.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:`How long to keep LLM request and response logs on this device. These logs record the prompts and completions sent to model providers and are used for debugging. Shorter retention improves privacy; longer retention helps troubleshoot issues.`})]})]})})]})}export{_e as PrivacyPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-23NwnaZt.js";import{t as n}from"./react-DJZBPgpf.js";import{d as r,m as i}from"./chunk-5KNZJZUH-BpLAEZ0-.js";import{t as a}from"./jsx-runtime-XSukodg_.js";import{t as o}from"./button-Cs9tc8OR.js";import{t as s}from"./card-BcKGvsaa.js";import{t as c}from"./checkbox-hJlRqWtn.js";import{t as l}from"./toggle-DGzEs0L1.js";import{n as u}from"./auth-store-NinzEiLF.js";import{p as d}from"./native-biometric-V5gaOHYQ.js";import{i as f,r as p}from"./routes-Dfo11DAg.js";import{Ba as m,_r as h,br as g,gi as _,pr as v,xr as y,yr as b}from"./index-DmTi6dG-.js";import{t as x}from"./onboarding-layout-CTQetjmN.js";import{a as S,c as C,i as w,n as T,o as E,t as D}from"./step-indicator-dots-Bef_HABf.js";var O=e(n(),1),k=a();function A({label:e,helperText:t,checked:n,onChange:r}){let i=(0,O.useId)();return(0,k.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,k.jsx)(l,{checked:n,onChange:r,id:i}),(0,k.jsxs)(`label`,{htmlFor:i,className:`min-w-0 flex-1 cursor-pointer`,children:[(0,k.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:e}),(0,k.jsx)(`span`,{className:`mt-1 block text-body-small-default text-[var(--content-tertiary)]`,children:t})]})]})}var j=`[&_button[data-state=checked]]:bg-[var(--primary-base)] [&_svg]:text-[var(--content-inset)]`;function M(){let e=r(),[n]=i(),a=n.get(`replay`)===`1`,l=u.use.user()?.id??null,M=d(),N=E(_.use.stringFlags().preChatOnboardingExperiment20260606??`control`),[P,F]=b(),[I,L]=g(),[R,z]=y(),[B,V]=h();(0,O.useEffect)(()=>{!M&&!a&&S()},[M,a]),(0,O.useEffect)(()=>{v()&&!a&&e(f.assistant,{replace:!0})},[a,e]);let H=(0,O.useCallback)(()=>{try{F(P),L(I)}catch(e){t(e,{context:`onboarding_persist_share_prefs`})}if(!M&&!a){let e=C(N);w(T.privacyTos,{userId:l,variant:e})}let r=n.get(`hosting`),i=new URLSearchParams;r&&i.set(`hosting`,r),a&&i.set(`replay`,`1`);let o=i.toString();e(`${f.onboarding.hatching}${o?`?${o}`:``}`)},[M,a,e,N,n,F,L,P,I,l]),U=(0,k.jsxs)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:[`I agree to the`,` `,(0,k.jsx)(`a`,{href:p(f.docs.legal.termsOfUse),target:`_blank`,rel:`noreferrer`,className:`underline`,children:`Terms of Service`}),` `,`and`,` `,(0,k.jsx)(`a`,{href:p(f.docs.legal.privacyPolicy),target:`_blank`,rel:`noreferrer`,className:`underline`,children:`Privacy Policy`})]}),W=(0,k.jsxs)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:[`I agree to the`,` `,(0,k.jsx)(`a`,{href:p(f.docs.legal.dataSharing),target:`_blank`,rel:`noreferrer`,className:`underline`,children:`AI Data Sharing Policy`})]});return(0,k.jsx)(x,{children:(0,k.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center px-6 py-16 text-[var(--content-default)]`,children:[M&&(0,k.jsx)(`div`,{className:`mb-8 flex w-full justify-center`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:(0,k.jsx)(D,{current:2,total:3})}),(0,k.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,children:`Before You Start`}),(0,k.jsx)(`p`,{className:`mt-4 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Choose your privacy preferences. You can update these anytime in the Settings.`}),(0,k.jsx)(s,{padding:`md`,className:`mt-8 w-full`,children:(0,k.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,k.jsx)(A,{label:`Share Analytics`,helperText:`Send anonymous product usage data.`,checked:P,onChange:F}),(0,k.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`}),(0,k.jsx)(A,{label:`Share Diagnostics`,helperText:`Send crash reports and performance metrics.`,checked:I,onChange:L}),(0,k.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`}),(0,k.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,k.jsx)(m,{className:`h-4 w-4 shrink-0`}),(0,k.jsx)(`span`,{children:`Your conversations and personal data are never included.`})]})]})}),(0,k.jsx)(`div`,{className:`mt-6 flex w-full items-start`,children:(0,k.jsx)(c,{checked:B,onCheckedChange:e=>V(e===!0),label:W,"aria-label":`I agree to the AI Data Sharing Policy`,className:j})}),(0,k.jsx)(`div`,{className:`mt-4 flex w-full items-start`,children:(0,k.jsx)(c,{checked:R,onCheckedChange:e=>z(e===!0),label:U,"aria-label":`I agree to the Terms of Service and Privacy Policy`,className:j})}),(0,k.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,children:[(0,k.jsx)(o,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!R||!B,onClick:H,className:`h-11 text-base`,children:`Start`}),(0,k.jsx)(o,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>e(-1),className:`h-11 text-base`,children:`Back`})]})]})})}export{M as PrivacyScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-XSukodg_.js";import{t as r}from"./arrow-up-Cev-d0qQ.js";import{t as i}from"./is-electron-BCDAAC00.js";import{t as a}from"./public-asset-D_6jw-nO.js";var o=e(t(),1);async function s(e){i()&&await window.vellum?.quickInput?.submit(e)}async function c(){i()&&await window.vellum?.quickInput?.dismiss()}var l=n();function u(){let[e,t]=(0,o.useState)(``),n=(0,o.useRef)(null);(0,o.useEffect)(()=>{n.current?.focus()},[]);let i=(0,o.useCallback)(n=>{n.preventDefault();let r=e.trim();r&&(s(r),t(``))},[e]),u=(0,o.useCallback)(e=>{e.key===`Escape`&&(e.preventDefault(),c())},[]);return(0,l.jsx)(`div`,{className:`flex h-screen w-screen items-center justify-center bg-transparent p-2`,children:(0,l.jsxs)(`form`,{onSubmit:i,className:`flex w-full items-center gap-3 rounded-2xl border border-[var(--border-default)] bg-[var(--surface-base)] px-4 py-3 shadow-lg`,children:[(0,l.jsx)(`img`,{src:a(`/vellum-logo.svg`),alt:`Vellum`,width:24,height:24,className:`shrink-0 dark:hidden`,draggable:!1}),(0,l.jsx)(`img`,{src:a(`/vellum-logo-white.svg`),alt:`Vellum`,width:24,height:24,className:`hidden shrink-0 dark:block`,draggable:!1}),(0,l.jsx)(`input`,{ref:n,type:`text`,value:e,onChange:e=>t(e.target.value),onKeyDown:u,placeholder:`Ask Vellum anything...`,className:`min-w-0 flex-1 bg-transparent text-sm text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`}),(0,l.jsx)(`button`,{type:`submit`,disabled:!e.trim(),className:`flex size-7 shrink-0 items-center justify-center rounded-full bg-[var(--surface-accent)] text-[var(--content-on-accent)] transition-opacity disabled:opacity-30`,children:(0,l.jsx)(r,{size:16})})]})})}export{u as QuickInputPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=e=>e,t=(e,t)=>`${e}/${t}`,n=e(`/assistant/logs/usage`),r={assistant:e(`/assistant`),about:e(`/assistant/about`),bundleConfirm:e(`/assistant/bundle/confirm`),quickInput:e(`/assistant/quick-input`),conversation:n=>t(e(`/assistant/conversations`),n),inspect:n=>`${t(e(`/assistant/conversations`),n)}/inspect`,logs:{root:e(`/assistant/logs`),trace:e(`/assistant/logs/trace`),usage:n,usageForSchedule:e=>`${n}?${new URLSearchParams({range:`7d`,groupBy:`schedule`,scheduleId:e}).toString()}`,emails:e(`/assistant/logs/emails`),systemEvents:e(`/assistant/logs/system-events`)},account:{root:e(`/account`),login:e(`/account/login`),signup:e(`/account/signup`),providerSignup:e(`/account/provider/signup`),providerCallback:e(`/account/provider/callback`),oauth:{popupComplete:e(`/account/oauth/popup-complete`),complete:e(`/account/oauth/complete`),desktopComplete:e(`/account/oauth/desktop-complete`)}},onboarding:{welcome:e(`/assistant/onboarding/welcome`),hosting:e(`/assistant/onboarding/hosting`),apiKey:e(`/assistant/onboarding/api-key`),privacy:e(`/assistant/onboarding/privacy`),prechat:e(`/assistant/onboarding/prechat`),hatching:e(`/assistant/onboarding/hatching`)},home:e(`/assistant/home`),identity:e(`/assistant/identity`),plugins:e(`/assistant/plugins`),skills:e(`/assistant/skills`),workspace:e(`/assistant/workspace`),library:{root:e(`/assistant/library`),app:n=>t(e(`/assistant/library`),n)},document:n=>t(e(`/assistant/documents`),n),connect:e(`/assistant/connect`),contacts:{root:e(`/assistant/contacts`)},settings:{root:e(`/assistant/settings`),general:e(`/assistant/settings/general`),ai:e(`/assistant/settings/ai`),integrations:e(`/assistant/settings/integrations`),schedules:e(`/assistant/settings/schedules`),schedule:n=>t(e(`/assistant/settings/schedules`),n),notifications:e(`/assistant/settings/notifications`),sounds:e(`/assistant/settings/sounds`),voice:e(`/assistant/settings/voice`),devices:e(`/assistant/settings/devices`),privacy:e(`/assistant/settings/privacy`),archive:e(`/assistant/settings/archive`),billing:e(`/assistant/settings/billing`),community:e(`/assistant/settings/community`),debug:e(`/assistant/settings/debug`),developer:e(`/assistant/settings/developer`),advanced:e(`/assistant/settings/advanced`),dangerZone:e(`/assistant/settings/danger-zone`),systemEvents:e(`/assistant/settings/system-events`),upgradeCancel:e(`/assistant/settings/billing/upgrade/cancel`),upgradeSuccess:e(`/assistant/settings/billing/upgrade/success`)},admin:{root:e(`/admin`)},docs:{hostingOptions:e(`/docs/hosting-options`),legal:{privacyPolicy:e(`/docs/privacy-policy`),termsOfUse:e(`/docs/vellum-terms-of-use`),dataSharing:e(`/docs/data-sharing`),prohibitedUse:e(`/docs/prohibited-use`),privacyAndData:e(`/docs/trust-security/privacy-and-data`)}}},i=`vellum.ai`;function a(e){return o(e)}function o(e){return`https://${i}${e}`}function s(){return r.admin.root}export{r as i,o as n,a as r,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./useMutation-DTb3lMvF.js";import{t as i}from"./jsx-runtime-XSukodg_.js";import{n as a,t as o}from"./button-Cs9tc8OR.js";import{t as s}from"./dropdown-PPtOL9bp.js";import{t as c}from"./notice-BWm2kHlI.js";import{n as l,t as u}from"./input-DwAJUlac.js";import{t as d}from"./toggle-DGzEs0L1.js";import{t as f}from"./bug-wSdnBKWO.js";import{t as p}from"./loader-circle-FEkI0Am4.js";import{t as m}from"./x-2OoTSOWJ.js";import{zt as h}from"./sdk.gen-up8j0_uF.js";import{n as g}from"./auth-store-NinzEiLF.js";import{t as _}from"./is-electron-BCDAAC00.js";import{t as v}from"./dist-d-PJ8AUi.js";import{t as y}from"./impersonate-version-flag-DC4HAvtV.js";import{Ca as b,Ea as ee,So as x,Yt as te,ca as S,ga as C,ir as w,qi as ne,sr as T,ya as re}from"./index-DmTi6dG-.js";var E=e(n(),1),ie=e(x(),1),D=`vellum:debug:`;function O(){let e={};if(typeof window>`u`)return e;try{for(let t=0;t<window.localStorage.length;t++){let n=window.localStorage.key(t);if(n===null||!n.startsWith(D))continue;let r=window.localStorage.getItem(n);r!==null&&(e[n]=r)}}catch{}return e}function k(){return{collectedAt:new Date().toISOString(),resolved:{seqGapDetection:T(),impersonateAssistantVersion:y()},overrides:O()}}var A=t({ShareFeedbackModal:()=>B}),j=i(),M=[{value:`bug_report`,label:`Bug Report`,icon:f,includesLogsByDefault:!0},{value:`feature_request`,label:`Feature Request`,icon:b,includesLogsByDefault:!1},{value:`other`,label:`Other`,icon:C,includesLogsByDefault:!1}],N=[{value:`past_hour`,label:`Past hour`,cutoffMs:3600*1e3},{value:`past_24_hours`,label:`Past 24 hours`,cutoffMs:1440*60*1e3},{value:`all_time`,label:`All time`,cutoffMs:null}],ae=N.map(e=>({value:e.value,label:e.label})),P=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`video/mp4`,`video/quicktime`,`video/webm`]),F=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`mp4`,`mov`,`webm`]),I=10,L=50*1024*1024,oe={bug_report:`bug_report`,feature_request:`feature_request`,other:`other`};function se(){return _()?`macos`:v.getPlatform()===`ios`?`ios`:`web`}function ce(e){if(e.size>L)return!1;if(e.type&&P.has(e.type))return!0;if(!e.type){let t=e.name.split(`.`).pop()?.toLowerCase();return t?F.has(t):!1}return!1}function R(e,t){let n=Math.ceil(t.length/512),r=new Uint8Array(512+n*512),i=new TextEncoder,a=(e,t,n)=>{let a=i.encode(e);r.set(a.slice(0,n),t)},o=(e,t,n)=>{a(e.toString(8).padStart(n-1,`0`)+`\0`,t,n)};a(e,0,100),o(420,100,8),o(0,108,8),o(0,116,8),o(t.length,124,12),o(Math.floor(Date.now()/1e3),136,12);for(let e=148;e<156;e++)r[e]=32;r[156]=48,a(`ustar\0`,257,6),a(`00`,263,2);let s=0;for(let e=0;e<512;e++)s+=r[e];return o(s,148,7),r[155]=32,r.set(t,512),r}async function z(e,t){try{let n={};t.window.startTime!=null&&(n.startTime=t.window.startTime,n.endTime=t.window.endTime),t.activeConversationId&&(n.conversationId=t.activeConversationId);let{data:r,error:i}=await h({path:{assistant_id:e},body:n,parseAs:`blob`,throwOnError:!1});if(i||!(r instanceof Blob))return null;let a=await r.arrayBuffer();return new Uint8Array(a)}catch{return null}}async function le(e,t,n,r){if(typeof CompressionStream>`u`)return null;let i=new Date,a=N.find(t=>t.value===e),o=i.getTime(),s=a?.cutoffMs==null?null:o-a.cutoffMs,c=s==null?null:new Date(s).toISOString(),l=null;try{l=r?.()??null}catch{l=null}let u=w(l),d={collected_at:i.toISOString(),time_range:e,cutoff:c,log_window:{start_time_ms:s,end_time_ms:o},assistant_id:t,active_conversation_id:n,user_agent:typeof navigator<`u`?navigator.userAgent:``,language:typeof navigator<`u`?navigator.language:``,platform:typeof navigator<`u`?navigator.platform:``,url:typeof window<`u`?window.location.href:``,viewport:typeof window<`u`?{width:window.innerWidth,height:window.innerHeight}:null,screen:typeof screen<`u`?{width:screen.width,height:screen.height}:null,connection:typeof navigator<`u`&&`connection`in navigator?{effectiveType:navigator.connection.effectiveType,downlink:navigator.connection.downlink,rtt:navigator.connection.rtt}:null,deviceMemory:typeof navigator<`u`&&`deviceMemory`in navigator?navigator.deviceMemory:null,hardwareConcurrency:typeof navigator<`u`?navigator.hardwareConcurrency:null},f=new TextEncoder().encode(JSON.stringify(d,null,2)),p=new TextEncoder().encode(JSON.stringify(u,null,2)),m=[R(`web-client-context.json`,f),R(`web-chat-diagnostics.json`,p)],h=new TextEncoder().encode(JSON.stringify(k(),null,2));m.push(R(`web-debug-flags.json`,h));try{let e=typeof window<`u`?window._vellumDebug?.chat:null;if(e){let t={clientMessages:e.getClientMessages?.()??null,transcriptItems:e.getTranscriptItems?.()??null,thinkingIndicator:e.thinkingIndicator?.()??null,streamingRing:e.streamingRing?.()??null},n=new TextEncoder().encode(JSON.stringify(t,null,2));m.push(R(`web-chat-debug-api-triage.json`,n))}}catch{}try{let e=typeof window<`u`?window._vellumDebug?.events:null;if(e){let t={focus:typeof document<`u`?{hasFocus:typeof document.hasFocus==`function`?document.hasFocus():null,visibilityState:document.visibilityState}:null,clients:e.getClients().map(({abortSignal:e,...t})=>({...t,aborted:e.aborted})),events:e.getEvents()},n=new TextEncoder().encode(JSON.stringify(t,null,2));m.push(R(`web-sse-liveness-triage.json`,n))}}catch{}if(_()&&window.vellum?.feedback){try{let e=await window.vellum.feedback.diagnostics(),t=new TextEncoder().encode(JSON.stringify(e,null,2));m.push(R(`electron-diagnostics.json`,t))}catch{}try{let e=await window.vellum.feedback.logs();if(e){let t=new TextEncoder().encode(e);m.push(R(`electron-main-logs.txt`,t))}}catch{}}if(t){let e=await z(t,{window:{startTime:s,endTime:o},activeConversationId:n});e&&m.push(R(`platform-logs.tar.gz`,e))}m.push(new Uint8Array(1024));let g=m.reduce((e,t)=>e+t.length,0),v=new Uint8Array(g),y=0;for(let e of m)v.set(e,y),y+=e.length;let b=new Blob([v.buffer]),ee=await new Response(b.stream().pipeThrough(new CompressionStream(`gzip`))).blob();return new File([ee],`web-client-logs-${i.getTime()}.tar.gz`,{type:`application/gzip`})}function B({open:e,onClose:t,initialReason:n,onSubmitted:i,assistantId:f,assistantVersion:h,activeConversationId:v,getDiagnosticsSnapshot:y}){let b=g.use.user()?.email,x=(0,E.useId)(),C=(0,E.useRef)(null),w=(0,E.useRef)(null),T=(0,E.useRef)(null),D=(0,E.useRef)(null),[O,k]=(0,E.useState)(n??`bug_report`),[A,N]=(0,E.useState)(``),[P,F]=(0,E.useState)(``),[L,R]=(0,E.useState)(M.find(e=>e.value===(n??`bug_report`))?.includesLogsByDefault??!0),[z,B]=(0,E.useState)(!1),[V,H]=(0,E.useState)(`past_hour`),[U,W]=(0,E.useState)([]),[G,K]=(0,E.useState)(null),[fe,q]=(0,E.useState)(!1),[J,Y]=(0,E.useState)(!1),X=r(te()),[pe,Z]=(0,E.useState)(!1),Q=X.isPending||pe,me=!b,he=(0,E.useMemo)(()=>A.trim().length>0&&P.trim().length>0,[A,P]);(0,E.useEffect)(()=>{if(!e)return;let t=n??`bug_report`;k(t),N(``),F(b??``),R(M.find(e=>e.value===t)?.includesLogsByDefault??!0),B(!1),H(`past_hour`),W([]),Y(!1),K(null),Z(!1),X.reset();let r=setTimeout(()=>{b?T.current?.focus():D.current?.focus()},50);return()=>clearTimeout(r)},[e]),(0,E.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]);let ge=e=>{k(e),z||R(M.find(t=>t.value===e)?.includesLogsByDefault??!1)},_e=()=>{R(e=>!e),B(!0)},ve=(0,E.useCallback)(e=>{e.key===`Escape`&&!Q&&t()},[t,Q]),ye=(0,E.useCallback)(e=>{e.target===C.current&&!Q&&t()},[t,Q]),$=(0,E.useCallback)(e=>{W(t=>{let n=I-t.length;if(n<=0)return t;let r=new Set(t.map(e=>`${e.name}:${e.size}`)),i=[];for(let t of e){if(i.length>=n)break;if(!ce(t))continue;let e=`${t.name}:${t.size}`;r.has(e)||(r.add(e),i.push(t))}return i.length>0?[...t,...i]:t})},[]),be=e=>{e.target.files&&$(Array.from(e.target.files)),e.target.value=``},xe=e=>{e.preventDefault(),q(!1),e.dataTransfer.files?.length&&$(Array.from(e.dataTransfer.files))},Se=e=>{e.preventDefault(),q(!0)},Ce=e=>{e.preventDefault(),e.currentTarget===e.target&&q(!1)},we=e=>{W(t=>t.filter((t,n)=>n!==e))};return e?(0,ie.createPortal)((0,j.jsx)(`div`,{ref:C,role:`dialog`,"aria-modal":`true`,"aria-labelledby":x,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:ve,onClick:ye,onDrop:xe,onDragOver:Se,onDragLeave:Ce,children:(0,j.jsxs)(`div`,{className:`mx-4 flex w-full max-w-lg flex-col rounded-xl border p-6 shadow-xl`,style:{backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`,maxHeight:`calc(100vh - 2rem)`},children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between border-b pb-4`,style:{borderColor:`var(--border-subtle)`},children:[(0,j.jsx)(`h2`,{id:x,className:`!m-0 text-title-small text-[var(--content-default)]`,children:`Share Feedback`}),(0,j.jsx)(o,{variant:`ghost`,iconOnly:(0,j.jsx)(m,{}),onClick:t,disabled:Q,"aria-label":`Close`,tintColor:`var(--content-secondary)`})]}),(0,j.jsxs)(`div`,{className:`flex flex-col gap-3.5 overflow-y-auto pt-4 ${Q?`pointer-events-none opacity-60`:``}`,children:[me&&(0,j.jsx)(u,{id:`${x}-email`,ref:D,label:`Email`,type:`email`,placeholder:`you@example.com`,value:P,onChange:e=>F(e.target.value),leftIcon:(0,j.jsx)(re,{className:`h-4 w-4`,"aria-hidden":!0}),fullWidth:!0}),(0,j.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,j.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Category`}),(0,j.jsx)(`div`,{className:`flex gap-2`,children:M.map(e=>(0,j.jsx)(ue,{option:e,isSelected:O===e.value,onSelect:()=>ge(e.value)},e.value))})]}),(0,j.jsx)(`hr`,{className:`border-[var(--border-subtle)]`}),O===`bug_report`&&(0,j.jsxs)(c,{tone:`info`,children:[`Tip: Get faster support by posting in our`,` `,(0,j.jsx)(`a`,{href:`https://vellum.ai/community`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`,children:`Discord community`})]}),O===`feature_request`&&(0,j.jsxs)(c,{tone:`info`,children:[`Tip: Vote on features on our`,` `,(0,j.jsx)(`a`,{href:`https://vellum.ai/roadmap`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`,children:`public roadmap`})]}),(0,j.jsx)(l,{id:`${x}-message`,ref:T,label:O===`bug_report`?`What went wrong?`:O===`feature_request`?`Describe your idea`:`What's on your mind?`,rows:3,placeholder:O===`bug_report`?`What did you expect to happen, and what happened instead?`:O===`feature_request`?`What problem would this solve for you?`:`Share your thoughts...`,value:A,onChange:e=>N(e.target.value),fullWidth:!0}),O!==`feature_request`&&(0,j.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,j.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,j.jsx)(d,{checked:L,onChange:_e,"aria-label":`Include browser diagnostics`}),(0,j.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:`Include diagnostics`})]}),(0,j.jsx)(a,{content:`Diagnostics include browser context, assistant logs, and timestamps — never passwords or credentials.`,children:(0,j.jsx)(`button`,{type:`button`,"aria-label":`About diagnostics`,className:`inline-flex items-center justify-center text-[var(--content-tertiary)]`,children:(0,j.jsx)(ee,{className:`h-3.5 w-3.5`})})})]}),L&&(0,j.jsx)(s,{options:ae,value:V,onChange:H,"aria-label":`Diagnostics time range`})]}),_()&&v&&O!==`feature_request`&&(0,j.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,j.jsx)(d,{checked:J,onChange:()=>Y(e=>!e),"aria-label":`Include the most recent conversation`}),(0,j.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:`Include the most recent conversation`})]}),(0,j.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,j.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:[`Attachments`,U.length>0&&(0,j.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[` · `,U.length,`/`,I]})]}),(0,j.jsx)(o,{variant:`outlined`,size:`compact`,leftIcon:(0,j.jsx)(S,{}),onClick:()=>w.current?.click(),disabled:U.length>=I,children:`Add files`}),(0,j.jsx)(`input`,{ref:w,type:`file`,multiple:!0,accept:`image/png,image/jpeg,image/gif,image/webp,video/mp4,video/quicktime,video/webm`,onChange:be,className:`hidden`})]}),U.length>0&&(0,j.jsx)(`div`,{className:`flex gap-2 overflow-x-auto`,children:U.map((e,t)=>(0,j.jsx)(de,{file:e,onRemove:()=>we(t)},`${e.name}-${t}`))}),fe&&(0,j.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Drop files to attach…`})]}),G&&(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:G})]}),(0,j.jsx)(`div`,{className:`mt-4 flex items-center justify-end gap-2 border-t pt-4`,style:{borderColor:`var(--border-subtle)`},children:Q?(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,j.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Sending feedback…`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(o,{variant:`ghost`,onClick:t,children:`Cancel`}),(0,j.jsx)(o,{variant:`primary`,leftIcon:(0,j.jsx)(ne,{}),onClick:async()=>{if(!(!he||Q)){K(null),Z(!0);try{let e=L&&O!==`feature_request`?await le(V,f??null,_()?J?v??null:null:v??null,y):null;await X.mutateAsync({headers:{"Content-Type":null},body:{message:A.trim(),classification:oe[O],email:P.trim(),client:se(),client_version:void 0,...f?{assistant_id:f}:{},...h?{assistant_version:h}:{},...e?{logs_file:e}:{},...U.length?{attachments:U}:{}},bodySerializer:e=>{let t=new FormData;for(let[n,r]of Object.entries(e))if(r!=null){if(n===`attachments`&&Array.isArray(r)){for(let e of r)t.append(`attachments`,e);continue}r instanceof Blob?t.append(n,r):t.append(n,String(r))}return t}}),i?.(),t()}catch(e){K(e instanceof Error?e.message:`Failed to submit feedback. Please try again.`)}finally{Z(!1)}}},disabled:!he,children:`Submit`})]})})]})}),document.body):null}function ue({option:e,isSelected:t,onSelect:n}){let r=e.icon;return(0,j.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-left transition-colors`,style:{borderColor:t?`var(--primary-base)`:`var(--border-base)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:`transparent`},children:[(0,j.jsx)(r,{className:`h-3.5 w-3.5 shrink-0`,style:{color:t?`var(--primary-base)`:`var(--content-secondary)`}}),(0,j.jsx)(`span`,{className:`text-body-small-default`,style:{color:t?`var(--primary-base)`:`var(--content-default)`},children:e.label})]})}function de({file:e,onRemove:t}){let n=e.type.startsWith(`image/`),r=(0,E.useMemo)(()=>n?URL.createObjectURL(e):null,[e,n]);return(0,E.useEffect)(()=>{if(r)return()=>URL.revokeObjectURL(r)},[r]),(0,j.jsxs)(`div`,{className:`relative flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)]`,title:e.name,children:[n&&r?(0,j.jsx)(`img`,{src:r,alt:e.name,className:`h-full w-full object-cover`}):(0,j.jsx)(S,{className:`h-5 w-5 text-[var(--content-secondary)]`}),(0,j.jsx)(o,{variant:`ghost`,size:`compact`,iconOnly:(0,j.jsx)(m,{}),onClick:t,"aria-label":`Remove ${e.name}`,className:`absolute top-0.5 right-0.5 h-4 w-4 rounded-full bg-black/60 text-white hover:bg-black/70`,tintColor:`#fff`})]})}export{A as n,B as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,t as n}from"./local-settings-lVNyIOJ_.js";import{t as r}from"./react-DJZBPgpf.js";import{m as i}from"./chunk-5KNZJZUH-BpLAEZ0-.js";import{n as a}from"./QueryClientProvider-DBAeGN3q.js";import{t as o}from"./useQuery-DAtrV0RI.js";import{t as s}from"./useMutation-DTb3lMvF.js";import{t as c}from"./jsx-runtime-XSukodg_.js";import{t as l}from"./button-Cs9tc8OR.js";import{t as u}from"./card-BcKGvsaa.js";import{t as d}from"./menu-0h93UDZw.js";import"./src-Bah0_lDG.js";import{t as f}from"./confirm-dialog-DavdF-L4.js";import{n as p,r as m,t as h}from"./panel-item-BPosLg5Y.js";import{t as g}from"./input-DwAJUlac.js";import{n as _}from"./stat-square-CMFH3mHq.js";import{t as v}from"./createLucideIcon-D8wUFCt3.js";import{a as y,c as b,i as x,n as S,o as C,r as w,s as T,t as E}from"./install-CqQAdH7r.js";import{t as D}from"./calendar-xwiYi6y2.js";import{t as O}from"./globe-B6unPYdp.js";import{t as k}from"./link-2-B0QONFsy.js";import{t as A}from"./loader-circle-FEkI0Am4.js";import{t as j}from"./x-2OoTSOWJ.js";import{A as M,D as ee,M as te,O as N,j as ne,k as P}from"./react-query.gen-CfXF72qo.js";import{n as re}from"./use-is-mobile-BFvLVXwH.js";import{$a as F,Ai as I,Di as L,Hi as R,Ia as z,Ji as ie,Ki as B,Mi as V,Na as H,Ni as U,Si as W,So as G,Xa as K,bo as q,fo as ae,ga as oe,ka as se,la as ce,lo as J,pa as le,po as ue,wa as Y,ya as de,yo as fe,za as pe,zi as me}from"./index-DmTi6dG-.js";import{t as he}from"./use-active-assistant-id-kjFL4dWB.js";import{n as ge,t as _e}from"./file-markdown-DLtmfYbc.js";import{t as ve}from"./use-debounced-value-DK0n_BKN.js";var ye=v(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),be=v(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),X=e(r(),1),xe={mail:de,calendar:D,"message-circle":oe,globe:O,zap:W,code:K,mic:le,"shopping-cart":R,palette:be,heart:se,settings:B,"link-2":k};function Se(e){return xe[e]}var Z=c();function Ce({selected:e,onSelect:t,counts:n,totalCount:r,showCounts:i,categories:a}){let o=[...a].sort((e,t)=>e.label.localeCompare(t.label));return(0,Z.jsxs)(`nav`,{className:`flex flex-col gap-1`,"aria-label":`Skill categories`,children:[(0,Z.jsx)(we,{icon:Y,label:`All`,count:r,isActive:e===null,showCount:i,onClick:()=>t(null)}),o.map(r=>(0,Z.jsx)(we,{icon:Se(r.icon)??Y,label:r.label,count:n[r.slug]??0,isActive:e===r.slug,showCount:i,onClick:()=>t(r.slug)},r.slug))]})}function we({icon:e,label:t,count:n,isActive:r,showCount:i,onClick:a}){return(0,Z.jsxs)(l,{variant:`ghost`,onClick:a,"aria-pressed":r,className:`h-auto justify-between gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left hover:bg-[var(--ghost-hover)]`,style:{backgroundColor:r?`var(--surface-active)`:void 0,color:r?`var(--content-default)`:`var(--content-secondary)`},children:[(0,Z.jsxs)(`span`,{className:`flex items-center gap-2.5`,children:[(0,Z.jsx)(e,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`text-body-medium-default`,children:t})]}),i&&(0,Z.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:n})]})}var Te=e(G(),1);function Ee(e,t){return t??e.find(e=>e.name===`SKILL.md`)?.path??null}function De(e,t){let[n,r]=(0,X.useState)(null),i=o({...P({path:{assistant_id:e,id:t}}),select:e=>e??null}),a=(0,X.useMemo)(()=>i.data?.files??[],[i.data]),s=(0,X.useMemo)(()=>a.find(e=>e.name===`SKILL.md`),[a]),c=Ee(a,n),l=o({...N({path:{assistant_id:e,id:t},query:{path:c??``}}),select:e=>e??null,enabled:!!c});return{fileEntries:a,skillMd:s,selectedPath:n,setSelectedPath:r,activePath:c,activeFile:a.find(e=>e.path===c),isFilesLoading:i.isLoading,fileContent:l.data?.content??null,isBinary:!!l.data?.isBinary,isContentLoading:l.isLoading}}function Oe({fileName:e,content:t,isBinary:n,viewMode:r=`preview`}){return n?(0,Z.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`}):t===null?(0,Z.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,e,`.`]}):ge(e,void 0)&&r===`preview`?(0,Z.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Z.jsx)(_e,{content:t})}):(0,Z.jsx)(`pre`,{className:`h-full overflow-y-auto whitespace-pre-wrap break-words p-4 font-mono text-body-small-default`,style:{color:`var(--content-default)`},children:t})}function ke({assistantId:e,skill:t,onBack:n,onInstall:r,onRemove:i,isInstalling:a=!1,isRemoving:o=!1}){let s=w(t),c=y(t),{fileEntries:d,setSelectedPath:f,activePath:p,activeFile:m,isFilesLoading:h,fileContent:g,isBinary:v,isContentLoading:b}=De(e,t.id),[x,S]=(0,X.useState)(`preview`);(0,X.useEffect)(()=>{S(`preview`)},[p]);let[E,D]=(0,X.useState)(null);(0,X.useEffect)(()=>{D(document.getElementById(`viewport-overlays`))},[]);let O=m?ge(m.name,void 0):!1,k=O?x:`raw`,j=(0,Z.jsxs)(`div`,{className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(l,{variant:`ghost`,iconOnly:(0,Z.jsx)(fe,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to skills`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:t.name}),(0,Z.jsx)(Ae,{available:s,removable:c,isInstalling:a,isRemoving:o,onInstall:r,onRemove:i})]}),(0,Z.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(T,{skill:t,className:`h-6 w-6 shrink-0 text-[22px] leading-none`}),(0,Z.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:t.name})]}),(0,Z.jsx)(C,{origin:t.origin})]}),(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description})]}),(0,Z.jsx)(u.Root,{asChild:!0,noPadding:!0,children:(0,Z.jsxs)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b px-3 py-2`,style:{borderColor:`var(--border-hover)`},children:[(0,Z.jsx)(Me,{fileEntries:d,activePath:p,activeName:m?.name??null,onSelect:f}),(0,Z.jsx)(_,{iconOnly:!0,ariaLabel:`File view mode`,value:k,onChange:S,items:[{value:`preview`,label:`Preview`,icon:(0,Z.jsx)(pe,{"aria-hidden":!0}),disabled:!O},{value:`raw`,label:`Source`,icon:(0,Z.jsx)(K,{"aria-hidden":!0})}]})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:h||b?(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(A,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):m?(0,Z.jsx)(Oe,{fileName:m.name,content:g,isBinary:v,viewMode:k}):(0,Z.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]});return E?(0,Te.createPortal)(j,E):j}function Ae({available:e,removable:t,isInstalling:n,isRemoving:r,onInstall:i,onRemove:a}){return n||r?(0,Z.jsx)(l,{variant:`ghost`,iconOnly:(0,Z.jsx)(A,{className:`animate-spin`,"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,"aria-label":`Pending`,className:`max-md:bg-[var(--surface-active)]`}):e?(0,Z.jsx)(l,{variant:`ghost`,iconOnly:(0,Z.jsx)(q,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Install skill`,onClick:i,disabled:!i,className:`max-md:bg-[var(--surface-active)]`}):t?(0,Z.jsx)(l,{variant:`dangerGhost`,iconOnly:(0,Z.jsx)(V,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Remove skill`,onClick:a,disabled:!a,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`}):(0,Z.jsx)(l,{variant:`dangerGhost`,iconOnly:(0,Z.jsx)(V,{"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,title:`Bundled skills cannot be removed`,"aria-label":`Bundled skill cannot be removed`,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`})}function je(e){return(e??``).endsWith(`/directory`)}function Me({fileEntries:e,activePath:t,activeName:n,onSelect:r}){let i=n??`Select a file`;return e.length===0?(0,Z.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,Z.jsx)(Ne,{}),(0,Z.jsx)(`span`,{className:`truncate`,children:i})]}):(0,Z.jsxs)(d.Root,{children:[(0,Z.jsx)(d.Trigger,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`flex min-w-0 items-center gap-2 rounded-md text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,Z.jsx)(Ne,{}),(0,Z.jsx)(`span`,{className:`truncate`,children:i}),(0,Z.jsx)(ae,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0})]})}),(0,Z.jsx)(d.Content,{align:`start`,children:e.map(e=>{let n=je(e.mimeType);return(0,Z.jsx)(d.Item,{onSelect:()=>r(e.path),leftIcon:n?(0,Z.jsx)(H,{}):(0,Z.jsx)(z,{}),"aria-current":e.path===t?`true`:void 0,children:e.name},e.path)})})]})}function Ne(){return(0,Z.jsx)(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,"aria-hidden":!0,children:(0,Z.jsx)(z,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})}var Pe=[{value:`all`,label:`All`,icon:Y},{value:`installed`,label:`Installed`,icon:J},{value:`available`,label:`Available`,icon:q}],Fe=[{value:`vellum`,label:`Vellum`,icon:b},{value:`clawhub`,label:`Clawhub`,icon:O},{value:`skillssh`,label:`skills.sh`,icon:U},{value:`custom`,label:`Custom`,icon:L}];function Ie({search:e,onSearchChange:t,filter:n,onFilterChange:r,isSearching:i,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u}){return(0,Z.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(g,{type:`search`,value:e,onChange:e=>{t(e.target.value)},placeholder:`Search skills`,"aria-label":`Search skills`,leftIcon:(0,Z.jsx)(ie,{className:`h-4 w-4`,"aria-hidden":!0}),rightIcon:i?(0,Z.jsx)(A,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):void 0,fullWidth:!0,wrapperClassName:`flex-1`}),(0,Z.jsx)(Le,{filter:n,onFilterChange:r,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u})]})}function Le(e){let t=re(),[n,r]=(0,X.useState)(!1),i=(0,Z.jsx)(l,{type:`button`,variant:`outlined`,iconOnly:(0,Z.jsx)(ye,{"aria-hidden":!0}),"aria-label":`Filter skills`,"aria-haspopup":t?`dialog`:`listbox`,"aria-expanded":n,tintColor:`var(--primary-base)`});return t?(0,Z.jsx)(Re,{...e,open:n,onOpenChange:r,trigger:i}):(0,Z.jsxs)(m.Root,{open:n,onOpenChange:r,children:[(0,Z.jsx)(m.Trigger,{asChild:!0,children:i}),(0,Z.jsx)(m.Content,{align:`end`,sideOffset:4,className:`w-44 overflow-hidden p-0`,children:(0,Z.jsxs)(`ul`,{role:`listbox`,children:[(0,Z.jsx)(ze,{label:`Status`,options:Pe,selected:e.filter,onSelect:t=>{e.onFilterChange(t),r(!1)}}),(0,Z.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,Z.jsx)(ze,{label:`Source`,options:Fe,selected:e.filter,onSelect:t=>{e.onFilterChange(t),r(!1)}})]})})]})}function Re({filter:e,onFilterChange:t,categories:n,category:r,onCategoryChange:i,counts:a,totalCount:o,showCounts:s,open:c,onOpenChange:u,trigger:d}){let f=[...n].sort((e,t)=>e.label.localeCompare(t.label));return(0,Z.jsxs)(p.Root,{open:c,onOpenChange:u,children:[(0,Z.jsx)(p.Trigger,{asChild:!0,children:d}),(0,Z.jsxs)(p.Content,{className:`max-h-[85dvh]`,"aria-describedby":void 0,children:[(0,Z.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mb-3 h-1 w-9 shrink-0 rounded-full bg-[var(--border-element)]`}),(0,Z.jsx)(p.Header,{children:(0,Z.jsx)(p.Title,{children:`Filters`})}),(0,Z.jsxs)(p.Body,{className:`flex flex-col gap-3 pt-2`,children:[(0,Z.jsx)(Q,{label:`Status`,children:Pe.map(n=>(0,Z.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,Z.jsx)(Q,{label:`Source`,children:Fe.map(n=>(0,Z.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,Z.jsxs)(Q,{label:`Categories`,children:[(0,Z.jsx)($,{icon:Y,label:`All`,active:r===null,badge:s?o:void 0,onSelect:()=>i(null)}),f.map(e=>(0,Z.jsx)($,{icon:Se(e.icon)??Y,label:e.label,active:r===e.slug,badge:s?a[e.slug]??0:void 0,onSelect:()=>i(e.slug)},e.slug))]})]}),(0,Z.jsx)(p.Footer,{children:(0,Z.jsx)(l,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>u(!1),children:`Done`})})]})]})}function Q({label:e,children:t}){return(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`px-2 pb-1 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),t]})}function $({icon:e,label:t,active:n,badge:r,onSelect:i}){return(0,Z.jsx)(h,{icon:e,label:t,active:n,activeVariant:`branded`,badge:r,trailingAction:n&&r==null?(0,Z.jsx)(ue,{className:`h-4 w-4 text-[var(--primary-base)]`,"aria-hidden":!0}):void 0,onSelect:i})}function ze({label:e,options:t,selected:n,onSelect:r}){return(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),(0,Z.jsx)(`ul`,{children:t.map(e=>{let t=e.icon,i=n===e.value;return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>r(e.value),role:`option`,"aria-selected":i,className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:i?`var(--primary-base)`:`var(--content-default)`},children:[(0,Z.jsx)(t,{className:`h-4 w-4`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`flex-1`,children:e.label}),i&&(0,Z.jsx)(J,{className:`h-3.5 w-3.5`,"aria-hidden":!0})]})},e.value)})})]})}function Be({skill:e,onSelect:t,onInstall:n,onRemove:r,isInstalling:i=!1,isRemoving:a=!1}){let o=w(e),s=y(e);return(0,Z.jsx)(u.Root,{asChild:!0,children:(0,Z.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:t,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,Z.jsx)(`div`,{className:`flex shrink-0 items-center justify-center text-[28px] leading-none`,children:(0,Z.jsx)(T,{skill:e,className:`h-7 w-7`})}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:e.name}),(0,Z.jsx)(C,{origin:e.origin})]}),(0,Z.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.description})]}),o?i?(0,Z.jsx)(l,{type:`button`,iconOnly:(0,Z.jsx)(A,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,Z.jsx)(l,{type:`button`,iconOnly:(0,Z.jsx)(q,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),n?.()},disabled:!n,"aria-label":`Install skill`,expandOnMobile:!1}):(0,Z.jsx)(l,{type:`button`,variant:`dangerOutline`,iconOnly:a?(0,Z.jsx)(A,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(V,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),r?.()},disabled:!s||a||!r,"aria-label":s?`Remove skill`:`Bundled skill cannot be removed`,title:s?void 0:`Bundled skills cannot be removed`,expandOnMobile:!1})]})})}function Ve(e){return o({...M({path:{assistant_id:e}}),select:e=>e.categories,staleTime:300*1e3})}function He(e){switch(e){case`installed`:return{kind:`installed`};case`available`:return{kind:`available`};case`vellum`:case`clawhub`:case`skillssh`:case`custom`:return{origin:e};default:return{}}}function Ue(e){return[...e].sort((e,t)=>{let n=x(e);return n===x(t)?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):n?-1:1})}var We=300,Ge=`vellum:skills:tipDismissed`;function Ke({assistantId:e,initialSkillId:r}){let i=a(),c=re(),[l,u]=(0,X.useState)(``),d=ve(l.trim(),We),[p,m]=(0,X.useState)(`all`),[h,g]=(0,X.useState)(null),[_,v]=(0,X.useState)(r??null),[y,b]=(0,X.useState)(null),[x,C]=(0,X.useState)(null),[w,T]=(0,X.useState)(null),[D,O]=(0,X.useState)(()=>n(Ge,!1)),{data:k=[]}=Ve(e),{origin:A,kind:j}=(0,X.useMemo)(()=>He(p),[p]),M=o({...ne({path:{assistant_id:e},query:{include:`catalog`,origin:A,kind:j,q:d||void 0,category:h??void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e}),N=o({...ne({path:{assistant_id:e},query:{include:`catalog`,origin:A,kind:j,q:d||void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&h!==null}),P=(0,X.useCallback)(()=>{i.invalidateQueries({queryKey:te({path:{assistant_id:e}})})},[e,i]),F=s({mutationFn:t=>E(e,t),onMutate:e=>b(e),onSettled:()=>{b(null),P()}}),I=s({...ee(),onMutate:e=>C(e.path.id),onSettled:()=>{C(null),P()}}),L=(0,X.useCallback)(e=>{F.mutate(e.slug??e.id)},[F]),R=(0,X.useCallback)(e=>{T(e)},[]),z=(0,X.useCallback)(()=>{w&&(I.mutate({path:{assistant_id:e,id:w.id}}),T(null))},[e,w,I]),ie=(0,X.useCallback)(()=>{O(!0),t(Ge,!0)},[]),B=(0,X.useMemo)(()=>M.data?.skills??[],[M.data?.skills]),V=h===null?M.data:N.data,{counts:H,totalCount:U}=qe(V?.skills??B,V?.categoryCounts,V?.totalCount),W=(0,X.useMemo)(()=>Ue(B),[B]),G=(0,X.useMemo)(()=>_?B.find(e=>e.id===_)??null:null,[B,_]),K=(0,Z.jsx)(f,{open:w!==null,title:`Remove skill`,message:w?`Remove "${w.name}" from this assistant?`:``,confirmLabel:`Remove`,destructive:!0,onConfirm:z,onCancel:()=>T(null)});if(G){let t={assistantId:e,skill:G,onBack:()=>v(null),onInstall:()=>L(G),onRemove:()=>R(G),isInstalling:y===(G.slug??G.id),isRemoving:x===G.id};return(0,Z.jsxs)(Z.Fragment,{children:[c?(0,Z.jsx)(ke,{...t}):(0,Z.jsx)(S,{...t}),K]})}let q=M.isFetching&&!!d;return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-4`,children:[!D&&(0,Z.jsx)(Je,{onDismiss:ie}),(0,Z.jsx)(Ie,{search:l,onSearchChange:u,filter:p,onFilterChange:m,isSearching:q,categories:k,category:h,onCategoryChange:g,counts:H,totalCount:U,showCounts:!q}),(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-6`,children:[(0,Z.jsx)(`aside`,{className:`hidden w-56 shrink-0 overflow-y-auto sm:block`,children:(0,Z.jsx)(Ce,{selected:h,onSelect:g,counts:H,totalCount:U,showCounts:!q,categories:k})}),(0,Z.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:M.isLoading?(0,Z.jsx)(Ye,{}):M.isError?(0,Z.jsx)(Xe,{}):W.length===0?(0,Z.jsx)(Ze,{filter:p,category:h}):(0,Z.jsx)(`ul`,{className:`flex flex-col gap-2`,children:W.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(Be,{skill:e,onSelect:()=>v(e.id),onInstall:()=>L(e),onRemove:()=>R(e),isInstalling:y===(e.slug??e.id),isRemoving:x===e.id})},e.id))})})]}),K]})}function qe(e,t,n){return(0,X.useMemo)(()=>{if(t&&Object.keys(t).length>0)return{counts:t,totalCount:n??e.length};let r={};for(let t of e){let e=t.category??`system`;r[e]=(r[e]??0)+1}return{counts:r,totalCount:n??e.length}},[e,t,n])}function Je({onDismiss:e}){return(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,Z.jsx)(me,{className:`h-4 w-4 shrink-0`,style:{color:`var(--primary-base)`}}),(0,Z.jsx)(`p`,{className:`flex-1`,children:`You can create a new custom skill by describing what you want in chat.`}),(0,Z.jsx)(l,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(j,{"aria-hidden":!0}),onClick:e,"aria-label":`Dismiss tip`,tintColor:`var(--content-tertiary)`,expandOnMobile:!1})]})}function Ye(){return(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,Z.jsx)(A,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function Xe(){return(0,Z.jsx)(u.Root,{children:(0,Z.jsxs)(u.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,Z.jsx)(I,{className:`mb-3 h-8 w-8`,style:{color:`var(--system-danger)`},"aria-hidden":!0}),(0,Z.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Failed to load skills`}),(0,Z.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Something went wrong. Try refreshing the page.`})]})})}function Ze({filter:e,category:t}){let{title:n,subtitle:r,Icon:i}=Qe(e,t);return(0,Z.jsx)(u.Root,{children:(0,Z.jsxs)(u.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,Z.jsx)(i,{className:`mb-3 h-8 w-8`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0}),(0,Z.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:n}),(0,Z.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:r})]})})}function Qe(e,t){if(t)return{title:`No skills in this category`,subtitle:`Try selecting a different category or clearing the filter.`,Icon:Y};switch(e){case`installed`:return{title:`No Skills Installed`,subtitle:`Ask your assistant in chat to search for and install new skills.`,Icon:W};case`available`:return{title:`No Skills Available`,subtitle:`All available skills have been installed.`,Icon:J};case`vellum`:return{title:`No Vellum Skills`,subtitle:`No bundled Vellum skills found.`,Icon:ce};case`clawhub`:return{title:`No Clawhub Skills`,subtitle:`No Clawhub skills found. Try searching the catalog.`,Icon:O};case`skillssh`:return{title:`No skills.sh Skills`,subtitle:`No skills.sh skills found. Try searching the catalog.`,Icon:U};case`custom`:return{title:`No Custom Skills`,subtitle:`Create a custom skill by describing what you want in chat.`,Icon:L};default:return{title:`No Skills Available`,subtitle:`Check your connection to the Vellum catalog.`,Icon:F}}}function $e(){let e=he(),[t]=i();return(0,Z.jsx)(Ke,{assistantId:e,initialSkillId:t.get(`skill`)??void 0})}export{$e as SkillsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-XSukodg_.js";import{ar as t,hr as n}from"./index-DmTi6dG-.js";var r=`onboarding_v3_2026_05`,i=`onboarding.funnelSessionId`,a=`onboarding.funnelVariant`,o={control:`control`,paredDown:`pared_down`};function s(e){return e===`variant-a`?o.paredDown:o.control}var c={privacyTos:{stepName:`privacy_tos`,stepIndex:0},nameVibe:{stepName:`name_vibe`,stepIndex:1},controlWorkType:{stepName:`work_type`,stepIndex:2},controlTools:{stepName:`tools`,stepIndex:3},controlPriorAssistants:{stepName:`prior_assistants`,stepIndex:4},controlGmailConnect:{stepName:`gmail_connect`,stepIndex:5},controlGetApp:{stepName:`get_app`,stepIndex:6},gmailConnect:{stepName:`gmail_connect`,stepIndex:2}};function l(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function u(){if(typeof window>`u`)return crypto.randomUUID();let e=``;try{e=sessionStorage.getItem(i)??``}catch{e=``}if(e)return e;let t=crypto.randomUUID();try{sessionStorage.setItem(i,t)}catch{}return t}function d(e){return e===o.control||e===o.paredDown}function f(){if(typeof window>`u`)return null;try{let e=sessionStorage.getItem(a);return d(e)?e:null}catch{return null}}function p(e){let t=f();if(t)return t;if(typeof window>`u`)return e;try{sessionStorage.setItem(a,e)}catch{}return e}function m(e,t={}){let n=Date.now(),i=t.variant??f()??o.control;return{type:`onboarding`,daemon_event_id:crypto.randomUUID(),recorded_at:n,screen:e.stepName,session_id:u(),step_name:e.stepName,step_index:e.stepIndex,completed_at:new Date(n).toISOString(),user_id:t.userId??null,funnel_version:r,ab_variant:i}}function h(e,r={}){if(typeof window>`u`||!n())return;let i=l(m(e,r)),a=JSON.stringify({device_id:t(),assistant_version:`web-dev`,events:[i]});fetch(`/v1/telemetry/ingest/`,{method:`POST`,headers:{"Content-Type":`application/json`},body:a,keepalive:!0}).catch(()=>{})}var g=e();function _({current:e,total:t}){return(0,g.jsx)(`div`,{className:`flex items-center gap-1.5`,role:`group`,"aria-label":`Step ${e+1} of ${t}`,children:Array.from({length:t},(t,n)=>(0,g.jsx)(`div`,{"aria-hidden":`true`,className:`h-[3px] w-8 rounded-full transition-colors ${n<=e?`bg-[var(--content-default)]`:`bg-[var(--content-default)] opacity-20`}`},n))})}export{u as a,p as c,h as i,c as n,s as o,o as r,f as s,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./useQuery-DAtrV0RI.js";import{t as r}from"./jsx-runtime-XSukodg_.js";import{t as i}from"./dropdown-PPtOL9bp.js";import"./src-Bah0_lDG.js";import{t as a}from"./chevron-up-C-4xJEr7.js";import{t as o}from"./loader-circle-FEkI0Am4.js";import{Nn as s}from"./sdk.gen-up8j0_uF.js";import{$i as c,Ai as l,Bn as u,Ci as d,Da as f,Rn as p,Ui as m,Yi as h,ao as g,ba as _,co as v,fo as y,ga as b,ho as x,nt as S,oo as C,rt as w,so as T,tr as E,uo as D,vo as ee,zn as te}from"./index-DmTi6dG-.js";import{t as O}from"./use-current-platform-assistant-B3gP7gen.js";import{a as k,i as A,n as j,r as M}from"./format-B2Cl9naL.js";var N=e(t(),1),P={requestCount:0,llmCallCount:0,totalInputTokens:0,totalOutputTokens:0,averageLlmLatencyMs:0,toolFailureCount:0};function F(e,t){let n=e.attributes?.[t];if(typeof n==`number`&&Number.isFinite(n))return n;if(typeof n==`string`){let e=Number(n);if(Number.isFinite(e))return e}}function I(e){if(e.length===0)return P;let t=new Set,n=0,r=0,i=0,a=0,o=0,s=0;for(let c of e)switch(c.requestId&&t.add(c.requestId),c.kind){case`llm_call_finished`:{n+=1,r+=F(c,`inputTokens`)??0,i+=F(c,`outputTokens`)??0;let e=F(c,`latencyMs`);e!==void 0&&(a+=e,o+=1);break}case`tool_failed`:s+=1;break;default:break}return{requestCount:t.size,llmCallCount:n,totalInputTokens:r,totalOutputTokens:i,averageLlmLatencyMs:o>0?a/o:0,toolFailureCount:s}}function L(e){for(let t of e)switch(t.kind){case`generation_cancelled`:return`cancelled`;case`generation_handoff`:return`handedOff`;case`request_error`:return`error`;case`message_complete`:return`completed`;default:break}return e.some(e=>e.status===`error`)?`error`:`active`}function R(e){let t=new Map;for(let n of e){let e=n.requestId??``,r=t.get(e);r?(r.events.push(n),n.sequence<r.firstSequence&&(r.firstSequence=n.sequence)):t.set(e,{requestId:e,firstSequence:n.sequence,events:[n]})}for(let e of t.values())e.events.sort((e,t)=>e.sequence-t.sequence);return[...t.values()].sort((e,t)=>e.firstSequence-t.firstSequence)}function z(e){switch(e){case`request_received`:return T;case`request_queued`:case`request_dequeued`:return f;case`llm_call_started`:case`llm_call_finished`:return x;case`assistant_message`:return b;case`tool_started`:case`tool_finished`:return d;case`tool_permission_requested`:return m;case`tool_permission_decided`:return _;case`tool_failed`:return l;case`generation_handoff`:return c;case`message_complete`:return v;case`generation_cancelled`:return C;case`request_error`:return D;default:return g}}function B(e){switch(e){case`error`:return`var(--system-negative-strong)`;case`warning`:return`var(--system-mid-strong)`;case`success`:return`var(--system-positive-strong)`;default:return`var(--content-tertiary)`}}function V(e){switch(e){case`active`:return{Icon:ee,color:`var(--system-positive-strong)`};case`completed`:return{Icon:v,color:`var(--system-positive-strong)`};case`cancelled`:return{Icon:C,color:`var(--system-mid-strong)`};case`handedOff`:return{Icon:c,color:`var(--system-positive-strong)`};case`error`:return{Icon:l,color:`var(--system-negative-strong)`}}}function H(e){return e==null?`—`:typeof e==`string`?e:String(e)}var U=class extends Error{status;constructor(e,t){super(t),this.name=`TraceEventsRequestError`,this.status=e}};async function W(e,t){let{data:n,response:r}=await s({path:{assistant_id:e},query:{conversationId:t.conversationId,limit:t.limit,afterSequence:t.afterSequence},throwOnError:!1});if(!r?.ok){let e=await r?.clone().text().catch(()=>``);throw new U(r?.status??0,e||r?.statusText||`Failed to load trace events`)}return n??{events:[]}}var G=r(),K=500;function q({assistantId:e}){let[t,r]=(0,N.useState)(null),{conversations:i,isLoading:a,isError:s,error:c}=te(e),{conversations:l}=p(e,!0),{conversations:d}=u(e,!0),f=(0,N.useMemo)(()=>E(i,l,d).filter(e=>e.archivedAt==null),[i,l,d]),m=(0,N.useMemo)(()=>{if(t){let e=f.find(e=>e.conversationId===t);if(e)return e.conversationId}let n=S(e);if(n){let e=f.find(e=>e.conversationId===n);if(e)return e.conversationId}return f[0]?.conversationId??``},[e,f,t]),h=(0,N.useCallback)(t=>{r(t),w(e,t)},[e]),{data:g,isLoading:_,isError:v,error:y}=n({queryKey:[`trace-events`,e,m],queryFn:()=>W(e,{conversationId:m,limit:K}),enabled:m.length>0}),b=(0,N.useMemo)(()=>g?.events??[],[g]),x=(0,N.useMemo)(()=>I(b),[b]),C=(0,N.useMemo)(()=>R(b),[b]),T=f.length>0;return(0,G.jsx)(`div`,{className:`flex flex-col gap-6`,children:a?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(o,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-secondary)`}})}):s?(0,G.jsx)($,{message:c instanceof Error?c.message:`Failed to load conversations.`}):T?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(J,{conversations:f,selectedConversationId:m,onSelect:h}),_?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(o,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-secondary)`}})}):v?(0,G.jsx)($,{message:y instanceof Error?y.message:`Failed to load trace events.`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(X,{metrics:x}),b.length===0?(0,G.jsx)(Q,{title:`No trace events yet`,subtitle:`Events will appear as the session runs.`}):(0,G.jsx)(ne,{groups:C})]})]}):(0,G.jsx)(Q,{title:`No conversations yet`,subtitle:`Start a conversation to generate trace events.`})})}function J({conversations:e,selectedConversationId:t,onSelect:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`label`,{htmlFor:`logs-conversation-picker`,className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`Conversation`}),(0,G.jsx)(i,{id:`logs-conversation-picker`,value:t,onChange:n,options:e.map(e=>({value:e.conversationId,label:Y(e)}))})]})}function Y(e){return e.title?.trim()||`Conversation ${e.conversationId.slice(0,8)}`}function X({metrics:e}){let t=e.toolFailureCount>0;return(0,G.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-lg border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,G.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Session Metrics`}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2`,children:[(0,G.jsx)(Z,{label:`Requests`,value:A(e.requestCount)}),(0,G.jsx)(Z,{label:`LLM Calls`,value:A(e.llmCallCount)}),(0,G.jsx)(Z,{label:`Tokens`,value:k(e.totalInputTokens,e.totalOutputTokens)}),(0,G.jsx)(Z,{label:`Avg Latency`,value:j(e.averageLlmLatencyMs)}),t?(0,G.jsx)(Z,{label:`Failures`,value:A(e.toolFailureCount),valueColor:`var(--system-negative-strong)`}):null]})]})}function Z({label:e,value:t,valueColor:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,G.jsx)(`span`,{className:`text-body-medium-default`,style:{color:n??`var(--content-default)`},children:t}),(0,G.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function ne({groups:e}){return(0,G.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,G.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Timeline`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-5`,children:e.map(e=>(0,G.jsx)(re,{requestId:e.requestId,events:e.events},e.requestId||`__system__`))})]})}function re({requestId:e,events:t}){let n=V((0,N.useMemo)(()=>L(t),[t])),r=e?`Request ${e.slice(0,8)}`:`System`;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.createElement)(n.Icon,{className:`h-3 w-3 shrink-0`,style:{color:n.color}}),(0,G.jsx)(`span`,{className:`text-body-small-default select-text`,style:{color:`var(--content-secondary)`},children:r}),(0,G.jsx)(`div`,{className:`h-px flex-1`,style:{background:`var(--border-base)`},"aria-hidden":!0})]}),(0,G.jsx)(`ol`,{className:`flex flex-col`,style:{listStyle:`none`},children:t.map(e=>(0,G.jsx)(`li`,{children:(0,G.jsx)(ie,{event:e})},e.eventId))})]})}function ie({event:e}){let[t,n]=(0,N.useState)(!1),r=(0,N.useMemo)(()=>e.attributes?Object.entries(e.attributes).sort(([e],[t])=>e.localeCompare(t)):[],[e.attributes]),i=r.length>0,o=z(e.kind),s=B(e.status);return(0,G.jsxs)(`div`,{className:`flex flex-col`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{i&&n(e=>!e)},className:`flex w-full items-start gap-2 rounded-sm px-1 py-1.5 text-left transition-colors`,style:{cursor:i?`pointer`:`default`},disabled:!i,"aria-expanded":i?t:void 0,children:[(0,N.createElement)(o,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`,style:{color:s}}),(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,G.jsx)(`span`,{className:`text-body-medium-lighter break-words`,style:{color:`var(--content-default)`},children:e.summary}),(0,G.jsx)(`span`,{className:`font-mono text-body-small-default`,style:{color:`var(--content-tertiary)`},children:M(e.timestampMs)})]}),i?t?(0,G.jsx)(a,{className:`mt-1 h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,G.jsx)(y,{className:`mt-1 h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):null]}),t&&i?(0,G.jsx)(`div`,{className:`mb-1 ml-6 mr-2 rounded-md px-3 py-2`,style:{background:`var(--surface-base)`},children:(0,G.jsx)(`dl`,{className:`flex flex-col gap-1`,children:r.map(([e,t])=>(0,G.jsxs)(`div`,{className:`flex flex-col gap-0.5 sm:flex-row sm:gap-3`,children:[(0,G.jsx)(`dt`,{className:`shrink-0 font-mono text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,G.jsx)(`dd`,{className:`font-mono text-body-small-default break-all`,style:{color:`var(--content-secondary)`},children:H(t)})]},e))})}):null]})}function Q({title:e,subtitle:t}){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md border border-dashed px-6 py-16 text-center`,style:{borderColor:`var(--border-base)`,color:`var(--content-secondary)`},children:[(0,G.jsx)(h,{className:`mb-3 h-8 w-8`}),(0,G.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,G.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function $({message:e}){return(0,G.jsxs)(`div`,{className:`text-body-medium-lighter flex items-start gap-3 rounded-md border px-4 py-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`,color:`var(--content-default)`},children:[(0,G.jsx)(l,{className:`h-5 w-5 shrink-0`,style:{color:`var(--system-negative-strong)`}}),(0,G.jsx)(`span`,{children:e})]})}function ae(){let{assistantId:e}=O();return e?(0,G.jsx)(q,{assistantId:e}):null}export{ae as TracePage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,r as t}from"./auth-store-NinzEiLF.js";function n(){let n=e.use.currentOrganizationId();return!t()||n!=null}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./capture-error-23NwnaZt.js";import{n as t,t as n}from"./create-selectors-LbkU9b0a.js";import{it as r,n as i}from"./sdk.gen-up8j0_uF.js";import{r as a}from"./app-html-cache-B0vrz1YW.js";function o(e){if(typeof e!=`object`||!e)return!1;let t=e.error;if(typeof t!=`object`||!t||t.code!==`NOT_FOUND`)return!1;let n=t.message;return typeof n==`string`&&n.startsWith(`App not found`)}function s(e,t){let n=e.mainView;return n===`document`||n===`subagent-detail`||n===`tool-detail`?e[t]:n}var c={mainView:`chat`,activeAppId:null,openedAppState:null,activeDocumentSurfaceId:null,openedDocumentState:null,isAppMinimized:!1,intelligenceTab:`identity`,assetsRefreshKey:0,viewBeforeDocument:`chat`,activeSubagentId:null,viewBeforeSubagentDetail:`chat`,activeToolDetail:null,viewBeforeToolDetail:`chat`,ruleEditorRequestSeq:0},l=n(t()((t,n)=>({...c,setMainView:e=>{n().mainView!==e&&t({mainView:e})},setIntelligenceTab:e=>{n().intelligenceTab!==e&&t({intelligenceTab:e})},openApp:e=>{t({mainView:`app`,activeAppId:e,openedAppState:null,isAppMinimized:!1})},loadApp:async(r,s)=>{t({mainView:`app`,activeAppId:s,openedAppState:null,isAppMinimized:!1});try{let{data:e}=await i({path:{assistant_id:r,id:s},throwOnError:!0});if(n().activeAppId!==s)return;t({openedAppState:{appId:e.appId,dirName:e.dirName,name:e.name,html:e.html}}),a(r,e.appId,e.html)}catch(r){if(n().activeAppId!==s)return;o(r)||e(r,{context:`openApp`}),t({mainView:`chat`,activeAppId:null,openedAppState:null})}},setLoadedApp:e=>{t({openedAppState:e})},handleAppLoadFailed:()=>{t({mainView:`chat`,activeAppId:null,openedAppState:null})},closeApp:()=>{t({mainView:`chat`,activeAppId:null,openedAppState:null,isAppMinimized:!1})},toggleAppMinimized:()=>{t({isAppMinimized:!n().isAppMinimized})},handleAppUnpinned:e=>{let t=n();return t.activeAppId!==e||t.mainView!==`app`&&t.mainView!==`app-editing`?!1:(n().closeApp(),!0)},enterAppEditing:()=>{t({mainView:`app-editing`})},exitAppEditing:()=>{t({mainView:`app`})},openSubagentDetail:e=>{t({mainView:`subagent-detail`,activeSubagentId:e,viewBeforeSubagentDetail:s(n(),`viewBeforeSubagentDetail`)})},closeSubagentDetail:()=>{t({mainView:n().viewBeforeSubagentDetail,activeSubagentId:null})},openToolDetail:e=>{t({mainView:`tool-detail`,activeToolDetail:e,viewBeforeToolDetail:s(n(),`viewBeforeToolDetail`)})},toggleToolDetail:e=>{let t=n(),r=t.activeToolDetail;t.mainView===`tool-detail`&&r!=null&&(e.kind===`thinking`?r.kind===`thinking`&&r.thinkingText===e.thinkingText:r.kind!==`thinking`&&r.toolCallId===e.toolCallId)?n().closeToolDetail():n().openToolDetail(e)},closeToolDetail:()=>{t({mainView:n().viewBeforeToolDetail,activeToolDetail:null})},requestRuleEditorForActiveTool:()=>{n().activeToolDetail&&t(e=>({ruleEditorRequestSeq:e.ruleEditorRequestSeq+1}))},openDocument:()=>{t({mainView:`document`,openedDocumentState:null,viewBeforeDocument:s(n(),`viewBeforeDocument`)})},loadDocument:async(e,i)=>{let a=s(n(),`viewBeforeDocument`);t({mainView:`document`,activeDocumentSurfaceId:i,openedDocumentState:null,viewBeforeDocument:a});try{let{data:o}=await r({path:{assistant_id:e,id:i},throwOnError:!0});if(n().activeDocumentSurfaceId!==i)return;if(!o){t({mainView:a,activeDocumentSurfaceId:null,openedDocumentState:null});return}t({openedDocumentState:{surfaceId:o.surfaceId,conversationId:o.conversationId,documentName:o.title??`Untitled`,content:o.content??``}})}catch{if(n().activeDocumentSurfaceId!==i)return;t({mainView:a,activeDocumentSurfaceId:null,openedDocumentState:null})}},setLoadedDocument:e=>{t({openedDocumentState:e})},updateDocumentContent:(e,r,i)=>{let a=n();if(!a.openedDocumentState||a.openedDocumentState.surfaceId!==e)return;let o=a.openedDocumentState,s=i===`append`?o.content+r:r;t({openedDocumentState:{...o,content:s}})},handleDocumentLoadFailed:()=>{t({mainView:n().viewBeforeDocument,activeDocumentSurfaceId:null,openedDocumentState:null})},closeDocument:()=>{t({mainView:n().viewBeforeDocument,activeDocumentSurfaceId:null,openedDocumentState:null})},refreshAssets:()=>{t({assetsRefreshKey:n().assetsRefreshKey+1})},reset:()=>t({...c})})));export{l as t};
|