@vellumai/web 0.10.8-staging.1 → 0.10.8-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/{AnimatePresence-C8APSgIu.js → AnimatePresence-s1Z1HHWx.js} +1 -1
- package/dist/assets/{BundleConfirmPage-M2tkzwiz.js → BundleConfirmPage-C6bP7QB3.js} +1 -1
- package/dist/assets/{about-page-C-kIVb7a.js → about-page-XGv9RAQu.js} +1 -1
- package/dist/assets/{account-page-DOSnPXjP.js → account-page-Dno1SeJN.js} +1 -1
- package/dist/assets/{account-shell-74OchOxg.js → account-shell-CdhP9l8T.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-DFoD_DVJ.js → acp-run-detail-panel-B1-zyOUe.js} +4 -4
- package/dist/assets/{activity-steps-panel-jztC4BRv.js → activity-steps-panel-BGyfMCXK.js} +1 -1
- package/dist/assets/{add-credits-modal-daNASKHJ.js → add-credits-modal-PP1PX8Qv.js} +1 -1
- package/dist/assets/{advanced-page-B8h5sAe5.js → advanced-page-vCbMVJsK.js} +1 -1
- package/dist/assets/{ai-page-BInYrZV7.js → ai-page-BIYybKux.js} +1 -1
- package/dist/assets/{animated-avatar-CrlodWQr.js → animated-avatar-Cqpzb8O4.js} +1 -1
- package/dist/assets/{api-key-screen-Cynx0r0g.js → api-key-screen-DTSP_-Da.js} +1 -1
- package/dist/assets/{archive-page-DqXRVFoF.js → archive-page-RZ2VP63A.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-CKUjJHuh.js → assistant-feature-flag-store-DA8Oj9Mf.js} +1 -1
- package/dist/assets/{assistant-status-panel-eNWJodpn.js → assistant-status-panel-BC0RTDls.js} +1 -1
- package/dist/assets/{auth-store-CD7PGb3q.js → auth-store-C09YAZEu.js} +2 -2
- package/dist/assets/{background-task-detail-panel-Bsi8IoaY.js → background-task-detail-panel-BfnsD-3B.js} +1 -1
- package/dist/assets/{billing-page-dpKYjJH3.js → billing-page-1z_L2m6q.js} +3 -3
- package/dist/assets/{bookmarks-page-BI92Y3eM.js → bookmarks-page-CjcavZv8.js} +1 -1
- package/dist/assets/{browser-BPZAXjRE.js → browser-C6a_nhhZ.js} +2 -2
- package/dist/assets/{build-state-DGsKGdpj.js → build-state-PUXrUU4W.js} +1 -1
- package/dist/assets/channels-page-route-WjNmd0sS.js +9 -0
- package/dist/assets/chat-markdown-message-BnX6bhgs.js +2 -0
- package/dist/assets/{client-feature-flag-store-C0g8zi1W.js → client-feature-flag-store-DkJl-g9A.js} +1 -1
- package/dist/assets/{command-palette-Dk6UsSlv.js → command-palette-6o4m7BM9.js} +1 -1
- package/dist/assets/{command-palette-window-page-zDow8o4K.js → command-palette-window-page-BsJlr5bh.js} +1 -1
- package/dist/assets/community-page-CJA4JfuC.js +1 -0
- package/dist/assets/{connect-page-BXTqYbdY.js → connect-page-DZgU3jCf.js} +1 -1
- package/dist/assets/{consent-controls-BZMxm0n3.js → consent-controls-Cnr1DzCr.js} +1 -1
- package/dist/assets/contacts-page-route-P0neH-PV.js +1 -0
- package/dist/assets/{credentials-page-0S5ifTFC.js → credentials-page-MkKE_19-.js} +1 -1
- package/dist/assets/debug-page-B88f4aDU.js +4 -0
- package/dist/assets/{deploy-dialogs-BBHNKgDi.js → deploy-dialogs-paL_zcvG.js} +1 -1
- package/dist/assets/{detail-card-RGTjHkZ8.js → detail-card-xKZlkbz5.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-oIDUq-kJ.js → detail-panel-stop-button-y7O3HqJj.js} +1 -1
- package/dist/assets/{developer-page-Djolz4Fg.js → developer-page-BFMS6pwU.js} +1 -1
- package/dist/assets/{devices-page-XJJSA97y.js → devices-page-B3D5iLhD.js} +1 -1
- package/dist/assets/{dictation-overlay-page-cqsEjyx_.js → dictation-overlay-page-BkEBWrWm.js} +1 -1
- package/dist/assets/{document-viewer-page-jInmb33M.js → document-viewer-page-B631L6-3.js} +1 -1
- package/dist/assets/{earn-credits-modal-C_jhLLw5.js → earn-credits-modal-CFla-iKl.js} +1 -1
- package/dist/assets/edge-swipe-arbiter-store-BeOhrE7M.js +1 -0
- package/dist/assets/{emails-page-fov7ihfj.js → emails-page-7c9kVi_k.js} +1 -1
- package/dist/assets/{esm-Ddmch1KU.js → esm-Bzs_witt.js} +2 -2
- package/dist/assets/{esm-CYMQv-VS.js → esm-C5J59K0j.js} +2 -2
- package/dist/assets/{esm-CTXnt94k.js → esm-CT8NUp3h.js} +2 -2
- package/dist/assets/esm-DEu9JbAE.js +2 -0
- package/dist/assets/{esm-BciT3LGF.js → esm-DZkj1VLJ.js} +2 -2
- package/dist/assets/{esm-CvWQdH3L.js → esm-DtJz1M8R.js} +2 -2
- package/dist/assets/{feature-flag-catalog-CHuc71P8.js → feature-flag-catalog-GgSNKkqP.js} +1 -1
- package/dist/assets/{file-markdown-BXUvAQ24.js → file-markdown-Bq97tNxs.js} +1 -1
- package/dist/assets/{general-page-gojItIOd.js → general-page-D-Gr2lkW.js} +1 -1
- package/dist/assets/{haptics-DKVhthJo.js → haptics-lMERs7us.js} +2 -2
- package/dist/assets/hatching-screen-BlwicgIz.js +1 -0
- package/dist/assets/home-page-route-D24x4A0S.js +1 -0
- package/dist/assets/{hosting-screen-BTLHWS2M.js → hosting-screen-BZLZular.js} +1 -1
- package/dist/assets/identity-page-route-BwOJeenx.js +1 -0
- package/dist/assets/{index-BjtwYdrT.css → index-C9GrLGul.css} +1 -1
- package/dist/assets/{index-CSefSVJO.js → index-yu6nDHvG.js} +21 -21
- package/dist/assets/{inspect-page-CT8NspqC.js → inspect-page-1RejwSP_.js} +4 -4
- package/dist/assets/{integrations-page-DtClqS91.js → integrations-page-BV5BiHPD.js} +1 -1
- package/dist/assets/{intelligence-layout-D9ReVcK0.js → intelligence-layout-iQFO8in_.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-page-CovdLPhh.js → keyboard-shortcuts-page-jt13JtxS.js} +1 -1
- package/dist/assets/{library-detail-page-MAsxHH08.js → library-detail-page-BAGWt1Lw.js} +1 -1
- package/dist/assets/{library-page-CYuSc92M.js → library-page-CqeoBhDY.js} +1 -1
- package/dist/assets/{login-flow-CHNlba5i.js → login-flow-B6q00uIW.js} +1 -1
- package/dist/assets/{login-page-CK1TxruP.js → login-page-BQVTWuQc.js} +1 -1
- package/dist/assets/{logout-page-W3gl_1Ax.js → logout-page-BV0URcAd.js} +1 -1
- package/dist/assets/{logs-layout-CR7u05YO.js → logs-layout-DO3yfZqD.js} +1 -1
- package/dist/assets/{memory-router-playground-page-eDjKwsbG.js → memory-router-playground-page-CQxX6mCn.js} +1 -1
- package/dist/assets/{metric-card-BN23geOu.js → metric-card-DvXjHVCV.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-3LqMCZgK.js → mobile-sidebar-drawer-Epbt6p-k.js} +1 -1
- package/dist/assets/{native-file-Cn3RbQbT.js → native-file-DI99Emal.js} +2 -2
- package/dist/assets/{notifications-page-CtyUuC15.js → notifications-page-CXaZpD3s.js} +1 -1
- package/dist/assets/{oauth-complete-page-3DcY6Or3.js → oauth-complete-page-BlJm9tRJ.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Cn-1bOwa.js → oauth-popup-complete-page-BqUopTat.js} +1 -1
- package/dist/assets/{page-shell-C2TBO8M8.js → page-shell-BUGBKCmv.js} +1 -1
- package/dist/assets/{pairing-page-Bb-_q_zP.js → pairing-page-B5GrCx4C.js} +1 -1
- package/dist/assets/{platform-loopback-page-Dfl_gjZm.js → platform-loopback-page-MZdCPXRI.js} +1 -1
- package/dist/assets/{plugin-detail-page-C_vv0F7O.js → plugin-detail-page-Byuqbr1N.js} +1 -1
- package/dist/assets/plugins-page-Ci0CoSAN.js +1 -0
- package/dist/assets/{prechat-route-CgCradwf.js → prechat-route-9JFn-w_1.js} +1 -1
- package/dist/assets/{prefs-DYaOj-dg.js → prefs-B1Y3q3c8.js} +1 -1
- package/dist/assets/{privacy-page-BqYdFos7.js → privacy-page-BTpvj9ZP.js} +1 -1
- package/dist/assets/{privacy-screen-DBMkRqiF.js → privacy-screen-CUbVcDf_.js} +1 -1
- package/dist/assets/{provider-callback-page-B-aDgII8.js → provider-callback-page-fB2tIyqL.js} +1 -1
- package/dist/assets/{provider-signup-page-CYK4VNf0.js → provider-signup-page-C4Dn-wtJ.js} +1 -1
- package/dist/assets/{quick-input-page-oif3WEFT.js → quick-input-page-Cv_CzapK.js} +1 -1
- package/dist/assets/{research-mock-page-CooZPqtv.js → research-mock-page-1T92rXz3.js} +1 -1
- package/dist/assets/{research-onboarding-route-BJqAsTdE.js → research-onboarding-route-CmWgwOFk.js} +3 -3
- package/dist/assets/{review-terms-screen-CVRYEl6e.js → review-terms-screen-DrD4vywk.js} +1 -1
- package/dist/assets/{risk-Dsj4oM8c.js → risk-Dopd25rc.js} +1 -1
- package/dist/assets/{security-page-DN5BI6Ag.js → security-page-BYI7twYM.js} +1 -1
- package/dist/assets/select-assistant-screen-Br-PNDO1.js +1 -0
- package/dist/assets/{settings-layout-BNwCqvBi.js → settings-layout-lddMUg7A.js} +1 -1
- package/dist/assets/share-feedback-modal-DSwfhMsV.js +1 -0
- package/dist/assets/{sidebar-tree-Bh-tcSsp.js → sidebar-tree-C1_LiBB9.js} +1 -1
- package/dist/assets/{signup-page-D6cMhBxv.js → signup-page-D6hAK-Us.js} +1 -1
- package/dist/assets/{signup-shell-D4Afeijm.js → signup-shell-DufHA5do.js} +1 -1
- package/dist/assets/{site-favicon-DSzk4cg0.js → site-favicon-fQHLTT6F.js} +1 -1
- package/dist/assets/{skill-detail-page-Jisds_Gs.js → skill-detail-page-BlfgTyFC.js} +1 -1
- package/dist/assets/{skill-detail-panel-BEJqfJig.js → skill-detail-panel-BGoRUWNU.js} +1 -1
- package/dist/assets/{skills-CSlvOB79.js → skills-AtSQBwXr.js} +1 -1
- package/dist/assets/{skills-page-Cs1EG4X5.js → skills-page-DeIiyhVc.js} +1 -1
- package/dist/assets/{sounds-page-ChFJ0OPm.js → sounds-page-BgLLJ-o9.js} +1 -1
- package/dist/assets/{src-B2IjVySQ.js → src-zsLiFPw3.js} +1 -1
- package/dist/assets/{subagent-detail-panel-ACj_B6Id.js → subagent-detail-panel-BGuVa8-m.js} +1 -1
- package/dist/assets/{system-events-page-JhzC5xhW.js → system-events-page-C1hXOYmg.js} +1 -1
- package/dist/assets/{tiptap-document-editor-DSny-IjF.js → tiptap-document-editor-C-eOEBR_.js} +1 -1
- package/dist/assets/tool-detail-panel-wAuQ7gi8.js +2 -0
- package/dist/assets/{upgrade-cancel-page-D_YziHQs.js → upgrade-cancel-page-BGgPmDmT.js} +1 -1
- package/dist/assets/{upgrade-success-page-Cg7IIDei.js → upgrade-success-page-TJBopZ0Z.js} +1 -1
- package/dist/assets/{usage-page-DB3LFuYw.js → usage-page-DLWFk2P0.js} +1 -1
- package/dist/assets/use-edge-swipe-back-B4XlZ1Iu.js +1 -0
- package/dist/assets/use-invite-link-dialog-BdnW1BHj.js +1 -0
- package/dist/assets/use-is-org-ready-jhEM-4rY.js +1 -0
- package/dist/assets/{use-onboarding-login-Bo_t51AV.js → use-onboarding-login-B-1jrjFL.js} +1 -1
- package/dist/assets/{use-reduced-motion-CcGT6CHV.js → use-reduced-motion-Cj0Z8KSf.js} +1 -1
- package/dist/assets/{use-skill-actions-e6TfdF23.js → use-skill-actions-BpVxiQZY.js} +1 -1
- package/dist/assets/{use-skill-categories-i_9x26zg.js → use-skill-categories-CCxtjMC_.js} +1 -1
- package/dist/assets/{use-skill-detail-files-Cu4nrHPA.js → use-skill-detail-files-Dpp521cY.js} +1 -1
- package/dist/assets/{voice-page-wTcwV9j9.js → voice-page-BoCTB8Jx.js} +1 -1
- package/dist/assets/{weather-forecast-display-C_3DSHxa.js → weather-forecast-display-Bix8rpji.js} +1 -1
- package/dist/assets/{web-DlbBHOna.js → web-C1L-cpPj.js} +1 -1
- package/dist/assets/{web-BpBQ3Cf2.js → web-RhBklijR.js} +1 -1
- package/dist/assets/{welcome-screen-BF3r_rfT.js → welcome-screen-CVI4Hjnt.js} +1 -1
- package/dist/assets/{workflow-detail-panel-DzvDXyoD.js → workflow-detail-panel-CwZH3tDl.js} +1 -1
- package/dist/assets/workspace-page-CwIsXk1j.js +1 -0
- package/dist/index.html +28 -27
- package/package.json +1 -1
- package/dist/assets/channels-page-route-6cT6U3pZ.js +0 -9
- package/dist/assets/chat-markdown-message-CItp7csw.js +0 -2
- package/dist/assets/community-page-BVJxxP10.js +0 -1
- package/dist/assets/contacts-page-route-WXG6_xo2.js +0 -1
- package/dist/assets/debug-page-C-HWHD-3.js +0 -4
- package/dist/assets/esm-DsIXwGm7.js +0 -2
- package/dist/assets/hatching-screen-C0MNyetb.js +0 -1
- package/dist/assets/home-page-route-X4KYSdMI.js +0 -1
- package/dist/assets/identity-page-route-D5xzlpim.js +0 -1
- package/dist/assets/plugins-page-Cv0FXn1j.js +0 -1
- package/dist/assets/select-assistant-screen-B63mlflD.js +0 -1
- package/dist/assets/share-feedback-modal-BloP-1QE.js +0 -1
- package/dist/assets/tool-detail-panel-z5iYNIYq.js +0 -2
- package/dist/assets/use-edge-swipe-back-AcKDuMrX.js +0 -1
- package/dist/assets/use-invite-link-dialog-CExxDwnZ.js +0 -1
- package/dist/assets/use-is-org-ready-BtwH2--_.js +0 -1
- package/dist/assets/workspace-page-DCcsRyQz.js +0 -1
- /package/dist/assets/{a2a-invite-BriFFHnO.js → a2a-invite-B9cylfIO.js} +0 -0
- /package/dist/assets/{app-info-LSjlWG3w.js → app-info-Clwt3pCt.js} +0 -0
- /package/dist/assets/{build.umd-wlq6sZjw.js → build.umd-CxdKgGWo.js} +0 -0
- /package/dist/assets/{contacts-gateway-CNqVHBQ3.js → contacts-gateway-CW5CipBv.js} +0 -0
- /package/dist/assets/{credential-entry-page-jJzKVnQk.js → credential-entry-page-9H2HOu88.js} +0 -0
- /package/dist/assets/{danger-zone-redirect-page-DL5S8CAN.js → danger-zone-redirect-page-BWg7rn8D.js} +0 -0
- /package/dist/assets/{definitions-alqf_FBK.js → definitions-CaYcW4Yq.js} +0 -0
- /package/dist/assets/{definitions-B1DK4OsQ.js → definitions-DScTW2c-.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-D_xqkMQV.js → emoji-catalog-data-D8lRMt3A.js} +0 -0
- /package/dist/assets/{environment-store-fb1I8_0E.js → environment-store-C0f32873.js} +0 -0
- /package/dist/assets/{esm-DwTCNETa.js → esm-B54gzHCZ.js} +0 -0
- /package/dist/assets/{file-editor-BbrbkQCm.js → file-editor-sT7eHxsw.js} +0 -0
- /package/dist/assets/{format-date-BczUbfC1.js → format-date-CghpPTDc.js} +0 -0
- /package/dist/assets/{format-file-size-D7iZejgy.js → format-file-size-DzVEncaw.js} +0 -0
- /package/dist/assets/{llm-dimension-Bu_nHMF_.js → llm-dimension-DyYwG3mU.js} +0 -0
- /package/dist/assets/{mutation-error-CrhKyTkx.js → mutation-error-DYv0eJ_i.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-zvLUIT7j.js → onboarding-step-layout-2XcmxqFN.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-DTggtDfs.js → optimistic-lifecycle-BvfDBY8o.js} +0 -0
- /package/dist/assets/{password-reset-page-DVIt7mWy.js → password-reset-page-BCk9Si73.js} +0 -0
- /package/dist/assets/{pdf-CuY9CA7Q.js → pdf-C3Qukw-J.js} +0 -0
- /package/dist/assets/{plugins-surface-C7NU-_rg.js → plugins-surface-z3RTZS4H.js} +0 -0
- /package/dist/assets/{prechat-names-b5RkG_F-.js → prechat-names-clVy5Mee.js} +0 -0
- /package/dist/assets/{provider-key-DBiHV_K5.js → provider-key-3AHnKoz9.js} +0 -0
- /package/dist/assets/{proxy-BzlH_XAe.js → proxy-o6cPThl2.js} +0 -0
- /package/dist/assets/{public-asset-Di3QykUd.js → public-asset-GKv5zCfZ.js} +0 -0
- /package/dist/assets/{schedules-Dj3YQqG5.js → schedules-BfKi12EZ.js} +0 -0
- /package/dist/assets/{setting-row-QKgqbQ4U.js → setting-row-CUka7_L9.js} +0 -0
- /package/dist/assets/{skill-icon-CEEEqpSq.js → skill-icon-cNkD2w1X.js} +0 -0
- /package/dist/assets/{status-badge-pill-BopXdkRS.js → status-badge-pill-0N6rTEBg.js} +0 -0
- /package/dist/assets/{step-indicator-dots-Cou0-IgA.js → step-indicator-dots-D03TmFKG.js} +0 -0
- /package/dist/assets/{system-events-redirect-page-D5EfWOEK.js → system-events-redirect-page-DbaFKRXH.js} +0 -0
- /package/dist/assets/{three-dot-indicator-BVtP8eei.js → three-dot-indicator-DNuHHwtA.js} +0 -0
- /package/dist/assets/{usage-window-Btqj3Jpn.js → usage-window-C6gWu5Qu.js} +0 -0
- /package/dist/assets/{use-active-assistant-id-BNRMo_Mi.js → use-active-assistant-id-BWXi63qg.js} +0 -0
- /package/dist/assets/{use-copy-to-clipboard-tXJpCn2M.js → use-copy-to-clipboard-BCTXSMa-.js} +0 -0
- /package/dist/assets/{web-CsaTwTXy.js → web-BD2N6zhd.js} +0 -0
- /package/dist/assets/{web-Xex3K4gk.js → web-BaubW4Pp.js} +0 -0
- /package/dist/assets/{web-U-rR-rZR.js → web-CJiP8Lg6.js} +0 -0
- /package/dist/assets/{web-D5_lKOWn.js → web-D8PpvYf_.js} +0 -0
- /package/dist/assets/{web-B9ZvD-Tt.js → web-Duw5A2aP.js} +0 -0
- /package/dist/assets/{web-Bi2V5gD3.js → web-O1LOb-o9.js} +0 -0
- /package/dist/assets/{xterm-D9pOJCAq.js → xterm-CBmd_y-b.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-BTV6oL76.js → xterm-addon-fit-THPW0uy0.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-amTXFI-2.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-D5f7kt80.js";import{t as o}from"./loader-circle-Cz7opInR.js";import"./src-
|
|
1
|
+
import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-amTXFI-2.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-D5f7kt80.js";import{t as o}from"./loader-circle-Cz7opInR.js";import"./src-zsLiFPw3.js";import{t as s}from"./input-CoUmPnRU.js";import{t as c}from"./modal-D5nLWNN9.js";import{n as l}from"./toast-xTp-xwYL.js";import{t as u}from"./confirm-dialog-CSkhRFRk.js";import{tn as d}from"./sdk.gen-BwnFjFcp.js";import{Ut as f}from"./index-yu6nDHvG.js";var p=e(n(),1),m=i();function h({open:e,onOpenChange:t,assistantId:n,onTokenSaved:i}){let[u,f]=(0,p.useState)(``),[h,g]=(0,p.useState)(!1),[_,v]=(0,p.useState)(null),y=(0,p.useCallback)(async()=>{if(u.trim()){g(!0),v(null);try{await d({path:{assistant_id:n},body:{action:`set`,apiToken:u.trim()},throwOnError:!0}),f(``),i()}catch(e){let t=e instanceof Error?e.message:`Failed to save Vercel token.`;v(t),l.error(t)}finally{g(!1)}}},[n,u,i]);return(0,m.jsx)(c.Root,{open:e,onOpenChange:t,children:(0,m.jsxs)(c.Content,{size:`sm`,children:[(0,m.jsx)(c.Header,{children:(0,m.jsx)(c.Title,{children:`Connect Vercel`})}),(0,m.jsx)(c.Body,{children:(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(a,{as:`p`,variant:`body-medium-lighter`,className:`text-(--content-secondary)`,children:`Enter your Vercel API token to deploy apps as static pages.`}),(0,m.jsx)(`a`,{href:`https://vercel.com/account/tokens`,target:`_blank`,rel:`noopener noreferrer`,className:`text-body-medium-default text-(--primary-base) hover:underline`,children:`Create a token on Vercel →`}),(0,m.jsx)(s,{type:`password`,placeholder:`Vercel API token`,value:u,onChange:e=>f(e.target.value),label:`API Token`,fullWidth:!0,errorText:_,disabled:h})]})}),(0,m.jsxs)(c.Footer,{children:[(0,m.jsx)(c.Close,{asChild:!0,children:(0,m.jsx)(r,{variant:`outlined`,disabled:h,children:`Cancel`})}),(0,m.jsx)(r,{variant:`primary`,onClick:y,disabled:h||!u.trim(),leftIcon:h?(0,m.jsx)(o,{className:`animate-spin`}):void 0,children:h?`Saving…`:`Save`})]})]})})}var g=t({DeployDialogs:()=>_});function _({assistantId:e,assistantName:t,onStartConversation:n}){let r=f.use.isTokenDialogOpen(),i=f.use.complexDeployApp();return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(h,{open:r,onOpenChange:e=>{e||f.getState().hideTokenDialog()},assistantId:e,onTokenSaved:()=>{f.getState().deployAfterTokenSaved(e)}}),(0,m.jsx)(u,{open:i!==null,title:`This app needs a full deploy`,message:`"${i?.name??``}" uses backend services that won't work on a static Vercel page. ${t??`Your assistant`} can deploy it properly with serverless functions.`,confirmLabel:`Let ${t??`your assistant`} handle it`,onConfirm:()=>{let e=f.getState().complexDeployApp?.name??`this app`;f.getState().setComplexDeployApp(null),n?.(`Deploy my app "${e}" to Vercel. It uses backend services that need serverless functions — please use the deploy-fullstack-vercel skill to handle it properly.`)},onCancel:()=>f.getState().setComplexDeployApp(null)})]})}export{g as n,_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-CVSDxk6A.js";import{t}from"./cn-C36Yvcac.js";import{t as n}from"./card-Bv5O5juh.js";import"./src-
|
|
1
|
+
import{t as e}from"./jsx-runtime-CVSDxk6A.js";import{t}from"./cn-C36Yvcac.js";import{t as n}from"./card-Bv5O5juh.js";import"./src-zsLiFPw3.js";var r=e();function i({id:e,title:i,subtitle:a,accessory:o,compactAccessory:s=!1,children:c,showBorder:l=!0,variant:u=`default`,className:d}){let f=!!(i||a||o),p=(0,r.jsxs)(r.Fragment,{children:[f&&(0,r.jsxs)(`div`,{className:s?`flex flex-row items-start justify-between gap-4`:`flex flex-col items-start gap-3 md:flex-row md:items-start md:justify-between md:gap-4`,children:[(0,r.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[i&&(0,r.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:i}),a&&(0,r.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:a})]}),o&&(0,r.jsx)(`div`,{className:`shrink-0`,children:o})]}),c!=null&&(0,r.jsx)(`div`,{className:f?`mt-4`:``,children:c})]});return l?(0,r.jsx)(n,{asChild:!0,className:t(u===`danger`&&`border-[var(--system-negative-weak)] bg-[var(--surface-lift)]`,d),children:(0,r.jsx)(`section`,{id:e,children:p})}):(0,r.jsx)(`section`,{id:e,className:t(`space-y-4`,d),children:p})}export{i as t};
|
package/dist/assets/{detail-panel-stop-button-oIDUq-kJ.js → detail-panel-stop-button-y7O3HqJj.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-CVSDxk6A.js";import{t}from"./typography-D5f7kt80.js";import"./src-
|
|
1
|
+
import{t as e}from"./jsx-runtime-CVSDxk6A.js";import{t}from"./typography-D5f7kt80.js";import"./src-zsLiFPw3.js";import{Si as n}from"./index-yu6nDHvG.js";var r=e();function i({onStop:e,ariaLabel:i,disabled:a}){return(0,r.jsxs)(`button`,{type:`button`,"aria-label":i,onClick:e,disabled:a,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)] disabled:cursor-not-allowed disabled:opacity-50`,children:[(0,r.jsx)(n,{className:`h-3 w-3`,fill:`currentColor`}),(0,r.jsx)(t,{variant:`label-small-default`,children:`Stop`})]})}export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r}from"./capture-error-Dhiismgm.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-amTXFI-2.js";import{d as o,h as s,r as c}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as l}from"./QueryClientProvider-DKhXIxGb.js";import{t as u}from"./useQuery-B45lW1Kk.js";import{t as d}from"./jsx-runtime-CVSDxk6A.js";import{t as f}from"./cn-C36Yvcac.js";import{t as p}from"./createLucideIcon-IRfcSUxS.js";import{t as m}from"./bug-BsuQ5ciQ.js";import{t as h}from"./info-DsOyuMO9.js";import{t as g}from"./loader-circle-Cz7opInR.js";import{t as _}from"./triangle-alert-Z0Gq0IuB.js";import"./src-B2IjVySQ.js";import{t as v}from"./tag-CV4v7fRF.js";import{t as y}from"./toggle-CDfguvUz.js";import{n as b}from"./toast-xTp-xwYL.js";import{t as x}from"./confirm-dialog-CSkhRFRk.js";import{t as S}from"./dropdown-ByHOpeOU.js";import{p as C,w}from"./local-mode-grqHUoNh.js";import{D as T}from"./auth-store-CD7PGb3q.js";import{t as ee}from"./client.gen-DVfIRXUZ.js";import{c as te,o as E}from"./api-_7pKLlYA.js";import{c as D}from"./routes-BbeIx_F9.js";import{t as O}from"./use-is-org-ready-BtwH2--_.js";import{a as k,l as A,o as ne}from"./feature-flag-catalog-CHuc71P8.js";import{t as j}from"./client-feature-flag-store-C0g8zi1W.js";import{k as M,v as N}from"./react-query.gen-DPzPS206.js";import{t as P}from"./assistant-feature-flag-store-CKUjJHuh.js";import{t as re}from"./misc-BYQPh7vS.js";import{Ca as F,ji as I}from"./index-CSefSVJO.js";import{t as L}from"./use-active-assistant-id-BNRMo_Mi.js";import{t as R}from"./detail-card-RGTjHkZ8.js";import{t as z}from"./environment-store-fb1I8_0E.js";var B=p(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),V=p(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),H=e(i(),1),U=d();function W(){let e=l(),[t,n]=(0,H.useState)(!1),[r,i]=(0,H.useState)(!1),o=O(),s=L(),{data:c,isLoading:d}=u({...M({path:{id:s}}),enabled:o}),{data:f,isLoading:p}=u({...N({query:{hosting:`all`}}),enabled:o}),m=d||p,h=f?.results??[];return(0,U.jsxs)(`div`,{className:`space-y-6`,children:[(0,U.jsx)(G,{assistant:c??null,loading:m}),(0,U.jsx)(K,{assistants:h,activeAssistantId:s,loading:m}),(0,U.jsxs)(R,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,U.jsx)(a,{variant:`outlined`,leftIcon:t?(0,U.jsx)(g,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,U.jsx)(x,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await E(void 0,`create`);if(t.ok){if(C())try{let e=await te();e.ok&&await w(e.data,T.getState().currentOrganizationId??void 0)}catch{}b.success(t.status===201?`New assistant hatched successfully.`:`Returned your existing assistant — no new one was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:N({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;b.error(e)}}catch{b.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function G({assistant:e,loading:t}){return t?(0,U.jsx)(R,{title:`Assistant Info`,children:(0,U.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,U.jsx)(g,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,U.jsx)(R,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,U.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,U.jsx)(q,{children:`Name`}),(0,U.jsx)(J,{children:e.name??`Unnamed`}),(0,U.jsx)(q,{children:`Status`}),(0,U.jsx)(`div`,{children:(0,U.jsx)(v,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,U.jsx)(q,{children:`Assistant ID`}),(0,U.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{children:`Machine ID`}),(0,U.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,U.jsx)(q,{children:`Created`}),(0,U.jsx)(J,{children:new Date(e.created).toLocaleDateString()}),(0,U.jsx)(q,{children:`Last Modified`}),(0,U.jsx)(J,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{children:`Version`}),(0,U.jsx)(J,{children:e.current_release_version})]})]})}):(0,U.jsx)(R,{title:`Assistant Info`,children:(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function K({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,U.jsx)(R,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,U.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,U.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,U.jsx)(v,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,U.jsx)(v,{tone:`warning`,children:`Current`})]}),(0,U.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function q({children:e}){return(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function J({children:e}){return(0,U.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function Y(){let e=z.use.emailRootDomain(),t=z.use.isNonProduction(),n=z.use.setEnvironment();return(0,U.jsx)(R,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,U.jsx)(y,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,U.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,U.jsx)(v,{tone:`neutral`,children:e})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function ie(){let{data:e,response:t}=await ee.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var X={client:`warning`,assistant:`positive`};function ae(){let e=L(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:ie,enabled:O(),staleTime:300*1e3}),n=(0,H.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,H.useState)(``),a=j(),o=P(),s=(0,H.useMemo)(()=>{let e=[];for(let t of ne){let r=k(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,H.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,U.jsx)(R,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`relative`,children:[(0,U.jsx)(I,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,U.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,U.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,U.jsx)(ce,{flag:t,assistantId:e},t.storeKey))})]})})}function Z({scope:e}){return e===`both`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(v,{tone:X.client,children:`client`}),(0,U.jsx)(v,{tone:X.assistant,children:`assistant`})]}):(0,U.jsx)(v,{tone:X[e],children:e})}function oe({flag:e,assistantId:t}){let n=j.use.setFlag(),r=P.use.setFlag();return(0,U.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,U.jsx)(y,{checked:e.value,onChange:i=>{A(e.scope,`client`)&&n(e.storeKey,i),A(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,U.jsx)(Z,{scope:e.scope})]}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,U.jsx)(v,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function se({flag:e,assistantId:t}){let n=j.use.setStringFlag(),r=P.use.setStringFlag(),[i,a]=(0,H.useState)(e.value);(0,H.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(A(e.scope,`client`)&&n(e.storeKey,i),A(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},p=c!=null&&c.includes(e.value);return(0,U.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,U.jsx)(Z,{scope:e.scope})]}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),p?(0,U.jsx)(S,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,U.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,U.jsx)(v,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function ce({flag:e,assistantId:t}){return e.kind===`string`?(0,U.jsx)(se,{flag:e,assistantId:t}):(0,U.jsx)(oe,{flag:e,assistantId:t})}function le(){let e=(0,H.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),b.success(`Sentry error event sent.`)},[]),i=(0,H.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),b.success(`Sentry warning event sent.`)},[]),a=(0,H.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),b.success(`Sentry info event sent.`)},[]),o=(0,H.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),b.success(`Sentry fatal event sent.`)},[]),s=(0,H.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),b.success(`Sentry performance transaction sent.`)},[]);return(0,U.jsx)(R,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsx)(Q,{icon:(0,U.jsx)(B,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,U.jsx)(Q,{icon:(0,U.jsx)(F,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,U.jsx)(Q,{icon:(0,U.jsx)(_,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,U.jsx)(Q,{icon:(0,U.jsx)(h,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,U.jsx)(Q,{icon:(0,U.jsx)(V,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0`,children:e}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,U.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,U.jsxs)(a,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,U.jsx)(m,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`}];function ue(){let e=o(),[t,n]=s(),r=P.use.settingsDeveloperNav(),i=P.use.hasHydrated(),l=(0,H.useMemo)(()=>{let e=t.get(`tab`);return $.find(t=>t.id===e)?.id??`feature-flags`},[t]);if(i&&!r)return(0,U.jsx)(c,{replace:!0,to:D.settings.general});let u=e=>{let r=new URLSearchParams(t.toString());e===`feature-flags`?r.delete(`tab`):r.set(`tab`,e),n(r,{replace:!0})};return(0,U.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-4 border-b border-[var(--border-base)]`,children:[(0,U.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===l;return(0,U.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>u(e.id),className:re(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})}),C()&&(0,U.jsx)(a,{variant:`outlined`,className:`mb-1 shrink-0`,onClick:()=>void e(`${D.selectAssistant}?noAutoSkip=1`),children:`Choose Assistant`})]}),(0,U.jsxs)(`div`,{id:`developer-tab-panel-${l}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${l}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[l===`feature-flags`&&(0,U.jsxs)(`div`,{className:`space-y-6`,children:[(0,U.jsx)(ae,{}),(0,U.jsx)(Y,{})]}),l===`lifecycle`&&(0,U.jsx)(W,{}),l===`sentry`&&(0,U.jsx)(le,{})]})]})}export{ue as DeveloperPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r}from"./capture-error-Dhiismgm.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-amTXFI-2.js";import{d as o,h as s,r as c}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as l}from"./QueryClientProvider-DKhXIxGb.js";import{t as u}from"./useQuery-B45lW1Kk.js";import{t as d}from"./jsx-runtime-CVSDxk6A.js";import{t as f}from"./cn-C36Yvcac.js";import{t as p}from"./createLucideIcon-IRfcSUxS.js";import{t as m}from"./bug-BsuQ5ciQ.js";import{t as h}from"./info-DsOyuMO9.js";import{t as g}from"./loader-circle-Cz7opInR.js";import{t as _}from"./triangle-alert-Z0Gq0IuB.js";import"./src-zsLiFPw3.js";import{t as v}from"./tag-CV4v7fRF.js";import{t as y}from"./toggle-CDfguvUz.js";import{n as b}from"./toast-xTp-xwYL.js";import{t as x}from"./confirm-dialog-CSkhRFRk.js";import{t as S}from"./dropdown-ByHOpeOU.js";import{p as C,w}from"./local-mode-grqHUoNh.js";import{D as T}from"./auth-store-C09YAZEu.js";import{t as ee}from"./client.gen-DVfIRXUZ.js";import{c as te,o as E}from"./api-_7pKLlYA.js";import{c as D}from"./routes-BbeIx_F9.js";import{t as O}from"./use-is-org-ready-jhEM-4rY.js";import{a as k,l as A,o as ne}from"./feature-flag-catalog-GgSNKkqP.js";import{t as j}from"./client-feature-flag-store-DkJl-g9A.js";import{k as M,v as N}from"./react-query.gen-DPzPS206.js";import{t as P}from"./assistant-feature-flag-store-DA8Oj9Mf.js";import{t as re}from"./misc-BYQPh7vS.js";import{Ai as F,Sa as I}from"./index-yu6nDHvG.js";import{t as L}from"./use-active-assistant-id-BWXi63qg.js";import{t as R}from"./detail-card-xKZlkbz5.js";import{t as z}from"./environment-store-C0f32873.js";var B=p(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),V=p(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),H=e(i(),1),U=d();function W(){let e=l(),[t,n]=(0,H.useState)(!1),[r,i]=(0,H.useState)(!1),o=O(),s=L(),{data:c,isLoading:d}=u({...M({path:{id:s}}),enabled:o}),{data:f,isLoading:p}=u({...N({query:{hosting:`all`}}),enabled:o}),m=d||p,h=f?.results??[];return(0,U.jsxs)(`div`,{className:`space-y-6`,children:[(0,U.jsx)(G,{assistant:c??null,loading:m}),(0,U.jsx)(K,{assistants:h,activeAssistantId:s,loading:m}),(0,U.jsxs)(R,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,U.jsx)(a,{variant:`outlined`,leftIcon:t?(0,U.jsx)(g,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,U.jsx)(x,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await E(void 0,`create`);if(t.ok){if(C())try{let e=await te();e.ok&&await w(e.data,T.getState().currentOrganizationId??void 0)}catch{}b.success(t.status===201?`New assistant hatched successfully.`:`Returned your existing assistant — no new one was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:N({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;b.error(e)}}catch{b.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function G({assistant:e,loading:t}){return t?(0,U.jsx)(R,{title:`Assistant Info`,children:(0,U.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,U.jsx)(g,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,U.jsx)(R,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,U.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,U.jsx)(q,{children:`Name`}),(0,U.jsx)(J,{children:e.name??`Unnamed`}),(0,U.jsx)(q,{children:`Status`}),(0,U.jsx)(`div`,{children:(0,U.jsx)(v,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,U.jsx)(q,{children:`Assistant ID`}),(0,U.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{children:`Machine ID`}),(0,U.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,U.jsx)(q,{children:`Created`}),(0,U.jsx)(J,{children:new Date(e.created).toLocaleDateString()}),(0,U.jsx)(q,{children:`Last Modified`}),(0,U.jsx)(J,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{children:`Version`}),(0,U.jsx)(J,{children:e.current_release_version})]})]})}):(0,U.jsx)(R,{title:`Assistant Info`,children:(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function K({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,U.jsx)(R,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,U.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,U.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,U.jsx)(v,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,U.jsx)(v,{tone:`warning`,children:`Current`})]}),(0,U.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function q({children:e}){return(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function J({children:e}){return(0,U.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function Y(){let e=z.use.emailRootDomain(),t=z.use.isNonProduction(),n=z.use.setEnvironment();return(0,U.jsx)(R,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,U.jsx)(y,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,U.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,U.jsx)(v,{tone:`neutral`,children:e})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function ie(){let{data:e,response:t}=await ee.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var X={client:`warning`,assistant:`positive`};function ae(){let e=L(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:ie,enabled:O(),staleTime:300*1e3}),n=(0,H.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,H.useState)(``),a=j(),o=P(),s=(0,H.useMemo)(()=>{let e=[];for(let t of ne){let r=k(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,H.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,U.jsx)(R,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`relative`,children:[(0,U.jsx)(F,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,U.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,U.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,U.jsx)(ce,{flag:t,assistantId:e},t.storeKey))})]})})}function Z({scope:e}){return e===`both`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(v,{tone:X.client,children:`client`}),(0,U.jsx)(v,{tone:X.assistant,children:`assistant`})]}):(0,U.jsx)(v,{tone:X[e],children:e})}function oe({flag:e,assistantId:t}){let n=j.use.setFlag(),r=P.use.setFlag();return(0,U.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,U.jsx)(y,{checked:e.value,onChange:i=>{A(e.scope,`client`)&&n(e.storeKey,i),A(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,U.jsx)(Z,{scope:e.scope})]}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,U.jsx)(v,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function se({flag:e,assistantId:t}){let n=j.use.setStringFlag(),r=P.use.setStringFlag(),[i,a]=(0,H.useState)(e.value);(0,H.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(A(e.scope,`client`)&&n(e.storeKey,i),A(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},p=c!=null&&c.includes(e.value);return(0,U.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,U.jsx)(Z,{scope:e.scope})]}),(0,U.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),p?(0,U.jsx)(S,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,U.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,U.jsx)(v,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function ce({flag:e,assistantId:t}){return e.kind===`string`?(0,U.jsx)(se,{flag:e,assistantId:t}):(0,U.jsx)(oe,{flag:e,assistantId:t})}function le(){let e=(0,H.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),b.success(`Sentry error event sent.`)},[]),i=(0,H.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),b.success(`Sentry warning event sent.`)},[]),a=(0,H.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),b.success(`Sentry info event sent.`)},[]),o=(0,H.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),b.success(`Sentry fatal event sent.`)},[]),s=(0,H.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),b.success(`Sentry performance transaction sent.`)},[]);return(0,U.jsx)(R,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsx)(Q,{icon:(0,U.jsx)(B,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,U.jsx)(Q,{icon:(0,U.jsx)(I,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,U.jsx)(Q,{icon:(0,U.jsx)(_,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,U.jsx)(Q,{icon:(0,U.jsx)(h,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,U.jsx)(Q,{icon:(0,U.jsx)(V,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,U.jsx)(`div`,{className:`shrink-0`,children:e}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,U.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,U.jsxs)(a,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,U.jsx)(m,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`}];function ue(){let e=o(),[t,n]=s(),r=P.use.settingsDeveloperNav(),i=P.use.hasHydrated(),l=(0,H.useMemo)(()=>{let e=t.get(`tab`);return $.find(t=>t.id===e)?.id??`feature-flags`},[t]);if(i&&!r)return(0,U.jsx)(c,{replace:!0,to:D.settings.general});let u=e=>{let r=new URLSearchParams(t.toString());e===`feature-flags`?r.delete(`tab`):r.set(`tab`,e),n(r,{replace:!0})};return(0,U.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-4 border-b border-[var(--border-base)]`,children:[(0,U.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===l;return(0,U.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>u(e.id),className:re(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})}),C()&&(0,U.jsx)(a,{variant:`outlined`,className:`mb-1 shrink-0`,onClick:()=>void e(`${D.selectAssistant}?noAutoSkip=1`),children:`Choose Assistant`})]}),(0,U.jsxs)(`div`,{id:`developer-tab-panel-${l}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${l}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[l===`feature-flags`&&(0,U.jsxs)(`div`,{className:`space-y-6`,children:[(0,U.jsx)(ae,{}),(0,U.jsx)(Y,{})]}),l===`lifecycle`&&(0,U.jsx)(W,{}),l===`sentry`&&(0,U.jsx)(le,{})]})]})}export{ue as DeveloperPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t}from"./useQuery-B45lW1Kk.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./loader-circle-Cz7opInR.js";import{t as i}from"./monitor-DfbL8_59.js";import{t as a}from"./notice-DkcNAP8O.js";import{c as o}from"./routes-BbeIx_F9.js";import{v as s}from"./react-query.gen-DPzPS206.js";import{D as c,Hr as l,
|
|
1
|
+
import{r as e}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t}from"./useQuery-B45lW1Kk.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./loader-circle-Cz7opInR.js";import{t as i}from"./monitor-DfbL8_59.js";import{t as a}from"./notice-DkcNAP8O.js";import{c as o}from"./routes-BbeIx_F9.js";import{v as s}from"./react-query.gen-DPzPS206.js";import{D as c,Hr as l,Ur as u,Vr as d,wi as f}from"./index-yu6nDHvG.js";import{t as p}from"./detail-card-xKZlkbz5.js";var m=n();function h(e){return new Intl.DateTimeFormat(`en`,{month:`short`,day:`numeric`,year:`numeric`}).format(new Date(e))}function g({assistant:e}){let t=e,n=t.platform===`ios`,r=n?f:i,a=e.name||(n?`iOS Device`:t.hostname||`Unknown Device`);return(0,m.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,m.jsx)(r,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:a}),(0,m.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[t.hostname&&(0,m.jsx)(`span`,{className:`mr-3`,children:t.hostname}),e.created&&(0,m.jsxs)(`span`,{children:[`Registered `,h(e.created)]})]})]})]})}function _(){let n=u({platformHostedOnly:!0}),i=d(),f=l(),{data:h,isLoading:_}=t({...s({query:{hosting:`local`}}),enabled:n===`full`&&i}),v=h?.results??[];return n===`gated`?(0,m.jsx)(e,{replace:!0,to:o.settings.general}):n===`disabled`?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(c,{children:`Log in to the Vellum platform to manage self-hosted assistants.`})}):f?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,m.jsx)(r,{className:`h-4 w-4 animate-spin`}),`Loading devices…`]})}):i?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(p,{title:`Self-Hosted Assistants`,subtitle:`Self-hosted assistants registered with your Vellum account. Registration lets these assistants use Vellum managed services — inference, web search, integrations — so that you don't have to bring your own API keys.`,children:_?(0,m.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,m.jsx)(r,{className:`h-4 w-4 animate-spin`}),`Loading devices...`]}):v.length===0?(0,m.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No self-hosted assistants registered.`}):(0,m.jsx)(`div`,{className:`space-y-2`,children:v.map(e=>(0,m.jsx)(g,{assistant:e},e.id))})})}):(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(a,{tone:`warning`,children:`Self-hosted assistant management isn't available for the current assistant state.`})})}export{_ as DevicesPage};
|
package/dist/assets/{dictation-overlay-page-cqsEjyx_.js → dictation-overlay-page-BkEBWrWm.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./check-DFNrQERi.js";import{t as i}from"./loader-circle-Cz7opInR.js";import{t as a}from"./triangle-alert-Z0Gq0IuB.js";import{
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./check-DFNrQERi.js";import{t as i}from"./loader-circle-Cz7opInR.js";import{t as a}from"./triangle-alert-Z0Gq0IuB.js";import{Ca as o,Jn as s,Xn as c,Yn as l,qn as u}from"./index-yu6nDHvG.js";var d=e(t(),1),f=n();function p(){let[e,t]=(0,d.useState)(null),n=(0,d.useRef)(null),r=(0,d.useRef)(!1);if((0,d.useEffect)(()=>{let e=c(t);return u().then(e=>{e&&t(t=>t??e)}),e},[]),(0,d.useEffect)(()=>()=>{l(!1)},[]),(0,d.useEffect)(()=>{e?.kind===`recording`||!r.current||(r.current=!1,l(!1))},[e?.kind]),!e)return null;let i=e.kind===`recording`?e.transcription.trim():``,a=e.kind===`recording`?e.audioLevel??0:0,o=e=>{r.current!==e&&(r.current=e,l(e))};return(0,f.jsx)(`div`,{className:`flex h-screen w-screen items-start justify-center bg-transparent p-4`,onMouseMove:t=>{if(e.kind!==`recording`){o(!1);return}let r=n.current;if(!r){o(!1);return}let i=r.getBoundingClientRect();o(t.clientX>=i.left&&t.clientX<=i.right&&t.clientY>=i.top&&t.clientY<=i.bottom)},onMouseLeave:()=>o(!1),children:(0,f.jsxs)(`div`,{className:`flex w-[min(28rem,calc(100vw-2rem))] flex-col gap-1 rounded-xl border border-[var(--border-default)] bg-[var(--surface-base)] px-4 py-2.5 shadow-lg`,children:[(0,f.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,f.jsx)(_,{state:e}),(0,f.jsx)(`span`,{className:`truncate text-[11px] font-medium text-[var(--content-secondary)]`,children:g(e)}),e.kind===`recording`&&(0,f.jsx)(m,{level:a,stopButtonRef:n,onInteractiveChange:o,onStop:()=>{s(),o(!1)}})]}),i&&(0,f.jsx)(`div`,{className:`flex max-h-7 flex-col justify-end overflow-hidden`,children:(0,f.jsx)(`p`,{className:`break-words text-[10px] leading-snug text-[var(--content-tertiary)]`,children:i})})]})})}function m({level:e,stopButtonRef:t,onInteractiveChange:n,onStop:r}){return(0,f.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:[(0,f.jsx)(h,{level:e}),(0,f.jsx)(`button`,{ref:t,type:`button`,className:`flex size-5 items-center justify-center rounded-full text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-overlay)] hover:text-[var(--system-negative-strong)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--system-negative-strong)]`,"aria-label":`Stop recording`,title:`Stop recording`,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onFocus:()=>n(!0),onBlur:()=>n(!1),onClick:r,children:(0,f.jsx)(o,{className:`size-4`,strokeWidth:2,"aria-hidden":!0})})]})}function h({level:e}){let t=Math.max(0,Math.min(1,e));return(0,f.jsx)(`div`,{className:`flex h-4 w-16 shrink-0 items-end gap-0.5`,"aria-hidden":!0,children:[.16,.32,.48,.64,.8,.96].map((e,n)=>(0,f.jsx)(`span`,{className:`w-1 rounded-full bg-[var(--system-negative-strong)] transition-[height,opacity] duration-75`,style:{height:`${6+n*1.5}px`,opacity:t>=e?1:.22}},e))})}function g(e){switch(e.kind){case`recording`:return`Recording…`;case`processing`:return`Processing…`;case`done`:return`Done`;case`error`:return e.message}}function _({state:e}){switch(e.kind){case`recording`:return(0,f.jsx)(`span`,{className:`size-2 shrink-0 rounded-full bg-[var(--system-negative-strong)]`,"aria-hidden":!0});case`processing`:return(0,f.jsx)(i,{className:`size-4 shrink-0 animate-spin text-[var(--content-secondary)]`,"aria-hidden":!0});case`done`:return(0,f.jsx)(r,{className:`size-4 shrink-0 text-[var(--system-positive-strong)]`,"aria-hidden":!0});case`error`:return(0,f.jsx)(a,{className:`size-4 shrink-0 text-[var(--system-negative-strong)]`,"aria-hidden":!0})}}export{p as DictationOverlayPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,p as r,u as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./typography-D5f7kt80.js";import{t as s}from"./loader-circle-Cz7opInR.js";import"./src-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,p as r,u as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./typography-D5f7kt80.js";import{t as s}from"./loader-circle-Cz7opInR.js";import"./src-zsLiFPw3.js";import{n as c}from"./resolved-assistants-store-BSZbT8Ju.js";import{bt as l,vt as u,yt as d}from"./sdk.gen-BwnFjFcp.js";import{c as f}from"./routes-BbeIx_F9.js";import{t as p}from"./use-bus-subscription-C3H3CmM_.js";import{r as m}from"./viewer-store-B8-Qnbx9.js";import{Ft as h,It as g,Tt as _,_r as v}from"./index-yu6nDHvG.js";import{t as y}from"./use-edge-swipe-back-B4XlZ1Iu.js";var b=e(t(),1);function x({surfaceId:e,enabled:t,onCommentsChanged:n}){let r=(0,b.useRef)(n);return(0,b.useLayoutEffect)(()=>{r.current=n},[n]),(0,b.useCallback)(n=>{if(!t)return;let i=n.message;switch(i.type){case`document_comment_created`:case`document_comment_resolved`:case`document_comment_reopened`:case`document_comment_deleted`:i.surfaceId===e&&r.current();break;default:break}},[e,t])}var S=a();function C(){let{surfaceId:e}=r(),t=n(),{pathname:a}=i(),C=v(),w=c.use.activeAssistantId(),T=(0,b.useRef)(null),[E,D]=(0,b.useState)(null),[O,k]=(0,b.useState)(!0),[A,j]=(0,b.useState)(null),M=(0,b.useRef)(null);(0,b.useEffect)(()=>{if(!e){j(`No document ID provided.`),k(!1);return}if(!w)return;let t=!1;return(async()=>{try{let{data:n}=await d({path:{assistant_id:w,id:e},throwOnError:!0});if(t)return;D(n)}catch{t||j(`Failed to load document.`)}finally{t||k(!1)}})(),()=>{t=!0}},[e,w]);let N=(0,b.useCallback)(()=>{M.current?.refreshComments()},[]);p(`sse.event`,x({surfaceId:e??``,enabled:!!e,onCommentsChanged:N}));let P=(0,b.useCallback)(()=>{t(-1)},[t]);y({containerRef:T,onBack:P,enabled:C,navKey:a});let F=(0,b.useCallback)(async()=>{if(!E||!w||!e)return;let n=E.conversationId||h(w,e)||(typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`);if(g(w,e,n),n!==E.conversationId)try{await u({path:{assistant_id:w,id:e},body:{conversationId:n},throwOnError:!0})}catch{}m.getState().openDocument(),m.getState().setLoadedDocument({surfaceId:E.surfaceId,conversationId:n,documentName:E.title,content:E.content});let r=`Please review and address my comments on "${E.title}".`;t(`${f.conversation(n)}?prompt=${encodeURIComponent(r)}`)},[E,w,e,t]),I=(0,b.useCallback)(async()=>{if(!E||!w)return;let{data:e,response:t}=await l({path:{assistant_id:w,id:E.surfaceId},throwOnError:!1,parseAs:`blob`});if(!t?.ok||!e)return;let n=URL.createObjectURL(e);Object.assign(document.createElement(`a`),{href:n,download:`${E.title||`document`}.pdf`}).click(),URL.revokeObjectURL(n)},[E,w]);return O?(0,S.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,S.jsx)(s,{size:24,className:`animate-spin`,style:{color:`var(--content-tertiary)`}})}):A||!E||!w?(0,S.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,S.jsx)(o,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:A??`Document not found.`})}):(0,S.jsx)(`div`,{ref:T,className:`flex min-h-0 flex-1 flex-col`,children:(0,S.jsx)(_,{surfaceId:E.surfaceId,assistantId:w,conversationId:E.conversationId,documentName:E.title,content:E.content,onClose:P,onExport:I,onSubmitFeedback:F,handleRef:M})})}export{C as DocumentViewerPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{t as r}from"./useQuery-B45lW1Kk.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./createLucideIcon-IRfcSUxS.js";import{t as o}from"./arrow-left-DI9551VI.js";import{t as s}from"./check-DFNrQERi.js";import{t as c}from"./copy-Cn1FKrEp.js";import{t as l}from"./credit-card-BuyWdO9t.js";import{t as u}from"./loader-circle-Cz7opInR.js";import{t as d}from"./notice-DkcNAP8O.js";import"./src-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{t as r}from"./useQuery-B45lW1Kk.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./createLucideIcon-IRfcSUxS.js";import{t as o}from"./arrow-left-DI9551VI.js";import{t as s}from"./check-DFNrQERi.js";import{t as c}from"./copy-Cn1FKrEp.js";import{t as l}from"./credit-card-BuyWdO9t.js";import{t as u}from"./loader-circle-Cz7opInR.js";import{t as d}from"./notice-DkcNAP8O.js";import"./src-zsLiFPw3.js";import{t as f}from"./input-CoUmPnRU.js";import{t as p}from"./modal-D5nLWNN9.js";import{yt as m}from"./react-query.gen-DPzPS206.js";import{hi as h,oa as g}from"./index-yu6nDHvG.js";var _=a(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),v=e(t(),1),y=i();function b(e){return e.replace(/\.00$/,``)}function x(e,t,n){let r=b(n),i=b(e),a=b(t);return i===a?`Share Vellum with friends — you'll each earn ${i} credits when they sign up, up to ${r} total.`:`Share Vellum with friends — you'll earn ${i} credits and they'll get ${a} when they sign up, up to ${r} total.`}function S({open:e,onClose:t}){return(0,y.jsx)(p.Root,{open:e,onOpenChange:e=>{e||t()},children:e?(0,y.jsx)(C,{}):null})}function C(){let[e,t]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),{data:S,isLoading:C,isError:D,refetch:O,isFetching:k}=r(m()),A=(0,v.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{t(!0),setTimeout(()=>t(!1),2e3)})},[]),j=S?.is_eligible_for_credits===!1,M=S?j?`Invite friends to Vellum. You'll start earning referral credits once you've purchased credits or upgraded to Pro.`:x(S.referrer_credit_amount,S.credit_amount,S.earning_cap):`Refer friends to earn free credits.`,N=S?b(S.earning_cap):``,P=i?`Referral Program Terms`:`Earn free credits`;return(0,y.jsxs)(p.Content,{size:`sm`,children:[(0,y.jsx)(p.Header,{children:(0,y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[i&&(0,y.jsx)(n,{variant:`ghost`,size:`compact`,iconOnly:(0,y.jsx)(o,{}),onClick:()=>a(!1),"aria-label":`Back`,className:`mt-0.5`,tintColor:`var(--content-secondary)`}),(0,y.jsxs)(`div`,{className:`min-w-0`,children:[(0,y.jsx)(p.Title,{children:P}),!i&&(0,y.jsx)(p.Description,{children:M})]})]})}),(0,y.jsx)(p.Body,{children:i&&S?(0,y.jsx)(E,{cap:N}):C?(0,y.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,y.jsx)(u,{className:`h-4 w-4 animate-spin`}),`Loading referral information…`]}):D||!S?(0,y.jsxs)(`div`,{className:`space-y-3`,children:[(0,y.jsx)(`p`,{className:`!m-0 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Failed to load referral information.`}),(0,y.jsx)(n,{variant:`outlined`,onClick:()=>void O(),disabled:k,children:k?`Retrying…`:`Try Again`})]}):(0,y.jsxs)(`div`,{className:`space-y-4`,children:[(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(w,{icon:(0,y.jsx)(_,{className:`h-4 w-4`}),label:`Share your invite link`}),(0,y.jsx)(w,{icon:(0,y.jsx)(h,{className:`h-4 w-4`}),label:`They sign up`}),(0,y.jsx)(w,{icon:(0,y.jsx)(g,{className:`h-4 w-4`}),label:j?`You earn credits — once you've purchased credits or upgraded to Pro`:`You earn credits`})]}),(0,y.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),j&&(0,y.jsx)(d,{tone:`info`,children:`You're not currently earning referral credits. Buy credits or upgrade to Pro to start earning — your invite link still works in the meantime.`}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(f,{type:`text`,readOnly:!0,value:S.referral_url,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,y.jsx)(n,{variant:`outlined`,iconOnly:e?(0,y.jsx)(s,{}):(0,y.jsx)(c,{}),onClick:()=>A(S.referral_url),"aria-label":`Copy referral link`,className:`h-9 w-9`})]}),(0,y.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),(0,y.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,y.jsx)(T,{icon:(0,y.jsx)(h,{className:`h-3.5 w-3.5`}),value:String(S.referred_count),label:`Friends Referred`}),(0,y.jsx)(T,{icon:(0,y.jsx)(l,{className:`h-3.5 w-3.5`}),value:b(S.total_earned),label:`Credits Earned`})]}),(0,y.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),(0,y.jsx)(n,{variant:`ghost`,size:`compact`,onClick:()=>a(!0),fullWidth:!0,className:`text-body-small-default`,tintColor:`var(--content-tertiary)`,children:`View Terms and Conditions`})]})})]})}function w({icon:e,label:t}){return(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(`div`,{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md`,style:{background:`var(--surface-base)`,color:`var(--content-secondary)`},children:e}),(0,y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t})]})}function T({icon:e,value:t,label:n}){return(0,y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-body-medium-lighter`,children:[(0,y.jsx)(`span`,{style:{color:`var(--content-tertiary)`},children:e}),(0,y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t}),(0,y.jsx)(`span`,{style:{color:`var(--content-tertiary)`},children:n})]})}function E({cap:e}){return(0,y.jsx)(`ul`,{className:`!m-0 !list-none space-y-2 !p-0`,children:[`This promotion is available to new users who sign up through your referral link only.`,`Rewards are earned once your invitee completes the creation of their Vellum account.`,`You may earn up to ${e} free credits through the Referral Program. We may change this limit at any time.`,`We do not grant credits for disposable or high-risk email accounts.`,`Each new user can generate only one (1) reward. No stacking or loophole hunting.`,`Please avoid spamming or misusing your referral link. Our systems actively monitor referral engagement.`,`If we detect suspicious or non-compliant activity, we reserve the right to withhold rewards or deactivate your referral link.`,`We may update, pause, or discontinue this program at any time.`].map(e=>(0,y.jsxs)(`li`,{className:`flex items-start gap-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:[(0,y.jsx)(`span`,{"aria-hidden":`true`,className:`mt-0.5`,children:`•`}),(0,y.jsx)(`span`,{children:e})]},e))})}export{S as EarnCreditsModal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./create-selectors-8NePGNlX.js";var n=t(e(e=>({backOwnerCount:0,registerBackOwner:()=>e(e=>({backOwnerCount:e.backOwnerCount+1})),unregisterBackOwner:()=>e(e=>({backOwnerCount:Math.max(0,e.backOwnerCount-1)}))})));export{n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./useQuery-B45lW1Kk.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./loader-circle-Cz7opInR.js";import{t as a}from"./triangle-alert-Z0Gq0IuB.js";import"./src-
|
|
1
|
+
import{r as e,t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./useQuery-B45lW1Kk.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./loader-circle-Cz7opInR.js";import{t as a}from"./triangle-alert-Z0Gq0IuB.js";import"./src-zsLiFPw3.js";import{t as o}from"./tag-CV4v7fRF.js";import{c as s}from"./routes-BbeIx_F9.js";import{_ as c,h as l,p as u}from"./react-query.gen-DPzPS206.js";import{D as d,Ur as f,ki as p,na as m,xa as h}from"./index-yu6nDHvG.js";import{t as g}from"./use-active-assistant-id-BWXi63qg.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(a,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(o,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(m,{}):(0,_.jsx)(p,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(h,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let a=r===`full`,o=n({...u({path:{assistant_id:e}}),enabled:a}),d=o.data?.results?.[0],f=n({...l({path:{assistant_id:e,id:d?.id??``}}),enabled:a&&!!d?.id}),p=n({...c({path:{assistant_id:e},query:{limit:10}}),enabled:a}),m=f.data?.usage,h=p.data?.results??[];return o.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(i,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):o.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{o.refetch()},retrying:o.isFetching}):d?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:m?.sent_today,sub:m?`of ${m.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:m?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:m?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:m?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:p.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(i,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):p.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{p.refetch()},retrying:p.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:s.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=f(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:s.logs.root}):t===`disabled`?(0,_.jsx)(d,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-
|
|
2
|
-
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n=t(`Browser`,{web:()=>e(()=>import(`./web-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-O1LOb-o9.js","assets/dist-DS5iJwBJ2.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n=t(`Browser`,{web:()=>e(()=>import(`./web-O1LOb-o9.js`).then(e=>new e.BrowserWeb),__vite__mapDeps([0,1]))});export{n as Browser};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-
|
|
2
|
-
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n=t(`App`,{web:()=>e(()=>import(`./web-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-Duw5A2aP.js","assets/dist-DS5iJwBJ2.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n=t(`App`,{web:()=>e(()=>import(`./web-Duw5A2aP.js`).then(e=>new e.AppWeb),__vite__mapDeps([0,1]))});export{n as App};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-
|
|
2
|
-
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";import{t as n}from"./definitions-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-C1L-cpPj.js","assets/dist-DS5iJwBJ2.js","assets/definitions-CaYcW4Yq.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";import{t as n}from"./definitions-CaYcW4Yq.js";function r(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,n){return new Proxy({},{get(t,r){return(t,i,a)=>{let o=e.Capacitor.Plugins[n];if(o===void 0){a(Error(`Capacitor plugin ${n} not found`));return}if(typeof o[r]!=`function`){a(Error(`Method ${r} not found in Capacitor plugin ${n}`));return}(async()=>{try{i(await o[r](t))}catch(e){a(e)}})()}}})}})}function i(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,n){return e.cordova.plugins[n]}})}function a(e=!1){typeof window>`u`||(window.CapacitorUtils=window.CapacitorUtils||{},window.Capacitor!==void 0&&!e?r(window):window.cordova!==void 0&&i(window))}var o=t(`Filesystem`,{web:()=>e(()=>import(`./web-C1L-cpPj.js`).then(e=>new e.FilesystemWeb),__vite__mapDeps([0,1,2]))});a();export{n as Directory,o as Filesystem};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-RhBklijR.js","assets/dist-DS5iJwBJ2.js","assets/definitions-DScTW2c-.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";import{n,t as r}from"./definitions-DScTW2c-.js";var i=t(`Haptics`,{web:()=>e(()=>import(`./web-RhBklijR.js`).then(e=>new e.HapticsWeb),__vite__mapDeps([0,1,2]))});export{i as Haptics,r as ImpactStyle,n as NotificationType};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-
|
|
2
|
-
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n=t(`Share`,{web:()=>e(()=>import(`./web-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-CJiP8Lg6.js","assets/dist-DS5iJwBJ2.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n=t(`Share`,{web:()=>e(()=>import(`./web-CJiP8Lg6.js`).then(e=>new e.ShareWeb),__vite__mapDeps([0,1]))});export{n as Share};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-
|
|
2
|
-
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n;(function(e){e.Light=`light`,e.Dark=`dark`})(n||={});var r=t(`SafeArea`,{web:()=>e(()=>import(`./web-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-D8PpvYf_.js","assets/dist-DS5iJwBJ2.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-DS5iJwBJ2.js";var n;(function(e){e.Light=`light`,e.Dark=`dark`})(n||={});var r=t(`SafeArea`,{web:()=>e(()=>import(`./web-D8PpvYf_.js`).then(e=>new e.SafeAreaWeb),__vite__mapDeps([0,1]))});export{r as SafeArea};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={version:1,flags:[{id:`user-hosted-enabled`,scope:`client`,key:`user-hosted-enabled`,label:`User Hosted Enabled`,description:`Enable user-hosted onboarding flow`,defaultEnabled:!1},{id:`pre-chat-onboarding-experiment-2026-06-06`,scope:`client`,key:`pre-chat-onboarding-experiment-2026-06-06`,label:`Pre-chat Onboarding Experiment 2026-06-06`,description:`Pre-chat onboarding experiment with control and variant-a arms. Control shows the full funnel; variant-a shows the condensed pared-down flow.`,defaultEnabled:`control`,values:[`control`,`variant-a`]},{id:`experiment-activation-flow-2026-06-03`,scope:`both`,key:`experiment-activation-flow-2026-06-03`,label:`Activation Flow Experiment 2026-06-03`,description:`Multivariate activation-flow experiment. control = standard flow; variant-a = activation rail; personal-page = new sign-up-page variant (front-end only). Targeted via LaunchDarkly.`,defaultEnabled:`control`,values:[`control`,`variant-a`,`personal-page`]},{id:`local-docker-enabled`,scope:`client`,key:`local-docker-enabled`,label:`Local Docker Mode`,description:`When enabled, the Local hosting option uses Docker under the hood for sandboxed execution, hiding the separate Docker card`,defaultEnabled:!1},{id:`a2a-channel`,scope:`assistant`,key:`a2a-channel`,label:`A2A Channel`,description:`Enable the A2A (Agent-to-Agent) channel for inter-assistant communication via the open A2A protocol`,defaultEnabled:!1},{id:`trace-collection`,scope:`assistant`,key:`trace-collection`,label:`Trace Collection`,description:`Gate per-turn conversation trace (user/assistant/tool-call/tool-response) collection. The daemon attaches a trace to its turn telemetry only when this flag AND the owner's share_diagnostics consent are both on. Defaults off (fail-closed) — the live value is delivered from LaunchDarkly.`,defaultEnabled:!1},{id:`settings-developer-nav`,scope:`assistant`,key:`settings-developer-nav`,label:`Settings Developer Nav`,description:`Control Developer nav visibility in macOS settings`,defaultEnabled:!1},{id:`developer-menu-items`,scope:`client`,key:`developer-menu-items`,label:`Developer Menu Items`,description:`Show Component Gallery and Replay Onboarding in the menu bar`,defaultEnabled:!1},{id:`settings-embedding-provider`,scope:`assistant`,key:`settings-embedding-provider`,label:`Embedding Provider Settings`,description:`Show the Embedding service card in Models & Services settings`,defaultEnabled:!1},{id:`multi-platform-assistant`,scope:`client`,key:`multi-platform-assistant`,label:`Multi-Platform Assistant Switcher`,description:`Enable the menu-bar assistant switcher for managing multiple platform-hosted assistants (new/switch/retire)`,defaultEnabled:!1},{id:`quick-input`,scope:`client`,key:`quick-input`,label:`Quick Input`,description:`Enable the Quick Input popover on right-click of the menu bar icon`,defaultEnabled:!1},{id:`expand-completed-steps`,scope:`client`,key:`expand-completed-steps`,label:`Expand Completed Steps`,description:`Auto-expand completed tool call step groups instead of showing them collapsed`,defaultEnabled:!1},{id:`backward-releases`,scope:`assistant`,key:`backward-releases`,label:`Backward Releases`,description:`Show older versions in the version picker, allowing rollback to previous releases`,defaultEnabled:!1},{id:`voice-mode`,scope:`assistant`,key:`voice-mode`,label:`Voice Mode`,description:`Show the live voice conversation button in the composer`,defaultEnabled:!1},{id:`fast-mode`,scope:`assistant`,key:`fast-mode`,label:`Fast Mode`,description:`Enable Anthropic fast mode for Opus models (4.6, 4.7, 4.8), delivering up to 2.5x higher output tokens per second at premium pricing`,defaultEnabled:!1},{id:`teleport`,scope:`client`,key:`teleport`,label:`Teleport`,description:`Enable teleport UI in General settings for moving assistants between hosting environments`,defaultEnabled:!1},{id:`apple-container`,scope:`client`,key:`apple-container`,label:`Apple Container`,description:`Enable assistant sandboxing via Apple Containers on macOS 26+, providing a lightweight native sandbox without third-party dependencies`,defaultEnabled:!1},{id:`bookmarks`,scope:`client`,key:`bookmarks`,label:`Message Bookmarks`,description:`Show the bookmark icon on messages and enable the Bookmarks tab in Settings`,defaultEnabled:!1},{id:`fork-from-message`,scope:`client`,key:`fork-from-message`,label:`Fork from Message`,description:`Show the 'Fork from here' option in message overflow menus`,defaultEnabled:!1},{id:`home-tab`,scope:`client`,key:`home-tab`,label:`Home Tab`,description:`Replace the knowledge graph top-level tab with a new Home page showing relationship progression, facts, and capability tiers`,defaultEnabled:!1},{id:`scroll-debug-overlay`,scope:`client`,key:`scroll-debug-overlay`,label:`Scroll Debug Overlay`,description:`Show a live HUD in the top-right of the conversation with scroll geometry, velocity, update rate, and anchor-preserver activity. Developer diagnostic for investigating scroll jank.`,defaultEnabled:!1},{id:`coding-agents-panel`,scope:`client`,key:`coding-agents-panel`,label:`Coding Agents Panel`,description:`Gate native macOS Coding Agents panel entry points and inline ACP session deep links.`,defaultEnabled:!1},{id:`compaction-playground`,scope:`assistant`,key:`compaction-playground`,label:`Compaction Playground`,description:`Expose the developer-only Compaction Playground tab in macOS Settings and enable the /playground/* HTTP endpoints for exercising compaction conditions. Dev-only; default off.`,defaultEnabled:!1},{id:`app-control`,scope:`assistant`,key:`app-control`,label:`App Control`,description:`Enable the app-control skill (per-app screenshot + raw input bypassing AX tree)`,defaultEnabled:!1},{id:`velvet-theme`,scope:`client`,key:`velvet-theme`,label:`Velvet Theme`,description:`Show the Velvet theme option in the macOS appearance settings. Velvet is a dark-mode variant with red/pink accent colors.`,defaultEnabled:!1},{id:`queue-steering`,scope:`assistant`,key:`queue-steering`,label:`Queue Steering`,description:`Enable the 'Push to agent' button on queued messages, allowing users to steer the assistant to a specific queued message by aborting the current generation and promoting the message to the head of the queue.`,defaultEnabled:!1},{id:`chat-pull-to-refresh-enabled`,scope:`client`,key:`chat-pull-to-refresh-enabled`,label:`Chat Pull to Refresh`,description:`Enable pull-to-refresh gesture in the chat view.`,defaultEnabled:!1},{id:`platform-notifications`,scope:`client`,key:`platform-notifications`,label:`Platform Notifications`,description:`Enable the Notifications tab in settings.`,defaultEnabled:!1},{id:`centralized-assistant-status`,scope:`client`,key:`centralized-assistant-status`,label:`Centralized Assistant Status`,description:`Enable client polling of the centralized assistant operational status endpoint.`,defaultEnabled:!1},{id:`preview-channel`,scope:`client`,key:`preview-channel`,label:`Preview Channel`,description:`Enable user-facing Preview release channel controls in assistant settings.`,defaultEnabled:!1},{id:`rollback-enabled`,scope:`assistant`,key:`rollback-enabled`,label:`Rollback Enabled`,description:`Show older versions in the version picker, allowing rollback to previous releases.`,defaultEnabled:!1},{id:`self-hosted-assistant`,scope:`client`,key:`self-hosted-assistant`,label:`Self-Hosted Assistant`,description:`Enable self-hosted assistant configuration.`,defaultEnabled:!1},{id:`web-remote-ingress`,scope:`assistant`,key:`web-remote-ingress`,label:`Web Remote Ingress`,description:`Serve the web client over a public tunnel and enable browser pairing for self-hosted assistants.`,defaultEnabled:!1},{id:`settings-sleep-policy`,scope:`assistant`,key:`settings-sleep-policy`,label:`Settings Sleep Policy`,description:`Enable sleep policy settings.`,defaultEnabled:!1},{id:`velvet`,scope:`client`,key:`velvet`,label:`Velvet`,description:`Enable the Velvet design theme.`,defaultEnabled:!1},{id:`memory-router-playground`,scope:`client`,key:`memory-router-playground`,label:`Memory Router Playground`,description:`Expose the developer-only Memory Router Playground tab in macOS Settings and the /assistant/memory-router-playground web page for dry-running v4 router config overrides against the live page index. Dev-only; default off.`,defaultEnabled:!1},{id:`memory-v3-injection-gate`,scope:`assistant`,key:`memory-v3-injection-gate`,label:`Memory v3 injection gate`,description:`Per-turn injection gate for memory v3: after the BM25F needle + dense cosine finder lanes run, skip the selectPool LLM call (inject nothing) when finder-lane scores fall below the configured thresholds (memory.v3.gate). Default on (flipped remotely July 2026); this registry value is the fallback when no platform snapshot is available.`,defaultEnabled:!0},{id:`memory-concept-graph`,scope:`assistant`,key:`memory-concept-graph`,label:`Memory concept graph`,description:`Gates the Obsidian-style memory concept graph on the assistant identity page and the backend-agnostic /memory-graph + /memory-graph-node routes that feed it. When off, the identity page shows the skills constellation instead. Only produces a graph on memory-v3 backends. Default off.`,defaultEnabled:!1},{id:`self-intro-greeting`,scope:`both`,key:`self-intro-greeting`,label:`Self-intro first message`,description:`On the first conversation, send a natural self-introduction (e.g. "Hi Vela, I'm alex. Nice to meet you.") on the user's behalf and route it through real LLM inference, instead of serving the canned first greeting. Names come from the onboarding context; falls back to the canned greeting when no name is known. Exposed to clients so pre-hatch onboarding can compute the source-of-truth initial message, and to the assistant so older clients can still be gated server-side. See assistant/src/daemon/first-greeting.ts (buildSelfIntroMessage).`,defaultEnabled:!1},{id:`research-onboarding`,scope:`client`,key:`research-onboarding`,label:`Research onboarding (spike)`,description:`Spike: replace pre-chat onboarding with a web-research "here's what I know about you" flow, including a Google Calendar "Let's chat tomorrow" step shown over the streaming research. Gates the /assistant/onboarding/research route and the research mock harness. Off by default; enable locally via the feature-flags panel.`,defaultEnabled:!1},{id:`personality-onboarding`,scope:`client`,key:`personality-onboarding`,label:`Personality onboarding step (spike)`,description:`Spike: show the "Create my personality" trait-slider step in the research-onboarding flow (between the pitch and the integration step). On continue it applies the sliders to the assistant's persona on a throwaway side conversation. When off, the step is skipped entirely. Off by default; enable locally via the feature-flags panel.`,defaultEnabled:!1},{id:`channel-trust-floors`,scope:`assistant`,key:`channel-trust-floors`,label:`Channel Trust Floors`,description:`Expose the Channel Trust Floors settings card (per-channel inbound admission policy) on the Privacy settings page. When off, the card is hidden and channels fall back to their default admission floors. Off by default while the feature is in development.`,defaultEnabled:!1},{id:`mcp-add-server`,scope:`assistant`,key:`mcp-add-server`,label:`MCP Add Server`,description:`Show the Add Server action on the MCP settings page. The MCP page itself remains visible; this flag gates only creating new Model Context Protocol server connections.`,defaultEnabled:!1},{id:`os-beta`,scope:`assistant`,key:`os-beta`,label:`OS Beta`,description:`Enable the OS Beta model profile (MiniMax M3 / Together) in the assistant's model profile selection.`,defaultEnabled:!1},{id:`new-thread-suggestions`,scope:`client`,key:`new-thread-suggestions`,label:`New-thread suggestions library`,description:`Replace the empty-state conversation-starter chips with the scrollable, categorized suggestions library and detail drawer (currently mocked data).`,defaultEnabled:!1},{id:`account-mfa`,scope:`client`,key:`account-mfa`,label:`Account MFA`,description:`Surface the Security settings page where users enroll and manage TOTP two-factor authentication for their Vellum (WorkOS) account. Applies to email/password sign-in only.`,defaultEnabled:!1},{id:`credentials-settings`,scope:`assistant`,key:`credentials-settings`,label:`Credentials settings page`,description:`Show the Credentials page in web settings for listing, adding, and deleting stored credentials.`,defaultEnabled:!1},{id:`credential-requests`,scope:`assistant`,key:`credential-requests`,label:`One-time credential request links`,description:`Enable one-time credential-request links: the generate-link action in settings, the public credential entry page, and assistant-initiated links on channels without secure input.`,defaultEnabled:!1},{id:`summarize-up-to-here`,scope:`both`,key:`summarize-up-to-here`,label:`Summarize Up To Here`,description:`Show the per-message Summarize up to here action and enable the conversation summarize endpoint`,defaultEnabled:!1},{id:`skill-creation-card`,scope:`both`,key:`skill-creation-card`,label:`Skill creation card`,description:`Insert an in-chat card into the source conversation when the memory retrospective authors a new skill, and render it in the web client.`,defaultEnabled:!1},{id:`override-or-default-resolution`,scope:`assistant`,key:`override-or-default-resolution`,label:`Override-or-Default Profile Resolution`,description:`Resolve inference profiles as single complete overrides (or the call site's default intent through the default provider) instead of the legacy deep-merge cascade. Ships enabled; disable as a kill switch to restore merge semantics.`,defaultEnabled:!0}]};function t(e,t){return e===t||e===`both`}var n=e.flags,r={};function i(e){return r[e]||e.split(`-`).map((e,t)=>e===`ui`?`UI`:t===0?e:e[0].toUpperCase()+e.slice(1)).join(``)}function a(e){let r={};for(let a of n)typeof a.defaultEnabled==`boolean`&&t(a.scope,e)&&(r[i(a.key)]=a.defaultEnabled);return r}function o(e){let r={};for(let a of n)typeof a.defaultEnabled==`string`&&t(a.scope,e)&&(r[i(a.key)]=a.defaultEnabled);return r}var s=a(`client`),c=a(`assistant`),l=o(`client`),u=o(`assistant`),d=new Map;for(let e of n)d.set(i(e.key),e);var f=new Map;for(let e of n)f.set(i(e.key),e.key);function p(e){return i(e)}function m(e){return f.get(e)}function h(e){return d.get(e)}var g=`VITE_VELLUM_FLAG_`;function _(e){return e.toLowerCase().replace(/_/g,`-`)}var v=new Set([`true`,`1`,`yes`,`on`]),y=new Set([`false`,`0`,`no`,`off`]);function b(e){let t=e.toLowerCase();return v.has(t)?!0:y.has(t)?!1:e}function x(){if(typeof window<`u`&&window.__VELLUM_FLAG_OVERRIDES__!=null)return{...window.__VELLUM_FLAG_OVERRIDES__};let e={},t={BASE_URL:`/assistant/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_PLATFORM_MODE:`false`};for(let n of Object.keys(t))if(n.startsWith(g)){let r=_(n.slice(17)),i=t[n];i!=null&&(e[r]=b(i))}return e}var S=null;function C(){return S===null&&(S=x()),S}var w=new Map;for(let e of n)w.set(e.key,e);function T(e){let n=C(),r={},i={};for(let[a,o]of Object.entries(n)){let n=w.get(a);if(!n||!t(n.scope,e))continue;let s=p(a);typeof o==`boolean`?r[s]=o:i[s]=o}return{bool:r,str:i}}export{p as a,h as c,l as i,t as l,u as n,n as o,s as r,T as s,c as t,m as u};
|
|
1
|
+
var e={version:1,flags:[{id:`user-hosted-enabled`,scope:`client`,key:`user-hosted-enabled`,label:`User Hosted Enabled`,description:`Enable user-hosted onboarding flow`,defaultEnabled:!1},{id:`pre-chat-onboarding-experiment-2026-06-06`,scope:`client`,key:`pre-chat-onboarding-experiment-2026-06-06`,label:`Pre-chat Onboarding Experiment 2026-06-06`,description:`Pre-chat onboarding experiment with control and variant-a arms. Control shows the full funnel; variant-a shows the condensed pared-down flow.`,defaultEnabled:`control`,values:[`control`,`variant-a`]},{id:`experiment-activation-flow-2026-06-03`,scope:`both`,key:`experiment-activation-flow-2026-06-03`,label:`Activation Flow Experiment 2026-06-03`,description:`Multivariate activation-flow experiment. control = standard flow; variant-a = activation rail; personal-page = new sign-up-page variant (front-end only). Targeted via LaunchDarkly.`,defaultEnabled:`control`,values:[`control`,`variant-a`,`personal-page`]},{id:`local-docker-enabled`,scope:`client`,key:`local-docker-enabled`,label:`Local Docker Mode`,description:`When enabled, the Local hosting option uses Docker under the hood for sandboxed execution, hiding the separate Docker card`,defaultEnabled:!1},{id:`a2a-channel`,scope:`assistant`,key:`a2a-channel`,label:`A2A Channel`,description:`Enable the A2A (Agent-to-Agent) channel for inter-assistant communication via the open A2A protocol`,defaultEnabled:!1},{id:`trace-collection`,scope:`assistant`,key:`trace-collection`,label:`Trace Collection`,description:`Gate per-turn conversation trace (user/assistant/tool-call/tool-response) collection. The daemon attaches a trace to its turn telemetry only when this flag AND the owner's share_diagnostics consent are both on. Defaults off (fail-closed) — the live value is delivered from LaunchDarkly.`,defaultEnabled:!1},{id:`settings-developer-nav`,scope:`assistant`,key:`settings-developer-nav`,label:`Settings Developer Nav`,description:`Control Developer nav visibility in macOS settings`,defaultEnabled:!1},{id:`developer-menu-items`,scope:`client`,key:`developer-menu-items`,label:`Developer Menu Items`,description:`Show Component Gallery and Replay Onboarding in the menu bar`,defaultEnabled:!1},{id:`settings-embedding-provider`,scope:`assistant`,key:`settings-embedding-provider`,label:`Embedding Provider Settings`,description:`Show the Embedding service card in Models & Services settings`,defaultEnabled:!1},{id:`multi-platform-assistant`,scope:`client`,key:`multi-platform-assistant`,label:`Multi-Platform Assistant Switcher`,description:`Enable the menu-bar assistant switcher for managing multiple platform-hosted assistants (new/switch/retire)`,defaultEnabled:!1},{id:`quick-input`,scope:`client`,key:`quick-input`,label:`Quick Input`,description:`Enable the Quick Input popover on right-click of the menu bar icon`,defaultEnabled:!1},{id:`expand-completed-steps`,scope:`client`,key:`expand-completed-steps`,label:`Expand Completed Steps`,description:`Auto-expand completed tool call step groups instead of showing them collapsed`,defaultEnabled:!1},{id:`backward-releases`,scope:`assistant`,key:`backward-releases`,label:`Backward Releases`,description:`Show older versions in the version picker, allowing rollback to previous releases`,defaultEnabled:!1},{id:`voice-mode`,scope:`assistant`,key:`voice-mode`,label:`Voice Mode`,description:`Show the live voice conversation button in the composer`,defaultEnabled:!1},{id:`fast-mode`,scope:`assistant`,key:`fast-mode`,label:`Fast Mode`,description:`Enable Anthropic fast mode for Opus models (4.6, 4.7, 4.8), delivering up to 2.5x higher output tokens per second at premium pricing`,defaultEnabled:!1},{id:`teleport`,scope:`client`,key:`teleport`,label:`Teleport`,description:`Enable teleport UI in General settings for moving assistants between hosting environments`,defaultEnabled:!1},{id:`apple-container`,scope:`client`,key:`apple-container`,label:`Apple Container`,description:`Enable assistant sandboxing via Apple Containers on macOS 26+, providing a lightweight native sandbox without third-party dependencies`,defaultEnabled:!1},{id:`bookmarks`,scope:`client`,key:`bookmarks`,label:`Message Bookmarks`,description:`Show the bookmark icon on messages and enable the Bookmarks tab in Settings`,defaultEnabled:!1},{id:`fork-from-message`,scope:`client`,key:`fork-from-message`,label:`Fork from Message`,description:`Show the 'Fork from here' option in message overflow menus`,defaultEnabled:!1},{id:`home-tab`,scope:`client`,key:`home-tab`,label:`Home Tab`,description:`Replace the knowledge graph top-level tab with a new Home page showing relationship progression, facts, and capability tiers`,defaultEnabled:!1},{id:`scroll-debug-overlay`,scope:`client`,key:`scroll-debug-overlay`,label:`Scroll Debug Overlay`,description:`Show a live HUD in the top-right of the conversation with scroll geometry, velocity, update rate, and anchor-preserver activity. Developer diagnostic for investigating scroll jank.`,defaultEnabled:!1},{id:`coding-agents-panel`,scope:`client`,key:`coding-agents-panel`,label:`Coding Agents Panel`,description:`Gate native macOS Coding Agents panel entry points and inline ACP session deep links.`,defaultEnabled:!1},{id:`compaction-playground`,scope:`assistant`,key:`compaction-playground`,label:`Compaction Playground`,description:`Expose the developer-only Compaction Playground tab in macOS Settings and enable the /playground/* HTTP endpoints for exercising compaction conditions. Dev-only; default off.`,defaultEnabled:!1},{id:`app-control`,scope:`assistant`,key:`app-control`,label:`App Control`,description:`Enable the app-control skill (per-app screenshot + raw input bypassing AX tree)`,defaultEnabled:!1},{id:`velvet-theme`,scope:`client`,key:`velvet-theme`,label:`Velvet Theme`,description:`Show the Velvet theme option in the macOS appearance settings. Velvet is a dark-mode variant with red/pink accent colors.`,defaultEnabled:!1},{id:`queue-steering`,scope:`assistant`,key:`queue-steering`,label:`Queue Steering`,description:`Enable the 'Push to agent' button on queued messages, allowing users to steer the assistant to a specific queued message by aborting the current generation and promoting the message to the head of the queue.`,defaultEnabled:!1},{id:`chat-pull-to-refresh-enabled`,scope:`client`,key:`chat-pull-to-refresh-enabled`,label:`Chat Pull to Refresh`,description:`Enable pull-to-refresh gesture in the chat view.`,defaultEnabled:!1},{id:`platform-notifications`,scope:`client`,key:`platform-notifications`,label:`Platform Notifications`,description:`Enable the Notifications tab in settings.`,defaultEnabled:!1},{id:`centralized-assistant-status`,scope:`client`,key:`centralized-assistant-status`,label:`Centralized Assistant Status`,description:`Enable client polling of the centralized assistant operational status endpoint.`,defaultEnabled:!1},{id:`preview-channel`,scope:`client`,key:`preview-channel`,label:`Preview Channel`,description:`Enable user-facing Preview release channel controls in assistant settings.`,defaultEnabled:!1},{id:`rollback-enabled`,scope:`assistant`,key:`rollback-enabled`,label:`Rollback Enabled`,description:`Show older versions in the version picker, allowing rollback to previous releases.`,defaultEnabled:!1},{id:`self-hosted-assistant`,scope:`client`,key:`self-hosted-assistant`,label:`Self-Hosted Assistant`,description:`Enable self-hosted assistant configuration.`,defaultEnabled:!1},{id:`web-remote-ingress`,scope:`assistant`,key:`web-remote-ingress`,label:`Web Remote Ingress`,description:`Serve the web client over a public tunnel and enable browser pairing for self-hosted assistants.`,defaultEnabled:!1},{id:`settings-sleep-policy`,scope:`assistant`,key:`settings-sleep-policy`,label:`Settings Sleep Policy`,description:`Enable sleep policy settings.`,defaultEnabled:!1},{id:`velvet`,scope:`client`,key:`velvet`,label:`Velvet`,description:`Enable the Velvet design theme.`,defaultEnabled:!1},{id:`memory-router-playground`,scope:`client`,key:`memory-router-playground`,label:`Memory Router Playground`,description:`Expose the developer-only Memory Router Playground tab in macOS Settings and the /assistant/memory-router-playground web page for dry-running v4 router config overrides against the live page index. Dev-only; default off.`,defaultEnabled:!1},{id:`memory-v3-injection-gate`,scope:`assistant`,key:`memory-v3-injection-gate`,label:`Memory v3 injection gate`,description:`Per-turn injection gate for memory v3: after the BM25F needle + dense cosine finder lanes run, skip the selectPool LLM call (inject nothing) when finder-lane scores fall below the configured thresholds (memory.v3.gate). Default on (flipped remotely July 2026); this registry value is the fallback when no platform snapshot is available.`,defaultEnabled:!0},{id:`memory-concept-graph`,scope:`assistant`,key:`memory-concept-graph`,label:`Memory concept graph`,description:`Gates the Obsidian-style memory concept graph on the assistant identity page and the backend-agnostic /memory-graph + /memory-graph-node routes that feed it. When off, the identity page shows the skills constellation instead. Only produces a graph on memory-v3 backends. Default off.`,defaultEnabled:!1},{id:`self-intro-greeting`,scope:`both`,key:`self-intro-greeting`,label:`Self-intro first message`,description:`On the first conversation, send a natural self-introduction (e.g. "Hi Vela, I'm alex. Nice to meet you.") on the user's behalf and route it through real LLM inference, instead of serving the canned first greeting. Names come from the onboarding context; falls back to the canned greeting when no name is known. Exposed to clients so pre-hatch onboarding can compute the source-of-truth initial message, and to the assistant so older clients can still be gated server-side. See assistant/src/daemon/first-greeting.ts (buildSelfIntroMessage).`,defaultEnabled:!1},{id:`research-onboarding`,scope:`client`,key:`research-onboarding`,label:`Research onboarding (spike)`,description:`Spike: replace pre-chat onboarding with a web-research "here's what I know about you" flow, including a Google Calendar "Let's chat tomorrow" step shown over the streaming research. Gates the /assistant/onboarding/research route and the research mock harness. Off by default; enable locally via the feature-flags panel.`,defaultEnabled:!1},{id:`personality-onboarding`,scope:`client`,key:`personality-onboarding`,label:`Personality onboarding step (spike)`,description:`Spike: show the "Create my personality" trait-slider step in the research-onboarding flow (between the pitch and the integration step). On continue it applies the sliders to the assistant's persona on a throwaway side conversation. When off, the step is skipped entirely. Off by default; enable locally via the feature-flags panel.`,defaultEnabled:!1},{id:`channel-trust-floors`,scope:`assistant`,key:`channel-trust-floors`,label:`Channel Trust Floors`,description:`Expose the Channel Trust Floors settings card (per-channel inbound admission policy) on the Privacy settings page. When off, the card is hidden and channels fall back to their default admission floors. On by default; disable to hide the card.`,defaultEnabled:!0},{id:`mcp-add-server`,scope:`assistant`,key:`mcp-add-server`,label:`MCP Add Server`,description:`Show the Add Server action on the MCP settings page. The MCP page itself remains visible; this flag gates only creating new Model Context Protocol server connections.`,defaultEnabled:!1},{id:`os-beta`,scope:`assistant`,key:`os-beta`,label:`OS Beta`,description:`Enable the OS Beta model profile (MiniMax M3 / Together) in the assistant's model profile selection.`,defaultEnabled:!1},{id:`new-thread-suggestions`,scope:`client`,key:`new-thread-suggestions`,label:`New-thread suggestions library`,description:`Replace the empty-state conversation-starter chips with the scrollable, categorized suggestions library and detail drawer (currently mocked data).`,defaultEnabled:!1},{id:`account-mfa`,scope:`client`,key:`account-mfa`,label:`Account MFA`,description:`Surface the Security settings page where users enroll and manage TOTP two-factor authentication for their Vellum (WorkOS) account. Applies to email/password sign-in only.`,defaultEnabled:!1},{id:`credentials-settings`,scope:`assistant`,key:`credentials-settings`,label:`Credentials settings page`,description:`Show the Credentials page in web settings for listing, adding, and deleting stored credentials.`,defaultEnabled:!1},{id:`credential-requests`,scope:`assistant`,key:`credential-requests`,label:`One-time credential request links`,description:`Enable one-time credential-request links: the generate-link action in settings, the public credential entry page, and assistant-initiated links on channels without secure input.`,defaultEnabled:!1},{id:`summarize-up-to-here`,scope:`both`,key:`summarize-up-to-here`,label:`Summarize Up To Here`,description:`Show the per-message Summarize up to here action and enable the conversation summarize endpoint`,defaultEnabled:!1},{id:`skill-creation-card`,scope:`both`,key:`skill-creation-card`,label:`Skill creation card`,description:`Insert an in-chat card into the source conversation when the memory retrospective authors a new skill, and render it in the web client.`,defaultEnabled:!1},{id:`override-or-default-resolution`,scope:`assistant`,key:`override-or-default-resolution`,label:`Override-or-Default Profile Resolution`,description:`Resolve inference profiles as single complete overrides (or the call site's default intent through the default provider) instead of the legacy deep-merge cascade. Ships enabled; disable as a kill switch to restore merge semantics.`,defaultEnabled:!0}]};function t(e,t){return e===t||e===`both`}var n=e.flags,r={};function i(e){return r[e]||e.split(`-`).map((e,t)=>e===`ui`?`UI`:t===0?e:e[0].toUpperCase()+e.slice(1)).join(``)}function a(e){let r={};for(let a of n)typeof a.defaultEnabled==`boolean`&&t(a.scope,e)&&(r[i(a.key)]=a.defaultEnabled);return r}function o(e){let r={};for(let a of n)typeof a.defaultEnabled==`string`&&t(a.scope,e)&&(r[i(a.key)]=a.defaultEnabled);return r}var s=a(`client`),c=a(`assistant`),l=o(`client`),u=o(`assistant`),d=new Map;for(let e of n)d.set(i(e.key),e);var f=new Map;for(let e of n)f.set(i(e.key),e.key);function p(e){return i(e)}function m(e){return f.get(e)}function h(e){return d.get(e)}var g=`VITE_VELLUM_FLAG_`;function _(e){return e.toLowerCase().replace(/_/g,`-`)}var v=new Set([`true`,`1`,`yes`,`on`]),y=new Set([`false`,`0`,`no`,`off`]);function b(e){let t=e.toLowerCase();return v.has(t)?!0:y.has(t)?!1:e}function x(){if(typeof window<`u`&&window.__VELLUM_FLAG_OVERRIDES__!=null)return{...window.__VELLUM_FLAG_OVERRIDES__};let e={},t={BASE_URL:`/assistant/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_PLATFORM_MODE:`false`};for(let n of Object.keys(t))if(n.startsWith(g)){let r=_(n.slice(17)),i=t[n];i!=null&&(e[r]=b(i))}return e}var S=null;function C(){return S===null&&(S=x()),S}var w=new Map;for(let e of n)w.set(e.key,e);function T(e){let n=C(),r={},i={};for(let[a,o]of Object.entries(n)){let n=w.get(a);if(!n||!t(n.scope,e))continue;let s=p(a);typeof o==`boolean`?r[s]=o:i[s]=o}return{bool:r,str:i}}export{p as a,h as c,l as i,t as l,u as n,n as o,s as r,T as s,c as t,m as u};
|