@vellumai/web 0.8.9 → 0.8.10

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 (74) hide show
  1. package/dist/assets/{account-page-DLWgiDpL.js → account-page-u7ke_44I.js} +1 -1
  2. package/dist/assets/{add-credits-modal-KR3l-hlL.js → add-credits-modal-CjJBB_aT.js} +1 -1
  3. package/dist/assets/{advanced-page-CM1prrIX.js → advanced-page-BybHh4NW.js} +1 -1
  4. package/dist/assets/{ai-page-DfYw7V-1.js → ai-page-BjCnCImt.js} +1 -1
  5. package/dist/assets/{archive-page-C3-LAH2o.js → archive-page-Bn06aNEy.js} +1 -1
  6. package/dist/assets/{assistant-status-panel-AFf9Mjwp.js → assistant-status-panel-ClxIYpxL.js} +1 -1
  7. package/dist/assets/{billing-page-o68CnS02.js → billing-page-XLpuMBWG.js} +1 -1
  8. package/dist/assets/{command-palette-BcHAzecz.js → command-palette-DFTMiCCM.js} +1 -1
  9. package/dist/assets/{community-page-BCX3CsOx.js → community-page-Dt39tUwD.js} +1 -1
  10. package/dist/assets/{connect-page-DXB8Xkpw.js → connect-page-Csfk5gxJ.js} +1 -1
  11. package/dist/assets/{contacts-page-route-8pMuZN4b.js → contacts-page-route-CAfebyIn.js} +1 -1
  12. package/dist/assets/{debug-page-CS2bRZp9.js → debug-page-DuVq7WGa.js} +1 -1
  13. package/dist/assets/{deploy-dialogs-EImApd6S.js → deploy-dialogs-BjBUBG5o.js} +1 -1
  14. package/dist/assets/{developer-page-C6j4GZcn.js → developer-page-BtLYaMJ4.js} +1 -1
  15. package/dist/assets/{devices-page-C1id1sIt.js → devices-page-Dr0ybqr8.js} +1 -1
  16. package/dist/assets/{document-viewer-page-D-zkJQlm.js → document-viewer-page-DZuzK5Y4.js} +1 -1
  17. package/dist/assets/{earn-credits-modal-RXLM_09P.js → earn-credits-modal-BJXnNvv7.js} +1 -1
  18. package/dist/assets/{emails-page-BFlPmeFT.js → emails-page-ChNIsyxX.js} +1 -1
  19. package/dist/assets/{general-page-q3bvwcHU.js → general-page-Joeygf_N.js} +1 -1
  20. package/dist/assets/{hatching-screen-6TxMgPxR.js → hatching-screen-B4BX6YJm.js} +1 -1
  21. package/dist/assets/{home-page-route-mDiWda9f.js → home-page-route-CmVT_FWM.js} +1 -1
  22. package/dist/assets/{hosting-screen-XKK-VeRo.js → hosting-screen-B-KyyLUm.js} +1 -1
  23. package/dist/assets/{identity-page-route-BCiHzwmk.js → identity-page-route-Dl65N_cj.js} +1 -1
  24. package/dist/assets/{index-BjEJFZTJ.js → index-DGojzQtP.js} +20 -20
  25. package/dist/assets/{inspect-page-BrUzgvle.js → inspect-page-DGmhgzNU.js} +1 -1
  26. package/dist/assets/{install-Uj6CrGld.js → install-DzcS2hVv.js} +1 -1
  27. package/dist/assets/{integrations-page-BL9LXHFe.js → integrations-page-D_TaVfYl.js} +1 -1
  28. package/dist/assets/{intelligence-layout-BwYGHEw7.js → intelligence-layout-DZ_lXLTB.js} +1 -1
  29. package/dist/assets/{keyboard-shortcuts-page-QHFTyWOo.js → keyboard-shortcuts-page-CwEtke1e.js} +1 -1
  30. package/dist/assets/{library-detail-page-nUyEDHke.js → library-detail-page-DP_uvWHQ.js} +1 -1
  31. package/dist/assets/{library-page-B0AzCNkJ.js → library-page-D4Ay8lOK.js} +1 -1
  32. package/dist/assets/{login-flow-Bi4ujzeb.js → login-flow-BZiMiMrf.js} +1 -1
  33. package/dist/assets/{login-page-BOH-K9Pj.js → login-page-C-lBEtiR.js} +1 -1
  34. package/dist/assets/{logout-page-B1QXMyiH.js → logout-page-Dd8xdb39.js} +1 -1
  35. package/dist/assets/{logs-layout-zcrIEQRy.js → logs-layout-C2Qs3fI-.js} +1 -1
  36. package/dist/assets/{memory-router-playground-page-CeZ4XMd2.js → memory-router-playground-page-D9miza7X.js} +1 -1
  37. package/dist/assets/{mobile-sidebar-drawer-BjPgVWjw.js → mobile-sidebar-drawer-DrrMr6Xw.js} +1 -1
  38. package/dist/assets/{notifications-page-omwlGRbj.js → notifications-page-aakfxDxE.js} +1 -1
  39. package/dist/assets/{oauth-complete-page--ojS1AzN.js → oauth-complete-page-DAbPV3TG.js} +1 -1
  40. package/dist/assets/{oauth-popup-complete-page-D5wVrngS.js → oauth-popup-complete-page-DyEV43x9.js} +1 -1
  41. package/dist/assets/{plugin-detail-page-Co_JFwRa.js → plugin-detail-page-cM71JV79.js} +1 -1
  42. package/dist/assets/{plugins-page-D7VpzRFc.js → plugins-page-BbOw3iEZ.js} +1 -1
  43. package/dist/assets/{pre-chat-flow-BoePpEU7.js → pre-chat-flow-DYa4Tg43.js} +1 -1
  44. package/dist/assets/{privacy-page-DpKZ9VJG.js → privacy-page-qfuUT3ZP.js} +1 -1
  45. package/dist/assets/{privacy-screen-CEsX-1V3.js → privacy-screen-Iqyv6zx6.js} +1 -1
  46. package/dist/assets/{provider-callback-page-DDEEkkDM.js → provider-callback-page-CxHnf-wJ.js} +1 -1
  47. package/dist/assets/{provider-signup-page-CZqSVAQl.js → provider-signup-page-vOry8yXY.js} +1 -1
  48. package/dist/assets/{review-terms-screen-CYFxXWmR.js → review-terms-screen-DDGg4T4h.js} +1 -1
  49. package/dist/assets/{schedules-page-Dk-YbWK3.js → schedules-page-C6MSsxSW.js} +1 -1
  50. package/dist/assets/{select-assistant-screen-CYpMf074.js → select-assistant-screen-CNC2S4Bq.js} +1 -1
  51. package/dist/assets/{settings-layout-C_sqrv5S.js → settings-layout-BXQK9h6V.js} +1 -1
  52. package/dist/assets/{share-feedback-modal-Cg8gci5A.js → share-feedback-modal-Cd3EJn8y.js} +1 -1
  53. package/dist/assets/{sidebar-tree-Cme65q7r.js → sidebar-tree-CPFfB2hS.js} +1 -1
  54. package/dist/assets/{signup-page-BBM_CboU.js → signup-page-CBvfJsht.js} +1 -1
  55. package/dist/assets/{skills-page-J6mZv9bN.js → skills-page-CS2tWjQe.js} +1 -1
  56. package/dist/assets/{sounds-page-DpRhAAJv.js → sounds-page-C4u0pcg-.js} +1 -1
  57. package/dist/assets/{step-indicator-dots-Dmj2aMuo.js → step-indicator-dots-C_NCj5FH.js} +1 -1
  58. package/dist/assets/{subagent-detail-panel-Dq-GDI61.js → subagent-detail-panel-0yehIKO8.js} +1 -1
  59. package/dist/assets/{system-events-page-DNln669W.js → system-events-page-Dw7NwEcP.js} +1 -1
  60. package/dist/assets/{tiptap-document-editor-DucA37Km.js → tiptap-document-editor-pNgheL8Q.js} +1 -1
  61. package/dist/assets/{tool-detail-panel-CwQTuANT.js → tool-detail-panel-B5SgZOMP.js} +1 -1
  62. package/dist/assets/{trace-page-CKTCZonQ.js → trace-page-C7tNAZHn.js} +1 -1
  63. package/dist/assets/{upgrade-cancel-page-BsW23ioD.js → upgrade-cancel-page-ByiEITdu.js} +1 -1
  64. package/dist/assets/{upgrade-success-page-DqSBwFJv.js → upgrade-success-page-CLOlaEfu.js} +1 -1
  65. package/dist/assets/{usage-page-D6cPGTNn.js → usage-page-Drq5qPw2.js} +1 -1
  66. package/dist/assets/{use-current-platform-assistant-Cu95G65M.js → use-current-platform-assistant-TpNI2OQf.js} +1 -1
  67. package/dist/assets/{use-oauth-complete-deep-link-listener-BQZGv8sr.js → use-oauth-complete-deep-link-listener-aRDKwx8y.js} +1 -1
  68. package/dist/assets/{use-onboarding-login-Cd72-1Qe.js → use-onboarding-login-CWKxGXhS.js} +1 -1
  69. package/dist/assets/{voice-page-D8IZifkA.js → voice-page-DiYRh5kS.js} +1 -1
  70. package/dist/assets/{weather-forecast-display-DgqpUX3a.js → weather-forecast-display-DV6RskYo.js} +1 -1
  71. package/dist/assets/{welcome-screen-B2tizoBp.js → welcome-screen-lzsZvDsg.js} +1 -1
  72. package/dist/assets/{workspace-page-Bu8beso_.js → workspace-page-DPhpvY0s.js} +1 -1
  73. package/dist/index.html +1 -1
  74. package/package.json +1 -1
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as r}from"./QueryClientProvider-DNHWXaGq.js";import{t as i}from"./useQuery-D2zf6Uhu.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./cn-DFqQkJlk.js";import{n as s,t as c}from"./button-DdEh-9f_.js";import{t as l}from"./typography-Czgs_2w_.js";import{t as u}from"./menu-B79-l6IU.js";import{l as d,n as f}from"./src-hn7lwVCD.js";import{t as p}from"./tag-Ccr7Quy6.js";import{t as m}from"./createLucideIcon-D6d6iDdi.js";import{t as h}from"./bell-C7RL04h4.js";import{t as g}from"./calendar-CP_Q3Aw6.js";import{t as _}from"./chevron-right-zTNPbA1m.js";import{t as v}from"./ellipsis-vertical-Dxg526It.js";import{t as ee}from"./globe-ByNYDdSW.js";import{t as te}from"./pencil-BA9LOIzP.js";import{t as ne}from"./target-BMMY7Kql.js";import{t as re}from"./wand-sparkles-DL9Oe56R.js";import{t as y}from"./x-BDqbYVtS.js";import{b as ie,x as ae}from"./react-query.gen-B8xaBreR.js";import{T as b}from"./auth-store-CiQCAKS1.js";import{i as x}from"./routes-Dk5Qeryt.js";import{n as S}from"./use-is-mobile-D_xrnINF.js";import{t as C}from"./viewer-store-Cc5YI5ay.js";import{t as w}from"./conversation-store-BEgf__eu.js";import{$n as T,Aa as oe,An as se,Bi as E,Ca as ce,Ci as le,Cn as ue,Di as de,Dn as fe,En as pe,Fa as me,Fi as he,Gi as ge,Ii as _e,Ji as ve,Ki as ye,La as be,Li as D,Ma as O,Mi as k,Na as A,Ni as j,On as M,Pa as N,Qi as P,Qn as xe,R as Se,Sa as Ce,Ui as we,W as Te,Ya as Ee,Yi as De,Za as Oe,_a as ke,aa as Ae,ao as je,ba as F,bo as Me,da as Ne,ha as I,kn as Pe,qa as Fe,qi as L,ra as Ie,rr as Le,sa as Re,so as ze,ta as Be,ua as Ve,wa as He,wi as Ue,ya as We,zi as R}from"./index-BjEJFZTJ.js";import{t as Ge}from"./use-active-assistant-id-BIhArlF_.js";import{n as Ke,t as qe}from"./lib-B8eh8Q36.js";import{n as z,r as B}from"./format-date-lYqfuFdi.js";var Je=m(`alarm-clock`,[[`circle`,{cx:`12`,cy:`13`,r:`8`,key:`3y4lt7`}],[`path`,{d:`M12 9v4l2 2`,key:`1c63tq`}],[`path`,{d:`M5 3 2 6`,key:`18tl5t`}],[`path`,{d:`m22 6-3-3`,key:`1opdir`}],[`path`,{d:`M6.38 18.7 4 21`,key:`17xu3x`}],[`path`,{d:`M17.64 18.67 20 21`,key:`kv2oe2`}]]),Ye=m(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),Xe=m(`briefcase`,[[`path`,{d:`M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16`,key:`jecpp`}],[`rect`,{width:`20`,height:`14`,x:`2`,y:`6`,rx:`2`,key:`i6l2r4`}]]),Ze=m(`graduation-cap`,[[`path`,{d:`M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z`,key:`j76jl0`}],[`path`,{d:`M22 10v6`,key:`1lu8f3`}],[`path`,{d:`M6 12.5V16a6 3 0 0 0 12 0v-3.5`,key:`1r8lef`}]]),Qe=m(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),V=m(`mail-open`,[[`path`,{d:`M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z`,key:`1jhwl8`}],[`path`,{d:`m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10`,key:`1qfld7`}]]),$e=m(`plane`,[[`path`,{d:`M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z`,key:`1v9wt8`}]]),et=m(`square-check-big`,[[`path`,{d:`M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344`,key:`2acyp4`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),H=e(t(),1),U=a(),W={security:{icon:ge,strong:`var(--feed-nudge-strong)`,weak:`var(--feed-nudge-weak)`},email:{icon:F,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`},scheduling:{icon:je,strong:`var(--feed-thread-strong)`,weak:`var(--feed-thread-weak)`},background:{icon:L,strong:`var(--system-info-strong)`,weak:`var(--system-info-weak)`},system:{icon:h,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`}},tt=[`security`,`email`,`scheduling`,`background`,`system`];function G({icon:e,iconColor:t,bgColor:n,isSelected:r,label:i,onClick:a}){return(0,U.jsx)(`button`,{type:`button`,"aria-label":i,"aria-pressed":r,onClick:a,className:o(`flex shrink-0 cursor-pointer items-center justify-center rounded-full transition-opacity`,r?`opacity-100`:`opacity-50 hover:opacity-75`),style:{width:26,height:26,backgroundColor:n},children:(0,U.jsx)(e,{width:12,height:12,style:{color:t},"aria-hidden":`true`})})}function nt({categories:e,activeFilter:t,onFilterChange:n}){let r=tt.filter(t=>e.includes(t));return r.length<=1?null:(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] overflow-x-auto`,children:[(0,U.jsx)(l,{variant:`body-small-default`,className:`shrink-0 text-[var(--content-tertiary)]`,children:`Filter:`}),(0,U.jsx)(G,{icon:Ce,iconColor:`var(--content-secondary)`,bgColor:`var(--surface-overlay)`,isSelected:t===null,label:`All`,onClick:()=>n(null)}),r.map(e=>{let r=W[e];return(0,U.jsx)(G,{icon:r.icon,iconColor:r.strong,bgColor:r.weak,isSelected:t===e,label:e.charAt(0).toUpperCase()+e.slice(1),onClick:()=>n(e)},e)})]})}function rt(e,t){!t||!b()||(e.preventDefault(),Te(t))}var it={p:({children:e})=>(0,U.jsx)(`p`,{className:`mb-2 text-body-medium-default last:mb-0`,style:{color:`var(--content-secondary)`},children:e}),strong:({children:e})=>(0,U.jsx)(`strong`,{style:{color:`var(--content-default)`},children:e}),em:({children:e})=>(0,U.jsx)(`em`,{style:{color:`var(--content-default)`},children:e}),a:({href:e,children:t})=>(0,U.jsx)(`a`,{href:e,className:`underline`,style:{color:`var(--content-link)`},target:`_blank`,rel:`noopener noreferrer`,onClick:t=>rt(t,e),children:t}),ul:({children:e})=>(0,U.jsx)(`ul`,{className:`mb-2 list-disc pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),ol:({children:e})=>(0,U.jsx)(`ol`,{className:`mb-2 list-decimal pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),li:({children:e})=>(0,U.jsx)(`li`,{className:`mb-0.5`,children:e}),code:({children:e})=>(0,U.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,U.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,U.jsx)(`h1`,{className:`mb-2 text-title-medium first:mt-0`,style:{color:`var(--content-default)`},children:e}),h2:({children:e})=>(0,U.jsx)(`h2`,{className:`mb-2 text-title-small first:mt-0`,style:{color:`var(--content-default)`},children:e}),h3:({children:e})=>(0,U.jsx)(`h3`,{className:`mb-1 text-body-medium-default first:mt-0`,style:{color:`var(--content-default)`},children:e}),blockquote:({children:e})=>(0,U.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,U.jsx)(`div`,{className:`mb-2 overflow-x-auto`,children:(0,U.jsx)(`table`,{className:`w-full border-collapse text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}),thead:({children:e})=>(0,U.jsx)(`thead`,{style:{backgroundColor:`var(--surface-lift)`},children:e}),tbody:({children:e})=>(0,U.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,U.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:e}),th:({children:e})=>(0,U.jsx)(`th`,{className:`px-2 py-1.5 text-left font-semibold`,style:{color:`var(--content-default)`},children:e}),td:({children:e})=>(0,U.jsx)(`td`,{className:`px-2 py-1.5 align-top`,children:e})};function at({content:e,className:t}){return(0,U.jsx)(`div`,{className:o(`text-body-medium-default`,t),children:(0,U.jsx)(Ke,{remarkPlugins:[qe],components:it,children:e})})}function K({item:e}){return(0,U.jsx)(at,{content:e.summary})}function ot(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 st(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,U.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,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(l,{variant:`title-small`,as:`h3`,children:n}),r?(0,U.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:r}):null,(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[(0,U.jsx)(`span`,{className:`inline-block shrink-0 rounded-full`,style:{width:8,height:8,backgroundColor:ot(i)},"aria-hidden":`true`}),(0,U.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:st(i)})]}),a?(0,U.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:a}):null,o.length>0?(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:[(0,U.jsx)(l,{variant:`body-small-emphasised`,className:`text-[var(--content-secondary)]`,children:`Missing scopes`}),(0,U.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,U.jsx)(`li`,{children:(0,U.jsx)(l,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e})},e))})]}):null]})}function ct(e){return e&&W[e]?W[e]:W.system}function J({item:e,isMobile:t,validConversationIds:n,onClose:r,onGoToThread:i,onUpdateStatus:a,onDismiss:o}){if(!e)return null;let s=e.detailPanel?.kind,d=ct(e.category),f=d.icon,m=e.status===`new`,h=e.status===`dismissed`,g=!!e.conversationId&&n.has(e.conversationId);return t?(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,U.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,U.jsx)(c,{variant:`ghost`,iconOnly:(0,U.jsx)(Me,{}),onClick:r,"aria-label":`Back`,tooltip:`Back`}),(0,U.jsx)(l,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,U.jsx)(c,{variant:`ghost`,iconOnly:m?(0,U.jsx)(V,{}):(0,U.jsx)(F,{}),onClick:()=>a(e.id,m?`seen`:`new`),"aria-label":m?`Mark as read`:`Mark as unread`,tooltip:m?`Mark as read`:`Mark as unread`}),h?(0,U.jsx)(c,{variant:`ghost`,iconOnly:(0,U.jsx)(P,{}),onClick:()=>a(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,U.jsx)(c,{variant:`ghost`,iconOnly:(0,U.jsx)(j,{}),onClick:()=>o(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,U.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:d.weak},"aria-hidden":`true`,children:(0,U.jsx)(f,{width:18,height:18,style:{color:d.strong}})}),(0,U.jsx)(l,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:e.title??e.summary}),(0,U.jsx)(p,{tone:`neutral`,className:`shrink-0`,title:z(e.timestamp),children:B(e.timestamp)})]}),(0,U.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,U.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:s===`toolPermission`?(0,U.jsx)(q,{item:e}):(0,U.jsx)(K,{item:e})}),g?(0,U.jsx)(`div`,{className:`shrink-0 px-4 pb-4 pt-2`,children:(0,U.jsx)(c,{variant:`primary`,fullWidth:!0,onClick:()=>i(e.conversationId),children:`Go to Conversation`})}):null]}):(0,U.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-lg)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)]`,children:[(0,U.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:d.weak},"aria-hidden":`true`,children:(0,U.jsx)(f,{width:14,height:14,style:{color:d.strong}})}),(0,U.jsx)(l,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:e.title??e.summary}),(0,U.jsx)(p,{tone:`neutral`,className:`shrink-0`,title:z(e.timestamp),children:B(e.timestamp)}),g?(0,U.jsx)(c,{variant:`outlined`,size:`compact`,onClick:()=>i(e.conversationId),children:`Go to Convo`}):null,(0,U.jsxs)(u.Root,{children:[(0,U.jsx)(u.Trigger,{children:(0,U.jsx)(c,{variant:`outlined`,size:`compact`,iconOnly:(0,U.jsx)(v,{}),"aria-label":`More actions`,tooltip:`More actions`})}),(0,U.jsx)(u.Content,{align:`end`,children:h?(0,U.jsx)(u.Item,{onSelect:()=>a(e.id,`seen`),leftIcon:(0,U.jsx)(P,{className:`size-4`}),children:`Restore`}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(u.Item,{onSelect:()=>a(e.id,m?`seen`:`new`),leftIcon:m?(0,U.jsx)(V,{className:`size-4`}):(0,U.jsx)(F,{className:`size-4`}),children:m?`Mark as read`:`Mark as unread`}),(0,U.jsx)(u.Item,{onSelect:()=>o(e.id),leftIcon:(0,U.jsx)(ze,{className:`size-4`}),children:`Dismiss`})]})})]}),(0,U.jsx)(c,{variant:`outlined`,size:`compact`,iconOnly:(0,U.jsx)(y,{}),onClick:r,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,U.jsx)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:s===`toolPermission`?(0,U.jsx)(q,{item:e}):(0,U.jsx)(K,{item:e})})]})}function Y({label:e,onClick:t,className:n,children:r}){return(0,U.jsx)(s,{content:e,children:(0,U.jsx)(`button`,{type:`button`,"aria-label":e,onClick:e=>{e.stopPropagation(),t()},className:o(`cursor-pointer text-[var(--content-disabled)] transition-colors hover:text-[var(--content-secondary)]`,n),children:r})})}function lt(e){return e&&W[e]?W[e]:W.system}function X({item:e,isActive:t=!1,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:a,onGoToThread:s,trailingAction:c=`dismiss`}){let[l,u]=(0,H.useState)(!1),d=lt(e.category),f=d.icon,p=e.status===`new`,m=c===`restore`;return(0,U.jsxs)(`button`,{type:`button`,onClick:()=>r(e),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),className:o(`flex w-full cursor-pointer items-center gap-[var(--app-spacing-sm)]`,`rounded-[var(--radius-md)] px-[var(--app-spacing-md)] py-[var(--app-spacing-sm)]`,`transition-[background-color,opacity] duration-150`,t?`bg-[var(--surface-active)]`:l?`bg-[var(--surface-lift)]`:`bg-[var(--surface-overlay)]`,!p&&!t&&`opacity-70`),children:[(0,U.jsxs)(`span`,{className:`relative shrink-0`,"aria-hidden":`true`,children:[(0,U.jsx)(`span`,{className:`flex items-center justify-center rounded-full`,style:{width:26,height:26,backgroundColor:d.weak},children:(0,U.jsx)(f,{width:12,height:12,style:{color:d.strong}})}),p&&(0,U.jsx)(`span`,{className:`absolute -left-0.5 -top-0.5 h-2 w-2 rounded-full bg-[var(--system-mid-strong)]`})]}),(0,U.jsx)(`span`,{className:o(`text-body-medium-default min-w-0 flex-1 truncate text-left`,`text-[var(--content-secondary)]`),children:e.title??e.summary}),l&&!m?(0,U.jsxs)(`span`,{className:`flex shrink-0 items-center gap-[var(--app-spacing-sm)]`,children:[a&&(0,U.jsx)(Y,{label:p?`Mark as read`:`Mark as unread`,onClick:()=>a(e.id,p?`seen`:`new`),children:p?(0,U.jsx)(V,{width:14,height:14}):(0,U.jsx)(F,{width:14,height:14})}),s&&e.conversationId&&(!n||n.has(e.conversationId))&&(0,U.jsx)(Y,{label:`Go to thread`,onClick:()=>{p&&a&&a(e.id,`seen`),s(e.conversationId)},children:(0,U.jsx)(I,{width:14,height:14})}),(0,U.jsx)(Y,{label:`Dismiss`,onClick:()=>i(e.id),children:(0,U.jsx)(j,{width:14,height:14})})]}):l&&m?(0,U.jsxs)(Y,{label:`Restore`,onClick:()=>i(e.id),className:`flex shrink-0 items-center gap-[var(--app-spacing-xs)]`,children:[(0,U.jsx)(P,{width:14,height:14,"aria-hidden":`true`}),(0,U.jsx)(`span`,{className:`text-body-small-default`,children:`Restore`})]}):(0,U.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:B(e.timestamp)})]})}function ut(e){return[...e].sort((e,t)=>e.priority===t.priority?new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime():t.priority-e.priority)}function dt(e){let t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()-1),i={today:[],yesterday:[],older:[]};for(let t of e){let e=new Date(t.createdAt);e>=n?i.today.push(t):e>=r?i.yesterday.push(t):i.older.push(t)}let a=new Map;return i.today.length>0&&a.set(`today`,i.today),i.yesterday.length>0&&a.set(`yesterday`,i.yesterday),i.older.length>0&&a.set(`older`,i.older),a}function ft(e,t){return t===null?e:e.filter(e=>(e.category??`system`)===t)}function pt(e){return e.filter(e=>e.urgency!==`high`&&e.urgency!==`critical`)}function mt(e){let t=new Set;for(let n of e)t.add(n.category??`system`);return[...t]}var ht={today:`Today`,yesterday:`Yesterday`,older:`Older`};function gt({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s}){let[c,u]=(0,H.useState)(null),d=pt(e.filter(e=>e.status!==`dismissed`)),p=mt(d),m=c&&p.includes(c)?c:null;c!==m&&u(m);let h=dt(ut(ft(d,m))),g=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,U.jsx)(nt,{categories:p,activeFilter:m,onFilterChange:u}),h.size===0?(0,U.jsx)(l,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:m?`No items match the selected filter.`:`No items to show.`}):[...h.entries()].map(([e,a])=>(0,U.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(l,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:ht[e]}),(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:a.map(e=>(0,U.jsx)(X,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),g.length>0&&(0,U.jsx)(f.Root,{type:`single`,collapsible:!0,children:(0,U.jsxs)(f.Item,{value:`dismissed`,children:[(0,U.jsxs)(f.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,U.jsx)(_,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,U.jsxs)(`span`,{children:[`Dismissed (`,g.length,`)`]})]}),(0,U.jsx)(f.Content,{children:(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:g.map(e=>(0,U.jsx)(X,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function _t(e){let t=e.getHours();return t>=5&&t<12?`Good morning`:t>=12&&t<17?`Good afternoon`:t>=17&&t<22?`Good evening`:`Welcome back`}function vt({avatarComponents:e,avatarTraits:t,avatarImageUrl:n,greeting:r,isMobile:i,onStartNewChat:a}){return(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-[var(--app-spacing-md)]`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(Se,{components:e,traits:t,customImageUrl:n,size:36}),(0,U.jsx)(l,{variant:`title-large`,as:`h1`,className:`truncate`,children:r||_t(new Date)})]}),i?(0,U.jsx)(c,{variant:`primary`,iconOnly:(0,U.jsx)(R,{}),onClick:a,"aria-label":`New Chat`,tooltip:`New Chat`,className:`!rounded-full`}):(0,U.jsx)(c,{variant:`primary`,leftIcon:(0,U.jsx)(R,{}),onClick:a,children:`New Chat`})]})}var Z={AlarmClock:Je,Bell:h,BookOpen:Ye,Briefcase:Xe,Calendar:g,CheckSquare:et,Code:Oe,Compass:Ee,Cpu:Fe,FileText:be,Flag:me,Folder:N,Gamepad:A,Gift:O,Globe:ee,GraduationCap:Ze,Heart:oe,Lightbulb:He,Link:ce,ListTodo:Qe,Mail:F,Map:We,MessageCircle:ke,MessageSquare:I,Music:Ne,Package:Ve,Pencil:te,Phone:Re,Pin:Ae,Plane:$e,Plug:Ie,Puzzle:Be,Search:De,Send:ve,Settings:L,Share:ye,ShoppingCart:we,Sparkles:E,Star:D,Sun:_e,Target:ne,Tag:he,TrendingUp:k,Users:de,Wand2:re,Wrench:Ue,Zap:le};function Q(e){return e.charAt(0).toUpperCase()+e.slice(1)}function $(e){if(!e)return E;let t=Q(e);if(Z[t])return Z[t];let n=e.replace(/^lucide-/,``);if(n!==e){let e=Q(n);if(Z[e])return Z[e]}return E}function yt({suggestions:e,maxVisible:t=3,onSelect:n}){let[r,i]=(0,H.useState)(!1);if(r||e.length===0)return null;let a=e.slice(0,t);return(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] rounded-2xl border border-[var(--border-disabled)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:`By the way, have you tried one of these:`}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>i(!0),"aria-label":`Dismiss suggestions`,className:`shrink-0 cursor-pointer text-[var(--content-disabled)] transition-colors hover:text-[var(--content-tertiary)]`,children:(0,U.jsx)(y,{className:`size-3.5`})})]}),(0,U.jsx)(`div`,{className:`flex flex-wrap items-center gap-[var(--app-spacing-sm)]`,children:a.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`flex cursor-pointer items-center gap-[var(--app-spacing-xs)] rounded-full bg-[var(--surface-active)] py-1 pl-1 pr-3 text-[var(--content-default)] transition-colors hover:text-[var(--content-secondary)]`,children:[(0,U.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full bg-[var(--surface-active)]`,style:{width:26,height:26},"aria-hidden":`true`,children:(0,U.jsx)($(e.icon),{className:`size-[18px]`})}),(0,U.jsx)(`span`,{className:`text-body-small-default`,children:e.label})]},e.id))})]})}function bt(e){let t=r(),n=(0,H.useMemo)(()=>ae({path:{assistant_id:e??``}}),[e]),a=i({...ie({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),o=(0,H.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...a,invalidate:o}}function xt(){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(`div`,{className:`size-9 animate-pulse rounded-full bg-[var(--surface-lift)]`}),(0,U.jsx)(`div`,{className:`h-7 w-64 animate-pulse rounded-md bg-[var(--surface-lift)]`})]}),(0,U.jsx)(`div`,{className:`h-9 w-28 animate-pulse rounded-md bg-[var(--surface-lift)]`})]}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`div`,{className:`h-8 w-36 animate-pulse rounded-full bg-[var(--surface-lift)]`}),(0,U.jsx)(`div`,{className:`h-8 w-28 animate-pulse rounded-full bg-[var(--surface-lift)]`}),(0,U.jsx)(`div`,{className:`h-8 w-32 animate-pulse rounded-full bg-[var(--surface-lift)]`})]}),(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,U.jsx)(`div`,{className:`h-16 animate-pulse rounded-md bg-[var(--surface-lift)]`},t))})]})}function St({assistantId:e,validConversationIds:t,onStartNewChat:n,onOpenConversation:r,onSuggestionSelected:i}){let a=S(),o=xe(e),s=Pe(e);bt(e);let[c,l]=(0,H.useState)(null),u=(0,H.useCallback)(e=>{e.status===`new`?(l({...e,status:`seen`}),s.updateStatus.mutate({itemId:e.id,status:`seen`})):l(e)},[s.updateStatus]),f=(0,H.useCallback)(()=>{l(null)},[]),p=(0,H.useCallback)(e=>{s.updateStatus.mutate({itemId:e,status:`dismissed`}),c?.id===e&&l(null)},[s.updateStatus,c?.id]),m=(0,H.useCallback)(e=>{s.updateStatus.mutate({itemId:e,status:`seen`}),l(t=>t?.id===e?{...t,status:`seen`}:t)},[s.updateStatus]),h=(0,H.useCallback)((e,t)=>{s.updateStatus.mutate({itemId:e,status:t}),l(n=>n?.id===e?{...n,status:t}:n)},[s.updateStatus]),g=(0,H.useCallback)(e=>{l(null),r(e)},[r]),_=(0,H.useCallback)(e=>{i(e.prompt)},[i]),v=s.isLoading?(0,U.jsx)(xt,{}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(vt,{avatarComponents:o.components,avatarTraits:o.traits,avatarImageUrl:o.customImageUrl,greeting:s.data?.contextBanner?.greeting,isMobile:a,onStartNewChat:n}),s.isError?(0,U.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`,s.error instanceof Error?`: ${s.error.message}`:`.`]}):null,(0,U.jsx)(yt,{suggestions:s.data?.suggestedPrompts??[],maxVisible:a?2:3,onSelect:_}),(0,U.jsx)(gt,{items:s.data?.items??[],selectedItemId:c?.id,validConversationIds:t,onSelectItem:u,onDismissItem:p,onRestoreItem:m,onToggleRead:h,onGoToThread:g})]});return c&&a?(0,U.jsx)(`div`,{className:`fixed inset-0 z-30 bg-[var(--surface-overlay)]`,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`},children:(0,U.jsx)(J,{item:c,isMobile:!0,validConversationIds:t,onClose:f,onGoToThread:g,onUpdateStatus:h,onDismiss:p})}):c&&!a?(0,U.jsx)(d,{storageKey:`homeDetailPanelWidth`,defaultLeftPercent:50,minLeftWidth:400,minRightWidth:320,left:(0,U.jsx)(`div`,{className:`flex h-full flex-col gap-[var(--app-spacing-xl)] overflow-y-auto px-[var(--app-spacing-xl)] py-[var(--app-spacing-xxl)]`,children:v}),right:(0,U.jsx)(J,{item:c,validConversationIds:t,onClose:f,onGoToThread:g,onUpdateStatus:h,onDismiss:p})}):(0,U.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,U.jsx)(`div`,{className:`mx-auto w-full max-w-[960px] px-[var(--app-spacing-xl)] py-[var(--app-spacing-xxl)]`,children:(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:v})})})}function Ct(){let e=n(),t=Ge(),r=se.use.setTopBarCenter(),i=S(),{conversations:a}=fe(t),{conversations:o}=pe(t,!0),{conversations:s}=M(t,!0),c=(0,H.useMemo)(()=>new Set(Le(a,o,s).map(e=>e.conversationId)),[a,o,s]);return(0,H.useEffect)(()=>(r(i?(0,U.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Home`}):null),()=>{r(null)}),[i,r]),(0,U.jsx)(St,{assistantId:t,validConversationIds:c,onStartNewChat:()=>{C.getState().setMainView(`chat`);let t=T();w.getState().setActiveConversationId(t),e(x.conversation(t)),ue()},onOpenConversation:t=>e(x.conversation(t)),onSuggestionSelected:t=>{C.getState().setMainView(`chat`);let n=T();w.getState().setActiveConversationId(n),e(`${x.conversation(n)}?prompt=${encodeURIComponent(t)}`)}})}export{Ct as HomePageRoute};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as r}from"./QueryClientProvider-DNHWXaGq.js";import{t as i}from"./useQuery-D2zf6Uhu.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./cn-DFqQkJlk.js";import{n as s,t as c}from"./button-DdEh-9f_.js";import{t as l}from"./typography-Czgs_2w_.js";import{t as u}from"./menu-B79-l6IU.js";import{l as d,n as f}from"./src-hn7lwVCD.js";import{t as p}from"./tag-Ccr7Quy6.js";import{t as m}from"./createLucideIcon-D6d6iDdi.js";import{t as h}from"./bell-C7RL04h4.js";import{t as g}from"./calendar-CP_Q3Aw6.js";import{t as _}from"./chevron-right-zTNPbA1m.js";import{t as v}from"./ellipsis-vertical-Dxg526It.js";import{t as ee}from"./globe-ByNYDdSW.js";import{t as te}from"./pencil-BA9LOIzP.js";import{t as ne}from"./target-BMMY7Kql.js";import{t as re}from"./wand-sparkles-DL9Oe56R.js";import{t as y}from"./x-BDqbYVtS.js";import{b as ie,x as ae}from"./react-query.gen-B8xaBreR.js";import{T as b}from"./auth-store-CiQCAKS1.js";import{i as x}from"./routes-Dk5Qeryt.js";import{n as S}from"./use-is-mobile-D_xrnINF.js";import{t as C}from"./viewer-store-Cc5YI5ay.js";import{t as w}from"./conversation-store-BEgf__eu.js";import{$n as T,Aa as oe,An as se,Bi as E,Ca as ce,Ci as le,Cn as ue,Di as de,Dn as fe,En as pe,Fa as me,Fi as he,Gi as ge,Ii as _e,Ji as ve,Ki as ye,La as be,Li as D,Ma as O,Mi as k,Na as A,Ni as j,On as M,Pa as N,Qi as P,Qn as xe,R as Se,Sa as Ce,Ui as we,W as Te,Ya as Ee,Yi as De,Za as Oe,_a as ke,aa as Ae,ao as je,ba as F,bo as Me,da as Ne,ha as I,kn as Pe,qa as Fe,qi as L,ra as Ie,rr as Le,sa as Re,so as ze,ta as Be,ua as Ve,wa as He,wi as Ue,ya as We,zi as R}from"./index-DGojzQtP.js";import{t as Ge}from"./use-active-assistant-id-BIhArlF_.js";import{n as Ke,t as qe}from"./lib-B8eh8Q36.js";import{n as z,r as B}from"./format-date-lYqfuFdi.js";var Je=m(`alarm-clock`,[[`circle`,{cx:`12`,cy:`13`,r:`8`,key:`3y4lt7`}],[`path`,{d:`M12 9v4l2 2`,key:`1c63tq`}],[`path`,{d:`M5 3 2 6`,key:`18tl5t`}],[`path`,{d:`m22 6-3-3`,key:`1opdir`}],[`path`,{d:`M6.38 18.7 4 21`,key:`17xu3x`}],[`path`,{d:`M17.64 18.67 20 21`,key:`kv2oe2`}]]),Ye=m(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),Xe=m(`briefcase`,[[`path`,{d:`M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16`,key:`jecpp`}],[`rect`,{width:`20`,height:`14`,x:`2`,y:`6`,rx:`2`,key:`i6l2r4`}]]),Ze=m(`graduation-cap`,[[`path`,{d:`M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z`,key:`j76jl0`}],[`path`,{d:`M22 10v6`,key:`1lu8f3`}],[`path`,{d:`M6 12.5V16a6 3 0 0 0 12 0v-3.5`,key:`1r8lef`}]]),Qe=m(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),V=m(`mail-open`,[[`path`,{d:`M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z`,key:`1jhwl8`}],[`path`,{d:`m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10`,key:`1qfld7`}]]),$e=m(`plane`,[[`path`,{d:`M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z`,key:`1v9wt8`}]]),et=m(`square-check-big`,[[`path`,{d:`M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344`,key:`2acyp4`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),H=e(t(),1),U=a(),W={security:{icon:ge,strong:`var(--feed-nudge-strong)`,weak:`var(--feed-nudge-weak)`},email:{icon:F,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`},scheduling:{icon:je,strong:`var(--feed-thread-strong)`,weak:`var(--feed-thread-weak)`},background:{icon:L,strong:`var(--system-info-strong)`,weak:`var(--system-info-weak)`},system:{icon:h,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`}},tt=[`security`,`email`,`scheduling`,`background`,`system`];function G({icon:e,iconColor:t,bgColor:n,isSelected:r,label:i,onClick:a}){return(0,U.jsx)(`button`,{type:`button`,"aria-label":i,"aria-pressed":r,onClick:a,className:o(`flex shrink-0 cursor-pointer items-center justify-center rounded-full transition-opacity`,r?`opacity-100`:`opacity-50 hover:opacity-75`),style:{width:26,height:26,backgroundColor:n},children:(0,U.jsx)(e,{width:12,height:12,style:{color:t},"aria-hidden":`true`})})}function nt({categories:e,activeFilter:t,onFilterChange:n}){let r=tt.filter(t=>e.includes(t));return r.length<=1?null:(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] overflow-x-auto`,children:[(0,U.jsx)(l,{variant:`body-small-default`,className:`shrink-0 text-[var(--content-tertiary)]`,children:`Filter:`}),(0,U.jsx)(G,{icon:Ce,iconColor:`var(--content-secondary)`,bgColor:`var(--surface-overlay)`,isSelected:t===null,label:`All`,onClick:()=>n(null)}),r.map(e=>{let r=W[e];return(0,U.jsx)(G,{icon:r.icon,iconColor:r.strong,bgColor:r.weak,isSelected:t===e,label:e.charAt(0).toUpperCase()+e.slice(1),onClick:()=>n(e)},e)})]})}function rt(e,t){!t||!b()||(e.preventDefault(),Te(t))}var it={p:({children:e})=>(0,U.jsx)(`p`,{className:`mb-2 text-body-medium-default last:mb-0`,style:{color:`var(--content-secondary)`},children:e}),strong:({children:e})=>(0,U.jsx)(`strong`,{style:{color:`var(--content-default)`},children:e}),em:({children:e})=>(0,U.jsx)(`em`,{style:{color:`var(--content-default)`},children:e}),a:({href:e,children:t})=>(0,U.jsx)(`a`,{href:e,className:`underline`,style:{color:`var(--content-link)`},target:`_blank`,rel:`noopener noreferrer`,onClick:t=>rt(t,e),children:t}),ul:({children:e})=>(0,U.jsx)(`ul`,{className:`mb-2 list-disc pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),ol:({children:e})=>(0,U.jsx)(`ol`,{className:`mb-2 list-decimal pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),li:({children:e})=>(0,U.jsx)(`li`,{className:`mb-0.5`,children:e}),code:({children:e})=>(0,U.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,U.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,U.jsx)(`h1`,{className:`mb-2 text-title-medium first:mt-0`,style:{color:`var(--content-default)`},children:e}),h2:({children:e})=>(0,U.jsx)(`h2`,{className:`mb-2 text-title-small first:mt-0`,style:{color:`var(--content-default)`},children:e}),h3:({children:e})=>(0,U.jsx)(`h3`,{className:`mb-1 text-body-medium-default first:mt-0`,style:{color:`var(--content-default)`},children:e}),blockquote:({children:e})=>(0,U.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,U.jsx)(`div`,{className:`mb-2 overflow-x-auto`,children:(0,U.jsx)(`table`,{className:`w-full border-collapse text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}),thead:({children:e})=>(0,U.jsx)(`thead`,{style:{backgroundColor:`var(--surface-lift)`},children:e}),tbody:({children:e})=>(0,U.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,U.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:e}),th:({children:e})=>(0,U.jsx)(`th`,{className:`px-2 py-1.5 text-left font-semibold`,style:{color:`var(--content-default)`},children:e}),td:({children:e})=>(0,U.jsx)(`td`,{className:`px-2 py-1.5 align-top`,children:e})};function at({content:e,className:t}){return(0,U.jsx)(`div`,{className:o(`text-body-medium-default`,t),children:(0,U.jsx)(Ke,{remarkPlugins:[qe],components:it,children:e})})}function K({item:e}){return(0,U.jsx)(at,{content:e.summary})}function ot(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 st(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,U.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,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(l,{variant:`title-small`,as:`h3`,children:n}),r?(0,U.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:r}):null,(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[(0,U.jsx)(`span`,{className:`inline-block shrink-0 rounded-full`,style:{width:8,height:8,backgroundColor:ot(i)},"aria-hidden":`true`}),(0,U.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:st(i)})]}),a?(0,U.jsx)(l,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:a}):null,o.length>0?(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:[(0,U.jsx)(l,{variant:`body-small-emphasised`,className:`text-[var(--content-secondary)]`,children:`Missing scopes`}),(0,U.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,U.jsx)(`li`,{children:(0,U.jsx)(l,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e})},e))})]}):null]})}function ct(e){return e&&W[e]?W[e]:W.system}function J({item:e,isMobile:t,validConversationIds:n,onClose:r,onGoToThread:i,onUpdateStatus:a,onDismiss:o}){if(!e)return null;let s=e.detailPanel?.kind,d=ct(e.category),f=d.icon,m=e.status===`new`,h=e.status===`dismissed`,g=!!e.conversationId&&n.has(e.conversationId);return t?(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,U.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,U.jsx)(c,{variant:`ghost`,iconOnly:(0,U.jsx)(Me,{}),onClick:r,"aria-label":`Back`,tooltip:`Back`}),(0,U.jsx)(l,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,U.jsx)(c,{variant:`ghost`,iconOnly:m?(0,U.jsx)(V,{}):(0,U.jsx)(F,{}),onClick:()=>a(e.id,m?`seen`:`new`),"aria-label":m?`Mark as read`:`Mark as unread`,tooltip:m?`Mark as read`:`Mark as unread`}),h?(0,U.jsx)(c,{variant:`ghost`,iconOnly:(0,U.jsx)(P,{}),onClick:()=>a(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,U.jsx)(c,{variant:`ghost`,iconOnly:(0,U.jsx)(j,{}),onClick:()=>o(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,U.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:d.weak},"aria-hidden":`true`,children:(0,U.jsx)(f,{width:18,height:18,style:{color:d.strong}})}),(0,U.jsx)(l,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:e.title??e.summary}),(0,U.jsx)(p,{tone:`neutral`,className:`shrink-0`,title:z(e.timestamp),children:B(e.timestamp)})]}),(0,U.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,U.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:s===`toolPermission`?(0,U.jsx)(q,{item:e}):(0,U.jsx)(K,{item:e})}),g?(0,U.jsx)(`div`,{className:`shrink-0 px-4 pb-4 pt-2`,children:(0,U.jsx)(c,{variant:`primary`,fullWidth:!0,onClick:()=>i(e.conversationId),children:`Go to Conversation`})}):null]}):(0,U.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-lg)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)]`,children:[(0,U.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:d.weak},"aria-hidden":`true`,children:(0,U.jsx)(f,{width:14,height:14,style:{color:d.strong}})}),(0,U.jsx)(l,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:e.title??e.summary}),(0,U.jsx)(p,{tone:`neutral`,className:`shrink-0`,title:z(e.timestamp),children:B(e.timestamp)}),g?(0,U.jsx)(c,{variant:`outlined`,size:`compact`,onClick:()=>i(e.conversationId),children:`Go to Convo`}):null,(0,U.jsxs)(u.Root,{children:[(0,U.jsx)(u.Trigger,{children:(0,U.jsx)(c,{variant:`outlined`,size:`compact`,iconOnly:(0,U.jsx)(v,{}),"aria-label":`More actions`,tooltip:`More actions`})}),(0,U.jsx)(u.Content,{align:`end`,children:h?(0,U.jsx)(u.Item,{onSelect:()=>a(e.id,`seen`),leftIcon:(0,U.jsx)(P,{className:`size-4`}),children:`Restore`}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(u.Item,{onSelect:()=>a(e.id,m?`seen`:`new`),leftIcon:m?(0,U.jsx)(V,{className:`size-4`}):(0,U.jsx)(F,{className:`size-4`}),children:m?`Mark as read`:`Mark as unread`}),(0,U.jsx)(u.Item,{onSelect:()=>o(e.id),leftIcon:(0,U.jsx)(ze,{className:`size-4`}),children:`Dismiss`})]})})]}),(0,U.jsx)(c,{variant:`outlined`,size:`compact`,iconOnly:(0,U.jsx)(y,{}),onClick:r,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,U.jsx)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:s===`toolPermission`?(0,U.jsx)(q,{item:e}):(0,U.jsx)(K,{item:e})})]})}function Y({label:e,onClick:t,className:n,children:r}){return(0,U.jsx)(s,{content:e,children:(0,U.jsx)(`button`,{type:`button`,"aria-label":e,onClick:e=>{e.stopPropagation(),t()},className:o(`cursor-pointer text-[var(--content-disabled)] transition-colors hover:text-[var(--content-secondary)]`,n),children:r})})}function lt(e){return e&&W[e]?W[e]:W.system}function X({item:e,isActive:t=!1,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:a,onGoToThread:s,trailingAction:c=`dismiss`}){let[l,u]=(0,H.useState)(!1),d=lt(e.category),f=d.icon,p=e.status===`new`,m=c===`restore`;return(0,U.jsxs)(`button`,{type:`button`,onClick:()=>r(e),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),className:o(`flex w-full cursor-pointer items-center gap-[var(--app-spacing-sm)]`,`rounded-[var(--radius-md)] px-[var(--app-spacing-md)] py-[var(--app-spacing-sm)]`,`transition-[background-color,opacity] duration-150`,t?`bg-[var(--surface-active)]`:l?`bg-[var(--surface-lift)]`:`bg-[var(--surface-overlay)]`,!p&&!t&&`opacity-70`),children:[(0,U.jsxs)(`span`,{className:`relative shrink-0`,"aria-hidden":`true`,children:[(0,U.jsx)(`span`,{className:`flex items-center justify-center rounded-full`,style:{width:26,height:26,backgroundColor:d.weak},children:(0,U.jsx)(f,{width:12,height:12,style:{color:d.strong}})}),p&&(0,U.jsx)(`span`,{className:`absolute -left-0.5 -top-0.5 h-2 w-2 rounded-full bg-[var(--system-mid-strong)]`})]}),(0,U.jsx)(`span`,{className:o(`text-body-medium-default min-w-0 flex-1 truncate text-left`,`text-[var(--content-secondary)]`),children:e.title??e.summary}),l&&!m?(0,U.jsxs)(`span`,{className:`flex shrink-0 items-center gap-[var(--app-spacing-sm)]`,children:[a&&(0,U.jsx)(Y,{label:p?`Mark as read`:`Mark as unread`,onClick:()=>a(e.id,p?`seen`:`new`),children:p?(0,U.jsx)(V,{width:14,height:14}):(0,U.jsx)(F,{width:14,height:14})}),s&&e.conversationId&&(!n||n.has(e.conversationId))&&(0,U.jsx)(Y,{label:`Go to thread`,onClick:()=>{p&&a&&a(e.id,`seen`),s(e.conversationId)},children:(0,U.jsx)(I,{width:14,height:14})}),(0,U.jsx)(Y,{label:`Dismiss`,onClick:()=>i(e.id),children:(0,U.jsx)(j,{width:14,height:14})})]}):l&&m?(0,U.jsxs)(Y,{label:`Restore`,onClick:()=>i(e.id),className:`flex shrink-0 items-center gap-[var(--app-spacing-xs)]`,children:[(0,U.jsx)(P,{width:14,height:14,"aria-hidden":`true`}),(0,U.jsx)(`span`,{className:`text-body-small-default`,children:`Restore`})]}):(0,U.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:B(e.timestamp)})]})}function ut(e){return[...e].sort((e,t)=>e.priority===t.priority?new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime():t.priority-e.priority)}function dt(e){let t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()-1),i={today:[],yesterday:[],older:[]};for(let t of e){let e=new Date(t.createdAt);e>=n?i.today.push(t):e>=r?i.yesterday.push(t):i.older.push(t)}let a=new Map;return i.today.length>0&&a.set(`today`,i.today),i.yesterday.length>0&&a.set(`yesterday`,i.yesterday),i.older.length>0&&a.set(`older`,i.older),a}function ft(e,t){return t===null?e:e.filter(e=>(e.category??`system`)===t)}function pt(e){return e.filter(e=>e.urgency!==`high`&&e.urgency!==`critical`)}function mt(e){let t=new Set;for(let n of e)t.add(n.category??`system`);return[...t]}var ht={today:`Today`,yesterday:`Yesterday`,older:`Older`};function gt({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s}){let[c,u]=(0,H.useState)(null),d=pt(e.filter(e=>e.status!==`dismissed`)),p=mt(d),m=c&&p.includes(c)?c:null;c!==m&&u(m);let h=dt(ut(ft(d,m))),g=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,U.jsx)(nt,{categories:p,activeFilter:m,onFilterChange:u}),h.size===0?(0,U.jsx)(l,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:m?`No items match the selected filter.`:`No items to show.`}):[...h.entries()].map(([e,a])=>(0,U.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(l,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:ht[e]}),(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:a.map(e=>(0,U.jsx)(X,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),g.length>0&&(0,U.jsx)(f.Root,{type:`single`,collapsible:!0,children:(0,U.jsxs)(f.Item,{value:`dismissed`,children:[(0,U.jsxs)(f.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,U.jsx)(_,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,U.jsxs)(`span`,{children:[`Dismissed (`,g.length,`)`]})]}),(0,U.jsx)(f.Content,{children:(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:g.map(e=>(0,U.jsx)(X,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function _t(e){let t=e.getHours();return t>=5&&t<12?`Good morning`:t>=12&&t<17?`Good afternoon`:t>=17&&t<22?`Good evening`:`Welcome back`}function vt({avatarComponents:e,avatarTraits:t,avatarImageUrl:n,greeting:r,isMobile:i,onStartNewChat:a}){return(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-[var(--app-spacing-md)]`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(Se,{components:e,traits:t,customImageUrl:n,size:36}),(0,U.jsx)(l,{variant:`title-large`,as:`h1`,className:`truncate`,children:r||_t(new Date)})]}),i?(0,U.jsx)(c,{variant:`primary`,iconOnly:(0,U.jsx)(R,{}),onClick:a,"aria-label":`New Chat`,tooltip:`New Chat`,className:`!rounded-full`}):(0,U.jsx)(c,{variant:`primary`,leftIcon:(0,U.jsx)(R,{}),onClick:a,children:`New Chat`})]})}var Z={AlarmClock:Je,Bell:h,BookOpen:Ye,Briefcase:Xe,Calendar:g,CheckSquare:et,Code:Oe,Compass:Ee,Cpu:Fe,FileText:be,Flag:me,Folder:N,Gamepad:A,Gift:O,Globe:ee,GraduationCap:Ze,Heart:oe,Lightbulb:He,Link:ce,ListTodo:Qe,Mail:F,Map:We,MessageCircle:ke,MessageSquare:I,Music:Ne,Package:Ve,Pencil:te,Phone:Re,Pin:Ae,Plane:$e,Plug:Ie,Puzzle:Be,Search:De,Send:ve,Settings:L,Share:ye,ShoppingCart:we,Sparkles:E,Star:D,Sun:_e,Target:ne,Tag:he,TrendingUp:k,Users:de,Wand2:re,Wrench:Ue,Zap:le};function Q(e){return e.charAt(0).toUpperCase()+e.slice(1)}function $(e){if(!e)return E;let t=Q(e);if(Z[t])return Z[t];let n=e.replace(/^lucide-/,``);if(n!==e){let e=Q(n);if(Z[e])return Z[e]}return E}function yt({suggestions:e,maxVisible:t=3,onSelect:n}){let[r,i]=(0,H.useState)(!1);if(r||e.length===0)return null;let a=e.slice(0,t);return(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] rounded-2xl border border-[var(--border-disabled)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:`By the way, have you tried one of these:`}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>i(!0),"aria-label":`Dismiss suggestions`,className:`shrink-0 cursor-pointer text-[var(--content-disabled)] transition-colors hover:text-[var(--content-tertiary)]`,children:(0,U.jsx)(y,{className:`size-3.5`})})]}),(0,U.jsx)(`div`,{className:`flex flex-wrap items-center gap-[var(--app-spacing-sm)]`,children:a.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`flex cursor-pointer items-center gap-[var(--app-spacing-xs)] rounded-full bg-[var(--surface-active)] py-1 pl-1 pr-3 text-[var(--content-default)] transition-colors hover:text-[var(--content-secondary)]`,children:[(0,U.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full bg-[var(--surface-active)]`,style:{width:26,height:26},"aria-hidden":`true`,children:(0,U.jsx)($(e.icon),{className:`size-[18px]`})}),(0,U.jsx)(`span`,{className:`text-body-small-default`,children:e.label})]},e.id))})]})}function bt(e){let t=r(),n=(0,H.useMemo)(()=>ae({path:{assistant_id:e??``}}),[e]),a=i({...ie({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),o=(0,H.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...a,invalidate:o}}function xt(){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-md)]`,children:[(0,U.jsx)(`div`,{className:`size-9 animate-pulse rounded-full bg-[var(--surface-lift)]`}),(0,U.jsx)(`div`,{className:`h-7 w-64 animate-pulse rounded-md bg-[var(--surface-lift)]`})]}),(0,U.jsx)(`div`,{className:`h-9 w-28 animate-pulse rounded-md bg-[var(--surface-lift)]`})]}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`div`,{className:`h-8 w-36 animate-pulse rounded-full bg-[var(--surface-lift)]`}),(0,U.jsx)(`div`,{className:`h-8 w-28 animate-pulse rounded-full bg-[var(--surface-lift)]`}),(0,U.jsx)(`div`,{className:`h-8 w-32 animate-pulse rounded-full bg-[var(--surface-lift)]`})]}),(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,U.jsx)(`div`,{className:`h-16 animate-pulse rounded-md bg-[var(--surface-lift)]`},t))})]})}function St({assistantId:e,validConversationIds:t,onStartNewChat:n,onOpenConversation:r,onSuggestionSelected:i}){let a=S(),o=xe(e),s=Pe(e);bt(e);let[c,l]=(0,H.useState)(null),u=(0,H.useCallback)(e=>{e.status===`new`?(l({...e,status:`seen`}),s.updateStatus.mutate({itemId:e.id,status:`seen`})):l(e)},[s.updateStatus]),f=(0,H.useCallback)(()=>{l(null)},[]),p=(0,H.useCallback)(e=>{s.updateStatus.mutate({itemId:e,status:`dismissed`}),c?.id===e&&l(null)},[s.updateStatus,c?.id]),m=(0,H.useCallback)(e=>{s.updateStatus.mutate({itemId:e,status:`seen`}),l(t=>t?.id===e?{...t,status:`seen`}:t)},[s.updateStatus]),h=(0,H.useCallback)((e,t)=>{s.updateStatus.mutate({itemId:e,status:t}),l(n=>n?.id===e?{...n,status:t}:n)},[s.updateStatus]),g=(0,H.useCallback)(e=>{l(null),r(e)},[r]),_=(0,H.useCallback)(e=>{i(e.prompt)},[i]),v=s.isLoading?(0,U.jsx)(xt,{}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(vt,{avatarComponents:o.components,avatarTraits:o.traits,avatarImageUrl:o.customImageUrl,greeting:s.data?.contextBanner?.greeting,isMobile:a,onStartNewChat:n}),s.isError?(0,U.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`,s.error instanceof Error?`: ${s.error.message}`:`.`]}):null,(0,U.jsx)(yt,{suggestions:s.data?.suggestedPrompts??[],maxVisible:a?2:3,onSelect:_}),(0,U.jsx)(gt,{items:s.data?.items??[],selectedItemId:c?.id,validConversationIds:t,onSelectItem:u,onDismissItem:p,onRestoreItem:m,onToggleRead:h,onGoToThread:g})]});return c&&a?(0,U.jsx)(`div`,{className:`fixed inset-0 z-30 bg-[var(--surface-overlay)]`,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`},children:(0,U.jsx)(J,{item:c,isMobile:!0,validConversationIds:t,onClose:f,onGoToThread:g,onUpdateStatus:h,onDismiss:p})}):c&&!a?(0,U.jsx)(d,{storageKey:`homeDetailPanelWidth`,defaultLeftPercent:50,minLeftWidth:400,minRightWidth:320,left:(0,U.jsx)(`div`,{className:`flex h-full flex-col gap-[var(--app-spacing-xl)] overflow-y-auto px-[var(--app-spacing-xl)] py-[var(--app-spacing-xxl)]`,children:v}),right:(0,U.jsx)(J,{item:c,validConversationIds:t,onClose:f,onGoToThread:g,onUpdateStatus:h,onDismiss:p})}):(0,U.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,U.jsx)(`div`,{className:`mx-auto w-full max-w-[960px] px-[var(--app-spacing-xl)] py-[var(--app-spacing-xxl)]`,children:(0,U.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:v})})})}function Ct(){let e=n(),t=Ge(),r=se.use.setTopBarCenter(),i=S(),{conversations:a}=fe(t),{conversations:o}=pe(t,!0),{conversations:s}=M(t,!0),c=(0,H.useMemo)(()=>new Set(Le(a,o,s).map(e=>e.conversationId)),[a,o,s]);return(0,H.useEffect)(()=>(r(i?(0,U.jsx)(l,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Home`}):null),()=>{r(null)}),[i,r]),(0,U.jsx)(St,{assistantId:t,validConversationIds:c,onStartNewChat:()=>{C.getState().setMainView(`chat`);let t=T();w.getState().setActiveConversationId(t),e(x.conversation(t)),ue()},onOpenConversation:t=>e(x.conversation(t)),onSuggestionSelected:t=>{C.getState().setMainView(`chat`);let n=T();w.getState().setActiveConversationId(n),e(`${x.conversation(n)}?prompt=${encodeURIComponent(t)}`)}})}export{Ct as HomePageRoute};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./button-DdEh-9f_.js";import{T as o,t as s,w as c}from"./resolved-assistants-store-ub66utfl.js";import{r as l}from"./auth-store-CiQCAKS1.js";import{i as u,n as d}from"./routes-Dk5Qeryt.js";import{Ea as f,Qa as p,pr as m,ua as h}from"./index-BjEJFZTJ.js";import{t as g}from"./onboarding-layout-BIVa2BnX.js";import{r as _}from"./provider-key-D_Hh-rHb.js";import{t as v}from"./use-onboarding-login-Cd72-1Qe.js";var y=e(t(),1),b=i(),x=`h-5 w-5 shrink-0 text-[var(--content-secondary)]`;function S(){let e=l(),t=m.use.multiPlatformAssistant(),n=s.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,b.jsx)(p,{className:x}),...!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,b.jsx)(f,{className:x})},{mode:`docker`,label:`Docker`,subtitle:`Same privacy as local, but sandboxed using Docker for added isolation.`,icon:(0,b.jsx)(h,{className:x})}]}function C(){let e=n(),[t]=r(),i=t.get(`from`)===`select-assistant`,s=l(),f=S(),p=f.find(e=>e.mode===`vellum-cloud`)?.disabled,[m,h]=(0,y.useState)(s&&!p?`vellum-cloud`:`local`);(0,y.useEffect)(()=>{p&&m===`vellum-cloud`&&h(`local`)},[p,m]);let{loading:x,error:C,login:T,cancel:E}=v(`${u.onboarding.hosting}?from=select-assistant`),D=i&&!s;return(0,b.jsx)(g,{children:(0,b.jsxs)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 pt-16 text-[var(--content-default)]`,children:[(0,b.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,b.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Where do you want your assistant to live?`}),C&&(0,b.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:C}),(0,b.jsx)(`div`,{className:`mt-10 grid w-full auto-rows-fr gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:f.map(e=>(0,b.jsx)(w,{option:e,selected:m===e.mode,onSelect:()=>{e.disabled||h(e.mode)}},e.mode))}),(0,b.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,b.jsx)(a,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{m===`vellum-cloud`?(o(),c(null),_(null),e(u.onboarding.privacy)):e(`${u.onboarding.apiKey}?hosting=${m}`)},children:`Continue`}),D&&(0,b.jsx)(a,{variant:`outlined`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:x?E:()=>void T(),children:x?`Cancel`:`Log In`}),(0,b.jsx)(a,{variant:`outlined`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{e(i?u.selectAssistant:u.welcome)},disabled:x,children:`Back`})]}),(0,b.jsx)(`a`,{href:d(u.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`mt-6 text-body-medium-default text-[var(--content-default)] underline`,style:{animation:`fadeInUp 0.5s ease-out 0.6s both`},children:`Need help choosing?`})]})})}function w({option:e,selected:t,onSelect:n}){return(0,b.jsxs)(`button`,{type:`button`,onClick:n,disabled:e.disabled,className:`flex w-full items-center gap-4 rounded-xl border px-4 py-4 text-left transition-colors ${e.disabled?`cursor-not-allowed opacity-60`:`cursor-pointer`} ${t&&!e.disabled?`border-[var(--primary-base)] bg-[var(--primary-base)]/5`:`border-[var(--border-element)] bg-transparent`}`,children:[e.icon,(0,b.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),e.badge&&(0,b.jsx)(`span`,{className:`rounded-full bg-[var(--surface-tertiary)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:e.badge})]}),(0,b.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-body-small-default text-[var(--content-tertiary)]`,children:e.subtitle})]}),!e.disabled&&(0,b.jsx)(`div`,{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border-2 ${t?`border-[var(--primary-base)]`:`border-[var(--border-element)]`}`,children:t&&(0,b.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full bg-[var(--primary-base)]`})})]})}export{C as HostingScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./button-DdEh-9f_.js";import{T as o,t as s,w as c}from"./resolved-assistants-store-ub66utfl.js";import{r as l}from"./auth-store-CiQCAKS1.js";import{i as u,n as d}from"./routes-Dk5Qeryt.js";import{Ea as f,Qa as p,pr as m,ua as h}from"./index-DGojzQtP.js";import{t as g}from"./onboarding-layout-BIVa2BnX.js";import{r as _}from"./provider-key-D_Hh-rHb.js";import{t as v}from"./use-onboarding-login-CWKxGXhS.js";var y=e(t(),1),b=i(),x=`h-5 w-5 shrink-0 text-[var(--content-secondary)]`;function S(){let e=l(),t=m.use.multiPlatformAssistant(),n=s.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,b.jsx)(p,{className:x}),...!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,b.jsx)(f,{className:x})},{mode:`docker`,label:`Docker`,subtitle:`Same privacy as local, but sandboxed using Docker for added isolation.`,icon:(0,b.jsx)(h,{className:x})}]}function C(){let e=n(),[t]=r(),i=t.get(`from`)===`select-assistant`,s=l(),f=S(),p=f.find(e=>e.mode===`vellum-cloud`)?.disabled,[m,h]=(0,y.useState)(s&&!p?`vellum-cloud`:`local`);(0,y.useEffect)(()=>{p&&m===`vellum-cloud`&&h(`local`)},[p,m]);let{loading:x,error:C,login:T,cancel:E}=v(`${u.onboarding.hosting}?from=select-assistant`),D=i&&!s;return(0,b.jsx)(g,{children:(0,b.jsxs)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 pt-16 text-[var(--content-default)]`,children:[(0,b.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,b.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Where do you want your assistant to live?`}),C&&(0,b.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:C}),(0,b.jsx)(`div`,{className:`mt-10 grid w-full auto-rows-fr gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:f.map(e=>(0,b.jsx)(w,{option:e,selected:m===e.mode,onSelect:()=>{e.disabled||h(e.mode)}},e.mode))}),(0,b.jsxs)(`div`,{className:`mt-8 flex w-full flex-col gap-2`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,b.jsx)(a,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{m===`vellum-cloud`?(o(),c(null),_(null),e(u.onboarding.privacy)):e(`${u.onboarding.apiKey}?hosting=${m}`)},children:`Continue`}),D&&(0,b.jsx)(a,{variant:`outlined`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:x?E:()=>void T(),children:x?`Cancel`:`Log In`}),(0,b.jsx)(a,{variant:`outlined`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{e(i?u.selectAssistant:u.welcome)},disabled:x,children:`Back`})]}),(0,b.jsx)(`a`,{href:d(u.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`mt-6 text-body-medium-default text-[var(--content-default)] underline`,style:{animation:`fadeInUp 0.5s ease-out 0.6s both`},children:`Need help choosing?`})]})})}function w({option:e,selected:t,onSelect:n}){return(0,b.jsxs)(`button`,{type:`button`,onClick:n,disabled:e.disabled,className:`flex w-full items-center gap-4 rounded-xl border px-4 py-4 text-left transition-colors ${e.disabled?`cursor-not-allowed opacity-60`:`cursor-pointer`} ${t&&!e.disabled?`border-[var(--primary-base)] bg-[var(--primary-base)]/5`:`border-[var(--border-element)] bg-transparent`}`,children:[e.icon,(0,b.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),e.badge&&(0,b.jsx)(`span`,{className:`rounded-full bg-[var(--surface-tertiary)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:e.badge})]}),(0,b.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-body-small-default text-[var(--content-tertiary)]`,children:e.subtitle})]}),!e.disabled&&(0,b.jsx)(`div`,{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border-2 ${t?`border-[var(--primary-base)]`:`border-[var(--border-element)]`}`,children:t&&(0,b.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full bg-[var(--primary-base)]`})})]})}export{C as HostingScreen};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CZsNGL6n.js";import{t as n}from"./react-DJZBPgpf.js";import{T as r}from"./portal-container-DIXEBWUe.js";import{d as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as a}from"./QueryClientProvider-DNHWXaGq.js";import{t as o}from"./useQuery-D2zf6Uhu.js";import{t as s}from"./useMutation-BuofVRHk.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{t as l}from"./button-DdEh-9f_.js";import{t as u}from"./card-CL5iEMJO.js";import"./src-hn7lwVCD.js";import{t as d}from"./confirm-dialog-NYG-K9zN.js";import{n as f,s as p,t as m}from"./install-Uj6CrGld.js";import{t as h}from"./chevron-right-zTNPbA1m.js";import{n as g,t as _}from"./minimize-2-CXA_X5M9.js";import{t as v}from"./pencil-BA9LOIzP.js";import{t as y}from"./save-DHFrLI4J.js";import{t as b}from"./x-BDqbYVtS.js";import{I as x,L as S,M as C}from"./react-query.gen-B8xaBreR.js";import{r as w}from"./api-DEEx3e9R.js";import{i as T}from"./routes-Dk5Qeryt.js";import{t as E}from"./viewer-store-Cc5YI5ay.js";import{t as D}from"./conversation-store-BEgf__eu.js";import{a as O,o as k,r as A}from"./avatar-api-BwHmtSnS.js";import{t as j}from"./misc-MEUnNRwX.js";import{n as M}from"./use-reduced-motion-CZO_MWGV.js";import{$n as N,Bi as P,Ci as F,Ga as I,La as ee,Qn as te,R as L,Si as R,Zi as z,fo as B,jn as ne,ka as re,wi as ie,xi as V,y as H,z as U}from"./index-BjEJFZTJ.js";import{t as W}from"./use-active-assistant-id-BIhArlF_.js";var ae=e(r(),1),G=e(n(),1),K=c();function q(e,t,n){return n===`forward`?(e+1)%t:(e-1+t)%t}function J({assistantId:e,initialTraits:t,onSave:n,onCancel:r}){let[i,a]=(0,G.useState)(null),[o,s]=(0,G.useState)(!0),[c,l]=(0,G.useState)(!1),u=(0,G.useRef)(null),[d,f]=(0,G.useState)(0),[p,m]=(0,G.useState)(0),[h,g]=(0,G.useState)(0);(0,G.useEffect)(()=>{if(u.current===e)return;let n=!1;return A(e).then(r=>{if(!n&&(u.current=e,a(r),s(!1),r&&t)){let e=r.bodyShapes.findIndex(e=>e.id===t.bodyShape),n=r.eyeStyles.findIndex(e=>e.id===t.eyeStyle),i=r.colors.findIndex(e=>e.id===t.color);e>=0&&f(e),n>=0&&m(n),i>=0&&g(i)}}),()=>{n=!0}},[e,t]);let _=(0,G.useCallback)(()=>{i&&(f(Math.floor(Math.random()*i.bodyShapes.length)),m(Math.floor(Math.random()*i.eyeStyles.length)),g(Math.floor(Math.random()*i.colors.length)))},[i]),v=(0,G.useCallback)(async()=>{if(!i)return;let t={bodyShape:i.bodyShapes[d].id,eyeStyle:i.eyeStyles[p].id,color:i.colors[h].id};l(!0);try{await O(e,t),n?.(t)}finally{l(!1)}},[i,d,p,h,e,n]);if(o)return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,K.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-element)] border-t-[var(--content-tertiary)]`})});if(!i)return(0,K.jsx)(`div`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-quiet)]`,children:`Unable to load avatar components. Make sure your assistant is running.`});let x=i.bodyShapes[d],S=i.eyeStyles[p],C=i.colors[h];return(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(`div`,{className:`flex justify-center`,children:(0,K.jsx)(`div`,{className:`rounded-2xl bg-[var(--surface-sunken)] p-6`,children:(0,K.jsx)(H,{components:i,bodyShapeId:x.id,eyeStyleId:S.id,colorId:C.id,size:160})})}),(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(Y,{label:`Body`,value:x.id,onPrev:()=>f(q(d,i.bodyShapes.length,`backward`)),onNext:()=>f(q(d,i.bodyShapes.length,`forward`))}),(0,K.jsx)(Y,{label:`Eyes`,value:S.id,onPrev:()=>m(q(p,i.eyeStyles.length,`backward`)),onNext:()=>m(q(p,i.eyeStyles.length,`forward`))}),(0,K.jsx)(Y,{label:`Color`,value:C.id,colorHex:C.hex,onPrev:()=>g(q(h,i.colors.length,`backward`)),onNext:()=>g(q(h,i.colors.length,`forward`))})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:_,className:`flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-lg border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-2 text-body-medium-default text-[var(--content-strong)] transition-colors hover:bg-[var(--surface-hover)]`,children:[(0,K.jsx)(I,{className:`h-4 w-4`}),`Randomize`]}),(0,K.jsxs)(`button`,{type:`button`,onClick:v,disabled:c,className:`flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-lg border border-[var(--system-positive-strong)] bg-[var(--system-positive-weak)] px-3 py-2 text-body-medium-default text-[var(--system-positive-strong)] transition-colors hover:opacity-90 disabled:opacity-50`,children:[(0,K.jsx)(y,{className:`h-4 w-4`}),c?`Saving...`:`Save Avatar`]}),r&&(0,K.jsx)(`button`,{type:`button`,onClick:r,className:`flex cursor-pointer items-center justify-center rounded-lg border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-2 text-body-medium-default text-[var(--content-strong)] transition-colors hover:bg-[var(--surface-hover)]`,children:(0,K.jsx)(b,{className:`h-4 w-4`})})]})]})}function Y({label:e,value:t,colorHex:n,onPrev:r,onNext:i}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3 py-2`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default uppercase tracking-wider text-[var(--content-quiet)]`,children:e}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:r,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-md text-[var(--content-quiet)] transition-colors hover:bg-[var(--surface-active)]`,children:(0,K.jsx)(B,{className:`h-4 w-4`})}),(0,K.jsxs)(`div`,{className:`flex min-w-[80px] items-center justify-center gap-2`,children:[n&&(0,K.jsx)(`div`,{className:`h-4 w-4 rounded-full border border-[var(--border-element)]`,style:{backgroundColor:n}}),(0,K.jsx)(`span`,{className:`text-body-medium-default capitalize text-[var(--content-strong)]`,children:t})]}),(0,K.jsx)(`button`,{type:`button`,onClick:i,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-md text-[var(--content-quiet)] transition-colors hover:bg-[var(--surface-active)]`,children:(0,K.jsx)(h,{className:`h-4 w-4`})})]})]})}function oe({open:e,onClose:t,assistantId:n,components:r,traits:i,customImageUrl:a,onSaveCharacter:o,onUploadImage:s,onGenerateWithAI:c}){let l=(0,G.useId)(),u=(0,G.useRef)(null),d=(0,G.useRef)(null),f=(0,G.useRef)(null),[p,m]=(0,G.useState)(`actions`),[g,_]=(0,G.useState)(!1);(0,G.useEffect)(()=>{e&&d.current?.focus()},[e]),(0,G.useEffect)(()=>{if(e){let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}}},[e]);let v=(0,G.useCallback)(()=>{m(`actions`),t()},[t]),y=(0,G.useCallback)(e=>{e.key===`Escape`&&(p===`character-builder`?m(`actions`):v())},[v,p]),x=(0,G.useCallback)(e=>{e.target===u.current&&v()},[v]),S=(0,G.useCallback)(()=>{m(`actions`)},[]),C=(0,G.useCallback)(()=>{m(`character-builder`)},[]),w=(0,G.useCallback)(async e=>{let t=e.target.files?.[0];if(!t)return;_(!0);let r=await k(n,t);_(!1),r&&(s(),v()),f.current&&(f.current.value=``)},[n,s,v]),T=(0,G.useCallback)(()=>{f.current?.click()},[]),E=(0,G.useCallback)(()=>{v(),c?.()},[v,c]),D=(0,G.useCallback)(e=>{o(e),v()},[o,v]);return e?(0,ae.createPortal)((0,K.jsxs)(`div`,{ref:u,role:`dialog`,"aria-modal":`true`,"aria-labelledby":l,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:y,onClick:x,children:[(0,K.jsxs)(`div`,{className:`mx-4 flex w-full max-w-md flex-col rounded-xl border shadow-xl`,style:{backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`,maxHeight:`85vh`},children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b px-6 py-4`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p===`character-builder`&&(0,K.jsx)(`button`,{type:`button`,onClick:S,className:`flex h-8 w-8 items-center justify-center rounded-lg transition-colors hover:bg-black/5 dark:hover:bg-white/10`,"aria-label":`Back`,children:(0,K.jsx)(B,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsx)(`h2`,{id:l,className:`text-title-small`,style:{color:`var(--content-default)`},children:p===`character-builder`?`Build a Character`:`Update Avatar`})]}),(0,K.jsx)(`button`,{ref:d,type:`button`,onClick:v,className:`flex h-8 w-8 items-center justify-center rounded-lg transition-colors hover:bg-black/5 dark:hover:bg-white/10`,"aria-label":`Close`,children:(0,K.jsx)(b,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})]}),(0,K.jsx)(`div`,{className:`overflow-y-auto p-6`,children:p===`actions`?(0,K.jsxs)(`div`,{className:`flex flex-col items-center gap-6`,children:[(0,K.jsx)(L,{components:r,traits:i,customImageUrl:a,size:120,interactive:!0}),(0,K.jsxs)(`div`,{className:`w-full space-y-2`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:C,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-colors hover:opacity-80`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg`,style:{backgroundColor:`color-mix(in oklab, var(--content-tertiary) 16%, transparent)`},children:(0,K.jsx)(ie,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsxs)(`div`,{className:`flex-1 text-left`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Build a Character`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Build your own character`})]}),(0,K.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})]}),(0,K.jsxs)(`button`,{type:`button`,onClick:T,disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-colors hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg`,style:{backgroundColor:`color-mix(in oklab, var(--content-tertiary) 16%, transparent)`},children:(0,K.jsx)(re,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsxs)(`div`,{className:`flex-1 text-left`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:g?`Uploading...`:`Upload Image`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Choose an image from your computer`})]}),(0,K.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})]}),c&&(0,K.jsxs)(`button`,{type:`button`,onClick:E,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-colors hover:opacity-80`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg`,style:{backgroundColor:`color-mix(in oklab, var(--content-tertiary) 16%, transparent)`},children:(0,K.jsx)(P,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsxs)(`div`,{className:`flex-1 text-left`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Generate with AI`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Create an avatar through chat`})]}),(0,K.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})]})]})]}):(0,K.jsx)(J,{assistantId:n,initialTraits:i,onSave:D,onCancel:S})})]}),(0,K.jsx)(`input`,{ref:f,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif`,className:`hidden`,onChange:w})]}),document.body):null}var se={displayName:`Other`,color:`#888`,emoji:`?`},ce={email:{displayName:`Email`,color:`#A665C9`,emoji:`📧`},calendar:{displayName:`Calendar`,color:`#0E9B8B`,emoji:`📅`},messaging:{displayName:`Messaging`,color:`#6B8AE0`,emoji:`💬`},browsing:{displayName:`Browsing`,color:`#E9642F`,emoji:`🌐`},productivity:{displayName:`Productivity`,color:`#0E9B8B`,emoji:`📋`},development:{displayName:`Development`,color:`#EF4400`,emoji:`🔨`},voice:{displayName:`Voice`,color:`#DB4B77`,emoji:`🎤`},commerce:{displayName:`Commerce`,color:`#E9C91A`,emoji:`🛒`},content:{displayName:`Content`,color:`#DB4B77`,emoji:`🎨`},health:{displayName:`Health`,color:`#4C9B50`,emoji:`❤️`},system:{displayName:`System`,color:`#8D99A5`,emoji:`⚙️`},integrations:{displayName:`Integrations`,color:`#8D99A5`,emoji:`🔗`}};function X(e){return ce[e]??se}var le=[`email`,`calendar`,`messaging`,`browsing`,`productivity`,`development`,`voice`,`commerce`,`content`,`health`,`system`,`integrations`],ue={email:[{label:`Sending`,emoji:`📨`,skillIds:new Set([`agentmail`,`email-setup`])},{label:`Reading`,emoji:`📬`,skillIds:new Set([`email-channel`,`gmail`])}],messaging:[{label:`Chat`,emoji:`💬`,skillIds:new Set([`messaging`,`slack`,`telegram`])},{label:`Notifications`,emoji:`🔔`,skillIds:new Set([`notifications`])},{label:`People`,emoji:`👥`,skillIds:new Set([`contacts`,`followups`])}],development:[{label:`Coding`,emoji:`💻`,skillIds:new Set([`typescript-eval`,`frontend-design`])},{label:`Dev Tools`,emoji:`🔧`,skillIds:new Set([`api-mapping`,`cli-discover`,`subagent`,`app-builder`])}],browsing:[{label:`Control`,emoji:`🎮`,skillIds:new Set([`computer-use`,`macos-automation`,`browser`])},{label:`Triggers`,emoji:`⏰`,skillIds:new Set([`watcher`,`time-based-actions`])}],commerce:[{label:`Shopping`,emoji:`🛒`,skillIds:new Set([`amazon`,`doordash`,`restaurant-reservation`])}],system:[{label:`Core`,emoji:`🧠`,skillIds:new Set([`knowledge-graph`,`skills-catalog`,`self-upgrade`])},{label:`Daily`,emoji:`☀️`,skillIds:new Set([`start-the-day`,`weather`])}]},de=14,fe=10,pe=6;function me(e){switch(e.kind.type){case`center`:return{shape:`circle`,size:90,cornerRadius:0};case`category`:return{shape:`roundedRect`,size:80,cornerRadius:de};case`subCategory`:return{shape:`roundedRect`,size:56,cornerRadius:fe};case`skill`:return{shape:`diamond`,size:64,cornerRadius:pe}}}function he(e,t,n,r){let i=Math.min(Math.max(0,t),e),a=Math.abs(n),o=Math.abs(r);if(a<1e-6&&o<1e-6)return e;let s=e/Math.max(a,o),c=s*n,l=s*r;if(!(Math.abs(c)>e-i&&Math.abs(l)>e-i))return s;let u=Math.sign(c)*(e-i),d=Math.sign(l)*(e-i),f=n*u+r*d,p=u*u+d*d-i*i,m=f*f-p;return m<0?s:f+Math.sqrt(m)}function ge(e,t,n){switch(e.shape){case`circle`:return e.size/2;case`roundedRect`:return he(e.size/2,e.cornerRadius,t,n);case`diamond`:{let r=(t+n)*Math.SQRT1_2,i=(-t+n)*Math.SQRT1_2;return he(e.size/2,e.cornerRadius,r,i)}}}function _e(e,t){let n=t.x-e.x,r=t.y-e.y,i=Math.sqrt(n*n+r*r);if(i<1e-6)return{x1:e.x,y1:e.y,x2:t.x,y2:t.y};let a=n/i,o=r/i,s=Math.max(0,ge(me(e),a,o)-3),c=Math.max(0,ge(me(t),-a,-o)-3);if(s+c>=i){let n=(e.x+t.x)/2,r=(e.y+t.y)/2;return{x1:n,y1:r,x2:n,y2:r}}return{x1:e.x+a*s,y1:e.y+o*s,x2:t.x-a*c,y2:t.y-o*c}}var ve=10,ye=200,be=160,xe=160;function Se(e,t,n,r){let i={x:e.x,y:e.y};for(let e=0;e<30;e++){let e=0,a=0,o=0;for(let s of n){let n=i.x-s.x,c=i.y-s.y,l=Math.sqrt(n*n+c*c),u=t+s.radius+r-l;u>e&&(e=u,l<.1?(a=u+1,o=0):(a=n/l*(u+1),o=c/l*(u+1)))}if(e<=0)break;i={x:i.x+a,y:i.y+o}}return i}function Ce(e,t,n,r,i,a,o,s,c,l,u,d){if(e.length===0)return;let f=a+o,p=Math.cos(r),m=Math.sin(r),h=-m,g=p,_=f*.88,v=X(c).color;e.forEach((r,c)=>{let y=Math.floor(c/3),b=c%3,x=Math.min(3,e.length-y*3),S=(b-(x-1)/2)*f,C=y%2==1&&x<3?f*.5:0,w=i+y*_,T=Se({x:n.x+w*p+(S+C)*h,y:n.y+w*m+(S+C)*g},a/2,u,o);u.push({id:r.id,kind:{type:`skill`,item:r},parentId:t,depth:s,x:T.x,y:T.y,radius:a/2}),d.push({id:`edge-${l}-skill-${c}`,fromId:t,toId:r.id,color:v})})}function we(e,t,n=90){let r=[],i=[],a=ve;if(r.push({id:`__center__`,kind:{type:`center`},parentId:null,depth:0,x:e.x,y:e.y,radius:n/2}),t.length===0)return{nodes:r,edges:i};let o=t.length,s=2*Math.PI/o;return t.forEach((t,n)=>{let o=-Math.PI/2+n*s,c=`cat-${t.category}`,l=X(t.category).color,u=Se({x:e.x+ye*Math.cos(o),y:e.y+ye*Math.sin(o)},80/2,r,a);r.push({id:c,kind:{type:`category`,category:t.category},parentId:`__center__`,depth:1,x:u.x,y:u.y,radius:80/2}),i.push({id:`edge-center-${t.category}`,fromId:`__center__`,toId:c,color:l});let d=ue[t.category];if(d&&d.length>0){let e=[],n=new Set;for(let r of d){let i=t.items.filter(e=>r.skillIds.has(e.id));i.length>0&&(e.push({def:r,items:i}),i.forEach(e=>n.add(e.id)))}let f=t.items.filter(e=>!n.has(e.id));if(f.length>0){if(e.length===0){Ce(t.items,c,u,o,xe,64,a,2,t.category,t.category,r,i);return}let n=e[e.length-1];n&&n.items.push(...f)}let p=e.length,m=s*.55,h=p<=1?0:Math.min(m,(p-1)*.35);e.forEach((e,n)=>{let s;s=p===1?o:o+(n/(p-1)-.5)*h*2;let d=`subcat-${t.category}-${n}`,f=Se({x:u.x+be*Math.cos(s),y:u.y+be*Math.sin(s)},56/2,r,a);r.push({id:d,kind:{type:`subCategory`,label:e.def.label,emoji:e.def.emoji,category:t.category},parentId:c,depth:2,x:f.x,y:f.y,radius:56/2}),i.push({id:`edge-${t.category}-sub-${n}`,fromId:c,toId:d,color:l}),Ce(e.items,d,f,s,xe,64,a,3,t.category,d,r,i)})}else Ce(t.items,c,u,o,xe,64,a,2,t.category,t.category,r,i)}),{nodes:r,edges:i}}function Te(e){let t=new Map;for(let n of e){let e=t.get(n.category);e?e.push(n):t.set(n.category,[n])}let n=[];for(let e of le){let r=t.get(e);r&&r.length>0&&n.push({category:e,items:r})}for(let[e,r]of t)!le.includes(e)&&r.length>0&&n.push({category:e,items:r});return n}function Ee(e,t,n,r,i=120,a=.4,o=3){if(e.length===0)return{zoom:1,panX:0,panY:0};let s=1/0,c=-1/0,l=1/0,u=-1/0;for(let t of e)s=Math.min(s,t.x),c=Math.max(c,t.x),l=Math.min(l,t.y),u=Math.max(u,t.y);let d=c-s+i*2,f=u-l+i*2;if(d<=0||f<=0||n<=0||r<=0)return{zoom:1,panX:0,panY:0};let p=Math.min(n/d,r/f),m=Math.max(a,Math.min(o,p)),h=(s+c)/2-t.x,g=(l+u)/2-t.y;return{zoom:m,panX:-h*m,panY:-g*m}}var De=.4,Oe=.25,Z={x:600,y:450},ke={type:`spring`,stiffness:180,damping:20},Ae={category:{size:80,cornerRadius:14,dashed:!1,fillPct:14,fillHoverPct:25,strokePct:55,strokeHoverPct:85,strokeWidth:2,strokeHoverWidth:2.5},subcategory:{size:56,cornerRadius:10,dashed:!0,fillPct:10,fillHoverPct:20,strokePct:40,strokeHoverPct:70,strokeWidth:1.5,strokeHoverWidth:2}},je={category:`rounded-[3px]`,subcategory:`rounded-[3px] border-dashed`,skill:`rotate-45`,workspace:`rounded-full`};function Me({edges:e,nodeById:t,visible:n}){return(0,K.jsx)(`svg`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 h-full w-full overflow-visible`,children:e.map(e=>{let r=t.get(e.fromId),i=t.get(e.toId);if(!r||!i)return null;let{x1:a,y1:o,x2:s,y2:c}=_e(r,i);return(0,K.jsx)(`line`,{x1:a,y1:o,x2:s,y2:c,stroke:e.color,strokeWidth:1.5,opacity:n?.45:0,style:{transition:`opacity 0.4s ease`}},e.id)})})}function Q({shape:e,label:t}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`flex h-4 w-4 items-center justify-center`,children:(0,K.jsx)(`span`,{className:j(`inline-block h-3 w-3 border-[1.5px] border-[var(--content-tertiary)]`,je[e])})}),(0,K.jsx)(`span`,{children:t})]})}function Ne({visible:e}){return(0,K.jsx)(`div`,{"data-constellation-control":!0,className:`pointer-events-none absolute bottom-4 left-4 rounded-md px-3 py-2 text-body-small-default`,style:{backgroundColor:`color-mix(in srgb, var(--surface-overlay) 80%, transparent)`,border:`1px solid color-mix(in srgb, var(--content-tertiary) 20%, transparent)`,color:`var(--content-secondary)`,opacity:+!!e,transition:`opacity 0.35s ease`},children:(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(Q,{shape:`category`,label:`Category`}),(0,K.jsx)(Q,{shape:`subcategory`,label:`Subcategory`}),(0,K.jsx)(Q,{shape:`skill`,label:`Skill`}),(0,K.jsx)(Q,{shape:`workspace`,label:`Workspace`})]})})}function Pe({item:e,color:t,onViewDetails:n}){let r=e.kind===`skill`?`Skill`:`Workspace`,i=e.kind===`skill`?F:ee;return(0,K.jsxs)(u,{padding:`sm`,elevated:!0,className:`w-[260px] shadow-[var(--shadow-popover)]`,role:`dialog`,"aria-label":`${e.label} details`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md px-2 py-1 text-body-small-emphasised text-[var(--content-default)]`,style:{backgroundColor:`${t}33`},children:[(0,K.jsx)(i,{className:`h-3 w-3`,style:{color:t}}),r]}),n?(0,K.jsx)(l,{type:`button`,variant:`ghost`,size:`compact`,onClick:n,children:`View Details`}):null]}),(0,K.jsxs)(`div`,{className:`mt-2 flex items-start gap-2`,children:[e.icon||e.emoji?(0,K.jsx)(p,{skill:e,className:`h-5 w-5 shrink-0 text-[20px] leading-none`}):null,(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.label}),e.description?(0,K.jsx)(`div`,{className:`mt-1 line-clamp-3 text-body-small-default text-[var(--content-secondary)]`,children:e.description}):null]})]})]})}function Fe({onSingleClick:e,onDoubleClick:t,latency:n=200}){let r=(0,G.useRef)(null);return(0,G.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]),(0,G.useCallback)(i=>{r.current&&=(clearTimeout(r.current),null),e&&i.detail===1&&(r.current=setTimeout(()=>{r.current=null,e()},n)),t&&i.detail>=2&&i.detail%2==0&&t()},[e,t,n])}function Ie(e,t,n){let[r,i]=(0,G.useState)(!1),a=r||n===!0,o=Fe({onSingleClick:e,onDoubleClick:t});return{active:a,onClick:(0,G.useCallback)(n=>{!e&&!t||(n.stopPropagation(),o(n))},[e,t,o]),onPointerDown:(0,G.useCallback)(n=>{!e&&!t||n.stopPropagation()},[e,t]),onMouseEnter:(0,G.useCallback)(()=>i(!0),[]),onMouseLeave:(0,G.useCallback)(()=>i(!1),[])}}function $(e,t){return`color-mix(in oklab, ${e} ${Math.max(0,Math.min(100,t))}%, var(--surface-base))`}function Le(e,t){switch(e.kind.type){case`center`:return{visible:t>=1};case`category`:return{visible:t>=2};case`subCategory`:return{visible:t>=3};case`skill`:return{visible:t>=4}}}function Re(e,t){switch(e.kind.type){case`center`:return .05;case`category`:return t*.04;case`subCategory`:return t*.03;case`skill`:return .08+t*.02}}function ze(e){switch(e.kind.type){case`skill`:return e.kind.item;case`category`:{let t=X(e.kind.category);return{id:e.id,label:t.displayName,emoji:t.emoji,category:e.kind.category,kind:`workspaceFile`}}case`subCategory`:return{id:e.id,label:e.kind.label,emoji:e.kind.emoji,category:e.kind.category,kind:`workspaceFile`};default:return}}function Be({variant:e,x:t,y:n,color:r,tooltip:i,visibility:a,delay:o,children:s,isSelected:c,onSingleClick:l,onDoubleClick:u}){let d=Ae[e],{active:f,...p}=Ie(l,u,c),m={left:t-d.size/2,top:n-d.size/2,width:d.size,height:d.size,borderRadius:d.cornerRadius,backgroundColor:$(r,f?d.fillHoverPct:d.fillPct),borderStyle:d.dashed?`dashed`:`solid`,borderColor:$(r,f?d.strokeHoverPct:d.strokePct),borderWidth:f?d.strokeHoverWidth:d.strokeWidth,transition:`background-color 0.15s ease, border-color 0.15s ease, border-width 0.15s ease`,cursor:l||u?`pointer`:`default`};return(0,K.jsx)(M.div,{className:`pointer-events-auto absolute flex flex-col items-center justify-center`,"data-constellation-node":!0,style:m,initial:{opacity:0,scale:.3},animate:{opacity:+!!a.visible,scale:a.visible?1:.3},transition:{...ke,delay:o},onMouseEnter:p.onMouseEnter,onMouseLeave:p.onMouseLeave,onPointerDown:p.onPointerDown,onClick:p.onClick,title:i,children:s})}function Ve({x:e,y:t,item:n,color:r,fallbackEmoji:i,visibility:a,delay:o,isSelected:s,onSingleClick:c,onDoubleClick:l}){let{active:u,...d}=Ie(c,l,s);return(0,K.jsxs)(M.div,{className:`pointer-events-auto absolute`,"data-constellation-node":!0,style:{left:e-64/2,top:t-64/2,width:64,height:64,cursor:c||l?`pointer`:`default`},initial:{opacity:0,scale:.4},animate:{opacity:+!!a.visible,scale:a.visible?1:.4},transition:{...ke,delay:o},onMouseEnter:d.onMouseEnter,onMouseLeave:d.onMouseLeave,onPointerDown:d.onPointerDown,onClick:d.onClick,title:n.label,children:[(0,K.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0 rounded-md`,style:{transform:`rotate(45deg)`,backgroundColor:$(r,u?20:10),border:`${u?2:1.5}px solid ${$(r,u?70:40)}`,transition:`background-color 0.15s ease, border-color 0.15s ease, border-width 0.15s ease`}}),(0,K.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,K.jsx)(p,{skill:n,className:`h-4 w-4 text-[16px] leading-none`,fallback:i}),(0,K.jsx)(`span`,{className:`mt-0.5 max-w-[42px] truncate text-[9px] font-medium leading-tight text-[var(--content-default)]`,title:n.label,children:n.label})]})]})}function He({node:e,index:t,phase:n,components:r,traits:i,customImageUrl:a,isSelected:o,onSingleClick:s,onDoubleClick:c}){let l=Le(e,n),u=Re(e,t);if(e.kind.type===`center`)return(0,K.jsx)(M.div,{className:`pointer-events-none absolute`,style:{left:e.x-90/2,top:e.y-90/2,width:90,height:90},initial:{opacity:0,scale:.6},animate:{opacity:+!!l.visible,scale:l.visible?1:.6},transition:{...ke,delay:u},children:(0,K.jsx)(L,{components:r,traits:i,customImageUrl:a,size:90})});if(e.kind.type===`category`||e.kind.type===`subCategory`){let t=X(e.kind.category),n=e.kind.type===`category`?`category`:`subcategory`,r=e.kind.type===`category`?t.emoji:e.kind.emoji,i=e.kind.type===`category`?t.displayName:e.kind.label,a=n===`category`?`text-[20px]`:`text-[14px]`,d=n===`category`?`mt-1 max-w-[85%] truncate text-label-medium-default leading-tight text-[var(--content-default)]`:`mt-0.5 max-w-[85%] truncate text-[9.5px] font-medium leading-tight text-[var(--content-default)]`;return(0,K.jsxs)(Be,{variant:n,x:e.x,y:e.y,color:t.color,tooltip:i,visibility:l,delay:u,isSelected:o,onSingleClick:s,onDoubleClick:c,children:[(0,K.jsx)(`span`,{className:`${a} leading-none`,"aria-hidden":!0,children:r}),(0,K.jsx)(`span`,{className:d,title:i,children:i})]})}if(e.kind.type===`skill`){let t=e.kind.item,n=X(t.category);return(0,K.jsx)(Ve,{x:e.x,y:e.y,item:t,color:n.color,fallbackEmoji:n.emoji,visibility:l,delay:u,isSelected:o,onSingleClick:s,onDoubleClick:c})}return null}function Ue(e,t,n,r){let[i,a]=(0,G.useState)({width:0,height:0}),[o,s]=(0,G.useState)(null),[c,l]=(0,G.useState)(null),[u,d]=(0,G.useState)(!1),[f,p]=(0,G.useState)(null),[m,h]=(0,G.useState)(!1),g=(0,G.useRef)(null),_=(0,G.useRef)(null);(0,G.useLayoutEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;a({width:e,height:n})}});n.observe(t);let r=t.getBoundingClientRect();return a({width:r.width,height:r.height}),()=>n.disconnect()},[e]);let v=(0,G.useMemo)(()=>Ee(t,Z,i.width,i.height),[t,i.width,i.height]),y=o??v.zoom,b=c??{x:v.panX,y:v.panY},x=(0,G.useCallback)(()=>{h(!0),g.current!=null&&window.clearTimeout(g.current),g.current=window.setTimeout(()=>{h(!1),g.current=null},500)},[]);(0,G.useEffect)(()=>()=>{g.current!=null&&window.clearTimeout(g.current)},[]);let S=(0,G.useCallback)(()=>{s(null),l(null),p(null),x()},[x]),C=(0,G.useCallback)((e,t)=>{let n=Math.max(De,Math.min(3,e));if(n===y)return;let r=n/y;l({x:b.x*r,y:b.y*r}),s(n),p(null),t?.animate&&x()},[b.x,b.y,x,y]),w=(0,G.useCallback)(()=>{C(y+Oe,{animate:!0})},[C,y]),T=(0,G.useCallback)(()=>{C(y-Oe,{animate:!0})},[C,y]),E=(0,G.useCallback)(e=>{if(f===e){S();return}let t=n.get(e);if(!t)return;let r=1.8;s(r),l({x:(Z.x-t.x)*r,y:(Z.y-t.y)*r}),p(e),x()},[S,n,x,f]);return(0,G.useEffect)(()=>{let t=e.current;if(!t)return;let n=e=>{e.preventDefault();let t=e.ctrlKey||e.metaKey?150:400;C(y*(1+-e.deltaY/t))};return t.addEventListener(`wheel`,n,{passive:!1}),()=>t.removeEventListener(`wheel`,n)},[C,e,y]),{zoom:y,pan:b,isDragging:u,isAnimating:m,viewSize:i,zoomedNodeId:f,zoomIn:w,zoomOut:T,fitAll:S,zoomToNode:E,handlePointerDown:(0,G.useCallback)(e=>{if(e.button!==0)return;let t=e.target;t.closest(`[data-constellation-control]`)||(t.closest(`[data-constellation-node]`)||r?.(),_.current={startX:e.clientX,startY:e.clientY,panStartX:b.x,panStartY:b.y,pointerId:e.pointerId,moved:!1},d(!0),g.current!=null&&(window.clearTimeout(g.current),g.current=null),h(!1),e.currentTarget.setPointerCapture(e.pointerId))},[r,b.x,b.y]),handlePointerMove:(0,G.useCallback)(e=>{let t=_.current;if(!t||t.pointerId!==e.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;!t.moved&&(Math.abs(n)>3||Math.abs(r)>3)&&(t.moved=!0,p(null)),l({x:t.panStartX+n,y:t.panStartY+r})},[]),handlePointerUp:(0,G.useCallback)(e=>{let t=_.current;if(!(!t||t.pointerId!==e.pointerId)){_.current=null,d(!1);try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}},[])}}function We({skills:e,components:t,traits:n,customImageUrl:r,className:i,isFullscreen:a,onToggleFullscreen:o,onSelectSkill:s}){let c=(0,G.useRef)(null),u=(0,G.useRef)(null),[d,f]=(0,G.useState)(0),[p,m]=(0,G.useState)(null),[h,v]=(0,G.useState)({width:240,height:120}),{nodes:y,edges:b}=(0,G.useMemo)(()=>we(Z,Te(e.map(e=>({id:e.id,label:e.name,icon:e.icon,emoji:e.emoji,category:e.category??`system`,description:e.description,kind:`skill`}))),90),[e]),x=(0,G.useMemo)(()=>{let e=new Map;for(let t of y)e.set(t.id,t);return e},[y]),S=(0,G.useMemo)(()=>{if(p==null)return null;let e=x.get(p);return e?ze(e)??null:null},[p,x]),C=(0,G.useCallback)(()=>{m(null)},[]),w=Ue(c,y,x,C),T=e.length;(0,G.useEffect)(()=>{let e=!1,t=t=>{e||f(t)};t(0);let n=[setTimeout(()=>t(1),100),setTimeout(()=>t(2),300),setTimeout(()=>t(3),500),setTimeout(()=>t(4),700)];return()=>{e=!0,n.forEach(clearTimeout)}},[T]);let E=(0,G.useCallback)(e=>{m(t=>t===e?null:e)},[]),D=(0,G.useCallback)(()=>{!S||S.kind!==`skill`||(C(),s?.(S.id))},[C,s,S]);(0,G.useEffect)(()=>{if(p==null)return;let e=e=>{e.key===`Escape`&&C()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[C,p]),(0,G.useLayoutEffect)(()=>{if(S==null)return;let e=u.current;if(!e)return;let t=e.getBoundingClientRect();v({width:t.width,height:t.height})},[S]);let O={x:w.viewSize.width/2,y:w.viewSize.height/2},k=O.x-Z.x*w.zoom+w.pan.x,A=O.y-Z.y*w.zoom+w.pan.y,j=p==null?void 0:x.get(p),N=0,P=0;if(S!=null&&j){let e=k+j.x*w.zoom,t=A+j.y*w.zoom,n=e,r=t-60,i=h.width/2,a=h.height/2,o=i+8,s=Math.max(o,w.viewSize.width-i-8),c=a+8,l=Math.max(c,w.viewSize.height-a-8);N=Math.min(Math.max(n,o),s),P=Math.min(Math.max(r,c),l)}let F=(0,G.useCallback)(e=>{C(),w.zoomToNode(e)},[C,w]);return(0,K.jsxs)(`div`,{ref:c,className:`relative select-none overflow-hidden rounded-xl ${i??``}`,style:{backgroundColor:`var(--surface-base)`,backgroundImage:`radial-gradient(circle, color-mix(in srgb, var(--content-tertiary) 20%, transparent) 1px, transparent 1px)`,backgroundSize:`24px 24px`,backgroundPosition:`12px 12px`,touchAction:`none`,cursor:w.isDragging?`grabbing`:`grab`,userSelect:`none`,WebkitUserSelect:`none`},onPointerDown:w.handlePointerDown,onPointerMove:w.handlePointerMove,onPointerUp:w.handlePointerUp,onPointerCancel:w.handlePointerUp,children:[(0,K.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0`,style:{background:`radial-gradient(circle at center, color-mix(in srgb, var(--content-tertiary) 6%, transparent), transparent 60%)`}}),(0,K.jsxs)(`div`,{className:`absolute inset-0`,style:{transform:`translate(${k}px, ${A}px) scale(${w.zoom})`,transformOrigin:`0 0`,transition:w.isAnimating?`transform 0.4s cubic-bezier(0.22, 1, 0.36, 1)`:`none`},children:[(0,K.jsx)(Me,{edges:b,nodeById:x,visible:d>=2}),y.map((e,i)=>(0,K.jsx)(He,{node:e,index:i,phase:d,components:t,traits:n,customImageUrl:r,isSelected:p===e.id||w.zoomedNodeId===e.id,onSingleClick:()=>E(e.id),onDoubleClick:()=>F(e.id)},e.id))]}),o&&(0,K.jsx)(`div`,{className:`absolute left-4 top-4`,"data-constellation-control":!0,children:(0,K.jsx)(l,{variant:`ghost`,iconOnly:a?(0,K.jsx)(_,{}):(0,K.jsx)(g,{}),onClick:o,"aria-label":a?`Exit fullscreen`:`Enter fullscreen`,tooltip:a?`Exit fullscreen`:`Enter fullscreen`})}),(0,K.jsx)(Ne,{visible:d>=4}),(0,K.jsx)(U,{children:S==null?null:(0,K.jsx)(M.div,{ref:u,className:`pointer-events-auto absolute z-20`,"data-constellation-popover":!0,style:{left:N,top:P,transform:`translate(-50%, -50%)`},initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15,ease:`easeOut`},onPointerDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,K.jsx)(Pe,{item:S,color:X(S.category).color,onViewDetails:s&&S.kind===`skill`?D:void 0})},`constellation-popover`)}),(0,K.jsxs)(`div`,{"data-constellation-control":!0,className:`absolute bottom-4 right-4 flex items-center gap-1`,children:[(0,K.jsx)(l,{variant:`ghost`,iconOnly:(0,K.jsx)(V,{}),onClick:w.zoomIn,"aria-label":`Zoom in`,tooltip:`Zoom in`}),(0,K.jsx)(l,{variant:`ghost`,iconOnly:(0,K.jsx)(R,{}),onClick:w.zoomOut,"aria-label":`Zoom out`,tooltip:`Zoom out`}),(0,K.jsx)(l,{variant:`ghost`,iconOnly:(0,K.jsx)(z,{}),onClick:w.fitAll,"aria-label":`Fit all`,tooltip:`Fit all`})]})]})}function Ge({assistantName:e,assistantPersonality:t,assistantRole:n,hatchedDate:r,components:i,traits:a,customImageUrl:o,onOpenThread:s,onOpenModal:c}){return(0,K.jsxs)(`div`,{className:`w-full overflow-hidden rounded-xl`,style:{backgroundColor:`var(--surface-lift)`},children:[(0,K.jsxs)(`div`,{className:`relative p-6 pb-0`,children:[(0,K.jsx)(`div`,{className:`pr-8 text-center`,children:(0,K.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e})}),(0,K.jsx)(l,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(v,{"aria-hidden":!0}),onClick:()=>s?.(`I would like to change your name`),disabled:!s,"aria-label":`Edit identity`,title:`Edit Name`,className:`absolute right-6 top-6`,tintColor:`var(--content-tertiary)`})]}),(0,K.jsx)(`div`,{className:`flex justify-center py-6`,children:(0,K.jsx)(L,{components:i,traits:a,customImageUrl:o,size:200,interactive:!0})}),(0,K.jsx)(`div`,{className:`flex justify-center pb-6`,children:(0,K.jsx)(l,{type:`button`,variant:`outlined`,size:`regular`,onClick:c,className:`!rounded-full`,children:`Update Avatar`})}),(0,K.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b px-4 py-3`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Role`}),(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:n})]}),(0,K.jsx)(l,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(v,{"aria-hidden":!0}),onClick:()=>s?.(`I would like to change your role description`),disabled:!s,"aria-label":`Edit role`,title:`Edit Role`,tintColor:`var(--content-tertiary)`})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b px-4 py-3`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Personality`}),(0,K.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},title:t||`Not set`,children:t||`Not set`})]}),(0,K.jsx)(l,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(v,{"aria-hidden":!0}),onClick:()=>s?.(`I would like to change your personality`),disabled:!s,"aria-label":`Edit personality`,title:`Edit Personality`,tintColor:`var(--content-tertiary)`})]}),(0,K.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Hatched`}),(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:r})]})]})}function Ke({assistantId:e,onOpenThread:n}){let r=a(),{components:i,traits:c,customImageUrl:l,isLoading:u,invalidate:p}=te(e),[h,g]=(0,G.useState)(null),[_,v]=(0,G.useState)(null),[y,b]=(0,G.useState)(null),[T,E]=(0,G.useState)(!1),[D,O]=(0,G.useState)(null),[k,A]=(0,G.useState)(null),[j,M]=(0,G.useState)(null),[N,P]=(0,G.useState)(null);(0,G.useEffect)(()=>{let n=!1;return Promise.all([ne(e),w(e).catch(()=>({ok:!1,status:0,error:{}}))]).then(([t,r])=>{n||(g(t),r.ok?v(r.data.created):v(null),b(e))}).catch(e=>{n||t(e,{context:`identity_tab_load`})}),()=>{n=!0}},[e]);let F=y!==e||u,[I,ee]=(0,G.useState)(!1),L=o({...x({path:{assistant_id:e},query:{kind:`installed`}}),select:e=>e.skills,enabled:!!e}),R=(0,G.useMemo)(()=>L.data??[],[L.data]),z=(0,G.useCallback)(()=>{p()},[p]),B=(0,G.useCallback)(()=>{E(!0)},[]),re=(0,G.useCallback)(()=>{E(!1)},[]),ie=(0,G.useCallback)(()=>{n?.(`I'd like to create a custom AI-generated avatar.`)},[n]),V=(0,G.useCallback)(()=>{r.invalidateQueries({queryKey:S({path:{assistant_id:e}})})},[e,r]),H=s({mutationFn:t=>m(e,t),onMutate:e=>A(e),onSettled:()=>{A(null),V()}}),U=s({...C(),onMutate:e=>M(e.path.id),onSettled:()=>{M(null),V()}}),W=(0,G.useCallback)(e=>{H.mutate(e.slug??e.id)},[H]),ae=(0,G.useCallback)(e=>{P(e)},[]),q=(0,G.useCallback)(()=>{N&&(U.mutate({path:{assistant_id:e,id:N.id}}),P(null))},[e,N,U]),J=(0,G.useMemo)(()=>D?R.find(e=>e.id===D)??null:null,[R,D]),Y=(0,K.jsx)(d,{open:N!==null,title:`Remove skill`,message:N?`Remove "${N.name}" from this assistant?`:``,confirmLabel:`Remove`,destructive:!0,onConfirm:q,onCancel:()=>P(null)});if(J)return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(f,{assistantId:e,skill:J,onBack:()=>O(null),onInstall:()=>W(J),onRemove:()=>ae(J),isInstalling:k===(J.slug??J.id),isRemoving:j===J.id}),Y]});if(F)return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,K.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})});let se=h?.name||`Assistant`,ce=h?.personality||``,X=h?.role||`Not set`,le=_?new Date(_).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}):`Unknown`;return(0,K.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-6 lg:flex-row lg:items-stretch`,children:[(0,K.jsx)(`div`,{className:`mx-auto w-full max-w-md lg:mx-0 lg:h-full lg:shrink-0 lg:overflow-y-auto ${I?`hidden`:`flex`}`,children:(0,K.jsx)(Ge,{assistantName:se,assistantPersonality:ce,assistantRole:X,hatchedDate:le,components:i,traits:c,customImageUrl:l,onOpenThread:n,onOpenModal:B})}),(0,K.jsx)(`div`,{className:`min-h-[480px] min-w-0 flex-1 lg:min-h-0`,children:(0,K.jsx)(We,{skills:R,components:i,traits:c,customImageUrl:l,className:`h-full w-full`,isFullscreen:I,onToggleFullscreen:()=>ee(e=>!e),onSelectSkill:O})}),(0,K.jsx)(oe,{open:T,onClose:re,assistantId:e,components:i,traits:c,customImageUrl:l,onSaveCharacter:z,onUploadImage:z,onGenerateWithAI:n?ie:void 0}),Y]})}function qe({onOpenThread:e}){return(0,K.jsx)(Ke,{assistantId:W(),onOpenThread:e})}function Je(){let e=i();return(0,K.jsx)(qe,{onOpenThread:t=>{E.getState().setMainView(`chat`);let n=N();D.getState().setActiveConversationId(n),e(`${T.conversation(n)}?prompt=${encodeURIComponent(t)}`)}},W())}export{Je as IdentityPageRoute};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CZsNGL6n.js";import{t as n}from"./react-DJZBPgpf.js";import{T as r}from"./portal-container-DIXEBWUe.js";import{d as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as a}from"./QueryClientProvider-DNHWXaGq.js";import{t as o}from"./useQuery-D2zf6Uhu.js";import{t as s}from"./useMutation-BuofVRHk.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{t as l}from"./button-DdEh-9f_.js";import{t as u}from"./card-CL5iEMJO.js";import"./src-hn7lwVCD.js";import{t as d}from"./confirm-dialog-NYG-K9zN.js";import{n as f,s as p,t as m}from"./install-DzcS2hVv.js";import{t as h}from"./chevron-right-zTNPbA1m.js";import{n as g,t as _}from"./minimize-2-CXA_X5M9.js";import{t as v}from"./pencil-BA9LOIzP.js";import{t as y}from"./save-DHFrLI4J.js";import{t as b}from"./x-BDqbYVtS.js";import{I as x,L as S,M as C}from"./react-query.gen-B8xaBreR.js";import{r as w}from"./api-DEEx3e9R.js";import{i as T}from"./routes-Dk5Qeryt.js";import{t as E}from"./viewer-store-Cc5YI5ay.js";import{t as D}from"./conversation-store-BEgf__eu.js";import{a as O,o as k,r as A}from"./avatar-api-BwHmtSnS.js";import{t as j}from"./misc-MEUnNRwX.js";import{n as M}from"./use-reduced-motion-CZO_MWGV.js";import{$n as N,Bi as P,Ci as F,Ga as I,La as ee,Qn as te,R as L,Si as R,Zi as z,fo as B,jn as ne,ka as re,wi as ie,xi as V,y as H,z as U}from"./index-DGojzQtP.js";import{t as W}from"./use-active-assistant-id-BIhArlF_.js";var ae=e(r(),1),G=e(n(),1),K=c();function q(e,t,n){return n===`forward`?(e+1)%t:(e-1+t)%t}function J({assistantId:e,initialTraits:t,onSave:n,onCancel:r}){let[i,a]=(0,G.useState)(null),[o,s]=(0,G.useState)(!0),[c,l]=(0,G.useState)(!1),u=(0,G.useRef)(null),[d,f]=(0,G.useState)(0),[p,m]=(0,G.useState)(0),[h,g]=(0,G.useState)(0);(0,G.useEffect)(()=>{if(u.current===e)return;let n=!1;return A(e).then(r=>{if(!n&&(u.current=e,a(r),s(!1),r&&t)){let e=r.bodyShapes.findIndex(e=>e.id===t.bodyShape),n=r.eyeStyles.findIndex(e=>e.id===t.eyeStyle),i=r.colors.findIndex(e=>e.id===t.color);e>=0&&f(e),n>=0&&m(n),i>=0&&g(i)}}),()=>{n=!0}},[e,t]);let _=(0,G.useCallback)(()=>{i&&(f(Math.floor(Math.random()*i.bodyShapes.length)),m(Math.floor(Math.random()*i.eyeStyles.length)),g(Math.floor(Math.random()*i.colors.length)))},[i]),v=(0,G.useCallback)(async()=>{if(!i)return;let t={bodyShape:i.bodyShapes[d].id,eyeStyle:i.eyeStyles[p].id,color:i.colors[h].id};l(!0);try{await O(e,t),n?.(t)}finally{l(!1)}},[i,d,p,h,e,n]);if(o)return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,K.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-element)] border-t-[var(--content-tertiary)]`})});if(!i)return(0,K.jsx)(`div`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-quiet)]`,children:`Unable to load avatar components. Make sure your assistant is running.`});let x=i.bodyShapes[d],S=i.eyeStyles[p],C=i.colors[h];return(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(`div`,{className:`flex justify-center`,children:(0,K.jsx)(`div`,{className:`rounded-2xl bg-[var(--surface-sunken)] p-6`,children:(0,K.jsx)(H,{components:i,bodyShapeId:x.id,eyeStyleId:S.id,colorId:C.id,size:160})})}),(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(Y,{label:`Body`,value:x.id,onPrev:()=>f(q(d,i.bodyShapes.length,`backward`)),onNext:()=>f(q(d,i.bodyShapes.length,`forward`))}),(0,K.jsx)(Y,{label:`Eyes`,value:S.id,onPrev:()=>m(q(p,i.eyeStyles.length,`backward`)),onNext:()=>m(q(p,i.eyeStyles.length,`forward`))}),(0,K.jsx)(Y,{label:`Color`,value:C.id,colorHex:C.hex,onPrev:()=>g(q(h,i.colors.length,`backward`)),onNext:()=>g(q(h,i.colors.length,`forward`))})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:_,className:`flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-lg border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-2 text-body-medium-default text-[var(--content-strong)] transition-colors hover:bg-[var(--surface-hover)]`,children:[(0,K.jsx)(I,{className:`h-4 w-4`}),`Randomize`]}),(0,K.jsxs)(`button`,{type:`button`,onClick:v,disabled:c,className:`flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-lg border border-[var(--system-positive-strong)] bg-[var(--system-positive-weak)] px-3 py-2 text-body-medium-default text-[var(--system-positive-strong)] transition-colors hover:opacity-90 disabled:opacity-50`,children:[(0,K.jsx)(y,{className:`h-4 w-4`}),c?`Saving...`:`Save Avatar`]}),r&&(0,K.jsx)(`button`,{type:`button`,onClick:r,className:`flex cursor-pointer items-center justify-center rounded-lg border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-2 text-body-medium-default text-[var(--content-strong)] transition-colors hover:bg-[var(--surface-hover)]`,children:(0,K.jsx)(b,{className:`h-4 w-4`})})]})]})}function Y({label:e,value:t,colorHex:n,onPrev:r,onNext:i}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3 py-2`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default uppercase tracking-wider text-[var(--content-quiet)]`,children:e}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:r,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-md text-[var(--content-quiet)] transition-colors hover:bg-[var(--surface-active)]`,children:(0,K.jsx)(B,{className:`h-4 w-4`})}),(0,K.jsxs)(`div`,{className:`flex min-w-[80px] items-center justify-center gap-2`,children:[n&&(0,K.jsx)(`div`,{className:`h-4 w-4 rounded-full border border-[var(--border-element)]`,style:{backgroundColor:n}}),(0,K.jsx)(`span`,{className:`text-body-medium-default capitalize text-[var(--content-strong)]`,children:t})]}),(0,K.jsx)(`button`,{type:`button`,onClick:i,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-md text-[var(--content-quiet)] transition-colors hover:bg-[var(--surface-active)]`,children:(0,K.jsx)(h,{className:`h-4 w-4`})})]})]})}function oe({open:e,onClose:t,assistantId:n,components:r,traits:i,customImageUrl:a,onSaveCharacter:o,onUploadImage:s,onGenerateWithAI:c}){let l=(0,G.useId)(),u=(0,G.useRef)(null),d=(0,G.useRef)(null),f=(0,G.useRef)(null),[p,m]=(0,G.useState)(`actions`),[g,_]=(0,G.useState)(!1);(0,G.useEffect)(()=>{e&&d.current?.focus()},[e]),(0,G.useEffect)(()=>{if(e){let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}}},[e]);let v=(0,G.useCallback)(()=>{m(`actions`),t()},[t]),y=(0,G.useCallback)(e=>{e.key===`Escape`&&(p===`character-builder`?m(`actions`):v())},[v,p]),x=(0,G.useCallback)(e=>{e.target===u.current&&v()},[v]),S=(0,G.useCallback)(()=>{m(`actions`)},[]),C=(0,G.useCallback)(()=>{m(`character-builder`)},[]),w=(0,G.useCallback)(async e=>{let t=e.target.files?.[0];if(!t)return;_(!0);let r=await k(n,t);_(!1),r&&(s(),v()),f.current&&(f.current.value=``)},[n,s,v]),T=(0,G.useCallback)(()=>{f.current?.click()},[]),E=(0,G.useCallback)(()=>{v(),c?.()},[v,c]),D=(0,G.useCallback)(e=>{o(e),v()},[o,v]);return e?(0,ae.createPortal)((0,K.jsxs)(`div`,{ref:u,role:`dialog`,"aria-modal":`true`,"aria-labelledby":l,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:y,onClick:x,children:[(0,K.jsxs)(`div`,{className:`mx-4 flex w-full max-w-md flex-col rounded-xl border shadow-xl`,style:{backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`,maxHeight:`85vh`},children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b px-6 py-4`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p===`character-builder`&&(0,K.jsx)(`button`,{type:`button`,onClick:S,className:`flex h-8 w-8 items-center justify-center rounded-lg transition-colors hover:bg-black/5 dark:hover:bg-white/10`,"aria-label":`Back`,children:(0,K.jsx)(B,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsx)(`h2`,{id:l,className:`text-title-small`,style:{color:`var(--content-default)`},children:p===`character-builder`?`Build a Character`:`Update Avatar`})]}),(0,K.jsx)(`button`,{ref:d,type:`button`,onClick:v,className:`flex h-8 w-8 items-center justify-center rounded-lg transition-colors hover:bg-black/5 dark:hover:bg-white/10`,"aria-label":`Close`,children:(0,K.jsx)(b,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})]}),(0,K.jsx)(`div`,{className:`overflow-y-auto p-6`,children:p===`actions`?(0,K.jsxs)(`div`,{className:`flex flex-col items-center gap-6`,children:[(0,K.jsx)(L,{components:r,traits:i,customImageUrl:a,size:120,interactive:!0}),(0,K.jsxs)(`div`,{className:`w-full space-y-2`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:C,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-colors hover:opacity-80`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg`,style:{backgroundColor:`color-mix(in oklab, var(--content-tertiary) 16%, transparent)`},children:(0,K.jsx)(ie,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsxs)(`div`,{className:`flex-1 text-left`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Build a Character`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Build your own character`})]}),(0,K.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})]}),(0,K.jsxs)(`button`,{type:`button`,onClick:T,disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-colors hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg`,style:{backgroundColor:`color-mix(in oklab, var(--content-tertiary) 16%, transparent)`},children:(0,K.jsx)(re,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsxs)(`div`,{className:`flex-1 text-left`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:g?`Uploading...`:`Upload Image`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Choose an image from your computer`})]}),(0,K.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})]}),c&&(0,K.jsxs)(`button`,{type:`button`,onClick:E,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-colors hover:opacity-80`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg`,style:{backgroundColor:`color-mix(in oklab, var(--content-tertiary) 16%, transparent)`},children:(0,K.jsx)(P,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,K.jsxs)(`div`,{className:`flex-1 text-left`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Generate with AI`}),(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Create an avatar through chat`})]}),(0,K.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})]})]})]}):(0,K.jsx)(J,{assistantId:n,initialTraits:i,onSave:D,onCancel:S})})]}),(0,K.jsx)(`input`,{ref:f,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif`,className:`hidden`,onChange:w})]}),document.body):null}var se={displayName:`Other`,color:`#888`,emoji:`?`},ce={email:{displayName:`Email`,color:`#A665C9`,emoji:`📧`},calendar:{displayName:`Calendar`,color:`#0E9B8B`,emoji:`📅`},messaging:{displayName:`Messaging`,color:`#6B8AE0`,emoji:`💬`},browsing:{displayName:`Browsing`,color:`#E9642F`,emoji:`🌐`},productivity:{displayName:`Productivity`,color:`#0E9B8B`,emoji:`📋`},development:{displayName:`Development`,color:`#EF4400`,emoji:`🔨`},voice:{displayName:`Voice`,color:`#DB4B77`,emoji:`🎤`},commerce:{displayName:`Commerce`,color:`#E9C91A`,emoji:`🛒`},content:{displayName:`Content`,color:`#DB4B77`,emoji:`🎨`},health:{displayName:`Health`,color:`#4C9B50`,emoji:`❤️`},system:{displayName:`System`,color:`#8D99A5`,emoji:`⚙️`},integrations:{displayName:`Integrations`,color:`#8D99A5`,emoji:`🔗`}};function X(e){return ce[e]??se}var le=[`email`,`calendar`,`messaging`,`browsing`,`productivity`,`development`,`voice`,`commerce`,`content`,`health`,`system`,`integrations`],ue={email:[{label:`Sending`,emoji:`📨`,skillIds:new Set([`agentmail`,`email-setup`])},{label:`Reading`,emoji:`📬`,skillIds:new Set([`email-channel`,`gmail`])}],messaging:[{label:`Chat`,emoji:`💬`,skillIds:new Set([`messaging`,`slack`,`telegram`])},{label:`Notifications`,emoji:`🔔`,skillIds:new Set([`notifications`])},{label:`People`,emoji:`👥`,skillIds:new Set([`contacts`,`followups`])}],development:[{label:`Coding`,emoji:`💻`,skillIds:new Set([`typescript-eval`,`frontend-design`])},{label:`Dev Tools`,emoji:`🔧`,skillIds:new Set([`api-mapping`,`cli-discover`,`subagent`,`app-builder`])}],browsing:[{label:`Control`,emoji:`🎮`,skillIds:new Set([`computer-use`,`macos-automation`,`browser`])},{label:`Triggers`,emoji:`⏰`,skillIds:new Set([`watcher`,`time-based-actions`])}],commerce:[{label:`Shopping`,emoji:`🛒`,skillIds:new Set([`amazon`,`doordash`,`restaurant-reservation`])}],system:[{label:`Core`,emoji:`🧠`,skillIds:new Set([`knowledge-graph`,`skills-catalog`,`self-upgrade`])},{label:`Daily`,emoji:`☀️`,skillIds:new Set([`start-the-day`,`weather`])}]},de=14,fe=10,pe=6;function me(e){switch(e.kind.type){case`center`:return{shape:`circle`,size:90,cornerRadius:0};case`category`:return{shape:`roundedRect`,size:80,cornerRadius:de};case`subCategory`:return{shape:`roundedRect`,size:56,cornerRadius:fe};case`skill`:return{shape:`diamond`,size:64,cornerRadius:pe}}}function he(e,t,n,r){let i=Math.min(Math.max(0,t),e),a=Math.abs(n),o=Math.abs(r);if(a<1e-6&&o<1e-6)return e;let s=e/Math.max(a,o),c=s*n,l=s*r;if(!(Math.abs(c)>e-i&&Math.abs(l)>e-i))return s;let u=Math.sign(c)*(e-i),d=Math.sign(l)*(e-i),f=n*u+r*d,p=u*u+d*d-i*i,m=f*f-p;return m<0?s:f+Math.sqrt(m)}function ge(e,t,n){switch(e.shape){case`circle`:return e.size/2;case`roundedRect`:return he(e.size/2,e.cornerRadius,t,n);case`diamond`:{let r=(t+n)*Math.SQRT1_2,i=(-t+n)*Math.SQRT1_2;return he(e.size/2,e.cornerRadius,r,i)}}}function _e(e,t){let n=t.x-e.x,r=t.y-e.y,i=Math.sqrt(n*n+r*r);if(i<1e-6)return{x1:e.x,y1:e.y,x2:t.x,y2:t.y};let a=n/i,o=r/i,s=Math.max(0,ge(me(e),a,o)-3),c=Math.max(0,ge(me(t),-a,-o)-3);if(s+c>=i){let n=(e.x+t.x)/2,r=(e.y+t.y)/2;return{x1:n,y1:r,x2:n,y2:r}}return{x1:e.x+a*s,y1:e.y+o*s,x2:t.x-a*c,y2:t.y-o*c}}var ve=10,ye=200,be=160,xe=160;function Se(e,t,n,r){let i={x:e.x,y:e.y};for(let e=0;e<30;e++){let e=0,a=0,o=0;for(let s of n){let n=i.x-s.x,c=i.y-s.y,l=Math.sqrt(n*n+c*c),u=t+s.radius+r-l;u>e&&(e=u,l<.1?(a=u+1,o=0):(a=n/l*(u+1),o=c/l*(u+1)))}if(e<=0)break;i={x:i.x+a,y:i.y+o}}return i}function Ce(e,t,n,r,i,a,o,s,c,l,u,d){if(e.length===0)return;let f=a+o,p=Math.cos(r),m=Math.sin(r),h=-m,g=p,_=f*.88,v=X(c).color;e.forEach((r,c)=>{let y=Math.floor(c/3),b=c%3,x=Math.min(3,e.length-y*3),S=(b-(x-1)/2)*f,C=y%2==1&&x<3?f*.5:0,w=i+y*_,T=Se({x:n.x+w*p+(S+C)*h,y:n.y+w*m+(S+C)*g},a/2,u,o);u.push({id:r.id,kind:{type:`skill`,item:r},parentId:t,depth:s,x:T.x,y:T.y,radius:a/2}),d.push({id:`edge-${l}-skill-${c}`,fromId:t,toId:r.id,color:v})})}function we(e,t,n=90){let r=[],i=[],a=ve;if(r.push({id:`__center__`,kind:{type:`center`},parentId:null,depth:0,x:e.x,y:e.y,radius:n/2}),t.length===0)return{nodes:r,edges:i};let o=t.length,s=2*Math.PI/o;return t.forEach((t,n)=>{let o=-Math.PI/2+n*s,c=`cat-${t.category}`,l=X(t.category).color,u=Se({x:e.x+ye*Math.cos(o),y:e.y+ye*Math.sin(o)},80/2,r,a);r.push({id:c,kind:{type:`category`,category:t.category},parentId:`__center__`,depth:1,x:u.x,y:u.y,radius:80/2}),i.push({id:`edge-center-${t.category}`,fromId:`__center__`,toId:c,color:l});let d=ue[t.category];if(d&&d.length>0){let e=[],n=new Set;for(let r of d){let i=t.items.filter(e=>r.skillIds.has(e.id));i.length>0&&(e.push({def:r,items:i}),i.forEach(e=>n.add(e.id)))}let f=t.items.filter(e=>!n.has(e.id));if(f.length>0){if(e.length===0){Ce(t.items,c,u,o,xe,64,a,2,t.category,t.category,r,i);return}let n=e[e.length-1];n&&n.items.push(...f)}let p=e.length,m=s*.55,h=p<=1?0:Math.min(m,(p-1)*.35);e.forEach((e,n)=>{let s;s=p===1?o:o+(n/(p-1)-.5)*h*2;let d=`subcat-${t.category}-${n}`,f=Se({x:u.x+be*Math.cos(s),y:u.y+be*Math.sin(s)},56/2,r,a);r.push({id:d,kind:{type:`subCategory`,label:e.def.label,emoji:e.def.emoji,category:t.category},parentId:c,depth:2,x:f.x,y:f.y,radius:56/2}),i.push({id:`edge-${t.category}-sub-${n}`,fromId:c,toId:d,color:l}),Ce(e.items,d,f,s,xe,64,a,3,t.category,d,r,i)})}else Ce(t.items,c,u,o,xe,64,a,2,t.category,t.category,r,i)}),{nodes:r,edges:i}}function Te(e){let t=new Map;for(let n of e){let e=t.get(n.category);e?e.push(n):t.set(n.category,[n])}let n=[];for(let e of le){let r=t.get(e);r&&r.length>0&&n.push({category:e,items:r})}for(let[e,r]of t)!le.includes(e)&&r.length>0&&n.push({category:e,items:r});return n}function Ee(e,t,n,r,i=120,a=.4,o=3){if(e.length===0)return{zoom:1,panX:0,panY:0};let s=1/0,c=-1/0,l=1/0,u=-1/0;for(let t of e)s=Math.min(s,t.x),c=Math.max(c,t.x),l=Math.min(l,t.y),u=Math.max(u,t.y);let d=c-s+i*2,f=u-l+i*2;if(d<=0||f<=0||n<=0||r<=0)return{zoom:1,panX:0,panY:0};let p=Math.min(n/d,r/f),m=Math.max(a,Math.min(o,p)),h=(s+c)/2-t.x,g=(l+u)/2-t.y;return{zoom:m,panX:-h*m,panY:-g*m}}var De=.4,Oe=.25,Z={x:600,y:450},ke={type:`spring`,stiffness:180,damping:20},Ae={category:{size:80,cornerRadius:14,dashed:!1,fillPct:14,fillHoverPct:25,strokePct:55,strokeHoverPct:85,strokeWidth:2,strokeHoverWidth:2.5},subcategory:{size:56,cornerRadius:10,dashed:!0,fillPct:10,fillHoverPct:20,strokePct:40,strokeHoverPct:70,strokeWidth:1.5,strokeHoverWidth:2}},je={category:`rounded-[3px]`,subcategory:`rounded-[3px] border-dashed`,skill:`rotate-45`,workspace:`rounded-full`};function Me({edges:e,nodeById:t,visible:n}){return(0,K.jsx)(`svg`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 h-full w-full overflow-visible`,children:e.map(e=>{let r=t.get(e.fromId),i=t.get(e.toId);if(!r||!i)return null;let{x1:a,y1:o,x2:s,y2:c}=_e(r,i);return(0,K.jsx)(`line`,{x1:a,y1:o,x2:s,y2:c,stroke:e.color,strokeWidth:1.5,opacity:n?.45:0,style:{transition:`opacity 0.4s ease`}},e.id)})})}function Q({shape:e,label:t}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`flex h-4 w-4 items-center justify-center`,children:(0,K.jsx)(`span`,{className:j(`inline-block h-3 w-3 border-[1.5px] border-[var(--content-tertiary)]`,je[e])})}),(0,K.jsx)(`span`,{children:t})]})}function Ne({visible:e}){return(0,K.jsx)(`div`,{"data-constellation-control":!0,className:`pointer-events-none absolute bottom-4 left-4 rounded-md px-3 py-2 text-body-small-default`,style:{backgroundColor:`color-mix(in srgb, var(--surface-overlay) 80%, transparent)`,border:`1px solid color-mix(in srgb, var(--content-tertiary) 20%, transparent)`,color:`var(--content-secondary)`,opacity:+!!e,transition:`opacity 0.35s ease`},children:(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(Q,{shape:`category`,label:`Category`}),(0,K.jsx)(Q,{shape:`subcategory`,label:`Subcategory`}),(0,K.jsx)(Q,{shape:`skill`,label:`Skill`}),(0,K.jsx)(Q,{shape:`workspace`,label:`Workspace`})]})})}function Pe({item:e,color:t,onViewDetails:n}){let r=e.kind===`skill`?`Skill`:`Workspace`,i=e.kind===`skill`?F:ee;return(0,K.jsxs)(u,{padding:`sm`,elevated:!0,className:`w-[260px] shadow-[var(--shadow-popover)]`,role:`dialog`,"aria-label":`${e.label} details`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md px-2 py-1 text-body-small-emphasised text-[var(--content-default)]`,style:{backgroundColor:`${t}33`},children:[(0,K.jsx)(i,{className:`h-3 w-3`,style:{color:t}}),r]}),n?(0,K.jsx)(l,{type:`button`,variant:`ghost`,size:`compact`,onClick:n,children:`View Details`}):null]}),(0,K.jsxs)(`div`,{className:`mt-2 flex items-start gap-2`,children:[e.icon||e.emoji?(0,K.jsx)(p,{skill:e,className:`h-5 w-5 shrink-0 text-[20px] leading-none`}):null,(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.label}),e.description?(0,K.jsx)(`div`,{className:`mt-1 line-clamp-3 text-body-small-default text-[var(--content-secondary)]`,children:e.description}):null]})]})]})}function Fe({onSingleClick:e,onDoubleClick:t,latency:n=200}){let r=(0,G.useRef)(null);return(0,G.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]),(0,G.useCallback)(i=>{r.current&&=(clearTimeout(r.current),null),e&&i.detail===1&&(r.current=setTimeout(()=>{r.current=null,e()},n)),t&&i.detail>=2&&i.detail%2==0&&t()},[e,t,n])}function Ie(e,t,n){let[r,i]=(0,G.useState)(!1),a=r||n===!0,o=Fe({onSingleClick:e,onDoubleClick:t});return{active:a,onClick:(0,G.useCallback)(n=>{!e&&!t||(n.stopPropagation(),o(n))},[e,t,o]),onPointerDown:(0,G.useCallback)(n=>{!e&&!t||n.stopPropagation()},[e,t]),onMouseEnter:(0,G.useCallback)(()=>i(!0),[]),onMouseLeave:(0,G.useCallback)(()=>i(!1),[])}}function $(e,t){return`color-mix(in oklab, ${e} ${Math.max(0,Math.min(100,t))}%, var(--surface-base))`}function Le(e,t){switch(e.kind.type){case`center`:return{visible:t>=1};case`category`:return{visible:t>=2};case`subCategory`:return{visible:t>=3};case`skill`:return{visible:t>=4}}}function Re(e,t){switch(e.kind.type){case`center`:return .05;case`category`:return t*.04;case`subCategory`:return t*.03;case`skill`:return .08+t*.02}}function ze(e){switch(e.kind.type){case`skill`:return e.kind.item;case`category`:{let t=X(e.kind.category);return{id:e.id,label:t.displayName,emoji:t.emoji,category:e.kind.category,kind:`workspaceFile`}}case`subCategory`:return{id:e.id,label:e.kind.label,emoji:e.kind.emoji,category:e.kind.category,kind:`workspaceFile`};default:return}}function Be({variant:e,x:t,y:n,color:r,tooltip:i,visibility:a,delay:o,children:s,isSelected:c,onSingleClick:l,onDoubleClick:u}){let d=Ae[e],{active:f,...p}=Ie(l,u,c),m={left:t-d.size/2,top:n-d.size/2,width:d.size,height:d.size,borderRadius:d.cornerRadius,backgroundColor:$(r,f?d.fillHoverPct:d.fillPct),borderStyle:d.dashed?`dashed`:`solid`,borderColor:$(r,f?d.strokeHoverPct:d.strokePct),borderWidth:f?d.strokeHoverWidth:d.strokeWidth,transition:`background-color 0.15s ease, border-color 0.15s ease, border-width 0.15s ease`,cursor:l||u?`pointer`:`default`};return(0,K.jsx)(M.div,{className:`pointer-events-auto absolute flex flex-col items-center justify-center`,"data-constellation-node":!0,style:m,initial:{opacity:0,scale:.3},animate:{opacity:+!!a.visible,scale:a.visible?1:.3},transition:{...ke,delay:o},onMouseEnter:p.onMouseEnter,onMouseLeave:p.onMouseLeave,onPointerDown:p.onPointerDown,onClick:p.onClick,title:i,children:s})}function Ve({x:e,y:t,item:n,color:r,fallbackEmoji:i,visibility:a,delay:o,isSelected:s,onSingleClick:c,onDoubleClick:l}){let{active:u,...d}=Ie(c,l,s);return(0,K.jsxs)(M.div,{className:`pointer-events-auto absolute`,"data-constellation-node":!0,style:{left:e-64/2,top:t-64/2,width:64,height:64,cursor:c||l?`pointer`:`default`},initial:{opacity:0,scale:.4},animate:{opacity:+!!a.visible,scale:a.visible?1:.4},transition:{...ke,delay:o},onMouseEnter:d.onMouseEnter,onMouseLeave:d.onMouseLeave,onPointerDown:d.onPointerDown,onClick:d.onClick,title:n.label,children:[(0,K.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0 rounded-md`,style:{transform:`rotate(45deg)`,backgroundColor:$(r,u?20:10),border:`${u?2:1.5}px solid ${$(r,u?70:40)}`,transition:`background-color 0.15s ease, border-color 0.15s ease, border-width 0.15s ease`}}),(0,K.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,K.jsx)(p,{skill:n,className:`h-4 w-4 text-[16px] leading-none`,fallback:i}),(0,K.jsx)(`span`,{className:`mt-0.5 max-w-[42px] truncate text-[9px] font-medium leading-tight text-[var(--content-default)]`,title:n.label,children:n.label})]})]})}function He({node:e,index:t,phase:n,components:r,traits:i,customImageUrl:a,isSelected:o,onSingleClick:s,onDoubleClick:c}){let l=Le(e,n),u=Re(e,t);if(e.kind.type===`center`)return(0,K.jsx)(M.div,{className:`pointer-events-none absolute`,style:{left:e.x-90/2,top:e.y-90/2,width:90,height:90},initial:{opacity:0,scale:.6},animate:{opacity:+!!l.visible,scale:l.visible?1:.6},transition:{...ke,delay:u},children:(0,K.jsx)(L,{components:r,traits:i,customImageUrl:a,size:90})});if(e.kind.type===`category`||e.kind.type===`subCategory`){let t=X(e.kind.category),n=e.kind.type===`category`?`category`:`subcategory`,r=e.kind.type===`category`?t.emoji:e.kind.emoji,i=e.kind.type===`category`?t.displayName:e.kind.label,a=n===`category`?`text-[20px]`:`text-[14px]`,d=n===`category`?`mt-1 max-w-[85%] truncate text-label-medium-default leading-tight text-[var(--content-default)]`:`mt-0.5 max-w-[85%] truncate text-[9.5px] font-medium leading-tight text-[var(--content-default)]`;return(0,K.jsxs)(Be,{variant:n,x:e.x,y:e.y,color:t.color,tooltip:i,visibility:l,delay:u,isSelected:o,onSingleClick:s,onDoubleClick:c,children:[(0,K.jsx)(`span`,{className:`${a} leading-none`,"aria-hidden":!0,children:r}),(0,K.jsx)(`span`,{className:d,title:i,children:i})]})}if(e.kind.type===`skill`){let t=e.kind.item,n=X(t.category);return(0,K.jsx)(Ve,{x:e.x,y:e.y,item:t,color:n.color,fallbackEmoji:n.emoji,visibility:l,delay:u,isSelected:o,onSingleClick:s,onDoubleClick:c})}return null}function Ue(e,t,n,r){let[i,a]=(0,G.useState)({width:0,height:0}),[o,s]=(0,G.useState)(null),[c,l]=(0,G.useState)(null),[u,d]=(0,G.useState)(!1),[f,p]=(0,G.useState)(null),[m,h]=(0,G.useState)(!1),g=(0,G.useRef)(null),_=(0,G.useRef)(null);(0,G.useLayoutEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;a({width:e,height:n})}});n.observe(t);let r=t.getBoundingClientRect();return a({width:r.width,height:r.height}),()=>n.disconnect()},[e]);let v=(0,G.useMemo)(()=>Ee(t,Z,i.width,i.height),[t,i.width,i.height]),y=o??v.zoom,b=c??{x:v.panX,y:v.panY},x=(0,G.useCallback)(()=>{h(!0),g.current!=null&&window.clearTimeout(g.current),g.current=window.setTimeout(()=>{h(!1),g.current=null},500)},[]);(0,G.useEffect)(()=>()=>{g.current!=null&&window.clearTimeout(g.current)},[]);let S=(0,G.useCallback)(()=>{s(null),l(null),p(null),x()},[x]),C=(0,G.useCallback)((e,t)=>{let n=Math.max(De,Math.min(3,e));if(n===y)return;let r=n/y;l({x:b.x*r,y:b.y*r}),s(n),p(null),t?.animate&&x()},[b.x,b.y,x,y]),w=(0,G.useCallback)(()=>{C(y+Oe,{animate:!0})},[C,y]),T=(0,G.useCallback)(()=>{C(y-Oe,{animate:!0})},[C,y]),E=(0,G.useCallback)(e=>{if(f===e){S();return}let t=n.get(e);if(!t)return;let r=1.8;s(r),l({x:(Z.x-t.x)*r,y:(Z.y-t.y)*r}),p(e),x()},[S,n,x,f]);return(0,G.useEffect)(()=>{let t=e.current;if(!t)return;let n=e=>{e.preventDefault();let t=e.ctrlKey||e.metaKey?150:400;C(y*(1+-e.deltaY/t))};return t.addEventListener(`wheel`,n,{passive:!1}),()=>t.removeEventListener(`wheel`,n)},[C,e,y]),{zoom:y,pan:b,isDragging:u,isAnimating:m,viewSize:i,zoomedNodeId:f,zoomIn:w,zoomOut:T,fitAll:S,zoomToNode:E,handlePointerDown:(0,G.useCallback)(e=>{if(e.button!==0)return;let t=e.target;t.closest(`[data-constellation-control]`)||(t.closest(`[data-constellation-node]`)||r?.(),_.current={startX:e.clientX,startY:e.clientY,panStartX:b.x,panStartY:b.y,pointerId:e.pointerId,moved:!1},d(!0),g.current!=null&&(window.clearTimeout(g.current),g.current=null),h(!1),e.currentTarget.setPointerCapture(e.pointerId))},[r,b.x,b.y]),handlePointerMove:(0,G.useCallback)(e=>{let t=_.current;if(!t||t.pointerId!==e.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;!t.moved&&(Math.abs(n)>3||Math.abs(r)>3)&&(t.moved=!0,p(null)),l({x:t.panStartX+n,y:t.panStartY+r})},[]),handlePointerUp:(0,G.useCallback)(e=>{let t=_.current;if(!(!t||t.pointerId!==e.pointerId)){_.current=null,d(!1);try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}},[])}}function We({skills:e,components:t,traits:n,customImageUrl:r,className:i,isFullscreen:a,onToggleFullscreen:o,onSelectSkill:s}){let c=(0,G.useRef)(null),u=(0,G.useRef)(null),[d,f]=(0,G.useState)(0),[p,m]=(0,G.useState)(null),[h,v]=(0,G.useState)({width:240,height:120}),{nodes:y,edges:b}=(0,G.useMemo)(()=>we(Z,Te(e.map(e=>({id:e.id,label:e.name,icon:e.icon,emoji:e.emoji,category:e.category??`system`,description:e.description,kind:`skill`}))),90),[e]),x=(0,G.useMemo)(()=>{let e=new Map;for(let t of y)e.set(t.id,t);return e},[y]),S=(0,G.useMemo)(()=>{if(p==null)return null;let e=x.get(p);return e?ze(e)??null:null},[p,x]),C=(0,G.useCallback)(()=>{m(null)},[]),w=Ue(c,y,x,C),T=e.length;(0,G.useEffect)(()=>{let e=!1,t=t=>{e||f(t)};t(0);let n=[setTimeout(()=>t(1),100),setTimeout(()=>t(2),300),setTimeout(()=>t(3),500),setTimeout(()=>t(4),700)];return()=>{e=!0,n.forEach(clearTimeout)}},[T]);let E=(0,G.useCallback)(e=>{m(t=>t===e?null:e)},[]),D=(0,G.useCallback)(()=>{!S||S.kind!==`skill`||(C(),s?.(S.id))},[C,s,S]);(0,G.useEffect)(()=>{if(p==null)return;let e=e=>{e.key===`Escape`&&C()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[C,p]),(0,G.useLayoutEffect)(()=>{if(S==null)return;let e=u.current;if(!e)return;let t=e.getBoundingClientRect();v({width:t.width,height:t.height})},[S]);let O={x:w.viewSize.width/2,y:w.viewSize.height/2},k=O.x-Z.x*w.zoom+w.pan.x,A=O.y-Z.y*w.zoom+w.pan.y,j=p==null?void 0:x.get(p),N=0,P=0;if(S!=null&&j){let e=k+j.x*w.zoom,t=A+j.y*w.zoom,n=e,r=t-60,i=h.width/2,a=h.height/2,o=i+8,s=Math.max(o,w.viewSize.width-i-8),c=a+8,l=Math.max(c,w.viewSize.height-a-8);N=Math.min(Math.max(n,o),s),P=Math.min(Math.max(r,c),l)}let F=(0,G.useCallback)(e=>{C(),w.zoomToNode(e)},[C,w]);return(0,K.jsxs)(`div`,{ref:c,className:`relative select-none overflow-hidden rounded-xl ${i??``}`,style:{backgroundColor:`var(--surface-base)`,backgroundImage:`radial-gradient(circle, color-mix(in srgb, var(--content-tertiary) 20%, transparent) 1px, transparent 1px)`,backgroundSize:`24px 24px`,backgroundPosition:`12px 12px`,touchAction:`none`,cursor:w.isDragging?`grabbing`:`grab`,userSelect:`none`,WebkitUserSelect:`none`},onPointerDown:w.handlePointerDown,onPointerMove:w.handlePointerMove,onPointerUp:w.handlePointerUp,onPointerCancel:w.handlePointerUp,children:[(0,K.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0`,style:{background:`radial-gradient(circle at center, color-mix(in srgb, var(--content-tertiary) 6%, transparent), transparent 60%)`}}),(0,K.jsxs)(`div`,{className:`absolute inset-0`,style:{transform:`translate(${k}px, ${A}px) scale(${w.zoom})`,transformOrigin:`0 0`,transition:w.isAnimating?`transform 0.4s cubic-bezier(0.22, 1, 0.36, 1)`:`none`},children:[(0,K.jsx)(Me,{edges:b,nodeById:x,visible:d>=2}),y.map((e,i)=>(0,K.jsx)(He,{node:e,index:i,phase:d,components:t,traits:n,customImageUrl:r,isSelected:p===e.id||w.zoomedNodeId===e.id,onSingleClick:()=>E(e.id),onDoubleClick:()=>F(e.id)},e.id))]}),o&&(0,K.jsx)(`div`,{className:`absolute left-4 top-4`,"data-constellation-control":!0,children:(0,K.jsx)(l,{variant:`ghost`,iconOnly:a?(0,K.jsx)(_,{}):(0,K.jsx)(g,{}),onClick:o,"aria-label":a?`Exit fullscreen`:`Enter fullscreen`,tooltip:a?`Exit fullscreen`:`Enter fullscreen`})}),(0,K.jsx)(Ne,{visible:d>=4}),(0,K.jsx)(U,{children:S==null?null:(0,K.jsx)(M.div,{ref:u,className:`pointer-events-auto absolute z-20`,"data-constellation-popover":!0,style:{left:N,top:P,transform:`translate(-50%, -50%)`},initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15,ease:`easeOut`},onPointerDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(0,K.jsx)(Pe,{item:S,color:X(S.category).color,onViewDetails:s&&S.kind===`skill`?D:void 0})},`constellation-popover`)}),(0,K.jsxs)(`div`,{"data-constellation-control":!0,className:`absolute bottom-4 right-4 flex items-center gap-1`,children:[(0,K.jsx)(l,{variant:`ghost`,iconOnly:(0,K.jsx)(V,{}),onClick:w.zoomIn,"aria-label":`Zoom in`,tooltip:`Zoom in`}),(0,K.jsx)(l,{variant:`ghost`,iconOnly:(0,K.jsx)(R,{}),onClick:w.zoomOut,"aria-label":`Zoom out`,tooltip:`Zoom out`}),(0,K.jsx)(l,{variant:`ghost`,iconOnly:(0,K.jsx)(z,{}),onClick:w.fitAll,"aria-label":`Fit all`,tooltip:`Fit all`})]})]})}function Ge({assistantName:e,assistantPersonality:t,assistantRole:n,hatchedDate:r,components:i,traits:a,customImageUrl:o,onOpenThread:s,onOpenModal:c}){return(0,K.jsxs)(`div`,{className:`w-full overflow-hidden rounded-xl`,style:{backgroundColor:`var(--surface-lift)`},children:[(0,K.jsxs)(`div`,{className:`relative p-6 pb-0`,children:[(0,K.jsx)(`div`,{className:`pr-8 text-center`,children:(0,K.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e})}),(0,K.jsx)(l,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(v,{"aria-hidden":!0}),onClick:()=>s?.(`I would like to change your name`),disabled:!s,"aria-label":`Edit identity`,title:`Edit Name`,className:`absolute right-6 top-6`,tintColor:`var(--content-tertiary)`})]}),(0,K.jsx)(`div`,{className:`flex justify-center py-6`,children:(0,K.jsx)(L,{components:i,traits:a,customImageUrl:o,size:200,interactive:!0})}),(0,K.jsx)(`div`,{className:`flex justify-center pb-6`,children:(0,K.jsx)(l,{type:`button`,variant:`outlined`,size:`regular`,onClick:c,className:`!rounded-full`,children:`Update Avatar`})}),(0,K.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b px-4 py-3`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Role`}),(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:n})]}),(0,K.jsx)(l,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(v,{"aria-hidden":!0}),onClick:()=>s?.(`I would like to change your role description`),disabled:!s,"aria-label":`Edit role`,title:`Edit Role`,tintColor:`var(--content-tertiary)`})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b px-4 py-3`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Personality`}),(0,K.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},title:t||`Not set`,children:t||`Not set`})]}),(0,K.jsx)(l,{type:`button`,variant:`ghost`,iconOnly:(0,K.jsx)(v,{"aria-hidden":!0}),onClick:()=>s?.(`I would like to change your personality`),disabled:!s,"aria-label":`Edit personality`,title:`Edit Personality`,tintColor:`var(--content-tertiary)`})]}),(0,K.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,K.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`Hatched`}),(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:r})]})]})}function Ke({assistantId:e,onOpenThread:n}){let r=a(),{components:i,traits:c,customImageUrl:l,isLoading:u,invalidate:p}=te(e),[h,g]=(0,G.useState)(null),[_,v]=(0,G.useState)(null),[y,b]=(0,G.useState)(null),[T,E]=(0,G.useState)(!1),[D,O]=(0,G.useState)(null),[k,A]=(0,G.useState)(null),[j,M]=(0,G.useState)(null),[N,P]=(0,G.useState)(null);(0,G.useEffect)(()=>{let n=!1;return Promise.all([ne(e),w(e).catch(()=>({ok:!1,status:0,error:{}}))]).then(([t,r])=>{n||(g(t),r.ok?v(r.data.created):v(null),b(e))}).catch(e=>{n||t(e,{context:`identity_tab_load`})}),()=>{n=!0}},[e]);let F=y!==e||u,[I,ee]=(0,G.useState)(!1),L=o({...x({path:{assistant_id:e},query:{kind:`installed`}}),select:e=>e.skills,enabled:!!e}),R=(0,G.useMemo)(()=>L.data??[],[L.data]),z=(0,G.useCallback)(()=>{p()},[p]),B=(0,G.useCallback)(()=>{E(!0)},[]),re=(0,G.useCallback)(()=>{E(!1)},[]),ie=(0,G.useCallback)(()=>{n?.(`I'd like to create a custom AI-generated avatar.`)},[n]),V=(0,G.useCallback)(()=>{r.invalidateQueries({queryKey:S({path:{assistant_id:e}})})},[e,r]),H=s({mutationFn:t=>m(e,t),onMutate:e=>A(e),onSettled:()=>{A(null),V()}}),U=s({...C(),onMutate:e=>M(e.path.id),onSettled:()=>{M(null),V()}}),W=(0,G.useCallback)(e=>{H.mutate(e.slug??e.id)},[H]),ae=(0,G.useCallback)(e=>{P(e)},[]),q=(0,G.useCallback)(()=>{N&&(U.mutate({path:{assistant_id:e,id:N.id}}),P(null))},[e,N,U]),J=(0,G.useMemo)(()=>D?R.find(e=>e.id===D)??null:null,[R,D]),Y=(0,K.jsx)(d,{open:N!==null,title:`Remove skill`,message:N?`Remove "${N.name}" from this assistant?`:``,confirmLabel:`Remove`,destructive:!0,onConfirm:q,onCancel:()=>P(null)});if(J)return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(f,{assistantId:e,skill:J,onBack:()=>O(null),onInstall:()=>W(J),onRemove:()=>ae(J),isInstalling:k===(J.slug??J.id),isRemoving:j===J.id}),Y]});if(F)return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,K.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})});let se=h?.name||`Assistant`,ce=h?.personality||``,X=h?.role||`Not set`,le=_?new Date(_).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}):`Unknown`;return(0,K.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-6 lg:flex-row lg:items-stretch`,children:[(0,K.jsx)(`div`,{className:`mx-auto w-full max-w-md lg:mx-0 lg:h-full lg:shrink-0 lg:overflow-y-auto ${I?`hidden`:`flex`}`,children:(0,K.jsx)(Ge,{assistantName:se,assistantPersonality:ce,assistantRole:X,hatchedDate:le,components:i,traits:c,customImageUrl:l,onOpenThread:n,onOpenModal:B})}),(0,K.jsx)(`div`,{className:`min-h-[480px] min-w-0 flex-1 lg:min-h-0`,children:(0,K.jsx)(We,{skills:R,components:i,traits:c,customImageUrl:l,className:`h-full w-full`,isFullscreen:I,onToggleFullscreen:()=>ee(e=>!e),onSelectSkill:O})}),(0,K.jsx)(oe,{open:T,onClose:re,assistantId:e,components:i,traits:c,customImageUrl:l,onSaveCharacter:z,onUploadImage:z,onGenerateWithAI:n?ie:void 0}),Y]})}function qe({onOpenThread:e}){return(0,K.jsx)(Ke,{assistantId:W(),onOpenThread:e})}function Je(){let e=i();return(0,K.jsx)(qe,{onOpenThread:t=>{E.getState().setMainView(`chat`);let n=N();D.getState().setActiveConversationId(n),e(`${T.conversation(n)}?prompt=${encodeURIComponent(t)}`)}},W())}export{Je as IdentityPageRoute};