@vellumai/web 0.11.2-dev.202608052129.f237b1e → 0.11.2-dev.202608052324.a11da34

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.
Files changed (157) hide show
  1. package/dist/assets/{Combination-e7a8fzjw.js → Combination-CigiPAM1.js} +1 -1
  2. package/dist/assets/{access-Cyzp359B.js → access-BAJtFqoe.js} +1 -1
  3. package/dist/assets/{account-page-Dn9GzKV8.js → account-page-zmcxwVNJ.js} +1 -1
  4. package/dist/assets/{account-shell-BAxD1c33.js → account-shell-a78KDthk.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-DObt25Tv.js → acp-run-detail-panel-Bb8nqXr1.js} +1 -1
  6. package/dist/assets/{activity-steps-panel-B0c989W9.js → activity-steps-panel-_IS48OwO.js} +1 -1
  7. package/dist/assets/{add-credential-modal-BeGTTgy3.js → add-credential-modal-BbhS-t6m.js} +1 -1
  8. package/dist/assets/{add-credits-modal-CpIeM-Xx.js → add-credits-modal-CYs7jy2D.js} +1 -1
  9. package/dist/assets/ai-page-yPnWL7kw.js +1 -0
  10. package/dist/assets/{api-key-screen-CUDWSMTv.js → api-key-screen-Cp16QzTQ.js} +1 -1
  11. package/dist/assets/{app-card-DO3NIt5Y.js → app-card-Dfh_HEHx.js} +1 -1
  12. package/dist/assets/{assistant-feature-flag-store-DMwcUyKp.js → assistant-feature-flag-store-DpUzSkiR.js} +1 -1
  13. package/dist/assets/{assistant-status-panel-CTl2hVWa.js → assistant-status-panel-BXVSfnLt.js} +1 -1
  14. package/dist/assets/{background-task-detail-panel-BLkCuuqP.js → background-task-detail-panel-CR4qamW1.js} +1 -1
  15. package/dist/assets/billing-page-U0C2zv37.js +3 -0
  16. package/dist/assets/{bookmarks-page-D7qaq_XD.js → bookmarks-page-Bqn40fvx.js} +1 -1
  17. package/dist/assets/{button-DWxxMNqc.js → button-BENY-yx_.js} +1 -1
  18. package/dist/assets/{channels-page-route-BQWWl9jc.js → channels-page-route-BLidZbxt.js} +1 -1
  19. package/dist/assets/{chat-markdown-message-q9EiJZ-_.js → chat-markdown-message-CDcAsRR5.js} +1 -1
  20. package/dist/assets/{checkbox-DD4D_SRI.js → checkbox-Db7LMLuS.js} +1 -1
  21. package/dist/assets/{checkout-page-Dv8kpsQ1.js → checkout-page-BoSIk5E1.js} +1 -1
  22. package/dist/assets/{command-palette-Dujhbxlx.js → command-palette-BjQmg4u3.js} +1 -1
  23. package/dist/assets/{command-palette-window-page-CvnkrDTU.js → command-palette-window-page-Bh5JBEN2.js} +1 -1
  24. package/dist/assets/{community-page-DOPJGC9b.js → community-page-6EMVUm39.js} +1 -1
  25. package/dist/assets/{composer-settings-CeEwFIMS.js → composer-settings-YiDzg97s.js} +1 -1
  26. package/dist/assets/{confirm-dialog-CsxDM9Vd.js → confirm-dialog-B3O_TlF_.js} +1 -1
  27. package/dist/assets/{connect-page-BObw-bw1.js → connect-page-yTCV6KgZ.js} +1 -1
  28. package/dist/assets/{consent-controls-Dz6kGoKx.js → consent-controls-Ca5P3pZJ.js} +1 -1
  29. package/dist/assets/{contacts-page-route-W4aZGfmH.js → contacts-page-route-DCxS57gp.js} +1 -1
  30. package/dist/assets/{conversation-navigation-Dx2rp6RI.js → conversation-navigation-CCQjCtda.js} +1 -1
  31. package/dist/assets/{copy-to-clipboard-Begy4gA7.js → copy-to-clipboard-BEBr95IB.js} +1 -1
  32. package/dist/assets/{credential-entry-page-BJwNylE4.js → credential-entry-page-FuE6-zNw.js} +1 -1
  33. package/dist/assets/{credentials-page-CT5cIMB2.js → credentials-page-DzV9oaKW.js} +1 -1
  34. package/dist/assets/{csv-preview-Cb3O6FJ3.js → csv-preview-7mqc3Fpi.js} +1 -1
  35. package/dist/assets/{debug-page-C7Cds2UU.js → debug-page-Ci4UEatb.js} +1 -1
  36. package/dist/assets/{deploy-dialogs-CdgMLVKR.js → deploy-dialogs-DHZF_N1t.js} +1 -1
  37. package/dist/assets/{deploy-store-DOEwnSYF.js → deploy-store-Cn2kzFjI.js} +1 -1
  38. package/dist/assets/{detail-card-Jp-4dqnZ.js → detail-card-CddOBuqz.js} +1 -1
  39. package/dist/assets/{detail-drawer-D_NmfOfo.js → detail-drawer-DDxwk7rX.js} +1 -1
  40. package/dist/assets/{detail-panel-stop-button-D0pZKzCv.js → detail-panel-stop-button-DVMJaE8I.js} +1 -1
  41. package/dist/assets/{detail-shell-Cfhmm8Ht.js → detail-shell-ModH5YJB.js} +1 -1
  42. package/dist/assets/{developer-page-GW3mktbO.js → developer-page-ODCd-KTH.js} +1 -1
  43. package/dist/assets/{dist-BkfLmB8d.js → dist-C5A0vk0Y.js} +1 -1
  44. package/dist/assets/{dist-w7Nx6B2c.js → dist-D558h4HQ.js} +1 -1
  45. package/dist/assets/{document-viewer-container-B3H5r6Vx.js → document-viewer-container-BKy-UjK2.js} +2 -2
  46. package/dist/assets/{document-viewer-page-CLQRc7sD.js → document-viewer-page-Deio6_Sn.js} +1 -1
  47. package/dist/assets/{dropdown-CLoJyNei.js → dropdown-B4S4UoV4.js} +1 -1
  48. package/dist/assets/{emails-page-DqKu_T7Y.js → emails-page-MceQy_js.js} +1 -1
  49. package/dist/assets/{file-editor-DsgRiCQJ.js → file-editor-BmO5Abo9.js} +1 -1
  50. package/dist/assets/{file-markdown-TUJclkdj.js → file-markdown-SAIiFFlQ.js} +1 -1
  51. package/dist/assets/{first-run-scope-27sIklVp.js → first-run-scope-BpHkv5-k.js} +1 -1
  52. package/dist/assets/general-page-Cj1cwZrY.js +1 -0
  53. package/dist/assets/{hatching-screen-B9XiMlHP.js → hatching-screen-mLb6zwUy.js} +1 -1
  54. package/dist/assets/{home-page-route-Z76P14u5.js → home-page-route-BzjXAfGY.js} +1 -1
  55. package/dist/assets/{hosting-screen-D9qV_kyH.js → hosting-screen-CcFpirzp.js} +1 -1
  56. package/dist/assets/{identity-page-route-Cv2R2IIW.js → identity-page-route-BkgW24iD.js} +1 -1
  57. package/dist/assets/{index-FqVI4DfK.js → index-BwrfHr6b.js} +1 -1
  58. package/dist/assets/index-DHvgc0dr.css +2 -0
  59. package/dist/assets/{input-DF52UqKH.js → input-Dp4TsVxE.js} +1 -1
  60. package/dist/assets/{inspect-page-BviNomaN.js → inspect-page-Bpv_B-BI.js} +2 -2
  61. package/dist/assets/{integrations-page-DirSQhsw.js → integrations-page-fZELA6j3.js} +1 -1
  62. package/dist/assets/{intelligence-layout-B10KqBdh.js → intelligence-layout-Wt4lNkM0.js} +1 -1
  63. package/dist/assets/{library-detail-page-Q3ApG0z5.js → library-detail-page-tnnbqYjm.js} +1 -1
  64. package/dist/assets/{library-page-D6XzjUP7.js → library-page-Ca1NMwvb.js} +1 -1
  65. package/dist/assets/{login-page-CP8EJsv3.js → login-page-ftZku03X.js} +1 -1
  66. package/dist/assets/{logout-page-CBgJtaav.js → logout-page-CWaACcpx.js} +1 -1
  67. package/dist/assets/{logs-layout-CHYfCjUz.js → logs-layout-BEMvgQpO.js} +1 -1
  68. package/dist/assets/{memory-page-route-zwURgC59.js → memory-page-route-6c1wHAHe.js} +1 -1
  69. package/dist/assets/{memory-router-playground-page-pFso8lZV.js → memory-router-playground-page-BlHH40vr.js} +1 -1
  70. package/dist/assets/{menu-iiIGEKWu.js → menu-DtLdBgbH.js} +1 -1
  71. package/dist/assets/{message-files-panel-CGrvPO9_.js → message-files-panel-BGrufPKW.js} +1 -1
  72. package/dist/assets/{messages-uYZL3Dtk.js → messages-ksocJX8k.js} +1 -1
  73. package/dist/assets/{metric-card-Cn3Pxp_y.js → metric-card-BCoLjski.js} +1 -1
  74. package/dist/assets/{mobile-sidebar-drawer-jYrw4v5e.js → mobile-sidebar-drawer-s6V18lAy.js} +1 -1
  75. package/dist/assets/{modal-UqO42jBg.js → modal-iaI7yGGi.js} +1 -1
  76. package/dist/assets/{not-found-CYt1k9SZ.js → not-found-DvATDBn3.js} +1 -1
  77. package/dist/assets/{notifications-page-PXgejsBy.js → notifications-page-BXgWsNWZ.js} +1 -1
  78. package/dist/assets/{onboarding-layout-BJGGWHC5.js → onboarding-layout-CERIZpQl.js} +1 -1
  79. package/dist/assets/{open-workspace-file-D8rE1CnA.js → open-workspace-file-BJD5hqAy.js} +2 -2
  80. package/dist/assets/{page-shell-BitkSRw8.js → page-shell-Bp3863gv.js} +1 -1
  81. package/dist/assets/{pairing-page-WvfRRteU.js → pairing-page-6hmn5AYC.js} +1 -1
  82. package/dist/assets/{personality-page-Bs9_M3Mw.js → personality-page-C0CReo9V.js} +1 -1
  83. package/dist/assets/{plans-page-BbDEuoEH.js → plans-page-Ck20BasF.js} +1 -1
  84. package/dist/assets/{platform-login-notice-CnS7UCuc.js → platform-login-notice-Yp_hMgyp.js} +1 -1
  85. package/dist/assets/{popover-BdpFLBqi.js → popover-BJQsCNak.js} +1 -1
  86. package/dist/assets/{preview-error-Cd4DNvvi.js → preview-error-JrRFM4jL.js} +1 -1
  87. package/dist/assets/{privacy-page-Qv271qK6.js → privacy-page-zFSqTAHT.js} +1 -1
  88. package/dist/assets/{privacy-screen-CqlYNKjx.js → privacy-screen-CqzLuKiV.js} +1 -1
  89. package/dist/assets/{provider-callback-page-cpmj9qRW.js → provider-callback-page-BBPnh2gJ.js} +1 -1
  90. package/dist/assets/{provider-signup-page-BCfj1ZR0.js → provider-signup-page-DZ823j_9.js} +1 -1
  91. package/dist/assets/{remove-from-device-dialog-Dgm4Gp6I.js → remove-from-device-dialog-DBILBvV0.js} +1 -1
  92. package/dist/assets/{research-mock-page-DNEplUId.js → research-mock-page-EmkK1ds5.js} +1 -1
  93. package/dist/assets/{research-onboarding-route-DwMeURE4.js → research-onboarding-route-Cj6dkY7p.js} +1 -1
  94. package/dist/assets/{research-results-view-C9to0vk2.js → research-results-view-BKwsYc2G.js} +1 -1
  95. package/dist/assets/{retire-confirm-dialog-D_w_njJ4.js → retire-confirm-dialog-DfJA3gNk.js} +1 -1
  96. package/dist/assets/{review-terms-screen-kvy501SG.js → review-terms-screen-Bo4aycGM.js} +1 -1
  97. package/dist/assets/routes-CkPPtI23.js +23 -0
  98. package/dist/assets/{runtime-upgrade-banner-Tcco4Neq.js → runtime-upgrade-banner-BRvb-9hm.js} +1 -1
  99. package/dist/assets/{schedules-page-C0yH6xI8.js → schedules-page--QWExzTU.js} +1 -1
  100. package/dist/assets/{select-assistant-screen-CPyEK-qp.js → select-assistant-screen-CvvpOL2u.js} +1 -1
  101. package/dist/assets/{settings-divider-DsaVT3cG.js → settings-divider-Dt-OMhiv.js} +1 -1
  102. package/dist/assets/{settings-layout-D2HTMjN4.js → settings-layout-DEgmXMTX.js} +1 -1
  103. package/dist/assets/{share-feedback-modal-BnML5AR-.js → share-feedback-modal-C_ZkzHm2.js} +1 -1
  104. package/dist/assets/{sidebar-tree-BR0Hd3dl.js → sidebar-tree-BsBhkWkJ.js} +1 -1
  105. package/dist/assets/{site-favicon-BF7RhCjo.js → site-favicon-BSqLa8lz.js} +1 -1
  106. package/dist/assets/{skill-detail-page-CspWn4yF.js → skill-detail-page-D-SP7YB2.js} +1 -1
  107. package/dist/assets/{skill-detail-panel-BBhllDWt.js → skill-detail-panel-B_2mjYWv.js} +1 -1
  108. package/dist/assets/{skills-BNvHTcYo.js → skills-nff5m6-i.js} +1 -1
  109. package/dist/assets/slack-setup-wizard-CMOfreor.js +1 -0
  110. package/dist/assets/{src-CqJTlX1y.js → src-4DTZIbDU.js} +1 -1
  111. package/dist/assets/{start-screen-AdKeyO59.js → start-screen-CdccEBwy.js} +1 -1
  112. package/dist/assets/{stt-language-picker-modal-T-ZalqAn.js → stt-language-picker-modal-DXB-fVhv.js} +1 -1
  113. package/dist/assets/{subagent-detail-panel-BCX8RwTN.js → subagent-detail-panel-uVCPjZ9a.js} +1 -1
  114. package/dist/assets/{superpowers-page-DKFMIf5b.js → superpowers-page-CRoCYmf-.js} +1 -1
  115. package/dist/assets/{system-events-page-l7x5X0Yu.js → system-events-page-Bllpsp0u.js} +1 -1
  116. package/dist/assets/{tag-D1UeSlPe.js → tag-D4GIIzZF.js} +1 -1
  117. package/dist/assets/{text-preview-BmuS3Jnw.js → text-preview-B1W0_cdn.js} +1 -1
  118. package/dist/assets/{theme-stage-page-CpsFSfFV.js → theme-stage-page-CRk2Sgds.js} +1 -1
  119. package/dist/assets/{tiptap-document-editor-BV7KYOAB.js → tiptap-document-editor-CbjVigqn.js} +1 -1
  120. package/dist/assets/{toast-DFRsyumK.js → toast-DmMsYUgG.js} +1 -1
  121. package/dist/assets/{tool-detail-panel-3ThRZsOn.js → tool-detail-panel-D4rwCLuH.js} +1 -1
  122. package/dist/assets/{transcript-message-body-shared-D-vBwqt1.js → transcript-message-body-shared-JlRHXQ1q.js} +1 -1
  123. package/dist/assets/{upgrade-cancel-page-BKnaoHt8.js → upgrade-cancel-page-k1leC3hj.js} +1 -1
  124. package/dist/assets/{upgrade-success-page-CQEBq-Cj.js → upgrade-success-page-C3br3mG9.js} +1 -1
  125. package/dist/assets/{use-assistant-identity-details-BlU97ZXp.js → use-assistant-identity-details--OUcPeMf.js} +1 -1
  126. package/dist/assets/{use-attachment-preview-Dq9hH8pJ.js → use-attachment-preview-BysA1ZwF.js} +1 -1
  127. package/dist/assets/{use-attachment-squares-CgL9p1Jg.js → use-attachment-squares-7NCLpWYL.js} +1 -1
  128. package/dist/assets/{use-bookmarks-BeoahPuU.js → use-bookmarks-D6oT8l4M.js} +1 -1
  129. package/dist/assets/{use-checkout-dismiss-refresh-Cw3tNdg_.js → use-checkout-dismiss-refresh-BGLPMzPo.js} +1 -1
  130. package/dist/assets/use-copy-to-clipboard-DMV3vpqo.js +1 -0
  131. package/dist/assets/{use-edit-app-DYO2Wj8I.js → use-edit-app-DT0bQNzA.js} +1 -1
  132. package/dist/assets/{use-invite-link-dialog-Cyqt_KCw.js → use-invite-link-dialog-5_6O-4p8.js} +1 -1
  133. package/dist/assets/{use-skill-actions-BJSFEj-2.js → use-skill-actions-CcRCA1k1.js} +1 -1
  134. package/dist/assets/use-sticky-profiles-B3YmizgK.js +1 -0
  135. package/dist/assets/{use-subagent-card-data-p2AqQR9G.js → use-subagent-card-data-2GHHTAqT.js} +1 -1
  136. package/dist/assets/use-transcript-message-by-id-B6khVa3g.js +1 -0
  137. package/dist/assets/{use-transcript-messages-DBl0eSRI.js → use-transcript-messages-CWN4h1Kp.js} +1 -1
  138. package/dist/assets/{use-voice-sample-preview-BgpTqAoH.js → use-voice-sample-preview-CFI53zHg.js} +1 -1
  139. package/dist/assets/{utils-B2hm7pwO.js → utils-DxLFleDu.js} +1 -1
  140. package/dist/assets/{viewer-store-CW1-onra.js → viewer-store-wvja43Ie.js} +1 -1
  141. package/dist/assets/{voice-list-CKhlrkpi.js → voice-list-DK2YArAa.js} +1 -1
  142. package/dist/assets/{voice-page-BUa7Gm9H.js → voice-page-XqL5BHpr.js} +1 -1
  143. package/dist/assets/{voice-providers-note-BEaZIrv_.js → voice-providers-note-Bg251cVL.js} +1 -1
  144. package/dist/assets/{welcome-screen-DdJD6UnV.js → welcome-screen-BEcYlB0z.js} +1 -1
  145. package/dist/assets/{workflow-detail-panel-B2y2HOes.js → workflow-detail-panel-TI-TS9jq.js} +1 -1
  146. package/dist/assets/{workspace-page-CmS6pmDu.js → workspace-page-BUc54pAK.js} +1 -1
  147. package/dist/index.html +55 -55
  148. package/package.json +1 -1
  149. package/dist/assets/ai-page-D3eTI0_j.js +0 -1
  150. package/dist/assets/billing-page-i8XlD_BR.js +0 -3
  151. package/dist/assets/general-page-D7vTNGrC.js +0 -1
  152. package/dist/assets/index-Bdo9Ye4m.css +0 -2
  153. package/dist/assets/routes-5fRGIbTr.js +0 -23
  154. package/dist/assets/slack-setup-wizard-Dt8mhYhN.js +0 -1
  155. package/dist/assets/use-copy-to-clipboard-Da76__Tl.js +0 -1
  156. package/dist/assets/use-sticky-profiles-WU_pX2XX.js +0 -1
  157. package/dist/assets/use-transcript-message-by-id-CmTgBWNG.js +0 -1
@@ -1,4 +1,4 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{I as n,L as r,V as i}from"./button-DWxxMNqc.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";var o=e(t(),1),s=0,c=null;function l(){o.useEffect(()=>{c||={start:u(),end:u()};let{start:e,end:t}=c;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),s++,()=>{s===1&&(c?.start.remove(),c?.end.remove(),c=null),s=Math.max(0,s-1)}},[])}function u(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var d=a(),f=`focusScope.autoFocusOnMount`,p=`focusScope.autoFocusOnUnmount`,m={bubbles:!1,cancelable:!0},h=`FocusScope`,g=o.forwardRef((e,t)=>{let{loop:a=!1,trapped:s=!1,onMountAutoFocus:c,onUnmountAutoFocus:l,...u}=e,[h,g]=o.useState(null),b=n(c),x=n(l),S=o.useRef(null),T=i(t,g),E=o.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;o.useEffect(()=>{if(s){let e=function(e){if(E.paused||!h)return;let t=e.target;h.contains(t)?S.current=t:C(S.current,{select:!0})},t=function(e){if(E.paused||!h)return;let t=e.relatedTarget;t!==null&&(h.contains(t)||C(S.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&C(h)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return h&&r.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[s,h,E.paused]),o.useEffect(()=>{if(h){w.add(E);let e=document.activeElement;if(!h.contains(e)){let t=new CustomEvent(f,m);h.addEventListener(f,b),h.dispatchEvent(t),t.defaultPrevented||(_(ee(y(h)),{select:!0}),document.activeElement===e&&C(h))}return()=>{h.removeEventListener(f,b),setTimeout(()=>{let t=new CustomEvent(p,m);h.addEventListener(p,x),h.dispatchEvent(t),t.defaultPrevented||C(e??document.body,{select:!0}),h.removeEventListener(p,x),w.remove(E)},0)}}},[h,b,x,E]);let D=o.useCallback(e=>{if(!a&&!s||E.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){let t=e.currentTarget,[r,i]=v(t);r&&i?!e.shiftKey&&n===i?(e.preventDefault(),a&&C(r,{select:!0})):e.shiftKey&&n===r&&(e.preventDefault(),a&&C(i,{select:!0})):n===t&&e.preventDefault()}},[a,s,E.paused]);return(0,d.jsx)(r.div,{tabIndex:-1,...u,ref:T,onKeyDown:D})});g.displayName=h;function _(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(C(r,{select:t}),document.activeElement!==n)return}function v(e){let t=y(e);return[b(t,e),b(t.reverse(),e)]}function y(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function b(e,t){for(let n of e)if(!x(n,{upTo:t}))return n}function x(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function S(e){return e instanceof HTMLInputElement&&`select`in e}function C(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&S(e)&&t&&e.select()}}var w=T();function T(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=E(e,t),e.unshift(t)},remove(t){e=E(e,t),e[0]?.resume()}}}function E(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function ee(e){return e.filter(e=>e.tagName!==`A`)}var D=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},O=new WeakMap,k=new WeakMap,A={},j=0,M=function(e){return e&&(e.host||M(e.parentNode))},te=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=M(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},ne=function(e,t,n,r){var i=te(t,Array.isArray(e)?e:[e]);A[n]||(A[n]=new WeakMap);var a=A[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(O.get(e)||0)+1,l=(a.get(e)||0)+1;O.set(e,c),a.set(e,l),o.push(e),c===1&&i&&k.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),j++,function(){o.forEach(function(e){var t=O.get(e)-1,i=a.get(e)-1;O.set(e,t),a.set(e,i),t||(k.has(e)||e.removeAttribute(r),k.delete(e)),i||e.removeAttribute(n)}),j--,j||(O=new WeakMap,O=new WeakMap,k=new WeakMap,A={})}},re=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||D(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),ne(r,i,n,`aria-hidden`)):function(){return null}},N=function(){return N=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},N.apply(this,arguments)};function P(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function ie(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var F=`right-scroll-bar-position`,I=`width-before-scroll-bar`,ae=`with-scroll-bars-hidden`,oe=`--removed-body-scroll-bar-size`;function L(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function se(e,t){var n=(0,o.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var ce=typeof window<`u`?o.useLayoutEffect:o.useEffect,R=new WeakMap;function le(e,t){var n=se(t||null,function(t){return e.forEach(function(e){return L(e,t)})});return ce(function(){var t=R.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||L(e,null)}),i.forEach(function(e){r.has(e)||L(e,a)})}R.set(n,e)},[e]),n}function ue(e){return e}function de(e,t){t===void 0&&(t=ue);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function fe(e){e===void 0&&(e={});var t=de(null);return t.options=N({async:!0,ssr:!1},e),t}var z=function(e){var t=e.sideCar,n=P(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return o.createElement(r,N({},n))};z.isSideCarExport=!0;function pe(e,t){return e.useMedium(t),z}var B=fe(),V=function(){},H=o.forwardRef(function(e,t){var n=o.useRef(null),r=o.useState({onScrollCapture:V,onWheelCapture:V,onTouchMoveCapture:V}),i=r[0],a=r[1],s=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,p=e.sideCar,m=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=P(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=p,C=le([n,t]),w=N(N({},x),i);return o.createElement(o.Fragment,null,d&&o.createElement(S,{sideCar:B,removeScrollBar:u,shards:f,noRelative:m,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),s?o.cloneElement(o.Children.only(c),N(N({},w),{ref:C})):o.createElement(y,N({},w,{className:l,ref:C}),c))});H.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},H.classNames={fullWidth:I,zeroRight:F};var U,me=function(){if(U)return U;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function he(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=me();return t&&e.setAttribute(`nonce`,t),e}function ge(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function _e(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var ve=function(){var e=0,t=null;return{add:function(n){e==0&&(t=he())&&(ge(t,n),_e(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ye=function(){var e=ve();return function(t,n){o.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},W=function(){var e=ye();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},be={left:0,top:0,right:0,gap:0},G=function(e){return parseInt(e||``,10)||0},xe=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[G(n),G(r),G(i)]},Se=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return be;var t=xe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Ce=W(),K=`data-scroll-locked`,we=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{I as n,L as r,V as i}from"./button-BENY-yx_.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";var o=e(t(),1),s=0,c=null;function l(){o.useEffect(()=>{c||={start:u(),end:u()};let{start:e,end:t}=c;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),s++,()=>{s===1&&(c?.start.remove(),c?.end.remove(),c=null),s=Math.max(0,s-1)}},[])}function u(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var d=a(),f=`focusScope.autoFocusOnMount`,p=`focusScope.autoFocusOnUnmount`,m={bubbles:!1,cancelable:!0},h=`FocusScope`,g=o.forwardRef((e,t)=>{let{loop:a=!1,trapped:s=!1,onMountAutoFocus:c,onUnmountAutoFocus:l,...u}=e,[h,g]=o.useState(null),b=n(c),x=n(l),S=o.useRef(null),T=i(t,g),E=o.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;o.useEffect(()=>{if(s){let e=function(e){if(E.paused||!h)return;let t=e.target;h.contains(t)?S.current=t:C(S.current,{select:!0})},t=function(e){if(E.paused||!h)return;let t=e.relatedTarget;t!==null&&(h.contains(t)||C(S.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&C(h)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return h&&r.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[s,h,E.paused]),o.useEffect(()=>{if(h){w.add(E);let e=document.activeElement;if(!h.contains(e)){let t=new CustomEvent(f,m);h.addEventListener(f,b),h.dispatchEvent(t),t.defaultPrevented||(_(ee(y(h)),{select:!0}),document.activeElement===e&&C(h))}return()=>{h.removeEventListener(f,b),setTimeout(()=>{let t=new CustomEvent(p,m);h.addEventListener(p,x),h.dispatchEvent(t),t.defaultPrevented||C(e??document.body,{select:!0}),h.removeEventListener(p,x),w.remove(E)},0)}}},[h,b,x,E]);let D=o.useCallback(e=>{if(!a&&!s||E.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){let t=e.currentTarget,[r,i]=v(t);r&&i?!e.shiftKey&&n===i?(e.preventDefault(),a&&C(r,{select:!0})):e.shiftKey&&n===r&&(e.preventDefault(),a&&C(i,{select:!0})):n===t&&e.preventDefault()}},[a,s,E.paused]);return(0,d.jsx)(r.div,{tabIndex:-1,...u,ref:T,onKeyDown:D})});g.displayName=h;function _(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(C(r,{select:t}),document.activeElement!==n)return}function v(e){let t=y(e);return[b(t,e),b(t.reverse(),e)]}function y(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function b(e,t){for(let n of e)if(!x(n,{upTo:t}))return n}function x(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function S(e){return e instanceof HTMLInputElement&&`select`in e}function C(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&S(e)&&t&&e.select()}}var w=T();function T(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=E(e,t),e.unshift(t)},remove(t){e=E(e,t),e[0]?.resume()}}}function E(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function ee(e){return e.filter(e=>e.tagName!==`A`)}var D=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},O=new WeakMap,k=new WeakMap,A={},j=0,M=function(e){return e&&(e.host||M(e.parentNode))},te=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=M(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},ne=function(e,t,n,r){var i=te(t,Array.isArray(e)?e:[e]);A[n]||(A[n]=new WeakMap);var a=A[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(O.get(e)||0)+1,l=(a.get(e)||0)+1;O.set(e,c),a.set(e,l),o.push(e),c===1&&i&&k.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),j++,function(){o.forEach(function(e){var t=O.get(e)-1,i=a.get(e)-1;O.set(e,t),a.set(e,i),t||(k.has(e)||e.removeAttribute(r),k.delete(e)),i||e.removeAttribute(n)}),j--,j||(O=new WeakMap,O=new WeakMap,k=new WeakMap,A={})}},re=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||D(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),ne(r,i,n,`aria-hidden`)):function(){return null}},N=function(){return N=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},N.apply(this,arguments)};function P(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function ie(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var F=`right-scroll-bar-position`,I=`width-before-scroll-bar`,ae=`with-scroll-bars-hidden`,oe=`--removed-body-scroll-bar-size`;function L(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function se(e,t){var n=(0,o.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var ce=typeof window<`u`?o.useLayoutEffect:o.useEffect,R=new WeakMap;function le(e,t){var n=se(t||null,function(t){return e.forEach(function(e){return L(e,t)})});return ce(function(){var t=R.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||L(e,null)}),i.forEach(function(e){r.has(e)||L(e,a)})}R.set(n,e)},[e]),n}function ue(e){return e}function de(e,t){t===void 0&&(t=ue);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function fe(e){e===void 0&&(e={});var t=de(null);return t.options=N({async:!0,ssr:!1},e),t}var z=function(e){var t=e.sideCar,n=P(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return o.createElement(r,N({},n))};z.isSideCarExport=!0;function pe(e,t){return e.useMedium(t),z}var B=fe(),V=function(){},H=o.forwardRef(function(e,t){var n=o.useRef(null),r=o.useState({onScrollCapture:V,onWheelCapture:V,onTouchMoveCapture:V}),i=r[0],a=r[1],s=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,p=e.sideCar,m=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=P(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=p,C=le([n,t]),w=N(N({},x),i);return o.createElement(o.Fragment,null,d&&o.createElement(S,{sideCar:B,removeScrollBar:u,shards:f,noRelative:m,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),s?o.cloneElement(o.Children.only(c),N(N({},w),{ref:C})):o.createElement(y,N({},w,{className:l,ref:C}),c))});H.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},H.classNames={fullWidth:I,zeroRight:F};var U,me=function(){if(U)return U;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function he(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=me();return t&&e.setAttribute(`nonce`,t),e}function ge(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function _e(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var ve=function(){var e=0,t=null;return{add:function(n){e==0&&(t=he())&&(ge(t,n),_e(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ye=function(){var e=ve();return function(t,n){o.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},W=function(){var e=ye();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},be={left:0,top:0,right:0,gap:0},G=function(e){return parseInt(e||``,10)||0},xe=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[G(n),G(r),G(i)]},Se=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return be;var t=xe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Ce=W(),K=`data-scroll-locked`,we=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
2
2
  .${ae} {
3
3
  overflow: hidden ${r};
4
4
  padding-right: ${s}px ${r};
@@ -1 +1 @@
1
- import{n as e}from"./auth-store-DdDbthYF.js";import{t}from"./assistant-feature-flag-store-DMwcUyKp.js";function n(e,t){return t||e?.isStaff===!0||e?.email?.toLowerCase().endsWith(`@vellum.ai`)===!0}function r(){return n(e.use.user(),t.use.settingsDeveloperNav()===!0)}export{r as t};
1
+ import{n as e}from"./auth-store-DdDbthYF.js";import{t}from"./assistant-feature-flag-store-DpUzSkiR.js";function n(e,t){return t||e?.isStaff===!0||e?.email?.toLowerCase().endsWith(`@vellum.ai`)===!0}function r(){return n(e.use.user(),t.use.settingsDeveloperNav()===!0)}export{r as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{a as i,n as a,s as o}from"./auth-store-DdDbthYF.js";import{E as s}from"./platform-detection-DYmzJ4FF.js";import{d as c}from"./routes-DOlsNBq5.js";import{t as l}from"./hard-navigate-DqAmkZZE.js";import{n as u,t as d}from"./login-flow-DeZ70QTo.js";import{r as f,t as p}from"./account-shell-BAxD1c33.js";var m=e(t(),1),h=r();function g(){let e=i(),t=o(),r=a.use.user(),g=a.use.logout(),[_,v]=(0,m.useState)(null),[y,b]=(0,m.useState)(!1),x=async()=>{v(null),b(!0);try{await s(u,d)}catch(e){console.error(`[account] auth flow failed:`,e),v(`Something went wrong. Please try again.`),b(!1)}};return t?(0,h.jsx)(p,{children:(0,h.jsx)(f,{title:`Loading...`})}):e?(0,h.jsxs)(p,{children:[(0,h.jsx)(f,{title:`Welcome${r?.username?`, ${r.username}`:``}!`,subtitle:`You are signed in.`}),(0,h.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,h.jsx)(n,{to:c.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:`Go to your assistant`}),(0,h.jsx)(`button`,{type:`button`,onClick:async()=>{await g(),l(c.account.login)},className:`cursor-pointer bg-transparent text-sm font-normal text-[var(--content-secondary)] transition-colors hover:text-[var(--content-default)]`,children:`Sign out`})]})]}):(0,h.jsxs)(p,{children:[(0,h.jsx)(f,{title:`Welcome to Vellum`,subtitle:`Sign in to get started.`}),_&&(0,h.jsx)(`p`,{className:`text-center text-sm text-[var(--system-negative-strong)]`,children:_}),(0,h.jsx)(`div`,{className:`flex flex-col items-center gap-4`,children:(0,h.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:y,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:`Sign in`})})]})}export{g as AccountPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{a as i,n as a,s as o}from"./auth-store-DdDbthYF.js";import{E as s}from"./platform-detection-DYmzJ4FF.js";import{d as c}from"./routes-DOlsNBq5.js";import{t as l}from"./hard-navigate-DqAmkZZE.js";import{n as u,t as d}from"./login-flow-DeZ70QTo.js";import{r as f,t as p}from"./account-shell-a78KDthk.js";var m=e(t(),1),h=r();function g(){let e=i(),t=o(),r=a.use.user(),g=a.use.logout(),[_,v]=(0,m.useState)(null),[y,b]=(0,m.useState)(!1),x=async()=>{v(null),b(!0);try{await s(u,d)}catch(e){console.error(`[account] auth flow failed:`,e),v(`Something went wrong. Please try again.`),b(!1)}};return t?(0,h.jsx)(p,{children:(0,h.jsx)(f,{title:`Loading...`})}):e?(0,h.jsxs)(p,{children:[(0,h.jsx)(f,{title:`Welcome${r?.username?`, ${r.username}`:``}!`,subtitle:`You are signed in.`}),(0,h.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,h.jsx)(n,{to:c.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:`Go to your assistant`}),(0,h.jsx)(`button`,{type:`button`,onClick:async()=>{await g(),l(c.account.login)},className:`cursor-pointer bg-transparent text-sm font-normal text-[var(--content-secondary)] transition-colors hover:text-[var(--content-default)]`,children:`Sign out`})]})]}):(0,h.jsxs)(p,{children:[(0,h.jsx)(f,{title:`Welcome to Vellum`,subtitle:`Sign in to get started.`}),_&&(0,h.jsx)(`p`,{className:`text-center text-sm text-[var(--system-negative-strong)]`,children:_}),(0,h.jsx)(`div`,{className:`flex flex-col items-center gap-4`,children:(0,h.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:y,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:`Sign in`})})]})}export{g as AccountPage};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import"./src-CqJTlX1y.js";import{t}from"./notice-DrCduoXJ.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
+ import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import"./src-4DTZIbDU.js";import{t}from"./notice-DrCduoXJ.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-D12Gu3Tx.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DWxxMNqc.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-BeUa5Fd-.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import{a as s,i as c,n as l,o as u,r as d,t as f}from"./acp-run-actions--5dlWIAm.js";import{t as p}from"./arrow-left-BikDV6F2.js";import{t as m}from"./brain-DPCFa4t_.js";import{t as h}from"./chevron-down-BcYoJcfl.js";import{t as g}from"./chevron-right-BcPFsjC2.js";import{t as _}from"./circle-check-CoU8jUcF.js";import{t as v}from"./circle-minus-DgnvL2Xt.js";import{w as y}from"./menu-iiIGEKWu.js";import{t as b}from"./code-DoyWcW4T.js";import"./src-CqJTlX1y.js";import{t as x}from"./file-text-BWjfiPpo.js";import{t as S}from"./globe-DN9GN4I5.js";import{t as C}from"./chat-markdown-message-q9EiJZ-_.js";import{t as ee}from"./repeat-DGT4k1Gr.js";import{t as te}from"./search-DZBQ2Z4C.js";import{t as ne}from"./send-JCA1n029.js";import{t as w}from"./square-B1X3dVpi.js";import{t as T}from"./terminal-CS0VBw1f.js";import{t as re}from"./trash-2-CCIeETW1.js";import{t as ie}from"./triangle-alert-CuEUegtS.js";import{t as ae}from"./x-CAGZWET-.js";import{t as oe}from"./tag-D1UeSlPe.js";import{a as E,i as se,n as D,r as O}from"./acp-run-store-f3ZZ5vfh.js";import{t as k}from"./three-dot-indicator-uhGzoECR.js";import{t as ce}from"./status-badge-pill-D7j-0FLr.js";var le=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`}]]),A=e(n(),1),j=``;function M(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 ue(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function N(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(D.length):t}function P(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function F(e,t){if(t.updateType===`agent_message_chunk`&&ue(t)){P(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:N(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??j,r=N(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(P(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??j,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!==j&&r&&r.kind===`agent`&&r.messageId===j&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}P(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??j,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}P(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;P(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:M(t.toolStatus,`running`),content:t.content,locations:I(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=I(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:M(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=de(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(P(e),e.push(i)):e[r]=i;return}}}function I(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 de(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 fe(e){let t=[];for(let n of e)F(t,n);return t}function pe(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 me(){let e=null,t=[];function n(n){return t=fe(n),e=n,t}function r(r){let i=pe(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++)F(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function L(e){let t=(0,A.useRef)(null);return t.current??=me(),t.current.project(e)}function R(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=z(e);t&&r.push(t)}return r}function z(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:he(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=ge(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function he(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function ge(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function B(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function V(e){return R(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-D12Gu3Tx.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-BeUa5Fd-.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import{a as s,i as c,n as l,o as u,r as d,t as f}from"./acp-run-actions--5dlWIAm.js";import{t as p}from"./arrow-left-BikDV6F2.js";import{t as m}from"./brain-DPCFa4t_.js";import{t as h}from"./chevron-down-BcYoJcfl.js";import{t as g}from"./chevron-right-BcPFsjC2.js";import{t as _}from"./circle-check-CoU8jUcF.js";import{t as v}from"./circle-minus-DgnvL2Xt.js";import{w as y}from"./menu-DtLdBgbH.js";import{t as b}from"./code-DoyWcW4T.js";import"./src-4DTZIbDU.js";import{t as x}from"./file-text-BWjfiPpo.js";import{t as S}from"./globe-DN9GN4I5.js";import{t as C}from"./chat-markdown-message-CDcAsRR5.js";import{t as ee}from"./repeat-DGT4k1Gr.js";import{t as te}from"./search-DZBQ2Z4C.js";import{t as ne}from"./send-JCA1n029.js";import{t as w}from"./square-B1X3dVpi.js";import{t as T}from"./terminal-CS0VBw1f.js";import{t as re}from"./trash-2-CCIeETW1.js";import{t as ie}from"./triangle-alert-CuEUegtS.js";import{t as ae}from"./x-CAGZWET-.js";import{t as oe}from"./tag-D4GIIzZF.js";import{a as E,i as se,n as D,r as O}from"./acp-run-store-f3ZZ5vfh.js";import{t as k}from"./three-dot-indicator-uhGzoECR.js";import{t as ce}from"./status-badge-pill-D7j-0FLr.js";var le=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`}]]),A=e(n(),1),j=``;function M(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 ue(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function N(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(D.length):t}function P(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function F(e,t){if(t.updateType===`agent_message_chunk`&&ue(t)){P(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:N(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??j,r=N(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(P(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??j,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!==j&&r&&r.kind===`agent`&&r.messageId===j&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}P(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??j,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}P(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;P(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:M(t.toolStatus,`running`),content:t.content,locations:I(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=I(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:M(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=de(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(P(e),e.push(i)):e[r]=i;return}}}function I(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 de(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 fe(e){let t=[];for(let n of e)F(t,n);return t}function pe(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 me(){let e=null,t=[];function n(n){return t=fe(n),e=n,t}function r(r){let i=pe(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++)F(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function L(e){let t=(0,A.useRef)(null);return t.current??=me(),t.current.project(e)}function R(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=z(e);t&&r.push(t)}return r}function z(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:he(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=ge(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function he(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function ge(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function B(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function V(e){return R(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
2
2
  `)}function H(e){if(e!=null){if(typeof e==`string`)return e;if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}}function U(e,t){let n=new Map;for(let t of e)t.type===`diff`&&n.set(t.path,{path:t.path,newText:t.newText,...t.oldText===void 0?{}:{oldText:t.oldText}});for(let e of t??[])n.has(e.path)||n.set(e.path,{path:e.path});return Array.from(n.values())}var W=i();function _e({content:e,isComplete:t,assistantId:n}){return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-agent-message`,className:`flex w-full flex-col items-start text-chat text-[var(--content-default)]`,children:[(0,W.jsx)(C,{content:e,assistantId:n}),!t&&(0,W.jsx)(k,{className:`mt-1`,"data-testid":`acp-chat-agent-streaming`})]})}function ve({entries:e}){return e.length===0?null:(0,W.jsxs)(`div`,{"data-testid":`acp-chat-plan-block`,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[(0,W.jsx)(c,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`text-inherit`,children:`Plan`})]}),(0,W.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>(0,W.jsxs)(`li`,{"data-testid":`acp-chat-plan-entry`,"data-checked":e.checked,className:`flex items-start gap-2`,children:[e.checked?(0,W.jsx)(_,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,W.jsx)(y,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`}),(0,W.jsx)(`span`,{className:e.checked?`text-body-small-default text-[var(--content-tertiary)] line-through`:`text-body-small-default text-[var(--content-default)]`,children:e.label})]},t))})]})}function ye(e){switch(e){case`max_tokens`:case`max_turn_requests`:return`Stopped: limit reached`;case`refusal`:return`Refused`;case`cancelled`:return`Cancelled`;default:return`Completed`}}function be(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function G({completedAt:e}){return e===void 0?null:(0,W.jsxs)(`span`,{"data-testid":`acp-chat-terminal-time`,children:[`at `,be(e)]})}function xe({status:e,stopReason:t,error:n,completedAt:r}){if(E(e))return null;if(e===`failed`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`failed`,className:`flex items-start gap-2 rounded-lg bg-[var(--system-negative-weak)] px-3 py-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-terminal-failed-icon`,className:`flex h-[12px] w-4 shrink-0 items-center justify-center`,children:(0,W.jsx)(ie,{className:`h-4 w-4`})}),(0,W.jsx)(`span`,{children:n??`Run failed`})]});if(e===`cancelled`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`cancelled`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(v,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,W.jsx)(`span`,{children:`Cancelled`}),(0,W.jsx)(G,{completedAt:r})]});let i=ye(t);return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`completed`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(_,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,W.jsx)(`span`,{children:i}),(0,W.jsx)(G,{completedAt:r})]})}function Se({showDot:e,isLast:t,children:n}){return(0,W.jsxs)(`div`,{className:`relative flex items-start gap-2${t?``:` pb-4`}`,children:[!t&&(0,W.jsx)(`div`,{"aria-hidden":!0,className:`absolute bottom-0 left-[6.5px] w-px bg-[var(--border-element)] ${e?`top-[16px]`:`top-0`}`}),e?(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-timeline-dot`,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,W.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}):(0,W.jsx)(`span`,{"aria-hidden":!0,className:`h-[14px] w-[14px] shrink-0`}),(0,W.jsx)(`div`,{className:`min-w-0 flex-1`,children:n})]})}function Ce({content:e,isComplete:t,assistantId:n}){let[r,i]=(0,A.useState)(null),a=r??!t,o=e.trim().length>0,s=t?`Thought process`:`Thinking`,c=t?(0,W.jsx)(m,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(k,{dotSize:5,className:`shrink-0`,"data-testid":`acp-chat-thinking-streaming`});return o?(0,W.jsxs)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:[(0,W.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,W.jsx)(h,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(g,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),c,(0,W.jsx)(`span`,{children:s})]}),a&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-body`,className:`mt-1.5 border-l-2 border-[var(--border-base)] pl-3 text-body-small-default text-[var(--content-tertiary)]`,children:(0,W.jsx)(C,{content:e,assistantId:n})})]}):(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:(0,W.jsxs)(`div`,{className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[c,(0,W.jsx)(`span`,{children:s})]})})}var we={running:`neutral`,completed:`positive`,error:`negative`,ended:`neutral`},Te={running:`Running`,completed:`Completed`,error:`Failed`,ended:`Ended`},Ee={read:`Read file`,edit:`Edit file`,delete:`Delete file`,move:`Move file`,search:`Search`,execute:`Run command`,think:`Thinking`,fetch:`Fetch`,switch_mode:`Switch mode`},De=`Tool call`,Oe={read:x,edit:le,delete:re,move:s,search:te,execute:T,think:m,fetch:S,switch_mode:ee},ke=new Set([`read`,`edit`,`delete`,`move`]);function Ae({toolKind:e}){return(0,W.jsx)(e&&Oe[e]||b,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`})}function K({label:e,value:t,testId:n}){return(0,W.jsxs)(`div`,{"data-testid":n,children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(`pre`,{className:`max-h-60 overflow-auto rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] p-2.5 font-mono text-body-small-default text-[var(--content-secondary)]`,children:t})]})}function je({block:e,isTerminal:t=!1,onOpenDiff:n,onOpenOutput:r}){let[i,o]=(0,A.useState)(!1),s=(0,A.useMemo)(()=>R(e.content),[e.content]),c=(0,A.useMemo)(()=>V(e.content),[e.content]),l=(0,A.useMemo)(()=>c.split(`
3
3
  `).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith("```"))||`View output`,[c]),u=(0,A.useMemo)(()=>U(s,e.locations),[s,e.locations]),d=t&&e.status===`running`?`ended`:e.status,f=d===`running`,p=e.toolKind&&Ee[e.toolKind]||De,m=B(e.rawInput)??e.title,_=m&&m!==p&&(!ke.has(e.toolKind??``)||u.length===0)?m:null,v=H(e.rawInput),y=H(e.rawOutput),b=v!==void 0||y!==void 0;return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-tool-card`,"data-status":e.status,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(Ae,{toolKind:e.toolKind}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,title:e.title,children:p}),(0,W.jsx)(oe,{tone:we[d],"data-testid":`acp-chat-tool-status`,children:Te[d]}),f&&(0,W.jsx)(k,{className:`shrink-0`,"data-testid":`acp-chat-tool-running`})]}),_&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-tool-detail`,className:`mt-1.5 font-mono text-body-small-default whitespace-pre-wrap break-words text-[var(--content-secondary)]`,children:_}),u.length>0&&(0,W.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,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-file-chip`,onClick:()=>n(e.toolCallId,t),title:t.path,className:`${i} cursor-pointer transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(x,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path):(0,W.jsxs)(`span`,{"data-testid":`acp-chat-tool-file-ref`,title:t.path,className:i,children:[(0,W.jsx)(x,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path)})}),c.length>0&&(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-output-open`,onClick:()=>r?.(e.toolCallId),className:`mt-2 flex w-full items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-2.5 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:l}),(0,W.jsx)(g,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`})]}),b&&(0,W.jsxs)(`div`,{className:`mt-2`,"data-testid":`acp-chat-tool-raw`,children:[(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-raw-toggle`,"aria-expanded":i,onClick:()=>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,W.jsx)(h,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(g,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{children:i?`Hide raw input/output`:`Show raw input/output`})]}),i&&(0,W.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-2`,children:[v!==void 0&&(0,W.jsx)(K,{label:`Raw input`,value:v,testId:`acp-chat-tool-raw-input`}),y!==void 0&&(0,W.jsx)(K,{label:`Raw output`,value:y,testId:`acp-chat-tool-raw-output`})]})]})]})}function Me({content:e}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-user-turn`,className:`flex w-full justify-end`,children:(0,W.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--surface-lift)] px-4 py-3 whitespace-pre-wrap text-chat text-[var(--content-default)]`,children:e})})}function Ne(e,t){let n=e=>new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(e);return e>0&&e<.01?`<${n(.01)}`:n(e)}var q=new Intl.NumberFormat(`en-US`);function J({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex items-baseline gap-1`,"data-usage-stat":e.toLowerCase(),children:[(0,W.jsx)(a,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-secondary)] tabular-nums`,children:t})]})}function Pe({entry:e}){let{inputTokens:t,outputTokens:n,costAmount:r,costCurrency:i}=e;if(t===void 0&&n===void 0)return null;let a=t??0,o=n??0,s=r!=null&&i!=null;return(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,"data-testid":`acp-usage-meter`,children:[(0,W.jsx)(J,{label:`Input`,value:q.format(a)}),(0,W.jsx)(J,{label:`Output`,value:q.format(o)}),s&&(0,W.jsx)(J,{label:`Cost`,value:Ne(r,i)})]})}function Fe({content:e,assistantId:t}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-command-output`,className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 [&_pre]:!max-h-none`,children:(0,W.jsx)(C,{content:V(e),hardLineBreaks:!0,assistantId:t})})}var Y=2e3;function X(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-DWxxMNqc.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import{m as a,n as o,t as s}from"./message-content-BKoSLhMp.js";import{_ as c,a as l,f as u,g as d,i as f,r as p,v as m,y as h}from"./transcript-message-body-shared-D-vBwqt1.js";import{t as g}from"./chevron-left-C-YGuLQc.js";import"./src-CqJTlX1y.js";import{t as _}from"./chat-markdown-message-q9EiJZ-_.js";import{t as v}from"./workflow-store-B9ZU_HIp.js";import{t as y}from"./background-task-store-DBkMeElr.js";import{r as b}from"./acp-run-store-f3ZZ5vfh.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-BF7RhCjo.js";import{t as k}from"./detail-shell-Cfhmm8Ht.js";import{t as A}from"./use-transcript-message-by-id-CmTgBWNG.js";import{ToolDetailBody as j,t as M}from"./tool-detail-panel-3ThRZsOn.js";var N=e(t(),1);function P(e,t,n){let r=f(t,n.workflow),i=e=>{let t=u(e,n.workflow.byToolUseId);if(t!==null&&r.has(t))return!0;let i=p(e,n.acpByToolUseId);if(i!==null&&n.acpById[i]!==void 0)return!0;let a=l(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,f=h(l),p=c(f.steps),_=m(f.state,f.steps),v=_===`loading`,y=d(_,f.totalDurationLabel??``,p.failed),b=v&&f.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}),f.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:f.stepCount})]}):null]}),closeLabel:`Close steps`,onClose:t,children:a?(0,I.jsx)(B,{detail:a,assistantId:r}):(0,I.jsx)(E,{steps:f.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})})}export{R as ActivityStepsPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import{m as a,n as o,t as s}from"./message-content-BKoSLhMp.js";import{_ as c,a as l,f as u,g as d,i as f,r as p,v as m,y as h}from"./transcript-message-body-shared-JlRHXQ1q.js";import{t as g}from"./chevron-left-C-YGuLQc.js";import"./src-4DTZIbDU.js";import{t as _}from"./chat-markdown-message-CDcAsRR5.js";import{t as v}from"./workflow-store-B9ZU_HIp.js";import{t as y}from"./background-task-store-DBkMeElr.js";import{r as b}from"./acp-run-store-f3ZZ5vfh.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-BSqLa8lz.js";import{t as k}from"./detail-shell-ModH5YJB.js";import{t as A}from"./use-transcript-message-by-id-B6khVa3g.js";import{ToolDetailBody as j,t as M}from"./tool-detail-panel-D4rwCLuH.js";var N=e(t(),1);function P(e,t,n){let r=f(t,n.workflow),i=e=>{let t=u(e,n.workflow.byToolUseId);if(t!==null&&r.has(t))return!0;let i=p(e,n.acpByToolUseId);if(i!==null&&n.acpById[i]!==void 0)return!0;let a=l(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,f=h(l),p=c(f.steps),_=m(f.state,f.steps),v=_===`loading`,y=d(_,f.totalDurationLabel??``,p.failed),b=v&&f.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}),f.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:f.stepCount})]}):null]}),closeLabel:`Close steps`,onClose:t,children:a?(0,I.jsx)(B,{detail:a,assistantId:r}):(0,I.jsx)(E,{steps:f.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})})}export{R as ActivityStepsPanel};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DWxxMNqc.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./key-round-DwjCZmHI.js";import{t as o}from"./loader-circle-D7A_UeUb.js";import{t as s}from"./input-DF52UqKH.js";import{t as c}from"./modal-UqO42jBg.js";import{n as l}from"./toast-DFRsyumK.js";import{Yt as u}from"./react-query.gen-DYPHpypm.js";import{t as d}from"./use-active-assistant-id-CJpO2yaM.js";var f=e(t(),1),p=i();function m(e){return[`credentials-list`,e]}function h({open:e,onClose:t,onSaved:i,initialValues:h,successToastMessage:g=`Credential saved.`}){let _=d(),v=r(),[y,b]=(0,f.useState)(h?.service??``),[x,S]=(0,f.useState)(h?.field??``),[C,w]=(0,f.useState)(h?.value??``),[T,E]=(0,f.useState)(h?.label??``),D=(0,f.useRef)(h);(0,f.useLayoutEffect)(()=>{D.current=h},[h]),(0,f.useEffect)(()=>{if(e){let e=D.current;b(e?.service??``),S(e?.field??``),w(e?.value??``),E(e?.label??``)}},[e]);let O=u({onError:e=>{l.error(e.message||`Failed to save credential`)}}),k=O.isPending,A=()=>{b(``),S(``),w(``),E(``),t()};return(0,p.jsx)(c.Root,{open:e,onOpenChange:e=>{!e&&!k&&A()},children:(0,p.jsx)(c.Content,{size:`sm`,children:(0,p.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=y.trim(),n=x.trim();if(!t||!n||!C.trim())return;let r=T.trim()||void 0;O.mutate({path:{assistant_id:_},body:{service:t,field:n,value:C,label:r}},{onSuccess:()=>{v.invalidateQueries({queryKey:m(_)}),l.success(g),i?.({service:t,field:n,label:r}),A()}})},children:[(0,p.jsxs)(c.Header,{children:[(0,p.jsx)(c.Title,{icon:a,children:`Add credential`}),(0,p.jsx)(c.Description,{children:`Add an API key or token to let tools and integrations use it.`})]}),(0,p.jsxs)(c.Body,{className:`flex flex-col gap-3`,children:[(0,p.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row`,children:[(0,p.jsx)(s,{label:`Service`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`e.g. github`,autoFocus:!0,fullWidth:!0}),(0,p.jsx)(s,{label:`Field`,type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:`e.g. api_token`,fullWidth:!0})]}),(0,p.jsx)(s,{label:`Value`,type:`password`,value:C,onChange:e=>w(e.target.value),placeholder:`Enter the secret value`,fullWidth:!0}),(0,p.jsx)(s,{label:`Label (optional)`,type:`text`,value:T,onChange:e=>E(e.target.value),placeholder:`e.g. GitHub personal access token`,fullWidth:!0})]}),(0,p.jsxs)(c.Footer,{children:[(0,p.jsx)(n,{type:`button`,variant:`outlined`,onClick:A,disabled:k,children:`Cancel`}),(0,p.jsx)(n,{type:`submit`,variant:`primary`,disabled:k||!y.trim()||!x.trim()||!C.trim(),leftIcon:k?(0,p.jsx)(o,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:`Save`})]})]})})})}export{m as n,h as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./key-round-DwjCZmHI.js";import{t as o}from"./loader-circle-D7A_UeUb.js";import{t as s}from"./input-Dp4TsVxE.js";import{t as c}from"./modal-iaI7yGGi.js";import{n as l}from"./toast-DmMsYUgG.js";import{Yt as u}from"./react-query.gen-DYPHpypm.js";import{t as d}from"./use-active-assistant-id-CJpO2yaM.js";var f=e(t(),1),p=i();function m(e){return[`credentials-list`,e]}function h({open:e,onClose:t,onSaved:i,initialValues:h,successToastMessage:g=`Credential saved.`}){let _=d(),v=r(),[y,b]=(0,f.useState)(h?.service??``),[x,S]=(0,f.useState)(h?.field??``),[C,w]=(0,f.useState)(h?.value??``),[T,E]=(0,f.useState)(h?.label??``),D=(0,f.useRef)(h);(0,f.useLayoutEffect)(()=>{D.current=h},[h]),(0,f.useEffect)(()=>{if(e){let e=D.current;b(e?.service??``),S(e?.field??``),w(e?.value??``),E(e?.label??``)}},[e]);let O=u({onError:e=>{l.error(e.message||`Failed to save credential`)}}),k=O.isPending,A=()=>{b(``),S(``),w(``),E(``),t()};return(0,p.jsx)(c.Root,{open:e,onOpenChange:e=>{!e&&!k&&A()},children:(0,p.jsx)(c.Content,{size:`sm`,children:(0,p.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=y.trim(),n=x.trim();if(!t||!n||!C.trim())return;let r=T.trim()||void 0;O.mutate({path:{assistant_id:_},body:{service:t,field:n,value:C,label:r}},{onSuccess:()=>{v.invalidateQueries({queryKey:m(_)}),l.success(g),i?.({service:t,field:n,label:r}),A()}})},children:[(0,p.jsxs)(c.Header,{children:[(0,p.jsx)(c.Title,{icon:a,children:`Add credential`}),(0,p.jsx)(c.Description,{children:`Add an API key or token to let tools and integrations use it.`})]}),(0,p.jsxs)(c.Body,{className:`flex flex-col gap-3`,children:[(0,p.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row`,children:[(0,p.jsx)(s,{label:`Service`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`e.g. github`,autoFocus:!0,fullWidth:!0}),(0,p.jsx)(s,{label:`Field`,type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:`e.g. api_token`,fullWidth:!0})]}),(0,p.jsx)(s,{label:`Value`,type:`password`,value:C,onChange:e=>w(e.target.value),placeholder:`Enter the secret value`,fullWidth:!0}),(0,p.jsx)(s,{label:`Label (optional)`,type:`text`,value:T,onChange:e=>E(e.target.value),placeholder:`e.g. GitHub personal access token`,fullWidth:!0})]}),(0,p.jsxs)(c.Footer,{children:[(0,p.jsx)(n,{type:`button`,variant:`outlined`,onClick:A,disabled:k,children:`Cancel`}),(0,p.jsx)(n,{type:`submit`,variant:`primary`,disabled:k||!y.trim()||!x.trim()||!C.trim(),leftIcon:k?(0,p.jsx)(o,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:`Save`})]})]})})})}export{m as n,h as t};
@@ -1 +1 @@
1
- import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DWxxMNqc.js";import{l as i,m as a,t as o}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./useQuery-Bz-fbQ-m.js";import{t as l}from"./useMutation-CXGTrp4W.js";import{t as u}from"./jsx-runtime-D3ZM-ToX.js";import{t as d}from"./chevron-right-BcPFsjC2.js";import{t as f}from"./circle-alert-C1Hon9Us.js";import{t as p}from"./loader-circle-D7A_UeUb.js";import{t as m}from"./modal-UqO42jBg.js";import{t as h}from"./dropdown-CLoJyNei.js";import{f as g}from"./platform-detection-DYmzJ4FF.js";import{d as _}from"./routes-DOlsNBq5.js";import{n as v,r as y}from"./browser-ClzlwMbU.js";import{ht as b,pt as x}from"./react-query.gen-BtWMgf9p.js";import{t as S}from"./android-consumption-only-BhpxWm8b.js";var C=t({AddCreditsModal:()=>A}),w=e(n(),1),T=u(),E=[`10.00`,`20.00`,`30.00`,`40.00`,`50.00`,`60.00`,`70.00`,`80.00`,`90.00`,`100.00`];function D(e){let t=parseFloat(e);if(Number.isNaN(t))return`0 credits`;let n=t.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2});return`${n.endsWith(`.00`)?n.slice(0,-3):n} credits`}function O(e){if(e&&typeof e==`object`){let t=e.amount;if(Array.isArray(t)&&typeof t[0]==`string`)return t[0]}return`Failed to create checkout session. Please try again.`}function k({open:e,onOpenChange:t}){let n=s(),{pathname:u}=i(),[g]=a(),S=g.toString()?`${u}?${g.toString()}`:u,{data:C,isLoading:k}=c(x()),A=C?.allowed_top_up_amounts?.length?C.allowed_top_up_amounts:E,[j,M]=(0,w.useState)(null),N=j&&A.includes(j)?j:A[0]??E[0],P=l(b());return(0,w.useEffect)(()=>y(()=>{t(!1),n.invalidateQueries(x())}),[t,n]),(0,T.jsx)(m.Root,{open:e,onOpenChange:t,children:(0,T.jsxs)(m.Content,{size:`sm`,children:[(0,T.jsxs)(m.Header,{children:[(0,T.jsx)(m.Title,{children:`Add Credits`}),(0,T.jsx)(m.Description,{children:`You'll be redirected to Stripe to complete the payment.`})]}),(0,T.jsx)(m.Body,{children:(0,T.jsxs)(`div`,{className:`space-y-4`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{htmlFor:`add-credits-amount`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Amount`}),(0,T.jsx)(h,{id:`add-credits-amount`,value:N,onChange:e=>{M(e),P.isError&&P.reset()},disabled:k||!C,options:A.map(e=>({value:e,label:D(e)}))})]}),P.isError&&(0,T.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,T.jsx)(f,{className:`h-3.5 w-3.5 shrink-0`}),O(P.error)]}),(0,T.jsxs)(o,{to:_.settings.usageBillingConfigureTopUps,className:`flex items-center gap-1 text-body-small-default text-[var(--content-tertiary)] hover:text-[var(--content-secondary)]`,onClick:()=>t(!1),children:[`Configure Automatic Top-Ups`,(0,T.jsx)(d,{className:`size-4`})]}),(0,T.jsx)(`div`,{className:`h-px w-full bg-[var(--border-subtle)]`})]})}),(0,T.jsxs)(m.Footer,{children:[(0,T.jsx)(m.Close,{asChild:!0,children:(0,T.jsx)(r,{variant:`outlined`,children:`Cancel`})}),(0,T.jsx)(r,{variant:`primary`,leftIcon:P.isPending?(0,T.jsx)(p,{className:`animate-spin`}):void 0,onClick:()=>{P.isPending||P.mutate({body:{amount:N,return_path:S}},{onSuccess:e=>{v(e.checkout_url)}})},disabled:P.isPending||k||!C,children:`Continue`})]})]})})}function A(e){return g()?(0,T.jsx)(m.Root,{open:e.open,onOpenChange:e.onOpenChange,children:(0,T.jsxs)(m.Content,{size:`sm`,children:[(0,T.jsxs)(m.Header,{children:[(0,T.jsx)(m.Title,{children:`Billing`}),(0,T.jsx)(m.Description,{children:S})]}),(0,T.jsx)(m.Footer,{children:(0,T.jsx)(m.Close,{asChild:!0,children:(0,T.jsx)(r,{variant:`outlined`,children:`Close`})})})]})}):(0,T.jsx)(k,{...e})}export{C as n,A as t};
1
+ import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{l as i,m as a,t as o}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./useQuery-Bz-fbQ-m.js";import{t as l}from"./useMutation-CXGTrp4W.js";import{t as u}from"./jsx-runtime-D3ZM-ToX.js";import{t as d}from"./chevron-right-BcPFsjC2.js";import{t as f}from"./circle-alert-C1Hon9Us.js";import{t as p}from"./loader-circle-D7A_UeUb.js";import{t as m}from"./modal-iaI7yGGi.js";import{t as h}from"./dropdown-B4S4UoV4.js";import{f as g}from"./platform-detection-DYmzJ4FF.js";import{d as _}from"./routes-DOlsNBq5.js";import{n as v,r as y}from"./browser-ClzlwMbU.js";import{ht as b,pt as x}from"./react-query.gen-BtWMgf9p.js";import{t as S}from"./android-consumption-only-BhpxWm8b.js";var C=t({AddCreditsModal:()=>A}),w=e(n(),1),T=u(),E=[`10.00`,`20.00`,`30.00`,`40.00`,`50.00`,`60.00`,`70.00`,`80.00`,`90.00`,`100.00`];function D(e){let t=parseFloat(e);if(Number.isNaN(t))return`0 credits`;let n=t.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2});return`${n.endsWith(`.00`)?n.slice(0,-3):n} credits`}function O(e){if(e&&typeof e==`object`){let t=e.amount;if(Array.isArray(t)&&typeof t[0]==`string`)return t[0]}return`Failed to create checkout session. Please try again.`}function k({open:e,onOpenChange:t}){let n=s(),{pathname:u}=i(),[g]=a(),S=g.toString()?`${u}?${g.toString()}`:u,{data:C,isLoading:k}=c(x()),A=C?.allowed_top_up_amounts?.length?C.allowed_top_up_amounts:E,[j,M]=(0,w.useState)(null),N=j&&A.includes(j)?j:A[0]??E[0],P=l(b());return(0,w.useEffect)(()=>y(()=>{t(!1),n.invalidateQueries(x())}),[t,n]),(0,T.jsx)(m.Root,{open:e,onOpenChange:t,children:(0,T.jsxs)(m.Content,{size:`sm`,children:[(0,T.jsxs)(m.Header,{children:[(0,T.jsx)(m.Title,{children:`Add Credits`}),(0,T.jsx)(m.Description,{children:`You'll be redirected to Stripe to complete the payment.`})]}),(0,T.jsx)(m.Body,{children:(0,T.jsxs)(`div`,{className:`space-y-4`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{htmlFor:`add-credits-amount`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Amount`}),(0,T.jsx)(h,{id:`add-credits-amount`,value:N,onChange:e=>{M(e),P.isError&&P.reset()},disabled:k||!C,options:A.map(e=>({value:e,label:D(e)}))})]}),P.isError&&(0,T.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,T.jsx)(f,{className:`h-3.5 w-3.5 shrink-0`}),O(P.error)]}),(0,T.jsxs)(o,{to:_.settings.usageBillingConfigureTopUps,className:`flex items-center gap-1 text-body-small-default text-[var(--content-tertiary)] hover:text-[var(--content-secondary)]`,onClick:()=>t(!1),children:[`Configure Automatic Top-Ups`,(0,T.jsx)(d,{className:`size-4`})]}),(0,T.jsx)(`div`,{className:`h-px w-full bg-[var(--border-subtle)]`})]})}),(0,T.jsxs)(m.Footer,{children:[(0,T.jsx)(m.Close,{asChild:!0,children:(0,T.jsx)(r,{variant:`outlined`,children:`Cancel`})}),(0,T.jsx)(r,{variant:`primary`,leftIcon:P.isPending?(0,T.jsx)(p,{className:`animate-spin`}):void 0,onClick:()=>{P.isPending||P.mutate({body:{amount:N,return_path:S}},{onSuccess:e=>{v(e.checkout_url)}})},disabled:P.isPending||k||!C,children:`Continue`})]})]})})}function A(e){return g()?(0,T.jsx)(m.Root,{open:e.open,onOpenChange:e.onOpenChange,children:(0,T.jsxs)(m.Content,{size:`sm`,children:[(0,T.jsxs)(m.Header,{children:[(0,T.jsx)(m.Title,{children:`Billing`}),(0,T.jsx)(m.Description,{children:S})]}),(0,T.jsx)(m.Footer,{children:(0,T.jsx)(m.Close,{asChild:!0,children:(0,T.jsx)(r,{variant:`outlined`,children:`Close`})})})]})}):(0,T.jsx)(k,{...e})}export{C as n,A as t};
@@ -0,0 +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-D12Gu3Tx.js";import{t as o}from"./react-BFJW0bSv.js";import{n as s,t as c}from"./button-BENY-yx_.js";import{m as l,u}from"./chunk-5KNZJZUH-Bsoom5--.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{t as g}from"./check-DRqtWHWc.js";import{t as _}from"./circle-alert-C1Hon9Us.js";import{t as v}from"./circle-check-CoU8jUcF.js";import{t as y}from"./menu-DtLdBgbH.js";import{t as b}from"./clock-BW3mQNGq.js";import{r as x,z as S}from"./src-4DTZIbDU.js";import{t as C}from"./ellipsis-vertical-ti9kRVDr.js";import{t as w}from"./external-link-oGdSxU8S.js";import{t as T}from"./info-DJd5yI-U.js";import{t as E}from"./list-C1YSYkTX.js";import{t as D}from"./loader-circle-D7A_UeUb.js";import{t as O}from"./mail-CgnilCq4.js";import{t as ee}from"./plus-K9nUP77O.js";import{t as k}from"./search-DZBQ2Z4C.js";import{t as A}from"./trash-2-CCIeETW1.js";import{t as j}from"./triangle-alert-CuEUegtS.js";import{t as M}from"./notice-DrCduoXJ.js";import{t as N}from"./tag-D4GIIzZF.js";import{t as P}from"./popover-BJQsCNak.js";import{t as F}from"./input-Dp4TsVxE.js";import{t as I}from"./toggle-g8KBdUmy.js";import{t as L}from"./modal-iaI7yGGi.js";import{n as R}from"./toast-DmMsYUgG.js";import{t as z}from"./confirm-dialog-B3O_TlF_.js";import{t as B}from"./dropdown-B4S4UoV4.js";import{t as V}from"./skeleton-BCJu-_x1.js";import{$ as H,B as U,C as W,D as G,E as te,F as K,G as q,H as J,I as ne,J as Y,K as X,L as Z,O as re,Q as ie,R as ae,S as oe,T as se,U as ce,V as le,W as ue,X as de,Y as fe,Z as pe,_ as me,a as he,at as ge,b as _e,c as ve,ct as ye,d as be,dt as xe,et as Se,f as Ce,ft as we,g as Te,gt as Ee,h as De,ht as Oe,i as ke,it as Ae,k as je,l as Me,lt as Ne,m as Pe,mt as Fe,n as Ie,nt as Le,o as Re,ot as ze,p as Be,pt as Ve,q as He,r as Ue,rt as We,s as Ge,st as Ke,t as qe,tt as Je,u as Ye,ut as Xe,v as Ze,x as Qe,y as $e,z as et}from"./use-sticky-profiles-B3YmizgK.js";import{t as tt}from"./assistant-identity-store-Dk3c04VV.js";import{i as nt,n as rt,o as it,r as at}from"./utils-CThlho72.js";import{i as ot,r as st}from"./api-errors-BmlR1gU1.js";import{Jt as ct,On as lt,j as ut,lr as dt,pt as ft,qt as pt,ut as mt}from"./sdk.gen-Dy1Bb8sS.js";import{f as ht}from"./platform-detection-DYmzJ4FF.js";import{d as gt}from"./routes-DOlsNBq5.js";import{i as _t}from"./use-platform-gate-qZiW_iTu.js";import{r as vt}from"./use-is-org-ready-CfDbFeAv.js";import{G as yt,H as bt,U as xt,W as St,Wt as Ct,bt as wt,c as Tt,d as Et,f as Dt,l as Ot,m as kt,p as At,tn as jt,u as Mt,zt as Nt}from"./react-query.gen-DYPHpypm.js";import{n as Pt}from"./use-is-mobile-C0Jx9AxD.js";import{c as Ft,d as It,f as Lt,g as Rt,h as zt,l as Bt,m as Vt,o as Ht,p as Ut,s as Wt,u as Gt,ut as Kt,v as qt,y as Jt}from"./react-query.gen-BtWMgf9p.js";import{t as Yt}from"./platform-login-notice-Yp_hMgyp.js";import{t as Xt}from"./android-consumption-only-BhpxWm8b.js";import{a as Zt,i as Qt,l as $t,n as en,o as tn}from"./voice-list-DK2YArAa.js";import{n as nn}from"./use-voice-sample-preview-CFI53zHg.js";import{t as rn}from"./use-active-assistant-id-CJpO2yaM.js";import{t as an}from"./detail-shell-ModH5YJB.js";import{t as on}from"./detail-card-CddOBuqz.js";import{n as sn,t as cn}from"./detail-drawer-DDxwk7rX.js";import{t as ln}from"./use-platform-assistant-id-qcKyh7TU.js";import{t as un}from"./environment-store-CY9Rnrfi.js";import{t as dn}from"./stt-language-picker-modal-DXB-fVhv.js";var Q=e(o(),1),$=m();function fn({mode:e,onChange:t}){return(0,$.jsx)(`div`,{className:`max-w-[280px]`,children:(0,$.jsx)(S,{ariaLabel:`Service mode`,value:e,onChange:t,items:[{value:`managed`,label:`Managed`},{value:`your-own`,label:`Your Own`}]})})}function pn({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,$.jsxs)(on,{id:e,title:t,subtitle:n,accessory:(0,$.jsx)(fn,{mode:r,onChange:i}),children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:a})]})}function mn({id:e,title:t,subtitle:n,children:r}){return(0,$.jsxs)(on,{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 hn(){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)(T,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,$.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:[`Managed services are metered and deducted from your Vellum account balance.`,` `,(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:[`View pricing`,(0,$.jsx)(w,{className:`h-3.5 w-3.5`})]})]})]})}function gn({status:e,message:t,isLoading:n}){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)(D,{className:`h-3 w-3 animate-spin`}),`Checking domain…`]}):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:`DNS records have been verified. Your domain is ready to send and receive email.`,children:[(0,$.jsx)(g,{className:`h-3 w-3`}),`Domain verified`]}):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:`DNS records have been provisioned. Waiting for the email provider to verify them — this usually takes a few minutes.`,children:[(0,$.jsx)(b,{className:`h-3 w-3`}),`Verifying domain…`]}):(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:`Domain verification failed. DNS records may not have propagated correctly. You could try releasing and re-registering the domain.`,children:[(0,$.jsx)(_,{className:`h-3 w-3`}),`Verification failed`]}):(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:`Unable to retrieve domain verification status.`,children:`Unknown status`})}function _n({onClick:e,disabled:t}){return(0,$.jsx)(c,{onClick:e,disabled:t,children:`Save`})}function vn({onClick:e,filled:t=!1}){return(0,$.jsx)(c,{variant:t?`danger`:`dangerGhost`,onClick:e,children:`Reset`})}function yn({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)(T,{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)(w,{className:`h-3 w-3`})]})]})]})}function bn({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})]})}function xn({assistantId:e,assistantHandle:t,emailRootDomain:n}){let r=d(),i=u(),o=ht(),[s,m]=l(),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(null),[x,S]=(0,Q.useState)(``),[C,w]=(0,Q.useState)(null),[T,E]=(0,Q.useState)(!1),[ee,k]=(0,Q.useState)(!1),[j,N]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{_||!t||h||(g(t),v(!0))},[t,_,h]);let P=f({...Kt(),enabled:!0}),F=P.data,I=F?.entitlements,L=I?.managed_email===!0,B=!!I&&!L,V=!F&&P.isError&&!P.isFetching,H=f({...Ft({path:{assistant_id:e}}),enabled:!B}),U=f({...Ut({path:{assistant_id:e}}),enabled:!B}),W=H.data?.results?.[0],G=U.data?.results?.[0],te=W?`${W.subdomain}.${n}`:null,K=f({...zt({path:{assistant_id:e,id:G?.id??``}}),enabled:!!G?.id,refetchOnWindowFocus:!1}),q=f({...Gt({path:{assistant_id:e,id:W?.id??``}}),enabled:!!W?.id,refetchInterval:e=>{let t=e.state.data?.status;return t===`verified`||t===`failed`?!1:1e4},refetchOnWindowFocus:!0});(0,Q.useEffect)(()=>{s.get(`release`)!==`1`||!W||G||(k(!0),m(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[G,W,s,m]);let J=p(Ht()),ne=p(Wt()),Y=p(It()),X=p(Lt()),Z=(0,Q.useCallback)(()=>{let t={assistant_id:e};r.invalidateQueries({queryKey:Bt({path:t})}),r.invalidateQueries({queryKey:Vt({path:t})}),G?.id&&r.invalidateQueries({queryKey:Rt({path:{...t,id:G.id}})}),r.invalidateQueries({queryKey:Jt()})},[G?.id,e,r]),re=(0,Q.useCallback)(async()=>{let t=h.trim().toLowerCase();if(!t){b(`Enter a subdomain.`);return}E(!1);try{await J.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),g(``),b(null),Z(),R.success(`Domain ${t}.${n} registered.`)}catch(e){b(ot(e,void 0,`Failed to register domain.`))}},[e,n,Z,J,h]),ie=(0,Q.useCallback)(async()=>{let t=x.trim().toLowerCase();if(!t){w(`Enter an email username.`);return}try{await Y.mutateAsync({path:{assistant_id:e},body:{username:t}}),S(``),w(null),Z(),R.success(`Email address created.`)}catch(e){w(ot(e,void 0,`Failed to create email address.`))}},[e,Z,Y,x]),ae=(0,Q.useCallback)(async()=>{if(G?.id){N(!1);try{await X.mutateAsync({path:{assistant_id:e,id:G.id}}),Z(),R.success(`Email address removed.`)}catch(e){a(e,{context:`email_address_delete`}),R.error(`Failed to remove email address.`)}}},[G?.id,e,X,Z]),oe=(0,Q.useCallback)(async()=>{if(!W?.id)return;if(G){R.error(`Remove the email address first.`);return}k(!1);let t=W.subdomain;try{await ne.mutateAsync({path:{assistant_id:e,id:W.id}}),g(t),Z(),R.success(`Domain released.`)}catch(e){a(e,{context:`email_domain_release`}),R.error(`Failed to release domain.`)}},[G,e,ne,W?.id,W?.subdomain,Z]);if(P.isLoading)return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(D,{className:`h-4 w-4 animate-spin`}),`Checking subscription…`]});if(B)return(0,$.jsx)(M,{tone:`info`,icon:(0,$.jsx)(O,{className:`h-4 w-4`,"aria-hidden":!0}),title:`Give your assistant its own email address`,actions:o?void 0:(0,$.jsx)(c,{size:`compact`,onClick:()=>i(gt.plans),children:`Upgrade`}),children:o?Xt:(0,$.jsx)($.Fragment,{children:`Upgrade to a plan that includes an email address for your assistant. No provider setup required.`})});let se=V?(0,$.jsx)(M,{tone:`warning`,title:`Couldn't verify subscription status`,actions:(0,$.jsx)(c,{size:`compact`,variant:`outlined`,onClick:()=>P.refetch(),children:`Retry`}),children:`We couldn't reach the billing service. The form below assumes managed email is enabled for your org — if it isn't, registering a domain will fail.`}):null;return W?G?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[se,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Address`}),(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:G.address}),(0,$.jsx)(gn,{status:q.data?.status,message:q.data?.message,isLoading:q.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(A,{}),onClick:()=>N(!0),disabled:X.isPending,"aria-label":`Remove email address`})]}),(0,$.jsx)(z,{open:j,title:`Remove Email Address`,message:(0,$.jsxs)($.Fragment,{children:[`Are you sure you want to remove`,` `,(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:G.address}),`? Your assistant will no longer be able to send or receive email at this address.`]}),confirmLabel:`Remove`,destructive:!0,onConfirm:ae,onCancel:()=>N(!1)})]}),K.data?.usage&&(0,$.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[K.data.usage.sent_today,` /`,` `,K.data.usage.daily_limit,` sent today ·`,` `,K.data.usage.received_today,` received`]})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[se,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Domain`}),(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:[W.subdomain,`.`,n]}),(0,$.jsx)(gn,{status:q.data?.status,message:q.data?.message,isLoading:q.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(A,{}),onClick:()=>k(!0),disabled:ne.isPending,"aria-label":`Release domain`})]}),(0,$.jsx)(z,{open:ee,title:`Release Domain`,message:(0,$.jsxs)($.Fragment,{children:[`Are you sure you want to release`,` `,(0,$.jsxs)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:[W.subdomain,`.`,n]}),`? The subdomain will become available for others to claim.`]}),confirmLabel:`Release`,destructive:!0,onConfirm:oe,onCancel:()=>k(!1)})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Email address`}),(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 ${C?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,$.jsx)(`input`,{value:x,onChange:e=>{S(e.target.value.toLowerCase()),C&&w(null)},placeholder:`hi`,"aria-label":`Email username`,"aria-invalid":!!C,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:[`@`,te]})]}),(0,$.jsx)(c,{onClick:ie,disabled:Y.isPending||!x.trim(),children:Y.isPending?`Creating…`:`Create`})]}),C&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:C})]})]}):(0,$.jsxs)(`div`,{className:`space-y-3`,children:[se,(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Subdomain`}),(0,$.jsx)(bn,{subdomain:h,onSubdomainChange:e=>{g(e),y&&b(null)},domainSuffix:n,subdomainPlaceholder:`my-assistant`,error:y}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Each assistant gets its own subdomain. Lowercase letters, numbers, and hyphens only.`}),(0,$.jsx)(c,{onClick:()=>E(!0),disabled:J.isPending||!h.trim(),children:J.isPending?`Registering…`:`Register`}),(0,$.jsx)(z,{open:T,title:`Set Subdomain`,message:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:h.trim().toLowerCase()||`subdomain`}),` `,`will also become your assistant's public handle. You won't be able to change it once set.`]}),confirmLabel:`Confirm`,onConfirm:re,onCancel:()=>E(!1)})]})}function Sn(){let e=rn(),r=vt(),{data:o}=f({...qt(),enabled:r}),s=o?.results?.[0]?.handle,c=un.use.emailRootDomain(),l=_t(),[u,d]=(0,Q.useState)(()=>l===`gated`?`your-own`:We(t(Ye,`managed`),`managed`)),[p,m]=(0,Q.useState)(()=>{let e=t(Me,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),{platformAssistantId:h,error:g}=ln(e,l===`full`&&u===`managed`),_=h??(g?e:null),y=f({queryKey:[`byoEmailCredential`,e,p],queryFn:async()=>{let{data:t}=await mt({path:{assistant_id:e},body:{service:p,field:`api_key`},throwOnError:!0});return t},enabled:u===`your-own`||l===`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,x=(0,Q.useCallback)(e=>{d(e),n(Ye,e)},[]),S=(0,Q.useCallback)(()=>{n(Me,p),R.success(`Email settings saved.`)},[p]),C=(0,Q.useMemo)(()=>_e.find(e=>e.id===p)??_e[0],[p]),E=(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)(T,{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,$.jsxs)(`span`,{children:[`Configure `,C.displayName,` via the assistant CLI: ask the assistant to run the`,` `,(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:C.setupSkill}),` `,`skill. It walks you through storing the API key, detecting the domain, and (optionally) wiring up an inbound webhook.`]}),(0,$.jsxs)(`a`,{href:C.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Open `,C.displayName,(0,$.jsx)(w,{className:`h-3 w-3`})]})]})]}),O=(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)(B,{value:p,onChange:e=>{(e===`mailgun`||e===`resend`)&&m(e)},options:_e.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)(v,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`span`,{children:[C.displayName,` API key configured. To reconfigure, run the`,` `,(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:C.setupSkill}),` `,`skill.`]})]}),(0,$.jsxs)(`a`,{href:C.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:[`Open `,C.displayName,(0,$.jsx)(w,{className:`h-3 w-3`})]})]}):E,(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsx)(_n,{onClick:S,disabled:!1})})]});return l===`gated`?(0,$.jsx)(mn,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,children:O}):(0,$.jsx)(pn,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,mode:u,onModeChange:x,children:u===`managed`?(0,$.jsx)(`div`,{className:`space-y-4`,children:l===`disabled`?(0,$.jsx)(Yt,{children:`Log in to the Vellum platform to manage email settings.`}):_===null?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(D,{className:`h-4 w-4 animate-spin`}),`Connecting to the Vellum platform…`]}):(0,$.jsx)(xn,{assistantId:_,assistantHandle:s,emailRootDomain:c})}):O})}function Cn(){let e=rn();return(0,Q.useCallback)(async(t,n)=>{try{let{data:r}=await dt({path:{assistant_id:e},body:{value:n,type:`api_key`,name:t},throwOnError:!0});H(r)}catch(e){throw e instanceof Error&&e.message===`No assistant found`?R.error(`Assistant not ready. Please try again.`):R.error(`Failed to save ${t} API key. Please try again.`),a(e,{context:`provision_provider_key`}),e}},[e])}function wn(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 Tn=`0.11.0`;function En(){return rt(Tn)}var Dn=`gemini-3.1-flash-image-preview`;function On(){let e=rn(),r=d(),i=vt(),{data:o}=f({...Tt({path:{assistant_id:e}}),enabled:i,staleTime:3e4}),s=Ct({onSuccess:t=>{Mt(r,{path:{assistant_id:e}},t)}}),c=Cn(),[l,u]=wn((0,Q.useMemo)(()=>{if(!o)return t(Ce,`gemini`);let e=o.services?.[`image-generation`];return e?.mode===`managed`?`vellum`:e?.provider||t(`vellum:ai:imageGenProvider`,`gemini`)},[o])),[p,m]=(0,Q.useState)(()=>t(be,Dn)),h=G(l),g=h.includes(p)?p:h[0]??Dn,[_,v]=(0,Q.useState)(``),[y,b]=(0,Q.useState)(!1),x=oe.map(e=>({value:e,label:W[e]??e})),S=(0,Q.useMemo)(()=>G(l).map(e=>({value:e,label:Qe[e]??e})),[l]),C=l===`gemini`||l===`openai`,{hasStoredCredential:w}=X({assistantId:e,credentialKind:`api_key`,credentialName:l,enabled:C}),T=u,E=(0,Q.useCallback)(async()=>{b(!0);let t=_.trim(),i=C&&t.length>0;try{i&&await c(re(g),t),await it();let n=l===`vellum`&&!En()?{mode:`managed`}:{provider:l,mode:l===`vellum`?`managed`:`your-own`};await s.mutateAsync({path:{assistant_id:e},body:{services:{"image-generation":n}}}).catch(e=>{throw R.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e});try{await lt({path:{assistant_id:e},body:{modelId:g},throwOnError:!0})}catch(e){throw R.error(`Failed to update image generation model. Please try again.`),a(e,{context:`set_image_gen_model`}),e}finally{r.invalidateQueries({queryKey:Ot({path:{assistant_id:e}})})}}catch{b(!1);return}b(!1);try{if(n(Ce,l),n(be,g),i){let t=q(e,`api_key`,l);r.setQueryData(t,!0),r.invalidateQueries({queryKey:t}),v(``)}R.success(`Image generation settings saved.`)}catch(e){a(e,{context:`settings-ai-image-gen-persist-local`}),R.error(`Saved, but local preferences could not be written.`)}},[_,l,C,g,e,s,c,r]),O=(0,Q.useCallback)(()=>{v(``),m(Dn),n(be,Dn)},[]);return(0,$.jsx)(mn,{title:`Image Generation`,subtitle:`Configure which model your assistant uses to generate images`,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:`Provider`}),(0,$.jsx)(B,{"aria-label":`Image generation provider`,value:l,onChange:T,options:x})]}),l===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Image generation runs through your Vellum account.`}),C&&(0,$.jsx)(F,{label:`API Key`,type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:U(l===`openai`?`Enter your OpenAI API key`:`Enter your Gemini API key`,w),fullWidth:!0}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Active Model`}),(0,$.jsx)(B,{"aria-label":`Image generation model`,value:g,onChange:m,options:S})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(_n,{onClick:E,disabled:y}),y&&(0,$.jsx)(D,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),C&&(0,$.jsx)(vn,{onClick:O})]})]})})}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 An({blocked:e,availableReplacements:t,replacement:n,onReplacementChange:r,error:i,saving:a,onClose:o,onConfirm:s}){let l=``;if(e){let t=e.label||e.name;l=e.isActive&&e.callSiteIds.length>0?`"${t}" is the active profile and is used by ${e.callSiteIds.length} call site(s). Pick a replacement profile.`:e.isActive?`"${t}" is the active profile. Pick a different active profile before deleting, or select a replacement below.`:`"${t}" is used by ${e.callSiteIds.length} call site(s). Select a replacement profile to reassign them before deleting.`}return(0,$.jsx)(L.Root,{open:e!==null,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(L.Content,{size:`sm`,children:[(0,$.jsx)(L.Header,{children:(0,$.jsx)(L.Title,{children:`Can't Delete Profile`})}),(0,$.jsxs)(L.Body,{className:`space-y-4`,children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l}),e&&e.callSiteIds.length>0&&(0,$.jsx)(`ul`,{className:`space-y-1 pl-1`,children:e.callSiteIds.map(e=>(0,$.jsxs)(`li`,{className:`text-body-small-default text-(--content-secondary)`,children:[`• `,(0,$.jsx)(`code`,{children:e})]},e))}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Replacement profile`}),(0,$.jsx)(B,{"aria-label":`Replacement profile`,value:n,onChange:r,options:[{value:``,label:`Select a replacement…`},...t.map(e=>({value:e.name,label:e.label??e.name}))]})]}),i&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:i})]}),(0,$.jsxs)(L.Footer,{children:[(0,$.jsx)(c,{variant:`ghost`,size:`compact`,onClick:o,children:`Cancel`}),(0,$.jsx)(c,{variant:`primary`,size:`compact`,disabled:!n||a,onClick:s,children:a?`Saving…`:`Reassign and Delete`})]})]})})}function jn({profile:e,isActiveProfile:t,selected:n,connections:r,onOpen:i,onMakeActive:a,onSetStatus:o,onDelete:l}){let u=e.source===`managed`,d=e.status===`disabled`,f=e.label??e.name,p=[];e.model&&p.push(ne(e.provider??void 0,e.model,r)),u&&p.push(`Managed by Vellum`);let m=e.availability,h=m?.status===`incomplete`,g=m!=null&&m.status!==`ok`?`${m.message??`This profile's provider is not available.`}${h?` Click to fix.`:``}`:null;return(0,$.jsx)(x,{title:(0,$.jsx)(`span`,{className:d?`opacity-55`:void 0,children:f}),subtitle:p.length>0?p.join(` • `):void 0,onClick:i,showChevron:!1,selected:n,contentAriaLabel:`Open profile ${f}`,trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[g==null?null:(0,$.jsx)(s,{content:g,children:h?(0,$.jsx)(`button`,{type:`button`,onClick:i,"aria-label":g,className:`inline-flex cursor-pointer rounded-sm p-0.5 keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:(0,$.jsx)(_,{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)(_,{className:`h-4 w-4 text-[var(--system-mid-strong)]`,"aria-label":g,role:`img`})})}),d?(0,$.jsx)(N,{tone:`neutral`,children:`Disabled`}):null,t?(0,$.jsx)(N,{tone:`positive`,children:`Default`}):null,(0,$.jsxs)(y.Root,{children:[(0,$.jsx)(y.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(C,{}),"aria-label":`Actions for ${f}`})}),(0,$.jsxs)(y.Content,{align:`end`,sideOffset:4,children:[(0,$.jsx)(y.Item,{onSelect:i,children:u?`View`:`Edit`}),!t&&!d?(0,$.jsx)(y.Item,{onSelect:a,children:`Make Default`}):null,d?(0,$.jsx)(y.Item,{onSelect:()=>o(!0),children:`Enable`}):u?null:(0,$.jsx)(y.Item,{onSelect:()=>o(!1),children:`Disable`}),u?null:(0,$.jsx)(y.Item,{onSelect:l,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:`Delete`})]})]})]})})}var Mn=`0.11.0`;function Nn(){return nt(Mn)}function Pn(e,t){let n=Nn(),{data:r}=f({...bt({path:{assistant_id:e}}),enabled:n,staleTime:3e4}),{profiles:i,profileOrder:a}=qe(t?.llm,e);return(0,Q.useMemo)(()=>r==null?{entries:Se(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 Fn(e){let t=d();return Ct({onSuccess:n=>{Mt(t,{path:{assistant_id:e}},n),t.invalidateQueries({queryKey:xt({path:{assistant_id:e}})})}})}var In=`0.10.8`;function Ln(e){return at(In,e)}var Rn=`settings-ai-profile-make-active`,zn=`Failed to set the active profile. Please try again.`;function Bn(e){let t=Fn(e),n=d(),r=Ln(e),i=jt({onSuccess:()=>{n.invalidateQueries({queryKey:Ot({path:{assistant_id:e}})}),n.invalidateQueries({queryKey:xt({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}),R.error(i),e}}async function s(t){if(!r){await o({activeProfile:t},Rn,zn);return}try{await i.mutateAsync({path:{assistant_id:e},body:{name:t}})}catch(e){let t=st(e);throw R.error(t??zn),t||a(e,{context:Rn}),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}}function Vn(e,t,n){let r=Bn(e),i=ie(),a=t?.llm?.activeProfile??null,o=t?.llm?.advisorProfile??null,s=t?.llm?.callSites??{},c=(0,Q.useMemo)(()=>t?.llm?.profiles??{},[t?.llm?.profiles]),l=(0,Q.useMemo)(()=>t?.llm?.profileOrder??[],[t?.llm?.profileOrder]),u=(0,Q.useMemo)(()=>Se(c,l),[c,l]),[d,f]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(null),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(!1);async function y(e){try{await r.deleteProfile(e,l,{isAdvisor:e===o}),n?.onDeleted?.(e)}catch{}}function b(e){if(t==null)return;let n=c[e]?.label??e,r=e===a,i=Object.entries(s).filter(([t,n])=>t!==`mainAgent`&&n?.profile===e).map(([e])=>e);if(r||i.length>0){f({name:e,label:n,isActive:r,callSiteIds:i}),g(``),m(null);return}y(e)}async function x(){if(!d||!h)return;v(!0),m(null);let e={};if(d.isActive&&(e.activeProfile=h),d.callSiteIds.length>0){let t={};for(let e of d.callSiteIds)t[e]={profile:h};e.callSites=t}if(Object.keys(e).length>0)try{await r.patchLlm(e,`settings-ai-profile-reassign-delete`,`Failed to reassign references. Please try again.`)}catch{m(`Failed to reassign references. Please try again.`),v(!1);return}let t=d.name;f(null),v(!1),y(t)}let S=u.filter(e=>e.name!==d?.name&&Ie(e,u,{requireOwnProviderAndModel:i})),C=S.filter(e=>e.source!==`managed`);return{requestDelete:b,blockedDeleteModalProps:{blocked:d,availableReplacements:C.length>0?C:S,replacement:h,onReplacementChange:g,error:p,saving:_,onClose:()=>{f(null),m(null)},onConfirm:()=>void x()}}}function Hn(){}function Un({assistantId:e,config:t,connections:n,selectedProfileName:r,onOpenProfile:i,onCreateProfile:a,onProfileDeleted:o}){let{entries:s}=Pn(e,t),l=Bn(e),u=Vn(e,t,{onDeleted:o}),d=t?.llm?.activeProfile??null;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(kn,{title:`Profiles`,action:(0,$.jsx)(c,{variant:`primary`,size:`compact`,onClick:a,leftIcon:(0,$.jsx)(ee,{}),disabled:t==null,children:`Create Profile`}),children:t==null?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`Loading profiles…`}):s.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No profiles yet. Create one to get started.`}):s.map(e=>(0,$.jsx)(jn,{profile:e,isActiveProfile:e.name===d,selected:e.name===r,connections:n,onOpen:()=>i(e.name),onMakeActive:()=>void l.makeActive(e.name).catch(Hn),onSetStatus:t=>void l.setStatus(e.name,t).catch(Hn),onDelete:()=>u.requestDelete(e.name)},e.name))}),(0,$.jsx)(An,{...u.blockedDeleteModalProps})]})}var Wn={anthropic:!0,openai:!0,gemini:!0,fireworks:!0,openrouter:!0,vellum:!0,together:!0,"vercel-ai-gateway":!0,minimax:!0,atlascloud:!0,baseten:!0,poolside:!0};function Gn(e){return e in Wn}function Kn(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 qn(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 Jn(e){if(e.provider===`vellum`)return`Included with your plan`;if(e.provider===`openai-compatible`)return Kn(e);let t=[],n=e.models?.length??Ee(e.provider).length;n>0&&t.push(`${n} ${n===1?`model`:`models`}`);let r=qn(e);return r&&t.push(r),t.join(` • `)}function Yn({connection:e,isDefault:t,supportsDefaultProvider:n,selected:r,isSettingDefault:i,onOpen:a,onSetDefault:o,onDelete:s}){let l=e.isManaged??!1,u=de(e),d=Gn(e.provider),f=Jn(e),p=n&&!t&&d,m=!l&&a!=null,h=!l&&!t,g=p||m||h;return(0,$.jsx)(x,{title:u,subtitle:f.length>0?f:void 0,onClick:a,showChevron:!1,selected:r,contentAriaLabel:a?`Open provider ${u}`:void 0,trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[l?(0,$.jsx)(N,{tone:`neutral`,title:`Runs on Vellum's managed credentials.`,children:`Managed`}):null,t?(0,$.jsx)(N,{tone:`info`,title:`Built-in profiles (Balanced, Quality, Cost, Speed) use this provider.`,children:`Default`}):null,e.provider===`ollama`?(0,$.jsx)(N,{tone:`neutral`,title:`Runs models on this machine.`,children:`Local`}):null,e.provider===`openai-compatible`?(0,$.jsx)(N,{tone:`neutral`,title:`A provider you created, served by an OpenAI-compatible endpoint.`,children:`Custom`}):null,g?(0,$.jsxs)(y.Root,{children:[(0,$.jsx)(y.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(C,{}),"aria-label":`Actions for ${u}`})}),(0,$.jsxs)(y.Content,{align:`end`,sideOffset:4,children:[m?(0,$.jsx)(y.Item,{onSelect:a,children:`Edit`}):null,p?(0,$.jsx)(y.Item,{disabled:i,onSelect:o,children:`Set as default`}):null,h?(0,$.jsx)(y.Item,{onSelect:s,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:`Delete`}):null]})]}):(0,$.jsx)(`span`,{className:`inline-block w-8`,"aria-hidden":!0})]})})}function Xn(e,t){let n=d(),r={path:{assistant_id:e}},i=p({...kt(),onSuccess:()=>{n.invalidateQueries({queryKey:At(r)}),n.invalidateQueries({queryKey:Ot(r)}),n.invalidateQueries({queryKey:xt(r)})},onError:e=>{a(e,{context:`settings-ai-set-default-provider`}),R.error(`Failed to set the default provider. Please try again.`)}});function o(t){Gn(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 pt({path:{assistant_id:e,name:i}});a?.ok||a?.status===404?(n.invalidateQueries({queryKey:yt(r)}),t?.onDeleted?.(i)):a?.status===409?R.error(`This provider is in use by a profile or as the default provider. Update those settings before deleting it.`):R.error(`Failed to delete the provider. Please try again.`)}catch(e){a(e,{context:`settings-ai-provider-delete`}),R.error(`Failed to delete the provider. Please try again.`)}}return{setDefault:o,isSettingDefault:s,deleteConnection:c}}var Zn=`0.10.8`;function Qn(){return nt(Zn)}function $n({assistantId:e,selectedConnectionName:t,onOpenConnection:n,onAddProvider:r,onConnectionDeleted:i}){let{data:a,isLoading:o,isError:s}=f(St({path:{assistant_id:e}})),l=Qn(),{data:u}=f({...Dt({path:{assistant_id:e}}),enabled:l}),d=l?u?.resolvedConnectionName??null:null,p=Xn(e,{onDeleted:i}),m=(0,Q.useMemo)(()=>{let e=a?.connections??[];return[...e.filter(e=>e.provider===Ve),...e.filter(e=>e.provider!==Ve)]},[a]);return(0,$.jsx)(kn,{title:`Providers`,action:(0,$.jsx)(c,{variant:`outlined`,size:`compact`,onClick:r,leftIcon:(0,$.jsx)(ee,{}),children:`Add Provider`}),children:o?(0,$.jsx)(`div`,{className:`space-y-2 py-2`,children:[1,2,3].map(e=>(0,$.jsx)(V,{className:`h-10 rounded-lg`},e))}):s?(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,className:`py-4 text-center text-(--system-negative-strong)`,children:`Failed to load providers. Please try again.`}):m.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No providers yet. Add one to get started.`}):m.map(e=>(0,$.jsx)(Yn,{connection:e,isDefault:e.name===d,supportsDefaultProvider:l,selected:e.name===t,isSettingDefault:p.isSettingDefault(e.name),onOpen:e.isManaged??!1?void 0:()=>n(e.name),onSetDefault:()=>p.setDefault(e),onDelete:()=>void p.deleteConnection(e.name)},e.name))})}function er({panel:e,onOpenPanel:t,onClosePanel:n}){let r=rn(),{data:i}=f({...Tt({path:{assistant_id:r}}),staleTime:3e4}),a=Qn(),{data:o}=f({...Dt({path:{assistant_id:r}}),enabled:a}),s=o?.availability,{data:l}=f({...St({path:{assistant_id:r}})}),u=l?.connections,d=i?.llm?.callSites??{},p=Object.entries(d).filter(([e,t])=>e!==`mainAgent`&&(t?.profile!=null||t?.provider!=null||t?.model!=null)).length;return(0,$.jsx)(mn,{title:`Language Model`,subtitle:`Profiles choose which model answers. Providers supply access to it`,children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[s&&s.status!==`ok`&&(0,$.jsx)(M,{tone:s.status===`unknown`?`warning`:`error`,children:s.message??`Your default provider is not available.`}),r&&(0,$.jsx)(Un,{assistantId:r,config:i,connections:u,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()}}),r&&(0,$.jsx)($n,{assistantId:r,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:`Overrides`,count:p,action:(0,$.jsx)(c,{variant:`outlined`,size:`compact`,onClick:()=>t({kind:`overrides`}),children:`Manage`})})]})})}function tr(e,{onSaved:t}={}){let n=Fn(e),{data:r}=f({...Tt({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&&R.success(`Profile "${s.label??r}" created`),t?.()}return{saveProfile:s,isPending:n.isPending}}function nr({assistantId:e,profileName:t,onClose:n}){let{data:r}=f({...Tt({path:{assistant_id:e}}),staleTime:3e4}),{data:i}=f({...St({path:{assistant_id:e}})}),a=i?.connections,o=(0,Q.useMemo)(()=>r?.llm?.profiles??{},[r?.llm?.profiles]),s=Object.keys(o),l=(0,Q.useMemo)(()=>{if(t==null)return;let e=o[t];return e?{name:t,...e}:void 0},[t,o]),u=t==null?`create`:l?.source===`managed`||l?.invariant===!0?`view`:`edit`,{saveProfile:d,isPending:p}=tr(e,{onSaved:n}),m=K({mode:u,profileName:t??void 0,initialValues:l,existingNames:s,connections:a,assistantId:e,onSave:d}),h=Vn(e,r,{onDeleted:()=>n()}),g=t!=null&&r!=null&&!(t in o);(0,Q.useEffect)(()=>{g&&!m.saving&&!p&&n()},[g,m.saving,p,n]);let _=u===`view`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(an,{title:m.effectiveMode===`create`?`New Profile`:l?.label??t??`Profile`,closeVariant:`outlined`,onClose:n,headerTrailing:_&&m.effectiveMode!==`create`?(0,$.jsx)(N,{tone:`neutral`,children:`Managed by Vellum`}):null,headerActions:m.effectiveMode!==`create`&&!m.isReadOnly?(0,$.jsx)(c,{variant:`outlined`,size:`compact`,leftIcon:(0,$.jsx)(A,{}),tintColor:`var(--system-negative-strong)`,onClick:()=>{t!=null&&h.requestDelete(t)},disabled:m.saving,children:`Delete`}):null,footer:m.isReadOnly?(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsx)(c,{variant:`outlined`,onClick:m.switchToSaveAsNew,disabled:m.saving,children:`Save As New`}),m.hasViewModeChanges?(0,$.jsx)(c,{variant:`primary`,onClick:()=>void m.handleSave(),disabled:m.saving,children:m.saving?`Saving…`:`Save`}):null]}):(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(c,{variant:`primary`,onClick:()=>void m.handleSave(),disabled:m.isInvalid||m.saving,children:m.saving?`Saving…`:m.effectiveMode===`create`?`Create Profile`:`Save Changes`})}),children:(0,$.jsx)(Z,{editor:m,assistantId:e,connections:a,variant:`panel`})}),(0,$.jsx)(An,{...h.blockedDeleteModalProps})]})}function rr({value:e,profileOptions:t,disabled:n,onChange:r}){return(0,$.jsx)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] 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:`Advisor`}),(0,$.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`The profile your assistant consults for a second opinion when it wants to check a plan or review its own work.`})]}),(0,$.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:(0,$.jsx)(B,{value:e,onChange:r,options:t,placeholder:`Choose profile…`,className:`w-44`,menuMinWidth:280,menuAlign:`end`,disabled:n})})]})})}var ir=`__custom__`;function ar(e){return e?!!(e.profile||e.provider||e.model):!1}function or(e,t){let n=ar(e);return n===ar(t)?n?(e?.profile??null)===(t?.profile??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.model??null)===(t?.model??null):!0:!1}function sr({id:e,displayName:t,description:n,defaultProfileLabel:r,draft:i,profileOptions:a,onDraftChange:o,onToggle:s}){let c=ar(i),l=!i||!c?``:i.provider||i.model?ir:i.profile??``,u=l===ir,d=He(),f=d[0]??we[0],p=d.find(e=>e===i?.provider)??f,m=Ee(p).map(e=>({value:e.id,label:e.displayName})),h=!!i?.provider&&!i?.model;function g(t){t===`__custom__`?o(e,{profile:null,provider:f,model:Oe(f)??``}):t===``?o(e,null):o(e,{profile:t,provider:null,model:null})}function _(t){let n=Oe(t)??``;o(e,{...i??{},profile:null,provider:t,model:n})}function v(t){o(e,{...i??{},model:t})}return(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] 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,$.jsxs)(`span`,{className:`ml-1.5 text-body-small-default text-[var(--content-tertiary)] opacity-60`,children:[`· Default: `,r]})]})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c&&(0,$.jsx)(B,{value:l,onChange:g,options:a,className:`w-44`,menuMinWidth:280,menuAlign:`end`}),(0,$.jsx)(I,{checked:c,onChange:t=>s(e,t),"aria-label":`Override ${t}`})]})]}),c&&u&&(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:`Provider`}),(0,$.jsx)(B,{value:p??``,onChange:_,options:d.map(e=>({value:e,label:Fe[e]??e}))})]}),(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,$.jsx)(B,{value:i?.model??``,onChange:v,options:m})]})]}),h&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:`Pick a model`})]})]})}function cr({groups:e,drafts:t,buildProfileOptionsForRow:n,profileLabelFor:r,advisorMatchesSearch:i,onDraftChange:a,onToggle:o}){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:`No actions match your search.`}):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||!ar(n)?``:n.provider||n.model?ir:n.profile??``})(),s=e.shippedDefaultProfile??e.defaultProfile,c=s?r(s):null;return(0,$.jsx)(sr,{id:e.id,displayName:e.displayName,description:e.description,defaultProfileLabel:c,draft:t[e.id]??null,profileOptions:n(i===``||i===`__custom__`?null:i),onDraftChange:a,onToggle:o},e.id)})})]},e.id))})}function lr(e,t){let n={};for(let r of Object.keys(e)){let i=e[r]??null;ar(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 ur(e){let t={};for(let n of Object.keys(e))t[n]=null;return t}function dr({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(!or(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=>ar(e)&&!!e?.provider&&!e?.model),[c]),setDraft:(0,Q.useCallback)((e,t)=>{a(n=>({...n,[e]:t}))},[]),setAdvisor:(0,Q.useCallback)(e=>{s(e)},[]),buildSavePatch:(0,Q.useCallback)(()=>lr(c,i),[c,i]),buildResetPatch:(0,Q.useCallback)(()=>ur(c),[c])}}function fr({assistantId:e,onClose:t}){let n=d(),{data:r}=f({...Tt({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)(()=>Se(i,o),[i,o]),u=He(),p=ie(),m=(0,Q.useMemo)(()=>({requireOwnProviderAndModel:p}),[p]),h=Ct({onSuccess:t=>{Mt(n,{path:{assistant_id:e}},t)}}),[g,v]=(0,Q.useState)(``),[y,b]=(0,Q.useState)(!1),[x,S]=(0,Q.useState)(!1),{data:C,isLoading:w,isError:T,refetch:E}=f({...Et({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4,refetchOnWindowFocus:!1}),O=(0,Q.useMemo)(()=>(C?.callSites??[]).filter(e=>e.id!==`mainAgent`),[C]),ee=!w&&!T&&!!C,A=!!r,j=ee&&A,M=(0,Q.useMemo)(()=>O.map(e=>e.id),[O]),N=r?.llm?.advisorProfile??``,{drafts:P,advisorProfile:I,advisorDirty:L,callSiteDraftsDirty:B,hasUnsavedDrafts:V,hasValidationError:H,setDraft:U,setAdvisor:W,buildSavePatch:G,buildResetPatch:te}=dr({catalogCallSiteIds:M,persistedOverrides:s,persistedAdvisor:N,isSeeded:j}),K=(0,Q.useMemo)(()=>new Set(M),[M]),q=(0,Q.useCallback)(e=>l.find(t=>t.name===e)?.label??e,[l]),J=(0,Q.useCallback)(e=>({value:e.name,label:ke(e),...Ue(e,l,m)===`undispatchable`?{icon:(0,$.jsx)(_,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),tooltip:Re(e)}:{}}),[l,m]),ne=(0,Q.useMemo)(()=>Ge(l,[N],m).map(J),[l,N,J,m]),Y=(0,Q.useMemo)(()=>{let e=g.trim().toLowerCase();return e===``||`advisor`.includes(e)||`second opinion`.includes(e)},[g]),X=(0,Q.useMemo)(()=>Object.entries(s).some(([e,t])=>K.has(e)&&(t?.profile!=null||t?.provider!=null||t?.model!=null)),[s,K]),Z=(0,Q.useCallback)(e=>[...Ge(l,[e],m).map(J),{value:ir,label:`Custom`}],[l,J,m]),re=(0,Q.useMemo)(()=>{if(!g.trim())return O;let e=g.toLowerCase();return O.filter(t=>(t.displayName??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.domain??``).toLowerCase().includes(e))},[O,g]),ae=(0,Q.useMemo)(()=>{if(!C)return[];let e=C.domains.map(e=>e.id),t=new Map(C.domains.map(e=>[e.id,e])),n=[];for(let r of e){let e=re.filter(e=>e.domain===r);e.length>0&&n.push({domain:t.get(r),sites:e})}let r=new Set(e),i=re.filter(e=>!r.has(e.domain));return i.length>0&&n.push({domain:{id:`other`,displayName:`Other`},sites:i}),n},[C,re]),oe=(0,Q.useCallback)((e,t)=>{if(!t){U(e,null);return}let n=he(l,O.find(t=>t.id===e)?.defaultProfile,m);if(n)U(e,{profile:n});else{let t=u[0]??we[0];U(e,{provider:t,model:Oe(t)??``})}},[O,l,u,U,m]),se=(0,Q.useCallback)(async()=>{b(!0);try{let n=G();await h.mutateAsync({path:{assistant_id:e},body:{llm:{...B?{callSites:n}:{},...L?{advisorProfile:I}:{}}}}),t(),R.success(`Overrides saved.`)}catch(e){R.error(`Failed to save overrides. Please try again.`),a(e,{context:`call_site_overrides_save`})}finally{b(!1)}},[G,B,L,I,t,h,e]),ce=(0,Q.useCallback)(async()=>{b(!0);try{let n=te();await h.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:n}}}),t(),R.success(`Overrides reset.`)}catch(e){R.error(`Failed to reset overrides. Please try again.`),a(e,{context:`call_site_overrides_reset`})}finally{b(!1)}},[te,t,h,e]);return(0,$.jsxs)(an,{title:`Action Overrides`,closeVariant:`outlined`,onClose:t,footer:(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[X&&(0,$.jsx)(c,{variant:`outlined`,size:`compact`,onClick:()=>S(!0),disabled:y||!j,tintColor:`var(--system-negative-strong)`,className:`mr-auto`,children:`Reset to Defaults`}),(0,$.jsx)(c,{variant:`primary`,size:`compact`,onClick:()=>void se(),disabled:!V||H||y,children:y?(0,$.jsx)(D,{className:`h-4 w-4 animate-spin`}):`Save`})]}),children:[(0,$.jsx)(`p`,{className:`mb-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Customize which model profile specific actions should use. Uses your default profile if no override is set.`}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`mb-4`,children:(0,$.jsx)(F,{type:`search`,value:g,onChange:e=>v(e.target.value),placeholder:`Search actions…`,leftIcon:(0,$.jsx)(k,{className:`h-4 w-4`}),fullWidth:!0})}),A&&Y&&(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:`Advisor`}),(0,$.jsx)(rr,{value:I,profileOptions:ne,disabled:y,onChange:W})]}),w&&(0,$.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,$.jsx)(D,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}),T&&(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:`Couldn't load actions`}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Make sure your assistant is running`}),(0,$.jsx)(c,{variant:`outlined`,size:`compact`,onClick:()=>void E(),children:`Retry`})]}),!w&&!T&&C&&(0,$.jsx)(cr,{groups:ae,drafts:P,buildProfileOptionsForRow:Z,profileLabelFor:q,advisorMatchesSearch:Y,onDraftChange:U,onToggle:oe})]}),(0,$.jsx)(z,{open:x,title:`Reset to Defaults`,message:`Every action override will be reset and will follow its default. This cannot be undone.`,confirmLabel:`Reset to Defaults`,destructive:!0,onConfirm:()=>{S(!1),ce()},onCancel:()=>S(!1)})]})}function pr({mode:e,connection:t,assistantId:n,existingNames:r,connections:i,variant:a=`modal`,onSave:o,onCancel:s}){let[l,u]=(0,Q.useState)(t?.label??``),f=t?.name??``,p=t?.provider??`anthropic`,m=t?.auth.type??`api_key`,[g,_]=(0,Q.useState)(()=>t?.auth.type===`api_key`?t.auth.credential:t?``:`credential/anthropic/api_key`),[v,y]=(0,Q.useState)(t?.baseUrl??``),[b,x]=(0,Q.useState)(()=>t?.models?t.models.map(e=>e.id).join(`, `):``),[S,C]=(0,Q.useState)(!1),[w,T]=(0,Q.useState)(null),E=p===`openai-compatible`,[D,O]=(0,Q.useState)(``),[ee,k]=(0,Q.useState)(!1),A=d(),j=(0,Q.useMemo)(()=>fe(g),[g]),M=m===`api_key`&&j!==null,{hasStoredCredential:N,isLoading:P}=X({assistantId:n,credentialKind:`credential`,credentialName:j?`${j.service}:${j.field}`:``,enabled:M}),{credentials:I}=et({assistantId:n,enabled:m===`api_key`});(0,Q.useEffect)(()=>{let e=t?.provider??`anthropic`;u(t?.label??``),t?.auth.type===`api_key`?_(t.auth.credential):_(t?``:`credential/${e}/api_key`),T(null),y(t?.baseUrl??``),x(t?.models?t.models.map(e=>e.id).join(`, `):``),O(``),k(!1)},[t]);let R=l.trim()!==(t?.label??``).trim(),z=E&&R?ce(l,i,t?.name):null,B=f.trim().length>0&&z===null;async function V(){if(B){C(!0),T(null);try{let e;if(m===`api_key`){let t=g.trim()||`credential/${p}/api_key`,r=D.trim();if(r){k(!0);try{let e=fe(t);await dt({path:{assistant_id:n},body:e?{type:`credential`,name:`${e.service}:${e.field}`,value:r}:{type:`api_key`,name:p,value:r},throwOnError:!0});let i=q(n,`credential`,e?`${e.service}:${e.field}`:``);A.setQueryData(i,!0),A.invalidateQueries({queryKey:wt({path:{assistant_id:n}})})}catch{T(`Failed to save API key. Please try again.`);return}finally{k(!1)}}e={type:`api_key`,credential:t}}else if(t)e=t.auth;else{T(`Nothing to edit. Close and try again.`);return}let r=l.trim()||null,i={auth:e,label:r,...E&&{base_url:v.trim()||null,models:b.trim()?b.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:a,error:s,response:c}=await ct({path:{assistant_id:n,name:t?.name??f.trim()},body:i});if(!c?.ok){T(pe(c?.status,s)??Y(c?.status));return}if(!a){T(`Server returned an empty response. Please try again.`);return}o(a)}catch{T(`Failed to save provider. Please try again.`)}finally{C(!1)}}}let H=I.filter(e=>e.service===p),W=e!==`create`&&t?.auth.type===`api_key`,G=H.length>0||W,te=U(`Enter your API key`,N);if(e===`create`)return(0,$.jsx)(ae,{variant:a===`panel`?`inline`:`modal`,assistantId:n,existingNames:r,connections:i,defaultProviderType:p,onCreated:o,onCancel:s});let K=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,$.jsx)(F,{value:l,onChange:e=>u(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0}),z?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:J[z]}):null]}),E&&(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:`Base URL`}),(0,$.jsx)(F,{value:v,onChange:e=>y(e.target.value),placeholder:`https://api.example.com/v1`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,$.jsx)(F,{value:b,onChange:e=>x(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),m===`api_key`&&(0,$.jsx)(le,{apiKeyValue:D,onApiKeyChange:O,credential:g,onCredentialChange:_,isLoadingCredential:P,apiKeyPlaceholder:te,provider:p,providerCredentials:H,showAdvancedSection:G,onError:T}),m===`oauth_subscription`&&(0,$.jsx)(ue,{assistantId:n,onConnected:o}),w&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:w})]}),ne=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(c,{variant:`ghost`,size:`compact`,onClick:s,children:`Cancel`}),(0,$.jsx)(c,{variant:`primary`,size:`compact`,disabled:!B||S||ee,onClick:()=>void V(),children:S?`Saving…`:`Save Changes`})]});return a===`panel`?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[K,(0,$.jsx)(`div`,{className:`flex justify-end gap-2`,children:ne})]}):(0,$.jsxs)(L.Content,{size:`md`,children:[(0,$.jsxs)(L.Header,{children:[(0,$.jsx)(L.Title,{children:`Edit Provider`}),(0,$.jsx)(L.Description,{children:t?`Editing ${de(t)}.`:`Edit provider settings.`})]}),(0,$.jsx)(L.Body,{children:K}),(0,$.jsx)(L.Footer,{children:ne})]})}function mr({assistantId:e,connectionName:t,onClose:n}){let r=d(),{data:i}=f(St({path:{assistant_id:e}})),a=(0,Q.useMemo)(()=>i?.connections??[],[i]),o=(0,Q.useMemo)(()=>t==null?void 0:a.find(e=>e.name===t),[t,a]),s=t!=null&&i!=null&&o==null;(0,Q.useEffect)(()=>{s&&n()},[s,n]);function c(){r.invalidateQueries({queryKey:yt({path:{assistant_id:e}})}),r.invalidateQueries({queryKey:At({path:{assistant_id:e}})}),n()}return(0,$.jsx)(an,{title:o?de(o):`Add Provider`,closeVariant:`outlined`,onClose:n,children:t==null||o!=null?(0,$.jsx)(pr,{mode:o?`edit`:`create`,connection:o,variant:`panel`,assistantId:e,existingNames:a.map(e=>e.name),connections:a,onSave:c,onCancel:n}):null})}var hr={vellum:{provider:`vellum`},deepgram:{provider:`deepgram`,credentialService:`deepgram`},openai:{provider:`openai-whisper`,credentialService:`openai`}},gr={vellum:`vellum`,deepgram:`deepgram`,"openai-whisper":`openai`},_r=`deepgram`;function vr({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=rn(),s=e??o,c=vt(),l=d(),[u]=(0,Q.useState)(()=>se.filter(e=>!e.requiresNativeDictation||je())),p=_r,{data:m}=f({...Tt({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?gr[g]:void 0;if(e&&u.some(t=>t.id===e))return e;let n=t(Pe,p);return u.some(e=>e.id===n)?n:p},[g,u,p]),v=!!g,[y,b]=wn(_),{available:x,currentCode:S,configuredProviderId:C,daemonDefaultsToMulti:w,selectLanguage:T,selecting:E}=Zt(s),[D,O]=(0,Q.useState)(!1),ee=x&&y===_&&(hr[y]?.provider===C||!!g&&!gr[g]),[k,A]=(0,Q.useState)(``),[M,N]=(0,Q.useState)(!1),[P,I]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{let e=t(Pe,p);e===`macos-native`&&!u.some(t=>t.id===e)&&n(Pe,p)},[u,p]);let L=(0,Q.useMemo)(()=>u.find(e=>e.id===y)??u[0],[u,y]),z=L.apiKeyPlaceholder!==void 0;(0,Q.useEffect)(()=>{N(t(Be+y,``).length>0),A(``)},[y]);let V=(0,Q.useMemo)(()=>{let e=y!==_,t=k.trim().length>0;return e||t},[y,_,k]),H=(0,Q.useCallback)(async()=>{let e=k.trim();n(Pe,y),e.length>0&&n(Be+y,e);let r=hr[y];I(!0);try{if(r?.credentialService){let n=e.length>0?e:t(Be+y,``);if(n.length>0){let{response:e}=await ft({path:{assistant_id:s},body:{service:r.credentialService,field:`api_key`,value:n,label:`${L.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??_r,{response:t}=await ut({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&&N(!0),A(``),l.invalidateQueries({queryKey:Ot({path:{assistant_id:s}})}),R.success(`Speech-to-text settings saved`),!0}catch(e){return R.error(e instanceof Error?e.message:`Failed to save speech-to-text settings`),!1}finally{I(!1)}},[s,y,k,L,_,v,g,l]);(0,Q.useEffect)(()=>{a?.({hasChanges:V,saving:P,save:H})},[a,V,P,H]);let U=(0,Q.useCallback)(()=>{n(Be+y,``),N(!1),A(``)},[y]),W=M?`•••••••• (Enter a new key to replace)`:L.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)(B,{value:y,onChange:b,options:u.map(e=>({value:e.id,label:e.displayName})),"aria-label":`STT provider`})]}),ee&&(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)(ve,{"aria-label":`Spoken language`,"aria-haspopup":`dialog`,onClick:()=>O(!0),value:$t(S,C,w)}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Applies from your next spoken turn.`}),(0,$.jsx)(dn,{open:D,onOpenChange:O,title:`Spoken language`,currentCode:S,configuredProviderId:C,daemonDefaultsToMulti:w,selectLanguage:T,selecting:E})]}),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)(F,{type:`password`,value:k,onChange:e=>A(e.target.value),placeholder:W,fullWidth:!0})]}),L.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)(j,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-mid-strong)]`}),(0,$.jsx)(`span`,{children:L.setupWarning})]}),!i&&L.credentialsGuide&&(0,$.jsx)(yn,{guide:L.credentialsGuide}),y===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Transcription runs through your Vellum account.`}),(!r||M)&&(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[!r&&(0,$.jsx)(_n,{onClick:H,disabled:!V||P}),M&&(0,$.jsx)(vn,{onClick:U})]})]})}function yr(){return(0,$.jsx)(mn,{title:`Speech-to-Text`,subtitle:`Configure how your assistant transcribes speech`,children:(0,$.jsx)(vr,{})})}async function br(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 xr(n,r,i):t===`deepgram`?await Sr(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 xr(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 Cr(i,`ElevenLabs rejected the request.`)}}async function Sr(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 Cr(n,`Deepgram rejected the request.`)}}async function Cr(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 wr({assistantId:e,value:t,onChange:n,className:r}){let[i,a]=(0,Q.useState)(!1),{voices:o}=tn(e);if(o.length===0)return null;let s=o.find(e=>e.model===t)??o[0];return(0,$.jsxs)(P.Root,{open:i,onOpenChange:a,children:[(0,$.jsx)(P.Trigger,{asChild:!0,children:(0,$.jsx)(ve,{"aria-label":`Voice`,value:s?Qt(s.description):`Select a voice`,className:r})}),(0,$.jsx)(P.Content,{side:`bottom`,align:`start`,className:`w-[var(--radix-popover-trigger-width)] p-1`,children:(0,$.jsx)(en,{assistantId:e,value:t,onChange:n,onSelect:()=>a(!1),showSource:!0})})]})}var Tr={elevenlabs:`voiceId`,"fish-audio":`referenceId`,xai:`voiceId`};function Er({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=rn(),s=e??o,l=tt.use.name()??`your assistant`,u=vt(),p=d(),{data:m}=f({...Nt({path:{assistant_id:s}}),enabled:u,staleTime:1/0}),h=(0,Q.useMemo)(()=>{let e=m?.providers;if(!e)return te;if(e.some(e=>e.id===`vellum`))return e;let t=te.find(e=>e.id===`vellum`);return t?[t,...e]:e},[m]),{data:g}=f({...Tt({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]=wn(b),[w,T]=(0,Q.useState)(``),[D,O]=(0,Q.useState)(``),[ee,k]=(0,Q.useState)(``),[A,j]=(0,Q.useState)(!1),[M,N]=(0,Q.useState)(!1),[P,I]=(0,Q.useState)(!1),{voices:L,defaultModel:z,fetched:V}=nn(s,{enabled:S===`vellum`}),H=_?.providers?.vellum?.model??z??``,[U,W]=wn(H),G=L.find(e=>e.model===U)??L[0],[K,q]=(0,Q.useState)(null),J=L.some(e=>e.model===H),ne=K??(V&&H!==``&&!J),Y=(0,Q.useMemo)(()=>h.find(e=>e.id===S)??h[0],[S,h]),X=S===`vellum`&&Y.supportsVoiceSelection&&U.trim()!==``&&U.trim()!==H,Z=(0,Q.useCallback)(e=>{let n=t(De+e,``),r=t(me+e,``);j(n.length>0),O(r),k(r),T(``)},[]);(0,Q.useEffect)(()=>{Z(S)},[S,Z]);let re=(0,Q.useMemo)(()=>{let e=S!==b,t=w.trim().length>0,n=D.trim()!==ee;return e||t||n||X},[S,b,w,D,ee,X]),ie=(0,Q.useCallback)(async()=>{let e=w.trim(),r=D.trim(),i=Y.id;n(Te,i),e.length>0&&n(De+i,e),n(me+i,r);let a=e.length>0?e:t(De+i,``),o=Tr[i];I(!0);try{if(a.length>0){let{response:e}=await ft({path:{assistant_id:s},body:{service:i,field:`api_key`,value:a,label:`${Y.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}}}:{},...X?{providers:{vellum:{model:U.trim()}}}:{}};if(Object.keys(e).length>0){let{response:t}=await ut({path:{assistant_id:s},body:{services:{tts:e}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return j(a.length>0),k(r),T(``),p.invalidateQueries({queryKey:Ot({path:{assistant_id:s}})}),R.success(`Text-to-speech settings saved`),!0}catch(e){return R.error(e instanceof Error?e.message:`Failed to save text-to-speech settings`),!1}finally{I(!1)}},[s,S,U,X,w,D,Y,b,x,p]);(0,Q.useEffect)(()=>{a?.({hasChanges:re,saving:P,save:ie})},[a,re,P,ie]);let ae=(0,Q.useCallback)(()=>{n(De+S,``),j(!1),T(``)},[S]),oe=(0,Q.useCallback)(async()=>{N(!0);try{let e=t(De+S,``),n=w.trim(),r=n.length>0?n:e;if(r.length===0){R.error(`Save an API key for this provider before testing.`);return}let i=t(me+S,``),a=D.trim(),o=await br({provider:S,apiKey:r,voiceId:a.length>0?a:i,text:`Hey! It's ${l}. How does this sound?`});if(o.kind!==`audio`){R.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{N(!1)}},[l,w,S,D]),se=A?`•••••••• (Enter a new key to replace)`:Y.apiKeyPlaceholder,ce=S===`vellum`,le=ce&&Y.supportsVoiceSelection,ue=(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:()=>{q(!1),L.some(e=>e.model===U)||W(z||L[0]?.model||``)},children:[(0,$.jsx)(E,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Choose from catalog`]}),de=le&&ne&&L.length>0?ue: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)(B,{value:S,onChange:C,options:h.map(e=>({value:e.id,label:e.displayName})),"aria-label":`TTS provider`})]}),!ce&&(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)(F,{type:`password`,value:w,onChange:e=>T(e.target.value),placeholder:se,fullWidth:!0})]}),le&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice`}),ne?(0,$.jsx)(F,{type:`text`,value:U,onChange:e=>W(e.target.value),placeholder:`Enter a voice ID`,"aria-label":`Custom voice ID`,fullWidth:!0}):G?(0,$.jsx)(wr,{assistantId:s,value:U,onChange:W}):V&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`No managed voices are currently available.`})]}),Y.supportsVoiceSelection&&!ce&&(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)(F,{type:`text`,value:D,onChange:e=>O(e.target.value),placeholder:`Enter a voice ID`,fullWidth:!0})]}),!i&&!ce&&(0,$.jsx)(yn,{guide:Y.credentialsGuide}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!ce&&(0,$.jsx)(c,{variant:`outlined`,onClick:oe,disabled:M,children:M?`Testing…`:`Test`}),(0,$.jsxs)(`div`,{className:`ml-auto flex items-center gap-3`,children:[de,!r&&(0,$.jsx)(_n,{onClick:ie,disabled:!re||P}),A&&!ce&&(0,$.jsx)(vn,{onClick:ae})]})]})]})}function Dr(){return(0,$.jsx)(mn,{id:`text-to-speech`,title:`Text-to-Speech`,subtitle:`Configure how your assistant speaks`,children:(0,$.jsx)(Er,{})})}var Or=`default`;function kr(){let e=rn(),i=d(),{data:o}=f({...Tt({path:{assistant_id:e}}),staleTime:3e4}),s=Ct({onSuccess:t=>{Mt(i,{path:{assistant_id:e}},t)}}),c=Cn(),l=(0,Q.useMemo)(()=>o?o.services?.[`web-fetch`]?.provider||t(`vellum:ai:webFetchProvider`,Or):t(Ze,Or),[o]),[u,p]=(0,Q.useState)(!1),[m,h]=wn(l),[g,_]=(0,Q.useState)(``),v=ye.has(m),{hasStoredCredential:y}=X({assistantId:e,credentialKind:`api_key`,credentialName:m,enabled:v}),b=g.trim().length>0,x=u||v&&!y&&!b||m===l&&!b,S=U(xe[m]??`Enter your API key`,y),C=(0,Q.useCallback)(async()=>{p(!0);let t=g.trim(),r=v&&t.length>0;try{r&&await c(m,t),await s.mutateAsync({path:{assistant_id:e},body:{services:{"web-fetch":{provider:m}}}}).catch(e=>{throw R.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{p(!1);return}p(!1);try{if(n(Ze,m),r){let r=Je(m);r&&n(r,t);let a=q(e,`api_key`,m);i.setQueryData(a,!0),i.invalidateQueries({queryKey:a}),_(``)}R.success(`Web fetch settings saved.`)}catch(e){a(e,{context:`settings-ai-web-fetch-persist-local`}),R.error(`Saved, but local preferences could not be written.`)}},[v,s,c,i,e,g,m]),w=(0,Q.useCallback)(()=>{let e=Je(m);e&&r(e),_(``),h(Or),n(Ze,Or)},[m,h]);return(0,$.jsx)(mn,{id:`web-fetch`,title:`Web Fetch`,subtitle:`Configure how your assistant reads individual web pages`,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:`Provider`}),(0,$.jsx)(B,{value:m,onChange:h,options:Xe.map(e=>({value:e,label:Ne[e]??e}))})]}),v&&(0,$.jsx)(F,{label:`API Key`,type:`password`,value:g,onChange:e=>_(e.target.value),placeholder:S,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(_n,{onClick:C,disabled:x}),u&&(0,$.jsx)(D,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),v&&(0,$.jsx)(vn,{onClick:w,filled:!0})]})]})})}var Ar=`0.10.12`;function jr(){return rt(Ar)}function Mr(){let e=rn(),i=d(),o=vt(),{data:s}=f({...Tt({path:{assistant_id:e}}),enabled:o,staleTime:3e4}),c=Ct({onSuccess:t=>{Mt(i,{path:{assistant_id:e}},t)}}),l=Cn(),u=(0,Q.useMemo)(()=>{if(!s)return t($e,`inference-provider-native`);let e=s.services?.[`web-search`];return(e?.mode===`managed`&&e?.provider!==`inference-provider-native`?`vellum`:e?.provider)||t(`vellum:ai:webSearchProvider`,`inference-provider-native`)},[s]),[p,m]=(0,Q.useState)(!1),[h,g]=wn(u),[_,v]=(0,Q.useState)(``),y=Ae.has(h),{hasStoredCredential:b}=X({assistantId:e,credentialKind:`api_key`,credentialName:h,enabled:y}),x=_.trim().length>0,S=p||y&&!b&&!x||h===u&&!x,C=U(Ke[h]??`Enter your API key`,b),w=(0,Q.useCallback)(async()=>{m(!0);let t=_.trim(),r=Le(h),o=y&&t.length>0;try{o&&await l(h,t),await it();let n=h===`vellum`?jr()?{provider:`vellum`,mode:`managed`}:{mode:`managed`}:{provider:h,mode:`your-own`};await c.mutateAsync({path:{assistant_id:e},body:{services:{"web-search":n}}}).catch(e=>{throw R.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{m(!1);return}m(!1);try{if(n($e,h),o){r&&n(r,t);let a=q(e,`api_key`,h);i.setQueryData(a,!0),i.invalidateQueries({queryKey:a}),v(``)}R.success(`Web search settings saved.`)}catch(e){a(e,{context:`settings-ai-web-search-persist-local`}),R.error(`Saved, but local preferences could not be written.`)}},[y,c,l,i,e,_,h]),T=(0,Q.useCallback)(()=>{let e=Le(h);e&&r(e),v(``),g(`inference-provider-native`),n($e,`inference-provider-native`)},[h,g]);return(0,$.jsx)(mn,{title:`Web Search`,subtitle:`Configure how your assistant should search the web`,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:`Provider`}),(0,$.jsx)(B,{"aria-label":`Web search provider`,value:h,onChange:g,options:ze.map(e=>({value:e,label:ge[e]??e}))})]}),h===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Search runs through your Vellum account.`}),y&&(0,$.jsx)(F,{label:`API Key`,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)(_n,{onClick:w,disabled:S}),p&&(0,$.jsx)(D,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),y&&(0,$.jsx)(vn,{onClick:T,filled:!0})]})]})})}function Nr(){let e=rn(),t=Pt(),[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)(hn,{}),(0,$.jsx)(er,{panel:n,onOpenPanel:r,onClosePanel:()=>r(null)}),(0,$.jsx)(Mr,{}),(0,$.jsx)(kr,{}),(0,$.jsx)(Sn,{}),(0,$.jsx)(On,{}),(0,$.jsx)(Dr,{}),(0,$.jsx)(yr,{})]}),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)(fr,{assistantId:e,onClose:()=>r(null)},a):o?(0,$.jsx)(mr,{assistantId:e,connectionName:n.kind===`provider`?n.name:null,onClose:()=>r(null)},a):(0,$.jsx)(nr,{assistantId:e,profileName:n.kind===`profile`?n.name:null,onClose:()=>r(null)},a):null;return s&&t?(0,$.jsx)(sn,{children:s}):s?(0,$.jsx)(cn,{storageKey:`aiSettingsDetailDrawerWidth`,detailKey:a,section:i,detail:s}):i}export{Nr as AiPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DWxxMNqc.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./input-DF52UqKH.js";import{t as s}from"./dropdown-CLoJyNei.js";import{t as c}from"./is-electron-Djuya72b.js";import{d as l}from"./routes-DOlsNBq5.js";import{t as u}from"./onboarding-layout-BJGGWHC5.js";import{a as d,c as f,i as p,o as m,r as h,s as g}from"./provider-key-DttR9fDs.js";import"./onboarding-step-layout-Cm0PD1db.js";var _=e(t(),1),v=a();function y(){let e=i(),[t]=r(),a=t.get(`hosting`),y=c(),b=h(),[x,S]=(0,_.useState)(()=>b?.provider??d.id),[C,w]=(0,_.useState)(()=>b?.key??``),[T,E]=(0,_.useState)(()=>b?.model??g(b?.provider??d.id)??``),[D,O]=(0,_.useState)(()=>b?.baseUrl??``),[k,A]=(0,_.useState)(()=>b?.customModels??``),j=f(x)??d,M=j.models??[],N=j.requiresKey,P=M.length>0,F=x===`openai-compatible`,I=(!(N&&!F)||C.trim().length>0)&&(!P||T.trim().length>0)&&(!F||D.trim().length>0&&k.trim().length>0);return(0,v.jsx)(u,{children:(0,v.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${y?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`px-6 py-16`} text-[var(--content-default)]`,children:[(0,v.jsx)(`h1`,{className:y?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Connect a Model Provider`}),(0,v.jsx)(`p`,{className:`text-center text-body-medium-lighter text-[var(--content-tertiary)] ${y?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Choose the model provider your assistant should use.`}),(0,v.jsxs)(`div`,{className:`flex w-full flex-col gap-4 ${y?`mt-8`:`mt-10`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,v.jsx)(s,{"aria-label":`Provider`,value:x,onChange:e=>{let t=f(e);t&&(S(t.id),w(``),E(g(t.id)??``))},options:m.map(e=>({value:e.id,label:e.displayName}))})]}),M.length>0&&(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,v.jsx)(s,{"aria-label":`Model`,value:T,onChange:E,options:M.map(e=>({value:e.id,label:e.displayName}))})]}),F&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,v.jsx)(o,{type:`text`,placeholder:`http://localhost:1234/v1`,value:D,onChange:e=>O(e.target.value),fullWidth:!0})]}),(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,v.jsx)(o,{type:`text`,placeholder:`model-1, model-2`,value:k,onChange:e=>A(e.target.value),fullWidth:!0}),(0,v.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),N&&(0,v.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,v.jsx)(o,{type:`password`,label:`${j.displayName} API Key`,placeholder:j.apiKeyPlaceholder??`Enter your API key`,value:C,onChange:e=>w(e.target.value),className:`touch-mobile:text-[16px]`,fullWidth:!0}),j.docsUrl&&(0,v.jsxs)(`p`,{className:`self-start text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`Don't have it?`,` `,(0,v.jsx)(`a`,{href:j.docsUrl,target:`_blank`,rel:`noreferrer`,className:`text-[var(--content-default)] underline`,children:`Get an API key here`})]})]})]}),(0,v.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${y?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,v.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!I,onClick:()=>{if(!I)return;let t=T.trim()||g(x);p({provider:x,key:C.trim(),...t?{model:t}:{},...F?{baseUrl:D.trim(),customModels:k.trim()}:{}}),e(a?`${l.onboarding.privacy}?hosting=${a}`:l.onboarding.privacy)},className:y?void 0:`h-11 text-base`,children:`Continue`}),(0,v.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>{e(l.onboarding.hosting)},className:y?void 0:`h-11 text-base`,children:`Back`})]})]})})}export{y as ApiKeyScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./input-Dp4TsVxE.js";import{t as s}from"./dropdown-B4S4UoV4.js";import{t as c}from"./is-electron-Djuya72b.js";import{d as l}from"./routes-DOlsNBq5.js";import{t as u}from"./onboarding-layout-CERIZpQl.js";import{a as d,c as f,i as p,o as m,r as h,s as g}from"./provider-key-DttR9fDs.js";import"./onboarding-step-layout-Cm0PD1db.js";var _=e(t(),1),v=a();function y(){let e=i(),[t]=r(),a=t.get(`hosting`),y=c(),b=h(),[x,S]=(0,_.useState)(()=>b?.provider??d.id),[C,w]=(0,_.useState)(()=>b?.key??``),[T,E]=(0,_.useState)(()=>b?.model??g(b?.provider??d.id)??``),[D,O]=(0,_.useState)(()=>b?.baseUrl??``),[k,A]=(0,_.useState)(()=>b?.customModels??``),j=f(x)??d,M=j.models??[],N=j.requiresKey,P=M.length>0,F=x===`openai-compatible`,I=(!(N&&!F)||C.trim().length>0)&&(!P||T.trim().length>0)&&(!F||D.trim().length>0&&k.trim().length>0);return(0,v.jsx)(u,{children:(0,v.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${y?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`px-6 py-16`} text-[var(--content-default)]`,children:[(0,v.jsx)(`h1`,{className:y?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Connect a Model Provider`}),(0,v.jsx)(`p`,{className:`text-center text-body-medium-lighter text-[var(--content-tertiary)] ${y?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Choose the model provider your assistant should use.`}),(0,v.jsxs)(`div`,{className:`flex w-full flex-col gap-4 ${y?`mt-8`:`mt-10`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,v.jsx)(s,{"aria-label":`Provider`,value:x,onChange:e=>{let t=f(e);t&&(S(t.id),w(``),E(g(t.id)??``))},options:m.map(e=>({value:e.id,label:e.displayName}))})]}),M.length>0&&(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,v.jsx)(s,{"aria-label":`Model`,value:T,onChange:E,options:M.map(e=>({value:e.id,label:e.displayName}))})]}),F&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,v.jsx)(o,{type:`text`,placeholder:`http://localhost:1234/v1`,value:D,onChange:e=>O(e.target.value),fullWidth:!0})]}),(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,v.jsx)(o,{type:`text`,placeholder:`model-1, model-2`,value:k,onChange:e=>A(e.target.value),fullWidth:!0}),(0,v.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),N&&(0,v.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,v.jsx)(o,{type:`password`,label:`${j.displayName} API Key`,placeholder:j.apiKeyPlaceholder??`Enter your API key`,value:C,onChange:e=>w(e.target.value),className:`touch-mobile:text-[16px]`,fullWidth:!0}),j.docsUrl&&(0,v.jsxs)(`p`,{className:`self-start text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`Don't have it?`,` `,(0,v.jsx)(`a`,{href:j.docsUrl,target:`_blank`,rel:`noreferrer`,className:`text-[var(--content-default)] underline`,children:`Get an API key here`})]})]})]}),(0,v.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${y?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,v.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!I,onClick:()=>{if(!I)return;let t=T.trim()||g(x);p({provider:x,key:C.trim(),...t?{model:t}:{},...F?{baseUrl:D.trim(),customModels:k.trim()}:{}}),e(a?`${l.onboarding.privacy}?hosting=${a}`:l.onboarding.privacy)},className:y?void 0:`h-11 text-base`,children:`Continue`}),(0,v.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>{e(l.onboarding.hosting)},className:y?void 0:`h-11 text-base`,children:`Back`})]})]})})}export{y as ApiKeyScreen};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DWxxMNqc.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-DFWryB3N.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import"./src-CqJTlX1y.js";import{t as s}from"./external-link-oGdSxU8S.js";import{t as c}from"./puzzle-j1BAxwgg.js";import{n as l}from"./toast-DFRsyumK.js";import{t as u}from"./confirm-dialog-CsxDM9Vd.js";import{n as d,t as f}from"./create-selectors-B5FxuP1q.js";import{t as p}from"./sdk.gen-Dy1Bb8sS.js";import{i as m}from"./typed-storage-F5BFQH9m.js";import{n as h}from"./react-query.gen-DYPHpypm.js";import{a as g}from"./viewer-store-CW1-onra.js";import{t as _}from"./haptics-Cl5TawvV.js";import{t as v}from"./pointer-Di9xGve4.js";import{t as y}from"./misc-D9--6g1n.js";import{t as b}from"./edge-swipe-arbiter-store-DIUzg8Po.js";import{i as x}from"./sandbox-bridge-BNwuZJHp.js";var S=o(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),C=o(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),w=e(t(),1),T=36,E=.8,D=8,O=.35;function k({enabled:e,leadingActions:t,trailingActions:n}){let r=(t?.length??0)*72,i=(n?.length??0)*72,[a,o]=(0,w.useState)(0),[s,c]=(0,w.useState)(!1),[l,u]=(0,w.useState)(`none`),d=b.use.registerOpenRow(),f=b.use.unregisterOpenRow();(0,w.useEffect)(()=>{if(l!==`none`)return d(),f},[l,d,f]);let p=(0,w.useRef)(null),m=(0,w.useCallback)(()=>{p.current=null,c(!1),o(0)},[]),h=(0,w.useCallback)(()=>{o(0),u(`none`)},[]);return{offset:a,isDragging:s,revealedSide:l,leadingWidth:r,trailingWidth:i,onTouchStart:(0,w.useCallback)(r=>{if(!e||!t&&!n)return;if(r.touches.length!==1){m();return}let i=r.touches[0];p.current={touchId:i.identifier,startX:i.clientX,startY:i.clientY,axis:`undecided`,lastDx:0,startOffset:a}},[e,t,n,a,m]),onTouchMove:(0,w.useCallback)(e=>{let t=p.current;if(!t)return;if(e.touches.length!==1){m();return}let n=e.touches[0];if(n.identifier!==t.touchId)return;let a=n.clientX-t.startX,s=n.clientY-t.startY;if(t.lastDx=a,t.axis===`undecided`){if(Math.abs(a)<D&&Math.abs(s)<D)return;if(Math.abs(s)>Math.abs(a)*E){p.current=null;return}t.axis=`horizontal`,c(!0)}if(t.axis!==`horizontal`)return;if(Math.abs(a)<T&&Math.abs(s)>Math.abs(a)*E){m(),o(t.startOffset);return}let l=t.startOffset+a,u=r,d=-i;l>u?l=u+(l-u)*O:l<d&&(l=d+(l-d)*O),(t.startOffset>0&&l<0&&i===0||t.startOffset<0&&l>0&&r===0)&&(l*=O),o(l)},[r,i,m]),onTouchEnd:(0,w.useCallback)(e=>{let t=p.current;if(!t){m();return}if(t.axis===`undecided`){p.current=null,c(!1);return}if(t.axis!==`horizontal`){m();return}if(e.touches.length>0){m();return}let n=Array.from(e.changedTouches).find(e=>e.identifier===t.touchId),a=n?n.clientX-t.startX:t.lastDx,s=t.startOffset+a;s<=-T&&i>0?(_.light(),o(-i),u(`trailing`)):s>=T&&r>0?(_.light(),o(r),u(`leading`)):(o(0),u(`none`)),p.current=null,c(!1)},[r,i,m]),onTouchCancel:(0,w.useCallback)(()=>{h(),m()},[h,m]),close:h}}var A=i();function j({action:e,onAfterSelect:t,hidden:n=!1}){let r=(0,w.useCallback)(()=>{e.onSelect(),t()},[e,t]),i=e.icon;return(0,A.jsxs)(`button`,{type:`button`,"aria-label":e.label,"aria-hidden":n,tabIndex:n?-1:0,onClick:r,className:a(`flex shrink-0 flex-col items-center justify-center gap-1`,`touch-mobile:transition-none`),style:{width:72,color:e.variant===`destructive`?`var(--aux-white)`:`var(--content-inset)`,background:e.variant===`destructive`?`var(--system-negative-strong)`:`var(--primary-base)`},children:[(0,A.jsx)(i,{size:18}),(0,A.jsx)(`span`,{className:`text-[10px] font-medium leading-none`,children:e.label})]})}var M=(0,w.forwardRef)(function({children:e,leadingActions:t,trailingActions:n,enabled:r=v(),className:i,style:o,...s},c){let l=r&&((t?.length??0)>0||(n?.length??0)>0),{offset:u,isDragging:d,onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,close:g}=k({enabled:l,leadingActions:t,trailingActions:n});return l?(0,A.jsxs)(`div`,{ref:c,className:a(`relative overflow-hidden`,i),...s,style:{...o,touchAction:`pan-y`},onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,children:[n&&n.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 right-0 flex`,"aria-hidden":u>=0,style:u>=0?{pointerEvents:`none`}:void 0,children:n.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u>=0},e.id))}):null,t&&t.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 left-0 flex`,"aria-hidden":u<=0,style:u<=0?{pointerEvents:`none`}:void 0,children:t.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u<=0},e.id))}):null,(0,A.jsx)(`div`,{className:a(`relative bg-[var(--surface-overlay)] transition-transform`,d&&`transition-none`),style:{transform:`translateX(${u}px)`,zIndex:1},children:e})]}):(0,A.jsx)(`div`,{ref:c,className:i,style:o,...s,children:e})});function N(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.appId==`string`&&typeof t.pinnedOrder==`number`&&Number.isFinite(t.pinnedOrder)&&typeof t.name==`string`&&(t.icon===void 0||typeof t.icon==`string`)}function P(e){let t=JSON.parse(e);return Array.isArray(t)?t.filter(N):null}var F=m({key:`vellum:pinnedApps`,scope:`user`,parse:P,serialize:JSON.stringify,fallback:[]}),I=F.load;F.save;function L(e){let t=F.load();if(t.some(t=>t.appId===e.id))return;let n=t.reduce((e,t)=>Math.max(e,t.pinnedOrder),0);F.save([...t,{appId:e.id,pinnedOrder:n+1,name:e.name,icon:e.icon}])}function R(e){let t=F.load().filter(t=>t.appId!==e);t=t.sort((e,t)=>e.pinnedOrder-t.pinnedOrder).map((e,t)=>({...e,pinnedOrder:t+1})),F.save(t)}var z=new Set;function B(){let e=I();return{pinnedApps:e,pinnedAppIds:new Set(e.map(e=>e.appId))}}var V=f(d()((e,t)=>({...B(),togglePin:n=>{t().pinnedAppIds.has(n.id)?t().unpin(n.id):(L(n),e(B()))},unpin:n=>{if(t().pinnedAppIds.has(n)){R(n),e(B());for(let e of z)e(n)}},isPinned:e=>t().pinnedAppIds.has(e),onUnpin:e=>(z.add(e),()=>{z.delete(e)})})));function H({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,A.jsx)(u,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function U(e){let t=r(),n=V.use.togglePin(),i=V.use.pinnedAppIds(),[a,o]=(0,w.useState)(null),[s,c]=(0,w.useState)(!1);return{pendingDelete:a,isDeleting:s,requestDelete:o,confirmDelete:(0,w.useCallback)(async()=>{if(!(!a||s)){c(!0);try{await p({path:{assistant_id:e,id:a.id},throwOnError:!0}),g(e,a.id),t.invalidateQueries({queryKey:h({path:{assistant_id:e}})}),i.has(a.id)&&n(a),o(null)}catch(e){l.error(e instanceof Error?e.message:`Failed to delete app`)}finally{c(!1)}}},[a,s,e,i,n,t]),cancelDelete:(0,w.useCallback)(()=>{s||o(null)},[s])}}function W({name:e,description:t,icon:r,loadHtml:i,isPinned:a=!1,isLoading:o=!1,isOpenDisabled:c=!1,isPreviewPending:l=!1,onOpen:u,onPin:d}){return(0,A.jsxs)(`div`,{className:y(`flex flex-col gap-2 rounded-xl border border-[var(--border-base)]`,`bg-[var(--surface-lift)] p-3`),children:[(0,A.jsx)(G,{name:e,icon:r,loadHtml:l?void 0:i,isLoading:o,isPreviewPending:l}),(0,A.jsxs)(`div`,{className:`flex flex-col gap-0.5 px-0.5`,children:[(0,A.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:[r?(0,A.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:r}):null,(0,A.jsx)(`span`,{className:`truncate`,children:e})]}),t?(0,A.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-secondary)]`,children:t}):null]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 px-0.5`,children:[(0,A.jsx)(n,{variant:`primary`,leftIcon:(0,A.jsx)(s,{}),onClick:u,disabled:c||u==null,children:`Open App`}),(0,A.jsx)(n,{variant:`outlined`,leftIcon:a?(0,A.jsx)(S,{}):(0,A.jsx)(C,{}),onClick:d,disabled:d==null,children:a?`Unpin`:`Pin`})]})]})}function G({name:e,icon:t,loadHtml:n,isLoading:r=!1,isPreviewPending:i=!1,className:a}){let o=(0,w.useRef)(null),[s,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(!1);return(0,w.useEffect)(()=>{if(n==null)return;let e=o.current;if(!e||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(d(!0),t.disconnect())},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[n]),(0,w.useEffect)(()=>{if(!u||n==null)return;let e=!1;return n().then(t=>{e||l(t)}).catch(()=>{}),()=>{e=!0}},[u,n]),(0,A.jsxs)(`div`,{ref:o,className:y(`relative aspect-[16/10] w-full overflow-hidden rounded-lg`,`border border-[var(--border-base)] bg-[var(--surface-base)]`,a),children:[(0,A.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:i?null:t?(0,A.jsx)(`span`,{className:`text-4xl`,children:t}):(0,A.jsx)(c,{size:32,className:`text-[var(--content-tertiary)]`})}),s!=null&&(0,A.jsx)(`iframe`,{srcDoc:x(s),sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,title:`${e} preview`,"aria-hidden":`true`,tabIndex:-1,loading:`lazy`,scrolling:`no`,className:`absolute left-0 top-0 border-none bg-[var(--surface-base)]`,style:{width:`200%`,height:`200%`,transform:`scale(0.5)`,transformOrigin:`top left`,pointerEvents:`none`}}),r&&(0,A.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[var(--surface-base)]/60 backdrop-blur-sm`,children:(0,A.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`})})]})}export{V as a,S as c,H as i,G as n,M as o,U as r,C as s,W as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-DFWryB3N.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import"./src-4DTZIbDU.js";import{t as s}from"./external-link-oGdSxU8S.js";import{t as c}from"./puzzle-j1BAxwgg.js";import{n as l}from"./toast-DmMsYUgG.js";import{t as u}from"./confirm-dialog-B3O_TlF_.js";import{n as d,t as f}from"./create-selectors-B5FxuP1q.js";import{t as p}from"./sdk.gen-Dy1Bb8sS.js";import{i as m}from"./typed-storage-F5BFQH9m.js";import{n as h}from"./react-query.gen-DYPHpypm.js";import{a as g}from"./viewer-store-wvja43Ie.js";import{t as _}from"./haptics-Cl5TawvV.js";import{t as v}from"./pointer-Di9xGve4.js";import{t as y}from"./misc-D9--6g1n.js";import{t as b}from"./edge-swipe-arbiter-store-DIUzg8Po.js";import{i as x}from"./sandbox-bridge-BNwuZJHp.js";var S=o(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),C=o(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),w=e(t(),1),T=36,E=.8,D=8,O=.35;function k({enabled:e,leadingActions:t,trailingActions:n}){let r=(t?.length??0)*72,i=(n?.length??0)*72,[a,o]=(0,w.useState)(0),[s,c]=(0,w.useState)(!1),[l,u]=(0,w.useState)(`none`),d=b.use.registerOpenRow(),f=b.use.unregisterOpenRow();(0,w.useEffect)(()=>{if(l!==`none`)return d(),f},[l,d,f]);let p=(0,w.useRef)(null),m=(0,w.useCallback)(()=>{p.current=null,c(!1),o(0)},[]),h=(0,w.useCallback)(()=>{o(0),u(`none`)},[]);return{offset:a,isDragging:s,revealedSide:l,leadingWidth:r,trailingWidth:i,onTouchStart:(0,w.useCallback)(r=>{if(!e||!t&&!n)return;if(r.touches.length!==1){m();return}let i=r.touches[0];p.current={touchId:i.identifier,startX:i.clientX,startY:i.clientY,axis:`undecided`,lastDx:0,startOffset:a}},[e,t,n,a,m]),onTouchMove:(0,w.useCallback)(e=>{let t=p.current;if(!t)return;if(e.touches.length!==1){m();return}let n=e.touches[0];if(n.identifier!==t.touchId)return;let a=n.clientX-t.startX,s=n.clientY-t.startY;if(t.lastDx=a,t.axis===`undecided`){if(Math.abs(a)<D&&Math.abs(s)<D)return;if(Math.abs(s)>Math.abs(a)*E){p.current=null;return}t.axis=`horizontal`,c(!0)}if(t.axis!==`horizontal`)return;if(Math.abs(a)<T&&Math.abs(s)>Math.abs(a)*E){m(),o(t.startOffset);return}let l=t.startOffset+a,u=r,d=-i;l>u?l=u+(l-u)*O:l<d&&(l=d+(l-d)*O),(t.startOffset>0&&l<0&&i===0||t.startOffset<0&&l>0&&r===0)&&(l*=O),o(l)},[r,i,m]),onTouchEnd:(0,w.useCallback)(e=>{let t=p.current;if(!t){m();return}if(t.axis===`undecided`){p.current=null,c(!1);return}if(t.axis!==`horizontal`){m();return}if(e.touches.length>0){m();return}let n=Array.from(e.changedTouches).find(e=>e.identifier===t.touchId),a=n?n.clientX-t.startX:t.lastDx,s=t.startOffset+a;s<=-T&&i>0?(_.light(),o(-i),u(`trailing`)):s>=T&&r>0?(_.light(),o(r),u(`leading`)):(o(0),u(`none`)),p.current=null,c(!1)},[r,i,m]),onTouchCancel:(0,w.useCallback)(()=>{h(),m()},[h,m]),close:h}}var A=i();function j({action:e,onAfterSelect:t,hidden:n=!1}){let r=(0,w.useCallback)(()=>{e.onSelect(),t()},[e,t]),i=e.icon;return(0,A.jsxs)(`button`,{type:`button`,"aria-label":e.label,"aria-hidden":n,tabIndex:n?-1:0,onClick:r,className:a(`flex shrink-0 flex-col items-center justify-center gap-1`,`touch-mobile:transition-none`),style:{width:72,color:e.variant===`destructive`?`var(--aux-white)`:`var(--content-inset)`,background:e.variant===`destructive`?`var(--system-negative-strong)`:`var(--primary-base)`},children:[(0,A.jsx)(i,{size:18}),(0,A.jsx)(`span`,{className:`text-[10px] font-medium leading-none`,children:e.label})]})}var M=(0,w.forwardRef)(function({children:e,leadingActions:t,trailingActions:n,enabled:r=v(),className:i,style:o,...s},c){let l=r&&((t?.length??0)>0||(n?.length??0)>0),{offset:u,isDragging:d,onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,close:g}=k({enabled:l,leadingActions:t,trailingActions:n});return l?(0,A.jsxs)(`div`,{ref:c,className:a(`relative overflow-hidden`,i),...s,style:{...o,touchAction:`pan-y`},onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,children:[n&&n.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 right-0 flex`,"aria-hidden":u>=0,style:u>=0?{pointerEvents:`none`}:void 0,children:n.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u>=0},e.id))}):null,t&&t.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 left-0 flex`,"aria-hidden":u<=0,style:u<=0?{pointerEvents:`none`}:void 0,children:t.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u<=0},e.id))}):null,(0,A.jsx)(`div`,{className:a(`relative bg-[var(--surface-overlay)] transition-transform`,d&&`transition-none`),style:{transform:`translateX(${u}px)`,zIndex:1},children:e})]}):(0,A.jsx)(`div`,{ref:c,className:i,style:o,...s,children:e})});function N(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.appId==`string`&&typeof t.pinnedOrder==`number`&&Number.isFinite(t.pinnedOrder)&&typeof t.name==`string`&&(t.icon===void 0||typeof t.icon==`string`)}function P(e){let t=JSON.parse(e);return Array.isArray(t)?t.filter(N):null}var F=m({key:`vellum:pinnedApps`,scope:`user`,parse:P,serialize:JSON.stringify,fallback:[]}),I=F.load;F.save;function L(e){let t=F.load();if(t.some(t=>t.appId===e.id))return;let n=t.reduce((e,t)=>Math.max(e,t.pinnedOrder),0);F.save([...t,{appId:e.id,pinnedOrder:n+1,name:e.name,icon:e.icon}])}function R(e){let t=F.load().filter(t=>t.appId!==e);t=t.sort((e,t)=>e.pinnedOrder-t.pinnedOrder).map((e,t)=>({...e,pinnedOrder:t+1})),F.save(t)}var z=new Set;function B(){let e=I();return{pinnedApps:e,pinnedAppIds:new Set(e.map(e=>e.appId))}}var V=f(d()((e,t)=>({...B(),togglePin:n=>{t().pinnedAppIds.has(n.id)?t().unpin(n.id):(L(n),e(B()))},unpin:n=>{if(t().pinnedAppIds.has(n)){R(n),e(B());for(let e of z)e(n)}},isPinned:e=>t().pinnedAppIds.has(e),onUnpin:e=>(z.add(e),()=>{z.delete(e)})})));function H({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,A.jsx)(u,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function U(e){let t=r(),n=V.use.togglePin(),i=V.use.pinnedAppIds(),[a,o]=(0,w.useState)(null),[s,c]=(0,w.useState)(!1);return{pendingDelete:a,isDeleting:s,requestDelete:o,confirmDelete:(0,w.useCallback)(async()=>{if(!(!a||s)){c(!0);try{await p({path:{assistant_id:e,id:a.id},throwOnError:!0}),g(e,a.id),t.invalidateQueries({queryKey:h({path:{assistant_id:e}})}),i.has(a.id)&&n(a),o(null)}catch(e){l.error(e instanceof Error?e.message:`Failed to delete app`)}finally{c(!1)}}},[a,s,e,i,n,t]),cancelDelete:(0,w.useCallback)(()=>{s||o(null)},[s])}}function W({name:e,description:t,icon:r,loadHtml:i,isPinned:a=!1,isLoading:o=!1,isOpenDisabled:c=!1,isPreviewPending:l=!1,onOpen:u,onPin:d}){return(0,A.jsxs)(`div`,{className:y(`flex flex-col gap-2 rounded-xl border border-[var(--border-base)]`,`bg-[var(--surface-lift)] p-3`),children:[(0,A.jsx)(G,{name:e,icon:r,loadHtml:l?void 0:i,isLoading:o,isPreviewPending:l}),(0,A.jsxs)(`div`,{className:`flex flex-col gap-0.5 px-0.5`,children:[(0,A.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:[r?(0,A.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:r}):null,(0,A.jsx)(`span`,{className:`truncate`,children:e})]}),t?(0,A.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-secondary)]`,children:t}):null]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 px-0.5`,children:[(0,A.jsx)(n,{variant:`primary`,leftIcon:(0,A.jsx)(s,{}),onClick:u,disabled:c||u==null,children:`Open App`}),(0,A.jsx)(n,{variant:`outlined`,leftIcon:a?(0,A.jsx)(S,{}):(0,A.jsx)(C,{}),onClick:d,disabled:d==null,children:a?`Unpin`:`Pin`})]})]})}function G({name:e,icon:t,loadHtml:n,isLoading:r=!1,isPreviewPending:i=!1,className:a}){let o=(0,w.useRef)(null),[s,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(!1);return(0,w.useEffect)(()=>{if(n==null)return;let e=o.current;if(!e||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(d(!0),t.disconnect())},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[n]),(0,w.useEffect)(()=>{if(!u||n==null)return;let e=!1;return n().then(t=>{e||l(t)}).catch(()=>{}),()=>{e=!0}},[u,n]),(0,A.jsxs)(`div`,{ref:o,className:y(`relative aspect-[16/10] w-full overflow-hidden rounded-lg`,`border border-[var(--border-base)] bg-[var(--surface-base)]`,a),children:[(0,A.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:i?null:t?(0,A.jsx)(`span`,{className:`text-4xl`,children:t}):(0,A.jsx)(c,{size:32,className:`text-[var(--content-tertiary)]`})}),s!=null&&(0,A.jsx)(`iframe`,{srcDoc:x(s),sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,title:`${e} preview`,"aria-hidden":`true`,tabIndex:-1,loading:`lazy`,scrolling:`no`,className:`absolute left-0 top-0 border-none bg-[var(--surface-base)]`,style:{width:`200%`,height:`200%`,transform:`scale(0.5)`,transformOrigin:`top left`,pointerEvents:`none`}}),r&&(0,A.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[var(--surface-base)]/60 backdrop-blur-sm`,children:(0,A.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`})})]})}export{V as a,S as c,H as i,G as n,M as o,U as r,C as s,W as t};
@@ -1 +1 @@
1
- import{n as e}from"./toast-DFRsyumK.js";import{n as t,t as n}from"./create-selectors-B5FxuP1q.js";import{c as r,n as i,s as a,t as o,u as s}from"./feature-flag-catalog-Cigl5R2_.js";import{h as c}from"./sdk.gen-DGleJJuY.js";var l={...o},u={...i},d=0,f={};function p(e={}){l={...o,...e};for(let e of Object.keys(f))delete f[e]}function m(e={}){u={...i,...e}}function h(){p(),m()}var g=a(`assistant`);function _(e){return l[e]??o[e]??!1}function v(e){return u[e]??i[e]??``}var y=n(t()(t=>{let n=t;return{...o,...g.bool,hasHydrated:!1,stringFlags:{...i,...g.str},setFlags:e=>t(t=>{p(e);let n={...e,...g.bool};return Object.keys(n).some(e=>n[e]!==t[e])?n:t}),setFlag:(n,i,a)=>{let o=++d,u=()=>{if(f[n]!==o)return;delete f[n];let a=_(n);t(e=>e[n]===i?{[n]:a}:e),e.error(`Couldn't update "${r(n)?.label??n}". Your change was reverted.`)},p=s(n);!a||!p||(f[n]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(l[n]=i,f[n]===o&&delete f[n]):u()}).catch(u),t({[n]:g.bool[n]??i}))},markHydrated:()=>t({hasHydrated:!0}),resetForAssistantSwitch:()=>{h(),t({...o,...g.bool,hasHydrated:!1}),n({stringFlags:{...i,...g.str}})},setStringFlags:e=>n(t=>{m(e);let n={...e,...g.str},r=t.stringFlags;return Object.keys(n).some(e=>n[e]!==r[e])?{stringFlags:n}:t}),setStringFlag:(t,i,a)=>{let o=++d,l=()=>{if(f[t]!==o)return;delete f[t];let a=v(t);n(e=>e.stringFlags[t]===i?{stringFlags:{...e.stringFlags,[t]:a}}:e),e.error(`Couldn't update "${r(t)?.label??t}". Your change was reverted.`)},p=s(t);!a||!p||(f[t]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(u[t]=i,f[t]===o&&delete f[t]):l()}).catch(l),n(e=>({stringFlags:{...e.stringFlags,[t]:g.str[t]??i}})))}}}));export{y as t};
1
+ import{n as e}from"./toast-DmMsYUgG.js";import{n as t,t as n}from"./create-selectors-B5FxuP1q.js";import{c as r,n as i,s as a,t as o,u as s}from"./feature-flag-catalog-Cigl5R2_.js";import{h as c}from"./sdk.gen-DGleJJuY.js";var l={...o},u={...i},d=0,f={};function p(e={}){l={...o,...e};for(let e of Object.keys(f))delete f[e]}function m(e={}){u={...i,...e}}function h(){p(),m()}var g=a(`assistant`);function _(e){return l[e]??o[e]??!1}function v(e){return u[e]??i[e]??``}var y=n(t()(t=>{let n=t;return{...o,...g.bool,hasHydrated:!1,stringFlags:{...i,...g.str},setFlags:e=>t(t=>{p(e);let n={...e,...g.bool};return Object.keys(n).some(e=>n[e]!==t[e])?n:t}),setFlag:(n,i,a)=>{let o=++d,u=()=>{if(f[n]!==o)return;delete f[n];let a=_(n);t(e=>e[n]===i?{[n]:a}:e),e.error(`Couldn't update "${r(n)?.label??n}". Your change was reverted.`)},p=s(n);!a||!p||(f[n]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(l[n]=i,f[n]===o&&delete f[n]):u()}).catch(u),t({[n]:g.bool[n]??i}))},markHydrated:()=>t({hasHydrated:!0}),resetForAssistantSwitch:()=>{h(),t({...o,...g.bool,hasHydrated:!1}),n({stringFlags:{...i,...g.str}})},setStringFlags:e=>n(t=>{m(e);let n={...e,...g.str},r=t.stringFlags;return Object.keys(n).some(e=>n[e]!==r[e])?{stringFlags:n}:t}),setStringFlag:(t,i,a)=>{let o=++d,l=()=>{if(f[t]!==o)return;delete f[t];let a=v(t);n(e=>e.stringFlags[t]===i?{stringFlags:{...e.stringFlags,[t]:a}}:e),e.error(`Couldn't update "${r(t)?.label??t}". Your change was reverted.`)},p=s(t);!a||!p||(f[t]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(u[t]=i,f[t]===o&&delete f[t]):l()}).catch(l),n(e=>({stringFlags:{...e.stringFlags,[t]:g.str[t]??i}})))}}}));export{y as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./capture-error-D12Gu3Tx.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import"./src-CqJTlX1y.js";import{t as o}from"./loader-circle-D7A_UeUb.js";import"./tag-D1UeSlPe.js";import{n as s}from"./toast-DFRsyumK.js";import"./auth-store-DdDbthYF.js";import{a as c,r as l}from"./api-BZiTnGI9.js";import{t as u}from"./assistant-feature-flag-store-DMwcUyKp.js";import{t as d}from"./use-active-assistant-id-CJpO2yaM.js";import"./environment-store-CY9Rnrfi.js";var f=e(r(),1),p=a();function m({value:e,max:t,caption:n}){let r=t>0?Math.max(0,Math.min(e/t*100,100)):0,i=r>90;return(0,p.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,p.jsx)(`div`,{className:`h-2 w-full overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,p.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-200`,style:{width:`${r}%`,backgroundColor:i?`var(--system-negative-strong)`:`var(--system-positive-strong)`}})}),n&&(0,p.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:n})]})}var h=7,g=2e3;function _(e){let t=(0,f.useRef)(0),n=(0,f.useRef)(null),[r,i]=(0,f.useState)(null),a=(0,f.useCallback)(()=>{if(t.current+=1,t.current>=h){t.current=0;let r=u.getState(),a=!r.settingsDeveloperNav;r.setFlag(`settingsDeveloperNav`,a,e),i(a?`Developer mode enabled`:`Developer mode disabled`),n.current!==null&&clearTimeout(n.current),n.current=setTimeout(()=>{i(null),n.current=null},g)}},[e]);return(0,f.useEffect)(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{onTap:a,message:r}}function v({version:e,loading:t,assistantId:n}){let{onTap:r,message:i}=_(n);return t?(0,p.jsxs)(`span`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,p.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading version...`]}):e?(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`button`,{type:`button`,className:`break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:r,children:e}),i&&(0,p.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:i})]}):(0,p.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`—`})}var y=`currentAssistant`,b=4e3,x=9e4;function S(e,t){return(e.memory?.maxMb??null)!==(t.memory?.maxMb??null)||(e.cpu?.maxCores??null)!==(t.cpu?.maxCores??null)}function C(){let e=d(),{data:r=null,isLoading:a,refetch:o}=i({queryKey:[y,e],queryFn:async()=>{let t=await l(e);return t.ok?t.data:null},retry:!1}),u=r?.id,[p,m]=(0,f.useState)(null),[h,g]=(0,f.useState)(!1),[_,v]=(0,f.useState)(!1),C=(0,f.useRef)(0),w=(0,f.useRef)(0),T=(0,f.useCallback)(async e=>{if(!u)return m(null),g(!1),null;C.current+=1;let r=C.current;g(!0);try{let t=await c(u);return r===C.current?t.ok?(m(t.data),t.data):(e?.keepStaleOnError||m(null),null):null}catch(i){return r===C.current?(e?.keepStaleOnError||m(null),!t(i)&&!e?.keepStaleOnError&&(n(i,{context:`fetch_assistant_healthz`}),s.error(`Failed to load assistant info`)),null):null}finally{r===C.current&&g(!1)}},[u]);return(0,f.useEffect)(()=>{T()},[T]),(0,f.useEffect)(()=>()=>{w.current+=1,v(!1),m(null)},[u]),{assistant:r,assistantLoading:a,healthz:p,healthzLoading:h,healthzPolling:_,refetch:(0,f.useCallback)(async()=>{await o(),await T()},[o,T]),refetchUntilResized:(0,f.useCallback)(async e=>{let t=++w.current,n=Date.now()+x;v(!0);let r=e;try{for(o();Date.now()<n&&t===w.current;){if(await new Promise(e=>setTimeout(e,b)),t!==w.current)return;let e=await T({keepStaleOnError:!0});if(t!==w.current)return;if(e){if(r==null){r=e;continue}if(S(e,r))return}}}finally{t===w.current&&v(!1)}},[T,o])}}function w(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e.toFixed(0)} MB`}export{m as a,_ as i,C as n,v as r,w as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./capture-error-D12Gu3Tx.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import"./src-4DTZIbDU.js";import{t as o}from"./loader-circle-D7A_UeUb.js";import"./tag-D4GIIzZF.js";import{n as s}from"./toast-DmMsYUgG.js";import"./auth-store-DdDbthYF.js";import{a as c,r as l}from"./api-BZiTnGI9.js";import{t as u}from"./assistant-feature-flag-store-DpUzSkiR.js";import{t as d}from"./use-active-assistant-id-CJpO2yaM.js";import"./environment-store-CY9Rnrfi.js";var f=e(r(),1),p=a();function m({value:e,max:t,caption:n}){let r=t>0?Math.max(0,Math.min(e/t*100,100)):0,i=r>90;return(0,p.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,p.jsx)(`div`,{className:`h-2 w-full overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,p.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-200`,style:{width:`${r}%`,backgroundColor:i?`var(--system-negative-strong)`:`var(--system-positive-strong)`}})}),n&&(0,p.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:n})]})}var h=7,g=2e3;function _(e){let t=(0,f.useRef)(0),n=(0,f.useRef)(null),[r,i]=(0,f.useState)(null),a=(0,f.useCallback)(()=>{if(t.current+=1,t.current>=h){t.current=0;let r=u.getState(),a=!r.settingsDeveloperNav;r.setFlag(`settingsDeveloperNav`,a,e),i(a?`Developer mode enabled`:`Developer mode disabled`),n.current!==null&&clearTimeout(n.current),n.current=setTimeout(()=>{i(null),n.current=null},g)}},[e]);return(0,f.useEffect)(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{onTap:a,message:r}}function v({version:e,loading:t,assistantId:n}){let{onTap:r,message:i}=_(n);return t?(0,p.jsxs)(`span`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,p.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading version...`]}):e?(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`button`,{type:`button`,className:`break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:r,children:e}),i&&(0,p.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:i})]}):(0,p.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`—`})}var y=`currentAssistant`,b=4e3,x=9e4;function S(e,t){return(e.memory?.maxMb??null)!==(t.memory?.maxMb??null)||(e.cpu?.maxCores??null)!==(t.cpu?.maxCores??null)}function C(){let e=d(),{data:r=null,isLoading:a,refetch:o}=i({queryKey:[y,e],queryFn:async()=>{let t=await l(e);return t.ok?t.data:null},retry:!1}),u=r?.id,[p,m]=(0,f.useState)(null),[h,g]=(0,f.useState)(!1),[_,v]=(0,f.useState)(!1),C=(0,f.useRef)(0),w=(0,f.useRef)(0),T=(0,f.useCallback)(async e=>{if(!u)return m(null),g(!1),null;C.current+=1;let r=C.current;g(!0);try{let t=await c(u);return r===C.current?t.ok?(m(t.data),t.data):(e?.keepStaleOnError||m(null),null):null}catch(i){return r===C.current?(e?.keepStaleOnError||m(null),!t(i)&&!e?.keepStaleOnError&&(n(i,{context:`fetch_assistant_healthz`}),s.error(`Failed to load assistant info`)),null):null}finally{r===C.current&&g(!1)}},[u]);return(0,f.useEffect)(()=>{T()},[T]),(0,f.useEffect)(()=>()=>{w.current+=1,v(!1),m(null)},[u]),{assistant:r,assistantLoading:a,healthz:p,healthzLoading:h,healthzPolling:_,refetch:(0,f.useCallback)(async()=>{await o(),await T()},[o,T]),refetchUntilResized:(0,f.useCallback)(async e=>{let t=++w.current,n=Date.now()+x;v(!0);let r=e;try{for(o();Date.now()<n&&t===w.current;){if(await new Promise(e=>setTimeout(e,b)),t!==w.current)return;let e=await T({keepStaleOnError:!0});if(t!==w.current)return;if(e){if(r==null){r=e;continue}if(S(e,r))return}}}finally{t===w.current&&v(!1)}},[T,o])}}function w(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e.toFixed(0)} MB`}export{m as a,_ as i,C as n,v as r,w as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-D12Gu3Tx.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import"./src-CqJTlX1y.js";import{r as a,t as o}from"./background-task-actions-C_JwuCkY.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-DBkMeElr.js";import{t as d}from"./detail-shell-Cfhmm8Ht.js";import{t as f}from"./status-badge-pill-D7j-0FLr.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-3ThRZsOn.js";import{t as h}from"./detail-panel-stop-button-D0pZKzCv.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,f=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-D12Gu3Tx.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import"./src-4DTZIbDU.js";import{r as a,t as o}from"./background-task-actions-C_JwuCkY.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-DBkMeElr.js";import{t as d}from"./detail-shell-ModH5YJB.js";import{t as f}from"./status-badge-pill-D7j-0FLr.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-D4rwCLuH.js";import{t as h}from"./detail-panel-stop-button-DVMJaE8I.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,f=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};