@vellumai/web 0.10.9-staging.1 → 0.10.9-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/assets/{a2a-invite-BgVgm24S.js → a2a-invite-CwD3hY_-.js} +1 -1
  2. package/dist/assets/{account-page-BYVwf7xV.js → account-page-uVMhWTmh.js} +1 -1
  3. package/dist/assets/{acp-run-detail-panel-D7Shyx6k.js → acp-run-detail-panel-DKXp8jTf.js} +1 -1
  4. package/dist/assets/{activity-steps-panel-CuI8SWWZ.js → activity-steps-panel-Bq9yj1qu.js} +1 -1
  5. package/dist/assets/{add-credits-modal-B2t4geb6.js → add-credits-modal-DjQdNLWh.js} +1 -1
  6. package/dist/assets/{advanced-page-MbQr5gTH.js → advanced-page-CQPwr2B4.js} +1 -1
  7. package/dist/assets/{ai-page-BbtSlOOr.js → ai-page-CO4dBJpg.js} +1 -1
  8. package/dist/assets/{api-D2xHldt2.js → api-Dfrm6N2I.js} +1 -1
  9. package/dist/assets/{api-key-screen--mSD5piK.js → api-key-screen-DhFeDT-n.js} +1 -1
  10. package/dist/assets/{archive-page-Y2o3PaeP.js → archive-page-BLEqhIZ8.js} +1 -1
  11. package/dist/assets/{assistant-feature-flag-store-4edQKaeq.js → assistant-feature-flag-store-BA3GR2m5.js} +1 -1
  12. package/dist/assets/{assistant-status-panel-CdoOjV0m.js → assistant-status-panel-CW7lTRBE.js} +1 -1
  13. package/dist/assets/{auth-store-B8a9KLUt.js → auth-store-65JKPW7C.js} +2 -2
  14. package/dist/assets/{background-task-detail-panel-Dj6SWg-M.js → background-task-detail-panel-ChfmmS5C.js} +1 -1
  15. package/dist/assets/{billing-page-BAtqAcvw.js → billing-page-CaP8_CF9.js} +3 -3
  16. package/dist/assets/{bookmarks-page-BdcQABPJ.js → bookmarks-page-BdcnBpJK.js} +1 -1
  17. package/dist/assets/{browser-WjU02SUS.js → browser-Cnr7iqbJ.js} +2 -2
  18. package/dist/assets/{build-state-CTWX014G.js → build-state-D-aPe0DY.js} +1 -1
  19. package/dist/assets/{channels-page-route-DoG1IfDg.js → channels-page-route-DKkdGS4b.js} +1 -1
  20. package/dist/assets/{chat-markdown-message-B6ba9Nea.js → chat-markdown-message-Cp8stHaU.js} +2 -2
  21. package/dist/assets/{client-feature-flag-store-Bm7cFUky.js → client-feature-flag-store-Ri-a_LuI.js} +1 -1
  22. package/dist/assets/{client-identity-C5bng1El.js → client-identity-DfC94VQ4.js} +1 -1
  23. package/dist/assets/{command-palette-3Kt4aKqv.js → command-palette-Bu2Qjyle.js} +1 -1
  24. package/dist/assets/{command-palette-window-page-Ce_JAimQ.js → command-palette-window-page-CtQ40jMw.js} +1 -1
  25. package/dist/assets/{community-page-BwkGsQOO.js → community-page-DL_oR63v.js} +1 -1
  26. package/dist/assets/{connect-page-GobyNuEq.js → connect-page-BCb6nr8x.js} +1 -1
  27. package/dist/assets/{consent-controls-C7ZF8P6y.js → consent-controls-udcijSAB.js} +1 -1
  28. package/dist/assets/constants-BQVXM0At.js +1 -0
  29. package/dist/assets/{contacts-page-route-mJdb0p-P.js → contacts-page-route-CicU-jSI.js} +1 -1
  30. package/dist/assets/{credentials-page-D7wWekUv.js → credentials-page-DDM2V8iZ.js} +1 -1
  31. package/dist/assets/{danger-zone-redirect-page-BwbAORqw.js → danger-zone-redirect-page-BpM01x_c.js} +1 -1
  32. package/dist/assets/debug-page-BGhdwv9M.js +4 -0
  33. package/dist/assets/{deploy-dialogs-3Mkwr6Lr.js → deploy-dialogs-C6pCnoVj.js} +1 -1
  34. package/dist/assets/{detail-panel-stop-button-B89ORnF4.js → detail-panel-stop-button-H9sXvWGa.js} +1 -1
  35. package/dist/assets/{developer-page-BepHaWqd.js → developer-page-DZdwzLQu.js} +1 -1
  36. package/dist/assets/{devices-page-Bvgt1Qx3.js → devices-page-ChwagiFL.js} +1 -1
  37. package/dist/assets/{diagnostics-BjIFTbZd.js → diagnostics-CUmYxbmM.js} +1 -1
  38. package/dist/assets/{dictation-overlay-page-DlScWKYV.js → dictation-overlay-page-BmLNyGeD.js} +1 -1
  39. package/dist/assets/{document-viewer-page-7mbMVgWm.js → document-viewer-page-B-ShLH6Y.js} +1 -1
  40. package/dist/assets/{earn-credits-modal-BLyGdcsU.js → earn-credits-modal-BILKTI_F.js} +1 -1
  41. package/dist/assets/{emails-page-kA5rCqOM.js → emails-page-D_ZdkIHT.js} +1 -1
  42. package/dist/assets/{esm-bqqA92jW.js → esm-BC-IlNg6.js} +2 -2
  43. package/dist/assets/{esm-BgQ9CqZD.js → esm-BVzHqFEK.js} +2 -2
  44. package/dist/assets/{esm-k-oyYh2U.js → esm-CE4Ehw9K.js} +2 -2
  45. package/dist/assets/{esm-B0Io_iMT.js → esm-D4S5VlIC.js} +2 -2
  46. package/dist/assets/{esm-CWRflJ6T.js → esm-Ddwl5DWt.js} +2 -2
  47. package/dist/assets/esm-ZgeaRH-O.js +2 -0
  48. package/dist/assets/feature-flag-catalog-DjfXrBPD.js +1 -0
  49. package/dist/assets/{general-page-yhD_Wuar.js → general-page-61s8VehJ.js} +1 -1
  50. package/dist/assets/{haptics-Dgz3Ixf7.js → haptics-BOswdY5A.js} +2 -2
  51. package/dist/assets/{hatching-screen-trN-MWFq.js → hatching-screen-DiUygZtk.js} +1 -1
  52. package/dist/assets/{home-page-route-CmuFehkr.js → home-page-route-1hEkRjdv.js} +1 -1
  53. package/dist/assets/{hosting-screen-Cxg-qKjE.js → hosting-screen-nru73FGU.js} +1 -1
  54. package/dist/assets/identity-page-route-CbHcVb6m.js +1 -0
  55. package/dist/assets/{index-CkKSY1-Q.js → index-B4Qq7TL7.js} +23 -23
  56. package/dist/assets/index-CCPsEVwr.css +2 -0
  57. package/dist/assets/{inspect-page-T3Y4-Vmv.js → inspect-page-DoA1sfxg.js} +3 -3
  58. package/dist/assets/{integrations-page-Ock6mFN1.js → integrations-page-vFP_lh3w.js} +1 -1
  59. package/dist/assets/intelligence-layout-oIGPC8W1.js +1 -0
  60. package/dist/assets/{keyboard-shortcuts-page-CG1twx2C.js → keyboard-shortcuts-page-BzeIMUpj.js} +1 -1
  61. package/dist/assets/{library-detail-page-C2iWMOjx.js → library-detail-page-D0Dv3ZLJ.js} +1 -1
  62. package/dist/assets/{library-page-BC0GGthr.js → library-page-D7I-sk41.js} +1 -1
  63. package/dist/assets/{login-flow-DdiUXQhA.js → login-flow-DYLpX6IU.js} +1 -1
  64. package/dist/assets/{login-page-CGmLnOmi.js → login-page-UotBWZu9.js} +1 -1
  65. package/dist/assets/{logout-page-4e8K14KD.js → logout-page-xucijGcq.js} +1 -1
  66. package/dist/assets/{logs-layout-wJKzizjg.js → logs-layout-JUd7Ag6q.js} +1 -1
  67. package/dist/assets/memory-page-route-DqM6EMFu.js +1 -0
  68. package/dist/assets/{memory-router-playground-page-FZC-VIVr.js → memory-router-playground-page-DikxzmKT.js} +1 -1
  69. package/dist/assets/{messages-BnurE-6y.js → messages-B2CZAuPN.js} +1 -1
  70. package/dist/assets/{mobile-sidebar-drawer-BN_mMpOa.js → mobile-sidebar-drawer-BaL8el3Y.js} +1 -1
  71. package/dist/assets/{native-biometric-Dy5Vb7o0.js → native-biometric-B2cBAQ1U.js} +1 -1
  72. package/dist/assets/{native-file-H6DBFhbO.js → native-file-BZDk5eyB.js} +2 -2
  73. package/dist/assets/{notifications-page-D8wbor2x.js → notifications-page-BISnBOYH.js} +1 -1
  74. package/dist/assets/{oauth-complete-page-Ce1AmHXp.js → oauth-complete-page-SfFEsa_M.js} +1 -1
  75. package/dist/assets/{oauth-popup-complete-page-M9ID8MBR.js → oauth-popup-complete-page-D4Xoa-Gr.js} +1 -1
  76. package/dist/assets/{pairing-page-COwbBOrn.js → pairing-page-B5xnM6XX.js} +1 -1
  77. package/dist/assets/{password-reset-page-DfUZ0wSh.js → password-reset-page-NF13YMiM.js} +1 -1
  78. package/dist/assets/{platform-detection-DJWRuZPt.js → platform-detection-DGxL0AsS.js} +1 -1
  79. package/dist/assets/{platform-loopback-page-MtmBE9rf.js → platform-loopback-page-_IbNDHN2.js} +1 -1
  80. package/dist/assets/{plugin-detail-page-jrt28WVX.js → plugin-detail-page-_iCqtxl9.js} +1 -1
  81. package/dist/assets/{plugins-page-BkFE86Ch.js → plugins-page-DHiFqgxf.js} +1 -1
  82. package/dist/assets/{prechat-route-CyUlbfqD.js → prechat-route-BwML3ZL1.js} +1 -1
  83. package/dist/assets/{prefs-BLNqdDWZ.js → prefs-DNYLVDvB.js} +1 -1
  84. package/dist/assets/{privacy-page-DD2N7jR3.js → privacy-page-DhxWA9mA.js} +1 -1
  85. package/dist/assets/{privacy-screen-CiInQmTP.js → privacy-screen-DRGDGj0W.js} +1 -1
  86. package/dist/assets/{provider-callback-page-apRb9-js.js → provider-callback-page-BoO2JgZt.js} +1 -1
  87. package/dist/assets/{provider-signup-page-ajKQp8fF.js → provider-signup-page-DLVKMYZh.js} +1 -1
  88. package/dist/assets/{quick-input-page-Bfry352-.js → quick-input-page-7z8Ti2GI.js} +1 -1
  89. package/dist/assets/react-query.gen-DV9K_z-o.js +1 -0
  90. package/dist/assets/{research-mock-page-D_q1_UFd.js → research-mock-page-CoMthbl4.js} +1 -1
  91. package/dist/assets/{research-onboarding-route-CWQvTAZs.js → research-onboarding-route-CeTflgoE.js} +1 -1
  92. package/dist/assets/{review-terms-screen-DQscfsQA.js → review-terms-screen-DAZ66rIh.js} +1 -1
  93. package/dist/assets/{risk-CGuJt8eV.js → risk-BQ3NV8r8.js} +1 -1
  94. package/dist/assets/routes-BXlWEOF0.js +1 -0
  95. package/dist/assets/sdk.gen-9Cdt87h5.js +1 -0
  96. package/dist/assets/{security-page-PDmclL0z.js → security-page-BS1WxY0d.js} +1 -1
  97. package/dist/assets/{select-assistant-screen-NbYyB8gd.js → select-assistant-screen-z3B8ngdP.js} +1 -1
  98. package/dist/assets/{settings-layout-CXwmK0bq.js → settings-layout-DFzwR63d.js} +1 -1
  99. package/dist/assets/{share-feedback-modal-8FYv2LvY.js → share-feedback-modal-DH2dhWbo.js} +1 -1
  100. package/dist/assets/{sidebar-tree-DXcgyQSp.js → sidebar-tree-DWJkYLPh.js} +1 -1
  101. package/dist/assets/{signup-page-7ln71c_p.js → signup-page-D2LQXMnG.js} +1 -1
  102. package/dist/assets/site-favicon-DsYdnaxV.js +1 -0
  103. package/dist/assets/{skill-detail-page-D-KI1GRv.js → skill-detail-page-CcZFUjdw.js} +1 -1
  104. package/dist/assets/{skill-detail-panel-B6dgeIjw.js → skill-detail-panel-B4WEYtK9.js} +1 -1
  105. package/dist/assets/{skills-page-BANGKYGT.js → skills-page-Di8dGQGo.js} +1 -1
  106. package/dist/assets/{sounds-page-B5nmCucp.js → sounds-page-CF3gwgc9.js} +1 -1
  107. package/dist/assets/{subagent-detail-panel-B-XO_qpq.js → subagent-detail-panel-BqYWP0b9.js} +1 -1
  108. package/dist/assets/{system-events-page-3D8JNX2E.js → system-events-page-DdvtYv0_.js} +1 -1
  109. package/dist/assets/{system-events-redirect-page-CXWqj4sU.js → system-events-redirect-page-HeBGwZCZ.js} +1 -1
  110. package/dist/assets/{theme-stage-page-9uebvm3N.js → theme-stage-page-8v_hsKXd.js} +1 -1
  111. package/dist/assets/{tiptap-document-editor-BQsMI5MK.js → tiptap-document-editor-1QvKHdlQ.js} +1 -1
  112. package/dist/assets/{tool-detail-panel-C6bS4xqt.js → tool-detail-panel-DarSpKEx.js} +1 -1
  113. package/dist/assets/{upgrade-cancel-page-DFVxgGMD.js → upgrade-cancel-page-wop4boqC.js} +1 -1
  114. package/dist/assets/{upgrade-success-page-CmS8UX41.js → upgrade-success-page-DWPEHzlo.js} +1 -1
  115. package/dist/assets/{usage-page-J9DnhUSp.js → usage-page-CB5oigmL.js} +1 -1
  116. package/dist/assets/{use-edge-swipe-back-CGjL1V81.js → use-edge-swipe-back-R9ItWgTp.js} +1 -1
  117. package/dist/assets/{use-invite-link-dialog-DiQ0mtix.js → use-invite-link-dialog-_LChrtmw.js} +1 -1
  118. package/dist/assets/use-is-org-ready-1Xighdsa.js +1 -0
  119. package/dist/assets/{use-onboarding-login-CymKDO-T.js → use-onboarding-login-BHrngniO.js} +1 -1
  120. package/dist/assets/{use-skill-actions-DgIZqg7U.js → use-skill-actions-mJaMNpfO.js} +1 -1
  121. package/dist/assets/{use-skill-categories-573c1Oen.js → use-skill-categories-Bit2V2fA.js} +1 -1
  122. package/dist/assets/{use-skill-detail-files-omgWFzAG.js → use-skill-detail-files-DDUUobr0.js} +1 -1
  123. package/dist/assets/{voice-page-CDyjR4fA.js → voice-page-Dfl4T4_g.js} +1 -1
  124. package/dist/assets/{weather-forecast-display-C5EykzzK.js → weather-forecast-display-DOXofTcV.js} +1 -1
  125. package/dist/assets/{web-BRWcXGs9.js → web-BrbVmY32.js} +1 -1
  126. package/dist/assets/{web-CKE5sM1b.js → web-CBHy41qN.js} +1 -1
  127. package/dist/assets/{welcome-screen-Dz0Avnjt.js → welcome-screen-kc41a0yS.js} +1 -1
  128. package/dist/assets/{workflow-detail-panel-D-1Pxr3t.js → workflow-detail-panel-Dctg7w-3.js} +1 -1
  129. package/dist/assets/{workspace-page-D5FdWIRh.js → workspace-page-BWn-Je40.js} +1 -1
  130. package/dist/index.html +26 -26
  131. package/package.json +1 -1
  132. package/dist/assets/debug-page-b1M-_rZF.js +0 -4
  133. package/dist/assets/esm-C9MocOv0.js +0 -2
  134. package/dist/assets/feature-flag-catalog-CM5COdiW.js +0 -1
  135. package/dist/assets/identity-page-route-CEUFy067.js +0 -1
  136. package/dist/assets/index-CnqTir5A.css +0 -2
  137. package/dist/assets/intelligence-layout-DzdGg3IO.js +0 -1
  138. package/dist/assets/react-query.gen-GVQbBTEp.js +0 -1
  139. package/dist/assets/routes-DYcJgn9k.js +0 -1
  140. package/dist/assets/sdk.gen-CmKfVpgB.js +0 -1
  141. package/dist/assets/site-favicon-BXY4qlvA.js +0 -1
  142. package/dist/assets/use-is-org-ready-B5vVKY9m.js +0 -1
  143. /package/dist/assets/{BundleConfirmPage-C02c50EO.js → BundleConfirmPage-DwVI7U0b.js} +0 -0
  144. /package/dist/assets/{build.umd-D88jX3tx.js → build.umd-t16r8k1T.js} +0 -0
  145. /package/dist/assets/{definitions-RERkHOnv.js → definitions-CK0CSdwt.js} +0 -0
  146. /package/dist/assets/{definitions-EvNC1i1H.js → definitions-Dj7uajgZ.js} +0 -0
  147. /package/dist/assets/{esm-D_FdLNK8.js → esm-wMYgN14J.js} +0 -0
  148. /package/dist/assets/{pdf-OTWpgOp2.js → pdf-jCZ1S_t-.js} +0 -0
  149. /package/dist/assets/{web-ClHk8mQB.js → web-6YTn0Mpt.js} +0 -0
  150. /package/dist/assets/{web-Qpx2h8tK.js → web-B6BDTvZe.js} +0 -0
  151. /package/dist/assets/{web-CU5yzmqR.js → web-BEtTYpif.js} +0 -0
  152. /package/dist/assets/{web-CTmLPP3c.js → web-C3rsbCeg.js} +0 -0
  153. /package/dist/assets/{web-8CyK9syi.js → web-CIdUPUaN.js} +0 -0
  154. /package/dist/assets/{web-CyGs80Wd.js → web-DGaEiOw7.js} +0 -0
  155. /package/dist/assets/{xterm-fGXm5t6D.js → xterm-CJZcgQLM.js} +0 -0
  156. /package/dist/assets/{xterm-addon-fit-DNV09uVI.js → xterm-addon-fit-BmGG02AS.js} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{d as r,h as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./input-CoUmPnRU.js";import{t as s}from"./dropdown-ByHOpeOU.js";import{t as c}from"./is-electron-y5bNUVyG.js";import{c as l}from"./routes-DYcJgn9k.js";import{on as u}from"./index-CkKSY1-Q.js";import{a as d,i as f,n as p,o as m,r as h,s as g}from"./provider-key-B-hx1r3c.js";import"./onboarding-step-layout-Cup_f9lB.js";var _=e(t(),1),v=a();function y(){let e=r(),[t]=i(),a=t.get(`hosting`),y=c(),b=p(),[x,S]=(0,_.useState)(()=>b?.provider??f.id),[C,w]=(0,_.useState)(()=>b?.key??``),[T,E]=(0,_.useState)(()=>b?.model??m(b?.provider??f.id)??``),[D,O]=(0,_.useState)(()=>b?.baseUrl??``),[k,A]=(0,_.useState)(()=>b?.customModels??``),j=g(x)??f,M=j.models??[],N=j.requiresKey,P=M.length>0,F=x===`openai-compatible`,I=(!(N&&!F)||C.trim().length>0)&&(!P||T.trim().length>0)&&(!F||D.trim().length>0&&k.trim().length>0);return(0,v.jsx)(u,{children:(0,v.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${y?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`px-6 py-16`} text-[var(--content-default)]`,children:[(0,v.jsx)(`h1`,{className:y?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Connect a Model Provider`}),(0,v.jsx)(`p`,{className:`text-center text-body-medium-lighter text-[var(--content-tertiary)] ${y?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Choose the model provider your assistant should use.`}),(0,v.jsxs)(`div`,{className:`flex w-full flex-col gap-4 ${y?`mt-8`:`mt-10`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,v.jsx)(s,{"aria-label":`Provider`,value:x,onChange:e=>{let t=g(e);t&&(S(t.id),w(``),E(m(t.id)??``))},options:d.map(e=>({value:e.id,label:e.displayName}))})]}),M.length>0&&(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,v.jsx)(s,{"aria-label":`Model`,value:T,onChange:E,options:M.map(e=>({value:e.id,label:e.displayName}))})]}),F&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,v.jsx)(o,{type:`text`,placeholder:`http://localhost:1234/v1`,value:D,onChange:e=>O(e.target.value),fullWidth:!0})]}),(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,v.jsx)(o,{type:`text`,placeholder:`model-1, model-2`,value:k,onChange:e=>A(e.target.value),fullWidth:!0}),(0,v.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),N&&(0,v.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,v.jsx)(o,{type:`password`,label:`${j.displayName} API Key`,placeholder:j.apiKeyPlaceholder??`Enter your API key`,value:C,onChange:e=>w(e.target.value),className:`touch-mobile:text-[16px]`,fullWidth:!0}),j.docsUrl&&(0,v.jsxs)(`p`,{className:`self-start text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`Don't have it?`,` `,(0,v.jsx)(`a`,{href:j.docsUrl,target:`_blank`,rel:`noreferrer`,className:`text-[var(--content-default)] underline`,children:`Get an API key here`})]})]})]}),(0,v.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${y?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,v.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!I,onClick:()=>{if(!I)return;let t=T.trim()||m(x);h({provider:x,key:C.trim(),...t?{model:t}:{},...F?{baseUrl:D.trim(),customModels:k.trim()}:{}}),e(a?`${l.onboarding.privacy}?hosting=${a}`:l.onboarding.privacy)},className:y?void 0:`h-11 text-base`,children:`Continue`}),(0,v.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>{e(l.onboarding.hosting)},className:y?void 0:`h-11 text-base`,children:`Back`})]})]})})}export{y as ApiKeyScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{d as r,h as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./input-CoUmPnRU.js";import{t as s}from"./dropdown-ByHOpeOU.js";import{t as c}from"./is-electron-y5bNUVyG.js";import{c as l}from"./routes-BXlWEOF0.js";import{on as u}from"./index-B4Qq7TL7.js";import{a as d,i as f,n as p,o as m,r as h,s as g}from"./provider-key-B-hx1r3c.js";import"./onboarding-step-layout-Cup_f9lB.js";var _=e(t(),1),v=a();function y(){let e=r(),[t]=i(),a=t.get(`hosting`),y=c(),b=p(),[x,S]=(0,_.useState)(()=>b?.provider??f.id),[C,w]=(0,_.useState)(()=>b?.key??``),[T,E]=(0,_.useState)(()=>b?.model??m(b?.provider??f.id)??``),[D,O]=(0,_.useState)(()=>b?.baseUrl??``),[k,A]=(0,_.useState)(()=>b?.customModels??``),j=g(x)??f,M=j.models??[],N=j.requiresKey,P=M.length>0,F=x===`openai-compatible`,I=(!(N&&!F)||C.trim().length>0)&&(!P||T.trim().length>0)&&(!F||D.trim().length>0&&k.trim().length>0);return(0,v.jsx)(u,{children:(0,v.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${y?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`px-6 py-16`} text-[var(--content-default)]`,children:[(0,v.jsx)(`h1`,{className:y?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Connect a Model Provider`}),(0,v.jsx)(`p`,{className:`text-center text-body-medium-lighter text-[var(--content-tertiary)] ${y?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Choose the model provider your assistant should use.`}),(0,v.jsxs)(`div`,{className:`flex w-full flex-col gap-4 ${y?`mt-8`:`mt-10`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,v.jsx)(s,{"aria-label":`Provider`,value:x,onChange:e=>{let t=g(e);t&&(S(t.id),w(``),E(m(t.id)??``))},options:d.map(e=>({value:e.id,label:e.displayName}))})]}),M.length>0&&(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,v.jsx)(s,{"aria-label":`Model`,value:T,onChange:E,options:M.map(e=>({value:e.id,label:e.displayName}))})]}),F&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,v.jsx)(o,{type:`text`,placeholder:`http://localhost:1234/v1`,value:D,onChange:e=>O(e.target.value),fullWidth:!0})]}),(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,v.jsx)(o,{type:`text`,placeholder:`model-1, model-2`,value:k,onChange:e=>A(e.target.value),fullWidth:!0}),(0,v.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),N&&(0,v.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,v.jsx)(o,{type:`password`,label:`${j.displayName} API Key`,placeholder:j.apiKeyPlaceholder??`Enter your API key`,value:C,onChange:e=>w(e.target.value),className:`touch-mobile:text-[16px]`,fullWidth:!0}),j.docsUrl&&(0,v.jsxs)(`p`,{className:`self-start text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`Don't have it?`,` `,(0,v.jsx)(`a`,{href:j.docsUrl,target:`_blank`,rel:`noreferrer`,className:`text-[var(--content-default)] underline`,children:`Get an API key here`})]})]})]}),(0,v.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${y?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,v.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!I,onClick:()=>{if(!I)return;let t=T.trim()||m(x);h({provider:x,key:C.trim(),...t?{model:t}:{},...F?{baseUrl:D.trim(),customModels:k.trim()}:{}}),e(a?`${l.onboarding.privacy}?hosting=${a}`:l.onboarding.privacy)},className:y?void 0:`h-11 text-base`,children:`Continue`}),(0,v.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>{e(l.onboarding.hosting)},className:y?void 0:`h-11 text-base`,children:`Back`})]})]})})}export{y as ApiKeyScreen};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Dhiismgm.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-amTXFI-2.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./card-Bv5O5juh.js";import{t as s}from"./archive-0aqysuyd.js";import{t as c}from"./loader-circle-Cz7opInR.js";import{t as l}from"./triangle-alert-Z0Gq0IuB.js";import"./src-DZbMXyC2.js";import{n as u}from"./toast-xTp-xwYL.js";import{Y as d}from"./sdk.gen-CFgJ4K6f.js";import{Ni as f,Tn as p,ur as m}from"./index-CkKSY1-Q.js";import{t as h}from"./use-active-assistant-id-CGeH4Gl6.js";var g=e(n(),1),_=a();function v(e){if(e==null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}function y(){return(0,_.jsx)(o,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,_.jsx)(s,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`No archived conversations`}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Conversations you archive will appear here.`})]})})}function b({conversation:e,isFirst:t,onUnarchive:n,isPending:i}){let a=[v(e.createdAt),e.source??`vellum-assistant`].filter(Boolean).join(` · `),o=e.title&&e.title.trim().length>0?e.title:`Untitled conversation`;return(0,_.jsxs)(`div`,{className:`flex items-center gap-3 py-3 ${t?``:`border-t border-[var(--border-base)]`}`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:o}),(0,_.jsx)(`p`,{className:`mt-0.5 truncate text-body-small-default text-[var(--content-tertiary)]`,children:a})]}),(0,_.jsx)(r,{variant:`outlined`,onClick:n,disabled:i,className:`shrink-0`,children:i?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c,{className:`h-4 w-4 animate-spin`}),`Unarchiving`]}):`Unarchive`})]})}function x(){let e=i(),n=h(),{conversations:a,isLoading:s,isError:v,refetch:x}=p(n),[S,C]=(0,g.useState)(null),w=(0,g.useCallback)(async r=>{if(n){C(r);try{await d({path:{assistant_id:n,id:r},throwOnError:!0}),m(e,n)}catch(e){t(e,{context:`archive_settings_unarchive_conversation`}),u.error(`Failed to unarchive conversation.`)}finally{C(null)}}},[n,e]);return s?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(`div`,{className:`flex min-h-[400px] items-center justify-center`,children:(0,_.jsx)(c,{className:`h-6 w-6 animate-spin text-[var(--content-disabled)]`})})}):v?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(o,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--system-error-lighter)]`,children:(0,_.jsx)(l,{className:`h-6 w-6 text-[var(--system-error-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`Failed to load archived conversations`}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Something went wrong. Please try again.`}),(0,_.jsxs)(r,{variant:`outlined`,onClick:x,className:`mt-4`,children:[(0,_.jsx)(f,{className:`h-4 w-4`}),`Retry`]})]})})}):a.length===0?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(y,{})}):(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(o,{noPadding:!0,className:`px-4`,children:a.map((e,t)=>(0,_.jsx)(b,{conversation:e,isFirst:t===0,onUnarchive:()=>{w(e.conversationId)},isPending:S===e.conversationId},e.conversationId))})})}export{x as ArchivePage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Dhiismgm.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-amTXFI-2.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./card-Bv5O5juh.js";import{t as s}from"./archive-0aqysuyd.js";import{t as c}from"./loader-circle-Cz7opInR.js";import{t as l}from"./triangle-alert-Z0Gq0IuB.js";import"./src-DZbMXyC2.js";import{n as u}from"./toast-xTp-xwYL.js";import{Y as d}from"./sdk.gen-CFgJ4K6f.js";import{Ni as f,Tn as p,ur as m}from"./index-B4Qq7TL7.js";import{t as h}from"./use-active-assistant-id-CGeH4Gl6.js";var g=e(n(),1),_=a();function v(e){if(e==null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}function y(){return(0,_.jsx)(o,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,_.jsx)(s,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`No archived conversations`}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Conversations you archive will appear here.`})]})})}function b({conversation:e,isFirst:t,onUnarchive:n,isPending:i}){let a=[v(e.createdAt),e.source??`vellum-assistant`].filter(Boolean).join(` · `),o=e.title&&e.title.trim().length>0?e.title:`Untitled conversation`;return(0,_.jsxs)(`div`,{className:`flex items-center gap-3 py-3 ${t?``:`border-t border-[var(--border-base)]`}`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:o}),(0,_.jsx)(`p`,{className:`mt-0.5 truncate text-body-small-default text-[var(--content-tertiary)]`,children:a})]}),(0,_.jsx)(r,{variant:`outlined`,onClick:n,disabled:i,className:`shrink-0`,children:i?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c,{className:`h-4 w-4 animate-spin`}),`Unarchiving`]}):`Unarchive`})]})}function x(){let e=i(),n=h(),{conversations:a,isLoading:s,isError:v,refetch:x}=p(n),[S,C]=(0,g.useState)(null),w=(0,g.useCallback)(async r=>{if(n){C(r);try{await d({path:{assistant_id:n,id:r},throwOnError:!0}),m(e,n)}catch(e){t(e,{context:`archive_settings_unarchive_conversation`}),u.error(`Failed to unarchive conversation.`)}finally{C(null)}}},[n,e]);return s?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(`div`,{className:`flex min-h-[400px] items-center justify-center`,children:(0,_.jsx)(c,{className:`h-6 w-6 animate-spin text-[var(--content-disabled)]`})})}):v?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(o,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--system-error-lighter)]`,children:(0,_.jsx)(l,{className:`h-6 w-6 text-[var(--system-error-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`Failed to load archived conversations`}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Something went wrong. Please try again.`}),(0,_.jsxs)(r,{variant:`outlined`,onClick:x,className:`mt-4`,children:[(0,_.jsx)(f,{className:`h-4 w-4`}),`Retry`]})]})})}):a.length===0?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(y,{})}):(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(o,{noPadding:!0,className:`px-4`,children:a.map((e,t)=>(0,_.jsx)(b,{conversation:e,isFirst:t===0,onUnarchive:()=>{w(e.conversationId)},isPending:S===e.conversationId},e.conversationId))})})}export{x as ArchivePage};
@@ -1 +1 @@
1
- import{n as e}from"./toast-xTp-xwYL.js";import{n as t,t as n}from"./create-selectors-8NePGNlX.js";import{c as r,n as i,s as a,t as o,u as s}from"./feature-flag-catalog-CM5COdiW.js";import{h as c}from"./sdk.gen-CenbOmmb.js";var l={...o},u={...i},d=0,f={};function p(e={}){l={...o,...e};for(let e of Object.keys(f))delete f[e]}function m(e={}){u={...i,...e}}function h(){p(),m()}var g=a(`assistant`);function _(e){return l[e]??o[e]??!1}function v(e){return u[e]??i[e]??``}var y=n(t()(t=>{let n=t;return{...o,...g.bool,hasHydrated:!1,stringFlags:{...i,...g.str},setFlags:e=>t(t=>{p(e);let n={...e,...g.bool};return Object.keys(n).some(e=>n[e]!==t[e])?n:t}),setFlag:(n,i,a)=>{let o=++d,u=()=>{if(f[n]!==o)return;delete f[n];let a=_(n);t(e=>e[n]===i?{[n]:a}:e),e.error(`Couldn't update "${r(n)?.label??n}" — change reverted.`)},p=s(n);!a||!p||(f[n]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(l[n]=i,f[n]===o&&delete f[n]):u()}).catch(u),t({[n]:g.bool[n]??i}))},markHydrated:()=>t({hasHydrated:!0}),resetForAssistantSwitch:()=>{h(),t({...o,...g.bool,hasHydrated:!1}),n({stringFlags:{...i,...g.str}})},setStringFlags:e=>n(t=>{m(e);let n={...e,...g.str},r=t.stringFlags;return Object.keys(n).some(e=>n[e]!==r[e])?{stringFlags:n}:t}),setStringFlag:(t,i,a)=>{let o=++d,l=()=>{if(f[t]!==o)return;delete f[t];let a=v(t);n(e=>e.stringFlags[t]===i?{stringFlags:{...e.stringFlags,[t]:a}}:e),e.error(`Couldn't update "${r(t)?.label??t}" — change reverted.`)},p=s(t);!a||!p||(f[t]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(u[t]=i,f[t]===o&&delete f[t]):l()}).catch(l),n(e=>({stringFlags:{...e.stringFlags,[t]:g.str[t]??i}})))}}}));export{y as t};
1
+ import{n as e}from"./toast-xTp-xwYL.js";import{n as t,t as n}from"./create-selectors-8NePGNlX.js";import{c as r,n as i,s as a,t as o,u as s}from"./feature-flag-catalog-DjfXrBPD.js";import{h as c}from"./sdk.gen-CenbOmmb.js";var l={...o},u={...i},d=0,f={};function p(e={}){l={...o,...e};for(let e of Object.keys(f))delete f[e]}function m(e={}){u={...i,...e}}function h(){p(),m()}var g=a(`assistant`);function _(e){return l[e]??o[e]??!1}function v(e){return u[e]??i[e]??``}var y=n(t()(t=>{let n=t;return{...o,...g.bool,hasHydrated:!1,stringFlags:{...i,...g.str},setFlags:e=>t(t=>{p(e);let n={...e,...g.bool};return Object.keys(n).some(e=>n[e]!==t[e])?n:t}),setFlag:(n,i,a)=>{let o=++d,u=()=>{if(f[n]!==o)return;delete f[n];let a=_(n);t(e=>e[n]===i?{[n]:a}:e),e.error(`Couldn't update "${r(n)?.label??n}" — change reverted.`)},p=s(n);!a||!p||(f[n]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(l[n]=i,f[n]===o&&delete f[n]):u()}).catch(u),t({[n]:g.bool[n]??i}))},markHydrated:()=>t({hasHydrated:!0}),resetForAssistantSwitch:()=>{h(),t({...o,...g.bool,hasHydrated:!1}),n({stringFlags:{...i,...g.str}})},setStringFlags:e=>n(t=>{m(e);let n={...e,...g.str},r=t.stringFlags;return Object.keys(n).some(e=>n[e]!==r[e])?{stringFlags:n}:t}),setStringFlag:(t,i,a)=>{let o=++d,l=()=>{if(f[t]!==o)return;delete f[t];let a=v(t);n(e=>e.stringFlags[t]===i?{stringFlags:{...e.stringFlags,[t]:a}}:e),e.error(`Couldn't update "${r(t)?.label??t}" — change reverted.`)},p=s(t);!a||!p||(f[t]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(u[t]=i,f[t]===o&&delete f[t]):l()}).catch(l),n(e=>({stringFlags:{...e.stringFlags,[t]:g.str[t]??i}})))}}}));export{y as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./capture-error-Dhiismgm.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./useQuery-B45lW1Kk.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./loader-circle-Cz7opInR.js";import"./src-DZbMXyC2.js";import{t as s}from"./tag-CV4v7fRF.js";import{n as c}from"./toast-xTp-xwYL.js";import{n as l}from"./auth-store-B8a9KLUt.js";import{a as u,r as d}from"./api-D2xHldt2.js";import{t as f}from"./assistant-feature-flag-store-4edQKaeq.js";import{t as p}from"./use-active-assistant-id-CGeH4Gl6.js";import{t as m}from"./environment-store-Bxe2pTvW.js";var h=e(r(),1),g=a();function _({value:e,max:t,caption:n}){let r=t>0?Math.max(0,Math.min(e/t*100,100)):0,i=r>90;return(0,g.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,g.jsx)(`div`,{className:`h-2 w-full overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,g.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-200`,style:{width:`${r}%`,backgroundColor:i?`var(--system-negative-strong)`:`var(--system-positive-strong)`}})}),n&&(0,g.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:n})]})}var v=7,y=2e3;function b({version:e,loading:t,assistantId:n}){let r=(0,h.useRef)(0),i=(0,h.useRef)(null),[a,s]=(0,h.useState)(null),c=(0,h.useCallback)(()=>{if(r.current+=1,r.current>=v){r.current=0;let e=f.getState(),t=!e.settingsDeveloperNav;e.setFlag(`settingsDeveloperNav`,t,n),s(t?`Developer mode enabled`:`Developer mode disabled`),i.current!==null&&clearTimeout(i.current),i.current=setTimeout(()=>{s(null),i.current=null},y)}},[n]);return(0,h.useEffect)(()=>()=>{i.current!==null&&clearTimeout(i.current)},[]),t?(0,g.jsxs)(`span`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,g.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading version...`]}):e?(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`button`,{type:`button`,className:`break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:c,children:e}),a&&(0,g.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:a})]}):(0,g.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`—`})}var x=`currentAssistant`,S=4e3,C=9e4;function w(e,t){return(e.memory?.maxMb??null)!==(t.memory?.maxMb??null)||(e.cpu?.maxCores??null)!==(t.cpu?.maxCores??null)}function T(){let e=p(),{data:r=null,isLoading:a,refetch:o}=i({queryKey:[x,e],queryFn:async()=>{let t=await d(e);return t.ok?t.data:null},retry:!1}),s=r?.id,[l,f]=(0,h.useState)(null),[m,g]=(0,h.useState)(!1),[_,v]=(0,h.useState)(!1),y=(0,h.useRef)(0),b=(0,h.useRef)(0),T=(0,h.useCallback)(async e=>{if(!s)return f(null),g(!1),null;y.current+=1;let r=y.current;g(!0);try{let t=await u(s);return r===y.current?t.ok?(f(t.data),t.data):(e?.keepStaleOnError||f(null),null):null}catch(i){return r===y.current?(e?.keepStaleOnError||f(null),!t(i)&&!e?.keepStaleOnError&&(n(i,{context:`fetch_assistant_healthz`}),c.error(`Failed to load assistant info`)),null):null}finally{r===y.current&&g(!1)}},[s]);return(0,h.useEffect)(()=>{T()},[T]),(0,h.useEffect)(()=>()=>{b.current+=1,v(!1),f(null)},[s]),{assistant:r,assistantLoading:a,healthz:l,healthzLoading:m,healthzPolling:_,refetch:(0,h.useCallback)(async()=>{await o(),await T()},[o,T]),refetchUntilResized:(0,h.useCallback)(async e=>{let t=++b.current,n=Date.now()+C;v(!0);let r=e;try{for(o();Date.now()<n&&t===b.current;){if(await new Promise(e=>setTimeout(e,S)),t!==b.current)return;let e=await T({keepStaleOnError:!0});if(t!==b.current)return;if(e){if(r==null){r=e;continue}if(w(e,r))return}}}finally{t===b.current&&v(!1)}},[T,o])}}function E({assistant:e,assistantLoading:t,healthz:n,healthzLoading:r}){let i=m.use.isNonProduction(),a=l.use.user()?.email;if(t)return(0,g.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,g.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]});if(!e)return(0,g.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`});let c=n?.version??e.current_release_version;return(0,g.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[a&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(O,{children:`Account`}),(0,g.jsx)(k,{children:a})]}),(0,g.jsx)(O,{children:`Name`}),(0,g.jsx)(k,{children:e.name}),e.description&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(O,{children:`Description`}),(0,g.jsx)(k,{children:e.description})]}),(0,g.jsx)(O,{children:`Status`}),(0,g.jsx)(`div`,{children:(0,g.jsx)(s,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,g.jsx)(O,{children:`Assistant ID`}),(0,g.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),i&&e.machine_id&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(O,{children:`Machine ID`}),(0,g.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,g.jsx)(O,{children:`Created`}),(0,g.jsx)(k,{children:e.created?new Date(e.created).toLocaleDateString():`Unknown`}),(0,g.jsx)(O,{children:`Version`}),(0,g.jsx)(b,{version:c??null,loading:r&&!e.current_release_version,assistantId:e.id??null})]})}function D(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e.toFixed(0)} MB`}function O({children:e}){return(0,g.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function k({children:e}){return(0,g.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}export{_ as i,D as n,T as r,E as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./capture-error-Dhiismgm.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./useQuery-B45lW1Kk.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./loader-circle-Cz7opInR.js";import"./src-DZbMXyC2.js";import{t as s}from"./tag-CV4v7fRF.js";import{n as c}from"./toast-xTp-xwYL.js";import{n as l}from"./auth-store-65JKPW7C.js";import{a as u,r as d}from"./api-Dfrm6N2I.js";import{t as f}from"./assistant-feature-flag-store-BA3GR2m5.js";import{t as p}from"./use-active-assistant-id-CGeH4Gl6.js";import{t as m}from"./environment-store-Bxe2pTvW.js";var h=e(r(),1),g=a();function _({value:e,max:t,caption:n}){let r=t>0?Math.max(0,Math.min(e/t*100,100)):0,i=r>90;return(0,g.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,g.jsx)(`div`,{className:`h-2 w-full overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,g.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-200`,style:{width:`${r}%`,backgroundColor:i?`var(--system-negative-strong)`:`var(--system-positive-strong)`}})}),n&&(0,g.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:n})]})}var v=7,y=2e3;function b({version:e,loading:t,assistantId:n}){let r=(0,h.useRef)(0),i=(0,h.useRef)(null),[a,s]=(0,h.useState)(null),c=(0,h.useCallback)(()=>{if(r.current+=1,r.current>=v){r.current=0;let e=f.getState(),t=!e.settingsDeveloperNav;e.setFlag(`settingsDeveloperNav`,t,n),s(t?`Developer mode enabled`:`Developer mode disabled`),i.current!==null&&clearTimeout(i.current),i.current=setTimeout(()=>{s(null),i.current=null},y)}},[n]);return(0,h.useEffect)(()=>()=>{i.current!==null&&clearTimeout(i.current)},[]),t?(0,g.jsxs)(`span`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,g.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading version...`]}):e?(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`button`,{type:`button`,className:`break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:c,children:e}),a&&(0,g.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:a})]}):(0,g.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`—`})}var x=`currentAssistant`,S=4e3,C=9e4;function w(e,t){return(e.memory?.maxMb??null)!==(t.memory?.maxMb??null)||(e.cpu?.maxCores??null)!==(t.cpu?.maxCores??null)}function T(){let e=p(),{data:r=null,isLoading:a,refetch:o}=i({queryKey:[x,e],queryFn:async()=>{let t=await d(e);return t.ok?t.data:null},retry:!1}),s=r?.id,[l,f]=(0,h.useState)(null),[m,g]=(0,h.useState)(!1),[_,v]=(0,h.useState)(!1),y=(0,h.useRef)(0),b=(0,h.useRef)(0),T=(0,h.useCallback)(async e=>{if(!s)return f(null),g(!1),null;y.current+=1;let r=y.current;g(!0);try{let t=await u(s);return r===y.current?t.ok?(f(t.data),t.data):(e?.keepStaleOnError||f(null),null):null}catch(i){return r===y.current?(e?.keepStaleOnError||f(null),!t(i)&&!e?.keepStaleOnError&&(n(i,{context:`fetch_assistant_healthz`}),c.error(`Failed to load assistant info`)),null):null}finally{r===y.current&&g(!1)}},[s]);return(0,h.useEffect)(()=>{T()},[T]),(0,h.useEffect)(()=>()=>{b.current+=1,v(!1),f(null)},[s]),{assistant:r,assistantLoading:a,healthz:l,healthzLoading:m,healthzPolling:_,refetch:(0,h.useCallback)(async()=>{await o(),await T()},[o,T]),refetchUntilResized:(0,h.useCallback)(async e=>{let t=++b.current,n=Date.now()+C;v(!0);let r=e;try{for(o();Date.now()<n&&t===b.current;){if(await new Promise(e=>setTimeout(e,S)),t!==b.current)return;let e=await T({keepStaleOnError:!0});if(t!==b.current)return;if(e){if(r==null){r=e;continue}if(w(e,r))return}}}finally{t===b.current&&v(!1)}},[T,o])}}function E({assistant:e,assistantLoading:t,healthz:n,healthzLoading:r}){let i=m.use.isNonProduction(),a=l.use.user()?.email;if(t)return(0,g.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,g.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]});if(!e)return(0,g.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`});let c=n?.version??e.current_release_version;return(0,g.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[a&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(O,{children:`Account`}),(0,g.jsx)(k,{children:a})]}),(0,g.jsx)(O,{children:`Name`}),(0,g.jsx)(k,{children:e.name}),e.description&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(O,{children:`Description`}),(0,g.jsx)(k,{children:e.description})]}),(0,g.jsx)(O,{children:`Status`}),(0,g.jsx)(`div`,{children:(0,g.jsx)(s,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,g.jsx)(O,{children:`Assistant ID`}),(0,g.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),i&&e.machine_id&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(O,{children:`Machine ID`}),(0,g.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,g.jsx)(O,{children:`Created`}),(0,g.jsx)(k,{children:e.created?new Date(e.created).toLocaleDateString():`Unknown`}),(0,g.jsx)(O,{children:`Version`}),(0,g.jsx)(b,{version:c??null,loading:r&&!e.current_release_version,assistantId:e.id??null})]})}function D(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e.toFixed(0)} MB`}function O({children:e}){return(0,g.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function k({children:e}){return(0,g.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}export{_ as i,D as n,T as r,E as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-BgQ9CqZD.js","assets/preload-helper-BewR0kVT.js","assets/dist-RkT480s0.js","assets/esm-D_FdLNK8.js"])))=>i.map(i=>d[i]);
2
- import{a as e,c as t,i as n,t as r}from"./local-settings-lVNyIOJ_.js";import{a as i,n as a,r as o,t as s}from"./device-settings-BBwtGKJb.js";import{o as c,t as l}from"./capture-error-Dhiismgm.js";import{t as u}from"./preload-helper-BewR0kVT.js";import{t as d}from"./useQuery-B45lW1Kk.js";import{n as f,t as p}from"./create-selectors-8NePGNlX.js";import{C as ee,E as te,O as ne,T as re,at as ie,c as ae,ct as m,et as oe,f as se,g as h,h as ce,i as le,it as ue,l as g,n as de,nt as _,ot as fe,p as v,r as pe,rt as me,s as he,st as y,tt as ge,v as _e,w as ve,y as ye}from"./local-mode-Bskd5bsT.js";import{t as b}from"./is-electron-y5bNUVyG.js";import{n as x,t as be}from"./resolved-assistants-store-DAzPZ1eV.js";import{n as xe,r as S,t as Se}from"./api-errors-CrWDzVca.js";import{t as C}from"./client.gen-DVfIRXUZ.js";import{M as Ce,N as we,wt as Te}from"./sdk.gen-CmKfVpgB.js";import{a as Ee,c as w,r as De}from"./api-D2xHldt2.js";import{n as Oe,t as ke}from"./event-bus-BNx4a0Ds.js";import{S as T,a as Ae,b as je,d as Me,h as Ne,i as Pe,l as Fe,t as Ie,u as Le,v as Re,w as ze,y as Be}from"./native-biometric-Dy5Vb7o0.js";import{o as Ve}from"./remote-gateway-session-CBKZhJak.js";import{t as He}from"./dist-RkT480s0.js";import{r as Ue}from"./typed-storage-BRvgA7pX.js";var E=p(f(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),We=new Set;function Ge(e){return We.add(e),()=>{We.delete(e)}}function Ke(){for(let e of We)try{e()}catch{}}var qe=new Set([502,503,504]),Je=`Connection interrupted. Reconnecting…`;function Ye(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function Xe(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`}:Ye(e.error)?{kind:`error`,transient:!0,message:Je}:{kind:`error`,message:S(e.error,void 0,`Failed to check assistant status.`)}}function Ze(e){return e===void 0||e>=500}var Qe=`platform_hosted_disabled`,$e=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function et(e,t){return e===503?t?.code===Qe:!1}var tt=2e3,nt=3e4;function rt(e){return Math.min(tt*2**e,nt)}var it=3e5;function at(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var ot=[`assistant`,`current`],st=3e3,ct=new Set([`initializing`,`cleaning_up`]);function lt(e){if(!e)return!1;let t=Xe(e);return ct.has(t.kind)?st:!1}function ut(e){return e?[...ot,e]:ot}function dt(e){let t=e.selectedPlatformAssistantId??null;return d({queryKey:ut(t),queryFn:()=>De(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>lt(e.state.data),refetchOnWindowFocus:!1})}var ft=new Set([`healthy`,`ok`]);function pt(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t===`MIGRATING`?`migrating`:t!==void 0&&!ft.has(t)?`unhealthy`:`healthy`}function mt(){let e=E.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var D=e=>e===`authenticated`,ht=e=>e!==`initializing`,O=e=>e===`present`,gt=(e,t)=>e===`present`&&!t,_t=new Set([401,403,410]),vt=e=>!e.ok&&e.status!==void 0&&_t.has(e.status),yt=4e3,bt=6e4,xt=5e3;function St(){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(){Ge(()=>this.onUnreachable()),Oe(`app.online`,()=>this.onNetworkOnline()),x.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!m()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){x.getState().activeAssistantId!==null&&x.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(m()){this.applyGatewayAuthShortCircuit();return}if(!D(this.inputs.sessionStatus)){this.resetForLogout();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(m()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:ut(n),queryFn:()=>De(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(x.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:ot,queryFn:()=>De(),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:Je})}}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=rt(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:it}}),this.transition(at())},it)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;_(null),this.setOperationalStatusAssistantId(e.data.id);let r=x.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=x.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=le();if(h())e=St();else if(n){let r=g();e=`${window.location.origin}${n}`,t=r?.assistantId??t}_({url:e,token:ie()}),this.setOperationalStatusAssistantId(null),x.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=Xe(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=this.state.kind===`self_hosted`||this.state.kind===`active`&&this.state.isLocal,r=n?g()?.assistantId??e:e,i=!h()&&n?await ne(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=pt(await Ee(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!h()&&(i=await ne(r).catch(()=>null)),a===`unreachable`&&i?.ok)switch(i.state){case`healthy`:a=`healthy`;break;case`sleeping`:case`starting`:case`upgrading`:case`unhealthy`:case`crashed`:a=i.state;break;case`unknown`:break}if(t!==this.generation||x.getState().activeAssistantId!==e)return;if(this.state.kind===`self_hosted`){this.state.health!==a&&this.transition({...this.state,health:a});return}if(this.state.kind!==`active`)return;let o=a===`healthy`||a===`unhealthy`;if(this.state.reachable===o&&this.state.health===a)return;this.transition({...this.state,reachable:o,health:a})}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>bt){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>bt){n();return}this.probeTimer=setTimeout(()=>void r(),yt)};this.probeTimer=setTimeout(()=>void r(),yt)}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(),xt)))};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=x.getState().activeAssistantId;if(e){if(this.transition({...this.state,reachable:!1}),this.healthHeartbeatId===e){this.probeReachability(e);return}this.startProbeLoop(e)}}setLocalAssistantUpgradeInProgress(e,t){if(x.getState().activeAssistantId===e){if(!t){this.probeReachability(e);return}if(this.state.kind===`self_hosted`){this.transition({...this.state,health:`upgrading`});return}this.state.kind===`active`&&this.state.isLocal&&this.transition({...this.state,reachable:!1,health:`upgrading`})}}__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}),x.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){E.getState().operationalStatusAssistantId!==e&&E.setState({operationalStatusAssistantId:e})}};function Ct(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=x.getState(),i=be(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=de()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function A(e){x.getState().setSelectedAssistant(e),e!==null&&await ee(e)}var wt=`vellum:auth:userSnapshot`;function Tt(e){if(e)try{localStorage.setItem(wt,JSON.stringify(e))}catch{}}function Et(){try{let e=localStorage.getItem(wt);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{kind:`platform`,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 Dt(){try{localStorage.removeItem(wt)}catch{}}var Ot=`vellum_active_organization_id`;function kt(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function At(){let e=kt();if(!e)return null;try{return e.getItem(Ot)}catch{return null}}function jt(e){let t=kt();if(t)try{t.setItem(Ot,e)}catch{}}function Mt(){let e=kt();if(e)try{e.removeItem(Ot)}catch{}}function Nt(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var j=p(f()((e,t)=>({organizations:[],currentOrganizationId:null,status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await Te()).data?.results??[],r=Nt(n,t().currentOrganizationId??At());r&&jt(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)&&(jt(n),e({currentOrganizationId:n,status:`ready`}))},clearOrganization:()=>{Mt(),e({organizations:[],currentOrganizationId:null,status:`idle`,error:null})}})));function M(){return j.getState().currentOrganizationId??At()}function Pt(){j.getState().clearOrganization()}function Ft(){let e=0,t=j.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)&&j.getState().fetchOrganizations()}),r=()=>{if(!O($.getState().platformSession))return;let{status:t}=j.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&j.getState().fetchOrganizations()},i=Oe(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function It(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:oe();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??M();i&&(n[`Vellum-Organization-Id`]=i);let a=je();return a&&(n[`X-Session-Token`]=a),n}async function Lt(e,t={}){let n=It(e,t);if(n.Authorization||b())return n;await Re();let r=Be();return r&&(n[`X-CSRFToken`]=r),n}var Rt;function zt(){return b()?(Rt===void 0&&(Rt=window.__VELLUM_CONFIG__?.deviceId??null),Rt):null}var Bt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Vt=`X-Vellum-Electron-Renderer-Origin`,Ht=new Map,Ut=[2e3,5e3,15e3,3e4,6e4],Wt=new Set;async function Gt(e,t={}){if(!v()||h()||ce()||cn(e))return e;let n=qt(e);if(!n)return e;let r=Ht.get(n.assistantId);if(r)return r;let i=Jt(n,{allowGatewayRepair:t.allowGatewayRepair??!0});Ht.set(n.assistantId,i);try{return await i}catch(e){throw Ht.delete(n.assistantId),e}}function Kt(e,t={}){if(!v()||h()||ce())return;let n=e;if(!n){let e=g();if(!e||!se(e))return;n=e.assistantId}if(Wt.has(n))return;Wt.add(n);let r=n;(async()=>{try{for(let e=0;;e++)try{await Gt(r,{allowGatewayRepair:t.allowGatewayRepair??!1});return}catch(n){let r=Ut[e];if(r===void 0){(t.onError??(e=>{console.warn(`local assistant platform bootstrap failed`,e)}))(n);return}console.warn(`local assistant platform bootstrap attempt ${e+1} failed, retrying in ${r}ms`,n),await new Promise(e=>setTimeout(e,r))}}finally{Wt.delete(r)}})()}function qt(e){let t=de();if(t?.assistantId===e&&se(t))return t;let n=g();return n?.assistantId===e&&se(n)?n:null}async function Jt(e,t){let n=await Xt(e,t),r=await Zt(n,e.assistantId),i=r?.assistantId&&cn(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1){let t=r?.organizationId??e.platformOrganizationId??null;return t&&await Yt(e,{platformAssistantId:i,platformBaseUrl:r?.baseUrl??ae(),organizationId:t}),i}let a=await Qt(r?.organizationId??null,e);if(!a)throw Error(`Sign in to Vellum and select an organization to register this local assistant.`);let o=r?.clientInstallationId??zt()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await $t(e,a,o),c=N(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!cn(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=P(s.assistant_api_key);!u&&r?.hasAssistantApiKey!==!0&&(u=await en(e,a,o));let d=r?.baseUrl??ae();return await nn(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:d,organizationId:a,webhookSecret:P(s.webhook_secret)}),await Yt(e,{platformAssistantId:l,platformBaseUrl:d,organizationId:a}),l}async function Yt(e,t){await re({...e,platformAssistantId:t.platformAssistantId,platformBaseUrl:t.platformBaseUrl,platformOrganizationId:t.organizationId}).catch(e=>{console.warn(`local assistant platform lockfile update failed`,e)})}async function Xt(e,t){let n=ge(),r=oe();if(t.allowGatewayRepair&&(!n||!r)&&(await ye(e),n=ge(),r=oe()),!n||!r){let t=le(e);t&&(n=`${window.location.origin}${t}`)}if(!n||!r)throw Error(`Unable to reach the local assistant for platform identity setup.`);return{gatewayUrl:n,actorToken:r}}async function Zt(e,t){let n=sn(e.gatewayUrl,`/v1/assistants/${encodeURIComponent(t)}/platform/status`),r=await fetch(n,{headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`},credentials:`omit`}).catch(()=>null);if(!r?.ok)return null;let i=await r.json().catch(()=>null);return{assistantId:N(i?.assistantId,i?.assistant_id),baseUrl:N(i?.baseUrl,i?.base_url),organizationId:N(i?.organizationId,i?.organization_id),hasAssistantApiKey:ln(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:N(i?.clientInstallationId,i?.client_installation_id)}}async function Qt(e,t){return(e??t.platformOrganizationId??M()??t.organizationId??null)||(await j.getState().fetchOrganizations().catch(()=>{}),M()??t.platformOrganizationId??t.organizationId??null)}async function $t(e,t,n){return await tn(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function en(e,t,n){return P((await tn(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function tn(e,t,n,r){let i=new Headers({...await Lt({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=je();if(b()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(Vt,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:b()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:b()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${on(e)}`)});if(!o.ok){let e=await an(o);throw Error(`Unable to register the local assistant with the platform (HTTP ${o.status})${e?`: ${e}`:`.`}`)}try{return await o.json()}catch(e){throw Error(`Unable to read the platform registration response: ${on(e)}`)}}async function nn(e,t){let n=[[`vellum:platform_assistant_id`,t.platformAssistantId],[`vellum:platform_base_url`,t.platformBaseUrl],[`vellum:platform_organization_id`,t.organizationId],[`vellum:webhook_secret`,t.webhookSecret]];await Promise.all(n.filter(e=>!!e[1]).map(([t,n])=>rn(e,t,n))),t.assistantApiKey&&await rn(e,`vellum:assistant_api_key`,t.assistantApiKey)}async function rn(e,t,n){let r=await fetch(sn(e.gatewayUrl,`/v1/secrets`),{method:`POST`,headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`,"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify({type:`credential`,name:t,value:n})}).catch(e=>{throw Error(`Unable to reach the local assistant while storing ${t}: ${on(e)}`)});if(!r.ok){let e=await an(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function an(e){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.json().catch(()=>null),n=t&&typeof t==`object`&&`detail`in t?P(t.detail):null,r=t&&typeof t==`object`&&`code`in t?P(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function on(e){return e instanceof Error?e.message:String(e)}function sn(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function cn(e){return Bt.test(e)}function N(...e){for(let t of e){let e=P(t);if(e)return e}return null}function P(e){return typeof e==`string`&&e.trim()?e.trim():null}function ln(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var un=`.dev`;function dn(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.bundleId==`string`&&typeof t.assistantId==`string`?{token:t.token,bundleId:t.bundleId,assistantId:t.assistantId}:null}var fn=Ue({key:`vellum:push_registration`,scope:`user`,parse:dn,serialize:JSON.stringify,fallback:null}),pn=!1,mn=null,F=null,I=new Set;function hn(e){I.add(e),e.finally(()=>{I.delete(e)})}function gn(){return Le()&&He.getPlatform()===`ios`}function _n(e){return e.endsWith(un)?`development`:`production`}async function vn(e,t){try{let{App:n}=await u(async()=>{let{App:e}=await import(`./esm-BgQ9CqZD.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await we({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:_n(r)},throwOnError:!1});if(i.error){l(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}F={token:e,bundleId:r,assistantId:t},fn.save(F)}catch(e){l(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}function yn(e){if(typeof e!=`object`||!e)return;let t=e,n=t.deep_link;if(typeof n==`object`&&n){let e=n.conversationId;if(typeof e==`string`)return e}return typeof t.conversationId==`string`?t.conversationId:void 0}async function bn(){if(!pn){pn=!0;try{let{PushNotifications:e}=await u(async()=>{let{PushNotifications:e}=await import(`./esm-D_FdLNK8.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=mn;t&&hn(vn(e.value,t))}),await e.addListener(`registrationError`,e=>{l(e,{context:`push_registration_apns`,level:`warning`})}),await e.addListener(`pushNotificationActionPerformed`,e=>{let t=yn(e.notification.data);t&&ke(`deeplink.openThread`,{threadId:t})})}catch(e){pn=!1,l(e,{context:`push_registration_listeners`,level:`warning`})}}}async function xn(e){if(gn()){mn=e,F&&F.assistantId!==e&&hn(vn(F.token,e));try{let{PushNotifications:e}=await u(async()=>{let{PushNotifications:e}=await import(`./esm-D_FdLNK8.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await bn(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){l(e,{context:`push_registration_register`,level:`warning`})}}}async function Sn(){for(mn=null;I.size>0;)await Promise.allSettled([...I]);let e=F??fn.load();if(F=null,fn.remove(),!(!e||!gn()))try{let t=await Ce({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&l(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){l(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function Cn(e){return e}function wn(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=Cn(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=Cn(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 Tn={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 En(){let{data:e,error:t,response:n}=await C.get({url:`/v1/user/me/`,throwOnError:!1});if(xe(n,t,`Failed to load profile.`),!n.ok||!e)throw new Se(n.status,S(t,n,`Failed to load profile.`));return e}var Dn=`Please choose a different handle.`;async function On(e){let{data:t,error:n,response:r}=await C.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:S(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}=wn(n,`username`,Tn.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=wn(n,`username`,Dn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:S(n,r,`Failed to save profile.`)}}async function kn(){let{data:e,error:t,response:n}=await C.get({url:`/v1/user/consent/`,throwOnError:!1});if(xe(n,t,`Failed to load consent.`),!n.ok||!e)throw new Se(n.status,S(t,n,`Failed to load consent.`));return e}async function L(e){await C.put({url:`/v1/user/consent/`,body:e,throwOnError:!0})}async function An(e,t){let{data:n,error:r,response:i}=await C.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(xe(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new Se(i.status,i.status===429?`Too many checks — try again in a moment.`:S(r,i,`Failed to check handle availability.`));return n}function R(e){i(`diagnosticsReporting`,e)}function jn(e,t){let n=Mn(e);return n!==null&&t(n),R(n??a(`shareDiagnostics`,!0)),n}function Mn(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var Nn=s(`shareAnalytics`),Pn=s(`shareDiagnostics`),Fn=f()(t=>({shareAnalytics:r(Nn,!0),shareDiagnostics:r(Pn,!0),tosAccepted:!1,privacyConsent:!1,analyticsConsentCurrent:!1,diagnosticsConsentCurrent:!1,consentHydrated:!1,setShareAnalytics:n=>{t({shareAnalytics:n}),e(Nn,n)},setShareDiagnostics:n=>{t({shareDiagnostics:n}),e(Pn,n)},setTosAccepted:e=>{t({tosAccepted:e})},setPrivacyConsent:e=>{t({privacyConsent:e})},setAnalyticsConsentCurrent:e=>{t({analyticsConsentCurrent:e})},setDiagnosticsConsentCurrent:e=>{t({diagnosticsConsentCurrent:e})},setConsentHydrated:e=>{t({consentHydrated:e})}})),z=p(Fn),In=new Map([[Nn,`shareAnalytics`],[Pn,`shareDiagnostics`]]),Ln={shareAnalytics:!0,shareDiagnostics:!0};for(let[e,n]of In)t(e,()=>{let t=r(e,Ln[n]??!1);Fn.setState({[n]:t})});var B=`2026-06-08`,V=`2026-06-22`,H=`2026-06-18`,U=`2026-06-18`,Rn=`2026-06-08`,zn={tos:B,privacy:V,share_analytics:H,share_diagnostics:U};function W(e,t){return`device:consent:${e}:v${zn[e]}:${t}`}function Bn(e){return`device:consent:ai:v${Rn}:${e}`}function Vn(e){if(typeof window>`u`||!e)return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1};try{let t=r(W(`share_analytics`,e),!1),i=r(W(`share_diagnostics`,e),!1),a=r(W(`tos`,e),!1),o=r(W(`privacy`,e),!1);if(r(Bn(e),!1)&&n(Bn(e)),a||o)return{tos:a,privacy:o,analyticsCurrent:t,diagnosticsCurrent:i};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(Hn(e,s,!1),{tos:s,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}):{tos:!1,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}}catch{return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1}}}function Hn(t,n,r){if(!(typeof window>`u`||!t))try{e(W(`tos`,t),n),e(W(`privacy`,t),r)}catch{}}function G(t,n){if(!(typeof window>`u`||!t))try{n.analyticsCurrent!==void 0&&e(W(`share_analytics`,t),n.analyticsCurrent),n.diagnosticsCurrent!==void 0&&e(W(`share_diagnostics`,t),n.diagnosticsCurrent)}catch{}}function Un(e){if(n(`vellum:onboarding:tosAccepted`),n(`vellum:onboarding:aiDataConsent`),n(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!e))try{n(W(`tos`,e)),n(W(`privacy`,e)),n(Bn(e)),n(W(`share_analytics`,e)),n(W(`share_diagnostics`,e))}catch{}}function K(e,t){return e>=t}function Wn(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsCurrent:!1,diagnosticsCurrent:!1,analyticsVersionCurrent:!1,diagnosticsVersionCurrent:!1,hasServerRecord:!1};let t=K(e.share_analytics_accepted_version,H),n=K(e.share_diagnostics_accepted_version,U),r=!!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,i=e.share_analytics===!0&&!e.share_analytics_accepted_version,a=e.share_diagnostics===!0&&!e.share_diagnostics_accepted_version;return{tos:K(e.tos_accepted_version,B),privacy:K(e.privacy_policy_accepted_version,`2026-06-22`)&&K(e.ai_data_sharing_accepted_version,`2026-06-22`),shareAnalytics:i?null:e.share_analytics,shareDiagnostics:a?null:e.share_diagnostics,analyticsCurrent:e.share_analytics===null||i||t,diagnosticsCurrent:e.share_diagnostics===null||a||n,analyticsVersionCurrent:t,diagnosticsVersionCurrent:n,hasServerRecord:r}}function Gn(e){let t=z.getState();t.setTosAccepted(e.tos),t.setPrivacyConsent(e.privacy),e.shareAnalytics!==null&&t.setShareAnalytics(e.shareAnalytics),e.shareDiagnostics!==null&&(t.setShareDiagnostics(e.shareDiagnostics),R(e.shareDiagnostics)),t.setAnalyticsConsentCurrent(!0),t.setDiagnosticsConsentCurrent(!0),t.setConsentHydrated(!0),Hn(e.userId,e.tos,e.privacy),G(e.userId,{...e.shareAnalytics===null?{}:{analyticsCurrent:!0},...e.shareDiagnostics===null?{}:{diagnosticsCurrent:!0}}),e.hasPlatformSession&&L({tos_accepted_version:e.tos?B:``,privacy_policy_accepted_version:e.privacy?V:``,ai_data_sharing_accepted_version:e.privacy?V:``,...e.shareAnalytics===null?{}:{share_analytics:e.shareAnalytics,share_analytics_accepted_version:H},...e.shareDiagnostics===null?{}:{share_diagnostics:e.shareDiagnostics,share_diagnostics_accepted_version:U}}).catch(()=>{})}function Kn(e,t,n){let r=z.getState(),{userId:a,hasPlatformSession:o}=n;e===`share_analytics`?(r.setShareAnalytics(t),i(`shareAnalytics`,t),o&&(r.setAnalyticsConsentCurrent(!0),G(a,{analyticsCurrent:!0}))):(r.setShareDiagnostics(t),i(`shareDiagnostics`,t),R(t),o&&(r.setDiagnosticsConsentCurrent(!0),G(a,{diagnosticsCurrent:!0}))),o&&L({[e]:t,[`${e}_accepted_version`]:zn[e]}).catch(()=>{})}var qn=`vellum:`,Jn=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],Yn=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 Xn(e){return e.startsWith(qn)?!0:Yn.has(e)?!1:Jn.some(t=>e.startsWith(t))}function Zn(){try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&Xn(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function Qn(e){return e?.id??e?.email??e?.username??null}function q(e){return e?{kind:`platform`,id:Qn(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var $n=null,J=null,er=!1,tr={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},Y=e=>(Tt(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),X=()=>({sessionStatus:`authenticated`,user:tr}),Z=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),nr=e=>e===null||!e.ok&&!vt(e);async function rr(e){if(!je())return!1;let t=Et();return t?(await Q(t.id),e({...Y(t),platformSessionRestoredOffline:!0}),!0):!1}function ir(e){(!e||$n&&$n!==e)&&Pt(),$n=e}function ar(){J?.postMessage(`auth-changed`)}function or(e){return{...e.tos?{tos_accepted_version:B}:{},...e.privacy?{privacy_policy_accepted_version:V,ai_data_sharing_accepted_version:V}:{},...e.analytics?{share_analytics_accepted_version:H,...e.shareValues?{share_analytics:e.shareValues.analytics}:{}}:{},...e.diagnostics?{share_diagnostics_accepted_version:U,...e.shareValues?{share_diagnostics:e.shareValues.diagnostics}:{}}:{}}}async function Q(e){if(e)try{let t=Wn(await kn()),n=z.getState();t.hasServerRecord&&t.shareAnalytics!==null&&n.setShareAnalytics(t.shareAnalytics),jn({shareDiagnostics:t.shareDiagnostics,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let r=t.tos,i=t.privacy,a=t.analyticsCurrent,o=t.diagnosticsCurrent,s=t.shareAnalytics!==null&&t.analyticsVersionCurrent,c=t.shareDiagnostics!==null&&t.diagnosticsVersionCurrent;if(!t.hasServerRecord){let t=Vn(e);a=!0,s=t.analyticsCurrent,o=!0,c=t.diagnosticsCurrent,t.tos&&t.privacy&&(r=!0,i=!0,L(or({tos:!0,privacy:!0,analytics:s,diagnostics:c,shareValues:{analytics:n.shareAnalytics,diagnostics:n.shareDiagnostics}})).catch(()=>{}))}else if(!r||!i||!a||!o){let t=Vn(e),n=!r&&t.tos,l=!i&&t.privacy,u=!a&&t.analyticsCurrent,d=!o&&t.diagnosticsCurrent;n&&(r=!0),l&&(i=!0),u&&(a=!0,s=!0),d&&(o=!0,c=!0),(n||l||u||d)&&L(or({tos:n,privacy:l,analytics:u,diagnostics:d})).catch(()=>{})}n.setTosAccepted(r),n.setPrivacyConsent(i),n.setAnalyticsConsentCurrent(a),n.setDiagnosticsConsentCurrent(o),Hn(e,r,i),G(e,{...s?{analyticsCurrent:!0}:{},...c?{diagnosticsCurrent:!0}:{}}),ir(e),n.setConsentHydrated(!0);return}catch{}let t=Vn(e),n=z.getState();e&&o(`diagnosticsReporting`,``)===``&&R(!1),n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(!0),n.setDiagnosticsConsentCurrent(!0),ir(e),n.setConsentHydrated(!0)}var sr=0;Promise.resolve();function cr(e,t={}){let n=++sr,r=()=>n!==sr;T().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&&Tt(i),v()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await j.getState().fetchOrganizations();let e=await w();t()&&e.ok&&await ve(e.data,j.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}),Kt()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function lr(e,t){!v()||y()||he().length>0?cr(e,t):e({platformSession:`absent`})}async function ur(){try{if(await Ve())return!0}catch{}return ie()!==null}var $=p(f()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(h()){await ur()?e({...X(),platformSession:`absent`}):e(Z());return}if(y()){try{await _e(),e(X())}catch{e({sessionStatus:`unauthenticated`,user:null})}lr(e);return}if(v()&&!y()){if(he().length>0){let t=null;try{if(t=await T(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await j.getState().fetchOrganizations();let e=await w();e.ok&&await ve(e.data,j.getState().currentOrganizationId??void 0)}catch{}e(Y(n));return}}catch{}if(nr(t)){if(await rr(e))return}else Dt();e(Z());return}e(X()),er?e({platformSession:`absent`}):cr(e,{setUserOnSuccess:!0}),er=!1;return}let t=null;try{if(t=await T(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await j.getState().fetchOrganizations();let e=await w();e.ok?x.getState().setFromApi(e.data):x.getState().markHydrated()}catch{x.getState().markHydrated()}e(Y(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(nr(t)&&await rr(e))){if(Le()&&Pe())try{let t=await Ae();if(t){Fe(t),await Ne();let n=await T();if(n.ok&&n.data.user){let t=q(n.data.user);await Q(t?.id??null);try{await j.getState().fetchOrganizations();let e=await w();e.ok?x.getState().setFromApi(e.data):x.getState().markHydrated()}catch{x.getState().markHydrated()}e(Y(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),nr(t)||Dt(),e(Z())}},connectLocalAssistant:async n=>{await ye(pe().find(e=>e.assistantId===n)),await A(n),e(X()),await k.checkAssistant(),gt(t().platformSession,t().platformSessionRestoredOffline)&&Kt(n),lr(e)},connectPlatformAssistant:async t=>{await A(t);let n=await T();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=q(n.data.user);await Q(r?.id??null),await j.getState().fetchOrganizations(),e(Y(r))},refreshSession:async()=>{if(h())return await ur()?(e({...X(),platformSession:`absent`}),!0):(e(Z()),!1);if(m()){try{await ue(fe()),e({sessionStatus:`authenticated`})}catch{return e(Z()),!1}return lr(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await T(),n.ok&&n.data.user){let t=q(n.data.user);if(await Q(t?.id??null),v())try{await j.getState().fetchOrganizations();let e=await w();e.ok&&await ve(e.data,j.getState().currentOrganizationId??void 0)}catch{}return e(Y(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(nr(n))return D(t().sessionStatus);if(y()){let n=D(t().sessionStatus);return n&&(Dt(),e({...X(),platformSession:`absent`})),n}return Dt(),await Q(null),e(Z()),!1},logout:async()=>{if(m()){k.resetForLogout(),await A(null),me(),Pt(),Zn(),e(Z()),ar();return}er=!0,await Sn();try{await ze()}finally{b()&&await window.vellum?.auth?.signOut?.(),v()&&!b()&&await te(),Ie(),Pt(),Zn(),k.resetForLogout(),await A(null),e(Z()),ar()}}}))),dr=()=>D($.use.sessionStatus()),fr=()=>!ht($.use.sessionStatus()),pr=()=>O($.use.platformSession()),mr=()=>gt($.use.platformSession(),$.use.platformSessionRestoredOffline());function hr(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=Oe(`app.resume`,()=>{Me()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(J=new BroadcastChannel(`auth`),J.onmessage=()=>{Zn(),window.location.reload()},t.push(()=>{J?.close(),J=null})),()=>t.forEach(e=>e())}export{k as A,Ze as B,Gt as C,j as D,Ft as E,mt as F,Ke as H,dt as I,$e as L,D as M,gt as N,Ct as O,ht as P,et as R,Kt as S,M as T,E as U,qe as V,kn as _,dr as a,wn as b,B as c,Gn as d,Kn as f,An as g,Tn as h,pr as i,O as j,A as k,Un as l,jn as m,$ as n,fr as o,z as p,mr as r,V as s,hr as t,Wn as u,En as v,zt as w,xn as x,On as y,Xe as z};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-BVzHqFEK.js","assets/preload-helper-BewR0kVT.js","assets/dist-RkT480s0.js","assets/esm-wMYgN14J.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,c as t,i as n,t as r}from"./local-settings-lVNyIOJ_.js";import{a as i,n as a,r as o,t as s}from"./device-settings-BBwtGKJb.js";import{o as c,t as l}from"./capture-error-Dhiismgm.js";import{t as u}from"./preload-helper-BewR0kVT.js";import{t as d}from"./useQuery-B45lW1Kk.js";import{n as f,t as p}from"./create-selectors-8NePGNlX.js";import{C as ee,E as te,O as ne,T as re,at as ie,c as ae,ct as m,et as oe,f as se,g as h,h as ce,i as le,it as ue,l as g,n as de,nt as _,ot as fe,p as v,r as pe,rt as me,s as he,st as y,tt as ge,v as _e,w as ve,y as ye}from"./local-mode-Bskd5bsT.js";import{t as b}from"./is-electron-y5bNUVyG.js";import{n as x,t as be}from"./resolved-assistants-store-DAzPZ1eV.js";import{n as xe,r as S,t as Se}from"./api-errors-CrWDzVca.js";import{t as C}from"./client.gen-DVfIRXUZ.js";import{N as Ce,P as we,Tt as Te}from"./sdk.gen-9Cdt87h5.js";import{a as Ee,c as w,r as De}from"./api-Dfrm6N2I.js";import{n as Oe,t as ke}from"./event-bus-BNx4a0Ds.js";import{S as T,a as Ae,b as je,d as Me,h as Ne,i as Pe,l as Fe,t as Ie,u as Le,v as Re,w as ze,y as Be}from"./native-biometric-B2cBAQ1U.js";import{o as Ve}from"./remote-gateway-session-CBKZhJak.js";import{t as He}from"./dist-RkT480s0.js";import{r as Ue}from"./typed-storage-BRvgA7pX.js";var E=p(f(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),We=new Set;function Ge(e){return We.add(e),()=>{We.delete(e)}}function Ke(){for(let e of We)try{e()}catch{}}var qe=new Set([502,503,504]),Je=`Connection interrupted. Reconnecting…`;function Ye(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function Xe(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`}:Ye(e.error)?{kind:`error`,transient:!0,message:Je}:{kind:`error`,message:S(e.error,void 0,`Failed to check assistant status.`)}}function Ze(e){return e===void 0||e>=500}var Qe=`platform_hosted_disabled`,$e=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function et(e,t){return e===503?t?.code===Qe:!1}var tt=2e3,nt=3e4;function rt(e){return Math.min(tt*2**e,nt)}var it=3e5;function at(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var ot=[`assistant`,`current`],st=3e3,ct=new Set([`initializing`,`cleaning_up`]);function lt(e){if(!e)return!1;let t=Xe(e);return ct.has(t.kind)?st:!1}function ut(e){return e?[...ot,e]:ot}function dt(e){let t=e.selectedPlatformAssistantId??null;return d({queryKey:ut(t),queryFn:()=>De(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>lt(e.state.data),refetchOnWindowFocus:!1})}var ft=new Set([`healthy`,`ok`]);function pt(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t===`MIGRATING`?`migrating`:t!==void 0&&!ft.has(t)?`unhealthy`:`healthy`}function mt(){let e=E.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var D=e=>e===`authenticated`,ht=e=>e!==`initializing`,O=e=>e===`present`,gt=(e,t)=>e===`present`&&!t,_t=new Set([401,403,410]),vt=e=>!e.ok&&e.status!==void 0&&_t.has(e.status),yt=4e3,bt=6e4,xt=5e3;function St(){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(){Ge(()=>this.onUnreachable()),Oe(`app.online`,()=>this.onNetworkOnline()),x.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!m()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){x.getState().activeAssistantId!==null&&x.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(m()){this.applyGatewayAuthShortCircuit();return}if(!D(this.inputs.sessionStatus)){this.resetForLogout();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(m()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:ut(n),queryFn:()=>De(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(x.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:ot,queryFn:()=>De(),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:Je})}}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=rt(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:it}}),this.transition(at())},it)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;_(null),this.setOperationalStatusAssistantId(e.data.id);let r=x.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=x.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=le();if(h())e=St();else if(n){let r=g();e=`${window.location.origin}${n}`,t=r?.assistantId??t}_({url:e,token:ie()}),this.setOperationalStatusAssistantId(null),x.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=Xe(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=this.state.kind===`self_hosted`||this.state.kind===`active`&&this.state.isLocal,r=n?g()?.assistantId??e:e,i=!h()&&n?await ne(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=pt(await Ee(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!h()&&(i=await ne(r).catch(()=>null)),a===`unreachable`&&i?.ok)switch(i.state){case`healthy`:a=`healthy`;break;case`sleeping`:case`starting`:case`upgrading`:case`unhealthy`:case`crashed`:a=i.state;break;case`unknown`:break}if(t!==this.generation||x.getState().activeAssistantId!==e)return;if(this.state.kind===`self_hosted`){this.state.health!==a&&this.transition({...this.state,health:a});return}if(this.state.kind!==`active`)return;let o=a===`healthy`||a===`unhealthy`;if(this.state.reachable===o&&this.state.health===a)return;this.transition({...this.state,reachable:o,health:a})}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>bt){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>bt){n();return}this.probeTimer=setTimeout(()=>void r(),yt)};this.probeTimer=setTimeout(()=>void r(),yt)}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(),xt)))};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=x.getState().activeAssistantId;if(e){if(this.transition({...this.state,reachable:!1}),this.healthHeartbeatId===e){this.probeReachability(e);return}this.startProbeLoop(e)}}setLocalAssistantUpgradeInProgress(e,t){if(x.getState().activeAssistantId===e){if(!t){this.probeReachability(e);return}if(this.state.kind===`self_hosted`){this.transition({...this.state,health:`upgrading`});return}this.state.kind===`active`&&this.state.isLocal&&this.transition({...this.state,reachable:!1,health:`upgrading`})}}__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}),x.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){E.getState().operationalStatusAssistantId!==e&&E.setState({operationalStatusAssistantId:e})}};function Ct(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=x.getState(),i=be(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=de()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function A(e){x.getState().setSelectedAssistant(e),e!==null&&await ee(e)}var wt=`vellum:auth:userSnapshot`;function Tt(e){if(e)try{localStorage.setItem(wt,JSON.stringify(e))}catch{}}function Et(){try{let e=localStorage.getItem(wt);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{kind:`platform`,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 Dt(){try{localStorage.removeItem(wt)}catch{}}var Ot=`vellum_active_organization_id`;function kt(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function At(){let e=kt();if(!e)return null;try{return e.getItem(Ot)}catch{return null}}function jt(e){let t=kt();if(t)try{t.setItem(Ot,e)}catch{}}function Mt(){let e=kt();if(e)try{e.removeItem(Ot)}catch{}}function Nt(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var j=p(f()((e,t)=>({organizations:[],currentOrganizationId:null,status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await Te()).data?.results??[],r=Nt(n,t().currentOrganizationId??At());r&&jt(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)&&(jt(n),e({currentOrganizationId:n,status:`ready`}))},clearOrganization:()=>{Mt(),e({organizations:[],currentOrganizationId:null,status:`idle`,error:null})}})));function M(){return j.getState().currentOrganizationId??At()}function Pt(){j.getState().clearOrganization()}function Ft(){let e=0,t=j.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)&&j.getState().fetchOrganizations()}),r=()=>{if(!O($.getState().platformSession))return;let{status:t}=j.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&j.getState().fetchOrganizations()},i=Oe(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function It(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:oe();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??M();i&&(n[`Vellum-Organization-Id`]=i);let a=je();return a&&(n[`X-Session-Token`]=a),n}async function Lt(e,t={}){let n=It(e,t);if(n.Authorization||b())return n;await Re();let r=Be();return r&&(n[`X-CSRFToken`]=r),n}var Rt;function zt(){return b()?(Rt===void 0&&(Rt=window.__VELLUM_CONFIG__?.deviceId??null),Rt):null}var Bt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Vt=`X-Vellum-Electron-Renderer-Origin`,Ht=new Map,Ut=[2e3,5e3,15e3,3e4,6e4],Wt=new Set;async function Gt(e,t={}){if(!v()||h()||ce()||cn(e))return e;let n=qt(e);if(!n)return e;let r=Ht.get(n.assistantId);if(r)return r;let i=Jt(n,{allowGatewayRepair:t.allowGatewayRepair??!0});Ht.set(n.assistantId,i);try{return await i}catch(e){throw Ht.delete(n.assistantId),e}}function Kt(e,t={}){if(!v()||h()||ce())return;let n=e;if(!n){let e=g();if(!e||!se(e))return;n=e.assistantId}if(Wt.has(n))return;Wt.add(n);let r=n;(async()=>{try{for(let e=0;;e++)try{await Gt(r,{allowGatewayRepair:t.allowGatewayRepair??!1});return}catch(n){let r=Ut[e];if(r===void 0){(t.onError??(e=>{console.warn(`local assistant platform bootstrap failed`,e)}))(n);return}console.warn(`local assistant platform bootstrap attempt ${e+1} failed, retrying in ${r}ms`,n),await new Promise(e=>setTimeout(e,r))}}finally{Wt.delete(r)}})()}function qt(e){let t=de();if(t?.assistantId===e&&se(t))return t;let n=g();return n?.assistantId===e&&se(n)?n:null}async function Jt(e,t){let n=await Xt(e,t),r=await Zt(n,e.assistantId),i=r?.assistantId&&cn(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1){let t=r?.organizationId??e.platformOrganizationId??null;return t&&await Yt(e,{platformAssistantId:i,platformBaseUrl:r?.baseUrl??ae(),organizationId:t}),i}let a=await Qt(r?.organizationId??null,e);if(!a)throw Error(`Sign in to Vellum and select an organization to register this local assistant.`);let o=r?.clientInstallationId??zt()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await $t(e,a,o),c=N(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!cn(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=P(s.assistant_api_key);!u&&r?.hasAssistantApiKey!==!0&&(u=await en(e,a,o));let d=r?.baseUrl??ae();return await nn(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:d,organizationId:a,webhookSecret:P(s.webhook_secret)}),await Yt(e,{platformAssistantId:l,platformBaseUrl:d,organizationId:a}),l}async function Yt(e,t){await re({...e,platformAssistantId:t.platformAssistantId,platformBaseUrl:t.platformBaseUrl,platformOrganizationId:t.organizationId}).catch(e=>{console.warn(`local assistant platform lockfile update failed`,e)})}async function Xt(e,t){let n=ge(),r=oe();if(t.allowGatewayRepair&&(!n||!r)&&(await ye(e),n=ge(),r=oe()),!n||!r){let t=le(e);t&&(n=`${window.location.origin}${t}`)}if(!n||!r)throw Error(`Unable to reach the local assistant for platform identity setup.`);return{gatewayUrl:n,actorToken:r}}async function Zt(e,t){let n=sn(e.gatewayUrl,`/v1/assistants/${encodeURIComponent(t)}/platform/status`),r=await fetch(n,{headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`},credentials:`omit`}).catch(()=>null);if(!r?.ok)return null;let i=await r.json().catch(()=>null);return{assistantId:N(i?.assistantId,i?.assistant_id),baseUrl:N(i?.baseUrl,i?.base_url),organizationId:N(i?.organizationId,i?.organization_id),hasAssistantApiKey:ln(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:N(i?.clientInstallationId,i?.client_installation_id)}}async function Qt(e,t){return(e??t.platformOrganizationId??M()??t.organizationId??null)||(await j.getState().fetchOrganizations().catch(()=>{}),M()??t.platformOrganizationId??t.organizationId??null)}async function $t(e,t,n){return await tn(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function en(e,t,n){return P((await tn(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function tn(e,t,n,r){let i=new Headers({...await Lt({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=je();if(b()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(Vt,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:b()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:b()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${on(e)}`)});if(!o.ok){let e=await an(o);throw Error(`Unable to register the local assistant with the platform (HTTP ${o.status})${e?`: ${e}`:`.`}`)}try{return await o.json()}catch(e){throw Error(`Unable to read the platform registration response: ${on(e)}`)}}async function nn(e,t){let n=[[`vellum:platform_assistant_id`,t.platformAssistantId],[`vellum:platform_base_url`,t.platformBaseUrl],[`vellum:platform_organization_id`,t.organizationId],[`vellum:webhook_secret`,t.webhookSecret]];await Promise.all(n.filter(e=>!!e[1]).map(([t,n])=>rn(e,t,n))),t.assistantApiKey&&await rn(e,`vellum:assistant_api_key`,t.assistantApiKey)}async function rn(e,t,n){let r=await fetch(sn(e.gatewayUrl,`/v1/secrets`),{method:`POST`,headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`,"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify({type:`credential`,name:t,value:n})}).catch(e=>{throw Error(`Unable to reach the local assistant while storing ${t}: ${on(e)}`)});if(!r.ok){let e=await an(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function an(e){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.json().catch(()=>null),n=t&&typeof t==`object`&&`detail`in t?P(t.detail):null,r=t&&typeof t==`object`&&`code`in t?P(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function on(e){return e instanceof Error?e.message:String(e)}function sn(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function cn(e){return Bt.test(e)}function N(...e){for(let t of e){let e=P(t);if(e)return e}return null}function P(e){return typeof e==`string`&&e.trim()?e.trim():null}function ln(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var un=`.dev`;function dn(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.bundleId==`string`&&typeof t.assistantId==`string`?{token:t.token,bundleId:t.bundleId,assistantId:t.assistantId}:null}var fn=Ue({key:`vellum:push_registration`,scope:`user`,parse:dn,serialize:JSON.stringify,fallback:null}),pn=!1,mn=null,F=null,I=new Set;function hn(e){I.add(e),e.finally(()=>{I.delete(e)})}function gn(){return Le()&&He.getPlatform()===`ios`}function _n(e){return e.endsWith(un)?`development`:`production`}async function vn(e,t){try{let{App:n}=await u(async()=>{let{App:e}=await import(`./esm-BVzHqFEK.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await we({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:_n(r)},throwOnError:!1});if(i.error){l(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}F={token:e,bundleId:r,assistantId:t},fn.save(F)}catch(e){l(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}function yn(e){if(typeof e!=`object`||!e)return;let t=e,n=t.deep_link;if(typeof n==`object`&&n){let e=n.conversationId;if(typeof e==`string`)return e}return typeof t.conversationId==`string`?t.conversationId:void 0}async function bn(){if(!pn){pn=!0;try{let{PushNotifications:e}=await u(async()=>{let{PushNotifications:e}=await import(`./esm-wMYgN14J.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=mn;t&&hn(vn(e.value,t))}),await e.addListener(`registrationError`,e=>{l(e,{context:`push_registration_apns`,level:`warning`})}),await e.addListener(`pushNotificationActionPerformed`,e=>{let t=yn(e.notification.data);t&&ke(`deeplink.openThread`,{threadId:t})})}catch(e){pn=!1,l(e,{context:`push_registration_listeners`,level:`warning`})}}}async function xn(e){if(gn()){mn=e,F&&F.assistantId!==e&&hn(vn(F.token,e));try{let{PushNotifications:e}=await u(async()=>{let{PushNotifications:e}=await import(`./esm-wMYgN14J.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await bn(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){l(e,{context:`push_registration_register`,level:`warning`})}}}async function Sn(){for(mn=null;I.size>0;)await Promise.allSettled([...I]);let e=F??fn.load();if(F=null,fn.remove(),!(!e||!gn()))try{let t=await Ce({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&l(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){l(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function Cn(e){return e}function wn(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=Cn(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=Cn(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 Tn={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 En(){let{data:e,error:t,response:n}=await C.get({url:`/v1/user/me/`,throwOnError:!1});if(xe(n,t,`Failed to load profile.`),!n.ok||!e)throw new Se(n.status,S(t,n,`Failed to load profile.`));return e}var Dn=`Please choose a different handle.`;async function On(e){let{data:t,error:n,response:r}=await C.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:S(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}=wn(n,`username`,Tn.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=wn(n,`username`,Dn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:S(n,r,`Failed to save profile.`)}}async function kn(){let{data:e,error:t,response:n}=await C.get({url:`/v1/user/consent/`,throwOnError:!1});if(xe(n,t,`Failed to load consent.`),!n.ok||!e)throw new Se(n.status,S(t,n,`Failed to load consent.`));return e}async function L(e){await C.put({url:`/v1/user/consent/`,body:e,throwOnError:!0})}async function An(e,t){let{data:n,error:r,response:i}=await C.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(xe(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new Se(i.status,i.status===429?`Too many checks — try again in a moment.`:S(r,i,`Failed to check handle availability.`));return n}function R(e){i(`diagnosticsReporting`,e)}function jn(e,t){let n=Mn(e);return n!==null&&t(n),R(n??a(`shareDiagnostics`,!0)),n}function Mn(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var Nn=s(`shareAnalytics`),Pn=s(`shareDiagnostics`),Fn=f()(t=>({shareAnalytics:r(Nn,!0),shareDiagnostics:r(Pn,!0),tosAccepted:!1,privacyConsent:!1,analyticsConsentCurrent:!1,diagnosticsConsentCurrent:!1,consentHydrated:!1,setShareAnalytics:n=>{t({shareAnalytics:n}),e(Nn,n)},setShareDiagnostics:n=>{t({shareDiagnostics:n}),e(Pn,n)},setTosAccepted:e=>{t({tosAccepted:e})},setPrivacyConsent:e=>{t({privacyConsent:e})},setAnalyticsConsentCurrent:e=>{t({analyticsConsentCurrent:e})},setDiagnosticsConsentCurrent:e=>{t({diagnosticsConsentCurrent:e})},setConsentHydrated:e=>{t({consentHydrated:e})}})),z=p(Fn),In=new Map([[Nn,`shareAnalytics`],[Pn,`shareDiagnostics`]]),Ln={shareAnalytics:!0,shareDiagnostics:!0};for(let[e,n]of In)t(e,()=>{let t=r(e,Ln[n]??!1);Fn.setState({[n]:t})});var B=`2026-06-08`,V=`2026-06-22`,H=`2026-06-18`,U=`2026-06-18`,Rn=`2026-06-08`,zn={tos:B,privacy:V,share_analytics:H,share_diagnostics:U};function W(e,t){return`device:consent:${e}:v${zn[e]}:${t}`}function Bn(e){return`device:consent:ai:v${Rn}:${e}`}function Vn(e){if(typeof window>`u`||!e)return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1};try{let t=r(W(`share_analytics`,e),!1),i=r(W(`share_diagnostics`,e),!1),a=r(W(`tos`,e),!1),o=r(W(`privacy`,e),!1);if(r(Bn(e),!1)&&n(Bn(e)),a||o)return{tos:a,privacy:o,analyticsCurrent:t,diagnosticsCurrent:i};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(Hn(e,s,!1),{tos:s,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}):{tos:!1,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}}catch{return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1}}}function Hn(t,n,r){if(!(typeof window>`u`||!t))try{e(W(`tos`,t),n),e(W(`privacy`,t),r)}catch{}}function G(t,n){if(!(typeof window>`u`||!t))try{n.analyticsCurrent!==void 0&&e(W(`share_analytics`,t),n.analyticsCurrent),n.diagnosticsCurrent!==void 0&&e(W(`share_diagnostics`,t),n.diagnosticsCurrent)}catch{}}function Un(e){if(n(`vellum:onboarding:tosAccepted`),n(`vellum:onboarding:aiDataConsent`),n(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!e))try{n(W(`tos`,e)),n(W(`privacy`,e)),n(Bn(e)),n(W(`share_analytics`,e)),n(W(`share_diagnostics`,e))}catch{}}function K(e,t){return e>=t}function Wn(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsCurrent:!1,diagnosticsCurrent:!1,analyticsVersionCurrent:!1,diagnosticsVersionCurrent:!1,hasServerRecord:!1};let t=K(e.share_analytics_accepted_version,H),n=K(e.share_diagnostics_accepted_version,U),r=!!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,i=e.share_analytics===!0&&!e.share_analytics_accepted_version,a=e.share_diagnostics===!0&&!e.share_diagnostics_accepted_version;return{tos:K(e.tos_accepted_version,B),privacy:K(e.privacy_policy_accepted_version,`2026-06-22`)&&K(e.ai_data_sharing_accepted_version,`2026-06-22`),shareAnalytics:i?null:e.share_analytics,shareDiagnostics:a?null:e.share_diagnostics,analyticsCurrent:e.share_analytics===null||i||t,diagnosticsCurrent:e.share_diagnostics===null||a||n,analyticsVersionCurrent:t,diagnosticsVersionCurrent:n,hasServerRecord:r}}function Gn(e){let t=z.getState();t.setTosAccepted(e.tos),t.setPrivacyConsent(e.privacy),e.shareAnalytics!==null&&t.setShareAnalytics(e.shareAnalytics),e.shareDiagnostics!==null&&(t.setShareDiagnostics(e.shareDiagnostics),R(e.shareDiagnostics)),t.setAnalyticsConsentCurrent(!0),t.setDiagnosticsConsentCurrent(!0),t.setConsentHydrated(!0),Hn(e.userId,e.tos,e.privacy),G(e.userId,{...e.shareAnalytics===null?{}:{analyticsCurrent:!0},...e.shareDiagnostics===null?{}:{diagnosticsCurrent:!0}}),e.hasPlatformSession&&L({tos_accepted_version:e.tos?B:``,privacy_policy_accepted_version:e.privacy?V:``,ai_data_sharing_accepted_version:e.privacy?V:``,...e.shareAnalytics===null?{}:{share_analytics:e.shareAnalytics,share_analytics_accepted_version:H},...e.shareDiagnostics===null?{}:{share_diagnostics:e.shareDiagnostics,share_diagnostics_accepted_version:U}}).catch(()=>{})}function Kn(e,t,n){let r=z.getState(),{userId:a,hasPlatformSession:o}=n;e===`share_analytics`?(r.setShareAnalytics(t),i(`shareAnalytics`,t),o&&(r.setAnalyticsConsentCurrent(!0),G(a,{analyticsCurrent:!0}))):(r.setShareDiagnostics(t),i(`shareDiagnostics`,t),R(t),o&&(r.setDiagnosticsConsentCurrent(!0),G(a,{diagnosticsCurrent:!0}))),o&&L({[e]:t,[`${e}_accepted_version`]:zn[e]}).catch(()=>{})}var qn=`vellum:`,Jn=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],Yn=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 Xn(e){return e.startsWith(qn)?!0:Yn.has(e)?!1:Jn.some(t=>e.startsWith(t))}function Zn(){try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&Xn(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function Qn(e){return e?.id??e?.email??e?.username??null}function q(e){return e?{kind:`platform`,id:Qn(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var $n=null,J=null,er=!1,tr={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},Y=e=>(Tt(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),X=()=>({sessionStatus:`authenticated`,user:tr}),Z=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),nr=e=>e===null||!e.ok&&!vt(e);async function rr(e){if(!je())return!1;let t=Et();return t?(await Q(t.id),e({...Y(t),platformSessionRestoredOffline:!0}),!0):!1}function ir(e){(!e||$n&&$n!==e)&&Pt(),$n=e}function ar(){J?.postMessage(`auth-changed`)}function or(e){return{...e.tos?{tos_accepted_version:B}:{},...e.privacy?{privacy_policy_accepted_version:V,ai_data_sharing_accepted_version:V}:{},...e.analytics?{share_analytics_accepted_version:H,...e.shareValues?{share_analytics:e.shareValues.analytics}:{}}:{},...e.diagnostics?{share_diagnostics_accepted_version:U,...e.shareValues?{share_diagnostics:e.shareValues.diagnostics}:{}}:{}}}async function Q(e){if(e)try{let t=Wn(await kn()),n=z.getState();t.hasServerRecord&&t.shareAnalytics!==null&&n.setShareAnalytics(t.shareAnalytics),jn({shareDiagnostics:t.shareDiagnostics,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let r=t.tos,i=t.privacy,a=t.analyticsCurrent,o=t.diagnosticsCurrent,s=t.shareAnalytics!==null&&t.analyticsVersionCurrent,c=t.shareDiagnostics!==null&&t.diagnosticsVersionCurrent;if(!t.hasServerRecord){let t=Vn(e);a=!0,s=t.analyticsCurrent,o=!0,c=t.diagnosticsCurrent,t.tos&&t.privacy&&(r=!0,i=!0,L(or({tos:!0,privacy:!0,analytics:s,diagnostics:c,shareValues:{analytics:n.shareAnalytics,diagnostics:n.shareDiagnostics}})).catch(()=>{}))}else if(!r||!i||!a||!o){let t=Vn(e),n=!r&&t.tos,l=!i&&t.privacy,u=!a&&t.analyticsCurrent,d=!o&&t.diagnosticsCurrent;n&&(r=!0),l&&(i=!0),u&&(a=!0,s=!0),d&&(o=!0,c=!0),(n||l||u||d)&&L(or({tos:n,privacy:l,analytics:u,diagnostics:d})).catch(()=>{})}n.setTosAccepted(r),n.setPrivacyConsent(i),n.setAnalyticsConsentCurrent(a),n.setDiagnosticsConsentCurrent(o),Hn(e,r,i),G(e,{...s?{analyticsCurrent:!0}:{},...c?{diagnosticsCurrent:!0}:{}}),ir(e),n.setConsentHydrated(!0);return}catch{}let t=Vn(e),n=z.getState();e&&o(`diagnosticsReporting`,``)===``&&R(!1),n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(!0),n.setDiagnosticsConsentCurrent(!0),ir(e),n.setConsentHydrated(!0)}var sr=0;Promise.resolve();function cr(e,t={}){let n=++sr,r=()=>n!==sr;T().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&&Tt(i),v()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await j.getState().fetchOrganizations();let e=await w();t()&&e.ok&&await ve(e.data,j.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}),Kt()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function lr(e,t){!v()||y()||he().length>0?cr(e,t):e({platformSession:`absent`})}async function ur(){try{if(await Ve())return!0}catch{}return ie()!==null}var $=p(f()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(h()){await ur()?e({...X(),platformSession:`absent`}):e(Z());return}if(y()){try{await _e(),e(X())}catch{e({sessionStatus:`unauthenticated`,user:null})}lr(e);return}if(v()&&!y()){if(he().length>0){let t=null;try{if(t=await T(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await j.getState().fetchOrganizations();let e=await w();e.ok&&await ve(e.data,j.getState().currentOrganizationId??void 0)}catch{}e(Y(n));return}}catch{}if(nr(t)){if(await rr(e))return}else Dt();e(Z());return}e(X()),er?e({platformSession:`absent`}):cr(e,{setUserOnSuccess:!0}),er=!1;return}let t=null;try{if(t=await T(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await j.getState().fetchOrganizations();let e=await w();e.ok?x.getState().setFromApi(e.data):x.getState().markHydrated()}catch{x.getState().markHydrated()}e(Y(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(nr(t)&&await rr(e))){if(Le()&&Pe())try{let t=await Ae();if(t){Fe(t),await Ne();let n=await T();if(n.ok&&n.data.user){let t=q(n.data.user);await Q(t?.id??null);try{await j.getState().fetchOrganizations();let e=await w();e.ok?x.getState().setFromApi(e.data):x.getState().markHydrated()}catch{x.getState().markHydrated()}e(Y(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),nr(t)||Dt(),e(Z())}},connectLocalAssistant:async n=>{await ye(pe().find(e=>e.assistantId===n)),await A(n),e(X()),await k.checkAssistant(),gt(t().platformSession,t().platformSessionRestoredOffline)&&Kt(n),lr(e)},connectPlatformAssistant:async t=>{await A(t);let n=await T();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=q(n.data.user);await Q(r?.id??null),await j.getState().fetchOrganizations(),e(Y(r))},refreshSession:async()=>{if(h())return await ur()?(e({...X(),platformSession:`absent`}),!0):(e(Z()),!1);if(m()){try{await ue(fe()),e({sessionStatus:`authenticated`})}catch{return e(Z()),!1}return lr(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await T(),n.ok&&n.data.user){let t=q(n.data.user);if(await Q(t?.id??null),v())try{await j.getState().fetchOrganizations();let e=await w();e.ok&&await ve(e.data,j.getState().currentOrganizationId??void 0)}catch{}return e(Y(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(nr(n))return D(t().sessionStatus);if(y()){let n=D(t().sessionStatus);return n&&(Dt(),e({...X(),platformSession:`absent`})),n}return Dt(),await Q(null),e(Z()),!1},logout:async()=>{if(m()){k.resetForLogout(),await A(null),me(),Pt(),Zn(),e(Z()),ar();return}er=!0,await Sn();try{await ze()}finally{b()&&await window.vellum?.auth?.signOut?.(),v()&&!b()&&await te(),Ie(),Pt(),Zn(),k.resetForLogout(),await A(null),e(Z()),ar()}}}))),dr=()=>D($.use.sessionStatus()),fr=()=>!ht($.use.sessionStatus()),pr=()=>O($.use.platformSession()),mr=()=>gt($.use.platformSession(),$.use.platformSessionRestoredOffline());function hr(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=Oe(`app.resume`,()=>{Me()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(J=new BroadcastChannel(`auth`),J.onmessage=()=>{Zn(),window.location.reload()},t.push(()=>{J?.close(),J=null})),()=>t.forEach(e=>e())}export{k as A,Ze as B,Gt as C,j as D,Ft as E,mt as F,Ke as H,dt as I,$e as L,D as M,gt as N,Ct as O,ht as P,et as R,Kt as S,M as T,E as U,qe as V,kn as _,dr as a,wn as b,B as c,Gn as d,Kn as f,An as g,Tn as h,pr as i,O as j,A as k,Un as l,jn as m,$ as n,fr as o,z as p,mr as r,V as s,hr as t,Wn as u,En as v,zt as w,xn as x,On as y,Xe as z};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Dhiismgm.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-D5f7kt80.js";import"./src-DZbMXyC2.js";import{Bt as a,Lt as o,Rt as s,nt as c,rt as l,u,zt as d}from"./index-CkKSY1-Q.js";import{t as f}from"./status-badge-pill-B_ninpnM.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-C6bS4xqt.js";import{t as h}from"./detail-panel-stop-button-B89ORnF4.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:o(e),label:s(e)})}function y({entry:e,onClose:n}){let r=a(e.status),o=!r,s=o&&e.output!==void 0&&e.output!==``,f=o&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),c(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(u,{Glyph:l(e.toolName),title:d(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),s&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Dhiismgm.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-D5f7kt80.js";import"./src-DZbMXyC2.js";import{Bt as a,Lt as o,Rt as s,nt as c,rt as l,u,zt as d}from"./index-B4Qq7TL7.js";import{t as f}from"./status-badge-pill-B_ninpnM.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-DarSpKEx.js";import{t as h}from"./detail-panel-stop-button-H9sXvWGa.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:o(e),label:s(e)})}function y({entry:e,onClose:n}){let r=a(e.status),o=!r,s=o&&e.output!==void 0&&e.output!==``,f=o&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),c(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(u,{Glyph:l(e.toolName),title:d(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),s&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};