@vellumai/web 0.11.3-staging.1 → 0.11.3-staging.3

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 (186) hide show
  1. package/dist/assets/{access-BEF4g5Xz.js → access-RDaLlBt5.js} +1 -1
  2. package/dist/assets/{account-page-CjBQhkfo.js → account-page-JyXn859b.js} +1 -1
  3. package/dist/assets/{account-shell-BwGiy59u.js → account-shell-DuR-x14B.js} +1 -1
  4. package/dist/assets/{acp-run-detail-panel-BPcNCjiL.js → acp-run-detail-panel-BsGRKgJi.js} +1 -1
  5. package/dist/assets/{activity-steps-panel-DhuSLpCc.js → activity-steps-panel-DGS78a-e.js} +1 -1
  6. package/dist/assets/ai-page-84Y9c_q2.js +1 -0
  7. package/dist/assets/{api-key-screen-D1j3oper.js → api-key-screen-vFF5CrFw.js} +1 -1
  8. package/dist/assets/{app-card-BBt0ilaM.js → app-card-Df-Gy7pD.js} +1 -1
  9. package/dist/assets/{assistant-status-panel-DnkQ1jrJ.js → assistant-status-panel-C92c678g.js} +1 -1
  10. package/dist/assets/{auth-store-CPVpJ_c7.js → auth-store-BJdkkmzu.js} +1 -1
  11. package/dist/assets/{avatar-random-BHVo9v-a.js → avatar-random-BiLhcs1I.js} +1 -1
  12. package/dist/assets/{background-task-detail-panel-CyVrsboL.js → background-task-detail-panel-Dq1DgR5i.js} +1 -1
  13. package/dist/assets/billing-page-CAFoZYGH.js +3 -0
  14. package/dist/assets/{bookmarks-page-M8X5Jj_q.js → bookmarks-page-EeUOpkIO.js} +1 -1
  15. package/dist/assets/{build-state-DGpOoR0F.js → build-state-DJaFMxtL.js} +1 -1
  16. package/dist/assets/channels-page-route-DS9XLjMy.js +9 -0
  17. package/dist/assets/{chat-markdown-message-Dr9rA1lM.js → chat-markdown-message-C6oOqDdl.js} +1 -1
  18. package/dist/assets/{checkout-page-CQdvMHxx.js → checkout-page-BqIlZAum.js} +1 -1
  19. package/dist/assets/{command-palette-DjHOOk8U.js → command-palette-D6aRon6x.js} +1 -1
  20. package/dist/assets/{command-palette-window-page-msewbnL1.js → command-palette-window-page-B1jt_AiM.js} +1 -1
  21. package/dist/assets/{common-BUQt6ee_.js → common-wFfOb0rN.js} +1 -1
  22. package/dist/assets/{composer-settings-veIRzcPS.js → composer-settings-Du4kV9LG.js} +1 -1
  23. package/dist/assets/{contacts-page-route-Caog1niM.js → contacts-page-route-B4eanbVf.js} +1 -1
  24. package/dist/assets/{conversation-navigation-DqU55C7j.js → conversation-navigation-gR_RLe1J.js} +1 -1
  25. package/dist/assets/{conversation-queries-Bh_7RMKd.js → conversation-queries-Bx_JApUN.js} +1 -1
  26. package/dist/assets/{credentials-page-D3H8KP0a.js → credentials-page-BLMs_5u_.js} +1 -1
  27. package/dist/assets/{csv-preview-Crel8fKb.js → csv-preview-B0xuZwnc.js} +1 -1
  28. package/dist/assets/{debug-page-By8-4Cjy.js → debug-page-7plKE23B.js} +2 -2
  29. package/dist/assets/{deploy-dialogs-Dak-wWO4.js → deploy-dialogs-Bjz3OS-8.js} +1 -1
  30. package/dist/assets/{deploy-store-0HlKHhLJ.js → deploy-store-BGcHwvB5.js} +1 -1
  31. package/dist/assets/{detail-card-CmSV969e.js → detail-card-hWrhardR.js} +1 -1
  32. package/dist/assets/{detail-drawer-HN4NsyKg.js → detail-drawer-s-zfqqMy.js} +1 -1
  33. package/dist/assets/{detail-panel-stop-button-DV6U5A7y.js → detail-panel-stop-button-CC6QoK-R.js} +1 -1
  34. package/dist/assets/{detail-shell-rL601Rqo.js → detail-shell-PCaxY4Tf.js} +1 -1
  35. package/dist/assets/{developer-page-Bgg8qW6q.js → developer-page-CV5m0xk-.js} +1 -1
  36. package/dist/assets/{document-viewer-container-BkKmz-ar.js → document-viewer-container-wjJ6ACJv.js} +2 -2
  37. package/dist/assets/{document-viewer-page-B-jAUGAO.js → document-viewer-page-C8YfZSmS.js} +1 -1
  38. package/dist/assets/{emails-page-B0r-ksKy.js → emails-page-BqvrSqnK.js} +1 -1
  39. package/dist/assets/{file-editor-BQUkusyI.js → file-editor-DOnVeKOG.js} +1 -1
  40. package/dist/assets/file-markdown-CGC6ZrPT.js +2 -0
  41. package/dist/assets/{first-run-scope-U5LrdMhR.js → first-run-scope-DKd0ZevK.js} +1 -1
  42. package/dist/assets/{general-page-Ce41M2hE.js → general-page-C7kX0xLP.js} +1 -1
  43. package/dist/assets/{hatching-screen-TI6k1_Q2.js → hatching-screen-Dws0nCOf.js} +1 -1
  44. package/dist/assets/{home-page-route-D6oL1pWj.js → home-page-route-Qs5WbFPD.js} +1 -1
  45. package/dist/assets/home-tool-permission-card-Do3YeiVC.js +1 -0
  46. package/dist/assets/{hosting-screen-CGkMm-2o.js → hosting-screen-BJB_azfa.js} +1 -1
  47. package/dist/assets/identity-page-route-uZNXQbMq.js +7 -0
  48. package/dist/assets/{index-3KliM4Ki.js → index-DRExgbkb.js} +1 -1
  49. package/dist/assets/index-Q1K0w5kB.css +2 -0
  50. package/dist/assets/{inspect-page-DD024DeO.js → inspect-page-C1dITgHA.js} +3 -3
  51. package/dist/assets/integration-icon-R8opqT3n.js +1 -0
  52. package/dist/assets/integrations-page-D4EH9FG0.js +1 -0
  53. package/dist/assets/{intelligence-layout-DOTYC75R.js → intelligence-layout-ByKfD_gm.js} +1 -1
  54. package/dist/assets/{library-detail-page-B2C4hPSd.js → library-detail-page-BciW_57s.js} +1 -1
  55. package/dist/assets/{library-page-Y2NwunY9.js → library-page-CMO0VZux.js} +1 -1
  56. package/dist/assets/{local-runtime-upgrade-12Yco-XF.js → local-runtime-upgrade-CXKbgZ4c.js} +1 -1
  57. package/dist/assets/{login-flow-fmfcNxyU.js → login-flow-CN5J4YsY.js} +1 -1
  58. package/dist/assets/{login-page-HFoMsSuP.js → login-page-5jtwkaF1.js} +1 -1
  59. package/dist/assets/{logout-page-B_3PiI2q.js → logout-page-Bz0x8UvE.js} +1 -1
  60. package/dist/assets/{logs-layout-7JGOJ0Gg.js → logs-layout-B_GC1zBM.js} +1 -1
  61. package/dist/assets/{memory-page-route-Cf8FoT6z.js → memory-page-route-BtL6zJZb.js} +1 -1
  62. package/dist/assets/{memory-router-playground-page-B4vWmkYZ.js → memory-router-playground-page-e4uW8QiT.js} +1 -1
  63. package/dist/assets/{message-files-panel-B8NzbXp3.js → message-files-panel-DxmbSrm8.js} +1 -1
  64. package/dist/assets/{messages-JRZkqLeA.js → messages-DSdy6Lfi.js} +1 -1
  65. package/dist/assets/{metric-card-Ba-Ju2sO.js → metric-card-BSJPacNm.js} +1 -1
  66. package/dist/assets/{mobile-sidebar-drawer-B0rTd7jy.js → mobile-sidebar-drawer-BGHwfePU.js} +1 -1
  67. package/dist/assets/{multi-activity-group-5OxVs26d.js → multi-activity-group-D_OVaru-.js} +1 -1
  68. package/dist/assets/{not-found-zOjj1km-.js → not-found-ClBCK2Sg.js} +1 -1
  69. package/dist/assets/{notifications-pzRj4j4m.js → notifications-G7qqgf4f.js} +1 -1
  70. package/dist/assets/{notifications-page-DTTyILgl.js → notifications-page-AW-ftrs5.js} +1 -1
  71. package/dist/assets/{open-workspace-file-FgLn-SuR.js → open-workspace-file-DViQQLp4.js} +2 -2
  72. package/dist/assets/{page-shell-DH240m1W.js → page-shell-Tpt9AIL2.js} +1 -1
  73. package/dist/assets/pairing-page-CGoWIhv7.js +1 -0
  74. package/dist/assets/{personality-page-B1BQNH7w.js → personality-page-avdvL3Dx.js} +1 -1
  75. package/dist/assets/{plans-page-B8oZfefa.js → plans-page-CdNdqHks.js} +1 -1
  76. package/dist/assets/{platform-login-notice-3g7rHtc3.js → platform-login-notice-BEDBlins.js} +1 -1
  77. package/dist/assets/{platform-loopback-page-DwnkFF3M.js → platform-loopback-page-DcHVugCF.js} +1 -1
  78. package/dist/assets/{plugin-detail-page-BrrXgSIx.js → plugin-detail-page-CnlqMl6e.js} +1 -1
  79. package/dist/assets/plugins-surface-C5i913ST.js +1 -0
  80. package/dist/assets/{preview-error-Di5TH4XQ.js → preview-error-CVMngD78.js} +1 -1
  81. package/dist/assets/{privacy-page-4LAU5IqF.js → privacy-page-CfJXPReU.js} +1 -1
  82. package/dist/assets/{privacy-screen-CNnBXznE.js → privacy-screen-4GElE18b.js} +1 -1
  83. package/dist/assets/{profile-pickers-BSDVzs_G.js → profile-pickers-ChG4_Gpc.js} +1 -1
  84. package/dist/assets/{provider-callback-page-CpfaqAgJ.js → provider-callback-page-rNJpxKm4.js} +1 -1
  85. package/dist/assets/{provider-key-C9asexKh.js → provider-key-BZOH9D9k.js} +1 -1
  86. package/dist/assets/{provider-signup-page-MukjbwOQ.js → provider-signup-page-BG-fVW-J.js} +1 -1
  87. package/dist/assets/{push-registration-CqXBOPNb.js → push-registration-C0GXHrCj.js} +1 -1
  88. package/dist/assets/{remove-from-device-dialog-DY5o8eIg.js → remove-from-device-dialog-BGqwuQw9.js} +1 -1
  89. package/dist/assets/{research-onboarding-route-BIY3OCwG.js → research-onboarding-route-s_8BLTOQ.js} +1 -1
  90. package/dist/assets/{retire-confirm-dialog-CgOoh5RG.js → retire-confirm-dialog-Bm7A3sZF.js} +1 -1
  91. package/dist/assets/{review-terms-screen-BA2I_7F2.js → review-terms-screen-CpWYZlRr.js} +1 -1
  92. package/dist/assets/routes-DE2XWIds.js +23 -0
  93. package/dist/assets/{runtime-upgrade-banner-9KhcwQWy.js → runtime-upgrade-banner-DtzsX2m0.js} +1 -1
  94. package/dist/assets/{sandbox-bridge-B6h4B0qp.js → sandbox-bridge-WZhWtkZd.js} +1 -1
  95. package/dist/assets/schedules-page-Cfala7Km.js +1 -0
  96. package/dist/assets/select-assistant-screen-BqObBI5Z.js +1 -0
  97. package/dist/assets/self-hosted-servers-DFgP80iG.js +1 -0
  98. package/dist/assets/{settings-divider-D_vHiuYw.js → settings-divider-Dyvf7Uk6.js} +1 -1
  99. package/dist/assets/{settings-layout-CINtkHJR.js → settings-layout-DfPO11SQ.js} +1 -1
  100. package/dist/assets/{settings-navigation-CHeVLLWI.js → settings-navigation-C1wEuU56.js} +1 -1
  101. package/dist/assets/{share-feedback-modal-BWez_NtT.js → share-feedback-modal-Ctgazbnj.js} +1 -1
  102. package/dist/assets/{sidebar-tree-aLYbZLvm.js → sidebar-tree-VXRWtsy4.js} +1 -1
  103. package/dist/assets/{signup-page-CiW0Chx7.js → signup-page-CLf-r4oP.js} +1 -1
  104. package/dist/assets/{site-favicon-B5ilr8wL.js → site-favicon-DfuXzZcN.js} +1 -1
  105. package/dist/assets/{skill-detail-page-T24C6W33.js → skill-detail-page-ChpWru-e.js} +2 -2
  106. package/dist/assets/{skill-detail-panel-BOPQ16Vg.js → skill-detail-panel-DU0bdJUl.js} +1 -1
  107. package/dist/assets/{skills-C2mjxWRN.js → skills-B4bfakyU.js} +1 -1
  108. package/dist/assets/{src-BMRW2yQf.js → src-DyqTPMO2.js} +1 -1
  109. package/dist/assets/{stt-language-picker-modal-BVO4V699.js → stt-language-picker-modal-BiWHaqFq.js} +1 -1
  110. package/dist/assets/{subagent-detail-panel-BCDOrwh3.js → subagent-detail-panel-Gi0UOlsn.js} +1 -1
  111. package/dist/assets/{subagent-store-BOpi4xxB.js → subagent-store-9SqF-NFa.js} +1 -1
  112. package/dist/assets/superpowers-page-nHT_hb33.js +1 -0
  113. package/dist/assets/{system-events-page-Bgo88uzO.js → system-events-page-Bfpn0HzE.js} +1 -1
  114. package/dist/assets/{telegram-setup-wizard-B3MHpy56.js → telegram-setup-wizard-GetgaQy5.js} +1 -1
  115. package/dist/assets/{text-preview-CPYq3og6.js → text-preview-CEL0P-WV.js} +1 -1
  116. package/dist/assets/{theme-stage-page-B6C95R4X.js → theme-stage-page-CEBFiy-u.js} +1 -1
  117. package/dist/assets/{tiptap-document-editor-By4wlOTs.js → tiptap-document-editor-DPkcv0pe.js} +1 -1
  118. package/dist/assets/{tool-detail-panel-E_gP0j1r.js → tool-detail-panel-84bl2nI3.js} +1 -1
  119. package/dist/assets/typed-storage-lk6_tW16.js +1 -0
  120. package/dist/assets/{upgrade-cancel-page-DCiT0Rqi.js → upgrade-cancel-page-DNteIqqS.js} +1 -1
  121. package/dist/assets/{upgrade-success-page-DLs3viaj.js → upgrade-success-page-CAeO4QtE.js} +1 -1
  122. package/dist/assets/{use-assistant-avatar-Dk975wdP.js → use-assistant-avatar-Dd-EU1FC.js} +1 -1
  123. package/dist/assets/{use-assistant-identity-details-DyvMGaA7.js → use-assistant-identity-details-DqiKjphK.js} +1 -1
  124. package/dist/assets/{use-attachment-preview-DjrcSin2.js → use-attachment-preview-B4PALbqs.js} +1 -1
  125. package/dist/assets/{use-attachment-squares-DHH1eTI4.js → use-attachment-squares-C-9Rz-8O.js} +1 -1
  126. package/dist/assets/{use-bookmarks-Wg8ueMhb.js → use-bookmarks-BWGVUg59.js} +1 -1
  127. package/dist/assets/{use-checkout-dismiss-refresh-wuwzKwo_.js → use-checkout-dismiss-refresh-BGeYbYii.js} +1 -1
  128. package/dist/assets/{use-command-palette-sections-CzHbFhwD.js → use-command-palette-sections-D3aj-BzX.js} +1 -1
  129. package/dist/assets/{use-edge-swipe-back-9-2nUEK7.js → use-edge-swipe-back-BGq52vVr.js} +2 -2
  130. package/dist/assets/{use-edit-app-PiQBQ9vN.js → use-edit-app-u-kyfEFX.js} +1 -1
  131. package/dist/assets/{use-invite-link-dialog-C6rYwhqr.js → use-invite-link-dialog-Ccf_XNV3.js} +1 -1
  132. package/dist/assets/{use-is-org-ready-BTUeuhPi.js → use-is-org-ready-CQntk0MX.js} +1 -1
  133. package/dist/assets/{use-onboarding-login-BXw1Fcg3.js → use-onboarding-login-Cw_9Ydsv.js} +1 -1
  134. package/dist/assets/{use-platform-assistant-id-DOBe1pF-.js → use-platform-assistant-id-DMP9urFb.js} +1 -1
  135. package/dist/assets/{use-platform-gate-DBRG0Q26.js → use-platform-gate-2lhRAyKS.js} +1 -1
  136. package/dist/assets/{use-return-to-short-circuit-Bl1RwuwD.js → use-return-to-short-circuit-Dm5PWev2.js} +1 -1
  137. package/dist/assets/{use-skill-actions-kLsl5L01.js → use-skill-actions-BopRxJ9x.js} +1 -1
  138. package/dist/assets/{use-sticky-profiles-CVsR9J8_.js → use-sticky-profiles-5cPu_MUo.js} +1 -1
  139. package/dist/assets/{use-subagent-card-data-BeUTFQdm.js → use-subagent-card-data-VnA5x24X.js} +1 -1
  140. package/dist/assets/{use-supports-bookmarks-FmvOAxKu.js → use-supports-bookmarks-z9pfj1Rm.js} +1 -1
  141. package/dist/assets/use-supports-credentials-settings-CEPArXBW.js +1 -0
  142. package/dist/assets/{use-transcript-message-by-id-C7L609Lk.js → use-transcript-message-by-id-DCOlEJjY.js} +1 -1
  143. package/dist/assets/{use-transcript-messages-BAG92dqc.js → use-transcript-messages-BEpY7uG4.js} +1 -1
  144. package/dist/assets/{use-voice-sample-preview-CVVwbBcE.js → use-voice-sample-preview-CzqJYPiZ.js} +1 -1
  145. package/dist/assets/{utils-CAZUrJMu.js → utils-CVoSWh7U.js} +1 -1
  146. package/dist/assets/{viewer-store-BhqBXvNu.js → viewer-store-CayI6XWh.js} +1 -1
  147. package/dist/assets/{voice-list-ChEr4jqe.js → voice-list-BS2BNjKN.js} +1 -1
  148. package/dist/assets/{voice-page-CkdnjoLc.js → voice-page-B7t0g-1X.js} +1 -1
  149. package/dist/assets/{voice-providers-note-DC4nbaBx.js → voice-providers-note-Cv7vCsDI.js} +1 -1
  150. package/dist/assets/{welcome-screen-BTnikex6.js → welcome-screen-eqR0DNzE.js} +1 -1
  151. package/dist/assets/{workflow-detail-panel-Bf6rP5UH.js → workflow-detail-panel-Dlj8i7AM.js} +1 -1
  152. package/dist/assets/{workspace-page-C8EUvGJ4.js → workspace-page-CAbshSeb.js} +1 -1
  153. package/dist/images/integrations/ATTRIBUTION.md +72 -0
  154. package/dist/images/integrations/airtable.svg +1 -0
  155. package/dist/images/integrations/asana.svg +1 -0
  156. package/dist/images/integrations/discord.svg +1 -0
  157. package/dist/images/integrations/dropbox.svg +1 -0
  158. package/dist/images/integrations/hubspot.svg +1 -0
  159. package/dist/images/integrations/salesforce.svg +5 -0
  160. package/dist/images/integrations/sanity.svg +1 -0
  161. package/dist/images/integrations/spotify.svg +1 -0
  162. package/dist/images/integrations/telegram.svg +1 -0
  163. package/dist/images/integrations/todoist.svg +1 -0
  164. package/dist/images/integrations/x.svg +1 -0
  165. package/dist/index.html +57 -57
  166. package/package.json +1 -1
  167. package/dist/assets/ai-page-CsufGyQ4.js +0 -1
  168. package/dist/assets/billing-page-CvZZTRHS.js +0 -3
  169. package/dist/assets/channels-page-route-Dj500t-M.js +0 -9
  170. package/dist/assets/file-markdown-DMq6D4CV.js +0 -2
  171. package/dist/assets/home-tool-permission-card-DG7KNyYY.js +0 -1
  172. package/dist/assets/identity-page-route-CLUGVFIg.js +0 -7
  173. package/dist/assets/index-BIhXfUlg.css +0 -2
  174. package/dist/assets/integration-icon-BaoRF0qI.js +0 -1
  175. package/dist/assets/integrations-page-Dygny-c2.js +0 -1
  176. package/dist/assets/pairing-page-Tun2QZT0.js +0 -1
  177. package/dist/assets/plugins-surface-B4NuEVD_.js +0 -1
  178. package/dist/assets/routes-DuLrKyjJ.js +0 -23
  179. package/dist/assets/schedules-page-CchXRGaR.js +0 -1
  180. package/dist/assets/select-assistant-screen-BHf9p-NL.js +0 -1
  181. package/dist/assets/superpowers-page-bOpdIXSO.js +0 -1
  182. package/dist/assets/typed-storage-UYklH-m5.js +0 -1
  183. package/dist/assets/use-supports-credentials-settings-BGgnzFf0.js +0 -1
  184. package/dist/assets/use-supports-schedule-profile-moves-CuKzMKxy.js +0 -1
  185. /package/dist/assets/{profile-metadata-DutSLpwl.js → profile-metadata-DgH7VoVU.js} +0 -0
  186. /package/dist/assets/{start-screen-zLwb2fyf.js → start-screen-CXUDtHbL.js} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-Cw5vs0Ef.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-BENY-yx_.js";import{d as a,h as o}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./progress-bar-CrrJKpWm.js";import{C as ee,E as te,R as ne,S as re,_ as u,j as d,q as f,rt as ie}from"./local-mode-BfEgOekp.js";import{t as p}from"./is-electron-BHXrkjI3.js";import{n as m}from"./resolved-assistants-store-BFI9c7ip.js";import{i as ae}from"./api-errors-BQX1Pzcm.js";import{$ as oe,Z as h,dt as se,ft as ce,mt as le,n as g,pt as _,rt as ue,st as v}from"./auth-store-CPVpJ_c7.js";import{a as de,o as fe,r as y}from"./api-JA_IDAQk.js";import{d as b}from"./routes-iipg2wkc.js";import{h as pe,o as me}from"./prefs-CrbuxuNI.js";import{a as x,t as S}from"./navigation-resolver-DrNVOkMu.js";import{t as C}from"./build-state-DGpOoR0F.js";import{t as w}from"./avatar-bundled-components-BCCi2IoG.js";import{t as T}from"./avatar-svg-compositor-BOadabHt.js";import{t as E}from"./onboarding-layout-C534GRct.js";import{c as he,n as ge,t as _e}from"./provider-key-C9asexKh.js";import{a as ve,i as ye,n as be,r as D,t as O}from"./avatar-random-BHVo9v-a.js";import{t as k}from"./plugin-attribution-Cu32SvNF.js";var A=e(r(),1),j=c(),xe=800,M=null,N,P=null,F=null;function I(){M=null,N=void 0,P=null,F=null}var Se={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,Ce={initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,resizing:`Setting up your machine…`,ready:`Ready`};function we(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function Te(){let e=x(C(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let e=a(),r=s(),[c]=o(),x=c.get(`hosting`),C=c.get(`fail`),L=c.get(k),R=p(),z=u()&&x!==null&&x!==`vellum-cloud`,B=x===`vellum-cloud`,V=c.get(S)===`1`,H=g.use.sessionStatus(),Ee=z?v(H):H,[U]=(0,A.useState)(()=>F??=O(w)),De=(0,A.useMemo)(()=>{let e=T(w,U.bodyShape,U.eyeStyle,U.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[U]),[W,G]=(0,A.useState)(`initializing`),[Oe,K]=(0,A.useState)(null),[ke,q]=(0,A.useState)(!1),[Ae,je]=(0,A.useState)(!1),[Me,Ne]=(0,A.useState)(0),[Pe,J]=(0,A.useState)(0),[Fe,Ie]=(0,A.useState)(0),Y=(0,A.useRef)(W),X=(0,A.useRef)(0),Z=(0,A.useRef)(0),Q=(0,A.useRef)(0),$=(0,A.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,G(e),Ie(e=>e+1)},[]);return(0,A.useEffect)(()=>{if(C!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let i=Te();if(i.kind===`redirect`){e(i.to,{replace:!0});return}if(i.kind===`wait`)return;B&&u()&&(f(),ie(null)),q(!1),je(!1);let a=!1,o=null,s=null,c=null,l=Date.now(),p,v=!1,S=!1,w=me(),T=t=>{try{pe(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,G(`ready`),Y.current=`ready`,s=setTimeout(()=>{a||(I(),(async()=>{if(await ue.checkAssistant(),!a){if(z){let n=new URLSearchParams;x&&n.set(`hosting`,x),t&&n.set(`assistant`,t),L&&n.set(k,L);let r=n.toString();e(`${b.onboarding.research}${r?`?${r}`:``}`,{replace:!0});return}e(b.onboarding.research,{replace:!0})}})())},xe)},E=e=>ve(e,U,r),O=async()=>{if($(`provisioning`),!z){try{let e=await y(),t=_(e);if(!a&&e.ok&&t.kind===`active`){u()&&d(e.data.id,e.data.name,oe()??void 0),await j(e.data.id);return}t.kind===`auto_hatch`&&(S=!0)}catch{}if(a)return}if(z){try{let e=x===`docker`?`docker`:void 0;M&&N!==e&&I(),M||=(N=e,ne(void 0,e));let t=await M;if(a)return;if(!t.ok){I(),K(t.error??`Failed to hatch local assistant.`);return}await re(),t.assistantId&&h(t.assistantId),$(`connecting`);let r=!1;for(;!a&&!r;){if(await te()){f(),await ee(),r=!0;break}if(Date.now()-l>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{c=setTimeout(e,D)}),c=null}if(a)return;if(t.assistantId)try{await ge(t.assistantId)}catch(e){if(e instanceof _e){if(!a){let t=he(e.provider)?.displayName??e.provider;je(!0);let n=`Update your ${t} API key to continue.`;K(e.reason?`${e.reason} ${n}`:n)}return}n(e,{context:`onboarding_apply_provider_key`})}t.assistantId&&await g.getState().connectLocalAssistant(t.assistantId),t.assistantId&&(m.getState().upsertFromApi({id:t.assistantId,name:t.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),h(t.assistantId),E(t.assistantId)),T(t.assistantId)}catch{if(I(),a)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=fe(w?{version:w}:void 0);let e=await P;if(P=null,a)return;if(e.ok&&(p=e.data.id),v=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),ce(e.status,e.error)){K(se),q(!0);return}if(!le(e.status)){K(ae(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,n(e,{context:`onboarding_hatch_assistant`}),a)return}A(0)},A=e=>{a||(o=setTimeout(F,e))},j=async e=>{for($(`connecting`);!a;){try{if((await de(e)).ok)break}catch{}if(Date.now()-l>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{o=setTimeout(e,D)}),o=null}if(a)return;let n=await ye({assistantId:e,postCheckoutReturn:V,managedHatch:B,hatchStartMs:l,isCancelled:()=>a,onResizeWait:()=>$(`resizing`),registerTimer:e=>{o=e}});if(!a){if(n===`health_timeout`){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:be,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}T()}},F=async()=>{if(!a){if(Date.now()-l>=3e5){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:be}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await y(p);if(a||p&&!e.ok&&e.status===404&&(p=void 0,e=await y(),a))return;let t=_(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;m.getState().upsertFromApi(e.data),h(t),(v||S)&&E(t),u()&&d(t,e.data.name,oe()??void 0),await j(t);return}T();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),A(D)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),a)return;A(D)}}};return O(),()=>{a=!0,o&&clearTimeout(o),s&&clearTimeout(s),c&&clearTimeout(c)}},[Me,C,U,B,V,Ee,e,r,$,z]),(0,A.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=Se[Y.current],i=we(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Fe]),Oe?(0,j.jsx)(E,{children:(0,j.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:Ae?`Your API key didn't work`:`Something went wrong`}),(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:Oe}),ke&&(0,j.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,j.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Get started today with a local assistant`}),(0,j.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,children:(0,j.jsx)(`a`,{href:`${window.location.origin}/download`,children:`Download the macOS app`})})]}),(0,j.jsx)(`img`,{src:De,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,j.jsxs)(`div`,{className:`flex w-full flex-col ${R?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[Ae?(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(x?`${b.onboarding.apiKey}?hosting=${x}`:b.onboarding.apiKey,{replace:!0}),children:`Update API key`}):(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,G(`initializing`),J(0),Ie(e=>e+1),K(null),q(!1),Ne(e=>e+1)},children:`Try again`}),(0,j.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(z?b.onboarding.hosting:b.onboarding.privacy,{replace:!0}),children:`Back`})]})]})}):(0,j.jsx)(E,{children:(0,j.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:W===`ready`?`Your assistant is ready!`:`Waking up…`}),W!==`ready`&&(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:`Hang tight — your assistant will have a few questions for you once it's up.`}),(0,j.jsx)(`img`,{src:De,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} ${W===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,j.jsx)(l,{value:Pe,height:6,className:`w-full ${R?`max-w-[200px]`:`max-w-sm`}`,"aria-label":`Assistant startup progress`}),(0,j.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${R?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:Ce[W]})]})})}export{R as HatchingScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-Cw5vs0Ef.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-BENY-yx_.js";import{d as a,h as o}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./progress-bar-CrrJKpWm.js";import{C as ee,E as te,R as ne,S as re,_ as u,j as d,q as f,rt as ie}from"./local-mode-BfEgOekp.js";import{t as p}from"./is-electron-BHXrkjI3.js";import{n as m}from"./resolved-assistants-store-BFI9c7ip.js";import{i as ae}from"./api-errors-BQX1Pzcm.js";import{$ as oe,Z as h,dt as se,ft as ce,mt as le,n as g,pt as _,rt as ue,st as v}from"./auth-store-BJdkkmzu.js";import{a as de,o as fe,r as y}from"./api-JA_IDAQk.js";import{d as b}from"./routes-iipg2wkc.js";import{h as pe,o as me}from"./prefs-CrbuxuNI.js";import{a as x,t as S}from"./navigation-resolver-DrNVOkMu.js";import{t as C}from"./build-state-DJaFMxtL.js";import{t as w}from"./avatar-bundled-components-BCCi2IoG.js";import{t as T}from"./avatar-svg-compositor-BOadabHt.js";import{t as E}from"./onboarding-layout-C534GRct.js";import{c as he,n as ge,t as _e}from"./provider-key-BZOH9D9k.js";import{a as ve,i as ye,n as be,r as D,t as O}from"./avatar-random-BiLhcs1I.js";import{t as k}from"./plugin-attribution-Cu32SvNF.js";var A=e(r(),1),j=c(),xe=800,M=null,N,P=null,F=null;function I(){M=null,N=void 0,P=null,F=null}var Se={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,Ce={initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,resizing:`Setting up your machine…`,ready:`Ready`};function we(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function Te(){let e=x(C(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let e=a(),r=s(),[c]=o(),x=c.get(`hosting`),C=c.get(`fail`),L=c.get(k),R=p(),z=u()&&x!==null&&x!==`vellum-cloud`,B=x===`vellum-cloud`,V=c.get(S)===`1`,H=g.use.sessionStatus(),Ee=z?v(H):H,[U]=(0,A.useState)(()=>F??=O(w)),De=(0,A.useMemo)(()=>{let e=T(w,U.bodyShape,U.eyeStyle,U.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[U]),[W,G]=(0,A.useState)(`initializing`),[Oe,K]=(0,A.useState)(null),[ke,q]=(0,A.useState)(!1),[Ae,je]=(0,A.useState)(!1),[Me,Ne]=(0,A.useState)(0),[Pe,J]=(0,A.useState)(0),[Fe,Ie]=(0,A.useState)(0),Y=(0,A.useRef)(W),X=(0,A.useRef)(0),Z=(0,A.useRef)(0),Q=(0,A.useRef)(0),$=(0,A.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,G(e),Ie(e=>e+1)},[]);return(0,A.useEffect)(()=>{if(C!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let i=Te();if(i.kind===`redirect`){e(i.to,{replace:!0});return}if(i.kind===`wait`)return;B&&u()&&(f(),ie(null)),q(!1),je(!1);let a=!1,o=null,s=null,c=null,l=Date.now(),p,v=!1,S=!1,w=me(),T=t=>{try{pe(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,G(`ready`),Y.current=`ready`,s=setTimeout(()=>{a||(I(),(async()=>{if(await ue.checkAssistant(),!a){if(z){let n=new URLSearchParams;x&&n.set(`hosting`,x),t&&n.set(`assistant`,t),L&&n.set(k,L);let r=n.toString();e(`${b.onboarding.research}${r?`?${r}`:``}`,{replace:!0});return}e(b.onboarding.research,{replace:!0})}})())},xe)},E=e=>ve(e,U,r),O=async()=>{if($(`provisioning`),!z){try{let e=await y(),t=_(e);if(!a&&e.ok&&t.kind===`active`){u()&&d(e.data.id,e.data.name,oe()??void 0),await j(e.data.id);return}t.kind===`auto_hatch`&&(S=!0)}catch{}if(a)return}if(z){try{let e=x===`docker`?`docker`:void 0;M&&N!==e&&I(),M||=(N=e,ne(void 0,e));let t=await M;if(a)return;if(!t.ok){I(),K(t.error??`Failed to hatch local assistant.`);return}await re(),t.assistantId&&h(t.assistantId),$(`connecting`);let r=!1;for(;!a&&!r;){if(await te()){f(),await ee(),r=!0;break}if(Date.now()-l>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{c=setTimeout(e,D)}),c=null}if(a)return;if(t.assistantId)try{await ge(t.assistantId)}catch(e){if(e instanceof _e){if(!a){let t=he(e.provider)?.displayName??e.provider;je(!0);let n=`Update your ${t} API key to continue.`;K(e.reason?`${e.reason} ${n}`:n)}return}n(e,{context:`onboarding_apply_provider_key`})}t.assistantId&&await g.getState().connectLocalAssistant(t.assistantId),t.assistantId&&(m.getState().upsertFromApi({id:t.assistantId,name:t.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),h(t.assistantId),E(t.assistantId)),T(t.assistantId)}catch{if(I(),a)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=fe(w?{version:w}:void 0);let e=await P;if(P=null,a)return;if(e.ok&&(p=e.data.id),v=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),ce(e.status,e.error)){K(se),q(!0);return}if(!le(e.status)){K(ae(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,n(e,{context:`onboarding_hatch_assistant`}),a)return}A(0)},A=e=>{a||(o=setTimeout(F,e))},j=async e=>{for($(`connecting`);!a;){try{if((await de(e)).ok)break}catch{}if(Date.now()-l>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{o=setTimeout(e,D)}),o=null}if(a)return;let n=await ye({assistantId:e,postCheckoutReturn:V,managedHatch:B,hatchStartMs:l,isCancelled:()=>a,onResizeWait:()=>$(`resizing`),registerTimer:e=>{o=e}});if(!a){if(n===`health_timeout`){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:be,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}T()}},F=async()=>{if(!a){if(Date.now()-l>=3e5){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:be}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await y(p);if(a||p&&!e.ok&&e.status===404&&(p=void 0,e=await y(),a))return;let t=_(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;m.getState().upsertFromApi(e.data),h(t),(v||S)&&E(t),u()&&d(t,e.data.name,oe()??void 0),await j(t);return}T();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),A(D)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),a)return;A(D)}}};return O(),()=>{a=!0,o&&clearTimeout(o),s&&clearTimeout(s),c&&clearTimeout(c)}},[Me,C,U,B,V,Ee,e,r,$,z]),(0,A.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=Se[Y.current],i=we(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Fe]),Oe?(0,j.jsx)(E,{children:(0,j.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:Ae?`Your API key didn't work`:`Something went wrong`}),(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:Oe}),ke&&(0,j.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,j.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Get started today with a local assistant`}),(0,j.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,children:(0,j.jsx)(`a`,{href:`${window.location.origin}/download`,children:`Download the macOS app`})})]}),(0,j.jsx)(`img`,{src:De,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,j.jsxs)(`div`,{className:`flex w-full flex-col ${R?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[Ae?(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(x?`${b.onboarding.apiKey}?hosting=${x}`:b.onboarding.apiKey,{replace:!0}),children:`Update API key`}):(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,G(`initializing`),J(0),Ie(e=>e+1),K(null),q(!1),Ne(e=>e+1)},children:`Try again`}),(0,j.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(z?b.onboarding.hosting:b.onboarding.privacy,{replace:!0}),children:`Back`})]})]})}):(0,j.jsx)(E,{children:(0,j.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:W===`ready`?`Your assistant is ready!`:`Waking up…`}),W!==`ready`&&(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:`Hang tight — your assistant will have a few questions for you once it's up.`}),(0,j.jsx)(`img`,{src:De,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} ${W===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,j.jsx)(l,{value:Pe,height:6,className:`w-full ${R?`max-w-[200px]`:`max-w-sm`}`,"aria-label":`Assistant startup progress`}),(0,j.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${R?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:Ce[W]})]})})}export{R as HatchingScreen};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./arrow-left-BikDV6F2.js";import{t as u}from"./bell-aW0w-ROt.js";import{t as d}from"./calendar-CTyC1v1L.js";import{t as f}from"./chevron-right-DBGgpEiZ.js";import{a as p}from"./src-BMRW2yQf.js";import{_ as m,a as h,c as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,r as E,s as D,t as O,u as k,v as A}from"./home-tool-permission-card-DG7KNyYY.js";import{t as j}from"./mail-CYjppw70.js";import{t as M}from"./rotate-ccw-Dcfo4EC8.js";import{t as N}from"./trash-2-BKXSi5Tj.js";import{t as P}from"./x-338EsJDP.js";import{t as F}from"./tag-DeMzQvCo.js";import{t as I}from"./skeleton-CJJwPIil.js";import{d as L}from"./routes-iipg2wkc.js";import{H as R,U as z}from"./react-query.gen-DxjuNs-5.js";import{t as B}from"./conversation-navigation-DqU55C7j.js";import{n as V}from"./use-is-mobile-BP8UePsY.js";import{a as H}from"./conversation-cache-BmhpM_P6.js";import{t as U}from"./chat-layout-slots-store-N_sabTbs.js";import{a as W,i as G,n as ee}from"./conversation-queries-Bh_7RMKd.js";import{t as te}from"./use-active-assistant-id-BvHP5Ojg.js";import{s as ne}from"./schedules-kVuR00ra.js";import{i as K,r as q}from"./format-date-Bi9Bsv-w.js";import{t as re}from"./page-shell-DH240m1W.js";import{n as J,t as Y}from"./detail-drawer-HN4NsyKg.js";import{t as ie}from"./page-empty-state-DtjiuvvO.js";var X=e(t(),1),Z=s();function ae(e){return e.title?e.title:e.category?e.category.charAt(0).toUpperCase()+e.category.slice(1):`Notification`}function oe({item:e,isMobile:t,validConversationIds:r,onClose:i,onGoToThread:a,onUpdateStatus:o,onDismiss:s,onViewSchedule:u}){if(!e)return null;let f=e.detailPanel?.kind,p=ae(e),m=y(e.category),h=m.icon,g=e.status===`new`,_=e.status===`dismissed`,v=!!e.conversationId&&r.has(e.conversationId);return t?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(l,{}),onClick:i,"aria-label":`Back`,tooltip:`Back`}),(0,Z.jsx)(c,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,Z.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,Z.jsx)(n,{variant:`ghost`,iconOnly:g?(0,Z.jsx)(A,{}):(0,Z.jsx)(j,{}),onClick:()=>o(e.id,g?`seen`:`new`),"aria-label":g?`Mark as read`:`Mark as unread`,tooltip:g?`Mark as read`:`Mark as unread`}),_?(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(M,{}),onClick:()=>o(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(N,{}),onClick:()=>s(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,Z.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Z.jsx)(h,{width:18,height:18,style:{color:m.strong}})}),(0,Z.jsx)(c,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:p}),(0,Z.jsx)(F,{tone:`neutral`,className:`shrink-0`,title:q(e.timestamp),children:K(e.timestamp)})]}),(0,Z.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:f===`toolPermission`?(0,Z.jsx)(O,{item:e}):(0,Z.jsx)(w,{item:e})}),v||u?(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[u?(0,Z.jsx)(n,{variant:`outlined`,fullWidth:!0,leftIcon:(0,Z.jsx)(d,{className:`size-4`}),onClick:u,children:`View schedule`}):null,v?(0,Z.jsx)(n,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:`Go to Conversation`}):null]}):null]}):(0,Z.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-xl)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Z.jsx)(h,{width:14,height:14,style:{color:m.strong}})}),(0,Z.jsx)(c,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:p}),v?(0,Z.jsx)(n,{variant:`outlined`,onClick:()=>a(e.conversationId),children:`Go to Convo`}):null,(0,Z.jsx)(n,{variant:`outlined`,iconOnly:(0,Z.jsx)(P,{}),onClick:i,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,Z.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:[f===`toolPermission`?(0,Z.jsx)(O,{item:e}):(0,Z.jsx)(w,{item:e}),(0,Z.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,Z.jsx)(F,{tone:`neutral`,title:q(e.timestamp),children:K(e.timestamp)})})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-[var(--app-spacing-sm)] border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(`div`,{children:u?(0,Z.jsx)(n,{variant:`outlined`,leftIcon:(0,Z.jsx)(d,{className:`size-4`}),onClick:u,children:`View schedule`}):null}),(0,Z.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:_?(0,Z.jsx)(n,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:`Restore`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(n,{variant:`outlined`,onClick:()=>o(e.id,g?`seen`:`new`),children:g?`Mark as read`:`Mark as unread`}),(0,Z.jsx)(n,{variant:`primary`,onClick:()=>s(e.id),children:`Dismiss`})]})})]})]})}var se={today:`Today`,yesterday:`Yesterday`,older:`Older`},ce=10080*60*1e3;function Q(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>ce}function $({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:l,onArchivedOpenChange:d,dismissedOpen:m,onDismissedOpenChange:h}){let[g,v]=(0,X.useState)(null),[y]=(0,X.useState)(()=>Date.now()),w=T(e.filter(e=>e.status!==`dismissed`)),E=w.filter(e=>!Q(e,y)),O=C(w.filter(e=>Q(e,y))),k=S(E),A=g&&k.includes(g)?g:null;g!==A&&v(A);let j=_(C(D(E,A))),M=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(b,{categories:k,activeFilter:A,onFilterChange:v}),j.size===0?A?(0,Z.jsx)(c,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:`No items match the selected filter.`}):(0,Z.jsx)(ie,{icon:u,title:`No notifications yet`,description:`Updates and activity from your assistant will appear here.`}):[...j.entries()].map(([e,a])=>(0,Z.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,Z.jsx)(c,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:se[e]}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:a.map(e=>(0,Z.jsx)(x,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),O.length>0&&(0,Z.jsx)(p.Root,{type:`single`,collapsible:!0,value:l?`archived-read`:``,onValueChange:e=>d?.(e===`archived-read`),children:(0,Z.jsxs)(p.Item,{value:`archived-read`,children:[(0,Z.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Z.jsx)(f,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Z.jsxs)(`span`,{children:[`Earlier (`,O.length,`)`]})]}),(0,Z.jsx)(p.Content,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:O.map(e=>(0,Z.jsx)(x,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),M.length>0&&(0,Z.jsx)(p.Root,{type:`single`,collapsible:!0,value:m?`dismissed`:``,onValueChange:e=>h?.(e===`dismissed`),children:(0,Z.jsxs)(p.Item,{value:`dismissed`,children:[(0,Z.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Z.jsx)(f,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Z.jsxs)(`span`,{children:[`Dismissed (`,M.length,`)`]})]}),(0,Z.jsx)(p.Content,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:M.map(e=>(0,Z.jsx)(x,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function le(){return(0,Z.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:`Activity`})}function ue(e){let t=a(),n=(0,X.useMemo)(()=>z({path:{assistant_id:e??``}}),[e]),r=o({...R({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,X.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function de(){return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,Z.jsx)(I,{className:`h-7 w-64 rounded-md`}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,Z.jsx)(I,{className:`h-16 rounded-md`},t))})]})}function fe({assistantId:e,validConversationIds:t,onOpenConversation:r,onViewSchedule:i,initialFeedItemId:a,navigationKey:s,onInitialFeedItemConsumed:c}){let l=V(),u=E(e);ue(e);let{data:d}=o(ne(e)),[f,p]=(0,X.useState)(null),[_,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(!1),S=(0,X.useCallback)(e=>{e.status===`new`?(p({...e,status:`seen`}),u.updateStatus.mutate({itemId:e.id,status:`seen`})):p(e)},[u.updateStatus]),C=(0,X.useCallback)(()=>{p(null)},[]),w=(0,X.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`dismissed`}),f?.id===e&&p(null)},[u.updateStatus,f?.id]),T=(0,X.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`seen`}),p(t=>t?.id===e?{...t,status:`seen`}:t)},[u.updateStatus]),D=(0,X.useCallback)((e,t)=>{u.updateStatus.mutate({itemId:e,status:t}),p(n=>n?.id===e?{...n,status:t}:n)},[u.updateStatus]),O=(0,X.useCallback)(e=>{p(null),r(e)},[r]),A=u.data?.items??[],[j,M]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!a||s===j||u.isLoading)return;M(s??null);let e=A.find(e=>e.id===a);e&&e.status!==`dismissed`&&S(e),c?.()},[a,s,j,u.isLoading,A,S,c]);let N=k(A),P=N.filter(e=>e.status===`new`).length,F=N.length,I=m(),L=(0,X.useCallback)(()=>{u.markAll.mutate(v(N))},[u.markAll,N]),R=(0,X.useCallback)(()=>{u.markAll.mutate(h(N)),p(null)},[u.markAll,N]),z=g(f),B=z!=null&&(d??[]).some(e=>e.id===z),H=f?(0,Z.jsx)(oe,{item:f,isMobile:l,validConversationIds:t,onClose:C,onGoToThread:O,onUpdateStatus:D,onDismiss:w,onViewSchedule:B?()=>i(z):void 0}):null,U=(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[u.isError?(0,Z.jsxs)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:[`Couldn't load home feed`,u.error instanceof Error?`: ${u.error.message}`:`.`]}):null,I&&(P>0||F>0)&&(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-[var(--app-spacing-sm)]`,children:[P>0&&(0,Z.jsx)(n,{variant:`ghost`,size:`compact`,onClick:L,disabled:u.markAll.isPending,children:`Mark all as read`}),F>0&&(0,Z.jsx)(n,{variant:`ghost`,size:`compact`,onClick:R,disabled:u.markAll.isPending,children:`Clear all`})]}),(0,Z.jsx)($,{items:A,selectedItemId:f?.id,validConversationIds:t,onSelectItem:S,onDismissItem:w,onRestoreItem:T,onToggleRead:D,onGoToThread:O,archivedOpen:_,onArchivedOpenChange:y,dismissedOpen:b,onDismissedOpenChange:x})]}),W=H&&!l?(0,Z.jsx)(Y,{storageKey:`homeDetailDrawerWidth`,detailKey:f?.id,section:U,detail:H}):U,G=u.isLoading?(0,Z.jsx)(de,{}):(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[l?null:(0,Z.jsx)(le,{}),W]});return H&&l?(0,Z.jsx)(J,{children:H}):(0,Z.jsx)(re,{children:G})}function pe(){let e=r(),t=i(),n=te(),a=t.state?.feedItemId??null,o=(0,X.useCallback)(()=>{e(t.pathname+t.search,{replace:!0})},[e,t.pathname,t.search]),s=U.use.setTopBarCenter(),l=V(),{conversations:u}=G(n),{conversations:d}=ee(n,!0),{conversations:f}=W(n,!0),p=(0,X.useMemo)(()=>new Set(H(u,d,f).map(e=>e.conversationId)),[u,d,f]);return(0,X.useEffect)(()=>(s(l?(0,Z.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{s(null)}),[l,s]),(0,Z.jsx)(fe,{assistantId:n,validConversationIds:p,initialFeedItemId:a,navigationKey:t.key,onInitialFeedItemConsumed:o,onOpenConversation:t=>B(e,t),onViewSchedule:t=>e(L.schedules.detail(t))})}export{pe as HomePageRoute};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./arrow-left-BikDV6F2.js";import{t as u}from"./bell-aW0w-ROt.js";import{t as d}from"./calendar-CTyC1v1L.js";import{t as f}from"./chevron-right-DBGgpEiZ.js";import{o as p}from"./src-DyqTPMO2.js";import{_ as m,a as h,c as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,r as E,s as D,t as O,u as k,v as A}from"./home-tool-permission-card-Do3YeiVC.js";import{t as j}from"./mail-CYjppw70.js";import{t as M}from"./rotate-ccw-Dcfo4EC8.js";import{t as N}from"./trash-2-BKXSi5Tj.js";import{t as P}from"./x-338EsJDP.js";import{t as F}from"./tag-DeMzQvCo.js";import{t as I}from"./skeleton-CJJwPIil.js";import{d as L}from"./routes-iipg2wkc.js";import{H as R,U as z}from"./react-query.gen-DxjuNs-5.js";import{t as B}from"./conversation-navigation-gR_RLe1J.js";import{n as V}from"./use-is-mobile-BP8UePsY.js";import{a as H}from"./conversation-cache-BmhpM_P6.js";import{t as U}from"./chat-layout-slots-store-N_sabTbs.js";import{a as W,i as G,n as ee}from"./conversation-queries-Bx_JApUN.js";import{t as te}from"./use-active-assistant-id-BvHP5Ojg.js";import{s as ne}from"./schedules-kVuR00ra.js";import{i as K,r as q}from"./format-date-Bi9Bsv-w.js";import{t as re}from"./page-shell-Tpt9AIL2.js";import{n as J,t as Y}from"./detail-drawer-s-zfqqMy.js";import{t as ie}from"./page-empty-state-DtjiuvvO.js";var X=e(t(),1),Z=s();function ae(e){return e.title?e.title:e.category?e.category.charAt(0).toUpperCase()+e.category.slice(1):`Notification`}function oe({item:e,isMobile:t,validConversationIds:r,onClose:i,onGoToThread:a,onUpdateStatus:o,onDismiss:s,onViewSchedule:u}){if(!e)return null;let f=e.detailPanel?.kind,p=ae(e),m=y(e.category),h=m.icon,g=e.status===`new`,_=e.status===`dismissed`,v=!!e.conversationId&&r.has(e.conversationId);return t?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(l,{}),onClick:i,"aria-label":`Back`,tooltip:`Back`}),(0,Z.jsx)(c,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,Z.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,Z.jsx)(n,{variant:`ghost`,iconOnly:g?(0,Z.jsx)(A,{}):(0,Z.jsx)(j,{}),onClick:()=>o(e.id,g?`seen`:`new`),"aria-label":g?`Mark as read`:`Mark as unread`,tooltip:g?`Mark as read`:`Mark as unread`}),_?(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(M,{}),onClick:()=>o(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(N,{}),onClick:()=>s(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,Z.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Z.jsx)(h,{width:18,height:18,style:{color:m.strong}})}),(0,Z.jsx)(c,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:p}),(0,Z.jsx)(F,{tone:`neutral`,className:`shrink-0`,title:q(e.timestamp),children:K(e.timestamp)})]}),(0,Z.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:f===`toolPermission`?(0,Z.jsx)(O,{item:e}):(0,Z.jsx)(w,{item:e})}),v||u?(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[u?(0,Z.jsx)(n,{variant:`outlined`,fullWidth:!0,leftIcon:(0,Z.jsx)(d,{className:`size-4`}),onClick:u,children:`View schedule`}):null,v?(0,Z.jsx)(n,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:`Go to Conversation`}):null]}):null]}):(0,Z.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-xl)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Z.jsx)(h,{width:14,height:14,style:{color:m.strong}})}),(0,Z.jsx)(c,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:p}),v?(0,Z.jsx)(n,{variant:`outlined`,onClick:()=>a(e.conversationId),children:`Go to Convo`}):null,(0,Z.jsx)(n,{variant:`outlined`,iconOnly:(0,Z.jsx)(P,{}),onClick:i,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,Z.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:[f===`toolPermission`?(0,Z.jsx)(O,{item:e}):(0,Z.jsx)(w,{item:e}),(0,Z.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,Z.jsx)(F,{tone:`neutral`,title:q(e.timestamp),children:K(e.timestamp)})})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-[var(--app-spacing-sm)] border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(`div`,{children:u?(0,Z.jsx)(n,{variant:`outlined`,leftIcon:(0,Z.jsx)(d,{className:`size-4`}),onClick:u,children:`View schedule`}):null}),(0,Z.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:_?(0,Z.jsx)(n,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:`Restore`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(n,{variant:`outlined`,onClick:()=>o(e.id,g?`seen`:`new`),children:g?`Mark as read`:`Mark as unread`}),(0,Z.jsx)(n,{variant:`primary`,onClick:()=>s(e.id),children:`Dismiss`})]})})]})]})}var se={today:`Today`,yesterday:`Yesterday`,older:`Older`},ce=10080*60*1e3;function Q(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>ce}function $({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:l,onArchivedOpenChange:d,dismissedOpen:m,onDismissedOpenChange:h}){let[g,v]=(0,X.useState)(null),[y]=(0,X.useState)(()=>Date.now()),w=T(e.filter(e=>e.status!==`dismissed`)),E=w.filter(e=>!Q(e,y)),O=C(w.filter(e=>Q(e,y))),k=S(E),A=g&&k.includes(g)?g:null;g!==A&&v(A);let j=_(C(D(E,A))),M=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(b,{categories:k,activeFilter:A,onFilterChange:v}),j.size===0?A?(0,Z.jsx)(c,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:`No items match the selected filter.`}):(0,Z.jsx)(ie,{icon:u,title:`No notifications yet`,description:`Updates and activity from your assistant will appear here.`}):[...j.entries()].map(([e,a])=>(0,Z.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,Z.jsx)(c,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:se[e]}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:a.map(e=>(0,Z.jsx)(x,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),O.length>0&&(0,Z.jsx)(p.Root,{type:`single`,collapsible:!0,value:l?`archived-read`:``,onValueChange:e=>d?.(e===`archived-read`),children:(0,Z.jsxs)(p.Item,{value:`archived-read`,children:[(0,Z.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Z.jsx)(f,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Z.jsxs)(`span`,{children:[`Earlier (`,O.length,`)`]})]}),(0,Z.jsx)(p.Content,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:O.map(e=>(0,Z.jsx)(x,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),M.length>0&&(0,Z.jsx)(p.Root,{type:`single`,collapsible:!0,value:m?`dismissed`:``,onValueChange:e=>h?.(e===`dismissed`),children:(0,Z.jsxs)(p.Item,{value:`dismissed`,children:[(0,Z.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Z.jsx)(f,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Z.jsxs)(`span`,{children:[`Dismissed (`,M.length,`)`]})]}),(0,Z.jsx)(p.Content,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:M.map(e=>(0,Z.jsx)(x,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function le(){return(0,Z.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:`Activity`})}function ue(e){let t=a(),n=(0,X.useMemo)(()=>z({path:{assistant_id:e??``}}),[e]),r=o({...R({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,X.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function de(){return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,Z.jsx)(I,{className:`h-7 w-64 rounded-md`}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,Z.jsx)(I,{className:`h-16 rounded-md`},t))})]})}function fe({assistantId:e,validConversationIds:t,onOpenConversation:r,onViewSchedule:i,initialFeedItemId:a,navigationKey:s,onInitialFeedItemConsumed:c}){let l=V(),u=E(e);ue(e);let{data:d}=o(ne(e)),[f,p]=(0,X.useState)(null),[_,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(!1),S=(0,X.useCallback)(e=>{e.status===`new`?(p({...e,status:`seen`}),u.updateStatus.mutate({itemId:e.id,status:`seen`})):p(e)},[u.updateStatus]),C=(0,X.useCallback)(()=>{p(null)},[]),w=(0,X.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`dismissed`}),f?.id===e&&p(null)},[u.updateStatus,f?.id]),T=(0,X.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`seen`}),p(t=>t?.id===e?{...t,status:`seen`}:t)},[u.updateStatus]),D=(0,X.useCallback)((e,t)=>{u.updateStatus.mutate({itemId:e,status:t}),p(n=>n?.id===e?{...n,status:t}:n)},[u.updateStatus]),O=(0,X.useCallback)(e=>{p(null),r(e)},[r]),A=u.data?.items??[],[j,M]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!a||s===j||u.isLoading)return;M(s??null);let e=A.find(e=>e.id===a);e&&e.status!==`dismissed`&&S(e),c?.()},[a,s,j,u.isLoading,A,S,c]);let N=k(A),P=N.filter(e=>e.status===`new`).length,F=N.length,I=m(),L=(0,X.useCallback)(()=>{u.markAll.mutate(v(N))},[u.markAll,N]),R=(0,X.useCallback)(()=>{u.markAll.mutate(h(N)),p(null)},[u.markAll,N]),z=g(f),B=z!=null&&(d??[]).some(e=>e.id===z),H=f?(0,Z.jsx)(oe,{item:f,isMobile:l,validConversationIds:t,onClose:C,onGoToThread:O,onUpdateStatus:D,onDismiss:w,onViewSchedule:B?()=>i(z):void 0}):null,U=(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[u.isError?(0,Z.jsxs)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:[`Couldn't load home feed`,u.error instanceof Error?`: ${u.error.message}`:`.`]}):null,I&&(P>0||F>0)&&(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-[var(--app-spacing-sm)]`,children:[P>0&&(0,Z.jsx)(n,{variant:`ghost`,size:`compact`,onClick:L,disabled:u.markAll.isPending,children:`Mark all as read`}),F>0&&(0,Z.jsx)(n,{variant:`ghost`,size:`compact`,onClick:R,disabled:u.markAll.isPending,children:`Clear all`})]}),(0,Z.jsx)($,{items:A,selectedItemId:f?.id,validConversationIds:t,onSelectItem:S,onDismissItem:w,onRestoreItem:T,onToggleRead:D,onGoToThread:O,archivedOpen:_,onArchivedOpenChange:y,dismissedOpen:b,onDismissedOpenChange:x})]}),W=H&&!l?(0,Z.jsx)(Y,{storageKey:`homeDetailDrawerWidth`,detailKey:f?.id,section:U,detail:H}):U,G=u.isLoading?(0,Z.jsx)(de,{}):(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[l?null:(0,Z.jsx)(le,{}),W]});return H&&l?(0,Z.jsx)(J,{children:H}):(0,Z.jsx)(re,{children:G})}function pe(){let e=r(),t=i(),n=te(),a=t.state?.feedItemId??null,o=(0,X.useCallback)(()=>{e(t.pathname+t.search,{replace:!0})},[e,t.pathname,t.search]),s=U.use.setTopBarCenter(),l=V(),{conversations:u}=G(n),{conversations:d}=ee(n,!0),{conversations:f}=W(n,!0),p=(0,X.useMemo)(()=>new Set(H(u,d,f).map(e=>e.conversationId)),[u,d,f]);return(0,X.useEffect)(()=>(s(l?(0,Z.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{s(null)}),[l,s]),(0,Z.jsx)(fe,{assistantId:n,validConversationIds:p,initialFeedItemId:a,navigationKey:t.key,onInitialFeedItemConsumed:o,onOpenConversation:t=>B(e,t),onViewSchedule:t=>e(L.schedules.detail(t))})}export{pe as HomePageRoute};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-DFWryB3N.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./createLucideIcon-C1mdGPB9.js";import{t as u}from"./bell-aW0w-ROt.js";import{t as d}from"./clock-B8umTTHk.js";import{B as f,S as p,T as m,b as h,g}from"./src-DyqTPMO2.js";import{t as _}from"./list-O_53kvwx.js";import{t as v}from"./mail-CYjppw70.js";import{t as ee}from"./message-square-BjBDqFUX.js";import{t as te}from"./rotate-ccw-Dcfo4EC8.js";import{t as ne}from"./settings-751LDGs_.js";import{t as re}from"./shield-check-zaoUwOKj.js";import{t as ie}from"./trash-2-BKXSi5Tj.js";import{t as ae}from"./tag-DeMzQvCo.js";import{i as oe}from"./utils-CVoSWh7U.js";import{Bt as se,Lt as y,Rt as b,zt as ce}from"./sdk.gen-CBPZ2IdN.js";import{B as le,V as x}from"./react-query.gen-DxjuNs-5.js";import{t as S}from"./use-bus-subscription-0lId9jya.js";import{t as ue}from"./native-anchor-CpFd0dIc.js";import{i as de}from"./format-date-Bi9Bsv-w.js";var C=l(`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`}]]),fe=`0.10.5`;function pe(){return oe(fe)}var w=e(t(),1),T=o(),E={security:{icon:re,strong:`var(--feed-nudge-strong)`,weak:`var(--feed-nudge-weak)`},email:{icon:v,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`},scheduling:{icon:d,strong:`var(--feed-thread-strong)`,weak:`var(--feed-thread-weak)`},background:{icon:ne,strong:`var(--system-info-strong)`,weak:`var(--system-info-weak)`},system:{icon:u,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`}};function D(e){return e&&E[e]?E[e]:E.system}var me=[`security`,`email`,`scheduling`,`background`,`system`],O=`all`;function k({categories:e,activeFilter:t,onFilterChange:n}){let r=me.filter(t=>e.includes(t));if(r.length<=1)return null;let i=[{value:O,label:`All`,icon:(0,T.jsx)(_,{className:`h-4 w-4`})},...r.map(e=>{let t=E[e].icon;return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),icon:(0,T.jsx)(t,{className:`h-4 w-4`})}})];return(0,T.jsx)(f,{ariaLabel:`Filter notifications`,value:t??O,onChange:e=>n(e===O?null:e),items:i,className:`self-start !w-auto [&>*]:!flex-none`})}var A=`system`;function j({category:e}){let t=D(e),n=e??A;return(0,T.jsx)(ae,{className:`bg-[var(--feed-chip-weak)] uppercase tracking-wide leading-none`,style:{"--feed-chip-weak":t.weak},children:n.charAt(0).toUpperCase()+n.slice(1)})}var M=12,N=280,P=4096,F=P*4,I=`.,;:!?-…`,L=/(?:…|\.{3,})$/,R=new Set([`break`,`delete`,`emphasis`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`link`,`linkReference`,`strong`,`text`]),z=p().use(m).use(g);function B(e){return I.includes(e)}function he(e){let t=e.length;for(;t>0&&B(e[t-1]);)--t;return e.slice(0,t)}function ge(e){if(e.length<=P)return V(e);let t=V(e.slice(0,P));return t.length>0||e.trim().length===0?t:V(e.slice(0,F))}function V(e){return H(z.parse(e)).replace(/\s+/g,` `).trim()}function H(e){switch(e.type){case`code`:case`html`:case`thematicBreak`:case`yaml`:return``;case`inlineCode`:case`text`:return e.value??``;case`break`:return` `;case`delete`:case`emphasis`:case`link`:case`linkReference`:case`strong`:return U(e);case`image`:case`imageReference`:{let t=e.alt??``;return t.trim().length===0?``:t}default:return e.children===void 0?e.value??``:U(e)}}function U(e){let t=``;for(let n of e.children??[]){let e=H(n);e.length!==0&&(t.length>0&&!R.has(n.type)&&(t+=` `),t+=e)}return t}function W(e){let t=[],n=!1;for(let r=0;r<e.length;r+=1){let i=e[r],a=r+1;if(/\s/.test(i)){if(n||t.length===0)continue;n=!0,t.push({char:` `,end:a});continue}n=!1;let o=i.toLowerCase();t.push({char:o.length===1?o:i,end:a})}return t}function G(e){return he(W(e).map(e=>e.char).join(``).trimEnd()).trimEnd()}function _e(e,t){if(t<=0)return e;let n=W(e);return t>n.length?``:e.slice(n[t-1].end)}function ve(e){let t=0;for(;t<e.length;){let n=e[t];if(!/\s/.test(n)&&!B(n))break;t+=1}return e.slice(t)}function K(e){return e!==void 0&&/[\p{L}\p{M}\p{N}]/u.test(e)}function q(e,t){return e.startsWith(t)?!K(e[t.length]):!1}function J(e,t){let n=t;for(;n>0&&K(e[n-1]);)--n;return n}function ye(e){if(e.length<=N)return e;let t=e.slice(0,N),n=K(e[N])?J(t,t.length):t.length,r=t.slice(0,n).trimEnd();return r.length===0?t:r}function Y(e){return ye(ge(e))}function be(e,t){let n=Y(t);if(n.length===0)return null;let r=G(n),i=G(e);if(r===i)return null;let a=L.test(e.trimEnd());if(!(a?r.startsWith(i):q(r,i)))return(a?i.startsWith(r):q(i,r))?null:n;let o=ve(_e(n,a&&K(r[i.length])?J(r,i.length):i.length));return o.length<M?null:o}function xe(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 Se(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 Ce(e,t){return t===null?e:e.filter(e=>(e.category??`system`)===t)}function X(e){return e.filter(e=>e.urgency!==`high`&&e.urgency!==`critical`)}function we(e){return X(e.filter(e=>e.status!==`dismissed`))}function Te(e){let t=e?.metadata?.scheduleId;return typeof t==`string`&&t.length>0?t:null}var Ee=`Notification`;function Z(e){let t=e.title??Y(e.summary);return t.length>0?t:Ee}function De(e){return{from:[`new`],to:`seen`,ids:e.filter(e=>e.status===`new`).map(e=>e.id)}}function Oe(e){return{from:[`new`,`seen`,`acted_on`],to:`dismissed`,ids:e.map(e=>e.id)}}function Q(e){let t=new Set;for(let n of e)t.add(n.category??`system`);return[...t]}function $({label:e,onClick:t,className:r,children:i}){return(0,T.jsx)(n,{content:e,children:(0,T.jsx)(`button`,{type:`button`,"aria-label":e,onClick:e=>{e.stopPropagation(),t()},className:s(`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md`,`text-[var(--content-secondary)] transition-colors`,`hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,r),children:i})})}var ke=new Set([`Conversation`,`Other`]),Ae={comfortable:{card:`p-[var(--app-spacing-md)]`,stack:`gap-[var(--app-spacing-xs)]`,titleVariant:`title-small`,clamp:`line-clamp-2`,showsMetaRow:!0},compact:{card:`p-[var(--app-spacing-sm)]`,stack:`gap-[var(--app-spacing-xxs)]`,titleVariant:`body-medium-default`,clamp:`line-clamp-1`,showsMetaRow:!1}};function je({item:e,isActive:t=!1,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:a,onGoToThread:o,trailingAction:l=`dismiss`,density:u=`comfortable`}){let d=e.status===`new`,f=l===`restore`,p=Ae[u],m=e.sourceLabel&&!ke.has(e.sourceLabel)?e.sourceLabel:null,h=(0,w.useMemo)(()=>Z({title:e.title,summary:e.summary}),[e.title,e.summary]),g=(0,w.useMemo)(()=>be(h,e.summary),[h,e.summary]),_=(0,T.jsx)(c,{"data-testid":`home-recap-row-title`,variant:p.titleVariant,className:s(`leading-snug text-[var(--content-default)]`,p.showsMetaRow?p.clamp:`min-w-0 flex-1 truncate`),children:h});return(0,T.jsxs)(`div`,{className:s(`group relative flex w-full items-start gap-[var(--app-spacing-sm)]`,`rounded-[var(--radius-lg)] border border-[var(--border-base)]`,`transition-[background-color,opacity] duration-150`,p.card,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-overlay)] hover:bg-[var(--surface-hover)]`,!d&&!t&&`opacity-70`),children:[(0,T.jsx)(`button`,{type:`button`,"aria-label":h,onClick:()=>r(e),className:`absolute inset-0 w-full cursor-pointer rounded-[var(--radius-lg)]`}),(0,T.jsx)(`div`,{"data-testid":`home-recap-row-dot-gutter`,className:`pointer-events-none relative flex h-8 w-2 shrink-0 items-center`,children:d&&(0,T.jsx)(`span`,{"data-testid":`home-recap-row-unread-dot`,"aria-hidden":`true`,className:`h-2 w-2 rounded-full bg-[var(--system-mid-strong)]`})}),(0,T.jsxs)(`div`,{className:s(`pointer-events-none relative flex min-w-0 flex-1 flex-col`,p.stack),children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[p.showsMetaRow?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(j,{category:e.category}),m!==null&&(0,T.jsx)(c,{variant:`body-small-default`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:m})]}):_,(0,T.jsxs)(`span`,{className:`ml-auto grid shrink-0 items-center justify-items-end`,children:[(0,T.jsx)(c,{variant:`body-small-default`,className:s(`col-start-1 row-start-1 text-[var(--content-tertiary)]`,`transition-opacity duration-150`,`group-hover:opacity-0 group-focus-within:opacity-0`),children:de(e.timestamp)}),(0,T.jsx)(`span`,{className:s(`col-start-1 row-start-1 flex items-center gap-[var(--app-spacing-sm)]`,`pointer-events-none opacity-0 transition-opacity duration-150`,`group-hover:pointer-events-auto group-hover:opacity-100`,`group-focus-within:pointer-events-auto group-focus-within:opacity-100`),children:f?(0,T.jsxs)($,{label:`Restore`,onClick:()=>i(e.id),className:`w-auto gap-[var(--app-spacing-xs)] px-2`,children:[(0,T.jsx)(te,{width:16,height:16,"aria-hidden":`true`}),(0,T.jsx)(`span`,{className:`text-body-small-default`,children:`Restore`})]}):(0,T.jsxs)(T.Fragment,{children:[a&&(0,T.jsx)($,{label:d?`Mark as read`:`Mark as unread`,onClick:()=>a(e.id,d?`seen`:`new`),children:d?(0,T.jsx)(C,{width:16,height:16}):(0,T.jsx)(v,{width:16,height:16})}),o&&e.conversationId&&(!n||n.has(e.conversationId))&&(0,T.jsx)($,{label:`Go to thread`,onClick:()=>{d&&a&&a(e.id,`seen`),o(e.conversationId)},children:(0,T.jsx)(ee,{width:16,height:16})}),(0,T.jsx)($,{label:`Dismiss`,onClick:()=>i(e.id),children:(0,T.jsx)(ie,{width:16,height:16})})]})})]})]}),p.showsMetaRow&&_,g!==null&&(0,T.jsx)(c,{variant:`body-medium-lighter`,className:s(`leading-normal text-[var(--content-secondary)]`,p.clamp),children:g})]})]})}function Me(e){let t=r(),n=(0,w.useRef)(null),o=(0,w.useRef)(0),s=(0,w.useMemo)(()=>({path:{assistant_id:e??``},query:{timeAwaySeconds:0}}),[e]),c=(0,w.useMemo)(()=>le(s),[s]);S(`app.hidden`,()=>{n.current=Date.now()}),S(`app.resume`,({signal:r})=>{r!==`online`&&n.current!==null&&(o.current=Math.round((Date.now()-n.current)/1e3),n.current=null,e&&t.invalidateQueries({queryKey:c}))});let l=i({queryKey:c,queryFn:async({signal:t})=>{let{data:n}=await ce({path:{assistant_id:e},query:{timeAwaySeconds:o.current},signal:t,throwOnError:!0});return n},enabled:!!e,staleTime:3e4}),u=a({mutationFn:async({itemId:t,status:n})=>{let{data:r}=await b({path:{assistant_id:e,id:t},body:{status:n},throwOnError:!0});return r},onMutate:async({itemId:e,status:n})=>{await t.cancelQueries({queryKey:c});let r=t.getQueryData(c);return x(t,s,t=>t&&{...t,items:t.items.map(t=>t.id===e?{...t,status:n}:t)}),{previous:r}},onError:(e,n,r)=>{r?.previous&&x(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),d=a({mutationFn:async({itemId:t,actionId:n})=>{let{data:r}=await y({path:{assistant_id:e,id:t,actionId:n},throwOnError:!0});return r},onMutate:async({itemId:e})=>{await t.cancelQueries({queryKey:c});let n=t.getQueryData(c);return x(t,s,t=>t&&{...t,items:t.items.map(t=>t.id===e?{...t,status:`acted_on`}:t)}),{previous:n}},onError:(e,n,r)=>{r?.previous&&x(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),f=a({mutationFn:async({from:t,to:n,ids:r})=>{let{data:i}=await se({path:{assistant_id:e},body:{from:t,to:n,ids:r},throwOnError:!0});return i},onMutate:async({from:e,to:n,ids:r})=>{await t.cancelQueries({queryKey:c});let i=t.getQueryData(c),a=new Set(e),o=r?new Set(r):null;return x(t,s,e=>{if(!e)return e;let t=e.items.map(e=>a.has(e.status)&&e.status!==n&&(!o||o.has(e.id))?{...e,status:n}:e),r=t.filter(e=>e.status===`new`).length;return{...e,items:t,contextBanner:{...e.contextBanner,newCount:r}}}),{previous:i}},onError:(e,n,r)=>{r?.previous&&x(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),p=(0,w.useCallback)(()=>{e&&t.invalidateQueries({queryKey:c})},[e,t,c]);return{...l,updateStatus:u,triggerAction:d,markAll:f,invalidate:p}}var Ne={p:({children:e})=>(0,T.jsx)(`p`,{className:`mb-2 text-body-medium-default last:mb-0`,style:{color:`var(--content-secondary)`},children:e}),strong:({children:e})=>(0,T.jsx)(`strong`,{style:{color:`var(--content-default)`},children:e}),em:({children:e})=>(0,T.jsx)(`em`,{style:{color:`var(--content-default)`},children:e}),a:({href:e,children:t})=>(0,T.jsx)(`a`,{href:e,className:`underline`,style:{color:`var(--content-link)`},target:`_blank`,rel:`noopener noreferrer`,onClick:t=>ue(t,e),children:t}),ul:({children:e})=>(0,T.jsx)(`ul`,{className:`mb-2 list-disc pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),ol:({children:e})=>(0,T.jsx)(`ol`,{className:`mb-2 list-decimal pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),li:({children:e})=>(0,T.jsx)(`li`,{className:`mb-0.5`,children:e}),code:({children:e})=>(0,T.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,T.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,T.jsx)(`h1`,{className:`mb-2 text-title-medium first:mt-0`,style:{color:`var(--content-default)`},children:e}),h2:({children:e})=>(0,T.jsx)(`h2`,{className:`mb-2 text-title-small first:mt-0`,style:{color:`var(--content-default)`},children:e}),h3:({children:e})=>(0,T.jsx)(`h3`,{className:`mb-1 text-body-medium-default first:mt-0`,style:{color:`var(--content-default)`},children:e}),blockquote:({children:e})=>(0,T.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,T.jsx)(`div`,{className:`mb-2 overflow-x-auto`,children:(0,T.jsx)(`table`,{className:`w-full border-collapse text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}),thead:({children:e})=>(0,T.jsx)(`thead`,{style:{backgroundColor:`var(--surface-lift)`},children:e}),tbody:({children:e})=>(0,T.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,T.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:e}),th:({children:e})=>(0,T.jsx)(`th`,{className:`px-2 py-1.5 text-left font-semibold`,style:{color:`var(--content-default)`},children:e}),td:({children:e})=>(0,T.jsx)(`td`,{className:`px-2 py-1.5 align-top`,children:e})};function Pe({content:e,className:t}){return(0,T.jsx)(`div`,{className:s(`text-body-medium-default`,t),children:(0,T.jsx)(h,{remarkPlugins:[g],components:Ne,children:e})})}function Fe({item:e,className:t}){return(0,T.jsx)(Pe,{content:e.summary,className:t})}function Ie(e){switch(e){case`revoked`:case`expired`:return`var(--system-negative-strong)`;case`missing_scopes`:case`missing_token`:case`ping_failed`:return`var(--system-mid-strong)`;default:return`var(--content-disabled)`}}function Le(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function Re({item:e}){let t=e.metadata,n=t?.provider;if(!n)return(0,T.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:e.summary});let r=t?.accountInfo??null,i=t?.status??`unreachable`,a=t?.details??``,o=Array.isArray(t?.missingScopes)?t.missingScopes:[];return(0,T.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,T.jsx)(c,{variant:`title-small`,as:`h3`,children:n}),r?(0,T.jsx)(c,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:r}):null,(0,T.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[(0,T.jsx)(`span`,{className:`inline-block shrink-0 rounded-full`,style:{width:8,height:8,backgroundColor:Ie(i)},"aria-hidden":`true`}),(0,T.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:Le(i)})]}),a?(0,T.jsx)(c,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:a}):null,o.length>0?(0,T.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:[(0,T.jsx)(c,{variant:`body-small-emphasised`,className:`text-[var(--content-secondary)]`,children:`Missing scopes`}),(0,T.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,T.jsx)(`li`,{children:(0,T.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e})},e))})]}):null]})}export{pe as _,Oe as a,Te as c,Se as d,De as f,D as g,k as h,je as i,Q as l,xe as m,Fe as n,X as o,Z as p,Me as r,Ce as s,Re as t,we as u,C as v};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./arrow-left-BikDV6F2.js";import{t as s}from"./check-DSgjgwlo.js";import{t as c}from"./cloud-DqktQX50.js";import{t as l}from"./laptop-BXuIFbVm.js";import{q as u,rt as d}from"./local-mode-BfEgOekp.js";import{t as f}from"./is-electron-BHXrkjI3.js";import{n as p}from"./resolved-assistants-store-BFI9c7ip.js";import{i as m}from"./auth-store-CPVpJ_c7.js";import{t as h}from"./client-feature-flag-store-C8ieIAKe.js";import{d as g,o as _}from"./routes-iipg2wkc.js";import{t as v}from"./use-onboarding-login-BXw1Fcg3.js";import{t as y}from"./onboarding-layout-C534GRct.js";import{i as b}from"./provider-key-C9asexKh.js";import{t as x}from"./radio-card-nav-B1BF1G_V.js";var S=e(t(),1),C=a(),w=`h-5 w-5 shrink-0`;function T(){let e=m(),t=h.use.multiPlatformAssistant(),n=p.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,C.jsx)(c,{className:w}),...!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,C.jsx)(l,{className:w})}]}function E(){let e=r(),[t]=i(),a=t.get(`from`)===`select-assistant`,s=m(),c=f(),l=T(),p=l.find(e=>e.mode===`vellum-cloud`)?.disabled,[h,w]=(0,S.useState)(s&&!p?`vellum-cloud`:`local`);(0,S.useEffect)(()=>{p&&h===`vellum-cloud`&&w(`local`)},[p,h]);let{loading:E,error:O,login:k,cancel:A}=v(`${g.onboarding.hosting}?from=select-assistant`),j=a&&!s&&!c;return(0,C.jsx)(y,{children:(0,C.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${c?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6`} text-[var(--content-default)]`,children:(0,C.jsxs)(`div`,{className:`flex w-full flex-col items-center ${c?``:`flex-1 justify-center`}`,children:[(0,C.jsx)(`h1`,{className:c?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,C.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${c?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[`Choose where you want your assistant to live.`,` `,(0,C.jsx)(`a`,{href:_(g.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`underline transition-colors hover:text-[var(--content-default)]`,children:`Need help deciding?`})]}),O&&(0,C.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:O}),(0,C.jsx)(`div`,{role:`radiogroup`,"aria-label":`Hosting options`,onKeyDown:x,className:`grid w-full ${c?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:l.map(e=>(0,C.jsx)(D,{option:e,selected:h===e.mode,tabStop:h===e.mode,onSelect:()=>{e.disabled||w(e.mode)},loginLabel:E?`Cancel`:`Log in to use`,onLogin:e.disabled&&e.mode===`vellum-cloud`&&j?E?A:()=>void k():void 0},e.mode))}),(0,C.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,C.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:c?void 0:`h-11 text-base`,onClick:()=>{h===`vellum-cloud`?(u(),d(null),b(null),e(g.onboarding.privacy)):e(`${g.onboarding.apiKey}?hosting=${h}`)},children:`Continue`})}),(0,C.jsx)(`div`,{className:`mt-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,C.jsx)(n,{variant:`ghost`,size:`compact`,className:`text-[var(--content-tertiary)]`,leftIcon:(0,C.jsx)(o,{}),onClick:()=>{e(a?g.selectAssistant:g.welcome)},disabled:E,children:`Back`})})]})})})}function D({option:e,selected:t,tabStop:r,onSelect:i,loginLabel:a,onLogin:o}){let c=f(),l=!!e.disabled,u=o?void 0:e.badge;return(0,C.jsxs)(`div`,{role:l?void 0:`radio`,"aria-checked":l?void 0:t,tabIndex:l?void 0:r?0:-1,onClick:l?void 0:i,onKeyDown:l?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:[`group flex w-full items-center border text-left`,c?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-2xl px-5 py-4`,`transition-all duration-200 ease-out`,l?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,l?``:t?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,C.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,c?`h-8 w-8 rounded-lg`:`h-10 w-10 rounded-xl`,t&&!l?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e.icon}),(0,C.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,C.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),u&&(0,C.jsx)(`span`,{className:`rounded-full bg-[var(--surface-active)]/40 px-2 py-0.5 text-[var(--content-tertiary)] ${c?`text-label-medium-default`:`text-body-small-default`}`,children:u})]}),(0,C.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-[var(--content-tertiary)] ${c?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),o&&(0,C.jsx)(n,{variant:`primary`,size:`regular`,className:`shrink-0`,onClick:o,children:a}),!l&&(0,C.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:t&&(0,C.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})}export{E as HostingScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./arrow-left-BikDV6F2.js";import{t as s}from"./check-DSgjgwlo.js";import{t as c}from"./cloud-DqktQX50.js";import{t as l}from"./laptop-BXuIFbVm.js";import{q as u,rt as d}from"./local-mode-BfEgOekp.js";import{t as f}from"./is-electron-BHXrkjI3.js";import{n as p}from"./resolved-assistants-store-BFI9c7ip.js";import{i as m}from"./auth-store-BJdkkmzu.js";import{t as h}from"./client-feature-flag-store-C8ieIAKe.js";import{d as g,o as _}from"./routes-iipg2wkc.js";import{t as v}from"./use-onboarding-login-Cw_9Ydsv.js";import{t as y}from"./onboarding-layout-C534GRct.js";import{i as b}from"./provider-key-BZOH9D9k.js";import{t as x}from"./radio-card-nav-B1BF1G_V.js";var S=e(t(),1),C=a(),w=`h-5 w-5 shrink-0`;function T(){let e=m(),t=h.use.multiPlatformAssistant(),n=p.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,C.jsx)(c,{className:w}),...!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,C.jsx)(l,{className:w})}]}function E(){let e=r(),[t]=i(),a=t.get(`from`)===`select-assistant`,s=m(),c=f(),l=T(),p=l.find(e=>e.mode===`vellum-cloud`)?.disabled,[h,w]=(0,S.useState)(s&&!p?`vellum-cloud`:`local`);(0,S.useEffect)(()=>{p&&h===`vellum-cloud`&&w(`local`)},[p,h]);let{loading:E,error:O,login:k,cancel:A}=v(`${g.onboarding.hosting}?from=select-assistant`),j=a&&!s&&!c;return(0,C.jsx)(y,{children:(0,C.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${c?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6`} text-[var(--content-default)]`,children:(0,C.jsxs)(`div`,{className:`flex w-full flex-col items-center ${c?``:`flex-1 justify-center`}`,children:[(0,C.jsx)(`h1`,{className:c?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,C.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${c?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[`Choose where you want your assistant to live.`,` `,(0,C.jsx)(`a`,{href:_(g.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`underline transition-colors hover:text-[var(--content-default)]`,children:`Need help deciding?`})]}),O&&(0,C.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:O}),(0,C.jsx)(`div`,{role:`radiogroup`,"aria-label":`Hosting options`,onKeyDown:x,className:`grid w-full ${c?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:l.map(e=>(0,C.jsx)(D,{option:e,selected:h===e.mode,tabStop:h===e.mode,onSelect:()=>{e.disabled||w(e.mode)},loginLabel:E?`Cancel`:`Log in to use`,onLogin:e.disabled&&e.mode===`vellum-cloud`&&j?E?A:()=>void k():void 0},e.mode))}),(0,C.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,C.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:c?void 0:`h-11 text-base`,onClick:()=>{h===`vellum-cloud`?(u(),d(null),b(null),e(g.onboarding.privacy)):e(`${g.onboarding.apiKey}?hosting=${h}`)},children:`Continue`})}),(0,C.jsx)(`div`,{className:`mt-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,C.jsx)(n,{variant:`ghost`,size:`compact`,className:`text-[var(--content-tertiary)]`,leftIcon:(0,C.jsx)(o,{}),onClick:()=>{e(a?g.selectAssistant:g.welcome)},disabled:E,children:`Back`})})]})})})}function D({option:e,selected:t,tabStop:r,onSelect:i,loginLabel:a,onLogin:o}){let c=f(),l=!!e.disabled,u=o?void 0:e.badge;return(0,C.jsxs)(`div`,{role:l?void 0:`radio`,"aria-checked":l?void 0:t,tabIndex:l?void 0:r?0:-1,onClick:l?void 0:i,onKeyDown:l?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:[`group flex w-full items-center border text-left`,c?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-2xl px-5 py-4`,`transition-all duration-200 ease-out`,l?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,l?``:t?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,C.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,c?`h-8 w-8 rounded-lg`:`h-10 w-10 rounded-xl`,t&&!l?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e.icon}),(0,C.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,C.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),u&&(0,C.jsx)(`span`,{className:`rounded-full bg-[var(--surface-active)]/40 px-2 py-0.5 text-[var(--content-tertiary)] ${c?`text-label-medium-default`:`text-body-small-default`}`,children:u})]}),(0,C.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-[var(--content-tertiary)] ${c?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),o&&(0,C.jsx)(n,{variant:`primary`,size:`regular`,className:`shrink-0`,onClick:o,children:a}),!l&&(0,C.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:t&&(0,C.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})}export{E as HostingScreen};
@@ -0,0 +1,7 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{t as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./card-q0GJX1HZ.js";import{t as c}from"./createLucideIcon-C1mdGPB9.js";import{t as l}from"./brain-ZiC0HCCF.js";import{n as u,t as d}from"./upload-CZL0kXl9.js";import{t as f}from"./chevron-left-D-pnIQax.js";import{t as p}from"./chevron-right-DBGgpEiZ.js";import"./src-DyqTPMO2.js";import{n as m,t as h}from"./animate-CEUNjqNk.js";import{t as g}from"./folder-open-BBs1-i8r.js";import{t as _}from"./layout-grid-C3h1DMhl.js";import{t as v}from"./pencil-DidiUknI.js";import{t as y}from"./sparkles-B94iNYGJ.js";import{t as b}from"./users-XI0CRYkf.js";import{n as x,t as S}from"./installed-plugins-query-CIcohCho.js";import{t as C}from"./modal-DI63s9MQ.js";import{n as w}from"./toast-BpuLSxyt.js";import{t as T}from"./assistant-identity-store-nE-e8KQw.js";import{m as E}from"./platform-detection-C_TK32Dw.js";import{d as D,r as O}from"./routes-iipg2wkc.js";import{a as k,n as A,o as ee,r as te}from"./use-assistant-avatar-Dd-EU1FC.js";import{A as j,At as M,C as N,St as P,c as F,r as I,yn as L}from"./react-query.gen-DxjuNs-5.js";import{n as R,t as z}from"./get-memory-stats-CgfjHhot.js";import{t as B}from"./plugins-surface-C5i913ST.js";import{t as V}from"./proxy-B4sTDdE4.js";import{t as H}from"./use-reduced-motion-CaGZSwLZ.js";import{r as ne}from"./avatar-tone-D1ZiIRxb.js";import{n as re,t as ie}from"./eye-bbox-hZoek1Q5.js";import{t as ae}from"./chat-avatar-BPhNOZzd.js";import{t as oe}from"./avatar-renderer-CsRuhhXn.js";import{t as U}from"./use-active-assistant-id-BvHP5Ojg.js";import{t as W}from"./schedules-CMISpWUM.js";import{t as G}from"./page-shell-Tpt9AIL2.js";import{a as se,o as K,r as ce,s as le}from"./latest-assistant-text-Daw8nrLO.js";import{a as ue,i as de,n as fe,r as pe,s as me,t as he}from"./use-assistant-identity-details-DqiKjphK.js";var ge=c(`radio`,[[`path`,{d:`M16.247 7.761a6 6 0 0 1 0 8.478`,key:`1fwjs5`}],[`path`,{d:`M19.075 4.933a10 10 0 0 1 0 14.134`,key:`ehdyv1`}],[`path`,{d:`M4.925 19.067a10 10 0 0 1 0-14.134`,key:`1q22gi`}],[`path`,{d:`M7.753 16.239a6 6 0 0 1 0-8.478`,key:`r2q7qm`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),q=e(t(),1),J=o();function Y(e,t,n){return n===`forward`?(e+1)%t:(e-1+t)%t}function _e({open:e,onClose:t,assistantId:r,components:i,traits:a,customImageUrl:o,onSaveCharacter:s,onUploadImage:c,assistantName:l,onRenameSubmit:u,isRenaming:f=!1}){let p=(0,q.useRef)(null),[h,g]=(0,q.useState)(null),[_,v]=(0,q.useState)(!1),y=i??h,[b,x]=(0,q.useState)(0),[S,w]=(0,q.useState)(0),[T,E]=(0,q.useState)(0),[D,O]=(0,q.useState)(`character`),[A,j]=(0,q.useState)(null),[M,N]=(0,q.useState)(!1),[P,F]=(0,q.useState)(!1),[I,L]=(0,q.useState)(l??``),R=A??o,z=!!R;(0,q.useEffect)(()=>{e&&L(l??``)},[e,l]);let B=(0,q.useRef)(!1);(0,q.useEffect)(()=>{e&&!B.current&&O(o?`custom`:`character`),B.current=e},[e,o]),(0,q.useEffect)(()=>{if(e)if(y&&a){let e=y.bodyShapes.findIndex(e=>e.id===a.bodyShape),t=y.eyeStyles.findIndex(e=>e.id===a.eyeStyle),n=y.colors.findIndex(e=>e.id===a.color);x(e>=0?e:0),w(t>=0?t:0),E(n>=0?n:0)}else x(0),w(0),E(0)},[e,y,a]),(0,q.useEffect)(()=>{if(!e||y||_)return;let t=!1;return v(!0),te(r).then(e=>{t||(g(e),v(!1))}),()=>{t=!0}},[e,y,_,r]),(0,q.useEffect)(()=>{if(A)return()=>{URL.revokeObjectURL(A)}},[A]),(0,q.useEffect)(()=>{e||j(null)},[e]);let V=I.trim(),H=!!u&&V.length>0&&V!==(l??``),ne=(0,q.useCallback)(()=>{y&&(O(`character`),x(Math.floor(Math.random()*y.bodyShapes.length)),w(Math.floor(Math.random()*y.eyeStyles.length)),E(Math.floor(Math.random()*y.colors.length)))},[y]),re=(0,q.useCallback)(()=>{p.current?.click()},[]),ie=(0,q.useCallback)(async e=>{let t=e.target.files?.[0];if(!t)return;F(!0);let n=await ee(r,t);F(!1),n&&(c(),j(URL.createObjectURL(t)),O(`custom`)),p.current&&(p.current.value=``)},[r,c]),ae=(0,q.useCallback)(async e=>{if(e.preventDefault(),!(M||f)){if(H&&u&&u(V),y&&D===`character`){let e={bodyShape:y.bodyShapes[b].id,eyeStyle:y.eyeStyles[S].id,color:y.colors[T].id};N(!0);try{await k(r,e),j(null),s(e)}finally{N(!1)}}t()}},[M,f,H,u,V,y,D,b,S,T,r,s,t]),U=y?.bodyShapes[b],W=y?.eyeStyles[S],G=y?.colors[T],se=D===`custom`&&z,K=l!==void 0&&u?(0,J.jsx)(ve,{value:I,onChange:L,disabled:f}):null;return(0,J.jsx)(C.Root,{open:e,onOpenChange:e=>!e&&t(),children:(0,J.jsxs)(C.Content,{size:`sm`,children:[(0,J.jsx)(C.Header,{children:(0,J.jsx)(C.Title,{children:`Update Avatar`})}),(0,J.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col`,onSubmit:ae,children:[(0,J.jsx)(C.Body,{className:`space-y-4`,children:se?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex justify-center`,children:(0,J.jsx)(`div`,{className:`rounded-2xl bg-[var(--surface-sunken)] p-6`,children:(0,J.jsx)(`img`,{src:R,alt:`Uploaded avatar`,className:`h-40 w-40 rounded-xl object-cover`})})}),(0,J.jsxs)(`div`,{className:`space-y-3`,children:[K,(0,J.jsx)(ye,{label:`Use a character instead`,description:`Pick from our built-in avatars`,onClick:()=>O(`character`),thumbnail:y&&U&&W&&G?(0,J.jsx)(oe,{components:y,bodyShapeId:U.id,eyeStyleId:W.id,colorId:G.id,size:32}):(0,J.jsx)(m,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})]})]}):y?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex justify-center`,children:(0,J.jsx)(`div`,{className:`rounded-2xl bg-[var(--surface-sunken)] p-6`,children:(0,J.jsx)(oe,{components:y,bodyShapeId:U.id,eyeStyleId:W.id,colorId:G.id,size:160})})}),(0,J.jsxs)(`div`,{className:`space-y-3`,children:[K,(0,J.jsx)(be,{label:`Body`,value:U.id,onPrev:()=>x(Y(b,y.bodyShapes.length,`backward`)),onNext:()=>x(Y(b,y.bodyShapes.length,`forward`))}),(0,J.jsx)(be,{label:`Eyes`,value:W.id,onPrev:()=>w(Y(S,y.eyeStyles.length,`backward`)),onNext:()=>w(Y(S,y.eyeStyles.length,`forward`))}),(0,J.jsx)(be,{label:`Color`,value:G.id,colorHex:G.hex,onPrev:()=>E(Y(T,y.colors.length,`backward`)),onNext:()=>E(Y(T,y.colors.length,`forward`))})]}),z&&(0,J.jsx)(ye,{label:`Keep your uploaded image`,description:`Saving the character replaces it`,onClick:()=>O(`custom`),thumbnail:(0,J.jsx)(`img`,{src:R,alt:``,className:`h-8 w-8 rounded-md object-cover`})})]}):(0,J.jsxs)(J.Fragment,{children:[K,_?(0,J.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,J.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-element)] border-t-[var(--content-tertiary)]`})}):(0,J.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.`})]})}),(0,J.jsxs)(C.Footer,{className:`justify-between`,children:[(0,J.jsxs)(`div`,{className:`flex gap-2`,children:[(0,J.jsx)(n,{type:`button`,variant:`outlined`,iconOnly:(0,J.jsx)(m,{}),"aria-label":`Randomize`,tooltip:`Randomize`,onClick:ne,disabled:!y}),(0,J.jsx)(n,{type:`button`,variant:`outlined`,iconOnly:(0,J.jsx)(d,{}),"aria-label":`Upload image`,tooltip:`Upload image`,onClick:re,disabled:P})]}),(0,J.jsx)(n,{type:`submit`,variant:`primary`,disabled:M||f||P,children:M||f?`Saving…`:`Save`})]})]}),(0,J.jsx)(`input`,{ref:p,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif`,className:`hidden`,onChange:ie})]})})}function ve({value:e,onChange:t,disabled:n}){return(0,J.jsxs)(`label`,{className:`flex items-center justify-between gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3 py-2`,children:[(0,J.jsx)(`span`,{className:`text-body-small-default uppercase tracking-wider text-[var(--content-quiet)]`,children:`Name`}),(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(`div`,{className:`flex min-w-[80px] items-center justify-center`,children:(0,J.jsx)(`input`,{value:e,onChange:e=>t(e.target.value),disabled:n,maxLength:40,size:8,placeholder:`Name`,"aria-label":`Name`,className:`h-7 min-w-0 field-sizing-content bg-transparent text-center text-body-medium-default text-[var(--content-strong)] outline-none placeholder:text-[var(--content-tertiary)] disabled:cursor-not-allowed disabled:opacity-60`})}),(0,J.jsx)(`span`,{"aria-hidden":!0,className:`h-7 w-7 shrink-0`})]})]})}function ye({label:e,description:t,thumbnail:n,onClick:r}){return(0,J.jsxs)(`button`,{type:`button`,onClick:r,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)]`,children:[(0,J.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded-md bg-[var(--surface-sunken)]`,children:n}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`span`,{className:`block truncate text-body-medium-default text-[var(--content-strong)]`,children:e}),(0,J.jsx)(`span`,{className:`block truncate text-body-small-default text-[var(--content-quiet)]`,children:t})]}),(0,J.jsx)(p,{className:`h-4 w-4 shrink-0 text-[var(--content-quiet)]`})]})}function be({label:e,value:t,colorHex:n,onPrev:r,onNext:i}){return(0,J.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,J.jsx)(`span`,{className:`text-body-small-default uppercase tracking-wider text-[var(--content-quiet)]`,children:e}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Previous ${e.toLowerCase()}`,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,J.jsx)(f,{className:`h-4 w-4`})}),(0,J.jsxs)(`div`,{className:`flex min-w-[80px] items-center justify-center gap-2`,children:[n&&(0,J.jsx)(`div`,{className:`h-4 w-4 rounded-full border border-[var(--border-element)]`,style:{backgroundColor:n}}),(0,J.jsx)(`span`,{className:`text-body-medium-default capitalize text-[var(--content-strong)]`,children:t})]}),(0,J.jsx)(`button`,{type:`button`,onClick:i,"aria-label":`Next ${e.toLowerCase()}`,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,J.jsx)(p,{className:`h-4 w-4`})})]})]})}function xe(e){let t=e.trim();return`<system-message>
2
+ The user renamed you: your name is now ${t}.
3
+
4
+ Update IDENTITY.md so its name line reads exactly \`- **Name:** ${t}\`. This is a rename only — keep everything else in IDENTITY.md and SOUL.md exactly as it is, and do not touch users/ (that is your user's profile, not your identity). If your name appears elsewhere in those files, update those mentions to ${t} too.
5
+
6
+ Reply with a single short sentence acknowledging your new name.
7
+ </system-message>`}async function Se(e,t){return pe({assistantId:e,content:xe(t),title:`Updating name`,context:`identity_overview_rename`})}var Ce=6e4,we=3;function X(e,t,n){return e===1?t:n}function Te(e,{supportsPlugins:t,isNativeMobile:n}){let r={assistant_id:e},i={staleTime:Ce,retry:!1,enabled:!0},o=a({...M({path:r,query:{kind:`installed`}}),select:e=>e.skills.length,...i}),s=a({...S(e),select:e=>e.plugins.length,enabled:t}),c=a({...I({path:r}),select:e=>e.apps.length,...i}),l=a({...j({path:r}),select:e=>e.documents.length,...i}),u=a({...L({path:r}),select:e=>e.entries.length,...i,enabled:!n}),d=a({...N({path:r}),select:e=>e.contacts.length,...i}),f=a({...F({path:r}),select:e=>e.snapshots.filter(e=>e.ready).length,...i}),p=a({queryKey:P({path:r}),queryFn:()=>W(e),select:e=>{let t=e.filter(e=>e.enabled).sort((e,t)=>e.nextRunAt-t.nextRunAt);return{count:t.length,items:t.slice(0,we).map(e=>({id:e.id,name:e.name,cadence:e.cadenceDescription,nextRunAt:e.nextRunAt}))}},...i}),m=a({queryKey:le(e),queryFn:()=>K(e),...i});return{personality:{signature:m.data===void 0?void 0:se(m.data??{})},superpowers:o.data===void 0?void 0:{text:[`${o.data} ${X(o.data,`skill`,`skills`)}`,...s.data===void 0?[]:[`${s.data} ${X(s.data,`plugin`,`plugins`)}`]].join(` · `)},library:c.data===void 0?void 0:{text:[`${c.data} ${X(c.data,`app`,`apps`)}`,...l.data===void 0?[]:[`${l.data} ${X(l.data,`doc`,`docs`)}`]].join(` · `)},workspace:u.data===void 0?void 0:{value:u.data,label:X(u.data,`item`,`items`)},contacts:d.data===void 0?void 0:{value:d.data,label:X(d.data,`person`,`people`)},channels:f.data===void 0?void 0:{value:f.data,label:`connected`},schedules:p.data===void 0?void 0:p.data.count===0?{text:`Nothing scheduled yet`}:{value:p.data.count,label:`active`,schedules:{items:p.data.items,more:p.data.count-p.data.items.length}}}}var Ee=96,De=150,Oe=36,ke=46,Ae=58,je=(e,t,n)=>Math.max(t,Math.min(n,e));function Me(e,t,n){let r=je(n.x-e.left,Ee,e.width-Ee),i=je(n.y-e.top,Ee,e.height-Ee);return{rect:e,facing:t,peek:t===`top`?{x:r,y:0}:t===`bottom`?{x:r,y:e.height}:t===`left`?{x:0,y:i}:{x:e.width,y:i}}}var Ne={top:{x:0,y:-1},bottom:{x:0,y:1},left:{x:-1,y:0},right:{x:1,y:0}},Pe={type:`spring`,stiffness:150,damping:19},Fe=.22,Ie=.15;function Le({hex:e,components:t,traits:n,target:r}){let i=r!==null,[a,o]=(0,q.useState)(null);r&&r!==a&&o(r);let s=r??a,[c,l]=(0,q.useState)(!1);(0,q.useEffect)(()=>{let e=!1,t,n=()=>{t=setTimeout(()=>{e||(l(!0),t=setTimeout(()=>{e||(l(!1),n())},140))},2500+Math.random()*4e3)};return n(),()=>{e=!0,clearTimeout(t)}},[]);let u=(0,q.useMemo)(()=>{let e=t.eyeStyles.find(e=>e.id===n.eyeStyle);return e?{paths:e.paths,bbox:re(e.paths.map(e=>ie(e.svgPath)))}:null},[t,n.eyeStyle]);if(!u||!s)return null;let{rect:d,facing:f,peek:p}=s,m={x:d.left+p.x,y:d.top+p.y},h=Ne[f],g=u.bbox.h/u.bbox.w,_=Ae,v=_*g,y={x:m.x+h.x*Oe,y:m.y+h.y*Oe},b={x:-h.x*ke,y:-h.y*ke},x=u.bbox.x+u.bbox.w/2,S=u.bbox.y+u.bbox.h/2,C=i?{...Pe,delay:Fe,opacity:{duration:.15,delay:Fe}}:{duration:Ie};return(0,J.jsxs)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-0`,children:[(0,J.jsx)(V.div,{className:`absolute top-0 left-0 rounded-full`,style:{backgroundColor:e,width:De,height:De},initial:!1,animate:{x:m.x-De/2+(i?0:b.x),y:m.y-De/2+(i?0:b.y),opacity:+!!i},transition:C}),(0,J.jsx)(V.div,{className:`absolute top-0 left-0`,initial:!1,animate:{x:y.x-_/2+(i?0:b.x),y:y.y-v/2+(i?0:b.y),width:_,height:v,opacity:+!!i},transition:C,children:(0,J.jsx)(`svg`,{viewBox:`${u.bbox.x} ${u.bbox.y} ${u.bbox.w} ${u.bbox.h}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:{overflow:`visible`,display:`block`},children:(0,J.jsx)(`g`,{style:{transform:c?`scaleY(0.1)`:`scaleY(1)`,transformOrigin:`${x}px ${S}px`,transition:`transform 0.14s ease-in-out`},children:u.paths.map((e,t)=>(0,J.jsx)(`path`,{d:e.svgPath,fill:e.color},t))})})})]})}var Re=65,ze=26;function Be(e,t){let n=H(),[r,i]=(0,q.useState)(n?e.length:0);return(0,q.useEffect)(()=>{if(n){i(e.length);return}i(0);let r=setInterval(()=>{i(t=>t>=e.length?(clearInterval(r),t):t+1)},t);return()=>clearInterval(r)},[e,t,n]),{typed:e.slice(0,r),typing:r<e.length}}function Ve({name:e,isRenaming:t,overrideText:n=null}){let r=n??`Hi, I’m ${e}`,{typed:i,typing:a}=Be(r,n?ze:Re);return(0,J.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,children:[(0,J.jsxs)(`h1`,{"aria-label":r,className:`relative leading-none whitespace-nowrap text-[var(--content-strong)] ${n?`text-[2.1rem] max-sm:text-[1.4rem]`:`text-[3.25rem] max-sm:text-[2rem]`}`,style:{fontFamily:`var(--font-serif)`},children:[(0,J.jsx)(`span`,{className:`invisible`,"aria-hidden":`true`,children:r}),(0,J.jsxs)(`span`,{className:`absolute inset-0`,"aria-hidden":`true`,children:[i,a&&(0,J.jsx)(`span`,{className:`animate-pulse`,children:`▎`})]})]}),!n&&t&&(0,J.jsx)(`div`,{"aria-label":`Renaming in progress`,className:`h-5 w-5 shrink-0 animate-spin rounded-full border-2 border-[var(--border-base)]`,style:{borderTopColor:`var(--content-default)`}})]})}function Z(e,t){let{label:n,to:r}=O(e);return{key:e,label:n,description:t,to:r}}var He=[`memory`,`workspace`];function Ue({isNativeMobile:e=!1}={}){let t=[{key:`personality`,label:`Personality`,description:`Tune how I talk`,to:D.personality},Z(`schedules`,`My routines`),Z(`superpowers`,`What I can do`),Z(`memory`,`What I remember`),Z(`library`,`My apps & docs`),Z(`workspace`,`My files`),Z(`contacts`,`People I know`),Z(`channels`,`Where I listen`)];return e?t.filter(e=>!He.includes(e.key)):t}var We=340,Ge=226,Q=113,Ke=46,qe=58,Je=15,Ye=216,Xe=11.5,Ze=5,$=10,Qe=.42,$e=.26,et=de.map((e,t)=>Ke+t*(We-Ke*2)/(de.length-1));function tt(e,t){let n=e[t]??ue;return Math.max(0,Math.min(100,n))}function nt(e){return Q-(e-50)/50*qe}function rt(e){return e.length>8&&e.includes(` `)?e.split(` `):[e]}function it({x:e,label:t,above:n,leaning:r,neutral:i,magnitude:a}){let o=rt(t),s=n?Je:Ye-(o.length-1)*Xe,c=r&&!i,l=i?Qe:c?.62+.38*a:$e;return(0,J.jsx)(`text`,{x:e,y:s,textAnchor:`middle`,fontSize:10,fontWeight:c?600:400,fill:`currentColor`,fillOpacity:l,children:o.map((t,n)=>(0,J.jsx)(`tspan`,{x:e,dy:n===0?0:Xe,children:t},t))})}function at({values:e,className:t}){let n=H(),r=de.map(t=>{let n=tt(e,t.id),r=n-50;return{axis:t,value:n,lean:r,neutral:Math.abs(r)<=Ze,magnitude:Math.abs(r)/50}}),[i,a]=(0,q.useState)(+!!n);(0,q.useEffect)(()=>{if(n){a(1);return}let e=h(0,1,{type:`spring`,stiffness:140,damping:16,onUpdate:a});return()=>e.stop()},[n]);let o=r.map(e=>nt(50+(e.value-50)*i)),s=r.map(({axis:e,lean:t,neutral:n,magnitude:r})=>n?`${e.left} and ${e.right} balanced`:`${Math.round(r*100)}% ${t>0?e.right:e.left}`).join(`, `);return(0,J.jsxs)(`svg`,{viewBox:`0 0 ${We} ${Ge}`,role:`img`,"aria-label":`Personality: ${s}`,className:t,children:[(0,J.jsx)(`line`,{x1:Ke-14,y1:Q,x2:We-Ke+14,y2:Q,stroke:`currentColor`,strokeOpacity:.3,strokeWidth:1,strokeDasharray:`2 4`}),r.map(({axis:e},t)=>(0,J.jsx)(`rect`,{x:et[t]-$/2,y:Math.min(Q,o[t])-$/2,width:$,height:Math.abs(o[t]-Q)+$,rx:$/2,fill:`var(--card-accent)`},e.id)),r.map(({axis:e,lean:t,neutral:n,magnitude:r},i)=>(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(it,{x:et[i],label:e.right,above:!0,leaning:t>0,neutral:n,magnitude:r}),(0,J.jsx)(it,{x:et[i],label:e.left,above:!1,leaning:t<0,neutral:n,magnitude:r})]},e.id))]})}var ot={personality:y,schedules:u,superpowers:x,memory:l,library:_,workspace:g,contacts:b,channels:ge},st={personality:`rounded-3xl`,schedules:`rounded-3xl`,superpowers:`rounded-[1.25rem_2.75rem_1.25rem_2.5rem]`,channels:`rounded-[2.25rem_1rem_2.5rem_1.25rem]`,contacts:`rounded-[1rem_2.5rem_1.25rem_2.75rem]`,workspace:`rounded-[1.25rem_2.5rem_1rem_2.5rem]`},ct=720,lt=480,ut=[`superpowers`,`memory`,`library`,`workspace`,`contacts`,`channels`],dt={personality:`Go ahead, tweak my soul`,superpowers:`Everything I know how to do`,memory:`Everything I remember`,library:`The apps and docs I've made for you`,schedules:`What I do on repeat`,workspace:`All the files that power me`,contacts:`The people I know and trust`,channels:`All the places you can reach me`};function ft(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}var pt=280,mt=140,ht=.44,gt=1118,_t=300,vt=.09,yt=14,bt=5,xt=22,St={"--card-bg":`#24292e`,"--card-feature-bg":`rgba(23, 25, 28, 0.35)`,"--card-hover":`#2d3339`,"--card-accent":`#bd4900`,"--card-flood-fg":`#fdfdfc`,"--content-default":`#fdfdfc`,"--content-strong":`#fdfdfc`,"--content-secondary":`#a9b2bb`,"--content-tertiary":`#8d99a5`,"--border-base":`rgba(255, 255, 255, 0.08)`};function Ct({assistantId:e}){let t=i(),{components:n,traits:r,customImageUrl:o,isLoading:s,invalidate:c}=A(e),l=fe(e),u=B(),d=E(),f=Te(e,{supportsPlugins:u,isNativeMobile:d}),p=z(a({...R(e),enabled:!d}).data),m={...f,memory:p===void 0?void 0:{value:p,label:p===1?`memory`:`memories`}},[h,g]=(0,q.useState)(!1),[_,v]=(0,q.useState)(!1),y=(0,q.useCallback)(n=>{v(!0),Se(e,n).then(r=>{if(v(!1),r){t.invalidateQueries({queryKey:he(e)});let{version:r,assistantId:i,setIdentity:a}=T.getState();a(n,r,i),w.success(`Say hi to ${n}!`)}else w.error(`The rename didn't go through. Please try again.`)})},[e,t]),b=(0,q.useCallback)(()=>{c()},[c]),x=Ue({isNativeMobile:d}),S=s||l.isLoading,C=me(n,r),D=!!o&&!C;return(0,J.jsxs)(G,{bleed:!D,className:D?`relative overflow-hidden`:void 0,style:C?{backgroundColor:`color-mix(in srgb, ${C} ${yt}%, var(--surface-overlay))`}:void 0,children:[D&&o&&(0,J.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,children:(0,J.jsx)(`img`,{src:o,alt:``,className:`h-full w-full scale-110 object-cover blur-[60px] brightness-[0.65]`})}),S?(0,J.jsx)(`div`,{className:`relative flex flex-1 items-center justify-center`,children:(0,J.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):(0,J.jsx)(Et,{components:n,traits:r,customImageUrl:o,name:l.data?.identity?.name||`Assistant`,sections:x,stats:m,avatarHex:C,photoBackdrop:D,isRenaming:_,onOpenAvatarModal:()=>g(!0)}),(0,J.jsx)(_e,{open:h,onClose:()=>g(!1),assistantId:e,components:n,traits:r,customImageUrl:o,onSaveCharacter:b,onUploadImage:b,assistantName:l.data?.identity?.name||`Assistant`,onRenameSubmit:y,isRenaming:_})]})}function wt({section:e,stat:t,gridArea:n,cardStyle:i,hoverFill:a,mini:o,flooded:c=!1,floodOrigin:l,photoBackdrop:u=!1,linkRef:d,onHoverChange:f}){let p=ot[e.key]??y,[m,h]=(0,q.useState)({x:50,y:100});l&&l!==m&&h(l);let g=c?`text-[var(--card-flood-fg)]`:`text-[var(--content-default)]`,_=c?`text-[var(--card-flood-fg)]`:`text-[var(--content-strong)]`,v=c?`text-[var(--card-flood-fg)] opacity-75`:`text-[var(--content-secondary)]`,b=(0,J.jsx)(V.span,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,style:{backgroundColor:`var(--card-accent)`},initial:!1,animate:{clipPath:c?`circle(141% at ${m.x}% ${m.y}%)`:`circle(0% at ${m.x}% ${m.y}%)`},transition:c?{duration:.5,ease:`easeOut`}:{duration:.35,ease:`easeIn`}});if(o){let n=t?.value===void 0?t?.text:`${t.value} ${t.label}`;return(0,J.jsx)(s.Root,{asChild:!0,bordered:!1,elevated:!0,clipContents:!0,className:`rounded-[12px] border-0 bg-[var(--card-bg)]`,children:(0,J.jsxs)(r,{to:e.to,ref:d,onMouseEnter:()=>f?.(!0),onMouseLeave:()=>f?.(!1),className:`relative flex h-full flex-1 cursor-pointer items-center gap-2 px-4 py-2.5 transition-all duration-150 active:scale-[0.98] ${a?`hover:bg-[var(--card-hover)]`:``}`,children:[b,(0,J.jsx)(`span`,{className:`relative flex h-10 w-10 shrink-0 items-center justify-center`,children:(0,J.jsx)(p,{className:`h-5 w-5 transition-colors duration-300 ${v}`,"aria-hidden":!0})}),(0,J.jsxs)(`span`,{className:`relative flex min-w-0 flex-col gap-0`,children:[(0,J.jsx)(`span`,{className:`truncate text-title-small leading-normal transition-colors duration-300 ${_}`,children:e.label}),n&&(0,J.jsx)(`span`,{className:`truncate text-[11px] leading-normal font-medium transition-colors duration-300 ${c?`text-[var(--card-flood-fg)] opacity-75`:`text-[var(--content-tertiary)]`}`,children:n})]})]})})}let x=e.key===`personality`||e.key===`schedules`;return(0,J.jsx)(s.Root,{asChild:!0,bordered:!x,elevated:!x,className:`${st[e.key]??``} ${x?`border bg-[var(--card-feature-bg,var(--card-bg))] ${u?`border-transparent backdrop-blur-[32px]`:`border-[var(--border-base)]`}`:`bg-[var(--card-bg)]`}`,style:{...n?{gridArea:n}:{},...i},children:(0,J.jsxs)(r,{to:e.to,ref:d,onMouseEnter:()=>f?.(!0),onMouseLeave:()=>f?.(!1),className:`relative flex h-full w-full cursor-pointer flex-col justify-between gap-3 overflow-hidden p-5 text-left transition-all duration-150 active:scale-[0.98] ${a?`hover:bg-[var(--card-hover)]`:``}`,children:[b,n&&t?.signature&&(0,J.jsxs)(`span`,{className:`absolute inset-x-5 top-14 bottom-9 flex flex-col justify-start transition-colors duration-300 ${c?`text-[var(--card-flood-fg)]`:u?`text-[var(--content-default)]`:`text-[var(--content-secondary)]`}`,style:c?{"--card-accent":`var(--card-flood-fg)`}:void 0,children:[(0,J.jsx)(`span`,{"aria-hidden":!0,className:`max-h-10 flex-1`}),(0,J.jsx)(at,{values:t.signature,className:`h-auto max-h-full w-full`})]}),x?(0,J.jsxs)(`span`,{className:`relative flex items-center gap-2`,children:[(0,J.jsx)(p,{className:`h-5 w-5 transition-colors duration-300 ${g}`,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`text-body-medium-default transition-colors duration-300 ${g}`,children:e.label})]}):(0,J.jsxs)(`span`,{className:`relative flex flex-col items-start gap-1.5`,children:[(0,J.jsx)(p,{className:`h-6 w-6 transition-colors duration-300 ${g}`,"aria-hidden":!0}),(0,J.jsxs)(`span`,{className:`flex flex-col`,children:[(0,J.jsx)(`span`,{className:`text-body-medium-default transition-colors duration-300 ${g}`,children:e.label}),(0,J.jsx)(`span`,{className:`text-[13px] transition-colors duration-300 ${v}`,children:e.description})]})]}),n&&t?.schedules&&t.schedules.items.length>0&&(0,J.jsxs)(`span`,{className:`relative flex min-h-0 flex-1 flex-col justify-start gap-2 overflow-hidden py-2`,children:[t.schedules.items.map(e=>(0,J.jsxs)(`span`,{className:`flex flex-col gap-0.5 rounded-xl px-3 py-2 transition-colors duration-300`,style:{backgroundColor:c?`color-mix(in srgb, var(--card-flood-fg) 12%, transparent)`:`color-mix(in srgb, var(--content-default) 5%, transparent)`},children:[(0,J.jsx)(`span`,{className:`truncate text-[13px] font-medium transition-colors duration-300 ${g}`,children:e.name}),(0,J.jsxs)(`span`,{className:`truncate text-[12px] transition-colors duration-300 ${v}`,children:[e.cadence,` · next `,ft(e.nextRunAt)]})]},e.id)),t.schedules.more>0&&(0,J.jsxs)(`span`,{className:`text-[12px] font-medium transition-colors duration-300 ${v}`,children:[`View `,t.schedules.more,` more…`]})]}),t?.value===void 0?t?.text?(0,J.jsx)(`span`,{className:`relative text-[14px] font-medium italic transition-colors duration-300 ${g}`,children:t.text}):null:(0,J.jsxs)(`span`,{className:`relative flex flex-col leading-none`,children:[(0,J.jsx)(`span`,{className:`text-[3.25rem] transition-colors duration-300 max-lg:text-[2.5rem] ${_}`,style:{fontFamily:`var(--font-serif)`},children:t.value}),(0,J.jsx)(`span`,{className:`mt-1 text-[13px] transition-colors duration-300 ${v}`,children:t.label})]})]})})}function Tt({components:e,traits:t,customImageUrl:n,name:r,avatarSize:i,isRenaming:a,onEdit:o}){return(0,J.jsxs)(`div`,{className:`relative z-[1] flex flex-col items-center justify-center gap-5`,children:[(0,J.jsx)(Ve,{name:r,isRenaming:a}),(0,J.jsx)(`button`,{type:`button`,"aria-label":`Update avatar and name`,title:`Update avatar and name`,onClick:o,className:`avatar-edit-cursor outline-none keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:n&&!t?(0,J.jsx)(`img`,{src:n,alt:``,width:i,height:i,className:`rounded-[32px] object-cover`,style:{width:i,height:i}}):(0,J.jsx)(ae,{components:e,traits:t,customImageUrl:n,size:i,interactive:!0})})]})}function Et({components:e,traits:t,customImageUrl:n,name:i,sections:a,stats:o,avatarHex:c,photoBackdrop:l,isRenaming:d,onOpenAvatarModal:f}){let{ref:m,size:h}=ce(),g=H(),_=h.w>=ct&&h.h>=lt,b=Math.round(Math.min(pt,Math.max(mt,Math.min(h.w,h.h)*.32))),x=!!(c&&e&&t),S=_&&!g&&x,C=(0,q.useRef)(null),w=(0,q.useRef)({}),[T,E]=(0,q.useState)(null),D=(0,q.useCallback)(e=>{C.current=e,m(e)},[m]),O=(0,q.useCallback)((e,t)=>{if(!S)return;if(!t){E(null);return}let n=C.current,r=w.current[e];if(!n||!r)return;let i=n.getBoundingClientRect(),a=r.getBoundingClientRect(),o={left:a.left-i.left,top:a.top-i.top,width:a.width,height:a.height},s=(o.left+o.width/2-i.width/2)/(i.width/2),c=(o.top+o.height/2-i.height/2)/(i.height/2),l=Me(o,Math.abs(s)>Math.abs(c)?s<0?`right`:`left`:c<0?`bottom`:`top`,{x:i.width/2,y:i.height/2});E({key:e,target:l,origin:{x:l.peek.x/o.width*100,y:l.peek.y/o.height*100}})},[S]),k=S?T:null,A=k?dt[k.key]??null:null,ee=l?St:{"--card-bg":c?`color-mix(in srgb, ${c} var(--card-tint-pct, ${bt}%), var(--card-surface, var(--surface-lift)))`:`var(--surface-lift)`,"--card-feature-bg":c?`color-mix(in srgb, var(--card-accent) 28%, var(--card-surface, var(--surface-lift)))`:`var(--surface-lift)`,"--card-hover":c?`color-mix(in srgb, ${c} ${xt}%, var(--card-surface, var(--surface-lift)))`:`var(--surface-hover)`,"--card-accent":c??`var(--content-default)`,"--card-flood-fg":c?ne(c):`var(--content-default)`},te=(h.h-8)/(1-vt),j=Math.round(Math.min(gt,te,Math.max(_t,h.w*ht))),M=Math.round(j*vt),N=(0,J.jsx)(Tt,{components:e,traits:t,customImageUrl:n,name:i,avatarSize:b,isRenaming:d,onEdit:f});if(!_){let e=a.find(e=>e.key===`schedules`),t=a.find(e=>e.key===`personality`),n=a.filter(e=>e.key!==`schedules`&&e.key!==`personality`),i=o.schedules?.schedules,c=i?i.items.length+i.more:void 0,d=o.personality?.signature,f=`w-full rounded-[12px] border bg-[var(--card-feature-bg,var(--card-bg))] ${l?`border-transparent backdrop-blur-[32px]`:`border-[var(--border-base)]`}`;return(0,J.jsxs)(`div`,{ref:D,className:`identity-bento relative flex min-h-0 flex-1 flex-col items-center gap-6 overflow-y-auto px-2 py-4`,style:l?{...ee,"--card-bg":`#17191c`}:ee,children:[N,(0,J.jsxs)(`div`,{className:`flex w-full max-w-md shrink-0 flex-col gap-2`,children:[e&&(0,J.jsx)(s.Root,{asChild:!0,bordered:!1,elevated:!1,clipContents:!0,className:f,children:(0,J.jsxs)(r,{to:e.to,className:`flex w-full cursor-pointer items-center gap-2 p-4 transition-all duration-150 hover:bg-[var(--card-hover)] active:scale-[0.98]`,children:[(0,J.jsx)(u,{className:`h-5 w-5 shrink-0 text-[var(--content-default)]`,"aria-hidden":!0}),(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.label}),c!==void 0&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:c})]})]}),(0,J.jsx)(p,{className:`h-4 w-4 shrink-0 text-[var(--content-default)]`,"aria-hidden":!0})]})}),t&&(0,J.jsx)(s.Root,{asChild:!0,bordered:!1,elevated:!1,clipContents:!0,className:f,children:(0,J.jsxs)(r,{to:t.to,className:`flex w-full cursor-pointer flex-col gap-4 px-4 pt-4 pb-6 transition-all duration-150 hover:bg-[var(--card-hover)] active:scale-[0.98]`,children:[(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(y,{className:`h-5 w-5 text-[var(--content-default)]`,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t.label})]}),d&&(0,J.jsx)(`span`,{className:`flex items-center justify-center ${l?`text-[var(--content-default)]`:`text-[var(--content-secondary)]`}`,children:(0,J.jsx)(at,{values:d,className:`h-auto w-full`})})]})}),(0,J.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:n.map(e=>(0,J.jsx)(wt,{section:e,stat:o[e.key],hoverFill:!0,mini:!0},e.key))})]})]})}let P=a.filter(e=>!ut.includes(e.key)),F=a.filter(e=>ut.includes(e.key)),I=[1.15,1,.45,.3],L=(h.h-(I.length-1)*12)/I.reduce((e,t)=>e+t,0),R=Math.round(L*I[0]),z=(x?[`"personality greeting greeting greeting schedules"`,`". . . . schedules"`,`". . . . ."`,`"smalls smalls smalls smalls smalls"`]:[`"personality greeting greeting greeting schedules"`,`". avatar avatar avatar schedules"`,`". avatar avatar avatar ."`,`"smalls smalls smalls smalls smalls"`]).join(` `),B=e=>({section:e,stat:o[e.key],hoverFill:!S,photoBackdrop:l,flooded:k?.key===e.key,floodOrigin:k?.key===e.key?k.origin:void 0,linkRef:t=>{w.current[e.key]=t},onHoverChange:t=>O(e.key,t)});return(0,J.jsxs)(`div`,{ref:D,className:`identity-bento relative grid min-h-0 flex-1 gap-3 overflow-hidden`,style:{...ee,gridTemplateColumns:`1.55fr 1fr 1fr 1fr 1.55fr`,gridTemplateRows:I.map(e=>`${e}fr`).join(` `),gridTemplateAreas:z},children:[x?(0,J.jsx)(V.div,{className:`pointer-events-none absolute left-1/2 z-0`,style:{width:j,height:j,bottom:-M,x:`-50%`},initial:!1,animate:k?{scale:.4,opacity:0}:{scale:1,opacity:1},transition:k?{duration:.15}:{delay:.25,type:`spring`,stiffness:210,damping:18},children:(0,J.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-label":`Update avatar and name`,title:`Update avatar and name`,onClick:f,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f())},className:`avatar-edit-cursor group pointer-events-auto relative h-full w-full scale-100 outline-none transition-transform duration-200 ease-out hover:scale-105 keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:[(0,J.jsx)(ae,{components:e,traits:t,customImageUrl:n,size:j,interactive:!0}),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 transition-opacity duration-150 group-hover:opacity-100`,children:(0,J.jsx)(`span`,{className:`flex h-11 w-11 items-center justify-center rounded-full bg-black/40`,children:(0,J.jsx)(v,{className:`h-5 w-5 text-white`})})})]})}):(0,J.jsx)(`div`,{className:`relative z-[1] flex items-start justify-center`,style:{gridArea:`avatar`},children:(0,J.jsx)(`button`,{type:`button`,"aria-label":`Update avatar and name`,title:`Update avatar and name`,onClick:f,className:`avatar-edit-cursor rounded-full outline-none keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:n?(0,J.jsx)(`img`,{src:n,alt:``,width:b,height:b,className:`rounded-full object-cover`,style:{width:b,height:b}}):(0,J.jsx)(ae,{components:e,traits:t,customImageUrl:null,size:b})})}),(0,J.jsx)(`div`,{className:`relative z-[1] flex items-center justify-center`,style:{gridArea:`greeting`},children:(0,J.jsx)(Ve,{name:i,isRenaming:d,overrideText:A})}),S&&c&&e&&t&&(0,J.jsx)(Le,{hex:c,components:e,traits:t,target:k?.target??null}),P.map(e=>(0,J.jsx)(wt,{...B(e),gridArea:e.key,cardStyle:e.key===`schedules`?{alignSelf:`start`,height:`auto`,minHeight:R}:void 0},e.key)),(0,J.jsx)(`div`,{className:`flex min-h-0 items-stretch gap-3`,style:{gridArea:`smalls`},children:F.map(e=>(0,J.jsx)(wt,{...B(e),mini:!0},e.key))})]})}function Dt(){return(0,J.jsx)(Ct,{assistantId:U()})}function Ot(){return(0,J.jsx)(Dt,{},U())}export{Ot as IdentityPageRoute};