@vellumai/web 0.11.3-dev.202608131925.65f1085 → 0.11.3-dev.202608132218.8ea1f84
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/{account-page-CTH09aaF.js → account-page-oCk-pFcL.js} +1 -1
- package/dist/assets/{account-shell-MA38eHam.js → account-shell-CvbbMnY0.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-CPH4wZnd.js → acp-run-detail-panel-BDZ7iMc4.js} +1 -1
- package/dist/assets/{activity-steps-panel-5fNjGyxn.js → activity-steps-panel-CxwO5REw.js} +1 -1
- package/dist/assets/{ai-page-BxL3bcYt.js → ai-page-BjeHY3JQ.js} +1 -1
- package/dist/assets/{app-card-G-FXnQE0.js → app-card-Bdb6SWHr.js} +1 -1
- package/dist/assets/{assistant-status-panel-_rEjnmiv.js → assistant-status-panel-iQkvjAse.js} +1 -1
- package/dist/assets/{background-task-detail-panel-DaPu3p9x.js → background-task-detail-panel-B17pM5cg.js} +1 -1
- package/dist/assets/{billing-page-BMlPgEkM.js → billing-page-CbrdpnYD.js} +1 -1
- package/dist/assets/{bookmarks-page-Bl8EGoUt.js → bookmarks-page-BL6TGgss.js} +1 -1
- package/dist/assets/{channels-page-route-DuJ0qqhk.js → channels-page-route-CNekZM2l.js} +1 -1
- package/dist/assets/{chat-markdown-message-BvnYnV3N.js → chat-markdown-message-DZ0tyJJt.js} +1 -1
- package/dist/assets/{command-palette-PbTr9cOW.js → command-palette-De2JEcc6.js} +1 -1
- package/dist/assets/{command-palette-window-page-iU7W1wQL.js → command-palette-window-page-3qMUXKTF.js} +1 -1
- package/dist/assets/{composer-settings-CBtN9i_b.js → composer-settings-D3v8VxQA.js} +1 -1
- package/dist/assets/{contacts-page-route-CuGj5sw_.js → contacts-page-route-uebhaGA5.js} +1 -1
- package/dist/assets/{conversation-navigation-CGdyX7Yz.js → conversation-navigation-D2HbzFxR.js} +1 -1
- package/dist/assets/{credentials-page-DFrfDgp9.js → credentials-page-Duh17QMf.js} +1 -1
- package/dist/assets/{csv-preview-Dsy3KsK8.js → csv-preview-Cm_GyCoF.js} +1 -1
- package/dist/assets/{debug-page-NE0d-J9e.js → debug-page-BQQnzcqh.js} +1 -1
- package/dist/assets/{deploy-dialogs-BU_fA06T.js → deploy-dialogs-CW7n9gg_.js} +1 -1
- package/dist/assets/{deploy-store-Bv8-EVUD.js → deploy-store-BpbtdLWE.js} +1 -1
- package/dist/assets/{detail-card-D6jpbgq6.js → detail-card-Bcut76KV.js} +1 -1
- package/dist/assets/{detail-drawer-D6ySpH6u.js → detail-drawer-DWBmOcD6.js} +1 -1
- package/dist/assets/detail-shell-DBlTVvX-.js +1 -0
- package/dist/assets/{developer-page-f0AxE7UW.js → developer-page-BolRmpfG.js} +1 -1
- package/dist/assets/{document-viewer-container-Cs7VS__y.js → document-viewer-container-Fejpzqjo.js} +2 -2
- package/dist/assets/{document-viewer-page-BI-jcbBl.js → document-viewer-page-5gBWP-Xz.js} +1 -1
- package/dist/assets/{emails-page-DoHq7fhW.js → emails-page-CPExaG9e.js} +1 -1
- package/dist/assets/{file-editor-kvK-BTvB.js → file-editor-CixiWsCF.js} +1 -1
- package/dist/assets/{file-markdown-CJ9VzQaR.js → file-markdown-CyzsCI8p.js} +1 -1
- package/dist/assets/{general-page-B_A6vcVf.js → general-page-C5wRK9wa.js} +1 -1
- package/dist/assets/{home-page-route-DZgQ_lhv.js → home-page-route-07CIfIUB.js} +1 -1
- package/dist/assets/{home-tool-permission-card-uBQ9t-rx.js → home-tool-permission-card-D1j7RDUo.js} +1 -1
- package/dist/assets/{identity-page-route-BqTC4s-t.js → identity-page-route-Tptr568E.js} +1 -1
- package/dist/assets/{index-Ce6hV06s.js → index--dUkjL9A.js} +1 -1
- package/dist/assets/{inspect-page-ByjbqoHp.js → inspect-page-DEYuyIKJ.js} +1 -1
- package/dist/assets/{integrations-page-CEEiGXjH.js → integrations-page-CvVRGnK9.js} +1 -1
- package/dist/assets/{intelligence-layout-BguN0nOZ.js → intelligence-layout-B_hPfVvV.js} +1 -1
- package/dist/assets/{library-detail-page-COgWF9hB.js → library-detail-page-BLxvC299.js} +1 -1
- package/dist/assets/{library-page-Bfj8Emz5.js → library-page-BkRGTF4I.js} +1 -1
- package/dist/assets/{login-page-BDoLzAOH.js → login-page-DjfC7IMH.js} +1 -1
- package/dist/assets/{logout-page-DRbfpENZ.js → logout-page-CLNSW49b.js} +1 -1
- package/dist/assets/{logs-layout-oqaWnHun.js → logs-layout-XlC2nObR.js} +1 -1
- package/dist/assets/{memory-page-route-CxZfjxuZ.js → memory-page-route-BXYVyfzk.js} +1 -1
- package/dist/assets/{memory-router-playground-page-CndmwQcf.js → memory-router-playground-page-DdcpuSsw.js} +1 -1
- package/dist/assets/{message-files-panel-DxRDK4TF.js → message-files-panel-BEmfaR2e.js} +1 -1
- package/dist/assets/{messages-DFzNgN__.js → messages-BiZrrloc.js} +1 -1
- package/dist/assets/{metric-card-Bq3XYibk.js → metric-card-BR-wuKBF.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-DUSKZE8o.js → mobile-sidebar-drawer-CIeloWix.js} +1 -1
- package/dist/assets/{multi-activity-group-CCSpYVuH.js → multi-activity-group-BXTQ6X8A.js} +1 -1
- package/dist/assets/{open-workspace-file-G3HHX4zw.js → open-workspace-file-DVtesm-B.js} +2 -2
- package/dist/assets/{page-shell-CdIPBmn9.js → page-shell-1OE_5puQ.js} +1 -1
- package/dist/assets/{personality-page-BLqP6ld9.js → personality-page-B3GNJtUz.js} +1 -1
- package/dist/assets/{preview-error-B1VBo_R-.js → preview-error-CdFTgKSI.js} +1 -1
- package/dist/assets/{privacy-page-R-gFQxY1.js → privacy-page-CEfC8D-b.js} +1 -1
- package/dist/assets/{provider-callback-page-Df-kWJLZ.js → provider-callback-page-Ca30CkL9.js} +1 -1
- package/dist/assets/{provider-signup-page-B9BUvSWw.js → provider-signup-page-Er1iiXyR.js} +1 -1
- package/dist/assets/{research-mock-page-oYVartoI.js → research-mock-page-Ca80eNq0.js} +1 -1
- package/dist/assets/{research-results-view-CJHX7gyO.js → research-results-view-Dwbvg1l6.js} +1 -1
- package/dist/assets/{routes-B2yKloVE.js → routes-_E31aRpL.js} +6 -6
- package/dist/assets/{sandbox-bridge-op0JYr4m.js → sandbox-bridge-BUZwlj9R.js} +1 -1
- package/dist/assets/{schedules-page-D72-KfGF.js → schedules-page-OsPzWStN.js} +1 -1
- package/dist/assets/{settings-divider-BIZbkj8x.js → settings-divider-DBt_0_4s.js} +1 -1
- package/dist/assets/{settings-layout-7H8SnmSd.js → settings-layout-CchLhlPm.js} +1 -1
- package/dist/assets/{sidebar-tree-BpCvMmRF.js → sidebar-tree-BZ2xKf8G.js} +1 -1
- package/dist/assets/{site-favicon-oNjRPcgx.js → site-favicon-B2X3c7S1.js} +1 -1
- package/dist/assets/{skill-detail-page-BnfWsy4X.js → skill-detail-page-CvfhIouH.js} +1 -1
- package/dist/assets/{skill-detail-panel-BrXGfWEP.js → skill-detail-panel-C_FiBgBj.js} +1 -1
- package/dist/assets/{skills-Bhd7UJO9.js → skills-D7uW0nFG.js} +1 -1
- package/dist/assets/{src-DSfyKUJl.js → src-DjIqxQVd.js} +1 -1
- package/dist/assets/{status-badge-pill-B753ZLbp.js → status-badge-pill-BsBvz0ok.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-au607p6O.js → stt-language-picker-modal-CZVwmf0y.js} +1 -1
- package/dist/assets/{subagent-detail-panel-Bp-kJC1b.js → subagent-detail-panel-D1fgviWv.js} +1 -1
- package/dist/assets/subagent-store-ChHk8ZsH.js +3 -0
- package/dist/assets/{superpowers-page--HvbuYWP.js → superpowers-page-BJ_vVCt9.js} +1 -1
- package/dist/assets/{system-events-page-0-1aEcjr.js → system-events-page-B9SYFHND.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-Ca3qCWYF.js → telegram-setup-wizard-CMzUoq3R.js} +1 -1
- package/dist/assets/{text-preview-zrOb3DAU.js → text-preview-BEzAXXeK.js} +1 -1
- package/dist/assets/{theme-stage-page-ByutlwhC.js → theme-stage-page-o9Regz5c.js} +1 -1
- package/dist/assets/{tiptap-document-editor-BSJheFEz.js → tiptap-document-editor-In8EvAWo.js} +1 -1
- package/dist/assets/{tool-detail-panel-DJyWQ3jc.js → tool-detail-panel-Bre0h0i7.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-DdwTrMXs.js → use-assistant-identity-details-F-vmdrQn.js} +1 -1
- package/dist/assets/{use-attachment-preview-BDwm9o1l.js → use-attachment-preview-CYpKz3dG.js} +1 -1
- package/dist/assets/{use-attachment-squares-DmkEuNJu.js → use-attachment-squares-B-2V8dAp.js} +1 -1
- package/dist/assets/{use-bookmarks-BVqpQBeI.js → use-bookmarks-qQwjOBfE.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-_t0QEz72.js → use-edge-swipe-back-DwhnxjG1.js} +2 -2
- package/dist/assets/{use-edit-app-TR6MpVk_.js → use-edit-app-DiadkpgF.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-DTnGkQm2.js → use-invite-link-dialog-CV2oS3td.js} +1 -1
- package/dist/assets/{use-skill-actions-D49Ro87V.js → use-skill-actions-Cy4cpIV0.js} +1 -1
- package/dist/assets/{use-sticky-profiles-BP78KHwd.js → use-sticky-profiles-CSu7FGUP.js} +1 -1
- package/dist/assets/{use-subagent-card-data-Dk7dN9L7.js → use-subagent-card-data-RN-h9BRQ.js} +1 -1
- package/dist/assets/use-touch-mobile-CK865dP2.js +1 -0
- package/dist/assets/use-transcript-message-by-id-C1KuuwSe.js +1 -0
- package/dist/assets/{use-transcript-messages-DqWZKk3K.js → use-transcript-messages-Chf-Hjtx.js} +1 -1
- package/dist/assets/{viewer-store-k6kMTjkK.js → viewer-store-DCKZF26V.js} +1 -1
- package/dist/assets/{voice-list-BitYX0n2.js → voice-list-BRkmw4JY.js} +1 -1
- package/dist/assets/{voice-page-Cg83kYyt.js → voice-page-Boyp7eA7.js} +1 -1
- package/dist/assets/{voice-providers-note-zC7VOEMO.js → voice-providers-note-CvNXdEMT.js} +1 -1
- package/dist/assets/{workflow-detail-panel-DKkRD3Tx.js → workflow-detail-panel-hPKKZZ36.js} +1 -1
- package/dist/assets/{workspace-page-CaKxPHOa.js → workspace-page-hK30hU92.js} +1 -1
- package/dist/index.html +31 -31
- package/package.json +1 -1
- package/dist/assets/detail-shell-CJFiMj96.js +0 -1
- package/dist/assets/subagent-store-DRGdxnRu.js +0 -3
- package/dist/assets/use-touch-mobile-D9VlswOV.js +0 -1
- package/dist/assets/use-transcript-message-by-id-jA4XZr1L.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import"./i18n-BEiOUI7L.js";import{t as i}from"./useTranslation-ChVKbb78.js";import{a,n as o,s}from"./auth-store-B9uHZ8lp.js";import{D as c}from"./platform-detection-BIfuAgU8.js";import{d as l}from"./routes-C293MsBG.js";import{t as u}from"./hard-navigate-tVYn5gIo.js";import{n as d,t as f}from"./login-flow-D236GqO3.js";import{r as p,t as m}from"./account-shell-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import"./i18n-BEiOUI7L.js";import{t as i}from"./useTranslation-ChVKbb78.js";import{a,n as o,s}from"./auth-store-B9uHZ8lp.js";import{D as c}from"./platform-detection-BIfuAgU8.js";import{d as l}from"./routes-C293MsBG.js";import{t as u}from"./hard-navigate-tVYn5gIo.js";import{n as d,t as f}from"./login-flow-D236GqO3.js";import{r as p,t as m}from"./account-shell-CvbbMnY0.js";var h=e(t(),1),g=r();function _(){let{t:e}=i(`account`),t=a(),r=s(),_=o.use.user(),v=o.use.logout(),[y,b]=(0,h.useState)(null),[x,S]=(0,h.useState)(!1),C=async()=>{b(null),S(!0);try{await c(d,f)}catch(t){console.error(`[account] auth flow failed:`,t),b(e(`authErrors.genericFailure`)),S(!1)}};return r?(0,g.jsx)(m,{children:(0,g.jsx)(p,{title:e(`accountPage.loading`)})}):t?(0,g.jsxs)(m,{children:[(0,g.jsx)(p,{title:_?.username?e(`accountPage.signedInTitleNamed`,{name:_.username}):e(`accountPage.signedInTitle`),subtitle:e(`accountPage.signedInSubtitle`)}),(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,g.jsx)(n,{to:l.assistant,className:`inline-flex w-full items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-[var(--content-inset)] no-underline transition-colors hover:bg-[var(--primary-hover)]`,children:e(`accountPage.goToAssistant`)}),(0,g.jsx)(`button`,{type:`button`,onClick:async()=>{await v(),u(l.account.login)},className:`cursor-pointer bg-transparent text-sm font-normal text-[var(--content-secondary)] transition-colors hover:text-[var(--content-default)]`,children:e(`accountPage.signOut`)})]})]}):(0,g.jsxs)(m,{children:[(0,g.jsx)(p,{title:e(`accountPage.welcomeTitle`),subtitle:e(`accountPage.welcomeSubtitle`)}),y&&(0,g.jsx)(`p`,{className:`text-center text-sm text-[var(--system-negative-strong)]`,children:y}),(0,g.jsx)(`div`,{className:`flex flex-col items-center gap-4`,children:(0,g.jsx)(`button`,{type:`button`,onClick:()=>void C(),disabled:x,className:`inline-flex w-full cursor-pointer items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-[var(--content-inset)] transition-colors hover:bg-[var(--primary-hover)] disabled:opacity-50`,children:e(`accountPage.signIn`)})})]})}export{_ as AccountPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import"./src-
|
|
1
|
+
import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import"./src-DjIqxQVd.js";import{t}from"./notice-C9v3KOP3.js";var n=e(),r=(0,n.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,n.jsx)(`path`,{d:`M7.5 15L12.5 10L7.5 5`,stroke:`currentColor`,strokeWidth:`1.67`,strokeLinecap:`round`,strokeLinejoin:`round`})});function i({onSubmit:e,error:i,children:a,submitLabel:o,submittingLabel:s,isSubmitting:c,footer:l}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`form`,{onSubmit:e,className:`flex flex-col gap-4`,children:[i&&(0,n.jsx)(t,{tone:`error`,children:i}),(0,n.jsx)(`div`,{className:`flex flex-col gap-3`,children:a}),(0,n.jsxs)(`button`,{type:`submit`,disabled:c,className:`mt-2 inline-flex w-full cursor-pointer items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-[var(--content-inset)] transition-colors hover:bg-[var(--primary-hover)] disabled:cursor-wait disabled:opacity-50`,children:[c?s:o,r]})]}),l&&(0,n.jsx)(`div`,{className:`mt-8 text-center`,children:l})]})}function a(e){return(0,n.jsx)(`input`,{...e,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] px-4 py-3 text-sm text-[var(--content-default)] outline-none placeholder:text-[var(--content-tertiary)] focus:border-[var(--primary-base)]/50`})}function o({title:e,subtitle:t}){return(0,n.jsxs)(`div`,{className:`mb-8 text-center`,children:[(0,n.jsx)(`h1`,{className:`mb-2 font-serif text-[2rem] font-bold italic text-[var(--content-default)]`,children:e}),t&&(0,n.jsx)(`p`,{className:`text-sm text-[var(--content-secondary)]`,children:t})]})}function s({children:e}){return(0,n.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-[var(--surface-base)]`,children:(0,n.jsx)(`div`,{className:`w-full max-w-[480px] px-6`,children:(0,n.jsx)(`div`,{className:`flex flex-col items-center gap-10`,children:(0,n.jsx)(`div`,{className:`w-full`,children:e})})})})}export{a as i,i as n,o as r,s as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-BeUa5Fd-.js";import"./src-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-BeUa5Fd-.js";import"./src-DjIqxQVd.js";import{t as o}from"./createLucideIcon-C_IfoPaZ.js";import{t as s}from"./arrow-down-to-line-BUIhl9J1.js";import{a as c,i as l,n as u,o as d,r as f,t as p}from"./acp-run-actions-BF42yAEA.js";import{t as m}from"./arrow-left-xVF3p2Qp.js";import{n as h,r as g,t as _}from"./metric-card-BR-wuKBF.js";import{t as v}from"./brain-BkpxPjmn.js";import{t as y}from"./chevron-down-B_6pb9kS.js";import{t as b}from"./chevron-right-Dx_5VMo6.js";import{t as x}from"./circle-check-BG2g8udA.js";import{t as S}from"./circle-minus-CHiR1az9.js";import{w as C}from"./menu-Gu_6PRrL.js";import{t as w}from"./code-CvwdlCR7.js";import{t as T}from"./file-text-Ha6XXdS_.js";import{t as E}from"./globe-BQ4oUIDW.js";import{t as D}from"./chat-markdown-message-DZ0tyJJt.js";import{t as ee}from"./repeat-PaQ1rsKC.js";import{t as te}from"./search-DbyaO8rG.js";import{t as ne}from"./send-CpbQGYQ9.js";import{t as O}from"./terminal-BDxxes3v.js";import{t as k}from"./trash-2-DL_3_16e.js";import{t as re}from"./triangle-alert-C5SOfs-q.js";import{t as ie}from"./tag-D0oiSRye.js";import{a as A,i as ae,n as j,r as M}from"./acp-run-store-BNqrJUQp.js";import{t as N}from"./three-dot-indicator-nb8EdG-F.js";import{n as oe}from"./detail-shell-DBlTVvX-.js";import{t as se}from"./diff-rows-D6WbMS6T.js";import{n as ce,t as le}from"./status-badge-pill-BsBvz0ok.js";var ue=o(`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`}]]),P=e(n(),1),F=``;function I(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 L(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(j.length):t}function R(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function z(e,t){if(t.updateType===`agent_message_chunk`&&de(t)){R(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:L(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??F,r=L(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(R(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??F,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!==F&&r&&r.kind===`agent`&&r.messageId===F&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}R(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??F,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}R(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;R(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:I(t.toolStatus,`running`),content:t.content,locations:B(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=B(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:I(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=V(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(R(e),e.push(i)):e[r]=i;return}}}function B(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 V(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 H(e){let t=[];for(let n of e)z(t,n);return t}function fe(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 pe(){let e=null,t=[];function n(n){return t=H(n),e=n,t}function r(r){let i=fe(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++)z(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function me(e){let t=(0,P.useRef)(null);return t.current??=pe(),t.current.project(e)}function U(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=he(e);t&&r.push(t)}return r}function he(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:ge(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=_e(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function ge(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function _e(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 W(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function G(e){return U(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
|
|
2
2
|
`)}function K(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 q(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 J=i();function ve({content:e,isComplete:t,assistantId:n}){return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-agent-message`,className:`flex w-full flex-col items-start text-chat text-[var(--content-default)]`,children:[(0,J.jsx)(D,{content:e,assistantId:n}),!t&&(0,J.jsx)(N,{className:`mt-1`,"data-testid":`acp-chat-agent-streaming`})]})}function ye({entries:e}){return e.length===0?null:(0,J.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,J.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(l,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(a,{variant:`body-small-emphasised`,className:`text-inherit`,children:`Plan`})]}),(0,J.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>(0,J.jsxs)(`li`,{"data-testid":`acp-chat-plan-entry`,"data-checked":e.checked,className:`flex items-start gap-2`,children:[e.checked?(0,J.jsx)(x,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,J.jsx)(C,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`}),(0,J.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 be(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 xe(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function Y({completedAt:e}){return e===void 0?null:(0,J.jsxs)(`span`,{"data-testid":`acp-chat-terminal-time`,children:[`at `,xe(e)]})}function Se({status:e,stopReason:t,error:n,completedAt:r}){if(A(e))return null;if(e===`failed`)return(0,J.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,J.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,J.jsx)(re,{className:`h-4 w-4`})}),(0,J.jsx)(`span`,{children:n??`Run failed`})]});if(e===`cancelled`)return(0,J.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,J.jsx)(S,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,J.jsx)(`span`,{children:`Cancelled`}),(0,J.jsx)(Y,{completedAt:r})]});let i=be(t);return(0,J.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,J.jsx)(x,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,J.jsx)(`span`,{children:i}),(0,J.jsx)(Y,{completedAt:r})]})}function Ce({showDot:e,isLast:t,children:n}){return(0,J.jsxs)(`div`,{className:`relative flex items-start gap-2${t?``:` pb-4`}`,children:[!t&&(0,J.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,J.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,J.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}):(0,J.jsx)(`span`,{"aria-hidden":!0,className:`h-[14px] w-[14px] shrink-0`}),(0,J.jsx)(`div`,{className:`min-w-0 flex-1`,children:n})]})}function we({content:e,isComplete:t,assistantId:n}){let[r,i]=(0,P.useState)(null),a=r??!t,o=e.trim().length>0,s=t?`Thought process`:`Thinking`,c=t?(0,J.jsx)(v,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(N,{dotSize:5,className:`shrink-0`,"data-testid":`acp-chat-thinking-streaming`});return o?(0,J.jsxs)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:[(0,J.jsxs)(`button`,{type:`button`,"aria-expanded":a,onClick:()=>i(!a),"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:[a?(0,J.jsx)(y,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(b,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),c,(0,J.jsx)(`span`,{children:s})]}),a&&(0,J.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,J.jsx)(D,{content:e,assistantId:n})})]}):(0,J.jsx)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:(0,J.jsxs)(`div`,{className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[c,(0,J.jsx)(`span`,{children:s})]})})}var Te={running:`neutral`,completed:`positive`,error:`negative`,ended:`neutral`},Ee={running:`Running`,completed:`Completed`,error:`Failed`,ended:`Ended`},De={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`},Oe=`Tool call`,ke={read:T,edit:ue,delete:k,move:c,search:te,execute:O,think:v,fetch:E,switch_mode:ee},Ae=new Set([`read`,`edit`,`delete`,`move`]);function je({toolKind:e}){return(0,J.jsx)(e&&ke[e]||w,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`})}function X({label:e,value:t,testId:n}){return(0,J.jsxs)(`div`,{"data-testid":n,children:[(0,J.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-tertiary)]`,children:e}),(0,J.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 Me({block:e,isTerminal:t=!1,onOpenDiff:n,onOpenOutput:r}){let[i,o]=(0,P.useState)(!1),s=(0,P.useMemo)(()=>U(e.content),[e.content]),c=(0,P.useMemo)(()=>G(e.content),[e.content]),l=(0,P.useMemo)(()=>c.split(`
|
|
3
3
|
`).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith("```"))||`View output`,[c]),u=(0,P.useMemo)(()=>q(s,e.locations),[s,e.locations]),d=t&&e.status===`running`?`ended`:e.status,f=d===`running`,p=e.toolKind&&De[e.toolKind]||Oe,m=W(e.rawInput)??e.title,h=m&&m!==p&&(!Ae.has(e.toolKind??``)||u.length===0)?m:null,g=K(e.rawInput),_=K(e.rawOutput),v=g!==void 0||_!==void 0;return(0,J.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,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(je,{toolKind:e.toolKind}),(0,J.jsx)(a,{variant:`body-small-emphasised`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,title:e.title,children:p}),(0,J.jsx)(ie,{tone:Te[d],"data-testid":`acp-chat-tool-status`,children:Ee[d]}),f&&(0,J.jsx)(N,{className:`shrink-0`,"data-testid":`acp-chat-tool-running`})]}),h&&(0,J.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:h}),u.length>0&&(0,J.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:u.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,J.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,J.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path):(0,J.jsxs)(`span`,{"data-testid":`acp-chat-tool-file-ref`,title:t.path,className:i,children:[(0,J.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path)})}),c.length>0&&(0,J.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,J.jsx)(O,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:l}),(0,J.jsx)(b,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`})]}),v&&(0,J.jsxs)(`div`,{className:`mt-2`,"data-testid":`acp-chat-tool-raw`,children:[(0,J.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-raw-toggle`,"aria-expanded":i,onClick:()=>o(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,J.jsx)(y,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(b,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{children:i?`Hide raw input/output`:`Show raw input/output`})]}),i&&(0,J.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-2`,children:[g!==void 0&&(0,J.jsx)(X,{label:`Raw input`,value:g,testId:`acp-chat-tool-raw-input`}),_!==void 0&&(0,J.jsx)(X,{label:`Raw output`,value:_,testId:`acp-chat-tool-raw-output`})]})]})]})}function Ne({content:e}){return(0,J.jsx)(`div`,{"data-testid":`acp-chat-user-turn`,className:`flex w-full justify-end`,children:(0,J.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 Pe({content:e,assistantId:t}){return(0,J.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,J.jsx)(D,{content:G(e),hardLineBreaks:!0,assistantId:t})})}var Z=2e3;function Q(e){if(e===``)return[];let t=e.split(`
|
|
4
4
|
`);return e.endsWith(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import"./src-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import"./src-DjIqxQVd.js";import{h as a,n as o,t as s}from"./message-content-BrFs5fmC.js";import{a as c,d as l,f as u,i as d,n as f,r as p,u as m,x as h}from"./multi-activity-group-BXTQ6X8A.js";import{t as g}from"./chevron-left-B7yHWg2l.js";import{t as _}from"./chat-markdown-message-DZ0tyJJt.js";import{t as v}from"./workflow-store-Dgz97WCS.js";import{t as y}from"./background-task-store-DWJATzYT.js";import{r as b}from"./acp-run-store-BNqrJUQp.js";import{a as x,g as S,i as C,n as w,r as T,s as E,w as D,x as O}from"./site-favicon-B2X3c7S1.js";import{t as k}from"./detail-shell-DBlTVvX-.js";import{t as A}from"./use-transcript-message-by-id-C1KuuwSe.js";import{ToolDetailBody as j,t as M}from"./tool-detail-panel-Bre0h0i7.js";var N=e(t(),1);function P(e,t,n){let r=l(t,n.workflow),i=e=>{let t=h(e,n.workflow.byToolUseId);if(t!==null&&r.has(t))return!0;let i=m(e,n.acpByToolUseId);if(i!==null&&n.acpById[i]!==void 0)return!0;let a=u(e);return a!==void 0&&n.backgroundTaskById[a]!==void 0},a=t.filter(e=>!i(e));if(a.length===t.length)return{items:e,toolCalls:t};let o=new Set(a.map(e=>e.id));return{items:e.filter(e=>e.kind!==`toolCall`||o.has(e.toolCall.id)),toolCalls:a}}function F(e,t){let n=A(e),r=v.use.byId(),i=v.use.byToolUseId(),a=v.use.notFoundRunIds(),c=v.use.hydrationFailedRunIds(),l=b.use.byId(),u=b.use.byToolUseId(),d=y.use.byId();return(0,N.useMemo)(()=>{if(!n||t==null)return null;let e=o(n.contentBlocks??[],{splitInlineThinking:n.role!==`user`})[t];if(!e||e.type!==`activity`)return null;let{cardItems:f,toolCalls:p}=s(e.items);return P(f,p,{workflow:{byId:r,byToolUseId:i,notFoundRunIds:a,hydrationFailedRunIds:c},acpById:l,acpByToolUseId:u,backgroundTaskById:d})},[n,t,r,i,a,c,l,u,d])}var I=r(),L=60;function R({payload:e,onClose:t,assistantId:r}){let[a,o]=(0,N.useState)(null),s=F(e.messageId,e.groupIndex),l=s?.items??e.items,u=s?.toolCalls??e.toolCalls,m=c(l),h=p(m.steps),_=d(m.state,m.steps),v=_===`loading`,y=f(_,m.totalDurationLabel??``,h.failed),b=v&&m.currentStepTitle||y,x=new Map(u.map(e=>[e.id,e])),C=a?a.kind===`thinking`?`Thinking`:a.activity||a.title:``;return(0,I.jsx)(k,{titleNode:a?(0,I.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1 py-0.5`,children:[(0,I.jsx)(n,{variant:`ghost`,iconOnly:(0,I.jsx)(g,{}),"aria-label":`Back to all steps`,tooltip:`All steps`,onClick:()=>o(null),className:`-ml-2.5 shrink-0`}),(0,I.jsx)(i,{variant:`title-medium`,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:C})]}):(0,I.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 py-0.5`,children:[(0,I.jsx)(i,{variant:`title-medium`,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:v?(0,I.jsx)(S,{children:b}):b}),m.stepCount?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`span`,{"aria-hidden":!0,className:`size-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}),(0,I.jsx)(i,{variant:`title-medium`,className:`shrink-0 whitespace-nowrap leading-snug text-[var(--content-secondary)]`,children:m.stepCount})]}):null]}),closeLabel:`Close steps`,onClose:t,children:a?(0,I.jsx)(B,{detail:a,assistantId:r}):(0,I.jsx)(E,{steps:m.steps,timeline:!0,renderStep:t=>(0,I.jsx)(z,{step:t,activeDetail:a,onOpenDetail:o,lookupToolCall:e=>x.get(e),messageId:e.messageId,groupIndex:e.groupIndex})})})}function z({step:e,activeDetail:t,onOpenDetail:n,lookupToolCall:r,messageId:i,groupIndex:o}){if(e.kind===`thinking`){let t=i!=null&&e.thinkingItemIndex!=null?{messageId:i,thinkingGroupIndex:o,thinkingItemIndex:e.thinkingItemIndex}:{};return(0,I.jsx)(C,{iconName:`brain`,label:a(D(e.text),L),ariaLabel:`View thinking`,active:!1,onClick:()=>n({kind:`thinking`,toolCallId:``,toolName:``,title:`Thinking`,activity:``,input:{},status:`completed`,thinkingText:e.text,...t})})}if(e.kind===`web_search`)return(0,I.jsx)(T,{step:e});if(e.kind===`web_search_error`)return(0,I.jsx)(w,{step:e});if(e.kind!==`tool`)return(0,I.jsx)(x,{step:e});let s=r(e.toolCallId);return(0,I.jsx)(C,{iconName:e.iconName,label:e.activity||e.info||e.title,active:t?.toolCallId===e.toolCallId,onClick:()=>{s&&n(O(s))}})}function B({detail:e,assistantId:t}){let n=M(e.kind===`thinking`?e.messageId:void 0,e.thinkingGroupIndex,e.thinkingItemIndex);return(0,I.jsx)(`div`,{className:`flex flex-col gap-4`,children:e.kind===`thinking`?(0,I.jsx)(_,{content:n??e.thinkingText??``,hardLineBreaks:!0,assistantId:t}):(0,I.jsx)(j,{detail:e,assistantId:t})})}export{R as ActivityStepsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n,o as r}from"./local-settings-Bx7FsNo5.js";import{r as i,t as a}from"./capture-error-Cdvvw9J5.js";import{t as o}from"./react-BFJW0bSv.js";import{n as s,t as c}from"./button-DSjqKLvM.js";import{d as l,h as u}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as d}from"./QueryClientProvider-CMu7CkQU.js";import{t as f}from"./useQuery-Bz-fbQ-m.js";import{t as p}from"./useMutation-CXGTrp4W.js";import{t as m}from"./jsx-runtime-D3ZM-ToX.js";import{t as h}from"./typography-BeUa5Fd-.js";import{J as g,W as _,i as v}from"./src-DSfyKUJl.js";import{t as y}from"./check-CNBoUiyR.js";import{t as b}from"./circle-alert-DEIiXMF-.js";import{t as x}from"./circle-check-BG2g8udA.js";import{t as S}from"./menu-Gu_6PRrL.js";import{t as C}from"./clock-DSx5dIWv.js";import{t as w}from"./ellipsis-vertical-CAYfw0qB.js";import{t as T}from"./external-link-D65yhWAV.js";import{t as E}from"./info-Bjcv3rf9.js";import{t as D}from"./list-COQcQTOh.js";import{t as O}from"./loader-circle-oY5laABh.js";import{t as k}from"./mail-B0iH8Wii.js";import{t as A}from"./checkbox-DyHMOWN6.js";import{t as j}from"./plus-CwK68LCA.js";import{t as M}from"./search-DbyaO8rG.js";import{t as N}from"./trash-2-DL_3_16e.js";import{t as ee}from"./triangle-alert-C5SOfs-q.js";import{t as P}from"./notice-C9v3KOP3.js";import{t as F}from"./tag-D0oiSRye.js";import{t as I}from"./modal-Bt1DPFgW.js";import{t as L}from"./input-BG94bPcH.js";import{t as R}from"./toggle-C-v4x7_A.js";import{n as z}from"./toast-BrKo5b4d.js";import{t as B}from"./confirm-dialog-DNaRfy4W.js";import{t as V}from"./select-B86W_Hs8.js";import{t as te}from"./skeleton-CzdJByjE.js";import{o as H}from"./i18n-BEiOUI7L.js";import{t as U}from"./Trans-hMTkJ6wZ.js";import{t as W}from"./useTranslation-ChVKbb78.js";import{i as ne,r as re}from"./api-errors-BTOPGXDV.js";import{C as G,E as K,F as q,L as J,M as Y,S as ie,_ as ae,a as oe,b as se,c as X,f as Z,g as ce,h as le,i as ue,j as de,l as fe,m as pe,n as me,o as he,p as ge,r as _e,s as ve,t as ye,v as be,w as xe,x as Se,y as Ce,z as we}from"./profile-pickers-CKLILvRc.js";import{B as Te,C as Ee,F as De,G as Oe,H as ke,I as Ae,J as je,K as Me,L as Ne,M as Pe,N as Fe,P as Ie,R as Le,S as Re,T as ze,U as Be,V as Ve,W as He,X as Ue,Y as We,_ as Ge,a as Ke,c as qe,d as Je,f as Ye,g as Xe,h as Ze,i as Qe,j as $e,l as et,m as tt,n as nt,o as rt,p as it,q as at,r as ot,s as st,t as ct,u as lt,v as ut,w as dt,x as ft,y as pt,z as mt}from"./use-sticky-profiles-BP78KHwd.js";import{t as ht}from"./assistant-identity-store-DTP7xfNP.js";import{n as gt,o as _t,r as vt}from"./utils-1ZnEn_W1.js";import{Jt as yt,Yt as bt,dt as xt,fr as St,j as Ct,kn as wt,mt as Tt}from"./sdk.gen-Br55zhZN.js";import{p as Et}from"./platform-detection-BIfuAgU8.js";import{d as Dt}from"./routes-C293MsBG.js";import{i as Ot}from"./use-platform-gate-B1NwRiiR.js";import{r as kt}from"./use-is-org-ready-GYB07VFZ.js";import{Ct as At,Gt as jt,J as Mt,K as Nt,St as Pt,Tt as Ft,Xt as It,Y as Lt,_ as Rt,d as zt,f as Bt,g as Vt,h as Ht,m as Ut,p as Wt,q as Gt,sn as Kt,u as qt}from"./react-query.gen-vkBavCkI.js";import{c as Jt,d as Yt,f as Xt,ft as Zt,g as Qt,h as $t,l as en,m as tn,o as nn,p as rn,s as an,u as on,v as sn,y as cn}from"./react-query.gen-CqLxrlpP.js";import{n as ln}from"./use-is-mobile-S2zUn-6L.js";import{t as un}from"./platform-login-notice-CR7VbQV0.js";import{t as dn}from"./android-consumption-only-Bwbjjciw.js";import{a as fn,c as pn,i as mn,n as hn,o as gn}from"./voice-list-BitYX0n2.js";import{n as _n}from"./use-voice-sample-preview-ogz6deAB.js";import{t as vn}from"./use-active-assistant-id-zecNKpnS.js";import{t as yn}from"./detail-shell-CJFiMj96.js";import{t as bn}from"./detail-card-D6jpbgq6.js";import{n as xn,t as Sn}from"./detail-drawer-D6ySpH6u.js";import{a as Cn}from"./schedules-CeXPLhES.js";import{t as wn}from"./use-platform-assistant-id-ByADYAwf.js";import{t as Tn}from"./environment-store-DQKnpozf.js";import{t as En}from"./stt-language-picker-modal-au607p6O.js";var Q=e(o(),1),$=m();function Dn({mode:e,onChange:t}){let{t:n}=W(`settings`);return(0,$.jsx)(`div`,{className:`max-w-[280px]`,children:(0,$.jsx)(_,{ariaLabel:n(`sharedUi.modeToggleAriaLabel`),value:e,onChange:t,items:[{value:`managed`,label:n(`sharedUi.managedLabel`)},{value:`your-own`,label:n(`sharedUi.yourOwnLabel`)}]})})}function On({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,$.jsxs)(bn,{id:e,title:t,subtitle:n,accessory:(0,$.jsx)(Dn,{mode:r,onChange:i}),children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:a})]})}function kn({id:e,title:t,subtitle:n,children:r}){return(0,$.jsxs)(bn,{id:e,title:t,subtitle:n,children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:r})]})}function An({children:e}){return(0,$.jsxs)(`a`,{href:`https://www.vellum.ai/docs/pricing`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--primary-base)] hover:underline`,children:[e,(0,$.jsx)(T,{className:`h-3.5 w-3.5`})]})}function jn(){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-4 py-2.5`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:(0,$.jsx)(U,{i18nKey:`sharedUi.managedServicesBanner`,ns:`settings`,components:{link:(0,$.jsx)(An,{})}})})]})}function Mn({status:e,message:t,isLoading:n}){let{t:r}=W(`settings`);return n?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,children:[(0,$.jsx)(O,{className:`h-3 w-3 animate-spin`}),r(`sharedUi.checkingDomain`)]}):e?e===`verified`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-positive-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-positive-strong)]`,title:r(`sharedUi.verifiedTitle`),children:[(0,$.jsx)(y,{className:`h-3 w-3`}),r(`sharedUi.domainVerified`)]}):e===`pending`||e===`not_started`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-mid-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-mid-strong)]`,title:r(`sharedUi.verifyingTitle`),children:[(0,$.jsx)(C,{className:`h-3 w-3`}),r(`sharedUi.verifyingDomain`)]}):(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-negative-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,title:r(`sharedUi.failedTitle`),children:[(0,$.jsx)(b,{className:`h-3 w-3`}),r(`sharedUi.verificationFailed`)]}):(0,$.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,title:r(`sharedUi.unknownStatusTitle`),children:r(`sharedUi.unknownStatus`)})}function Nn({onClick:e,disabled:t}){return(0,$.jsx)(c,{onClick:e,disabled:t,children:`Save`})}function Pn({onClick:e,filled:t=!1}){return(0,$.jsx)(c,{variant:t?`danger`:`dangerGhost`,onClick:e,children:`Reset`})}function Fn({guide:e}){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:e.description}),(0,$.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e.linkLabel,(0,$.jsx)(T,{className:`h-3 w-3`})]})]})]})}function In({subdomain:e,onSubdomainChange:t,domainSuffix:n,subdomainPlaceholder:r=`my-assistant`,disabled:i,autoFocus:a,prefix:o,error:s,locked:c,lockedMessage:l}){return(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`flex h-9 w-full items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${s?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[o,(0,$.jsx)(`input`,{value:e,onChange:e=>t(e.target.value.toLowerCase().trim()),disabled:i||c,readOnly:c,autoFocus:a,placeholder:r,"aria-label":`Subdomain`,"aria-invalid":!!s,className:`h-full min-w-0 flex-1 bg-transparent ${o?`pl-1.5`:`pl-3`} pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none disabled:cursor-not-allowed disabled:opacity-60`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`.`,n]})]}),s&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--system-negative-strong)]`,children:s}),c&&l&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:l})]})}var Ln=`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`;function Rn({assistantId:e,assistantHandle:t,emailRootDomain:n}){let{t:r}=W(`settings`),i=d(),o=l(),s=Et(),[m,h]=u(),[g,_]=(0,Q.useState)(``),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(null),[S,C]=(0,Q.useState)(``),[w,T]=(0,Q.useState)(null),[E,D]=(0,Q.useState)(!1),[A,j]=(0,Q.useState)(!1),[M,ee]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{v||!t||g||(_(t),y(!0))},[t,v,g]);let F=f({...Zt(),enabled:!0}),I=F.data,L=I?.entitlements,R=L?.managed_email===!0,V=!!L&&!R,te=!I&&F.isError&&!F.isFetching,H=f({...Jt({path:{assistant_id:e}}),enabled:!V}),re=f({...rn({path:{assistant_id:e}}),enabled:!V}),G=H.data?.results?.[0],K=re.data?.results?.[0],q=G?`${G.subdomain}.${n}`:null,J=f({...$t({path:{assistant_id:e,id:K?.id??``}}),enabled:!!K?.id,refetchOnWindowFocus:!1}),Y=f({...on({path:{assistant_id:e,id:G?.id??``}}),enabled:!!G?.id,refetchInterval:e=>{let t=e.state.data?.status;return t===`verified`||t===`failed`?!1:1e4},refetchOnWindowFocus:!0});(0,Q.useEffect)(()=>{m.get(`release`)!==`1`||!G||K||(j(!0),h(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[K,G,m,h]);let ie=p(nn()),ae=p(an()),oe=p(Yt()),se=p(Xt()),X=(0,Q.useCallback)(()=>{let t={assistant_id:e};i.invalidateQueries({queryKey:en({path:t})}),i.invalidateQueries({queryKey:tn({path:t})}),K?.id&&i.invalidateQueries({queryKey:Qt({path:{...t,id:K.id}})}),i.invalidateQueries({queryKey:cn()})},[K?.id,e,i]),Z=(0,Q.useCallback)(async()=>{let t=g.trim().toLowerCase();if(!t){x(r(`emailManagedContent.enterSubdomainError`));return}D(!1);try{await ie.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),_(``),x(null),X(),z.success(r(`emailManagedContent.domainRegisteredToast`,{domain:`${t}.${n}`}))}catch(e){x(ne(e,void 0,r(`emailManagedContent.registerDomainFailedFallback`)))}},[e,n,X,ie,g,r]),ce=(0,Q.useCallback)(async()=>{let t=S.trim().toLowerCase();if(!t){T(r(`emailManagedContent.enterUsernameError`));return}try{await oe.mutateAsync({path:{assistant_id:e},body:{username:t}}),C(``),T(null),X(),z.success(r(`emailManagedContent.emailCreatedToast`))}catch(e){T(ne(e,void 0,r(`emailManagedContent.createEmailFailedFallback`)))}},[e,X,oe,S,r]),le=(0,Q.useCallback)(async()=>{if(K?.id){ee(!1);try{await se.mutateAsync({path:{assistant_id:e,id:K.id}}),X(),z.success(r(`emailManagedContent.emailRemovedToast`))}catch(e){a(e,{context:`email_address_delete`}),z.error(r(`emailManagedContent.emailRemoveFailedToast`))}}},[K?.id,e,se,X,r]),ue=(0,Q.useCallback)(async()=>{if(!G?.id)return;if(K){z.error(r(`emailManagedContent.removeAddressFirstToast`));return}j(!1);let t=G.subdomain;try{await ae.mutateAsync({path:{assistant_id:e,id:G.id}}),_(t),X(),z.success(r(`emailManagedContent.domainReleasedToast`))}catch(e){a(e,{context:`email_domain_release`}),z.error(r(`emailManagedContent.domainReleaseFailedToast`))}},[K,e,ae,G?.id,G?.subdomain,X,r]);if(F.isLoading)return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}),r(`emailManagedContent.checkingSubscription`)]});if(V)return(0,$.jsx)(P,{tone:`info`,icon:(0,$.jsx)(k,{className:`h-4 w-4`,"aria-hidden":!0}),title:r(`emailManagedContent.upgradeNoticeTitle`),actions:s?void 0:(0,$.jsx)(c,{size:`compact`,onClick:()=>o(Dt.plans),children:r(`emailManagedContent.upgradeButton`)}),children:s?dn:r(`emailManagedContent.upgradeNoticeBody`)});let de=te?(0,$.jsx)(P,{tone:`warning`,title:r(`emailManagedContent.subscriptionWarningTitle`),actions:(0,$.jsx)(c,{size:`compact`,variant:`outlined`,onClick:()=>F.refetch(),children:r(`emailManagedContent.retry`)}),children:r(`emailManagedContent.subscriptionWarningBody`)}):null;return G?K?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.addressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:K.address}),(0,$.jsx)(Mn,{status:Y.data?.status,message:Y.data?.message,isLoading:Y.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(N,{}),onClick:()=>ee(!0),disabled:se.isPending,"aria-label":r(`emailManagedContent.removeEmailAriaLabel`)})]}),(0,$.jsx)(B,{open:M,title:r(`emailManagedContent.removeEmailTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.removeEmailConfirmMessage`,ns:`settings`,values:{address:K.address},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.removeConfirm`),destructive:!0,onConfirm:le,onCancel:()=>ee(!1)})]}),J.data?.usage&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.usageSummary`,{sent:J.data.usage.sent_today,limit:J.data.usage.daily_limit,received:J.data.usage.received_today})})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.domainLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[G.subdomain,`.`,n]}),(0,$.jsx)(Mn,{status:Y.data?.status,message:Y.data?.message,isLoading:Y.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(N,{}),onClick:()=>j(!0),disabled:ae.isPending,"aria-label":r(`emailManagedContent.releaseDomainAriaLabel`)})]}),(0,$.jsx)(B,{open:A,title:r(`emailManagedContent.releaseDomainTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.releaseDomainConfirmMessage`,ns:`settings`,values:{domain:`${G.subdomain}.${n}`},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.releaseConfirm`),destructive:!0,onConfirm:ue,onCancel:()=>j(!1)})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.emailAddressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex h-9 min-w-0 flex-1 items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${w?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,$.jsx)(`input`,{value:S,onChange:e=>{C(e.target.value.toLowerCase()),w&&T(null)},placeholder:r(`emailManagedContent.emailUsernamePlaceholder`),"aria-label":r(`emailManagedContent.emailUsernameAriaLabel`),"aria-invalid":!!w,className:`h-full min-w-0 flex-1 bg-transparent pl-3 pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,q]})]}),(0,$.jsx)(c,{onClick:ce,disabled:oe.isPending||!S.trim(),children:oe.isPending?r(`emailManagedContent.creating`):r(`emailManagedContent.create`)})]}),w&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:w})]})]}):(0,$.jsxs)(`div`,{className:`space-y-3`,children:[de,(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.subdomainLabel`)}),(0,$.jsx)(In,{subdomain:g,onSubdomainChange:e=>{_(e),b&&x(null)},domainSuffix:n,subdomainPlaceholder:r(`emailManagedContent.subdomainExamplePlaceholder`),error:b}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.subdomainHint`)}),(0,$.jsx)(c,{onClick:()=>D(!0),disabled:ie.isPending||!g.trim(),children:ie.isPending?r(`emailManagedContent.registering`):r(`emailManagedContent.register`)}),(0,$.jsx)(B,{open:E,title:r(`emailManagedContent.setSubdomainTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.setSubdomainConfirmMessage`,ns:`settings`,values:{subdomain:g.trim().toLowerCase()||r(`emailManagedContent.subdomainFallback`)},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.confirm`),onConfirm:Z,onCancel:()=>D(!1)})]})}function zn(){let{t:e}=W(`settings`),r=vn(),o=kt(),{data:s}=f({...sn(),enabled:o}),c=s?.results?.[0]?.handle,l=Tn.use.emailRootDomain(),u=Ot(),[d,p]=(0,Q.useState)(()=>u===`gated`?`your-own`:pe(t(rt,`managed`),`managed`)),[m,h]=(0,Q.useState)(()=>{let e=t(Ke,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),{platformAssistantId:g,error:_}=wn(r,u===`full`&&d===`managed`),v=g??(_?r:null),y=f({queryKey:[`byoEmailCredential`,r,m],queryFn:async()=>{let{data:e}=await xt({path:{assistant_id:r},body:{service:m,field:`api_key`},throwOnError:!0});return e},enabled:d===`your-own`||u===`gated`,staleTime:6e4,retry:i,meta:{errorContext:`byo_email_credential_check`}});(0,Q.useEffect)(()=>{y.error&&a(y.error,{context:`byo_email_credential_check`,bestEffort:!0})},[y.error]);let b=y.data?.hasSecret===!0,S=(0,Q.useCallback)(e=>{p(e),n(rt,e)},[]),C=(0,Q.useCallback)(()=>{n(Ke,m),z.success(e(`emailServiceCard.saveSuccessToast`))},[m,e]),w=(0,Q.useMemo)(()=>Xe.find(e=>e.id===m)??Xe[0],[m]),D=(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:(0,$.jsx)(U,{i18nKey:`emailServiceCard.setupInstructions`,ns:`settings`,values:{providerName:w.displayName,setupSkill:w.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})}),(0,$.jsxs)(`a`,{href:w.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailServiceCard.openProvider`,{providerName:w.displayName}),(0,$.jsx)(T,{className:`h-3 w-3`})]})]})]}),k=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`emailServiceCard.providerLabel`)}),(0,$.jsx)(V,{value:m,onChange:e=>{(e===`mailgun`||e===`resend`)&&h(e)},options:Xe.map(e=>({value:e.id,label:e.displayName}))})]}),b?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--system-positive-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-default)]`,children:[(0,$.jsx)(x,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsx)(`span`,{children:(0,$.jsx)(U,{i18nKey:`emailServiceCard.apiKeyConfigured`,ns:`settings`,values:{providerName:w.displayName,setupSkill:w.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})})]}),(0,$.jsxs)(`a`,{href:w.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-body-small-default text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailServiceCard.openProvider`,{providerName:w.displayName}),(0,$.jsx)(T,{className:`h-3 w-3`})]})]}):D,(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsx)(Nn,{onClick:C,disabled:!1})})]});return u===`gated`?(0,$.jsx)(kn,{id:`email`,title:e(`emailServiceCard.title`),subtitle:e(`emailServiceCard.subtitle`),children:k}):(0,$.jsx)(On,{id:`email`,title:e(`emailServiceCard.title`),subtitle:e(`emailServiceCard.subtitle`),mode:d,onModeChange:S,children:d===`managed`?(0,$.jsx)(`div`,{className:`space-y-4`,children:u===`disabled`?(0,$.jsx)(un,{children:e(`emailServiceCard.platformLoginNotice`)}):v===null?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}),e(`emailServiceCard.connecting`)]}):(0,$.jsx)(Rn,{assistantId:v,assistantHandle:c,emailRootDomain:l})}):k})}function Bn(){let e=vn();return(0,Q.useCallback)(async(t,n)=>{try{let{data:r}=await St({path:{assistant_id:e},body:{value:n,type:`api_key`,name:t},throwOnError:!0});X(r)}catch(e){throw e instanceof Error&&e.message===`No assistant found`?z.error(H(`settings:useDaemonConfig.assistantNotReadyToast`)):z.error(H(`settings:useDaemonConfig.saveApiKeyFailedToast`,{providerName:t})),a(e,{context:`provision_provider_key`}),e}},[e])}function Vn(e){let[t,n]=(0,Q.useState)(void 0);return(0,Q.useEffect)(()=>{t!==void 0&&e===t.value&&n(void 0)},[e,t]),[t===void 0?e:t.value,(0,Q.useCallback)(e=>n(e===void 0?void 0:{value:e}),[])]}var Hn=`0.11.0`;function Un(){return gt(Hn)}var Wn=`gemini-3.1-flash-image-preview`;function Gn(){let{t:e}=W(`settings`),r=vn(),i=d(),o=kt(),{data:s}=f({...qt({path:{assistant_id:r}}),enabled:o,staleTime:3e4}),c=It({onSuccess:e=>{Bt(i,{path:{assistant_id:r}},e)}}),l=Bn(),[u,p]=Vn((0,Q.useMemo)(()=>{if(!s)return t(qe,`gemini`);let e=s.services?.[`image-generation`];return e?.mode===`managed`?`vellum`:e?.provider||t(`vellum:ai:imageGenProvider`,`gemini`)},[s])),[m,h]=(0,Q.useState)(()=>t(st,Wn)),g=Ee(u),_=g.includes(m)?m:g[0]??Wn,[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(!1),S=ut.map(e=>({value:e,label:pt[e]??e})),C=(0,Q.useMemo)(()=>Ee(u).map(e=>({value:e,label:Ge[e]??e})),[u]),w=u===`gemini`||u===`openai`,{hasStoredCredential:T}=ke({assistantId:r,credentialKind:`api_key`,credentialName:u,enabled:w}),E=p,D=(0,Q.useCallback)(async()=>{x(!0);let t=v.trim(),o=w&&t.length>0;try{o&&await l(dt(_),t),await _t();let n=u===`vellum`&&!Un()?{mode:`managed`}:{provider:u,mode:u===`vellum`?`managed`:`your-own`};await c.mutateAsync({path:{assistant_id:r},body:{services:{"image-generation":n}}}).catch(t=>{throw z.error(e(`imageGenerationCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t});try{await wt({path:{assistant_id:r},body:{modelId:_},throwOnError:!0})}catch(t){throw z.error(e(`imageGenerationCard.modelUpdateFailedToast`)),a(t,{context:`set_image_gen_model`}),t}finally{i.invalidateQueries({queryKey:zt({path:{assistant_id:r}})})}}catch{x(!1);return}x(!1);try{if(n(qe,u),n(st,_),o){let e=Ve(r,`api_key`,u);i.setQueryData(e,!0),i.invalidateQueries({queryKey:e}),y(``)}z.success(e(`imageGenerationCard.savedToast`))}catch(t){a(t,{context:`settings-ai-image-gen-persist-local`}),z.error(e(`imageGenerationCard.localPreferencesFailedToast`))}},[v,u,w,_,r,c,l,i,e]),k=(0,Q.useCallback)(()=>{y(``),h(Wn),n(st,Wn)},[]);return(0,$.jsx)(kn,{title:e(`imageGenerationCard.title`),subtitle:e(`imageGenerationCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.providerLabel`)}),(0,$.jsx)(V,{"aria-label":e(`imageGenerationCard.providerAriaLabel`),value:u,onChange:E,options:S})]}),u===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.vellumNote`)}),w&&(0,$.jsx)(L,{label:e(`imageGenerationCard.apiKeyLabel`),type:`password`,value:v,onChange:e=>y(e.target.value),placeholder:Ae(e(u===`openai`?`imageGenerationCard.openaiApiKeyPlaceholder`:`imageGenerationCard.geminiApiKeyPlaceholder`),T),fullWidth:!0}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.activeModelLabel`)}),(0,$.jsx)(V,{"aria-label":e(`imageGenerationCard.modelAriaLabel`),value:_,onChange:h,options:C})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:D,disabled:b}),b&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),w&&(0,$.jsx)(Pn,{onClick:k})]})]})})}function Kn({title:e,count:t,action:n,children:r}){return(0,$.jsxs)(`section`,{className:`rounded-xl border border-[var(--border-hover)] bg-[var(--surface-overlay)] px-3 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,$.jsx)(h,{variant:`body-large-default`,as:`h3`,className:`text-[var(--content-secondary)]`,children:e}),t==null?null:(0,$.jsxs)(h,{variant:`body-large-default`,as:`span`,"aria-label":`${t} ${e.toLowerCase()}`,className:`text-[var(--content-disabled)]`,children:[`·`,` `,t]})]}),n]}),r==null?null:(0,$.jsx)(`div`,{className:`mt-4 border-t border-[var(--border-base)]`,children:r})]})}function qn(e){return e.scheduleNames.length>0||e.deferredReminderCount>0||e.scheduleLookupFailed}var Jn=5;function Yn({title:e,items:t,mono:n}){return(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--content-tertiary)`,children:e}),(0,$.jsx)(`ul`,{className:`space-y-1 pl-1`,children:t.map(e=>(0,$.jsxs)(`li`,{className:`text-body-small-default text-(--content-secondary)`,children:[`• `,n?(0,$.jsx)(`code`,{children:e}):e]},e))})]})}function Xn(e){let t=e.label||e.name,n=[];e.isActive&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseDefaultProfile`)),e.callSiteIds.length>0&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseActionOverrides`,{count:e.callSiteIds.length}));let r=e.scheduleNames.length,i=e.deferredReminderCount;return r>0&&i>0?n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsBoth`,{schedules:r,reminders:i})):r>0?n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsSchedules`,{count:r})):i>0&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsReminders`,{count:i})),n.length===0?H(`settings:manageProfilesBlockedDeleteModal.summaryNoReferences`,{display:t}):n.length===1?H(`settings:manageProfilesBlockedDeleteModal.summaryOneClause`,{display:t,clause1:n[0]}):n.length===2?H(`settings:manageProfilesBlockedDeleteModal.summaryTwoClauses`,{display:t,clause1:n[0],clause2:n[1]}):H(`settings:manageProfilesBlockedDeleteModal.summaryThreeClauses`,{display:t,clause1:n[0],clause2:n[1],clause3:n[2]})}function Zn({blocked:e,availableReplacements:t,replacement:n,onReplacementChange:r,error:i,saving:a,onClose:o,onConfirm:s}){let{t:l}=W(`settings`),u=e?.scheduleNames??[],d=u.slice(0,Jn),f=u.length-d.length,p=e!=null&&qn(e);return(0,$.jsx)(I.Root,{open:e!==null,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(I.Content,{size:`sm`,children:[(0,$.jsx)(I.Header,{children:(0,$.jsx)(I.Title,{children:l(`manageProfilesBlockedDeleteModal.title`)})}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[e&&(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:Xn(e)}),e&&e.callSiteIds.length>0&&(0,$.jsx)(Yn,{title:l(`manageProfilesBlockedDeleteModal.actionOverridesTitle`),items:e.callSiteIds,mono:!0}),d.length>0&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(Yn,{title:l(`manageProfilesBlockedDeleteModal.schedulesTitle`),items:d}),f>0&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`pl-1 text-(--content-tertiary)`,children:l(`manageProfilesBlockedDeleteModal.moreSchedules`,{count:f})})]}),e?.scheduleLookupFailed&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-mid-strong)`,children:l(`manageProfilesBlockedDeleteModal.scheduleLookupFailed`)}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-(--content-tertiary)`,children:l(`manageProfilesBlockedDeleteModal.replacementLabel`)}),(0,$.jsx)(V,{"aria-label":l(`manageProfilesBlockedDeleteModal.replacementLabel`),value:n,onChange:r,placeholder:l(`manageProfilesBlockedDeleteModal.replacementPlaceholder`),options:t.map(e=>{let t=p&&e.status===`disabled`;return{value:e.name,label:_e(e),disabled:t,tooltip:t?l(`manageProfilesBlockedDeleteModal.disabledTargetTooltip`):void 0}})})]}),i&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:i})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(c,{variant:`ghost`,size:`compact`,onClick:o,children:l(`manageProfilesBlockedDeleteModal.cancel`)}),(0,$.jsx)(c,{variant:`primary`,size:`compact`,disabled:!n||a,onClick:s,children:l(a?`manageProfilesBlockedDeleteModal.saving`:`manageProfilesBlockedDeleteModal.reassignAndDelete`)})]})]})})}function Qn({profile:e,isActiveProfile:t,selected:n,connections:r,deletePending:i=!1,onOpen:a,onMakeActive:o,onSetStatus:l,onDelete:u}){let{t:d}=W(`settings`),f=e.source===`managed`,p=e.status===`disabled`,m=e.label??e.name,h=[];e.model&&h.push(Pe(e.provider??void 0,e.model,r)),f&&h.push(d(`profileRow.managedByVellum`));let g=e.availability,_=g?.status===`incomplete`,y=g?.message??d(`profileRow.providerUnavailableDefault`),x=g!=null&&g.status!==`ok`?_?d(`profileRow.providerUnavailableFixable`,{message:y}):y:null;return(0,$.jsx)(v,{title:(0,$.jsx)(`span`,{className:p?`opacity-55`:void 0,children:m}),subtitle:h.length>0?h.join(` • `):void 0,onClick:a,showChevron:!1,selected:n,disabled:i,contentAriaLabel:d(`profileRow.openProfileAriaLabel`,{displayName:m}),trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[x==null?null:(0,$.jsx)(s,{content:x,children:_?(0,$.jsx)(`button`,{type:`button`,onClick:a,"aria-label":x,className:`inline-flex cursor-pointer rounded-sm p-0.5 keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:(0,$.jsx)(b,{className:`h-4 w-4 text-[var(--system-mid-strong)]`,"aria-hidden":`true`})}):(0,$.jsx)(`span`,{className:`inline-flex p-0.5`,tabIndex:0,children:(0,$.jsx)(b,{className:`h-4 w-4 text-[var(--system-mid-strong)]`,"aria-label":x,role:`img`})})}),p?(0,$.jsx)(F,{tone:`neutral`,children:d(`profileRow.disabledTag`)}):null,t?(0,$.jsx)(F,{tone:`positive`,children:d(`profileRow.defaultTag`)}):null,(0,$.jsxs)(S.Root,{children:[(0,$.jsx)(S.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(w,{}),"aria-label":d(`profileRow.actionsAriaLabel`,{displayName:m}),disabled:i})}),(0,$.jsxs)(S.Content,{align:`end`,sideOffset:4,children:[(0,$.jsx)(S.Item,{onSelect:a,children:d(f?`profileRow.view`:`profileRow.edit`)}),!t&&!p?(0,$.jsx)(S.Item,{onSelect:o,children:d(`profileRow.makeDefault`)}):null,p?(0,$.jsx)(S.Item,{onSelect:()=>l(!0),children:d(`profileRow.enable`)}):f?null:(0,$.jsx)(S.Item,{onSelect:()=>l(!1),children:d(`profileRow.disable`)}),f?null:(0,$.jsx)(S.Item,{onSelect:u,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:d(`profileRow.delete`)})]})]})]})})}function $n(e,t){let n=ot(),{data:r}=f({...Nt({path:{assistant_id:e}}),enabled:n,staleTime:3e4}),{profiles:i,profileOrder:a}=ct(t?.llm,e);return(0,Q.useMemo)(()=>r==null?{entries:fe(i,a).map(e=>({name:e.name,label:e.label??null,provider:e.provider??null,model:e.model??null,status:e.status===`disabled`?`disabled`:`active`,source:e.source===`managed`?`managed`:`user`,provider_connection:e.provider_connection,availability:null})),isEffectiveCatalog:!1}:{entries:r.profiles,isEffectiveCatalog:!0},[r,i,a])}function er(e){let t=d();return It({onSuccess:n=>{Bt(t,{path:{assistant_id:e}},n),t.invalidateQueries({queryKey:Gt({path:{assistant_id:e}})}),t.invalidateQueries({queryKey:Ut({path:{assistant_id:e}})})}})}var tr=`0.10.8`;function nr(e){return vt(tr,e)}var rr=`settings-ai-profile-make-active`,ir=`Failed to set the active profile. Please try again.`;function ar(e){let t=er(e),n=d(),r=nr(e),i=Kt({onSuccess:()=>{n.invalidateQueries({queryKey:zt({path:{assistant_id:e}})}),n.invalidateQueries({queryKey:Gt({path:{assistant_id:e}})})}});async function o(n,r,i){try{await t.mutateAsync({path:{assistant_id:e},body:{llm:n}})}catch(e){throw a(e,{context:r}),z.error(i),e}}async function s(t){if(!r){await o({activeProfile:t},rr,ir);return}try{await i.mutateAsync({path:{assistant_id:e},body:{name:t}})}catch(e){let t=re(e);throw z.error(t??ir),t||a(e,{context:rr}),e}}return{makeActive:s,setStatus:(e,t)=>o({profiles:{[e]:{status:t?`active`:`disabled`}}},`settings-ai-profile-toggle`,`Failed to update the profile. Please try again.`),deleteProfile:(e,t,n)=>o({profiles:{[e]:null},profileOrder:t.filter(t=>t!==e),...n?.isAdvisor?{advisorProfile:null}:{}},`settings-ai-profile-delete`,`Failed to delete the profile. Please try again.`),patchLlm:o,isPending:t.isPending||i.isPending}}var or=`The profile was not deleted.`,sr=`Failed to move the schedules. ${or}`;function cr(e){let t=re(e);return t?`${/[.!?]$/.test(t)?t:`${t}.`} ${or}`:sr}function lr(e,t,n){let r=ar(e),i=d(),o=ve(),s=t?.llm?.activeProfile??null,c=t?.llm?.advisorProfile??null,l=t?.llm?.callSites??{},u=(0,Q.useMemo)(()=>t?.llm?.profiles??{},[t?.llm?.profiles]),f=(0,Q.useMemo)(()=>t?.llm?.profileOrder??[],[t?.llm?.profileOrder]),p=(0,Q.useMemo)(()=>fe(u,f),[u,f]),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(null),[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(null),w=(0,Q.useRef)(!1);function T(e){return p.filter(t=>t.name===e?!1:t.status===`disabled`?!0:ye(t,p,{requireOwnProviderAndModel:o}))}function E(e,t){let n=T(e).filter(e=>!t||e.status!==`disabled`),r=n.find(e=>e.name===s),i=n.find(e=>e.source!==`managed`);return(r??i??n[0])?.name??``}async function D(e){try{await r.deleteProfile(e,f,{isAdvisor:e===c}),n?.onDeleted?.(e)}catch{}}async function O(t){let n=u[t]?.label??t,r=t===s,o=Object.entries(l).filter(([e,n])=>e!==`mainAgent`&&n?.profile===t).map(([e])=>e),c=[],d=0,f=!1;try{let n=(await i.fetchQuery({...Pt({path:{assistant_id:e},query:{inference_profile:t,include_all:`true`}}),retry:!1,staleTime:0})).schedules??[];c=n.filter(e=>!e.isDeferred).map(e=>e.name),d=n.filter(e=>e.isDeferred).length}catch(e){a(e,{context:`settings-ai-profile-delete-schedule-scan`}),f=!0}if(!(r||o.length>0||c.length>0||d>0)&&!f){await D(t);return}let p={name:t,label:n,isActive:r,callSiteIds:o,scheduleNames:c,deferredReminderCount:d,scheduleLookupFailed:f};h(p),y(E(t,qn(p))),_(null)}function k(e){t==null||w.current||(w.current=!0,C(e),O(e).finally(()=>{w.current=!1,C(null)}))}async function A(){if(!m||!v)return;if(x(!0),_(null),qn(m))try{await Cn(e,m.name,v),await i.invalidateQueries({queryKey:At({path:{assistant_id:e}})})}catch(e){a(e,{context:`settings-ai-profile-reassign-schedules`}),_(cr(e)),x(!1);return}let t={};if(m.isActive&&(t.activeProfile=v),m.callSiteIds.length>0){let e={};for(let t of m.callSiteIds)e[t]={profile:v};t.callSites=e}if(Object.keys(t).length>0)try{await r.patchLlm(t,`settings-ai-profile-reassign-delete`,`Failed to reassign references. Please try again.`)}catch{_(`Failed to reassign references. Please try again.`),x(!1);return}let n=m.name;h(null),x(!1),D(n)}return{requestDelete:k,pendingDeleteName:S,blockedDeleteModalProps:{blocked:m,availableReplacements:T(m?.name??null),replacement:v,onReplacementChange:y,error:g,saving:b,onClose:()=>{h(null),_(null)},onConfirm:()=>void A()}}}function ur(){}function dr({assistantId:e,config:t,connections:n,selectedProfileName:r,onOpenProfile:i,onCreateProfile:a,onProfileDeleted:o}){let{t:s}=W(`settings`),{entries:l}=$n(e,t),u=ar(e),d=lr(e,t,{onDeleted:o}),f=t?.llm?.activeProfile??null;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Kn,{title:s(`profilesSection.title`),action:(0,$.jsx)(c,{variant:`primary`,onClick:a,leftIcon:(0,$.jsx)(j,{}),disabled:t==null,children:s(`profilesSection.createProfile`)}),children:t==null?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:s(`profilesSection.loading`)}):l.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:s(`profilesSection.emptyState`)}):l.map(e=>(0,$.jsx)(Qn,{profile:e,isActiveProfile:e.name===f,selected:e.name===r,connections:n,deletePending:d.pendingDeleteName===e.name,onOpen:()=>i(e.name),onMakeActive:()=>void u.makeActive(e.name).catch(ur),onSetStatus:t=>void u.setStatus(e.name,t).catch(ur),onDelete:()=>d.requestDelete(e.name)},e.name))}),(0,$.jsx)(Zn,{...d.blockedDeleteModalProps})]})}var fr={anthropic:!0,openai:!0,gemini:!0,fireworks:!0,openrouter:!0,chatgpt:!0,vellum:!0,together:!0,"vercel-ai-gateway":!0,minimax:!0,atlascloud:!0,baseten:!0,poolside:!0};function pr(e){return e in fr}function mr(e){let t=e.baseUrl??``;try{e.baseUrl&&(t=new URL(e.baseUrl).host)}catch{}let n=[];t&&n.push(t);let r=e.models?.length??0;return r>0&&n.push(`${r} ${r===1?`model`:`models`}`),e.auth.type===`none`&&n.push(`keyless`),n.join(` · `)}function hr(e){switch(e.auth.type){case`api_key`:return`Own API key`;case`oauth_subscription`:return`ChatGPT subscription`;case`none`:return`No API key needed`;default:return null}}function gr(e){if(e.provider===`vellum`)return`Included with your plan`;if(e.provider===`openai-compatible`)return mr(e);let t=[],n=e.provider===`chatgpt`?`openai`:e.provider,r=e.auth.type===`oauth_subscription`?We(n):we(n),i=e.models?.length??r.length;i>0&&t.push(`${i} ${i===1?`model`:`models`}`);let a=hr(e);return a&&t.push(a),t.join(` • `)}function _r({connection:e,isDefault:t,supportsDefaultProvider:n,selected:r,isSettingDefault:i,onOpen:a,onSetDefault:o,onDelete:s}){let{t:l}=W(`settings`),u=e.isManaged??!1,d=at(e),f=pr(e.provider),p=gr(e),m=n&&!t&&f,h=!u&&a!=null,g=!u&&!t,_=m||h||g;return(0,$.jsx)(v,{title:d,subtitle:p.length>0?p:void 0,onClick:a,showChevron:!1,selected:r,contentAriaLabel:a?l(`providerRow.openProviderAriaLabel`,{displayName:d}):void 0,trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[u?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.managedTagTitle`),children:l(`providerRow.managedTag`)}):null,t?(0,$.jsx)(F,{tone:`info`,title:l(`providerRow.defaultTagTitle`),children:l(`providerRow.defaultTag`)}):null,e.provider===`ollama`?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.localTagTitle`),children:l(`providerRow.localTag`)}):null,e.provider===`openai-compatible`?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.customTagTitle`),children:l(`providerRow.customTag`)}):null,_?(0,$.jsxs)(S.Root,{children:[(0,$.jsx)(S.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(w,{}),"aria-label":l(`providerRow.actionsAriaLabel`,{displayName:d})})}),(0,$.jsxs)(S.Content,{align:`end`,sideOffset:4,children:[h?(0,$.jsx)(S.Item,{onSelect:a,children:l(`providerRow.edit`)}):null,m?(0,$.jsx)(S.Item,{disabled:i,onSelect:o,children:l(`providerRow.setAsDefault`)}):null,g?(0,$.jsx)(S.Item,{onSelect:s,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:l(`providerRow.delete`)}):null]})]}):(0,$.jsx)(`span`,{className:`inline-block w-8`,"aria-hidden":!0})]})})}function vr(e,t){let n=d(),r={path:{assistant_id:e}},i=p({...Rt(),onSuccess:()=>{n.invalidateQueries({queryKey:Vt(r)}),n.invalidateQueries({queryKey:zt(r)}),n.invalidateQueries({queryKey:Gt(r)})},onError:e=>{a(e,{context:`settings-ai-set-default-provider`}),z.error(H(`settings:useProviderActions.setDefaultFailedToast`))}});function o(t){pr(t.provider)&&i.mutate({path:{assistant_id:e},body:{provider:t.provider,connectionName:t.name}})}function s(e){return i.isPending&&i.variables?.body?.connectionName===e}async function c(i){try{let{response:a}=await yt({path:{assistant_id:e,name:i}});a?.ok||a?.status===404?(n.invalidateQueries({queryKey:Lt(r)}),t?.onDeleted?.(i)):a?.status===409?z.error(H(`settings:useProviderActions.deleteInUseToast`)):z.error(H(`settings:useProviderActions.deleteFailedToast`))}catch(e){a(e,{context:`settings-ai-provider-delete`}),z.error(H(`settings:useProviderActions.deleteFailedToast`))}}return{setDefault:o,isSettingDefault:s,deleteConnection:c}}function yr({assistantId:e,selectedConnectionName:t,onOpenConnection:n,onAddProvider:r,onConnectionDeleted:i}){let{t:a}=W(`settings`),{data:o,isLoading:s,isError:l}=f(Mt({path:{assistant_id:e}})),u=Qe(),{data:d}=f({...Ht({path:{assistant_id:e}}),enabled:u}),p=u?d?.resolvedConnectionName??null:null,m=vr(e,{onDeleted:i}),g=(0,Q.useMemo)(()=>{let e=o?.connections??[];return[...e.filter(e=>e.provider===de),...e.filter(e=>e.provider!==de)]},[o]);return(0,$.jsx)(Kn,{title:a(`providersSection.title`),action:(0,$.jsx)(c,{variant:`outlined`,onClick:r,leftIcon:(0,$.jsx)(j,{}),children:a(`providersSection.addProvider`)}),children:s?(0,$.jsx)(`div`,{className:`space-y-2 py-2`,children:[1,2,3].map(e=>(0,$.jsx)(te,{className:`h-10 rounded-lg`},e))}):l?(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,className:`py-4 text-center text-(--system-negative-strong)`,children:a(`providersSection.loadError`)}):g.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:a(`providersSection.empty`)}):g.map(e=>(0,$.jsx)(_r,{connection:e,isDefault:e.name===p,supportsDefaultProvider:u,selected:e.name===t,isSettingDefault:m.isSettingDefault(e.name),onOpen:e.isManaged??!1?void 0:()=>n(e.name),onSetDefault:()=>m.setDefault(e),onDelete:()=>void m.deleteConnection(e.name)},e.name))})}function br({panel:e,onOpenPanel:t,onClosePanel:n}){let{t:r}=W(`settings`),i=vn(),{data:a}=f({...qt({path:{assistant_id:i}}),staleTime:3e4}),o=Qe(),{data:s}=f({...Ht({path:{assistant_id:i}}),enabled:o}),l=s?.availability,{data:u}=f({...Mt({path:{assistant_id:i}})}),d=u?.connections,p=a?.llm?.callSites??{},m=Object.entries(p).filter(([e,t])=>e!==`mainAgent`&&(t?.profile!=null||t?.provider!=null||t?.model!=null)).length;return(0,$.jsx)(kn,{title:r(`languageModelCard.title`),subtitle:r(`languageModelCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[l&&l.status!==`ok`&&(0,$.jsx)(P,{tone:l.status===`unknown`?`warning`:`error`,children:l.message??r(`languageModelCard.defaultProviderUnavailable`)}),i&&(0,$.jsx)(dr,{assistantId:i,config:a,connections:d,selectedProfileName:e?.kind===`profile`?e.name:null,onOpenProfile:e=>t({kind:`profile`,name:e}),onCreateProfile:()=>t({kind:`create-profile`}),onProfileDeleted:t=>{e?.kind===`profile`&&e.name===t&&n()}}),i&&(0,$.jsx)(yr,{assistantId:i,selectedConnectionName:e?.kind===`provider`?e.name:null,onOpenConnection:e=>t({kind:`provider`,name:e}),onAddProvider:()=>t({kind:`add-provider`}),onConnectionDeleted:t=>{e?.kind===`provider`&&e.name===t&&n()}}),(0,$.jsx)(Kn,{title:r(`languageModelCard.overridesTitle`),count:m,action:(0,$.jsx)(c,{variant:`outlined`,onClick:()=>t({kind:`overrides`}),children:r(`languageModelCard.manage`)})})]})})}function xr(e,{onSaved:t}={}){let n=er(e),{data:r}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),i=(0,Q.useMemo)(()=>r?.llm?.profiles??{},[r?.llm?.profiles]),o=r?.llm?.profileOrder??[];async function s(r,s,c){let l=c?.mode??`replace`,u=!(r in i);if(l===`merge`&&!u){await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:s}}}}),t?.();return}let d={profiles:{[r]:s}};if(u&&(d.profileOrder=o.includes(r)?o:[...o,r]),u)await n.mutateAsync({path:{assistant_id:e},body:{llm:d}});else{let t=i[r];await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:null}}}});try{await n.mutateAsync({path:{assistant_id:e},body:{llm:d}})}catch(i){throw a(i,{context:`settings-ai-profile-edit-recreate`}),t!=null&&await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:t}}}}).catch(()=>{}),i}}u&&z.success(H(`settings:useProfileSave.createdToast`,{name:s.label??r})),t?.()}return{saveProfile:s,isPending:n.isPending}}function Sr({assistantId:e,profileName:t,onClose:n}){let{t:r}=W(`settings`),{data:i}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),{data:a}=f({...Mt({path:{assistant_id:e}})}),o=a?.connections,s=(0,Q.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),l=Object.keys(s),u=(0,Q.useMemo)(()=>{if(t==null)return;let e=s[t];return e?{name:t,...e}:void 0},[t,s]),d=t==null?`create`:u?.source===`managed`||u?.invariant===!0?`view`:`edit`,{saveProfile:p,isPending:m}=xr(e,{onSaved:n}),h=$e({mode:d,profileName:t??void 0,initialValues:u,existingNames:l,connections:o,assistantId:e,onSave:p}),g=lr(e,i,{onDeleted:()=>n()}),_=t!=null&&g.pendingDeleteName===t,v=t!=null&&i!=null&&!(t in s);(0,Q.useEffect)(()=>{v&&!h.saving&&!m&&n()},[v,h.saving,m,n]);let y=d===`view`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yn,{title:h.effectiveMode===`create`?r(`profileDetailPanel.newProfileTitle`):u?.label??t??r(`profileDetailPanel.defaultTitle`),closeVariant:`outlined`,onClose:n,headerTrailing:y&&h.effectiveMode!==`create`?(0,$.jsx)(F,{tone:`neutral`,children:r(`profileDetailPanel.managedTag`)}):null,headerActions:h.effectiveMode!==`create`&&!h.isReadOnly?(0,$.jsx)(c,{variant:`dangerOutline`,leftIcon:(0,$.jsx)(N,{}),onClick:()=>{t!=null&&g.requestDelete(t)},disabled:h.saving||_,children:r(_?`profileDetailPanel.deleting`:`profileDetailPanel.delete`)}):null,footer:h.isReadOnly?(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsx)(c,{variant:`outlined`,onClick:h.switchToSaveAsNew,disabled:h.saving,children:r(`profileDetailPanel.saveAsNew`)}),h.hasViewModeChanges?(0,$.jsx)(c,{variant:`primary`,onClick:()=>void h.handleSave(),disabled:h.saving,children:h.saving?r(`profileDetailPanel.saving`):r(`profileDetailPanel.save`)}):null]}):(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(c,{variant:`primary`,onClick:()=>void h.handleSave(),disabled:h.isInvalid||h.saving,children:h.saving?r(`profileDetailPanel.saving`):h.effectiveMode===`create`?r(`profileDetailPanel.createProfile`):r(`profileDetailPanel.saveChanges`)})}),children:(0,$.jsx)(Fe,{editor:h,assistantId:e,connections:o,variant:`panel`})}),(0,$.jsx)(Zn,{...g.blockedDeleteModalProps})]})}function Cr({value:e,profileOptions:t,disabled:n,onChange:r}){let{t:i}=W(`settings`);return(0,$.jsx)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:i(`advisorProfileRow.title`)}),(0,$.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:i(`advisorProfileRow.description`)})]}),(0,$.jsx)(V,{value:e,onChange:r,options:t,placeholder:i(`advisorProfileRow.chooseProfilePlaceholder`),className:`w-44`,menuMinWidth:280,menuAlign:`start`,disabled:n})]})})}var wr=`__custom__`;function Tr(e){return e?!!(e.profile||e.provider||e.model):!1}function Er(e,t){if(t?.provider||t?.model)return null;let n=e.defaultProfile??e.shippedDefaultProfile;return n?{profile:n,via:t?.profile===n?`override`:`default`}:null}function Dr(e,t){let n=Tr(e);return n===Tr(t)?n?(e?.profile??null)===(t?.profile??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.model??null)===(t?.model??null):!0:!1}function Or({assistantId:e,callSites:t,domains:n,persistedOverrides:r,orderedProfiles:i,onClose:o,onApplied:s}){let{t:l}=W(`settings`),u=er(e),d=ve(),f=(0,Q.useMemo)(()=>({requireOwnProviderAndModel:d}),[d]),p=(0,Q.useMemo)(()=>{let e=new Map;for(let n of t){let t=Er(n,r[n.id]);t&&e.set(n.id,t)}return e},[t,r]),m=(0,Q.useMemo)(()=>{let e=new Set(Array.from(p.values(),e=>e.profile));return i.filter(t=>e.has(t.name))},[i,p]),[g,_]=(0,Q.useState)(()=>m[0]?.name??``),[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(new Set),[S,C]=(0,Q.useState)(!1),w=(0,Q.useMemo)(()=>{let e=new Map(n.map(e=>[e.id,e.displayName]));return t=>e.get(t)??t},[n]),T=(0,Q.useMemo)(()=>t.filter(e=>p.get(e.id)?.profile===g),[t,p,g]),E=(0,Q.useMemo)(()=>T.map(e=>e.id).filter(e=>!b.has(e)),[T,b]),D=(0,Q.useMemo)(()=>m.map(e=>({value:e.name,label:_e(e)})),[m]),k=(0,Q.useMemo)(()=>he(i,[],f).filter(e=>e.name!==g).map(e=>({value:e.name,label:_e(e)})),[i,g,f]),j=le(i,g),M=le(i,v),N=b.size===0;function ee(e){_(e),x(new Set),e===v&&y(``)}function F(e,t){x(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})}async function L(){if(!(!g||!v||E.length===0)){C(!0);try{let t={};for(let e of E)t[e]={profile:v};await u.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:t}}}),z.success(l(`bulkOverrideSwapModal.successToast`,{count:E.length,targetLabel:M})),s(),o()}catch(e){let t=re(e);z.error(t??l(`bulkOverrideSwapModal.updateFailedToast`)),t||a(e,{context:`settings-ai-bulk-override-swap`})}finally{C(!1)}}}return(0,$.jsx)(I.Root,{open:!0,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsx)(I.Header,{children:(0,$.jsx)(I.Title,{children:l(`bulkOverrideSwapModal.title`)})}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l(`bulkOverrideSwapModal.intro`)}),(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,$.jsx)(V,{id:`bulk-swap-source`,label:l(`bulkOverrideSwapModal.currentlyUsingLabel`),value:g,onChange:ee,options:D}),(0,$.jsx)(V,{id:`bulk-swap-target`,label:l(`bulkOverrideSwapModal.changeToLabel`),value:v,onChange:y,options:k,placeholder:l(`bulkOverrideSwapModal.targetPlaceholder`)})]}),(0,$.jsx)(P,{tone:`info`,title:l(`bulkOverrideSwapModal.noticeTitle`),children:l(`bulkOverrideSwapModal.noticeBody`,{sourceLabel:j})}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`mb-2 flex items-baseline justify-between gap-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l(`bulkOverrideSwapModal.affectedSummary`,{count:T.length,profile:j})}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[color:var(--content-secondary)]`,children:l(`bulkOverrideSwapModal.chooseActions`)})]}),(0,$.jsx)(c,{variant:`ghost`,onClick:()=>x(N?new Set(T.map(e=>e.id)):new Set),children:l(N?`bulkOverrideSwapModal.clearAll`:`bulkOverrideSwapModal.selectAll`)})]}),(0,$.jsx)(`div`,{className:`max-h-72 space-y-1 overflow-y-auto`,children:T.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border border-[var(--border-base)] px-3 py-2`,children:[(0,$.jsx)(A,{checked:!b.has(e.id),onCheckedChange:t=>F(e.id,t===!0),disabled:S,label:e.displayName,helperText:w(e.domain)}),(0,$.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:p.get(e.id)?.via===`override`?l(`bulkOverrideSwapModal.viaOverride`):l(`bulkOverrideSwapModal.viaDefault`)})]},e.id))})]})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`mr-auto self-center text-[color:var(--content-secondary)]`,children:l(`bulkOverrideSwapModal.willChange`,{count:E.length})}),(0,$.jsx)(c,{variant:`ghost`,onClick:o,disabled:S,children:l(`bulkOverrideSwapModal.cancel`)}),(0,$.jsx)(c,{variant:`primary`,disabled:!g||!v||E.length===0||S,onClick:()=>void L(),children:S?(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}):l(`bulkOverrideSwapModal.applyTo`,{count:E.length})})]})]})})}function kr({id:e,displayName:t,description:n,defaultProfileLabel:r,draft:i,profileOptions:a,connections:o,onDraftChange:s,onToggle:c}){let{t:l}=W(`settings`),u=Tr(i),d=!i||!u?``:i.provider||i.model?wr:i.profile??``,f=d===wr,p=He(),m=(o??[]).some(e=>e.provider===xe),h=[...p,...m?[xe]:[]],g=p[0]??K[0],_=i?.provider,v=Y(_)?_:_===`chatgpt`?xe:void 0,y=v!==void 0&&h.some(e=>e===v),b=v??g,x=Ue(b,``,(o??[]).filter(e=>Be(e.provider,b)))?We(b):we(b),S=x.map(e=>({value:e.id,label:e.displayName})),C=typeof i?.model==`string`?i.model:``;if(C&&!x.some(e=>e.id===C)){let e=we(b).find(e=>e.id===C)?.displayName??C;S.push({value:C,label:l(`callSiteOverridesRow.unavailableOption`,{name:e})})}let w=!!i?.provider&&!i?.model,T=[...h.map(e=>({value:e,label:q[e]??e})),...v&&!y?[{value:v,label:l(`callSiteOverridesRow.unavailableOption`,{name:q[v]??v})}]:[]];function E(t){t===`__custom__`?s(e,{profile:null,provider:g,model:J(g)??``}):t===``?s(e,null):s(e,{profile:t,provider:null,model:null})}function D(t){let n=J(t)??``;s(e,{...i??{},profile:null,provider:t,model:n})}function O(t){s(e,{...i??{},model:t})}return(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:t}),n&&(0,$.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[n,r&&(0,$.jsx)(`span`,{className:`ml-1.5 text-body-small-default text-[var(--content-tertiary)] opacity-60`,children:l(`callSiteOverridesRow.defaultProfileSuffix`,{label:r})})]})]}),(0,$.jsx)(R,{checked:u,onChange:t=>c(e,t),"aria-label":l(`callSiteOverridesRow.overrideAriaLabel`,{displayName:t}),className:`shrink-0`})]}),u&&(0,$.jsx)(`div`,{className:`mt-3`,children:(0,$.jsx)(V,{value:d,onChange:E,options:a,className:`w-44`,menuMinWidth:280,menuAlign:`start`})}),u&&f&&(0,$.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-[var(--border-base)] pt-3`,children:[(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:l(`callSiteOverridesRow.providerLabel`)}),(0,$.jsx)(V,{value:b??``,onChange:D,options:T})]}),(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:l(`callSiteOverridesRow.modelLabel`)}),(0,$.jsx)(V,{value:i?.model??``,onChange:O,options:S})]})]}),w&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:l(`callSiteOverridesRow.pickModelError`)})]})]})}function Ar({groups:e,drafts:t,buildProfileOptionsForRow:n,profileLabelFor:r,advisorMatchesSearch:i,connections:a,onDraftChange:o,onToggle:s}){let{t:c}=W(`settings`);return(0,$.jsx)(`div`,{className:`space-y-4`,children:e.length===0?i?null:(0,$.jsx)(`p`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:c(`overridesCallSiteList.emptySearch`)}):e.map(({domain:e,sites:i})=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:e.displayName}),(0,$.jsx)(`div`,{className:`space-y-1`,children:i.map(e=>{let i=(()=>{let n=t[e.id]??null;return!n||!Tr(n)?``:n.provider||n.model?wr:n.profile??``})(),c=e.shippedDefaultProfile??e.defaultProfile,l=c?r(c):null;return(0,$.jsx)(kr,{id:e.id,displayName:e.displayName,description:e.description,defaultProfileLabel:l,draft:t[e.id]??null,profileOptions:n(i===``||i===`__custom__`?null:i),connections:a,onDraftChange:o,onToggle:s},e.id)})})]},e.id))})}function jr(e,t){let n={};for(let r of Object.keys(e)){let i=e[r]??null;Tr(i)?n[r]={profile:i?.profile??null,provider:i?.provider??null,model:i?.model??null}:r in t&&t[r]===null&&(n[r]=null)}return n}function Mr(e){let t={};for(let n of Object.keys(e))t[n]=null;return t}function Nr({catalogCallSiteIds:e,persistedOverrides:t,persistedAdvisor:n,isSeeded:r}){let[i,a]=(0,Q.useState)({}),[o,s]=(0,Q.useState)(void 0),c=(0,Q.useMemo)(()=>{if(!r)return{};let n={};for(let r of e)if(r in i)n[r]=i[r];else{let e=t[r];n[r]=e?{...e}:{}}return n},[r,e,t,i]),l=o??n,u=l!==n,d=(0,Q.useMemo)(()=>{if(!r)return!1;for(let e of Object.keys(c))if(!Dr(c[e],t[e]))return!0;return!1},[r,c,t]);return{drafts:c,advisorProfile:l,advisorDirty:u,callSiteDraftsDirty:d,hasUnsavedDrafts:u||d,hasValidationError:(0,Q.useMemo)(()=>Object.values(c).some(e=>Tr(e)&&!!e?.provider&&!e?.model),[c]),setDraft:(0,Q.useCallback)((e,t)=>{a(n=>({...n,[e]:t}))},[]),setAdvisor:(0,Q.useCallback)(e=>{s(e)},[]),clearEdits:(0,Q.useCallback)(()=>{a({}),s(void 0)},[]),buildSavePatch:(0,Q.useCallback)(()=>jr(c,i),[c,i]),buildResetPatch:(0,Q.useCallback)(()=>Mr(c),[c])}}function Pr({assistantId:e,onClose:t}){let{t:n}=W(`settings`),{data:r}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),i=(0,Q.useMemo)(()=>r?.llm?.profiles??{},[r?.llm?.profiles]),o=(0,Q.useMemo)(()=>r?.llm?.profileOrder??[],[r?.llm?.profileOrder]),s=(0,Q.useMemo)(()=>r?.llm?.callSites??{},[r?.llm?.callSites]),l=(0,Q.useMemo)(()=>fe(i,o),[i,o]),u=He(),d=ve(),p=(0,Q.useMemo)(()=>({requireOwnProviderAndModel:d}),[d]),m=er(e),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(!1),[y,x]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(!1),{data:w,isLoading:T,isError:E,refetch:D}=f({...Wt({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4,refetchOnWindowFocus:!1}),{data:k}=f({...Mt({path:{assistant_id:e}}),enabled:!!e}),A=(0,Q.useMemo)(()=>(w?.callSites??[]).filter(e=>e.id!==`mainAgent`),[w]),j=!T&&!E&&!!w,N=!!r,ee=j&&N,P=(0,Q.useMemo)(()=>A.map(e=>e.id),[A]),F=r?.llm?.advisorProfile??``,{drafts:I,advisorProfile:R,advisorDirty:V,callSiteDraftsDirty:te,hasUnsavedDrafts:H,hasValidationError:U,setDraft:ne,setAdvisor:re,clearEdits:G,buildSavePatch:q,buildResetPatch:Y}=Nr({catalogCallSiteIds:P,persistedOverrides:s,persistedAdvisor:F,isSeeded:ee}),ie=(0,Q.useMemo)(()=>new Set(P),[P]),ae=(0,Q.useCallback)(e=>le(l,e),[l]),se=(0,Q.useCallback)(e=>({value:e.name,label:_e(e),...me(e,l,p)===`undispatchable`?{icon:(0,$.jsx)(b,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),tooltip:oe(e)}:{}}),[l,p]),X=(0,Q.useMemo)(()=>he(l,[F],p).map(se),[l,F,se,p]),Z=(0,Q.useMemo)(()=>{let e=h.trim().toLowerCase();return e===``||`advisor`.includes(e)||`second opinion`.includes(e)},[h]),ce=(0,Q.useMemo)(()=>A.some(e=>Er(e,s[e.id])!==null),[A,s]),de=(0,Q.useMemo)(()=>Object.entries(s).some(([e,t])=>ie.has(e)&&(t?.profile!=null||t?.provider!=null||t?.model!=null)),[s,ie]),pe=(0,Q.useCallback)(e=>[...he(l,[e],p).map(se),{value:wr,label:n(`overridesDetailPanel.customProfileOption`)}],[l,se,p,n]),ge=(0,Q.useMemo)(()=>{if(!h.trim())return A;let e=h.toLowerCase();return A.filter(t=>(t.displayName??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.domain??``).toLowerCase().includes(e))},[A,h]),ye=(0,Q.useMemo)(()=>{if(!w)return[];let e=w.domains.map(e=>e.id),t=new Map(w.domains.map(e=>[e.id,e])),r=[];for(let n of e){let e=ge.filter(e=>e.domain===n);e.length>0&&r.push({domain:t.get(n),sites:e})}let i=new Set(e),a=ge.filter(e=>!i.has(e.domain));return a.length>0&&r.push({domain:{id:`other`,displayName:n(`overridesDetailPanel.otherDomain`)},sites:a}),r},[w,ge,n]),be=(0,Q.useCallback)((e,t)=>{if(!t){ne(e,null);return}let n=ue(l,A.find(t=>t.id===e)?.defaultProfile,p);if(n)ne(e,{profile:n});else{let t=u[0]??K[0];ne(e,{provider:t,model:J(t)??``})}},[A,l,u,ne,p]),xe=(0,Q.useCallback)(async()=>{v(!0);try{let r=q();await m.mutateAsync({path:{assistant_id:e},body:{llm:{...te?{callSites:r}:{},...V?{advisorProfile:R}:{}}}}),t(),z.success(n(`overridesDetailPanel.overridesSavedToast`))}catch(e){z.error(n(`overridesDetailPanel.saveFailedToast`)),a(e,{context:`call_site_overrides_save`})}finally{v(!1)}},[q,te,V,R,t,m,e,n]),Se=(0,Q.useCallback)(async()=>{v(!0);try{let r=Y();await m.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:r}}}),t(),z.success(n(`overridesDetailPanel.overridesResetToast`))}catch(e){z.error(n(`overridesDetailPanel.resetFailedToast`)),a(e,{context:`call_site_overrides_reset`})}finally{v(!1)}},[Y,t,m,e,n]),Ce=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[de&&(0,$.jsx)(c,{variant:`outlined`,onClick:()=>x(!0),disabled:_||!ee,tintColor:`var(--system-negative-strong)`,className:`mr-auto`,children:n(`overridesDetailPanel.resetToDefaults`)}),(0,$.jsx)(c,{variant:`primary`,onClick:()=>void xe(),disabled:!H||U||_,children:_?(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}):n(`overridesDetailPanel.save`)})]});return(0,$.jsxs)(yn,{title:n(`overridesDetailPanel.title`),closeVariant:`outlined`,onClose:t,footer:Ce,children:[(0,$.jsx)(`p`,{className:`mb-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.description`)}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`mb-4 flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsx)(L,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:n(`overridesDetailPanel.searchPlaceholder`),leftIcon:(0,$.jsx)(M,{className:`h-4 w-4`}),fullWidth:!0})}),(0,$.jsx)(c,{variant:`outlined`,onClick:()=>C(!0),disabled:!ee||_||H||!ce,title:H?n(`overridesDetailPanel.bulkChangeUnsavedTitle`):ce?void 0:n(`overridesDetailPanel.bulkChangeNoCandidatesTitle`),children:n(`overridesDetailPanel.bulkChange`)})]}),N&&Z&&(0,$.jsxs)(`div`,{className:`mb-4`,children:[(0,$.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.advisorSection`)}),(0,$.jsx)(Cr,{value:R,profileOptions:X,disabled:_,onChange:re})]}),T&&(0,$.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,$.jsx)(O,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}),E&&(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:n(`overridesDetailPanel.loadErrorTitle`)}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.loadErrorHint`)}),(0,$.jsx)(c,{variant:`outlined`,onClick:()=>void D(),children:n(`overridesDetailPanel.retry`)})]}),!T&&!E&&w&&(0,$.jsx)(Ar,{groups:ye,drafts:I,buildProfileOptionsForRow:pe,profileLabelFor:ae,advisorMatchesSearch:Z,connections:k?.connections,onDraftChange:ne,onToggle:be})]}),S&&w&&(0,$.jsx)(Or,{assistantId:e,callSites:A,domains:w.domains,persistedOverrides:s,orderedProfiles:l,onClose:()=>C(!1),onApplied:G}),(0,$.jsx)(B,{open:y,title:n(`overridesDetailPanel.resetToDefaults`),message:n(`overridesDetailPanel.resetConfirmMessage`),confirmLabel:n(`overridesDetailPanel.resetToDefaults`),destructive:!0,onConfirm:()=>{x(!1),Se()},onCancel:()=>x(!1)})]})}function Fr({mode:e,connection:t,assistantId:n,existingNames:r,connections:i,variant:a=`modal`,onSave:o,onCancel:s}){let{t:l}=W(`settings`),[u,f]=(0,Q.useState)(t?.label??``),p=t?.name??``,m=t?.provider??`anthropic`,g=t?.auth.type??`api_key`,[_,v]=(0,Q.useState)(()=>t?.auth.type===`api_key`?t.auth.credential:t?``:`credential/anthropic/api_key`),[y,b]=(0,Q.useState)(t?.baseUrl??``),[x,S]=(0,Q.useState)(()=>t?.models?t.models.map(e=>e.id).join(`, `):``),[C,w]=(0,Q.useState)(!1),[T,E]=(0,Q.useState)(null),D=m===`openai-compatible`,[O,k]=(0,Q.useState)(``),[A,j]=(0,Q.useState)(!1),M=d(),N=(0,Q.useMemo)(()=>Me(_),[_]),ee=g===`api_key`&&N!==null,{hasStoredCredential:P,isLoading:F}=ke({assistantId:n,credentialKind:`credential`,credentialName:N?`${N.service}:${N.field}`:``,enabled:ee}),{credentials:R}=De({assistantId:n,enabled:g===`api_key`});(0,Q.useEffect)(()=>{let e=t?.provider??`anthropic`;f(t?.label??``),t?.auth.type===`api_key`?v(t.auth.credential):v(t?``:`credential/${e}/api_key`),E(null),b(t?.baseUrl??``),S(t?.models?t.models.map(e=>e.id).join(`, `):``),k(``),j(!1)},[t]);let z=u.trim()!==(t?.label??``).trim(),B=D&&z?mt(u,i,t?.name):null,V=p.trim().length>0&&B===null;async function te(){if(V){w(!0),E(null);try{let e;if(g===`api_key`){let t=_.trim()||`credential/${m}/api_key`,r=O.trim();if(r){j(!0);try{let e=Me(t);await St({path:{assistant_id:n},body:e?{type:`credential`,name:`${e.service}:${e.field}`,value:r}:{type:`api_key`,name:m,value:r},throwOnError:!0});let i=Ve(n,`credential`,e?`${e.service}:${e.field}`:``);M.setQueryData(i,!0),M.invalidateQueries({queryKey:Ft({path:{assistant_id:n}})})}catch{E(l(`providerEditorContent.failedSaveApiKey`));return}finally{j(!1)}}e={type:`api_key`,credential:t}}else if(t)e=t.auth;else{E(l(`providerEditorContent.nothingToEdit`));return}let r=u.trim()||null,i={auth:e,label:r,...D&&{base_url:y.trim()||null,models:x.trim()?x.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:a,error:s,response:c}=await bt({path:{assistant_id:n,name:t?.name??p.trim()},body:i});if(!c?.ok){E(je(c?.status,s)??Oe(c?.status));return}if(!a){E(l(`providerEditorContent.emptyServerResponse`));return}o(a)}catch{E(l(`providerEditorContent.failedSaveProvider`))}finally{w(!1)}}}let H=R.filter(e=>e.service===m),ne=e!==`create`&&t?.auth.type===`api_key`,re=H.length>0||ne,G=Ae(l(`providerEditorContent.apiKeyPlaceholder`),P);if(e===`create`)return(0,$.jsx)(Ie,{variant:a===`panel`?`inline`:`modal`,assistantId:n,existingNames:r,connections:i,defaultProviderType:m,onCreated:o,onCancel:s});let K=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:(0,$.jsx)(U,{i18nKey:`providerEditorContent.displayNameLabel`,ns:`settings`,components:{optional:(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`})}})}),(0,$.jsx)(L,{value:u,onChange:e=>f(e.target.value),placeholder:l(`providerEditorContent.displayNamePlaceholder`),fullWidth:!0}),B?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:Le[B]}):null]}),D&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:l(`providerEditorContent.baseUrlLabel`)}),(0,$.jsx)(L,{value:y,onChange:e=>b(e.target.value),placeholder:l(`providerEditorContent.baseUrlPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:l(`providerEditorContent.modelsLabel`)}),(0,$.jsx)(L,{value:x,onChange:e=>S(e.target.value),placeholder:l(`providerEditorContent.modelsPlaceholder`),fullWidth:!0}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:l(`providerEditorContent.modelsHint`)})]})]}),g===`api_key`&&(0,$.jsx)(Ne,{apiKeyValue:O,onApiKeyChange:k,credential:_,onCredentialChange:v,isLoadingCredential:F,apiKeyPlaceholder:G,provider:m,providerCredentials:H,showAdvancedSection:re,onError:E}),g===`oauth_subscription`&&(0,$.jsx)(Te,{assistantId:n,onConnected:o}),T&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:T})]}),q=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(c,{variant:`ghost`,onClick:s,children:l(`providerEditorContent.cancel`)}),(0,$.jsx)(c,{variant:`primary`,disabled:!V||C||A,onClick:()=>void te(),children:l(C?`providerEditorContent.saving`:`providerEditorContent.saveChanges`)})]});return a===`panel`?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[K,(0,$.jsx)(`div`,{className:`flex justify-end gap-2`,children:q})]}):(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsxs)(I.Header,{children:[(0,$.jsx)(I.Title,{children:l(`providerEditorContent.editProviderTitle`)}),(0,$.jsx)(I.Description,{children:t?l(`providerEditorContent.editingConnection`,{name:at(t)}):l(`providerEditorContent.editProviderSettingsFallback`)})]}),(0,$.jsx)(I.Body,{children:K}),(0,$.jsx)(I.Footer,{children:q})]})}function Ir({assistantId:e,connectionName:t,onClose:n}){let{t:r}=W(`settings`),i=d(),{data:a}=f(Mt({path:{assistant_id:e}})),o=(0,Q.useMemo)(()=>a?.connections??[],[a]),s=(0,Q.useMemo)(()=>t==null?void 0:o.find(e=>e.name===t),[t,o]),c=t!=null&&a!=null&&s==null;(0,Q.useEffect)(()=>{c&&n()},[c,n]);function l(){i.invalidateQueries({queryKey:Lt({path:{assistant_id:e}})}),i.invalidateQueries({queryKey:Vt({path:{assistant_id:e}})}),n()}return(0,$.jsx)(yn,{title:s?at(s):r(`providerDetailPanel.addProviderTitle`),closeVariant:`outlined`,onClose:n,children:t==null||s!=null?(0,$.jsx)(Fr,{mode:s?`edit`:`create`,connection:s,variant:`panel`,assistantId:e,existingNames:o.map(e=>e.name),connections:o,onSave:l,onCancel:n}):null})}var Lr={vellum:{provider:`vellum`},deepgram:{provider:`deepgram`,credentialService:`deepgram`},openai:{provider:`openai-whisper`,credentialService:`openai`}},Rr={vellum:`vellum`,deepgram:`deepgram`,"openai-whisper":`openai`},zr=`deepgram`;function Br({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=vn(),s=e??o,c=kt(),l=d(),[u]=(0,Q.useState)(()=>ft.filter(e=>!e.requiresNativeDictation||ze())),p=zr,{data:m}=f({...qt({path:{assistant_id:s}}),enabled:c,staleTime:3e4}),h=m?.services?.stt,g=h?.mode===`managed`?`vellum`:h?.provider,_=(0,Q.useMemo)(()=>{let e=g?Rr[g]:void 0;if(e&&u.some(t=>t.id===e))return e;let n=t(lt,p);return u.some(e=>e.id===n)?n:p},[g,u,p]),v=!!g,[y,b]=Vn(_),{available:x,currentCode:S,configuredProviderId:C,selectLanguage:w,selecting:T}=fn(s),[E,D]=(0,Q.useState)(!1),O=x&&y===_&&(Lr[y]?.provider===C||!!g&&!Rr[g]),[k,A]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(!1),[N,P]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{let e=t(lt,p);e===`macos-native`&&!u.some(t=>t.id===e)&&n(lt,p)},[u,p]);let F=(0,Q.useMemo)(()=>u.find(e=>e.id===y)??u[0],[u,y]),I=F.apiKeyPlaceholder!==void 0;(0,Q.useEffect)(()=>{M(t(et+y,``).length>0),A(``)},[y]);let R=(0,Q.useMemo)(()=>{let e=y!==_,t=k.trim().length>0;return e||t},[y,_,k]),B=(0,Q.useCallback)(async()=>{let e=k.trim();n(lt,y),e.length>0&&n(et+y,e);let r=Lr[y];P(!0);try{if(r?.credentialService){let n=e.length>0?e:t(et+y,``);if(n.length>0){let{response:e}=await Tt({path:{assistant_id:s},body:{service:r.credentialService,field:`api_key`,value:n,label:`${F.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}}if(r&&(y!==_||!v)||g===`vellum`&&y!==`vellum`){let e=r?.provider??zr,{response:t}=await Ct({path:{assistant_id:s},body:{services:{stt:{provider:e,mode:e===`vellum`?`managed`:`your-own`}}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return e.length>0&&M(!0),A(``),l.invalidateQueries({queryKey:zt({path:{assistant_id:s}})}),z.success(`Speech-to-text settings saved`),!0}catch(e){return z.error(e instanceof Error?e.message:`Failed to save speech-to-text settings`),!1}finally{P(!1)}},[s,y,k,F,_,v,g,l]);(0,Q.useEffect)(()=>{a?.({hasChanges:R,saving:N,save:B})},[a,R,N,B]);let te=(0,Q.useCallback)(()=>{n(et+y,``),M(!1),A(``)},[y]),H=j?`•••••••• (Enter a new key to replace)`:F.apiKeyPlaceholder;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(V,{value:y,onChange:b,options:u.map(e=>({value:e.id,label:e.displayName})),"aria-label":`STT provider`})]}),O&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Spoken language`}),(0,$.jsx)(nt,{"aria-label":`Spoken language`,"aria-haspopup":`dialog`,onClick:()=>D(!0),value:pn(S,C)}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Applies from your next spoken turn.`}),(0,$.jsx)(En,{open:E,onOpenChange:D,title:`Spoken language`,currentCode:S,configuredProviderId:C,selectLanguage:w,selecting:T})]}),I&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(L,{type:`password`,value:k,onChange:e=>A(e.target.value),placeholder:H,fullWidth:!0})]}),F.setupWarning&&(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(ee,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-mid-strong)]`}),(0,$.jsx)(`span`,{children:F.setupWarning})]}),!i&&F.credentialsGuide&&(0,$.jsx)(Fn,{guide:F.credentialsGuide}),y===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Transcription runs through your Vellum account.`}),(!r||j)&&(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[!r&&(0,$.jsx)(Nn,{onClick:B,disabled:!R||N}),j&&(0,$.jsx)(Pn,{onClick:te})]})]})}function Vr(){let{t:e}=W(`settings`);return(0,$.jsx)(kn,{title:e(`speechToTextCard.title`),subtitle:e(`speechToTextCard.subtitle`),children:(0,$.jsx)(Br,{})})}async function Hr(e){let{provider:t,apiKey:n,voiceId:r,text:i}=e;if(n.trim().length===0)return{kind:`error`,message:`Save an API key for this provider first.`};try{return t===`elevenlabs`?await Ur(n,r,i):t===`deepgram`?await Wr(n,i):t===`fish-audio`?{kind:`unsupported`,message:`Fish Audio TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:t===`xai`?{kind:`unsupported`,message:`xAI TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:{kind:`unsupported`,message:`TTS testing for "${t}" is not supported from the browser yet.`}}catch(e){return{kind:`error`,message:e instanceof Error?e.message:`Failed to reach the TTS provider.`}}}async function Ur(e,t,n){let r=t.trim();if(r.length===0)return{kind:`error`,message:`Enter and save a Voice ID before testing ElevenLabs.`};let i=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${encodeURIComponent(r)}?output_format=mp3_44100_128`,{method:`POST`,headers:{"xi-api-key":e,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:n,model_id:`eleven_turbo_v2_5`})});return i.ok?{kind:`audio`,blob:await i.blob()}:{kind:`error`,message:await Gr(i,`ElevenLabs rejected the request.`)}}async function Wr(e,t){let n=await fetch(`https://api.deepgram.com/v1/speak?model=aura-2-thalia-en`,{method:`POST`,headers:{Authorization:`Token ${e}`,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:t})});return n.ok?{kind:`audio`,blob:await n.blob()}:{kind:`error`,message:await Gr(n,`Deepgram rejected the request.`)}}async function Gr(e,t){try{let n=await e.text();if(n.length===0)return`${t} (HTTP ${e.status})`;try{let e=JSON.parse(n);if(e&&typeof e==`object`&&`detail`in e&&typeof e.detail==`string`)return e.detail;if(e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`)return e.message}catch{}return n.slice(0,200)}catch{return`${t} (HTTP ${e.status})`}}function Kr({assistantId:e,value:t,onChange:n,className:r}){let[i,a]=(0,Q.useState)(!1),{voices:o}=gn(e);if(o.length===0)return null;let s=o.find(e=>e.model===t)??o[0];return(0,$.jsxs)(g.Root,{open:i,onOpenChange:a,children:[(0,$.jsx)(g.Trigger,{asChild:!0,children:(0,$.jsx)(nt,{"aria-label":`Voice`,value:s?mn(s.description):`Select a voice`,className:r})}),(0,$.jsx)(g.Content,{side:`bottom`,align:`start`,className:`w-[var(--radix-popover-trigger-width)] p-1`,children:(0,$.jsx)(hn,{assistantId:e,value:t,onChange:n,onSelect:()=>a(!1),showSource:!0})})]})}var qr={elevenlabs:`voiceId`,"fish-audio":`referenceId`,xai:`voiceId`};function Jr({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=vn(),s=e??o,l=ht.use.name()??`your assistant`,u=kt(),p=d(),{data:m}=f({...jt({path:{assistant_id:s}}),enabled:u,staleTime:1/0}),h=(0,Q.useMemo)(()=>{let e=m?.providers;if(!e)return Re;if(e.some(e=>e.id===`vellum`))return e;let t=Re.find(e=>e.id===`vellum`);return t?[t,...e]:e},[m]),{data:g}=f({...qt({path:{assistant_id:s}}),enabled:u,staleTime:3e4}),_=g?.services?.tts,v=_?.mode===`managed`?`vellum`:_?.provider,y=`elevenlabs`,b=(0,Q.useMemo)(()=>v??t(`vellum:voice:ttsProvider`,y),[v,y]),x=!!v,[S,C]=Vn(b),[w,T]=(0,Q.useState)(``),[E,O]=(0,Q.useState)(``),[k,A]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(!1),[N,ee]=(0,Q.useState)(!1),[P,F]=(0,Q.useState)(!1),{voices:I,defaultModel:R,fetched:B}=_n(s,{enabled:S===`vellum`}),te=_?.providers?.vellum?.model??R??``,[H,U]=Vn(te),W=I.find(e=>e.model===H)??I[0],[ne,re]=(0,Q.useState)(null),G=I.some(e=>e.model===te),K=ne??(B&&te!==``&&!G),q=(0,Q.useMemo)(()=>h.find(e=>e.id===S)??h[0],[S,h]),J=S===`vellum`&&q.supportsVoiceSelection&&H.trim()!==``&&H.trim()!==te,Y=(0,Q.useCallback)(e=>{let n=t(Je+e,``),r=t(it+e,``);M(n.length>0),O(r),A(r),T(``)},[]);(0,Q.useEffect)(()=>{Y(S)},[S,Y]);let ie=(0,Q.useMemo)(()=>{let e=S!==b,t=w.trim().length>0,n=E.trim()!==k;return e||t||n||J},[S,b,w,E,k,J]),ae=(0,Q.useCallback)(async()=>{let e=w.trim(),r=E.trim(),i=q.id;n(Ye,i),e.length>0&&n(Je+i,e),n(it+i,r);let a=e.length>0?e:t(Je+i,``),o=qr[i];F(!0);try{if(a.length>0){let{response:e}=await Tt({path:{assistant_id:s},body:{service:i,field:`api_key`,value:a,label:`${q.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}let e={...S!==b||!x?{provider:i,mode:i===`vellum`?`managed`:`your-own`}:{},...o?{providers:{[i]:{[o]:r}}}:{},...J?{providers:{vellum:{model:H.trim()}}}:{}};if(Object.keys(e).length>0){let{response:t}=await Ct({path:{assistant_id:s},body:{services:{tts:e}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return M(a.length>0),A(r),T(``),p.invalidateQueries({queryKey:zt({path:{assistant_id:s}})}),z.success(`Text-to-speech settings saved`),!0}catch(e){return z.error(e instanceof Error?e.message:`Failed to save text-to-speech settings`),!1}finally{F(!1)}},[s,S,H,J,w,E,q,b,x,p]);(0,Q.useEffect)(()=>{a?.({hasChanges:ie,saving:P,save:ae})},[a,ie,P,ae]);let oe=(0,Q.useCallback)(()=>{n(Je+S,``),M(!1),T(``)},[S]),se=(0,Q.useCallback)(async()=>{ee(!0);try{let e=t(Je+S,``),n=w.trim(),r=n.length>0?n:e;if(r.length===0){z.error(`Save an API key for this provider before testing.`);return}let i=t(it+S,``),a=E.trim(),o=await Hr({provider:S,apiKey:r,voiceId:a.length>0?a:i,text:`Hey! It's ${l}. How does this sound?`});if(o.kind!==`audio`){z.error(o.message);return}let s=URL.createObjectURL(o.blob);try{let e=new Audio(s);await e.play(),await new Promise(t=>{e.onended=()=>t(),e.onerror=()=>t()})}finally{URL.revokeObjectURL(s)}}finally{ee(!1)}},[l,w,S,E]),X=j?`•••••••• (Enter a new key to replace)`:q.apiKeyPlaceholder,Z=S===`vellum`,ce=Z&&q.supportsVoiceSelection,le=(0,$.jsxs)(c,{variant:`link`,size:`compact`,className:`inline-flex h-auto items-center gap-1 px-0 underline [--vbtn-fg:var(--content-tertiary)]`,onClick:()=>{re(!1),I.some(e=>e.model===H)||U(R||I[0]?.model||``)},children:[(0,$.jsx)(D,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Choose from catalog`]}),ue=ce&&K&&I.length>0?le:null;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(V,{value:S,onChange:C,options:h.map(e=>({value:e.id,label:e.displayName})),"aria-label":`TTS provider`})]}),!Z&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(L,{type:`password`,value:w,onChange:e=>T(e.target.value),placeholder:X,fullWidth:!0})]}),ce&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice`}),K?(0,$.jsx)(L,{type:`text`,value:H,onChange:e=>U(e.target.value),placeholder:`Enter a voice ID`,"aria-label":`Custom voice ID`,fullWidth:!0}):W?(0,$.jsx)(Kr,{assistantId:s,value:H,onChange:U}):B&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`No managed voices are currently available.`})]}),q.supportsVoiceSelection&&!Z&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice ID`}),(0,$.jsx)(L,{type:`text`,value:E,onChange:e=>O(e.target.value),placeholder:`Enter a voice ID`,fullWidth:!0})]}),!i&&!Z&&(0,$.jsx)(Fn,{guide:q.credentialsGuide}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!Z&&(0,$.jsx)(c,{variant:`outlined`,onClick:se,disabled:N,children:N?`Testing…`:`Test`}),(0,$.jsxs)(`div`,{className:`ml-auto flex items-center gap-3`,children:[ue,!r&&(0,$.jsx)(Nn,{onClick:ae,disabled:!ie||P}),j&&!Z&&(0,$.jsx)(Pn,{onClick:oe})]})]})]})}function Yr(){let{t:e}=W(`settings`);return(0,$.jsx)(kn,{id:`text-to-speech`,title:e(`textToSpeechCard.title`),subtitle:e(`textToSpeechCard.subtitle`),children:(0,$.jsx)(Jr,{})})}var Xr=`default`;function Zr(){let{t:e}=W(`settings`),i=vn(),o=d(),{data:s}=f({...qt({path:{assistant_id:i}}),staleTime:3e4}),c=It({onSuccess:e=>{Bt(o,{path:{assistant_id:i}},e)}}),l=Bn(),u=(0,Q.useMemo)(()=>s?s.services?.[`web-fetch`]?.provider||t(`vellum:ai:webFetchProvider`,Xr):t(tt,Xr),[s]),[p,m]=(0,Q.useState)(!1),[h,g]=Vn(u),[_,v]=(0,Q.useState)(``),y=se.has(h),{hasStoredCredential:b}=ke({assistantId:i,credentialKind:`api_key`,credentialName:h,enabled:y}),x=_.trim().length>0,S=p||y&&!b&&!x||h===u&&!x,C=Ae(G[h]??e(`webFetchCard.apiKeyPlaceholder`),b),w=(0,Q.useCallback)(async()=>{m(!0);let t=_.trim(),r=y&&t.length>0;try{r&&await l(h,t),await c.mutateAsync({path:{assistant_id:i},body:{services:{"web-fetch":{provider:h}}}}).catch(t=>{throw z.error(e(`webFetchCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t})}catch{m(!1);return}m(!1);try{if(n(tt,h),r){let e=Z(h);e&&n(e,t);let r=Ve(i,`api_key`,h);o.setQueryData(r,!0),o.invalidateQueries({queryKey:r}),v(``)}z.success(e(`webFetchCard.savedToast`))}catch(t){a(t,{context:`settings-ai-web-fetch-persist-local`}),z.error(e(`webFetchCard.localPreferencesFailedToast`))}},[y,c,l,o,i,_,h,e]),T=(0,Q.useCallback)(()=>{let e=Z(h);e&&r(e),v(``),g(Xr),n(tt,Xr)},[h,g]);return(0,$.jsx)(kn,{id:`web-fetch`,title:e(`webFetchCard.title`),subtitle:e(`webFetchCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`webFetchCard.providerLabel`)}),(0,$.jsx)(V,{value:h,onChange:g,options:ie.map(e=>({value:e,label:Se[e]??e}))})]}),y&&(0,$.jsx)(L,{label:e(`webFetchCard.apiKeyLabel`),type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:C,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:w,disabled:S}),p&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),y&&(0,$.jsx)(Pn,{onClick:T,filled:!0})]})]})})}var Qr=`0.10.12`;function $r(){return gt(Qr)}function ei(){let{t:e}=W(`settings`),i=vn(),o=d(),s=kt(),{data:c}=f({...qt({path:{assistant_id:i}}),enabled:s,staleTime:3e4}),l=It({onSuccess:e=>{Bt(o,{path:{assistant_id:i}},e)}}),u=Bn(),p=(0,Q.useMemo)(()=>{if(!c)return t(Ze,`inference-provider-native`);let e=c.services?.[`web-search`];return(e?.mode===`managed`&&e?.provider!==`inference-provider-native`?`vellum`:e?.provider)||t(`vellum:ai:webSearchProvider`,`inference-provider-native`)},[c]),[m,h]=(0,Q.useState)(!1),[g,_]=Vn(p),[v,y]=(0,Q.useState)(``),b=ce.has(g),{hasStoredCredential:x}=ke({assistantId:i,credentialKind:`api_key`,credentialName:g,enabled:b}),S=v.trim().length>0,C=m||b&&!x&&!S||g===p&&!S,w=Ae(Ce[g]??e(`webSearchCard.apiKeyPlaceholder`),x),T=(0,Q.useCallback)(async()=>{h(!0);let t=v.trim(),r=ge(g),s=b&&t.length>0;try{s&&await u(g,t),await _t();let n=g===`vellum`?$r()?{provider:`vellum`,mode:`managed`}:{mode:`managed`}:{provider:g,mode:`your-own`};await l.mutateAsync({path:{assistant_id:i},body:{services:{"web-search":n}}}).catch(t=>{throw z.error(e(`webSearchCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t})}catch{h(!1);return}h(!1);try{if(n(Ze,g),s){r&&n(r,t);let e=Ve(i,`api_key`,g);o.setQueryData(e,!0),o.invalidateQueries({queryKey:e}),y(``)}z.success(e(`webSearchCard.savedToast`))}catch(t){a(t,{context:`settings-ai-web-search-persist-local`}),z.error(e(`webSearchCard.localPreferencesFailedToast`))}},[b,l,u,o,i,v,g,e]),E=(0,Q.useCallback)(()=>{let e=ge(g);e&&r(e),y(``),_(`inference-provider-native`),n(Ze,`inference-provider-native`)},[g,_]);return(0,$.jsx)(kn,{title:e(`webSearchCard.title`),subtitle:e(`webSearchCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`webSearchCard.providerLabel`)}),(0,$.jsx)(V,{"aria-label":e(`webSearchCard.providerAriaLabel`),value:g,onChange:_,options:be.map(e=>({value:e,label:ae[e]??e}))})]}),g===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`webSearchCard.vellumNote`)}),b&&(0,$.jsx)(L,{label:e(`webSearchCard.apiKeyLabel`),type:`password`,value:v,onChange:e=>y(e.target.value),placeholder:w,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:T,disabled:C}),m&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),b&&(0,$.jsx)(Pn,{onClick:E,filled:!0})]})]})})}function ti(){let e=vn(),t=ln(),[n,r]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{let e=window.location.hash.slice(1);e&&requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({block:`start`})})},[]);let i=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto`,children:[(0,$.jsx)(jn,{}),(0,$.jsx)(br,{panel:n,onOpenPanel:r,onClosePanel:()=>r(null)}),(0,$.jsx)(ei,{}),(0,$.jsx)(Zr,{}),(0,$.jsx)(zn,{}),(0,$.jsx)(Gn,{}),(0,$.jsx)(Yr,{}),(0,$.jsx)(Vr,{})]}),a=`${e??`none`}:${n?.kind===`profile`?`profile:${n.name}`:n?.kind===`provider`?`provider:${n.name}`:n?.kind??`closed`}`,o=n?.kind===`provider`||n?.kind===`add-provider`,s=n!=null&&e?n.kind===`overrides`?(0,$.jsx)(Pr,{assistantId:e,onClose:()=>r(null)},a):o?(0,$.jsx)(Ir,{assistantId:e,connectionName:n.kind===`provider`?n.name:null,onClose:()=>r(null)},a):(0,$.jsx)(Sr,{assistantId:e,profileName:n.kind===`profile`?n.name:null,onClose:()=>r(null)},a):null;return s&&t?(0,$.jsx)(xn,{children:s}):s?(0,$.jsx)(Sn,{storageKey:`aiSettingsDetailDrawerWidth`,detailKey:a,section:i,detail:s}):i}export{ti as AiPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n,o as r}from"./local-settings-Bx7FsNo5.js";import{r as i,t as a}from"./capture-error-Cdvvw9J5.js";import{t as o}from"./react-BFJW0bSv.js";import{n as s,t as c}from"./button-DSjqKLvM.js";import{d as l,h as u}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as d}from"./QueryClientProvider-CMu7CkQU.js";import{t as f}from"./useQuery-Bz-fbQ-m.js";import{t as p}from"./useMutation-CXGTrp4W.js";import{t as m}from"./jsx-runtime-D3ZM-ToX.js";import{t as h}from"./typography-BeUa5Fd-.js";import{J as g,W as _,i as v}from"./src-DjIqxQVd.js";import{t as y}from"./check-CNBoUiyR.js";import{t as b}from"./circle-alert-DEIiXMF-.js";import{t as x}from"./circle-check-BG2g8udA.js";import{t as S}from"./menu-Gu_6PRrL.js";import{t as C}from"./clock-DSx5dIWv.js";import{t as w}from"./ellipsis-vertical-CAYfw0qB.js";import{t as T}from"./external-link-D65yhWAV.js";import{t as E}from"./info-Bjcv3rf9.js";import{t as D}from"./list-COQcQTOh.js";import{t as O}from"./loader-circle-oY5laABh.js";import{t as k}from"./mail-B0iH8Wii.js";import{t as A}from"./checkbox-DyHMOWN6.js";import{t as j}from"./plus-CwK68LCA.js";import{t as M}from"./search-DbyaO8rG.js";import{t as N}from"./trash-2-DL_3_16e.js";import{t as ee}from"./triangle-alert-C5SOfs-q.js";import{t as P}from"./notice-C9v3KOP3.js";import{t as F}from"./tag-D0oiSRye.js";import{t as I}from"./modal-Bt1DPFgW.js";import{t as L}from"./input-BG94bPcH.js";import{t as R}from"./toggle-C-v4x7_A.js";import{n as z}from"./toast-BrKo5b4d.js";import{t as B}from"./confirm-dialog-DNaRfy4W.js";import{t as V}from"./select-B86W_Hs8.js";import{t as te}from"./skeleton-CzdJByjE.js";import{o as H}from"./i18n-BEiOUI7L.js";import{t as U}from"./Trans-hMTkJ6wZ.js";import{t as W}from"./useTranslation-ChVKbb78.js";import{i as ne,r as re}from"./api-errors-BTOPGXDV.js";import{C as G,E as K,F as q,L as J,M as Y,S as ie,_ as ae,a as oe,b as se,c as X,f as Z,g as ce,h as le,i as ue,j as de,l as fe,m as pe,n as me,o as he,p as ge,r as _e,s as ve,t as ye,v as be,w as xe,x as Se,y as Ce,z as we}from"./profile-pickers-CKLILvRc.js";import{B as Te,C as Ee,F as De,G as Oe,H as ke,I as Ae,J as je,K as Me,L as Ne,M as Pe,N as Fe,P as Ie,R as Le,S as Re,T as ze,U as Be,V as Ve,W as He,X as Ue,Y as We,_ as Ge,a as Ke,c as qe,d as Je,f as Ye,g as Xe,h as Ze,i as Qe,j as $e,l as et,m as tt,n as nt,o as rt,p as it,q as at,r as ot,s as st,t as ct,u as lt,v as ut,w as dt,x as ft,y as pt,z as mt}from"./use-sticky-profiles-CSu7FGUP.js";import{t as ht}from"./assistant-identity-store-DTP7xfNP.js";import{n as gt,o as _t,r as vt}from"./utils-1ZnEn_W1.js";import{Jt as yt,Yt as bt,dt as xt,fr as St,j as Ct,kn as wt,mt as Tt}from"./sdk.gen-Br55zhZN.js";import{p as Et}from"./platform-detection-BIfuAgU8.js";import{d as Dt}from"./routes-C293MsBG.js";import{i as Ot}from"./use-platform-gate-B1NwRiiR.js";import{r as kt}from"./use-is-org-ready-GYB07VFZ.js";import{Ct as At,Gt as jt,J as Mt,K as Nt,St as Pt,Tt as Ft,Xt as It,Y as Lt,_ as Rt,d as zt,f as Bt,g as Vt,h as Ht,m as Ut,p as Wt,q as Gt,sn as Kt,u as qt}from"./react-query.gen-vkBavCkI.js";import{c as Jt,d as Yt,f as Xt,ft as Zt,g as Qt,h as $t,l as en,m as tn,o as nn,p as rn,s as an,u as on,v as sn,y as cn}from"./react-query.gen-CqLxrlpP.js";import{n as ln}from"./use-is-mobile-S2zUn-6L.js";import{t as un}from"./platform-login-notice-CR7VbQV0.js";import{t as dn}from"./android-consumption-only-Bwbjjciw.js";import{a as fn,c as pn,i as mn,n as hn,o as gn}from"./voice-list-BRkmw4JY.js";import{n as _n}from"./use-voice-sample-preview-ogz6deAB.js";import{t as vn}from"./use-active-assistant-id-zecNKpnS.js";import{t as yn}from"./detail-shell-DBlTVvX-.js";import{t as bn}from"./detail-card-Bcut76KV.js";import{n as xn,t as Sn}from"./detail-drawer-DWBmOcD6.js";import{a as Cn}from"./schedules-CeXPLhES.js";import{t as wn}from"./use-platform-assistant-id-ByADYAwf.js";import{t as Tn}from"./environment-store-DQKnpozf.js";import{t as En}from"./stt-language-picker-modal-CZVwmf0y.js";var Q=e(o(),1),$=m();function Dn({mode:e,onChange:t}){let{t:n}=W(`settings`);return(0,$.jsx)(`div`,{className:`max-w-[280px]`,children:(0,$.jsx)(_,{ariaLabel:n(`sharedUi.modeToggleAriaLabel`),value:e,onChange:t,items:[{value:`managed`,label:n(`sharedUi.managedLabel`)},{value:`your-own`,label:n(`sharedUi.yourOwnLabel`)}]})})}function On({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,$.jsxs)(bn,{id:e,title:t,subtitle:n,accessory:(0,$.jsx)(Dn,{mode:r,onChange:i}),children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:a})]})}function kn({id:e,title:t,subtitle:n,children:r}){return(0,$.jsxs)(bn,{id:e,title:t,subtitle:n,children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:r})]})}function An({children:e}){return(0,$.jsxs)(`a`,{href:`https://www.vellum.ai/docs/pricing`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--primary-base)] hover:underline`,children:[e,(0,$.jsx)(T,{className:`h-3.5 w-3.5`})]})}function jn(){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-4 py-2.5`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:(0,$.jsx)(U,{i18nKey:`sharedUi.managedServicesBanner`,ns:`settings`,components:{link:(0,$.jsx)(An,{})}})})]})}function Mn({status:e,message:t,isLoading:n}){let{t:r}=W(`settings`);return n?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,children:[(0,$.jsx)(O,{className:`h-3 w-3 animate-spin`}),r(`sharedUi.checkingDomain`)]}):e?e===`verified`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-positive-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-positive-strong)]`,title:r(`sharedUi.verifiedTitle`),children:[(0,$.jsx)(y,{className:`h-3 w-3`}),r(`sharedUi.domainVerified`)]}):e===`pending`||e===`not_started`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-mid-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-mid-strong)]`,title:r(`sharedUi.verifyingTitle`),children:[(0,$.jsx)(C,{className:`h-3 w-3`}),r(`sharedUi.verifyingDomain`)]}):(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-negative-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,title:r(`sharedUi.failedTitle`),children:[(0,$.jsx)(b,{className:`h-3 w-3`}),r(`sharedUi.verificationFailed`)]}):(0,$.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,title:r(`sharedUi.unknownStatusTitle`),children:r(`sharedUi.unknownStatus`)})}function Nn({onClick:e,disabled:t}){return(0,$.jsx)(c,{onClick:e,disabled:t,children:`Save`})}function Pn({onClick:e,filled:t=!1}){return(0,$.jsx)(c,{variant:t?`danger`:`dangerGhost`,onClick:e,children:`Reset`})}function Fn({guide:e}){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:e.description}),(0,$.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e.linkLabel,(0,$.jsx)(T,{className:`h-3 w-3`})]})]})]})}function In({subdomain:e,onSubdomainChange:t,domainSuffix:n,subdomainPlaceholder:r=`my-assistant`,disabled:i,autoFocus:a,prefix:o,error:s,locked:c,lockedMessage:l}){return(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`flex h-9 w-full items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${s?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[o,(0,$.jsx)(`input`,{value:e,onChange:e=>t(e.target.value.toLowerCase().trim()),disabled:i||c,readOnly:c,autoFocus:a,placeholder:r,"aria-label":`Subdomain`,"aria-invalid":!!s,className:`h-full min-w-0 flex-1 bg-transparent ${o?`pl-1.5`:`pl-3`} pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none disabled:cursor-not-allowed disabled:opacity-60`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`.`,n]})]}),s&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--system-negative-strong)]`,children:s}),c&&l&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:l})]})}var Ln=`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`;function Rn({assistantId:e,assistantHandle:t,emailRootDomain:n}){let{t:r}=W(`settings`),i=d(),o=l(),s=Et(),[m,h]=u(),[g,_]=(0,Q.useState)(``),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(null),[S,C]=(0,Q.useState)(``),[w,T]=(0,Q.useState)(null),[E,D]=(0,Q.useState)(!1),[A,j]=(0,Q.useState)(!1),[M,ee]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{v||!t||g||(_(t),y(!0))},[t,v,g]);let F=f({...Zt(),enabled:!0}),I=F.data,L=I?.entitlements,R=L?.managed_email===!0,V=!!L&&!R,te=!I&&F.isError&&!F.isFetching,H=f({...Jt({path:{assistant_id:e}}),enabled:!V}),re=f({...rn({path:{assistant_id:e}}),enabled:!V}),G=H.data?.results?.[0],K=re.data?.results?.[0],q=G?`${G.subdomain}.${n}`:null,J=f({...$t({path:{assistant_id:e,id:K?.id??``}}),enabled:!!K?.id,refetchOnWindowFocus:!1}),Y=f({...on({path:{assistant_id:e,id:G?.id??``}}),enabled:!!G?.id,refetchInterval:e=>{let t=e.state.data?.status;return t===`verified`||t===`failed`?!1:1e4},refetchOnWindowFocus:!0});(0,Q.useEffect)(()=>{m.get(`release`)!==`1`||!G||K||(j(!0),h(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[K,G,m,h]);let ie=p(nn()),ae=p(an()),oe=p(Yt()),se=p(Xt()),X=(0,Q.useCallback)(()=>{let t={assistant_id:e};i.invalidateQueries({queryKey:en({path:t})}),i.invalidateQueries({queryKey:tn({path:t})}),K?.id&&i.invalidateQueries({queryKey:Qt({path:{...t,id:K.id}})}),i.invalidateQueries({queryKey:cn()})},[K?.id,e,i]),Z=(0,Q.useCallback)(async()=>{let t=g.trim().toLowerCase();if(!t){x(r(`emailManagedContent.enterSubdomainError`));return}D(!1);try{await ie.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),_(``),x(null),X(),z.success(r(`emailManagedContent.domainRegisteredToast`,{domain:`${t}.${n}`}))}catch(e){x(ne(e,void 0,r(`emailManagedContent.registerDomainFailedFallback`)))}},[e,n,X,ie,g,r]),ce=(0,Q.useCallback)(async()=>{let t=S.trim().toLowerCase();if(!t){T(r(`emailManagedContent.enterUsernameError`));return}try{await oe.mutateAsync({path:{assistant_id:e},body:{username:t}}),C(``),T(null),X(),z.success(r(`emailManagedContent.emailCreatedToast`))}catch(e){T(ne(e,void 0,r(`emailManagedContent.createEmailFailedFallback`)))}},[e,X,oe,S,r]),le=(0,Q.useCallback)(async()=>{if(K?.id){ee(!1);try{await se.mutateAsync({path:{assistant_id:e,id:K.id}}),X(),z.success(r(`emailManagedContent.emailRemovedToast`))}catch(e){a(e,{context:`email_address_delete`}),z.error(r(`emailManagedContent.emailRemoveFailedToast`))}}},[K?.id,e,se,X,r]),ue=(0,Q.useCallback)(async()=>{if(!G?.id)return;if(K){z.error(r(`emailManagedContent.removeAddressFirstToast`));return}j(!1);let t=G.subdomain;try{await ae.mutateAsync({path:{assistant_id:e,id:G.id}}),_(t),X(),z.success(r(`emailManagedContent.domainReleasedToast`))}catch(e){a(e,{context:`email_domain_release`}),z.error(r(`emailManagedContent.domainReleaseFailedToast`))}},[K,e,ae,G?.id,G?.subdomain,X,r]);if(F.isLoading)return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}),r(`emailManagedContent.checkingSubscription`)]});if(V)return(0,$.jsx)(P,{tone:`info`,icon:(0,$.jsx)(k,{className:`h-4 w-4`,"aria-hidden":!0}),title:r(`emailManagedContent.upgradeNoticeTitle`),actions:s?void 0:(0,$.jsx)(c,{size:`compact`,onClick:()=>o(Dt.plans),children:r(`emailManagedContent.upgradeButton`)}),children:s?dn:r(`emailManagedContent.upgradeNoticeBody`)});let de=te?(0,$.jsx)(P,{tone:`warning`,title:r(`emailManagedContent.subscriptionWarningTitle`),actions:(0,$.jsx)(c,{size:`compact`,variant:`outlined`,onClick:()=>F.refetch(),children:r(`emailManagedContent.retry`)}),children:r(`emailManagedContent.subscriptionWarningBody`)}):null;return G?K?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.addressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:K.address}),(0,$.jsx)(Mn,{status:Y.data?.status,message:Y.data?.message,isLoading:Y.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(N,{}),onClick:()=>ee(!0),disabled:se.isPending,"aria-label":r(`emailManagedContent.removeEmailAriaLabel`)})]}),(0,$.jsx)(B,{open:M,title:r(`emailManagedContent.removeEmailTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.removeEmailConfirmMessage`,ns:`settings`,values:{address:K.address},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.removeConfirm`),destructive:!0,onConfirm:le,onCancel:()=>ee(!1)})]}),J.data?.usage&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.usageSummary`,{sent:J.data.usage.sent_today,limit:J.data.usage.daily_limit,received:J.data.usage.received_today})})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.domainLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[G.subdomain,`.`,n]}),(0,$.jsx)(Mn,{status:Y.data?.status,message:Y.data?.message,isLoading:Y.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(N,{}),onClick:()=>j(!0),disabled:ae.isPending,"aria-label":r(`emailManagedContent.releaseDomainAriaLabel`)})]}),(0,$.jsx)(B,{open:A,title:r(`emailManagedContent.releaseDomainTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.releaseDomainConfirmMessage`,ns:`settings`,values:{domain:`${G.subdomain}.${n}`},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.releaseConfirm`),destructive:!0,onConfirm:ue,onCancel:()=>j(!1)})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.emailAddressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex h-9 min-w-0 flex-1 items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${w?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,$.jsx)(`input`,{value:S,onChange:e=>{C(e.target.value.toLowerCase()),w&&T(null)},placeholder:r(`emailManagedContent.emailUsernamePlaceholder`),"aria-label":r(`emailManagedContent.emailUsernameAriaLabel`),"aria-invalid":!!w,className:`h-full min-w-0 flex-1 bg-transparent pl-3 pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,q]})]}),(0,$.jsx)(c,{onClick:ce,disabled:oe.isPending||!S.trim(),children:oe.isPending?r(`emailManagedContent.creating`):r(`emailManagedContent.create`)})]}),w&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:w})]})]}):(0,$.jsxs)(`div`,{className:`space-y-3`,children:[de,(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.subdomainLabel`)}),(0,$.jsx)(In,{subdomain:g,onSubdomainChange:e=>{_(e),b&&x(null)},domainSuffix:n,subdomainPlaceholder:r(`emailManagedContent.subdomainExamplePlaceholder`),error:b}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.subdomainHint`)}),(0,$.jsx)(c,{onClick:()=>D(!0),disabled:ie.isPending||!g.trim(),children:ie.isPending?r(`emailManagedContent.registering`):r(`emailManagedContent.register`)}),(0,$.jsx)(B,{open:E,title:r(`emailManagedContent.setSubdomainTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.setSubdomainConfirmMessage`,ns:`settings`,values:{subdomain:g.trim().toLowerCase()||r(`emailManagedContent.subdomainFallback`)},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.confirm`),onConfirm:Z,onCancel:()=>D(!1)})]})}function zn(){let{t:e}=W(`settings`),r=vn(),o=kt(),{data:s}=f({...sn(),enabled:o}),c=s?.results?.[0]?.handle,l=Tn.use.emailRootDomain(),u=Ot(),[d,p]=(0,Q.useState)(()=>u===`gated`?`your-own`:pe(t(rt,`managed`),`managed`)),[m,h]=(0,Q.useState)(()=>{let e=t(Ke,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),{platformAssistantId:g,error:_}=wn(r,u===`full`&&d===`managed`),v=g??(_?r:null),y=f({queryKey:[`byoEmailCredential`,r,m],queryFn:async()=>{let{data:e}=await xt({path:{assistant_id:r},body:{service:m,field:`api_key`},throwOnError:!0});return e},enabled:d===`your-own`||u===`gated`,staleTime:6e4,retry:i,meta:{errorContext:`byo_email_credential_check`}});(0,Q.useEffect)(()=>{y.error&&a(y.error,{context:`byo_email_credential_check`,bestEffort:!0})},[y.error]);let b=y.data?.hasSecret===!0,S=(0,Q.useCallback)(e=>{p(e),n(rt,e)},[]),C=(0,Q.useCallback)(()=>{n(Ke,m),z.success(e(`emailServiceCard.saveSuccessToast`))},[m,e]),w=(0,Q.useMemo)(()=>Xe.find(e=>e.id===m)??Xe[0],[m]),D=(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:(0,$.jsx)(U,{i18nKey:`emailServiceCard.setupInstructions`,ns:`settings`,values:{providerName:w.displayName,setupSkill:w.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})}),(0,$.jsxs)(`a`,{href:w.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailServiceCard.openProvider`,{providerName:w.displayName}),(0,$.jsx)(T,{className:`h-3 w-3`})]})]})]}),k=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`emailServiceCard.providerLabel`)}),(0,$.jsx)(V,{value:m,onChange:e=>{(e===`mailgun`||e===`resend`)&&h(e)},options:Xe.map(e=>({value:e.id,label:e.displayName}))})]}),b?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--system-positive-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-default)]`,children:[(0,$.jsx)(x,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsx)(`span`,{children:(0,$.jsx)(U,{i18nKey:`emailServiceCard.apiKeyConfigured`,ns:`settings`,values:{providerName:w.displayName,setupSkill:w.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})})]}),(0,$.jsxs)(`a`,{href:w.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-body-small-default text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailServiceCard.openProvider`,{providerName:w.displayName}),(0,$.jsx)(T,{className:`h-3 w-3`})]})]}):D,(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsx)(Nn,{onClick:C,disabled:!1})})]});return u===`gated`?(0,$.jsx)(kn,{id:`email`,title:e(`emailServiceCard.title`),subtitle:e(`emailServiceCard.subtitle`),children:k}):(0,$.jsx)(On,{id:`email`,title:e(`emailServiceCard.title`),subtitle:e(`emailServiceCard.subtitle`),mode:d,onModeChange:S,children:d===`managed`?(0,$.jsx)(`div`,{className:`space-y-4`,children:u===`disabled`?(0,$.jsx)(un,{children:e(`emailServiceCard.platformLoginNotice`)}):v===null?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}),e(`emailServiceCard.connecting`)]}):(0,$.jsx)(Rn,{assistantId:v,assistantHandle:c,emailRootDomain:l})}):k})}function Bn(){let e=vn();return(0,Q.useCallback)(async(t,n)=>{try{let{data:r}=await St({path:{assistant_id:e},body:{value:n,type:`api_key`,name:t},throwOnError:!0});X(r)}catch(e){throw e instanceof Error&&e.message===`No assistant found`?z.error(H(`settings:useDaemonConfig.assistantNotReadyToast`)):z.error(H(`settings:useDaemonConfig.saveApiKeyFailedToast`,{providerName:t})),a(e,{context:`provision_provider_key`}),e}},[e])}function Vn(e){let[t,n]=(0,Q.useState)(void 0);return(0,Q.useEffect)(()=>{t!==void 0&&e===t.value&&n(void 0)},[e,t]),[t===void 0?e:t.value,(0,Q.useCallback)(e=>n(e===void 0?void 0:{value:e}),[])]}var Hn=`0.11.0`;function Un(){return gt(Hn)}var Wn=`gemini-3.1-flash-image-preview`;function Gn(){let{t:e}=W(`settings`),r=vn(),i=d(),o=kt(),{data:s}=f({...qt({path:{assistant_id:r}}),enabled:o,staleTime:3e4}),c=It({onSuccess:e=>{Bt(i,{path:{assistant_id:r}},e)}}),l=Bn(),[u,p]=Vn((0,Q.useMemo)(()=>{if(!s)return t(qe,`gemini`);let e=s.services?.[`image-generation`];return e?.mode===`managed`?`vellum`:e?.provider||t(`vellum:ai:imageGenProvider`,`gemini`)},[s])),[m,h]=(0,Q.useState)(()=>t(st,Wn)),g=Ee(u),_=g.includes(m)?m:g[0]??Wn,[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(!1),S=ut.map(e=>({value:e,label:pt[e]??e})),C=(0,Q.useMemo)(()=>Ee(u).map(e=>({value:e,label:Ge[e]??e})),[u]),w=u===`gemini`||u===`openai`,{hasStoredCredential:T}=ke({assistantId:r,credentialKind:`api_key`,credentialName:u,enabled:w}),E=p,D=(0,Q.useCallback)(async()=>{x(!0);let t=v.trim(),o=w&&t.length>0;try{o&&await l(dt(_),t),await _t();let n=u===`vellum`&&!Un()?{mode:`managed`}:{provider:u,mode:u===`vellum`?`managed`:`your-own`};await c.mutateAsync({path:{assistant_id:r},body:{services:{"image-generation":n}}}).catch(t=>{throw z.error(e(`imageGenerationCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t});try{await wt({path:{assistant_id:r},body:{modelId:_},throwOnError:!0})}catch(t){throw z.error(e(`imageGenerationCard.modelUpdateFailedToast`)),a(t,{context:`set_image_gen_model`}),t}finally{i.invalidateQueries({queryKey:zt({path:{assistant_id:r}})})}}catch{x(!1);return}x(!1);try{if(n(qe,u),n(st,_),o){let e=Ve(r,`api_key`,u);i.setQueryData(e,!0),i.invalidateQueries({queryKey:e}),y(``)}z.success(e(`imageGenerationCard.savedToast`))}catch(t){a(t,{context:`settings-ai-image-gen-persist-local`}),z.error(e(`imageGenerationCard.localPreferencesFailedToast`))}},[v,u,w,_,r,c,l,i,e]),k=(0,Q.useCallback)(()=>{y(``),h(Wn),n(st,Wn)},[]);return(0,$.jsx)(kn,{title:e(`imageGenerationCard.title`),subtitle:e(`imageGenerationCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.providerLabel`)}),(0,$.jsx)(V,{"aria-label":e(`imageGenerationCard.providerAriaLabel`),value:u,onChange:E,options:S})]}),u===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.vellumNote`)}),w&&(0,$.jsx)(L,{label:e(`imageGenerationCard.apiKeyLabel`),type:`password`,value:v,onChange:e=>y(e.target.value),placeholder:Ae(e(u===`openai`?`imageGenerationCard.openaiApiKeyPlaceholder`:`imageGenerationCard.geminiApiKeyPlaceholder`),T),fullWidth:!0}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.activeModelLabel`)}),(0,$.jsx)(V,{"aria-label":e(`imageGenerationCard.modelAriaLabel`),value:_,onChange:h,options:C})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:D,disabled:b}),b&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),w&&(0,$.jsx)(Pn,{onClick:k})]})]})})}function Kn({title:e,count:t,action:n,children:r}){return(0,$.jsxs)(`section`,{className:`rounded-xl border border-[var(--border-hover)] bg-[var(--surface-overlay)] px-3 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,$.jsx)(h,{variant:`body-large-default`,as:`h3`,className:`text-[var(--content-secondary)]`,children:e}),t==null?null:(0,$.jsxs)(h,{variant:`body-large-default`,as:`span`,"aria-label":`${t} ${e.toLowerCase()}`,className:`text-[var(--content-disabled)]`,children:[`·`,` `,t]})]}),n]}),r==null?null:(0,$.jsx)(`div`,{className:`mt-4 border-t border-[var(--border-base)]`,children:r})]})}function qn(e){return e.scheduleNames.length>0||e.deferredReminderCount>0||e.scheduleLookupFailed}var Jn=5;function Yn({title:e,items:t,mono:n}){return(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--content-tertiary)`,children:e}),(0,$.jsx)(`ul`,{className:`space-y-1 pl-1`,children:t.map(e=>(0,$.jsxs)(`li`,{className:`text-body-small-default text-(--content-secondary)`,children:[`• `,n?(0,$.jsx)(`code`,{children:e}):e]},e))})]})}function Xn(e){let t=e.label||e.name,n=[];e.isActive&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseDefaultProfile`)),e.callSiteIds.length>0&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseActionOverrides`,{count:e.callSiteIds.length}));let r=e.scheduleNames.length,i=e.deferredReminderCount;return r>0&&i>0?n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsBoth`,{schedules:r,reminders:i})):r>0?n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsSchedules`,{count:r})):i>0&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsReminders`,{count:i})),n.length===0?H(`settings:manageProfilesBlockedDeleteModal.summaryNoReferences`,{display:t}):n.length===1?H(`settings:manageProfilesBlockedDeleteModal.summaryOneClause`,{display:t,clause1:n[0]}):n.length===2?H(`settings:manageProfilesBlockedDeleteModal.summaryTwoClauses`,{display:t,clause1:n[0],clause2:n[1]}):H(`settings:manageProfilesBlockedDeleteModal.summaryThreeClauses`,{display:t,clause1:n[0],clause2:n[1],clause3:n[2]})}function Zn({blocked:e,availableReplacements:t,replacement:n,onReplacementChange:r,error:i,saving:a,onClose:o,onConfirm:s}){let{t:l}=W(`settings`),u=e?.scheduleNames??[],d=u.slice(0,Jn),f=u.length-d.length,p=e!=null&&qn(e);return(0,$.jsx)(I.Root,{open:e!==null,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(I.Content,{size:`sm`,children:[(0,$.jsx)(I.Header,{children:(0,$.jsx)(I.Title,{children:l(`manageProfilesBlockedDeleteModal.title`)})}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[e&&(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:Xn(e)}),e&&e.callSiteIds.length>0&&(0,$.jsx)(Yn,{title:l(`manageProfilesBlockedDeleteModal.actionOverridesTitle`),items:e.callSiteIds,mono:!0}),d.length>0&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(Yn,{title:l(`manageProfilesBlockedDeleteModal.schedulesTitle`),items:d}),f>0&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`pl-1 text-(--content-tertiary)`,children:l(`manageProfilesBlockedDeleteModal.moreSchedules`,{count:f})})]}),e?.scheduleLookupFailed&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-mid-strong)`,children:l(`manageProfilesBlockedDeleteModal.scheduleLookupFailed`)}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-(--content-tertiary)`,children:l(`manageProfilesBlockedDeleteModal.replacementLabel`)}),(0,$.jsx)(V,{"aria-label":l(`manageProfilesBlockedDeleteModal.replacementLabel`),value:n,onChange:r,placeholder:l(`manageProfilesBlockedDeleteModal.replacementPlaceholder`),options:t.map(e=>{let t=p&&e.status===`disabled`;return{value:e.name,label:_e(e),disabled:t,tooltip:t?l(`manageProfilesBlockedDeleteModal.disabledTargetTooltip`):void 0}})})]}),i&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:i})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(c,{variant:`ghost`,size:`compact`,onClick:o,children:l(`manageProfilesBlockedDeleteModal.cancel`)}),(0,$.jsx)(c,{variant:`primary`,size:`compact`,disabled:!n||a,onClick:s,children:l(a?`manageProfilesBlockedDeleteModal.saving`:`manageProfilesBlockedDeleteModal.reassignAndDelete`)})]})]})})}function Qn({profile:e,isActiveProfile:t,selected:n,connections:r,deletePending:i=!1,onOpen:a,onMakeActive:o,onSetStatus:l,onDelete:u}){let{t:d}=W(`settings`),f=e.source===`managed`,p=e.status===`disabled`,m=e.label??e.name,h=[];e.model&&h.push(Pe(e.provider??void 0,e.model,r)),f&&h.push(d(`profileRow.managedByVellum`));let g=e.availability,_=g?.status===`incomplete`,y=g?.message??d(`profileRow.providerUnavailableDefault`),x=g!=null&&g.status!==`ok`?_?d(`profileRow.providerUnavailableFixable`,{message:y}):y:null;return(0,$.jsx)(v,{title:(0,$.jsx)(`span`,{className:p?`opacity-55`:void 0,children:m}),subtitle:h.length>0?h.join(` • `):void 0,onClick:a,showChevron:!1,selected:n,disabled:i,contentAriaLabel:d(`profileRow.openProfileAriaLabel`,{displayName:m}),trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[x==null?null:(0,$.jsx)(s,{content:x,children:_?(0,$.jsx)(`button`,{type:`button`,onClick:a,"aria-label":x,className:`inline-flex cursor-pointer rounded-sm p-0.5 keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:(0,$.jsx)(b,{className:`h-4 w-4 text-[var(--system-mid-strong)]`,"aria-hidden":`true`})}):(0,$.jsx)(`span`,{className:`inline-flex p-0.5`,tabIndex:0,children:(0,$.jsx)(b,{className:`h-4 w-4 text-[var(--system-mid-strong)]`,"aria-label":x,role:`img`})})}),p?(0,$.jsx)(F,{tone:`neutral`,children:d(`profileRow.disabledTag`)}):null,t?(0,$.jsx)(F,{tone:`positive`,children:d(`profileRow.defaultTag`)}):null,(0,$.jsxs)(S.Root,{children:[(0,$.jsx)(S.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(w,{}),"aria-label":d(`profileRow.actionsAriaLabel`,{displayName:m}),disabled:i})}),(0,$.jsxs)(S.Content,{align:`end`,sideOffset:4,children:[(0,$.jsx)(S.Item,{onSelect:a,children:d(f?`profileRow.view`:`profileRow.edit`)}),!t&&!p?(0,$.jsx)(S.Item,{onSelect:o,children:d(`profileRow.makeDefault`)}):null,p?(0,$.jsx)(S.Item,{onSelect:()=>l(!0),children:d(`profileRow.enable`)}):f?null:(0,$.jsx)(S.Item,{onSelect:()=>l(!1),children:d(`profileRow.disable`)}),f?null:(0,$.jsx)(S.Item,{onSelect:u,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:d(`profileRow.delete`)})]})]})]})})}function $n(e,t){let n=ot(),{data:r}=f({...Nt({path:{assistant_id:e}}),enabled:n,staleTime:3e4}),{profiles:i,profileOrder:a}=ct(t?.llm,e);return(0,Q.useMemo)(()=>r==null?{entries:fe(i,a).map(e=>({name:e.name,label:e.label??null,provider:e.provider??null,model:e.model??null,status:e.status===`disabled`?`disabled`:`active`,source:e.source===`managed`?`managed`:`user`,provider_connection:e.provider_connection,availability:null})),isEffectiveCatalog:!1}:{entries:r.profiles,isEffectiveCatalog:!0},[r,i,a])}function er(e){let t=d();return It({onSuccess:n=>{Bt(t,{path:{assistant_id:e}},n),t.invalidateQueries({queryKey:Gt({path:{assistant_id:e}})}),t.invalidateQueries({queryKey:Ut({path:{assistant_id:e}})})}})}var tr=`0.10.8`;function nr(e){return vt(tr,e)}var rr=`settings-ai-profile-make-active`,ir=`Failed to set the active profile. Please try again.`;function ar(e){let t=er(e),n=d(),r=nr(e),i=Kt({onSuccess:()=>{n.invalidateQueries({queryKey:zt({path:{assistant_id:e}})}),n.invalidateQueries({queryKey:Gt({path:{assistant_id:e}})})}});async function o(n,r,i){try{await t.mutateAsync({path:{assistant_id:e},body:{llm:n}})}catch(e){throw a(e,{context:r}),z.error(i),e}}async function s(t){if(!r){await o({activeProfile:t},rr,ir);return}try{await i.mutateAsync({path:{assistant_id:e},body:{name:t}})}catch(e){let t=re(e);throw z.error(t??ir),t||a(e,{context:rr}),e}}return{makeActive:s,setStatus:(e,t)=>o({profiles:{[e]:{status:t?`active`:`disabled`}}},`settings-ai-profile-toggle`,`Failed to update the profile. Please try again.`),deleteProfile:(e,t,n)=>o({profiles:{[e]:null},profileOrder:t.filter(t=>t!==e),...n?.isAdvisor?{advisorProfile:null}:{}},`settings-ai-profile-delete`,`Failed to delete the profile. Please try again.`),patchLlm:o,isPending:t.isPending||i.isPending}}var or=`The profile was not deleted.`,sr=`Failed to move the schedules. ${or}`;function cr(e){let t=re(e);return t?`${/[.!?]$/.test(t)?t:`${t}.`} ${or}`:sr}function lr(e,t,n){let r=ar(e),i=d(),o=ve(),s=t?.llm?.activeProfile??null,c=t?.llm?.advisorProfile??null,l=t?.llm?.callSites??{},u=(0,Q.useMemo)(()=>t?.llm?.profiles??{},[t?.llm?.profiles]),f=(0,Q.useMemo)(()=>t?.llm?.profileOrder??[],[t?.llm?.profileOrder]),p=(0,Q.useMemo)(()=>fe(u,f),[u,f]),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(null),[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(null),w=(0,Q.useRef)(!1);function T(e){return p.filter(t=>t.name===e?!1:t.status===`disabled`?!0:ye(t,p,{requireOwnProviderAndModel:o}))}function E(e,t){let n=T(e).filter(e=>!t||e.status!==`disabled`),r=n.find(e=>e.name===s),i=n.find(e=>e.source!==`managed`);return(r??i??n[0])?.name??``}async function D(e){try{await r.deleteProfile(e,f,{isAdvisor:e===c}),n?.onDeleted?.(e)}catch{}}async function O(t){let n=u[t]?.label??t,r=t===s,o=Object.entries(l).filter(([e,n])=>e!==`mainAgent`&&n?.profile===t).map(([e])=>e),c=[],d=0,f=!1;try{let n=(await i.fetchQuery({...Pt({path:{assistant_id:e},query:{inference_profile:t,include_all:`true`}}),retry:!1,staleTime:0})).schedules??[];c=n.filter(e=>!e.isDeferred).map(e=>e.name),d=n.filter(e=>e.isDeferred).length}catch(e){a(e,{context:`settings-ai-profile-delete-schedule-scan`}),f=!0}if(!(r||o.length>0||c.length>0||d>0)&&!f){await D(t);return}let p={name:t,label:n,isActive:r,callSiteIds:o,scheduleNames:c,deferredReminderCount:d,scheduleLookupFailed:f};h(p),y(E(t,qn(p))),_(null)}function k(e){t==null||w.current||(w.current=!0,C(e),O(e).finally(()=>{w.current=!1,C(null)}))}async function A(){if(!m||!v)return;if(x(!0),_(null),qn(m))try{await Cn(e,m.name,v),await i.invalidateQueries({queryKey:At({path:{assistant_id:e}})})}catch(e){a(e,{context:`settings-ai-profile-reassign-schedules`}),_(cr(e)),x(!1);return}let t={};if(m.isActive&&(t.activeProfile=v),m.callSiteIds.length>0){let e={};for(let t of m.callSiteIds)e[t]={profile:v};t.callSites=e}if(Object.keys(t).length>0)try{await r.patchLlm(t,`settings-ai-profile-reassign-delete`,`Failed to reassign references. Please try again.`)}catch{_(`Failed to reassign references. Please try again.`),x(!1);return}let n=m.name;h(null),x(!1),D(n)}return{requestDelete:k,pendingDeleteName:S,blockedDeleteModalProps:{blocked:m,availableReplacements:T(m?.name??null),replacement:v,onReplacementChange:y,error:g,saving:b,onClose:()=>{h(null),_(null)},onConfirm:()=>void A()}}}function ur(){}function dr({assistantId:e,config:t,connections:n,selectedProfileName:r,onOpenProfile:i,onCreateProfile:a,onProfileDeleted:o}){let{t:s}=W(`settings`),{entries:l}=$n(e,t),u=ar(e),d=lr(e,t,{onDeleted:o}),f=t?.llm?.activeProfile??null;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Kn,{title:s(`profilesSection.title`),action:(0,$.jsx)(c,{variant:`primary`,onClick:a,leftIcon:(0,$.jsx)(j,{}),disabled:t==null,children:s(`profilesSection.createProfile`)}),children:t==null?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:s(`profilesSection.loading`)}):l.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:s(`profilesSection.emptyState`)}):l.map(e=>(0,$.jsx)(Qn,{profile:e,isActiveProfile:e.name===f,selected:e.name===r,connections:n,deletePending:d.pendingDeleteName===e.name,onOpen:()=>i(e.name),onMakeActive:()=>void u.makeActive(e.name).catch(ur),onSetStatus:t=>void u.setStatus(e.name,t).catch(ur),onDelete:()=>d.requestDelete(e.name)},e.name))}),(0,$.jsx)(Zn,{...d.blockedDeleteModalProps})]})}var fr={anthropic:!0,openai:!0,gemini:!0,fireworks:!0,openrouter:!0,chatgpt:!0,vellum:!0,together:!0,"vercel-ai-gateway":!0,minimax:!0,atlascloud:!0,baseten:!0,poolside:!0};function pr(e){return e in fr}function mr(e){let t=e.baseUrl??``;try{e.baseUrl&&(t=new URL(e.baseUrl).host)}catch{}let n=[];t&&n.push(t);let r=e.models?.length??0;return r>0&&n.push(`${r} ${r===1?`model`:`models`}`),e.auth.type===`none`&&n.push(`keyless`),n.join(` · `)}function hr(e){switch(e.auth.type){case`api_key`:return`Own API key`;case`oauth_subscription`:return`ChatGPT subscription`;case`none`:return`No API key needed`;default:return null}}function gr(e){if(e.provider===`vellum`)return`Included with your plan`;if(e.provider===`openai-compatible`)return mr(e);let t=[],n=e.provider===`chatgpt`?`openai`:e.provider,r=e.auth.type===`oauth_subscription`?We(n):we(n),i=e.models?.length??r.length;i>0&&t.push(`${i} ${i===1?`model`:`models`}`);let a=hr(e);return a&&t.push(a),t.join(` • `)}function _r({connection:e,isDefault:t,supportsDefaultProvider:n,selected:r,isSettingDefault:i,onOpen:a,onSetDefault:o,onDelete:s}){let{t:l}=W(`settings`),u=e.isManaged??!1,d=at(e),f=pr(e.provider),p=gr(e),m=n&&!t&&f,h=!u&&a!=null,g=!u&&!t,_=m||h||g;return(0,$.jsx)(v,{title:d,subtitle:p.length>0?p:void 0,onClick:a,showChevron:!1,selected:r,contentAriaLabel:a?l(`providerRow.openProviderAriaLabel`,{displayName:d}):void 0,trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[u?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.managedTagTitle`),children:l(`providerRow.managedTag`)}):null,t?(0,$.jsx)(F,{tone:`info`,title:l(`providerRow.defaultTagTitle`),children:l(`providerRow.defaultTag`)}):null,e.provider===`ollama`?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.localTagTitle`),children:l(`providerRow.localTag`)}):null,e.provider===`openai-compatible`?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.customTagTitle`),children:l(`providerRow.customTag`)}):null,_?(0,$.jsxs)(S.Root,{children:[(0,$.jsx)(S.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(w,{}),"aria-label":l(`providerRow.actionsAriaLabel`,{displayName:d})})}),(0,$.jsxs)(S.Content,{align:`end`,sideOffset:4,children:[h?(0,$.jsx)(S.Item,{onSelect:a,children:l(`providerRow.edit`)}):null,m?(0,$.jsx)(S.Item,{disabled:i,onSelect:o,children:l(`providerRow.setAsDefault`)}):null,g?(0,$.jsx)(S.Item,{onSelect:s,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:l(`providerRow.delete`)}):null]})]}):(0,$.jsx)(`span`,{className:`inline-block w-8`,"aria-hidden":!0})]})})}function vr(e,t){let n=d(),r={path:{assistant_id:e}},i=p({...Rt(),onSuccess:()=>{n.invalidateQueries({queryKey:Vt(r)}),n.invalidateQueries({queryKey:zt(r)}),n.invalidateQueries({queryKey:Gt(r)})},onError:e=>{a(e,{context:`settings-ai-set-default-provider`}),z.error(H(`settings:useProviderActions.setDefaultFailedToast`))}});function o(t){pr(t.provider)&&i.mutate({path:{assistant_id:e},body:{provider:t.provider,connectionName:t.name}})}function s(e){return i.isPending&&i.variables?.body?.connectionName===e}async function c(i){try{let{response:a}=await yt({path:{assistant_id:e,name:i}});a?.ok||a?.status===404?(n.invalidateQueries({queryKey:Lt(r)}),t?.onDeleted?.(i)):a?.status===409?z.error(H(`settings:useProviderActions.deleteInUseToast`)):z.error(H(`settings:useProviderActions.deleteFailedToast`))}catch(e){a(e,{context:`settings-ai-provider-delete`}),z.error(H(`settings:useProviderActions.deleteFailedToast`))}}return{setDefault:o,isSettingDefault:s,deleteConnection:c}}function yr({assistantId:e,selectedConnectionName:t,onOpenConnection:n,onAddProvider:r,onConnectionDeleted:i}){let{t:a}=W(`settings`),{data:o,isLoading:s,isError:l}=f(Mt({path:{assistant_id:e}})),u=Qe(),{data:d}=f({...Ht({path:{assistant_id:e}}),enabled:u}),p=u?d?.resolvedConnectionName??null:null,m=vr(e,{onDeleted:i}),g=(0,Q.useMemo)(()=>{let e=o?.connections??[];return[...e.filter(e=>e.provider===de),...e.filter(e=>e.provider!==de)]},[o]);return(0,$.jsx)(Kn,{title:a(`providersSection.title`),action:(0,$.jsx)(c,{variant:`outlined`,onClick:r,leftIcon:(0,$.jsx)(j,{}),children:a(`providersSection.addProvider`)}),children:s?(0,$.jsx)(`div`,{className:`space-y-2 py-2`,children:[1,2,3].map(e=>(0,$.jsx)(te,{className:`h-10 rounded-lg`},e))}):l?(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,className:`py-4 text-center text-(--system-negative-strong)`,children:a(`providersSection.loadError`)}):g.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:a(`providersSection.empty`)}):g.map(e=>(0,$.jsx)(_r,{connection:e,isDefault:e.name===p,supportsDefaultProvider:u,selected:e.name===t,isSettingDefault:m.isSettingDefault(e.name),onOpen:e.isManaged??!1?void 0:()=>n(e.name),onSetDefault:()=>m.setDefault(e),onDelete:()=>void m.deleteConnection(e.name)},e.name))})}function br({panel:e,onOpenPanel:t,onClosePanel:n}){let{t:r}=W(`settings`),i=vn(),{data:a}=f({...qt({path:{assistant_id:i}}),staleTime:3e4}),o=Qe(),{data:s}=f({...Ht({path:{assistant_id:i}}),enabled:o}),l=s?.availability,{data:u}=f({...Mt({path:{assistant_id:i}})}),d=u?.connections,p=a?.llm?.callSites??{},m=Object.entries(p).filter(([e,t])=>e!==`mainAgent`&&(t?.profile!=null||t?.provider!=null||t?.model!=null)).length;return(0,$.jsx)(kn,{title:r(`languageModelCard.title`),subtitle:r(`languageModelCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[l&&l.status!==`ok`&&(0,$.jsx)(P,{tone:l.status===`unknown`?`warning`:`error`,children:l.message??r(`languageModelCard.defaultProviderUnavailable`)}),i&&(0,$.jsx)(dr,{assistantId:i,config:a,connections:d,selectedProfileName:e?.kind===`profile`?e.name:null,onOpenProfile:e=>t({kind:`profile`,name:e}),onCreateProfile:()=>t({kind:`create-profile`}),onProfileDeleted:t=>{e?.kind===`profile`&&e.name===t&&n()}}),i&&(0,$.jsx)(yr,{assistantId:i,selectedConnectionName:e?.kind===`provider`?e.name:null,onOpenConnection:e=>t({kind:`provider`,name:e}),onAddProvider:()=>t({kind:`add-provider`}),onConnectionDeleted:t=>{e?.kind===`provider`&&e.name===t&&n()}}),(0,$.jsx)(Kn,{title:r(`languageModelCard.overridesTitle`),count:m,action:(0,$.jsx)(c,{variant:`outlined`,onClick:()=>t({kind:`overrides`}),children:r(`languageModelCard.manage`)})})]})})}function xr(e,{onSaved:t}={}){let n=er(e),{data:r}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),i=(0,Q.useMemo)(()=>r?.llm?.profiles??{},[r?.llm?.profiles]),o=r?.llm?.profileOrder??[];async function s(r,s,c){let l=c?.mode??`replace`,u=!(r in i);if(l===`merge`&&!u){await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:s}}}}),t?.();return}let d={profiles:{[r]:s}};if(u&&(d.profileOrder=o.includes(r)?o:[...o,r]),u)await n.mutateAsync({path:{assistant_id:e},body:{llm:d}});else{let t=i[r];await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:null}}}});try{await n.mutateAsync({path:{assistant_id:e},body:{llm:d}})}catch(i){throw a(i,{context:`settings-ai-profile-edit-recreate`}),t!=null&&await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:t}}}}).catch(()=>{}),i}}u&&z.success(H(`settings:useProfileSave.createdToast`,{name:s.label??r})),t?.()}return{saveProfile:s,isPending:n.isPending}}function Sr({assistantId:e,profileName:t,onClose:n}){let{t:r}=W(`settings`),{data:i}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),{data:a}=f({...Mt({path:{assistant_id:e}})}),o=a?.connections,s=(0,Q.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),l=Object.keys(s),u=(0,Q.useMemo)(()=>{if(t==null)return;let e=s[t];return e?{name:t,...e}:void 0},[t,s]),d=t==null?`create`:u?.source===`managed`||u?.invariant===!0?`view`:`edit`,{saveProfile:p,isPending:m}=xr(e,{onSaved:n}),h=$e({mode:d,profileName:t??void 0,initialValues:u,existingNames:l,connections:o,assistantId:e,onSave:p}),g=lr(e,i,{onDeleted:()=>n()}),_=t!=null&&g.pendingDeleteName===t,v=t!=null&&i!=null&&!(t in s);(0,Q.useEffect)(()=>{v&&!h.saving&&!m&&n()},[v,h.saving,m,n]);let y=d===`view`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yn,{title:h.effectiveMode===`create`?r(`profileDetailPanel.newProfileTitle`):u?.label??t??r(`profileDetailPanel.defaultTitle`),closeVariant:`outlined`,onClose:n,headerTrailing:y&&h.effectiveMode!==`create`?(0,$.jsx)(F,{tone:`neutral`,children:r(`profileDetailPanel.managedTag`)}):null,headerActions:h.effectiveMode!==`create`&&!h.isReadOnly?(0,$.jsx)(c,{variant:`dangerOutline`,leftIcon:(0,$.jsx)(N,{}),onClick:()=>{t!=null&&g.requestDelete(t)},disabled:h.saving||_,children:r(_?`profileDetailPanel.deleting`:`profileDetailPanel.delete`)}):null,footer:h.isReadOnly?(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsx)(c,{variant:`outlined`,onClick:h.switchToSaveAsNew,disabled:h.saving,children:r(`profileDetailPanel.saveAsNew`)}),h.hasViewModeChanges?(0,$.jsx)(c,{variant:`primary`,onClick:()=>void h.handleSave(),disabled:h.saving,children:h.saving?r(`profileDetailPanel.saving`):r(`profileDetailPanel.save`)}):null]}):(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(c,{variant:`primary`,onClick:()=>void h.handleSave(),disabled:h.isInvalid||h.saving,children:h.saving?r(`profileDetailPanel.saving`):h.effectiveMode===`create`?r(`profileDetailPanel.createProfile`):r(`profileDetailPanel.saveChanges`)})}),children:(0,$.jsx)(Fe,{editor:h,assistantId:e,connections:o,variant:`panel`})}),(0,$.jsx)(Zn,{...g.blockedDeleteModalProps})]})}function Cr({value:e,profileOptions:t,disabled:n,onChange:r}){let{t:i}=W(`settings`);return(0,$.jsx)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:i(`advisorProfileRow.title`)}),(0,$.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:i(`advisorProfileRow.description`)})]}),(0,$.jsx)(V,{value:e,onChange:r,options:t,placeholder:i(`advisorProfileRow.chooseProfilePlaceholder`),className:`w-44`,menuMinWidth:280,menuAlign:`start`,disabled:n})]})})}var wr=`__custom__`;function Tr(e){return e?!!(e.profile||e.provider||e.model):!1}function Er(e,t){if(t?.provider||t?.model)return null;let n=e.defaultProfile??e.shippedDefaultProfile;return n?{profile:n,via:t?.profile===n?`override`:`default`}:null}function Dr(e,t){let n=Tr(e);return n===Tr(t)?n?(e?.profile??null)===(t?.profile??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.model??null)===(t?.model??null):!0:!1}function Or({assistantId:e,callSites:t,domains:n,persistedOverrides:r,orderedProfiles:i,onClose:o,onApplied:s}){let{t:l}=W(`settings`),u=er(e),d=ve(),f=(0,Q.useMemo)(()=>({requireOwnProviderAndModel:d}),[d]),p=(0,Q.useMemo)(()=>{let e=new Map;for(let n of t){let t=Er(n,r[n.id]);t&&e.set(n.id,t)}return e},[t,r]),m=(0,Q.useMemo)(()=>{let e=new Set(Array.from(p.values(),e=>e.profile));return i.filter(t=>e.has(t.name))},[i,p]),[g,_]=(0,Q.useState)(()=>m[0]?.name??``),[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(new Set),[S,C]=(0,Q.useState)(!1),w=(0,Q.useMemo)(()=>{let e=new Map(n.map(e=>[e.id,e.displayName]));return t=>e.get(t)??t},[n]),T=(0,Q.useMemo)(()=>t.filter(e=>p.get(e.id)?.profile===g),[t,p,g]),E=(0,Q.useMemo)(()=>T.map(e=>e.id).filter(e=>!b.has(e)),[T,b]),D=(0,Q.useMemo)(()=>m.map(e=>({value:e.name,label:_e(e)})),[m]),k=(0,Q.useMemo)(()=>he(i,[],f).filter(e=>e.name!==g).map(e=>({value:e.name,label:_e(e)})),[i,g,f]),j=le(i,g),M=le(i,v),N=b.size===0;function ee(e){_(e),x(new Set),e===v&&y(``)}function F(e,t){x(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})}async function L(){if(!(!g||!v||E.length===0)){C(!0);try{let t={};for(let e of E)t[e]={profile:v};await u.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:t}}}),z.success(l(`bulkOverrideSwapModal.successToast`,{count:E.length,targetLabel:M})),s(),o()}catch(e){let t=re(e);z.error(t??l(`bulkOverrideSwapModal.updateFailedToast`)),t||a(e,{context:`settings-ai-bulk-override-swap`})}finally{C(!1)}}}return(0,$.jsx)(I.Root,{open:!0,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsx)(I.Header,{children:(0,$.jsx)(I.Title,{children:l(`bulkOverrideSwapModal.title`)})}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l(`bulkOverrideSwapModal.intro`)}),(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,$.jsx)(V,{id:`bulk-swap-source`,label:l(`bulkOverrideSwapModal.currentlyUsingLabel`),value:g,onChange:ee,options:D}),(0,$.jsx)(V,{id:`bulk-swap-target`,label:l(`bulkOverrideSwapModal.changeToLabel`),value:v,onChange:y,options:k,placeholder:l(`bulkOverrideSwapModal.targetPlaceholder`)})]}),(0,$.jsx)(P,{tone:`info`,title:l(`bulkOverrideSwapModal.noticeTitle`),children:l(`bulkOverrideSwapModal.noticeBody`,{sourceLabel:j})}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`mb-2 flex items-baseline justify-between gap-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l(`bulkOverrideSwapModal.affectedSummary`,{count:T.length,profile:j})}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[color:var(--content-secondary)]`,children:l(`bulkOverrideSwapModal.chooseActions`)})]}),(0,$.jsx)(c,{variant:`ghost`,onClick:()=>x(N?new Set(T.map(e=>e.id)):new Set),children:l(N?`bulkOverrideSwapModal.clearAll`:`bulkOverrideSwapModal.selectAll`)})]}),(0,$.jsx)(`div`,{className:`max-h-72 space-y-1 overflow-y-auto`,children:T.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border border-[var(--border-base)] px-3 py-2`,children:[(0,$.jsx)(A,{checked:!b.has(e.id),onCheckedChange:t=>F(e.id,t===!0),disabled:S,label:e.displayName,helperText:w(e.domain)}),(0,$.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:p.get(e.id)?.via===`override`?l(`bulkOverrideSwapModal.viaOverride`):l(`bulkOverrideSwapModal.viaDefault`)})]},e.id))})]})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`mr-auto self-center text-[color:var(--content-secondary)]`,children:l(`bulkOverrideSwapModal.willChange`,{count:E.length})}),(0,$.jsx)(c,{variant:`ghost`,onClick:o,disabled:S,children:l(`bulkOverrideSwapModal.cancel`)}),(0,$.jsx)(c,{variant:`primary`,disabled:!g||!v||E.length===0||S,onClick:()=>void L(),children:S?(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}):l(`bulkOverrideSwapModal.applyTo`,{count:E.length})})]})]})})}function kr({id:e,displayName:t,description:n,defaultProfileLabel:r,draft:i,profileOptions:a,connections:o,onDraftChange:s,onToggle:c}){let{t:l}=W(`settings`),u=Tr(i),d=!i||!u?``:i.provider||i.model?wr:i.profile??``,f=d===wr,p=He(),m=(o??[]).some(e=>e.provider===xe),h=[...p,...m?[xe]:[]],g=p[0]??K[0],_=i?.provider,v=Y(_)?_:_===`chatgpt`?xe:void 0,y=v!==void 0&&h.some(e=>e===v),b=v??g,x=Ue(b,``,(o??[]).filter(e=>Be(e.provider,b)))?We(b):we(b),S=x.map(e=>({value:e.id,label:e.displayName})),C=typeof i?.model==`string`?i.model:``;if(C&&!x.some(e=>e.id===C)){let e=we(b).find(e=>e.id===C)?.displayName??C;S.push({value:C,label:l(`callSiteOverridesRow.unavailableOption`,{name:e})})}let w=!!i?.provider&&!i?.model,T=[...h.map(e=>({value:e,label:q[e]??e})),...v&&!y?[{value:v,label:l(`callSiteOverridesRow.unavailableOption`,{name:q[v]??v})}]:[]];function E(t){t===`__custom__`?s(e,{profile:null,provider:g,model:J(g)??``}):t===``?s(e,null):s(e,{profile:t,provider:null,model:null})}function D(t){let n=J(t)??``;s(e,{...i??{},profile:null,provider:t,model:n})}function O(t){s(e,{...i??{},model:t})}return(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:t}),n&&(0,$.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[n,r&&(0,$.jsx)(`span`,{className:`ml-1.5 text-body-small-default text-[var(--content-tertiary)] opacity-60`,children:l(`callSiteOverridesRow.defaultProfileSuffix`,{label:r})})]})]}),(0,$.jsx)(R,{checked:u,onChange:t=>c(e,t),"aria-label":l(`callSiteOverridesRow.overrideAriaLabel`,{displayName:t}),className:`shrink-0`})]}),u&&(0,$.jsx)(`div`,{className:`mt-3`,children:(0,$.jsx)(V,{value:d,onChange:E,options:a,className:`w-44`,menuMinWidth:280,menuAlign:`start`})}),u&&f&&(0,$.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-[var(--border-base)] pt-3`,children:[(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:l(`callSiteOverridesRow.providerLabel`)}),(0,$.jsx)(V,{value:b??``,onChange:D,options:T})]}),(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:l(`callSiteOverridesRow.modelLabel`)}),(0,$.jsx)(V,{value:i?.model??``,onChange:O,options:S})]})]}),w&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:l(`callSiteOverridesRow.pickModelError`)})]})]})}function Ar({groups:e,drafts:t,buildProfileOptionsForRow:n,profileLabelFor:r,advisorMatchesSearch:i,connections:a,onDraftChange:o,onToggle:s}){let{t:c}=W(`settings`);return(0,$.jsx)(`div`,{className:`space-y-4`,children:e.length===0?i?null:(0,$.jsx)(`p`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:c(`overridesCallSiteList.emptySearch`)}):e.map(({domain:e,sites:i})=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:e.displayName}),(0,$.jsx)(`div`,{className:`space-y-1`,children:i.map(e=>{let i=(()=>{let n=t[e.id]??null;return!n||!Tr(n)?``:n.provider||n.model?wr:n.profile??``})(),c=e.shippedDefaultProfile??e.defaultProfile,l=c?r(c):null;return(0,$.jsx)(kr,{id:e.id,displayName:e.displayName,description:e.description,defaultProfileLabel:l,draft:t[e.id]??null,profileOptions:n(i===``||i===`__custom__`?null:i),connections:a,onDraftChange:o,onToggle:s},e.id)})})]},e.id))})}function jr(e,t){let n={};for(let r of Object.keys(e)){let i=e[r]??null;Tr(i)?n[r]={profile:i?.profile??null,provider:i?.provider??null,model:i?.model??null}:r in t&&t[r]===null&&(n[r]=null)}return n}function Mr(e){let t={};for(let n of Object.keys(e))t[n]=null;return t}function Nr({catalogCallSiteIds:e,persistedOverrides:t,persistedAdvisor:n,isSeeded:r}){let[i,a]=(0,Q.useState)({}),[o,s]=(0,Q.useState)(void 0),c=(0,Q.useMemo)(()=>{if(!r)return{};let n={};for(let r of e)if(r in i)n[r]=i[r];else{let e=t[r];n[r]=e?{...e}:{}}return n},[r,e,t,i]),l=o??n,u=l!==n,d=(0,Q.useMemo)(()=>{if(!r)return!1;for(let e of Object.keys(c))if(!Dr(c[e],t[e]))return!0;return!1},[r,c,t]);return{drafts:c,advisorProfile:l,advisorDirty:u,callSiteDraftsDirty:d,hasUnsavedDrafts:u||d,hasValidationError:(0,Q.useMemo)(()=>Object.values(c).some(e=>Tr(e)&&!!e?.provider&&!e?.model),[c]),setDraft:(0,Q.useCallback)((e,t)=>{a(n=>({...n,[e]:t}))},[]),setAdvisor:(0,Q.useCallback)(e=>{s(e)},[]),clearEdits:(0,Q.useCallback)(()=>{a({}),s(void 0)},[]),buildSavePatch:(0,Q.useCallback)(()=>jr(c,i),[c,i]),buildResetPatch:(0,Q.useCallback)(()=>Mr(c),[c])}}function Pr({assistantId:e,onClose:t}){let{t:n}=W(`settings`),{data:r}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),i=(0,Q.useMemo)(()=>r?.llm?.profiles??{},[r?.llm?.profiles]),o=(0,Q.useMemo)(()=>r?.llm?.profileOrder??[],[r?.llm?.profileOrder]),s=(0,Q.useMemo)(()=>r?.llm?.callSites??{},[r?.llm?.callSites]),l=(0,Q.useMemo)(()=>fe(i,o),[i,o]),u=He(),d=ve(),p=(0,Q.useMemo)(()=>({requireOwnProviderAndModel:d}),[d]),m=er(e),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(!1),[y,x]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(!1),{data:w,isLoading:T,isError:E,refetch:D}=f({...Wt({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4,refetchOnWindowFocus:!1}),{data:k}=f({...Mt({path:{assistant_id:e}}),enabled:!!e}),A=(0,Q.useMemo)(()=>(w?.callSites??[]).filter(e=>e.id!==`mainAgent`),[w]),j=!T&&!E&&!!w,N=!!r,ee=j&&N,P=(0,Q.useMemo)(()=>A.map(e=>e.id),[A]),F=r?.llm?.advisorProfile??``,{drafts:I,advisorProfile:R,advisorDirty:V,callSiteDraftsDirty:te,hasUnsavedDrafts:H,hasValidationError:U,setDraft:ne,setAdvisor:re,clearEdits:G,buildSavePatch:q,buildResetPatch:Y}=Nr({catalogCallSiteIds:P,persistedOverrides:s,persistedAdvisor:F,isSeeded:ee}),ie=(0,Q.useMemo)(()=>new Set(P),[P]),ae=(0,Q.useCallback)(e=>le(l,e),[l]),se=(0,Q.useCallback)(e=>({value:e.name,label:_e(e),...me(e,l,p)===`undispatchable`?{icon:(0,$.jsx)(b,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),tooltip:oe(e)}:{}}),[l,p]),X=(0,Q.useMemo)(()=>he(l,[F],p).map(se),[l,F,se,p]),Z=(0,Q.useMemo)(()=>{let e=h.trim().toLowerCase();return e===``||`advisor`.includes(e)||`second opinion`.includes(e)},[h]),ce=(0,Q.useMemo)(()=>A.some(e=>Er(e,s[e.id])!==null),[A,s]),de=(0,Q.useMemo)(()=>Object.entries(s).some(([e,t])=>ie.has(e)&&(t?.profile!=null||t?.provider!=null||t?.model!=null)),[s,ie]),pe=(0,Q.useCallback)(e=>[...he(l,[e],p).map(se),{value:wr,label:n(`overridesDetailPanel.customProfileOption`)}],[l,se,p,n]),ge=(0,Q.useMemo)(()=>{if(!h.trim())return A;let e=h.toLowerCase();return A.filter(t=>(t.displayName??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.domain??``).toLowerCase().includes(e))},[A,h]),ye=(0,Q.useMemo)(()=>{if(!w)return[];let e=w.domains.map(e=>e.id),t=new Map(w.domains.map(e=>[e.id,e])),r=[];for(let n of e){let e=ge.filter(e=>e.domain===n);e.length>0&&r.push({domain:t.get(n),sites:e})}let i=new Set(e),a=ge.filter(e=>!i.has(e.domain));return a.length>0&&r.push({domain:{id:`other`,displayName:n(`overridesDetailPanel.otherDomain`)},sites:a}),r},[w,ge,n]),be=(0,Q.useCallback)((e,t)=>{if(!t){ne(e,null);return}let n=ue(l,A.find(t=>t.id===e)?.defaultProfile,p);if(n)ne(e,{profile:n});else{let t=u[0]??K[0];ne(e,{provider:t,model:J(t)??``})}},[A,l,u,ne,p]),xe=(0,Q.useCallback)(async()=>{v(!0);try{let r=q();await m.mutateAsync({path:{assistant_id:e},body:{llm:{...te?{callSites:r}:{},...V?{advisorProfile:R}:{}}}}),t(),z.success(n(`overridesDetailPanel.overridesSavedToast`))}catch(e){z.error(n(`overridesDetailPanel.saveFailedToast`)),a(e,{context:`call_site_overrides_save`})}finally{v(!1)}},[q,te,V,R,t,m,e,n]),Se=(0,Q.useCallback)(async()=>{v(!0);try{let r=Y();await m.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:r}}}),t(),z.success(n(`overridesDetailPanel.overridesResetToast`))}catch(e){z.error(n(`overridesDetailPanel.resetFailedToast`)),a(e,{context:`call_site_overrides_reset`})}finally{v(!1)}},[Y,t,m,e,n]),Ce=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[de&&(0,$.jsx)(c,{variant:`outlined`,onClick:()=>x(!0),disabled:_||!ee,tintColor:`var(--system-negative-strong)`,className:`mr-auto`,children:n(`overridesDetailPanel.resetToDefaults`)}),(0,$.jsx)(c,{variant:`primary`,onClick:()=>void xe(),disabled:!H||U||_,children:_?(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}):n(`overridesDetailPanel.save`)})]});return(0,$.jsxs)(yn,{title:n(`overridesDetailPanel.title`),closeVariant:`outlined`,onClose:t,footer:Ce,children:[(0,$.jsx)(`p`,{className:`mb-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.description`)}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`mb-4 flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsx)(L,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:n(`overridesDetailPanel.searchPlaceholder`),leftIcon:(0,$.jsx)(M,{className:`h-4 w-4`}),fullWidth:!0})}),(0,$.jsx)(c,{variant:`outlined`,onClick:()=>C(!0),disabled:!ee||_||H||!ce,title:H?n(`overridesDetailPanel.bulkChangeUnsavedTitle`):ce?void 0:n(`overridesDetailPanel.bulkChangeNoCandidatesTitle`),children:n(`overridesDetailPanel.bulkChange`)})]}),N&&Z&&(0,$.jsxs)(`div`,{className:`mb-4`,children:[(0,$.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.advisorSection`)}),(0,$.jsx)(Cr,{value:R,profileOptions:X,disabled:_,onChange:re})]}),T&&(0,$.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,$.jsx)(O,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}),E&&(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:n(`overridesDetailPanel.loadErrorTitle`)}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.loadErrorHint`)}),(0,$.jsx)(c,{variant:`outlined`,onClick:()=>void D(),children:n(`overridesDetailPanel.retry`)})]}),!T&&!E&&w&&(0,$.jsx)(Ar,{groups:ye,drafts:I,buildProfileOptionsForRow:pe,profileLabelFor:ae,advisorMatchesSearch:Z,connections:k?.connections,onDraftChange:ne,onToggle:be})]}),S&&w&&(0,$.jsx)(Or,{assistantId:e,callSites:A,domains:w.domains,persistedOverrides:s,orderedProfiles:l,onClose:()=>C(!1),onApplied:G}),(0,$.jsx)(B,{open:y,title:n(`overridesDetailPanel.resetToDefaults`),message:n(`overridesDetailPanel.resetConfirmMessage`),confirmLabel:n(`overridesDetailPanel.resetToDefaults`),destructive:!0,onConfirm:()=>{x(!1),Se()},onCancel:()=>x(!1)})]})}function Fr({mode:e,connection:t,assistantId:n,existingNames:r,connections:i,variant:a=`modal`,onSave:o,onCancel:s}){let{t:l}=W(`settings`),[u,f]=(0,Q.useState)(t?.label??``),p=t?.name??``,m=t?.provider??`anthropic`,g=t?.auth.type??`api_key`,[_,v]=(0,Q.useState)(()=>t?.auth.type===`api_key`?t.auth.credential:t?``:`credential/anthropic/api_key`),[y,b]=(0,Q.useState)(t?.baseUrl??``),[x,S]=(0,Q.useState)(()=>t?.models?t.models.map(e=>e.id).join(`, `):``),[C,w]=(0,Q.useState)(!1),[T,E]=(0,Q.useState)(null),D=m===`openai-compatible`,[O,k]=(0,Q.useState)(``),[A,j]=(0,Q.useState)(!1),M=d(),N=(0,Q.useMemo)(()=>Me(_),[_]),ee=g===`api_key`&&N!==null,{hasStoredCredential:P,isLoading:F}=ke({assistantId:n,credentialKind:`credential`,credentialName:N?`${N.service}:${N.field}`:``,enabled:ee}),{credentials:R}=De({assistantId:n,enabled:g===`api_key`});(0,Q.useEffect)(()=>{let e=t?.provider??`anthropic`;f(t?.label??``),t?.auth.type===`api_key`?v(t.auth.credential):v(t?``:`credential/${e}/api_key`),E(null),b(t?.baseUrl??``),S(t?.models?t.models.map(e=>e.id).join(`, `):``),k(``),j(!1)},[t]);let z=u.trim()!==(t?.label??``).trim(),B=D&&z?mt(u,i,t?.name):null,V=p.trim().length>0&&B===null;async function te(){if(V){w(!0),E(null);try{let e;if(g===`api_key`){let t=_.trim()||`credential/${m}/api_key`,r=O.trim();if(r){j(!0);try{let e=Me(t);await St({path:{assistant_id:n},body:e?{type:`credential`,name:`${e.service}:${e.field}`,value:r}:{type:`api_key`,name:m,value:r},throwOnError:!0});let i=Ve(n,`credential`,e?`${e.service}:${e.field}`:``);M.setQueryData(i,!0),M.invalidateQueries({queryKey:Ft({path:{assistant_id:n}})})}catch{E(l(`providerEditorContent.failedSaveApiKey`));return}finally{j(!1)}}e={type:`api_key`,credential:t}}else if(t)e=t.auth;else{E(l(`providerEditorContent.nothingToEdit`));return}let r=u.trim()||null,i={auth:e,label:r,...D&&{base_url:y.trim()||null,models:x.trim()?x.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:a,error:s,response:c}=await bt({path:{assistant_id:n,name:t?.name??p.trim()},body:i});if(!c?.ok){E(je(c?.status,s)??Oe(c?.status));return}if(!a){E(l(`providerEditorContent.emptyServerResponse`));return}o(a)}catch{E(l(`providerEditorContent.failedSaveProvider`))}finally{w(!1)}}}let H=R.filter(e=>e.service===m),ne=e!==`create`&&t?.auth.type===`api_key`,re=H.length>0||ne,G=Ae(l(`providerEditorContent.apiKeyPlaceholder`),P);if(e===`create`)return(0,$.jsx)(Ie,{variant:a===`panel`?`inline`:`modal`,assistantId:n,existingNames:r,connections:i,defaultProviderType:m,onCreated:o,onCancel:s});let K=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:(0,$.jsx)(U,{i18nKey:`providerEditorContent.displayNameLabel`,ns:`settings`,components:{optional:(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`})}})}),(0,$.jsx)(L,{value:u,onChange:e=>f(e.target.value),placeholder:l(`providerEditorContent.displayNamePlaceholder`),fullWidth:!0}),B?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:Le[B]}):null]}),D&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:l(`providerEditorContent.baseUrlLabel`)}),(0,$.jsx)(L,{value:y,onChange:e=>b(e.target.value),placeholder:l(`providerEditorContent.baseUrlPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:l(`providerEditorContent.modelsLabel`)}),(0,$.jsx)(L,{value:x,onChange:e=>S(e.target.value),placeholder:l(`providerEditorContent.modelsPlaceholder`),fullWidth:!0}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:l(`providerEditorContent.modelsHint`)})]})]}),g===`api_key`&&(0,$.jsx)(Ne,{apiKeyValue:O,onApiKeyChange:k,credential:_,onCredentialChange:v,isLoadingCredential:F,apiKeyPlaceholder:G,provider:m,providerCredentials:H,showAdvancedSection:re,onError:E}),g===`oauth_subscription`&&(0,$.jsx)(Te,{assistantId:n,onConnected:o}),T&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:T})]}),q=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(c,{variant:`ghost`,onClick:s,children:l(`providerEditorContent.cancel`)}),(0,$.jsx)(c,{variant:`primary`,disabled:!V||C||A,onClick:()=>void te(),children:l(C?`providerEditorContent.saving`:`providerEditorContent.saveChanges`)})]});return a===`panel`?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[K,(0,$.jsx)(`div`,{className:`flex justify-end gap-2`,children:q})]}):(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsxs)(I.Header,{children:[(0,$.jsx)(I.Title,{children:l(`providerEditorContent.editProviderTitle`)}),(0,$.jsx)(I.Description,{children:t?l(`providerEditorContent.editingConnection`,{name:at(t)}):l(`providerEditorContent.editProviderSettingsFallback`)})]}),(0,$.jsx)(I.Body,{children:K}),(0,$.jsx)(I.Footer,{children:q})]})}function Ir({assistantId:e,connectionName:t,onClose:n}){let{t:r}=W(`settings`),i=d(),{data:a}=f(Mt({path:{assistant_id:e}})),o=(0,Q.useMemo)(()=>a?.connections??[],[a]),s=(0,Q.useMemo)(()=>t==null?void 0:o.find(e=>e.name===t),[t,o]),c=t!=null&&a!=null&&s==null;(0,Q.useEffect)(()=>{c&&n()},[c,n]);function l(){i.invalidateQueries({queryKey:Lt({path:{assistant_id:e}})}),i.invalidateQueries({queryKey:Vt({path:{assistant_id:e}})}),n()}return(0,$.jsx)(yn,{title:s?at(s):r(`providerDetailPanel.addProviderTitle`),closeVariant:`outlined`,onClose:n,children:t==null||s!=null?(0,$.jsx)(Fr,{mode:s?`edit`:`create`,connection:s,variant:`panel`,assistantId:e,existingNames:o.map(e=>e.name),connections:o,onSave:l,onCancel:n}):null})}var Lr={vellum:{provider:`vellum`},deepgram:{provider:`deepgram`,credentialService:`deepgram`},openai:{provider:`openai-whisper`,credentialService:`openai`}},Rr={vellum:`vellum`,deepgram:`deepgram`,"openai-whisper":`openai`},zr=`deepgram`;function Br({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=vn(),s=e??o,c=kt(),l=d(),[u]=(0,Q.useState)(()=>ft.filter(e=>!e.requiresNativeDictation||ze())),p=zr,{data:m}=f({...qt({path:{assistant_id:s}}),enabled:c,staleTime:3e4}),h=m?.services?.stt,g=h?.mode===`managed`?`vellum`:h?.provider,_=(0,Q.useMemo)(()=>{let e=g?Rr[g]:void 0;if(e&&u.some(t=>t.id===e))return e;let n=t(lt,p);return u.some(e=>e.id===n)?n:p},[g,u,p]),v=!!g,[y,b]=Vn(_),{available:x,currentCode:S,configuredProviderId:C,selectLanguage:w,selecting:T}=fn(s),[E,D]=(0,Q.useState)(!1),O=x&&y===_&&(Lr[y]?.provider===C||!!g&&!Rr[g]),[k,A]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(!1),[N,P]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{let e=t(lt,p);e===`macos-native`&&!u.some(t=>t.id===e)&&n(lt,p)},[u,p]);let F=(0,Q.useMemo)(()=>u.find(e=>e.id===y)??u[0],[u,y]),I=F.apiKeyPlaceholder!==void 0;(0,Q.useEffect)(()=>{M(t(et+y,``).length>0),A(``)},[y]);let R=(0,Q.useMemo)(()=>{let e=y!==_,t=k.trim().length>0;return e||t},[y,_,k]),B=(0,Q.useCallback)(async()=>{let e=k.trim();n(lt,y),e.length>0&&n(et+y,e);let r=Lr[y];P(!0);try{if(r?.credentialService){let n=e.length>0?e:t(et+y,``);if(n.length>0){let{response:e}=await Tt({path:{assistant_id:s},body:{service:r.credentialService,field:`api_key`,value:n,label:`${F.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}}if(r&&(y!==_||!v)||g===`vellum`&&y!==`vellum`){let e=r?.provider??zr,{response:t}=await Ct({path:{assistant_id:s},body:{services:{stt:{provider:e,mode:e===`vellum`?`managed`:`your-own`}}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return e.length>0&&M(!0),A(``),l.invalidateQueries({queryKey:zt({path:{assistant_id:s}})}),z.success(`Speech-to-text settings saved`),!0}catch(e){return z.error(e instanceof Error?e.message:`Failed to save speech-to-text settings`),!1}finally{P(!1)}},[s,y,k,F,_,v,g,l]);(0,Q.useEffect)(()=>{a?.({hasChanges:R,saving:N,save:B})},[a,R,N,B]);let te=(0,Q.useCallback)(()=>{n(et+y,``),M(!1),A(``)},[y]),H=j?`•••••••• (Enter a new key to replace)`:F.apiKeyPlaceholder;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(V,{value:y,onChange:b,options:u.map(e=>({value:e.id,label:e.displayName})),"aria-label":`STT provider`})]}),O&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Spoken language`}),(0,$.jsx)(nt,{"aria-label":`Spoken language`,"aria-haspopup":`dialog`,onClick:()=>D(!0),value:pn(S,C)}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Applies from your next spoken turn.`}),(0,$.jsx)(En,{open:E,onOpenChange:D,title:`Spoken language`,currentCode:S,configuredProviderId:C,selectLanguage:w,selecting:T})]}),I&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(L,{type:`password`,value:k,onChange:e=>A(e.target.value),placeholder:H,fullWidth:!0})]}),F.setupWarning&&(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(ee,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-mid-strong)]`}),(0,$.jsx)(`span`,{children:F.setupWarning})]}),!i&&F.credentialsGuide&&(0,$.jsx)(Fn,{guide:F.credentialsGuide}),y===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Transcription runs through your Vellum account.`}),(!r||j)&&(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[!r&&(0,$.jsx)(Nn,{onClick:B,disabled:!R||N}),j&&(0,$.jsx)(Pn,{onClick:te})]})]})}function Vr(){let{t:e}=W(`settings`);return(0,$.jsx)(kn,{title:e(`speechToTextCard.title`),subtitle:e(`speechToTextCard.subtitle`),children:(0,$.jsx)(Br,{})})}async function Hr(e){let{provider:t,apiKey:n,voiceId:r,text:i}=e;if(n.trim().length===0)return{kind:`error`,message:`Save an API key for this provider first.`};try{return t===`elevenlabs`?await Ur(n,r,i):t===`deepgram`?await Wr(n,i):t===`fish-audio`?{kind:`unsupported`,message:`Fish Audio TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:t===`xai`?{kind:`unsupported`,message:`xAI TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:{kind:`unsupported`,message:`TTS testing for "${t}" is not supported from the browser yet.`}}catch(e){return{kind:`error`,message:e instanceof Error?e.message:`Failed to reach the TTS provider.`}}}async function Ur(e,t,n){let r=t.trim();if(r.length===0)return{kind:`error`,message:`Enter and save a Voice ID before testing ElevenLabs.`};let i=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${encodeURIComponent(r)}?output_format=mp3_44100_128`,{method:`POST`,headers:{"xi-api-key":e,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:n,model_id:`eleven_turbo_v2_5`})});return i.ok?{kind:`audio`,blob:await i.blob()}:{kind:`error`,message:await Gr(i,`ElevenLabs rejected the request.`)}}async function Wr(e,t){let n=await fetch(`https://api.deepgram.com/v1/speak?model=aura-2-thalia-en`,{method:`POST`,headers:{Authorization:`Token ${e}`,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:t})});return n.ok?{kind:`audio`,blob:await n.blob()}:{kind:`error`,message:await Gr(n,`Deepgram rejected the request.`)}}async function Gr(e,t){try{let n=await e.text();if(n.length===0)return`${t} (HTTP ${e.status})`;try{let e=JSON.parse(n);if(e&&typeof e==`object`&&`detail`in e&&typeof e.detail==`string`)return e.detail;if(e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`)return e.message}catch{}return n.slice(0,200)}catch{return`${t} (HTTP ${e.status})`}}function Kr({assistantId:e,value:t,onChange:n,className:r}){let[i,a]=(0,Q.useState)(!1),{voices:o}=gn(e);if(o.length===0)return null;let s=o.find(e=>e.model===t)??o[0];return(0,$.jsxs)(g.Root,{open:i,onOpenChange:a,children:[(0,$.jsx)(g.Trigger,{asChild:!0,children:(0,$.jsx)(nt,{"aria-label":`Voice`,value:s?mn(s.description):`Select a voice`,className:r})}),(0,$.jsx)(g.Content,{side:`bottom`,align:`start`,className:`w-[var(--radix-popover-trigger-width)] p-1`,children:(0,$.jsx)(hn,{assistantId:e,value:t,onChange:n,onSelect:()=>a(!1),showSource:!0})})]})}var qr={elevenlabs:`voiceId`,"fish-audio":`referenceId`,xai:`voiceId`};function Jr({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=vn(),s=e??o,l=ht.use.name()??`your assistant`,u=kt(),p=d(),{data:m}=f({...jt({path:{assistant_id:s}}),enabled:u,staleTime:1/0}),h=(0,Q.useMemo)(()=>{let e=m?.providers;if(!e)return Re;if(e.some(e=>e.id===`vellum`))return e;let t=Re.find(e=>e.id===`vellum`);return t?[t,...e]:e},[m]),{data:g}=f({...qt({path:{assistant_id:s}}),enabled:u,staleTime:3e4}),_=g?.services?.tts,v=_?.mode===`managed`?`vellum`:_?.provider,y=`elevenlabs`,b=(0,Q.useMemo)(()=>v??t(`vellum:voice:ttsProvider`,y),[v,y]),x=!!v,[S,C]=Vn(b),[w,T]=(0,Q.useState)(``),[E,O]=(0,Q.useState)(``),[k,A]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(!1),[N,ee]=(0,Q.useState)(!1),[P,F]=(0,Q.useState)(!1),{voices:I,defaultModel:R,fetched:B}=_n(s,{enabled:S===`vellum`}),te=_?.providers?.vellum?.model??R??``,[H,U]=Vn(te),W=I.find(e=>e.model===H)??I[0],[ne,re]=(0,Q.useState)(null),G=I.some(e=>e.model===te),K=ne??(B&&te!==``&&!G),q=(0,Q.useMemo)(()=>h.find(e=>e.id===S)??h[0],[S,h]),J=S===`vellum`&&q.supportsVoiceSelection&&H.trim()!==``&&H.trim()!==te,Y=(0,Q.useCallback)(e=>{let n=t(Je+e,``),r=t(it+e,``);M(n.length>0),O(r),A(r),T(``)},[]);(0,Q.useEffect)(()=>{Y(S)},[S,Y]);let ie=(0,Q.useMemo)(()=>{let e=S!==b,t=w.trim().length>0,n=E.trim()!==k;return e||t||n||J},[S,b,w,E,k,J]),ae=(0,Q.useCallback)(async()=>{let e=w.trim(),r=E.trim(),i=q.id;n(Ye,i),e.length>0&&n(Je+i,e),n(it+i,r);let a=e.length>0?e:t(Je+i,``),o=qr[i];F(!0);try{if(a.length>0){let{response:e}=await Tt({path:{assistant_id:s},body:{service:i,field:`api_key`,value:a,label:`${q.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}let e={...S!==b||!x?{provider:i,mode:i===`vellum`?`managed`:`your-own`}:{},...o?{providers:{[i]:{[o]:r}}}:{},...J?{providers:{vellum:{model:H.trim()}}}:{}};if(Object.keys(e).length>0){let{response:t}=await Ct({path:{assistant_id:s},body:{services:{tts:e}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return M(a.length>0),A(r),T(``),p.invalidateQueries({queryKey:zt({path:{assistant_id:s}})}),z.success(`Text-to-speech settings saved`),!0}catch(e){return z.error(e instanceof Error?e.message:`Failed to save text-to-speech settings`),!1}finally{F(!1)}},[s,S,H,J,w,E,q,b,x,p]);(0,Q.useEffect)(()=>{a?.({hasChanges:ie,saving:P,save:ae})},[a,ie,P,ae]);let oe=(0,Q.useCallback)(()=>{n(Je+S,``),M(!1),T(``)},[S]),se=(0,Q.useCallback)(async()=>{ee(!0);try{let e=t(Je+S,``),n=w.trim(),r=n.length>0?n:e;if(r.length===0){z.error(`Save an API key for this provider before testing.`);return}let i=t(it+S,``),a=E.trim(),o=await Hr({provider:S,apiKey:r,voiceId:a.length>0?a:i,text:`Hey! It's ${l}. How does this sound?`});if(o.kind!==`audio`){z.error(o.message);return}let s=URL.createObjectURL(o.blob);try{let e=new Audio(s);await e.play(),await new Promise(t=>{e.onended=()=>t(),e.onerror=()=>t()})}finally{URL.revokeObjectURL(s)}}finally{ee(!1)}},[l,w,S,E]),X=j?`•••••••• (Enter a new key to replace)`:q.apiKeyPlaceholder,Z=S===`vellum`,ce=Z&&q.supportsVoiceSelection,le=(0,$.jsxs)(c,{variant:`link`,size:`compact`,className:`inline-flex h-auto items-center gap-1 px-0 underline [--vbtn-fg:var(--content-tertiary)]`,onClick:()=>{re(!1),I.some(e=>e.model===H)||U(R||I[0]?.model||``)},children:[(0,$.jsx)(D,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Choose from catalog`]}),ue=ce&&K&&I.length>0?le:null;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(V,{value:S,onChange:C,options:h.map(e=>({value:e.id,label:e.displayName})),"aria-label":`TTS provider`})]}),!Z&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(L,{type:`password`,value:w,onChange:e=>T(e.target.value),placeholder:X,fullWidth:!0})]}),ce&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice`}),K?(0,$.jsx)(L,{type:`text`,value:H,onChange:e=>U(e.target.value),placeholder:`Enter a voice ID`,"aria-label":`Custom voice ID`,fullWidth:!0}):W?(0,$.jsx)(Kr,{assistantId:s,value:H,onChange:U}):B&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`No managed voices are currently available.`})]}),q.supportsVoiceSelection&&!Z&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice ID`}),(0,$.jsx)(L,{type:`text`,value:E,onChange:e=>O(e.target.value),placeholder:`Enter a voice ID`,fullWidth:!0})]}),!i&&!Z&&(0,$.jsx)(Fn,{guide:q.credentialsGuide}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!Z&&(0,$.jsx)(c,{variant:`outlined`,onClick:se,disabled:N,children:N?`Testing…`:`Test`}),(0,$.jsxs)(`div`,{className:`ml-auto flex items-center gap-3`,children:[ue,!r&&(0,$.jsx)(Nn,{onClick:ae,disabled:!ie||P}),j&&!Z&&(0,$.jsx)(Pn,{onClick:oe})]})]})]})}function Yr(){let{t:e}=W(`settings`);return(0,$.jsx)(kn,{id:`text-to-speech`,title:e(`textToSpeechCard.title`),subtitle:e(`textToSpeechCard.subtitle`),children:(0,$.jsx)(Jr,{})})}var Xr=`default`;function Zr(){let{t:e}=W(`settings`),i=vn(),o=d(),{data:s}=f({...qt({path:{assistant_id:i}}),staleTime:3e4}),c=It({onSuccess:e=>{Bt(o,{path:{assistant_id:i}},e)}}),l=Bn(),u=(0,Q.useMemo)(()=>s?s.services?.[`web-fetch`]?.provider||t(`vellum:ai:webFetchProvider`,Xr):t(tt,Xr),[s]),[p,m]=(0,Q.useState)(!1),[h,g]=Vn(u),[_,v]=(0,Q.useState)(``),y=se.has(h),{hasStoredCredential:b}=ke({assistantId:i,credentialKind:`api_key`,credentialName:h,enabled:y}),x=_.trim().length>0,S=p||y&&!b&&!x||h===u&&!x,C=Ae(G[h]??e(`webFetchCard.apiKeyPlaceholder`),b),w=(0,Q.useCallback)(async()=>{m(!0);let t=_.trim(),r=y&&t.length>0;try{r&&await l(h,t),await c.mutateAsync({path:{assistant_id:i},body:{services:{"web-fetch":{provider:h}}}}).catch(t=>{throw z.error(e(`webFetchCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t})}catch{m(!1);return}m(!1);try{if(n(tt,h),r){let e=Z(h);e&&n(e,t);let r=Ve(i,`api_key`,h);o.setQueryData(r,!0),o.invalidateQueries({queryKey:r}),v(``)}z.success(e(`webFetchCard.savedToast`))}catch(t){a(t,{context:`settings-ai-web-fetch-persist-local`}),z.error(e(`webFetchCard.localPreferencesFailedToast`))}},[y,c,l,o,i,_,h,e]),T=(0,Q.useCallback)(()=>{let e=Z(h);e&&r(e),v(``),g(Xr),n(tt,Xr)},[h,g]);return(0,$.jsx)(kn,{id:`web-fetch`,title:e(`webFetchCard.title`),subtitle:e(`webFetchCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`webFetchCard.providerLabel`)}),(0,$.jsx)(V,{value:h,onChange:g,options:ie.map(e=>({value:e,label:Se[e]??e}))})]}),y&&(0,$.jsx)(L,{label:e(`webFetchCard.apiKeyLabel`),type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:C,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:w,disabled:S}),p&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),y&&(0,$.jsx)(Pn,{onClick:T,filled:!0})]})]})})}var Qr=`0.10.12`;function $r(){return gt(Qr)}function ei(){let{t:e}=W(`settings`),i=vn(),o=d(),s=kt(),{data:c}=f({...qt({path:{assistant_id:i}}),enabled:s,staleTime:3e4}),l=It({onSuccess:e=>{Bt(o,{path:{assistant_id:i}},e)}}),u=Bn(),p=(0,Q.useMemo)(()=>{if(!c)return t(Ze,`inference-provider-native`);let e=c.services?.[`web-search`];return(e?.mode===`managed`&&e?.provider!==`inference-provider-native`?`vellum`:e?.provider)||t(`vellum:ai:webSearchProvider`,`inference-provider-native`)},[c]),[m,h]=(0,Q.useState)(!1),[g,_]=Vn(p),[v,y]=(0,Q.useState)(``),b=ce.has(g),{hasStoredCredential:x}=ke({assistantId:i,credentialKind:`api_key`,credentialName:g,enabled:b}),S=v.trim().length>0,C=m||b&&!x&&!S||g===p&&!S,w=Ae(Ce[g]??e(`webSearchCard.apiKeyPlaceholder`),x),T=(0,Q.useCallback)(async()=>{h(!0);let t=v.trim(),r=ge(g),s=b&&t.length>0;try{s&&await u(g,t),await _t();let n=g===`vellum`?$r()?{provider:`vellum`,mode:`managed`}:{mode:`managed`}:{provider:g,mode:`your-own`};await l.mutateAsync({path:{assistant_id:i},body:{services:{"web-search":n}}}).catch(t=>{throw z.error(e(`webSearchCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t})}catch{h(!1);return}h(!1);try{if(n(Ze,g),s){r&&n(r,t);let e=Ve(i,`api_key`,g);o.setQueryData(e,!0),o.invalidateQueries({queryKey:e}),y(``)}z.success(e(`webSearchCard.savedToast`))}catch(t){a(t,{context:`settings-ai-web-search-persist-local`}),z.error(e(`webSearchCard.localPreferencesFailedToast`))}},[b,l,u,o,i,v,g,e]),E=(0,Q.useCallback)(()=>{let e=ge(g);e&&r(e),y(``),_(`inference-provider-native`),n(Ze,`inference-provider-native`)},[g,_]);return(0,$.jsx)(kn,{title:e(`webSearchCard.title`),subtitle:e(`webSearchCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`webSearchCard.providerLabel`)}),(0,$.jsx)(V,{"aria-label":e(`webSearchCard.providerAriaLabel`),value:g,onChange:_,options:be.map(e=>({value:e,label:ae[e]??e}))})]}),g===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`webSearchCard.vellumNote`)}),b&&(0,$.jsx)(L,{label:e(`webSearchCard.apiKeyLabel`),type:`password`,value:v,onChange:e=>y(e.target.value),placeholder:w,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:T,disabled:C}),m&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),b&&(0,$.jsx)(Pn,{onClick:E,filled:!0})]})]})})}function ti(){let e=vn(),t=ln(),[n,r]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{let e=window.location.hash.slice(1);e&&requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({block:`start`})})},[]);let i=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto`,children:[(0,$.jsx)(jn,{}),(0,$.jsx)(br,{panel:n,onOpenPanel:r,onClosePanel:()=>r(null)}),(0,$.jsx)(ei,{}),(0,$.jsx)(Zr,{}),(0,$.jsx)(zn,{}),(0,$.jsx)(Gn,{}),(0,$.jsx)(Yr,{}),(0,$.jsx)(Vr,{})]}),a=`${e??`none`}:${n?.kind===`profile`?`profile:${n.name}`:n?.kind===`provider`?`provider:${n.name}`:n?.kind??`closed`}`,o=n?.kind===`provider`||n?.kind===`add-provider`,s=n!=null&&e?n.kind===`overrides`?(0,$.jsx)(Pr,{assistantId:e,onClose:()=>r(null)},a):o?(0,$.jsx)(Ir,{assistantId:e,connectionName:n.kind===`provider`?n.name:null,onClose:()=>r(null)},a):(0,$.jsx)(Sr,{assistantId:e,profileName:n.kind===`profile`?n.name:null,onClose:()=>r(null)},a):null;return s&&t?(0,$.jsx)(xn,{children:s}):s?(0,$.jsx)(Sn,{storageKey:`aiSettingsDetailDrawerWidth`,detailKey:a,section:i,detail:s}):i}export{ti as AiPage};
|