@vellumai/web 0.10.6-staging.1 → 0.10.6
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-uY0BR2n2.js → AnimatePresence-VF_hIZFD.js} +1 -1
- package/dist/assets/{BundleConfirmPage-BehDAEHu.js → BundleConfirmPage-DOUpVq0Q.js} +1 -1
- package/dist/assets/a2a-invite-Bv0xGbPM.js +1 -0
- package/dist/assets/{about-page-Ck4iLq7E.js → about-page-ci8HgT8u.js} +1 -1
- package/dist/assets/{account-page-TeIlHDQk.js → account-page-BiUlH7g9.js} +1 -1
- package/dist/assets/acp-run-detail-panel-B2ycT_78.js +5 -0
- package/dist/assets/{add-credits-modal-FyFjNQKM.js → add-credits-modal-BpZFOp84.js} +1 -1
- package/dist/assets/advanced-page-BClLCzBA.js +1 -0
- package/dist/assets/{ai-page-DpaOJJxh.js → ai-page-DnocNQmY.js} +1 -1
- package/dist/assets/{animated-avatar-CEC1DGcI.js → animated-avatar-FIuLddxJ.js} +1 -1
- package/dist/assets/{api-5fuWyrd5.js → api-DvthVfI2.js} +1 -1
- package/dist/assets/{api-key-screen-DP7UJY7P.js → api-key-screen-BMj30LHe.js} +1 -1
- package/dist/assets/{archive-page-nIOXwfyT.js → archive-page-aRD_FLfQ.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-D80P_lXI.js → assistant-feature-flag-store-B440uAh9.js} +1 -1
- package/dist/assets/{assistant-identity-store-cODRsfVo.js → assistant-identity-store-DP4B8mmA.js} +1 -1
- package/dist/assets/{assistant-status-panel-qHMHJPNI.js → assistant-status-panel-8WiPtFrO.js} +1 -1
- package/dist/assets/{auth-store-DGyzz5Ha.js → auth-store-B8KDWYi4.js} +2 -2
- package/dist/assets/{background-task-detail-panel-BBC1IgTy.js → background-task-detail-panel-IILCVufr.js} +1 -1
- package/dist/assets/{billing-page-f9MFi6zD.js → billing-page-q1D1xspC.js} +3 -3
- package/dist/assets/{bookmarks-page-C-gfC6Gu.js → bookmarks-page-D5XLE9A7.js} +1 -1
- package/dist/assets/{browser-DM38C5zq.js → browser-DdI2GrPw.js} +2 -2
- package/dist/assets/{build-state-CMTAZxqg.js → build-state-DAcnY2g_.js} +1 -1
- package/dist/assets/{capture-error-BG-GkiMq.js → capture-error-8raDoxFL.js} +1 -1
- package/dist/assets/channels-page-route-m_HALkI5.js +1 -0
- package/dist/assets/{client-feature-flag-store-CWOJ-CVU.js → client-feature-flag-store-D3f7L4rr.js} +1 -1
- package/dist/assets/clipboard-copy-cZENPJ25.js +1 -0
- package/dist/assets/{command-palette-BAhczobN.js → command-palette-BHVjkDPP.js} +1 -1
- package/dist/assets/{command-palette-window-page-BjRshjsQ.js → command-palette-window-page-C8htNOF6.js} +1 -1
- package/dist/assets/{community-page-BrzFK4eo.js → community-page-BvBiiBNT.js} +1 -1
- package/dist/assets/connect-page-65umesqK.js +1 -0
- package/dist/assets/consent-controls-CoeCtvwh.js +1 -0
- package/dist/assets/contacts-gateway-_mvlDweU.js +1 -0
- package/dist/assets/contacts-page-route-CQXKgYfo.js +1 -0
- package/dist/assets/{conversation-list-fetchers-COStMaVO.js → conversation-list-fetchers-D5PpdmFr.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-DFSAHVUO.js → danger-zone-redirect-page-BLyU56iI.js} +1 -1
- package/dist/assets/debug-page-BfYzZTih.js +4 -0
- package/dist/assets/{deploy-dialogs-BGPr7tRt.js → deploy-dialogs-DyZ__q_z.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-CcFyjiHA.js → detail-panel-stop-button-DXQQXCtp.js} +1 -1
- package/dist/assets/{detail-shell-DAQXFf5u.js → detail-shell-C--69S4R.js} +2 -2
- package/dist/assets/{developer-page-DKbPtnYa.js → developer-page-LlFmliRP.js} +1 -1
- package/dist/assets/devices-page-C65LYzPc.js +1 -0
- package/dist/assets/{diagnostics-BAjanSbk.js → diagnostics-BQUtALh-.js} +1 -1
- package/dist/assets/{dictation-overlay-page-Ma56ZEas.js → dictation-overlay-page-D5pUTXA9.js} +1 -1
- package/dist/assets/{document-viewer-page-CDdKsz0G.js → document-viewer-page-mRBDn4Gc.js} +1 -1
- package/dist/assets/{earn-credits-modal-DrXTt13d.js → earn-credits-modal-DVUdlw2V.js} +1 -1
- package/dist/assets/{emails-page-JJZnddma.js → emails-page--1HEyMqD.js} +1 -1
- package/dist/assets/esm-BKCTntwk.js +2 -0
- package/dist/assets/esm-CNMouzMT.js +2 -0
- package/dist/assets/{esm-O9mDOR47.js → esm-CSgBiYzF.js} +2 -2
- package/dist/assets/esm-CccIkVyz.js +2 -0
- package/dist/assets/esm-CpbLh3YJ.js +2 -0
- package/dist/assets/esm-DlsDcixX.js +1 -0
- package/dist/assets/{feature-flag-catalog-C8w5_UfU.js → feature-flag-catalog-CRFA909Q.js} +1 -1
- package/dist/assets/{file-editor-BCSV9IJF.js → file-editor-PNZ9cTI-.js} +1 -1
- package/dist/assets/{general-page-BQw5GWs9.js → general-page-DL3fu61f.js} +1 -1
- package/dist/assets/{hatching-screen-Bn68JemT.js → hatching-screen-Bc0QiEVj.js} +1 -1
- package/dist/assets/{home-page-route-DMa33Zrx.js → home-page-route-CR3ajpvl.js} +1 -1
- package/dist/assets/{hosting-screen-DQ2oChnD.js → hosting-screen--GdpAsIo.js} +1 -1
- package/dist/assets/identity-page-route-z0mc5jGO.js +1 -0
- package/dist/assets/{index-CQhaX_6y.js → index-CWzNQ8A_.js} +31 -31
- package/dist/assets/{inspect-page-DY4rwOh6.js → inspect-page-C-fq5PsM.js} +4 -4
- package/dist/assets/{install-BrkjCsCo.js → install-DKnSvyt9.js} +1 -1
- package/dist/assets/integrations-page-BeTfBE7R.js +1 -0
- package/dist/assets/intelligence-layout-ShKSJFRX.js +1 -0
- package/dist/assets/{keyboard-shortcuts-page-D0RdK4J1.js → keyboard-shortcuts-page-DiFBwxwl.js} +1 -1
- package/dist/assets/{library-detail-page-aRT1yf6F.js → library-detail-page-BE-B5vd3.js} +1 -1
- package/dist/assets/{library-page-B7t6lth_.js → library-page-COsPjT0P.js} +1 -1
- package/dist/assets/{login-flow-l71HNHLV.js → login-flow-COr5zRoB.js} +1 -1
- package/dist/assets/{login-page-Bp6w7NSU.js → login-page-B_AWg_-m.js} +1 -1
- package/dist/assets/logout-page-B-vCELzg.js +1 -0
- package/dist/assets/logs-layout-Bb2Ki85T.js +1 -0
- package/dist/assets/{memory-router-playground-page-D_meczLa.js → memory-router-playground-page-rPz9hfL9.js} +1 -1
- package/dist/assets/{messages-ChEiS3wF.js → messages-Doco46Z6.js} +1 -1
- package/dist/assets/{metric-card-FIohvQ13.js → metric-card-DejhOUyM.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-DzYe9XUj.js → mobile-sidebar-drawer-DwE65WjT.js} +1 -1
- package/dist/assets/{native-biometric-BK6_QtW5.js → native-biometric-C5AdTx4r.js} +1 -1
- package/dist/assets/{native-file-DIJL6af-.js → native-file-swemzdL9.js} +2 -2
- package/dist/assets/{notifications-page-C2lwkT1N.js → notifications-page-D3Gip5vS.js} +1 -1
- package/dist/assets/{oauth-complete-page-CHOh6OEp.js → oauth-complete-page-DAuZqgBq.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-BE3T_diS.js → oauth-popup-complete-page-CvOB8DyR.js} +1 -1
- package/dist/assets/{pairing-page-CxHUjMx8.js → pairing-page-CSXR4O5_.js} +1 -1
- package/dist/assets/{password-reset-page-T_0pamrF.js → password-reset-page-BCyMJkWQ.js} +1 -1
- package/dist/assets/{platform-detection-Ceodt3Hu.js → platform-detection-B1WOWEur.js} +1 -1
- package/dist/assets/{platform-loopback-page-D9aM6fRr.js → platform-loopback-page-DViSSCNq.js} +1 -1
- package/dist/assets/{plugin-detail-page-3mf9oR80.js → plugin-detail-page-D_0rFOJ7.js} +1 -1
- package/dist/assets/plugins-page-DnsCa0ka.js +1 -0
- package/dist/assets/plugins-surface-CAUFbZFj.js +1 -0
- package/dist/assets/plus-CzwTg9D8.js +1 -0
- package/dist/assets/prechat-route-BRLg12I0.js +1 -0
- package/dist/assets/{prefs-vU63K0uX.js → prefs-BK4ReLBx.js} +1 -1
- package/dist/assets/{privacy-page-B70Xm8aR.js → privacy-page-DK_E5UDG.js} +1 -1
- package/dist/assets/{privacy-screen-ByIZxuz7.js → privacy-screen-VCEt0iH8.js} +1 -1
- package/dist/assets/{provider-callback-page-BWlbojMH.js → provider-callback-page-DSqK6K5B.js} +1 -1
- package/dist/assets/{provider-key-Bf5qJwbE.js → provider-key-DSBs9REL.js} +1 -1
- package/dist/assets/{provider-signup-page-DKWEdYx6.js → provider-signup-page-CuLVID0r.js} +1 -1
- package/dist/assets/{quick-input-page-CyO-UVOQ.js → quick-input-page-DITr3SKX.js} +1 -1
- package/dist/assets/{react-query.gen-BwkZCSTW.js → react-query.gen-Bxy9zjSn.js} +1 -1
- package/dist/assets/{react-query.gen-BpYo64Cd.js → react-query.gen-DQUX56Gs.js} +1 -1
- package/dist/assets/research-mock-page-D0KTjYOI.js +1 -0
- package/dist/assets/research-onboarding-route-CoGKBjAq.js +61 -0
- package/dist/assets/{resize-errors-D1myE8D_.js → resize-errors-CN02qg8O.js} +1 -1
- package/dist/assets/{review-terms-screen-1hI3KOuo.js → review-terms-screen-C2mUaOA6.js} +1 -1
- package/dist/assets/{routes-C6gxiCrz.js → routes-CCywyokq.js} +1 -1
- package/dist/assets/{schedules-D_sclJNA.js → schedules-CQOSfZg8.js} +1 -1
- package/dist/assets/{sdk.gen-zA5ns5LT.js → sdk.gen-B3Z8klU-.js} +1 -1
- package/dist/assets/{sdk.gen-pUYA4291.js → sdk.gen-Ec1nF7iZ.js} +1 -1
- package/dist/assets/select-assistant-screen-DkgCyv2V.js +1 -0
- package/dist/assets/{settings-layout-B257Z9LB.js → settings-layout-BLjA2_fl.js} +1 -1
- package/dist/assets/{share-feedback-modal-BfJQ9SbJ.js → share-feedback-modal-34O8UomD.js} +1 -1
- package/dist/assets/{sidebar-tree-BrIPzTJO.js → sidebar-tree-DJnIQnXc.js} +1 -1
- package/dist/assets/{signup-page-DfU1fVg6.js → signup-page-CJeIDhFC.js} +1 -1
- package/dist/assets/{signup-shell-DMX1tgqB.js → signup-shell-Bw9OFI-z.js} +1 -1
- package/dist/assets/skills-page-CcrxOAfG.js +1 -0
- package/dist/assets/{sound-manager-45n1b-Bl.js → sound-manager-DtzFjWmP.js} +1 -1
- package/dist/assets/{sounds-page-7_3U-dlg.js → sounds-page-BHhIVuV0.js} +1 -1
- package/dist/assets/subagent-detail-panel-Cj7wlfR3.js +4 -0
- package/dist/assets/{subagent-store-CN-NNj3H.js → subagent-store-BmGtlv6O.js} +1 -1
- package/dist/assets/{system-events-page-CPI3qkPm.js → system-events-page-B9LdpkBg.js} +1 -1
- package/dist/assets/{system-events-redirect-page-BuXE12UE.js → system-events-redirect-page-Dnoz3v9J.js} +1 -1
- package/dist/assets/{tiptap-document-editor-OSLOFGRH.js → tiptap-document-editor-jcHGSIJg.js} +1 -1
- package/dist/assets/{tool-detail-panel-CS3NNWPR.js → tool-detail-panel-B3u6-K3R.js} +1 -1
- package/dist/assets/{trace-page-BGoPPByx.js → trace-page-D-2QJklH.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-eP-xr_rP.js → upgrade-cancel-page-CgX8IYAL.js} +1 -1
- package/dist/assets/{upgrade-success-page-BQuUJsbC.js → upgrade-success-page-DKKw3H1x.js} +1 -1
- package/dist/assets/{usage-page-9F1P16Dv.js → usage-page-obI_HCGk.js} +1 -1
- package/dist/assets/{use-bus-subscription-BNaztnO7.js → use-bus-subscription-Cv9Js5_J.js} +1 -1
- package/dist/assets/use-is-org-ready-CXt7jaER.js +1 -0
- package/dist/assets/use-onboarding-login-DgxS4dsO.js +1 -0
- package/dist/assets/{use-reduced-motion-BG6r0Z46.js → use-reduced-motion-BlCAREB8.js} +1 -1
- package/dist/assets/use-setup-channel-param-CNNd-gJV.js +9 -0
- package/dist/assets/{use-skill-categories-D2tZfqBc.js → use-skill-categories-CRMzRD6m.js} +1 -1
- package/dist/assets/{utils-P-AuKiE9.js → utils-ChLzMd8R.js} +1 -1
- package/dist/assets/{viewer-store-BR99G-Ii.js → viewer-store-D7cH9LQF.js} +1 -1
- package/dist/assets/{voice-page-LgaYUztu.js → voice-page-BT_3N22n.js} +1 -1
- package/dist/assets/{weather-forecast-display-CfCoDHyw.js → weather-forecast-display-C0Zvm9vl.js} +1 -1
- package/dist/assets/{web-DGDlV45i.js → web-60vPNzAv.js} +1 -1
- package/dist/assets/{web-DFw1Yfb1.js → web-BZF5Krzc.js} +1 -1
- package/dist/assets/{web-CxyEb7Lp.js → web-BfGgEMt3.js} +1 -1
- package/dist/assets/{web-GWxiW7or.js → web-Bqls6sCO.js} +1 -1
- package/dist/assets/{web-YggPvEM4.js → web-DF-93Ff2.js} +1 -1
- package/dist/assets/{web-b9SjJqdc.js → web-Dw05M3EW.js} +1 -1
- package/dist/assets/{web-lNls6p99.js → web-IVArvzQ-.js} +1 -1
- package/dist/assets/{welcome-screen-BNZvYh2g.js → welcome-screen-Dx4jNLFF.js} +1 -1
- package/dist/assets/{workflow-detail-panel-CP2JbBXr.js → workflow-detail-panel-CvbzHGzG.js} +1 -1
- package/dist/assets/workspace-page-DDNf-ykG.js +1 -0
- package/dist/index.html +84 -82
- package/package.json +1 -1
- package/dist/assets/acp-run-detail-panel-zJfy8qiw.js +0 -5
- package/dist/assets/advanced-page-Cpo1TLOb.js +0 -1
- package/dist/assets/connect-page-NvjuA4Dj.js +0 -1
- package/dist/assets/consent-controls-DRPdeZXw.js +0 -1
- package/dist/assets/contacts-gateway-BDJYh797.js +0 -1
- package/dist/assets/contacts-page-route-DpCrCofB.js +0 -9
- package/dist/assets/debug-page-lUWhh0uD.js +0 -4
- package/dist/assets/devices-page-ClysCgSb.js +0 -1
- package/dist/assets/esm--RA963YO.js +0 -2
- package/dist/assets/esm-BSRBg0oR.js +0 -2
- package/dist/assets/esm-CJ8uY1wn.js +0 -2
- package/dist/assets/esm-DTj81fJQ.js +0 -1
- package/dist/assets/esm-cB02a8J9.js +0 -2
- package/dist/assets/identity-page-route-DBYOwn0S.js +0 -1
- package/dist/assets/integrations-page-CcdA6N2s.js +0 -1
- package/dist/assets/intelligence-layout-VkKSilP1.js +0 -1
- package/dist/assets/logout-page-CaaPZSIH.js +0 -1
- package/dist/assets/logs-layout-CaUiCN-a.js +0 -1
- package/dist/assets/plugins-page-CeBV1IVq.js +0 -1
- package/dist/assets/plugins-surface-gCrqfOas.js +0 -1
- package/dist/assets/prechat-route-C8zgjI3Q.js +0 -1
- package/dist/assets/research-mock-page-DaY250XG.js +0 -1
- package/dist/assets/research-onboarding-route-BX-HEXnC.js +0 -61
- package/dist/assets/select-assistant-screen-nRxexeHI.js +0 -1
- package/dist/assets/skills-page-Bx5LerU3.js +0 -1
- package/dist/assets/subagent-detail-panel-Pn3ub3nM.js +0 -4
- package/dist/assets/use-is-org-ready-f4GMUYIe.js +0 -1
- package/dist/assets/use-onboarding-login-NYeSGUNo.js +0 -1
- package/dist/assets/workspace-page-u1KJogzb.js +0 -1
- /package/dist/assets/{account-shell-CyP9etTv.js → account-shell-D0ubbqxG.js} +0 -0
- /package/dist/assets/{api-errors-DPruG7q9.js → api-errors-CPc5p2r9.js} +0 -0
- /package/dist/assets/{app-info-DJQFoVxX.js → app-info-Dtc98M-e.js} +0 -0
- /package/dist/assets/{avatar-bundled-components-DVlFbr6O.js → avatar-bundled-components-DMC1S-8P.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-CNy1XmWD.js → avatar-svg-compositor-D6G3Y6hA.js} +0 -0
- /package/dist/assets/{build.umd-4R02MPXx.js → build.umd-gY3Uzz96.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-Dbdu-8Kf.js → by-tool-use-id-index-KHuXlFNc.js} +0 -0
- /package/dist/assets/{chat-rA5AbKPD.js → chat-C19ZjAL3.js} +0 -0
- /package/dist/assets/{client-identity-KGlckm6M.js → client-identity-DiDHLoNp.js} +0 -0
- /package/dist/assets/{client.gen-DU1JkKSB.js → client.gen-CbVuiseX.js} +0 -0
- /package/dist/assets/{client.gen-BHupOCJH.js → client.gen-nWvCdeJb.js} +0 -0
- /package/dist/assets/{cloud-off-rAv4OHmv.js → cloud-off-fMC5iwVY.js} +0 -0
- /package/dist/assets/{code-aMX9iMYa.js → code-BhoMjTYO.js} +0 -0
- /package/dist/assets/{composer-focus-n921WsjZ.js → composer-focus-Clt7vN-2.js} +0 -0
- /package/dist/assets/{conversation-selection-CNssqGbG.js → conversation-selection-jLLIV1vI.js} +0 -0
- /package/dist/assets/{conversation-store-B8D6wE18.js → conversation-store-BheNrWpL.js} +0 -0
- /package/dist/assets/{cpu-CiHv3fhs.js → cpu-D1r7PLan.js} +0 -0
- /package/dist/assets/{credit-card-BKRB1ZIi.js → credit-card-BwN95biV.js} +0 -0
- /package/dist/assets/{definitions-BughTGuV.js → definitions-DeG2sRFv.js} +0 -0
- /package/dist/assets/{detail-card-DRXR3fb7.js → detail-card-DXLMG-Zw.js} +0 -0
- /package/dist/assets/{dist-Ztj3rqLK.js → dist-CNEsSZUe.js} +0 -0
- /package/dist/assets/{domain-field-DYwuCpup.js → domain-field-CNW1t3OC.js} +0 -0
- /package/dist/assets/{edit-chat-session-DcCgw5Qy.js → edit-chat-session-RMvGKcHJ.js} +0 -0
- /package/dist/assets/{effective-timezone-B99h9zr7.js → effective-timezone-DrYGH2Lb.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-D8lRMt3A.js → emoji-catalog-data-ClLxfwNZ.js} +0 -0
- /package/dist/assets/{environment-store-B83Xai7l.js → environment-store-CN3UaYQg.js} +0 -0
- /package/dist/assets/{event-bus-B3E3w-q2.js → event-bus-ULoEgfFr.js} +0 -0
- /package/dist/assets/{external-link-RJkZLlff.js → external-link-BgOnp59e.js} +0 -0
- /package/dist/assets/{file-text-ClqzuFsu.js → file-text-D4wmdFsJ.js} +0 -0
- /package/dist/assets/{format-BDkwdD2m.js → format-DuvgAcxs.js} +0 -0
- /package/dist/assets/{format-date-D4tzd1DT.js → format-date-CmX7EYBN.js} +0 -0
- /package/dist/assets/{format-file-size-CBQjPwkk.js → format-file-size-D7iZejgy.js} +0 -0
- /package/dist/assets/{globe-D3P5sSKJ.js → globe-CRuerXYx.js} +0 -0
- /package/dist/assets/{haptics-BE_0g4mc.js → haptics-DUNUKgg4.js} +0 -0
- /package/dist/assets/{hard-drive-CZEg1Cqc.js → hard-drive-DsJ64Fuu.js} +0 -0
- /package/dist/assets/{impersonate-version-flag-DyVWQf97.js → impersonate-version-flag-BpzPjXeb.js} +0 -0
- /package/dist/assets/{info-ciQS_i3y.js → info-C9uyv2bI.js} +0 -0
- /package/dist/assets/{lib-BNGjysgr.js → lib-DWRDi23Z.js} +0 -0
- /package/dist/assets/{link-2-r_QPxX18.js → link-2-BIp7l4R9.js} +0 -0
- /package/dist/assets/{llm-dimension-8g-Go8uq.js → llm-dimension-DyYwG3mU.js} +0 -0
- /package/dist/assets/{loader-circle-BFRVtR3K.js → loader-circle-BITX1qOw.js} +0 -0
- /package/dist/assets/{log-in-CEw63CGU.js → log-in-BCOweEUO.js} +0 -0
- /package/dist/assets/{minimize-2-dKm10qRD.js → minimize-2-BQKYHW0m.js} +0 -0
- /package/dist/assets/{misc-CFzLzLPH.js → misc-GIyc06fS.js} +0 -0
- /package/dist/assets/{monitor-CXU19mVX.js → monitor-xGqXetuk.js} +0 -0
- /package/dist/assets/{moon-CKINz50a.js → moon-rIyEhhAK.js} +0 -0
- /package/dist/assets/{mutation-error-CAO3gDr-.js → mutation-error-BN5zz5X4.js} +0 -0
- /package/dist/assets/{native-deep-link-C2-dXaz_.js → native-deep-link-CkFNpKqQ.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-B65Rny5V.js → onboarding-step-layout-2XcmxqFN.js} +0 -0
- /package/dist/assets/{page-shell-sPPJY6qa.js → page-shell-C3-rU99a.js} +0 -0
- /package/dist/assets/{pdf-B-YWzK66.js → pdf-Cuv7mg8b.js} +0 -0
- /package/dist/assets/{pencil-B90pDI55.js → pencil-CtYlsDsm.js} +0 -0
- /package/dist/assets/{prechat-RG0Q0UrS.js → prechat-BzdosDIx.js} +0 -0
- /package/dist/assets/{prechat-names-Bmsq0aXB.js → prechat-names-DPum8sFP.js} +0 -0
- /package/dist/assets/{proxy-BgtfAoJj.js → proxy-BzcB2wP4.js} +0 -0
- /package/dist/assets/{public-asset-C2P77n3W.js → public-asset-DYtCQInw.js} +0 -0
- /package/dist/assets/{refresh-cw-Dui3Ymsb.js → refresh-cw-Dlu2vgR6.js} +0 -0
- /package/dist/assets/{remote-gateway-session-BigLiDPm.js → remote-gateway-session-C2xcV9Z_.js} +0 -0
- /package/dist/assets/{repeat-nCGBxntG.js → repeat-MDHTMmlC.js} +0 -0
- /package/dist/assets/{return-to-yMLvlnXN.js → return-to-DnS1UWHr.js} +0 -0
- /package/dist/assets/{save-BpAesNEP.js → save-C03NWAqR.js} +0 -0
- /package/dist/assets/{semver-0cyB3qXO.js → semver-DMpUdXpu.js} +0 -0
- /package/dist/assets/{setting-row-7y2HT-DP.js → setting-row-Ci9YIJwu.js} +0 -0
- /package/dist/assets/{sparkles-Bla177ar.js → sparkles-Bkcjn8HQ.js} +0 -0
- /package/dist/assets/{status-badge-pill-j3ke1d9o.js → status-badge-pill-CXey_r2B.js} +0 -0
- /package/dist/assets/{step-indicator-dots-WlYRNQOd.js → step-indicator-dots-CvPP_zNN.js} +0 -0
- /package/dist/assets/{triangle-alert-C3aHZq1F.js → triangle-alert-BcZY_IvR.js} +0 -0
- /package/dist/assets/{typed-storage-DjORmu8t.js → typed-storage-BGMPjrzL.js} +0 -0
- /package/dist/assets/{usage-window-B-YOzKJi.js → usage-window-C6gWu5Qu.js} +0 -0
- /package/dist/assets/{use-active-assistant-id-BVzVN4_g.js → use-active-assistant-id-iCLBbJXU.js} +0 -0
- /package/dist/assets/{use-is-mobile-jACt_z2d.js → use-is-mobile-Cqknxs2C.js} +0 -0
- /package/dist/assets/{user-plus-COoYKnWs.js → user-plus-D30zPuGV.js} +0 -0
- /package/dist/assets/{workflow-status-ByHycBJ_.js → workflow-status-BF9EOzZI.js} +0 -0
- /package/dist/assets/{x-DxL-bCuT.js → x-B0gfyRAR.js} +0 -0
- /package/dist/assets/{xterm-B8LaLTHh.js → xterm-BPl0dA68.js} +0 -0
- /package/dist/assets/{xterm-addon-fit--RE59D-m.js → xterm-addon-fit-BCzoNVYn.js} +0 -0
package/dist/index.html
CHANGED
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
<link rel="apple-touch-icon" href="/assistant/favicon.svg" />
|
|
11
11
|
<title>Vellum Assistant</title>
|
|
12
12
|
<script src="/assistant/theme-init.js"></script>
|
|
13
|
-
<script type="module" crossorigin src="/assistant/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assistant/assets/index-CWzNQ8A_.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assistant/assets/chunk-jRWAZmH_.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assistant/assets/preload-helper-BewR0kVT.js">
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/dist-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/api-errors-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/capture-error-
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/dist-CNEsSZUe.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/api-errors-CPc5p2r9.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/capture-error-8raDoxFL.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assistant/assets/jsx-runtime-CVSDxk6A.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assistant/assets/react-DJZBPgpf.js">
|
|
21
21
|
<link rel="modulepreload" crossorigin href="/assistant/assets/QueryClientProvider-DKhXIxGb.js">
|
|
22
22
|
<link rel="modulepreload" crossorigin href="/assistant/assets/useMutation-Lj4VunQV.js">
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assistant/assets/useQuery-B45lW1Kk.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assistant/assets/queryOptions-BtNi-_9H.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/lib-
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/lib-DWRDi23Z.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assistant/assets/create-selectors-BE0_e_Ed.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assistant/assets/is-electron-C_ZTVhv8.js">
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/assistant/assets/local-settings-lVNyIOJ_.js">
|
|
@@ -57,35 +57,35 @@
|
|
|
57
57
|
<link rel="modulepreload" crossorigin href="/assistant/assets/tag-CW6WC4fE.js">
|
|
58
58
|
<link rel="modulepreload" crossorigin href="/assistant/assets/toggle-X_kQW5my.js">
|
|
59
59
|
<link rel="modulepreload" crossorigin href="/assistant/assets/src-CUycEQpW.js">
|
|
60
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/misc-
|
|
61
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/proxy-
|
|
62
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/AnimatePresence-
|
|
63
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/use-reduced-motion-
|
|
60
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/misc-GIyc06fS.js">
|
|
61
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/proxy-BzcB2wP4.js">
|
|
62
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/AnimatePresence-VF_hIZFD.js">
|
|
63
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/use-reduced-motion-BlCAREB8.js">
|
|
64
64
|
<link rel="modulepreload" crossorigin href="/assistant/assets/createLucideIcon-BlMXrA59.js">
|
|
65
65
|
<link rel="modulepreload" crossorigin href="/assistant/assets/archive-BFILUl9x.js">
|
|
66
66
|
<link rel="modulepreload" crossorigin href="/assistant/assets/arrow-left-CP-EhDNF.js">
|
|
67
67
|
<link rel="modulepreload" crossorigin href="/assistant/assets/arrow-up-nBfZxfhi.js">
|
|
68
68
|
<link rel="modulepreload" crossorigin href="/assistant/assets/ban-BpBuRCKI.js">
|
|
69
69
|
<link rel="modulepreload" crossorigin href="/assistant/assets/bell-DB1SrBre.js">
|
|
70
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/x-
|
|
71
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/prechat-
|
|
72
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/client.gen-
|
|
73
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-
|
|
70
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/x-B0gfyRAR.js">
|
|
71
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/prechat-BzdosDIx.js">
|
|
72
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/client.gen-CbVuiseX.js">
|
|
73
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-B3Z8klU-.js">
|
|
74
74
|
<link rel="modulepreload" crossorigin href="/assistant/assets/device-settings-BBwtGKJb.js">
|
|
75
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/return-to-
|
|
76
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/routes-
|
|
77
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/native-biometric-
|
|
78
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/platform-detection-
|
|
79
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/impersonate-version-flag-
|
|
80
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/assistant-identity-store-
|
|
81
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/effective-timezone-
|
|
82
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/semver-
|
|
83
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/messages-
|
|
84
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/chat-
|
|
85
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/diagnostics-
|
|
86
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/conversation-store-
|
|
87
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/typed-storage-
|
|
88
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/detail-shell-
|
|
75
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/return-to-DnS1UWHr.js">
|
|
76
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/routes-CCywyokq.js">
|
|
77
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/native-biometric-C5AdTx4r.js">
|
|
78
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/platform-detection-B1WOWEur.js">
|
|
79
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/impersonate-version-flag-BpzPjXeb.js">
|
|
80
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/assistant-identity-store-DP4B8mmA.js">
|
|
81
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/effective-timezone-DrYGH2Lb.js">
|
|
82
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/semver-DMpUdXpu.js">
|
|
83
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/messages-Doco46Z6.js">
|
|
84
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/chat-C19ZjAL3.js">
|
|
85
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/diagnostics-BQUtALh-.js">
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/conversation-store-BheNrWpL.js">
|
|
87
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/typed-storage-BGMPjrzL.js">
|
|
88
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/detail-shell-C--69S4R.js">
|
|
89
89
|
<link rel="modulepreload" crossorigin href="/assistant/assets/bookmark-C3S-p0MQ.js">
|
|
90
90
|
<link rel="modulepreload" crossorigin href="/assistant/assets/brain-Bs6LnfHO.js">
|
|
91
91
|
<link rel="modulepreload" crossorigin href="/assistant/assets/bug-DDcuQ3au.js">
|
|
@@ -96,64 +96,66 @@
|
|
|
96
96
|
<link rel="modulepreload" crossorigin href="/assistant/assets/chevron-up-BRZN6p_l.js">
|
|
97
97
|
<link rel="modulepreload" crossorigin href="/assistant/assets/circle-alert-DvNg50UK.js">
|
|
98
98
|
<link rel="modulepreload" crossorigin href="/assistant/assets/circle-check-DzlJxj_M.js">
|
|
99
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
100
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
101
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
102
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
103
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
104
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
105
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
106
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
107
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
108
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
109
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
110
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
111
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
112
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
113
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
114
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
115
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
116
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
117
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
118
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
119
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/
|
|
99
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/clipboard-copy-cZENPJ25.js">
|
|
100
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/cloud-off-fMC5iwVY.js">
|
|
101
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/code-BhoMjTYO.js">
|
|
102
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/cpu-D1r7PLan.js">
|
|
103
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/credit-card-BwN95biV.js">
|
|
104
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/avatar-svg-compositor-D6G3Y6hA.js">
|
|
105
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/animated-avatar-FIuLddxJ.js">
|
|
106
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/external-link-BgOnp59e.js">
|
|
107
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/file-text-D4wmdFsJ.js">
|
|
108
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/globe-CRuerXYx.js">
|
|
109
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/hard-drive-DsJ64Fuu.js">
|
|
110
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/info-C9uyv2bI.js">
|
|
111
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/loader-circle-BITX1qOw.js">
|
|
112
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/log-in-BCOweEUO.js">
|
|
113
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/minimize-2-BQKYHW0m.js">
|
|
114
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/monitor-xGqXetuk.js">
|
|
115
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/moon-rIyEhhAK.js">
|
|
116
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/pencil-CtYlsDsm.js">
|
|
117
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/plus-CzwTg9D8.js">
|
|
118
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/refresh-cw-Dlu2vgR6.js">
|
|
119
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/sparkles-Bkcjn8HQ.js">
|
|
120
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/triangle-alert-BcZY_IvR.js">
|
|
121
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/user-plus-D30zPuGV.js">
|
|
120
122
|
<link rel="modulepreload" crossorigin href="/assistant/assets/chunk-5KNZJZUH-DdS6bb-3.js">
|
|
121
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/client.gen-
|
|
122
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-
|
|
123
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/api-
|
|
124
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/remote-gateway-session-
|
|
125
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/event-bus-
|
|
123
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/client.gen-nWvCdeJb.js">
|
|
124
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-Ec1nF7iZ.js">
|
|
125
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/api-DvthVfI2.js">
|
|
126
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/remote-gateway-session-C2xcV9Z_.js">
|
|
127
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/event-bus-ULoEgfFr.js">
|
|
126
128
|
<link rel="modulepreload" crossorigin href="/assistant/assets/resolved-assistants-store-Dqf0LJrA.js">
|
|
127
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/auth-store-
|
|
128
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/composer-focus-
|
|
129
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/by-tool-use-id-index-
|
|
130
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/subagent-store-
|
|
131
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/conversation-selection-
|
|
132
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/prefs-
|
|
129
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/auth-store-B8KDWYi4.js">
|
|
130
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/composer-focus-Clt7vN-2.js">
|
|
131
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/by-tool-use-id-index-KHuXlFNc.js">
|
|
132
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/subagent-store-BmGtlv6O.js">
|
|
133
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/conversation-selection-jLLIV1vI.js">
|
|
134
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/prefs-BK4ReLBx.js">
|
|
133
135
|
<link rel="modulepreload" crossorigin href="/assistant/assets/infiniteQueryOptions-C6p49ZmI.js">
|
|
134
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/react-query.gen-
|
|
135
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/react-query.gen-
|
|
136
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/feature-flag-catalog-
|
|
137
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/assistant-feature-flag-store-
|
|
138
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/use-bus-subscription-
|
|
139
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/use-is-mobile-
|
|
140
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/use-is-org-ready-
|
|
141
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/build-state-
|
|
142
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/login-flow-
|
|
143
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/use-onboarding-login-
|
|
144
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/utils-
|
|
145
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/sound-manager-
|
|
146
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/client-identity-
|
|
147
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/browser-
|
|
148
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/native-deep-link-
|
|
149
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/native-file-
|
|
150
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/client-feature-flag-store-
|
|
151
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/viewer-store-
|
|
152
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/conversation-list-fetchers-
|
|
153
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/edit-chat-session-
|
|
154
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/haptics-
|
|
155
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/public-asset-
|
|
156
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/workflow-status-
|
|
136
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/react-query.gen-DQUX56Gs.js">
|
|
137
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/react-query.gen-Bxy9zjSn.js">
|
|
138
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/feature-flag-catalog-CRFA909Q.js">
|
|
139
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/assistant-feature-flag-store-B440uAh9.js">
|
|
140
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/use-bus-subscription-Cv9Js5_J.js">
|
|
141
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/use-is-mobile-Cqknxs2C.js">
|
|
142
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/use-is-org-ready-CXt7jaER.js">
|
|
143
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/build-state-DAcnY2g_.js">
|
|
144
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/login-flow-COr5zRoB.js">
|
|
145
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/use-onboarding-login-DgxS4dsO.js">
|
|
146
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/utils-ChLzMd8R.js">
|
|
147
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/sound-manager-DtzFjWmP.js">
|
|
148
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/client-identity-DiDHLoNp.js">
|
|
149
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/browser-DdI2GrPw.js">
|
|
150
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/native-deep-link-CkFNpKqQ.js">
|
|
151
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/native-file-swemzdL9.js">
|
|
152
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/client-feature-flag-store-D3f7L4rr.js">
|
|
153
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/viewer-store-D7cH9LQF.js">
|
|
154
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/conversation-list-fetchers-D5PpdmFr.js">
|
|
155
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/edit-chat-session-RMvGKcHJ.js">
|
|
156
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/haptics-DUNUKgg4.js">
|
|
157
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/public-asset-DYtCQInw.js">
|
|
158
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/workflow-status-BF9EOzZI.js">
|
|
157
159
|
<link rel="stylesheet" crossorigin href="/assistant/assets/src-CfUWwwYf.css">
|
|
158
160
|
<link rel="stylesheet" crossorigin href="/assistant/assets/index-DMbjaeZr.css">
|
|
159
161
|
<script>window.__VELLUM_CONFIG__={"webUrl":"https://www.vellum.ai","platformUrl":"https://platform.vellum.ai"}</script></head>
|
package/package.json
CHANGED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-BG-GkiMq.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-D-AX8Voo.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-BscuIPxA.js";import"./src-CUycEQpW.js";import{t as o}from"./tag-CW6WC4fE.js";import{t as s}from"./createLucideIcon-BlMXrA59.js";import{t as c}from"./arrow-left-CP-EhDNF.js";import{t as l}from"./brain-Bs6LnfHO.js";import{t as u}from"./chevron-right-B6vEpVY0.js";import{t as d}from"./circle-check-DzlJxj_M.js";import{t as f}from"./code-aMX9iMYa.js";import{t as p}from"./file-text-ClqzuFsu.js";import{t as m}from"./globe-D3P5sSKJ.js";import{t as h}from"./repeat-nCGBxntG.js";import{t as g}from"./triangle-alert-C3aHZq1F.js";import{t as _}from"./x-DxL-bCuT.js";import{At as v,Gi as y,Mt as b,Na as x,Nt as S,Oa as C,Si as ee,Ta as te,Z as w,ct as ne,di as T,dt as E,jt as D,lt as re,mi as ie,ui as ae,ut as oe,xa as O,xi as se}from"./index-CQhaX_6y.js";import{t as ce}from"./status-badge-pill-j3ke1d9o.js";var le=s(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),ue=s(`folder-input`,[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]),k=e(n(),1),A=``;function j(e,t){switch(e){case`complete`:case`completed`:return`completed`;case`failed`:case`error`:return`error`;case void 0:return t;default:return`running`}}function de(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function M(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(v.length):t}function N(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function P(e,t){if(t.updateType===`agent_message_chunk`&&de(t)){N(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:M(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??A,r=M(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(N(e),e.push({kind:`user`,id:n,content:r}));let a=e[e.length-1].content;for(let t=0;t<e.length-1;t++){let n=e[t];if(n.kind===`user`&&n.id.startsWith(`local-marker-`)&&n.content===a){e.splice(t,1);break}}return}case`agent_message_chunk`:{let n=t.messageId??A,r=e[e.length-1];if(r&&r.kind===`agent`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}if(n!==A&&r&&r.kind===`agent`&&r.messageId===A&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}N(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??A,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}N(e),e.push({kind:`thinking`,messageId:n,content:t.content??``,isComplete:!1});return}case`tool_call`:{let n=t.toolCallId;if(n===void 0)return;N(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:j(t.toolStatus,`running`),content:t.content,locations:F(t),rawInput:t.rawInput,rawOutput:t.rawOutput});return}case`tool_call_update`:{let n=t.toolCallId;if(n===void 0)return;let r=e.findIndex(e=>e.kind===`tool`&&e.toolCallId===n);if(r===-1)return;let i=e[r],a=F(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:j(t.toolStatus,i.status),content:t.content??i.content,locations:a??i.locations,rawInput:t.rawInput===void 0?i.rawInput:t.rawInput,rawOutput:t.rawOutput===void 0?i.rawOutput:t.rawOutput};return}case`plan`:{let n=fe(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(N(e),e.push(i)):e[r]=i;return}}}function F(e){let t=e.locations;if(!Array.isArray(t))return;let n=[];for(let e of t){let t=e??{};typeof t.path==`string`&&n.push(typeof t.line==`number`?{path:t.path,line:t.line}:{path:t.path})}return n}function fe(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}let n=Array.isArray(t)?t:Array.isArray(t?.entries)?t.entries:null;return n===null?null:n.map(e=>{let t=e??{},n=t.content??t.label??``;return{label:typeof n==`string`?n:String(n),checked:t.checked===!0||t.status===`completed`}})}function pe(e){let t=[];for(let n of e)P(t,n);return t}function me(e,t){if(e===t)return{kind:`identity`};if(e===null)return{kind:`first`};if(t.length<e.length)return{kind:`fallback`};for(let n=0;n<e.length;n++)if(e[n]!==t[n])return n===e.length-1&&t.length===e.length?{kind:`mutate-last`}:{kind:`fallback`};return t.length===e.length?{kind:`identity`}:{kind:`append`,from:e.length}}function I(){let e=null,t=[];function n(n){return t=pe(n),e=n,t}function r(r){let i=me(e,r);switch(i.kind){case`identity`:return t;case`first`:return n(r);case`append`:{let n=t.slice();for(let e=i.from;e<r.length;e++)P(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function L(e){let t=(0,k.useRef)(null);return t.current??=I(),t.current.project(e)}function R(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=z(e);t&&r.push(t)}return r}function z(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:he(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=ge(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function he(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function ge(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function B(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function V(e){return R(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
|
|
2
|
-
`)}function H(e){if(e!=null){if(typeof e==`string`)return e;if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}}function U(e,t){let n=new Map;for(let t of e)t.type===`diff`&&n.set(t.path,{path:t.path,newText:t.newText,...t.oldText===void 0?{}:{oldText:t.oldText}});for(let e of t??[])n.has(e.path)||n.set(e.path,{path:e.path});return Array.from(n.values())}var W=i();function _e({content:e,isComplete:t}){return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-agent-message`,className:`flex w-full flex-col items-start text-chat text-[var(--content-default)]`,children:[(0,W.jsx)(w,{content:e}),!t&&(0,W.jsx)(E,{className:`mt-1`,"data-testid":`acp-chat-agent-streaming`})]})}function ve({entries:e}){return e.length===0?null:(0,W.jsxs)(`div`,{"data-testid":`acp-chat-plan-block`,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[(0,W.jsx)(y,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`text-inherit`,children:`Plan`})]}),(0,W.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>(0,W.jsxs)(`li`,{"data-testid":`acp-chat-plan-entry`,"data-checked":e.checked,className:`flex items-start gap-2`,children:[e.checked?(0,W.jsx)(d,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,W.jsx)(O,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`}),(0,W.jsx)(`span`,{className:e.checked?`text-body-small-default text-[var(--content-tertiary)] line-through`:`text-body-small-default text-[var(--content-default)]`,children:e.label})]},t))})]})}function ye(e){switch(e){case`max_tokens`:case`max_turn_requests`:return`Stopped: limit reached`;case`refusal`:return`Refused`;case`cancelled`:return`Cancelled`;default:return`Completed`}}function be(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function G({completedAt:e}){return e===void 0?null:(0,W.jsxs)(`span`,{"data-testid":`acp-chat-terminal-time`,children:[`at `,be(e)]})}function xe({status:e,stopReason:t,error:n,completedAt:r}){if(S(e))return null;if(e===`failed`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`failed`,className:`flex items-start gap-2 rounded-lg bg-[var(--system-negative-weak)] px-3 py-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-terminal-failed-icon`,className:`flex h-[12px] w-4 shrink-0 items-center justify-center`,children:(0,W.jsx)(g,{className:`h-4 w-4`})}),(0,W.jsx)(`span`,{children:n??`Run failed`})]});if(e===`cancelled`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`cancelled`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(te,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,W.jsx)(`span`,{children:`Cancelled`}),(0,W.jsx)(G,{completedAt:r})]});let i=ye(t);return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`completed`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(d,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,W.jsx)(`span`,{children:i}),(0,W.jsx)(G,{completedAt:r})]})}function Se({showDot:e,isLast:t,children:n}){return(0,W.jsxs)(`div`,{className:`relative flex items-start gap-2${t?``:` pb-4`}`,children:[!t&&(0,W.jsx)(`div`,{"aria-hidden":!0,className:`absolute bottom-0 left-[6.5px] w-px bg-[var(--border-element)] ${e?`top-[16px]`:`top-0`}`}),e?(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-timeline-dot`,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,W.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}):(0,W.jsx)(`span`,{"aria-hidden":!0,className:`h-[14px] w-[14px] shrink-0`}),(0,W.jsx)(`div`,{className:`min-w-0 flex-1`,children:n})]})}function Ce({content:e,isComplete:t}){let[n,r]=(0,k.useState)(null),i=n??!t,a=e.trim().length>0,o=t?`Thought process`:`Thinking`,s=t?(0,W.jsx)(l,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(E,{dotSize:5,className:`shrink-0`,"data-testid":`acp-chat-thinking-streaming`});return a?(0,W.jsxs)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:[(0,W.jsxs)(`button`,{type:`button`,"aria-expanded":i,onClick:()=>r(!i),"data-testid":`acp-chat-thinking-toggle`,className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,children:[i?(0,W.jsx)(C,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),s,(0,W.jsx)(`span`,{children:o})]}),i&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-body`,className:`mt-1.5 border-l-2 border-[var(--border-base)] pl-3 text-body-small-default text-[var(--content-tertiary)]`,children:(0,W.jsx)(w,{content:e})})]}):(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:(0,W.jsxs)(`div`,{className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[s,(0,W.jsx)(`span`,{children:o})]})})}var we={running:`neutral`,completed:`positive`,error:`negative`,ended:`neutral`},Te={running:`Running`,completed:`Completed`,error:`Failed`,ended:`Ended`},Ee={read:`Read file`,edit:`Edit file`,delete:`Delete file`,move:`Move file`,search:`Search`,execute:`Run command`,think:`Thinking`,fetch:`Fetch`,switch_mode:`Switch mode`},De=`Tool call`,Oe={read:p,edit:le,delete:ae,move:ue,search:ee,execute:T,think:l,fetch:m,switch_mode:h},ke=new Set([`read`,`edit`,`delete`,`move`]);function Ae({toolKind:e}){return(0,W.jsx)(e&&Oe[e]||f,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`})}function K({label:e,value:t,testId:n}){return(0,W.jsxs)(`div`,{"data-testid":n,children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(`pre`,{className:`max-h-60 overflow-auto rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] p-2.5 font-mono text-body-small-default text-[var(--content-secondary)]`,children:t})]})}function je({block:e,isTerminal:t=!1,onOpenDiff:n,onOpenOutput:r}){let[i,s]=(0,k.useState)(!1),c=(0,k.useMemo)(()=>R(e.content),[e.content]),l=(0,k.useMemo)(()=>V(e.content),[e.content]),d=(0,k.useMemo)(()=>l.split(`
|
|
3
|
-
`).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith("```"))||`View output`,[l]),f=(0,k.useMemo)(()=>U(c,e.locations),[c,e.locations]),m=t&&e.status===`running`?`ended`:e.status,h=m===`running`,g=e.toolKind&&Ee[e.toolKind]||De,_=B(e.rawInput)??e.title,v=_&&_!==g&&(!ke.has(e.toolKind??``)||f.length===0)?_:null,y=H(e.rawInput),b=H(e.rawOutput),x=y!==void 0||b!==void 0;return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-tool-card`,"data-status":e.status,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(Ae,{toolKind:e.toolKind}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,title:e.title,children:g}),(0,W.jsx)(o,{tone:we[m],"data-testid":`acp-chat-tool-status`,children:Te[m]}),h&&(0,W.jsx)(E,{className:`shrink-0`,"data-testid":`acp-chat-tool-running`})]}),v&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-tool-detail`,className:`mt-1.5 font-mono text-body-small-default whitespace-pre-wrap break-words text-[var(--content-secondary)]`,children:v}),f.length>0&&(0,W.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:f.map(t=>{let r=t.oldText!==void 0||t.newText!==void 0,i=`flex max-w-full items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-2 py-1 text-body-small-default text-[var(--content-secondary)]`;return r?(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-file-chip`,onClick:()=>n(e.toolCallId,t),title:t.path,className:`${i} cursor-pointer transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(p,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path):(0,W.jsxs)(`span`,{"data-testid":`acp-chat-tool-file-ref`,title:t.path,className:i,children:[(0,W.jsx)(p,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path)})}),l.length>0&&(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-output-open`,onClick:()=>r?.(e.toolCallId),className:`mt-2 flex w-full items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-2.5 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:d}),(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`})]}),x&&(0,W.jsxs)(`div`,{className:`mt-2`,"data-testid":`acp-chat-tool-raw`,children:[(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-raw-toggle`,"aria-expanded":i,onClick:()=>s(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-default)]`,children:[i?(0,W.jsx)(C,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{children:i?`Hide raw input/output`:`Show raw input/output`})]}),i&&(0,W.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-2`,children:[y!==void 0&&(0,W.jsx)(K,{label:`Raw input`,value:y,testId:`acp-chat-tool-raw-input`}),b!==void 0&&(0,W.jsx)(K,{label:`Raw output`,value:b,testId:`acp-chat-tool-raw-output`})]})]})]})}function Me({content:e}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-user-turn`,className:`flex w-full justify-end`,children:(0,W.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--surface-lift)] px-4 py-3 whitespace-pre-wrap text-chat text-[var(--content-default)]`,children:e})})}function Ne(e,t){let n=e=>new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(e);return e>0&&e<.01?`<${n(.01)}`:n(e)}var q=new Intl.NumberFormat(`en-US`);function J({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex items-baseline gap-1`,"data-usage-stat":e.toLowerCase(),children:[(0,W.jsx)(a,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-secondary)] tabular-nums`,children:t})]})}function Pe({entry:e}){let{inputTokens:t,outputTokens:n,costAmount:r,costCurrency:i}=e;if(t===void 0&&n===void 0)return null;let a=t??0,o=n??0,s=r!=null&&i!=null;return(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,"data-testid":`acp-usage-meter`,children:[(0,W.jsx)(J,{label:`Input`,value:q.format(a)}),(0,W.jsx)(J,{label:`Output`,value:q.format(o)}),s&&(0,W.jsx)(J,{label:`Cost`,value:Ne(r,i)})]})}function Fe({content:e}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-command-output`,className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 [&_pre]:!max-h-none`,children:(0,W.jsx)(w,{content:V(e),hardLineBreaks:!0})})}var Y=2e3;function X(e){if(e===``)return[];let t=e.split(`
|
|
4
|
-
`);return e.endsWith(`
|
|
5
|
-
`)&&t.pop(),t}function Ie(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o]===t[s]?(a.push({type:`ctx`,text:e[o],oldNo:o+1,newNo:s+1}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,text:e[o],oldNo:o+1}),o++):(a.push({type:`add`,text:t[s],newNo:s+1}),s++);for(;o<n;)a.push({type:`del`,text:e[o],oldNo:o+1}),o++;for(;s<r;)a.push({type:`add`,text:t[s],newNo:s+1}),s++;return a}function Le(e,t){let n=X(e),r=X(t);return n.length>Y||r.length>Y?[{type:`too-large`,text:`Diff too large to render (over ${Y.toLocaleString()} lines)`}]:n.length===0?r.map((e,t)=>({type:`add`,text:e,newNo:t+1})):r.length===0?n.map((e,t)=>({type:`del`,text:e,oldNo:t+1})):Ie(n,r)}var Z=`—`;function Q(e){switch(e){case`add`:return`bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`;case`del`:return`bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`;case`too-large`:return`text-[var(--content-tertiary)] italic`;default:return`text-[var(--content-tertiary)]`}}function Re(e){switch(e){case`add`:return`+`;case`del`:return`-`;default:return` `}}function ze({path:e,oldText:t,newText:n}){let r=Le(t??``,n??``);return(0,W.jsx)(`div`,{"aria-label":`Diff for ${e}`,"data-testid":`acp-chat-file-diff`,className:`flex flex-col overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:(0,W.jsx)(`div`,{className:`overflow-x-auto font-mono text-xs`,children:r.map((e,t)=>(0,W.jsx)(Be,{row:e},t))})})}function Be({row:e}){return e.type===`too-large`?(0,W.jsx)(`div`,{"data-diff-type":`too-large`,className:`px-3 py-2 whitespace-pre-wrap ${Q(e.type)}`,children:e.text}):(0,W.jsxs)(`div`,{"data-diff-type":e.type,className:`flex items-start whitespace-pre ${Q(e.type)}`,children:[(0,W.jsx)(`span`,{className:`w-10 shrink-0 select-none px-2 text-right text-[var(--content-tertiary)] tabular-nums`,children:e.oldNo??Z}),(0,W.jsx)(`span`,{className:`w-10 shrink-0 select-none px-2 text-right text-[var(--content-tertiary)] tabular-nums`,children:e.newNo??Z}),(0,W.jsx)(`span`,{className:`w-4 shrink-0 select-none text-center`,children:Re(e.type)}),(0,W.jsx)(`span`,{className:`flex-1 pr-3`,children:e.text})]})}var Ve=80;function $(e){return e.scrollHeight-e.clientHeight-e.scrollTop<=Ve}function He(e){let t=(0,k.useRef)(null),n=(0,k.useRef)(!0),[r,i]=(0,k.useState)(!1),a=(0,k.useCallback)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[]),o=(0,k.useCallback)(()=>{let e=t.current;if(!e)return;let r=$(e);n.current=r,i(e=>e===!r?e:!r)},[]),s=(0,k.useCallback)(()=>{n.current=!0,a(),i(!1)},[a]),c=(0,k.useCallback)(e=>{let r=t.current;r&&r.removeEventListener(`scroll`,o),t.current=e,e&&(e.addEventListener(`scroll`,o,{passive:!0}),n.current?e.scrollTop=e.scrollHeight:o())},[o]);return(0,k.useLayoutEffect)(()=>{n.current?a():o()},[e,a,o]),{scrollRef:c,showScrollToLatest:r,scrollToLatest:s}}function Ue(e,t){switch(e.kind){case`user`:return`user-${e.id||t}`;case`agent`:return`agent-${e.messageId||t}`;case`thinking`:return`thinking-${e.messageId||t}`;case`tool`:return`tool-${e.toolCallId}`;case`plan`:return`plan`}}var We=[];function Ge({entry:e,onClose:t}){let n=S(e.status),i=L(D(t=>t.byId[e.acpSessionId]?.events??We)),[o,s]=(0,k.useState)(null),[c,l]=(0,k.useState)(e.acpSessionId);c!==e.acpSessionId&&(l(e.acpSessionId),s(null));let d=(0,k.useCallback)((e,t)=>s({kind:`diff`,toolCallId:e,path:t.path}),[]),f=(0,k.useCallback)(e=>s({kind:`output`,toolCallId:e}),[]),p=(0,k.useCallback)(()=>s(null),[]),m=(0,k.useMemo)(()=>o?i.find(e=>e.kind===`tool`&&e.toolCallId===o.toolCallId)??null:null,[o,i]),h=(0,k.useMemo)(()=>o?.kind!==`diff`||!m?null:U(R(m.content),m.locations).find(e=>e.path===o.path)??null,[o,m]),g=o?.kind===`diff`?o.path:m?B(m.rawInput)??m.title??`Output`:`Output`,{scrollRef:_,showScrollToLatest:v,scrollToLatest:y}=He((0,k.useMemo)(()=>({blocks:i,status:e.status,completedAt:e.completedAt}),[i,e.status,e.completedAt])),b=!n;return(0,W.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[o&&(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:p,title:e.agent,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,W.jsx)(a,{variant:`body-small-default`,as:`span`,children:e.agent})}),(0,W.jsx)(u,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,W.jsx)(a,{variant:`body-small-default`,as:`span`,title:g,className:`min-w-0 shrink truncate font-mono text-[var(--content-secondary)]`,children:g})]}),(0,W.jsx)(Ke,{entry:e,isRunning:n,onClose:t,showBack:!!o,onBack:p},`header-${e.acpSessionId}`),o?(0,W.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:o.kind===`diff`?(0,W.jsx)(ze,{path:o.path,oldText:h?.oldText,newText:h?.newText}):(0,W.jsx)(Fe,{content:m?.content})}):(0,W.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,W.jsxs)(`div`,{ref:_,"data-testid":`acp-chat-conversation`,className:`flex h-full flex-col gap-4 overflow-y-auto px-5 py-5`,children:[(0,W.jsx)(qe,{task:e.task}),(0,W.jsx)(`div`,{className:`flex flex-col`,"data-testid":`acp-chat-timeline`,children:i.map((e,t)=>(0,W.jsx)(Se,{showDot:t===0||t===i.length-1||e.kind===`tool`||e.kind===`plan`,isLast:t===i.length-1,children:(0,W.jsx)(Je,{block:e,isTerminal:b,onOpenDiff:d,onOpenOutput:f})},Ue(e,t)))}),!n&&(0,W.jsx)(xe,{status:e.status,stopReason:e.stopReason,error:e.error,completedAt:e.completedAt})]}),v&&(0,W.jsx)(r,{variant:`outlined`,size:`compact`,iconOnly:(0,W.jsx)(x,{}),onClick:y,"aria-label":`Go to newest`,tooltip:`Go to newest`,"data-testid":`acp-chat-scroll-to-latest`,className:`absolute bottom-3 left-1/2 -translate-x-1/2 rounded-full shadow-md`})]}),n&&!o&&(0,W.jsx)(Ye,{acpSessionId:e.acpSessionId},`steer-${e.acpSessionId}`)]})}function Ke({entry:e,isRunning:n,onClose:i,showBack:o=!1,onBack:s}){let[l,u]=(0,k.useState)(!1),d=b(e.status,e.stopReason),f=(0,k.useCallback)(()=>{u(!0),re(e.acpSessionId).catch(e=>{u(!1),t(e,{context:`AcpRunChatView.stop`})})},[e.acpSessionId]);return(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[o&&(0,W.jsx)(r,{variant:`outlined`,iconOnly:(0,W.jsx)(c,{}),onClick:s,"aria-label":`Back to conversation`,tooltip:`Back`,"data-testid":`acp-chat-diff-back`,className:`shrink-0 rounded-lg`}),(0,W.jsx)(oe,{agent:e.agent,className:`h-5 w-5 shrink-0`}),(0,W.jsx)(a,{variant:`title-medium`,title:e.agent,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:e.agent}),(0,W.jsx)(ce,{color:d.color,label:d.label}),(0,W.jsx)(`span`,{className:`flex-1`}),(0,W.jsx)(Pe,{entry:e}),n&&(0,W.jsxs)(`button`,{type:`button`,"aria-label":`Stop run`,onClick:f,disabled:l,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-default disabled:opacity-50`,children:[(0,W.jsx)(ie,{className:`h-3 w-3`,fill:`currentColor`}),(0,W.jsx)(a,{variant:`label-small-default`,children:`Stop`})]}),(0,W.jsx)(r,{variant:`outlined`,iconOnly:(0,W.jsx)(_,{}),onClick:i,"aria-label":`Close run detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]})}function qe({task:e}){return e?(0,W.jsxs)(`div`,{"data-testid":`acp-chat-objective`,children:[(0,W.jsx)(a,{variant:`body-medium-default`,as:`h3`,className:`mb-1 text-[var(--content-emphasised)]`,children:`Objective`}),(0,W.jsx)(a,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:e}),(0,W.jsx)(`div`,{className:`mt-4 h-px w-full bg-[var(--border-hover)]`})]}):null}function Je({block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r}){switch(e.kind){case`user`:return(0,W.jsx)(Me,{content:e.content});case`agent`:return(0,W.jsx)(_e,{content:e.content,isComplete:e.isComplete||t});case`thinking`:return(0,W.jsx)(Ce,{content:e.content,isComplete:e.isComplete||t});case`tool`:return(0,W.jsx)(je,{block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r});case`plan`:return(0,W.jsx)(ve,{entries:e.entries})}}function Ye({acpSessionId:e}){let[n,i]=(0,k.useState)(``),[a,o]=(0,k.useState)(!1);return(0,W.jsx)(`form`,{onSubmit:(0,k.useCallback)(r=>{r.preventDefault();let s=n.trim();if(!s||a)return;o(!0);let c=D.getState().appendLocalMarker({acpSessionId:e,content:`${v}${s}`});ne(e,s).then(()=>i(``)).catch(n=>{c&&D.getState().removeLocalMarker({acpSessionId:e,markerId:c}),t(n,{context:`AcpRunChatView.steer`})}).finally(()=>o(!1))},[n,a,e]),"data-testid":`acp-chat-steer-form`,className:`sticky bottom-0 z-10 shrink-0 border-t border-[var(--border-hover)] bg-[var(--surface-lift)] px-5 py-3`,children:(0,W.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-[var(--surface-base)] px-3 py-2`,children:[(0,W.jsx)(`input`,{type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Steer the run…`,disabled:a,"aria-label":`Steering instruction`,className:`text-body-medium-default min-w-0 flex-1 bg-transparent text-[color:var(--content-default)] placeholder:text-[color:var(--content-tertiary)] focus:outline-none disabled:opacity-50`}),(0,W.jsx)(r,{type:`submit`,variant:`primary`,size:`compact`,iconOnly:(0,W.jsx)(se,{}),disabled:a||n.trim()===``,"aria-label":`Send steering instruction`,className:`shrink-0`})]})})}function Xe({entry:e,onClose:t}){return(0,W.jsx)(Ge,{entry:e,onClose:t})}export{Xe as AcpRunDetailPanel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-BG-GkiMq.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-D-AX8Voo.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./input-D4W4p0pZ.js";import{t as l}from"./toggle-X_kQW5my.js";import{n as u}from"./stat-square-8mff1dLC.js";import{n as d}from"./toast-B0OiPFFj.js";import{t as f}from"./loader-circle-BFRVtR3K.js";import{Bt as p,K as m,Vt as h,c as g,jt as _,q as v,u as y}from"./react-query.gen-BwkZCSTW.js";import{X as b}from"./sdk.gen-pUYA4291.js";import{F as x,P as S}from"./react-query.gen-BpYo64Cd.js";import{Fr as C,x as w}from"./index-CQhaX_6y.js";import{t as T}from"./use-active-assistant-id-BVzVN4_g.js";import{t as E}from"./detail-card-DRXR3fb7.js";import{r as D}from"./assistant-status-panel-qHMHJPNI.js";var O=s();function k({memoryEnabled:e}){let n=T(),r=i(),{data:o}=a({...m({path:{assistant_id:n}}),staleTime:3e4}),s=e=>{v(r,{path:{assistant_id:n}},t=>t&&{...t,workerEnabled:e})},c=p({onSuccess:()=>s(!0)}),u=h({onSuccess:()=>s(!1)}),f=async e=>{try{e?(await c.mutateAsync({path:{assistant_id:n}}),d.success(`Background worker enabled.`)):(await u.mutateAsync({path:{assistant_id:n}}),d.success(`Background worker disabled.`))}catch(e){t(e,{context:`settings-memory-worker-toggle`}),d.error(`Failed to update background worker setting.`)}};if(!o)return null;let g=c.isPending||u.isPending;return(0,O.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,O.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,O.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Background worker`}),(0,O.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Run memory consolidation in a dedicated background process instead of inline. Recommended for heavier memory workloads.`})]}),(0,O.jsx)(l,{checked:o.workerEnabled===!0,onChange:e=>void f(e),"aria-label":`Enable background memory worker`,disabled:!e||g})]})}var A=e(n(),1),j=[[`Mon`,0],[`Tue`,1],[`Wed`,2],[`Thu`,3],[`Fri`,4],[`Sat`,5],[`Sun`,6]];function M(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),t,n));return`${i.getHours().toString().padStart(2,`0`)}:${i.getMinutes().toString().padStart(2,`0`)}`}function N(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate(),t,n);return`${i.getUTCHours().toString().padStart(2,`0`)}:${i.getUTCMinutes().toString().padStart(2,`0`)}`}function P(){return Intl.DateTimeFormat(void 0,{timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??``}function F(e){let t=e?.schedule?.window.start??`06:00`,n=e?.schedule?.window.end??`08:00`;return{enabled:e?.enabled??!0,timezone:`UTC`,frequency:e?.schedule?.frequency??`weekly`,daysOfWeek:e?.schedule?.days_of_week??[0],daysOfMonth:e?.schedule?.days_of_month??[],windowStart:M(t),windowEnd:M(n)}}function I({assistantId:e}){let t=i(),{data:n,isLoading:s,isError:p}=a(S({path:{id:e}})),m=(0,A.useMemo)(()=>F(n),[n]),[h,g]=(0,A.useState)(null),_=h??m,v=h!==null,y=(0,A.useMemo)(()=>P(),[]),[C,w]=(0,A.useState)(null),T=C??_.daysOfMonth.join(`, `),E=o({mutationFn:async t=>{let{data:n}=await b({path:{id:e},body:t,throwOnError:!0});return n}}),D=e=>{g(t=>({...t??m,...e}))},k=e=>{D({daysOfWeek:_.daysOfWeek.includes(e)?_.daysOfWeek.filter(t=>t!==e):[..._.daysOfWeek,e].sort((e,t)=>e-t)})},M=e=>e.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)&&e>=1&&e<=31);return s?(0,O.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,O.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Loading update window settings...`]}):p?(0,O.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:`Failed to load update window policy. Refresh the page to try again.`}):(0,O.jsxs)(`div`,{className:`space-y-6`,children:[(0,O.jsx)(l,{checked:_.enabled,onChange:e=>D({enabled:e}),label:`Automatic updates`,helperText:`Update automatically during a configured time window`}),_.enabled&&(0,O.jsxs)(`div`,{className:`space-y-5`,children:[(0,O.jsxs)(`div`,{className:`space-y-2`,children:[(0,O.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Frequency`}),(0,O.jsx)(`div`,{className:`max-w-[400px]`,children:(0,O.jsx)(u,{ariaLabel:`Frequency`,value:_.frequency,onChange:e=>{e!==`monthly`&&w(null),D({frequency:e})},items:[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}]})})]}),_.frequency===`weekly`&&(0,O.jsxs)(`div`,{className:`space-y-2`,children:[(0,O.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Day(s) of week`}),(0,O.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:j.map(([e,t])=>(0,O.jsx)(r,{variant:`outlined`,size:`compact`,active:_.daysOfWeek.includes(t),onClick:()=>k(t),children:e},t))})]}),_.frequency===`monthly`&&(0,O.jsx)(c,{label:`Day(s) of month`,type:`text`,value:T,onChange:e=>w(e.target.value),onBlur:e=>{let t=M(e.target.value);D({daysOfMonth:t}),w(t.join(`, `))},placeholder:`e.g. 1, 15`,helperText:`Comma-separated day numbers (1–31)`,className:`w-48`}),(0,O.jsxs)(`div`,{className:`space-y-2`,children:[(0,O.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:[`Update window`,y?` (${y})`:``]}),(0,O.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,O.jsx)(c,{type:`time`,value:_.windowStart,onChange:e=>D({windowStart:e.target.value})}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`to`}),(0,O.jsx)(c,{type:`time`,value:_.windowEnd,onChange:e=>D({windowEnd:e.target.value})})]})]})]}),(0,O.jsx)(r,{variant:`primary`,leftIcon:E.isPending?(0,O.jsx)(f,{className:`animate-spin`}):void 0,onClick:async()=>{let n=_.frequency===`monthly`&&C!==null?M(C):_.daysOfMonth;try{await E.mutateAsync({enabled:_.enabled,timezone:`UTC`,schedule:{frequency:_.frequency,days_of_week:_.frequency===`weekly`?_.daysOfWeek:[],days_of_month:_.frequency===`monthly`?n:[],window:{start:N(_.windowStart),end:N(_.windowEnd)}}}),d.success(`Auto-update policy saved.`),g(null),w(null),t.invalidateQueries({queryKey:x({path:{id:e}})})}catch{d.error(`Failed to save policy. Please try again.`)}},disabled:E.isPending||!v,children:`Save policy`})]})}function L(){let{assistant:e,healthz:n}=D(),r=C({platformHostedOnly:!0}),o=e?.is_local?null:e,s=T(),c=i(),u=n?.capabilities?.memoryOptOut===!0,{data:f}=a({...g({path:{assistant_id:s}}),staleTime:3e4,enabled:u}),p=_({onSuccess:e=>{y(c,{path:{assistant_id:s}},e)}}),m=f?.memory?.enabled!==!1,h=async e=>{try{await p.mutateAsync({path:{assistant_id:s},body:{memory:{enabled:e}}}),d.success(e?`Memory enabled.`:`Memory disabled.`)}catch(e){t(e,{context:`settings-memory-toggle`}),d.error(`Failed to update memory setting.`)}};return(0,O.jsxs)(`div`,{className:`space-y-4`,children:[r===`full`&&o&&(0,O.jsx)(E,{title:`Update Window`,subtitle:`Configure when automatic updates are applied.`,children:(0,O.jsx)(I,{assistantId:o.id})}),r===`disabled`&&(0,O.jsx)(E,{title:`Update Window`,subtitle:`Configure when automatic updates are applied.`,children:(0,O.jsx)(w,{children:`Log in to the Vellum platform to manage update window policy.`})}),u?(0,O.jsx)(E,{title:`Memory`,subtitle:`Let your assistant remember information from past conversations. Turning this off also pauses memory consolidation.`,accessory:(0,O.jsx)(l,{checked:m,onChange:e=>void h(e),"aria-label":`Enable memory`,disabled:p.isPending}),compactAccessory:!0,children:(0,O.jsx)(k,{memoryEnabled:m})}):null]})}export{L as AdvancedPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D-AX8Voo.js";import{d as r,h as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as a}from"./QueryClientProvider-DKhXIxGb.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./typography-BscuIPxA.js";import{t as l}from"./card-BibIM9x3.js";import{n as u}from"./toast-B0OiPFFj.js";import{t as d}from"./link-2-r_QPxX18.js";import{t as f}from"./loader-circle-BFRVtR3K.js";import{t as p}from"./triangle-alert-C3aHZq1F.js";import{a as m}from"./routes-C6gxiCrz.js";import{t as h}from"./use-active-assistant-id-BVzVN4_g.js";import{n as g,o as _}from"./contacts-gateway-BDJYh797.js";var v=e(t(),1),y=s();function b(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function x(e,t){switch(e){case`expired`:case`not_found`:return`This invite link has expired or already been used.`;case`already_redeemed_by_other`:return`This invite has already been claimed by someone else.`;case`sender_not_found`:return`The sender's assistant could not be found.`;case`not_platform_managed`:return`A2A invite links are only supported for platform-hosted assistants.`;default:return t||`Something went wrong. Please try again.`}}function S(){return(0,y.jsx)(C,{assistantId:h()})}function C({assistantId:e}){let t=r(),s=a(),[h]=i(),S=(0,v.useMemo)(()=>_(h),[h]),C=o({mutationFn:()=>{if(!S)throw Error(`Invalid invite link`);return g(e,{senderAssistantId:S.senderAssistantId,token:S.token})},onSuccess:e=>{e.success&&(s.invalidateQueries({predicate:e=>b(e.queryKey)}),e.alreadyConnected?u(`Already connected`):u(`Connected!`),t(m.contacts.root))}}),w=(0,v.useCallback)(()=>{t(m.contacts.root)},[t]),T=(0,v.useCallback)(()=>{C.mutate()},[C]),E=(0,v.useMemo)(()=>C.isError?C.error instanceof Error?C.error.message:`Something went wrong. Please try again.`:C.data&&!C.data.success?x(C.data.errorCode,C.data.error):null,[C.isError,C.error,C.data]);return S?(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(d,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Connect assistants`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Accepting this link will create a trusted A2A connection between your assistant and the sender's.`}),E&&(0,y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--surface-negative-subtle)`,color:`var(--system-negative-strong)`},children:[(0,y.jsx)(p,{className:`h-4 w-4 shrink-0`}),(0,y.jsx)(c,{variant:`body-small-default`,children:E})]}),(0,y.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,y.jsx)(n,{variant:`primary`,onClick:T,disabled:C.isPending,children:C.isPending?(0,y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Connecting…`]}):`Connect`}),(0,y.jsx)(n,{variant:`outlined`,onClick:w,disabled:C.isPending,children:`Cancel`})]})]})})}):(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(p,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Invalid invite link`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`The link you followed is missing required parameters and cannot be used.`}),(0,y.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,y.jsx)(n,{variant:`primary`,onClick:w,children:`Go to Contacts`})})]})})})}export{S as ConnectPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-CVSDxk6A.js";import{t}from"./card-BibIM9x3.js";import{t as n}from"./checkbox-ueHEk2G-.js";import{a as r,i}from"./routes-C6gxiCrz.js";import{t as a}from"./setting-row-7y2HT-DP.js";var o=e(),s=[`[&_button[data-state=checked]]:bg-[var(--primary-base)]`,`[&_svg]:text-[var(--content-inset)]`,`[&_button[data-state=unchecked]]:bg-[var(--surface-base)]`,`[&_button[data-state=unchecked]]:border-[var(--border-element)]`].join(` `),c=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,l={privacy:{href:r.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:r.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function u({kind:e,checked:t,onChange:r}){let a=l[e];return(0,o.jsx)(n,{checked:t,onCheckedChange:e=>r(e===!0),label:(0,o.jsxs)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:[`I agree to the`,` `,(0,o.jsx)(`a`,{href:i(a.href),target:`_blank`,rel:`noreferrer`,className:`underline`,children:a.text})]}),"aria-label":a.aria,className:s})}function d(){return(0,o.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function f({notes:e}){return!e||e.length===0?null:(0,o.jsxs)(`div`,{className:`rounded-r-md border-l-2 border-[var(--content-secondary)] bg-[var(--surface-base)] py-3 pl-3.5 pr-3.5`,children:[(0,o.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:`What's changed`}),e.length===1?(0,o.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,o.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,o.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,o.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,o.jsx)(`span`,{children:e})]},e))})]})}function p({electron:e,showAnalytics:n=!0,showDiagnostics:r=!0,shareAnalytics:i,shareDiagnostics:s,onShareAnalyticsChange:l,onShareDiagnosticsChange:u,className:f,style:p}){return(0,o.jsxs)(`section`,{className:f,style:p,children:[(0,o.jsx)(`p`,{className:c,children:`Privacy preferences`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[n&&(0,o.jsx)(a,{label:`Share Analytics`,helperText:`Send aggregated product usage data`,checked:i,onChange:l}),n&&r&&(0,o.jsx)(d,{}),r&&(0,o.jsx)(a,{label:`Share Diagnostics`,helperText:`Send crash reports, conversation traces, and session replay data`,checked:s,onChange:u})]})})]})}function m({electron:e,showPrivacy:n=!0,showTos:r=!0,privacyConsent:i,tosAccepted:a,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:m,style:h}){return(0,o.jsxs)(`section`,{className:m,style:h,children:[(0,o.jsx)(`p`,{className:c,children:`Agreements`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3.5`:`gap-4`}`,children:[n&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:d}),(0,o.jsx)(u,{kind:`privacy`,checked:i,onChange:s})]}),r&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:p}),(0,o.jsx)(u,{kind:`tos`,checked:a,onChange:l})]})]})})]})}export{p as n,m as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./api-errors-DPruG7q9.js";import{t as r}from"./client.gen-BHupOCJH.js";import{a as i}from"./routes-C6gxiCrz.js";function a(e){let t=typeof window<`u`?window.location.origin:``,n=new URLSearchParams({senderAssistantId:e.senderAssistantId,token:e.token});return`${t}${i.connect}?${n.toString()}`}function o(e){let t=e.get(`senderAssistantId`)?.trim(),n=e.get(`token`)?.trim();return!t||!n?null:{senderAssistantId:t,token:n}}async function s(i,a){let{data:o,error:s,response:c}=await r.post({url:`/v1/assistants/{assistant_id}/contacts/`,path:{assistant_id:i},body:a,headers:{"Content-Type":`application/json`},throwOnError:!1});if(e(c,s,`Failed to save contact`),!c.ok||!o?.contact)throw new n(c.status,t(s,c,`Failed to save contact`));return o.contact}async function c(i,a){let{error:o,response:s}=await r.delete({url:`/v1/assistants/{assistant_id}/contacts/{contact_id}/`,path:{assistant_id:i,contact_id:a},throwOnError:!1});if(e(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new n(s.status,t(o,s,`Failed to delete contact`))}async function l(i,a){let{error:o,response:s}=await r.post({url:`/v1/assistants/{assistant_id}/contact-channels/{channel_id}/verify/`,path:{assistant_id:i,channel_id:a},throwOnError:!1});if(e(s,o,`Failed to verify channel`),!s.ok)throw new n(s.status,t(o,s,`Failed to verify channel`))}async function u(i,a){let{data:o,error:s,response:c}=await r.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:i},body:{sender_assistant_id:a.senderAssistantId,token:a.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(e(c,s,`Failed to redeem A2A invite`),!c.ok)throw new n(c.status,t(s,c,`Failed to redeem A2A invite`));return{success:o?.success??!0,alreadyConnected:o?.already_connected,error:o?.error,errorCode:o?.error_code}}export{a,l as i,u as n,o,s as r,c as t};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D-AX8Voo.js";import{d as r,h as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as a}from"./QueryClientProvider-DKhXIxGb.js";import{t as o}from"./useQuery-B45lW1Kk.js";import{t as s}from"./useMutation-Lj4VunQV.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{t as l}from"./typography-BscuIPxA.js";import{t as u}from"./card-BibIM9x3.js";import{t as d}from"./dropdown-ChWAdhLG.js";import{t as f}from"./panel-item-Q1g7DFJw.js";import{t as p}from"./confirm-dialog-bfBx6UYv.js";import{t as m}from"./tag-CW6WC4fE.js";import{t as h}from"./input-D4W4p0pZ.js";import{t as g}from"./modal-BNAVT2FK.js";import{n as _}from"./toast-B0OiPFFj.js";import{t as v}from"./createLucideIcon-BlMXrA59.js";import{t as y}from"./arrow-left-CP-EhDNF.js";import{t as b}from"./check-D6WkI0gF.js";import{t as x}from"./chevron-right-B6vEpVY0.js";import{t as S}from"./link-2-r_QPxX18.js";import{t as C}from"./loader-circle-BFRVtR3K.js";import{t as w}from"./pencil-B90pDI55.js";import{t as T}from"./user-plus-COoYKnWs.js";import{Bt as E,C as D,Gt as O,Kt as k,Wt as A,qt as ee}from"./sdk.gen-zA5ns5LT.js";import{B as te,H as ne,Nt as re,Pt as ie,U as ae,V as oe,_ as se,a as ce,o as le,s as ue,v as de,y as j}from"./react-query.gen-BwkZCSTW.js";import{n as M,r as fe,t as N}from"./api-errors-DPruG7q9.js";import{t as P}from"./client.gen-BHupOCJH.js";import{a as F}from"./routes-C6gxiCrz.js";import{t as pe}from"./assistant-identity-store-cODRsfVo.js";import{n as me}from"./viewer-store-BR99G-Ii.js";import{t as I}from"./conversation-store-B8D6wE18.js";import{t as he}from"./assistant-feature-flag-store-D80P_lXI.js";import{t as ge}from"./conversation-selection-CNssqGbG.js";import{t as _e}from"./public-asset-C2P77n3W.js";import{Aa as ve,Ea as L,Ft as ye,Li as be,Ni as xe,Oa as Se,Pt as Ce,Si as R,Vi as z,a as we,da as B,ea as V,i as Te,ki as H,xi as U}from"./index-CQhaX_6y.js";import{t as Ee}from"./use-active-assistant-id-BVzVN4_g.js";import{n as De,t as Oe}from"./mobile-sidebar-drawer-DzYe9XUj.js";import{t as W}from"./detail-card-DRXR3fb7.js";import{a as ke,i as Ae,r as je,t as Me}from"./contacts-gateway-BDJYh797.js";import{t as G}from"./mutation-error-CAO3gDr-.js";var K=v(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Ne=v(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),Pe=v(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),q=e(t(),1),J=c();function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,J.jsx)(m,{tone:r,children:n})}function X(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Z({onClick:e}){return(0,J.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,J.jsx)(S,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function Fe({assistantName:e,connected:t=!1,children:n}){return(0,J.jsx)(`div`,{className:`pl-7`,children:(0,J.jsxs)(u.Root,{children:[(0,J.jsx)(u.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:_e(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[(0,J.jsx)(l,{as:`span`,variant:`body-medium-default`,children:t?`Slack settings`:`Slack setup`}),t?(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5 text-body-small-default text-[var(--content-secondary)]`,children:[(0,J.jsx)(`span`,{className:`size-2 rounded-full bg-[var(--system-positive-strong)]`}),`Connected as `,e]}):null]})]})}),(0,J.jsx)(u.Body,{children:n})]})})}var Ie=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],Le=new Set([`platform`,`a2a`]),Re=new Set([`vellum`,`whatsapp`]);function ze(e){return Re.has(e)}var Be={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`},Ve={no_one:`Hard-deny every inbound message on this channel.`,guardian_only:`Only messages sent by you are admitted.`,trusted_contacts:`Admit verified contacts and the guardian; deny everyone else.`,any_contact:`Admit any matched contact (verified or pending) and the guardian.`,strangers:`Admit everyone, including unrecognised senders.`},He=Ie.map(e=>({value:e,label:Be[e],tooltip:Ve[e]})),Ue={no_one:{title:`Block all messages?`,message:`Setting this channel to “No one” hard-denies every inbound message — including messages from you.
|
|
2
|
-
|
|
3
|
-
You can reverse this at any time.`,confirmLabel:`Block all`,destructive:!0},any_contact:{title:`Allow any contact?`,message:`“Any contact” admits every matched contact in this channel — including pending, unverified ones — not just your verified contacts.
|
|
4
|
-
|
|
5
|
-
Best for channels consisting of only people you already trust.`,confirmLabel:`Allow any contact`},strangers:{title:`Allow strangers?`,message:`Are you sure you want to allow strangers to contact your assistant through this channel?
|
|
6
|
-
|
|
7
|
-
Doing so could cost you money and open you up to security and privacy vulnerabilities.
|
|
8
|
-
|
|
9
|
-
Enable with extreme caution.`,confirmLabel:`Allow strangers`,destructive:!0}},We={slack:{label:`Slack`,Icon:V,disconnectMessage:`This clears the stored Slack bot and app tokens for this assistant. You can reconnect later.`},telegram:{label:`Telegram`,Icon:U,disconnectMessage:`This clears the stored Telegram bot token for this assistant. You can reconnect later.`},phone:{label:`Phone Calling`,Icon:xe,disconnectMessage:`This clears the stored Twilio credentials for this assistant. You can reconnect later.`}};function Ge({assistantName:e,channels:t,pendingChannelKey:n=null,slackThreadMode:r,slackThreadModePending:i=!1,channelPolicies:a,policySavingKey:o=null,policiesLoading:s=!1,policiesError:c=!1,onChannelPolicyChange:l,onSetup:u,onDisconnect:d,onSaveTelegramToken:f,onSaveSlackConfig:m,slackSaveStatus:h,slackSaveError:g,onSlackThreadModeChange:_,onSaveTwilioCredentials:v,onGenerateInviteLink:y,initialExpandedChannel:b=null}){let x=e.trim()||`your assistant`,[S,C]=(0,q.useState)(null),[w,T]=(0,q.useState)(()=>b?new Set([b]):new Set),[E,D]=(0,q.useState)(null),O=S?We[S]:null,k=E?Ue[E.policy]:null,A=(e,t)=>{if(Ue[t]){D({channelKey:e,policy:t});return}l?.(e,t)},ee=e=>{T(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(W,{title:`${x} (Your Assistant)`,accessory:(0,J.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,J.jsx)(W,{title:`Channels`,subtitle:`Manage where ${x} can be reached.`,children:(0,J.jsx)(`div`,{className:`flex flex-col`,children:t.map((t,p)=>(0,J.jsxs)(`div`,{children:[p>0?(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,J.jsx)(Ke,{channel:t,assistantName:e,pending:n===t.key,expanded:w.has(t.key),onToggleExpand:()=>ee(t.key),onSetup:t.key===`slack`?()=>{T(e=>{let n=new Set(e);return n.add(t.key),n})}:u?()=>u(t.key):void 0,onDisconnect:d?()=>C(t.key):void 0,onSaveTelegramToken:f,onSaveSlackConfig:m,slackSaveStatus:h,slackSaveError:g,slackThreadMode:r,slackThreadModePending:i,onSlackThreadModeChange:_,onSaveTwilioCredentials:v,policy:a?.[t.key],policySaving:o===t.key,policyLoading:s,policyError:c,onPolicyChange:l?e=>A(t.key,e):void 0})]},t.key))})}),y?(0,J.jsx)(Z,{onClick:y}):null,(0,J.jsx)(p,{open:S!==null,title:`Disconnect ${O?.label??``}?`,message:O?.disconnectMessage??``,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{S&&d&&d(S),C(null)},onCancel:()=>C(null)}),(0,J.jsx)(p,{open:E!==null,title:k?.title??``,message:k?.message??``,confirmLabel:k?.confirmLabel??`Confirm`,destructive:k?.destructive??!1,onConfirm:()=>{E&&l?.(E.channelKey,E.policy),D(null)},onCancel:()=>D(null)})]})}function Ke({channel:e,assistantName:t,pending:r,expanded:i,onToggleExpand:a,onSetup:o,onDisconnect:s,onSaveTelegramToken:c,onSaveSlackConfig:l,slackSaveStatus:u,slackSaveError:d,slackThreadMode:f,slackThreadModePending:p=!1,onSlackThreadModeChange:m,onSaveTwilioCredentials:h,policy:g,policySaving:_=!1,policyLoading:v=!1,policyError:y=!1,onPolicyChange:b}){let S=We[e.key],C=e.status===`ready`;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 py-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`button`,{type:`button`,className:`flex shrink-0 items-center justify-center`,onClick:a,style:{color:`var(--content-secondary)`},children:i?(0,J.jsx)(Se,{className:`h-4 w-4`}):(0,J.jsx)(x,{className:`h-4 w-4`})}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:S.label}),e.address?(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex items-center gap-2`,children:C?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(L,{className:`h-3 w-3`}),`Connected`]}),(0,J.jsx)(n,{type:`button`,variant:`danger`,onClick:s,disabled:!s||r,children:r?`Disconnecting…`:`Disconnect`})]}):(0,J.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:!o||r,children:r?`Opening…`:`Set up`})})]}),i?(0,J.jsxs)(`div`,{className:C?`flex flex-col gap-4`:void 0,children:[C&&b?(0,J.jsx)(qe,{policy:g,saving:_,loading:v,error:y,onChange:b}):null,e.key===`telegram`?(0,J.jsx)(Q,{onSave:c}):null,e.key===`slack`?(0,J.jsx)(Fe,{assistantName:t,connected:C,children:(0,J.jsx)(we,{assistantName:t,connected:C,onSave:l,saveStatus:u,saveError:d,threadMode:f,threadModePending:p,onThreadModeChange:m})}):null,e.key===`phone`?(0,J.jsx)(Je,{onSave:h}):null]}):null]})}function qe({policy:e,saving:t=!1,loading:n=!1,error:r=!1,onChange:i}){let a=e??`trusted_contacts`;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 pl-7`,children:[(0,J.jsx)(l,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:`Who Can Reach`}),n?(0,J.jsx)(l,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:`Loading…`}):r?(0,J.jsx)(l,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-negative)]`,children:`Couldn’t load this setting. Try reopening this page.`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{style:{maxWidth:280},children:(0,J.jsx)(d,{value:a,onChange:i,options:He,disabled:t,"aria-label":`Channel trust floor`})}),(0,J.jsx)(l,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:Ve[a]})]})]})}function Q({onSave:e}){let[t,r]=(0,q.useState)(``),[i,a]=(0,q.useState)(!1),[o,s]=(0,q.useState)(null),c=t.trim().length>0&&!i;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 pl-7`,children:[(0,J.jsx)(h,{label:`Bot Token`,type:`password`,value:t,onChange:e=>r(e.target.value),placeholder:`Paste your Telegram bot token`,disabled:i,fullWidth:!0}),o?(0,J.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:o}):null,(0,J.jsx)(`div`,{children:(0,J.jsx)(n,{type:`button`,onClick:async()=>{if(!(!e||!c)){a(!0),s(null);try{await e(t.trim()),r(``)}catch(e){s(e instanceof Error?e.message:`Failed to save`)}finally{a(!1)}}},disabled:!c,children:i?`Saving…`:`Save`})})]})}function Je({onSave:e}){let[t,r]=(0,q.useState)(``),[i,a]=(0,q.useState)(``),[o,s]=(0,q.useState)(!1),[c,l]=(0,q.useState)(null),u=t.trim().length>0&&i.trim().length>0&&!o;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 pl-7`,children:[(0,J.jsx)(h,{label:`Account SID`,type:`text`,value:t,onChange:e=>r(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:o,fullWidth:!0}),(0,J.jsx)(h,{label:`Auth Token`,type:`password`,value:i,onChange:e=>a(e.target.value),placeholder:`Twilio auth token`,disabled:o,fullWidth:!0}),c?(0,J.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:c}):null,(0,J.jsx)(`div`,{children:(0,J.jsx)(n,{type:`button`,onClick:async()=>{if(!(!e||!u)){s(!0),l(null);try{await e(t.trim(),i.trim()),r(``),a(``)}catch(e){l(e instanceof Error?e.message:`Failed to save`)}finally{s(!1)}}},disabled:!u,children:o?`Saving…`:`Save`})})]})}var Ye=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function $(e){return Ye.has(e)}function Xe(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t?.status===`verified`||t?.status===`active`&&t?.verifiedAt!=null?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ze(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||$(e.type)&&(r.push({id:e.type,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Qe({name:e,className:t,style:n}){switch(e){case`bot`:return(0,J.jsx)(ve,{className:t,style:n});case`hash`:return(0,J.jsx)(V,{className:t,style:n});case`send`:return(0,J.jsx)(U,{className:t,style:n});case`phone`:return(0,J.jsx)(xe,{className:t,style:n});case`mail`:return(0,J.jsx)(z,{className:t,style:n});case`message-square`:return(0,J.jsx)(be,{className:t,style:n});default:return(0,J.jsx)(K,{className:t,style:n})}}function $e({contactChannels:e,availableChannels:t,a2aEnabled:n,setupLabel:r=`Invite`,verifyLoading:i,verifySubject:a=`self`,onSetupChannel:o,onVerifyChannel:s,onRevokeChannel:c}){let[l,u]=(0,q.useState)(null),[d,f]=(0,q.useState)(null),m=new Map;for(let t of e)t.status!==`revoked`&&(m.has(t.type)||m.set(t.type,t));return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex flex-col`,children:Ze(t,e,n).map((e,t)=>{let n=m.get(e.id);return(0,J.jsxs)(`div`,{children:[t>0&&(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,J.jsx)(et,{info:e,existing:n,setupLabel:r,verifyLoading:i,onSetup:o?()=>o(e.id):void 0,onVerify:s&&e.supportsVerification?()=>u(e):void 0,onRevoke:c&&n?()=>f({channelId:n.id,channel:e}):void 0})]},e.id)})}),l&&(0,J.jsx)(p,{open:!0,title:`Verify ${l.label}`,message:a===`contact`?`This will mark this contact's ${l.label} channel as verified. Your assistant will recognize them when they reach out from it.`:`This will mark your ${l.label} channel as verified. Your assistant will recognize you when you reach out from it.`,confirmLabel:`Verify`,onConfirm:()=>{l&&(s?.(l.id),u(null))},onCancel:()=>u(null)}),d&&(0,J.jsx)(p,{open:!0,title:`Revoke ${d.channel.label}`,message:`This will disconnect the verified channel. The contact will need to re-verify to use this channel again.`,confirmLabel:`Revoke`,destructive:!0,onConfirm:()=>{c?.(d.channelId,d.channel.id),f(null)},onCancel:()=>f(null)})]})}function et({info:e,existing:t,setupLabel:r,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s}){let c=Xe(e,t);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(Qe,{name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:c.kind===`connected`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(L,{className:`h-3 w-3`}),`Connected`]}),s?(0,J.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):c.kind===`verified`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(L,{className:`h-3 w-3`}),`Verified`]}),s?(0,J.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):c.kind===`unverified`?(0,J.jsx)(n,{variant:`outlined`,onClick:o,disabled:!o||i,children:i?`Verifying…`:`Verify`}):c.kind===`setup`?e.id===`a2a`?null:(0,J.jsx)(n,{variant:`outlined`,onClick:a,disabled:!a,children:r}):null})]})}function tt(e){return(0,J.jsx)(nt,{...e},e.contact.id)}function nt({contact:e,savePending:t,deletePending:r,verifyPending:i,mergePending:a=!1,canMerge:o=!1,availableChannels:s,a2aEnabled:c,onSave:l,onDelete:u,onMerge:d,onSetupChannel:f,onVerifyChannel:m,onRevokeChannel:g}){let _=e.displayName===`New Contact`,[v,y]=(0,q.useState)(_?``:e.displayName),[b,x]=(0,q.useState)(e.notes??``),[S,C]=(0,q.useState)(!1),w=v.trim(),T=b.trim(),E=_?``:e.displayName,D=e.notes??``,O=w!==E||T!==D,k=w.length>0&&O&&!t&&!r,A=_&&e.channels.length===0&&e.interactionCount===0,ee=w||e.displayName,te=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(W,{title:ee,accessory:(0,J.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:te,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(h,{label:`Name`,type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:`Give this human a name`,autoFocus:_,disabled:t||r,fullWidth:!0}),(0,J.jsx)(h,{label:`Notes`,type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:`Optional notes about the human which AI will take into account`,disabled:t||r,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(n,{type:`button`,onClick:()=>l({displayName:w,notes:T}),disabled:!k,children:t?`Saving…`:`Save`}),d?(0,J.jsx)(n,{type:`button`,variant:`outlined`,onClick:d,disabled:!o||A||O||a||t||r,title:o?A?`Save this contact before merging`:O?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:a?`Merging…`:`Merge…`}):null,(0,J.jsx)(n,{type:`button`,variant:`danger`,onClick:()=>{A?u():C(!0)},disabled:r,children:r?`Deleting…`:`Delete Contact`})]})]})}),(0,J.jsx)(W,{title:`Channels`,subtitle:`Once verified, your assistant will recognize this contact when they message from these channels.`,children:(0,J.jsx)($e,{contactChannels:e.channels,availableChannels:s,a2aEnabled:c,verifyLoading:i,verifySubject:`contact`,onSetupChannel:f,onVerifyChannel:m,onRevokeChannel:g})}),(0,J.jsx)(p,{open:S,title:`Delete ${e.displayName}?`,message:`This will permanently delete this contact and all their channels. This action cannot be undone.`,confirmLabel:`Delete`,destructive:!0,onConfirm:()=>{C(!1),u()},onCancel:()=>C(!1)})]})}function rt(e){return(0,J.jsx)(it,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function it({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:o,onClose:s}){let[c,u]=(0,q.useState)(``),[d,f]=(0,q.useState)(null);(0,q.useEffect)(()=>{d&&!r.some(e=>e.id===d)&&f(null)},[r,d]);let p=(0,q.useMemo)(()=>{let e=c.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,c]),m=d?r.find(e=>e.id===d)??null:null,h=lt(t);return(0,J.jsx)(g.Root,{open:e,onOpenChange:e=>{!e&&!i&&s()},children:(0,J.jsxs)(g.Content,{size:`md`,children:[(0,J.jsxs)(g.Header,{children:[(0,J.jsx)(g.Title,{icon:Pe,children:m?`Merge "${m.displayName}" into ${h}?`:`Merge another contact into ${h}`}),(0,J.jsx)(g.Description,{children:m?`Channels and notes from the merged contact will move over. The merged contact will be deleted.`:`The contact you pick will be deleted. Its channels and notes will be added to this one.`})]}),(0,J.jsxs)(g.Body,{className:`flex flex-col gap-3`,children:[m?(0,J.jsx)(st,{survivor:t,donor:m}):r.length===0?(0,J.jsx)(ct,{}):(0,J.jsx)(at,{search:c,onSearch:u,candidates:p,onPick:f}),a?(0,J.jsx)(l,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,J.jsx)(g.Footer,{children:m?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(n,{variant:`outlined`,onClick:()=>f(null),disabled:i,leftIcon:(0,J.jsx)(y,{"aria-hidden":!0}),children:`Back`}),(0,J.jsx)(n,{variant:`danger`,onClick:()=>o(m.id),disabled:i,children:i?`Merging…`:`Merge`})]}):(0,J.jsx)(n,{variant:`outlined`,onClick:s,disabled:i,children:`Cancel`})})]})})}function at({search:e,onSearch:t,candidates:n,onPick:r}){return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(h,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:`Search contacts`,leftIcon:(0,J.jsx)(R,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,J.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":`Select a contact to merge`,children:n.length===0?(0,J.jsx)(l,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:`No matching contacts`}):n.map(e=>(0,J.jsx)(ot,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function ot({contact:e,onPick:t}){let n=pt(e).join(` | `)||void 0;return(0,J.jsx)(f,{asChild:!0,label:``,children:(0,J.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,J.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function st({survivor:e,donor:t}){let n=lt(e),{moved:r,duplicates:i}=ft(e,t);return(0,J.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`text-(--content-default)`,children:[`“`,t.displayName,`”`]}),` `,`will be deleted.`]}),(0,J.jsx)(`li`,{children:r.length===0?`No new channels will move to ${n}.`:`${r.length} channel${r.length===1?``:`s`} will move to ${n}: ${r.map(e=>dt(e.type)).join(`, `)}.`}),i.length>0?(0,J.jsxs)(`li`,{className:`text-(--content-tertiary)`,children:[i.length,` duplicate channel`,i.length===1?``:`s`,` already on `,n,` `,`(skipped).`]}):null,t.notes?(0,J.jsx)(`li`,{children:`Notes from the merged contact will be appended.`}):null,(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:`This cannot be undone.`})]})}function ct(){return(0,J.jsx)(l,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:`No other contacts available to merge.`})}function lt(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?`you`:`${e.displayName} (you)`:e.displayName||`this contact`}var ut={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`};function dt(e){return ut[e.toLowerCase()]??e}function ft(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function pt(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(ut[e]??r.type))}return n}function mt({loading:e,guardian:t,assistantName:r,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1}){let[l,d]=(0,q.useState)(``),f=l.trim()?i.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):i;return(0,J.jsx)(u.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsxs)(u.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:`Entries`}),(0,J.jsx)(n,{type:`button`,variant:`ghost`,iconOnly:c?(0,J.jsx)(C,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(H,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":`Add contact`,tintColor:`var(--content-secondary)`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,J.jsx)(ht,{name:t.displayName?`${t.displayName} (You)`:`You`,role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,J.jsx)(ht,{name:r?.trim()||`Your Assistant`,role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,J.jsx)(h,{type:`text`,value:l,onChange:e=>d(e.target.value),placeholder:`Search Contacts`,leftIcon:(0,J.jsx)(R,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,J.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,J.jsx)(ht,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,J.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`No matching contacts`}):null]}):e?null:(0,J.jsx)(n,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,J.jsx)(C,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(T,{"aria-hidden":!0}),children:`Add Contact`})]})})}function ht({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o}){let s=r&&r.length>0?r.join(` | `):void 0;return(0,J.jsx)(f,{asChild:!0,active:i,label:``,trailingAction:o===`pencil`?(0,J.jsx)(w,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):o===`more`?(0,J.jsx)(Ne,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):void 0,children:(0,J.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),s?(0,J.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:s}):null]}),(0,J.jsx)(`span`,{className:`shrink-0`,children:(0,J.jsx)(Y,{role:t,contactType:n})})]})})}function gt(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function _t({open:e,assistantId:t,onClose:r}){let[i,a]=(0,q.useState)(!1),o=(0,q.useRef)(null),c=(0,q.useRef)(!1),u=s({...te({path:{assistant_id:t}})}),d=(0,q.useRef)(u.mutate);(0,q.useLayoutEffect)(()=>{d.current=u.mutate});let f=(0,q.useRef)(u.reset);(0,q.useLayoutEffect)(()=>{f.current=u.reset}),(0,q.useEffect)(()=>{e&&!c.current&&d.current({path:{assistant_id:t}}),c.current=e},[e,t]),(0,q.useEffect)(()=>()=>{o.current&&clearTimeout(o.current)},[]);let p=(0,q.useCallback)(()=>{f.current(),a(!1),o.current&&=(clearTimeout(o.current),null),r()},[r]),m=(0,q.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{a(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>a(!1),2e3)})},[]),_=u.isSuccess&&u.data.token?ke({senderAssistantId:t,token:u.data.token}):``;return(0,J.jsx)(g.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,J.jsxs)(g.Content,{size:`sm`,children:[(0,J.jsx)(g.Header,{children:(0,J.jsx)(g.Title,{children:`Share Connection Link`})}),(0,J.jsx)(g.Body,{children:u.isPending?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,J.jsx)(C,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):u.isError?(0,J.jsxs)(`div`,{className:`space-y-3`,children:[(0,J.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,J.jsx)(n,{variant:`outlined`,onClick:()=>u.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):u.isSuccess?(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(l,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(h,{type:`text`,readOnly:!0,value:_,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>m(_),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,J.jsx)(b,{className:`h-4 w-4`}):(0,J.jsx)(B,{className:`h-4 w-4`})})]}),u.data.expiresAt!=null&&(0,J.jsx)(l,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:gt(u.data.expiresAt)})]}):null}),(0,J.jsx)(g.Footer,{children:(0,J.jsx)(n,{variant:`outlined`,onClick:p,children:`Done`})})]})})}function vt(e){return(0,J.jsx)(yt,{...e},e.contact.id)}function yt({contact:e,savePending:t,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:o,a2aEnabled:s,onSave:c,onMerge:l,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f,onGenerateInviteLink:p}){let m=e.displayName.startsWith(`vellum-principal-`),g=m?``:e.displayName,[_,v]=(0,q.useState)(g),[y,b]=(0,q.useState)(e.notes??``),x=_.trim(),S=y.trim(),C=x!==g.trim()||S!==(e.notes??``).trim(),w=C&&!t,T=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(W,{title:m?`You`:`${e.displayName} (You)`,accessory:(0,J.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(h,{label:`Name`,type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Your name`,disabled:t,fullWidth:!0}),(0,J.jsx)(h,{label:`Notes`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Notes about yourself which AI will take into account`,disabled:t,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(n,{variant:`primary`,onClick:()=>c({displayName:x||e.displayName,notes:S}),disabled:!w,children:t?`Saving…`:`Save`}),l?(0,J.jsx)(n,{variant:`outlined`,onClick:l,disabled:!a||C||i||t,title:a?C?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:i?`Merging…`:`Merge…`}):null]})]})}),(0,J.jsx)(W,{title:`Channels`,subtitle:`Once verified, your assistant will recognize you when you message from these channels.`,children:(0,J.jsx)($e,{contactChannels:e.channels,availableChannels:o,a2aEnabled:s,setupLabel:`Verify me`,verifyLoading:r,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f})}),p?(0,J.jsx)(Z,{onClick:p}):null]})}function bt(e){return typeof e==`string`&&Ie.includes(e)}function xt(e){return Le.has(e)}async function St(e){let{data:t,error:n,response:r}=await P.get({url:`/v1/assistants/{assistant_id}/channel-admission-policy/`,path:{assistant_id:e},throwOnError:!1});if(M(r,n,`Failed to load channel policies.`),!r.ok)throw new N(r.status,fe(n,r,`Failed to load channel policies.`));return(t?.policies??[]).filter(e=>!xt(e.channelType)&&!ze(e.channelType)).map(e=>({...e,policy:bt(e.policy)?e.policy:`trusted_contacts`}))}async function Ct(e,t,n,r){if(xt(t))throw new N(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await P.put({url:`/v1/assistants/{assistant_id}/channel-admission-policy/{channel_type}`,path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},headers:{"Content-Type":`application/json`},throwOnError:!1});if(M(o,a,`Failed to save channel policy.`),!o.ok)throw new N(o.status,fe(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new N(500,`Gateway returned no policy in response.`);return i.policy}function wt(e){let t=a(),n=he.use.channelTrustFloors(),r=(0,q.useMemo)(()=>[`channel-admission-policy`,e],[e]),i=o({queryKey:r,queryFn:()=>St(e),enabled:n}),c=(0,q.useMemo)(()=>{let e={};for(let t of i.data??[])ye(t.channelType)&&(e[t.channelType]=t.policy);return e},[i.data]),l=s({mutationFn:({channelKey:t,policy:n})=>Ct(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:r}),onError:G(`Failed to save channel policy`)}),u=(0,q.useCallback)((e,t)=>{l.mutate({channelKey:e,policy:t})},[l]);return n?{policies:c,savingKey:l.isPending?l.variables?.channelKey??null:null,isLoading:i.isPending,isError:i.isError,onChange:u}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var Tt=[{id:`slack`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],Et={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},Dt=15e3,Ot=[];function kt({assistantId:e,onStartSetupConversation:t}){let n=he.use.a2aChannel(),r=pe.use.name(),c=a(),[l,u]=i(),d=l.get(`setup`),f=d&&ye(d)?d:null;(0,q.useEffect)(()=>{f&&u(e=>(e.delete(`setup`),e),{replace:!0})},[f,u]);let[p,m]=(0,q.useState)({kind:`assistant`}),[h,g]=(0,q.useState)(!1),[v,y]=(0,q.useState)(!1),[b,x]=(0,q.useState)(!1),S=r??`your assistant`,C=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),w=de(C),T=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),te=ue(T),M=o({...se(C),enabled:!!e,select:e=>e.contacts}),fe=o({...le(T),enabled:!!e,refetchInterval:Dt,select:e=>e.snapshots}),N=o({...ce({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await D({path:{assistant_id:e},signal:t,throwOnError:!1});if(!i||i.status===404)return{channels:Tt};if(!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}).data??Ot,P=M.data,F=(0,q.useMemo)(()=>P?.find(e=>e.role===`guardian`)??null,[P]),me=(0,q.useMemo)(()=>P?.filter(e=>e.role!==`guardian`)??[],[P]),I=(0,q.useMemo)(()=>p.kind===`contact`?P?.find(e=>e.id===p.contactId)??null:null,[P,p]),ge=fe.data??[],_e=(0,q.useMemo)(()=>!P||!I?[]:P.filter(e=>e.id!==I.id&&e.role!==`guardian`),[P,I]),ve=_e.length>0,L=(0,q.useRef)(!!f);(0,q.useEffect)(()=>{L.current||F&&(L.current=!0,m({kind:`contact`,contactId:F.id}))},[F]);let be=(0,q.useMemo)(()=>jt(ge),[ge]),xe=be.some(e=>e.key===`slack`&&e.status===`ready`),Se=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),Ce=o({...oe(Se),enabled:xe,select:e=>e.threadMode}).data,R=wt(e),z=(0,q.useCallback)(()=>c.invalidateQueries({queryKey:w}),[c,w]),we=(0,q.useCallback)(()=>c.invalidateQueries({queryKey:te}),[c,te]),B=s({mutationFn:()=>je(e,{displayName:`New Contact`}),onMutate:async()=>{await c.cancelQueries({queryKey:w})},onSuccess:e=>{j(c,C,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),m({kind:`contact`,contactId:e.id})},onError:G(`Failed to create contact`),onSettled:()=>z()}),V=s({mutationFn:t=>Me(e,t),onSuccess:(e,t)=>{j(c,C,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),m({kind:`assistant`})},onError:G(`Failed to delete contact`),onSettled:()=>z()}),H=s({mutationFn:({contactId:t,patch:n})=>je(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{j(c,C,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(`Failed to save contact`),onSettled:()=>z()}),U=ie({onMutate:async()=>{await c.cancelQueries({queryKey:w})},onSuccess:(e,t)=>{let n=e.contact,r=t.body.mergeId;n&&(j(c,C,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==r).map(e=>e.id===n.id?n:e)}:void 0),m({kind:`contact`,contactId:n.id})),x(!1),_.success(`Contacts merged`)},onSettled:()=>z()}),Ee=(0,q.useCallback)(e=>{m(e),y(!1),x(!1),U.reset()},[U]),W=(0,q.useCallback)(()=>{U.reset(),x(!0)},[U]),ke=(0,q.useCallback)(()=>{U.isPending||(x(!1),U.reset())},[U]),K=s({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await E(n):t===`telegram`?await A(n):t===`phone`&&await k(n)},onSettled:()=>we()}),Ne=re({onSuccess:()=>z()}),Pe=(0,q.useCallback)((t,n)=>{Ne.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Ne,e]),Y=s({mutationFn:t=>O({path:{assistant_id:e},body:{botToken:t},throwOnError:!0}),onSettled:()=>we()}),X=Te({assistantId:e}),Z=s({...ae(),onSuccess:()=>{c.invalidateQueries({queryKey:ne(Se)})}}),Fe=s({mutationFn:({accountSid:t,authToken:n})=>ee({path:{assistant_id:e},body:{accountSid:t,authToken:n},throwOnError:!0}),onSettled:()=>we()}),Ie=(0,q.useCallback)(async e=>{await Y.mutateAsync(e)},[Y]),Le=(0,q.useCallback)((e,t)=>{X.mutate({botToken:e,appToken:t})},[X]),Re=(0,q.useCallback)(t=>{Z.mutate({path:{assistant_id:e},body:{threadMode:t}})},[Z,e]),ze=(0,q.useCallback)(async(e,t)=>{await Fe.mutateAsync({accountSid:e,authToken:t})},[Fe]),Be=(0,q.useCallback)(()=>{B.isPending||B.mutate()},[B]),Ve=(0,q.useCallback)(()=>{g(!0)},[]),He=(0,q.useCallback)(()=>{g(!1),z()},[z]),Ue=(0,q.useCallback)(e=>{t&&t(Et[e])},[t]),We=(0,q.useCallback)(e=>{K.mutate(e)},[K]),Ke=(0,q.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[N,t]),qe=(0,q.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[N,t]),Q=s({mutationFn:t=>Ae(e,t.channelId),onSuccess:()=>z(),onError:G(`Failed to verify channel`)}),Je=(0,q.useCallback)(e=>{if(!I)return;let t=I.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&Q.mutate({channelId:t.id})},[I,Q]),Ye=V.isPending?V.variables:null,$=(0,q.useMemo)(()=>I?H.isPending&&H.variables?.contactId===I.id?{...I,displayName:H.variables.patch.displayName,notes:H.variables.patch.notes}:I:null,[I,H.isPending,H.variables]),Xe={loading:M.isLoading,assistantName:S,guardian:F?{id:F.id,displayName:F.displayName.startsWith(`vellum-principal-`)?``:F.displayName,role:F.role,channelTypes:Pt(F.channels,n)}:null,regularContacts:me.filter(e=>e.id!==Ye).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:Pt(e.channels,n)})),selection:p,onAddContact:Be,addingContact:B.isPending};return(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,J.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,J.jsx)(De,{onClick:()=>y(!0)})}),(0,J.jsx)(Oe,{open:v,onClose:()=>y(!1),title:`Contacts`,children:(0,J.jsx)(mt,{...Xe,onSelect:Ee})}),(0,J.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,J.jsx)(mt,{...Xe,onSelect:Ee})}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:p.kind===`assistant`||p.kind===`contact`&&p.contactId===Ye?(0,J.jsx)(Ge,{assistantName:S,channels:be,pendingChannelKey:K.isPending?K.variables??null:null,slackThreadMode:Ce,slackThreadModePending:Z.isPending,channelPolicies:R.policies,policySavingKey:R.savingKey,policiesLoading:R.isLoading,policiesError:R.isError,onChannelPolicyChange:R.onChange,onSetup:t?Ue:void 0,onDisconnect:We,onSaveTelegramToken:Ie,onSaveSlackConfig:Le,slackSaveStatus:X.status,slackSaveError:X.error?.message??null,onSlackThreadModeChange:Re,onSaveTwilioCredentials:ze,onGenerateInviteLink:n?Ve:void 0,initialExpandedChannel:f}):$?$.role===`guardian`?(0,J.jsx)(vt,{contact:$,savePending:H.isPending,verifyPending:Q.isPending,mergePending:U.isPending,canMerge:ve,availableChannels:N,a2aEnabled:n,onSave:e=>{H.mutate({contactId:$.id,patch:e})},onMerge:W,onSetupChannel:t?qe:void 0,onVerifyChannel:Je,onRevokeChannel:Pe,onGenerateInviteLink:n?Ve:void 0}):(0,J.jsx)(tt,{contact:$,savePending:H.isPending,deletePending:V.isPending,verifyPending:Q.isPending,mergePending:U.isPending,canMerge:ve,availableChannels:N,a2aEnabled:n,onSave:e=>{H.mutate({contactId:$.id,patch:e})},onDelete:()=>{V.mutate($.id)},onMerge:W,onSetupChannel:t?Ke:void 0,onVerifyChannel:Je,onRevokeChannel:Pe}):(0,J.jsx)(At,{})}),I?(0,J.jsx)(rt,{open:b,survivor:I,candidates:_e,pending:U.isPending,errorMessage:U.error instanceof Error?U.error.message:U.error?`Failed to merge contacts`:null,onMerge:t=>U.mutate({path:{assistant_id:e},body:{keepId:I.id,mergeId:t}}),onClose:ke}):null,(0,J.jsx)(_t,{open:h,assistantId:e,onClose:He})]})}function At(){return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a contact`})})}function jt(e){let t=new Map;for(let n of e)t.set(n.channel,n);return Ce.map(e=>{let n=t.get(e);return{key:e,status:Mt(n),address:n?.channelHandle??void 0}})}function Mt(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}var Nt={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`,a2a:`A2A`};function Pt(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push(Nt[e]??i.type))}return r}function Ft(){let e=r(),t=Ee();return(0,J.jsx)(kt,{assistantId:t,onStartSetupConversation:t=>{me.getState().setMainView(`chat`);let n=ge();I.getState().setActiveConversationId(n),e(`${F.conversation(n)}?prompt=${encodeURIComponent(t)}`)}},t)}export{Ft as ContactsPageRoute};
|