@vellumai/web 0.10.0-staging.1 → 0.10.0-staging.3

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 (170) hide show
  1. package/dist/assets/{BundleConfirmPage-DJIGg7bK.js → BundleConfirmPage-CkXUMWg6.js} +1 -1
  2. package/dist/assets/account-page-B5rB7loj.js +1 -0
  3. package/dist/assets/{add-credits-modal-DvrQcX_K.js → add-credits-modal-BEX4_5jj.js} +1 -1
  4. package/dist/assets/{advanced-page-yAmIJ0-O.js → advanced-page-9RUi4YCF.js} +1 -1
  5. package/dist/assets/ai-page-CZj92XF4.js +1 -0
  6. package/dist/assets/{api-CGh7zC7Z.js → api-BSHLYsxJ.js} +1 -1
  7. package/dist/assets/{api-key-screen-CSIU6tlW.js → api-key-screen-CUKjlF2C.js} +1 -1
  8. package/dist/assets/{archive-page-C2M9DCgh.js → archive-page-YsBlmevd.js} +1 -1
  9. package/dist/assets/{assistant-api-ClCDtfaz.js → assistant-api-D7r6RWoh.js} +1 -1
  10. package/dist/assets/{assistant-feature-flag-store-BMVR2Dx7.js → assistant-feature-flag-store-D2CUHsmL.js} +1 -1
  11. package/dist/assets/{assistant-identity-store-BIu8LXuD.js → assistant-identity-store-BFaMpt_3.js} +1 -1
  12. package/dist/assets/{assistant-status-panel-CqM_xxPL.js → assistant-status-panel-CMdqv7mF.js} +1 -1
  13. package/dist/assets/auth-store-CrTf0uWL.js +7 -0
  14. package/dist/assets/{billing-page-BFPsW1V-.js → billing-page-DgX2YBSA.js} +3 -3
  15. package/dist/assets/{bookmarks-page-Cuqjyd6n.js → bookmarks-page-DRcIBBva.js} +1 -1
  16. package/dist/assets/{build-state-CI5r3DCj.js → build-state-DqzVxR37.js} +1 -1
  17. package/dist/assets/{client-feature-flag-store-C1ws4QpG.js → client-feature-flag-store-ivPVcKfH.js} +1 -1
  18. package/dist/assets/{command-palette-c-GkLSgn.js → command-palette-BXEAR93M.js} +1 -1
  19. package/dist/assets/{command-palette-window-page-DmXX3g9_.js → command-palette-window-page-5SP_Ft4Y.js} +1 -1
  20. package/dist/assets/{community-page-fRxEWvml.js → community-page-D5-exeNr.js} +1 -1
  21. package/dist/assets/{connect-page-fCkHk4FB.js → connect-page-Bvs0EgCJ.js} +1 -1
  22. package/dist/assets/{consent-controls-C1u7ZVkJ.js → consent-controls-cNdj_gb8.js} +1 -1
  23. package/dist/assets/{contacts-page-route-DWj-5GZ2.js → contacts-page-route-C9T-8Sdr.js} +1 -1
  24. package/dist/assets/{conversation-queries-C5J_wBFK.js → conversation-queries-Dt4RoWIo.js} +1 -1
  25. package/dist/assets/{debug-page-NtJJIUeZ.js → debug-page-ClQetFUa.js} +2 -2
  26. package/dist/assets/{deploy-dialogs-ZukSD1Ok.js → deploy-dialogs-BtpYB7B8.js} +1 -1
  27. package/dist/assets/{developer-page-uTOD0kmX.js → developer-page-DQs8SZ8K.js} +1 -1
  28. package/dist/assets/{devices-page-t38uJ_Rj.js → devices-page-VsRsz6XP.js} +1 -1
  29. package/dist/assets/{dictation-overlay-page-bgPMse-0.js → dictation-overlay-page-C5HFJIsY.js} +1 -1
  30. package/dist/assets/{document-viewer-page-4J5Pxy_g.js → document-viewer-page-BLBwWqM4.js} +1 -1
  31. package/dist/assets/{earn-credits-modal-Dw8Q142A.js → earn-credits-modal-Dig03UD-.js} +1 -1
  32. package/dist/assets/{emails-page-DtWzs4ko.js → emails-page-D9R72EQW.js} +1 -1
  33. package/dist/assets/esm--X8IY1ec.js +1 -0
  34. package/dist/assets/{esm-BhnwM79d.js → esm-Cs-ixW_a.js} +2 -2
  35. package/dist/assets/{esm-CiJceiot.js → esm-DkmmS1Rg.js} +2 -2
  36. package/dist/assets/{esm-D18RlLzi.js → esm-DxJBeF-2.js} +2 -2
  37. package/dist/assets/{esm-Fz1t-KBM.js → esm-JmlvYCir.js} +2 -2
  38. package/dist/assets/{esm-RSkzRC1V.js → esm-LyzWW9Z1.js} +2 -2
  39. package/dist/assets/{feature-flag-catalog-zKzlKAIS.js → feature-flag-catalog-DEr38CMM.js} +1 -1
  40. package/dist/assets/{file-editor-Dsmrsieh.js → file-editor-HQXiGdH-.js} +1 -1
  41. package/dist/assets/{general-page-BmuGD9t1.js → general-page-CMr5RhNh.js} +1 -1
  42. package/dist/assets/hatching-screen-BAzE4aGD.js +1 -0
  43. package/dist/assets/{home-page-route-B9TWPA_Z.js → home-page-route-JenDSLBl.js} +1 -1
  44. package/dist/assets/hosting-screen-dPfTLCnv.js +1 -0
  45. package/dist/assets/{identity-page-route-C_hcLi9A.js → identity-page-route-r9ZgIw8g.js} +1 -1
  46. package/dist/assets/{index-DjBiif5r.js → index-BiN-6kWM.js} +31 -31
  47. package/dist/assets/{inspect-page-Ds4ete37.js → inspect-page-2cNMjT4e.js} +3 -3
  48. package/dist/assets/{install-BTdfOS56.js → install-CHMiF_Hw.js} +1 -1
  49. package/dist/assets/{integrations-page-BcINhzsa.js → integrations-page-BiLM3QyR.js} +1 -1
  50. package/dist/assets/{intelligence-layout-D4ZCqIzW.js → intelligence-layout-CjDxFKQO.js} +1 -1
  51. package/dist/assets/{keyboard-shortcuts-page-0nrN6XlU.js → keyboard-shortcuts-page-DIhG1FK_.js} +1 -1
  52. package/dist/assets/{library-detail-page-DRWl6nzT.js → library-detail-page-CjeBxuMc.js} +1 -1
  53. package/dist/assets/{library-page-tkcbXp1r.js → library-page-BFIPthR_.js} +1 -1
  54. package/dist/assets/{login-flow-B745Do-L.js → login-flow-BMwbZfKA.js} +1 -1
  55. package/dist/assets/{login-page-mv9EfrL5.js → login-page-KDH0IZ6y.js} +1 -1
  56. package/dist/assets/{logout-page-orHUxw4u.js → logout-page-DI7i4Hok.js} +1 -1
  57. package/dist/assets/{logs-layout-DRmlEOMI.js → logs-layout-BEMQQY7S.js} +1 -1
  58. package/dist/assets/{mcp-page-D3WCeVhI.js → mcp-page-B7tUTzT0.js} +1 -1
  59. package/dist/assets/{memory-router-playground-page-1HTpZRzo.js → memory-router-playground-page-JdkTEwPy.js} +1 -1
  60. package/dist/assets/{metric-card-CXCuWhNG.js → metric-card-B3EBP9m4.js} +1 -1
  61. package/dist/assets/{mobile-sidebar-drawer-Bx5YTlNy.js → mobile-sidebar-drawer-DuJUmy0b.js} +1 -1
  62. package/dist/assets/{native-file-Cd0uSBuG.js → native-file-CbhjzPxL.js} +2 -2
  63. package/dist/assets/{notifications-page-Z4rBfcim.js → notifications-page-CmOvbV59.js} +1 -1
  64. package/dist/assets/{oauth-complete-page-dL5TWauu.js → oauth-complete-page-R_1ODIIi.js} +1 -1
  65. package/dist/assets/{oauth-popup-complete-page-ygMAHToC.js → oauth-popup-complete-page-YECuZtPs.js} +1 -1
  66. package/dist/assets/{pairing-page-B_goGm8F.js → pairing-page-BtaFWq0w.js} +1 -1
  67. package/dist/assets/{platform-loopback-page-40umE5Nz.js → platform-loopback-page-Wie5xEwr.js} +1 -1
  68. package/dist/assets/{plugin-detail-page-BnQ2kf7Y.js → plugin-detail-page-D6Gve0qx.js} +1 -1
  69. package/dist/assets/{plugins-page-pcTOnJpU.js → plugins-page-DA-JrehF.js} +1 -1
  70. package/dist/assets/{prechat-route-Cbk86DeT.js → prechat-route-BhzvRsw3.js} +1 -1
  71. package/dist/assets/{prefs-DjG8e7dK.js → prefs-Mrqh1A7Y.js} +1 -1
  72. package/dist/assets/{privacy-page-ChgL1FV8.js → privacy-page-Yex5OJjZ.js} +1 -1
  73. package/dist/assets/{privacy-screen-CND_dL-J.js → privacy-screen-ccjT4S0F.js} +1 -1
  74. package/dist/assets/{provider-callback-page-BB-waTRl.js → provider-callback-page-BS-DqV_M.js} +1 -1
  75. package/dist/assets/{provider-signup-page-DKG8Ow1Y.js → provider-signup-page-Beuafn_s.js} +1 -1
  76. package/dist/assets/{proxy-BaYss8LN.js → proxy-CQsxT9tJ.js} +1 -1
  77. package/dist/assets/{quick-input-page-rj5DDrdc.js → quick-input-page-0PEcj6WT.js} +1 -1
  78. package/dist/assets/{research-mock-page-Crn0z5z6.js → research-mock-page-D0-sKBpu.js} +1 -1
  79. package/dist/assets/{research-onboarding-route-BtoNZ0do.js → research-onboarding-route-ZTgUGnrN.js} +2 -2
  80. package/dist/assets/{review-terms-screen-BvG3xAnz.js → review-terms-screen-DLWgKysx.js} +1 -1
  81. package/dist/assets/sdk.gen-DRL3oRwz.js +1 -0
  82. package/dist/assets/{select-assistant-screen-EaSNw87g.js → select-assistant-screen-LNX6PpzR.js} +1 -1
  83. package/dist/assets/{settings-layout-0KMmprEe.js → settings-layout-BA0suokL.js} +1 -1
  84. package/dist/assets/{share-feedback-modal-DDiWBGt6.js → share-feedback-modal-CFgHvfgR.js} +1 -1
  85. package/dist/assets/{sidebar-tree-SP7fohd6.js → sidebar-tree-DALLHIeG.js} +1 -1
  86. package/dist/assets/{signup-page-mHalxyN4.js → signup-page-13TRI3CC.js} +1 -1
  87. package/dist/assets/{signup-shell-CIXfwueV.js → signup-shell-D6LXKfGy.js} +1 -1
  88. package/dist/assets/{skills-page-D_3kRG_-.js → skills-page-DiopOlcy.js} +1 -1
  89. package/dist/assets/{sounds-page-DWJKkT-Q.js → sounds-page-DE47aZrz.js} +1 -1
  90. package/dist/assets/{step-indicator-dots-CxPpUjj-.js → step-indicator-dots-BOKv1I4C.js} +1 -1
  91. package/dist/assets/{subagent-detail-panel-CO8xcBkY.js → subagent-detail-panel-BdPp2LMK.js} +1 -1
  92. package/dist/assets/{system-events-page-BT7c7g29.js → system-events-page-DcaF2EuX.js} +1 -1
  93. package/dist/assets/{tiptap-document-editor-CH0hLQg8.js → tiptap-document-editor-DjIQ9tCC.js} +1 -1
  94. package/dist/assets/{tool-detail-panel-DjQRk3C4.js → tool-detail-panel-C6uFi3_6.js} +1 -1
  95. package/dist/assets/{trace-page-DXoNPNF2.js → trace-page-4MU66DDM.js} +1 -1
  96. package/dist/assets/typed-storage-SkUUNYR1.js +1 -0
  97. package/dist/assets/{upgrade-cancel-page-D3ClLquH.js → upgrade-cancel-page-D2-xTACq.js} +1 -1
  98. package/dist/assets/{upgrade-success-page-D8M_sxa0.js → upgrade-success-page-DLjl6978.js} +1 -1
  99. package/dist/assets/{usage-page-CdTcaS_i.js → usage-page-CCBqWkRU.js} +1 -1
  100. package/dist/assets/use-is-org-ready-BoWiaeMc.js +1 -0
  101. package/dist/assets/{use-onboarding-login-CrYY0jua.js → use-onboarding-login-CxXV3Iue.js} +1 -1
  102. package/dist/assets/{use-reduced-motion-C9zjvTsb.js → use-reduced-motion-CXbk4fYO.js} +1 -1
  103. package/dist/assets/{utils-BjpQXgRD.js → utils-B5-aBe5u.js} +1 -1
  104. package/dist/assets/{voice-page-DYQ_Bjkg.js → voice-page-VrJ7AZrg.js} +1 -1
  105. package/dist/assets/{weather-forecast-display-PvQnLjFm.js → weather-forecast-display-DKMPxDv5.js} +1 -1
  106. package/dist/assets/{web-CUsG7AaW.js → web-DKvxfNu_.js} +1 -1
  107. package/dist/assets/{welcome-screen-Csr3Xjbb.js → welcome-screen-DVeLGZKg.js} +1 -1
  108. package/dist/assets/{workflow-detail-panel-C1hoa9n4.js → workflow-detail-panel-BgDWu3_4.js} +1 -1
  109. package/dist/assets/{workspace-page-D2jf__1O.js → workspace-page-BlVlfXIt.js} +1 -1
  110. package/dist/index.html +39 -38
  111. package/package.json +1 -1
  112. package/dist/assets/account-page-B-pFQ4QZ.js +0 -1
  113. package/dist/assets/ai-page-CSwTzhul.js +0 -1
  114. package/dist/assets/auth-store-CyAWX99c.js +0 -6
  115. package/dist/assets/hatching-screen-D9XPAXWn.js +0 -1
  116. package/dist/assets/hosting-screen-BFr_zyC4.js +0 -1
  117. package/dist/assets/sdk.gen-D7k-QjYl.js +0 -1
  118. package/dist/assets/use-is-org-ready-CMpj-2ts.js +0 -1
  119. /package/dist/assets/{about-page-CVV-MCho.js → about-page-Bue2vNnY.js} +0 -0
  120. /package/dist/assets/{account-shell-e28XT1Gw.js → account-shell-oWV1wIYb.js} +0 -0
  121. /package/dist/assets/{avatar-bundled-components-D6zRL_dw.js → avatar-bundled-components-UfXe4Pfu.js} +0 -0
  122. /package/dist/assets/{avatar-svg-compositor-BDV_OAev.js → avatar-svg-compositor-Bbqkq_FE.js} +0 -0
  123. /package/dist/assets/{build.umd-BrMpqUXB.js → build.umd-TjHHwLRY.js} +0 -0
  124. /package/dist/assets/{composer-focus-zRjwsXmH.js → composer-focus-DP3jFn8K.js} +0 -0
  125. /package/dist/assets/{contacts-gateway-AXbkzYpn.js → contacts-gateway-Cf32jSYa.js} +0 -0
  126. /package/dist/assets/{conversation-selection-DCYDhK6e.js → conversation-selection-BMndnV1U.js} +0 -0
  127. /package/dist/assets/{conversation-store-CBtnzP2n.js → conversation-store-BSxi0r0X.js} +0 -0
  128. /package/dist/assets/{danger-zone-redirect-page-BiH15rFW.js → danger-zone-redirect-page-5H-AuIvi.js} +0 -0
  129. /package/dist/assets/{definitions-DhIUJp4x.js → definitions-BqAtozTh.js} +0 -0
  130. /package/dist/assets/{detail-card-DeCfFKxN.js → detail-card-CLwQ17AA.js} +0 -0
  131. /package/dist/assets/{edit-chat-session-BUoLTWlo.js → edit-chat-session-B1tanC3Z.js} +0 -0
  132. /package/dist/assets/{effective-timezone-DKIHYiQs.js → effective-timezone-wo2Bhl1P.js} +0 -0
  133. /package/dist/assets/{emoji-catalog-data-BRNanslS.js → emoji-catalog-data-B6Q5tPZJ.js} +0 -0
  134. /package/dist/assets/{environment-store-BPyWfH08.js → environment-store-Ck7wXCrL.js} +0 -0
  135. /package/dist/assets/{format-2xr96iXO.js → format-B12w_G9l.js} +0 -0
  136. /package/dist/assets/{format-date-CVdOzfYM.js → format-date-B6hTwbOM.js} +0 -0
  137. /package/dist/assets/{format-file-size-HIBUjVRS.js → format-file-size-DxhjMSDx.js} +0 -0
  138. /package/dist/assets/{haptics-1zSZHQps.js → haptics-BtSYrQNK.js} +0 -0
  139. /package/dist/assets/{impersonate-version-flag-BBe6qZWh.js → impersonate-version-flag-ZdQOgpO3.js} +0 -0
  140. /package/dist/assets/{lib-CLT_iFkF.js → lib-CQbq3OZw.js} +0 -0
  141. /package/dist/assets/{llm-dimension-Czl_J9gg.js → llm-dimension-Cs4q1Ovq.js} +0 -0
  142. /package/dist/assets/{misc-BurDhv2T.js → misc-Bo3spjOe.js} +0 -0
  143. /package/dist/assets/{native-deep-link-CFFM1NaG.js → native-deep-link-_WT_7c80.js} +0 -0
  144. /package/dist/assets/{page-shell-CTmljSuy.js → page-shell-C0oiLAoY.js} +0 -0
  145. /package/dist/assets/{password-reset-page-DJQASQbj.js → password-reset-page-Cf5SQHDV.js} +0 -0
  146. /package/dist/assets/{pdf-DDcCO6Ea.js → pdf-CMJp1GoR.js} +0 -0
  147. /package/dist/assets/{prechat-names-Dl1bWxyY.js → prechat-names-BZIP2Y-H.js} +0 -0
  148. /package/dist/assets/{provider-key-AiDfAj3X.js → provider-key-DH6JmPXt.js} +0 -0
  149. /package/dist/assets/{public-asset-DSNbX6CW.js → public-asset-Dp-i4xhW.js} +0 -0
  150. /package/dist/assets/{reduced-motion-C-oXOoz4.js → reduced-motion-Do7LyjE6.js} +0 -0
  151. /package/dist/assets/{schedules-BfL_KgUR.js → schedules-DqkGi2Lm.js} +0 -0
  152. /package/dist/assets/{semver-CWB8BPhv.js → semver-DmouQEQK.js} +0 -0
  153. /package/dist/assets/{setting-row-Bke-X9s7.js → setting-row-IILQu7AE.js} +0 -0
  154. /package/dist/assets/{sound-manager-Cuz_K65T.js → sound-manager-CC2af7bI.js} +0 -0
  155. /package/dist/assets/{subagent-status-BZXtYoyE.js → subagent-status-CaVVlphf.js} +0 -0
  156. /package/dist/assets/{system-events-redirect-page-BhFhVZX3.js → system-events-redirect-page-CmooXfba.js} +0 -0
  157. /package/dist/assets/{usage-window-DOM_y3PN.js → usage-window-BO_9IIjX.js} +0 -0
  158. /package/dist/assets/{use-active-assistant-id-BtGthKQp.js → use-active-assistant-id-512RohBL.js} +0 -0
  159. /package/dist/assets/{use-bus-subscription-DSrmmjvt.js → use-bus-subscription-RUbeQDfy.js} +0 -0
  160. /package/dist/assets/{use-is-mobile-C0ubX5Es.js → use-is-mobile-CvT53Qs1.js} +0 -0
  161. /package/dist/assets/{use-plugin-drift-DyjoyDBs.js → use-plugin-drift-BUHRYq2W.js} +0 -0
  162. /package/dist/assets/{viewer-store-Cfso5FNU.js → viewer-store-CInCucV8.js} +0 -0
  163. /package/dist/assets/{web-D5xtOjGa.js → web-4XHemeeJ.js} +0 -0
  164. /package/dist/assets/{web-D9FZSZCN.js → web-BEsXuN9d.js} +0 -0
  165. /package/dist/assets/{web-DgFXqVj3.js → web-BcNl6r2T.js} +0 -0
  166. /package/dist/assets/{web-liDG2TJr.js → web-BorhjBfF.js} +0 -0
  167. /package/dist/assets/{web-1_PP1DD_.js → web-CVJTgRoJ.js} +0 -0
  168. /package/dist/assets/{web-Ci20mxIU.js → web-DALQZUJ4.js} +0 -0
  169. /package/dist/assets/{xterm-DDh2F3IU.js → xterm-BJ2bbKsF.js} +0 -0
  170. /package/dist/assets/{xterm-addon-fit-CyzlQnJv.js → xterm-addon-fit-BJTajn72.js} +0 -0
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{A as i,a,n as o,o as s}from"./auth-store-CyAWX99c.js";import{a as c}from"./routes-BKwsRssF.js";import{n as l,t as u}from"./login-flow-B745Do-L.js";import{Vr as d}from"./index-DjBiif5r.js";import{r as f,t as p}from"./account-shell-e28XT1Gw.js";var m=e(t(),1),h=r();function g(){let e=a(),t=s(),r=o.use.user(),g=o.use.logout(),[_,v]=(0,m.useState)(null),[y,b]=(0,m.useState)(!1),x=async()=>{v(null),b(!0);try{await i(l,u)}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(),d(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 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,r as n,s as r}from"./local-settings-lVNyIOJ_.js";import{r as i,t as a}from"./capture-error-B0wqOYKY.js";import{t as o}from"./react-DJZBPgpf.js";import{t as s}from"./button-D7s2Q_uG.js";import{d as c,h as l}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as u}from"./QueryClientProvider-DKhXIxGb.js";import{t as d}from"./useQuery-B45lW1Kk.js";import{t as f}from"./useMutation-Lj4VunQV.js";import{t as p}from"./jsx-runtime-CVSDxk6A.js";import{t as m}from"./typography-BscuIPxA.js";import{t as h}from"./dropdown-yOV5eJnU.js";import{t as g}from"./confirm-dialog-DbNUkFt6.js";import{t as _}from"./notice-G5Imd5pC.js";import{t as v}from"./tag-BadGF3FB.js";import{t as y}from"./input-CwdmSRlD.js";import{t as b}from"./toggle-_vZlLDBV.js";import{n as x}from"./stat-square-B5tBfA4w.js";import{t as S}from"./modal-DX6UN7b0.js";import{n as C}from"./toast-DLWkiWW6.js";import{t as w}from"./createLucideIcon-DIlBzeWM.js";import{t as T}from"./circle-alert-C5TvMkJV.js";import{t as E}from"./circle-check-D3yd2el7.js";import{n as D,t as O}from"./domain-field-yW8B9mxj.js";import{t as k}from"./external-link-B3skagqt.js";import{t as A}from"./info-BJtskZc-.js";import{t as j}from"./loader-circle-CTs38Ovl.js";import{t as M}from"./triangle-alert-M_S_Pe8C.js";import{Fn as N,Mt as ee,in as P,jt as F,nt as I}from"./sdk.gen-Bew9wO5C.js";import{R as te,c as L,d as R,ft as z,kt as B,l as V,u as H,wt as U,z as W}from"./react-query.gen-DdB0sQgj.js";import{r as G}from"./api-errors-CwAGZ-xJ.js";import{a as ne}from"./routes-BKwsRssF.js";import{t as K}from"./use-is-org-ready-CMpj-2ts.js";import{t as q}from"./assistant-identity-store-BIu8LXuD.js";import{t as J}from"./assistant-feature-flag-store-BMVR2Dx7.js";import{$r as re,Ai as Y,Ci as ie,Cn as ae,Di as X,Dn as oe,Ei as se,It as ce,Ki as le,Mi as ue,Ni as de,Oi as fe,On as pe,Pi as me,Si as he,Sn as ge,Ti as _e,Tn as ve,_ as ye,_i as be,_n as xe,aa as Se,ai as Ce,bi as we,bn as Te,ci as Ee,di as De,ei as Oe,fi as ke,gi as Ae,gn as je,hi as Me,hn as Ne,ho as Pe,ii as Fe,ji as Ie,ki as Le,li as Re,mi as ze,ni as Be,oi as Ve,on as He,pi as Ue,ri as We,si as Ge,so as Ke,sr as qe,ti as Je,ui as Ye,v as Xe,vi as Ze,vn as Qe,wi as $e,wn as et,xi as tt,xn as nt,yi as rt,yn as it}from"./index-DjBiif5r.js";import{t as at}from"./use-active-assistant-id-BtGthKQp.js";import{t as ot}from"./detail-card-DeCfFKxN.js";import{t as st}from"./environment-store-BPyWfH08.js";var ct=w(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Z=e(o(),1),Q=p();function lt({mode:e,onChange:t}){return(0,Q.jsx)(`div`,{className:`max-w-[280px]`,children:(0,Q.jsx)(x,{ariaLabel:`Service mode`,value:e,onChange:t,items:[{value:`managed`,label:`Managed`},{value:`your-own`,label:`Your Own`}]})})}function ut({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,Q.jsxs)(ot,{id:e,title:t,subtitle:n,accessory:(0,Q.jsx)(lt,{mode:r,onChange:i}),children:[(0,Q.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,Q.jsx)(`div`,{className:`mt-4`,children:a})]})}function $({onClick:e,disabled:t}){return(0,Q.jsx)(s,{onClick:e,disabled:t,children:`Save`})}function dt({onClick:e,filled:t=!1}){return(0,Q.jsx)(s,{variant:t?`danger`:`dangerGhost`,onClick:e,children:`Reset`})}function ft({id:e,title:t,subtitle:n,children:r}){return(0,Q.jsxs)(ot,{id:e,title:t,subtitle:n,children:[(0,Q.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,Q.jsx)(`div`,{className:`mt-4`,children:r})]})}function pt({guide:e}){return(0,Q.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,Q.jsx)(A,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{children:e.description}),(0,Q.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,Q.jsx)(k,{className:`h-3 w-3`})]})]})]})}function mt({status:e,message:t,isLoading:n}){return n?(0,Q.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,Q.jsx)(j,{className:`h-3 w-3 animate-spin`}),`Checking domain…`]}):e?e===`verified`?(0,Q.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,Q.jsx)(Pe,{className:`h-3 w-3`}),`Domain verified`]}):e===`pending`||e===`not_started`?(0,Q.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,Q.jsx)(Ke,{className:`h-3 w-3`}),`Verifying domain…`]}):(0,Q.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,Q.jsx)(T,{className:`h-3 w-3`}),`Verification failed`]}):(0,Q.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`})}var ht=`__custom__`;function gt(e){return e?!!(e.profile||e.provider||e.model):!1}function _t(e,t){let n=gt(e);return n===gt(t)?n?(e?.profile??null)===(t?.profile??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.model??null)===(t?.model??null):!0:!1}function vt({id:e,displayName:t,description:n,defaultProfileLabel:r,draft:i,profileOptions:a,onDraftChange:o,onToggle:s}){let c=gt(i),l=!i||!c?``:i.provider||i.model?ht:i.profile??``,u=l===ht,d=Y.find(e=>e===i?.provider)??Y[0],f=de(d).map(e=>({value:e.id,label:e.displayName})),p=!!i?.provider&&!i?.model;function m(t){if(t===`__custom__`){let t=Y[0];o(e,{profile:null,provider:t,model:ue(t)??``})}else t===``?o(e,null):o(e,{profile:t,provider:null,model:null})}function g(t){let n=ue(t)??``;o(e,{...i??{},profile:null,provider:t,model:n})}function _(t){o(e,{...i??{},model:t})}return(0,Q.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:t}),n&&(0,Q.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[n,r&&(0,Q.jsxs)(`span`,{className:`ml-1.5 text-body-small-default text-[var(--content-tertiary)] opacity-60`,children:[`· Default: `,r]})]})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c&&(0,Q.jsx)(h,{value:l,onChange:m,options:a,className:`w-44`,menuMinWidth:280,menuAlign:`end`}),(0,Q.jsx)(b,{checked:c,onChange:t=>s(e,t),"aria-label":`Override ${t}`})]})]}),c&&u&&(0,Q.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-[var(--border-base)] pt-3`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex-1`,children:[(0,Q.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:d??``,onChange:g,options:Y.map(e=>({value:e,label:Ie[e]??e}))})]}),(0,Q.jsxs)(`div`,{className:`flex-1`,children:[(0,Q.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,Q.jsx)(h,{value:i?.model??``,onChange:_,options:f})]})]}),p&&(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:`Pick a model`})]})]})}function yt({isOpen:e,onClose:t,assistantId:n}){let r=(0,Z.useRef)(!1);return(0,Q.jsx)(S.Root,{open:e,onOpenChange:e=>{!e&&!r.current&&t()},children:e?(0,Q.jsx)(bt,{assistantId:n,onClose:t,onSavingChange:e=>{r.current=e}}):null})}function bt({assistantId:e,onClose:t,onSavingChange:n}){let r=u(),{data:i}=d({...L({path:{assistant_id:e}}),staleTime:3e4}),o=(0,Z.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),c=(0,Z.useMemo)(()=>i?.llm?.profileOrder??[],[i?.llm?.profileOrder]),l=(0,Z.useMemo)(()=>i?.llm?.callSites??{},[i?.llm?.callSites]),f=(0,Z.useMemo)(()=>Ze(o,c),[o,c]),p=B({onSuccess:t=>{H(r,{path:{assistant_id:e}},t)}}),[m,h]=(0,Z.useState)(``),[_,v]=(0,Z.useState)({}),[b,x]=(0,Z.useState)(!1),[w,T]=(0,Z.useState)(!1),E=J.use.analyzeConversation(),{data:D,isLoading:O,isError:k,refetch:A}=d({...R({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4,refetchOnWindowFocus:!1}),M=(0,Z.useMemo)(()=>{let e=(D?.callSites??[]).filter(e=>e.id!==`mainAgent`);return E||(e=e.filter(e=>e.id!==`analyzeConversation`)),e},[D,E]),N=!O&&!k&&!!D&&!!i,ee=(0,Z.useMemo)(()=>M.map(e=>e.id),[M]),P=(0,Z.useMemo)(()=>{if(!N)return{};let e={};for(let t of ee)if(t in _)e[t]=_[t];else{let n=l[t];e[t]=n?{...n}:{}}return e},[N,ee,l,_]),F=(0,Z.useMemo)(()=>new Set(ee),[ee]),I=(0,Z.useMemo)(()=>Object.entries(l).some(([e,t])=>F.has(e)&&(t?.profile!=null||t?.provider!=null||t?.model!=null)),[l,F]),te=(0,Z.useMemo)(()=>{if(!N)return!1;for(let e of Object.keys(P))if(!_t(P[e],l[e]))return!0;return!1},[N,P,l]),z=(0,Z.useMemo)(()=>Object.values(P).some(e=>gt(e)&&!!e?.provider&&!e?.model),[P]),V=J.use.queryComplexityRouting(),U=(0,Z.useCallback)(e=>[...Ue(Ae(f,[e]),V).map(e=>({value:e.name,label:ze(e)})),{value:ht,label:`Custom`}],[f,V]),W=(0,Z.useMemo)(()=>{if(!m.trim())return M;let e=m.toLowerCase();return M.filter(t=>(t.displayName??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.domain??``).toLowerCase().includes(e))},[M,m]),G=(0,Z.useMemo)(()=>{if(!D)return[];let e=D.domains.map(e=>e.id),t=new Map(D.domains.map(e=>[e.id,e])),n=[];for(let r of e){let e=W.filter(e=>e.domain===r);e.length>0&&n.push({domain:t.get(r),sites:e})}let r=new Set(e),i=W.filter(e=>!r.has(e.domain));return i.length>0&&n.push({domain:{id:`other`,displayName:`Other`},sites:i}),n},[D,W]),ne=(0,Z.useCallback)((e,t)=>{v(n=>({...n,[e]:t}))},[]),K=(0,Z.useCallback)((e,t)=>{if(!t){v(t=>({...t,[e]:null}));return}let n=Me(f,M.find(t=>t.id===e)?.defaultProfile,V);if(n)v(t=>({...t,[e]:{profile:n}}));else{let t=Y[0],n=ue(t)??``;v(r=>({...r,[e]:{provider:t,model:n}}))}},[M,f,V]),q=(0,Z.useCallback)(async()=>{x(!0),n?.(!0);try{let n={};for(let e of Object.keys(P)){let t=P[e]??null;n[e]=gt(t)?{profile:t?.profile??null,provider:t?.provider??null,model:t?.model??null}:null}await p.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:n}}}),t(),C.success(`Overrides saved.`)}catch(e){C.error(`Failed to save overrides. Please try again.`),a(e,{context:`call_site_overrides_save`})}finally{x(!1),n?.(!1)}},[P,t,p,n,e]),re=(0,Z.useCallback)(async()=>{x(!0),n?.(!0);try{let n={};for(let e of Object.keys(P))n[e]=null;await p.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:n}}}),t(),C.success(`Overrides reset.`)}catch(e){C.error(`Failed to reset overrides. Please try again.`),a(e,{context:`call_site_overrides_reset`})}finally{x(!1),n?.(!1)}},[P,t,p,n,e]);return(0,Q.jsxs)(S.Content,{size:`lg`,hideCloseButton:!0,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Action Overrides`}),(0,Q.jsx)(S.Description,{children:`Customize which model profile specific actions should use. Uses your default profile if no override is set.`})]}),(0,Q.jsxs)(S.Body,{children:[(0,Q.jsx)(`div`,{className:`mb-4`,children:(0,Q.jsx)(y,{type:`search`,value:m,onChange:e=>h(e.target.value),placeholder:`Search actions…`,leftIcon:(0,Q.jsx)(Se,{className:`h-4 w-4`}),fullWidth:!0})}),O&&(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Q.jsx)(j,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}),k&&(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-12 text-center`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Couldn't load actions`}),(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Make sure your assistant is running`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>void A(),children:`Retry`})]}),!O&&!k&&D&&(0,Q.jsx)(`div`,{className:`space-y-4`,children:G.length===0?(0,Q.jsx)(`p`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No actions match your search.`}):G.map(({domain:e,sites:t})=>(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:e.displayName}),(0,Q.jsx)(`div`,{className:`space-y-1`,children:t.map(e=>{let t=(()=>{let t=P[e.id]??null;return!t||!gt(t)?``:t.provider||t.model?`__custom__`:t.profile??``})(),n=e.defaultProfile?f.find(t=>t.name===e.defaultProfile)?.label??e.defaultProfile:null;return(0,Q.jsx)(vt,{id:e.id,displayName:e.displayName,description:e.description,defaultProfileLabel:n,draft:P[e.id]??null,profileOptions:U(t===``||t===`__custom__`?null:t),onDraftChange:ne,onToggle:K},e.id)})})]},e.id))})]}),(0,Q.jsxs)(S.Footer,{children:[I&&(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>T(!0),disabled:b||!N,tintColor:`var(--system-negative-strong)`,className:`mr-auto`,children:`Reset to Defaults`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:t,disabled:b,children:`Cancel`}),(0,Q.jsx)(s,{variant:`primary`,size:`compact`,onClick:()=>void q(),disabled:!te||z||b,children:b?(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin`}):`Save`})]}),(0,Q.jsx)(g,{open:w,title:`Reset to Defaults`,message:`Every task override will be reset and will follow your active profile. This cannot be undone.`,confirmLabel:`Reset to Defaults`,destructive:!0,onConfirm:()=>{T(!1),re()},onCancel:()=>T(!1)})]})}function xt({blocked:e,availableReplacements:t,replacement:n,onReplacementChange:r,error:i,saving:a,onClose:o,onConfirm:c}){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,Q.jsx)(S.Root,{open:e!==null,onOpenChange:e=>{e||o()},children:(0,Q.jsxs)(S.Content,{size:`sm`,children:[(0,Q.jsx)(S.Header,{children:(0,Q.jsx)(S.Title,{children:`Can't Delete Profile`})}),(0,Q.jsxs)(S.Body,{className:`space-y-4`,children:[(0,Q.jsx)(m,{variant:`body-medium-default`,as:`p`,children:l}),e&&e.callSiteIds.length>0&&(0,Q.jsx)(`ul`,{className:`space-y-1 pl-1`,children:e.callSiteIds.map(e=>(0,Q.jsxs)(`li`,{className:`text-body-small-default text-(--content-secondary)`,children:[`• `,(0,Q.jsx)(`code`,{children:e})]},e))}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Replacement profile`}),(0,Q.jsx)(h,{"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,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:i})]}),(0,Q.jsxs)(S.Footer,{children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:o,children:`Cancel`}),(0,Q.jsx)(s,{variant:`primary`,size:`compact`,disabled:!n||a,onClick:c,children:a?`Saving…`:`Reassign and Delete`})]})]})})}function St({profile:e,isDragging:t,dropTarget:n,isDeleting:r,deleteError:i,isToggling:a,onDragStart:o,onDragEnd:c,onDragOver:l,onDragLeave:u,onDrop:d,onEditClick:f,onDeleteClick:p,onStatusToggle:h}){let g=e.source===`managed`,_=e.status!==`disabled`,y=e.name===ke;return(0,Q.jsxs)(`div`,{className:`relative`,children:[n?.name===e.name&&!n.after&&(0,Q.jsx)(`div`,{className:`mx-0 h-0.5 rounded-full bg-[var(--border-active)]`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg pr-2 py-2${t?` opacity-50`:``}`,draggable:!g,onDragStart:o,onDragEnd:c,onDragOver:l,onDragLeave:u,onDrop:d,children:[(0,Q.jsx)(ct,{className:`h-4 w-4 shrink-0 ${g?`invisible`:`cursor-grab text-[var(--content-tertiary)]`}`}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1${_?``:` opacity-55`}`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(m,{variant:`body-medium-default`,as:`span`,className:`text-(--content-default)`,children:e.label??e.name}),g&&e.name!==`auto`&&(0,Q.jsx)(v,{tone:`positive`,title:`Managed by Platform — auth is locked, but you can rename or disable this profile.`,children:`Platform`})]}),e.description?(0,Q.jsx)(m,{variant:`body-medium-lighter`,as:`p`,className:`mt-0.5 text-(--content-tertiary)`,children:e.description}):null,e.model??e.provider?(0,Q.jsx)(m,{variant:`body-medium-lighter`,as:`p`,className:`mt-0.5 text-(--content-tertiary)`,children:e.model??e.provider}):null]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center`,title:_?`Active — toggle to hide from pickers`:`Disabled — toggle to show in pickers`,children:(0,Q.jsx)(b,{checked:_,onChange:e=>h(e),disabled:a,"aria-label":`${_?`Disable`:`Enable`} ${e.label??e.name}`})}),(0,Q.jsxs)(`div`,{className:`flex w-[92px] items-center justify-end gap-2${y?` invisible`:``}`,children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:f,children:g?`View`:`Edit`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(le,{}),"aria-label":`Delete ${e.label??e.name}`,disabled:g||r,title:g?`Managed profiles cannot be deleted`:void 0,onClick:p,tintColor:`var(--system-negative-strong)`})]})]})]}),n?.name===e.name&&n.after&&(0,Q.jsx)(`div`,{className:`mx-0 h-0.5 rounded-full bg-[var(--border-active)]`}),i?(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`px-2 pb-1 text-(--system-negative-strong)`,children:i}):null,e.name===`auto`&&(0,Q.jsx)(`div`,{className:`mx-2 mt-1 border-b border-[var(--border-subtle)]`})]})}function Ct({isOpen:e,assistantId:t,onClose:n}){let r=u(),{data:i}=d({...L({path:{assistant_id:t}}),staleTime:3e4}),o=(0,Z.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),s=(0,Z.useMemo)(()=>i?.llm?.profileOrder??[],[i?.llm?.profileOrder]),c=i?.llm?.activeProfile??null,l=i?.llm?.callSites??{},f=(0,Z.useMemo)(()=>Ze(o,s),[o,s]),p=B({onSuccess:e=>{H(r,{path:{assistant_id:t}},e)}}),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),{data:v}=d({...te({path:{assistant_id:t}}),enabled:e}),y=v?.connections,b=Object.keys(o);async function x(e,n,r){let i=r?.mode??`replace`,c=!(e in o);if(i===`merge`&&!c){await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:n}}}}),h(!1),_(null);return}let l={profiles:{[e]:n}};if(c&&(l.profileOrder=s.includes(e)?s:[...s,e]),c)await p.mutateAsync({path:{assistant_id:t},body:{llm:l}});else{let n=o[e];await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:null}}}});try{await p.mutateAsync({path:{assistant_id:t},body:{llm:l}})}catch(r){throw a(r,{context:`settings-ai-profile-edit-recreate`}),n!=null&&await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:n}}}}).catch(()=>{}),r}}c&&C.success(`Profile "${n.label??e}" created`),h(!1),_(null)}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(S.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,Q.jsx)(wt,{assistantId:t,profiles:o,profileOrder:s,orderedProfiles:f,activeProfile:c,callSiteOverrides:l,onClose:n,onEditClick:e=>{_(e),h(!0)},onNewClick:()=>{_(null),h(!0)}}):null}),(0,Q.jsx)(re,{isOpen:m,mode:g?g.source===`managed`?`view`:`edit`:`create`,profileName:g?.name,initialValues:g??void 0,existingNames:b,connections:y,assistantId:t,onSave:x,onCancel:()=>{h(!1),_(null)}})]})}function wt({assistantId:e,profiles:t,profileOrder:n,orderedProfiles:r,activeProfile:i,callSiteOverrides:o,onClose:c,onEditClick:l,onNewClick:d}){let f=u(),p=B({onSuccess:t=>{H(f,{path:{assistant_id:e}},t)}}),[h,g]=(0,Z.useState)({}),[_,v]=(0,Z.useState)({}),[y,b]=(0,Z.useState)(new Set),[x,C]=(0,Z.useState)(null),[w,T]=(0,Z.useState)(null),[E,D]=(0,Z.useState)(null),[O,k]=(0,Z.useState)(null),A=(0,Z.useRef)(null),j=(0,Z.useRef)(null),[M,N]=(0,Z.useState)(null),[ee,P]=(0,Z.useState)(null),[F,I]=(0,Z.useState)(``),[te,L]=(0,Z.useState)(!1),R=J.use.queryComplexityRouting(),z=(0,Z.useMemo)(()=>Ue(r,R),[r,R]);async function V(n,r){if(y.has(n.name))return!1;b(e=>new Set(e).add(n.name)),C(null);let i=r?`active`:`disabled`;if(!t[n.name])return b(e=>{let t=new Set(e);return t.delete(n.name),t}),!1;try{return await p.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[n.name]:{status:i}}}}}),!0}catch(e){return a(e,{context:`settings-ai-profile-toggle`}),C(`Couldn't update "${n.label??n.name}". Please try again.`),!1}finally{b(e=>{let t=new Set(e);return t.delete(n.name),t})}}async function U(t){v(e=>({...e,[t]:!0})),g(e=>{let n={...e};return delete n[t],n});try{let r=n.filter(e=>e!==t);await p.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[t]:null},profileOrder:r}}})}catch(e){a(e,{context:`settings-ai-profile-delete`}),g(e=>({...e,[t]:`Failed to delete profile. Please try again.`}))}finally{v(e=>{let n={...e};return delete n[t],n})}}function W(e){let t=z.find(t=>t.name===e)?.label??e,n=e===i,r=Object.entries(o).filter(([t,n])=>t!==`mainAgent`&&n?.profile===e).map(([e])=>e);if(n||r.length>0){N({name:e,label:t,isActive:n,callSiteIds:r}),I(``),P(null);return}U(e)}async function G(){if(!M||!F)return;L(!0),P(null);let t={};if(M.isActive&&(t.activeProfile=F),M.callSiteIds.length>0){let e={};for(let t of M.callSiteIds)e[t]={profile:F};t.callSites=e}if(Object.keys(t).length>0)try{await p.mutateAsync({path:{assistant_id:e},body:{llm:t}})}catch(e){a(e,{context:`settings-ai-profile-reassign-delete`}),P(`Failed to reassign references. Please try again.`),L(!1);return}let n=M.name;N(null),L(!1),U(n)}async function ne(t,r){if(t===r.name)return;k(null);let i=n.filter(e=>e!==t),o=i.indexOf(r.name);if(o===-1)return;r.after&&(o+=1);let s=[...i.slice(0,o),t,...i.slice(o)];try{await p.mutateAsync({path:{assistant_id:e},body:{llm:{profileOrder:s}}})}catch(e){a(e,{context:`settings-ai-profile-reorder`}),k(`Failed to reorder profiles. Please try again.`)}}let K=z.filter(e=>e.name!==M?.name&&e.source!==`managed`),q=K.length>0?K:z.filter(e=>e.name!==M?.name);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(S.Content,{size:`md`,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Model Profiles`}),(0,Q.jsx)(S.Description,{children:`Bundle a provider and model into a named profile. Assign profiles to specific actions or swap between them when chatting.`})]}),(0,Q.jsxs)(S.Body,{children:[z.length===0?(0,Q.jsx)(m,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No profiles yet. Create one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-1`,children:z.map(e=>(0,Q.jsx)(St,{profile:e,isDragging:w===e.name,dropTarget:E,isDeleting:_[e.name]??!1,deleteError:h[e.name],isToggling:y.has(e.name),onDragStart:t=>{A.current=e.name,T(e.name),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},onDragEnd:()=>{A.current=null,j.current=null,T(null),D(null)},onDragOver:t=>{t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.clientY>n.top+n.height/2,i={name:e.name,after:r};j.current=i,D(i)},onDragLeave:t=>{t.currentTarget.contains(t.relatedTarget)||(j.current=null,D(t=>t?.name===e.name?null:t))},onDrop:e=>{e.preventDefault();let t=A.current,n=j.current;A.current=null,j.current=null,T(null),D(null),t&&n&&ne(t,n)},onEditClick:()=>l(e),onDeleteClick:()=>W(e.name),onStatusToggle:t=>void V(e,t)},e.name))}),O&&(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-2 text-(--system-negative-strong)`,children:O}),x&&(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-2 text-(--system-negative-strong)`,children:x})]}),(0,Q.jsxs)(S.Footer,{className:`justify-between`,children:[(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:d,children:`+ New Profile`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:c,children:`Done`})]})]}),(0,Q.jsx)(xt,{blocked:M,availableReplacements:q,replacement:F,onReplacementChange:I,error:ee,saving:te,onClose:()=>{N(null),P(null)},onConfirm:()=>void G()})]})}function Tt({mode:e,connection:t,assistantId:n,existingNames:r,onSave:i,onCancel:a}){let[o,c]=(0,Z.useState)(e),[l,d]=(0,Z.useState)(void 0),f=o===`managed-edit`,[p,g]=(0,Z.useState)(t?.label??``),[_,v]=(0,Z.useState)(t?.name??``),[b,x]=(0,Z.useState)(t?.provider??`anthropic`),[C,w]=(0,Z.useState)(()=>t?t.auth.type:`platform`),[T,E]=(0,Z.useState)(()=>t?.auth.type===`api_key`?t.auth.credential:t?``:`credential/anthropic/api_key`),[D,O]=(0,Z.useState)(t?.baseUrl??``),[k,A]=(0,Z.useState)(()=>t?.models?t.models.map(e=>e.id).join(`, `):``),[j,M]=(0,Z.useState)(!1),[P,F]=(0,Z.useState)(null),I=b===`openai-compatible`,te=(0,Z.useMemo)(()=>b&&!Ce.includes(b)?[...Ce,b]:Ce,[b]),{handleLabelChange:L,resetDirty:R}=Be(o,g,v),[B,V]=(0,Z.useState)(``),[H,U]=(0,Z.useState)(!1),W=u(),G=(0,Z.useMemo)(()=>Ge(T),[T]),ne=C===`api_key`&&G!==null,{hasStoredCredential:K,isLoading:q}=De({assistantId:n,credentialKind:`credential`,credentialName:G?`${G.service}:${G.field}`:``,enabled:ne}),{credentials:J}=Je({assistantId:n,enabled:C===`api_key`});(0,Z.useEffect)(()=>{let e=t?.provider??`anthropic`;g(t?.label??``),v(t?.name??``),x(e),w(t?t.auth.type:`platform`),t?.auth.type===`api_key`?E(t.auth.credential):E(t?``:`credential/${e}/api_key`),R(),F(null),O(t?.baseUrl??``),A(t?.models?t.models.map(e=>e.id).join(`, `):``),V(``),U(!1)},[t,R]);function re(){c(`create`),d(b===`ollama`?`none`:`api_key`)}let Y=_.trim().length>0;async function ie(){if(Y){M(!0),F(null);try{let e;if(C===`api_key`){let t=T.trim()||`credential/${b}/api_key`,r=B.trim();if(r){U(!0);try{let e=Ge(t);await N({path:{assistant_id:n},body:e?{type:`credential`,name:`${e.service}:${e.field}`,value:r}:{type:`api_key`,name:b,value:r},throwOnError:!0});let i=Ye(n,`credential`,e?`${e.service}:${e.field}`:``);W.setQueryData(i,!0),W.invalidateQueries({queryKey:z({path:{assistant_id:n}})})}catch{F(`Failed to save API key. Please try again.`);return}finally{U(!1)}}e={type:`api_key`,credential:t}}else if(C===`oauth_subscription`)if(t?.auth.type===`oauth_subscription`)e=t.auth;else{F(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else if(C===`service_account`)if(t?.auth.type===`service_account`)e=t.auth;else{F(`Service account connections cannot be created through this form.`);return}else e=C===`none`?{type:`none`}:{type:`platform`};let r=p.trim()||null,a={auth:e,label:r,...I&&{base_url:D.trim()||null,models:k.trim()?k.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:o,response:s}=await ee({path:{assistant_id:n,name:t?.name??_.trim()},body:a});if(!s?.ok){F(Ve(s?.status,_.trim()));return}if(!o){F(`Server returned an empty response. Please try again.`);return}i(o)}catch{F(`Failed to save connection. Please try again.`)}finally{M(!1)}}}let ae=J.filter(e=>e.service===b),X=o!==`create`&&t?.auth.type===`api_key`,oe=ae.length>0||X,se=We(`Enter your API key`,K);return o===`create`?(0,Q.jsx)(Oe,{variant:`modal`,assistantId:n,existingNames:r,defaultProviderType:b,defaultAuthType:l,onCreated:i,onCancel:a},b):(0,Q.jsxs)(S.Content,{size:`md`,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Edit Connection`}),(0,Q.jsx)(S.Description,{children:f?`Managed by Vellum — auth is locked, but you can rename "${t?.name}".`:`Editing "${t?.name}".`})]}),(0,Q.jsxs)(S.Body,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,Q.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,Q.jsx)(y,{value:p,onChange:e=>L(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Key`}),(0,Q.jsx)(y,{value:_,placeholder:`e.g. anthropic-personal`,disabled:!0,fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{"aria-label":`Provider`,value:b,onChange:x,disabled:!0,options:te.map(e=>({value:e,label:Ie[e]}))})]}),I&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,Q.jsx)(y,{value:D,onChange:e=>O(e.target.value),placeholder:`https://api.example.com/v1`,disabled:f,fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,Q.jsx)(y,{value:k,onChange:e=>A(e.target.value),placeholder:`model-1, model-2`,disabled:f,fullWidth:!0}),(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Auth Type`}),(0,Q.jsx)(h,{"aria-label":`Auth type`,value:C,onChange:e=>{w(e),F(null)},disabled:f||b===`ollama`,options:(()=>{let e;return e=b===`ollama`?[`none`]:me(b)?[`api_key`,`platform`]:[`api_key`],C&&!e.includes(C)&&e.push(C),e.map(e=>({value:e,label:Fe[e]}))})()})]}),C===`api_key`&&(0,Q.jsx)(Ee,{apiKeyValue:B,onApiKeyChange:V,credential:T,onCredentialChange:E,isAuthLocked:f,isLoadingCredential:q,apiKeyPlaceholder:se,provider:b,providerCredentials:ae,showAdvancedSection:oe,onError:F}),C===`oauth_subscription`&&(0,Q.jsx)(Re,{assistantId:n,onConnected:i}),P&&(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:P})]}),(0,Q.jsxs)(S.Footer,{children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:a,children:`Cancel`}),o===`managed-edit`&&(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:re,disabled:j||H,children:`Save as New`}),(0,Q.jsx)(s,{variant:`primary`,size:`compact`,disabled:!Y||j||H,onClick:()=>void ie(),children:j?`Saving…`:`Save`})]})]})}function Et(e){switch(e.type){case`api_key`:return`API key · ${e.credential}`;case`oauth_subscription`:return`ChatGPT Subscription`;case`platform`:return`Managed proxy`;case`none`:return`None (local)`;default:return e.type}}function Dt({isOpen:e,assistantId:t,onClose:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(null),s=u(),{data:c,isLoading:l,isError:f}=d({...te({path:{assistant_id:t}}),enabled:e}),p=(0,Z.useMemo)(()=>c?.connections??[],[c]);function m(e){s.invalidateQueries({queryKey:W({path:{assistant_id:t}})}),i(!1),o(null)}let h=p.map(e=>e.name),g=()=>{i(!1),o(null)};return(0,Q.jsx)(S.Root,{open:e,onOpenChange:e=>{e||(r?g():n())},children:e?r?(0,Q.jsx)(Tt,{mode:a?a.isManaged?`managed-edit`:`edit`:`create`,connection:a??void 0,assistantId:t,existingNames:h,onSave:m,onCancel:g}):(0,Q.jsx)(Ot,{connections:p,loading:l,isError:f,assistantId:t,onClose:n,onEditClick:e=>{o(e),i(!0)},onNewClick:()=>{o(null),i(!0)},onConnectionDeleted:()=>{s.invalidateQueries({queryKey:W({path:{assistant_id:t}})})}}):null})}function Ot({connections:e,loading:t,isError:n,assistantId:r,onClose:i,onEditClick:a,onNewClick:o,onConnectionDeleted:c}){let[l,u]=(0,Z.useState)({}),[d,f]=(0,Z.useState)({});async function p(e){f(t=>({...t,[e]:!0})),u(t=>{let n={...t};return delete n[e],n});try{let{response:t}=await F({path:{assistant_id:r,name:e}});t?.ok||t?.status===404?c(e):t?.status===409?u(t=>({...t,[e]:`Connection is in use by one or more profiles. Remove those references first.`})):u(t=>({...t,[e]:`Failed to delete connection. Please try again.`}))}catch{u(t=>({...t,[e]:`Failed to delete connection. Please try again.`}))}finally{f(t=>{let n={...t};return delete n[e],n})}}return(0,Q.jsxs)(S.Content,{size:`md`,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Provider Connections`}),(0,Q.jsx)(S.Description,{children:`Manage inference provider connections. Each connection binds a name to a provider and auth configuration.`})]}),(0,Q.jsx)(S.Body,{children:t?(0,Q.jsx)(`div`,{className:`space-y-2 py-2`,children:[1,2,3].map(e=>(0,Q.jsx)(`div`,{className:`h-10 animate-pulse rounded-lg bg-[var(--surface-active)]`},e))}):n?(0,Q.jsx)(m,{variant:`body-medium-default`,as:`p`,className:`py-4 text-center text-(--system-negative-strong)`,children:`Failed to load connections. Please try again.`}):e.length===0?(0,Q.jsx)(m,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No connections yet. Create one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>{let t=d[e.name]??!1,n=l[e.name],r=e.isManaged??!1;return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg px-2 py-2`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(m,{variant:`body-medium-default`,as:`span`,className:`text-(--content-default)`,children:e.label??e.name}),r&&(0,Q.jsx)(v,{tone:`positive`,title:`Managed by Platform — auth is locked, but you can rename this connection.`,children:`Platform`})]}),(0,Q.jsxs)(m,{variant:`body-medium-lighter`,as:`p`,className:`mt-0.5 text-(--content-tertiary)`,children:[e.label?`${e.name} · `:``,Ie[e.provider]??e.provider,` · `,Et(e.auth)]})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:()=>a(e),children:`Edit`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(le,{}),"aria-label":`Delete ${e.name}`,disabled:r||t,title:r?`Managed connections cannot be deleted`:void 0,onClick:()=>void p(e.name),tintColor:`var(--system-negative-strong)`})]})]}),n?(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`px-2 pb-1 text-(--system-negative-strong)`,children:n}):null]},e.name)})})}),(0,Q.jsxs)(S.Footer,{className:`justify-between`,children:[(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:o,children:`+ New Connection`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:i,children:`Done`})]})]})}function kt(e){let[t,n]=(0,Z.useState)(void 0);return(0,Z.useEffect)(()=>{t!==void 0&&e===t.value&&n(void 0)},[e,t]),[t===void 0?e:t.value,(0,Z.useCallback)(e=>n(e===void 0?void 0:{value:e}),[])]}function At(){let e=at(),t=u(),{data:n}=d({...L({path:{assistant_id:e}}),staleTime:3e4}),r=n?.llm?.activeProfile??null,i=n?.llm?.advisorProfile??null,o=n?.llm?.callSites??{},{profiles:c,profileOrder:l}=ye(n?.llm,e),f=(0,Z.useMemo)(()=>Ze(c,l),[c,l]),p=B({onSuccess:n=>{H(t,{path:{assistant_id:e}},n)}}),[g,_]=kt(r),[v,y]=kt(i),[b,x]=(0,Z.useState)(!1),[S,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(!1),D=J.use.queryComplexityRouting(),O=(0,Z.useMemo)(()=>Ue(Ae(f,[g]),D),[f,g,D]),k=(0,Z.useMemo)(()=>Ue(Ae(f,[v]),D),[f,v,D]),A=Object.entries(o).filter(([e,t])=>e!==`mainAgent`&&(t?.profile!=null||t?.provider!=null||t?.model!=null)).length,M=A===1?`1 Override`:A>0?`${A} Overrides`:`Overrides`,N=g!==r,ee=v!==i,P=(0,Z.useCallback)(async()=>{try{await p.mutateAsync({path:{assistant_id:e},body:{llm:{activeProfile:g}}}),C.success(`Profile saved.`)}catch(e){C.error(`Failed to switch profile. Please try again.`),a(e,{context:`settings-ai-language-model-save`})}},[g,p,e]),F=(0,Z.useCallback)(async()=>{try{await p.mutateAsync({path:{assistant_id:e},body:{llm:{advisorProfile:v??``}}}),C.success(`Advisor profile saved.`)}catch(e){C.error(`Failed to switch advisor profile. Please try again.`),a(e,{context:`settings-ai-advisor-profile-save`})}},[v,p,e]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ft,{title:`Language Model`,subtitle:`Configure the LLMs that power your assistant`,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Default Profile`}),(0,Q.jsx)(h,{value:g??``,onChange:e=>{_(e===``?null:e)},placeholder:`Select a default profile…`,options:O.map(e=>({value:e.name,label:e.name===`auto`?`Automatically switch between profiles`:ze(e)}))}),D&&g===`auto`&&(0,Q.jsx)(`div`,{className:`flex items-center gap-2 rounded-lg bg-[var(--surface-warning-subtle)] px-3 py-2`,children:(0,Q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-warning)]`,children:`Auto may use more powerful models when needed, which can increase costs.`})}),O.length===0?(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-1 text-(--content-tertiary)`,children:`No profiles yet. Click Profiles below to create one.`}):null]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Advisor Profile`}),(0,Q.jsx)(h,{value:v??``,onChange:e=>{y(e===``?null:e)},placeholder:`Select an advisor profile…`,options:k.map(e=>({value:e.name,label:e.name===`auto`?`Automatically switch between profiles`:ze(e)}))}),(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-1 text-(--content-tertiary)`,children:`Which profile the advisor consults. It won't be selectable as your chat profile.`}),ee&&(0,Q.jsxs)(`div`,{className:`mt-2 flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:F,disabled:p.isPending}),p.isPending&&(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>E(!0),children:`Providers`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>x(!0),children:`Profiles`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>w(!0),children:M})]}),N&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:P,disabled:p.isPending}),p.isPending&&(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]})}),e&&(0,Q.jsx)(Ct,{isOpen:b,assistantId:e,onClose:()=>x(!1)}),e&&(0,Q.jsx)(yt,{isOpen:S,onClose:()=>w(!1),assistantId:e}),e&&(0,Q.jsx)(Dt,{isOpen:T,assistantId:e,onClose:()=>E(!1)})]})}var jt=`vellum:ai:imageGenMode`,Mt=`vellum:ai:imageGenModel`,Nt=`vellum:ai:webSearchMode`,Pt=`vellum:ai:webSearchProvider`,Ft=`vellum:ai:webFetchProvider`,It=`vellum:ai:emailMode`,Lt=`vellum:ai:emailByoProvider`,Rt=`vellum:voice:ttsProvider`,zt=`vellum:voice:ttsApiKey:`,Bt=`vellum:voice:ttsVoiceId:`,Vt=`vellum:voice:sttProvider`,Ht=`vellum:voice:sttApiKey:`;function Ut(){let e=at();return(0,Z.useCallback)(async(t,n)=>{try{let{data:r}=await N({path:{assistant_id:e},body:{value:n,type:`api_key`,name:t},throwOnError:!0});be(r)}catch(e){throw e instanceof Error&&e.message===`No assistant found`?C.error(`Assistant not ready. Please try again.`):C.error(`Failed to save ${t} API key. Please try again.`),a(e,{context:`provision_provider_key`}),e}},[e])}function Wt(){let e=at(),i=u(),{data:o}=d({...L({path:{assistant_id:e}}),staleTime:3e4}),s=B({onSuccess:t=>{H(i,{path:{assistant_id:e}},t)}}),c=Ut(),{serverWebSearchMode:l,serverWebSearchProvider:f}=(0,Z.useMemo)(()=>{if(!o)return{serverWebSearchMode:tt(n(Nt,`your-own`),`your-own`),serverWebSearchProvider:n(Pt,`inference-provider-native`)};let e=o.services?.[`web-search`];return{serverWebSearchMode:tt(e?.mode??n(`vellum:ai:webSearchMode`,`your-own`),`your-own`),serverWebSearchProvider:e?.provider||n(`vellum:ai:webSearchProvider`,`inference-provider-native`)}},[o]),[p,m]=(0,Z.useState)(!1),[g,_]=kt(l),[v,b]=kt(f),[x,S]=(0,Z.useState)(``),w=he.has(v),{hasStoredCredential:T}=De({assistantId:e,credentialKind:`api_key`,credentialName:v,enabled:w}),E=x.trim().length>0,D=p||g===`your-own`&&w&&!T&&!E||!(g!==l||(g===`managed`?`inference-provider-native`:v)!==f)&&!E,O=We(_e[v]??`Enter your API key`,T),k=(0,Z.useCallback)(async()=>{m(!0);let t=x.trim(),n=g===`managed`?`inference-provider-native`:v,o=we(n),l=g===`your-own`&&w&&t.length>0;try{l&&await c(n,t),await s.mutateAsync({path:{assistant_id:e},body:{services:{"web-search":{mode:g,provider:n}}}}).catch(e=>{throw C.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{m(!1);return}m(!1);try{if(r(Nt,g),r(Pt,n),l){o&&r(o,t);let n=Ye(e,`api_key`,v);i.setQueryData(n,!0),i.invalidateQueries({queryKey:n}),S(``)}C.success(`Web search settings saved.`)}catch(e){a(e,{context:`settings-ai-web-search-persist-local`}),C.error(`Saved, but local preferences could not be written.`)}},[w,s,c,i,e,x,g,v]),A=(0,Z.useCallback)(()=>{let e=we(v);e&&t(e),S(``),b(`inference-provider-native`),r(Pt,`inference-provider-native`)},[v,b]);return(0,Q.jsx)(ut,{title:`Web Search`,subtitle:`Configure how your assistant should search the web`,mode:g,onModeChange:e=>_(e),children:g===`managed`?(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Web search is included with managed inference.`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:k,disabled:D}),p&&(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:v,onChange:b,options:$e.map(e=>({value:e,label:ie[e]??e}))})]}),w&&(0,Q.jsx)(y,{label:`API Key`,type:`password`,value:x,onChange:e=>S(e.target.value),placeholder:O,fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:k,disabled:D}),p&&(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),w&&(0,Q.jsx)(dt,{onClick:A,filled:!0})]})]})})}var Gt=`default`;function Kt(){let e=at(),i=u(),{data:o}=d({...L({path:{assistant_id:e}}),staleTime:3e4}),s=B({onSuccess:t=>{H(i,{path:{assistant_id:e}},t)}}),c=Ut(),l=(0,Z.useMemo)(()=>o?o.services?.[`web-fetch`]?.provider||n(`vellum:ai:webFetchProvider`,Gt):n(Ft,Gt),[o]),[f,p]=(0,Z.useState)(!1),[m,g]=kt(l),[_,v]=(0,Z.useState)(``),b=se.has(m),{hasStoredCredential:x}=De({assistantId:e,credentialKind:`api_key`,credentialName:m,enabled:b}),S=_.trim().length>0,w=f||b&&!x&&!S||m===l&&!S,T=We(Le[m]??`Enter your API key`,x),E=(0,Z.useCallback)(async()=>{p(!0);let t=_.trim(),n=b&&t.length>0;try{n&&await c(m,t),await s.mutateAsync({path:{assistant_id:e},body:{services:{"web-fetch":{provider:m}}}}).catch(e=>{throw C.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{p(!1);return}p(!1);try{if(r(Ft,m),n){let n=rt(m);n&&r(n,t);let a=Ye(e,`api_key`,m);i.setQueryData(a,!0),i.invalidateQueries({queryKey:a}),v(``)}C.success(`Web fetch settings saved.`)}catch(e){a(e,{context:`settings-ai-web-fetch-persist-local`}),C.error(`Saved, but local preferences could not be written.`)}},[b,s,c,i,e,_,m]),D=(0,Z.useCallback)(()=>{let e=rt(m);e&&t(e),v(``),g(Gt),r(Ft,Gt)},[m,g]);return(0,Q.jsx)(ft,{id:`web-fetch`,title:`Web Fetch`,subtitle:`Configure how your assistant reads individual web pages`,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:m,onChange:g,options:fe.map(e=>({value:e,label:X[e]??e}))})]}),b&&(0,Q.jsx)(y,{label:`API Key`,type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:T,fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:E,disabled:w}),f&&(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),b&&(0,Q.jsx)(dt,{onClick:D,filled:!0})]})]})})}var qt=[{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],Jt=[{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:`macos-native`,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],Yt=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],Xt=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`],Zt={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`};function Qt({assistantId:e,assistantHandle:t,emailRootDomain:n}){let r=u(),i=c(),[o,p]=l(),[m,h]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(null),[S,w]=(0,Z.useState)(``),[T,E]=(0,Z.useState)(null),[k,A]=(0,Z.useState)(!1),[M,N]=(0,Z.useState)(!1),[ee,P]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{v||!t||m||(h(t),y(!0))},[t,v,m]);let F=d({...qe(),enabled:!0}),I=F.data,te=I?.entitlements,L=te?.managed_email===!0,R=!!te&&!L,z=!I&&F.isError&&!F.isFetching,B=d({...xe({path:{assistant_id:e}}),enabled:!R}),V=d({...ge({path:{assistant_id:e}}),enabled:!R}),H=B.data?.results?.[0],U=V.data?.results?.[0],W=H?`${H.subdomain}.${n}`:null,K=d({...et({path:{assistant_id:e,id:U?.id??``}}),enabled:!!U?.id,refetchOnWindowFocus:!1}),q=d({...it({path:{assistant_id:e,id:H?.id??``}}),enabled:!!H?.id,refetchInterval:e=>{let t=e.state.data?.status;return t===`verified`||t===`failed`?!1:1e4},refetchOnWindowFocus:!0});(0,Z.useEffect)(()=>{o.get(`release`)!==`1`||!H||U||(N(!0),p(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[U,H,o,p]);let J=f(Ne()),re=f(je()),Y=f(Te()),ie=f(nt()),X=(0,Z.useCallback)(()=>{let t={assistant_id:e};r.invalidateQueries({queryKey:Qe({path:t})}),r.invalidateQueries({queryKey:ae({path:t})}),U?.id&&r.invalidateQueries({queryKey:ve({path:{...t,id:U.id}})}),r.invalidateQueries({queryKey:pe()})},[U?.id,e,r]),oe=(0,Z.useCallback)(async()=>{let t=m.trim().toLowerCase();if(!t){x(`Enter a subdomain.`);return}A(!1);try{await J.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),h(``),x(null),X(),C.success(`Domain ${t}.${n} registered.`)}catch(e){x(G(e,void 0,`Failed to register domain.`))}},[e,n,X,J,m]),se=(0,Z.useCallback)(async()=>{let t=S.trim().toLowerCase();if(!t){E(`Enter an email username.`);return}try{await Y.mutateAsync({path:{assistant_id:e},body:{username:t}}),w(``),E(null),X(),C.success(`Email address created.`)}catch(e){E(G(e,void 0,`Failed to create email address.`))}},[e,X,Y,S]),ce=(0,Z.useCallback)(async()=>{if(U?.id){P(!1);try{await ie.mutateAsync({path:{assistant_id:e,id:U.id}}),X(),C.success(`Email address removed.`)}catch(e){a(e,{context:`email_address_delete`}),C.error(`Failed to remove email address.`)}}},[U?.id,e,ie,X]),ue=(0,Z.useCallback)(async()=>{if(!H?.id)return;if(U){C.error(`Remove the email address first.`);return}N(!1);let t=H.subdomain;try{await re.mutateAsync({path:{assistant_id:e,id:H.id}}),h(t),X(),C.success(`Domain released.`)}catch(e){a(e,{context:`email_domain_release`}),C.error(`Failed to release domain.`)}},[U,e,re,H?.id,H?.subdomain,X]);if(F.isLoading)return(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin`}),`Checking subscription…`]});if(R)return(0,Q.jsxs)(_,{tone:`info`,icon:(0,Q.jsx)(D,{className:`h-4 w-4`,"aria-hidden":!0}),title:`Get a dedicated email address for your assistant`,actions:(0,Q.jsx)(s,{size:`compact`,onClick:()=>i(`${ne.settings.billing}?adjust_plan`),children:`Upgrade to Pro`}),children:[`Pro plans include a managed`,` `,`<your-subdomain>.${n}`,` inbox — no provider setup required. Or switch to `,(0,Q.jsx)(`strong`,{children:`Your Own`}),` to bring an existing provider.`]});let de=z?(0,Q.jsx)(_,{tone:`warning`,title:`Couldn't verify subscription status`,actions:(0,Q.jsx)(s,{size:`compact`,variant:`outlined`,onClick:()=>F.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 H?U?(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Address`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:U.address}),(0,Q.jsx)(mt,{status:q.data?.status,message:q.data?.message,isLoading:q.isLoading}),(0,Q.jsx)(s,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(le,{}),onClick:()=>P(!0),disabled:ie.isPending,"aria-label":`Remove email address`})]}),(0,Q.jsx)(g,{open:ee,title:`Remove Email Address`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to remove `,(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:U.address}),`? Your assistant will no longer be able to send or receive email at this address.`]}),confirmLabel:`Remove`,destructive:!0,onConfirm:ce,onCancel:()=>P(!1)})]}),K.data?.usage&&(0,Q.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,Q.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Domain`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[H.subdomain,`.`,n]}),(0,Q.jsx)(mt,{status:q.data?.status,message:q.data?.message,isLoading:q.isLoading}),(0,Q.jsx)(s,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(le,{}),onClick:()=>N(!0),disabled:re.isPending,"aria-label":`Release domain`})]}),(0,Q.jsx)(g,{open:M,title:`Release Domain`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to release `,(0,Q.jsxs)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:[H.subdomain,`.`,n]}),`? The subdomain will become available for others to claim.`]}),confirmLabel:`Release`,destructive:!0,onConfirm:ue,onCancel:()=>N(!1)})]}),(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Email address`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.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 ${T?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,Q.jsx)(`input`,{value:S,onChange:e=>{w(e.target.value.toLowerCase()),T&&E(null)},placeholder:`hi`,"aria-label":`Email username`,"aria-invalid":!!T,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,Q.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,W]})]}),(0,Q.jsx)(s,{onClick:se,disabled:Y.isPending||!S.trim(),children:Y.isPending?`Creating…`:`Create`})]}),T&&(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:T})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[de,(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Subdomain`}),(0,Q.jsx)(O,{subdomain:m,onSubdomainChange:e=>{h(e),b&&x(null)},domainSuffix:n,subdomainPlaceholder:`my-assistant`,error:b}),(0,Q.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,Q.jsx)(s,{onClick:()=>A(!0),disabled:J.isPending||!m.trim(),children:J.isPending?`Registering…`:`Register`}),(0,Q.jsx)(g,{open:k,title:`Set Subdomain`,message:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:m.trim().toLowerCase()||`subdomain`}),` will also become your assistant's public handle. You won't be able to change it once set.`]}),confirmLabel:`Confirm`,onConfirm:oe,onCancel:()=>A(!1)})]})}function $t(){let e=at(),t=K(),{data:o}=d({...oe(),enabled:t}),s=o?.results?.[0]?.handle,c=st.use.emailRootDomain(),l=ce(),[u,f]=(0,Z.useState)(()=>l===`gated`?`your-own`:tt(n(It,`managed`),`managed`)),[p,m]=(0,Z.useState)(()=>{let e=n(Lt,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),g=d({queryKey:[`byoEmailCredential`,e,p],queryFn:async()=>{let{data:t}=await I({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,Z.useEffect)(()=>{g.error&&a(g.error,{context:`byo_email_credential_check`,bestEffort:!0})},[g.error]);let _=g.data?.hasSecret===!0,v=(0,Z.useCallback)(e=>{f(e),r(It,e)},[]),y=(0,Z.useCallback)(()=>{r(Lt,p),C.success(`Email settings saved.`)},[p]),b=(0,Z.useMemo)(()=>Yt.find(e=>e.id===p)??Yt[0],[p]),x=(0,Q.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,Q.jsx)(A,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`span`,{children:[`Configure `,b.displayName,` via the assistant CLI: ask the assistant to run the`,` `,(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:b.setupSkill}),` `,`skill. It walks you through storing the API key, detecting the domain, and (optionally) wiring up an inbound webhook.`]}),(0,Q.jsxs)(`a`,{href:b.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Open `,b.displayName,(0,Q.jsx)(k,{className:`h-3 w-3`})]})]})]}),S=(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:p,onChange:e=>{(e===`mailgun`||e===`resend`)&&m(e)},options:Yt.map(e=>({value:e.id,label:e.displayName}))})]}),_?(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.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,Q.jsx)(E,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsxs)(`span`,{children:[b.displayName,` API key configured. To reconfigure, run the`,` `,(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:b.setupSkill}),` `,`skill.`]})]}),(0,Q.jsxs)(`a`,{href:b.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 `,b.displayName,(0,Q.jsx)(k,{className:`h-3 w-3`})]})]}):x,(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Q.jsx)($,{onClick:y,disabled:!1})})]});return l===`gated`?(0,Q.jsx)(ft,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,children:S}):(0,Q.jsx)(ut,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,mode:u,onModeChange:v,children:u===`managed`?(0,Q.jsx)(`div`,{className:`space-y-4`,children:l===`disabled`?(0,Q.jsx)(Xe,{children:`Log in to the Vellum platform to manage email settings.`}):(0,Q.jsx)(Qt,{assistantId:e,assistantHandle:s,emailRootDomain:c})}):S})}function en(){let e=at(),t=u(),{data:i}=d({...L({path:{assistant_id:e}}),staleTime:3e4}),o=B({onSuccess:n=>{H(t,{path:{assistant_id:e}},n)}}),s=Ut(),[c,l]=kt((0,Z.useMemo)(()=>tt(i?i.services?.[`image-generation`]?.mode??n(`vellum:ai:imageGenMode`,`your-own`):n(jt,`your-own`),`your-own`),[i])),[f,p]=(0,Z.useState)(()=>n(Mt,`gemini-3.1-flash-image-preview`)),[m,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(!1),b=(0,Z.useCallback)(async()=>{v(!0);let n=m.trim(),i=c===`your-own`&&n.length>0;try{i&&await s(`gemini`,n),await o.mutateAsync({path:{assistant_id:e},body:{services:{"image-generation":{mode:c}}}}).catch(e=>{throw C.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e});try{await P({path:{assistant_id:e},body:{modelId:f},throwOnError:!0})}catch(e){throw C.error(`Failed to update image generation model. Please try again.`),a(e,{context:`set_image_gen_model`}),e}finally{t.invalidateQueries({queryKey:V({path:{assistant_id:e}})})}}catch{v(!1);return}v(!1);try{r(jt,c),r(Mt,f),i&&g(``),C.success(`Image generation settings saved.`)}catch(e){a(e,{context:`settings-ai-image-gen-persist-local`}),C.error(`Saved, but local preferences could not be written.`)}},[m,c,f,e,o,s,t]),x=(0,Z.useCallback)(()=>{g(``),p(`gemini-3.1-flash-image-preview`),r(Mt,`gemini-3.1-flash-image-preview`)},[]);return(0,Q.jsx)(ut,{title:`Image Generation`,subtitle:`Configure which model your assistant uses to generate images`,mode:c,onModeChange:e=>l(e),children:c===`managed`?(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Active Model`}),(0,Q.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,Q.jsx)(h,{className:`flex-1`,value:f,onChange:p,options:Xt.map(e=>({value:e,label:Zt[e]??e}))}),(0,Q.jsx)($,{onClick:b,disabled:_}),_&&(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(y,{label:`API Key`,type:`password`,value:m,onChange:e=>g(e.target.value),placeholder:`Enter your Gemini API key`,fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Active Model`}),(0,Q.jsx)(h,{value:f,onChange:p,options:Xt.map(e=>({value:e,label:Zt[e]??e}))})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:b,disabled:_}),_&&(0,Q.jsx)(j,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),(0,Q.jsx)(dt,{onClick:x})]})]})})}async function tn(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 nn(n,r,i):t===`deepgram`?await rn(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 nn(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 an(i,`ElevenLabs rejected the request.`)}}async function rn(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 an(n,`Deepgram rejected the request.`)}}async function an(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 on(){let e=at(),t=q.use.name()??`your assistant`,i=K(),{data:a}=d({...U({path:{assistant_id:e}}),enabled:i,staleTime:1/0}),o=a?.providers??qt,c=o[0]?.id??`elevenlabs`,[l,u]=(0,Z.useState)(()=>n(Rt,c)),[f,p]=(0,Z.useState)(l),[m,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(``),[b,x]=(0,Z.useState)(``),[S,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(!1),D=(0,Z.useMemo)(()=>o.find(e=>e.id===l)??o[0],[l,o]),O=(0,Z.useCallback)(e=>{let t=n(zt+e,``),r=n(Bt+e,``);w(t.length>0),v(r),x(r),g(``)},[]);(0,Z.useEffect)(()=>{O(l)},[l,O]);let k=(0,Z.useMemo)(()=>{let e=l!==f,t=m.trim().length>0,n=_.trim()!==b;return e||t||n},[l,f,m,_,b]),A=(0,Z.useCallback)(()=>{r(Rt,l);let e=m.trim();e.length>0&&(r(zt+l,e),w(!0));let t=_.trim();r(Bt+l,t),p(l),x(t),g(``)},[l,m,_]),j=(0,Z.useCallback)(()=>{r(zt+l,``),w(!1),g(``)},[l]),M=(0,Z.useCallback)(async()=>{E(!0);try{let e=n(zt+l,``),r=m.trim(),i=r.length>0?r:e;if(i.length===0){C.error(`Save an API key for this provider before testing.`);return}let a=n(Bt+l,``),o=_.trim(),s=await tn({provider:l,apiKey:i,voiceId:o.length>0?o:a,text:`Hey! It's ${t}. How does this sound?`});if(s.kind!==`audio`){C.error(s.message);return}let c=URL.createObjectURL(s.blob);try{let e=new Audio(c);await e.play(),await new Promise(t=>{e.onended=()=>t(),e.onerror=()=>t()})}finally{URL.revokeObjectURL(c)}}finally{E(!1)}},[t,m,l,_]),N=S?`•••••••• (Enter a new key to replace)`:D.apiKeyPlaceholder;return(0,Q.jsx)(ft,{title:`Text-to-Speech`,subtitle:D.subtitle,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:l,onChange:u,options:o.map(e=>({value:e.id,label:e.displayName})),"aria-label":`TTS provider`})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,Q.jsx)(y,{type:`password`,value:m,onChange:e=>g(e.target.value),placeholder:N,fullWidth:!0})]}),D.supportsVoiceSelection&&(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice ID`}),(0,Q.jsx)(y,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Enter a voice ID`,fullWidth:!0})]}),(0,Q.jsx)(pt,{guide:D.credentialsGuide}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`outlined`,onClick:M,disabled:T,children:T?`Testing…`:`Test`}),(0,Q.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:A,disabled:!k}),S&&(0,Q.jsx)(dt,{onClick:j})]})]})]})})}function sn(){let[e]=(0,Z.useState)(()=>Jt.filter(e=>!e.requiresNativeDictation||He())),t=e[0]?.id??`deepgram`,[i,a]=(0,Z.useState)(()=>{let r=n(Vt,t);return e.some(e=>e.id===r)?r:t}),[o,s]=(0,Z.useState)(i),[c,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{let i=n(Vt,t);i===`macos-native`&&!e.some(e=>e.id===i)&&r(Vt,t)},[e,t]);let f=(0,Z.useMemo)(()=>e.find(e=>e.id===i)??e[0],[e,i]),p=f.apiKeyPlaceholder!==void 0;(0,Z.useEffect)(()=>{d(n(Ht+i,``).length>0),l(``)},[i]);let m=(0,Z.useMemo)(()=>{let e=i!==o,t=c.trim().length>0;return e||t},[i,o,c]),g=(0,Z.useCallback)(()=>{r(Vt,i);let e=c.trim();e.length>0&&(r(Ht+i,e),d(!0)),s(i),l(``)},[i,c]),_=(0,Z.useCallback)(()=>{r(Ht+i,``),d(!1),l(``)},[i]),v=u?`•••••••• (Enter a new key to replace)`:f.apiKeyPlaceholder;return(0,Q.jsx)(ft,{title:`Speech-to-Text`,subtitle:f.subtitle,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:i,onChange:a,options:e.map(e=>({value:e.id,label:e.displayName})),"aria-label":`STT provider`})]}),p&&(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,Q.jsx)(y,{type:`password`,value:c,onChange:e=>l(e.target.value),placeholder:v,fullWidth:!0})]}),f.setupWarning&&(0,Q.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,Q.jsx)(M,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-mid-strong)]`}),(0,Q.jsx)(`span`,{children:f.setupWarning})]}),f.credentialsGuide&&(0,Q.jsx)(pt,{guide:f.credentialsGuide}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Q.jsx)($,{onClick:g,disabled:!m}),u&&(0,Q.jsx)(dt,{onClick:_})]})]})})}function cn(){return(0,Z.useEffect)(()=>{let e=window.location.hash.slice(1);e&&requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({block:`start`})})},[]),(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.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,Q.jsx)(A,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,Q.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:[`Managed services are metered and deducted from your Vellum account balance.`,` `,(0,Q.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,Q.jsx)(k,{className:`h-3.5 w-3.5`})]})]})]}),(0,Q.jsx)(At,{}),(0,Q.jsx)(Wt,{}),(0,Q.jsx)(Kt,{}),(0,Q.jsx)($t,{}),(0,Q.jsx)(en,{}),(0,Q.jsx)(on,{}),(0,Q.jsx)(sn,{})]})}export{cn as AiPage};
@@ -1,6 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,c as n,i as r,t as i}from"./local-settings-lVNyIOJ_.js";import{a,n as o,t as s}from"./device-settings-BBwtGKJb.js";import{o as c,t as l}from"./capture-error-B0wqOYKY.js";import{t as u}from"./react-DJZBPgpf.js";import{t as d}from"./useQuery-B45lW1Kk.js";import{n as f,t as p}from"./create-selectors-ClYkcuKo.js";import{C as m,F as h,I as ee,L as g,M as _,N as te,P as ne,R as v,S as re,_ as ie,a as ae,f as y,h as b,n as oe,r as se,s as ce,t as le,v as ue,x as de}from"./local-mode-9ZkSq1Fr.js";import{t as x}from"./is-electron-BuSDabCt.js";import{n as S,t as fe}from"./resolved-assistants-store-DMuRxkZC.js";import{n as pe,r as C,t as me}from"./api-errors-CwAGZ-xJ.js";import{t as w}from"./client.gen-Cuv6iN0E.js";import{bt as he}from"./sdk.gen-D7k-QjYl.js";import{a as ge,c as T,r as _e}from"./api-CGh7zC7Z.js";import{n as ve}from"./event-bus-DntJgYuJ.js";import{s as ye,t as be}from"./return-to-Bc7amvZZ.js";import{i as xe,t as Se}from"./dist-nMnxT9pm.js";import{a as Ce}from"./routes-BKwsRssF.js";var E=p(f(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),we=new Set;function Te(e){return we.add(e),()=>{we.delete(e)}}function Ee(){for(let e of we)try{e()}catch{}}var De=new Set([502,503,504]),Oe=`Connection interrupted. Reconnecting…`;function ke(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function Ae(e){if(e.ok)switch(e.data.status){case`active`:return e.data.is_local?{kind:`self_hosted`}:{kind:`active`};case`initializing`:return{kind:`initializing`};case`to_be_deleted`:return{kind:`cleaning_up`};default:return{kind:`error`,message:`Unexpected assistant status: ${e.data.status}`}}return e.status===404?{kind:`auto_hatch`}:ke(e.error)?{kind:`error`,transient:!0,message:Oe}:{kind:`error`,message:C(e.error,void 0,`Failed to check assistant status.`)}}function je(e){return e===void 0||e>=500}var Me=`platform_hosted_disabled`,Ne=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function Pe(e,t){return e===503?t?.code===Me:!1}var Fe=2e3,Ie=3e4;function Le(e){return Math.min(Fe*2**e,Ie)}var Re=3e5;function ze(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var Be=[`assistant`,`current`],Ve=3e3,He=new Set([`initializing`,`cleaning_up`]);function Ue(e){if(!e)return!1;let t=Ae(e);return He.has(t.kind)?Ve:!1}function We(e){return e?[...Be,e]:Be}function Ge(e){let t=e.selectedPlatformAssistantId??null;return d({queryKey:We(t),queryFn:()=>_e(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>Ue(e.state.data),refetchOnWindowFocus:!1})}var Ke=new Set([`healthy`,`ok`]);function qe(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t!==void 0&&!Ke.has(t)?`unhealthy`:`healthy`}function Je(){let e=E.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var D=e=>e===`authenticated`,Ye=e=>e!==`initializing`,O=e=>e===`present`,Xe=(e,t)=>e===`present`&&!t,Ze=new Set([401,403,410]),Qe=e=>!e.ok&&e.status!==void 0&&Ze.has(e.status),$e=4e3,et=6e4,tt=5e3;function nt(){let e=/\/assistant(?:\/|$)/.exec(window.location.pathname),t=e&&e.index>0?window.location.pathname.slice(0,e.index).replace(/\/+$/,``):``;return`${window.location.origin}${t}`}var k=new class{state={kind:`loading`};generation=0;initializingTimeout=null;ready=!1;inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null,selectedPlatformAssistantId:null};probeTimer=null;healthHeartbeatTimer=null;healthHeartbeatId=null;healthHeartbeatToken=0;reachabilityProbeInFlightIds=new Set;probeLoopAssistantId=null;errorRetryTimer=null;errorRetryAttempt=0;constructor(){Te(()=>this.onUnreachable()),ve(`app.online`,()=>this.onNetworkOnline()),S.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!v()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){S.getState().activeAssistantId!==null&&S.getState().setActiveAssistantId(null),this.setOperationalStatusAssistantId(null),this.cancelProbeTimer(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.state.kind!==`loading`&&this.transition({kind:`loading`}),this.clearExpectingFirstMessage()}async respondToInputs(){if(this.ready){if(!D(this.inputs.sessionStatus)){this.resetForLogout();return}if(v()){this.applyGatewayAuthShortCircuit();return}this.inputs.hasPlatformSession&&_(null),this.inputs.isOrgReady&&await this.checkAssistant()}}async applyServerResult(e){this.ready&&(this.state.kind!==`initializing`&&this.state.kind!==`cleaning_up`||await this.applyServerStateUpdate(e))}async checkAssistant(e){if(!this.ready)return;if(v()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:We(n),queryFn:()=>_e(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(S.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:Be,queryFn:()=>_e(),staleTime:0}),t!==this.generation))return;await this.applyServerStateUpdate(r)}catch(e){if(console.error(`Error checking assistant status:`,e),l(e,{context:`check_assistant`}),t!==this.generation||this.degradeOnTransportFailure())return;this.transition({kind:`error`,transient:!0,message:Oe})}}degradeOnTransportFailure(){return this.state.kind===`active`?(this.triggerReachabilityProbe(),!0):this.state.kind===`initializing`||this.state.kind===`cleaning_up`}retryAssistant(){this.ready&&this.checkAssistant()}markExpectingFirstMessage(){E.getState().expectingFirstMessage||E.setState({expectingFirstMessage:!0})}clearExpectingFirstMessage(){E.getState().expectingFirstMessage&&E.setState({expectingFirstMessage:!1})}transition(e){let t=this.state.kind;this.state=e,E.setState({assistantState:e}),e.kind===`initializing`?t!==`initializing`&&this.armInitializingWatchdog():this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),e.kind!==`initializing`&&e.kind!==`active`&&this.clearExpectingFirstMessage(),!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)&&this.healthHeartbeatId!==null&&this.cancelHealthHeartbeat(),e.kind===`error`&&e.transient?this.armErrorRetry():this.clearErrorRetry(e.kind!==`error`)}clearErrorRetry(e){this.errorRetryTimer&&=(clearTimeout(this.errorRetryTimer),null),e&&(this.errorRetryAttempt=0)}armErrorRetry(){this.errorRetryTimer&&clearTimeout(this.errorRetryTimer);let e=Le(this.errorRetryAttempt);this.errorRetryAttempt+=1,this.errorRetryTimer=setTimeout(()=>{this.errorRetryTimer=null,this.checkAssistant()},e)}onNetworkOnline(){if(this.ready){if(this.state.kind===`error`&&this.state.transient){this.clearErrorRetry(!0),this.checkAssistant();return}this.state.kind===`active`&&this.state.reachable===!1&&this.checkAssistant()}}armInitializingWatchdog(){this.initializingTimeout&&clearTimeout(this.initializingTimeout),this.initializingTimeout=setTimeout(()=>{this.generation++,c(`Assistant stuck in initializing state`,{level:`warning`,extra:{timeoutMs:Re}}),this.transition(ze())},Re)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;_(null),this.setOperationalStatusAssistantId(e.data.id);let r=S.getState();r.upsertFromApi(e.data),r.setActiveAssistantId(e.data.id),this.transition({kind:`active`,isLocal:n,maintenanceMode:{enabled:t?.enabled}}),n?this.startHealthHeartbeat(e.data.id):this.probeReachability(e.data.id)}projectSelfHosted(e){this.setOperationalStatusAssistantId(null),_({url:e.data.ingress_url,token:e.data.platform_actor_token});let t=S.getState();t.upsertFromApi(e.data),t.setActiveAssistantId(e.data.id),this.transition({kind:`self_hosted`}),this.startHealthHeartbeat(e.data.id)}applyGatewayAuthShortCircuit(){let e=window.location.origin,t=`self`,n=se();if(b())e=nt();else if(n){let r=ce();e=`${window.location.origin}${n}`,t=r?.assistantId??t}_({url:e,token:h()}),this.setOperationalStatusAssistantId(null),S.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=Ae(e);if(!(n.kind===`error`&&n.transient&&this.degradeOnTransportFailure())&&(e.ok?this.setOperationalStatusAssistantId(e.data.id):this.setOperationalStatusAssistantId(null),n.kind!==`auto_hatch`)){if(n.kind===`active`&&e.ok){this.projectActive(e);return}if(n.kind===`self_hosted`&&e.ok){this.projectSelfHosted(e);return}t===this.generation&&n.kind!==`active`&&this.transition(n)}}async probeReachability(e){if(!this.reachabilityProbeInFlightIds.has(e)){this.reachabilityProbeInFlightIds.add(e);try{let t=this.generation,n;try{n=qe(await ge(e))}catch{n=`unreachable`}if(n===`unreachable`&&!b()){let t=await m(this.state.kind===`self_hosted`||this.state.kind===`active`&&this.state.isLocal?ce()?.assistantId??e:e).catch(()=>null);if(t?.ok)switch(t.state){case`healthy`:n=`healthy`;break;case`sleeping`:case`starting`:case`crashed`:n=t.state;break;case`unknown`:break}}if(t!==this.generation||S.getState().activeAssistantId!==e)return;if(this.state.kind===`self_hosted`){this.state.health!==n&&this.transition({...this.state,health:n});return}if(this.state.kind!==`active`)return;let r=n===`healthy`||n===`unhealthy`;if(this.state.reachable===r&&this.state.health===n)return;this.transition({...this.state,reachable:r,health:n})}finally{this.reachabilityProbeInFlightIds.delete(e)}}}cancelProbeTimer(){this.probeTimer&&=(clearTimeout(this.probeTimer),null)}startProbeLoop(e){if(this.probeLoopAssistantId===e)return;this.cancelProbeTimer(),this.probeLoopAssistantId=e;let t=Date.now(),n=()=>{this.probeLoopAssistantId=null},r=async()=>{if(this.state.kind!==`active`||this.state.reachable===!0){n();return}if(Date.now()-t>et){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>et){n();return}this.probeTimer=setTimeout(()=>void r(),$e)};this.probeTimer=setTimeout(()=>void r(),$e)}startHealthHeartbeat(e){if(this.healthHeartbeatId===e)return;this.cancelHealthHeartbeat(),this.healthHeartbeatId=e;let t=this.healthHeartbeatToken,n=async()=>{t===this.healthHeartbeatToken&&(await this.probeReachability(e),t===this.healthHeartbeatToken&&(this.healthHeartbeatTimer=setTimeout(()=>void n(),tt)))};n()}cancelHealthHeartbeat(){this.healthHeartbeatToken++,this.healthHeartbeatId=null,this.healthHeartbeatTimer&&=(clearTimeout(this.healthHeartbeatTimer),null)}onUnreachable(){this.triggerReachabilityProbe()}triggerReachabilityProbe(){if(this.state.kind!==`active`)return;let e=S.getState().activeAssistantId;if(e){if(this.transition({...this.state,reachable:!1}),this.healthHeartbeatId===e){this.probeReachability(e);return}this.startProbeLoop(e)}}__resetForTesting(){this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),this.cancelProbeTimer(),this.cancelHealthHeartbeat(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.clearErrorRetry(!0),this.state={kind:`loading`},this.generation=0,this.ready=!1,E.setState({expectingFirstMessage:!1,operationalStatusAssistantId:null}),this.inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null},E.setState({assistantState:this.state}),S.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){E.getState().operationalStatusAssistantId!==e&&E.setState({operationalStatusAssistantId:e})}};function rt(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=S.getState(),i=fe(t,e),a=e=>i.some(t=>t.id===e);if(n!==null){let e=t.some(e=>e.id===n);if(a(n)||!e&&!r)return n}let o=le()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function A(e){S.getState().setSelectedAssistant(e),e!==null&&await de(e)}var it={bodySerializer:e=>JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t)};Object.entries({$body_:`body`,$headers_:`headers`,$path_:`path`,$query_:`query`});function at({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:r,responseValidator:i,sseDefaultRetryDelay:a,sseMaxRetryAttempts:o,sseMaxRetryDelay:s,sseSleepFn:c,url:l,...u}){let d,f=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=a??3e3,p=0,m=u.signal??new AbortController().signal;for(;!m.aborted;){p++;let a=u.headers instanceof Headers?u.headers:new Headers(u.headers);d!==void 0&&a.set(`Last-Event-ID`,d);try{let t={redirect:`follow`,...u,body:u.serializedBody,headers:a,signal:m},o=new Request(l,t);e&&(o=await e(l,t));let s=await(u.fetch??globalThis.fetch)(o);if(!s.ok)throw Error(`SSE failed: ${s.status} ${s.statusText}`);if(!s.body)throw Error(`No body in SSE response`);let f=s.body.pipeThrough(new TextDecoderStream).getReader(),p=``,h=()=>{try{f.cancel()}catch{}};m.addEventListener(`abort`,h);try{for(;;){let{done:e,value:t}=await f.read();if(e)break;p+=t,p=p.replace(/\r\n?/g,`
2
- `);let a=p.split(`
3
-
4
- `);p=a.pop()??``;for(let e of a){let t=e.split(`
5
- `),a=[],o;for(let e of t)if(e.startsWith(`data:`))a.push(e.replace(/^data:\s*/,``));else if(e.startsWith(`event:`))o=e.replace(/^event:\s*/,``);else if(e.startsWith(`id:`))d=e.replace(/^id:\s*/,``);else if(e.startsWith(`retry:`)){let t=Number.parseInt(e.replace(/^retry:\s*/,``),10);Number.isNaN(t)||(c=t)}let s,l=!1;if(a.length){let e=a.join(`
6
- `);try{s=JSON.parse(e),l=!0}catch{s=e}}l&&(i&&await i(s),r&&(s=await r(s))),n?.({data:s,event:o,id:d,retry:c}),a.length&&(yield s)}}}finally{m.removeEventListener(`abort`,h),f.releaseLock()}break}catch(e){if(t?.(e),o!==void 0&&p>=o)break;await f(Math.min(c*2**(p-1),s??3e4))}}}()}}var ot=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},st=e=>{switch(e){case`form`:return`,`;case`pipeDelimited`:return`|`;case`spaceDelimited`:return`%20`;default:return`,`}},ct=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},lt=({allowReserved:e,explode:t,name:n,style:r,value:i})=>{if(!t){let t=(e?i:i.map(e=>encodeURIComponent(e))).join(st(r));switch(r){case`label`:return`.${t}`;case`matrix`:return`;${n}=${t}`;case`simple`:return t;default:return`${n}=${t}`}}let a=ot(r),o=i.map(t=>r===`label`||r===`simple`?e?t:encodeURIComponent(t):j({allowReserved:e,name:n,value:t})).join(a);return r===`label`||r===`matrix`?a+o:o},j=({allowReserved:e,name:t,value:n})=>{if(n==null)return``;if(typeof n==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},ut=({allowReserved:e,explode:t,name:n,style:r,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${n}=${i.toISOString()}`;if(r!==`deepObject`&&!t){let t=[];Object.entries(i).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});let a=t.join(`,`);switch(r){case`form`:return`${n}=${a}`;case`label`:return`.${a}`;case`matrix`:return`;${n}=${a}`;default:return a}}let o=ct(r),s=Object.entries(i).map(([t,i])=>j({allowReserved:e,name:r===`deepObject`?`${n}[${t}]`:t,value:i})).join(o);return r===`label`||r===`matrix`?o+s:s},dt=/\{[^{}]+\}/g,ft=({path:e,url:t})=>{let n=t,r=t.match(dt);if(r)for(let t of r){let r=!1,i=t.substring(1,t.length-1),a=`simple`;i.endsWith(`*`)&&(r=!0,i=i.substring(0,i.length-1)),i.startsWith(`.`)?(i=i.substring(1),a=`label`):i.startsWith(`;`)&&(i=i.substring(1),a=`matrix`);let o=e[i];if(o==null)continue;if(Array.isArray(o)){n=n.replace(t,lt({explode:r,name:i,style:a,value:o}));continue}if(typeof o==`object`){n=n.replace(t,ut({explode:r,name:i,style:a,value:o,valueOnly:!0}));continue}if(a===`matrix`){n=n.replace(t,`;${j({name:i,value:o})}`);continue}let s=encodeURIComponent(a===`label`?`.${o}`:o);n=n.replace(t,s)}return n},pt=({baseUrl:e,path:t,query:n,querySerializer:r,url:i})=>{let a=i.startsWith(`/`)?i:`/${i}`,o=(e??``)+a;t&&(o=ft({path:t,url:o}));let s=n?r(n):``;return s.startsWith(`?`)&&(s=s.substring(1)),s&&(o+=`?${s}`),o};function mt(e){let t=e.body!==void 0;if(t&&e.bodySerializer)return`serializedBody`in e?e.serializedBody!==void 0&&e.serializedBody!==``?e.serializedBody:null:e.body===``?null:e.body;if(t)return e.body}var ht=async(e,t)=>{let n=typeof t==`function`?await t(e):t;if(n)return e.scheme===`bearer`?`Bearer ${n}`:e.scheme===`basic`?`Basic ${btoa(n)}`:n},gt=({parameters:e={},...t}={})=>n=>{let r=[];if(n&&typeof n==`object`)for(let i in n){let a=n[i];if(a==null)continue;let o=e[i]||t;if(Array.isArray(a)){let e=lt({allowReserved:o.allowReserved,explode:!0,name:i,style:`form`,value:a,...o.array});e&&r.push(e)}else if(typeof a==`object`){let e=ut({allowReserved:o.allowReserved,explode:!0,name:i,style:`deepObject`,value:a,...o.object});e&&r.push(e)}else{let e=j({allowReserved:o.allowReserved,name:i,value:a});e&&r.push(e)}}return r.join(`&`)},_t=e=>{if(!e)return`stream`;let t=e.split(`;`)[0]?.trim();if(t){if(t.startsWith(`application/json`)||t.endsWith(`+json`))return`json`;if(t===`multipart/form-data`)return`formData`;if([`application/`,`audio/`,`image/`,`video/`].some(e=>t.startsWith(e)))return`blob`;if(t.startsWith(`text/`))return`text`}},vt=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get(`Cookie`)?.includes(`${t}=`)):!1,yt=async({security:e,...t})=>{for(let n of e){if(vt(t,n.name))continue;let e=await ht(n,t.auth);if(!e)continue;let r=n.name??`Authorization`;switch(n.in){case`query`:t.query||={},t.query[r]=e;break;case`cookie`:t.headers.append(`Cookie`,`${r}=${e}`);break;default:t.headers.set(r,e);break}}},bt=e=>pt({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer==`function`?e.querySerializer:gt(e.querySerializer),url:e.url}),xt=(e,t)=>{let n={...e,...t};return n.baseUrl?.endsWith(`/`)&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=Ct(e.headers,t.headers),n},St=e=>{let t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},Ct=(...e)=>{let t=new Headers;for(let n of e){if(!n)continue;let e=n instanceof Headers?St(n):Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,typeof r==`object`?JSON.stringify(r):r)}return t},wt=class{fns=[];clear(){this.fns=[]}eject(e){let t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){let t=this.getInterceptorIndex(e);return!!this.fns[t]}getInterceptorIndex(e){return typeof e==`number`?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){let n=this.getInterceptorIndex(e);return this.fns[n]?(this.fns[n]=t,e):!1}use(e){return this.fns.push(e),this.fns.length-1}},Tt=()=>({error:new wt,request:new wt,response:new wt}),Et=gt({allowReserved:!1,array:{explode:!0,style:`form`},object:{explode:!0,style:`deepObject`}}),Dt={"Content-Type":`application/json`},Ot=(e={})=>({...it,headers:Dt,parseAs:`auto`,querySerializer:Et,...e}),M=((e={})=>{let t=xt(Ot(),e),n=()=>({...t}),r=e=>(t=xt(t,e),n()),i=Tt(),a=async e=>{let n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:Ct(t.headers,e.headers),serializedBody:void 0};n.security&&await yt({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body!==void 0&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.body===void 0||n.serializedBody===``)&&n.headers.delete(`Content-Type`);let r=n;return{opts:r,url:bt(r)}},o=async e=>{let n=e.throwOnError??t.throwOnError,r=e.responseStyle??t.responseStyle,o,s;try{let{opts:t,url:n}=await a(e),r={redirect:`follow`,...t,body:mt(t)};o=new Request(n,r);for(let e of i.request.fns)e&&(o=await e(o,t));let c=t.fetch;s=await c(o);for(let e of i.response.fns)e&&(s=await e(s,o,t));let l={request:o,response:s};if(s.ok){let e=(t.parseAs===`auto`?_t(s.headers.get(`Content-Type`)):t.parseAs)??`json`;if(s.status===204||s.headers.get(`Content-Length`)===`0`){let n;switch(e){case`arrayBuffer`:case`blob`:case`text`:n=await s[e]();break;case`formData`:n=new FormData;break;case`stream`:n=s.body;break;default:n={};break}return t.responseStyle===`data`?n:{data:n,...l}}let n;switch(e){case`arrayBuffer`:case`blob`:case`formData`:case`text`:n=await s[e]();break;case`json`:{let e=await s.text();n=e?JSON.parse(e):{};break}case`stream`:return t.responseStyle===`data`?s.body:{data:s.body,...l}}return e===`json`&&(t.responseValidator&&await t.responseValidator(n),t.responseTransformer&&(n=await t.responseTransformer(n))),t.responseStyle===`data`?n:{data:n,...l}}let u=await s.text(),d;try{d=JSON.parse(u)}catch{}throw d??u}catch(t){let a=t;for(let t of i.error.fns)t&&(a=await t(a,s,o,e));if(a||={},n)throw a;return r===`data`?void 0:{error:a,request:o,response:s}}},s=e=>t=>o({...t,method:e}),c=e=>async t=>{let{opts:n,url:r}=await a(t);return at({...n,body:n.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(let e of i.request.fns)e&&(r=await e(r,n));return r},serializedBody:mt(n),url:r})};return{buildUrl:e=>bt({...t,...e}),connect:s(`CONNECT`),delete:s(`DELETE`),get:s(`GET`),getConfig:n,head:s(`HEAD`),interceptors:i,options:s(`OPTIONS`),patch:s(`PATCH`),post:s(`POST`),put:s(`PUT`),request:o,setConfig:r,sse:{connect:c(`CONNECT`),delete:c(`DELETE`),get:c(`GET`),head:c(`HEAD`),options:c(`OPTIONS`),patch:c(`PATCH`),post:c(`POST`),put:c(`PUT`),trace:c(`TRACE`)},trace:s(`TRACE`)}})(Ot()),kt=e=>(e.client??M).get({url:`/_allauth/{client}/v1/auth/provider/signup`,...e}),At=e=>(e.client??M).post({url:`/_allauth/{client}/v1/auth/provider/signup`,...e,headers:{"Content-Type":`application/json`,...e.headers}}),jt=e=>(e.client??M).delete({url:`/_allauth/{client}/v1/auth/session`,...e}),Mt=e=>(e.client??M).get({url:`/_allauth/{client}/v1/auth/session`,...e}),Nt=()=>x()?`app`:`browser`;function Pt(e){return!e.ok&&e.status===409}function Ft(e,t){let n=e;if(n&&Array.isArray(n.errors))return{ok:!1,status:t,errors:n.errors};let r=n?.data;return r&&Array.isArray(r.flows)?{ok:!1,status:t,errors:[],flows:r.flows}:{ok:!1,status:t,errors:[]}}async function N(){let{data:e,error:t,response:n}=await Mt({path:{client:Nt()}});return e?{ok:!0,data:e.data}:Ft(t,n?.status)}async function It(){let{data:e,error:t,response:n}=await jt({path:{client:Nt()}});return e?{ok:!0,data:e}:n?.status===401?{ok:!0,data:{}}:Ft(t,n?.status)}async function Lt(){let{data:e,error:t,response:n}=await kt({path:{client:Nt()}});return e?{ok:!0,data:e.data}:Ft(t,n?.status)}async function Rt({email:e,username:t}){let{data:n,error:r,response:i}=await At({path:{client:Nt()},body:{email:e,username:t}});return n?{ok:!0,data:n.data}:Ft(r,i?.status)}var zt=`vellum:auth:userSnapshot`;function Bt(e){if(e)try{localStorage.setItem(zt,JSON.stringify(e))}catch{}}function Vt(){try{let e=localStorage.getItem(zt);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{id:typeof t.id==`string`?t.id:null,username:typeof t.username==`string`?t.username:null,email:typeof t.email==`string`?t.email:null,isStaff:t.isStaff===!0,firstName:typeof t.firstName==`string`?t.firstName:``,lastName:typeof t.lastName==`string`?t.lastName:``}}catch{return null}}function P(){try{localStorage.removeItem(zt)}catch{}}var F;function Ht(){return x()?(F===void 0&&(F=window.vellum?.auth?.getSessionToken?.()??null),F):null}function Ut(e){F=e}var Wt=`__Secure-csrftoken`;function I(){return document.cookie.split(`; `).findLast(e=>e.startsWith(`${Wt}=`))?.split(`=`).slice(1).join(`=`)}function Gt(){document.cookie.split(`; `).filter(e=>e.startsWith(`${Wt}=`)).length>1&&(document.cookie=`${Wt}=; path=/; max-age=0; secure`)}var Kt=null;async function qt(){x()||v()||(Gt(),!I()&&(Kt||=(async()=>{for(let e=0;e<2;e++)try{if(await Mt({path:{client:`browser`}}),I())return}catch{console.warn(`CSRF cookie bootstrap failed (attempt ${e+1}/2)`),e===0&&await new Promise(e=>setTimeout(e,500))}})().finally(()=>{Kt=null}),await Kt))}var Jt=`/_allauth/browser/v1/auth/provider/redirect`;function Yt(e,t,n,r={}){let i={provider:e,callback_url:new URL(t,n).href,process:`login`};return r.intent&&(i.intent=r.intent),r.loginHint&&(i.login_hint=r.loginHint),r.providerHint&&(i.provider_hint=r.providerHint),i}function Xt(e){if(!e)throw Error(`Unable to start provider redirect: CSRF token is missing. The session may not be initialized. Please refresh the page and try again.`)}async function Zt(e,t,n={}){await qt();let r=I();Xt(r);let i=window.location.origin,a=document.createElement(`form`);a.method=`POST`,a.action=`${i}${Jt}`;let o=Yt(e,t,i,n);o.csrfmiddlewaretoken=r;for(let[e,t]of Object.entries(o)){let n=document.createElement(`input`);n.type=`hidden`,n.name=e,n.value=t,a.appendChild(n)}document.body.appendChild(a),a.submit()}function Qt(e,t){return e?{kind:`authenticated`}:t.some(e=>e.id===`provider_signup`&&e.is_pending)?{kind:`provider_signup`}:{kind:`error`,message:`Unexpected authentication state.`}}var $t=`https://www.vellum.ai`,en=`vellum:loopback:state`,tn=`vellum:loopback:returnTo`;function nn(){let e=window.__VELLUM_CONFIG__;return e?.webUrl?{webUrl:e.webUrl}:{webUrl:$t}}function rn(){let e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}function an(){return nn().webUrl===window.location.origin}async function on(e,t){let{webUrl:n}=nn(),r=rn(),i=window.location.port||`3000`;sessionStorage.setItem(en,r),e&&sessionStorage.setItem(tn,e);let a=`/accounts/cli/callback?port=${i}&state=${r}`,o=`${n}/account/${t?.intent===`signup`?`signup`:`login`}?returnTo=${encodeURIComponent(a)}`;window.location.href=o}async function sn(e){x()&&await window.vellum?.menu.setPlatformSession(e)}var cn=e(u(),1),ln=xe(`NativeAuth`),un=Ce.assistant,dn=!1;function fn(){return dn}function pn(){return`${window.location.protocol}//${window.location.host}`}function L(){return typeof window<`u`&&Se.isNativePlatform()}var mn=()=>()=>{};function hn(){return(0,cn.useSyncExternalStore)(mn,L,()=>!1)}async function gn(e){let t=e?.baseURL??pn(),{sessionToken:n}=await ln.startAuth({baseURL:t,...e?.loginHint?{loginHint:e.loginHint}:{},...e?.providerHint?{providerHint:e.providerHint}:{},...e?.intent?{intent:e.intent}:{}});vn(n),L()&&await _n(),En()&&await Cn(n);let r=be(e?.returnTo??null,un);window.location.href=r}async function _n(){for(let e=0;e<6;e++){try{let e=await N();if(e.ok&&e.data.user)return}catch{}await new Promise(t=>setTimeout(t,50*(e+1)))}}function vn(e){let t=`path=/; domain=.vellum.ai; secure; samesite=lax; max-age=1209600`;document.cookie=`sessionid=${e}; ${t}`,document.cookie=`__Secure-sessionid=${e}; ${t}`}function yn(){if(typeof document>`u`)return null;let e=document.cookie.split(`; `);for(let t of[`__Secure-sessionid`,`sessionid`]){let n=e.find(e=>e.startsWith(`${t}=`));if(n){let e=n.slice(t.length+1);if(e)return e}}return null}async function bn(e,t,n={}){if(L()){try{await gn({returnTo:n.intent===`signup`?Ce.onboarding.privacy:n.returnTo??null,loginHint:n.loginHint,providerHint:n.providerHint,intent:n.intent})}catch(e){if(e?.code===`USER_CANCELLED`)return;throw e}return}if(x()&&window.vellum?.auth?.startOAuth){dn=!0;try{let e=await window.vellum.auth.startOAuth({providerHint:n.providerHint,loginHint:n.loginHint,intent:n.intent});if(e?.sessionToken){Ut(e.sessionToken),await sn(!0);let t=be(n.intent===`signup`?Ce.onboarding.privacy:n.returnTo??null,un);window.location.href=t}}finally{dn=!1}return}if(y()&&!an()){await on(n.returnTo??void 0,{intent:n.intent});return}await Zt(e,t,n)}var R=xe(`NativeBiometric`),xn=`vellum.ai`;async function Sn(){if(!L())return!1;try{let{available:e}=await R.isAvailable();return e}catch{return!1}}async function Cn(e){if(!await Sn())return!1;try{return await R.storeToken({token:e,server:xn}),!0}catch(e){return console.error(`[native-biometric] failed to store token:`,e),!1}}var z=null;async function wn(){return L()?z||(z=(async()=>{try{let{token:e}=await R.retrieveToken({server:xn,reason:`Sign in to Vellum`});return e}catch{return null}finally{z=null}})(),z):null}async function Tn(){if(L())try{await R.deleteToken({server:xn})}catch{}}function En(){return o(`biometricEnabled`,!0)}function Dn(e){a(`biometricEnabled`,e)}async function On(){if(!L())return`Biometrics`;try{let{biometryType:e}=await R.isAvailable();switch(e){case`faceId`:return`Face ID`;case`touchId`:return`Touch ID`;case`opticId`:return`Optic ID`;default:return`Biometrics`}}catch{return`Biometrics`}}function kn(e){return e}function An(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=kn(e),i=r[t];if(Array.isArray(i)&&i.length>0){let e=i[0];if(typeof e==`string`)return{code:null,message:e};if(e&&typeof e==`object`&&!Array.isArray(e)){let t=kn(e),r=t.code,i=t.string??t.message;return{code:typeof r==`string`?r:null,message:typeof i==`string`?i:n}}}return typeof r.detail==`string`?{code:null,message:r.detail}:{code:null,message:n}}var jn={too_short:`Must be at least 3 characters.`,too_long:`Must be at most 30 characters.`,invalid_chars:`Use only lowercase letters, digits, hyphens, and underscores.`,leading_underscore:`Cannot start with an underscore.`,trailing_underscore:`Cannot end with an underscore.`,leading_hyphen:`Cannot start with a hyphen.`,trailing_hyphen:`Cannot end with a hyphen.`,all_digits:`Cannot be all digits.`,reserved:`This handle is reserved.`,taken:`This handle is already taken.`};async function Mn(){let{data:e,error:t,response:n}=await w.get({url:`/v1/user/me/`,throwOnError:!1});if(pe(n,t,`Failed to load profile.`),!n.ok||!e)throw new me(n.status,C(t,n,`Failed to load profile.`));return e}var Nn=`Please choose a different handle.`;async function Pn(e){let{data:t,error:n,response:r}=await w.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:C(n,void 0,`Failed to save profile.`)??`Failed to save profile.`};if(r.ok&&t)return{kind:`ok`,data:t};if(r.status===409){let{message:e}=An(n,`username`,jn.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=An(n,`username`,Nn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:C(n,r,`Failed to save profile.`)}}async function Fn(){let{data:e,error:t,response:n}=await w.get({url:`/v1/user/consent/`,throwOnError:!1});if(pe(n,t,`Failed to load consent.`),!n.ok||!e)throw new me(n.status,C(t,n,`Failed to load consent.`));return e}async function In(e){await w.put({url:`/v1/user/consent/`,body:e,throwOnError:!0})}async function Ln(e,t){let{data:n,error:r,response:i}=await w.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(pe(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new me(i.status,i.status===429?`Too many checks — try again in a moment.`:C(r,i,`Failed to check handle availability.`));return n}function B(e){a(`diagnosticsReporting`,e)}function Rn(e,t){let n=zn(e);n!==null&&t(n);let{shareDiagnostics:r,diagnosticsVersionCurrent:i,hasServerRecord:a}=e;return B(a&&r===!0&&i),n}function zn(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var Bn=s(`shareAnalytics`),Vn=s(`shareDiagnostics`),Hn=f()(e=>({shareAnalytics:i(Bn,!0),shareDiagnostics:i(Vn,!0),tosAccepted:!1,privacyConsent:!1,analyticsConsentCurrent:!1,diagnosticsConsentCurrent:!1,setShareAnalytics:n=>{e({shareAnalytics:n}),t(Bn,n)},setShareDiagnostics:n=>{e({shareDiagnostics:n}),t(Vn,n)},setTosAccepted:t=>{e({tosAccepted:t})},setPrivacyConsent:t=>{e({privacyConsent:t})},setAnalyticsConsentCurrent:t=>{e({analyticsConsentCurrent:t})},setDiagnosticsConsentCurrent:t=>{e({diagnosticsConsentCurrent:t})}})),V=p(Hn),Un=new Map([[Bn,`shareAnalytics`],[Vn,`shareDiagnostics`]]),Wn={shareAnalytics:!0,shareDiagnostics:!0};for(let[e,t]of Un)n(e,()=>{let n=i(e,Wn[t]??!1);Hn.setState({[t]:n})});var H=`2026-06-08`,U=`2026-06-18`,Gn=`2026-06-08`,Kn={tos:H,privacy:U,share_analytics:U,share_diagnostics:U};function W(e,t){return`device:consent:${e}:v${Kn[e]}:${t}`}function qn(e){return`device:consent:ai:v${Gn}:${e}`}function Jn(e){if(typeof window>`u`||!e)return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1};try{let t=i(W(`share_analytics`,e),!1),n=i(W(`share_diagnostics`,e),!1),a=i(W(`tos`,e),!1),o=i(W(`privacy`,e),!1);if(i(qn(e),!1)&&r(qn(e)),a||o)return{tos:a,privacy:o,analyticsCurrent:t,diagnosticsCurrent:n};let s=i(`vellum:onboarding:tosAccepted`,!1),c=i(`vellum:onboarding:aiDataConsent`,!1);return s||c?(Yn(e,s,!1),{tos:s,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:n}):{tos:!1,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:n}}catch{return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1}}}function Yn(e,n,r){if(!(typeof window>`u`||!e))try{t(W(`tos`,e),n),t(W(`privacy`,e),r)}catch{}}function G(e,n){if(!(typeof window>`u`||!e))try{n.analyticsCurrent!==void 0&&t(W(`share_analytics`,e),n.analyticsCurrent),n.diagnosticsCurrent!==void 0&&t(W(`share_diagnostics`,e),n.diagnosticsCurrent)}catch{}}function Xn(e){if(r(`vellum:onboarding:tosAccepted`),r(`vellum:onboarding:aiDataConsent`),r(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!e))try{r(W(`tos`,e)),r(W(`privacy`,e)),r(qn(e)),r(W(`share_analytics`,e)),r(W(`share_diagnostics`,e))}catch{}}function Zn(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsCurrent:!1,diagnosticsCurrent:!1,hasServerRecord:!1};let t=!!e.tos_accepted_version||!!e.privacy_policy_accepted_version||!!e.ai_data_sharing_accepted_version||!!e.share_analytics_accepted_version||!!e.share_diagnostics_accepted_version||e.share_analytics===!1||e.share_diagnostics===!1;return{tos:e.tos_accepted_version===H,privacy:e.privacy_policy_accepted_version===`2026-06-18`&&e.ai_data_sharing_accepted_version===`2026-06-18`,shareAnalytics:e.share_analytics,shareDiagnostics:e.share_diagnostics,analyticsCurrent:e.share_analytics_accepted_version===U,diagnosticsCurrent:e.share_diagnostics_accepted_version===U,hasServerRecord:t}}function Qn(e){let t=V.getState();t.setTosAccepted(e.tos),t.setPrivacyConsent(e.privacy),t.setShareAnalytics(e.shareAnalytics),t.setShareDiagnostics(e.shareDiagnostics),t.setAnalyticsConsentCurrent(!0),t.setDiagnosticsConsentCurrent(!0),B(e.shareDiagnostics),Yn(e.userId,e.tos,e.privacy),G(e.userId,{analyticsCurrent:!0,diagnosticsCurrent:!0}),e.hasPlatformSession&&In({tos_accepted_version:e.tos?H:``,privacy_policy_accepted_version:e.privacy?U:``,ai_data_sharing_accepted_version:e.privacy?U:``,share_analytics:e.shareAnalytics,share_diagnostics:e.shareDiagnostics,share_analytics_accepted_version:U,share_diagnostics_accepted_version:U}).catch(()=>{})}function $n(e,t,n){let r=V.getState(),{userId:i,hasPlatformSession:o}=n;e===`share_analytics`?(r.setShareAnalytics(t),a(`shareAnalytics`,t),o&&(r.setAnalyticsConsentCurrent(!0),G(i,{analyticsCurrent:!0}))):(r.setShareDiagnostics(t),a(`shareDiagnostics`,t),o?(r.setDiagnosticsConsentCurrent(!0),B(t),G(i,{diagnosticsCurrent:!0})):B(!1)),o&&In({[e]:t,[`${e}_accepted_version`]:U}).catch(()=>{})}var er=`vellum_active_organization_id`;function tr(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function nr(){let e=tr();if(!e)return null;try{return e.getItem(er)}catch{return null}}function rr(e){let t=tr();if(t)try{t.setItem(er,e)}catch{}}function ir(){let e=tr();if(e)try{e.removeItem(er)}catch{}}function ar(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var K=p(f()((e,t)=>({organizations:[],currentOrganizationId:null,status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await he()).data?.results??[],r=ar(n,t().currentOrganizationId??nr());r&&rr(r),e({organizations:n,currentOrganizationId:r,status:r?`ready`:`error`,error:r?null:`No organization available for this user.`})}catch(t){e({status:`error`,error:t instanceof Error&&t.message?t.message:`Failed to load organizations.`})}},setCurrentOrganizationId:n=>{let{organizations:r}=t();r.some(e=>e.id===n)&&(rr(n),e({currentOrganizationId:n,status:`ready`}))},clearOrganization:()=>{ir(),e({organizations:[],currentOrganizationId:null,status:`idle`,error:null})}})));function or(){return K.getState().currentOrganizationId??nr()}function sr(){K.getState().clearOrganization()}function cr(){let e=0,t=K.subscribe(t=>{(t.status===`ready`||t.status===`error`)&&(e=Date.now())}),n=$.subscribe((e,t)=>{let n=O(e.platformSession),r=O(t.platformSession);n&&(!r||e.user?.id!==t.user?.id)&&K.getState().fetchOrganizations()}),r=()=>{if(!O($.getState().platformSession))return;let{status:t}=K.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&K.getState().fetchOrganizations()},i=ve(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}var lr=`vellum:`,ur=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],dr=new Set([`vellum_theme`,`vellum_share_analytics`,`vellum_share_diagnostics`,`vellum_biometric_enabled`,`vellum_llm_log_retention`,`vellum_timezone`,`vellum_media_embeds_enabled`,`vellum_media_embed_domains`,`onboarding.lastUserId`]);function fr(e){return e.startsWith(lr)?!0:dr.has(e)?!1:ur.some(t=>e.startsWith(t))}function pr(){try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&fr(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function mr(e){return e?.id??e?.email??e?.username??null}function q(e){return e?{id:mr(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var hr=null,J=null,gr=!1,_r={id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},Y=e=>(Bt(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),X=()=>({sessionStatus:`authenticated`,user:_r}),Z=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),vr=e=>e===null||!e.ok&&!Qe(e);async function yr(e){if(!Ht())return!1;let t=Vt();return t?(await Q(t.id),e({...Y(t),platformSessionRestoredOffline:!0}),!0):!1}function br(e){(!e||hr&&hr!==e)&&sr(),hr=e}function xr(){J?.postMessage(`auth-changed`)}async function Q(e){if(e)try{let t=Zn(await Fn()),n=V.getState();t.hasServerRecord&&t.shareAnalytics!==null&&n.setShareAnalytics(t.shareAnalytics),Rn({shareDiagnostics:t.shareDiagnostics,diagnosticsVersionCurrent:t.diagnosticsCurrent,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let r=t.tos,i=t.privacy,a=t.analyticsCurrent,o=t.diagnosticsCurrent;if(!t.hasServerRecord){let t=Jn(e);a=t.analyticsCurrent,o=t.diagnosticsCurrent,B(n.shareDiagnostics&&o),t.tos&&t.privacy&&(r=!0,i=!0,In({tos_accepted_version:H,privacy_policy_accepted_version:U,ai_data_sharing_accepted_version:U,...a?{share_analytics_accepted_version:U,share_analytics:n.shareAnalytics}:{},...o?{share_diagnostics_accepted_version:U,share_diagnostics:n.shareDiagnostics}:{}}).catch(()=>{}))}n.setTosAccepted(r),n.setPrivacyConsent(i),n.setAnalyticsConsentCurrent(a),n.setDiagnosticsConsentCurrent(o),Yn(e,r,i),G(e,{analyticsCurrent:a,diagnosticsCurrent:o}),br(e);return}catch{}let t=Jn(e),n=V.getState();n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(t.analyticsCurrent),n.setDiagnosticsConsentCurrent(t.diagnosticsCurrent),br(e)}var Sr=0;Promise.resolve();function Cr(e,t={}){let n=++Sr,r=()=>n!==Sr;N().then(async n=>{if(!r())if(n.ok&&n.data.user){let i=q(n.data.user),a=t.setUserOnSuccess?{user:i}:{};if(t.setUserOnSuccess&&Bt(i),y()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await K.getState().fetchOrganizations();let e=await T();t()&&e.ok&&await re(e.data,K.getState().currentOrganizationId??void 0,t)})(),new Promise((t,n)=>setTimeout(()=>{e=!0,n(Error(`sync timeout`))},3e3))])}catch{}}if(r())return;e({platformSession:`present`,platformSessionRestoredOffline:!1,...a})}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function wr(e,t){!y()||g()||ae().length>0?Cr(e,t):e({platformSession:`absent`})}async function Tr(){try{if(await ye())return!0}catch{}return h()!==null}var $=p(f()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(b()){await Tr()?e({...X(),platformSession:`absent`}):e(Z());return}if(g()){try{await ie(),e(X())}catch{e({sessionStatus:`unauthenticated`,user:null})}wr(e);return}if(y()&&!g()){if(ae().length>0){let t=null;try{if(t=await N(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await K.getState().fetchOrganizations();let e=await T();e.ok&&await re(e.data,K.getState().currentOrganizationId??void 0)}catch{}e(Y(n));return}}catch{}if(vr(t)){if(await yr(e))return}else P();e(Z());return}e(X()),gr?e({platformSession:`absent`}):Cr(e,{setUserOnSuccess:!0}),gr=!1;return}let t=null;try{if(t=await N(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await K.getState().fetchOrganizations();let e=await T();e.ok&&S.getState().setFromApi(e.data)}catch{}e(Y(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(vr(t)&&await yr(e))){if(L()&&En())try{let t=await wn();if(t){vn(t),await _n();let n=await N();if(n.ok&&n.data.user){let t=q(n.data.user);await Q(t?.id??null);try{await K.getState().fetchOrganizations();let e=await T();e.ok&&S.getState().setFromApi(e.data)}catch{}e(Y(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),vr(t)||P(),e(Z())}},connectLocalAssistant:async t=>{await ue(oe().find(e=>e.assistantId===t)),await A(t),e(X()),await k.checkAssistant(),wr(e)},connectPlatformAssistant:async t=>{await A(t);let n=await N();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=q(n.data.user);await Q(r?.id??null),await K.getState().fetchOrganizations(),e(Y(r))},refreshSession:async()=>{if(b())return await Tr()?(e({...X(),platformSession:`absent`}),!0):(e(Z()),!1);if(v()){try{await ne(ee()),e({sessionStatus:`authenticated`})}catch{return e(Z()),!1}return wr(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await N(),n.ok&&n.data.user){let t=q(n.data.user);if(await Q(t?.id??null),y())try{await K.getState().fetchOrganizations();let e=await T();e.ok&&await re(e.data,K.getState().currentOrganizationId??void 0)}catch{}return e(Y(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(vr(n))return D(t().sessionStatus);if(g()){let n=D(t().sessionStatus);return n&&(P(),e({...X(),platformSession:`absent`})),n}return P(),await Q(null),e(Z()),!1},logout:async()=>{if(v()){k.resetForLogout(),await A(null),te(),sr(),pr(),e(Z()),xr();return}gr=!0;try{await It()}finally{x()&&await window.vellum?.auth?.signOut?.(),y()&&(document.cookie=`sessionid=; path=/; samesite=lax; expires=Thu, 01 Jan 1970 00:00:00 UTC`),Tn(),sr(),pr(),k.resetForLogout(),await A(null),e(Z()),xr()}}}))),Er=()=>D($.use.sessionStatus()),Dr=()=>!Ye($.use.sessionStatus()),Or=()=>O($.use.platformSession()),kr=()=>Xe($.use.platformSession(),$.use.platformSessionRestoredOffline());function Ar(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=ve(`app.resume`,()=>{fn()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(J=new BroadcastChannel(`auth`),J.onmessage=()=>{pr(),window.location.reload()},t.push(()=>{J?.close(),J=null})),()=>t.forEach(e=>e())}export{Ne as $,bn as A,N as B,On as C,Cn as D,Dn as E,Qt as F,A as G,Rt as H,qt as I,D as J,k as K,I as L,hn as M,sn as N,yn as O,an as P,Ge as Q,Ht as R,Tn as S,En as T,M as U,Pt as V,rt as W,Ye as X,Xe as Y,Je as Z,Ln as _,Er as a,E as at,Pn as b,cr as c,Zn as d,Pe as et,Qn as f,jn as g,Rn as h,Or as i,Ee as it,gn as j,L as k,K as l,V as m,$ as n,je as nt,Dr as o,$n as p,O as q,kr as r,De as rt,or as s,Ar as t,Ae as tt,Xn as u,Fn as v,Sn as w,An as x,Mn as y,Lt as z};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-B0wqOYKY.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./button-D7s2Q_uG.js";import{d as a,h as o}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as s}from"./QueryClientProvider-DKhXIxGb.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{t as l}from"./progress-bar-BOKTRqXE.js";import{N as ee,_ as te,b as u,f as d,g as f,o as p,r as ne,w as re}from"./local-mode-9ZkSq1Fr.js";import{t as m}from"./is-electron-BuSDabCt.js";import{n as h}from"./resolved-assistants-store-DMuRxkZC.js";import{r as ie}from"./api-errors-CwAGZ-xJ.js";import{$ as ae,G as g,K as _,X as v,et as oe,k as se,l as y,n as b,nt as ce,tt as x}from"./auth-store-CyAWX99c.js";import{a as le,o as ue,r as S}from"./api-CGh7zC7Z.js";import{a as C}from"./routes-BKwsRssF.js";import{r as w,t as T}from"./build-state-CI5r3DCj.js";import{i as de,p as fe}from"./prefs-DjG8e7dK.js";import{t as E}from"./avatar-svg-compositor-BDV_OAev.js";import{Lr as D,Pr as O,Rr as k,ft as A}from"./index-DjBiif5r.js";import{t as pe}from"./provider-key-AiDfAj3X.js";import{BUNDLED_COMPONENTS as j}from"./avatar-bundled-components-D6zRL_dw.js";var M=e(r(),1);async function me(e,t,r){try{await D(e)||await k(e,t),r.invalidateQueries({queryKey:O(e)})}catch(e){n(e,{context:`onboarding_avatar_sync`})}}function N(e){let t=e=>e[Math.floor(Math.random()*e.length)];return{bodyShape:t(e.bodyShapes).id,eyeStyle:t(e.eyeStyles).id,color:t(e.colors).id}}var P=c(),F=3e3,he=800,I=3e5,L=null,R=null,ge={initializing:0,provisioning:.33,connecting:.66,ready:1},z=1500,_e={initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,ready:`Ready`};function ve(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/z))**3;return e+(t-e)*r}function ye(){let e=w(T(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function B(){let e=a(),r=s(),[c]=o(),w=c.get(`hosting`),T=c.get(`fail`),D=m(),O=d()&&w!==null&&w!==`vellum-cloud`,k=b.use.sessionStatus(),z=O?v(k):k,[B]=(0,M.useState)(()=>N(j)),V=(0,M.useMemo)(()=>{let e=E(j,B.bodyShape,B.eyeStyle,B.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[B]),[H,U]=(0,M.useState)(`initializing`),[W,G]=(0,M.useState)(null),[be,K]=(0,M.useState)(!1),[xe,Se]=(0,M.useState)(0),[Ce,q]=(0,M.useState)(0),[we,J]=(0,M.useState)(0),Y=(0,M.useRef)(H),X=(0,M.useRef)(0),Z=(0,M.useRef)(0),Q=(0,M.useRef)(0),$=(0,M.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,U(e),J(e=>e+1)},[]);return(0,M.useEffect)(()=>{if(T!==null){G(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let i=ye();if(i.kind===`redirect`){e(i.to,{replace:!0});return}if(i.kind===`wait`)return;K(!1);let a=!1,o=null,s=null,c=null,l=Date.now(),m,v=!1,E=!1,D=de(),k=()=>{try{fe(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}q(1),Q.current=1,X.current=1,U(`ready`),Y.current=`ready`,s=setTimeout(()=>{a||(async()=>{if(await _.checkAssistant(),!a){if(se()){_.markExpectingFirstMessage(),e(`${C.assistant}?onboarding=1`,{replace:!0});return}e(C.onboarding.prechat,{replace:!0})}})()},he)},A=e=>me(e,B,r),j=async()=>{if($(`provisioning`),!O){try{let e=await S(),t=x(e);if(!a&&e.ok&&t.kind===`active`){d()&&u({assistantId:e.data.id,name:e.data.name,cloud:`vellum`,runtimeUrl:p(),hatchedAt:new Date().toISOString(),organizationId:y.getState().currentOrganizationId??void 0}),k();return}t.kind===`auto_hatch`&&(E=!0)}catch{}if(a)return}if(O){try{L||=re(void 0,w===`docker`?`docker`:void 0);let e=await L;if(L=null,a)return;if(!e.ok){G(e.error??`Failed to hatch local assistant.`);return}await f(),e.assistantId&&g(e.assistantId),$(`connecting`);let t=!1;for(;!a&&!t;){let e=ne();if(e)try{let n=await fetch(`${e}/readyz`);if(n.ok){let e=await n.json();if(e&&typeof e==`object`&&`status`in e&&e.status===`ok`){ee(),await te(),t=!0;break}}}catch{}if(Date.now()-l>=I){G(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{c=setTimeout(e,F)}),c=null}if(a)return;if(e.assistantId&&await b.getState().connectLocalAssistant(e.assistantId),e.assistantId){try{await pe(e.assistantId)}catch(e){n(e,{context:`onboarding_apply_provider_key`})}h.getState().upsertFromApi({id:e.assistantId,name:e.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),g(e.assistantId),A(e.assistantId)}k()}catch{if(L=null,a)return;G(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{R||=ue(D?{version:D}:void 0);let e=await R;if(R=null,a)return;if(e.ok&&(m=e.data.id),v=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),oe(e.status,e.error)){G(ae),K(!0);return}if(!ce(e.status)){G(ie(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(R=null,n(e,{context:`onboarding_hatch_assistant`}),a)return}M(0)},M=e=>{a||(o=setTimeout(N,e))},N=async()=>{if(!a){if(Date.now()-l>=I){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:I}}),G(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await S(m);if(a||m&&!e.ok&&e.status===404&&(m=void 0,e=await S(),a))return;let t=x(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;for(h.getState().upsertFromApi(e.data),g(t),(v||E)&&A(t),d()&&u({assistantId:t,name:e.data.name,cloud:`vellum`,runtimeUrl:p(),hatchedAt:new Date().toISOString(),organizationId:y.getState().currentOrganizationId??void 0}),$(`connecting`);!a;){try{if((await le(t)).ok)break}catch{}if(Date.now()-l>=I){G(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{o=setTimeout(e,F)}),o=null}if(a)return}k();return}if(t.kind===`error`){G(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),M(F)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),a)return;M(F)}}};return j(),()=>{a=!0,o&&clearTimeout(o),s&&clearTimeout(s),c&&clearTimeout(c)}},[xe,T,B,z,e,r,$,O]),(0,M.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=ge[Y.current],i=ve(X.current,r,n);Q.current=i,q(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[we]),W?(0,P.jsx)(A,{children:(0,P.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${D?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,P.jsx)(`h1`,{className:D?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:`Something went wrong`}),(0,P.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${D?`mt-3.5`:`mt-4`}`,children:W}),be&&(0,P.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,P.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Get started today with a local assistant`}),(0,P.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:D?void 0:`h-11 text-base`,children:(0,P.jsx)(`a`,{href:`${window.location.origin}/download`,children:`Download the macOS app`})})]}),(0,P.jsx)(`img`,{src:V,alt:``,width:160,height:160,className:`${D?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,P.jsxs)(`div`,{className:`flex w-full flex-col ${D?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[(0,P.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:D?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,U(`initializing`),q(0),J(e=>e+1),G(null),K(!1),Se(e=>e+1)},children:`Try again`}),(0,P.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:D?void 0:`h-11 text-base`,onClick:()=>void e(O?C.onboarding.hosting:C.onboarding.privacy,{replace:!0}),children:`Back`})]})]})}):(0,P.jsx)(A,{children:(0,P.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${D?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,P.jsx)(`h1`,{className:D?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:H===`ready`?`Your assistant is ready!`:`Waking up…`}),H!==`ready`&&(0,P.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${D?`mt-3.5`:`mt-4`}`,children:`Hang tight — your assistant will have a few questions for you once it's up.`}),(0,P.jsx)(`img`,{src:V,alt:``,width:160,height:160,className:`${D?`my-auto py-8`:`my-16`} ${H===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,P.jsx)(l,{value:Ce,height:6,className:`w-full ${D?`max-w-[200px]`:`max-w-sm`}`,"aria-label":`Assistant startup progress`}),(0,P.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${D?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:_e[H]})]})})}export{B as HatchingScreen};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{d as r,h as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{M as o,N as s}from"./local-mode-9ZkSq1Fr.js";import{t as c}from"./is-electron-BuSDabCt.js";import{n as l}from"./resolved-assistants-store-DMuRxkZC.js";import{i as u}from"./auth-store-CyAWX99c.js";import{a as d,r as f}from"./routes-BKwsRssF.js";import{t as p}from"./client-feature-flag-store-C1ws4QpG.js";import{t as m}from"./use-onboarding-login-CrYY0jua.js";import{Fa as h,ft as g,to as _,xa as v}from"./index-DjBiif5r.js";import{r as y}from"./provider-key-AiDfAj3X.js";var b=e(t(),1),x=a(),S=`h-5 w-5 shrink-0 text-[var(--content-secondary)]`;function C(){let e=u(),t=p.use.multiPlatformAssistant(),n=l.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,x.jsx)(_,{className:S}),...!e||!t&&n?{disabled:!0,badge:e?`Limit Reached`:`Requires Account`}:{}},{mode:`local`,label:`Local`,subtitle:`Runs directly on your machine. Your data never leaves your computer.`,icon:(0,x.jsx)(h,{className:S})},{mode:`docker`,label:`Docker`,subtitle:`Same privacy as local, but sandboxed using Docker for added isolation.`,icon:(0,x.jsx)(v,{className:S})}]}function w(){let e=r(),[t]=i(),a=t.get(`from`)===`select-assistant`,l=u(),p=c(),h=C(),_=h.find(e=>e.mode===`vellum-cloud`)?.disabled,[v,S]=(0,b.useState)(l&&!_?`vellum-cloud`:`local`);(0,b.useEffect)(()=>{_&&v===`vellum-cloud`&&S(`local`)},[_,v]);let{loading:w,error:E,login:D,cancel:O}=m(`${d.onboarding.hosting}?from=select-assistant`),k=a&&!l&&!p;return(0,x.jsx)(g,{children:(0,x.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${p?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-16`} text-[var(--content-default)]`,children:[(0,x.jsx)(`h1`,{className:p?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,x.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${p?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Where do you want your assistant to live?`}),E&&(0,x.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:E}),(0,x.jsx)(`div`,{className:`grid w-full ${p?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:h.map(e=>(0,x.jsx)(T,{option:e,selected:v===e.mode,onSelect:()=>{e.disabled||S(e.mode)}},e.mode))}),(0,x.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${p?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,x.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:p?void 0:`h-11 text-base`,onClick:()=>{v===`vellum-cloud`?(s(),o(null),y(null),e(d.onboarding.privacy)):e(`${d.onboarding.apiKey}?hosting=${v}`)},children:`Continue`}),k&&(0,x.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:w?O:()=>void D(),children:w?`Cancel`:`Log In`}),(0,x.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,className:p?void 0:`h-11 text-base`,onClick:()=>{e(a?d.selectAssistant:d.welcome)},disabled:w,children:`Back`})]}),(0,x.jsx)(`a`,{href:f(d.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`prechat-md-regular mt-6 text-body-medium-default text-[var(--content-default)] underline`,style:{animation:`fadeInUp 0.5s ease-out 0.6s both`},children:`Need help choosing?`})]})})}function T({option:e,selected:t,onSelect:n}){let r=c();return(0,x.jsxs)(`button`,{type:`button`,onClick:n,disabled:e.disabled,className:`flex w-full items-center border text-left transition-colors ${r?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-xl px-4 py-4`} ${e.disabled?`cursor-not-allowed opacity-60`:`cursor-pointer`} ${t&&!e.disabled?`${r?`border-[var(--primary-base)]/50`:`border-[var(--primary-base)]`} bg-[var(--primary-base)]/5`:`${r?`border-[var(--border-disabled)]`:`border-[var(--border-element)]`} bg-transparent`}`,children:[e.icon,(0,x.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),e.badge&&(0,x.jsx)(`span`,{className:`rounded-full bg-[var(--surface-tertiary)] px-2 py-0.5 text-[var(--content-tertiary)] ${r?`text-label-medium-default`:`text-body-small-default`}`,children:e.badge})]}),(0,x.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-[var(--content-tertiary)] ${r?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),!e.disabled&&(0,x.jsx)(`div`,{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full ${r?`border-[1.5px]`:`border-2`} ${t?r?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--primary-base)]`:`border-[var(--border-element)]`}`,children:t&&(0,x.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full ${r?`bg-[var(--aux-white)]`:`bg-[var(--primary-base)]`}`})})]})}export{w as HostingScreen};
@@ -1 +0,0 @@
1
- import{t as e}from"./client.gen-Cuv6iN0E.js";var t=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/`,...t}),n=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/backups/`,...t}),r=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/backups/`,...t}),i=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/backups/{snapshot_name}/restore/`,...t}),a=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/doctor/history/`,...t}),o=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/doctor/history/{doctor_session_id}/`,...t}),s=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/doctor/sessions/`,...t}),c=t=>(t.client??e).delete({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/doctor/sessions/{session_id}/`,...t}),l=t=>(t.client??e).sse.get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/doctor/sessions/{session_id}/events/`,...t}),u=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/doctor/sessions/{session_id}/messages/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),d=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/domains/`,...t}),f=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/domains/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),p=t=>(t.client??e).delete({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/domains/{id}/`,...t}),m=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/domains/{id}/verification-status/`,...t}),h=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/email-addresses/`,...t}),g=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/email-addresses/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),_=t=>(t.client??e).delete({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/email-addresses/{id}/`,...t}),v=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/email-addresses/{id}/status/`,...t}),y=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{name:`Authorization`,type:`apiKey`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/emails/`,...t}),b=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/handle-available/`,...t}),x=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/maintenance-mode/enter/`,...t}),S=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/maintenance-mode/exit/`,...t}),C=t=>(t.client??e).post({security:[{name:`Authorization`,type:`apiKey`},{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/oauth/{provider}/start/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),w=t=>(t.client??e).get({security:[{name:`Authorization`,type:`apiKey`},{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/oauth/connections/`,...t}),T=t=>(t.client??e).post({security:[{name:`Authorization`,type:`apiKey`},{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/oauth/connections/{connection_id}/disconnect/`,...t}),E=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/release-channel/`,...t}),D=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/release-channel/preview/opt-in/`,...t}),O=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/release-channel/preview/opt-out/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),k=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/system-events/`,...t}),A=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/terminal/sessions/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),j=t=>(t.client??e).delete({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/terminal/sessions/{session_id}/`,...t}),M=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/terminal/sessions/{session_id}/input/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),N=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/assistants/{assistant_id}/terminal/sessions/{session_id}/resize/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),P=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/`,...t}),F=t=>(t.client??e).patch({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),I=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/operational/status/`,...t}),L=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/resize/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),R=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/restart/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),z=t=>(t.client??e).delete({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/retire/`,...t}),B=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/rollback/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),V=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/sleep-policy/`,...t}),H=t=>(t.client??e).patch({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/sleep-policy/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),U=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/upgrade/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),W=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/upgrade-policy/`,...t}),G=t=>(t.client??e).patch({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/{id}/upgrade-policy/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),K=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/access-consent/`,...t}),ee=t=>(t?.client??e).patch({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/access-consent/`,...t,headers:{"Content-Type":`application/json`,...t?.headers}}),q=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/active/`,...t}),J=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/assistants/hatch/`,...t,headers:{"Content-Type":`application/json`,...t?.headers}}),Y=t=>(t.client??e).post({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/auth/live-voice-token/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),X=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/feature-flags/client-flag-values/`,...t}),Z=t=>(t.client??e).post({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/feedback/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),Q=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/`,...t}),$=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/auto-top-up/`,...t}),te=t=>(t.client??e).put({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/auto-top-up/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),ne=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/auto-top-up/disable/`,...t}),re=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/auto-top-up/remove-payment-method/`,...t}),ie=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/auto-top-up/setup-intent/`,...t}),ae=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/invoices/`,...t}),oe=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/invoices/download/`,...t}),se=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/plans/`,...t}),ce=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/portal-session/`,...t}),le=t=>(t?.client??e).get({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/subscription/`,...t}),ue=t=>(t.client??e).post({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/subscription/change-credit-tier/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),de=t=>(t.client??e).post({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/subscription/change-machine-tier/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),fe=t=>(t.client??e).post({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/subscription/change-storage-tier/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),pe=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/subscription/onboarding/`,...t}),me=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/subscription/onboarding/domain/`,...t,headers:{"Content-Type":`application/json`,...t?.headers}}),he=t=>(t.client??e).post({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/subscription/upgrade/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),ge=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/summary/`,...t}),_e=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/summary/`,...t}),ve=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/top-ups/checkout-session/`,...t,headers:{"Content-Type":`application/json`,...t?.headers}}),ye=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/usage/series/`,...t}),be=t=>(t.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/billing/usage/totals/`,...t}),xe=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/notifications/`,...t}),Se=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/notifications/{id}/acknowledge/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),Ce=t=>(t.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/notifications/{id}/snooze/`,...t,headers:{"Content-Type":`application/json`,...t.headers}}),we=t=>(t?.client??e).post({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/notifications/pause-rules/`,...t,headers:{"Content-Type":`application/json`,...t?.headers}}),Te=t=>(t.client??e).delete({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/organizations/notifications/pause-rules/{rule_id}/`,...t}),Ee=t=>(t?.client??e).get({security:[{scheme:`bearer`,type:`http`},{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/referral-codes/me/`,...t}),De=t=>(t?.client??e).get({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`},{name:`Authorization`,type:`apiKey`}],url:`/v1/releases/`,...t}),Oe=t=>(t?.client??e).post({security:[{in:`cookie`,name:`sessionid`,type:`apiKey`},{name:`X-Session-Token`,type:`apiKey`}],url:`/v1/user/deletion-request/`,...t});export{ne as $,I as A,H as B,J as C,we as Ct,w as D,De as Dt,S as E,Ee as Et,L as F,M as G,k as H,R as I,G as J,N as K,z as L,D as M,O as N,T as O,Oe as Ot,E as P,Z as Q,P as R,b as S,xe as St,x as T,Ce as Tt,A as U,V,j as W,Y as X,W as Y,X as Z,g as _,ve as _t,i as a,ae as at,v as b,Q as bt,o as c,ue as ct,l as d,me as dt,re as et,u as f,pe as ft,m as g,ge as gt,d as h,_e as ht,r as i,oe as it,F as j,C as k,s as l,de as lt,p as m,he as mt,K as n,ie as nt,n as o,se as ot,f as p,le as pt,U as q,q as r,te as rt,a as s,ce as st,ee as t,$ as tt,c as u,fe as ut,_ as v,ye as vt,t as w,Te as wt,y as x,Se as xt,h as y,be as yt,B as z};
@@ -1 +0,0 @@
1
- import{i as e,l as t}from"./auth-store-CyAWX99c.js";function n(){let n=t.use.currentOrganizationId();return!e()||n!=null}export{n as t};