@vellumai/web 0.11.1-staging.2 → 0.11.1

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 (113) hide show
  1. package/dist/assets/{access-C97H-xHb.js → access-BJiXpwUJ.js} +1 -1
  2. package/dist/assets/{account-page-Cflmw8J6.js → account-page-DP2HVinz.js} +1 -1
  3. package/dist/assets/{acp-run-detail-panel-BZ36-1N5.js → acp-run-detail-panel-C_M19m8P.js} +1 -1
  4. package/dist/assets/{activity-steps-panel-KMiSlUt3.js → activity-steps-panel-BsmwWzP1.js} +1 -1
  5. package/dist/assets/{add-credits-modal-Daz6j8gm.js → add-credits-modal-3Rsd1ZeS.js} +1 -1
  6. package/dist/assets/{ai-page-DPVi-dhB.js → ai-page-B9mJkV_p.js} +1 -1
  7. package/dist/assets/{app-card-JHbWefmm.js → app-card-DgDV-yMd.js} +1 -1
  8. package/dist/assets/{assistant-status-panel-CLMAEQ-v.js → assistant-status-panel-Bt_19-BI.js} +1 -1
  9. package/dist/assets/{auth-store-w_EmIQP7.js → auth-store-BwKMFgpK.js} +1 -1
  10. package/dist/assets/{background-task-actions-yrapeY1n.js → background-task-actions-DX0pUvY9.js} +1 -1
  11. package/dist/assets/{background-task-detail-panel-BV9Y227f.js → background-task-detail-panel-DqXuwo9q.js} +1 -1
  12. package/dist/assets/{billing-page-CmkTn62f.js → billing-page-CED96NEp.js} +1 -1
  13. package/dist/assets/{bookmarks-page-B2JvSaKf.js → bookmarks-page-Bk04EUIg.js} +1 -1
  14. package/dist/assets/{browser-CpgSNbEp.js → browser-Bses4IN3.js} +1 -1
  15. package/dist/assets/{build-state-DDUJ0MId.js → build-state-DPMhQpLB.js} +1 -1
  16. package/dist/assets/{channels-page-route-DAp7F6ed.js → channels-page-route-BooWFQMp.js} +1 -1
  17. package/dist/assets/{chat-markdown-message-B3Qo04ug.js → chat-markdown-message-f4cLJfax.js} +1 -1
  18. package/dist/assets/{checkout-continuation-DRPQwh5V.js → checkout-continuation-CcuqWhhp.js} +1 -1
  19. package/dist/assets/{checkout-page-B8CJoCWQ.js → checkout-page-BateK-Nf.js} +1 -1
  20. package/dist/assets/{client-identity-BSG341dO.js → client-identity-bdtPpHZK.js} +1 -1
  21. package/dist/assets/{command-palette-DH_ybPTY.js → command-palette-B3TVIQUH.js} +1 -1
  22. package/dist/assets/{command-palette-window-page-KoC7mrpM.js → command-palette-window-page-Bp9WplfA.js} +1 -1
  23. package/dist/assets/{contacts-page-route-BJBOnSQK.js → contacts-page-route--hTzWT8X.js} +1 -1
  24. package/dist/assets/{conversation-navigation-tj2ntPAn.js → conversation-navigation-D63NJmBl.js} +1 -1
  25. package/dist/assets/{conversation-queries-str0jfqv.js → conversation-queries-3taor2DZ.js} +1 -1
  26. package/dist/assets/{credentials-page-DFm5A_Dj.js → credentials-page-CYBmOQhl.js} +1 -1
  27. package/dist/assets/{debug-page-6DjAgWtl.js → debug-page-CHuby9yt.js} +1 -1
  28. package/dist/assets/{developer-page-dHmIDclp.js → developer-page-CUJqTs2_.js} +1 -1
  29. package/dist/assets/{diagnostics-BE1IgjfV.js → diagnostics-CLHyv7Xw.js} +1 -1
  30. package/dist/assets/{doctor-handoff-store-ClS6J-b-.js → doctor-handoff-store-DWNbuW3P.js} +1 -1
  31. package/dist/assets/{document-viewer-page-DJFR9XhM.js → document-viewer-page-_jndOS7P.js} +1 -1
  32. package/dist/assets/{emails-page-Ro1_IIiv.js → emails-page-Bqr8Buvt.js} +1 -1
  33. package/dist/assets/{first-run-scope-CZm4WhC7.js → first-run-scope-7wWjJ4Tn.js} +1 -1
  34. package/dist/assets/{funnel-events-BAmjKdwH.js → funnel-events-RT_kdQHK.js} +1 -1
  35. package/dist/assets/{general-page-BH3Zl4tV.js → general-page-DoAKoumC.js} +1 -1
  36. package/dist/assets/{handle-logout-C_CDLqjS.js → handle-logout-BTgnSSUm.js} +1 -1
  37. package/dist/assets/{haptics-agodX1nl.js → haptics-rJpeBta-.js} +1 -1
  38. package/dist/assets/{hatching-screen-CziT_eEj.js → hatching-screen-Q59qvj8_.js} +1 -1
  39. package/dist/assets/{home-page-route-BSHvc0DH.js → home-page-route-TPR5p3LW.js} +1 -1
  40. package/dist/assets/{hosting-screen-D6gwvyR3.js → hosting-screen-DRrmkmoO.js} +1 -1
  41. package/dist/assets/{index-D-NVGcvg.js → index-Ch9eoFem.js} +2 -2
  42. package/dist/assets/{ingest-DiiwFQfV.js → ingest-BbV11WbG.js} +1 -1
  43. package/dist/assets/{inspect-page-D0xZPslr.js → inspect-page-D_9E5ham.js} +1 -1
  44. package/dist/assets/{integrations-page-DuKFioaA.js → integrations-page-CnjTLjpf.js} +1 -1
  45. package/dist/assets/{library-detail-page-BmD8ODsN.js → library-detail-page-CKWN2cc7.js} +1 -1
  46. package/dist/assets/{library-page-B1_J428q.js → library-page-CuNX2WgS.js} +1 -1
  47. package/dist/assets/{local-runtime-upgrade-1CLFIVes.js → local-runtime-upgrade-JwVgn034.js} +1 -1
  48. package/dist/assets/{login-flow-BnCQjNXm.js → login-flow-llpmkEjN.js} +1 -1
  49. package/dist/assets/login-page-SG4TPVDu.js +1 -0
  50. package/dist/assets/{logout-page-BguUo424.js → logout-page-CBGk_cSN.js} +1 -1
  51. package/dist/assets/{logs-layout-BiZ4JakR.js → logs-layout-B4EPBuaC.js} +1 -1
  52. package/dist/assets/{memory-page-route-DwmCqWRb.js → memory-page-route-C8nIc6Mb.js} +1 -1
  53. package/dist/assets/{memory-router-playground-page-Bl-5j5de.js → memory-router-playground-page-ftfbkFhf.js} +1 -1
  54. package/dist/assets/{messages-BsXTJIIe.js → messages-BzNSqJQx.js} +1 -1
  55. package/dist/assets/{mobile-sidebar-drawer-Cp72bTDC.js → mobile-sidebar-drawer-BnxfQaDB.js} +1 -1
  56. package/dist/assets/native-anchor-BiuEQHcy.js +1 -0
  57. package/dist/assets/{native-biometric-CTR2Zi2w.js → native-biometric-B96mgKGP.js} +1 -1
  58. package/dist/assets/{navigation-resolver-CIICT6n9.js → navigation-resolver-Lxhf-tbn.js} +1 -1
  59. package/dist/assets/{notifications-page-CD8OVGKw.js → notifications-page-BAYd0t-0.js} +1 -1
  60. package/dist/assets/{open-workspace-file-DYklNHQ0.js → open-workspace-file-DucrTmt3.js} +2 -2
  61. package/dist/assets/{pairing-page-_kskNw0h.js → pairing-page-BRPUYbzJ.js} +1 -1
  62. package/dist/assets/{plans-page-D924rN93.js → plans-page-BxebYucs.js} +1 -1
  63. package/dist/assets/{platform-detection-BY5uzLL8.js → platform-detection-a_IB3-0w.js} +1 -1
  64. package/dist/assets/{platform-login-notice-DIS8PWXu.js → platform-login-notice-D-yQLWUo.js} +1 -1
  65. package/dist/assets/{platform-loopback-page-BTr35x9U.js → platform-loopback-page-DESnWJYO.js} +1 -1
  66. package/dist/assets/{privacy-page-BGXaPgBR.js → privacy-page-sZhcJ3uB.js} +1 -1
  67. package/dist/assets/{privacy-screen-znr9P7PH.js → privacy-screen-D2EBZTX8.js} +1 -1
  68. package/dist/assets/{provider-callback-page-Bn1Tp_ej.js → provider-callback-page-BZlfsT4J.js} +1 -1
  69. package/dist/assets/{provider-signup-page-C5z8x-YS.js → provider-signup-page-D5mOXHww.js} +1 -1
  70. package/dist/assets/{research-onboarding-route-DpC0dKBR.js → research-onboarding-route-ZOwRvfGs.js} +1 -1
  71. package/dist/assets/{retire-confirm-dialog-BFbPH66U.js → retire-confirm-dialog-m6ORm5Pq.js} +1 -1
  72. package/dist/assets/{review-terms-screen-W08isuCB.js → review-terms-screen-zzdu4AQi.js} +1 -1
  73. package/dist/assets/{risk-FjW-m05l.js → risk-uPLh5W5z.js} +1 -1
  74. package/dist/assets/{routes-DOTByxnJ.js → routes-BP00Ewbf.js} +5 -5
  75. package/dist/assets/{runtime-upgrade-banner-4PNA3XVR.js → runtime-upgrade-banner-yZYtWxoJ.js} +1 -1
  76. package/dist/assets/{schedules-page-BSr0-mjB.js → schedules-page-BQSGUmn5.js} +1 -1
  77. package/dist/assets/{select-assistant-screen-DAkhS0wl.js → select-assistant-screen-B5N_TUcG.js} +1 -1
  78. package/dist/assets/{session-corner-action-CqofVz_i.js → session-corner-action-vhb51vd3.js} +1 -1
  79. package/dist/assets/{settings-layout-DcuaK8qu.js → settings-layout-BtT0532M.js} +1 -1
  80. package/dist/assets/{share-feedback-modal-Dy0GRvA9.js → share-feedback-modal-DO6_oaZg.js} +1 -1
  81. package/dist/assets/{sidebar-tree-DrZXY5Iz.js → sidebar-tree-D6fHs4GK.js} +1 -1
  82. package/dist/assets/signup-page-DqfStkXZ.js +1 -0
  83. package/dist/assets/{site-favicon-CA7jaNnH.js → site-favicon-Dh1OTgFr.js} +1 -1
  84. package/dist/assets/{skill-detail-page-BCPN6NmR.js → skill-detail-page-SvM2JKKY.js} +1 -1
  85. package/dist/assets/{subagent-detail-panel-jOUXcDnl.js → subagent-detail-panel-jp0r0ZFk.js} +1 -1
  86. package/dist/assets/{subagent-store-C8qemfgn.js → subagent-store-DyKwOIj_.js} +1 -1
  87. package/dist/assets/{system-events-page-DEQyyquu.js → system-events-page-Cg0uMSMs.js} +1 -1
  88. package/dist/assets/{tool-detail-panel-86ruMQAQ.js → tool-detail-panel-CXcjfDGo.js} +1 -1
  89. package/dist/assets/{transcript-message-body-shared-CT5pk4wz.js → transcript-message-body-shared-woOFNF_q.js} +1 -1
  90. package/dist/assets/{upgrade-cancel-page-DmStvNCn.js → upgrade-cancel-page-D8is9-gw.js} +1 -1
  91. package/dist/assets/{upgrade-success-page-jOEtujYa.js → upgrade-success-page-3W1VuHqB.js} +1 -1
  92. package/dist/assets/{use-checkout-dismiss-refresh-BZXXQef1.js → use-checkout-dismiss-refresh-BkIzNk6B.js} +1 -1
  93. package/dist/assets/{use-command-palette-sections-DWCppiPf.js → use-command-palette-sections-CAmbyguu.js} +1 -1
  94. package/dist/assets/{use-edge-swipe-sMxDzAcb.js → use-edge-swipe-Gst62FjL.js} +1 -1
  95. package/dist/assets/{use-edge-swipe-back-Dbz1hC9g.js → use-edge-swipe-back-D12vbvly.js} +1 -1
  96. package/dist/assets/{use-ios-app-nudge-DiqQWH5O.js → use-ios-app-nudge-CrBEIZ8w.js} +1 -1
  97. package/dist/assets/{use-is-org-ready-BbqlQFXw.js → use-is-org-ready-zouQ5CN4.js} +1 -1
  98. package/dist/assets/{use-onboarding-login-xZhWGmky.js → use-onboarding-login-X8pB53cV.js} +1 -1
  99. package/dist/assets/{use-platform-assistant-id-BnFEQQeS.js → use-platform-assistant-id-CIoqMsyh.js} +1 -1
  100. package/dist/assets/{use-platform-gate-D9hR3R0n.js → use-platform-gate-CqEOGZtI.js} +1 -1
  101. package/dist/assets/use-return-to-short-circuit-B295pgoV.js +1 -0
  102. package/dist/assets/{use-sticky-profiles-GTUzoFP4.js → use-sticky-profiles-bdq2XW7H.js} +1 -1
  103. package/dist/assets/{use-subagent-card-data-Cu_-lx6d.js → use-subagent-card-data-B8JTa5rQ.js} +1 -1
  104. package/dist/assets/{voice-list-BMMz4e4M.js → voice-list-CCLkiF-c.js} +1 -1
  105. package/dist/assets/{voice-page-4AS-Fm6W.js → voice-page-Bvgm-7L8.js} +1 -1
  106. package/dist/assets/{welcome-screen-B-88csxO.js → welcome-screen-Cga6YuF9.js} +1 -1
  107. package/dist/assets/{workspace-page-b8SfI_28.js → workspace-page-BFJO59Ch.js} +1 -1
  108. package/dist/index.html +43 -43
  109. package/package.json +1 -1
  110. package/dist/assets/login-page-BnF7_s7c.js +0 -1
  111. package/dist/assets/native-anchor-BpfRwc60.js +0 -1
  112. package/dist/assets/signup-page-B6mmAQJU.js +0 -1
  113. package/dist/assets/use-return-to-short-circuit-B1mhvgIq.js +0 -1
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-Cl2UNC_o.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-CFSiz2ry2.js","assets/esm-Chh8mHmh.js"])))=>i.map(i=>d[i]);
2
- import{a as e,c as t,i as n,t as r}from"./local-settings-C-dW2vkq.js";import{a as i,n as a,r as o}from"./device-settings-DXp9L4iB.js";import{o as s,t as c}from"./capture-error-FWzaVb8P.js";import{t as l}from"./preload-helper-Cv2QeVDK.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{n as d,t as ee}from"./create-selectors-B-P03-8K.js";import{A as te,D as ne,E as re,O as ie,T as ae,at as oe,c as f,ct as se,d as ce,dt as p,f as m,h,i as le,it as g,lt as ue,m as de,n as fe,nt as pe,ot as me,r as he,rt as ge,s as _e,st as ve,ut as _,v as ye,y as be}from"./local-mode-9zpgPNoq.js";import{t as v}from"./is-electron-7N7iyz1y.js";import{n as y,t as xe}from"./resolved-assistants-store-8HQDfxZh.js";import{n as Se,r as b,t as Ce}from"./api-errors-SZKDzMLE.js";import{t as we}from"./client.gen-DHOmbzD9.js";import{Bt as Te,D as Ee,E as De,F as Oe,I as ke,Vt as Ae,jt as je}from"./sdk.gen-DVW3wpbx.js";import{a as Me,c as Ne,r as Pe}from"./api-C8TlQNEU.js";import{n as Fe,t as Ie}from"./event-bus-CvZyJQ26.js";import{D as Le,N as Re,O as ze,a as Be,d as Ve,g as He,i as Ue,j as x,k as We,l as Ge,t as Ke,u as qe}from"./native-biometric-CTR2Zi2w.js";import{o as Je}from"./remote-gateway-session-CgxYHgOD.js";import{t as Ye}from"./dist-CFSiz2ry2.js";import{r as Xe}from"./typed-storage-C-R1po3l.js";import{t as S}from"./onboarding-store-OVV4wyh5.js";import{s as Ze,t as Qe}from"./use-assistant-avatar--4s_vvar.js";var C=ee(d(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),$e=new Set;function et(e){return $e.add(e),()=>{$e.delete(e)}}function tt(){for(let e of $e)try{e()}catch{}}var nt=new Set([502,503,504]),rt=`Connection interrupted. Reconnecting…`;function it(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function at(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`}:it(e.error)?{kind:`error`,transient:!0,message:rt}:{kind:`error`,message:b(e.error,void 0,`Failed to check assistant status.`)}}function ot(e){return e===void 0||e>=500}var st=`platform_hosted_disabled`,ct=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function lt(e,t){return e===503?t?.code===st:!1}var ut=2e3,dt=3e4;function ft(e){return Math.min(ut*2**e,dt)}var pt=3e5;function mt(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var ht=[`assistant`,`current`],gt=3e3,_t=new Set([`initializing`,`cleaning_up`]);function vt(e){if(!e)return!1;let t=at(e);return _t.has(t.kind)?gt:!1}function yt(e){return e?[...ht,e]:ht}function bt(e){let t=e.selectedPlatformAssistantId??null;return u({queryKey:yt(t),queryFn:()=>Pe(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>vt(e.state.data),refetchOnWindowFocus:!1})}var xt=new Set([`healthy`,`ok`]);function St(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t===`MIGRATING`?`migrating`:t!==void 0&&!xt.has(t)?`unhealthy`:`healthy`}function Ct(){let e=C.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var w=e=>e===`authenticated`,wt=e=>e!==`initializing`,T=e=>e===`present`,Tt=e=>e!==`unknown`,Et=(e,t)=>e===`present`&&!t,Dt=new Set([401,403,410]),Ot=e=>!e.ok&&e.status!==void 0&&Dt.has(e.status),kt=4e3,At=6e4,jt=5e3;function Mt(){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 E=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(){et(()=>this.onUnreachable()),Fe(`app.online`,()=>this.onNetworkOnline()),y.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!p()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){y.getState().activeAssistantId!==null&&y.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(p()){this.applyGatewayAuthShortCircuit();return}if(!w(this.inputs.sessionStatus)){this.resetForLogout();return}this.inputs.hasPlatformSession&&g(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(p()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:yt(n),queryFn:()=>Pe(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(y.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:ht,queryFn:()=>Pe(),staleTime:0}),t!==this.generation))return;await this.applyServerStateUpdate(r)}catch(e){if(console.error(`Error checking assistant status:`,e),c(e,{context:`check_assistant`}),t!==this.generation||this.degradeOnTransportFailure())return;this.transition({kind:`error`,transient:!0,message:rt})}}degradeOnTransportFailure(){return this.state.kind===`active`?(this.triggerReachabilityProbe(),!0):this.state.kind===`initializing`||this.state.kind===`cleaning_up`}retryAssistant(){this.ready&&this.checkAssistant()}markExpectingFirstMessage(){C.getState().expectingFirstMessage||C.setState({expectingFirstMessage:!0})}clearExpectingFirstMessage(){C.getState().expectingFirstMessage&&C.setState({expectingFirstMessage:!1})}transition(e){let t=this.state.kind;this.state=e,C.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=ft(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++,s(`Assistant stuck in initializing state`,{level:`warning`,extra:{timeoutMs:pt}}),this.transition(mt())},pt)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;g(null),this.setOperationalStatusAssistantId(e.data.id);let r=y.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),g({url:e.data.ingress_url,token:e.data.platform_actor_token});let t=y.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=Mt();else if(n){let r=f();e=`${window.location.origin}${n}`,t=r?.assistantId??t}g({url:e,token:se()}),this.setOperationalStatusAssistantId(null),y.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=at(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?f()?.assistantId??e:e,i=!h()&&n?await te(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=St(await Me(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!h()&&(i=await te(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||y.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>At){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>At){n();return}this.probeTimer=setTimeout(()=>void r(),kt)};this.probeTimer=setTimeout(()=>void r(),kt)}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(),jt)))};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=y.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(y.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,C.setState({expectingFirstMessage:!1,operationalStatusAssistantId:null}),this.inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null},C.setState({assistantState:this.state}),y.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){C.getState().operationalStatusAssistantId!==e&&C.setState({operationalStatusAssistantId:e})}};function Nt(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=y.getState(),i=xe(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=fe()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function D(e){y.getState().setSelectedAssistant(e),e!==null&&await ae(e)}var Pt=`vellum:auth:userSnapshot`;function Ft(e){if(e)try{localStorage.setItem(Pt,JSON.stringify(e))}catch{}}function It(){try{let e=localStorage.getItem(Pt);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 O(){try{localStorage.removeItem(Pt)}catch{}}var Lt=`vellum_active_organization_id`;function Rt(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function zt(){let e=Rt();if(!e)return null;try{return e.getItem(Lt)}catch{return null}}function Bt(e){let t=Rt();if(t)try{t.setItem(Lt,e)}catch{}}function Vt(){let e=Rt();if(e)try{e.removeItem(Lt)}catch{}}function Ht(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var k=ee(d()((e,t)=>({organizations:[],currentOrganizationId:null,persistedOrganizationId:zt(),status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await je()).data?.results??[],r=Ht(n,t().currentOrganizationId??t().persistedOrganizationId);r&&Bt(r),e({organizations:n,currentOrganizationId:r,persistedOrganizationId:r??t().persistedOrganizationId,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)&&(Bt(n),e({currentOrganizationId:n,persistedOrganizationId:n,status:`ready`}))},clearOrganization:()=>{Vt(),e({organizations:[],currentOrganizationId:null,persistedOrganizationId:null,status:`idle`,error:null})}})));function Ut(e){return e.currentOrganizationId??e.persistedOrganizationId}function A(){return Ut(k.getState())}function Wt(){return k(Ut)}function Gt(){k.getState().clearOrganization()}function Kt(){let e=0,t=k.subscribe(t=>{(t.status===`ready`||t.status===`error`)&&(e=Date.now())}),n=$.subscribe((e,t)=>{let n=T(e.platformSession),r=T(t.platformSession);n&&(!r||e.user?.id!==t.user?.id)&&k.getState().fetchOrganizations()}),r=()=>{if(!T($.getState().platformSession))return;let{status:t}=k.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&k.getState().fetchOrganizations()},i=Fe(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function qt(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:pe();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??A();i&&(n[`Vellum-Organization-Id`]=i);let a=We();return a&&(n[`X-Session-Token`]=a),n}async function Jt(e,t={}){let n=qt(e,t);if(n.Authorization||v())return n;await Le();let r=ze();return r&&(n[`X-CSRFToken`]=r),n}var Yt;function Xt(){return v()?(Yt===void 0&&(Yt=window.__VELLUM_CONFIG__?.deviceId??null),Yt):null}var Zt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Qt=`X-Vellum-Electron-Renderer-Origin`,$t=new Map,en=[2e3,5e3,15e3,3e4,6e4],tn=new Set;async function nn(e,t={}){if(!m()||h()||de()||yn(e))return e;let n=an(e);if(!n)return e;let r=$t.get(n.assistantId);if(r)return r;let i=on(n,{allowGatewayRepair:t.allowGatewayRepair??!0});$t.set(n.assistantId,i);try{return await i}catch(e){throw $t.delete(n.assistantId),e}}function rn(e,t={}){if(!m()||h()||de())return;let n=e;if(!n){let e=f();if(!e||!ce(e))return;n=e.assistantId}if(tn.has(n))return;tn.add(n);let r=n;(async()=>{try{for(let e=0;;e++)try{await nn(r,{allowGatewayRepair:t.allowGatewayRepair??!1});return}catch(n){let r=en[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{tn.delete(r)}})()}function an(e){let t=fe();if(t?.assistantId===e&&ce(t))return t;let n=f();return n?.assistantId===e&&ce(n)?n:null}async function on(e,t){let n=await cn(e,t),r=await ln(n,e.assistantId),i=r?.assistantId&&yn(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1){let t=r?.organizationId??e.platformOrganizationId??null;return t&&await sn(e,{platformAssistantId:i,platformBaseUrl:r?.baseUrl??oe(),organizationId:t}),i}let a=await un(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??Xt()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await dn(e,a,o),c=j(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!yn(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=M(s.assistant_api_key);!u&&r?.hasAssistantApiKey!==!0&&(u=await fn(e,a,o));let d=r?.baseUrl??oe();return await mn(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:d,organizationId:a,webhookSecret:M(s.webhook_secret)}),await sn(e,{platformAssistantId:l,platformBaseUrl:d,organizationId:a}),l}async function sn(e,t){await ne({...e,platformAssistantId:t.platformAssistantId,platformBaseUrl:t.platformBaseUrl,platformOrganizationId:t.organizationId}).catch(e=>{console.warn(`local assistant platform lockfile update failed`,e)})}async function cn(e,t){let n=ge(),r=pe();if(t.allowGatewayRepair&&(!n||!r)&&(await ye(e),n=ge(),r=pe()),!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 ln(e,t){let n=vn(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:j(i?.assistantId,i?.assistant_id),baseUrl:j(i?.baseUrl,i?.base_url),organizationId:j(i?.organizationId,i?.organization_id),hasAssistantApiKey:bn(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:j(i?.clientInstallationId,i?.client_installation_id)}}async function un(e,t){return(e??t.platformOrganizationId??A()??t.organizationId??null)||(await k.getState().fetchOrganizations().catch(()=>{}),A()??t.platformOrganizationId??t.organizationId??null)}async function dn(e,t,n){return await pn(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function fn(e,t,n){return M((await pn(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function pn(e,t,n,r){let i=new Headers({...await Jt({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=We();if(v()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(Qt,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:v()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:v()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${_n(e)}`)});if(!o.ok){let e=await gn(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: ${_n(e)}`)}}async function mn(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])=>hn(e,t,n))),t.assistantApiKey&&await hn(e,`vellum:assistant_api_key`,t.assistantApiKey)}async function hn(e,t,n){let r=await fetch(vn(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}: ${_n(e)}`)});if(!r.ok){let e=await gn(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function gn(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?M(t.detail):null,r=t&&typeof t==`object`&&`code`in t?M(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function _n(e){return e instanceof Error?e.message:String(e)}function vn(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function yn(e){return Zt.test(e)}function j(...e){for(let t of e){let e=M(t);if(e)return e}return null}function M(e){return typeof e==`string`&&e.trim()?e.trim():null}function bn(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var xn={idle:``,connecting:`Connecting…`,listening:`Listening…`,transcribing:`Transcribing…`,thinking:`Thinking…`,speaking:`Speaking…`,ending:`Ending…`,failed:``};function Sn(e,t){return t&&e===`connecting`?`Reconnecting…`:xn[e]}function Cn(e,t,n){return Sn(e===`speaking`&&!n?`thinking`:e,t)}function N(e){return e!==`idle`&&e!==`failed`}function wn(e){return e===`listening`||e===`transcribing`||e===`thinking`||e===`speaking`}function Tn(e,t){if(!N(e.state))return!1;let n=t??null;return n===e.conversationId||n===e.startedConversationId}var En={state:`idle`,assistantAudioActive:!1,reconnecting:!1,assistantId:null,conversationId:null,startedConversationId:null,controls:null,partialTranscript:``,finalTranscript:``,assistantTranscript:``,inputAmplitude:0,muted:!1,outputMuted:!1,handsFree:!1,roomMinimized:!1,entryOrigin:null,lastTurnLatency:null,outputAmplitudeProvider:null,playbackProgressProvider:null,error:null},P=ee(d()(e=>({...En,starter:null,setState:t=>e({state:t}),setAssistantAudioActive:t=>e({assistantAudioActive:t}),setReconnecting:t=>e({reconnecting:t}),setSessionContext:(t,n)=>e({assistantId:t,conversationId:n,startedConversationId:n,muted:!1,outputMuted:!1}),setConversationId:t=>e({conversationId:t}),setControls:t=>e({controls:t}),setStarter:t=>e({starter:t}),setPartialTranscript:t=>e({partialTranscript:t}),setFinalTranscript:t=>e({finalTranscript:t}),appendAssistantTranscript:t=>e(e=>({assistantTranscript:e.assistantTranscript+t})),clearAssistantTranscript:()=>e({assistantTranscript:``}),clearUserTranscripts:()=>e({partialTranscript:``,finalTranscript:``}),setInputAmplitude:t=>e({inputAmplitude:t}),setMuted:t=>e({muted:t}),setOutputMuted:t=>e({outputMuted:t}),setHandsFree:t=>e({handsFree:t}),setRoomMinimized:t=>e({roomMinimized:t}),setEntryOrigin:t=>e({entryOrigin:t}),setLastTurnLatency:t=>e({lastTurnLatency:t}),setOutputAmplitudeProvider:t=>e({outputAmplitudeProvider:t}),setPlaybackProgressProvider:t=>e({playbackProgressProvider:t}),fail:t=>e({state:`failed`,error:t}),reset:()=>e({...En})})));function Dn(e){let t=!1,n=!1,r=P.subscribe(()=>{t||(t=!0,queueMicrotask(()=>{t=!1,!n&&e(P.getState())}))});return()=>{n=!0,r()}}function On(){return P.getState().inputAmplitude}function kn(){return P.getState().outputAmplitudeProvider?.()??0}function An(){return P.getState().playbackProgressProvider?.()??null}function jn(){P.getState().controls?.stop()}function Mn(){let{state:e,setRoomMinimized:t}=P.getState();N(e)&&t(!0)}function Nn(){let{state:e,setRoomMinimized:t}=P.getState();N(e)&&t(!1)}function Pn(e){P.getState().controls?.setMuted(e)}function Fn(e){P.getState().controls?.setOutputMuted(e)}function In(e){P.getState().setEntryOrigin(e)}function Ln(){P.getState().reset()}function Rn(e){return P(t=>Tn(t,e))}var zn=`.dev`;function Bn(e){return e.endsWith(zn)?`development`:`production`}function Vn(){let e={},t=Object.keys(xn).filter(N);for(let n of t)e[n]=Cn(n,!1,!0);return e}function Hn(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.assistantId==`string`?{token:t.token,assistantId:t.assistantId}:null}var Un=Xe({key:`vellum:live_activity_registration`,scope:`user`,parse:Hn,serialize:JSON.stringify,fallback:null}),F=null,I=new Set;function Wn(e){I.add(e),e.finally(()=>{I.delete(e)})}async function Gn(e,t,n){let r=Kn(e,t,n);Wn(r),await r}async function Kn(e,t,n){try{let{App:r}=await l(async()=>{let{App:e}=await import(`./esm-Cl2UNC_o.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:i}=await r.getInfo(),a=await Ee({path:{assistant_id:t},body:{token:e,bundle_id:i,apns_environment:Bn(i),conversation_id:n,labels:Vn()},throwOnError:!1});if(a.error){c(a.error,{context:`live_activity_push_registration`,level:`warning`,bestEffort:!0});return}F={token:e,assistantId:t},Un.save(F)}catch(e){c(e,{context:`live_activity_push_registration`,level:`warning`,bestEffort:!0})}}async function qn(){I.size>0&&await Promise.allSettled([...I]);let e=F??Un.load();if(e!==null){F=null,Un.remove();try{await De({path:{assistant_id:e.assistantId,token:e.token},throwOnError:!1})}catch(e){c(e,{context:`live_activity_push_unregistration`,level:`warning`,bestEffort:!0})}}}var Jn=`.dev`;function Yn(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 Xn=Xe({key:`vellum:push_registration`,scope:`user`,parse:Yn,serialize:JSON.stringify,fallback:null}),Zn=!1,Qn=null,L=null,R=new Set;function $n(e){R.add(e),e.finally(()=>{R.delete(e)})}function er(){return qe()&&Ye.getPlatform()===`ios`}function tr(e){return e.endsWith(Jn)?`development`:`production`}async function nr(e,t){try{let{App:n}=await l(async()=>{let{App:e}=await import(`./esm-Cl2UNC_o.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await ke({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:tr(r)},throwOnError:!1});if(i.error){c(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}L={token:e,bundleId:r,assistantId:t},Xn.save(L)}catch(e){c(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}function rr(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 ir(){if(!Zn){Zn=!0;try{let{PushNotifications:e}=await l(async()=>{let{PushNotifications:e}=await import(`./esm-Chh8mHmh.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=Qn;t&&$n(nr(e.value,t))}),await e.addListener(`registrationError`,e=>{c(e,{context:`push_registration_apns`,level:`warning`})}),await e.addListener(`pushNotificationActionPerformed`,e=>{let t=rr(e.notification.data);t&&Ie(`deeplink.openThread`,{threadId:t})})}catch(e){Zn=!1,c(e,{context:`push_registration_listeners`,level:`warning`})}}}async function ar(e){if(er()){Qn=e,L&&L.assistantId!==e&&$n(nr(L.token,e));try{let{PushNotifications:e}=await l(async()=>{let{PushNotifications:e}=await import(`./esm-Chh8mHmh.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await ir(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){c(e,{context:`push_registration_register`,level:`warning`})}}}async function or(){for(Qn=null;R.size>0;)await Promise.allSettled([...R]);let e=L??Xn.load();if(L=null,Xn.remove(),!(!e||!er()))try{let t=await Oe({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&c(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){c(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function sr(e){return e}function cr(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=sr(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=sr(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 lr={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 ur(){let{data:e,error:t,response:n}=await we.get({url:`/v1/user/me/`,throwOnError:!1});if(Se(n,t,`Failed to load profile.`),!n.ok||!e)throw new Ce(n.status,b(t,n,`Failed to load profile.`));return e}var dr=`Please choose a different handle.`;async function fr(e){let{data:t,error:n,response:r}=await we.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:b(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}=cr(n,`username`,lr.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=cr(n,`username`,dr);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:b(n,r,`Failed to save profile.`)}}async function pr(){let{data:e,error:t,response:n}=await Te({throwOnError:!1});if(Se(n,t,`Failed to load consent.`),!n.ok||!e)throw new Ce(n.status,b(t,n,`Failed to load consent.`));return e}async function mr(e){await Ae({body:e,throwOnError:!0})}async function hr(e,t){let{data:n,error:r,response:i}=await we.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(Se(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new Ce(i.status,i.status===429?`Too many checks — try again in a moment.`:b(r,i,`Failed to check handle availability.`));return n}function gr(e){i(`diagnosticsReporting`,e)}function _r(e,t){let n=xr(e);return n!==null&&t(n),gr(vr(n,e)),n}function vr(e,t){return e??a(`shareDiagnostics`,!0)?t.hasServerRecord?t.diagnosticsEffective:!0:!1}function yr(e,t){_r({shareDiagnostics:e,diagnosticsEffective:e,hasServerRecord:!0},t)}function br(){o(`diagnosticsReporting`,``)===``&&gr(!1)}function xr(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var Sr=`2026-06-08`,Cr=`2026-06-22`,wr=`2026-06-18`,Tr=`2026-06-18`,Er=`2026-06-08`,z={tos:Sr,privacyPolicy:Cr,aiDataSharing:Cr,shareAnalytics:wr,shareDiagnostics:Tr};function Dr(e){return{tos:e?.tos||`2026-06-08`,privacyPolicy:e?.privacy_policy||`2026-06-22`,aiDataSharing:e?.ai_data_sharing||`2026-06-22`,shareAnalytics:e?.share_analytics||`2026-06-18`,shareDiagnostics:e?.share_diagnostics||`2026-06-18`}}function Or(){return{...z}}function B(e,t){return`device:consent:${e}:${t}`}function V(e){switch(e){case`tos`:return z.tos;case`privacy_policy`:return z.privacyPolicy;case`ai_data_sharing`:return z.aiDataSharing;case`share_diagnostics`:return z.shareDiagnostics}}var kr=/^\d{4}-\d{2}-\d{2}$/;function Ar(e,t){let r=n(B(e,t),``);return kr.test(r)?r:``}function H(e,t){return W(Ar(e,t),V(e))}function jr(e){return`device:consent:ai:v${Er}:${e}`}function U(n,i,a){let o=`device:consent:${n}:v`,s=`:${i}`,c=[],l=``;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);if(!t||!t.startsWith(o)||!t.endsWith(s))continue;let n=t.slice(o.length,t.length-s.length);kr.test(n)&&(c.push(t),r(t,!1)&&n>l&&(l=n))}if(l)for(let e of a)Ar(e,i)||t(B(e,i),l);for(let t of c)e(t)}function Mr(n){if(typeof window>`u`||!n)return{tos:!1,privacy:!1,diagnosticsCurrent:!1};try{U(`tos`,n,[`tos`]),U(`privacy`,n,[`privacy_policy`,`ai_data_sharing`]),U(`share_diagnostics`,n,[`share_diagnostics`]),U(`share_analytics`,n,[]),r(jr(n),!1)&&e(jr(n));let i=H(`tos`,n),a=H(`privacy_policy`,n)&&H(`ai_data_sharing`,n),o=H(`share_diagnostics`,n);if(i||a)return{tos:i,privacy:a,diagnosticsCurrent:o};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(s&&t(B(`tos`,n),Sr),{tos:s&&H(`tos`,n),privacy:!1,diagnosticsCurrent:o}):{tos:!1,privacy:!1,diagnosticsCurrent:o}}catch{return{tos:!1,privacy:!1,diagnosticsCurrent:!1}}}function Nr(n,r,i){if(!(typeof window>`u`||!n))try{r?t(B(`tos`,n),V(`tos`)):e(B(`tos`,n)),i?(t(B(`privacy_policy`,n),V(`privacy_policy`)),t(B(`ai_data_sharing`,n),V(`ai_data_sharing`))):(e(B(`privacy_policy`,n)),e(B(`ai_data_sharing`,n)))}catch{}}function Pr(e){if(!(typeof window>`u`||!e))try{t(B(`share_diagnostics`,e),V(`share_diagnostics`))}catch{}}function Fr(t){if(e(`vellum:onboarding:tosAccepted`),e(`vellum:onboarding:aiDataConsent`),e(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!t))try{e(B(`tos`,t)),e(B(`privacy_policy`,t)),e(B(`ai_data_sharing`,t)),e(B(`share_diagnostics`,t)),e(jr(t)),U(`tos`,t,[]),U(`privacy`,t,[]),U(`share_diagnostics`,t,[]),U(`share_analytics`,t,[])}catch{}}function W(e,t){return e>=t}function Ir(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsEffective:!0,diagnosticsEffective:!0,analyticsCurrent:!1,diagnosticsCurrent:!1,analyticsVersionCurrent:!1,diagnosticsVersionCurrent:!1,hasServerRecord:!1};let t=Dr(e.required_versions);z=t;let n=W(e.share_analytics_accepted_version,t.shareAnalytics),r=W(e.share_diagnostics_accepted_version,t.shareDiagnostics),i=!!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||e.share_analytics_effective===!1||e.share_diagnostics_effective===!1;return{tos:W(e.tos_accepted_version,t.tos),privacy:W(e.privacy_policy_accepted_version,t.privacyPolicy)&&W(e.ai_data_sharing_accepted_version,t.aiDataSharing),shareAnalytics:e.share_analytics,shareDiagnostics:e.share_diagnostics,analyticsEffective:e.share_analytics_effective??e.share_analytics!==!1,diagnosticsEffective:e.share_diagnostics_effective??e.share_diagnostics!==!1,analyticsCurrent:e.share_analytics===null||n,diagnosticsCurrent:e.share_diagnostics===null||r,analyticsVersionCurrent:n,diagnosticsVersionCurrent:r,hasServerRecord:i}}function Lr(e,t){let{legal:n,shareAnalytics:r,shareDiagnostics:i}=e,a=S.getState();n&&(a.setTosAccepted(n.tos),a.setPrivacyConsent(n.privacy),Nr(t.userId,n.tos,n.privacy)),r!==void 0&&(a.setShareAnalytics(r),a.setPendingAnalyticsOptIn(r===!0)),i!==void 0&&yr(i,a.setShareDiagnostics),n?(a.setAnalyticsConsentCurrent(!0),a.setDiagnosticsConsentCurrent(!0),a.setHasConsentRecord(!0),a.setConsentHydrated(!0)):t.hasPlatformSession&&(r!==void 0&&a.setAnalyticsConsentCurrent(!0),i!==void 0&&a.setDiagnosticsConsentCurrent(!0)),i!==void 0&&(n||t.hasPlatformSession)&&Pr(t.userId),t.hasPlatformSession&&mr({...n?{tos_accepted_version:n.tos?z.tos:``,privacy_policy_accepted_version:n.privacy?z.privacyPolicy:``,ai_data_sharing_accepted_version:n.privacy?z.aiDataSharing:``}:{},...r===void 0?{}:{share_analytics:r,share_analytics_accepted_version:z.shareAnalytics},...i===void 0?{}:{share_diagnostics:i,share_diagnostics_accepted_version:z.shareDiagnostics}}).catch(()=>{})}function Rr(e){Lr({legal:{tos:e.tos,privacy:e.privacy},...e.shareAnalytics===null?{}:{shareAnalytics:e.shareAnalytics},...e.shareDiagnostics===null?{}:{shareDiagnostics:e.shareDiagnostics}},{userId:e.userId,hasPlatformSession:e.hasPlatformSession})}function zr(e,t,n){Lr(e===`share_analytics`?{shareAnalytics:t}:{shareDiagnostics:t},n)}var Br=`vellum.pro-takeover-avatar`,Vr=1800*1e3,G=null,Hr=!1,Ur=0;function Wr(){return Ur}function Gr(e){let t={...e,savedAt:Date.now()};G=t,Ur+=1;try{sessionStorage.setItem(Br,JSON.stringify(t)),Hr=!1}catch{Hr=!0}}function Kr(){if(Hr)return Yr();let e;try{if(typeof sessionStorage>`u`)return Yr();e=sessionStorage.getItem(Br)}catch{return Yr()}if(!e)return G=null,null;let t;try{t=JSON.parse(e)}catch{return K(),null}return!Zr(t)||Date.now()-t.savedAt>Vr?(K(),null):t}function K(){G=null,Hr=!1,Ur+=1;try{sessionStorage.removeItem(Br)}catch{}}function qr(e){let{activeAssistantId:t,assistants:n,assistantsHydrated:r}=y.getState();if(!t||!r||n.length!==1||n[0]?.id!==t){K();return}let i=Jr(e,t);if(!i||i.customImageUrl!=null||i.components==null){K();return}Gr({assistantId:t,components:i.components,traits:i.traits})}function Jr(e,t){let n=e.getQueryCache().findAll({queryKey:Qe(t)}),r,i=-1/0;for(let e of n){let t=e.state.data;t===void 0||e.state.dataUpdatedAt<i||(r=t,i=e.state.dataUpdatedAt)}return r}function Yr(){return G?Date.now()-G.savedAt>Vr?(G=null,null):G:null}function Xr(e){return Date.now()-e.savedAt<=Vr}function Zr(e){if(typeof e!=`object`||!e)return!1;let t=e;if(typeof t.assistantId!=`string`||typeof t.savedAt!=`number`||t.traits!==null&&!Ze(t.traits))return!1;let n=t.components;if(typeof n!=`object`||!n)return!1;let r=n;if(!$r(r.bodyShapes,ni)||!$r(r.eyeStyles,ri)||!$r(r.colors,ii)||!Array.isArray(r.faceCenterOverrides)||!r.faceCenterOverrides.every(ai))return!1;if(t.traits!==null){let e=t.traits;return Qr(r.bodyShapes,e.bodyShape)&&Qr(r.eyeStyles,e.eyeStyle)&&Qr(r.colors,e.color)}return!0}function Qr(e,t){return e.some(e=>e.id===t)}function $r(e,t){return Array.isArray(e)&&e.length>0&&e.every(t)}function ei(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.x==`number`&&typeof t.y==`number`}function ti(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.width==`number`&&typeof t.height==`number`}function ni(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.svgPath==`string`&&ti(t.viewBox)&&ei(t.faceCenter)}function ri(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id!=`string`||!ti(t.sourceViewBox)||!ei(t.eyeCenter)||!Array.isArray(t.paths)?!1:t.paths.every(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.svgPath==`string`&&typeof t.color==`string`})}function ii(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.hex==`string`}function ai(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.bodyShape==`string`&&typeof t.eyeStyle==`string`&&ei(t.faceCenter)}var oi=`vellum:`,si=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],ci=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 li(e){return e.startsWith(oi)?!0:ci.has(e)?!1:si.some(t=>e.startsWith(t))}function ui(){K();try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&li(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function di(e){return e?.id??e?.email??e?.username??null}function q(e){return e?{kind:`platform`,id:di(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var fi=null,J=null,pi=!1,mi={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},Y=e=>(Ft(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),X=()=>({sessionStatus:`authenticated`,user:mi}),Z=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),hi=e=>e===null||!e.ok&&!Ot(e);async function gi(e){if(!We())return!1;let t=It();return t?(await Q(t.id),e({...Y(t),platformSessionRestoredOffline:!0}),!0):!1}function _i(e){(!e||fi&&fi!==e)&&Gt(),fi=e}function vi(){J?.postMessage(`auth-changed`)}function yi(e){let t=Or();return{...e.tos?{tos_accepted_version:t.tos}:{},...e.privacy?{privacy_policy_accepted_version:t.privacyPolicy,ai_data_sharing_accepted_version:t.aiDataSharing}:{},...e.shareValues&&e.shareValues.analytics!==null?{share_analytics:e.shareValues.analytics,share_analytics_accepted_version:wr}:{},...e.diagnostics?{share_diagnostics_accepted_version:t.shareDiagnostics,...e.shareValues&&e.shareValues.diagnostics!==null?{share_diagnostics:e.shareValues.diagnostics}:{}}:{}}}var bi;async function Q(e){if(bi!==void 0&&bi!==e){let e=S.getState();e.setPendingAnalyticsOptIn(!1),e.setServerAnalyticsEffective(null),e.setServerDiagnosticsEffective(null)}if(bi=e,e)try{let t=Ir(await pr()),n=S.getState(),r=n.shareAnalytics,i=n.shareDiagnostics;t.shareAnalytics===!0&&n.setPendingAnalyticsOptIn(!1),n.setServerAnalyticsEffective(t.analyticsEffective),n.setServerDiagnosticsEffective(t.diagnosticsEffective),t.hasServerRecord&&(t.shareAnalytics!==null||r!==!1)&&!(t.shareAnalytics===!1&&S.getState().pendingAnalyticsOptIn)&&n.setShareAnalytics(t.shareAnalytics),_r({shareDiagnostics:t.shareDiagnostics,diagnosticsEffective:t.diagnosticsEffective,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let a=t.tos,o=t.privacy,s=t.analyticsCurrent,c=t.diagnosticsCurrent,l=t.hasServerRecord,u=t.shareDiagnostics!==null&&t.diagnosticsVersionCurrent;if(!t.hasServerRecord){let t=Mr(e);s=!0,c=!0,u=t.diagnosticsCurrent,t.tos&&t.privacy&&(a=!0,o=!0,l=!0,mr(yi({tos:!0,privacy:!0,diagnostics:u,shareValues:{analytics:r,diagnostics:i}})).catch(()=>{}))}else if(!a||!o||!c){let t=Mr(e),n=!a&&t.tos,r=!o&&t.privacy,i=!c&&t.diagnosticsCurrent;n&&(a=!0),r&&(o=!0),i&&(c=!0,u=!0),(n||r||i)&&mr(yi({tos:n,privacy:r,diagnostics:i})).catch(()=>{})}n.setTosAccepted(a),n.setPrivacyConsent(o),n.setAnalyticsConsentCurrent(s),n.setDiagnosticsConsentCurrent(c),n.setHasConsentRecord(l),Nr(e,a,o),u&&Pr(e),_i(e),n.setConsentHydrated(!0);return}catch{}let t=Mr(e),n=S.getState();e?br():(n.setPendingAnalyticsOptIn(!1),n.setServerAnalyticsEffective(null),n.setServerDiagnosticsEffective(null)),n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(!0),n.setDiagnosticsConsentCurrent(!0),n.setHasConsentRecord(t.tos&&t.privacy),_i(e),n.setConsentHydrated(!0)}var xi=0;Promise.resolve();function Si(e,t={}){let n=++xi,r=()=>n!==xi;x().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&&Ft(i),m()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await k.getState().fetchOrganizations();let e=await Ne();t()&&e.ok&&await re(e.data,k.getState().currentOrganizationId??void 0,t)})(),new Promise((t,n)=>setTimeout(()=>{e=!0,n(Error(`sync timeout`))},3e3))])}catch{}}if(r())return;e({platformSession:`present`,platformSessionRestoredOffline:!1,...a}),rn()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function Ci(e,t){!m()||_()||_e().length>0?Si(e,t):e({platformSession:`absent`})}async function wi(){try{if(await Je())return!0}catch{}return se()!==null}var $=ee(d()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(h()){await wi()?e({...X(),platformSession:`absent`}):e(Z());return}if(_()){try{await be(),e(X())}catch{e({sessionStatus:`unauthenticated`,user:null})}Ci(e);return}if(m()&&!_()){if(_e().length>0){let t=null;try{if(t=await x(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await k.getState().fetchOrganizations();let e=await Ne();e.ok&&await re(e.data,k.getState().currentOrganizationId??void 0)}catch{}e(Y(n));return}}catch{}if(hi(t)){if(await gi(e))return}else O();e(Z());return}e(X()),pi?e({platformSession:`absent`}):Si(e,{setUserOnSuccess:!0}),pi=!1;return}let t=null;try{if(t=await x(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null),e(Y(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(hi(t)&&await gi(e))){if(qe()&&Ue())try{let t=await Be();if(t){Ge(t),await He();let n=await x();if(n.ok&&n.data.user){let t=q(n.data.user);await Q(t?.id??null),e(Y(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),hi(t)||O(),e(Z())}},connectLocalAssistant:async n=>{await ye(he().find(e=>e.assistantId===n)),await D(n),e(X()),await E.checkAssistant(),Et(t().platformSession,t().platformSessionRestoredOffline)&&rn(n),Ci(e)},connectPlatformAssistant:async t=>{await D(t);let n=await x();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=q(n.data.user);await Q(r?.id??null),await k.getState().fetchOrganizations(),e(Y(r))},refreshSession:async()=>{if(h())return await wi()?(e({...X(),platformSession:`absent`}),!0):(e(Z()),!1);if(p()){try{await ve(ue()),e({sessionStatus:`authenticated`})}catch{return e(Z()),!1}return Ci(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await x(),n.ok&&n.data.user){let t=q(n.data.user);if(await Q(t?.id??null),m())try{await k.getState().fetchOrganizations();let e=await Ne();e.ok&&await re(e.data,k.getState().currentOrganizationId??void 0)}catch{}return e(Y(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(hi(n))return w(t().sessionStatus);if(_()){let n=w(t().sessionStatus);return n&&(O(),e({...X(),platformSession:`absent`})),n}return O(),await Q(null),e(Z()),!1},logout:async()=>{if(p()){E.resetForLogout(),await D(null),me(),Gt(),ui(),e(Z()),vi();return}pi=!0,await or(),await qn();try{await Re()}finally{v()&&await window.vellum?.auth?.signOut?.(),m()&&!v()&&await ie(),Ke(),Gt(),ui(),E.resetForLogout(),await D(null),e(Z()),vi()}}}))),Ti=()=>w($.use.sessionStatus()),Ei=()=>!wt($.use.sessionStatus()),Di=()=>T($.use.platformSession()),Oi=()=>Tt($.use.platformSession()),ki=()=>Et($.use.platformSession(),$.use.platformSessionRestoredOffline());function Ai(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=Fe(`app.resume`,()=>{Ve()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(J=new BroadcastChannel(`auth`),J.onmessage=()=>{ui(),window.location.reload()},t.push(()=>{J?.close(),J=null})),()=>t.forEach(e=>e())}export{Nt as $,Ln as A,In as B,ur as C,Gn as D,ar as E,wn as F,P as G,Fn as H,N as I,Xt as J,rn as K,Cn as L,On as M,kn as N,qn as O,An as P,Wt as Q,Mn as R,pr as S,cr as T,Dn as U,Pn as V,Rn as W,Kt as X,A as Y,k as Z,Rr as _,Ti as a,wt as at,lr as b,qr as c,bt as ct,Kr as d,at as dt,D as et,Wr as f,ot as ft,Ir as g,Fr as h,C as ht,Di as i,Et as it,jn as j,xn as k,K as l,ct as lt,Sr as m,tt as mt,$ as n,T as nt,Oi as o,Ot as ot,Cr as p,nt as pt,nn as q,ki as r,w as rt,Ei as s,Ct as st,Ai as t,E as tt,Xr as u,lt as ut,zr as v,fr as w,hr as x,_r as y,Nn as z};
2
+ import{a as e,c as t,i as n,t as r}from"./local-settings-C-dW2vkq.js";import{a as i,n as a,r as o}from"./device-settings-DXp9L4iB.js";import{o as s,t as c}from"./capture-error-FWzaVb8P.js";import{t as l}from"./preload-helper-Cv2QeVDK.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{n as d,t as ee}from"./create-selectors-B-P03-8K.js";import{A as te,D as ne,E as re,O as ie,T as ae,at as oe,c as f,ct as se,d as ce,dt as p,f as m,h,i as le,it as g,lt as ue,m as de,n as fe,nt as pe,ot as me,r as he,rt as ge,s as _e,st as ve,ut as _,v as ye,y as be}from"./local-mode-9zpgPNoq.js";import{t as v}from"./is-electron-7N7iyz1y.js";import{n as y,t as xe}from"./resolved-assistants-store-8HQDfxZh.js";import{n as Se,r as b,t as Ce}from"./api-errors-SZKDzMLE.js";import{t as we}from"./client.gen-DHOmbzD9.js";import{Bt as Te,D as Ee,E as De,F as Oe,I as ke,Vt as Ae,jt as je}from"./sdk.gen-DVW3wpbx.js";import{a as Me,c as Ne,r as Pe}from"./api-C8TlQNEU.js";import{n as Fe,t as Ie}from"./event-bus-CvZyJQ26.js";import{A as Le,M as x,O as Re,P as ze,a as Be,d as Ve,g as He,i as Ue,k as We,l as Ge,t as Ke,u as qe}from"./native-biometric-B96mgKGP.js";import{o as Je}from"./remote-gateway-session-CgxYHgOD.js";import{t as Ye}from"./dist-CFSiz2ry2.js";import{r as Xe}from"./typed-storage-C-R1po3l.js";import{t as S}from"./onboarding-store-OVV4wyh5.js";import{s as Ze,t as Qe}from"./use-assistant-avatar--4s_vvar.js";var C=ee(d(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),$e=new Set;function et(e){return $e.add(e),()=>{$e.delete(e)}}function tt(){for(let e of $e)try{e()}catch{}}var nt=new Set([502,503,504]),rt=`Connection interrupted. Reconnecting…`;function it(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function at(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`}:it(e.error)?{kind:`error`,transient:!0,message:rt}:{kind:`error`,message:b(e.error,void 0,`Failed to check assistant status.`)}}function ot(e){return e===void 0||e>=500}var st=`platform_hosted_disabled`,ct=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function lt(e,t){return e===503?t?.code===st:!1}var ut=2e3,dt=3e4;function ft(e){return Math.min(ut*2**e,dt)}var pt=3e5;function mt(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var ht=[`assistant`,`current`],gt=3e3,_t=new Set([`initializing`,`cleaning_up`]);function vt(e){if(!e)return!1;let t=at(e);return _t.has(t.kind)?gt:!1}function yt(e){return e?[...ht,e]:ht}function bt(e){let t=e.selectedPlatformAssistantId??null;return u({queryKey:yt(t),queryFn:()=>Pe(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>vt(e.state.data),refetchOnWindowFocus:!1})}var xt=new Set([`healthy`,`ok`]);function St(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t===`MIGRATING`?`migrating`:t!==void 0&&!xt.has(t)?`unhealthy`:`healthy`}function Ct(){let e=C.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var w=e=>e===`authenticated`,wt=e=>e!==`initializing`,T=e=>e===`present`,Tt=e=>e!==`unknown`,Et=(e,t)=>e===`present`&&!t,Dt=new Set([401,403,410]),Ot=e=>!e.ok&&e.status!==void 0&&Dt.has(e.status),kt=4e3,At=6e4,jt=5e3;function Mt(){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 E=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(){et(()=>this.onUnreachable()),Fe(`app.online`,()=>this.onNetworkOnline()),y.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!p()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){y.getState().activeAssistantId!==null&&y.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(p()){this.applyGatewayAuthShortCircuit();return}if(!w(this.inputs.sessionStatus)){this.resetForLogout();return}this.inputs.hasPlatformSession&&g(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(p()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:yt(n),queryFn:()=>Pe(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(y.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:ht,queryFn:()=>Pe(),staleTime:0}),t!==this.generation))return;await this.applyServerStateUpdate(r)}catch(e){if(console.error(`Error checking assistant status:`,e),c(e,{context:`check_assistant`}),t!==this.generation||this.degradeOnTransportFailure())return;this.transition({kind:`error`,transient:!0,message:rt})}}degradeOnTransportFailure(){return this.state.kind===`active`?(this.triggerReachabilityProbe(),!0):this.state.kind===`initializing`||this.state.kind===`cleaning_up`}retryAssistant(){this.ready&&this.checkAssistant()}markExpectingFirstMessage(){C.getState().expectingFirstMessage||C.setState({expectingFirstMessage:!0})}clearExpectingFirstMessage(){C.getState().expectingFirstMessage&&C.setState({expectingFirstMessage:!1})}transition(e){let t=this.state.kind;this.state=e,C.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=ft(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++,s(`Assistant stuck in initializing state`,{level:`warning`,extra:{timeoutMs:pt}}),this.transition(mt())},pt)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;g(null),this.setOperationalStatusAssistantId(e.data.id);let r=y.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),g({url:e.data.ingress_url,token:e.data.platform_actor_token});let t=y.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=Mt();else if(n){let r=f();e=`${window.location.origin}${n}`,t=r?.assistantId??t}g({url:e,token:se()}),this.setOperationalStatusAssistantId(null),y.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=at(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?f()?.assistantId??e:e,i=!h()&&n?await te(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=St(await Me(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!h()&&(i=await te(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||y.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>At){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>At){n();return}this.probeTimer=setTimeout(()=>void r(),kt)};this.probeTimer=setTimeout(()=>void r(),kt)}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(),jt)))};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=y.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(y.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,C.setState({expectingFirstMessage:!1,operationalStatusAssistantId:null}),this.inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null},C.setState({assistantState:this.state}),y.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){C.getState().operationalStatusAssistantId!==e&&C.setState({operationalStatusAssistantId:e})}};function Nt(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=y.getState(),i=xe(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=fe()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function D(e){y.getState().setSelectedAssistant(e),e!==null&&await ae(e)}var Pt=`vellum:auth:userSnapshot`;function Ft(e){if(e)try{localStorage.setItem(Pt,JSON.stringify(e))}catch{}}function It(){try{let e=localStorage.getItem(Pt);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 O(){try{localStorage.removeItem(Pt)}catch{}}var Lt=`vellum_active_organization_id`;function Rt(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function zt(){let e=Rt();if(!e)return null;try{return e.getItem(Lt)}catch{return null}}function Bt(e){let t=Rt();if(t)try{t.setItem(Lt,e)}catch{}}function Vt(){let e=Rt();if(e)try{e.removeItem(Lt)}catch{}}function Ht(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var k=ee(d()((e,t)=>({organizations:[],currentOrganizationId:null,persistedOrganizationId:zt(),status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await je()).data?.results??[],r=Ht(n,t().currentOrganizationId??t().persistedOrganizationId);r&&Bt(r),e({organizations:n,currentOrganizationId:r,persistedOrganizationId:r??t().persistedOrganizationId,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)&&(Bt(n),e({currentOrganizationId:n,persistedOrganizationId:n,status:`ready`}))},clearOrganization:()=>{Vt(),e({organizations:[],currentOrganizationId:null,persistedOrganizationId:null,status:`idle`,error:null})}})));function Ut(e){return e.currentOrganizationId??e.persistedOrganizationId}function A(){return Ut(k.getState())}function Wt(){return k(Ut)}function Gt(){k.getState().clearOrganization()}function Kt(){let e=0,t=k.subscribe(t=>{(t.status===`ready`||t.status===`error`)&&(e=Date.now())}),n=$.subscribe((e,t)=>{let n=T(e.platformSession),r=T(t.platformSession);n&&(!r||e.user?.id!==t.user?.id)&&k.getState().fetchOrganizations()}),r=()=>{if(!T($.getState().platformSession))return;let{status:t}=k.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&k.getState().fetchOrganizations()},i=Fe(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function qt(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:pe();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??A();i&&(n[`Vellum-Organization-Id`]=i);let a=Le();return a&&(n[`X-Session-Token`]=a),n}async function Jt(e,t={}){let n=qt(e,t);if(n.Authorization||v())return n;await Re();let r=We();return r&&(n[`X-CSRFToken`]=r),n}var Yt;function Xt(){return v()?(Yt===void 0&&(Yt=window.__VELLUM_CONFIG__?.deviceId??null),Yt):null}var Zt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Qt=`X-Vellum-Electron-Renderer-Origin`,$t=new Map,en=[2e3,5e3,15e3,3e4,6e4],tn=new Set;async function nn(e,t={}){if(!m()||h()||de()||yn(e))return e;let n=an(e);if(!n)return e;let r=$t.get(n.assistantId);if(r)return r;let i=on(n,{allowGatewayRepair:t.allowGatewayRepair??!0});$t.set(n.assistantId,i);try{return await i}catch(e){throw $t.delete(n.assistantId),e}}function rn(e,t={}){if(!m()||h()||de())return;let n=e;if(!n){let e=f();if(!e||!ce(e))return;n=e.assistantId}if(tn.has(n))return;tn.add(n);let r=n;(async()=>{try{for(let e=0;;e++)try{await nn(r,{allowGatewayRepair:t.allowGatewayRepair??!1});return}catch(n){let r=en[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{tn.delete(r)}})()}function an(e){let t=fe();if(t?.assistantId===e&&ce(t))return t;let n=f();return n?.assistantId===e&&ce(n)?n:null}async function on(e,t){let n=await cn(e,t),r=await ln(n,e.assistantId),i=r?.assistantId&&yn(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1){let t=r?.organizationId??e.platformOrganizationId??null;return t&&await sn(e,{platformAssistantId:i,platformBaseUrl:r?.baseUrl??oe(),organizationId:t}),i}let a=await un(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??Xt()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await dn(e,a,o),c=j(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!yn(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=M(s.assistant_api_key);!u&&r?.hasAssistantApiKey!==!0&&(u=await fn(e,a,o));let d=r?.baseUrl??oe();return await mn(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:d,organizationId:a,webhookSecret:M(s.webhook_secret)}),await sn(e,{platformAssistantId:l,platformBaseUrl:d,organizationId:a}),l}async function sn(e,t){await ne({...e,platformAssistantId:t.platformAssistantId,platformBaseUrl:t.platformBaseUrl,platformOrganizationId:t.organizationId}).catch(e=>{console.warn(`local assistant platform lockfile update failed`,e)})}async function cn(e,t){let n=ge(),r=pe();if(t.allowGatewayRepair&&(!n||!r)&&(await ye(e),n=ge(),r=pe()),!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 ln(e,t){let n=vn(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:j(i?.assistantId,i?.assistant_id),baseUrl:j(i?.baseUrl,i?.base_url),organizationId:j(i?.organizationId,i?.organization_id),hasAssistantApiKey:bn(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:j(i?.clientInstallationId,i?.client_installation_id)}}async function un(e,t){return(e??t.platformOrganizationId??A()??t.organizationId??null)||(await k.getState().fetchOrganizations().catch(()=>{}),A()??t.platformOrganizationId??t.organizationId??null)}async function dn(e,t,n){return await pn(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function fn(e,t,n){return M((await pn(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function pn(e,t,n,r){let i=new Headers({...await Jt({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=Le();if(v()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(Qt,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:v()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:v()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${_n(e)}`)});if(!o.ok){let e=await gn(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: ${_n(e)}`)}}async function mn(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])=>hn(e,t,n))),t.assistantApiKey&&await hn(e,`vellum:assistant_api_key`,t.assistantApiKey)}async function hn(e,t,n){let r=await fetch(vn(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}: ${_n(e)}`)});if(!r.ok){let e=await gn(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function gn(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?M(t.detail):null,r=t&&typeof t==`object`&&`code`in t?M(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function _n(e){return e instanceof Error?e.message:String(e)}function vn(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function yn(e){return Zt.test(e)}function j(...e){for(let t of e){let e=M(t);if(e)return e}return null}function M(e){return typeof e==`string`&&e.trim()?e.trim():null}function bn(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var xn={idle:``,connecting:`Connecting…`,listening:`Listening…`,transcribing:`Transcribing…`,thinking:`Thinking…`,speaking:`Speaking…`,ending:`Ending…`,failed:``};function Sn(e,t){return t&&e===`connecting`?`Reconnecting…`:xn[e]}function Cn(e,t,n){return Sn(e===`speaking`&&!n?`thinking`:e,t)}function N(e){return e!==`idle`&&e!==`failed`}function wn(e){return e===`listening`||e===`transcribing`||e===`thinking`||e===`speaking`}function Tn(e,t){if(!N(e.state))return!1;let n=t??null;return n===e.conversationId||n===e.startedConversationId}var En={state:`idle`,assistantAudioActive:!1,reconnecting:!1,assistantId:null,conversationId:null,startedConversationId:null,controls:null,partialTranscript:``,finalTranscript:``,assistantTranscript:``,inputAmplitude:0,muted:!1,outputMuted:!1,handsFree:!1,roomMinimized:!1,entryOrigin:null,lastTurnLatency:null,outputAmplitudeProvider:null,playbackProgressProvider:null,error:null},P=ee(d()(e=>({...En,starter:null,setState:t=>e({state:t}),setAssistantAudioActive:t=>e({assistantAudioActive:t}),setReconnecting:t=>e({reconnecting:t}),setSessionContext:(t,n)=>e({assistantId:t,conversationId:n,startedConversationId:n,muted:!1,outputMuted:!1}),setConversationId:t=>e({conversationId:t}),setControls:t=>e({controls:t}),setStarter:t=>e({starter:t}),setPartialTranscript:t=>e({partialTranscript:t}),setFinalTranscript:t=>e({finalTranscript:t}),appendAssistantTranscript:t=>e(e=>({assistantTranscript:e.assistantTranscript+t})),clearAssistantTranscript:()=>e({assistantTranscript:``}),clearUserTranscripts:()=>e({partialTranscript:``,finalTranscript:``}),setInputAmplitude:t=>e({inputAmplitude:t}),setMuted:t=>e({muted:t}),setOutputMuted:t=>e({outputMuted:t}),setHandsFree:t=>e({handsFree:t}),setRoomMinimized:t=>e({roomMinimized:t}),setEntryOrigin:t=>e({entryOrigin:t}),setLastTurnLatency:t=>e({lastTurnLatency:t}),setOutputAmplitudeProvider:t=>e({outputAmplitudeProvider:t}),setPlaybackProgressProvider:t=>e({playbackProgressProvider:t}),fail:t=>e({state:`failed`,error:t}),reset:()=>e({...En})})));function Dn(e){let t=!1,n=!1,r=P.subscribe(()=>{t||(t=!0,queueMicrotask(()=>{t=!1,!n&&e(P.getState())}))});return()=>{n=!0,r()}}function On(){return P.getState().inputAmplitude}function kn(){return P.getState().outputAmplitudeProvider?.()??0}function An(){return P.getState().playbackProgressProvider?.()??null}function jn(){P.getState().controls?.stop()}function Mn(){let{state:e,setRoomMinimized:t}=P.getState();N(e)&&t(!0)}function Nn(){let{state:e,setRoomMinimized:t}=P.getState();N(e)&&t(!1)}function Pn(e){P.getState().controls?.setMuted(e)}function Fn(e){P.getState().controls?.setOutputMuted(e)}function In(e){P.getState().setEntryOrigin(e)}function Ln(){P.getState().reset()}function Rn(e){return P(t=>Tn(t,e))}var zn=`.dev`;function Bn(e){return e.endsWith(zn)?`development`:`production`}function Vn(){let e={},t=Object.keys(xn).filter(N);for(let n of t)e[n]=Cn(n,!1,!0);return e}function Hn(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.assistantId==`string`?{token:t.token,assistantId:t.assistantId}:null}var Un=Xe({key:`vellum:live_activity_registration`,scope:`user`,parse:Hn,serialize:JSON.stringify,fallback:null}),F=null,I=new Set;function Wn(e){I.add(e),e.finally(()=>{I.delete(e)})}async function Gn(e,t,n){let r=Kn(e,t,n);Wn(r),await r}async function Kn(e,t,n){try{let{App:r}=await l(async()=>{let{App:e}=await import(`./esm-Cl2UNC_o.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:i}=await r.getInfo(),a=await Ee({path:{assistant_id:t},body:{token:e,bundle_id:i,apns_environment:Bn(i),conversation_id:n,labels:Vn()},throwOnError:!1});if(a.error){c(a.error,{context:`live_activity_push_registration`,level:`warning`,bestEffort:!0});return}F={token:e,assistantId:t},Un.save(F)}catch(e){c(e,{context:`live_activity_push_registration`,level:`warning`,bestEffort:!0})}}async function qn(){I.size>0&&await Promise.allSettled([...I]);let e=F??Un.load();if(e!==null){F=null,Un.remove();try{await De({path:{assistant_id:e.assistantId,token:e.token},throwOnError:!1})}catch(e){c(e,{context:`live_activity_push_unregistration`,level:`warning`,bestEffort:!0})}}}var Jn=`.dev`;function Yn(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 Xn=Xe({key:`vellum:push_registration`,scope:`user`,parse:Yn,serialize:JSON.stringify,fallback:null}),Zn=!1,Qn=null,L=null,R=new Set;function $n(e){R.add(e),e.finally(()=>{R.delete(e)})}function er(){return qe()&&Ye.getPlatform()===`ios`}function tr(e){return e.endsWith(Jn)?`development`:`production`}async function nr(e,t){try{let{App:n}=await l(async()=>{let{App:e}=await import(`./esm-Cl2UNC_o.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await ke({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:tr(r)},throwOnError:!1});if(i.error){c(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}L={token:e,bundleId:r,assistantId:t},Xn.save(L)}catch(e){c(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}function rr(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 ir(){if(!Zn){Zn=!0;try{let{PushNotifications:e}=await l(async()=>{let{PushNotifications:e}=await import(`./esm-Chh8mHmh.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=Qn;t&&$n(nr(e.value,t))}),await e.addListener(`registrationError`,e=>{c(e,{context:`push_registration_apns`,level:`warning`})}),await e.addListener(`pushNotificationActionPerformed`,e=>{let t=rr(e.notification.data);t&&Ie(`deeplink.openThread`,{threadId:t})})}catch(e){Zn=!1,c(e,{context:`push_registration_listeners`,level:`warning`})}}}async function ar(e){if(er()){Qn=e,L&&L.assistantId!==e&&$n(nr(L.token,e));try{let{PushNotifications:e}=await l(async()=>{let{PushNotifications:e}=await import(`./esm-Chh8mHmh.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await ir(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){c(e,{context:`push_registration_register`,level:`warning`})}}}async function or(){for(Qn=null;R.size>0;)await Promise.allSettled([...R]);let e=L??Xn.load();if(L=null,Xn.remove(),!(!e||!er()))try{let t=await Oe({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&c(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){c(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function sr(e){return e}function cr(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=sr(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=sr(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 lr={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 ur(){let{data:e,error:t,response:n}=await we.get({url:`/v1/user/me/`,throwOnError:!1});if(Se(n,t,`Failed to load profile.`),!n.ok||!e)throw new Ce(n.status,b(t,n,`Failed to load profile.`));return e}var dr=`Please choose a different handle.`;async function fr(e){let{data:t,error:n,response:r}=await we.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:b(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}=cr(n,`username`,lr.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=cr(n,`username`,dr);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:b(n,r,`Failed to save profile.`)}}async function pr(){let{data:e,error:t,response:n}=await Te({throwOnError:!1});if(Se(n,t,`Failed to load consent.`),!n.ok||!e)throw new Ce(n.status,b(t,n,`Failed to load consent.`));return e}async function mr(e){await Ae({body:e,throwOnError:!0})}async function hr(e,t){let{data:n,error:r,response:i}=await we.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(Se(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new Ce(i.status,i.status===429?`Too many checks — try again in a moment.`:b(r,i,`Failed to check handle availability.`));return n}function gr(e){i(`diagnosticsReporting`,e)}function _r(e,t){let n=xr(e);return n!==null&&t(n),gr(vr(n,e)),n}function vr(e,t){return e??a(`shareDiagnostics`,!0)?t.hasServerRecord?t.diagnosticsEffective:!0:!1}function yr(e,t){_r({shareDiagnostics:e,diagnosticsEffective:e,hasServerRecord:!0},t)}function br(){o(`diagnosticsReporting`,``)===``&&gr(!1)}function xr(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var Sr=`2026-06-08`,Cr=`2026-06-22`,wr=`2026-06-18`,Tr=`2026-06-18`,Er=`2026-06-08`,z={tos:Sr,privacyPolicy:Cr,aiDataSharing:Cr,shareAnalytics:wr,shareDiagnostics:Tr};function Dr(e){return{tos:e?.tos||`2026-06-08`,privacyPolicy:e?.privacy_policy||`2026-06-22`,aiDataSharing:e?.ai_data_sharing||`2026-06-22`,shareAnalytics:e?.share_analytics||`2026-06-18`,shareDiagnostics:e?.share_diagnostics||`2026-06-18`}}function Or(){return{...z}}function B(e,t){return`device:consent:${e}:${t}`}function V(e){switch(e){case`tos`:return z.tos;case`privacy_policy`:return z.privacyPolicy;case`ai_data_sharing`:return z.aiDataSharing;case`share_diagnostics`:return z.shareDiagnostics}}var kr=/^\d{4}-\d{2}-\d{2}$/;function Ar(e,t){let r=n(B(e,t),``);return kr.test(r)?r:``}function H(e,t){return W(Ar(e,t),V(e))}function jr(e){return`device:consent:ai:v${Er}:${e}`}function U(n,i,a){let o=`device:consent:${n}:v`,s=`:${i}`,c=[],l=``;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);if(!t||!t.startsWith(o)||!t.endsWith(s))continue;let n=t.slice(o.length,t.length-s.length);kr.test(n)&&(c.push(t),r(t,!1)&&n>l&&(l=n))}if(l)for(let e of a)Ar(e,i)||t(B(e,i),l);for(let t of c)e(t)}function Mr(n){if(typeof window>`u`||!n)return{tos:!1,privacy:!1,diagnosticsCurrent:!1};try{U(`tos`,n,[`tos`]),U(`privacy`,n,[`privacy_policy`,`ai_data_sharing`]),U(`share_diagnostics`,n,[`share_diagnostics`]),U(`share_analytics`,n,[]),r(jr(n),!1)&&e(jr(n));let i=H(`tos`,n),a=H(`privacy_policy`,n)&&H(`ai_data_sharing`,n),o=H(`share_diagnostics`,n);if(i||a)return{tos:i,privacy:a,diagnosticsCurrent:o};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(s&&t(B(`tos`,n),Sr),{tos:s&&H(`tos`,n),privacy:!1,diagnosticsCurrent:o}):{tos:!1,privacy:!1,diagnosticsCurrent:o}}catch{return{tos:!1,privacy:!1,diagnosticsCurrent:!1}}}function Nr(n,r,i){if(!(typeof window>`u`||!n))try{r?t(B(`tos`,n),V(`tos`)):e(B(`tos`,n)),i?(t(B(`privacy_policy`,n),V(`privacy_policy`)),t(B(`ai_data_sharing`,n),V(`ai_data_sharing`))):(e(B(`privacy_policy`,n)),e(B(`ai_data_sharing`,n)))}catch{}}function Pr(e){if(!(typeof window>`u`||!e))try{t(B(`share_diagnostics`,e),V(`share_diagnostics`))}catch{}}function Fr(t){if(e(`vellum:onboarding:tosAccepted`),e(`vellum:onboarding:aiDataConsent`),e(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!t))try{e(B(`tos`,t)),e(B(`privacy_policy`,t)),e(B(`ai_data_sharing`,t)),e(B(`share_diagnostics`,t)),e(jr(t)),U(`tos`,t,[]),U(`privacy`,t,[]),U(`share_diagnostics`,t,[]),U(`share_analytics`,t,[])}catch{}}function W(e,t){return e>=t}function Ir(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsEffective:!0,diagnosticsEffective:!0,analyticsCurrent:!1,diagnosticsCurrent:!1,analyticsVersionCurrent:!1,diagnosticsVersionCurrent:!1,hasServerRecord:!1};let t=Dr(e.required_versions);z=t;let n=W(e.share_analytics_accepted_version,t.shareAnalytics),r=W(e.share_diagnostics_accepted_version,t.shareDiagnostics),i=!!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||e.share_analytics_effective===!1||e.share_diagnostics_effective===!1;return{tos:W(e.tos_accepted_version,t.tos),privacy:W(e.privacy_policy_accepted_version,t.privacyPolicy)&&W(e.ai_data_sharing_accepted_version,t.aiDataSharing),shareAnalytics:e.share_analytics,shareDiagnostics:e.share_diagnostics,analyticsEffective:e.share_analytics_effective??e.share_analytics!==!1,diagnosticsEffective:e.share_diagnostics_effective??e.share_diagnostics!==!1,analyticsCurrent:e.share_analytics===null||n,diagnosticsCurrent:e.share_diagnostics===null||r,analyticsVersionCurrent:n,diagnosticsVersionCurrent:r,hasServerRecord:i}}function Lr(e,t){let{legal:n,shareAnalytics:r,shareDiagnostics:i}=e,a=S.getState();n&&(a.setTosAccepted(n.tos),a.setPrivacyConsent(n.privacy),Nr(t.userId,n.tos,n.privacy)),r!==void 0&&(a.setShareAnalytics(r),a.setPendingAnalyticsOptIn(r===!0)),i!==void 0&&yr(i,a.setShareDiagnostics),n?(a.setAnalyticsConsentCurrent(!0),a.setDiagnosticsConsentCurrent(!0),a.setHasConsentRecord(!0),a.setConsentHydrated(!0)):t.hasPlatformSession&&(r!==void 0&&a.setAnalyticsConsentCurrent(!0),i!==void 0&&a.setDiagnosticsConsentCurrent(!0)),i!==void 0&&(n||t.hasPlatformSession)&&Pr(t.userId),t.hasPlatformSession&&mr({...n?{tos_accepted_version:n.tos?z.tos:``,privacy_policy_accepted_version:n.privacy?z.privacyPolicy:``,ai_data_sharing_accepted_version:n.privacy?z.aiDataSharing:``}:{},...r===void 0?{}:{share_analytics:r,share_analytics_accepted_version:z.shareAnalytics},...i===void 0?{}:{share_diagnostics:i,share_diagnostics_accepted_version:z.shareDiagnostics}}).catch(()=>{})}function Rr(e){Lr({legal:{tos:e.tos,privacy:e.privacy},...e.shareAnalytics===null?{}:{shareAnalytics:e.shareAnalytics},...e.shareDiagnostics===null?{}:{shareDiagnostics:e.shareDiagnostics}},{userId:e.userId,hasPlatformSession:e.hasPlatformSession})}function zr(e,t,n){Lr(e===`share_analytics`?{shareAnalytics:t}:{shareDiagnostics:t},n)}var Br=`vellum.pro-takeover-avatar`,Vr=1800*1e3,G=null,Hr=!1,Ur=0;function Wr(){return Ur}function Gr(e){let t={...e,savedAt:Date.now()};G=t,Ur+=1;try{sessionStorage.setItem(Br,JSON.stringify(t)),Hr=!1}catch{Hr=!0}}function Kr(){if(Hr)return Yr();let e;try{if(typeof sessionStorage>`u`)return Yr();e=sessionStorage.getItem(Br)}catch{return Yr()}if(!e)return G=null,null;let t;try{t=JSON.parse(e)}catch{return K(),null}return!Zr(t)||Date.now()-t.savedAt>Vr?(K(),null):t}function K(){G=null,Hr=!1,Ur+=1;try{sessionStorage.removeItem(Br)}catch{}}function qr(e){let{activeAssistantId:t,assistants:n,assistantsHydrated:r}=y.getState();if(!t||!r||n.length!==1||n[0]?.id!==t){K();return}let i=Jr(e,t);if(!i||i.customImageUrl!=null||i.components==null){K();return}Gr({assistantId:t,components:i.components,traits:i.traits})}function Jr(e,t){let n=e.getQueryCache().findAll({queryKey:Qe(t)}),r,i=-1/0;for(let e of n){let t=e.state.data;t===void 0||e.state.dataUpdatedAt<i||(r=t,i=e.state.dataUpdatedAt)}return r}function Yr(){return G?Date.now()-G.savedAt>Vr?(G=null,null):G:null}function Xr(e){return Date.now()-e.savedAt<=Vr}function Zr(e){if(typeof e!=`object`||!e)return!1;let t=e;if(typeof t.assistantId!=`string`||typeof t.savedAt!=`number`||t.traits!==null&&!Ze(t.traits))return!1;let n=t.components;if(typeof n!=`object`||!n)return!1;let r=n;if(!$r(r.bodyShapes,ni)||!$r(r.eyeStyles,ri)||!$r(r.colors,ii)||!Array.isArray(r.faceCenterOverrides)||!r.faceCenterOverrides.every(ai))return!1;if(t.traits!==null){let e=t.traits;return Qr(r.bodyShapes,e.bodyShape)&&Qr(r.eyeStyles,e.eyeStyle)&&Qr(r.colors,e.color)}return!0}function Qr(e,t){return e.some(e=>e.id===t)}function $r(e,t){return Array.isArray(e)&&e.length>0&&e.every(t)}function ei(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.x==`number`&&typeof t.y==`number`}function ti(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.width==`number`&&typeof t.height==`number`}function ni(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.svgPath==`string`&&ti(t.viewBox)&&ei(t.faceCenter)}function ri(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id!=`string`||!ti(t.sourceViewBox)||!ei(t.eyeCenter)||!Array.isArray(t.paths)?!1:t.paths.every(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.svgPath==`string`&&typeof t.color==`string`})}function ii(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.hex==`string`}function ai(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.bodyShape==`string`&&typeof t.eyeStyle==`string`&&ei(t.faceCenter)}var oi=`vellum:`,si=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],ci=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 li(e){return e.startsWith(oi)?!0:ci.has(e)?!1:si.some(t=>e.startsWith(t))}function ui(){K();try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&li(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function di(e){return e?.id??e?.email??e?.username??null}function q(e){return e?{kind:`platform`,id:di(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var fi=null,J=null,pi=!1,mi={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},Y=e=>(Ft(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),X=()=>({sessionStatus:`authenticated`,user:mi}),Z=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),hi=e=>e===null||!e.ok&&!Ot(e);async function gi(e){if(!Le())return!1;let t=It();return t?(await Q(t.id),e({...Y(t),platformSessionRestoredOffline:!0}),!0):!1}function _i(e){(!e||fi&&fi!==e)&&Gt(),fi=e}function vi(){J?.postMessage(`auth-changed`)}function yi(e){let t=Or();return{...e.tos?{tos_accepted_version:t.tos}:{},...e.privacy?{privacy_policy_accepted_version:t.privacyPolicy,ai_data_sharing_accepted_version:t.aiDataSharing}:{},...e.shareValues&&e.shareValues.analytics!==null?{share_analytics:e.shareValues.analytics,share_analytics_accepted_version:wr}:{},...e.diagnostics?{share_diagnostics_accepted_version:t.shareDiagnostics,...e.shareValues&&e.shareValues.diagnostics!==null?{share_diagnostics:e.shareValues.diagnostics}:{}}:{}}}var bi;async function Q(e){if(bi!==void 0&&bi!==e){let e=S.getState();e.setPendingAnalyticsOptIn(!1),e.setServerAnalyticsEffective(null),e.setServerDiagnosticsEffective(null)}if(bi=e,e)try{let t=Ir(await pr()),n=S.getState(),r=n.shareAnalytics,i=n.shareDiagnostics;t.shareAnalytics===!0&&n.setPendingAnalyticsOptIn(!1),n.setServerAnalyticsEffective(t.analyticsEffective),n.setServerDiagnosticsEffective(t.diagnosticsEffective),t.hasServerRecord&&(t.shareAnalytics!==null||r!==!1)&&!(t.shareAnalytics===!1&&S.getState().pendingAnalyticsOptIn)&&n.setShareAnalytics(t.shareAnalytics),_r({shareDiagnostics:t.shareDiagnostics,diagnosticsEffective:t.diagnosticsEffective,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let a=t.tos,o=t.privacy,s=t.analyticsCurrent,c=t.diagnosticsCurrent,l=t.hasServerRecord,u=t.shareDiagnostics!==null&&t.diagnosticsVersionCurrent;if(!t.hasServerRecord){let t=Mr(e);s=!0,c=!0,u=t.diagnosticsCurrent,t.tos&&t.privacy&&(a=!0,o=!0,l=!0,mr(yi({tos:!0,privacy:!0,diagnostics:u,shareValues:{analytics:r,diagnostics:i}})).catch(()=>{}))}else if(!a||!o||!c){let t=Mr(e),n=!a&&t.tos,r=!o&&t.privacy,i=!c&&t.diagnosticsCurrent;n&&(a=!0),r&&(o=!0),i&&(c=!0,u=!0),(n||r||i)&&mr(yi({tos:n,privacy:r,diagnostics:i})).catch(()=>{})}n.setTosAccepted(a),n.setPrivacyConsent(o),n.setAnalyticsConsentCurrent(s),n.setDiagnosticsConsentCurrent(c),n.setHasConsentRecord(l),Nr(e,a,o),u&&Pr(e),_i(e),n.setConsentHydrated(!0);return}catch{}let t=Mr(e),n=S.getState();e?br():(n.setPendingAnalyticsOptIn(!1),n.setServerAnalyticsEffective(null),n.setServerDiagnosticsEffective(null)),n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(!0),n.setDiagnosticsConsentCurrent(!0),n.setHasConsentRecord(t.tos&&t.privacy),_i(e),n.setConsentHydrated(!0)}var xi=0;Promise.resolve();function Si(e,t={}){let n=++xi,r=()=>n!==xi;x().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&&Ft(i),m()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await k.getState().fetchOrganizations();let e=await Ne();t()&&e.ok&&await re(e.data,k.getState().currentOrganizationId??void 0,t)})(),new Promise((t,n)=>setTimeout(()=>{e=!0,n(Error(`sync timeout`))},3e3))])}catch{}}if(r())return;e({platformSession:`present`,platformSessionRestoredOffline:!1,...a}),rn()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function Ci(e,t){!m()||_()||_e().length>0?Si(e,t):e({platformSession:`absent`})}async function wi(){try{if(await Je())return!0}catch{}return se()!==null}var $=ee(d()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(h()){await wi()?e({...X(),platformSession:`absent`}):e(Z());return}if(_()){try{await be(),e(X())}catch{e({sessionStatus:`unauthenticated`,user:null})}Ci(e);return}if(m()&&!_()){if(_e().length>0){let t=null;try{if(t=await x(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null);try{await k.getState().fetchOrganizations();let e=await Ne();e.ok&&await re(e.data,k.getState().currentOrganizationId??void 0)}catch{}e(Y(n));return}}catch{}if(hi(t)){if(await gi(e))return}else O();e(Z());return}e(X()),pi?e({platformSession:`absent`}):Si(e,{setUserOnSuccess:!0}),pi=!1;return}let t=null;try{if(t=await x(),t.ok&&t.data.user){let n=q(t.data.user);await Q(n?.id??null),e(Y(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(hi(t)&&await gi(e))){if(qe()&&Ue())try{let t=await Be();if(t){Ge(t),await He();let n=await x();if(n.ok&&n.data.user){let t=q(n.data.user);await Q(t?.id??null),e(Y(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),hi(t)||O(),e(Z())}},connectLocalAssistant:async n=>{await ye(he().find(e=>e.assistantId===n)),await D(n),e(X()),await E.checkAssistant(),Et(t().platformSession,t().platformSessionRestoredOffline)&&rn(n),Ci(e)},connectPlatformAssistant:async t=>{await D(t);let n=await x();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=q(n.data.user);await Q(r?.id??null),await k.getState().fetchOrganizations(),e(Y(r))},refreshSession:async()=>{if(h())return await wi()?(e({...X(),platformSession:`absent`}),!0):(e(Z()),!1);if(p()){try{await ve(ue()),e({sessionStatus:`authenticated`})}catch{return e(Z()),!1}return Ci(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await x(),n.ok&&n.data.user){let t=q(n.data.user);if(await Q(t?.id??null),m())try{await k.getState().fetchOrganizations();let e=await Ne();e.ok&&await re(e.data,k.getState().currentOrganizationId??void 0)}catch{}return e(Y(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(hi(n))return w(t().sessionStatus);if(_()){let n=w(t().sessionStatus);return n&&(O(),e({...X(),platformSession:`absent`})),n}return O(),await Q(null),e(Z()),!1},logout:async()=>{if(p()){E.resetForLogout(),await D(null),me(),Gt(),ui(),e(Z()),vi();return}pi=!0,await or(),await qn();try{await ze()}finally{v()&&await window.vellum?.auth?.signOut?.(),m()&&!v()&&await ie(),Ke(),Gt(),ui(),E.resetForLogout(),await D(null),e(Z()),vi()}}}))),Ti=()=>w($.use.sessionStatus()),Ei=()=>!wt($.use.sessionStatus()),Di=()=>T($.use.platformSession()),Oi=()=>Tt($.use.platformSession()),ki=()=>Et($.use.platformSession(),$.use.platformSessionRestoredOffline());function Ai(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=Fe(`app.resume`,()=>{Ve()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(J=new BroadcastChannel(`auth`),J.onmessage=()=>{ui(),window.location.reload()},t.push(()=>{J?.close(),J=null})),()=>t.forEach(e=>e())}export{Nt as $,Ln as A,In as B,ur as C,Gn as D,ar as E,wn as F,P as G,Fn as H,N as I,Xt as J,rn as K,Cn as L,On as M,kn as N,qn as O,An as P,Wt as Q,Mn as R,pr as S,cr as T,Dn as U,Pn as V,Rn as W,Kt as X,A as Y,k as Z,Rr as _,Ti as a,wt as at,lr as b,qr as c,bt as ct,Kr as d,at as dt,D as et,Wr as f,ot as ft,Ir as g,Fr as h,C as ht,Di as i,Et as it,jn as j,xn as k,K as l,ct as lt,Sr as m,tt as mt,$ as n,T as nt,Oi as o,Ot as ot,Cr as p,nt as pt,nn as q,ki as r,w as rt,Ei as s,Ct as st,Ai as t,E as tt,Xr as u,lt as ut,zr as v,fr as w,hr as x,_r as y,Nn as z};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./createLucideIcon-CAM1RhH8.js";import{ht as r}from"./risk-FjW-m05l.js";import{n as i}from"./resolved-assistants-store-8HQDfxZh.js";import{h as a}from"./sdk.gen-BySz4QYj.js";import{t as o}from"./background-task-store-CN04oS2z.js";var s=n(`file-terminal`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m8 16 2-2-2-2`,key:`10vzyd`}],[`path`,{d:`M12 18h4`,key:`1wd2n7`}]]),c=e(t(),1);function l(e){return e===`host_bash`?s:r}function u({toolName:e,className:t}){return(0,c.createElement)(l(e),{className:t,"aria-hidden":!0})}function d(){let e=i.getState().activeAssistantId;if(!e)throw Error(`No active assistant`);return e}async function f(e){let t=d(),n=o.getState(),r=n.byId[e]?.status;n.cancelTask(e);try{let{data:n,response:r}=await a({path:{assistant_id:t},body:{id:e},throwOnError:!1});if(!r?.ok||n?.cancelled===!1)throw Error(`Failed to stop background task: ${r?.status} (cancelled=${n?.cancelled})`)}catch(t){throw r!==void 0&&o.getState().restoreTaskStatus(e,r),t}}export{u as n,l as r,f as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./createLucideIcon-CAM1RhH8.js";import{ht as r}from"./risk-uPLh5W5z.js";import{n as i}from"./resolved-assistants-store-8HQDfxZh.js";import{h as a}from"./sdk.gen-BySz4QYj.js";import{t as o}from"./background-task-store-CN04oS2z.js";var s=n(`file-terminal`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m8 16 2-2-2-2`,key:`10vzyd`}],[`path`,{d:`M12 18h4`,key:`1wd2n7`}]]),c=e(t(),1);function l(e){return e===`host_bash`?s:r}function u({toolName:e,className:t}){return(0,c.createElement)(l(e),{className:t,"aria-hidden":!0})}function d(){let e=i.getState().activeAssistantId;if(!e)throw Error(`No active assistant`);return e}async function f(e){let t=d(),n=o.getState(),r=n.byId[e]?.status;n.cancelTask(e);try{let{data:n,response:r}=await a({path:{assistant_id:t},body:{id:e},throwOnError:!1});if(!r?.ok||n?.cancelled===!1)throw Error(`Failed to stop background task: ${r?.status} (cancelled=${n?.cancelled})`)}catch(t){throw r!==void 0&&o.getState().restoreTaskStatus(e,r),t}}export{u as n,l as r,f as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-FWzaVb8P.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{r as a,t as o}from"./background-task-actions-yrapeY1n.js";import"./src-BAS7a2RG.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-CN04oS2z.js";import{t as d}from"./detail-shell-D9L3L7AM.js";import{t as f}from"./status-badge-pill-ZNNoKV1T.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-86ruMQAQ.js";import{t as h}from"./detail-panel-stop-button-DgKaA6yz.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,f=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-FWzaVb8P.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{r as a,t as o}from"./background-task-actions-DX0pUvY9.js";import"./src-BAS7a2RG.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-CN04oS2z.js";import{t as d}from"./detail-shell-D9L3L7AM.js";import{t as f}from"./status-badge-pill-ZNNoKV1T.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-CXcjfDGo.js";import{t as h}from"./detail-panel-stop-button-DgKaA6yz.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,f=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};