@vellumai/web 0.11.3-staging.1 → 0.11.3-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{access-BEF4g5Xz.js → access-DWtJQvRI.js} +1 -1
- package/dist/assets/{account-page-CjBQhkfo.js → account-page-D03pCcnz.js} +1 -1
- package/dist/assets/{account-shell-BwGiy59u.js → account-shell-DmVQwtZ0.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-BPcNCjiL.js → acp-run-detail-panel-COs66Yrd.js} +1 -1
- package/dist/assets/{activity-steps-panel-DhuSLpCc.js → activity-steps-panel-CLjBxqNs.js} +1 -1
- package/dist/assets/ai-page-D4GbPprS.js +1 -0
- package/dist/assets/{api-key-screen-D1j3oper.js → api-key-screen-vFF5CrFw.js} +1 -1
- package/dist/assets/{app-card-BBt0ilaM.js → app-card-B7C46-7O.js} +1 -1
- package/dist/assets/{assistant-status-panel-DnkQ1jrJ.js → assistant-status-panel-CDUAp33H.js} +1 -1
- package/dist/assets/{auth-store-CPVpJ_c7.js → auth-store-DkOiOQNx.js} +1 -1
- package/dist/assets/{avatar-random-BHVo9v-a.js → avatar-random-BiLhcs1I.js} +1 -1
- package/dist/assets/{background-task-detail-panel-CyVrsboL.js → background-task-detail-panel-xFGqYCUz.js} +1 -1
- package/dist/assets/{billing-page-CvZZTRHS.js → billing-page-n2hU_EAj.js} +2 -2
- package/dist/assets/{bookmarks-page-M8X5Jj_q.js → bookmarks-page-DqXq2CVJ.js} +1 -1
- package/dist/assets/{build-state-DGpOoR0F.js → build-state-B0f3Jn2o.js} +1 -1
- package/dist/assets/channels-page-route-CbV05RLi.js +9 -0
- package/dist/assets/chat-markdown-message-WfT4JUja.js +1 -0
- package/dist/assets/{checkout-page-CQdvMHxx.js → checkout-page-BxYwG3J8.js} +1 -1
- package/dist/assets/{command-palette-DjHOOk8U.js → command-palette-DSxHNf_m.js} +1 -1
- package/dist/assets/{command-palette-window-page-msewbnL1.js → command-palette-window-page-9lbssBKp.js} +1 -1
- package/dist/assets/{common-BUQt6ee_.js → common-wFfOb0rN.js} +1 -1
- package/dist/assets/{composer-settings-veIRzcPS.js → composer-settings-MHDtr31Y.js} +1 -1
- package/dist/assets/{contacts-page-route-Caog1niM.js → contacts-page-route-BE3oNfhk.js} +1 -1
- package/dist/assets/{conversation-navigation-DqU55C7j.js → conversation-navigation-DbQqV_fs.js} +1 -1
- package/dist/assets/{conversation-queries-Bh_7RMKd.js → conversation-queries-CMEwcap1.js} +1 -1
- package/dist/assets/{credentials-page-D3H8KP0a.js → credentials-page-DKfIMfUB.js} +1 -1
- package/dist/assets/{csv-preview-Crel8fKb.js → csv-preview-DB8q0b_y.js} +1 -1
- package/dist/assets/{debug-page-By8-4Cjy.js → debug-page-DpWI-aFX.js} +2 -2
- package/dist/assets/{deploy-dialogs-Dak-wWO4.js → deploy-dialogs-BhY-urVH.js} +1 -1
- package/dist/assets/{deploy-store-0HlKHhLJ.js → deploy-store-OFWDAEgC.js} +1 -1
- package/dist/assets/{detail-card-CmSV969e.js → detail-card-Dsnf52vg.js} +1 -1
- package/dist/assets/{detail-drawer-HN4NsyKg.js → detail-drawer-AKY7keIJ.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-DV6U5A7y.js → detail-panel-stop-button-Cvnn4hYA.js} +1 -1
- package/dist/assets/{detail-shell-rL601Rqo.js → detail-shell-g6Pw4jiP.js} +1 -1
- package/dist/assets/{developer-page-Bgg8qW6q.js → developer-page-CSFTdMiT.js} +1 -1
- package/dist/assets/{document-viewer-container-BkKmz-ar.js → document-viewer-container-Bousf9D9.js} +2 -2
- package/dist/assets/{document-viewer-page-B-jAUGAO.js → document-viewer-page-CJuMnNZk.js} +1 -1
- package/dist/assets/{emails-page-B0r-ksKy.js → emails-page-CMoX6WSY.js} +1 -1
- package/dist/assets/{file-editor-BQUkusyI.js → file-editor-BwWJX7zO.js} +1 -1
- package/dist/assets/file-markdown-CZPyyZhu.js +2 -0
- package/dist/assets/{first-run-scope-U5LrdMhR.js → first-run-scope-jh9sT0_v.js} +1 -1
- package/dist/assets/{general-page-Ce41M2hE.js → general-page-Biad-auh.js} +1 -1
- package/dist/assets/{hatching-screen-TI6k1_Q2.js → hatching-screen-DtMbgBm6.js} +1 -1
- package/dist/assets/{home-page-route-D6oL1pWj.js → home-page-route-k81d1Zsb.js} +1 -1
- package/dist/assets/{home-tool-permission-card-DG7KNyYY.js → home-tool-permission-card-Bytpm6bE.js} +1 -1
- package/dist/assets/{hosting-screen-CGkMm-2o.js → hosting-screen-C-6MdEhq.js} +1 -1
- package/dist/assets/identity-page-route-BEobbSBV.js +7 -0
- package/dist/assets/{index-3KliM4Ki.js → index-BI5VpYa-.js} +1 -1
- package/dist/assets/index-_S2T-6in.css +2 -0
- package/dist/assets/{inspect-page-DD024DeO.js → inspect-page-BSPJgPij.js} +3 -3
- package/dist/assets/integration-icon-R8opqT3n.js +1 -0
- package/dist/assets/integrations-page-DNYDhZHQ.js +1 -0
- package/dist/assets/{intelligence-layout-DOTYC75R.js → intelligence-layout-CDcBeu8K.js} +1 -1
- package/dist/assets/{library-detail-page-B2C4hPSd.js → library-detail-page-D5EeSRdZ.js} +1 -1
- package/dist/assets/{library-page-Y2NwunY9.js → library-page-wPVeE7u1.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-12Yco-XF.js → local-runtime-upgrade-DyHUCz7A.js} +1 -1
- package/dist/assets/{login-flow-fmfcNxyU.js → login-flow-B8CUFAeg.js} +1 -1
- package/dist/assets/{login-page-HFoMsSuP.js → login-page-BgXMUzWB.js} +1 -1
- package/dist/assets/{logout-page-B_3PiI2q.js → logout-page-COe8dRLu.js} +1 -1
- package/dist/assets/{logs-layout-7JGOJ0Gg.js → logs-layout-BGd_aSZ_.js} +1 -1
- package/dist/assets/{memory-page-route-Cf8FoT6z.js → memory-page-route-BGEmbUCl.js} +1 -1
- package/dist/assets/{memory-router-playground-page-B4vWmkYZ.js → memory-router-playground-page-B4DX4CON.js} +1 -1
- package/dist/assets/{message-files-panel-B8NzbXp3.js → message-files-panel-DTDXhD0C.js} +1 -1
- package/dist/assets/{messages-JRZkqLeA.js → messages-D2OJUCHs.js} +1 -1
- package/dist/assets/{metric-card-Ba-Ju2sO.js → metric-card-DgbUgyv7.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-B0rTd7jy.js → mobile-sidebar-drawer-CRXVtqcP.js} +1 -1
- package/dist/assets/{multi-activity-group-5OxVs26d.js → multi-activity-group-Chyfm08f.js} +1 -1
- package/dist/assets/{not-found-zOjj1km-.js → not-found-ClBCK2Sg.js} +1 -1
- package/dist/assets/{notifications-pzRj4j4m.js → notifications-G7qqgf4f.js} +1 -1
- package/dist/assets/{notifications-page-DTTyILgl.js → notifications-page-AW-ftrs5.js} +1 -1
- package/dist/assets/{open-workspace-file-FgLn-SuR.js → open-workspace-file-C4HWMBzn.js} +2 -2
- package/dist/assets/{page-shell-DH240m1W.js → page-shell-CkfnwmIw.js} +1 -1
- package/dist/assets/pairing-page-CGoWIhv7.js +1 -0
- package/dist/assets/{personality-page-B1BQNH7w.js → personality-page-CEbJMhDR.js} +1 -1
- package/dist/assets/{plans-page-B8oZfefa.js → plans-page-DXCrcLo8.js} +1 -1
- package/dist/assets/{platform-login-notice-3g7rHtc3.js → platform-login-notice-CIpebDVw.js} +1 -1
- package/dist/assets/{platform-loopback-page-DwnkFF3M.js → platform-loopback-page-BJf6yE-E.js} +1 -1
- package/dist/assets/{plugin-detail-page-BrrXgSIx.js → plugin-detail-page-CnlqMl6e.js} +1 -1
- package/dist/assets/plugins-surface-C5i913ST.js +1 -0
- package/dist/assets/{preview-error-Di5TH4XQ.js → preview-error-CihmwI1t.js} +1 -1
- package/dist/assets/{privacy-page-4LAU5IqF.js → privacy-page-CxAYEG0r.js} +1 -1
- package/dist/assets/{privacy-screen-CNnBXznE.js → privacy-screen-DAzWoGQI.js} +1 -1
- package/dist/assets/{profile-pickers-BSDVzs_G.js → profile-pickers-ChG4_Gpc.js} +1 -1
- package/dist/assets/{provider-callback-page-CpfaqAgJ.js → provider-callback-page--oWycq5i.js} +1 -1
- package/dist/assets/{provider-key-C9asexKh.js → provider-key-BZOH9D9k.js} +1 -1
- package/dist/assets/{provider-signup-page-MukjbwOQ.js → provider-signup-page-BaGT8Jl4.js} +1 -1
- package/dist/assets/{push-registration-CqXBOPNb.js → push-registration-C0GXHrCj.js} +1 -1
- package/dist/assets/{remove-from-device-dialog-DY5o8eIg.js → remove-from-device-dialog-C0eaWxwl.js} +1 -1
- package/dist/assets/{research-onboarding-route-BIY3OCwG.js → research-onboarding-route-CXimVFK6.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-CgOoh5RG.js → retire-confirm-dialog-B1bvTlHS.js} +1 -1
- package/dist/assets/{review-terms-screen-BA2I_7F2.js → review-terms-screen-BxxGJL-B.js} +1 -1
- package/dist/assets/{routes-DuLrKyjJ.js → routes-ZeXUrnzY.js} +14 -14
- package/dist/assets/{runtime-upgrade-banner-9KhcwQWy.js → runtime-upgrade-banner--bSmfygH.js} +1 -1
- package/dist/assets/{sandbox-bridge-B6h4B0qp.js → sandbox-bridge-BlniBIsp.js} +1 -1
- package/dist/assets/schedules-page-DCUj-YbP.js +1 -0
- package/dist/assets/select-assistant-screen-C5Cl_pCp.js +1 -0
- package/dist/assets/self-hosted-servers-DFgP80iG.js +1 -0
- package/dist/assets/{settings-divider-D_vHiuYw.js → settings-divider-BuDc875f.js} +1 -1
- package/dist/assets/{settings-layout-CINtkHJR.js → settings-layout-Clnlm1aB.js} +1 -1
- package/dist/assets/{settings-navigation-CHeVLLWI.js → settings-navigation-Cn3KCxOe.js} +1 -1
- package/dist/assets/{share-feedback-modal-BWez_NtT.js → share-feedback-modal-COUhsUqF.js} +1 -1
- package/dist/assets/{sidebar-tree-aLYbZLvm.js → sidebar-tree-BXbcoj07.js} +1 -1
- package/dist/assets/{signup-page-CiW0Chx7.js → signup-page-C9ZrCSVo.js} +1 -1
- package/dist/assets/{site-favicon-B5ilr8wL.js → site-favicon-B3DMFtr3.js} +1 -1
- package/dist/assets/{skill-detail-page-T24C6W33.js → skill-detail-page-Ckw6_1PG.js} +2 -2
- package/dist/assets/{skill-detail-panel-BOPQ16Vg.js → skill-detail-panel-DdYbYHuj.js} +1 -1
- package/dist/assets/{skills-C2mjxWRN.js → skills-Lf85mR9L.js} +1 -1
- package/dist/assets/{src-BMRW2yQf.js → src-hNk11eS3.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-BVO4V699.js → stt-language-picker-modal-B5MO-3gk.js} +1 -1
- package/dist/assets/{subagent-detail-panel-BCDOrwh3.js → subagent-detail-panel-BKhU7VAv.js} +1 -1
- package/dist/assets/{subagent-store-BOpi4xxB.js → subagent-store-9SqF-NFa.js} +1 -1
- package/dist/assets/{superpowers-page-bOpdIXSO.js → superpowers-page-gPiU1fsq.js} +1 -1
- package/dist/assets/{system-events-page-Bgo88uzO.js → system-events-page-DbcoH4sh.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-B3MHpy56.js → telegram-setup-wizard-C4E0wi1B.js} +1 -1
- package/dist/assets/{text-preview-CPYq3og6.js → text-preview-KOyX3OrO.js} +1 -1
- package/dist/assets/{theme-stage-page-B6C95R4X.js → theme-stage-page-D4DYc_C8.js} +1 -1
- package/dist/assets/{tiptap-document-editor-By4wlOTs.js → tiptap-document-editor-CDIJTTa_.js} +1 -1
- package/dist/assets/{tool-detail-panel-E_gP0j1r.js → tool-detail-panel-CmbBw4_n.js} +1 -1
- package/dist/assets/typed-storage-lk6_tW16.js +1 -0
- package/dist/assets/{upgrade-cancel-page-DCiT0Rqi.js → upgrade-cancel-page-DfjtkvP9.js} +1 -1
- package/dist/assets/{upgrade-success-page-DLs3viaj.js → upgrade-success-page-BDWg5oK4.js} +1 -1
- package/dist/assets/{use-assistant-avatar-Dk975wdP.js → use-assistant-avatar-Dd-EU1FC.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-DyvMGaA7.js → use-assistant-identity-details-BAgi4MHa.js} +1 -1
- package/dist/assets/{use-attachment-preview-DjrcSin2.js → use-attachment-preview-CB3GsEns.js} +1 -1
- package/dist/assets/{use-attachment-squares-DHH1eTI4.js → use-attachment-squares-DPuVHGRC.js} +1 -1
- package/dist/assets/{use-bookmarks-Wg8ueMhb.js → use-bookmarks-C6IlHWIK.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-wuwzKwo_.js → use-checkout-dismiss-refresh-CDwSKr1-.js} +1 -1
- package/dist/assets/{use-command-palette-sections-CzHbFhwD.js → use-command-palette-sections-DXzS2Tio.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-9-2nUEK7.js → use-edge-swipe-back-ZgANxgKE.js} +2 -2
- package/dist/assets/{use-edit-app-PiQBQ9vN.js → use-edit-app-BHUYCv4X.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-C6rYwhqr.js → use-invite-link-dialog-CdY5FNQa.js} +1 -1
- package/dist/assets/{use-is-org-ready-BTUeuhPi.js → use-is-org-ready-BmOdacs1.js} +1 -1
- package/dist/assets/{use-onboarding-login-BXw1Fcg3.js → use-onboarding-login-BUaNGE_u.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-DOBe1pF-.js → use-platform-assistant-id-CEMyKEvV.js} +1 -1
- package/dist/assets/{use-platform-gate-DBRG0Q26.js → use-platform-gate-CdwOyQ8A.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-Bl1RwuwD.js → use-return-to-short-circuit-CTYRB2Ne.js} +1 -1
- package/dist/assets/{use-skill-actions-kLsl5L01.js → use-skill-actions-GbdM3IIw.js} +1 -1
- package/dist/assets/{use-sticky-profiles-CVsR9J8_.js → use-sticky-profiles-LVe9u5gh.js} +1 -1
- package/dist/assets/{use-subagent-card-data-BeUTFQdm.js → use-subagent-card-data-CFKl88ab.js} +1 -1
- package/dist/assets/{use-supports-bookmarks-FmvOAxKu.js → use-supports-bookmarks-z9pfj1Rm.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-CEPArXBW.js +1 -0
- package/dist/assets/use-transcript-message-by-id-cDbEJMB-.js +1 -0
- package/dist/assets/{use-transcript-messages-BAG92dqc.js → use-transcript-messages-vw2Hogaj.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-CVVwbBcE.js → use-voice-sample-preview-BjIqIVEG.js} +1 -1
- package/dist/assets/{utils-CAZUrJMu.js → utils-CVoSWh7U.js} +1 -1
- package/dist/assets/{viewer-store-BhqBXvNu.js → viewer-store-DhrkeZmJ.js} +1 -1
- package/dist/assets/{voice-list-ChEr4jqe.js → voice-list-DnqRx15F.js} +1 -1
- package/dist/assets/{voice-page-CkdnjoLc.js → voice-page-CrrYAE9k.js} +1 -1
- package/dist/assets/{voice-providers-note-DC4nbaBx.js → voice-providers-note-ValSs0nz.js} +1 -1
- package/dist/assets/{welcome-screen-BTnikex6.js → welcome-screen-CiBqE53u.js} +1 -1
- package/dist/assets/{workflow-detail-panel-Bf6rP5UH.js → workflow-detail-panel-crM7HRfK.js} +1 -1
- package/dist/assets/{workspace-page-C8EUvGJ4.js → workspace-page-iAsgehav.js} +1 -1
- package/dist/images/integrations/ATTRIBUTION.md +72 -0
- package/dist/images/integrations/airtable.svg +1 -0
- package/dist/images/integrations/asana.svg +1 -0
- package/dist/images/integrations/discord.svg +1 -0
- package/dist/images/integrations/dropbox.svg +1 -0
- package/dist/images/integrations/hubspot.svg +1 -0
- package/dist/images/integrations/salesforce.svg +5 -0
- package/dist/images/integrations/sanity.svg +1 -0
- package/dist/images/integrations/spotify.svg +1 -0
- package/dist/images/integrations/telegram.svg +1 -0
- package/dist/images/integrations/todoist.svg +1 -0
- package/dist/images/integrations/x.svg +1 -0
- package/dist/index.html +57 -57
- package/package.json +1 -1
- package/dist/assets/ai-page-CsufGyQ4.js +0 -1
- package/dist/assets/channels-page-route-Dj500t-M.js +0 -9
- package/dist/assets/chat-markdown-message-Dr9rA1lM.js +0 -1
- package/dist/assets/file-markdown-DMq6D4CV.js +0 -2
- package/dist/assets/identity-page-route-CLUGVFIg.js +0 -7
- package/dist/assets/index-BIhXfUlg.css +0 -2
- package/dist/assets/integration-icon-BaoRF0qI.js +0 -1
- package/dist/assets/integrations-page-Dygny-c2.js +0 -1
- package/dist/assets/pairing-page-Tun2QZT0.js +0 -1
- package/dist/assets/plugins-surface-B4NuEVD_.js +0 -1
- package/dist/assets/schedules-page-CchXRGaR.js +0 -1
- package/dist/assets/select-assistant-screen-BHf9p-NL.js +0 -1
- package/dist/assets/typed-storage-UYklH-m5.js +0 -1
- package/dist/assets/use-supports-credentials-settings-BGgnzFf0.js +0 -1
- package/dist/assets/use-supports-schedule-profile-moves-CuKzMKxy.js +0 -1
- package/dist/assets/use-transcript-message-by-id-C7L609Lk.js +0 -1
- /package/dist/assets/{profile-metadata-DutSLpwl.js → profile-metadata-DgH7VoVU.js} +0 -0
- /package/dist/assets/{start-screen-zLwb2fyf.js → start-screen-CXUDtHbL.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/routes-DuLrKyjJ.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/api-DwULK0El.js","assets/local-mode-BfEgOekp.js","assets/is-electron-BHXrkjI3.js","assets/create-selectors-DBgi9gD3.js","assets/react-BFJW0bSv.js","assets/local-settings-Bx7FsNo5.js","assets/api-JA_IDAQk.js","assets/sdk.gen-DKYWIHI7.js","assets/client.gen-C854VG5x.js","assets/sdk.gen-CBPZ2IdN.js","assets/api-errors-BQX1Pzcm.js","assets/use-assistant-avatar-Dk975wdP.js","assets/utils-CAZUrJMu.js","assets/assistant-identity-store-nE-e8KQw.js","assets/semver-7PiLMufW.js","assets/QueryClientProvider-CMu7CkQU.js","assets/jsx-runtime-D3ZM-ToX.js","assets/useQuery-Bz-fbQ-m.js","assets/composer-settings-veIRzcPS.js","assets/funnel-events-BU99LZEM.js","assets/prefs-CrbuxuNI.js","assets/onboarding-store-_SsI8JK5.js","assets/device-settings-DZvv4pnY.js","assets/consent-C4SGGEiM.js","assets/ingest-Cv1Pem27.js","assets/platform-detection-C_TK32Dw.js","assets/native-deep-link-CiI89I5P.js","assets/domains-Cmw6F6mt.js","assets/routes-iipg2wkc.js","assets/dist-Br0LBu8Y.js","assets/use-bus-subscription-0lId9jya.js","assets/event-bus-Cy8AzL-G.js","assets/capture-error-Cw5vs0Ef.js","assets/client-feature-flag-store-C8ieIAKe.js","assets/feature-flag-catalog-BOqgTYGM.js","assets/theme-preferences-5grl-uOq.js","assets/typed-storage-UYklH-m5.js","assets/button-BENY-yx_.js","assets/dist-DHB1G-V6.js","assets/bundle-mjs-BQxDdOEo.js","assets/cn-DFWryB3N.js","assets/checkbox-C4x4HEp4.js","assets/createLucideIcon-C1mdGPB9.js","assets/check-DSgjgwlo.js","assets/typography-BeUa5Fd-.js","assets/src-BMRW2yQf.js","assets/dist-DlYszVmN.js","assets/dist-BA9prIz1.js","assets/select-B8-i-CZ4.js","assets/Combination-BswM2qVy.js","assets/chevron-down-CrFV6lfm.js","assets/field-Dq8jxCGe.js","assets/modal-DI63s9MQ.js","assets/dist-C5_d6Zkz.js","assets/x-338EsJDP.js","assets/menu-DKE_-iVc.js","assets/chevron-right-DBGgpEiZ.js","assets/popover-CAbJ9178.js","assets/toast-BpuLSxyt.js","assets/circle-alert-De9q5FVd.js","assets/circle-check-q8BVdbgw.js","assets/info-CXkwGlN_.js","assets/card-q0GJX1HZ.js","assets/confirm-dialog-zx8L9sUi.js","assets/loader-circle-DOtGXcds.js","assets/triangle-alert-CB4pJgCL.js","assets/input-DmHXRXaB.js","assets/notice-C0ifrvvJ.js","assets/progress-bar-CrrJKpWm.js","assets/skeleton-CJJwPIil.js","assets/tag-DeMzQvCo.js","assets/toggle-C-v4x7_A.js","assets/src-CfUWwwYf.css","assets/profile-pickers-BSDVzs_G.js","assets/identity-DTcIPrCK.js","assets/auth-store-CPVpJ_c7.js","assets/remote-gateway-session-CgDx1fv1.js","assets/push-registration-CqXBOPNb.js","assets/resolved-assistants-store-BFI9c7ip.js","assets/runtime-upgrade-banner-9KhcwQWy.js","assets/react-query.gen-DKb3mEwJ.js","assets/useMutation-CXGTrp4W.js","assets/infiniteQueryOptions-CqLc14_4.js","assets/queryOptions-CMSBCFOf.js","assets/use-is-org-ready-BTUeuhPi.js","assets/local-runtime-upgrade-12Yco-XF.js","assets/use-platform-gate-DBRG0Q26.js","assets/diagnostics-6dSlxnyU.js","assets/misc-Z0jXGGeY.js","assets/cloud-off-DyOAnFan.js","assets/moon-D9N1oSgM.js","assets/refresh-cw-DV6tvYxO.js","assets/wrench-BIRk4-Cp.js","assets/chunk-5KNZJZUH-BUqIilZr.js","assets/retire-confirm-dialog-CgOoh5RG.js","assets/navigation-resolver-DrNVOkMu.js","assets/research-onboarding-persistence-CiHHjoc-.js","assets/build-state-DGpOoR0F.js","assets/remove-from-device-dialog-DY5o8eIg.js","assets/use-command-palette-sections-CzHbFhwD.js","assets/chat-DYLliWTB.js","assets/haptics-Mqend0Ru.js","assets/calendar-CTyC1v1L.js","assets/globe-COk-NH9x.js","assets/layout-grid-C3h1DMhl.js","assets/message-square-BjBDqFUX.js","assets/monitor-CPgcKlQP.js","assets/settings-751LDGs_.js","assets/use-sticky-profiles-CVsR9J8_.js","assets/react-query.gen-DxjuNs-5.js","assets/add-credential-modal-DKu25tMg.js","assets/use-active-assistant-id-BvHP5Ojg.js","assets/key-round-B-C1Qgxd.js","assets/app-card-BBt0ilaM.js","assets/viewer-store-BhqBXvNu.js","assets/workspace-path-links-Dal5QJ_L.js","assets/open-workspace-file-FgLn-SuR.js","assets/sandbox-bridge-B6h4B0qp.js","assets/copy-to-clipboard-DnJHokIa.js","assets/deploy-store-0HlKHhLJ.js","assets/native-file-BUoRmAbj.js","assets/edge-swipe-arbiter-store-aOM60mqn.js","assets/pointer-CmipOtDe.js","assets/external-link-vwewPjbo.js","assets/puzzle-CIWAeBs0.js","assets/use-edit-app-PiQBQ9vN.js","assets/use-is-mobile-BP8UePsY.js","assets/conversation-store-D4pZBwP5.js","assets/edit-chat-session-DKBzd1lH.js","assets/chevron-up-B84s50b8.js","assets/link-2-Bm55xvLL.js","assets/minimize-2-D5pX5fY1.js","assets/pencil-DidiUknI.js","assets/avatar-renderer-CsRuhhXn.js","assets/avatar-svg-compositor-BOadabHt.js","assets/animated-avatar-COfAYU4u.js","assets/use-reduced-motion-CaGZSwLZ.js","assets/reduced-motion-DiWTepDn.js","assets/chat-avatar-BPhNOZzd.js","assets/sound-manager-jVvPdZzE.js","assets/proxy-B4sTDdE4.js","assets/telegram-setup-wizard-B3MHpy56.js","assets/use-copy-to-clipboard-CT4aISCf.js","assets/browser-BP3Xidk_.js","assets/clipboard-copy-BOU_-XoC.js","assets/detail-shell-rL601Rqo.js","assets/apple-logo-Dz_HmP0n.js","assets/use-discord-nudge-BxJE92fj.js","assets/middleware-DiHdH8q1.js","assets/integration-icon-BaoRF0qI.js","assets/public-asset-CZ7NhuGg.js","assets/chat-layout-slots-store-N_sabTbs.js","assets/document-viewer-container-BkKmz-ar.js","assets/use-local-file-info-2nORgZPN.js","assets/circle-check-big-CpoRGdNz.js","assets/download-Byg0fi0d.js","assets/file-text-DDbRSMUn.js","assets/message-square-text-Crbwae27.js","assets/send-BlX2px_R.js","assets/trash-2-BKXSi5Tj.js","assets/user-Djte2CiZ.js","assets/not-found-zOjj1km-.js","assets/arrow-left-BikDV6F2.js","assets/sparkles-B94iNYGJ.js","assets/shim-DQit20z4.js","assets/platform-login-notice-3g7rHtc3.js","assets/use-onboarding-login-BXw1Fcg3.js","assets/login-flow-fmfcNxyU.js","assets/native-auth-error-B9Iha2zU.js","assets/external-urls-EO9DXoFH.js","assets/log-in-BkWp0GjS.js","assets/voice-list-ChEr4jqe.js","assets/use-voice-sample-preview-CVVwbBcE.js","assets/search-D2xMZu1P.js","assets/square-CE8V_WXJ.js","assets/volume-2-CyoXrHNM.js","assets/voice-providers-note-DC4nbaBx.js","assets/use-save-twilio-credentials-D5Zb65WS.js","assets/sdk.gen-CAngxL4a.js","assets/mail-CYjppw70.js","assets/message-circle-C6QWfv9m.js","assets/acp-run-store-DAOLku4B.js","assets/by-tool-use-id-index-xzJzBHo0.js","assets/optimistic-lifecycle-y2tCk6TM.js","assets/messages-JRZkqLeA.js","assets/prechat-CXmfuQt3.js","assets/effective-timezone-CjGPHJlt.js","assets/browser-timezone-DM1QmwES.js","assets/background-task-store-B1MUU_bh.js","assets/use-transcript-messages-BAG92dqc.js","assets/use-attachment-preview-DjrcSin2.js","assets/file-markdown-DMq6D4CV.js","assets/pdf-preview-DNzKWskr.js","assets/chevron-left-D-pnIQax.js","assets/file-CTdxLT0k.js","assets/client-perf-C-xVLAvQ.js","assets/acp-run-actions-BtRROeN9.js","assets/code-DwZ6Mhdw.js","assets/background-task-actions-NhVu8iWU.js","assets/message-content-Beh5mR15.js","assets/multi-activity-group-5OxVs26d.js","assets/site-favicon-B5ilr8wL.js","assets/three-dot-indicator-BQxSg8G2.js","assets/AnimatePresence-D41IKJOi.js","assets/brain-ZiC0HCCF.js","assets/user-plus-DAap8I1c.js","assets/subagent-store-BOpi4xxB.js","assets/circle-x-B5rnAOe1.js","assets/file-plus-D0O_zjgz.js","assets/terminal-CkQ9DSF2.js","assets/use-attachment-squares-DHH1eTI4.js","assets/archive-VIStcSec.js","assets/chat-markdown-message-Dr9rA1lM.js","assets/workspace-tree-query-Djht8L1-.js","assets/native-anchor-CpFd0dIc.js","assets/ellipsis-C7C3LPFH.js","assets/eye-off-BwU7XK4M.js","assets/eye-GcssNJdY.js","assets/preview-skeleton-DsTQ51Kh.js","assets/surface-parse-helpers-Dpxz8G3q.js","assets/conversation-navigation-DqU55C7j.js","assets/workflow-store-D0DBQy44.js","assets/workflow-status-AIHLnh_i.js","assets/conversation-selection-DXYpE4U8.js","assets/use-subagent-card-data-BeUTFQdm.js","assets/access-BEF4g5Xz.js","assets/assistant-feature-flag-store-qYfAdlBG.js","assets/research-results-view-CBP6WMg5.js","assets/research-facts-xV6xeZTm.js","assets/ban-Dk1OXyCw.js","assets/home-tool-permission-card-DG7KNyYY.js","assets/format-date-Bi9Bsv-w.js","assets/bell-aW0w-ROt.js","assets/clock-B8umTTHk.js","assets/list-O_53kvwx.js","assets/rotate-ccw-Dcfo4EC8.js","assets/shield-check-zaoUwOKj.js","assets/invalidate-memory-queries-CdJoJc7n.js","assets/get-memory-stats-CgfjHhot.js","assets/invalidate-plugin-queries-zbCn3jP3.js","assets/first-run-scope-U5LrdMhR.js","assets/oauth-connection-utils-CPrZGY1J.js","assets/oauth-popup-CBMOU7CT.js","assets/onboarding-layout-C534GRct.js","assets/settings-navigation-CHeVLLWI.js","assets/hard-navigate-BrsAH6PB.js","assets/use-supports-bookmarks-FmvOAxKu.js","assets/bug-CDEs1Scu.js","assets/chart-column-CEHOik7U.js","assets/cpu-mDttg6J1.js","assets/mic-bZFqVBA_.js","assets/sliders-horizontal-Dd2oGqSf.js","assets/users-XI0CRYkf.js","assets/schedules-kVuR00ra.js","assets/schedules-CMISpWUM.js","assets/workspace-theme-tokens-D_dTwxiM.js","assets/conversation-queries-Bh_7RMKd.js","assets/conversation-list-fetchers-D3FmANI4.js","assets/use-edge-swipe-Di2s_nu-.js","assets/use-app-theme-CV9AULGm.js","assets/use-assistant-capability-y4ML0NOY.js","assets/use-avatar-accent-var-B7jzoU_Q.js","assets/avatar-bundled-components-BCCi2IoG.js","assets/use-bookmarks-Wg8ueMhb.js","assets/daily-reset-time-B2-pE2Lv.js","assets/use-swipe-engine-DkOpo76V.js","assets/plugins-surface-B4NuEVD_.js","assets/android-consumption-only-BkXIkXls.js","assets/installed-plugins-query-CIcohCho.js","assets/doctor-handoff-store-DeQSIF5u.js","assets/threshold-presets-DgMnAyqn.js","assets/shield-CCHFIJHf.js","assets/trust-rules-api-DvCWJ952.js","assets/desktop-voice-activity-C53ZhMf7.js","assets/dictation-overlay-DQnD0C9N.js","assets/notifications-pzRj4j4m.js","assets/esm-C-UZ0OO7.js","assets/page-surface-store-CNB4IeOj.js","assets/avatar-subagent-CvC1Sf9s.js","assets/avatar-tone-D1ZiIRxb.js","assets/conversation-cache-BmhpM_P6.js","assets/eye-bbox-hZoek1Q5.js","assets/use-bundled-avatar-components-CJR9zw0E.js","assets/use-effective-timezone-BZgsy8ZD.js","assets/useInfiniteQuery-Dk8q0n49.js","assets/animate-CEUNjqNk.js","assets/arrow-down-to-line-DmG4pLoU.js","assets/arrow-right-UTImTy7b.js","assets/arrow-up-C0gtfKEK.js","assets/upload-CZL0kXl9.js","assets/circle-minus-Y3lFnfyL.js","assets/cloud-DqktQX50.js","assets/coins-CJ7Ik1IC.js","assets/file-code-Cw2JhKbm.js","assets/video-BS0zvFDX.js","assets/folder-DBR-Zigu.js","assets/hard-drive-DsHzx0GK.js","assets/heart-CRsy5qXC.js","assets/inbox-Zbr4HDc_.js","assets/laptop-BXuIFbVm.js","assets/lightbulb-DqvoPoCk.js","assets/link-DMi999lz.js","assets/log-out-un0hWR_E.js","assets/paperclip-CQEdxfSq.js","assets/play-UYtEUTRg.js","assets/plus-DnH9Pjq4.js","assets/smartphone-BTdDwse2.js","assets/sun-DnK4LisT.js","assets/workflow-CXyPzVz4.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./preload-helper-Cv2QeVDK.js";import{c as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{i,n as a,r as o}from"./use-edge-swipe-Di2s_nu-.js";import{t as s}from"./edge-swipe-arbiter-store-aOM60mqn.js";var c=e(t(),1),l=new Set;function u(e){if(typeof e==`function`){e().catch(()=>{});return}for(let t of Object.values(e))typeof t==`function`&&t().catch(()=>{})}function d(e){!e||l.has(e)||(l.add(e),n(async()=>{let{routeTree:e}=await import(`./routes-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/routes-ZeXUrnzY.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/api-DwULK0El.js","assets/local-mode-BfEgOekp.js","assets/is-electron-BHXrkjI3.js","assets/create-selectors-DBgi9gD3.js","assets/react-BFJW0bSv.js","assets/local-settings-Bx7FsNo5.js","assets/api-JA_IDAQk.js","assets/sdk.gen-DKYWIHI7.js","assets/client.gen-C854VG5x.js","assets/sdk.gen-CBPZ2IdN.js","assets/api-errors-BQX1Pzcm.js","assets/use-assistant-avatar-Dd-EU1FC.js","assets/utils-CVoSWh7U.js","assets/assistant-identity-store-nE-e8KQw.js","assets/semver-7PiLMufW.js","assets/QueryClientProvider-CMu7CkQU.js","assets/jsx-runtime-D3ZM-ToX.js","assets/useQuery-Bz-fbQ-m.js","assets/composer-settings-MHDtr31Y.js","assets/funnel-events-BU99LZEM.js","assets/prefs-CrbuxuNI.js","assets/onboarding-store-_SsI8JK5.js","assets/device-settings-DZvv4pnY.js","assets/consent-C4SGGEiM.js","assets/ingest-Cv1Pem27.js","assets/platform-detection-C_TK32Dw.js","assets/native-deep-link-CiI89I5P.js","assets/domains-Cmw6F6mt.js","assets/routes-iipg2wkc.js","assets/dist-Br0LBu8Y.js","assets/use-bus-subscription-0lId9jya.js","assets/event-bus-Cy8AzL-G.js","assets/capture-error-Cw5vs0Ef.js","assets/client-feature-flag-store-C8ieIAKe.js","assets/feature-flag-catalog-BOqgTYGM.js","assets/theme-preferences-5grl-uOq.js","assets/typed-storage-lk6_tW16.js","assets/button-BENY-yx_.js","assets/dist-DHB1G-V6.js","assets/bundle-mjs-BQxDdOEo.js","assets/cn-DFWryB3N.js","assets/checkbox-C4x4HEp4.js","assets/createLucideIcon-C1mdGPB9.js","assets/check-DSgjgwlo.js","assets/typography-BeUa5Fd-.js","assets/src-hNk11eS3.js","assets/dist-DlYszVmN.js","assets/dist-BA9prIz1.js","assets/select-B8-i-CZ4.js","assets/Combination-BswM2qVy.js","assets/chevron-down-CrFV6lfm.js","assets/field-Dq8jxCGe.js","assets/modal-DI63s9MQ.js","assets/dist-C5_d6Zkz.js","assets/x-338EsJDP.js","assets/menu-DKE_-iVc.js","assets/chevron-right-DBGgpEiZ.js","assets/popover-CAbJ9178.js","assets/toast-BpuLSxyt.js","assets/circle-alert-De9q5FVd.js","assets/circle-check-q8BVdbgw.js","assets/info-CXkwGlN_.js","assets/card-q0GJX1HZ.js","assets/confirm-dialog-zx8L9sUi.js","assets/loader-circle-DOtGXcds.js","assets/triangle-alert-CB4pJgCL.js","assets/input-DmHXRXaB.js","assets/notice-C0ifrvvJ.js","assets/progress-bar-CrrJKpWm.js","assets/skeleton-CJJwPIil.js","assets/tag-DeMzQvCo.js","assets/toggle-C-v4x7_A.js","assets/src-CfUWwwYf.css","assets/profile-pickers-ChG4_Gpc.js","assets/identity-DTcIPrCK.js","assets/auth-store-DkOiOQNx.js","assets/remote-gateway-session-CgDx1fv1.js","assets/push-registration-C0GXHrCj.js","assets/resolved-assistants-store-BFI9c7ip.js","assets/runtime-upgrade-banner--bSmfygH.js","assets/react-query.gen-DKb3mEwJ.js","assets/useMutation-CXGTrp4W.js","assets/infiniteQueryOptions-CqLc14_4.js","assets/queryOptions-CMSBCFOf.js","assets/use-is-org-ready-BmOdacs1.js","assets/local-runtime-upgrade-DyHUCz7A.js","assets/use-platform-gate-CdwOyQ8A.js","assets/diagnostics-6dSlxnyU.js","assets/misc-Z0jXGGeY.js","assets/cloud-off-DyOAnFan.js","assets/moon-D9N1oSgM.js","assets/refresh-cw-DV6tvYxO.js","assets/wrench-BIRk4-Cp.js","assets/chunk-5KNZJZUH-BUqIilZr.js","assets/retire-confirm-dialog-B1bvTlHS.js","assets/navigation-resolver-DrNVOkMu.js","assets/research-onboarding-persistence-CiHHjoc-.js","assets/build-state-B0f3Jn2o.js","assets/remove-from-device-dialog-C0eaWxwl.js","assets/use-command-palette-sections-DXzS2Tio.js","assets/chat-DYLliWTB.js","assets/haptics-Mqend0Ru.js","assets/calendar-CTyC1v1L.js","assets/globe-COk-NH9x.js","assets/layout-grid-C3h1DMhl.js","assets/message-square-BjBDqFUX.js","assets/monitor-CPgcKlQP.js","assets/settings-751LDGs_.js","assets/use-sticky-profiles-LVe9u5gh.js","assets/react-query.gen-DxjuNs-5.js","assets/add-credential-modal-DKu25tMg.js","assets/use-active-assistant-id-BvHP5Ojg.js","assets/key-round-B-C1Qgxd.js","assets/app-card-B7C46-7O.js","assets/viewer-store-DhrkeZmJ.js","assets/workspace-path-links-Dal5QJ_L.js","assets/open-workspace-file-C4HWMBzn.js","assets/sandbox-bridge-BlniBIsp.js","assets/copy-to-clipboard-DnJHokIa.js","assets/deploy-store-OFWDAEgC.js","assets/native-file-BUoRmAbj.js","assets/edge-swipe-arbiter-store-aOM60mqn.js","assets/pointer-CmipOtDe.js","assets/external-link-vwewPjbo.js","assets/puzzle-CIWAeBs0.js","assets/use-edit-app-BHUYCv4X.js","assets/use-is-mobile-BP8UePsY.js","assets/conversation-store-D4pZBwP5.js","assets/edit-chat-session-DKBzd1lH.js","assets/chevron-up-B84s50b8.js","assets/link-2-Bm55xvLL.js","assets/minimize-2-D5pX5fY1.js","assets/pencil-DidiUknI.js","assets/avatar-renderer-CsRuhhXn.js","assets/avatar-svg-compositor-BOadabHt.js","assets/animated-avatar-COfAYU4u.js","assets/use-reduced-motion-CaGZSwLZ.js","assets/reduced-motion-DiWTepDn.js","assets/chat-avatar-BPhNOZzd.js","assets/sound-manager-jVvPdZzE.js","assets/proxy-B4sTDdE4.js","assets/telegram-setup-wizard-C4E0wi1B.js","assets/use-copy-to-clipboard-CT4aISCf.js","assets/browser-BP3Xidk_.js","assets/clipboard-copy-BOU_-XoC.js","assets/detail-shell-g6Pw4jiP.js","assets/apple-logo-Dz_HmP0n.js","assets/use-discord-nudge-BxJE92fj.js","assets/middleware-DiHdH8q1.js","assets/integration-icon-R8opqT3n.js","assets/public-asset-CZ7NhuGg.js","assets/chat-layout-slots-store-N_sabTbs.js","assets/document-viewer-container-Bousf9D9.js","assets/use-local-file-info-2nORgZPN.js","assets/circle-check-big-CpoRGdNz.js","assets/download-Byg0fi0d.js","assets/file-text-DDbRSMUn.js","assets/message-square-text-Crbwae27.js","assets/send-BlX2px_R.js","assets/trash-2-BKXSi5Tj.js","assets/user-Djte2CiZ.js","assets/not-found-ClBCK2Sg.js","assets/arrow-left-BikDV6F2.js","assets/sparkles-B94iNYGJ.js","assets/shim-DQit20z4.js","assets/platform-login-notice-CIpebDVw.js","assets/use-onboarding-login-BUaNGE_u.js","assets/login-flow-B8CUFAeg.js","assets/native-auth-error-B9Iha2zU.js","assets/external-urls-EO9DXoFH.js","assets/log-in-BkWp0GjS.js","assets/voice-list-DnqRx15F.js","assets/use-voice-sample-preview-BjIqIVEG.js","assets/search-D2xMZu1P.js","assets/square-CE8V_WXJ.js","assets/volume-2-CyoXrHNM.js","assets/voice-providers-note-ValSs0nz.js","assets/use-save-twilio-credentials-D5Zb65WS.js","assets/sdk.gen-CAngxL4a.js","assets/mail-CYjppw70.js","assets/message-circle-C6QWfv9m.js","assets/acp-run-store-DAOLku4B.js","assets/by-tool-use-id-index-xzJzBHo0.js","assets/optimistic-lifecycle-y2tCk6TM.js","assets/messages-D2OJUCHs.js","assets/prechat-CXmfuQt3.js","assets/effective-timezone-CjGPHJlt.js","assets/browser-timezone-DM1QmwES.js","assets/background-task-store-B1MUU_bh.js","assets/use-transcript-messages-vw2Hogaj.js","assets/use-attachment-preview-CB3GsEns.js","assets/file-markdown-CZPyyZhu.js","assets/pdf-preview-DNzKWskr.js","assets/chevron-left-D-pnIQax.js","assets/file-CTdxLT0k.js","assets/client-perf-C-xVLAvQ.js","assets/acp-run-actions-BtRROeN9.js","assets/code-DwZ6Mhdw.js","assets/background-task-actions-NhVu8iWU.js","assets/message-content-Beh5mR15.js","assets/multi-activity-group-Chyfm08f.js","assets/site-favicon-B3DMFtr3.js","assets/three-dot-indicator-BQxSg8G2.js","assets/AnimatePresence-D41IKJOi.js","assets/brain-ZiC0HCCF.js","assets/user-plus-DAap8I1c.js","assets/subagent-store-9SqF-NFa.js","assets/circle-x-B5rnAOe1.js","assets/file-plus-D0O_zjgz.js","assets/terminal-CkQ9DSF2.js","assets/use-attachment-squares-DPuVHGRC.js","assets/archive-VIStcSec.js","assets/chat-markdown-message-WfT4JUja.js","assets/workspace-tree-query-Djht8L1-.js","assets/native-anchor-CpFd0dIc.js","assets/ellipsis-C7C3LPFH.js","assets/eye-off-BwU7XK4M.js","assets/eye-GcssNJdY.js","assets/preview-skeleton-DsTQ51Kh.js","assets/surface-parse-helpers-Dpxz8G3q.js","assets/conversation-navigation-DbQqV_fs.js","assets/workflow-store-D0DBQy44.js","assets/workflow-status-AIHLnh_i.js","assets/conversation-selection-DXYpE4U8.js","assets/use-subagent-card-data-CFKl88ab.js","assets/access-DWtJQvRI.js","assets/assistant-feature-flag-store-qYfAdlBG.js","assets/research-results-view-CBP6WMg5.js","assets/research-facts-xV6xeZTm.js","assets/ban-Dk1OXyCw.js","assets/home-tool-permission-card-Bytpm6bE.js","assets/format-date-Bi9Bsv-w.js","assets/bell-aW0w-ROt.js","assets/clock-B8umTTHk.js","assets/list-O_53kvwx.js","assets/rotate-ccw-Dcfo4EC8.js","assets/shield-check-zaoUwOKj.js","assets/invalidate-memory-queries-CdJoJc7n.js","assets/get-memory-stats-CgfjHhot.js","assets/invalidate-plugin-queries-zbCn3jP3.js","assets/first-run-scope-jh9sT0_v.js","assets/oauth-connection-utils-CPrZGY1J.js","assets/oauth-popup-CBMOU7CT.js","assets/onboarding-layout-C534GRct.js","assets/settings-navigation-Cn3KCxOe.js","assets/hard-navigate-BrsAH6PB.js","assets/use-supports-bookmarks-z9pfj1Rm.js","assets/bug-CDEs1Scu.js","assets/chart-column-CEHOik7U.js","assets/cpu-mDttg6J1.js","assets/mic-bZFqVBA_.js","assets/sliders-horizontal-Dd2oGqSf.js","assets/users-XI0CRYkf.js","assets/schedules-kVuR00ra.js","assets/schedules-CMISpWUM.js","assets/workspace-theme-tokens-D_dTwxiM.js","assets/conversation-queries-CMEwcap1.js","assets/conversation-list-fetchers-D3FmANI4.js","assets/use-edge-swipe-Di2s_nu-.js","assets/use-app-theme-CV9AULGm.js","assets/use-assistant-capability-y4ML0NOY.js","assets/use-avatar-accent-var-B7jzoU_Q.js","assets/avatar-bundled-components-BCCi2IoG.js","assets/use-bookmarks-C6IlHWIK.js","assets/daily-reset-time-B2-pE2Lv.js","assets/use-swipe-engine-DkOpo76V.js","assets/plugins-surface-C5i913ST.js","assets/android-consumption-only-BkXIkXls.js","assets/installed-plugins-query-CIcohCho.js","assets/doctor-handoff-store-DeQSIF5u.js","assets/threshold-presets-DgMnAyqn.js","assets/shield-CCHFIJHf.js","assets/trust-rules-api-DvCWJ952.js","assets/desktop-voice-activity-C53ZhMf7.js","assets/dictation-overlay-DQnD0C9N.js","assets/notifications-G7qqgf4f.js","assets/esm-C-UZ0OO7.js","assets/page-surface-store-CNB4IeOj.js","assets/avatar-subagent-CvC1Sf9s.js","assets/avatar-tone-D1ZiIRxb.js","assets/conversation-cache-BmhpM_P6.js","assets/eye-bbox-hZoek1Q5.js","assets/use-bundled-avatar-components-CJR9zw0E.js","assets/use-effective-timezone-BZgsy8ZD.js","assets/useInfiniteQuery-Dk8q0n49.js","assets/animate-CEUNjqNk.js","assets/arrow-down-to-line-DmG4pLoU.js","assets/arrow-right-UTImTy7b.js","assets/arrow-up-C0gtfKEK.js","assets/upload-CZL0kXl9.js","assets/circle-minus-Y3lFnfyL.js","assets/cloud-DqktQX50.js","assets/coins-CJ7Ik1IC.js","assets/file-code-Cw2JhKbm.js","assets/video-BS0zvFDX.js","assets/folder-DBR-Zigu.js","assets/hard-drive-DsHzx0GK.js","assets/heart-CRsy5qXC.js","assets/inbox-Zbr4HDc_.js","assets/laptop-BXuIFbVm.js","assets/lightbulb-DqvoPoCk.js","assets/link-DMi999lz.js","assets/log-out-un0hWR_E.js","assets/paperclip-CQEdxfSq.js","assets/play-UYtEUTRg.js","assets/plus-DnH9Pjq4.js","assets/smartphone-BTdDwse2.js","assets/sun-DnK4LisT.js","assets/workflow-CXyPzVz4.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./preload-helper-Cv2QeVDK.js";import{c as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{i,n as a,r as o}from"./use-edge-swipe-Di2s_nu-.js";import{t as s}from"./edge-swipe-arbiter-store-aOM60mqn.js";var c=e(t(),1),l=new Set;function u(e){if(typeof e==`function`){e().catch(()=>{});return}for(let t of Object.values(e))typeof t==`function`&&t().catch(()=>{})}function d(e){!e||l.has(e)||(l.add(e),n(async()=>{let{routeTree:e}=await import(`./routes-ZeXUrnzY.js`).then(e=>e.n);return{routeTree:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311])).then(({routeTree:t})=>{let n=r(t,e);for(let e of n??[]){let t=e.route.lazy;t&&u(t)}}).catch(()=>{l.delete(e)}))}var f=.25;function p(e){e.style.transition=``,e.style.transform=``,e.style.willChange=``,e.style.opacity=``}function m({containerRef:e,onBack:t,enabled:n,navKey:r,prefetchHref:l}){let u=(0,c.useRef)(t);(0,c.useLayoutEffect)(()=>{u.current=t},[t]);let m=(0,c.useRef)(l);(0,c.useLayoutEffect)(()=>{m.current=l},[l]);let h=(0,c.useRef)(!1),g=(0,c.useRef)(new Set),_=(0,c.useRef)(!1),v=s.use.registerBackOwner(),y=s.use.unregisterBackOwner();(0,c.useEffect)(()=>{if(n)return v(),y},[n,v,y]),(0,c.useEffect)(()=>{_.current=!1;let t=g.current;return()=>{_.current=!0;for(let e of t)clearTimeout(e);t.clear();let n=e.current;n&&p(n)}},[e]);let b=(e,t)=>{let n=setTimeout(()=>{g.current.delete(n),_.current||e()},t);g.current.add(n)},x=(e,t)=>{e.style.transform=t===0?``:`translateX(${t}px)`},S=e=>{e.style.transition=`transform 200ms ${i}`,x(e,0);let t=()=>{e.removeEventListener(`transitionend`,t),p(e)};e.addEventListener(`transitionend`,t,{once:!0}),b(()=>p(e),250)},C=e=>{e.style.transition=`transform 150ms ${i}`,x(e,window.innerWidth);let t=!1,n=()=>{if(t||_.current)return;t=!0,e.removeEventListener(`transitionend`,n);let r=-(window.innerWidth*f);e.style.transition=`none`,e.style.transform=`translateX(${r}px)`,e.style.opacity=`0`,e.offsetWidth,h.current=!0,u.current(),b(()=>{h.current&&(h.current=!1,p(e))},400)};e.addEventListener(`transitionend`,n,{once:!0}),b(n,200)};o({enabled:n,onConfirm:()=>{d(m.current);let t=e.current;t&&(t.style.transition=`none`,t.style.willChange=`transform`)},onMove:(t,n)=>{let r=e.current;r&&x(r,a(t,n))},onCommit:()=>{let t=e.current;if(!t){u.current();return}C(t)},onCancel:t=>{let n=e.current;n&&(t?S(n):p(n))}}),(0,c.useLayoutEffect)(()=>{if(!h.current)return;h.current=!1;let t=e.current;if(!t)return;let n=!1,r=()=>{n||(n=!0,t.removeEventListener(`transitionend`,r),p(t))};t.style.transition=`transform 200ms ${i}, opacity 200ms ${i}`,t.style.transform=``,t.style.opacity=``,t.addEventListener(`transitionend`,r,{once:!0});let a=setTimeout(r,250);return()=>{clearTimeout(a),t.removeEventListener(`transitionend`,r),p(t)}},[r,e])}export{m as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./typography-BeUa5Fd-.js";import{t as s}from"./createLucideIcon-C1mdGPB9.js";import{t as c}from"./chevron-up-B84s50b8.js";import{t as l}from"./menu-DKE_-iVc.js";import{F as u,N as d}from"./src-BMRW2yQf.js";import{t as f}from"./globe-COk-NH9x.js";import{t as p}from"./link-2-Bm55xvLL.js";import{t as m}from"./loader-circle-DOtGXcds.js";import{n as h,t as g}from"./minimize-2-D5pX5fY1.js";import{t as _}from"./pencil-DidiUknI.js";import{t as v}from"./refresh-cw-DV6tvYxO.js";import{t as y}from"./x-338EsJDP.js";import{n as b}from"./resolved-assistants-store-BFI9c7ip.js";import{t as x}from"./client.gen-C854VG5x.js";import{n as S}from"./event-bus-Cy8AzL-G.js";import{d as C}from"./routes-iipg2wkc.js";import{t as w}from"./conversation-store-D4pZBwP5.js";import{i as T}from"./viewer-store-BhqBXvNu.js";import{n as E}from"./use-is-mobile-BP8UePsY.js";import{t as D}from"./misc-Z0jXGGeY.js";import{r as O,t as k}from"./edit-chat-session-DKBzd1lH.js";import{a as A,n as j,o as M,t as N}from"./sandbox-bridge-B6h4B0qp.js";var P=s(`expand`,[[`path`,{d:`m15 15 6 6`,key:`1s409w`}],[`path`,{d:`m15 9 6-6`,key:`ko1vev`}],[`path`,{d:`M21 16v5h-5`,key:`1ck2sf`}],[`path`,{d:`M21 8V3h-5`,key:`1qoq8a`}],[`path`,{d:`M3 16v5h5`,key:`1t08am`}],[`path`,{d:`m3 21 6-6`,key:`wwnumi`}],[`path`,{d:`M3 8V3h5`,key:`1ln10m`}],[`path`,{d:`M9 9 3 3`,key:`v551iv`}]]),F=s(`share`,[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]),I=a(),L=e(t(),1),R=`flags.toggleAppsSandboxDisabled`,z=!1,B=new Set;function V(){return z}function H(e){let t=e===void 0?!z:e===!0;if(t===z)return console.info(`[vellumDebug] ${R}: already ${String(t)}.`),z;z=t,t?console.warn(`[vellumDebug] ${R} = true: app iframes render without the sandbox attribute. App HTML runs same-origin with the host and can reach its DOM, storage, and cookies. Open apps reload to pick this up. Call it again, or reload the page, to restore the sandbox.`):console.info(`[vellumDebug] ${R} = false: app iframes are sandboxed again.`);for(let e of B)e();return z}function U(e){return B.add(e),()=>{B.delete(e)}}function W(){return(0,L.useSyncExternalStore)(U,V,()=>!1)}function G({appName:e,onEdit:t,isEditing:r,onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,onToggleFullscreen:g,onClose:v}){let b=E(),x=b&&r===!0&&t!=null,S=i!=null&&s!=null,C=u!=null&&u!==``&&d!=null;return(0,I.jsxs)(`div`,{className:`flex items-center justify-between rounded-t-xl bg-[var(--surface-lift)] px-4 py-3`,children:[(0,I.jsx)(`div`,{className:`hidden md:flex items-center min-w-[72px]`,children:t!=null&&(r?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(P,{}),onClick:t,tooltip:`Expand app`,"aria-label":`Expand app`}):(0,I.jsx)(n,{onClick:t,children:`Edit`}))}),(0,I.jsx)(o,{variant:`body-large-default`,className:D(`flex-1 truncate text-left md:text-center text-[var(--content-emphasised)]`,x&&`cursor-pointer`),style:{lineHeight:1.4},onClick:x?t:void 0,children:e}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-[72px] justify-end`,children:[S?(0,I.jsx)(K,{onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,isMobile:b}):(0,I.jsxs)(I.Fragment,{children:[s!=null&&(C?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(p,{}),onClick:d,tooltip:`Deployed: copy link`,"aria-label":`Deployed to Vercel, copy link`}):(0,I.jsx)(n,{variant:`outlined`,iconOnly:l?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(f,{}),onClick:s,disabled:l,tooltip:l?`Deploying…`:`Deploy`,"aria-label":l?`Deploying…`:`Deploy`})),i!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:a?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),onClick:i,disabled:a,tooltip:a?`Sharing…`:`Share`,"aria-label":a?`Sharing…`:`Share`})]}),g!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(h,{}),onClick:g,tooltip:`Fullscreen`,"aria-label":`Fullscreen`}),t!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:r?(0,I.jsx)(c,{}):(0,I.jsx)(_,{}),onClick:t,tooltip:r?`Open app`:`Edit`,"aria-label":r?`Open app`:`Edit`,active:r,className:`md:hidden`}),(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(y,{}),onClick:v,tooltip:`Close`,"aria-label":`Close`})]})]})}function K({onShare:e,isSharing:t,onDeploy:r,isDeploying:i,deployedUrl:a,onCopyDeployedLink:o,isMobile:s}){let[c,h]=(0,L.useState)(!1),g=a!=null&&a!==``&&o!=null,_=t||i,y=_?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),b=t?`Sharing…`:i?`Deploying…`:`Share & deploy`;return s?(0,I.jsxs)(u.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(u.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(u.Content,{"aria-describedby":void 0,children:[(0,I.jsx)(u.Header,{className:`sr-only`,children:(0,I.jsx)(u.Title,{children:`Share & deploy`})}),(0,I.jsxs)(u.Body,{className:`pt-0`,children:[(0,I.jsx)(d,{icon:F,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Share`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{h(!1),e()}}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(d,{icon:p,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deployed to Vercel`}),(0,I.jsx)(`span`,{className:`break-all text-body-small-default text-[var(--content-tertiary)]`,children:a})]}),onSelect:()=>{h(!1),o?.()}}),(0,I.jsx)(d,{icon:v,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Redeploy`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish the current version`})]}),onSelect:()=>{h(!1),r()}})]}):(0,I.jsx)(d,{icon:f,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deploy to Vercel`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{h(!1),r()}})]})]})]}):(0,I.jsxs)(l.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(l.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(l.Content,{align:`end`,sideOffset:4,children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(F,{size:14}),onSelect:()=>e(),className:`whitespace-nowrap`,children:`Share`}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(p,{size:14}),shortcut:`Copy link`,onSelect:()=>o?.(),className:`whitespace-nowrap`,children:`Deployed to Vercel`}),(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(v,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Redeploy`})]}):(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(f,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Deploy to Vercel`})]})]})}var q=[`assistant:`,`conversation:`,`conversations:`,`apps:`,`documents:`,`plugins:`,`feature-flags:`];function J(e){return q.some(t=>e.startsWith(t))}function Y(e,t){if(e.length===0)return[];let n=new Set(e);return t.filter(e=>n.has(e)&&!J(e))}function X(e,t){let{frameId:n,assistantId:r,appId:i,enabled:a=!0,onAction:o,onOpenVellumLink:s}=t,c=(0,L.useRef)(new Map);(0,L.useEffect)(()=>{let t=c.current,l=async c=>{let l=c.data;if(!l||l.frameId!==n||c.source!==e.current?.contentWindow)return;if(l.type===`vellum_subscribe`){if(!a)return;let{subId:e,tags:n}=l;typeof e==`string`&&Array.isArray(n)&&t.set(e,new Set(n.filter(e=>typeof e==`string`)));return}if(l.type===`vellum_unsubscribe`){let{subId:e}=l;typeof e==`string`&&t.delete(e);return}if(l.type===`vellum_surface_action`){o?.(l.actionId,l.data);return}if(l.type===`vellum_open_link`){if(!navigator.userActivation?.isActive)return;s?.(l.href,l.linkText);return}if(l.type===`vellum_asset_request`){let{callId:t,path:n}=l,o=e.current,s=(e,t)=>{o?.contentWindow?.postMessage(e,`*`,t??[])};if(!a){s({type:`vellum_asset_response`,callId:t,error:`Asset proxy disabled`});return}if(!i){s({type:`vellum_asset_response`,callId:t,error:`No app context for assets`});return}if(typeof n!=`string`||n===``||n.includes(`..`)){s({type:`vellum_asset_response`,callId:t,error:`Invalid asset path`});return}try{let e=`/v1/assistants/${r}/apps/${i}/asset/${n.split(`/`).map(encodeURIComponent).join(`/`)}`,{data:a,response:o}=await x.get({url:e,parseAs:`blob`,throwOnError:!1});if(!o?.ok||!(a instanceof Blob)){s({type:`vellum_asset_response`,callId:t,error:`Asset fetch failed (${o?.status??0})`});return}let c=await a.arrayBuffer();s({type:`vellum_asset_response`,callId:t,buffer:c,contentType:a.type||`application/octet-stream`},[c])}catch(e){s({type:`vellum_asset_response`,callId:t,error:e instanceof Error?e.message:`Asset proxy error`})}return}if(!a||l.type!==`vellum_fetch_request`)return;let{callId:u,path:d,method:f,headers:p,body:m}=l,h=e.current,g=e=>{h?.contentWindow?.postMessage(e,`*`)};if(!N.test(d)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: only /v1/x/ custom routes are allowed`});return}try{let e=new URL(d,`https://placeholder`).pathname;if(!N.test(e)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: path traversal detected`});return}}catch{g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: invalid path`});return}let _=`/v1/assistants/${r}/${d.replace(/^\/v1\//,``)}`;try{let e={url:_,throwOnError:!1,headers:p&&Object.keys(p).length>0?p:void 0,body:m?JSON.parse(m):void 0},t=await(f===`POST`?x.post:f===`PUT`?x.put:f===`PATCH`?x.patch:f===`DELETE`?x.delete:x.get)(e),n=t.response,r=t.data??t.error,i=r==null?``:typeof r==`string`?r:JSON.stringify(r);g({type:`vellum_fetch_response`,callId:u,status:n?.status??0,statusText:n?.statusText??``,body:i})}catch(e){g({type:`vellum_fetch_response`,callId:u,error:e instanceof Error?e.message:`Fetch proxy error`})}};window.addEventListener(`message`,l);let u=S(`sse.event`,r=>{let i=r.message;if(!i||i.type!==`sync_changed`||!Array.isArray(i.tags))return;let a=e.current?.contentWindow;if(!a||t.size===0)return;let o=i.tags.filter(e=>typeof e==`string`);for(let[e,r]of t){let t=Y([...r],o);t.length>0&&a.postMessage({type:`vellum_event`,frameId:n,subId:e,event:{type:`sync_changed`,tags:t}},`*`)}});return()=>{window.removeEventListener(`message`,l),u()}},[n,r,i,a,o,s,e])}var Z=`allow-scripts allow-popups allow-popups-to-escape-sandbox`;function Q({appId:e,appName:t,html:r,assistantId:i,onClose:a,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,route:f,enableFullscreen:p=!1,onAction:m}){let h=(0,L.useRef)(null),[_,v]=(0,L.useState)(!1),y=(0,L.useCallback)(()=>v(e=>!e),[]);(0,L.useEffect)(()=>{v(!1)},[e]),(0,L.useEffect)(()=>{if(!_)return;let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),v(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let b=(0,L.useMemo)(()=>j(r,e,{fetch:!0,route:f}),[r,e,f]),x=W(),S=(0,L.useMemo)(()=>{let t=0;for(let e=0;e<r.length;e++)t=(t<<5)-t+r.charCodeAt(e)|0;return`app-${e}-${t}${x?`-nosandbox`:``}`},[r,e,x]);X(h,{frameId:e,assistantId:i,appId:e,onAction:m});let{deployedUrl:C}=M(i,e,{enabled:u!=null}),w=(0,L.useCallback)(()=>{C!=null&&A(C)},[C]);return(0,I.jsxs)(`div`,{"data-testid":`app-viewer-root`,className:D(`flex flex-col overflow-hidden bg-[var(--surface-base)]`,_?`fixed inset-0 z-[60]`:`h-full rounded-xl`),children:[!_&&(0,I.jsx)(G,{appName:t,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,deployedUrl:C,onCopyDeployedLink:w,onToggleFullscreen:p?y:void 0,onClose:a}),(0,I.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[_&&(0,I.jsx)(`div`,{className:`absolute z-10`,style:{top:`max(0.75rem, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,right:`max(0.75rem, var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:(0,I.jsx)(n,{variant:`primary`,iconOnly:(0,I.jsx)(g,{}),onClick:y,tooltip:`Exit fullscreen`})}),(0,I.jsx)(`iframe`,{ref:h,srcDoc:b,sandbox:x?void 0:Z,referrerPolicy:`no-referrer`,title:t,className:`h-full w-full border-none`},S)]})]})}function $(){let e=b.use.activeAssistantId(),t=E(),n=r(),{pathname:a}=i();return(0,L.useCallback)(r=>{if(!e)return;let i=k(e,r.appId)??crypto.randomUUID();O(e,r.appId,i);let o=T.getState();(o.activeAppId!==r.appId||!o.openedAppState)&&(o.openApp(r.appId),o.setLoadedApp(r)),w.getState().setEditingConversationId(i),t?o.minimizeApp():o.enterAppEditing();let s=C.conversation(i);a!==s&&n(s)},[e,t,n,a])}export{F as a,H as i,Q as n,X as r,$ as t};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./typography-BeUa5Fd-.js";import{t as s}from"./createLucideIcon-C1mdGPB9.js";import{t as c}from"./chevron-up-B84s50b8.js";import{t as l}from"./menu-DKE_-iVc.js";import{I as u,P as d}from"./src-hNk11eS3.js";import{t as f}from"./globe-COk-NH9x.js";import{t as p}from"./link-2-Bm55xvLL.js";import{t as m}from"./loader-circle-DOtGXcds.js";import{n as h,t as g}from"./minimize-2-D5pX5fY1.js";import{t as _}from"./pencil-DidiUknI.js";import{t as v}from"./refresh-cw-DV6tvYxO.js";import{t as y}from"./x-338EsJDP.js";import{n as b}from"./resolved-assistants-store-BFI9c7ip.js";import{t as x}from"./client.gen-C854VG5x.js";import{n as S}from"./event-bus-Cy8AzL-G.js";import{d as C}from"./routes-iipg2wkc.js";import{t as w}from"./conversation-store-D4pZBwP5.js";import{i as T}from"./viewer-store-DhrkeZmJ.js";import{n as E}from"./use-is-mobile-BP8UePsY.js";import{t as D}from"./misc-Z0jXGGeY.js";import{r as O,t as k}from"./edit-chat-session-DKBzd1lH.js";import{a as A,n as j,o as M,t as N}from"./sandbox-bridge-BlniBIsp.js";var P=s(`expand`,[[`path`,{d:`m15 15 6 6`,key:`1s409w`}],[`path`,{d:`m15 9 6-6`,key:`ko1vev`}],[`path`,{d:`M21 16v5h-5`,key:`1ck2sf`}],[`path`,{d:`M21 8V3h-5`,key:`1qoq8a`}],[`path`,{d:`M3 16v5h5`,key:`1t08am`}],[`path`,{d:`m3 21 6-6`,key:`wwnumi`}],[`path`,{d:`M3 8V3h5`,key:`1ln10m`}],[`path`,{d:`M9 9 3 3`,key:`v551iv`}]]),F=s(`share`,[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]),I=a(),L=e(t(),1),R=`flags.toggleAppsSandboxDisabled`,z=!1,B=new Set;function V(){return z}function H(e){let t=e===void 0?!z:e===!0;if(t===z)return console.info(`[vellumDebug] ${R}: already ${String(t)}.`),z;z=t,t?console.warn(`[vellumDebug] ${R} = true: app iframes render without the sandbox attribute. App HTML runs same-origin with the host and can reach its DOM, storage, and cookies. Open apps reload to pick this up. Call it again, or reload the page, to restore the sandbox.`):console.info(`[vellumDebug] ${R} = false: app iframes are sandboxed again.`);for(let e of B)e();return z}function U(e){return B.add(e),()=>{B.delete(e)}}function W(){return(0,L.useSyncExternalStore)(U,V,()=>!1)}function G({appName:e,onEdit:t,isEditing:r,onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,onToggleFullscreen:g,onClose:v}){let b=E(),x=b&&r===!0&&t!=null,S=i!=null&&s!=null,C=u!=null&&u!==``&&d!=null;return(0,I.jsxs)(`div`,{className:`flex items-center justify-between rounded-t-xl bg-[var(--surface-lift)] px-4 py-3`,children:[(0,I.jsx)(`div`,{className:`hidden md:flex items-center min-w-[72px]`,children:t!=null&&(r?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(P,{}),onClick:t,tooltip:`Expand app`,"aria-label":`Expand app`}):(0,I.jsx)(n,{onClick:t,children:`Edit`}))}),(0,I.jsx)(o,{variant:`body-large-default`,className:D(`flex-1 truncate text-left md:text-center text-[var(--content-emphasised)]`,x&&`cursor-pointer`),style:{lineHeight:1.4},onClick:x?t:void 0,children:e}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-[72px] justify-end`,children:[S?(0,I.jsx)(K,{onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,isMobile:b}):(0,I.jsxs)(I.Fragment,{children:[s!=null&&(C?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(p,{}),onClick:d,tooltip:`Deployed: copy link`,"aria-label":`Deployed to Vercel, copy link`}):(0,I.jsx)(n,{variant:`outlined`,iconOnly:l?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(f,{}),onClick:s,disabled:l,tooltip:l?`Deploying…`:`Deploy`,"aria-label":l?`Deploying…`:`Deploy`})),i!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:a?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),onClick:i,disabled:a,tooltip:a?`Sharing…`:`Share`,"aria-label":a?`Sharing…`:`Share`})]}),g!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(h,{}),onClick:g,tooltip:`Fullscreen`,"aria-label":`Fullscreen`}),t!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:r?(0,I.jsx)(c,{}):(0,I.jsx)(_,{}),onClick:t,tooltip:r?`Open app`:`Edit`,"aria-label":r?`Open app`:`Edit`,active:r,className:`md:hidden`}),(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(y,{}),onClick:v,tooltip:`Close`,"aria-label":`Close`})]})]})}function K({onShare:e,isSharing:t,onDeploy:r,isDeploying:i,deployedUrl:a,onCopyDeployedLink:o,isMobile:s}){let[c,h]=(0,L.useState)(!1),g=a!=null&&a!==``&&o!=null,_=t||i,y=_?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),b=t?`Sharing…`:i?`Deploying…`:`Share & deploy`;return s?(0,I.jsxs)(u.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(u.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(u.Content,{"aria-describedby":void 0,children:[(0,I.jsx)(u.Header,{className:`sr-only`,children:(0,I.jsx)(u.Title,{children:`Share & deploy`})}),(0,I.jsxs)(u.Body,{className:`pt-0`,children:[(0,I.jsx)(d,{icon:F,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Share`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{h(!1),e()}}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(d,{icon:p,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deployed to Vercel`}),(0,I.jsx)(`span`,{className:`break-all text-body-small-default text-[var(--content-tertiary)]`,children:a})]}),onSelect:()=>{h(!1),o?.()}}),(0,I.jsx)(d,{icon:v,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Redeploy`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish the current version`})]}),onSelect:()=>{h(!1),r()}})]}):(0,I.jsx)(d,{icon:f,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deploy to Vercel`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{h(!1),r()}})]})]})]}):(0,I.jsxs)(l.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(l.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(l.Content,{align:`end`,sideOffset:4,children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(F,{size:14}),onSelect:()=>e(),className:`whitespace-nowrap`,children:`Share`}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(p,{size:14}),shortcut:`Copy link`,onSelect:()=>o?.(),className:`whitespace-nowrap`,children:`Deployed to Vercel`}),(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(v,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Redeploy`})]}):(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(f,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Deploy to Vercel`})]})]})}var q=[`assistant:`,`conversation:`,`conversations:`,`apps:`,`documents:`,`plugins:`,`feature-flags:`];function J(e){return q.some(t=>e.startsWith(t))}function Y(e,t){if(e.length===0)return[];let n=new Set(e);return t.filter(e=>n.has(e)&&!J(e))}function X(e,t){let{frameId:n,assistantId:r,appId:i,enabled:a=!0,onAction:o,onOpenVellumLink:s}=t,c=(0,L.useRef)(new Map);(0,L.useEffect)(()=>{let t=c.current,l=async c=>{let l=c.data;if(!l||l.frameId!==n||c.source!==e.current?.contentWindow)return;if(l.type===`vellum_subscribe`){if(!a)return;let{subId:e,tags:n}=l;typeof e==`string`&&Array.isArray(n)&&t.set(e,new Set(n.filter(e=>typeof e==`string`)));return}if(l.type===`vellum_unsubscribe`){let{subId:e}=l;typeof e==`string`&&t.delete(e);return}if(l.type===`vellum_surface_action`){o?.(l.actionId,l.data);return}if(l.type===`vellum_open_link`){if(!navigator.userActivation?.isActive)return;s?.(l.href,l.linkText);return}if(l.type===`vellum_asset_request`){let{callId:t,path:n}=l,o=e.current,s=(e,t)=>{o?.contentWindow?.postMessage(e,`*`,t??[])};if(!a){s({type:`vellum_asset_response`,callId:t,error:`Asset proxy disabled`});return}if(!i){s({type:`vellum_asset_response`,callId:t,error:`No app context for assets`});return}if(typeof n!=`string`||n===``||n.includes(`..`)){s({type:`vellum_asset_response`,callId:t,error:`Invalid asset path`});return}try{let e=`/v1/assistants/${r}/apps/${i}/asset/${n.split(`/`).map(encodeURIComponent).join(`/`)}`,{data:a,response:o}=await x.get({url:e,parseAs:`blob`,throwOnError:!1});if(!o?.ok||!(a instanceof Blob)){s({type:`vellum_asset_response`,callId:t,error:`Asset fetch failed (${o?.status??0})`});return}let c=await a.arrayBuffer();s({type:`vellum_asset_response`,callId:t,buffer:c,contentType:a.type||`application/octet-stream`},[c])}catch(e){s({type:`vellum_asset_response`,callId:t,error:e instanceof Error?e.message:`Asset proxy error`})}return}if(!a||l.type!==`vellum_fetch_request`)return;let{callId:u,path:d,method:f,headers:p,body:m}=l,h=e.current,g=e=>{h?.contentWindow?.postMessage(e,`*`)};if(!N.test(d)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: only /v1/x/ custom routes are allowed`});return}try{let e=new URL(d,`https://placeholder`).pathname;if(!N.test(e)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: path traversal detected`});return}}catch{g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: invalid path`});return}let _=`/v1/assistants/${r}/${d.replace(/^\/v1\//,``)}`;try{let e={url:_,throwOnError:!1,headers:p&&Object.keys(p).length>0?p:void 0,body:m?JSON.parse(m):void 0},t=await(f===`POST`?x.post:f===`PUT`?x.put:f===`PATCH`?x.patch:f===`DELETE`?x.delete:x.get)(e),n=t.response,r=t.data??t.error,i=r==null?``:typeof r==`string`?r:JSON.stringify(r);g({type:`vellum_fetch_response`,callId:u,status:n?.status??0,statusText:n?.statusText??``,body:i})}catch(e){g({type:`vellum_fetch_response`,callId:u,error:e instanceof Error?e.message:`Fetch proxy error`})}};window.addEventListener(`message`,l);let u=S(`sse.event`,r=>{let i=r.message;if(!i||i.type!==`sync_changed`||!Array.isArray(i.tags))return;let a=e.current?.contentWindow;if(!a||t.size===0)return;let o=i.tags.filter(e=>typeof e==`string`);for(let[e,r]of t){let t=Y([...r],o);t.length>0&&a.postMessage({type:`vellum_event`,frameId:n,subId:e,event:{type:`sync_changed`,tags:t}},`*`)}});return()=>{window.removeEventListener(`message`,l),u()}},[n,r,i,a,o,s,e])}var Z=`allow-scripts allow-popups allow-popups-to-escape-sandbox`;function Q({appId:e,appName:t,html:r,assistantId:i,onClose:a,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,route:f,enableFullscreen:p=!1,onAction:m}){let h=(0,L.useRef)(null),[_,v]=(0,L.useState)(!1),y=(0,L.useCallback)(()=>v(e=>!e),[]);(0,L.useEffect)(()=>{v(!1)},[e]),(0,L.useEffect)(()=>{if(!_)return;let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),v(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let b=(0,L.useMemo)(()=>j(r,e,{fetch:!0,route:f}),[r,e,f]),x=W(),S=(0,L.useMemo)(()=>{let t=0;for(let e=0;e<r.length;e++)t=(t<<5)-t+r.charCodeAt(e)|0;return`app-${e}-${t}${x?`-nosandbox`:``}`},[r,e,x]);X(h,{frameId:e,assistantId:i,appId:e,onAction:m});let{deployedUrl:C}=M(i,e,{enabled:u!=null}),w=(0,L.useCallback)(()=>{C!=null&&A(C)},[C]);return(0,I.jsxs)(`div`,{"data-testid":`app-viewer-root`,className:D(`flex flex-col overflow-hidden bg-[var(--surface-base)]`,_?`fixed inset-0 z-[60]`:`h-full rounded-xl`),children:[!_&&(0,I.jsx)(G,{appName:t,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,deployedUrl:C,onCopyDeployedLink:w,onToggleFullscreen:p?y:void 0,onClose:a}),(0,I.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[_&&(0,I.jsx)(`div`,{className:`absolute z-10`,style:{top:`max(0.75rem, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,right:`max(0.75rem, var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:(0,I.jsx)(n,{variant:`primary`,iconOnly:(0,I.jsx)(g,{}),onClick:y,tooltip:`Exit fullscreen`})}),(0,I.jsx)(`iframe`,{ref:h,srcDoc:b,sandbox:x?void 0:Z,referrerPolicy:`no-referrer`,title:t,className:`h-full w-full border-none`},S)]})]})}function $(){let e=b.use.activeAssistantId(),t=E(),n=r(),{pathname:a}=i();return(0,L.useCallback)(r=>{if(!e)return;let i=k(e,r.appId)??crypto.randomUUID();O(e,r.appId,i);let o=T.getState();(o.activeAppId!==r.appId||!o.openedAppState)&&(o.openApp(r.appId),o.setLoadedApp(r)),w.getState().setEditingConversationId(i),t?o.minimizeApp():o.enterAppEditing();let s=C.conversation(i);a!==s&&n(s)},[e,t,n,a])}export{F as a,H as i,Q as n,X as r,$ as t};
|
package/dist/assets/{use-invite-link-dialog-C6rYwhqr.js → use-invite-link-dialog-CdY5FNQa.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import{c,h as l,i as u,m as d,n as f,r as p,s as m,t as h}from"./use-save-twilio-credentials-D5Zb65WS.js";import{t as g}from"./check-DSgjgwlo.js";import{
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import{c,h as l,i as u,m as d,n as f,r as p,s as m,t as h}from"./use-save-twilio-credentials-D5Zb65WS.js";import{t as g}from"./check-DSgjgwlo.js";import{G as _}from"./src-hNk11eS3.js";import{t as v}from"./link-2-Bm55xvLL.js";import{t as y}from"./loader-circle-DOtGXcds.js";import{t as b}from"./input-DmHXRXaB.js";import{t as x}from"./modal-DI63s9MQ.js";import{n as S}from"./toast-BpuLSxyt.js";import{i as C}from"./utils-CVoSWh7U.js";import{i as w,n as T,t as E}from"./api-errors-BQX1Pzcm.js";import{Qt as D,in as O,nn as k}from"./sdk.gen-CBPZ2IdN.js";import{Q as A,X as j,Y as M,Z as N,c as ee,l as P,w as F}from"./react-query.gen-DxjuNs-5.js";import{n as I}from"./sdk.gen-CAngxL4a.js";import{t as L}from"./copy-to-clipboard-DnJHokIa.js";import{t as R}from"./a2a-invite-DPoues5o.js";var z=e(t(),1),B=o(),V=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],H=`trusted_contacts`,U=new Set([`platform`,`a2a`]),W=new Set([`vellum`,`whatsapp`,`discord`]);function G(e){return W.has(e)}var K={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`};function q(e){return{no_one:`No one can message ${e} on this channel: every message is blocked, including yours.`,guardian_only:`Only you can message ${e}. Everyone else is turned away.`,trusted_contacts:`You and the people you’ve verified can message ${e}. Anyone else is asked to verify first, and you’re notified.`,any_contact:`You and any known contact can message ${e}, including contacts you haven’t verified yet. Strangers are asked to verify first.`,strangers:`Anyone can message ${e}, including complete strangers.`}}function J(e){return t=>{S.error(t instanceof Error?t.message:e)}}function Y(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function X({open:e,assistantId:t,onClose:r}){let[i,o]=(0,z.useState)(!1),c=(0,z.useRef)(null),l=(0,z.useRef)(!1),u=a({...M({path:{assistant_id:t}})}),d=(0,z.useRef)(u.mutate);(0,z.useLayoutEffect)(()=>{d.current=u.mutate});let f=(0,z.useRef)(u.reset);(0,z.useLayoutEffect)(()=>{f.current=u.reset}),(0,z.useEffect)(()=>{e&&!l.current&&d.current({path:{assistant_id:t}}),l.current=e},[e,t]),(0,z.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let p=(0,z.useCallback)(()=>{f.current(),o(!1),c.current&&=(clearTimeout(c.current),null),r()},[r]),m=(0,z.useCallback)(e=>{L(e,{errorMessage:`Couldn't copy the invite link.`,onCopied:()=>{o(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>o(!1),2e3)}})},[]),h=u.isSuccess&&u.data.token?R({senderAssistantId:t,token:u.data.token}):``;return(0,B.jsx)(x.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,B.jsxs)(x.Content,{size:`sm`,children:[(0,B.jsx)(x.Header,{children:(0,B.jsx)(x.Title,{children:`Share Connection Link`})}),(0,B.jsx)(x.Body,{children:u.isPending?(0,B.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,B.jsx)(y,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):u.isError?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,B.jsx)(n,{variant:`outlined`,onClick:()=>u.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):u.isSuccess?(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(s,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,B.jsx)(b,{type:`text`,readOnly:!0,value:h,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>m(h),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,B.jsx)(g,{className:`h-4 w-4`}):(0,B.jsx)(_,{className:`h-4 w-4`})})]}),u.data.expiresAt!=null&&(0,B.jsx)(s,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(u.data.expiresAt)})]}):null}),(0,B.jsx)(x.Footer,{children:(0,B.jsx)(n,{variant:`outlined`,onClick:p,children:`Done`})})]})})}function Z({onClick:e}){return(0,B.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,B.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function Q(e){return typeof e==`string`&&V.includes(e)}function $(e){return U.has(e)}function te(e){return(e?.policies??[]).filter(e=>!$(e.channelType)&&!G(e.channelType)).map(e=>({...e,policy:Q(e.policy)?e.policy:`trusted_contacts`}))}async function ne(e,t,n,r){if($(t))throw new E(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await I({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(T(o,a,`Failed to save channel policy.`),!o.ok)throw new E(o.status,w(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new E(500,`Gateway returned no policy in response.`);return i.policy}var re=`0.10.0`;function ie(){return C(re)}function ae(e){let t=r(),n=ie(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>l(o),[o]),u=i({...d(o),enabled:n,select:te}),f=(0,z.useMemo)(()=>{let e={};for(let t of u.data??[])c(t.channelType)&&(e[t.channelType]=t.policy);return e},[u.data]),p=a({mutationFn:({channelKey:t,policy:n})=>ne(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:s}),onError:J(`Failed to save channel policy`)}),m=(0,z.useCallback)((e,t)=>{p.mutate({channelKey:e,policy:t})},[p]);return n?{policies:f,savingKey:p.isPending?p.variables?.channelKey??null:null,isLoading:u.isPending,isError:u.isError,onChange:m}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var oe={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},se={slack:`Slack is set up but not working. Can you finish it off?`,telegram:`Telegram is set up but not working. Can you finish it off?`,phone:`My phone number is set up but not working. Can you finish it off?`},ce=15e3;function le({assistantId:e,onStartSetupConversation:t}){let n=r(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>P(o),[o]),c=i({...ee(o),enabled:!!e,refetchInterval:ce,select:e=>e.snapshots}),l=(0,z.useMemo)(()=>ue(c.data??[]),[c.data]),d=l.some(e=>e.key===`slack`&&e.status===`ready`),m=i({...j(o),enabled:d,select:e=>e.threadMode}),g=ae(e),_=(0,z.useCallback)(()=>n.invalidateQueries({queryKey:s}),[n,s]),v=a({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await D(n):t===`telegram`?await k(n):t===`phone`&&await O(n)},onSettled:(t,r,i)=>{_(),i===`slack`&&u(n,e)}}),y=f({assistantId:e}),b=p({assistantId:e}),x=h({assistantId:e}),S=a({...A(),onSuccess:()=>{n.invalidateQueries({queryKey:N(o)})}}),C=y.mutate,w=(0,z.useCallback)(e=>{C(e)},[C]),T=b.mutate,E=(0,z.useCallback)((e,t)=>{T({botToken:e,appToken:t})},[T]),M=S.mutate,F=(0,z.useCallback)(t=>{M({path:{assistant_id:e},body:{threadMode:t}})},[M,e]),I=x.mutateAsync,L=(0,z.useCallback)(async(e,t)=>{await I({accountSid:e,authToken:t})},[I]),R=(0,z.useCallback)((e,n=!1)=>{t&&t(n?se[e]:oe[e])},[t]),B=v.mutate,V=(0,z.useCallback)(e=>{B(e)},[B]);return{channels:l,pendingChannelKey:v.isPending?v.variables??null:null,slackThreadMode:m.data,slackThreadModePending:S.isPending,channelPolicies:g.policies,policySavingKey:g.savingKey,policiesLoading:g.isLoading,policiesError:g.isError,onChannelPolicyChange:g.onChange,onSetup:t?R:void 0,onDisconnect:V,onSaveTelegramToken:w,telegramSaveStatus:y.status,telegramSaveError:y.error?.message??null,onSaveSlackConfig:E,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:F,onSaveTwilioCredentials:L}}function ue(e){let t=new Map;for(let n of e)t.set(n.channel,n);return m.map(e=>{let n=t.get(e);return{key:e,status:de(n),address:n?.channelHandle??void 0}})}function de(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}function fe(e){let t=r(),[n,i]=(0,z.useState)(!1);return{isOpen:n,open:(0,z.useCallback)(()=>{i(!0)},[]),close:(0,z.useCallback)(()=>{i(!1),t.invalidateQueries({queryKey:F({path:{assistant_id:e}})})},[t,e])}}export{J as a,K as c,X as i,q as l,le as n,H as o,Z as r,V as s,fe as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,i as t,it as n,n as r,nt as i,tt as a}from"./auth-store-
|
|
1
|
+
import{$ as e,i as t,it as n,n as r,nt as i,tt as a}from"./auth-store-DkOiOQNx.js";var o=5e3;function s(e,t,n){return!n||e!=null?`ready`:t===`error`?`unavailable`:`resolving`}function c(){return s(i(),a.use.status(),t())}function l(){return s(e(),a.getState().status,n(r.getState().platformSession))}function u(){return c()===`ready`}export{c as i,l as n,u as r,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{u as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./is-electron-BHXrkjI3.js";import{E as a}from"./platform-detection-C_TK32Dw.js";import{d as o}from"./routes-iipg2wkc.js";import{i as s}from"./navigation-resolver-DrNVOkMu.js";import{t as c}from"./build-state-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{u as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./is-electron-BHXrkjI3.js";import{E as a}from"./platform-detection-C_TK32Dw.js";import{d as o}from"./routes-iipg2wkc.js";import{i as s}from"./navigation-resolver-DrNVOkMu.js";import{t as c}from"./build-state-B0f3Jn2o.js";import{n as l}from"./login-flow-B8CUFAeg.js";import{n as u,r as d}from"./native-auth-error-B9Iha2zU.js";var f=e(n(),1);function p(e){let n=r(),[p,m]=(0,f.useState)(!1),[h,g]=(0,f.useState)(null),_=(0,f.useRef)(0);return{loading:p,error:h,login:async()=>{let r=e??s(c({sessionSettled:!0,isAuthenticated:!0}),n.pathname),i=++_.current;g(null),m(!0);try{await a(l,`${o.account.providerCallback}?returnTo=${encodeURIComponent(r)}`,{returnTo:r})}catch(e){if(i!==_.current)return;t(e,{context:`onboarding_login`,tags:{authError:u(e)??`unclassified`}}),g(d(e)),m(!1)}},cancel:()=>{_.current++,m(!1),g(null),i()&&window.vellum?.auth?.cancelOAuth()}}}export{p as t};
|
package/dist/assets/{use-platform-assistant-id-DOBe1pF-.js → use-platform-assistant-id-CEMyKEvV.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{J as n}from"./auth-store-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{J as n}from"./auth-store-DkOiOQNx.js";var r=e(t(),1);function i(e,t){let[i,a]=(0,r.useState)({platformAssistantId:null,isLoading:!1,error:null});return(0,r.useEffect)(()=>{if(!t||!e){a({platformAssistantId:null,isLoading:!1,error:null});return}let r=!0;return a({platformAssistantId:null,isLoading:!0,error:null}),n(e).then(e=>{r&&a({platformAssistantId:e,isLoading:!1,error:null})}).catch(e=>{r&&a({platformAssistantId:null,isLoading:!1,error:e instanceof Error?e:Error(String(e))})}),()=>{r=!1}},[e,t]),i}export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{_ as n,b as r}from"./local-mode-BfEgOekp.js";import{_t as i,i as a,o}from"./auth-store-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{_ as n,b as r}from"./local-mode-BfEgOekp.js";import{_t as i,i as a,o}from"./auth-store-DkOiOQNx.js";var s=e(t(),1);function c(){let e=i.use.assistantState();return!!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)}function l(){let e=i.use.assistantState();return e.kind===`active`&&!e.isLocal}function u(){let e=i.use.assistantState();return e.kind===`loading`||e.kind===`initializing`||e.kind===`cleaning_up`}function d(e={}){let t=p(e);return t===`pending`?`disabled`:t}function f(e={}){let t=p(e),n=m(t===`pending`,e.settleTimeoutMs??5e3);return t===`pending`&&n?`disabled`:t}function p(e){let t=a(),i=o(),s=r(),l=c(),u=i?`disabled`:`pending`;return e.platformHostedOnly?l?`gated`:t?`full`:u:n()&&s?`gated`:t?`full`:u}function m(e,t){let[n,r]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{if(!e){r(!1);return}let n=setTimeout(()=>r(!0),t);return()=>{clearTimeout(n)}},[e,t]),n}export{f as a,d as i,c as n,u as r,l as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{h as n,n as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./loader-circle-DOtGXcds.js";import{a as o,s}from"./auth-store-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{h as n,n as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./loader-circle-DOtGXcds.js";import{a as o,s}from"./auth-store-DkOiOQNx.js";import{R as c}from"./platform-detection-C_TK32Dw.js";import{d as l}from"./routes-iipg2wkc.js";import{a as u}from"./use-platform-gate-CdwOyQ8A.js";import{t as d}from"./hard-navigate-BrsAH6PB.js";import{a as f,o as p}from"./login-flow-B8CUFAeg.js";var m=i();function h(){return(0,m.jsx)(a,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Loading`})}var g=e(t(),1);function _({to:e}){let t=f(e);return(0,g.useEffect)(()=>{t&&d(e)},[t,e]),t?null:(0,m.jsx)(r,{to:e,replace:!0})}function v(){let[e]=n(),t=o(),r=s(),i=u(),a=e.get(`returnTo`),d=c(a,l.assistant);if(!a)return{kind:`proceed`,returnTo:null};if(r)return{kind:`wait`};if(!t)return{kind:`proceed`,returnTo:d};if(p(d)){if(i===`pending`)return{kind:`wait`};if(i===`disabled`)return{kind:`proceed`,returnTo:d}}return{kind:`redirect`,node:(0,m.jsx)(_,{to:d})}}export{h as n,v as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./card-q0GJX1HZ.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import{t as s}from"./brain-ZiC0HCCF.js";import"./src-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./card-q0GJX1HZ.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import{t as s}from"./brain-ZiC0HCCF.js";import"./src-hNk11eS3.js";import{t as c}from"./globe-COk-NH9x.js";import{t as l}from"./puzzle-CIWAeBs0.js";import{t as u}from"./terminal-CkQ9DSF2.js";import{t as d}from"./user-Djte2CiZ.js";import{t as f}from"./tag-DeMzQvCo.js";import{i as p,n as m,t as h}from"./api-errors-BQX1Pzcm.js";import{br as g}from"./sdk.gen-CBPZ2IdN.js";import{gn as _}from"./react-query.gen-DxjuNs-5.js";import{t as v}from"./skills-Lf85mR9L.js";var y=o(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),b=e(t(),1),x=i();function S({skill:e,className:t,fallback:n=`🧩`}){let[r,i]=(0,b.useState)(!1);return e.icon&&!r?(0,x.jsx)(`img`,{src:`/assistant/skills/${e.id}/${e.icon}`,alt:``,className:`${t} object-contain`,onError:()=>i(!0)}):(0,x.jsx)(`span`,{className:t,children:e.emoji??n})}var C={vellum:{label:`Vellum`,icon:y},clawhub:{label:`Clawhub`,icon:c},skillssh:{label:`skills.sh`,icon:u},custom:{label:`Custom`,icon:d},"assistant-memory":{label:`Assistant's Memory`,icon:s}};function w({origin:e}){let t=e in C?C[e]:{label:e.replace(/-/g,` `),icon:l};return(0,x.jsx)(f,{tone:`neutral`,leftIcon:(0,b.createElement)(t.icon),className:`capitalize`,children:t.label})}function T(e){return e.kind===`installed`||e.kind===`bundled`}function E(e){return e.kind===`catalog`}function D({icon:e,iconColor:t=`var(--content-tertiary)`,title:n,subtitle:r,children:i}){return(0,x.jsx)(a.Root,{children:(0,x.jsxs)(a.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,x.jsx)(e,{className:`mb-3 h-8 w-8`,style:{color:t},"aria-hidden":!0}),(0,x.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:n}),(0,x.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:r}),i]})})}async function O(e,t,n){let{data:r,error:i,response:a}=await g({path:{assistant_id:e},body:n?{slug:t,version:n}:{slug:t},throwOnError:!1});if(m(a,i,`Failed to install skill.`),!a.ok)throw new h(a.status,p(i,a,`Failed to install skill.`));return r??{ok:!0}}function k(e,{onRemoved:t}={}){let i=n(),[a,o]=(0,b.useState)(null),[s,c]=(0,b.useState)(null),[l,u]=(0,b.useState)(null),d=(0,b.useCallback)(()=>{v(i,e)},[e,i]),f=r({mutationFn:t=>O(e,t),onMutate:e=>o(e),onSettled:()=>{o(null),d()}}),p=_({onMutate:e=>c(e.path.id),onSuccess:()=>{t?.()},onSettled:()=>{c(null),d()}}),m=(0,b.useCallback)(e=>{f.mutate(e.slug??e.id)},[f]),h=(0,b.useCallback)(e=>{u(e)},[]),g=(0,b.useCallback)(()=>{l&&(p.mutate({path:{assistant_id:e,id:l.id}}),u(null))},[e,l,p]),y=(0,b.useCallback)(()=>{u(null)},[]);return{handleInstall:m,handleRemove:h,isInstallingSkill:(0,b.useCallback)(e=>a===(e.slug??e.id),[a]),isRemovingSkill:(0,b.useCallback)(e=>s===e.id,[s]),skillPendingRemoval:l,confirmRemove:g,cancelRemove:y}}export{w as a,T as i,D as n,S as o,E as r,y as s,k as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-DFWryB3N.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./chevron-down-CrFV6lfm.js";import{t as u}from"./chevron-right-DBGgpEiZ.js";import{I as d,R as f}from"./src-BMRW2yQf.js";import{t as p}from"./loader-circle-DOtGXcds.js";import{n as m,t as h}from"./input-DmHXRXaB.js";import{t as g}from"./toggle-C-v4x7_A.js";import{t as _}from"./modal-DI63s9MQ.js";import{n as v}from"./toast-BpuLSxyt.js";import{t as y}from"./select-B8-i-CZ4.js";import{t as b}from"./is-electron-BHXrkjI3.js";import{A as x,D as S,E as C,F as w,I as T,L as E,M as D,N as O,O as k,T as A,d as j,k as M,s as N,u as ee}from"./profile-pickers-BSDVzs_G.js";import{t as P}from"./assistant-identity-store-nE-e8KQw.js";import{n as F,o as I}from"./utils-CAZUrJMu.js";import{r as L}from"./api-errors-BQX1Pzcm.js";import{Gt as te,Wt as ne,Xt as re,Yt as R,dr as ie,fr as ae}from"./sdk.gen-CBPZ2IdN.js";import{n as z}from"./use-platform-gate-DBRG0Q26.js";import{r as B}from"./use-is-org-ready-BTUeuhPi.js";import{Ct as oe,J as se,u as ce,wt as le}from"./react-query.gen-DxjuNs-5.js";var V=e(n(),1),ue={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function H(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function U(e){return e.startsWith(`anthropic/`)}function de(e,t){let n=t.toLowerCase();return T(e).find(e=>e.id.toLowerCase()===n)}function fe(e,t){return de(e,t)?.adaptiveThinkingOnly===!0}function pe(e){return U(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var me=[`minimal`,`low`,`medium`,`high`],W=[`low`,`medium`,`high`];function he(e){return/^gemini-3.*pro/.test(e)}var ge=new Set(me);function _e(e){return typeof e==`string`&&ge.has(e)}function ve(e){return he(e.toLowerCase())?W:me}function ye(e,t){let n=de(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?pe(t):e===`vercel-ai-gateway`?U(t):!1:n.supportsThinking}function G(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?H(t):e===`openrouter`||e===`vercel-ai-gateway`?U(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var be=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function xe(e,t){return t||be.has(e)}function Se(e,t){if(!e||!t)return ue;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&U(r),a=ye(n,r);return{maxTokens:!0,contextWindow:!0,effort:G(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&H(r),temperature:i,topP:xe(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&U(r))&&a&&!fe(n,r),thinkingLevel:n===`gemini`&&a}}var K=o(),q=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Ce=[`standard`,`fast`],we=[`low`,`medium`,`high`],Te=`default`,Ee=64e3;function De({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,V.useState)(s?``:String(t)),[f,p]=(0,V.useState)(t);t!==f&&(p(t),u(t===null?``:String(t)));function m(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function g(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=ee(i,a);u(String(o)),n(o)}return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,j(i)]}):null]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:k,max:a,step:M,disabled:o,"aria-label":e})}),(0,K.jsx)(h,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>m(e.target.value),onBlur:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g(e.currentTarget.value)},min:k,max:a,step:M,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function J({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:u,onEffortChange:p,speed:m,onSpeedChange:h,verbosity:_,onVerbosityChange:v,temperatureEnabled:y,onTemperatureEnabledChange:b,temperature:x,onTemperatureChange:S,topPEnabled:C,onTopPEnabledChange:w,topP:T,onTopPChange:E,thinkingEnabled:D,onThinkingEnabledChange:O,thinkingStreamThinking:k,onThinkingStreamThinkingChange:A,thinkingLevel:j,onThinkingLevelChange:M}){let ee=N(),P=r?.maxOutputTokens??Ee,F=r?.contextWindowTokens??2e5,I=Math.min(i??Ee,P),L=Math.min(a??2e5,F);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!t&&ee&&(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,K.jsx)(De,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:I,max:P,disabled:t}),e.contextWindow&&(0,K.jsx)(De,{label:`Context Window`,value:c,onChange:l,defaultValue:L,max:F,disabled:t||!r}),e.effort&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,K.jsx)(f,{items:q.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:u,onChange:e=>p(e),ariaLabel:`Effort`})]}),e.speed&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,K.jsx)(f,{items:Ce.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>h(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,K.jsx)(f,{items:we.map(e=>({value:e,label:e,disabled:t})),value:_,onChange:e=>v(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:y,onChange:e=>b(e),label:`Temperature`,disabled:t}),y&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:x,onValueChange:e=>S(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:C,onChange:e=>w(e),label:`Top P`,disabled:t}),C&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:T,onValueChange:e=>E(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(g,{checked:D,onChange:e=>{O(e),e||A(!1)},label:`Enable extended thinking`,disabled:t}),D&&(0,K.jsx)(`div`,{className:`pl-4`,children:(0,K.jsx)(g,{checked:k,onChange:e=>A(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,K.jsx)(f,{items:[`default`,...ve(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:j,onChange:M,ariaLabel:`Thinking level`})]})]})}var Y=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function X(e){return e===`ollama`?`none`:`api_key`}function Oe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function ke(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Ae(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function je(e){return e.label?e.label:e.auth.type===`oauth_subscription`?O.chatgpt:O[e.provider]??e.provider}var Me=new Set([`ollama`]);function Ne(e,t){return!Me.has(e)||t}function Pe(e){return A.filter(t=>Ne(t,e))}function Fe(e){return Y.filter(t=>Ne(t,e))}function Ie(e){return Object.keys(D).filter(t=>Ne(t,e))}function Le(){return Pe(z())}function Re(){return Fe(z())}function ze(){return Ie(z())}function Be(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Ne(e,t)),r=[];return n.includes(`vellum`)&&r.push(x),r.push(...Y.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Y.includes(e))),r}function Ve(e,t){let n=new Set(e.map(e=>e.provider));return Fe(t).filter(e=>e!==`openai-compatible`&&!n.has(e))}var He=`${S}::`;function Z(e){return`${He}${e}`}function Q(e){return e.startsWith(He)?e.slice(He.length):null}function Ue(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:Z(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var We=new Set([`gpt-5.6-sol`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function Ge(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function Ke(e,t,n){return!e||T(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var qe=`No provider connections. Open Providers to add one.`,Je={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},Ye=`__custom-model-id__`;function Xe({text:e}){return(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function Ze({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:s,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1,providerError:p=null}){let m=e.length>0&&t.length===0,[g,_]=(0,V.useState)(!1),v=Ke(e,n,u),b=e!==``&&!v;(0,V.useEffect)(()=>{b||_(!1)},[e,b]);function x(e){if(e===Ye){_(!0),a(``);return}a(e)}let S=ze(),C=z(),w=(0,V.useMemo)(()=>{let t=Be(s??[],C);return e&&!t.includes(e)?[...t,e]:t},[s,e,C]),E=s===void 0?S:w,D=E.length===0&&!l,k=(0,V.useMemo)(()=>{if(!e)return[];let t=T(e);if(t.length>0)return Ke(e,n,u)?t.filter(e=>We.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?Ge(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),A=(0,V.useMemo)(()=>{if(!t||k.some(e=>e.id===t))return k;let n=T(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...k,{id:t,displayName:i}]},[t,k,e,u]),j=e?k.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,M=j?Je[j]:null;return(0,V.useEffect)(()=>{if(!e||g)return;let n=T(e);n.length>0&&!n.some(e=>e.id===t)||t&&k.length>0&&!k.some(e=>e.id===t)&&a(``)},[t,k,a,e,g]),(0,K.jsxs)(K.Fragment,{children:[!f&&(0,K.jsx)(y,{id:`profile-editor-provider`,label:`Provider`,errorText:p&&D?qe:p,helperText:D&&!p?qe:void 0,value:e===`openai-compatible`&&n?Z(n):e,onChange:e=>{let t=Q(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,options:[...Ue(E,s??[],e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:Z(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:O[`openai-compatible`]??`openai-compatible`}]:[]]}),d&&!l&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),g?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,K.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>_(!1),children:`Choose from list`})]}):(0,K.jsx)(y,{value:t,onChange:x,disabled:l||!e,"aria-label":`Model`,placeholder:M?.placeholder??`Select a model`,options:[...A.map(e=>({value:e.id,label:e.displayName})),...b?[{value:Ye,label:`Enter a custom model ID…`}]:[]]}),g?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):m&&!l?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:M?.hint??`Select a model.`}):null]})]})}function Qe(e,t,n){return[`credentialPresence`,e,t,n]}function $e({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=B(),s=a({queryKey:Qe(e??``,n,r),queryFn:async()=>{let{data:t}=await ae({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function et({assistantId:e,onConnected:t}){let[n,i]=(0,V.useState)(`idle`),[a,o]=(0,V.useState)(``),[s,l]=(0,V.useState)(null);async function u(){i(`starting`),l(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await te({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),l(`Failed to start ChatGPT sign-in. Please try again.`)}}async function d(){l(null);let n=a.trim();if(!n){l(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{l(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){l(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){l(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await ne({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await R({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),l(`Failed to complete sign-in. Please try again.`)}}function f(){i(`idle`),o(``),l(null)}return(0,K.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(c,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void u(),children:`Sign in with ChatGPT`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:a,onChange:e=>{o(e.target.value),l(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void d(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,s?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:s}):null,n===`failed`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:f,children:`Try Again`}):null]})}var tt=new Set(Object.entries(O).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),nt={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function rt(e,t,n){let r=e.trim().toLowerCase();return r?tt.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function it(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function at(e){return it(e)}function ot(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function st(e,t){return{name:O[e]??e,key:ot(`${at(e)}-personal`,t)}}function ct(e,t){return{name:e,key:ot(at(e),t)}}function lt({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:s,providerCredentials:l,showAdvancedSection:d,onError:f}){let[m,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)(!1),[b,x]=(0,V.useState)(``);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,K.jsx)(h,{type:`password`,value:e,onChange:e=>{t(e.target.value),f(null)},placeholder:o,fullWidth:!0})]}),d&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":m,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${m?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`}),(0,K.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),m&&(0,K.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=l.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,K.jsx)(y,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),_&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(h,{value:b,onChange:e=>x(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!b.trim(),onClick:()=>{let e=b.trim();e&&(i(`credential/${s}/${e}`),v(!1),x(``))},children:`Use`})]})]}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{_?(v(!1),x(``)):v(!0)},children:_?`Cancel`:`+ New Credential`})})]})]})]})}var ut=`•`.repeat(8);function dt(e,t){return t?ut:e}function ft(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function pt({assistantId:e,enabled:n=!0}){let r=B(),i=a({...oe({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>ft(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function mt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,hideProviderSelect:o=!1,onCreated:s,onCancel:l,variant:d=`modal`}){let f=Re(),p=a&&f.includes(a)?a:f[0]??`anthropic`,m=st(p,t),[g,b]=(0,V.useState)(p===`openai-compatible`?``:m.name),[x,S]=(0,V.useState)(m.key),[C,w]=(0,V.useState)(p),T=C===`chatgpt`,E=T?`openai`:C,D=T?`oauth_subscription`:X(E),[k,A]=(0,V.useState)(()=>p===`ollama`?``:p===`openai-compatible`?`credential/${m.key}/api_key`:`credential/${p}/api_key`),[j,M]=(0,V.useState)(``),[N,ee]=(0,V.useState)(``),[P,F]=(0,V.useState)(!1),[I,L]=(0,V.useState)(null),[te,ne]=(0,V.useState)(!1),R=E===`openai-compatible`,ae=(0,V.useMemo)(()=>{let e=!T&&!f.includes(E)?[...f,E]:[...f],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[T,E,f]),z=(0,V.useRef)(!1);function B(e){z.current=!0,b(e)}let[oe,se]=(0,V.useState)(``),[ce,ue]=(0,V.useState)(!1),H=i(),U=(0,V.useMemo)(()=>Oe(k),[k]),de=D===`api_key`&&U!==null,{hasStoredCredential:fe,isLoading:pe}=$e({assistantId:e,credentialKind:`credential`,credentialName:U?`${U.service}:${U.field}`:``,enabled:de}),{credentials:me}=pt({assistantId:e,enabled:!0}),W=R?rt(g,n):null,he=x.trim().length>0&&(!R||g.trim().length>0)&&W===null;async function ge(){if(he){F(!0),L(null);try{let t;if(D===`api_key`){let n=k.trim()||`credential/${R?x:E}/api_key`,r=oe.trim();if(r){ue(!0);try{let t=Oe(n);await ie({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:E,value:r},throwOnError:!0});let i=Qe(e,`credential`,t?`${t.service}:${t.field}`:``);H.setQueryData(i,!0),H.invalidateQueries({queryKey:le({path:{assistant_id:e}})})}catch{L(`Failed to save API key. Please try again.`);return}finally{ue(!1)}t={type:`api_key`,credential:n}}else if(fe)t={type:`api_key`,credential:n};else if(R)t={type:`none`};else{L(`Enter an API key or select an existing credential.`);return}}else if(D===`oauth_subscription`){L(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=g.trim()||null,r={name:x.trim(),provider:E,auth:t,...n!==null&&{label:n},...R&&{base_url:j.trim()||null,models:N.trim()?N.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:o}=await re({path:{assistant_id:e},body:r});if(!o?.ok){L(Ae(o?.status,a)??ke(o?.status));return}if(!i){L(`Server returned an empty response. Please try again.`);return}v.success(`Provider connected`),s(i)}catch{L(`Failed to save provider. Please try again.`)}finally{F(!1)}}}let _e=me.filter(e=>e.service===E),ve=_e.length>0,ye=dt(`Enter your API key`,fe),G=te,be=(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":G,onClick:()=>ne(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${G?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),G&&(0,K.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),xe=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!o&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{"aria-label":`Provider`,value:C,onChange:e=>{if(w(e),L(null),e===`chatgpt`)return;let{name:n,key:r}=st(e,t);z.current||b(e===`openai-compatible`?``:n),S(r),A(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...ae.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:O[e]})),...ae.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),R?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),R&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`xAI`,fullWidth:!0}),W?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:nt[W]}):null]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,K.jsx)(h,{value:j,onChange:e=>M(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,K.jsx)(h,{value:N,onChange:e=>ee(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),D===`api_key`&&(0,K.jsx)(lt,{apiKeyValue:oe,onApiKeyChange:se,credential:k,onCredentialChange:A,isLoadingCredential:pe,apiKeyPlaceholder:ye,provider:E,providerCredentials:_e,showAdvancedSection:ve,onError:L}),R&&D===`api_key`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,D===`oauth_subscription`&&(0,K.jsx)(et,{assistantId:e,onConnected:s}),!T&&!R&&be,I&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:I})]}),Se=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:l,children:`Cancel`}),!T&&(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!he||P||ce,onClick:()=>void ge(),children:P?`Saving…`:R&&g.trim()?`Add ${g.trim()}`:`Add`})]});return d===`inline`?(0,K.jsxs)(`div`,{className:`space-y-4`,children:[xe,(0,K.jsx)(`div`,{className:`flex justify-end gap-2`,children:Se})]}):(0,K.jsxs)(_.Content,{size:`md`,children:[(0,K.jsxs)(_.Header,{children:[(0,K.jsx)(_.Title,{children:`Add Provider`}),(0,K.jsx)(_.Description,{children:`Choose a provider and paste its API key.`})]}),(0,K.jsx)(_.Body,{children:xe}),(0,K.jsx)(_.Footer,{children:Se})]})}var ht=`__create_new_provider__`;function gt(e){return X(e)===`api_key`?`Add API key`:`Set up`}function _t({editor:e,assistantId:t,connections:n,variant:r}){let i=z(),a=e.effectiveMode===`create`,o=r===`panel`,[s,l]=(0,V.useState)(!1),d=s||!!e.keyError&&e.getDirty(),f=(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a?`Name`:`Display Name`}),(0,K.jsx)(h,{type:`text`,value:e.label,onChange:t=>e.handleLabelChange(t.target.value),placeholder:`e.g. Fast & Cheap`,disabled:e.isReadOnly,fullWidth:!0})]}),p=(0,K.jsx)(m,{label:(0,K.jsxs)(K.Fragment,{children:[`Description`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:e.description,onChange:t=>e.setDescription(t.target.value),placeholder:`Describe when to use this profile`,disabled:e.isReadOnly,rows:2,fullWidth:!0,className:`resize-none`}),_=(0,K.jsx)(h,{label:`Key`,type:`text`,value:e.key,onChange:t=>e.handleKeyChange(t.target.value),placeholder:`e.g. fast-cheap`,disabled:e.isReadOnly||e.effectiveMode===`edit`,errorText:e.isReadOnly?void 0:e.keyError,fullWidth:!0}),v=!o&&(!e.isReadOnly||e.status!==`active`)?(0,K.jsx)(g,{checked:e.status===`active`,onChange:t=>e.setStatus(t?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,b=(0,K.jsx)(J,{visibility:e.visibility,isReadOnly:e.isReadOnly,model:e.model,selectedModel:e.selectedModel,defaultMaxOutputTokens:e.defaultMaxOutputTokens,defaultContextWindowMaxInputTokens:e.defaultContextWindowMaxInputTokens,maxTokens:e.maxTokens,onMaxTokensChange:e.setMaxTokens,contextWindowMaxInputTokens:e.contextWindowMaxInputTokens,onContextWindowChange:e.setContextWindowMaxInputTokens,effort:e.effort,onEffortChange:e.setEffort,speed:e.speed,onSpeedChange:e.setSpeed,verbosity:e.verbosity,onVerbosityChange:e.setVerbosity,temperatureEnabled:e.temperatureEnabled,onTemperatureEnabledChange:e.setTemperatureEnabled,temperature:e.temperature,onTemperatureChange:e.setTemperature,topPEnabled:e.topPEnabled,onTopPEnabledChange:e.setTopPEnabled,topP:e.topP,onTopPChange:e.setTopP,thinkingEnabled:e.thinkingEnabled,onThinkingEnabledChange:e.setThinkingEnabled,thinkingStreamThinking:e.thinkingStreamThinking,onThinkingStreamThinkingChange:e.setThinkingStreamThinking,thinkingLevel:e.thinkingLevel,onThinkingLevelChange:e.setThinkingLevel}),x=e.saveError?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.saveError}):null,C=(0,V.useMemo)(()=>Ve(e.effectiveConnections,i),[e.effectiveConnections,i]),w=(0,V.useMemo)(()=>{let t=Ue(Be(e.effectiveConnections,i),e.effectiveConnections,e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0}));for(let e of C)t.push({value:e,label:O[e]??e,suffix:(0,K.jsx)(Xe,{text:gt(e)})});return t.push({value:ht,label:`+ Create new provider`}),t},[i,e.effectiveConnections,C]),T=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{value:e.creatingProvider?e.pendingCreateProvider??ht:e.provider===`openai-compatible`&&e.providerConnection?Z(e.providerConnection):e.provider,onChange:t=>{if(t===ht){e.setCreatingProvider(!0),e.setPendingCreateProvider(null),e.setNewProviderNote(!1);return}if(!t)return;let n=Q(t);if(n){e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.provider===`openai-compatible`?e.setModel(``):e.handleProviderChange(S),e.setProviderConnection(n);return}let r=t;if(C.includes(r)){e.setCreatingProvider(!0),e.setPendingCreateProvider(r),e.setNewProviderNote(!1);return}e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.handleProviderChange(r)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:w}),e.newProviderNote?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),e.creatingProvider?(0,K.jsx)(mt,{variant:`inline`,assistantId:t,existingNames:e.effectiveConnections.map(e=>e.name),connections:e.effectiveConnections,defaultProviderType:(e.pendingCreateProvider??e.provider)||void 0,hideProviderSelect:e.pendingCreateProvider!==null,onCreated:e.handleProviderCreated,onCancel:()=>{e.setCreatingProvider(!1),e.setPendingCreateProvider(null)}},e.pendingCreateProvider??`any`):(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:e.effectiveConnections,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,hideProviderField:!0})]});if(a){let t=e.model!==``;return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,T,p,v,o?t&&(0,K.jsxs)(`div`,{className:`space-y-4`,children:[_,b]}):t&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":d,onClick:()=>l(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${d?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),d?(0,K.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[_,b]}):null]}),x]})}return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,p,_,v,(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:n,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,providerError:e.providerError}),b,x]})}function vt(e,t,n){if(e){let n=T(e).find(e=>e.id===t);if(n)return n.displayName}for(let e of n??[]){let n=(e.models??[]).find(e=>e.id===t);if(n)return n.displayName??n.id}let r=t.lastIndexOf(`/`);return r>=0?t.slice(r+1):t}function yt(e,t,n){let r=(0,V.useRef)(!1),i=(0,V.useRef)(!1);return{handleLabelChange:(0,V.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(it(a))},[e,t,n]),handleKeyChange:(0,V.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,V.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,V.useCallback)(()=>i.current,[])}}var bt=`0.10.12`;async function xt(e,t){await I(t);let n=P.getState().assistantId;return e!=null&&n!==e?!1:F(bt)}function St(e,t){return e===t?!0:e===`vellum`&&C.has(t)}function Ct({mode:e,profileName:t,initialValues:n,existingNames:r,connections:o,assistantId:s,onSave:c}){let[l,u]=(0,V.useState)(e),d=n?.invariant===!0&&l!==`create`,f=l===`view`||d,p=n?.status??`active`,[m,h]=(0,V.useState)(n?.label??``),[g,_]=(0,V.useState)(n?.description??``),[v,y]=(0,V.useState)(e===`create`?``:t??``),[b,S]=(0,V.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[C,D]=(0,V.useState)(n?.model??``),[O,k]=(0,V.useState)(n?.provider_connection??``),[A,j]=(0,V.useState)(n?.status??`active`),[M,N]=(0,V.useState)([]),[ee,P]=(0,V.useState)(!1),[F,I]=(0,V.useState)(null),[te,ne]=(0,V.useState)(n?.maxTokens??null),[re,R]=(0,V.useState)(n?.contextWindow?.maxInputTokens??null),[ie,ae]=(0,V.useState)(n?.effort??`inherit`),[z,B]=(0,V.useState)(n?.speed??`standard`),[oe,le]=(0,V.useState)(n?.verbosity??`medium`),[ue,H]=(0,V.useState)(typeof n?.temperature==`number`),[U,de]=(0,V.useState)(typeof n?.temperature==`number`?n.temperature:.7),[fe,pe]=(0,V.useState)(typeof n?.topP==`number`),[me,W]=(0,V.useState)(typeof n?.topP==`number`?n.topP:.95),he=f&&A!==p,[ge,ve]=(0,V.useState)(n?.thinking?.enabled??!1),[ye,G]=(0,V.useState)(n?.thinking?.streamThinking??!1),[be,xe]=(0,V.useState)(_e(n?.thinking?.level)?n.thinking.level:Te),K=(0,V.useMemo)(()=>b===`vellum`?E(C):null,[b,C]),q=K?.model??C,Ce=(0,V.useMemo)(()=>b?T(b).find(e=>e.id===q)??null:null,[b,q]),{data:we}=a({...ce({path:{assistant_id:s}}),staleTime:3e4}),Ee=we?.llm?.default?.maxTokens,De=we?.llm?.default?.contextWindow?.maxInputTokens,J=(0,V.useMemo)(()=>Se(b===`vellum`?K?.provider??w(C)??n?.provider??``:b,q),[b,C,q,K,n?.provider]),Y=(0,V.useMemo)(()=>{let e=o??[];if(M.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...M.filter(e=>!t.has(e.name))]},[o,M]),X=(0,V.useMemo)(()=>b?Y.filter(e=>St(e.provider,b)):[],[b,Y]),Oe=O!==``&&!X.some(e=>e.name===O),{handleLabelChange:ke,handleKeyChange:Ae,resetDirty:je,getDirty:Me}=yt(l,h,y),Ne=i(),[Pe,Fe]=(0,V.useState)(!1),[Ie,Le]=(0,V.useState)(null),[Re,ze]=(0,V.useState)(!1);(0,V.useEffect)(()=>{n?.provider_connection===`vellum`&&b===(n?.provider??``)&&o?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&S(x)},[o,b,n]),(0,V.useEffect)(()=>{je(),Fe(!1),Le(null),ze(!1),N([])},[t,e,je]);function Be(e){if(e===b)return;S(e),D(``);let t=Y.filter(t=>St(t.provider,e));k(t.length===1?t[0].name:``),ne(null),R(null),ae(`inherit`),B(`standard`),le(`medium`),H(!1),de(.7),pe(!1),W(.95),ve(!1),G(!1),xe(Te)}function Ve(e){if(k(e),b&&T(b).length===0&&C)if(e===``)new Set(X.flatMap(e=>(e.models??[]).map(e=>e.id))).has(C)||D(``);else{let t=X.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(C)||D(``)}}function He(e){if(e!==C&&(D(e),ne(null),R(null),l===`create`&&e&&!Me())){let{name:t,key:n}=ct(vt(b||void 0,e,X),r);h(t),y(n)}}function Z(e){let t=e.provider;t!==`vellum`&&(N(t=>t.some(t=>t.name===e.name)?t:[...t,e]),S(t),k(e.name),D(``),Fe(!1),Le(null),ze(!0),Ne.invalidateQueries({queryKey:se({path:{assistant_id:s}})}))}let Q=v.trim(),Ue=Q.length===0,We=/\s/.test(v),Ge=l===`create`?r.includes(Q):r.filter(e=>e!==t).includes(Q),Ke=b.length===0,qe=b.length>0&&C.length===0,Je=Ue||We||Ge||Ke||qe,Ye=Ue?`Key is required`:We?`Key cannot contain whitespace`:Ge?`A profile with this key already exists`:null,Xe=!f&&(l===`edit`||Me())&&Ke?`Select a provider`:null;async function Ze(){if(!(Je&&!f)){if(f){if(!he)return;P(!0),I(null);try{await c(Q,{status:`active`},{mode:`merge`})}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}return}P(!0),I(null);try{let e={},t=O===``&&X.length===1?X[0].name:O,r=Oe?``:t,i=b===`vellum`&&await xt(s),a=b===`vellum`?i?x:K?.provider??w(C)??n?.provider??``:b,o=q,u=i?``:r;l===`edit`?(e.label=m.trim()||null,e.description=g.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=u||null):(m.trim()&&(e.label=m.trim()),g.trim()&&(e.description=g.trim()),a&&(e.provider=a),o&&(e.model=o),u&&(e.provider_connection=u)),J.maxTokens&&te!==null&&(e.maxTokens=te),J.contextWindow&&re!==null&&(e.contextWindow={maxInputTokens:re}),J.effort&&ie!==`inherit`&&(e.effort=ie),J.speed&&z!==`standard`&&(e.speed=z),J.verbosity&&(e.verbosity=oe),J.temperature&&(ue?e.temperature=U:l===`edit`&&(e.temperature=null)),J.topP&&(fe?e.topP=me:l===`edit`&&(e.topP=null)),J.thinking&&(e.thinking={enabled:ge,...ge?{streamThinking:ye}:{}}),J.thinkingLevel&&be!==`default`&&(e.thinking={enabled:!0,level:be}),(l===`edit`||A!==`active`)&&(e.status=A),await c(Q,e)}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}}}function Qe(){u(`create`),y(``),je()}return{effectiveMode:l,isReadOnly:f,isInvariant:d,hasViewModeChanges:he,label:m,description:g,key:v,provider:b,model:C,providerConnection:O,status:A,saving:ee,saveError:F,keyError:Ye,providerError:Xe,isInvalid:Je,maxTokens:te,contextWindowMaxInputTokens:re,effort:ie,speed:z,verbosity:oe,temperatureEnabled:ue,temperature:U,topPEnabled:fe,topP:me,thinkingEnabled:ge,thinkingStreamThinking:ye,thinkingLevel:be,visibility:J,selectedModel:Ce,defaultMaxOutputTokens:Ee,defaultContextWindowMaxInputTokens:De,effectiveConnections:Y,availableConnectionsForProvider:X,connectionNotFound:Oe,creatingProvider:Pe,pendingCreateProvider:Ie,newProviderNote:Re,setDescription:_,setStatus:j,setMaxTokens:ne,setContextWindowMaxInputTokens:R,setEffort:ae,setSpeed:B,setVerbosity:le,setTemperatureEnabled:H,setTemperature:de,setTopPEnabled:pe,setTopP:W,setThinkingEnabled:ve,setThinkingStreamThinking:G,setThinkingLevel:xe,setCreatingProvider:Fe,setPendingCreateProvider:Le,setNewProviderNote:ze,handleLabelChange:ke,handleKeyChange:Ae,getDirty:Me,handleProviderChange:Be,handleConnectionChange:Ve,handleModelChange:He,handleProviderCreated:Z,setProviderConnection:k,setModel:D,handleSave:Ze,switchToSaveAsNew:Qe}}var wt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Tt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Et(e){let t=Tt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Dt=`pcm-downsample`,Ot=1600,kt=16e3;function At(){return b()?window.vellum?.helper?.dictation:void 0}function jt(){let e=At();return!!e?.transcribe&&!!e.onTranscribed}var $=null,Mt=null;async function Nt(){return $||($=Et(),Mt=$.audioWorklet.addModule(wt)),$.state!==`running`&&await $.resume(),await Mt,$}async function Pt(e,t){try{let n=await Nt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Dt,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Ot))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Ft=8e3;async function It(e){let t=At();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await Lt(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Ft)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function Lt(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,kt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var Rt=4e3;async function zt(e,t){let n=At();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Pt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),Rt)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var Bt=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],Vt=`macos-native`,Ht=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:Vt,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],Ut=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],Wt=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],Gt={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},Kt=[`vellum`,`gemini`,`openai`],qt={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function Jt(e){return e===`vellum`?[...Wt]:Wt.filter(t=>Yt(t)===e)}function Yt(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var Xt=`vellum:ai:imageGenProvider`,Zt=`vellum:ai:imageGenModel`,Qt=`vellum:ai:webSearchProvider`,$t=`vellum:ai:webFetchProvider`,en=`vellum:ai:emailMode`,tn=`vellum:ai:emailByoProvider`,nn=`vellum:voice:ttsProvider`,rn=`vellum:voice:ttsApiKey:`,an=`vellum:voice:ttsVoiceId:`,on=`vellum:voice:sttProvider`,sn=`vellum:voice:sttApiKey:`;function cn({value:e,size:t=`default`,className:n,...r}){let i=t===`compact`;return(0,K.jsxs)(`button`,{type:`button`,className:s(`flex items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,i?`h-7 min-w-44 px-2.5 text-body-small-default`:`h-9 w-full px-3 text-body-medium-lighter`,n),...r,children:[(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e}),(0,K.jsx)(l,{"aria-hidden":!0,className:s(`shrink-0 text-[var(--content-tertiary)]`,i?`h-3 w-3`:`h-3.5 w-3.5`)})]})}var ln={profiles:{},profileOrder:[]};function un(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,V.useState)(ln),[s,c]=(0,V.useState)(t);return t!==s&&(c(t),o(ln)),(0,V.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:ln}export{vt as A,$e as B,jt as C,Tt as D,Et as E,lt as F,Ae as G,ke as H,nt as I,rt as L,mt as M,pt as N,wt as O,dt as P,et as R,Yt as S,It as T,Oe as U,Le as V,je as W,qt as _,Zt as a,Bt as b,on as c,an as d,$t as f,Kt as g,Gt as h,en as i,_t as j,Ct as k,rn as l,Ut as m,cn as n,Xt as o,Qt as p,tn as r,sn as s,un as t,nn as u,Vt as v,zt as w,Jt as x,Ht as y,Qe as z};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-DFWryB3N.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./chevron-down-CrFV6lfm.js";import{t as u}from"./chevron-right-DBGgpEiZ.js";import{L as d,z as f}from"./src-hNk11eS3.js";import{t as p}from"./loader-circle-DOtGXcds.js";import{n as m,t as h}from"./input-DmHXRXaB.js";import{t as g}from"./toggle-C-v4x7_A.js";import{t as _}from"./modal-DI63s9MQ.js";import{n as v}from"./toast-BpuLSxyt.js";import{t as y}from"./select-B8-i-CZ4.js";import{t as b}from"./is-electron-BHXrkjI3.js";import{A as x,D as S,E as C,F as w,I as T,L as E,M as D,N as O,O as k,T as A,d as j,k as M,s as N,u as ee}from"./profile-pickers-ChG4_Gpc.js";import{t as P}from"./assistant-identity-store-nE-e8KQw.js";import{n as F,o as I}from"./utils-CVoSWh7U.js";import{r as L}from"./api-errors-BQX1Pzcm.js";import{Gt as te,Wt as ne,Xt as re,Yt as R,dr as ie,fr as ae}from"./sdk.gen-CBPZ2IdN.js";import{n as z}from"./use-platform-gate-CdwOyQ8A.js";import{r as B}from"./use-is-org-ready-BmOdacs1.js";import{Ct as oe,J as se,u as ce,wt as le}from"./react-query.gen-DxjuNs-5.js";var V=e(n(),1),ue={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function H(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function U(e){return e.startsWith(`anthropic/`)}function de(e,t){let n=t.toLowerCase();return T(e).find(e=>e.id.toLowerCase()===n)}function fe(e,t){return de(e,t)?.adaptiveThinkingOnly===!0}function pe(e){return U(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var me=[`minimal`,`low`,`medium`,`high`],W=[`low`,`medium`,`high`];function he(e){return/^gemini-3.*pro/.test(e)}var ge=new Set(me);function _e(e){return typeof e==`string`&&ge.has(e)}function ve(e){return he(e.toLowerCase())?W:me}function ye(e,t){let n=de(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?pe(t):e===`vercel-ai-gateway`?U(t):!1:n.supportsThinking}function G(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?H(t):e===`openrouter`||e===`vercel-ai-gateway`?U(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var be=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function xe(e,t){return t||be.has(e)}function Se(e,t){if(!e||!t)return ue;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&U(r),a=ye(n,r);return{maxTokens:!0,contextWindow:!0,effort:G(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&H(r),temperature:i,topP:xe(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&U(r))&&a&&!fe(n,r),thinkingLevel:n===`gemini`&&a}}var K=o(),q=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Ce=[`standard`,`fast`],we=[`low`,`medium`,`high`],Te=`default`,Ee=64e3;function De({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,V.useState)(s?``:String(t)),[f,p]=(0,V.useState)(t);t!==f&&(p(t),u(t===null?``:String(t)));function m(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function g(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=ee(i,a);u(String(o)),n(o)}return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,j(i)]}):null]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:k,max:a,step:M,disabled:o,"aria-label":e})}),(0,K.jsx)(h,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>m(e.target.value),onBlur:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g(e.currentTarget.value)},min:k,max:a,step:M,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function J({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:u,onEffortChange:p,speed:m,onSpeedChange:h,verbosity:_,onVerbosityChange:v,temperatureEnabled:y,onTemperatureEnabledChange:b,temperature:x,onTemperatureChange:S,topPEnabled:C,onTopPEnabledChange:w,topP:T,onTopPChange:E,thinkingEnabled:D,onThinkingEnabledChange:O,thinkingStreamThinking:k,onThinkingStreamThinkingChange:A,thinkingLevel:j,onThinkingLevelChange:M}){let ee=N(),P=r?.maxOutputTokens??Ee,F=r?.contextWindowTokens??2e5,I=Math.min(i??Ee,P),L=Math.min(a??2e5,F);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!t&&ee&&(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,K.jsx)(De,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:I,max:P,disabled:t}),e.contextWindow&&(0,K.jsx)(De,{label:`Context Window`,value:c,onChange:l,defaultValue:L,max:F,disabled:t||!r}),e.effort&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,K.jsx)(f,{items:q.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:u,onChange:e=>p(e),ariaLabel:`Effort`})]}),e.speed&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,K.jsx)(f,{items:Ce.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>h(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,K.jsx)(f,{items:we.map(e=>({value:e,label:e,disabled:t})),value:_,onChange:e=>v(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:y,onChange:e=>b(e),label:`Temperature`,disabled:t}),y&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:x,onValueChange:e=>S(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:C,onChange:e=>w(e),label:`Top P`,disabled:t}),C&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:T,onValueChange:e=>E(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(g,{checked:D,onChange:e=>{O(e),e||A(!1)},label:`Enable extended thinking`,disabled:t}),D&&(0,K.jsx)(`div`,{className:`pl-4`,children:(0,K.jsx)(g,{checked:k,onChange:e=>A(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,K.jsx)(f,{items:[`default`,...ve(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:j,onChange:M,ariaLabel:`Thinking level`})]})]})}var Y=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function X(e){return e===`ollama`?`none`:`api_key`}function Oe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function ke(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Ae(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function je(e){return e.label?e.label:e.auth.type===`oauth_subscription`?O.chatgpt:O[e.provider]??e.provider}var Me=new Set([`ollama`]);function Ne(e,t){return!Me.has(e)||t}function Pe(e){return A.filter(t=>Ne(t,e))}function Fe(e){return Y.filter(t=>Ne(t,e))}function Ie(e){return Object.keys(D).filter(t=>Ne(t,e))}function Le(){return Pe(z())}function Re(){return Fe(z())}function ze(){return Ie(z())}function Be(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Ne(e,t)),r=[];return n.includes(`vellum`)&&r.push(x),r.push(...Y.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Y.includes(e))),r}function Ve(e,t){let n=new Set(e.map(e=>e.provider));return Fe(t).filter(e=>e!==`openai-compatible`&&!n.has(e))}var He=`${S}::`;function Z(e){return`${He}${e}`}function Q(e){return e.startsWith(He)?e.slice(He.length):null}function Ue(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:Z(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var We=new Set([`gpt-5.6-sol`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function Ge(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function Ke(e,t,n){return!e||T(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var qe=`No provider connections. Open Providers to add one.`,Je={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},Ye=`__custom-model-id__`;function Xe({text:e}){return(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function Ze({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:s,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1,providerError:p=null}){let m=e.length>0&&t.length===0,[g,_]=(0,V.useState)(!1),v=Ke(e,n,u),b=e!==``&&!v;(0,V.useEffect)(()=>{b||_(!1)},[e,b]);function x(e){if(e===Ye){_(!0),a(``);return}a(e)}let S=ze(),C=z(),w=(0,V.useMemo)(()=>{let t=Be(s??[],C);return e&&!t.includes(e)?[...t,e]:t},[s,e,C]),E=s===void 0?S:w,D=E.length===0&&!l,k=(0,V.useMemo)(()=>{if(!e)return[];let t=T(e);if(t.length>0)return Ke(e,n,u)?t.filter(e=>We.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?Ge(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),A=(0,V.useMemo)(()=>{if(!t||k.some(e=>e.id===t))return k;let n=T(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...k,{id:t,displayName:i}]},[t,k,e,u]),j=e?k.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,M=j?Je[j]:null;return(0,V.useEffect)(()=>{if(!e||g)return;let n=T(e);n.length>0&&!n.some(e=>e.id===t)||t&&k.length>0&&!k.some(e=>e.id===t)&&a(``)},[t,k,a,e,g]),(0,K.jsxs)(K.Fragment,{children:[!f&&(0,K.jsx)(y,{id:`profile-editor-provider`,label:`Provider`,errorText:p&&D?qe:p,helperText:D&&!p?qe:void 0,value:e===`openai-compatible`&&n?Z(n):e,onChange:e=>{let t=Q(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,options:[...Ue(E,s??[],e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:Z(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:O[`openai-compatible`]??`openai-compatible`}]:[]]}),d&&!l&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),g?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,K.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>_(!1),children:`Choose from list`})]}):(0,K.jsx)(y,{value:t,onChange:x,disabled:l||!e,"aria-label":`Model`,placeholder:M?.placeholder??`Select a model`,options:[...A.map(e=>({value:e.id,label:e.displayName})),...b?[{value:Ye,label:`Enter a custom model ID…`}]:[]]}),g?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):m&&!l?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:M?.hint??`Select a model.`}):null]})]})}function Qe(e,t,n){return[`credentialPresence`,e,t,n]}function $e({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=B(),s=a({queryKey:Qe(e??``,n,r),queryFn:async()=>{let{data:t}=await ae({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function et({assistantId:e,onConnected:t}){let[n,i]=(0,V.useState)(`idle`),[a,o]=(0,V.useState)(``),[s,l]=(0,V.useState)(null);async function u(){i(`starting`),l(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await te({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),l(`Failed to start ChatGPT sign-in. Please try again.`)}}async function d(){l(null);let n=a.trim();if(!n){l(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{l(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){l(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){l(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await ne({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await R({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),l(`Failed to complete sign-in. Please try again.`)}}function f(){i(`idle`),o(``),l(null)}return(0,K.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(c,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void u(),children:`Sign in with ChatGPT`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:a,onChange:e=>{o(e.target.value),l(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void d(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,s?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:s}):null,n===`failed`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:f,children:`Try Again`}):null]})}var tt=new Set(Object.entries(O).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),nt={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function rt(e,t,n){let r=e.trim().toLowerCase();return r?tt.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function it(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function at(e){return it(e)}function ot(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function st(e,t){return{name:O[e]??e,key:ot(`${at(e)}-personal`,t)}}function ct(e,t){return{name:e,key:ot(at(e),t)}}function lt({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:s,providerCredentials:l,showAdvancedSection:d,onError:f}){let[m,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)(!1),[b,x]=(0,V.useState)(``);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,K.jsx)(h,{type:`password`,value:e,onChange:e=>{t(e.target.value),f(null)},placeholder:o,fullWidth:!0})]}),d&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":m,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${m?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`}),(0,K.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),m&&(0,K.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=l.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,K.jsx)(y,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),_&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(h,{value:b,onChange:e=>x(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!b.trim(),onClick:()=>{let e=b.trim();e&&(i(`credential/${s}/${e}`),v(!1),x(``))},children:`Use`})]})]}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{_?(v(!1),x(``)):v(!0)},children:_?`Cancel`:`+ New Credential`})})]})]})]})}var ut=`•`.repeat(8);function dt(e,t){return t?ut:e}function ft(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function pt({assistantId:e,enabled:n=!0}){let r=B(),i=a({...oe({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>ft(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function mt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,hideProviderSelect:o=!1,onCreated:s,onCancel:l,variant:d=`modal`}){let f=Re(),p=a&&f.includes(a)?a:f[0]??`anthropic`,m=st(p,t),[g,b]=(0,V.useState)(p===`openai-compatible`?``:m.name),[x,S]=(0,V.useState)(m.key),[C,w]=(0,V.useState)(p),T=C===`chatgpt`,E=T?`openai`:C,D=T?`oauth_subscription`:X(E),[k,A]=(0,V.useState)(()=>p===`ollama`?``:p===`openai-compatible`?`credential/${m.key}/api_key`:`credential/${p}/api_key`),[j,M]=(0,V.useState)(``),[N,ee]=(0,V.useState)(``),[P,F]=(0,V.useState)(!1),[I,L]=(0,V.useState)(null),[te,ne]=(0,V.useState)(!1),R=E===`openai-compatible`,ae=(0,V.useMemo)(()=>{let e=!T&&!f.includes(E)?[...f,E]:[...f],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[T,E,f]),z=(0,V.useRef)(!1);function B(e){z.current=!0,b(e)}let[oe,se]=(0,V.useState)(``),[ce,ue]=(0,V.useState)(!1),H=i(),U=(0,V.useMemo)(()=>Oe(k),[k]),de=D===`api_key`&&U!==null,{hasStoredCredential:fe,isLoading:pe}=$e({assistantId:e,credentialKind:`credential`,credentialName:U?`${U.service}:${U.field}`:``,enabled:de}),{credentials:me}=pt({assistantId:e,enabled:!0}),W=R?rt(g,n):null,he=x.trim().length>0&&(!R||g.trim().length>0)&&W===null;async function ge(){if(he){F(!0),L(null);try{let t;if(D===`api_key`){let n=k.trim()||`credential/${R?x:E}/api_key`,r=oe.trim();if(r){ue(!0);try{let t=Oe(n);await ie({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:E,value:r},throwOnError:!0});let i=Qe(e,`credential`,t?`${t.service}:${t.field}`:``);H.setQueryData(i,!0),H.invalidateQueries({queryKey:le({path:{assistant_id:e}})})}catch{L(`Failed to save API key. Please try again.`);return}finally{ue(!1)}t={type:`api_key`,credential:n}}else if(fe)t={type:`api_key`,credential:n};else if(R)t={type:`none`};else{L(`Enter an API key or select an existing credential.`);return}}else if(D===`oauth_subscription`){L(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=g.trim()||null,r={name:x.trim(),provider:E,auth:t,...n!==null&&{label:n},...R&&{base_url:j.trim()||null,models:N.trim()?N.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:o}=await re({path:{assistant_id:e},body:r});if(!o?.ok){L(Ae(o?.status,a)??ke(o?.status));return}if(!i){L(`Server returned an empty response. Please try again.`);return}v.success(`Provider connected`),s(i)}catch{L(`Failed to save provider. Please try again.`)}finally{F(!1)}}}let _e=me.filter(e=>e.service===E),ve=_e.length>0,ye=dt(`Enter your API key`,fe),G=te,be=(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":G,onClick:()=>ne(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${G?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),G&&(0,K.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),xe=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!o&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{"aria-label":`Provider`,value:C,onChange:e=>{if(w(e),L(null),e===`chatgpt`)return;let{name:n,key:r}=st(e,t);z.current||b(e===`openai-compatible`?``:n),S(r),A(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...ae.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:O[e]})),...ae.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),R?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),R&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`xAI`,fullWidth:!0}),W?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:nt[W]}):null]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,K.jsx)(h,{value:j,onChange:e=>M(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,K.jsx)(h,{value:N,onChange:e=>ee(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),D===`api_key`&&(0,K.jsx)(lt,{apiKeyValue:oe,onApiKeyChange:se,credential:k,onCredentialChange:A,isLoadingCredential:pe,apiKeyPlaceholder:ye,provider:E,providerCredentials:_e,showAdvancedSection:ve,onError:L}),R&&D===`api_key`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,D===`oauth_subscription`&&(0,K.jsx)(et,{assistantId:e,onConnected:s}),!T&&!R&&be,I&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:I})]}),Se=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:l,children:`Cancel`}),!T&&(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!he||P||ce,onClick:()=>void ge(),children:P?`Saving…`:R&&g.trim()?`Add ${g.trim()}`:`Add`})]});return d===`inline`?(0,K.jsxs)(`div`,{className:`space-y-4`,children:[xe,(0,K.jsx)(`div`,{className:`flex justify-end gap-2`,children:Se})]}):(0,K.jsxs)(_.Content,{size:`md`,children:[(0,K.jsxs)(_.Header,{children:[(0,K.jsx)(_.Title,{children:`Add Provider`}),(0,K.jsx)(_.Description,{children:`Choose a provider and paste its API key.`})]}),(0,K.jsx)(_.Body,{children:xe}),(0,K.jsx)(_.Footer,{children:Se})]})}var ht=`__create_new_provider__`;function gt(e){return X(e)===`api_key`?`Add API key`:`Set up`}function _t({editor:e,assistantId:t,connections:n,variant:r}){let i=z(),a=e.effectiveMode===`create`,o=r===`panel`,[s,l]=(0,V.useState)(!1),d=s||!!e.keyError&&e.getDirty(),f=(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a?`Name`:`Display Name`}),(0,K.jsx)(h,{type:`text`,value:e.label,onChange:t=>e.handleLabelChange(t.target.value),placeholder:`e.g. Fast & Cheap`,disabled:e.isReadOnly,fullWidth:!0})]}),p=(0,K.jsx)(m,{label:(0,K.jsxs)(K.Fragment,{children:[`Description`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:e.description,onChange:t=>e.setDescription(t.target.value),placeholder:`Describe when to use this profile`,disabled:e.isReadOnly,rows:2,fullWidth:!0,className:`resize-none`}),_=(0,K.jsx)(h,{label:`Key`,type:`text`,value:e.key,onChange:t=>e.handleKeyChange(t.target.value),placeholder:`e.g. fast-cheap`,disabled:e.isReadOnly||e.effectiveMode===`edit`,errorText:e.isReadOnly?void 0:e.keyError,fullWidth:!0}),v=!o&&(!e.isReadOnly||e.status!==`active`)?(0,K.jsx)(g,{checked:e.status===`active`,onChange:t=>e.setStatus(t?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,b=(0,K.jsx)(J,{visibility:e.visibility,isReadOnly:e.isReadOnly,model:e.model,selectedModel:e.selectedModel,defaultMaxOutputTokens:e.defaultMaxOutputTokens,defaultContextWindowMaxInputTokens:e.defaultContextWindowMaxInputTokens,maxTokens:e.maxTokens,onMaxTokensChange:e.setMaxTokens,contextWindowMaxInputTokens:e.contextWindowMaxInputTokens,onContextWindowChange:e.setContextWindowMaxInputTokens,effort:e.effort,onEffortChange:e.setEffort,speed:e.speed,onSpeedChange:e.setSpeed,verbosity:e.verbosity,onVerbosityChange:e.setVerbosity,temperatureEnabled:e.temperatureEnabled,onTemperatureEnabledChange:e.setTemperatureEnabled,temperature:e.temperature,onTemperatureChange:e.setTemperature,topPEnabled:e.topPEnabled,onTopPEnabledChange:e.setTopPEnabled,topP:e.topP,onTopPChange:e.setTopP,thinkingEnabled:e.thinkingEnabled,onThinkingEnabledChange:e.setThinkingEnabled,thinkingStreamThinking:e.thinkingStreamThinking,onThinkingStreamThinkingChange:e.setThinkingStreamThinking,thinkingLevel:e.thinkingLevel,onThinkingLevelChange:e.setThinkingLevel}),x=e.saveError?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.saveError}):null,C=(0,V.useMemo)(()=>Ve(e.effectiveConnections,i),[e.effectiveConnections,i]),w=(0,V.useMemo)(()=>{let t=Ue(Be(e.effectiveConnections,i),e.effectiveConnections,e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0}));for(let e of C)t.push({value:e,label:O[e]??e,suffix:(0,K.jsx)(Xe,{text:gt(e)})});return t.push({value:ht,label:`+ Create new provider`}),t},[i,e.effectiveConnections,C]),T=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{value:e.creatingProvider?e.pendingCreateProvider??ht:e.provider===`openai-compatible`&&e.providerConnection?Z(e.providerConnection):e.provider,onChange:t=>{if(t===ht){e.setCreatingProvider(!0),e.setPendingCreateProvider(null),e.setNewProviderNote(!1);return}if(!t)return;let n=Q(t);if(n){e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.provider===`openai-compatible`?e.setModel(``):e.handleProviderChange(S),e.setProviderConnection(n);return}let r=t;if(C.includes(r)){e.setCreatingProvider(!0),e.setPendingCreateProvider(r),e.setNewProviderNote(!1);return}e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.handleProviderChange(r)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:w}),e.newProviderNote?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),e.creatingProvider?(0,K.jsx)(mt,{variant:`inline`,assistantId:t,existingNames:e.effectiveConnections.map(e=>e.name),connections:e.effectiveConnections,defaultProviderType:(e.pendingCreateProvider??e.provider)||void 0,hideProviderSelect:e.pendingCreateProvider!==null,onCreated:e.handleProviderCreated,onCancel:()=>{e.setCreatingProvider(!1),e.setPendingCreateProvider(null)}},e.pendingCreateProvider??`any`):(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:e.effectiveConnections,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,hideProviderField:!0})]});if(a){let t=e.model!==``;return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,T,p,v,o?t&&(0,K.jsxs)(`div`,{className:`space-y-4`,children:[_,b]}):t&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":d,onClick:()=>l(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${d?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),d?(0,K.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[_,b]}):null]}),x]})}return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,p,_,v,(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:n,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,providerError:e.providerError}),b,x]})}function vt(e,t,n){if(e){let n=T(e).find(e=>e.id===t);if(n)return n.displayName}for(let e of n??[]){let n=(e.models??[]).find(e=>e.id===t);if(n)return n.displayName??n.id}let r=t.lastIndexOf(`/`);return r>=0?t.slice(r+1):t}function yt(e,t,n){let r=(0,V.useRef)(!1),i=(0,V.useRef)(!1);return{handleLabelChange:(0,V.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(it(a))},[e,t,n]),handleKeyChange:(0,V.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,V.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,V.useCallback)(()=>i.current,[])}}var bt=`0.10.12`;async function xt(e,t){await I(t);let n=P.getState().assistantId;return e!=null&&n!==e?!1:F(bt)}function St(e,t){return e===t?!0:e===`vellum`&&C.has(t)}function Ct({mode:e,profileName:t,initialValues:n,existingNames:r,connections:o,assistantId:s,onSave:c}){let[l,u]=(0,V.useState)(e),d=n?.invariant===!0&&l!==`create`,f=l===`view`||d,p=n?.status??`active`,[m,h]=(0,V.useState)(n?.label??``),[g,_]=(0,V.useState)(n?.description??``),[v,y]=(0,V.useState)(e===`create`?``:t??``),[b,S]=(0,V.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[C,D]=(0,V.useState)(n?.model??``),[O,k]=(0,V.useState)(n?.provider_connection??``),[A,j]=(0,V.useState)(n?.status??`active`),[M,N]=(0,V.useState)([]),[ee,P]=(0,V.useState)(!1),[F,I]=(0,V.useState)(null),[te,ne]=(0,V.useState)(n?.maxTokens??null),[re,R]=(0,V.useState)(n?.contextWindow?.maxInputTokens??null),[ie,ae]=(0,V.useState)(n?.effort??`inherit`),[z,B]=(0,V.useState)(n?.speed??`standard`),[oe,le]=(0,V.useState)(n?.verbosity??`medium`),[ue,H]=(0,V.useState)(typeof n?.temperature==`number`),[U,de]=(0,V.useState)(typeof n?.temperature==`number`?n.temperature:.7),[fe,pe]=(0,V.useState)(typeof n?.topP==`number`),[me,W]=(0,V.useState)(typeof n?.topP==`number`?n.topP:.95),he=f&&A!==p,[ge,ve]=(0,V.useState)(n?.thinking?.enabled??!1),[ye,G]=(0,V.useState)(n?.thinking?.streamThinking??!1),[be,xe]=(0,V.useState)(_e(n?.thinking?.level)?n.thinking.level:Te),K=(0,V.useMemo)(()=>b===`vellum`?E(C):null,[b,C]),q=K?.model??C,Ce=(0,V.useMemo)(()=>b?T(b).find(e=>e.id===q)??null:null,[b,q]),{data:we}=a({...ce({path:{assistant_id:s}}),staleTime:3e4}),Ee=we?.llm?.default?.maxTokens,De=we?.llm?.default?.contextWindow?.maxInputTokens,J=(0,V.useMemo)(()=>Se(b===`vellum`?K?.provider??w(C)??n?.provider??``:b,q),[b,C,q,K,n?.provider]),Y=(0,V.useMemo)(()=>{let e=o??[];if(M.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...M.filter(e=>!t.has(e.name))]},[o,M]),X=(0,V.useMemo)(()=>b?Y.filter(e=>St(e.provider,b)):[],[b,Y]),Oe=O!==``&&!X.some(e=>e.name===O),{handleLabelChange:ke,handleKeyChange:Ae,resetDirty:je,getDirty:Me}=yt(l,h,y),Ne=i(),[Pe,Fe]=(0,V.useState)(!1),[Ie,Le]=(0,V.useState)(null),[Re,ze]=(0,V.useState)(!1);(0,V.useEffect)(()=>{n?.provider_connection===`vellum`&&b===(n?.provider??``)&&o?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&S(x)},[o,b,n]),(0,V.useEffect)(()=>{je(),Fe(!1),Le(null),ze(!1),N([])},[t,e,je]);function Be(e){if(e===b)return;S(e),D(``);let t=Y.filter(t=>St(t.provider,e));k(t.length===1?t[0].name:``),ne(null),R(null),ae(`inherit`),B(`standard`),le(`medium`),H(!1),de(.7),pe(!1),W(.95),ve(!1),G(!1),xe(Te)}function Ve(e){if(k(e),b&&T(b).length===0&&C)if(e===``)new Set(X.flatMap(e=>(e.models??[]).map(e=>e.id))).has(C)||D(``);else{let t=X.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(C)||D(``)}}function He(e){if(e!==C&&(D(e),ne(null),R(null),l===`create`&&e&&!Me())){let{name:t,key:n}=ct(vt(b||void 0,e,X),r);h(t),y(n)}}function Z(e){let t=e.provider;t!==`vellum`&&(N(t=>t.some(t=>t.name===e.name)?t:[...t,e]),S(t),k(e.name),D(``),Fe(!1),Le(null),ze(!0),Ne.invalidateQueries({queryKey:se({path:{assistant_id:s}})}))}let Q=v.trim(),Ue=Q.length===0,We=/\s/.test(v),Ge=l===`create`?r.includes(Q):r.filter(e=>e!==t).includes(Q),Ke=b.length===0,qe=b.length>0&&C.length===0,Je=Ue||We||Ge||Ke||qe,Ye=Ue?`Key is required`:We?`Key cannot contain whitespace`:Ge?`A profile with this key already exists`:null,Xe=!f&&(l===`edit`||Me())&&Ke?`Select a provider`:null;async function Ze(){if(!(Je&&!f)){if(f){if(!he)return;P(!0),I(null);try{await c(Q,{status:`active`},{mode:`merge`})}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}return}P(!0),I(null);try{let e={},t=O===``&&X.length===1?X[0].name:O,r=Oe?``:t,i=b===`vellum`&&await xt(s),a=b===`vellum`?i?x:K?.provider??w(C)??n?.provider??``:b,o=q,u=i?``:r;l===`edit`?(e.label=m.trim()||null,e.description=g.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=u||null):(m.trim()&&(e.label=m.trim()),g.trim()&&(e.description=g.trim()),a&&(e.provider=a),o&&(e.model=o),u&&(e.provider_connection=u)),J.maxTokens&&te!==null&&(e.maxTokens=te),J.contextWindow&&re!==null&&(e.contextWindow={maxInputTokens:re}),J.effort&&ie!==`inherit`&&(e.effort=ie),J.speed&&z!==`standard`&&(e.speed=z),J.verbosity&&(e.verbosity=oe),J.temperature&&(ue?e.temperature=U:l===`edit`&&(e.temperature=null)),J.topP&&(fe?e.topP=me:l===`edit`&&(e.topP=null)),J.thinking&&(e.thinking={enabled:ge,...ge?{streamThinking:ye}:{}}),J.thinkingLevel&&be!==`default`&&(e.thinking={enabled:!0,level:be}),(l===`edit`||A!==`active`)&&(e.status=A),await c(Q,e)}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}}}function Qe(){u(`create`),y(``),je()}return{effectiveMode:l,isReadOnly:f,isInvariant:d,hasViewModeChanges:he,label:m,description:g,key:v,provider:b,model:C,providerConnection:O,status:A,saving:ee,saveError:F,keyError:Ye,providerError:Xe,isInvalid:Je,maxTokens:te,contextWindowMaxInputTokens:re,effort:ie,speed:z,verbosity:oe,temperatureEnabled:ue,temperature:U,topPEnabled:fe,topP:me,thinkingEnabled:ge,thinkingStreamThinking:ye,thinkingLevel:be,visibility:J,selectedModel:Ce,defaultMaxOutputTokens:Ee,defaultContextWindowMaxInputTokens:De,effectiveConnections:Y,availableConnectionsForProvider:X,connectionNotFound:Oe,creatingProvider:Pe,pendingCreateProvider:Ie,newProviderNote:Re,setDescription:_,setStatus:j,setMaxTokens:ne,setContextWindowMaxInputTokens:R,setEffort:ae,setSpeed:B,setVerbosity:le,setTemperatureEnabled:H,setTemperature:de,setTopPEnabled:pe,setTopP:W,setThinkingEnabled:ve,setThinkingStreamThinking:G,setThinkingLevel:xe,setCreatingProvider:Fe,setPendingCreateProvider:Le,setNewProviderNote:ze,handleLabelChange:ke,handleKeyChange:Ae,getDirty:Me,handleProviderChange:Be,handleConnectionChange:Ve,handleModelChange:He,handleProviderCreated:Z,setProviderConnection:k,setModel:D,handleSave:Ze,switchToSaveAsNew:Qe}}var wt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Tt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Et(e){let t=Tt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Dt=`pcm-downsample`,Ot=1600,kt=16e3;function At(){return b()?window.vellum?.helper?.dictation:void 0}function jt(){let e=At();return!!e?.transcribe&&!!e.onTranscribed}var $=null,Mt=null;async function Nt(){return $||($=Et(),Mt=$.audioWorklet.addModule(wt)),$.state!==`running`&&await $.resume(),await Mt,$}async function Pt(e,t){try{let n=await Nt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Dt,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Ot))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Ft=8e3;async function It(e){let t=At();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await Lt(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Ft)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function Lt(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,kt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var Rt=4e3;async function zt(e,t){let n=At();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Pt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),Rt)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var Bt=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],Vt=`macos-native`,Ht=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:Vt,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],Ut=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],Wt=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],Gt={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},Kt=[`vellum`,`gemini`,`openai`],qt={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function Jt(e){return e===`vellum`?[...Wt]:Wt.filter(t=>Yt(t)===e)}function Yt(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var Xt=`vellum:ai:imageGenProvider`,Zt=`vellum:ai:imageGenModel`,Qt=`vellum:ai:webSearchProvider`,$t=`vellum:ai:webFetchProvider`,en=`vellum:ai:emailMode`,tn=`vellum:ai:emailByoProvider`,nn=`vellum:voice:ttsProvider`,rn=`vellum:voice:ttsApiKey:`,an=`vellum:voice:ttsVoiceId:`,on=`vellum:voice:sttProvider`,sn=`vellum:voice:sttApiKey:`;function cn({value:e,size:t=`default`,className:n,...r}){let i=t===`compact`;return(0,K.jsxs)(`button`,{type:`button`,className:s(`flex items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,i?`h-7 min-w-44 px-2.5 text-body-small-default`:`h-9 w-full px-3 text-body-medium-lighter`,n),...r,children:[(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e}),(0,K.jsx)(l,{"aria-hidden":!0,className:s(`shrink-0 text-[var(--content-tertiary)]`,i?`h-3 w-3`:`h-3.5 w-3.5`)})]})}var ln={profiles:{},profileOrder:[]};function un(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,V.useState)(ln),[s,c]=(0,V.useState)(t);return t!==s&&(c(t),o(ln)),(0,V.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:ln}export{vt as A,$e as B,jt as C,Tt as D,Et as E,lt as F,Ae as G,ke as H,nt as I,rt as L,mt as M,pt as N,wt as O,dt as P,et as R,Yt as S,It as T,Oe as U,Le as V,je as W,qt as _,Zt as a,Bt as b,on as c,an as d,$t as f,Kt as g,Gt as h,en as i,_t as j,Ct as k,rn as l,Ut as m,cn as n,Xt as o,Qt as p,tn as r,sn as s,un as t,nn as u,Vt as v,zt as w,Jt as x,Ht as y,Qe as z};
|
package/dist/assets/{use-subagent-card-data-BeUTFQdm.js → use-subagent-card-data-CFKl88ab.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{c as n,m as r,p as i}from"./message-content-Beh5mR15.js";import{n as a}from"./resolved-assistants-store-BFI9c7ip.js";import{i as o,o as s,r as c}from"./subagent-store-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{c as n,m as r,p as i}from"./message-content-Beh5mR15.js";import{n as a}from"./resolved-assistants-store-BFI9c7ip.js";import{i as o,o as s,r as c}from"./subagent-store-9SqF-NFa.js";import{C as l,S as u,_ as d,w as f,y as p}from"./site-favicon-B3DMFtr3.js";function m(e,t){if(t===e)return{kind:`identity`};if(e==null)return{kind:`first`};let n=e.length,r=t.length;return r>n&&(n===0||t[0]===e[0]&&t[n-1]===e[n-1])?{kind:`append`,from:n}:r===n&&r>=1&&t[r-1]!==e[r-1]&&t[r-1].id===e[r-1].id&&e[r-1].type===`text`&&t[r-1].type===`text`&&t[r-1].content.length>=e[r-1].content.length&&t[r-1].content.startsWith(e[r-1].content)&&(r===1||t[r-2]===e[r-2])?{kind:`mutate-last`}:{kind:`fallback`}}var h=e(t(),1);function g(e,t){return JSON.stringify(e)===JSON.stringify(t)}function _(e=A){let t=null,n=[],r=[];function i(e){let i=j(e);return t=e,n=i.steps,r=i.toolMeta,{steps:n,toolMeta:r}}function a(a){let o=m(t,a);switch(o.kind){case`identity`:return{steps:n,toolMeta:r};case`first`:return i(a);case`append`:{let i=a.length,s=n.slice(),c=r.slice();for(let t=o.from;t<i;t++)e(s,c,a[t]);return t=a,n=s,r=c,{steps:n,toolMeta:r}}case`mutate-last`:{let i=a.length,o=n.slice(),s=r.slice(),c=o[o.length-1],l;c&&c.kind===`thinking`&&c.detailKey===a[i-1].id&&(l=c,o.pop(),s.pop()),e(o,s,a[i-1]),t=a;let u=o[o.length-1];return l&&u&&g(l,u)?{steps:n,toolMeta:r}:(n=o,r=s,{steps:n,toolMeta:r})}case`fallback`:return i(a)}}return{project:a}}function v(e){let t=(0,h.useRef)(null),n=(0,h.useRef)(null);t.current??=_();let r=t.current.project(e),i=n.current;return i!=null&&i.steps===r.steps&&i.toolMeta===r.toolMeta?i:(n.current=r,r)}var y=160,b=[];function x(e){return r(e.replace(/\s+/g,` `).trim(),y)}function S(e){let t=((e.input&&typeof e.input.url==`string`?e.input.url:``)||e.content||``).trim(),n=t?u(t):``;return n?`Reading ${n}`:`Reading…`}function C(e,t){let n=typeof e==`number`&&Number.isFinite(e)?t-e:0;return n>0?p(n):``}function w(e,t){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:e,errorMessage:x(t.result??t.content)||`Web search failed`,detailKey:t.toolUseId}}function T(e,t){let n=e.toLowerCase();if(!t)return{};switch(n){case`bash`:case`host_bash`:return{command:t};case`str_replace_editor`:case`text_editor`:return{path:t};case`computer`:return{action:t};case`skill`:case`skill_execute`:case`skill_invoke`:case`skill_load`:return{skill:t};case`subagent_spawn`:return{label:t};default:return{}}}function E(e){let t=e.toolName??``,r=e.content??``,i=n(t,e.input??T(t,r));return{kind:`tool`,durationLabel:``,toolCallId:e.toolUseId??``,iconName:i.iconName,title:i.title,info:i.info||r,activity:i.activity,status:`running`}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.running){if(t.toolUseId){if(r.toolCallId===t.toolUseId)return n;continue}if(!t.toolName||r.toolName===t.toolName)return n}}return-1}function O(e,t,n){return D(e.map((e,n)=>{let r=t[n];return e.kind===`tool`?{toolCallId:e.toolCallId,toolName:r?.toolName??``,running:e.status===`running`}:e.kind===`web_search`?{toolCallId:r?.toolUseId??``,toolName:r?.toolName??``,running:e.title===`Searching the web`}:{toolCallId:``,toolName:r?.toolName??``,running:!1}}),n)}function k(e){switch(e){case`running`:case`pending`:case`awaiting_input`:return`loading`;case`completed`:return`complete`;case`failed`:case`aborted`:case`interrupted`:return`error`;default:return`loading`}}function A(e,t,n){if(n.type===`text`){let r=x(n.content);if(r.length===0)return;e.push({kind:`thinking`,durationLabel:``,text:r,detailKey:n.id}),t.push(void 0);return}if(n.type===`tool_call`){let r=n.toolName??``;if(d.has(r)){if(r===`web_fetch`)e.push({kind:`thinking`,durationLabel:``,text:S(n),detailKey:n.toolUseId}),t.push(void 0);else{let i=n.input&&typeof n.input.query==`string`?n.input.query:n.content||void 0;e.push({kind:`web_search`,query:i,title:`Searching the web`,durationLabel:``,linkCount:0,results:[],detailKey:n.toolUseId}),t.push({startTs:n.timestamp,toolName:r,toolUseId:n.toolUseId})}return}e.push(E(n)),t.push({startTs:n.timestamp,toolName:r});return}if(n.type===`tool_result`){let r=O(e,t,n);if(r===-1)return;let i=e[r],a=t[r]?.startTs,o=C(a,n.timestamp);if(i.kind===`web_search`){if(n.isError){e[r]=w(o,n);return}let t=l(n.result??n.content);e[r]={...i,title:`Searched the web`,query:i.query||n.searchQuery,durationLabel:o,linkCount:t.length,results:t};return}if(i.kind!==`tool`)return;e[r]={...i,status:n.isError?`error`:`completed`,durationLabel:o};return}if(n.type===`error`){let r=O(e,t,n);if(r!==-1){let i=e[r];i.kind===`tool`?e[r]={...i,status:`error`}:i.kind===`web_search`&&(e[r]=w(C(t[r]?.startTs,n.timestamp),n))}let i=x(n.content)||`Subagent error`;e.push({kind:`tool_error`,message:i}),t.push(void 0);return}}function j(e){let t=[],n=[];for(let r of e)A(t,n,r);return{steps:t,toolMeta:n}}function M(e){return!s(e.status)&&o(e)&&e.events.length===0&&!e.detailSettled}function N(e,{steps:t,toolMeta:n}){if(M(e))return{state:`loading`,currentStepTitle:`Loading`,currentStepInfo:e.label,stepCount:``,steps:t,carouselItems:[]};let r=k(e.status),{currentStepTitle:i,currentStepInfo:a}=P(e,t,n);return{state:r,currentStepTitle:i,currentStepInfo:a,stepCount:`${t.length} step${t.length===1?``:`s`}`,steps:t,carouselItems:[]}}function P(e,t,n){let r=e.status===`completed`||e.status===`failed`||e.status===`aborted`||e.status===`interrupted`;if(t.length===0){let t;return t=e.status===`failed`?`Failed`:e.status===`aborted`?`Aborted`:e.status===`interrupted`?`Interrupted`:e.status===`completed`?`Finished`:`Working`,{currentStepTitle:t,currentStepInfo:e.error||e.label}}let a=t[t.length-1];if(a.kind===`thinking`)return{currentStepTitle:r?`Thought`:`Thinking`,currentStepInfo:f(a.text)};if(a.kind===`tool`){if(a.status===`running`)return{currentStepTitle:`Working`,currentStepInfo:a.info};if(!r)return{currentStepTitle:`Finalizing`,currentStepInfo:a.info};let e=n[t.length-1]?.toolName??``;return{currentStepTitle:e?`Used ${i(e)}`:`Done`,currentStepInfo:a.info}}return a.kind===`tool_error`?{currentStepTitle:`Errored`,currentStepInfo:a.message}:a.kind===`web_search`?{currentStepTitle:a.title,currentStepInfo:``}:a.kind===`web_search_error`?{currentStepTitle:a.title,currentStepInfo:a.errorMessage}:{currentStepTitle:``,currentStepInfo:``}}function F(e){let t=c(t=>t.byId[e]),n=a(e=>e.activeAssistantId),r=t!==void 0&&M(t);(0,h.useEffect)(()=>{r&&n&&c.getState().fetchDetailIfNeeded(n,e)},[r,n,e]);let i=v(t?.events??b),o=(0,h.useRef)(null);if(!t)return o.current=null,null;let s=N(t,i),l=o.current;return l!=null&&l.steps===s.steps&&l.state===s.state&&l.currentStepTitle===s.currentStepTitle&&l.currentStepInfo===s.currentStepInfo&&l.stepCount===s.stepCount?l:(o.current=s,s)}function I(e,t,r){if(r.type===`text`){if((r.content??``).trim().length===0)return;e.push({toolCallId:r.id,toolName:``,title:`Thought`,activity:``,input:{},status:`completed`,durationLabel:``,kind:`thinking`,thinkingText:r.content}),t.push({startTs:r.timestamp,running:!1});return}if(r.type===`tool_call`){let i=r.toolUseId??``;if(!i)return;let a=r.toolName??``;if(a===`web_search`){let n=r.input&&typeof r.input.query==`string`?r.input.query:r.content||void 0;e.push({toolCallId:i,toolName:a,title:`Searched the web`,activity:``,input:r.input??{},status:`running`,durationLabel:``,kind:`web_search`,searchQuery:n,searchResults:[]}),t.push({startTs:r.timestamp,running:!0});return}let o=n(a,r.input??T(a,r.content??``));e.push({toolCallId:i,toolName:a,title:o.title,activity:o.activity,input:r.input??{},status:`running`,durationLabel:``,kind:`tool`}),t.push({startTs:r.timestamp,running:!0});return}if(r.type===`tool_result`||r.type===`error`){let n=D(e.map((e,n)=>({toolCallId:e.toolCallId,toolName:e.toolName,running:t[n].running})),r);if(n===-1)return;let i=e[n],a=t[n].startTs,o=C(a,r.timestamp);e[n]=i.kind===`web_search`?{...i,status:r.isError?`error`:`completed`,durationLabel:o,searchQuery:i.searchQuery||r.searchQuery,searchResults:r.isError?[]:l(r.result??r.content),result:r.isError?r.result??r.content:void 0}:{...i,result:r.result??r.content,status:r.isError?`error`:`completed`,durationLabel:o},t[n].running=!1}}export{m as i,F as n,v as r,I as t};
|
package/dist/assets/{use-supports-bookmarks-FmvOAxKu.js → use-supports-bookmarks-z9pfj1Rm.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-C1mdGPB9.js";import{r as t}from"./utils-
|
|
1
|
+
import{t as e}from"./createLucideIcon-C1mdGPB9.js";import{r as t}from"./utils-CVoSWh7U.js";var n=e(`bookmark`,[[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`,key:`oz39mx`}]]),r=`0.8.1`;function i(e){return t(r,e)}export{n,i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./utils-CVoSWh7U.js";var t=`0.10.8`;function n(n){return e(t,n)}export{n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{L as n,t as r}from"./use-transcript-messages-vw2Hogaj.js";var i=e(t(),1);function a(e){let t=r();return(0,i.useMemo)(()=>{if(e)return t.find(t=>n(t).includes(e))},[t,e])}export{a as t};
|