@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 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-FWzaVb8P.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-Dy5001j6.js";import{m as a,u as o}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./progress-bar-CJxkStgF.js";import{_ as ee,b as te,f as u,g as ne,it as re,j as ie,ot as d,w as f}from"./local-mode-9zpgPNoq.js";import{t as p}from"./is-electron-7N7iyz1y.js";import{n as m}from"./resolved-assistants-store-8HQDfxZh.js";import{r as ae}from"./api-errors-SZKDzMLE.js";import{Y as h,at as g,dt as _,et as v,ft as oe,lt as se,n as ce,tt as le,ut as ue}from"./auth-store-w_EmIQP7.js";import{a as de,o as fe,r as y}from"./api-C8TlQNEU.js";import{d as b}from"./routes-GmNvdtLW.js";import{h as pe,o as me}from"./prefs-B6fvTCOn.js";import{a as x,t as S}from"./navigation-resolver-CIICT6n9.js";import{t as C}from"./build-state-DDUJ0MId.js";import{t as w}from"./avatar-bundled-components-CTd294ra.js";import{t as T}from"./avatar-svg-compositor-DclcUb1M.js";import{t as E}from"./onboarding-layout-K7X9fV8B.js";import{t as he}from"./provider-key-w3CzmGtq.js";import{a as ge,i as _e,n as D,r as O,t as k}from"./avatar-random-IysJ0Bdt.js";import{t as A}from"./plugin-attribution-Hjqz10My.js";var j=e(r(),1),M=c(),ve=800,N=null,P=null,F=null;function I(){N=null,P=null,F=null}var ye={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,be={initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,resizing:`Setting up your machine…`,ready:`Ready`};function xe(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function Se(){let e=x(C(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let e=o(),r=s(),[c]=a(),x=c.get(`hosting`),C=c.get(`fail`),L=c.get(A),R=p(),z=u()&&x!==null&&x!==`vellum-cloud`,B=x===`vellum-cloud`,V=c.get(S)===`1`,H=ce.use.sessionStatus(),Ce=z?g(H):H,[U]=(0,j.useState)(()=>F??=k(w)),we=(0,j.useMemo)(()=>{let e=T(w,U.bodyShape,U.eyeStyle,U.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[U]),[W,G]=(0,j.useState)(`initializing`),[Te,K]=(0,j.useState)(null),[Ee,q]=(0,j.useState)(!1),[De,Oe]=(0,j.useState)(0),[ke,J]=(0,j.useState)(0),[Ae,je]=(0,j.useState)(0),Y=(0,j.useRef)(W),X=(0,j.useRef)(0),Z=(0,j.useRef)(0),Q=(0,j.useRef)(0),$=(0,j.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,G(e),je(e=>e+1)},[]);return(0,j.useEffect)(()=>{if(C!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let i=Se();if(i.kind===`redirect`){e(i.to,{replace:!0});return}if(i.kind===`wait`)return;B&&u()&&(d(),re(null)),q(!1);let a=!1,o=null,s=null,c=null,l=Date.now(),p,g=!1,S=!1,w=me(),T=t=>{try{pe(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,G(`ready`),Y.current=`ready`,s=setTimeout(()=>{a||(I(),(async()=>{if(await le.checkAssistant(),!a){if(z){let n=new URLSearchParams;x&&n.set(`hosting`,x),t&&n.set(`assistant`,t),L&&n.set(A,L);let r=n.toString();e(`${b.onboarding.research}${r?`?${r}`:``}`,{replace:!0});return}e(b.onboarding.research,{replace:!0})}})())},ve)},E=e=>ge(e,U,r),k=async()=>{if($(`provisioning`),!z){try{let e=await y(),t=_(e);if(!a&&e.ok&&t.kind===`active`){u()&&f(e.data.id,e.data.name,h()??void 0),await M(e.data.id);return}t.kind===`auto_hatch`&&(S=!0)}catch{}if(a)return}if(z){try{N||=ie(void 0,x===`docker`?`docker`:void 0);let e=await N;if(a)return;if(!e.ok){I(),K(e.error??`Failed to hatch local assistant.`);return}await ne(),e.assistantId&&v(e.assistantId),$(`connecting`);let t=!1;for(;!a&&!t;){if(await te()){d(),await ee(),t=!0;break}if(Date.now()-l>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{c=setTimeout(e,O)}),c=null}if(a)return;if(e.assistantId)try{await he(e.assistantId)}catch(e){n(e,{context:`onboarding_apply_provider_key`})}e.assistantId&&await ce.getState().connectLocalAssistant(e.assistantId),e.assistantId&&(m.getState().upsertFromApi({id:e.assistantId,name:e.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),v(e.assistantId),E(e.assistantId)),T(e.assistantId)}catch{if(I(),a)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=fe(w?{version:w}:void 0);let e=await P;if(P=null,a)return;if(e.ok&&(p=e.data.id),g=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),ue(e.status,e.error)){K(se),q(!0);return}if(!oe(e.status)){K(ae(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,n(e,{context:`onboarding_hatch_assistant`}),a)return}j(0)},j=e=>{a||(o=setTimeout(F,e))},M=async e=>{for($(`connecting`);!a;){try{if((await de(e)).ok)break}catch{}if(Date.now()-l>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{o=setTimeout(e,O)}),o=null}if(a)return;let n=await _e({assistantId:e,postCheckoutReturn:V,managedHatch:B,hatchStartMs:l,isCancelled:()=>a,onResizeWait:()=>$(`resizing`),registerTimer:e=>{o=e}});if(!a){if(n===`health_timeout`){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:D,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}T()}},F=async()=>{if(!a){if(Date.now()-l>=3e5){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:D}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await y(p);if(a||p&&!e.ok&&e.status===404&&(p=void 0,e=await y(),a))return;let t=_(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;m.getState().upsertFromApi(e.data),v(t),(g||S)&&E(t),u()&&f(t,e.data.name,h()??void 0),await M(t);return}T();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),j(O)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),a)return;j(O)}}};return k(),()=>{a=!0,o&&clearTimeout(o),s&&clearTimeout(s),c&&clearTimeout(c)}},[De,C,U,B,V,Ce,e,r,$,z]),(0,j.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=ye[Y.current],i=xe(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Ae]),Te?(0,M.jsx)(E,{children:(0,M.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,M.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:`Something went wrong`}),(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:Te}),Ee&&(0,M.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,M.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Get started today with a local assistant`}),(0,M.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,children:(0,M.jsx)(`a`,{href:`${window.location.origin}/download`,children:`Download the macOS app`})})]}),(0,M.jsx)(`img`,{src:we,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,M.jsxs)(`div`,{className:`flex w-full flex-col ${R?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[(0,M.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,G(`initializing`),J(0),je(e=>e+1),K(null),q(!1),Oe(e=>e+1)},children:`Try again`}),(0,M.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(z?b.onboarding.hosting:b.onboarding.privacy,{replace:!0}),children:`Back`})]})]})}):(0,M.jsx)(E,{children:(0,M.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,M.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:W===`ready`?`Your assistant is ready!`:`Waking up…`}),W!==`ready`&&(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:`Hang tight — your assistant will have a few questions for you once it's up.`}),(0,M.jsx)(`img`,{src:we,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} ${W===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,M.jsx)(l,{value:ke,height:6,className:`w-full ${R?`max-w-[200px]`:`max-w-sm`}`,"aria-label":`Assistant startup progress`}),(0,M.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${R?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:be[W]})]})})}export{R as HatchingScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-FWzaVb8P.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-Dy5001j6.js";import{m as a,u as o}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./progress-bar-CJxkStgF.js";import{_ as ee,b as te,f as u,g as ne,it as re,j as ie,ot as d,w as f}from"./local-mode-9zpgPNoq.js";import{t as p}from"./is-electron-7N7iyz1y.js";import{n as m}from"./resolved-assistants-store-8HQDfxZh.js";import{r as ae}from"./api-errors-SZKDzMLE.js";import{Y as h,at as g,dt as _,et as v,ft as oe,lt as se,n as ce,tt as le,ut as ue}from"./auth-store-BwKMFgpK.js";import{a as de,o as fe,r as y}from"./api-C8TlQNEU.js";import{d as b}from"./routes-GmNvdtLW.js";import{h as pe,o as me}from"./prefs-B6fvTCOn.js";import{a as x,t as S}from"./navigation-resolver-Lxhf-tbn.js";import{t as C}from"./build-state-DPMhQpLB.js";import{t as w}from"./avatar-bundled-components-CTd294ra.js";import{t as T}from"./avatar-svg-compositor-DclcUb1M.js";import{t as E}from"./onboarding-layout-K7X9fV8B.js";import{t as he}from"./provider-key-w3CzmGtq.js";import{a as ge,i as _e,n as D,r as O,t as k}from"./avatar-random-IysJ0Bdt.js";import{t as A}from"./plugin-attribution-Hjqz10My.js";var j=e(r(),1),M=c(),ve=800,N=null,P=null,F=null;function I(){N=null,P=null,F=null}var ye={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,be={initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,resizing:`Setting up your machine…`,ready:`Ready`};function xe(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function Se(){let e=x(C(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let e=o(),r=s(),[c]=a(),x=c.get(`hosting`),C=c.get(`fail`),L=c.get(A),R=p(),z=u()&&x!==null&&x!==`vellum-cloud`,B=x===`vellum-cloud`,V=c.get(S)===`1`,H=ce.use.sessionStatus(),Ce=z?g(H):H,[U]=(0,j.useState)(()=>F??=k(w)),we=(0,j.useMemo)(()=>{let e=T(w,U.bodyShape,U.eyeStyle,U.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[U]),[W,G]=(0,j.useState)(`initializing`),[Te,K]=(0,j.useState)(null),[Ee,q]=(0,j.useState)(!1),[De,Oe]=(0,j.useState)(0),[ke,J]=(0,j.useState)(0),[Ae,je]=(0,j.useState)(0),Y=(0,j.useRef)(W),X=(0,j.useRef)(0),Z=(0,j.useRef)(0),Q=(0,j.useRef)(0),$=(0,j.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,G(e),je(e=>e+1)},[]);return(0,j.useEffect)(()=>{if(C!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let i=Se();if(i.kind===`redirect`){e(i.to,{replace:!0});return}if(i.kind===`wait`)return;B&&u()&&(d(),re(null)),q(!1);let a=!1,o=null,s=null,c=null,l=Date.now(),p,g=!1,S=!1,w=me(),T=t=>{try{pe(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,G(`ready`),Y.current=`ready`,s=setTimeout(()=>{a||(I(),(async()=>{if(await le.checkAssistant(),!a){if(z){let n=new URLSearchParams;x&&n.set(`hosting`,x),t&&n.set(`assistant`,t),L&&n.set(A,L);let r=n.toString();e(`${b.onboarding.research}${r?`?${r}`:``}`,{replace:!0});return}e(b.onboarding.research,{replace:!0})}})())},ve)},E=e=>ge(e,U,r),k=async()=>{if($(`provisioning`),!z){try{let e=await y(),t=_(e);if(!a&&e.ok&&t.kind===`active`){u()&&f(e.data.id,e.data.name,h()??void 0),await M(e.data.id);return}t.kind===`auto_hatch`&&(S=!0)}catch{}if(a)return}if(z){try{N||=ie(void 0,x===`docker`?`docker`:void 0);let e=await N;if(a)return;if(!e.ok){I(),K(e.error??`Failed to hatch local assistant.`);return}await ne(),e.assistantId&&v(e.assistantId),$(`connecting`);let t=!1;for(;!a&&!t;){if(await te()){d(),await ee(),t=!0;break}if(Date.now()-l>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{c=setTimeout(e,O)}),c=null}if(a)return;if(e.assistantId)try{await he(e.assistantId)}catch(e){n(e,{context:`onboarding_apply_provider_key`})}e.assistantId&&await ce.getState().connectLocalAssistant(e.assistantId),e.assistantId&&(m.getState().upsertFromApi({id:e.assistantId,name:e.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),v(e.assistantId),E(e.assistantId)),T(e.assistantId)}catch{if(I(),a)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=fe(w?{version:w}:void 0);let e=await P;if(P=null,a)return;if(e.ok&&(p=e.data.id),g=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),ue(e.status,e.error)){K(se),q(!0);return}if(!oe(e.status)){K(ae(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,n(e,{context:`onboarding_hatch_assistant`}),a)return}j(0)},j=e=>{a||(o=setTimeout(F,e))},M=async e=>{for($(`connecting`);!a;){try{if((await de(e)).ok)break}catch{}if(Date.now()-l>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{o=setTimeout(e,O)}),o=null}if(a)return;let n=await _e({assistantId:e,postCheckoutReturn:V,managedHatch:B,hatchStartMs:l,isCancelled:()=>a,onResizeWait:()=>$(`resizing`),registerTimer:e=>{o=e}});if(!a){if(n===`health_timeout`){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:D,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}T()}},F=async()=>{if(!a){if(Date.now()-l>=3e5){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:D}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await y(p);if(a||p&&!e.ok&&e.status===404&&(p=void 0,e=await y(),a))return;let t=_(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;m.getState().upsertFromApi(e.data),v(t),(g||S)&&E(t),u()&&f(t,e.data.name,h()??void 0),await M(t);return}T();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),j(O)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),a)return;j(O)}}};return k(),()=>{a=!0,o&&clearTimeout(o),s&&clearTimeout(s),c&&clearTimeout(c)}},[De,C,U,B,V,Ce,e,r,$,z]),(0,j.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=ye[Y.current],i=xe(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Ae]),Te?(0,M.jsx)(E,{children:(0,M.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,M.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:`Something went wrong`}),(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:Te}),Ee&&(0,M.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,M.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Get started today with a local assistant`}),(0,M.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,children:(0,M.jsx)(`a`,{href:`${window.location.origin}/download`,children:`Download the macOS app`})})]}),(0,M.jsx)(`img`,{src:we,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,M.jsxs)(`div`,{className:`flex w-full flex-col ${R?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[(0,M.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,G(`initializing`),J(0),je(e=>e+1),K(null),q(!1),Oe(e=>e+1)},children:`Try again`}),(0,M.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(z?b.onboarding.hosting:b.onboarding.privacy,{replace:!0}),children:`Back`})]})]})}):(0,M.jsx)(E,{children:(0,M.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,M.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:W===`ready`?`Your assistant is ready!`:`Waking up…`}),W!==`ready`&&(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:`Hang tight — your assistant will have a few questions for you once it's up.`}),(0,M.jsx)(`img`,{src:we,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} ${W===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,M.jsx)(l,{value:ke,height:6,className:`w-full ${R?`max-w-[200px]`:`max-w-sm`}`,"aria-label":`Assistant startup progress`}),(0,M.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${R?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:be[W]})]})})}export{R as HatchingScreen};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{l as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./cn-CJf7MmLX.js";import{t as l}from"./typography-DEI9Ra9z.js";import{t as u}from"./arrow-left-C2ylPLHq.js";import{t as d}from"./bell-Ct4a9v6Y.js";import{t as f}from"./calendar-RYdAv74D.js";import{t as p}from"./chevron-right-HU6H84S0.js";import{a as m,c as h,d as g,f as _,i as v,l as y,m as b,n as x,o as S,p as C,r as w,s as T,t as E,u as D}from"./utils-Ction0uF.js";import{t as O}from"./mail-DABv3_Ue.js";import{t as k}from"./rotate-ccw-Da_2DvhY.js";import{t as A}from"./trash-2-De6X8YiM.js";import{t as j}from"./x-DuBvjmAE.js";import{f as M,g as N,i as P}from"./src-BAS7a2RG.js";import{t as F}from"./tag-D8NAGb0r.js";import{d as I}from"./routes-GmNvdtLW.js";import{R as L,z as R}from"./react-query.gen-0mspArBl.js";import{t as z}from"./conversation-navigation-tj2ntPAn.js";import{n as B}from"./use-is-mobile-Cx2xnNUx.js";import{a as V}from"./conversation-cache-BzPdBPXN.js";import{t as H}from"./chat-layout-slots-store-C325hn1X.js";import{a as U,i as W,n as ee}from"./conversation-queries-str0jfqv.js";import{t as te}from"./native-anchor-BpfRwc60.js";import{t as ne}from"./use-active-assistant-id-CjvzlL4t.js";import{n as G,r as K}from"./format-date-CKGQir4m.js";import{t as re}from"./page-shell-CN7ioeP_.js";import{n as ie,t as q}from"./detail-drawer-BglFkWVa.js";import{s as J,t as ae}from"./page-empty-state-B0da-Sm9.js";var Y=e(t(),1),X=s(),oe={p:({children:e})=>(0,X.jsx)(`p`,{className:`mb-2 text-body-medium-default last:mb-0`,style:{color:`var(--content-secondary)`},children:e}),strong:({children:e})=>(0,X.jsx)(`strong`,{style:{color:`var(--content-default)`},children:e}),em:({children:e})=>(0,X.jsx)(`em`,{style:{color:`var(--content-default)`},children:e}),a:({href:e,children:t})=>(0,X.jsx)(`a`,{href:e,className:`underline`,style:{color:`var(--content-link)`},target:`_blank`,rel:`noopener noreferrer`,onClick:t=>te(t,e),children:t}),ul:({children:e})=>(0,X.jsx)(`ul`,{className:`mb-2 list-disc pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),ol:({children:e})=>(0,X.jsx)(`ol`,{className:`mb-2 list-decimal pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),li:({children:e})=>(0,X.jsx)(`li`,{className:`mb-0.5`,children:e}),code:({children:e})=>(0,X.jsx)(`code`,{className:`rounded px-1 py-0.5 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 8%, transparent)`,color:`var(--content-default)`},children:e}),pre:({children:e})=>(0,X.jsx)(`pre`,{className:`mb-2 overflow-x-auto rounded p-3 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`,color:`var(--content-default)`},children:e}),h1:({children:e})=>(0,X.jsx)(`h1`,{className:`mb-2 text-title-medium first:mt-0`,style:{color:`var(--content-default)`},children:e}),h2:({children:e})=>(0,X.jsx)(`h2`,{className:`mb-2 text-title-small first:mt-0`,style:{color:`var(--content-default)`},children:e}),h3:({children:e})=>(0,X.jsx)(`h3`,{className:`mb-1 text-body-medium-default first:mt-0`,style:{color:`var(--content-default)`},children:e}),blockquote:({children:e})=>(0,X.jsx)(`blockquote`,{className:`mb-2 border-l-2 pl-3 text-body-medium-default`,style:{borderColor:`var(--border-base)`,color:`var(--content-tertiary)`},children:e}),table:({children:e})=>(0,X.jsx)(`div`,{className:`mb-2 overflow-x-auto`,children:(0,X.jsx)(`table`,{className:`w-full border-collapse text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}),thead:({children:e})=>(0,X.jsx)(`thead`,{style:{backgroundColor:`var(--surface-lift)`},children:e}),tbody:({children:e})=>(0,X.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,X.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:e}),th:({children:e})=>(0,X.jsx)(`th`,{className:`px-2 py-1.5 text-left font-semibold`,style:{color:`var(--content-default)`},children:e}),td:({children:e})=>(0,X.jsx)(`td`,{className:`px-2 py-1.5 align-top`,children:e})};function se({content:e,className:t}){return(0,X.jsx)(`div`,{className:c(`text-body-medium-default`,t),children:(0,X.jsx)(N,{remarkPlugins:[M],components:oe,children:e})})}function Z({item:e}){return(0,X.jsx)(se,{content:e.summary})}function ce(e){switch(e){case`revoked`:case`expired`:return`var(--system-negative-strong)`;case`missing_scopes`:case`missing_token`:case`ping_failed`:return`var(--system-mid-strong)`;default:return`var(--content-disabled)`}}function le(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function Q({item:e}){let t=e.metadata,n=t?.provider;if(!n)return(0,X.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:e.title??e.summary});let r=t?.accountInfo??null,i=t?.status??`unreachable`,a=t?.details??``,o=Array.isArray(t?.missingScopes)?t.missingScopes:[];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,X.jsx)(l,{variant:`title-small`,as:`h3`,children:n}),r?(0,X.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:r}):null,(0,X.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[(0,X.jsx)(`span`,{className:`inline-block shrink-0 rounded-full`,style:{width:8,height:8,backgroundColor:ce(i)},"aria-hidden":`true`}),(0,X.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:le(i)})]}),a?(0,X.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:a}):null,o.length>0?(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:[(0,X.jsx)(l,{variant:`body-small-emphasised`,className:`text-[var(--content-secondary)]`,children:`Missing scopes`}),(0,X.jsx)(`ul`,{className:`m-0 flex list-disc flex-col gap-[var(--app-spacing-xxs)] pl-[var(--app-spacing-lg)]`,children:o.map(e=>(0,X.jsx)(`li`,{children:(0,X.jsx)(l,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e})},e))})]}):null]})}function ue(e){return e&&g[e]?g[e]:g.system}function de(e){return e.title?e.title:e.category?e.category.charAt(0).toUpperCase()+e.category.slice(1):`Notification`}function fe({item:e,isMobile:t,validConversationIds:r,onClose:i,onGoToThread:a,onUpdateStatus:o,onDismiss:s,onViewSchedule:c}){if(!e)return null;let d=e.detailPanel?.kind,p=de(e),m=ue(e.category),h=m.icon,g=e.status===`new`,_=e.status===`dismissed`,v=!!e.conversationId&&r.has(e.conversationId);return t?(0,X.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,X.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,X.jsx)(n,{variant:`ghost`,iconOnly:(0,X.jsx)(u,{}),onClick:i,"aria-label":`Back`,tooltip:`Back`}),(0,X.jsx)(l,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,X.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,X.jsx)(n,{variant:`ghost`,iconOnly:g?(0,X.jsx)(b,{}):(0,X.jsx)(O,{}),onClick:()=>o(e.id,g?`seen`:`new`),"aria-label":g?`Mark as read`:`Mark as unread`,tooltip:g?`Mark as read`:`Mark as unread`}),_?(0,X.jsx)(n,{variant:`ghost`,iconOnly:(0,X.jsx)(k,{}),onClick:()=>o(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,X.jsx)(n,{variant:`ghost`,iconOnly:(0,X.jsx)(A,{}),onClick:()=>s(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,X.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,X.jsx)(h,{width:18,height:18,style:{color:m.strong}})}),(0,X.jsx)(l,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:p}),(0,X.jsx)(F,{tone:`neutral`,className:`shrink-0`,title:G(e.timestamp),children:K(e.timestamp)})]}),(0,X.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,X.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:d===`toolPermission`?(0,X.jsx)(Q,{item:e}):(0,X.jsx)(Z,{item:e})}),v||c?(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[c?(0,X.jsx)(n,{variant:`outlined`,fullWidth:!0,leftIcon:(0,X.jsx)(f,{className:`size-4`}),onClick:c,children:`View schedule`}):null,v?(0,X.jsx)(n,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:`Go to Conversation`}):null]}):null]}):(0,X.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-xl)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,X.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,X.jsx)(h,{width:14,height:14,style:{color:m.strong}})}),(0,X.jsx)(l,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:p}),v?(0,X.jsx)(n,{variant:`outlined`,onClick:()=>a(e.conversationId),children:`Go to Convo`}):null,(0,X.jsx)(n,{variant:`outlined`,iconOnly:(0,X.jsx)(j,{}),onClick:i,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,X.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:[d===`toolPermission`?(0,X.jsx)(Q,{item:e}):(0,X.jsx)(Z,{item:e}),(0,X.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,X.jsx)(F,{tone:`neutral`,title:G(e.timestamp),children:K(e.timestamp)})})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-[var(--app-spacing-sm)] border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,X.jsx)(`div`,{children:c?(0,X.jsx)(n,{variant:`outlined`,leftIcon:(0,X.jsx)(f,{className:`size-4`}),onClick:c,children:`View schedule`}):null}),(0,X.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:_?(0,X.jsx)(n,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:`Restore`}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(n,{variant:`outlined`,onClick:()=>o(e.id,g?`seen`:`new`),children:g?`Mark as read`:`Mark as unread`}),(0,X.jsx)(n,{variant:`primary`,onClick:()=>s(e.id),children:`Dismiss`})]})})]})]})}var pe={today:`Today`,yesterday:`Yesterday`,older:`Older`},me=10080*60*1e3;function $(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>me}function he({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:c,onArchivedOpenChange:u,dismissedOpen:f,onDismissedOpenChange:m}){let[g,y]=(0,Y.useState)(null),[b]=(0,Y.useState)(()=>Date.now()),C=x(e.filter(e=>e.status!==`dismissed`)),T=C.filter(e=>!$(e,b)),E=h(C.filter(e=>$(e,b))),O=v(T),k=g&&O.includes(g)?g:null;g!==k&&y(k);let A=S(h(w(T,k))),j=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,X.jsx)(_,{categories:O,activeFilter:k,onFilterChange:y}),A.size===0?k?(0,X.jsx)(l,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:`No items match the selected filter.`}):(0,X.jsx)(ae,{icon:d,title:`No notifications yet`,description:`Updates and activity from your assistant will appear here.`}):[...A.entries()].map(([e,a])=>(0,X.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,X.jsx)(l,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:pe[e]}),(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:a.map(e=>(0,X.jsx)(D,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),E.length>0&&(0,X.jsx)(P.Root,{type:`single`,collapsible:!0,value:c?`archived-read`:``,onValueChange:e=>u?.(e===`archived-read`),children:(0,X.jsxs)(P.Item,{value:`archived-read`,children:[(0,X.jsxs)(P.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,X.jsx)(p,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,X.jsxs)(`span`,{children:[`Earlier (`,E.length,`)`]})]}),(0,X.jsx)(P.Content,{children:(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:E.map(e=>(0,X.jsx)(D,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),j.length>0&&(0,X.jsx)(P.Root,{type:`single`,collapsible:!0,value:f?`dismissed`:``,onValueChange:e=>m?.(e===`dismissed`),children:(0,X.jsxs)(P.Item,{value:`dismissed`,children:[(0,X.jsxs)(P.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,X.jsx)(p,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,X.jsxs)(`span`,{children:[`Dismissed (`,j.length,`)`]})]}),(0,X.jsx)(P.Content,{children:(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:j.map(e=>(0,X.jsx)(D,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function ge(){return(0,X.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:`Activity`})}function _e(e){let t=a(),n=(0,Y.useMemo)(()=>R({path:{assistant_id:e??``}}),[e]),r=o({...L({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,Y.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function ve(){return(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,X.jsx)(`div`,{className:`h-7 w-64 animate-pulse rounded-md bg-[var(--surface-lift)]`}),(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,X.jsx)(`div`,{className:`h-16 animate-pulse rounded-md bg-[var(--surface-lift)]`},t))})]})}function ye(e){let t=e?.metadata?.scheduleId;return typeof t==`string`&&t.length>0?t:null}function be({assistantId:e,validConversationIds:t,onOpenConversation:r,onViewSchedule:i,initialFeedItemId:a,navigationKey:s,onInitialFeedItemConsumed:c}){let l=B(),u=y(e);_e(e);let{data:d}=o(J(e)),[f,p]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(!1),[_,v]=(0,Y.useState)(!1),b=(0,Y.useCallback)(e=>{e.status===`new`?(p({...e,status:`seen`}),u.updateStatus.mutate({itemId:e.id,status:`seen`})):p(e)},[u.updateStatus]),x=(0,Y.useCallback)(()=>{p(null)},[]),S=(0,Y.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`dismissed`}),f?.id===e&&p(null)},[u.updateStatus,f?.id]),w=(0,Y.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`seen`}),p(t=>t?.id===e?{...t,status:`seen`}:t)},[u.updateStatus]),D=(0,Y.useCallback)((e,t)=>{u.updateStatus.mutate({itemId:e,status:t}),p(n=>n?.id===e?{...n,status:t}:n)},[u.updateStatus]),O=(0,Y.useCallback)(e=>{p(null),r(e)},[r]),k=u.data?.items??[],[A,j]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{if(!a||s===A||u.isLoading)return;j(s??null);let e=k.find(e=>e.id===a);e&&e.status!==`dismissed`&&b(e),c?.()},[a,s,A,u.isLoading,k,b,c]);let M=m(k),N=M.filter(e=>e.status===`new`).length,P=M.length,F=C(),I=(0,Y.useCallback)(()=>{u.markAll.mutate(T(M))},[u.markAll,M]),L=(0,Y.useCallback)(()=>{u.markAll.mutate(E(M)),p(null)},[u.markAll,M]),R=ye(f),z=R!=null&&(d??[]).some(e=>e.id===R),V=f?(0,X.jsx)(fe,{item:f,isMobile:l,validConversationIds:t,onClose:x,onGoToThread:O,onUpdateStatus:D,onDismiss:S,onViewSchedule:z?()=>i(R):void 0}):null,H=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[u.isError?(0,X.jsxs)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:[`Couldn't load home feed`,u.error instanceof Error?`: ${u.error.message}`:`.`]}):null,F&&(N>0||P>0)&&(0,X.jsxs)(`div`,{className:`flex items-center justify-end gap-[var(--app-spacing-sm)]`,children:[N>0&&(0,X.jsx)(n,{variant:`ghost`,size:`compact`,onClick:I,disabled:u.markAll.isPending,children:`Mark all as read`}),P>0&&(0,X.jsx)(n,{variant:`ghost`,size:`compact`,onClick:L,disabled:u.markAll.isPending,children:`Clear all`})]}),(0,X.jsx)(he,{items:k,selectedItemId:f?.id,validConversationIds:t,onSelectItem:b,onDismissItem:S,onRestoreItem:w,onToggleRead:D,onGoToThread:O,archivedOpen:h,onArchivedOpenChange:g,dismissedOpen:_,onDismissedOpenChange:v})]}),U=V&&!l?(0,X.jsx)(q,{storageKey:`homeDetailDrawerWidth`,detailKey:f?.id,section:H,detail:V}):H,W=u.isLoading?(0,X.jsx)(ve,{}):(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[l?null:(0,X.jsx)(ge,{}),U]});return V&&l?(0,X.jsx)(ie,{children:V}):(0,X.jsx)(re,{children:W})}function xe(){let e=i(),t=r(),n=ne(),a=t.state?.feedItemId??null,o=(0,Y.useCallback)(()=>{e(t.pathname+t.search,{replace:!0})},[e,t.pathname,t.search]),s=H.use.setTopBarCenter(),c=B(),{conversations:u}=W(n),{conversations:d}=ee(n,!0),{conversations:f}=U(n,!0),p=(0,Y.useMemo)(()=>new Set(V(u,d,f).map(e=>e.conversationId)),[u,d,f]);return(0,Y.useEffect)(()=>(s(c?(0,X.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{s(null)}),[c,s]),(0,X.jsx)(be,{assistantId:n,validConversationIds:p,initialFeedItemId:a,navigationKey:t.key,onInitialFeedItemConsumed:o,onOpenConversation:t=>z(e,t),onViewSchedule:t=>e(I.schedules.detail(t))})}export{xe as HomePageRoute};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{l as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./cn-CJf7MmLX.js";import{t as l}from"./typography-DEI9Ra9z.js";import{t as u}from"./arrow-left-C2ylPLHq.js";import{t as d}from"./bell-Ct4a9v6Y.js";import{t as f}from"./calendar-RYdAv74D.js";import{t as p}from"./chevron-right-HU6H84S0.js";import{a as m,c as h,d as g,f as _,i as v,l as y,m as b,n as x,o as S,p as C,r as w,s as T,t as E,u as D}from"./utils-Ction0uF.js";import{t as O}from"./mail-DABv3_Ue.js";import{t as k}from"./rotate-ccw-Da_2DvhY.js";import{t as A}from"./trash-2-De6X8YiM.js";import{t as j}from"./x-DuBvjmAE.js";import{f as M,g as N,i as P}from"./src-BAS7a2RG.js";import{t as F}from"./tag-D8NAGb0r.js";import{d as I}from"./routes-GmNvdtLW.js";import{R as L,z as R}from"./react-query.gen-0mspArBl.js";import{t as z}from"./conversation-navigation-D63NJmBl.js";import{n as B}from"./use-is-mobile-Cx2xnNUx.js";import{a as V}from"./conversation-cache-BzPdBPXN.js";import{t as H}from"./chat-layout-slots-store-C325hn1X.js";import{a as U,i as W,n as ee}from"./conversation-queries-3taor2DZ.js";import{t as te}from"./native-anchor-BiuEQHcy.js";import{t as ne}from"./use-active-assistant-id-CjvzlL4t.js";import{n as G,r as K}from"./format-date-CKGQir4m.js";import{t as re}from"./page-shell-CN7ioeP_.js";import{n as ie,t as q}from"./detail-drawer-BglFkWVa.js";import{s as J,t as ae}from"./page-empty-state-B0da-Sm9.js";var Y=e(t(),1),X=s(),oe={p:({children:e})=>(0,X.jsx)(`p`,{className:`mb-2 text-body-medium-default last:mb-0`,style:{color:`var(--content-secondary)`},children:e}),strong:({children:e})=>(0,X.jsx)(`strong`,{style:{color:`var(--content-default)`},children:e}),em:({children:e})=>(0,X.jsx)(`em`,{style:{color:`var(--content-default)`},children:e}),a:({href:e,children:t})=>(0,X.jsx)(`a`,{href:e,className:`underline`,style:{color:`var(--content-link)`},target:`_blank`,rel:`noopener noreferrer`,onClick:t=>te(t,e),children:t}),ul:({children:e})=>(0,X.jsx)(`ul`,{className:`mb-2 list-disc pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),ol:({children:e})=>(0,X.jsx)(`ol`,{className:`mb-2 list-decimal pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),li:({children:e})=>(0,X.jsx)(`li`,{className:`mb-0.5`,children:e}),code:({children:e})=>(0,X.jsx)(`code`,{className:`rounded px-1 py-0.5 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 8%, transparent)`,color:`var(--content-default)`},children:e}),pre:({children:e})=>(0,X.jsx)(`pre`,{className:`mb-2 overflow-x-auto rounded p-3 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`,color:`var(--content-default)`},children:e}),h1:({children:e})=>(0,X.jsx)(`h1`,{className:`mb-2 text-title-medium first:mt-0`,style:{color:`var(--content-default)`},children:e}),h2:({children:e})=>(0,X.jsx)(`h2`,{className:`mb-2 text-title-small first:mt-0`,style:{color:`var(--content-default)`},children:e}),h3:({children:e})=>(0,X.jsx)(`h3`,{className:`mb-1 text-body-medium-default first:mt-0`,style:{color:`var(--content-default)`},children:e}),blockquote:({children:e})=>(0,X.jsx)(`blockquote`,{className:`mb-2 border-l-2 pl-3 text-body-medium-default`,style:{borderColor:`var(--border-base)`,color:`var(--content-tertiary)`},children:e}),table:({children:e})=>(0,X.jsx)(`div`,{className:`mb-2 overflow-x-auto`,children:(0,X.jsx)(`table`,{className:`w-full border-collapse text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}),thead:({children:e})=>(0,X.jsx)(`thead`,{style:{backgroundColor:`var(--surface-lift)`},children:e}),tbody:({children:e})=>(0,X.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,X.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:e}),th:({children:e})=>(0,X.jsx)(`th`,{className:`px-2 py-1.5 text-left font-semibold`,style:{color:`var(--content-default)`},children:e}),td:({children:e})=>(0,X.jsx)(`td`,{className:`px-2 py-1.5 align-top`,children:e})};function se({content:e,className:t}){return(0,X.jsx)(`div`,{className:c(`text-body-medium-default`,t),children:(0,X.jsx)(N,{remarkPlugins:[M],components:oe,children:e})})}function Z({item:e}){return(0,X.jsx)(se,{content:e.summary})}function ce(e){switch(e){case`revoked`:case`expired`:return`var(--system-negative-strong)`;case`missing_scopes`:case`missing_token`:case`ping_failed`:return`var(--system-mid-strong)`;default:return`var(--content-disabled)`}}function le(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function Q({item:e}){let t=e.metadata,n=t?.provider;if(!n)return(0,X.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:e.title??e.summary});let r=t?.accountInfo??null,i=t?.status??`unreachable`,a=t?.details??``,o=Array.isArray(t?.missingScopes)?t.missingScopes:[];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,X.jsx)(l,{variant:`title-small`,as:`h3`,children:n}),r?(0,X.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:r}):null,(0,X.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[(0,X.jsx)(`span`,{className:`inline-block shrink-0 rounded-full`,style:{width:8,height:8,backgroundColor:ce(i)},"aria-hidden":`true`}),(0,X.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:le(i)})]}),a?(0,X.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:a}):null,o.length>0?(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:[(0,X.jsx)(l,{variant:`body-small-emphasised`,className:`text-[var(--content-secondary)]`,children:`Missing scopes`}),(0,X.jsx)(`ul`,{className:`m-0 flex list-disc flex-col gap-[var(--app-spacing-xxs)] pl-[var(--app-spacing-lg)]`,children:o.map(e=>(0,X.jsx)(`li`,{children:(0,X.jsx)(l,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e})},e))})]}):null]})}function ue(e){return e&&g[e]?g[e]:g.system}function de(e){return e.title?e.title:e.category?e.category.charAt(0).toUpperCase()+e.category.slice(1):`Notification`}function fe({item:e,isMobile:t,validConversationIds:r,onClose:i,onGoToThread:a,onUpdateStatus:o,onDismiss:s,onViewSchedule:c}){if(!e)return null;let d=e.detailPanel?.kind,p=de(e),m=ue(e.category),h=m.icon,g=e.status===`new`,_=e.status===`dismissed`,v=!!e.conversationId&&r.has(e.conversationId);return t?(0,X.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,X.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,X.jsx)(n,{variant:`ghost`,iconOnly:(0,X.jsx)(u,{}),onClick:i,"aria-label":`Back`,tooltip:`Back`}),(0,X.jsx)(l,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,X.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,X.jsx)(n,{variant:`ghost`,iconOnly:g?(0,X.jsx)(b,{}):(0,X.jsx)(O,{}),onClick:()=>o(e.id,g?`seen`:`new`),"aria-label":g?`Mark as read`:`Mark as unread`,tooltip:g?`Mark as read`:`Mark as unread`}),_?(0,X.jsx)(n,{variant:`ghost`,iconOnly:(0,X.jsx)(k,{}),onClick:()=>o(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,X.jsx)(n,{variant:`ghost`,iconOnly:(0,X.jsx)(A,{}),onClick:()=>s(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,X.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,X.jsx)(h,{width:18,height:18,style:{color:m.strong}})}),(0,X.jsx)(l,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:p}),(0,X.jsx)(F,{tone:`neutral`,className:`shrink-0`,title:G(e.timestamp),children:K(e.timestamp)})]}),(0,X.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,X.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:d===`toolPermission`?(0,X.jsx)(Q,{item:e}):(0,X.jsx)(Z,{item:e})}),v||c?(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[c?(0,X.jsx)(n,{variant:`outlined`,fullWidth:!0,leftIcon:(0,X.jsx)(f,{className:`size-4`}),onClick:c,children:`View schedule`}):null,v?(0,X.jsx)(n,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:`Go to Conversation`}):null]}):null]}):(0,X.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-xl)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,X.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,X.jsx)(h,{width:14,height:14,style:{color:m.strong}})}),(0,X.jsx)(l,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:p}),v?(0,X.jsx)(n,{variant:`outlined`,onClick:()=>a(e.conversationId),children:`Go to Convo`}):null,(0,X.jsx)(n,{variant:`outlined`,iconOnly:(0,X.jsx)(j,{}),onClick:i,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,X.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:[d===`toolPermission`?(0,X.jsx)(Q,{item:e}):(0,X.jsx)(Z,{item:e}),(0,X.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,X.jsx)(F,{tone:`neutral`,title:G(e.timestamp),children:K(e.timestamp)})})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-[var(--app-spacing-sm)] border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,X.jsx)(`div`,{children:c?(0,X.jsx)(n,{variant:`outlined`,leftIcon:(0,X.jsx)(f,{className:`size-4`}),onClick:c,children:`View schedule`}):null}),(0,X.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:_?(0,X.jsx)(n,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:`Restore`}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(n,{variant:`outlined`,onClick:()=>o(e.id,g?`seen`:`new`),children:g?`Mark as read`:`Mark as unread`}),(0,X.jsx)(n,{variant:`primary`,onClick:()=>s(e.id),children:`Dismiss`})]})})]})]})}var pe={today:`Today`,yesterday:`Yesterday`,older:`Older`},me=10080*60*1e3;function $(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>me}function he({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:c,onArchivedOpenChange:u,dismissedOpen:f,onDismissedOpenChange:m}){let[g,y]=(0,Y.useState)(null),[b]=(0,Y.useState)(()=>Date.now()),C=x(e.filter(e=>e.status!==`dismissed`)),T=C.filter(e=>!$(e,b)),E=h(C.filter(e=>$(e,b))),O=v(T),k=g&&O.includes(g)?g:null;g!==k&&y(k);let A=S(h(w(T,k))),j=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,X.jsx)(_,{categories:O,activeFilter:k,onFilterChange:y}),A.size===0?k?(0,X.jsx)(l,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:`No items match the selected filter.`}):(0,X.jsx)(ae,{icon:d,title:`No notifications yet`,description:`Updates and activity from your assistant will appear here.`}):[...A.entries()].map(([e,a])=>(0,X.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,X.jsx)(l,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:pe[e]}),(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:a.map(e=>(0,X.jsx)(D,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),E.length>0&&(0,X.jsx)(P.Root,{type:`single`,collapsible:!0,value:c?`archived-read`:``,onValueChange:e=>u?.(e===`archived-read`),children:(0,X.jsxs)(P.Item,{value:`archived-read`,children:[(0,X.jsxs)(P.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,X.jsx)(p,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,X.jsxs)(`span`,{children:[`Earlier (`,E.length,`)`]})]}),(0,X.jsx)(P.Content,{children:(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:E.map(e=>(0,X.jsx)(D,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),j.length>0&&(0,X.jsx)(P.Root,{type:`single`,collapsible:!0,value:f?`dismissed`:``,onValueChange:e=>m?.(e===`dismissed`),children:(0,X.jsxs)(P.Item,{value:`dismissed`,children:[(0,X.jsxs)(P.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,X.jsx)(p,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,X.jsxs)(`span`,{children:[`Dismissed (`,j.length,`)`]})]}),(0,X.jsx)(P.Content,{children:(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:j.map(e=>(0,X.jsx)(D,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function ge(){return(0,X.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:`Activity`})}function _e(e){let t=a(),n=(0,Y.useMemo)(()=>R({path:{assistant_id:e??``}}),[e]),r=o({...L({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,Y.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function ve(){return(0,X.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,X.jsx)(`div`,{className:`h-7 w-64 animate-pulse rounded-md bg-[var(--surface-lift)]`}),(0,X.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,X.jsx)(`div`,{className:`h-16 animate-pulse rounded-md bg-[var(--surface-lift)]`},t))})]})}function ye(e){let t=e?.metadata?.scheduleId;return typeof t==`string`&&t.length>0?t:null}function be({assistantId:e,validConversationIds:t,onOpenConversation:r,onViewSchedule:i,initialFeedItemId:a,navigationKey:s,onInitialFeedItemConsumed:c}){let l=B(),u=y(e);_e(e);let{data:d}=o(J(e)),[f,p]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(!1),[_,v]=(0,Y.useState)(!1),b=(0,Y.useCallback)(e=>{e.status===`new`?(p({...e,status:`seen`}),u.updateStatus.mutate({itemId:e.id,status:`seen`})):p(e)},[u.updateStatus]),x=(0,Y.useCallback)(()=>{p(null)},[]),S=(0,Y.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`dismissed`}),f?.id===e&&p(null)},[u.updateStatus,f?.id]),w=(0,Y.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`seen`}),p(t=>t?.id===e?{...t,status:`seen`}:t)},[u.updateStatus]),D=(0,Y.useCallback)((e,t)=>{u.updateStatus.mutate({itemId:e,status:t}),p(n=>n?.id===e?{...n,status:t}:n)},[u.updateStatus]),O=(0,Y.useCallback)(e=>{p(null),r(e)},[r]),k=u.data?.items??[],[A,j]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{if(!a||s===A||u.isLoading)return;j(s??null);let e=k.find(e=>e.id===a);e&&e.status!==`dismissed`&&b(e),c?.()},[a,s,A,u.isLoading,k,b,c]);let M=m(k),N=M.filter(e=>e.status===`new`).length,P=M.length,F=C(),I=(0,Y.useCallback)(()=>{u.markAll.mutate(T(M))},[u.markAll,M]),L=(0,Y.useCallback)(()=>{u.markAll.mutate(E(M)),p(null)},[u.markAll,M]),R=ye(f),z=R!=null&&(d??[]).some(e=>e.id===R),V=f?(0,X.jsx)(fe,{item:f,isMobile:l,validConversationIds:t,onClose:x,onGoToThread:O,onUpdateStatus:D,onDismiss:S,onViewSchedule:z?()=>i(R):void 0}):null,H=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[u.isError?(0,X.jsxs)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:[`Couldn't load home feed`,u.error instanceof Error?`: ${u.error.message}`:`.`]}):null,F&&(N>0||P>0)&&(0,X.jsxs)(`div`,{className:`flex items-center justify-end gap-[var(--app-spacing-sm)]`,children:[N>0&&(0,X.jsx)(n,{variant:`ghost`,size:`compact`,onClick:I,disabled:u.markAll.isPending,children:`Mark all as read`}),P>0&&(0,X.jsx)(n,{variant:`ghost`,size:`compact`,onClick:L,disabled:u.markAll.isPending,children:`Clear all`})]}),(0,X.jsx)(he,{items:k,selectedItemId:f?.id,validConversationIds:t,onSelectItem:b,onDismissItem:S,onRestoreItem:w,onToggleRead:D,onGoToThread:O,archivedOpen:h,onArchivedOpenChange:g,dismissedOpen:_,onDismissedOpenChange:v})]}),U=V&&!l?(0,X.jsx)(q,{storageKey:`homeDetailDrawerWidth`,detailKey:f?.id,section:H,detail:V}):H,W=u.isLoading?(0,X.jsx)(ve,{}):(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[l?null:(0,X.jsx)(ge,{}),U]});return V&&l?(0,X.jsx)(ie,{children:V}):(0,X.jsx)(re,{children:W})}function xe(){let e=i(),t=r(),n=ne(),a=t.state?.feedItemId??null,o=(0,Y.useCallback)(()=>{e(t.pathname+t.search,{replace:!0})},[e,t.pathname,t.search]),s=H.use.setTopBarCenter(),c=B(),{conversations:u}=W(n),{conversations:d}=ee(n,!0),{conversations:f}=U(n,!0),p=(0,Y.useMemo)(()=>new Set(V(u,d,f).map(e=>e.conversationId)),[u,d,f]);return(0,Y.useEffect)(()=>(s(c?(0,X.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{s(null)}),[c,s]),(0,X.jsx)(be,{assistantId:n,validConversationIds:p,initialFeedItemId:a,navigationKey:t.key,onInitialFeedItemConsumed:o,onOpenConversation:t=>z(e,t),onViewSchedule:t=>e(I.schedules.detail(t))})}export{xe as HomePageRoute};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./arrow-left-C2ylPLHq.js";import{t as s}from"./check-sC49_hjU.js";import{t as c}from"./cloud-RlApB3rO.js";import{t as l}from"./laptop-ByoaxLxg.js";import{it as u,ot as d}from"./local-mode-9zpgPNoq.js";import{t as f}from"./is-electron-7N7iyz1y.js";import{n as p}from"./resolved-assistants-store-8HQDfxZh.js";import{i as m}from"./auth-store-w_EmIQP7.js";import{d as h,o as g}from"./routes-GmNvdtLW.js";import{t as _}from"./client-feature-flag-store-Bg5XEI2b.js";import{t as v}from"./use-onboarding-login-xZhWGmky.js";import{t as y}from"./onboarding-layout-K7X9fV8B.js";import{r as b}from"./provider-key-w3CzmGtq.js";import{n as x,t as S}from"./session-corner-action-CqofVz_i.js";var C=e(t(),1),w=a(),T=`h-5 w-5 shrink-0`;function E(){let e=m(),t=_.use.multiPlatformAssistant(),n=p.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,w.jsx)(c,{className:T}),...!e||!t&&n?{disabled:!0,badge:e?`Limit Reached`:`Requires Account`}:{}},{mode:`local`,label:`Local`,subtitle:`Runs directly on your machine. Your data never leaves your computer.`,icon:(0,w.jsx)(l,{className:T})}]}function D(){let e=i(),[t]=r(),a=t.get(`from`)===`select-assistant`,s=m(),c=f(),l=E(),p=l.find(e=>e.mode===`vellum-cloud`)?.disabled,[_,T]=(0,C.useState)(s&&!p?`vellum-cloud`:`local`);(0,C.useEffect)(()=>{p&&_===`vellum-cloud`&&T(`local`)},[p,_]);let{loading:D,error:k,login:A,cancel:j}=v(`${h.onboarding.hosting}?from=select-assistant`),M=a&&!s&&!c;return(0,w.jsxs)(y,{children:[(0,w.jsx)(S,{loginLoading:D,onLogin:()=>void A(),onCancelLogin:j}),(0,w.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${c?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6`} text-[var(--content-default)]`,children:(0,w.jsxs)(`div`,{className:`flex w-full flex-col items-center ${c?``:`flex-1 justify-center`}`,children:[(0,w.jsx)(`h1`,{className:c?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,w.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${c?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[`Choose where you want your assistant to live.`,` `,(0,w.jsx)(`a`,{href:g(h.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`underline transition-colors hover:text-[var(--content-default)]`,children:`Need help deciding?`})]}),k&&(0,w.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:k}),(0,w.jsx)(`div`,{role:`radiogroup`,"aria-label":`Hosting options`,onKeyDown:x,className:`grid w-full ${c?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:l.map(e=>(0,w.jsx)(O,{option:e,selected:_===e.mode,tabStop:_===e.mode,onSelect:()=>{e.disabled||T(e.mode)},loginLabel:D?`Cancel`:`Log in to use`,onLogin:e.disabled&&e.mode===`vellum-cloud`&&M?D?j:()=>void A():void 0},e.mode))}),(0,w.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,w.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:c?void 0:`h-11 text-base`,onClick:()=>{_===`vellum-cloud`?(d(),u(null),b(null),e(h.onboarding.privacy)):e(`${h.onboarding.apiKey}?hosting=${_}`)},children:`Continue`})}),(0,w.jsx)(`div`,{className:`mt-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,w.jsx)(n,{variant:`ghost`,size:`compact`,className:`text-[var(--content-tertiary)]`,leftIcon:(0,w.jsx)(o,{}),onClick:()=>{e(a?h.selectAssistant:h.welcome)},disabled:D,children:`Back`})})]})})]})}function O({option:e,selected:t,tabStop:r,onSelect:i,loginLabel:a,onLogin:o}){let c=f(),l=!!e.disabled,u=o?void 0:e.badge;return(0,w.jsxs)(`div`,{role:l?void 0:`radio`,"aria-checked":l?void 0:t,tabIndex:l?void 0:r?0:-1,onClick:l?void 0:i,onKeyDown:l?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:[`group flex w-full items-center border text-left`,c?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-2xl px-5 py-4`,`transition-all duration-200 ease-out`,l?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,l?``:t?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,w.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,c?`h-8 w-8 rounded-lg`:`h-10 w-10 rounded-xl`,t&&!l?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e.icon}),(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),u&&(0,w.jsx)(`span`,{className:`rounded-full bg-[var(--surface-active)]/40 px-2 py-0.5 text-[var(--content-tertiary)] ${c?`text-label-medium-default`:`text-body-small-default`}`,children:u})]}),(0,w.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-[var(--content-tertiary)] ${c?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),o&&(0,w.jsx)(n,{variant:`primary`,size:`regular`,className:`shrink-0`,onClick:o,children:a}),!l&&(0,w.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:t&&(0,w.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})}export{D as HostingScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./arrow-left-C2ylPLHq.js";import{t as s}from"./check-sC49_hjU.js";import{t as c}from"./cloud-RlApB3rO.js";import{t as l}from"./laptop-ByoaxLxg.js";import{it as u,ot as d}from"./local-mode-9zpgPNoq.js";import{t as f}from"./is-electron-7N7iyz1y.js";import{n as p}from"./resolved-assistants-store-8HQDfxZh.js";import{i as m}from"./auth-store-BwKMFgpK.js";import{d as h,o as g}from"./routes-GmNvdtLW.js";import{t as _}from"./client-feature-flag-store-Bg5XEI2b.js";import{t as v}from"./use-onboarding-login-X8pB53cV.js";import{t as y}from"./onboarding-layout-K7X9fV8B.js";import{r as b}from"./provider-key-w3CzmGtq.js";import{n as x,t as S}from"./session-corner-action-vhb51vd3.js";var C=e(t(),1),w=a(),T=`h-5 w-5 shrink-0`;function E(){let e=m(),t=_.use.multiPlatformAssistant(),n=p.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,w.jsx)(c,{className:T}),...!e||!t&&n?{disabled:!0,badge:e?`Limit Reached`:`Requires Account`}:{}},{mode:`local`,label:`Local`,subtitle:`Runs directly on your machine. Your data never leaves your computer.`,icon:(0,w.jsx)(l,{className:T})}]}function D(){let e=i(),[t]=r(),a=t.get(`from`)===`select-assistant`,s=m(),c=f(),l=E(),p=l.find(e=>e.mode===`vellum-cloud`)?.disabled,[_,T]=(0,C.useState)(s&&!p?`vellum-cloud`:`local`);(0,C.useEffect)(()=>{p&&_===`vellum-cloud`&&T(`local`)},[p,_]);let{loading:D,error:k,login:A,cancel:j}=v(`${h.onboarding.hosting}?from=select-assistant`),M=a&&!s&&!c;return(0,w.jsxs)(y,{children:[(0,w.jsx)(S,{loginLoading:D,onLogin:()=>void A(),onCancelLogin:j}),(0,w.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${c?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6`} text-[var(--content-default)]`,children:(0,w.jsxs)(`div`,{className:`flex w-full flex-col items-center ${c?``:`flex-1 justify-center`}`,children:[(0,w.jsx)(`h1`,{className:c?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,w.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${c?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[`Choose where you want your assistant to live.`,` `,(0,w.jsx)(`a`,{href:g(h.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`underline transition-colors hover:text-[var(--content-default)]`,children:`Need help deciding?`})]}),k&&(0,w.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:k}),(0,w.jsx)(`div`,{role:`radiogroup`,"aria-label":`Hosting options`,onKeyDown:x,className:`grid w-full ${c?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:l.map(e=>(0,w.jsx)(O,{option:e,selected:_===e.mode,tabStop:_===e.mode,onSelect:()=>{e.disabled||T(e.mode)},loginLabel:D?`Cancel`:`Log in to use`,onLogin:e.disabled&&e.mode===`vellum-cloud`&&M?D?j:()=>void A():void 0},e.mode))}),(0,w.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,w.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:c?void 0:`h-11 text-base`,onClick:()=>{_===`vellum-cloud`?(d(),u(null),b(null),e(h.onboarding.privacy)):e(`${h.onboarding.apiKey}?hosting=${_}`)},children:`Continue`})}),(0,w.jsx)(`div`,{className:`mt-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,w.jsx)(n,{variant:`ghost`,size:`compact`,className:`text-[var(--content-tertiary)]`,leftIcon:(0,w.jsx)(o,{}),onClick:()=>{e(a?h.selectAssistant:h.welcome)},disabled:D,children:`Back`})})]})})]})}function O({option:e,selected:t,tabStop:r,onSelect:i,loginLabel:a,onLogin:o}){let c=f(),l=!!e.disabled,u=o?void 0:e.badge;return(0,w.jsxs)(`div`,{role:l?void 0:`radio`,"aria-checked":l?void 0:t,tabIndex:l?void 0:r?0:-1,onClick:l?void 0:i,onKeyDown:l?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:[`group flex w-full items-center border text-left`,c?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-2xl px-5 py-4`,`transition-all duration-200 ease-out`,l?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,l?``:t?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,w.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,c?`h-8 w-8 rounded-lg`:`h-10 w-10 rounded-xl`,t&&!l?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e.icon}),(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),u&&(0,w.jsx)(`span`,{className:`rounded-full bg-[var(--surface-active)]/40 px-2 py-0.5 text-[var(--content-tertiary)] ${c?`text-label-medium-default`:`text-body-small-default`}`,children:u})]}),(0,w.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-[var(--content-tertiary)] ${c?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),o&&(0,w.jsx)(n,{variant:`primary`,size:`regular`,className:`shrink-0`,onClick:o,children:a}),!l&&(0,w.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:t&&(0,w.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})}export{D as HostingScreen};