@vellumai/web 0.8.9-staging.3 → 0.8.9-staging.5

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 (119) hide show
  1. package/dist/assets/{account-page-JOmrd7O5.js → account-page-DLWgiDpL.js} +1 -1
  2. package/dist/assets/add-credits-modal-KR3l-hlL.js +1 -0
  3. package/dist/assets/{advanced-page-DfQKcHki.js → advanced-page-CM1prrIX.js} +1 -1
  4. package/dist/assets/ai-page-DfYw7V-1.js +1 -0
  5. package/dist/assets/{api-key-screen-BFaPTjaE.js → api-key-screen-_pmVhsup.js} +1 -1
  6. package/dist/assets/{archive-page-BA9_f8tE.js → archive-page-C3-LAH2o.js} +1 -1
  7. package/dist/assets/{assistant-status-panel-B2a_ey3l.js → assistant-status-panel-AFf9Mjwp.js} +1 -1
  8. package/dist/assets/auth-store-CiQCAKS1.js +6 -0
  9. package/dist/assets/billing-page-o68CnS02.js +34 -0
  10. package/dist/assets/{chunk-5KNZJZUH-B4b1m-Ya.js → chunk-5KNZJZUH-DdS6bb-3.js} +2 -2
  11. package/dist/assets/{command-palette-BiZB4OSo.js → command-palette-BcHAzecz.js} +1 -1
  12. package/dist/assets/{community-page-j-8N5lFa.js → community-page-BCX3CsOx.js} +1 -1
  13. package/dist/assets/{connect-page-zFzMI9NA.js → connect-page-DXB8Xkpw.js} +1 -1
  14. package/dist/assets/{contacts-gateway-DjUsIJ09.js → contacts-gateway-DBRvewkn.js} +1 -1
  15. package/dist/assets/contacts-page-route-8pMuZN4b.js +1 -0
  16. package/dist/assets/danger-zone-redirect-page-G9ozZFrR.js +1 -0
  17. package/dist/assets/debug-page-CS2bRZp9.js +3 -0
  18. package/dist/assets/deploy-dialogs-EImApd6S.js +1 -0
  19. package/dist/assets/{developer-page-CZfUJHd7.js → developer-page-C6j4GZcn.js} +1 -1
  20. package/dist/assets/devices-page-C1id1sIt.js +1 -0
  21. package/dist/assets/{document-viewer-page-DP01_kUJ.js → document-viewer-page-D-zkJQlm.js} +1 -1
  22. package/dist/assets/{earn-credits-modal-QwO92K15.js → earn-credits-modal-RXLM_09P.js} +1 -1
  23. package/dist/assets/{emails-page-Bqv0y6Lp.js → emails-page-BFlPmeFT.js} +1 -1
  24. package/dist/assets/general-page-q3bvwcHU.js +1 -0
  25. package/dist/assets/{hatching-screen-B8RlGI3J.js → hatching-screen-6TxMgPxR.js} +1 -1
  26. package/dist/assets/home-page-route-mDiWda9f.js +1 -0
  27. package/dist/assets/{hosting-screen-DoltpG5X.js → hosting-screen-XKK-VeRo.js} +1 -1
  28. package/dist/assets/identity-page-route-BCiHzwmk.js +1 -0
  29. package/dist/assets/index-BjEJFZTJ.js +124 -0
  30. package/dist/assets/{inspect-page-Dmp2FUpn.js → inspect-page-BrUzgvle.js} +2 -2
  31. package/dist/assets/{install-Db4K638M.js → install-Uj6CrGld.js} +1 -1
  32. package/dist/assets/integrations-page-BL9LXHFe.js +1 -0
  33. package/dist/assets/{intelligence-layout-D96EIdSw.js → intelligence-layout-BwYGHEw7.js} +1 -1
  34. package/dist/assets/{keyboard-shortcuts-page-LBckCCBl.js → keyboard-shortcuts-page-QHFTyWOo.js} +1 -1
  35. package/dist/assets/library-detail-page-nUyEDHke.js +1 -0
  36. package/dist/assets/library-page-B0AzCNkJ.js +1 -0
  37. package/dist/assets/{login-flow-CaZb4l04.js → login-flow-Bi4ujzeb.js} +1 -1
  38. package/dist/assets/{login-page-C-HGOjOK.js → login-page-BOH-K9Pj.js} +1 -1
  39. package/dist/assets/{logout-page-Dl5euYyX.js → logout-page-B1QXMyiH.js} +1 -1
  40. package/dist/assets/{logs-layout-BTlzvT2f.js → logs-layout-zcrIEQRy.js} +1 -1
  41. package/dist/assets/{memory-router-playground-page-BBlTxde7.js → memory-router-playground-page-CeZ4XMd2.js} +1 -1
  42. package/dist/assets/{mobile-sidebar-drawer-9EUmVwhv.js → mobile-sidebar-drawer-BjPgVWjw.js} +1 -1
  43. package/dist/assets/notifications-page-omwlGRbj.js +1 -0
  44. package/dist/assets/{oauth-complete-page-AZTJJBVl.js → oauth-complete-page--ojS1AzN.js} +1 -1
  45. package/dist/assets/{oauth-popup-complete-page-CzA0WXr4.js → oauth-popup-complete-page-D5wVrngS.js} +2 -2
  46. package/dist/assets/password-reset-page-BJo9vGl_.js +1 -0
  47. package/dist/assets/{platform-loopback-page-CNTdcgsZ.js → platform-loopback-page--72P008D.js} +1 -1
  48. package/dist/assets/{plugin-detail-page-CS_wmEDi.js → plugin-detail-page-Co_JFwRa.js} +1 -1
  49. package/dist/assets/{plugins-page-CRtYNHW4.js → plugins-page-D7VpzRFc.js} +1 -1
  50. package/dist/assets/pre-chat-flow-BoePpEU7.js +1 -0
  51. package/dist/assets/privacy-page-DpKZ9VJG.js +1 -0
  52. package/dist/assets/{privacy-screen-qeQ2XoHu.js → privacy-screen-CEsX-1V3.js} +1 -1
  53. package/dist/assets/{provider-callback-page-C87AasMA.js → provider-callback-page-DDEEkkDM.js} +1 -1
  54. package/dist/assets/{provider-signup-page-CfbGs1zY.js → provider-signup-page-CZqSVAQl.js} +1 -1
  55. package/dist/assets/{review-terms-screen-BnGyRURw.js → review-terms-screen-CYFxXWmR.js} +1 -1
  56. package/dist/assets/routes-Dk5Qeryt.js +1 -0
  57. package/dist/assets/schedules-page-Dk-YbWK3.js +1 -0
  58. package/dist/assets/select-assistant-screen-CYpMf074.js +1 -0
  59. package/dist/assets/settings-layout-C_sqrv5S.js +1 -0
  60. package/dist/assets/share-feedback-modal-Cg8gci5A.js +1 -0
  61. package/dist/assets/{sidebar-tree-DyEHuZeN.js → sidebar-tree-Cme65q7r.js} +1 -1
  62. package/dist/assets/{signup-page-BTfxDffn.js → signup-page-BBM_CboU.js} +1 -1
  63. package/dist/assets/skills-page-J6mZv9bN.js +1 -0
  64. package/dist/assets/{sounds-page-CkLyWMqe.js → sounds-page-DpRhAAJv.js} +1 -1
  65. package/dist/assets/{step-indicator-dots-BjA1nnWA.js → step-indicator-dots-Dmj2aMuo.js} +1 -1
  66. package/dist/assets/{subagent-detail-panel-4B8mdN25.js → subagent-detail-panel-Dq-GDI61.js} +2 -2
  67. package/dist/assets/system-events-page-DNln669W.js +1 -0
  68. package/dist/assets/system-events-redirect-page-DY7BhERh.js +1 -0
  69. package/dist/assets/{tiptap-document-editor-D_JJ-i8w.js → tiptap-document-editor-DucA37Km.js} +1 -1
  70. package/dist/assets/tool-detail-panel-CwQTuANT.js +1 -0
  71. package/dist/assets/trace-page-CKTCZonQ.js +1 -0
  72. package/dist/assets/upgrade-cancel-page-BsW23ioD.js +1 -0
  73. package/dist/assets/upgrade-success-page-DqSBwFJv.js +1 -0
  74. package/dist/assets/{usage-page-DTCDhatY.js → usage-page-D6cPGTNn.js} +1 -1
  75. package/dist/assets/{use-current-platform-assistant-4FcCb-TC.js → use-current-platform-assistant-Cu95G65M.js} +1 -1
  76. package/dist/assets/use-is-org-ready-IPLcsl77.js +1 -0
  77. package/dist/assets/{use-oauth-complete-deep-link-listener-DODuMYm6.js → use-oauth-complete-deep-link-listener-BQZGv8sr.js} +1 -1
  78. package/dist/assets/{use-onboarding-login-CEqnm099.js → use-onboarding-login-Cd72-1Qe.js} +1 -1
  79. package/dist/assets/voice-page-D8IZifkA.js +1 -0
  80. package/dist/assets/{weather-forecast-display-CEt-zNG2.js → weather-forecast-display-DgqpUX3a.js} +1 -1
  81. package/dist/assets/{welcome-screen-3Gi6zm9f.js → welcome-screen-B2tizoBp.js} +1 -1
  82. package/dist/assets/workspace-page-Bu8beso_.js +1 -0
  83. package/dist/index.html +5 -5
  84. package/package.json +1 -1
  85. package/dist/assets/add-credits-modal-D1PUmkv8.js +0 -1
  86. package/dist/assets/ai-page-BHdzWA1C.js +0 -1
  87. package/dist/assets/auth-store-oleg80LZ.js +0 -6
  88. package/dist/assets/billing-page-BtGA4D1N.js +0 -34
  89. package/dist/assets/contacts-page-route-CIhz_sJO.js +0 -1
  90. package/dist/assets/danger-zone-redirect-page-BOK4eL8M.js +0 -1
  91. package/dist/assets/debug-page-EPqbjJSc.js +0 -3
  92. package/dist/assets/deploy-dialogs-DlIjxp-4.js +0 -1
  93. package/dist/assets/devices-page-CjKo24zw.js +0 -1
  94. package/dist/assets/general-page-BSf6qSem.js +0 -1
  95. package/dist/assets/home-page-route-D3PEij2C.js +0 -1
  96. package/dist/assets/identity-page-route-MDSvMuG9.js +0 -1
  97. package/dist/assets/index-DM63H2B6.js +0 -124
  98. package/dist/assets/integrations-page-DKhH4frU.js +0 -1
  99. package/dist/assets/library-detail-page-T4MedcS4.js +0 -1
  100. package/dist/assets/library-page-RtbQs7L5.js +0 -1
  101. package/dist/assets/notifications-page-DlDftqR1.js +0 -1
  102. package/dist/assets/password-reset-page-DyimUxBH.js +0 -1
  103. package/dist/assets/pre-chat-flow-BDhreJ7B.js +0 -1
  104. package/dist/assets/privacy-page-C1kpEJg_.js +0 -1
  105. package/dist/assets/routes-DMbyM_oF.js +0 -1
  106. package/dist/assets/schedules-page-DL7EfeDQ.js +0 -1
  107. package/dist/assets/select-assistant-screen-BGPc4tCz.js +0 -1
  108. package/dist/assets/settings-layout-Ce4VYURq.js +0 -1
  109. package/dist/assets/share-feedback-modal-le4GoR2Z.js +0 -1
  110. package/dist/assets/skills-page-D_8aU82C.js +0 -1
  111. package/dist/assets/system-events-page-BuSkwmMl.js +0 -1
  112. package/dist/assets/system-events-redirect-page-Dq56rHVE.js +0 -1
  113. package/dist/assets/tool-detail-panel-WvA0b4nW.js +0 -1
  114. package/dist/assets/trace-page-Ckyukuwf.js +0 -1
  115. package/dist/assets/upgrade-cancel-page-C_KXGnp0.js +0 -1
  116. package/dist/assets/upgrade-success-page-yvoI0p_k.js +0 -1
  117. package/dist/assets/use-is-org-ready-tTrrZoWV.js +0 -1
  118. package/dist/assets/voice-page-pG9E3NoZ.js +0 -1
  119. package/dist/assets/workspace-page-DNw6D4Sj.js +0 -1
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,m as r}from"./chunk-5KNZJZUH-B4b1m-Ya.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-oleg80LZ.js";import{i as u,n as d}from"./routes-DMbyM_oF.js";import{Ta as f,Za as p,fr as m,la as h}from"./index-DM63H2B6.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-CEqnm099.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.onboarding.selectAssistant:u.onboarding.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-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};
@@ -0,0 +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};