@vellumai/web 0.12.2-staging.7 → 0.12.2

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 (382) hide show
  1. package/dist/assets/{a2a-invite-K_LszpwN.js → a2a-invite-BOdHy8O9.js} +1 -1
  2. package/dist/assets/{about-page-C2ZvX_F-.js → about-page-COxmu2oQ.js} +1 -1
  3. package/dist/assets/{account-page-e0PceRpg.js → account-page-CYNbvuWs.js} +1 -1
  4. package/dist/assets/{account-shell-C6z7Vrdr.js → account-shell-CbiWTAQP.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-B2O0UZTM.js → acp-run-detail-panel-B5vKfWQN.js} +3 -3
  6. package/dist/assets/activation-list-route-BOb-rtBa.js +1 -0
  7. package/dist/assets/{activity-redirect-page-DE1iuEIc.js → activity-redirect-page-BWj7yOid.js} +1 -1
  8. package/dist/assets/activity-steps-panel-DmC1H7g8.js +1 -0
  9. package/dist/assets/{add-credits-modal-NTVA50Mb.js → add-credits-modal-B0DI6Rs_.js} +1 -1
  10. package/dist/assets/add-credits-modal-Clg9vuy6.js +1 -0
  11. package/dist/assets/ai-page-CUKc_nmb.js +1 -0
  12. package/dist/assets/android-billing-handoff-CpzR7JDr.js +1 -0
  13. package/dist/assets/{api-key-screen-PLpXk-Bj.js → api-key-screen-fY9JjhTe.js} +1 -1
  14. package/dist/assets/app-BNL3dwNm.css +2 -0
  15. package/dist/assets/app-Tg6YU_tZ.js +392 -0
  16. package/dist/assets/{app-info-reMTZ2pt.js → app-info-B8Mqmeak.js} +1 -1
  17. package/dist/assets/{archive-redirect-page-Cr_Venij.js → archive-redirect-page-De-Keegk.js} +1 -1
  18. package/dist/assets/{assistant-status-panel-CvQuUFvM.js → assistant-status-panel-BALzwsAc.js} +1 -1
  19. package/dist/assets/auth-store-D-6LI7o_.js +1 -0
  20. package/dist/assets/{auth-welcome-screen-B2tyrMPg.js → auth-welcome-screen-D2mxoZEG.js} +1 -1
  21. package/dist/assets/avatar-bundled-components-Bo-wVBBE.js +1 -0
  22. package/dist/assets/avatar-random-ZUs-wFAP.js +2 -0
  23. package/dist/assets/{await-org-header-settled-B9PHlwR4.js → await-org-header-settled-CYxBtSPa.js} +1 -1
  24. package/dist/assets/{background-task-detail-panel-GPr2jleb.js → background-task-detail-panel-D4CYPLDN.js} +1 -1
  25. package/dist/assets/billing-page-CqDMGSHe.js +3 -0
  26. package/dist/assets/{billing-redirect-page-_M75fYSt.js → billing-redirect-page-nGTPWHMN.js} +1 -1
  27. package/dist/assets/{bookmarks-page-DNY0ctx1.js → bookmarks-page-CGd4Okx8.js} +1 -1
  28. package/dist/assets/{bundle-confirm-page-DH--yDFi.js → bundle-confirm-page-BuQ9wfYw.js} +1 -1
  29. package/dist/assets/channel-transcript-panel-Ca2IqSxd.js +1 -0
  30. package/dist/assets/channels-page-route-BrkM9cD0.js +1 -0
  31. package/dist/assets/{chat-DDWpVL31.js → chat-8C19KXOV.js} +2 -2
  32. package/dist/assets/chat-B8bCjQZ1.js +3 -0
  33. package/dist/assets/{chat-rQTkjE9-.js → chat-BMyAegHU.js} +2 -2
  34. package/dist/assets/chat-info-panel-CFHg5G5C.js +1 -0
  35. package/dist/assets/{chat-CaPTWqrU.js → chat-k0ASlCf6.js} +2 -2
  36. package/dist/assets/{checkout-continuation-B5Hqp0Qm.js → checkout-continuation-ATko7N-k.js} +1 -1
  37. package/dist/assets/{checkout-page-CmxMePoe.js → checkout-page-CVp2T6mP.js} +1 -1
  38. package/dist/assets/checkout-return-target-BM6j8E5w.js +1 -0
  39. package/dist/assets/{command-palette-tg_jmCvj.js → command-palette-BuaJlwlj.js} +1 -1
  40. package/dist/assets/command-palette-DkTYuZU8.js +1 -0
  41. package/dist/assets/{command-palette-window-page-OdXwcHOe.js → command-palette-window-page-UeoQHE-2.js} +1 -1
  42. package/dist/assets/common-Bj2G8_g5.js +1 -0
  43. package/dist/assets/common-CaTw6iFT.js +1 -0
  44. package/dist/assets/common-DvY3wB2D.js +1 -0
  45. package/dist/assets/common-HddDknEB.js +1 -0
  46. package/dist/assets/{community-page-N7xnmLtP.js → community-page-rNFPZE2f.js} +1 -1
  47. package/dist/assets/{companion-accent-CC2T6DTD.js → companion-accent-C3xBrXHO.js} +1 -1
  48. package/dist/assets/{companion-dock-zones-page-BWRTUjFh.js → companion-dock-zones-page-plFxxNVK.js} +1 -1
  49. package/dist/assets/{companion-layout-Ctf-oiUu.js → companion-layout-Cu_j-nKV.js} +1 -1
  50. package/dist/assets/{companion-popover-CvuIHsxr.js → companion-popover-STvrRaku.js} +1 -1
  51. package/dist/assets/{companion-popover-page-COtTpxBf.js → companion-popover-page-Dvft1iSc.js} +1 -1
  52. package/dist/assets/companion-surface-page-DHxOTQOL.js +1 -0
  53. package/dist/assets/{companion-watch-frame-page-DdY-sEvj.js → companion-watch-frame-page-DLTwthiI.js} +1 -1
  54. package/dist/assets/{connect-page-mviArXG0.js → connect-page-BtvEUJj6.js} +1 -1
  55. package/dist/assets/{consent-controls-CGZ9hRD9.js → consent-controls-CjyXQ2Ju.js} +1 -1
  56. package/dist/assets/contacts-gateway-CZ3fJfK5.js +1 -0
  57. package/dist/assets/contacts-page-route-CNXEHOrf.js +1 -0
  58. package/dist/assets/{credential-entry-page-BcOtgzDZ.js → credential-entry-page-CvXfQZPl.js} +1 -1
  59. package/dist/assets/{credentials-page-C-5wNF1Z.js → credentials-page-DsxuB0Ui.js} +1 -1
  60. package/dist/assets/{csv-preview-BujPteS4.js → csv-preview-TFV8b1Dq.js} +1 -1
  61. package/dist/assets/{danger-zone-redirect-page-BD_UQW3d.js → danger-zone-redirect-page-C23hsdDS.js} +1 -1
  62. package/dist/assets/debug-page-6PKrAjce.js +4 -0
  63. package/dist/assets/deploy-dialogs-BXYdSkVL.js +1 -0
  64. package/dist/assets/{deploy-dialogs-CveUjjv7.js → deploy-dialogs-C0gFbHA2.js} +1 -1
  65. package/dist/assets/desktop-preview-content-Cc9hlQ4Q.js +2 -0
  66. package/dist/assets/{desktop-status-xKP11IwI.js → desktop-status-CPR10G_B.js} +1 -1
  67. package/dist/assets/{desktop-viewer-0OAUh_Hn.js → desktop-viewer-Cm09cFMg.js} +2 -2
  68. package/dist/assets/{detail-card-CH7nCTwL.js → detail-card-pT0agbKq.js} +1 -1
  69. package/dist/assets/{detail-panel-stop-button-CCMYv91a.js → detail-panel-stop-button-DWoO-nJN.js} +1 -1
  70. package/dist/assets/detail-primitives-ue4wzzCx.js +1 -0
  71. package/dist/assets/developer-page-DcZbWcLH.js +1 -0
  72. package/dist/assets/{devices-redirect-page-76YGuivM.js → devices-redirect-page-Bxu6ZvQb.js} +1 -1
  73. package/dist/assets/{dictation-overlay-page-CNKyNY4_.js → dictation-overlay-page-CG8S4p0x.js} +1 -1
  74. package/dist/assets/document-load-B8iTfjYL.js +1 -0
  75. package/dist/assets/{document-load-ZTOhaes3.js → document-load-DShQChFM.js} +1 -1
  76. package/dist/assets/document-viewer-page-BStfu3jJ.js +1 -0
  77. package/dist/assets/emails-page-BlP1KP70.js +1 -0
  78. package/dist/assets/environment-store-rH-YdiqT.js +1 -0
  79. package/dist/assets/{esm-CJc5XaQ-.js → esm-BRap8C09.js} +1 -1
  80. package/dist/assets/esm-BarLUlPV.js +2 -0
  81. package/dist/assets/{esm-Bd00Z0XS.js → esm-BfMa-HX2.js} +2 -2
  82. package/dist/assets/esm-C19uvbek.js +2 -0
  83. package/dist/assets/{esm-Ddi5QueG.js → esm-C8i-Nf3-.js} +1 -1
  84. package/dist/assets/esm-CI79f_VT.js +2 -0
  85. package/dist/assets/esm-CtAM062C.js +1 -0
  86. package/dist/assets/esm-DGqMBGum.js +1 -0
  87. package/dist/assets/esm-DYrMpsGJ.js +2 -0
  88. package/dist/assets/esm-Y7e1KRCK.js +2 -0
  89. package/dist/assets/{file-diff-view-DrEc_ARh.js → file-diff-view-CO2QJdSQ.js} +1 -1
  90. package/dist/assets/file-editor-EZsnOrB1.js +1 -0
  91. package/dist/assets/general-page-DjmqGNEh.js +2 -0
  92. package/dist/assets/hatching-screen-Vx631ARz.js +1 -0
  93. package/dist/assets/{hosting-screen-BrJitjCp.js → hosting-screen-nVYKldkt.js} +1 -1
  94. package/dist/assets/identity-page-route-B4R5hI3l.js +7 -0
  95. package/dist/assets/inspect-page-CYYIbGHx.js +9 -0
  96. package/dist/assets/integrations-page-BjXxWGKz.js +1 -0
  97. package/dist/assets/intelligence-layout-BUGM35jP.js +1 -0
  98. package/dist/assets/intelligence-layout-slots-store-nrEU1pdD.js +1 -0
  99. package/dist/assets/{keyboard-shortcuts-redirect-page-P0KU4lAH.js → keyboard-shortcuts-redirect-page-UFsztRh3.js} +1 -1
  100. package/dist/assets/{latest-assistant-text-B1LKWEQo.js → latest-assistant-text-CaZrfk6l.js} +1 -1
  101. package/dist/assets/library-detail-page-BcqVyl-x.js +1 -0
  102. package/dist/assets/{library-page-BMa93acf.js → library-page-CK7LA8to.js} +1 -1
  103. package/dist/assets/local-mode-B63ogN2h.js +1 -0
  104. package/dist/assets/{login-page-D3ob1Kbr.js → login-page-Cw14hc03.js} +1 -1
  105. package/dist/assets/logout-page-DpNGL-t4.js +1 -0
  106. package/dist/assets/{logs-layout-_xsmgYT_.js → logs-layout-BqrW_P--.js} +1 -1
  107. package/dist/assets/markdown-preview-DsAfiAyB.js +1 -0
  108. package/dist/assets/{media-preview-NpZgZ2UX.js → media-preview-DvdWd4rA.js} +1 -1
  109. package/dist/assets/{memory-page-route-FjsBP3DB.js → memory-page-route-B98b_k6V.js} +2 -2
  110. package/dist/assets/{memory-router-playground-page-BB2ac5OC.js → memory-router-playground-page-BmST7_Kw.js} +1 -1
  111. package/dist/assets/{message-files-panel-DHpvQ5fY.js → message-files-panel-B4KcGaTu.js} +1 -1
  112. package/dist/assets/{metric-card-BPzasLzN.js → metric-card-BLErTI6M.js} +1 -1
  113. package/dist/assets/native-attachment-pickers-DXW2YF-J.js +1 -0
  114. package/dist/assets/native-file-DIYnpRix.js +1 -0
  115. package/dist/assets/{notifications-page-DPIJPx5l.js → notifications-page-wjJIxJdC.js} +1 -1
  116. package/dist/assets/{oauth-complete-page-BOf0k715.js → oauth-complete-page-DMvGhbPg.js} +1 -1
  117. package/dist/assets/{oauth-popup-complete-page-Coq4E2NT.js → oauth-popup-complete-page-BjtYXKTi.js} +1 -1
  118. package/dist/assets/paired-platform-identity-DyA-oZ1a.js +1 -0
  119. package/dist/assets/{pairing-page-vg713Xyw.js → pairing-page-BfrUX_YA.js} +1 -1
  120. package/dist/assets/password-reset-page-DyCdaLlT.js +1 -0
  121. package/dist/assets/{pdf-file-preview-KeniHhVt.js → pdf-file-preview-Cv30v3e_.js} +1 -1
  122. package/dist/assets/{peeking-eyes-CKdOXnSg.js → peeking-eyes-DJkKQl-G.js} +1 -1
  123. package/dist/assets/{personality-page-DKqJb-lv.js → personality-page-CUwdmzId.js} +1 -1
  124. package/dist/assets/{personality-page-IzKy17q_.js → personality-page-D03UdQms.js} +1 -1
  125. package/dist/assets/{personality-sliders-9gPglDwE.js → personality-sliders-BZ5p3Svp.js} +1 -1
  126. package/dist/assets/plans-page-Bt7rWPBi.js +1 -0
  127. package/dist/assets/{platform-loopback-page-CQdKbXKL.js → platform-loopback-page-C3a-am1y.js} +1 -1
  128. package/dist/assets/{plugin-detail-page-DmBHeQHu.js → plugin-detail-page-D52frrTx.js} +1 -1
  129. package/dist/assets/{plugins-page-Bif90SI6.js → plugins-page-RrhNT7og.js} +1 -1
  130. package/dist/assets/plugins-surface-f4dAI31U.js +1 -0
  131. package/dist/assets/{preview-error-Cg-tO0Wq.js → preview-error-BlHGLqgj.js} +1 -1
  132. package/dist/assets/privacy-page-CKEUMx1C.js +1 -0
  133. package/dist/assets/{privacy-screen-D5GLfoae.js → privacy-screen-Bkjr2dIv.js} +1 -1
  134. package/dist/assets/{provider-callback-page-CuFRpWdm.js → provider-callback-page-DGAy5DvE.js} +1 -1
  135. package/dist/assets/{provider-key-m64urt9F.js → provider-key-CHOBBf9E.js} +1 -1
  136. package/dist/assets/{provider-signup-page-B2Z1mPXg.js → provider-signup-page-BG1mhVYr.js} +1 -1
  137. package/dist/assets/{provisioning-targets-sLxTAFYS.js → provisioning-targets-B5flnyHy.js} +1 -1
  138. package/dist/assets/{quick-input-page-Dnrp-_VP.js → quick-input-page-CCDzeBSI.js} +1 -1
  139. package/dist/assets/referral-modal-BTG7IbD5.js +1 -0
  140. package/dist/assets/referral-modal-BWGbrPeD.js +1 -0
  141. package/dist/assets/{rehype-katex-BS9QC2Z6.js → rehype-katex-Bp74Wkmo.js} +1 -1
  142. package/dist/assets/{research-mock-page-fY6l0nIr.js → research-mock-page-CHfDwifi.js} +1 -1
  143. package/dist/assets/research-onboarding-route-DvnsATHR.js +50 -0
  144. package/dist/assets/{review-terms-screen-BsYKQ0lM.js → review-terms-screen-C2vdbHvu.js} +1 -1
  145. package/dist/assets/routes-64wTPHX3.js +1 -0
  146. package/dist/assets/{schedules-CLZyrSz5.js → schedules-AMG6VEfS.js} +1 -1
  147. package/dist/assets/schedules-page-DQ0p71wD.js +1 -0
  148. package/dist/assets/{security-redirect-page-CJWekLgN.js → security-redirect-page-C8sxzPnV.js} +1 -1
  149. package/dist/assets/select-assistant-screen-B57uDK4U.js +1 -0
  150. package/dist/assets/{self-hosted-servers-C8mQpYG6.js → self-hosted-servers-CsZVedz3.js} +1 -1
  151. package/dist/assets/{service-form-controls-BaN3WJ77.js → service-form-controls-DTfO4j3O.js} +1 -1
  152. package/dist/assets/{setting-row-C5HG2She.js → setting-row-B9yebbEq.js} +1 -1
  153. package/dist/assets/{settings-Bc3yDJDa.js → settings-C-QPO0as.js} +1 -1
  154. package/dist/assets/{settings-BoNVVpiz.js → settings-D9OIWncF.js} +1 -1
  155. package/dist/assets/settings-DGQfZ51D.js +3 -0
  156. package/dist/assets/{settings-divider-BUvXsYUP.js → settings-divider-BkQcvD1N.js} +1 -1
  157. package/dist/assets/settings-gxBTr-j9.js +3 -0
  158. package/dist/assets/settings-layout-D6972VFH.js +1 -0
  159. package/dist/assets/share-feedback-modal-CYWA8ArT.js +1 -0
  160. package/dist/assets/share-feedback-modal-DwmVNIDD.js +2 -0
  161. package/dist/assets/{sidebar-tree-CbUtC4FM.js → sidebar-tree-C-XVAOgc.js} +1 -1
  162. package/dist/assets/{signup-page-Vgdjl9WE.js → signup-page-DdiJpBz3.js} +1 -1
  163. package/dist/assets/{signup-shell-BLEdn8FZ.js → signup-shell-_mEn5UNl.js} +1 -1
  164. package/dist/assets/{skill-detail-page-o9Zz9AGe.js → skill-detail-page-bMQCOgEU.js} +2 -2
  165. package/dist/assets/skill-detail-panel-jkm8mNzk.js +1 -0
  166. package/dist/assets/{skill-removal-dialog-D0oZz4CN.js → skill-removal-dialog-CWQDV20Q.js} +1 -1
  167. package/dist/assets/{skills-page-EbwJm4TW.js → skills-page-CkHlkDe4.js} +1 -1
  168. package/dist/assets/{sounds-page-Dwy-_g4j.js → sounds-page-DZ9H_Uhf.js} +1 -1
  169. package/dist/assets/{start-screen-XRBqWzDl.js → start-screen-CPuK_kcL.js} +1 -1
  170. package/dist/assets/{stt-language-picker-modal-B-sdjfM-.js → stt-language-picker-modal-vTox8Zp8.js} +1 -1
  171. package/dist/assets/subagent-detail-panel-p9ahsacR.js +1 -0
  172. package/dist/assets/superpowers-page-BiVUrsDa.js +1 -0
  173. package/dist/assets/{system-events-page-BkzUESQ7.js → system-events-page-CxJryFCX.js} +1 -1
  174. package/dist/assets/{system-events-redirect-page-BEsc07gc.js → system-events-redirect-page-CORiS4Xr.js} +1 -1
  175. package/dist/assets/{text-preview-DZXMfpbF.js → text-preview-BZ7GgUAU.js} +1 -1
  176. package/dist/assets/{theme-stage-page-C-tAdsOO.js → theme-stage-page-BBUhsE2D.js} +1 -1
  177. package/dist/assets/{tiptap-document-editor-DKMoKoh8.js → tiptap-document-editor-DR6f403A.js} +1 -1
  178. package/dist/assets/tool-detail-panel-Bia85tXo.js +15 -0
  179. package/dist/assets/tool-detail-panel-CEtClwDC.js +1 -0
  180. package/dist/assets/{trait-cycle-row-CEjLtk4k.js → trait-cycle-row-BRsd1qDW.js} +1 -1
  181. package/dist/assets/{upgrade-cancel-page-DiBBCbGz.js → upgrade-cancel-page-Cb2Knf6m.js} +1 -1
  182. package/dist/assets/{upgrade-success-page-vRKNt1oK.js → upgrade-success-page-5FOrQc3B.js} +1 -1
  183. package/dist/assets/{usage-redirect-page-Townvqx7.js → usage-redirect-page-DmacFGtX.js} +1 -1
  184. package/dist/assets/use-app-delete-C6E5CTp4.js +1 -0
  185. package/dist/assets/use-assistant-identity-details-BqNoC_Po.js +1 -0
  186. package/dist/assets/use-checkout-dismiss-refresh-DFYkYYpp.js +1 -0
  187. package/dist/assets/{use-edge-swipe-back-DfMnwl0d.js → use-edge-swipe-back-DMaMp9xI.js} +1 -1
  188. package/dist/assets/{use-hotkey-recorder-D_1QmHir.js → use-hotkey-recorder-CVYKioKK.js} +1 -1
  189. package/dist/assets/use-invite-link-dialog-ChgRhNyN.js +1 -0
  190. package/dist/assets/{use-platform-assistant-id-C38cqSx8.js → use-platform-assistant-id-CPNM_Svc.js} +1 -1
  191. package/dist/assets/use-return-to-short-circuit-dsa2YMci.js +1 -0
  192. package/dist/assets/{use-side-list-room-DzKpL0NC.js → use-side-list-room-XknEC6_F.js} +1 -1
  193. package/dist/assets/{use-skill-actions-CKqj7Lex.js → use-skill-actions-B7qsFEjO.js} +1 -1
  194. package/dist/assets/{use-skill-detail-files-B2V57QXl.js → use-skill-detail-files-Caa0kAOC.js} +1 -1
  195. package/dist/assets/use-supports-credentials-settings-CxEHVJ-e.js +1 -0
  196. package/dist/assets/use-transcript-message-by-id-Bnbe06RA.js +1 -0
  197. package/dist/assets/{vendor-Bb38ZAP8.js → vendor-DYOeoIwg.js} +2 -2
  198. package/dist/assets/voice-page-D237ka3h.js +1 -0
  199. package/dist/assets/{wake-detail-panel-BGhS36s_.js → wake-detail-panel-JG7TyKGn.js} +1 -1
  200. package/dist/assets/{weather-forecast-display-I9ZtiVK8.js → weather-forecast-display-CZYQX4n1.js} +1 -1
  201. package/dist/assets/{web-DaV6ODqC.js → web-7w3Y8MVH.js} +1 -1
  202. package/dist/assets/{web-BtCscj_5.js → web-B_ZkQa17.js} +1 -1
  203. package/dist/assets/{web-BX2ShQf7.js → web-Bb3bM_rE.js} +1 -1
  204. package/dist/assets/{web-Cn4ht-7M.js → web-CQyztjRg.js} +1 -1
  205. package/dist/assets/{web-DfaIhdEx.js → web-CkN0uo01.js} +1 -1
  206. package/dist/assets/{web-Du0h1dfg.js → web-DZd0e2iR.js} +1 -1
  207. package/dist/assets/{web-D2gsz8Ak.js → web-DpFmNxr1.js} +1 -1
  208. package/dist/assets/{web-41u0plob.js → web-ZV0_2EZ9.js} +1 -1
  209. package/dist/assets/{web-CoanRUCz.js → web-ocPGQzbv.js} +1 -1
  210. package/dist/assets/welcome-screen-CQo-_cIi.js +1 -0
  211. package/dist/assets/workflow-detail-panel-rYCgZeUb.js +1 -0
  212. package/dist/assets/workspace-CrT6IjXz.js +1 -0
  213. package/dist/assets/workspace-D-j7Q1o1.js +1 -0
  214. package/dist/assets/{workspace-CeqSeJWC.js → workspace-DOerIby3.js} +1 -1
  215. package/dist/assets/workspace-Db-P5zkL.js +1 -0
  216. package/dist/assets/workspace-page-Bx0l3azH.js +1 -0
  217. package/dist/index.html +3 -3
  218. package/package.json +1 -1
  219. package/dist/assets/activation-list-route-C5G8yEUf.js +0 -1
  220. package/dist/assets/activity-steps-panel-DIclL9Tz.js +0 -1
  221. package/dist/assets/add-credits-modal-6gK5H4L1.js +0 -1
  222. package/dist/assets/ai-page-BKChlGuu.js +0 -1
  223. package/dist/assets/android-billing-handoff-DzlmB2oT.js +0 -1
  224. package/dist/assets/app-DKzyKjOQ.css +0 -2
  225. package/dist/assets/app-DVwAB8n7.js +0 -392
  226. package/dist/assets/auth-store-BKA7qeyc.js +0 -1
  227. package/dist/assets/avatar-bundled-components-CfJ4yCfG.js +0 -1
  228. package/dist/assets/avatar-random-Dpf2HGEt.js +0 -2
  229. package/dist/assets/billing-page-Cryn2tS8.js +0 -3
  230. package/dist/assets/channel-transcript-panel-DRxsCwgF.js +0 -1
  231. package/dist/assets/channels-page-route-5Wzd9sdm.js +0 -1
  232. package/dist/assets/chat-IAmPP3KS.js +0 -3
  233. package/dist/assets/chat-info-panel-jVdi1Ymk.js +0 -1
  234. package/dist/assets/checkout-return-target-Tp8s053l.js +0 -1
  235. package/dist/assets/command-palette-B0GwCVSG.js +0 -1
  236. package/dist/assets/common-84oKDglL.js +0 -1
  237. package/dist/assets/common-Bd7JWmbm.js +0 -1
  238. package/dist/assets/common-Bvc-Ql-Q.js +0 -1
  239. package/dist/assets/common-W_BUmTCE.js +0 -1
  240. package/dist/assets/companion-surface-page-B4KKIFMX.js +0 -1
  241. package/dist/assets/contacts-gateway-D3D6BcYj.js +0 -1
  242. package/dist/assets/contacts-page-route-CnXN1b9Q.js +0 -1
  243. package/dist/assets/copy-button-BokGIgJY.js +0 -1
  244. package/dist/assets/debug-page-DnMnJB9J.js +0 -4
  245. package/dist/assets/deploy-dialogs-pR2YX6w3.js +0 -1
  246. package/dist/assets/desktop-preview-content-CtoOBBq1.js +0 -2
  247. package/dist/assets/detail-primitives-BHSuCinp.js +0 -1
  248. package/dist/assets/developer-page-B0eQkOPk.js +0 -1
  249. package/dist/assets/document-load-Drr0n43P.js +0 -1
  250. package/dist/assets/document-viewer-page-C3QkSuJO.js +0 -1
  251. package/dist/assets/emails-page-BcIyo_vg.js +0 -1
  252. package/dist/assets/environment-store-2DxNubrI.js +0 -1
  253. package/dist/assets/esm-BQ7nByB7.js +0 -2
  254. package/dist/assets/esm-BQzpPH7j.js +0 -2
  255. package/dist/assets/esm-C9U16T0B.js +0 -2
  256. package/dist/assets/esm-CIA53Y2C.js +0 -1
  257. package/dist/assets/esm-Cw8fKFJk.js +0 -2
  258. package/dist/assets/esm-Ijlkodih.js +0 -2
  259. package/dist/assets/esm-xXsIdL3G.js +0 -1
  260. package/dist/assets/file-editor-Dm434b4v.js +0 -1
  261. package/dist/assets/general-page-Dg2tgz5k.js +0 -2
  262. package/dist/assets/hatching-screen-ZSoxM5tf.js +0 -1
  263. package/dist/assets/identity-page-route-DkzYAjGT.js +0 -7
  264. package/dist/assets/inspect-page-D_TZU3Hd.js +0 -9
  265. package/dist/assets/integrations-page-B3CDxIc7.js +0 -1
  266. package/dist/assets/intelligence-layout-De5u_8iO.js +0 -1
  267. package/dist/assets/intelligence-layout-slots-store-N3obF-c5.js +0 -1
  268. package/dist/assets/library-detail-page-DZtYl2_5.js +0 -1
  269. package/dist/assets/local-mode-BEXEOOD-.js +0 -1
  270. package/dist/assets/logout-page-Di8TrFPN.js +0 -1
  271. package/dist/assets/markdown-preview-bFFtI7RX.js +0 -1
  272. package/dist/assets/native-attachment-pickers-CpYVjv9a.js +0 -1
  273. package/dist/assets/native-file-Dsfi4Mv0.js +0 -1
  274. package/dist/assets/paired-platform-identity-Dcv6Ntac.js +0 -1
  275. package/dist/assets/password-reset-page-B3_GA-20.js +0 -1
  276. package/dist/assets/plans-page-Db7a4r_j.js +0 -1
  277. package/dist/assets/plugins-surface-BxUa-wvt.js +0 -1
  278. package/dist/assets/privacy-page-BZEfySAp.js +0 -1
  279. package/dist/assets/referral-modal-DO65gxwh.js +0 -1
  280. package/dist/assets/referral-modal-DOb0dvou.js +0 -1
  281. package/dist/assets/research-onboarding-route-BKQuNKPZ.js +0 -50
  282. package/dist/assets/routes-BpedycpL.js +0 -1
  283. package/dist/assets/schedules-page-Cma0_6MM.js +0 -1
  284. package/dist/assets/select-assistant-screen-BXsiUnpH.js +0 -1
  285. package/dist/assets/settings-DI5uzcZ7.js +0 -3
  286. package/dist/assets/settings-Jd2dLYIY.js +0 -3
  287. package/dist/assets/settings-layout-eaFhHddb.js +0 -1
  288. package/dist/assets/share-feedback-modal-BHI_Kl78.js +0 -1
  289. package/dist/assets/share-feedback-modal-DudAfY4T.js +0 -2
  290. package/dist/assets/skill-detail-panel-CipMYJDL.js +0 -1
  291. package/dist/assets/subagent-detail-panel-t1cMMnPg.js +0 -1
  292. package/dist/assets/superpowers-page-C890W40w.js +0 -1
  293. package/dist/assets/tool-detail-panel-42l_9PIi.js +0 -15
  294. package/dist/assets/tool-detail-panel-DPUg7OdL.js +0 -1
  295. package/dist/assets/use-app-delete--tLzs8qO.js +0 -1
  296. package/dist/assets/use-assistant-identity-details-DbPNLHHf.js +0 -1
  297. package/dist/assets/use-checkout-dismiss-refresh-R9LDgMHM.js +0 -1
  298. package/dist/assets/use-debounced-value-DF3v-L7L.js +0 -1
  299. package/dist/assets/use-invite-link-dialog-B5zQpepB.js +0 -1
  300. package/dist/assets/use-return-to-short-circuit-uUCP2mmo.js +0 -1
  301. package/dist/assets/use-supports-credentials-settings-QqPznGxI.js +0 -1
  302. package/dist/assets/use-transcript-message-by-id-vZ9vFhLM.js +0 -1
  303. package/dist/assets/voice-page-8O_m2iz4.js +0 -1
  304. package/dist/assets/welcome-screen-Byi-1I4U.js +0 -1
  305. package/dist/assets/workflow-detail-panel-CCE4QmaM.js +0 -1
  306. package/dist/assets/workspace-B4454wwE.js +0 -1
  307. package/dist/assets/workspace-D1tA-3bz.js +0 -1
  308. package/dist/assets/workspace-PUZSBWH4.js +0 -1
  309. package/dist/assets/workspace-page-BWfU9wct.js +0 -1
  310. /package/dist/assets/{account-Dz_iEfvV.js → account-1POZPT9m.js} +0 -0
  311. /package/dist/assets/{account-DzYvyyF-.js → account-BBvlSFcW.js} +0 -0
  312. /package/dist/assets/{account-D_kQgEd7.js → account-DV-tB0oh.js} +0 -0
  313. /package/dist/assets/{account-CmPU5JUK.js → account-n9xXc949.js} +0 -0
  314. /package/dist/assets/{activation-BtusZYzQ.js → activation-B2g-Oe-r.js} +0 -0
  315. /package/dist/assets/{activation-BRxQYbI8.js → activation-BtZhlZ_s.js} +0 -0
  316. /package/dist/assets/{activation-BaZMLD3R.js → activation-CaYos65l.js} +0 -0
  317. /package/dist/assets/{activation-DbiSlIjg.js → activation-dc_gRGWQ.js} +0 -0
  318. /package/dist/assets/{activation-tasks-YiuCfTtp.js → activation-tasks-C5NV7wu7.js} +0 -0
  319. /package/dist/assets/{activation-tasks-bRtYLLFo.js → activation-tasks-CvYLTc0s.js} +0 -0
  320. /package/dist/assets/{activation-tasks-BdYlW_us.js → activation-tasks-CzjUeEj1.js} +0 -0
  321. /package/dist/assets/{activation-tasks-DQf05sGO.js → activation-tasks-D057dozu.js} +0 -0
  322. /package/dist/assets/{app-types-CjoGEGYN.js → app-types-2kvircdH.js} +0 -0
  323. /package/dist/assets/{build.umd-D1DxkJZ3.js → build.umd-BWfbInTw.js} +0 -0
  324. /package/dist/assets/{channels-4CR6ZJMQ.js → channels-BnJWh26Z.js} +0 -0
  325. /package/dist/assets/{channels-DOLXdJkc.js → channels-LgPH3TQp.js} +0 -0
  326. /package/dist/assets/{channels-BOKJeCXb.js → channels-QZtdATsC.js} +0 -0
  327. /package/dist/assets/{channels-B2rZPdSw.js → channels-itxMVi8q.js} +0 -0
  328. /package/dist/assets/{contacts-BBLvI5Uj.js → contacts-D6N3gRLL.js} +0 -0
  329. /package/dist/assets/{contacts-DpvUSU_B.js → contacts-DP3Crat5.js} +0 -0
  330. /package/dist/assets/{contacts-C0C_BJUk.js → contacts-X4REeAsN.js} +0 -0
  331. /package/dist/assets/{contacts-BbBOEeer.js → contacts-yIhQlpq2.js} +0 -0
  332. /package/dist/assets/{credential-requests-C0i6NSn6.js → credential-requests-1WDcifE6.js} +0 -0
  333. /package/dist/assets/{credential-requests-S4K-P7h7.js → credential-requests-D6SU6G2Z.js} +0 -0
  334. /package/dist/assets/{credential-requests-BA09bqb0.js → credential-requests-DKbR-6qV.js} +0 -0
  335. /package/dist/assets/{credential-requests-DvWfZlaG.js → credential-requests-DrJdsdeJ.js} +0 -0
  336. /package/dist/assets/{definitions-B_hI7hUU.js → definitions-DhwHuMC5.js} +0 -0
  337. /package/dist/assets/{definitions-yE7PUCf5.js → definitions-Qg1-j0J7.js} +0 -0
  338. /package/dist/assets/{emoji-catalog-data-DMFEL5YE.js → emoji-catalog-data-Yyjk_IDu.js} +0 -0
  339. /package/dist/assets/{format-countdown-BwaE898Q.js → format-countdown-BEyU91h0.js} +0 -0
  340. /package/dist/assets/{home-BKXSP2ga.js → home-CQRYKQ5-.js} +0 -0
  341. /package/dist/assets/{home-BiZNhI7w.js → home-DQz-gw5J.js} +0 -0
  342. /package/dist/assets/{home-BajVD9Qe.js → home-jvtY7w4T.js} +0 -0
  343. /package/dist/assets/{home-CQ09sKqx.js → home-uZ5Qvj6E.js} +0 -0
  344. /package/dist/assets/{intelligence-CIXn9-lA.js → intelligence-8J0ZD9Ph.js} +0 -0
  345. /package/dist/assets/{intelligence-BaO9LsAs.js → intelligence-C2fySq4l.js} +0 -0
  346. /package/dist/assets/{intelligence-CDSWEGS8.js → intelligence-DFMbHITq.js} +0 -0
  347. /package/dist/assets/{intelligence-lNYsQVZz.js → intelligence-dNqws_vC.js} +0 -0
  348. /package/dist/assets/{library-B2Pzmtjc.js → library-BXLScXI1.js} +0 -0
  349. /package/dist/assets/{library-C0kiQgQ3.js → library-D7tisF9R.js} +0 -0
  350. /package/dist/assets/{library-Bjt3XhDx.js → library-IMXA70AZ.js} +0 -0
  351. /package/dist/assets/{library-D6O09spl.js → library-gTJv7Oz7.js} +0 -0
  352. /package/dist/assets/{link-click-v-LNbHFB.js → link-click-BYgcUBN3.js} +0 -0
  353. /package/dist/assets/{logs-eIJmFRmK.js → logs-DV_rbeyU.js} +0 -0
  354. /package/dist/assets/{logs-C95Xf28N.js → logs-gUmqmCAe.js} +0 -0
  355. /package/dist/assets/{logs-bmXePsd8.js → logs-itULWBC4.js} +0 -0
  356. /package/dist/assets/{logs-BzQGcqNO.js → logs-ji3E1A5W.js} +0 -0
  357. /package/dist/assets/{machine-sizes-CrcROrDy.js → machine-sizes-Cyr9sICv.js} +0 -0
  358. /package/dist/assets/{onboarding-CS6Mi_F1.js → onboarding-4AB8OdqK.js} +0 -0
  359. /package/dist/assets/{onboarding-D69I4hvD.js → onboarding-Bv6Vw7rT.js} +0 -0
  360. /package/dist/assets/{onboarding--Wy4m10C.js → onboarding-C9uVVsD1.js} +0 -0
  361. /package/dist/assets/{onboarding-f5n3lMje.js → onboarding-CFxxcqra.js} +0 -0
  362. /package/dist/assets/{onboarding-step-layout-ChzVnOKw.js → onboarding-step-layout-XiwLE8P3.js} +0 -0
  363. /package/dist/assets/{pdf-CujX6bxw.js → pdf-DZqed7HH.js} +0 -0
  364. /package/dist/assets/{plugin-attribution-D1IJgqV1.js → plugin-attribution-B2jD5Q1N.js} +0 -0
  365. /package/dist/assets/{radio-card-nav-3U2u720-.js → radio-card-nav-BtZq6gZp.js} +0 -0
  366. /package/dist/assets/{remote-web-CWtk0LM4.js → remote-web-BClKYDvU.js} +0 -0
  367. /package/dist/assets/{remote-web-NA9EGY-O.js → remote-web-BTqxQIZY.js} +0 -0
  368. /package/dist/assets/{remote-web-DpKl3oDz.js → remote-web-BqE5HtVx.js} +0 -0
  369. /package/dist/assets/{remote-web-C7EUNITU.js → remote-web-Cy9y7nTE.js} +0 -0
  370. /package/dist/assets/{schedules-Domzk98q.js → schedules-BZCt6hXe.js} +0 -0
  371. /package/dist/assets/{schedules-BCIm7ddC.js → schedules-Capmqn71.js} +0 -0
  372. /package/dist/assets/{schedules-DQxwwm_W.js → schedules-DDJ36QQM.js} +0 -0
  373. /package/dist/assets/{schedules-Dkqr0Dxl.js → schedules-DO26F1mH.js} +0 -0
  374. /package/dist/assets/{skill-icon-B7ALU8Ca.js → skill-icon-DLqnaRMf.js} +0 -0
  375. /package/dist/assets/{terminal-BWP7MJfi.js → terminal-1uiH9Lk0.js} +0 -0
  376. /package/dist/assets/{terminal-rCr_x_K0.js → terminal-BKHabeoN.js} +0 -0
  377. /package/dist/assets/{terminal-fRZqMWcv.js → terminal-CWSI_cvE.js} +0 -0
  378. /package/dist/assets/{terminal-c5W6MjVz.js → terminal-DHtM2WSE.js} +0 -0
  379. /package/dist/assets/{usage-window-nB8J9zGt.js → usage-window-DA_JAjjs.js} +0 -0
  380. /package/dist/assets/{use-truncated-blob-text-BnZS-VRC.js → use-truncated-blob-text-BArL-keL.js} +0 -0
  381. /package/dist/assets/{xterm-Cf-2wol9.js → xterm-DuUTQzS6.js} +0 -0
  382. /package/dist/assets/{xterm-addon-fit-BdGbxecv.js → xterm-addon-fit-DuSb5pvT.js} +0 -0
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$f as t,Br as n,Cx as r,Db as i,Eb as a,Ex as o,Fb as s,Hb as c,Hx as l,K_ as u,Lx as d,Mr as f,Nr as p,Ox as m,Px as h,Q_ as g,Rr as _,Sp as v,Uh as y,Vi as b,Vx as x,W_ as S,Wx as C,X_ as w,al as T,bp as E,cf as D,cs as O,df as k,ep as A,et as j,ev as M,ff as N,gc as P,gx as F,id as I,il as L,jr as R,lf as z,np as B,nu as V,ol as H,pf as ee,tp as U,uf as te,un as W,wx as G,zr as K}from"./app-Tg6YU_tZ.js";import{Jn as q,Qn as ne,Zn as J,er as Y,j as X}from"./vendor-DYOeoIwg.js";import{_ as re,f as ie,t as ae,x as oe}from"./react-B9IgSVeK.js";import{It as se,Ja as ce,Nt as le,Qr as ue,Xr as de,_t as fe,ci as pe,ht as me,i as he,k as ge,qi as _e,qn as Z}from"./icons-QG1KAFmx.js";import{t as ve}from"./use-platform-assistant-id-CPNM_Svc.js";var ye=ce(`cable`,[[`path`,{d:`M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z`,key:`trhst0`}],[`path`,{d:`M17 21v-2`,key:`ds4u3f`}],[`path`,{d:`M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10`,key:`1mo9zo`}],[`path`,{d:`M21 21v-2`,key:`eo0ou`}],[`path`,{d:`M3 5V3`,key:`1k5hjh`}],[`path`,{d:`M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z`,key:`1dd30t`}],[`path`,{d:`M7 5V3`,key:`1t1388`}]]),be=ce(`calendar-plus`,[[`path`,{d:`M16 19h6`,key:`xwg31i`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M19 16v6`,key:`tddt3s`}],[`path`,{d:`M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5`,key:`1glfrc`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}]]),Q=e(oe(),1),$=ae();function xe({displayName:e,providerKey:t,logoUrl:n,connections:r,connectionsLoading:i,oauthInProgress:a,onCancelConnect:o,disconnectingId:s,onConnect:c,onDisconnect:l,connectPresets:u=[],tenantHost:m}){let{t:g}=X(`settings`),_=f(m),v=a||!_.valid,y=e=>c(e,_.normalized),b=m?(0,$.jsx)(h,{label:m.label,type:`text`,value:_.value,onChange:e=>_.setValue(e.target.value),placeholder:m.placeholder,"aria-invalid":_.showsInvalid||void 0,helperText:_.showsInvalid?g(`managedOauthTab.tenantHostInvalid`,{label:m.label,placeholder:m.placeholder}):void 0,disabled:a,autoComplete:`off`,autoCapitalize:`none`,spellCheck:!1,fullWidth:!0}):null;return i?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,$.jsx)(Z,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):r.length===0?a?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,$.jsx)(p,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(Z,{className:`h-3.5 w-3.5 animate-spin`}),g(`managedOauthTab.waitingForAuthorization`),(0,$.jsx)(C,{variant:`ghost`,size:`compact`,onClick:o,children:g(`managedOauthTab.cancel`)})]})]}):(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,$.jsx)(p,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:g(`managedOauthTab.connectToContinue`)}),b&&(0,$.jsx)(`div`,{className:`w-full max-w-sm`,children:b}),(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,$.jsx)(C,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(se,{}),onClick:()=>y(),disabled:v,children:g(`managedOauthTab.connectAccount`)}),u.map(e=>(0,$.jsx)(C,{variant:`outlined`,size:`compact`,leftIcon:(0,$.jsx)(be,{}),onClick:()=>y(e.scopes),disabled:v,children:e.label},e.id))]})]}):(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)]`,children:[(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(r=>{let i=s===r.id,a=r.account_label??g(`managedOauthTab.accountFallback`,{name:e});return(0,$.jsxs)(`li`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,$.jsx)(p,{providerKey:t,displayName:e,logoUrl:n,size:20}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate text-body-medium-default text-[var(--content-default)]`,children:a}),(0,$.jsx)(d,{tone:r.connected?`positive`:`negative`,children:r.connected?g(`managedOauthTab.statusConnected`):g(`managedOauthTab.statusNeedsAttention`)})]}),(0,$.jsx)(C,{variant:`dangerOutline`,size:`compact`,iconOnly:i?(0,$.jsx)(Z,{className:`animate-spin`}):(0,$.jsx)(ge,{}),onClick:()=>l(r),disabled:i,"aria-label":g(`managedOauthTab.disconnectAriaLabel`,{account:a})})]},r.id)})}),(0,$.jsx)(`div`,{className:`border-t border-[var(--border-base)] px-4 py-3 dark:border-[var(--border-base)]`,children:a?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(Z,{className:`h-3.5 w-3.5 animate-spin`}),g(`managedOauthTab.waitingForAuthorization`),(0,$.jsx)(C,{variant:`ghost`,size:`compact`,onClick:o,children:g(`managedOauthTab.cancel`)})]}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[b&&(0,$.jsx)(`div`,{className:`max-w-sm`,children:b}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(C,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(de,{}),onClick:()=>y(),disabled:v,children:g(`managedOauthTab.connectAccountLower`)}),u.map(e=>(0,$.jsx)(C,{variant:`outlined`,size:`compact`,leftIcon:(0,$.jsx)(be,{}),onClick:()=>y(e.scopes),disabled:v,children:e.label},e.id))]})]})})]})}function Se(e){return e.length>16?`${e.slice(0,12)}…${e.slice(-4)}`:e.length>8?`${e.slice(0,8)}…`:e}function Ce(e){try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function we({assistantId:e,providerKey:n,displayName:i,logoUrl:a}){let{t:o}=X(`settings`),s=Y(),c=J({...te({path:{assistant_id:e},query:{provider_key:n}}),select:e=>e.apps}),d=J({...N({path:{assistant_id:e,providerKey:n}}),select:e=>e.oauth_callback_url}),f=c.data??[],m=d.data??null,g=ne({queries:f.map(t=>({...D({path:{assistant_id:e,appId:t.id}}),select:e=>e.connections}))}),_={};f.forEach((e,t)=>{_[e.id]=g[t]?.data??[]});let v=k({path:{assistant_id:e},query:{provider_key:n}}),y=U({onSuccess:()=>{s.invalidateQueries({queryKey:v}),O(``),M(``),T(!1),G.success(o(`yourOwnOauthTab.appAddedToast`,{name:i}))},onError:e=>{G.error(e.message||o(`yourOwnOauthTab.createFailedToast`))}}),b=A({onSuccess:()=>{s.invalidateQueries({queryKey:v}),G.success(o(`yourOwnOauthTab.appDeletedToast`))},onError:e=>{G.error(e.message||o(`yourOwnOauthTab.deleteFailedToast`))}}),x=t({onSuccess:e=>{`auth_url`in e&&(window.location.href=e.auth_url)},onError:e=>{G.error(e.message||o(`yourOwnOauthTab.connectFailedToast`))}}),S=B(),[w,T]=(0,Q.useState)(!1),[E,O]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(``),[P,F]=(0,Q.useState)(!1),[I,L]=(0,Q.useState)(null),[R,V]=(0,Q.useState)(null),H=y.isPending,ee=b.isPending?b.variables?.path?.id??null:null,W=x.isPending?x.variables?.path?.appId??null:null,K=S.isPending?S.variables?.path?.id??null:null,q=()=>{let t=E.trim(),r=j.trim();!t||!r||y.mutate({path:{assistant_id:e},body:{provider_key:n,client_id:t,client_secret:r}})},re=()=>{let t=I;L(null),t&&b.mutate({path:{assistant_id:e,id:t.id}})},ie=t=>{x.mutate({path:{assistant_id:e,appId:t.id},body:{callback_transport:`gateway`,scopes:[]}})};return c.isLoading?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,$.jsx)(Z,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[f.length===0||w?(0,$.jsx)(l.Root,{children:(0,$.jsxs)(l.Body,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:f.length===0?o(`yourOwnOauthTab.addOwnApp`,{name:i}):o(`yourOwnOauthTab.addAnotherApp`,{name:i})}),(0,$.jsx)(`p`,{className:`text-body-small-lighter leading-relaxed text-[var(--content-tertiary)]`,children:o(`yourOwnOauthTab.credentialsNote`)})]}),m?(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:o(`yourOwnOauthTab.redirectUrl`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(h,{type:`text`,value:m,readOnly:!0,fullWidth:!0}),(0,$.jsx)(C,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{u(m,{successMessage:o(`yourOwnOauthTab.copiedToast`),errorMessage:o(`yourOwnOauthTab.copyFailedToast`),onCopied:()=>{F(!0),setTimeout(()=>F(!1),2e3)}})},"aria-label":o(P?`yourOwnOauthTab.copiedAria`:`yourOwnOauthTab.copyRedirectAria`),iconOnly:P?(0,$.jsx)(_e,{"aria-hidden":!0}):(0,$.jsx)(pe,{"aria-hidden":!0})})]}),(0,$.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:o(`yourOwnOauthTab.redirectHint`)})]}):null,(0,$.jsx)(h,{label:o(`yourOwnOauthTab.clientId`),type:`text`,value:E,onChange:e=>O(e.target.value),placeholder:o(`yourOwnOauthTab.clientIdPlaceholder`),fullWidth:!0}),(0,$.jsx)(h,{label:o(`yourOwnOauthTab.clientSecret`),type:`password`,value:j,onChange:e=>M(e.target.value),placeholder:o(`yourOwnOauthTab.clientSecretPlaceholder`),fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-1`,children:[f.length>0?(0,$.jsx)(C,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{T(!1),O(``),M(``)},disabled:H,children:o(`yourOwnOauthTab.cancel`)}):null,(0,$.jsx)(C,{type:`button`,size:`compact`,onClick:q,disabled:H||!E.trim()||!j.trim(),leftIcon:H?(0,$.jsx)(Z,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(se,{"aria-hidden":!0}),children:o(`yourOwnOauthTab.addApp`)})]})]})}):null,f.map(e=>{let t=_[e.id]??[],r=ee===e.id,s=W===e.id;return(0,$.jsx)(l.Root,{children:(0,$.jsxs)(l.Body,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,$.jsx)(`p`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:Se(e.client_id)}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:o(`yourOwnOauthTab.addedOn`,{date:Ce(e.created_at)})})]}),(0,$.jsx)(C,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>L(e),disabled:r,"aria-label":o(`yourOwnOauthTab.deleteAppAria`,{id:Se(e.client_id)}),iconOnly:r?(0,$.jsx)(Z,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(ge,{"aria-hidden":!0})})]}),t.length>0?(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)] overflow-hidden rounded-md border border-[var(--border-base)] dark:divide-[var(--border-base)] dark:border-[var(--border-base)]`,children:t.map(t=>{let r=K===t.id,s=t.account_info??o(`yourOwnOauthTab.accountFallback`,{name:i});return(0,$.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2`,children:[(0,$.jsx)(p,{providerKey:n,displayName:i,logoUrl:a,size:18}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-lighter text-[var(--content-default)]`,children:s}),(0,$.jsx)(C,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>V({appId:e.id,connection:t}),disabled:r,"aria-label":o(`yourOwnOauthTab.disconnectAria`,{account:s}),iconOnly:r?(0,$.jsx)(Z,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(ge,{"aria-hidden":!0})})]},t.id)})}):null,(0,$.jsx)(C,{type:`button`,size:`compact`,onClick:()=>ie(e),disabled:s,className:`w-full`,leftIcon:s?(0,$.jsx)(Z,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(de,{"aria-hidden":!0}),children:o(s?`yourOwnOauthTab.waitingAuthorization`:`yourOwnOauthTab.connectAccount`)})]})},e.id)}),f.length>0&&!w?(0,$.jsx)(C,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>T(!0),className:`w-full border-dashed`,leftIcon:(0,$.jsx)(se,{"aria-hidden":!0}),children:o(`yourOwnOauthTab.addAnotherAppButton`)}):null,(0,$.jsx)(r,{open:I!==null,title:o(`yourOwnOauthTab.deleteAppTitle`),message:I?o(`yourOwnOauthTab.deleteAppMessage`,{id:Se(I.client_id)}):``,confirmLabel:o(`yourOwnOauthTab.delete`),destructive:!0,onConfirm:re,onCancel:()=>L(null)}),(0,$.jsx)(r,{open:R!==null,title:o(`yourOwnOauthTab.disconnectTitle`,{name:i}),message:R?o(`yourOwnOauthTab.disconnectMessage`,{account:R.connection.account_info??o(`yourOwnOauthTab.accountFallback`,{name:i})}):``,confirmLabel:o(`yourOwnOauthTab.disconnect`),destructive:!0,onConfirm:()=>{let t=R;V(null),t&&S.mutate({path:{assistant_id:e,id:t.connection.id}},{onSuccess:()=>{let n=z({path:{assistant_id:e,appId:t.appId}});s.invalidateQueries({queryKey:n}),s.invalidateQueries({queryKey:v}),G.success(o(`yourOwnOauthTab.disconnectedToast`,{name:i}))},onError:e=>{G.error(e.message||o(`yourOwnOauthTab.disconnectFailedToast`))}})},onCancel:()=>V(null)})]})}var Te={};function Ee(e){return Te[e]??[]}var De={slack:`slack_channel`,discord:`discord_channel`,telegram:`telegram`};function Oe(e){return Object.entries(De).some(([t,n])=>t===e&&n!==e)}function ke(e){return{connectedCount:e.filter(e=>e.connected).length,needsAttention:e.some(e=>!e.connected)}}function Ae(e,t){return e.filter(e=>e.provider===t)}function je(e){if(e.transport.url)try{return new URL(e.transport.url).hostname}catch{return}}function Me(e,t,n){return[...e.filter(e=>e.supports_managed_mode).flatMap(e=>{let n=Ae(t,e.provider_key);return Oe(e.provider_key)&&n.length===0?[]:[{kind:`oauth`,id:`oauth:${e.provider_key}`,name:e.display_name??e.provider_key,description:e.description??``,configured:n.length>0,provider:e,connections:n}]}),...n.map(e=>({kind:`mcp`,id:`mcp:${e.id}`,name:e.id,description:[e.pluginName,je(e)].filter(Boolean).join(` `),configured:!0,server:e}))]}function Ne(e,t){let n=t.trim().toLocaleLowerCase();return e.filter(e=>!n||e.name.toLocaleLowerCase().includes(n)||e.description.toLocaleLowerCase().includes(n)).sort((e,t)=>Number(t.configured)-Number(e.configured)||e.name.localeCompare(t.name)||e.id.localeCompare(t.id))}function Pe({assistantId:e,platformAssistantId:t,providerKey:n,displayName:i,description:a,logoUrl:o,platformGate:s,tenantHost:l,onClose:u}){let{t:d}=X(`settings`),f=Y(),h=s===`full`,g=!E(),[v,y]=(0,Q.useState)(s===`gated`&&g?`your-own`:`managed`),x=(0,Q.useMemo)(()=>[{value:`managed`,label:d(`integrationDetailModal.managedTab`)},{value:`your-own`,label:d(`integrationDetailModal.yourOwnTab`)}],[d]);(0,Q.useEffect)(()=>{!g&&v===`your-own`&&y(`managed`)},[g,v]);let[S,w]=(0,Q.useState)(null),[D,O]=(0,Q.useState)(null),k=T({path:{assistant_id:t}}),{data:A,isLoading:j}=J({...L({path:{assistant_id:t}}),enabled:h}),M=Ae(A??[],n),N=_({assistantId:e,providerKey:n,providerLabel:i}),P=R(n,l),F=(e,t)=>{h&&N.connect(e,t)},I=N.status;(0,Q.useEffect)(()=>{I===`connected`&&G.success(d(`useOauthConnect.accountConnected`,{name:i,ns:`common`}))},[I,i,d]);let z=N.dismiss;(0,Q.useEffect)(()=>z,[z]);let B=N.errorMessage;(0,Q.useEffect)(()=>{B&&G.error(B)},[B]);let ee={path:{assistant_id:t}},U=V({onSuccess(e,t){G.success(d(`integrationDetailModal.disconnectedToast`,{name:i}));let n=t.path.connection_id;H(f,ee,e=>e?.filter(e=>e.id!==n)),f.invalidateQueries({queryKey:k}),w(null)},onError(e){let t=c(e,void 0,d(`integrationDetailModal.disconnectFailedToast`,{name:i}));G.error(t),w(null)}});b(),(0,Q.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),u())};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[u]);let te=e=>{O(e)},K=()=>{let e=D;O(null),e&&(w(e.id),U.mutate({path:{assistant_id:t,connection_id:e.id}}))},q=D?.account_label??d(`integrationDetailModal.accountFallback`,{name:i}),ne=a?d(`integrationDetailModal.subtitleWithDescription`,{name:i,description:a}):d(`integrationDetailModal.subtitle`,{name:i});return(0,$.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,children:[(0,$.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`integration-modal-title`,className:`flex w-full max-w-[520px] flex-col overflow-hidden rounded-xl bg-white shadow-xl dark:bg-[var(--surface-lift)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-[var(--border-base)] px-5 py-4 dark:border-[var(--border-base)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(p,{providerKey:n,displayName:i,logoUrl:o,size:32}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{id:`integration-modal-title`,className:`text-title-small text-[var(--content-default)]`,children:d(`integrationDetailModal.title`,{name:i})}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:ne})]})]}),(0,$.jsx)(C,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(he,{}),"aria-label":d(`integrationDetailModal.close`),onClick:u})]}),(0,$.jsxs)(`div`,{className:`space-y-4 px-5 py-4`,children:[s!==`gated`&&g&&(0,$.jsx)(m,{ariaLabel:d(`integrationDetailModal.oauthModeAriaLabel`),items:x,value:v,onChange:y}),v===`managed`&&s!==`gated`?s===`disabled`?(0,$.jsx)(W,{children:d(`integrationDetailModal.loginNotice`)}):(0,$.jsx)(xe,{displayName:i,providerKey:n,logoUrl:o,connections:M,connectionsLoading:j,oauthInProgress:N.status===`attempting`,onCancelConnect:N.dismiss,disconnectingId:U.isPending?S:null,onConnect:F,onDisconnect:te,connectPresets:Ee(n),tenantHost:P}):g?(0,$.jsx)(we,{assistantId:e,providerKey:n,displayName:i,logoUrl:o}):null]}),(0,$.jsx)(`div`,{className:`flex justify-end border-t border-[var(--border-base)] px-5 py-3 dark:border-[var(--border-base)]`,children:(0,$.jsx)(C,{variant:`outlined`,size:`compact`,onClick:u,children:d(`integrationDetailModal.confirm`)})})]}),(0,$.jsx)(r,{open:D!==null,title:d(`integrationDetailModal.disconnectTitle`,{name:i}),message:D?d(`integrationDetailModal.disconnectMessage`,{account:q}):``,confirmLabel:d(`integrationDetailModal.disconnect`),destructive:!0,onConfirm:K,onCancel:()=>O(null)})]})}function Fe({icon:e,title:t,subtitle:n,status:r,primaryAction:i,actionMenu:a,layout:o=`row`}){return o===`tile`?(0,$.jsxs)(l.Root,{bordered:!0,className:`group flex h-full flex-col gap-3 transition-colors hover:border-[var(--border-hover)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[e,(0,$.jsx)(`div`,{className:`opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 [@media(hover:none)]:opacity-100 [&_button]:max-w-full [&_button]:whitespace-normal [&_button]:pointer-coarse:min-h-11`,children:i})]}),(0,$.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,$.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:t}),n?(0,$.jsx)(`p`,{className:`line-clamp-2 text-body-small-lighter text-[var(--content-tertiary)] [overflow-wrap:anywhere]`,children:n}):null]})]}):(0,$.jsx)(l.Root,{className:`@container`,children:(0,$.jsxs)(l.Body,{padding:`sm`,className:`grid grid-cols-[2rem_minmax(0,1fr)] items-center gap-x-3 gap-y-3 px-4 @[28rem]:grid-cols-[2rem_minmax(0,1fr)_auto]`,children:[e,(0,$.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`p`,{className:`text-title-small text-[var(--content-default)] [overflow-wrap:anywhere]`,children:t}),r]}),n?(0,$.jsx)(`p`,{className:`line-clamp-2 text-body-medium-lighter text-[var(--content-tertiary)] [overflow-wrap:anywhere]`,children:n}):null]}),(0,$.jsxs)(`div`,{className:`col-start-2 flex min-w-0 flex-wrap items-center gap-2 @[28rem]:col-start-3 @[28rem]:row-start-1 [&_button]:max-w-full [&_button]:min-h-11 [&_button]:whitespace-normal`,children:[i,a]})]})})}function Ie({providerKey:e,displayName:t,description:n,logoUrl:r,connections:i,disabled:a,layout:o,onConfigure:s}){let{t:c}=X(`settings`),{connectedCount:l,needsAttention:u}=ke(i);return(0,$.jsx)(Fe,{layout:o,icon:(0,$.jsx)(p,{providerKey:e,displayName:t,logoUrl:r,size:32}),title:t,subtitle:l>0?c(`integrationRow.connectedAccounts`,{count:l}):n,status:l>0?(0,$.jsx)(d,{tone:`positive`,children:c(`integrationRow.connected`)}):u?(0,$.jsx)(d,{tone:`negative`,children:c(`integrationRow.needsAttention`)}):void 0,primaryAction:(0,$.jsx)(C,{variant:i.length>0?`outlined`:`primary`,onClick:s,disabled:a,children:i.length>0?c(`integrationRow.configure`):c(`integrationRow.connect`)})})}var Le=[{value:`none`,labelKey:`mcpAddServerModal.authNone`},{value:`oauth`,labelKey:`mcpAddServerModal.authOAuth`},{value:`bearer`,labelKey:`mcpAddServerModal.authBearer`},{value:`api-key`,labelKey:`mcpAddServerModal.authApiKey`}],Re=[{value:`sse`,labelKey:`mcpAddServerModal.transportSse`},{value:`streamable-http`,labelKey:`mcpAddServerModal.transportStreamableHttp`},{value:`stdio`,labelKey:`mcpAddServerModal.transportStdio`}];function ze(e){return Le.map(({value:t,labelKey:n})=>({value:t,label:e(n)}))}function Be(e){return Re.map(({value:t,labelKey:n})=>({value:t,label:e(n)}))}function Ve({open:e,onClose:t,onAdd:n,isPending:r}){let{t:i}=X(`settings`),a=(0,Q.useMemo)(()=>ze(i),[i]),s=(0,Q.useMemo)(()=>Be(i),[i]),[c,l]=(0,Q.useState)(``),[u,d]=(0,Q.useState)(`sse`),[f,p]=(0,Q.useState)(``),[m,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(``),[y,b]=(0,Q.useState)(`none`),[x,S]=(0,Q.useState)(``),[w,T]=(0,Q.useState)(`X-API-Key`),[E,D]=(0,Q.useState)(``),O=(0,Q.useCallback)(()=>{l(``),d(`sse`),p(``),g(``),v(``),b(`none`),S(``),T(`X-API-Key`),D(``)},[]),k=(0,Q.useCallback)(()=>{r||(O(),t())},[r,O,t]),A=(0,Q.useCallback)(()=>{let e=c.trim();if(!e)return;let t={name:e,transportType:u};if(u===`stdio`){let e=m.trim();if(!e)return;t.command=e;let n=_.trim();n&&(t.args=n.split(/\s+/))}else{let e=f.trim();if(!e)return;t.url=e,y===`bearer`&&x.trim()?t.headers={Authorization:`Bearer ${x.trim()}`}:y===`api-key`&&w.trim()&&E.trim()?t.headers={[w.trim()]:E.trim()}:y===`oauth`&&(t.autoAuth=!0)}n(t)},[c,u,f,m,_,y,x,w,E,n]),j=u===`stdio`,M=c.trim()&&(j?m.trim():f.trim());return(0,$.jsx)(o.Root,{open:e,onOpenChange:e=>{e||k()},children:(0,$.jsxs)(o.Content,{size:`md`,children:[(0,$.jsxs)(o.Header,{icon:ye,children:[(0,$.jsx)(o.Title,{children:i(`mcpAddServerModal.title`)}),(0,$.jsx)(o.Description,{children:i(`mcpAddServerModal.description`)})]}),(0,$.jsx)(o.Body,{children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-name`,children:i(`mcpAddServerModal.serverNameLabel`)}),(0,$.jsx)(h,{id:`mcp-name`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:i(`mcpAddServerModal.namePlaceholder`),fullWidth:!0,autoFocus:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-transport`,children:i(`mcpAddServerModal.transportLabel`)}),(0,$.jsx)(`select`,{id:`mcp-transport`,value:u,onChange:e=>d(e.target.value),className:`w-full rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-default text-[var(--content-default)] outline-none focus:ring-2 focus:ring-[var(--ring)]`,children:s.map(e=>(0,$.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),j?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-command`,children:i(`mcpAddServerModal.commandLabel`)}),(0,$.jsx)(h,{id:`mcp-command`,type:`text`,value:m,onChange:e=>g(e.target.value),placeholder:i(`mcpAddServerModal.commandPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-args`,children:i(`mcpAddServerModal.argsLabel`)}),(0,$.jsx)(h,{id:`mcp-args`,type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:i(`mcpAddServerModal.argsPlaceholder`),fullWidth:!0})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-url`,children:i(`mcpAddServerModal.serverUrlLabel`)}),(0,$.jsx)(h,{id:`mcp-url`,type:`url`,value:f,onChange:e=>p(e.target.value),placeholder:i(`mcpAddServerModal.urlPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-auth`,children:i(`mcpAddServerModal.authenticationLabel`)}),(0,$.jsx)(`select`,{id:`mcp-auth`,value:y,onChange:e=>b(e.target.value),className:`w-full rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-default text-[var(--content-default)] outline-none focus:ring-2 focus:ring-[var(--ring)]`,children:a.map(e=>(0,$.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),y===`oauth`?(0,$.jsx)(`p`,{className:`rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-3 py-2 text-body-small-lighter text-[var(--content-tertiary)]`,children:i(`mcpAddServerModal.oauthHint`)}):null,y===`bearer`?(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-bearer`,children:i(`mcpAddServerModal.bearerTokenLabel`)}),(0,$.jsx)(h,{id:`mcp-bearer`,type:`password`,value:x,onChange:e=>S(e.target.value),placeholder:i(`mcpAddServerModal.bearerPlaceholder`),fullWidth:!0})]}):null,y===`api-key`?(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-header`,children:i(`mcpAddServerModal.headerNameLabel`)}),(0,$.jsx)(h,{id:`mcp-apikey-header`,type:`text`,value:w,onChange:e=>T(e.target.value),placeholder:i(`mcpAddServerModal.apiKeyHeaderPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-value`,children:i(`mcpAddServerModal.apiKeyLabel`)}),(0,$.jsx)(h,{id:`mcp-apikey-value`,type:`password`,value:E,onChange:e=>D(e.target.value),placeholder:i(`mcpAddServerModal.apiKeyPlaceholder`),fullWidth:!0})]})]}):null]})]})}),(0,$.jsxs)(o.Footer,{children:[(0,$.jsx)(C,{variant:`ghost`,onClick:k,disabled:r,children:i(`mcpAddServerModal.cancel`)}),(0,$.jsx)(C,{variant:`primary`,onClick:A,disabled:!M||r,children:i(r?`mcpAddServerModal.adding`:`mcpAddServerModal.addServer`)})]})]})})}var He=[`none`,`bearer`,`api-key`];function Ue(e,t){switch(e){case`none`:return t(`mcpServerDetailModal.authNone`);case`bearer`:return t(`mcpServerDetailModal.authBearerToken`);case`api-key`:return t(`mcpServerDetailModal.authApiKey`)}}function We({server:e,toolsSummary:t,toolsLoading:n=!1,toolsError:r=!1,readOnly:i=!1,onClose:a,onSave:s,isPending:c}){let{t:l}=X(`settings`),[u,d]=(0,Q.useState)(`none`),[f,p]=(0,Q.useState)(``),[m,g]=(0,Q.useState)(`X-API-Key`),[_,v]=(0,Q.useState)(``);(0,Q.useEffect)(()=>{e&&(d(e.authType),p(``),g(e.authHeaderName??`X-API-Key`),v(``))},[e]);let y=(0,Q.useCallback)(()=>{if(!e||i)return;let t=u!==e.authType,n=u===`bearer`&&f.trim()!==``,r=u===`api-key`&&m.trim()!==``&&_.trim()!==``,a=t||n||r,o;o=a?u===`none`?null:u===`bearer`&&f.trim()?{Authorization:`Bearer ${f.trim()}`}:u===`api-key`&&m.trim()&&_.trim()?{[m.trim()]:_.trim()}:void 0:void 0,s(e.id,{name:e.id,...o===void 0?{}:{headers:o}})},[e,u,f,m,_,s,i]),b=(0,Q.useCallback)(()=>{c||a()},[c,a]);return e?(0,$.jsx)(o.Root,{open:!!e,onOpenChange:e=>{e||b()},children:(0,$.jsxs)(o.Content,{size:`lg`,children:[(0,$.jsxs)(o.Header,{icon:ye,children:[(0,$.jsx)(o.Title,{children:e.id}),(0,$.jsx)(o.Description,{children:l(`mcpServerDetailModal.description`,{transport:e.transport.type,status:e.status})})]}),(0,$.jsx)(o.Body,{children:(0,$.jsxs)(`div`,{className:`space-y-5`,children:[!i&&e.transport.type!==`stdio`?(0,$.jsxs)($.Fragment,{children:[e.hasOAuth?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-3 py-2`,children:[(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:l(`mcpServerDetailModal.authentication`)}),(0,$.jsx)(`span`,{className:`rounded-full bg-[var(--surface-lift)] px-2 py-0.5 text-label-small-default text-[var(--content-default)]`,children:l(`mcpServerDetailModal.oauthBadge`)}),(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:l(`mcpServerDetailModal.oauthManagedHint`)})]}):null,e.hasOAuth?null:(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-auth`,children:l(`mcpServerDetailModal.authentication`)}),(0,$.jsx)(`select`,{id:`mcp-detail-auth`,value:u,onChange:e=>d(e.target.value),className:`w-full rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-default text-[var(--content-default)] outline-none focus:ring-2 focus:ring-[var(--ring)]`,children:He.map(e=>(0,$.jsx)(`option`,{value:e,children:Ue(e,l)},e))})]}),u===`bearer`&&!e.hasOAuth?(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-bearer`,children:l(`mcpServerDetailModal.bearerToken`)}),(0,$.jsx)(h,{id:`mcp-detail-bearer`,type:`password`,value:f,onChange:e=>p(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`bearer`?l(`mcpServerDetailModal.savedBearerPlaceholder`):l(`mcpServerDetailModal.bearerTokenPlaceholder`),fullWidth:!0})]}):null,u===`api-key`&&!e.hasOAuth?(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-header`,children:l(`mcpServerDetailModal.headerName`)}),(0,$.jsx)(h,{id:`mcp-detail-apikey-header`,type:`text`,value:m,onChange:e=>g(e.target.value),placeholder:l(`mcpServerDetailModal.headerNamePlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-value`,children:l(`mcpServerDetailModal.apiKey`)}),(0,$.jsx)(h,{id:`mcp-detail-apikey-value`,type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`api-key`?l(`mcpServerDetailModal.savedApiCredentialPlaceholder`):l(`mcpServerDetailModal.apiKeyPlaceholder`),fullWidth:!0})]})]}):null]}):null,e.transport.url||e.transport.command?(0,$.jsxs)(`dl`,{className:`space-y-1 text-body-small-default`,children:[(0,$.jsx)(`dt`,{className:`text-[var(--content-secondary)]`,children:e.transport.type===`stdio`?l(`mcpServerDetailModal.command`):l(`mcpServerDetailModal.endpoint`)}),(0,$.jsx)(`dd`,{className:`text-[var(--content-tertiary)] [overflow-wrap:anywhere]`,children:e.transport.url??e.transport.command})]}):null,(0,$.jsxs)(`section`,{className:`space-y-2`,children:[(0,$.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-default)]`,children:l(`mcpServerDetailModal.toolsHeading`)}),n?(0,$.jsx)(`p`,{role:`status`,className:`text-body-small-default text-[var(--content-tertiary)]`,children:l(`mcpServerDetailModal.toolsLoading`)}):r?(0,$.jsx)(`p`,{role:`alert`,className:`text-body-small-default text-[var(--content-tertiary)]`,children:l(`mcpServerDetailModal.toolsError`)}):t&&t.tools.length>0?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:l(`mcpServerDetailModal.tokenOverhead`,{count:t.estimatedTokens.toLocaleString()})}),(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)] rounded-lg border border-[var(--border-base)]`,children:t.tools.map(e=>(0,$.jsxs)(`li`,{className:`space-y-1 px-3 py-3`,children:[(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-default)] [overflow-wrap:anywhere]`,children:e.name}),e.description?(0,$.jsx)(`p`,{className:`whitespace-pre-wrap text-body-small-default text-[var(--content-secondary)] [overflow-wrap:anywhere]`,children:e.description}):null,(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:l(`mcpServerDetailModal.toolEstimatedTokens`,{count:e.estimatedTokens.toLocaleString()})})]},e.name))})]}):(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:l(`mcpServerDetailModal.toolsEmpty`)})]})]})}),(0,$.jsxs)(o.Footer,{children:[(0,$.jsx)(C,{variant:i?`primary`:`ghost`,onClick:b,disabled:c,children:l(i?`mcpServerDetailModal.close`:`mcpServerDetailModal.cancel`)}),i?null:(0,$.jsx)(C,{variant:`primary`,onClick:y,disabled:c,children:l(c?`mcpServerDetailModal.saving`:`mcpServerDetailModal.save`)})]})]})}):null}function Ge({connections:e,allowAdd:t}){let{t:n}=X(`settings`),{auth:i,add:a,save:o,remove:s,details:c,configureServer:l}=e;return(0,$.jsxs)($.Fragment,{children:[i.attempt?(0,$.jsx)(x,{tone:i.attempt.error?`warning`:`info`,children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`p`,{className:`[overflow-wrap:anywhere]`,children:i.attempt.error??(i.attempt.phase===`connecting`?n(`mcpConnect.waitingForRuntime`,{name:i.attempt.displayName}):n(`mcpConnect.waitingForAuthorization`,{name:i.attempt.displayName}))}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[i.attempt.phase===`error`?(0,$.jsx)(C,{variant:`outlined`,onClick:i.retry,children:n(`mcpConnect.retry`)}):null,(0,$.jsx)(C,{variant:`ghost`,onClick:i.stopWaiting,children:n(`mcpConnect.stopWaiting`)})]})]})}):null,t?(0,$.jsx)(Ve,{open:e.addOpen,onClose:()=>e.setAddOpen(!1),onAdd:e.addCustom,isPending:a.isPending}):null,(0,$.jsx)(We,{server:l,readOnly:l?.source===`plugin`,toolsSummary:c.data?.servers.find(e=>e.serverId===l?.id),toolsLoading:c.isFetching,toolsError:c.isError,onClose:()=>e.setConfigureServerId(null),onSave:(e,t)=>o.mutate(t),isPending:o.isPending}),(0,$.jsx)(r,{open:e.removeServerId!==null,title:n(`mcpPage.removeDialogTitle`),message:e.removeServerId?n(`mcpPage.removeDialogMessage`,{serverId:e.removeServerId}):``,confirmLabel:n(`mcpPage.removeDialogConfirm`),destructive:!0,isPending:s.isPending,onConfirm:()=>{e.removeServerId&&s.mutate(e.removeServerId)},onCancel:()=>e.setRemoveServerId(null)})]})}function Ke(){return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`flex size-8 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)] text-[var(--content-secondary)]`,children:(0,$.jsx)(le,{size:20})})}function qe({server:e,onRemove:t,onConfigure:n,onAuthenticate:r,onManagePlugin:i,isAuthenticating:a,connectDisabled:o=!1}){let{t:s}=X(`settings`),c=e.source===`plugin`,l=!c&&e.status===`needs-auth`&&e.transport.type!==`stdio`,u=e.status===`connected`,f=c?s(`mcpServerCard.managePlugin`):a?s(`mcpServerCard.connecting`):l?e.hasOAuth?s(`mcpServerCard.reconnect`):s(`mcpServerCard.finishConnecting`):s(`mcpServerCard.configure`);return(0,$.jsx)(Fe,{icon:(0,$.jsx)(Ke,{}),title:e.id,subtitle:c?e.pluginName:je(e),status:(0,$.jsx)(d,{tone:u?`positive`:`negative`,children:s(u?`mcpServerCard.statusConnected`:`mcpServerCard.statusNeedsAttention`)}),primaryAction:(0,$.jsx)(C,{variant:l?`primary`:`outlined`,leftIcon:a?(0,$.jsx)(Z,{className:`animate-spin`}):void 0,onClick:()=>{c?i(e.pluginName):l?r(e.id):n(e.id)},disabled:a||l&&o,children:f}),actionMenu:(0,$.jsxs)(F.Root,{children:[(0,$.jsx)(F.Trigger,{asChild:!0,children:(0,$.jsx)(C,{variant:`ghost`,iconOnly:(0,$.jsx)(ue,{}),className:`min-w-11`,"aria-label":s(`mcpServerCard.moreActions`,{serverId:e.id})})}),(0,$.jsxs)(F.Content,{title:e.id,showTitle:!0,closeLabel:s(`mcpServerCard.actionsSheetClose`),align:`end`,children:[l||c?(0,$.jsx)(F.Item,{icon:me,label:s(c?`mcpServerCard.viewDetails`:`mcpServerCard.configure`),onSelect:()=>n(e.id)}):null,c?null:(0,$.jsx)(F.Item,{icon:ge,label:s(`mcpServerCard.removeServer`),tone:`destructive`,onSelect:()=>t(e.id)})]})]})})}async function Je(e){let{data:t,response:n}=await S.get({url:`/v1/assistants/{assistant_id}/internal/mcp/list`,path:{assistant_id:e}});if(!n?.ok)throw Error(`Failed to fetch MCP servers: ${n?.status}`);return t}async function Ye(e){let{data:t,response:n}=await S.get({url:`/v1/assistants/{assistant_id}/internal/mcp/tools-summary`,path:{assistant_id:e}});if(!n?.ok)throw Error(`Failed to fetch MCP tools summary: ${n?.status}`);return t}async function Xe(e,t){let{response:n}=await S.post({url:`/v1/assistants/{assistant_id}/internal/mcp/update`,path:{assistant_id:e},body:t});if(!n?.ok)throw Error(`Failed to update MCP server: ${n?.status}`)}async function Ze(e,t){let{response:n}=await S.post({url:`/v1/assistants/{assistant_id}/internal/mcp/add`,path:{assistant_id:e},body:t});if(!n?.ok)throw Error(`Failed to add MCP server: ${n?.status}`)}async function Qe(e,t){let{response:n}=await S.post({url:`/v1/assistants/{assistant_id}/internal/mcp/remove`,path:{assistant_id:e},body:{name:t}});if(!n?.ok)throw Error(`Failed to remove MCP server: ${n?.status}`)}async function $e(e,t){let{data:n,response:r}=await S.post({url:`/v1/assistants/{assistant_id}/internal/mcp/auth/start`,path:{assistant_id:e},body:{serverId:t}});if(!r?.ok)throw Error(`Failed to start MCP auth: ${r?.status}`);return n}async function et(e,t){let{data:n,response:r}=await S.get({url:`/v1/assistants/{assistant_id}/internal/mcp/auth/status/${encodeURIComponent(t)}`,path:{assistant_id:e}});if(!r?.ok)throw Error(`Failed to poll MCP auth status: ${r?.status}`);return n}function tt(e,t){return e.some(e=>e.id===t&&e.status===`connected`)}function nt(e,t){return t?null:e}function rt(e){let{t}=X(`settings`),r=Y(),[a,o]=(0,Q.useState)(null),c=(0,Q.useRef)(null),l=(0,Q.useRef)(null),u=(0,Q.useRef)(null),d=(0,Q.useCallback)(()=>{c.current=null,u.current=null,l.current?.close(),l.current=null,o(null)},[]);(0,Q.useEffect)(()=>(d(),()=>{c.current=null,u.current=null,l.current?.close(),l.current=null}),[e,d]);let f=a?.phase===`authorizing`||a?.phase===`waiting`,p=J({queryKey:O.auth(e,a?.operationId??``),queryFn:()=>et(e,a.serverId),enabled:f,refetchInterval:f?K:!1,staleTime:0,gcTime:0,retry:1}),m=J({queryKey:O.list(e),queryFn:()=>Je(e),enabled:a?.phase===`connecting`,refetchInterval:a?.phase===`connecting`?K:!1,staleTime:0,retry:1});(0,Q.useEffect)(()=>{!a||!f||c.current!==a.operationId||!p.data||(p.data.status===`complete`?(l.current?.close(),l.current=null,o({...a,phase:`connecting`}),r.invalidateQueries({queryKey:O.list(e)})):p.data.status===`error`&&o({...a,phase:`error`,error:p.data.error?.replaceAll(a.serverId,a.displayName)??t(`mcpConnect.authorizationFailed`)}))},[e,a,p.data,f,r,t]),(0,Q.useEffect)(()=>{a?.phase!==`connecting`||c.current!==a.operationId||!m.data||m.isFetching||tt(m.data.servers,a.serverId)&&(d(),r.invalidateQueries({queryKey:O.details(e)}))},[e,a,r,m.data,m.isFetching,d]),(0,Q.useEffect)(()=>{if(!a||a.phase===`error`)return;let e=f?nt(p.error,p.isFetching):a.phase===`connecting`?nt(m.error,m.isFetching):null;e&&(s(e,{context:`mcp.connect.poll`}),o({...a,phase:`error`,error:t(`mcpConnect.pollFailed`)}))},[a,p.error,p.isFetching,f,m.error,m.isFetching,t]),(0,Q.useEffect)(()=>{if(!a||a.phase===`error`)return;let e=setTimeout(()=>{c.current===a.operationId&&(l.current?.close(),l.current=null,o(e=>e?.operationId===a.operationId?{...e,phase:`error`,error:t(`mcpConnect.timedOut`)}:e))},Math.max(0,a.startedAt+n-Date.now()));return()=>clearTimeout(e)},[a,t]);let h=(0,Q.useCallback)(t=>{c.current===t&&(o(e=>e?.operationId===t&&e.phase===`authorizing`?{...e,phase:`waiting`}:e),r.invalidateQueries({queryKey:O.auth(e,t)}),r.invalidateQueries({queryKey:O.list(e)}))},[e,r]);(0,Q.useEffect)(()=>{let e=l.current;if(a?.phase!==`authorizing`||!e)return;let t=setInterval(()=>{e.closed&&h(a.operationId)},500);return()=>clearInterval(t)},[a?.operationId,a?.phase,h]),(0,Q.useEffect)(()=>{let e=a?.operationId,t=a?.phase;if(!(!e||t===`connecting`||t===`error`))return g(()=>h(e))},[a?.operationId,a?.phase,h]);let _=(0,Q.useCallback)((n,r,d=n)=>{if(c.current&&a?.phase!==`error`)return;let f=crypto.randomUUID();c.current=f,l.current?.close(),l.current=null,u.current=r?{operationId:f,run:r}:null;let p={operationId:f,serverId:n,displayName:d,startedAt:Date.now(),phase:`starting`};o(p);let m=M()||i(),h=m?null:window.open(``,`_blank`,`width=500,height=600`);if(!m&&!h){o({...p,phase:`error`,error:t(`mcpConnect.popupBlocked`)});return}h&&(h.opener=null,l.current=h);let g=()=>c.current===f&&Date.now()<p.startedAt+3e5;(async()=>{try{if(await r?.(),u.current?.operationId===f&&(u.current=null),!g())return;let t=await $e(e,n);if(!g())return;if(t.already_authenticated){h?.close(),l.current=null,o({...p,phase:`connecting`});return}let i=new URL(t.auth_url);if(i.protocol!==`https:`&&i.protocol!==`http:`)throw Error(`Unsupported MCP authorization URL protocol`);o({...p,phase:`authorizing`}),h?h.closed||h.location.replace(i.href):await w(i.href)}catch(e){h?.close(),g()&&(l.current=null,s(e,{context:`mcp.connect.start`}),o(e=>e?.operationId===f?{...e,phase:`error`,error:t(`mcpConnect.startFailed`)}:e))}})()},[e,a?.phase,t]);return{attempt:a,isBusy:!!(a&&a.phase!==`error`),connect:_,retry:()=>{a&&_(a.serverId,u.current?.run,a.displayName)},stopWaiting:d}}function it(e){let{t}=X(`settings`),n=Y(),r=rt(e),[i,a]=(0,Q.useState)(!1),[o,c]=(0,Q.useState)(null),[l,u]=(0,Q.useState)(null),d=J({queryKey:O.list(e),queryFn:()=>Je(e)}),f=d.data?.servers.find(e=>e.id===o)??null,p=J({queryKey:O.details(e),queryFn:()=>Ye(e),enabled:f!==null}),m=()=>{n.invalidateQueries({queryKey:O.list(e)}),n.invalidateQueries({queryKey:O.details(e)})},h=q({mutationFn:t=>Ze(e,t),onSuccess:()=>{m(),a(!1)},onError:e=>{s(e,{context:`mcp.add`}),G.error(t(`mcpConnect.addFailed`))}});return{list:d,details:p,auth:r,add:h,save:q({mutationFn:t=>Xe(e,t),onSuccess:()=>{m(),c(null)},onError:e=>{s(e,{context:`mcp.update`}),G.error(t(`mcpConnect.saveFailed`))}}),remove:q({mutationFn:t=>Qe(e,t),onSuccess:(e,n)=>{r.attempt?.serverId===n&&r.stopWaiting(),m(),u(null),c(null),G.success(t(`mcpPage.toastRemoved`,{serverId:n}))},onError:(e,n)=>{s(e,{context:`mcp.remove`}),G.error(t(`mcpPage.toastRemoveFailed`,{serverId:n}))}}),addCustom:e=>{e.autoAuth?r.connect(e.name,async()=>{await h.mutateAsync(e)},e.name):h.mutate(e)},addOpen:i,setAddOpen:a,configureServer:f,configureServerId:o,setConfigureServerId:c,removeServerId:l,setRemoveServerId:u}}var at=`grid gap-3 [grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))]`,ot=`grid gap-3 [grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr))]`;function st({title:e,count:t,gridClassName:n,children:r}){return(0,$.jsxs)(`section`,{className:`space-y-3`,children:[(0,$.jsxs)(`h2`,{className:`flex items-center gap-2 text-title-small text-[var(--content-default)]`,children:[e,(0,$.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:t})]}),(0,$.jsx)(`div`,{className:n,children:r})]})}function ct(e,t){return{denied:e(`integrationsPage.oauthErrorDenied`),state_invalid:e(`integrationsPage.oauthErrorStateInvalid`),state_expired:e(`integrationsPage.oauthErrorStateExpired`),exchange_failed:e(`integrationsPage.oauthErrorExchangeFailed`),identity_failed:e(`integrationsPage.oauthErrorIdentityFailed`)}[t]}function lt({mcpAssistantId:e}){let{t}=X(`settings`),[n,r]=re(),i=ie(),o=v(),c=I.use.mcpAddServer(),l=I.use.hasHydrated(),[u,d]=(0,Q.useState)(null),[f,p]=(0,Q.useState)(!0),[m,g]=(0,Q.useState)(``),_=n.get(`provider`),[b,S]=(0,Q.useState)(_),w=(0,Q.useRef)(_),T=it(e);(0,Q.useEffect)(()=>{let t=!0;return(async()=>{try{let n=await y(e);t&&n.ok&&d(n.data)}catch(e){s(e,{context:`integrations.getAssistant`})}finally{t&&p(!1)}})(),()=>{t=!1}},[e]),(0,Q.useEffect)(()=>{_!==w.current&&(w.current=_,S(_))},[_]);let E=(0,Q.useCallback)(()=>{if(S(null),!n.has(`provider`))return;let e=new URLSearchParams(n);e.delete(`provider`),r(e,{replace:!0})},[n,r]),{platformAssistantId:D,isLoading:O,error:k}=ve(u?.id,o===`full`),A=J({...ee({path:{assistant_id:u?.id??``}}),select:e=>e.providers,enabled:!!u}),j=J({...L({path:{assistant_id:D??``}}),enabled:!!D&&o===`full`});(0,Q.useEffect)(()=>{let e=n.get(`oauth_status`);if(!e)return;let r=n.get(`oauth_provider`),o=r?r.charAt(0).toUpperCase()+r.slice(1):null;e===`connected`?G.success(o?t(`integrationsPage.accountConnectedToast`,{providerLabel:o}):t(`integrationsPage.accountConnectedToastGeneric`)):e===`error`&&G.error(ct(t,n.get(`oauth_code`)??`unknown`)??(o?t(`integrationsPage.connectFailedToast`,{providerLabel:o}):t(`integrationsPage.connectFailedToastGeneric`))),i(a.settings.integrations,{replace:!0})},[n,i,t]);let M=A.isError||j.isError||!!k||!f&&!u,N=!M&&!!A.data&&(o!==`full`||!!j.data),F=(0,Q.useMemo)(()=>Me(N?A.data??[]:[],N?j.data??[]:[],T.list.data?.servers??[]),[N,A.data,j.data,T.list.data]),R=(0,Q.useMemo)(()=>Ne(F,m),[F,m]),z=R.filter(e=>e.configured),B=R.filter(e=>!e.configured),V=A.data?.find(e=>e.provider_key===b),H=f||A.isLoading||j.isLoading||O||T.list.isLoading,U=T.auth.isBusy,te=()=>{c?T.setAddOpen(!0):P(i,{prompt:t(`mcpPage.setupPrompt`)})},W=e=>e.kind===`oauth`?(0,$.jsx)(Ie,{layout:e.configured?`row`:`tile`,providerKey:e.provider.provider_key,displayName:e.name,description:e.provider.description,logoUrl:e.provider.logo_url,connections:e.connections,disabled:f||!u||o===`full`&&!D,onConfigure:()=>S(e.provider.provider_key)},e.id):(0,$.jsx)(qe,{server:e.server,onRemove:T.setRemoveServerId,onConfigure:T.setConfigureServerId,onAuthenticate:e=>T.auth.connect(e),onManagePlugin:e=>i(e?`${a.plugins}/${encodeURIComponent(e)}`:a.plugins),isAuthenticating:T.auth.attempt?.serverId===e.server.id&&U,connectDisabled:U},e.id);return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(h,{value:m,onChange:e=>g(e.target.value),placeholder:t(`integrationsPage.searchPlaceholder`),"aria-label":t(`integrationsPage.searchAriaLabel`),leftIcon:(0,$.jsx)(fe,{"aria-hidden":!0,className:`size-4`}),className:`min-h-11`,wrapperClassName:`min-w-0 basis-64 flex-1`,fullWidth:!0}),(0,$.jsx)(C,{variant:`outlined`,className:`min-h-11 max-w-full whitespace-normal`,leftIcon:(0,$.jsx)(se,{}),onClick:te,disabled:!l||U,children:t(`integrationsPage.addCustom`)})]}),M?(0,$.jsx)(x,{tone:`warning`,children:t(`integrationsPage.oauthUnavailable`)}):null,T.list.isError?(0,$.jsx)(x,{tone:`warning`,actions:(0,$.jsx)(C,{variant:`ghost`,onClick:()=>void T.list.refetch(),children:t(`mcpConnect.retry`)}),children:t(`integrationsPage.mcpUnavailable`)}):null,(0,$.jsx)(Ge,{connections:T,allowAdd:c}),H?(0,$.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(Z,{className:`size-4 animate-spin`}),t(`integrationsPage.loading`)]}):null,z.length>0?(0,$.jsx)(st,{title:t(`integrationsPage.sectionConfigured`),count:z.length,gridClassName:at,children:z.map(W)}):null,B.length>0?(0,$.jsx)(st,{title:t(`integrationsPage.sectionAvailable`),count:B.length,gridClassName:ot,children:B.map(W)}):null,!H&&R.length===0?(0,$.jsx)(`p`,{className:`py-8 text-center text-body-medium-default text-[var(--content-tertiary)]`,children:m.trim()?t(`integrationsPage.emptySearchSubtitle`,{query:m.trim()}):t(`integrationsPage.empty`)}):null,V&&u&&(o!==`full`||D)?(0,$.jsx)(Pe,{assistantId:u.id,platformAssistantId:D??u.id,providerKey:V.provider_key,displayName:V.display_name??V.provider_key,description:V.description,logoUrl:V.logo_url,platformGate:o,tenantHost:V.tenant_host,onClose:E}):null]})}function ut(){let e=j();return(0,$.jsx)(Q.Suspense,{children:(0,$.jsx)(lt,{mcpAssistantId:e},e)})}export{ut as IntegrationsPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Cb as t,Eb as n,Ux as r,Wx as i,_c as a,ma as o,o as s,ub as c}from"./app-Tg6YU_tZ.js";import{j as l}from"./vendor-DYOeoIwg.js";import{d as u,i as d,n as f,t as p,x as m}from"./react-B9IgSVeK.js";import{Gi as h,Ra as g}from"./icons-QG1KAFmx.js";import{t as _}from"./intelligence-layout-slots-store-nrEU1pdD.js";var v=e(m(),1),y=p(),b={schedules:`sections.schedules`,superpowers:`sections.superpowers`,plugins:`sections.superpowers`,skills:`sections.superpowers`,memory:`sections.memory`,library:`sections.library`,workspace:`sections.workspace`,contacts:`sections.contacts`,channels:`sections.channels`};function x(){let{t:e}=l(`intelligence`),p=c.use.name(),{pathname:m}=u(),x=a(),S=o.use.setTopBarCenter(),C=o.use.setMobileTopBar(),w=_.use.headerTrailing(),T=t(m),E=T?e(b[T.key]):null,D=x&&T?.key===`library`,O=p||e(`identityOverview.defaultAssistantName`),k=e(`intelligenceLayout.backToAriaLabel`,{name:O}),A=e(`intelligenceLayout.backToTitle`,{name:O});return(0,v.useEffect)(()=>(D&&E?(S(null),C({leading:(0,y.jsx)(i,{asChild:!0,variant:`ghost`,iconOnly:(0,y.jsx)(g,{"aria-hidden":!0}),"aria-label":k,tooltip:A,className:`rounded-full max-md:bg-[var(--surface-active)]`,children:(0,y.jsx)(f,{to:n.identity})}),center:(0,y.jsx)(r,{variant:`body-medium-default`,className:`max-w-[50vw] truncate text-[var(--content-secondary)]`,children:E}),trailing:w})):x&&E?(C(null),S((0,y.jsx)(r,{variant:`body-medium-default`,className:`truncate text-[var(--content-secondary)]`,children:E}))):(C(null),S(null)),()=>{C(null),S(null)}),[k,A,w,x,E,C,S,D]),T?(0,y.jsxs)(s,{children:[D?null:(0,y.jsxs)(`div`,{className:`mb-4 flex shrink-0 items-center gap-1.5`,children:[(0,y.jsx)(f,{to:n.identity,className:`-ml-2 flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-[var(--content-secondary)] transition-colors outline-none hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)] focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,"aria-label":k,title:A,children:(0,y.jsx)(h,{className:`h-5 w-5`,"aria-hidden":!0})}),(0,y.jsx)(`h1`,{className:`text-title-large text-[var(--content-default)] max-md:hidden`,children:E}),w?(0,y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center`,children:w}):null]}),(0,y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,y.jsx)(d,{})})]}):(0,y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,y.jsx)(d,{})})}export{x as IntelligenceLayout};
@@ -0,0 +1 @@
1
+ import{nx as e}from"./app-Tg6YU_tZ.js";import{Q as t}from"./vendor-DYOeoIwg.js";var n=e(t(e=>({headerTrailing:null,setHeaderTrailing:t=>e({headerTrailing:t})})));export{n as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Eb as t}from"./app-DVwAB8n7.js";import{f as n,x as r}from"./react-B9IgSVeK.js";var i=e(r(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(t.settings.keyboardShortcuts,{replace:!0})},[e]),null}export{a as KeyboardShortcutsRedirectPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Eb as t}from"./app-Tg6YU_tZ.js";import{f as n,x as r}from"./react-B9IgSVeK.js";var i=e(r(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(t.settings.keyboardShortcuts,{replace:!0})},[e]),null}export{a as KeyboardShortcutsRedirectPage};
@@ -1,4 +1,4 @@
1
- import{Eg as e,Hm as t}from"./app-DVwAB8n7.js";var n=2;function r({processing:e,sawProcessing:t,hasReply:r,stableReads:i}){return e===void 0?r&&i>=n:!e&&(r||t)}var i=e=>Math.max(0,Math.min(100,Math.round(e)));function a(t,n,r){let a=e=>i(t[e]??50),o=a(e.companionCoworker),s=a(e.executeCollaborate),c=a(e.playfulSerious),l=a(e.politeUnfiltered),u=n?.trim()||`The user`,d=r?.trim(),f=d?`Your name is ${d}. Write exactly \`- **Name:** ${d}\` in IDENTITY.md — do not rename yourself or invent a different name, even if the file currently shows a placeholder or a different name. This changes your personality, not who you are.`:"Keep your existing name exactly as it is — this changes your personality, not who you are. Do not rename yourself, and if your name is already set, carry it through verbatim (don't treat it as a placeholder to fill). Whatever the name ends up being, keep it on IDENTITY.md's `- **Name:** …` line.";return`<system-message>
1
+ import{Tg as e,Vm as t}from"./app-Tg6YU_tZ.js";var n=2;function r({processing:e,sawProcessing:t,hasReply:r,stableReads:i}){return e===void 0?r&&i>=n:!e&&(r||t)}var i=e=>Math.max(0,Math.min(100,Math.round(e)));function a(t,n,r){let a=e=>i(t[e]??50),o=a(e.companionCoworker),s=a(e.executeCollaborate),c=a(e.playfulSerious),l=a(e.politeUnfiltered),u=n?.trim()||`The user`,d=r?.trim(),f=d?`Your name is ${d}. Write exactly \`- **Name:** ${d}\` in IDENTITY.md — do not rename yourself or invent a different name, even if the file currently shows a placeholder or a different name. This changes your personality, not who you are.`:"Keep your existing name exactly as it is — this changes your personality, not who you are. Do not rename yourself, and if your name is already set, carry it through verbatim (don't treat it as a placeholder to fill). Whatever the name ends up being, keep it on IDENTITY.md's `- **Name:** …` line.";return`<system-message>
2
2
  ${u} wants to customize your personality.
3
3
  This is what they want you to be:
4
4
  Companion (0-100): ${100-o}
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Dr as t,Eb as n,Fg as r,Or as i,Yp as a,_c as o,et as s,g as c,gc as l,ur as u}from"./app-Tg6YU_tZ.js";import{j as d}from"./vendor-DYOeoIwg.js";import{d as f,f as p,h as m,t as h,x as g}from"./react-B9IgSVeK.js";import{qn as _}from"./icons-QG1KAFmx.js";import{t as v}from"./deploy-dialogs-C0gFbHA2.js";import{t as y}from"./use-edge-swipe-back-DMaMp9xI.js";import{t as b}from"./app-types-2kvircdH.js";var x=e(g(),1),S=h();function C({enabled:e}){return e?(0,S.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-y-0 left-0 z-10`,style:{width:20}}):null}function w(){let{t:e}=d(`library`),{appId:h}=m(),g=s(),w=p(),{pathname:T}=f(),E=o(),D=t.use.isDeploying(),O=(0,x.useRef)(null),[k,A]=(0,x.useState)(null),[j,M]=(0,x.useState)(null),[N,P]=(0,x.useState)(!1),F=(0,x.useRef)(null);(0,x.useEffect)(()=>{if(h)return F.current=h,A(null),M(null),r({path:{assistant_id:g,id:h},throwOnError:!0}).then(({data:e})=>{F.current===h&&(a(g,e.appId,e.html),A({appId:e.appId,dirName:e.dirName,name:e.name,html:e.html,origin:e.origin}))}).catch(e=>{F.current===h&&M(e instanceof Error?e.message:`Failed to open app`)}),()=>{F.current=null}},[g,h]);let I=(0,x.useCallback)(()=>{w(n.library.root)},[w]),L=(0,x.useCallback)(e=>{w(e)},[w]);y({containerRef:O,onBack:I,enabled:E,navKey:T,prefetchHref:n.library.root});let R=c(),z=(0,x.useCallback)(()=>{k&&R(k)},[k,R]),B=(0,x.useCallback)(async()=>{if(!(!k||N)){P(!0);try{await i(g,{id:k.appId,name:k.name},{exported:e(`libraryAppCard.exported`),failed:e(`libraryAppCard.shareFailed`)})}finally{P(!1)}}},[g,k,N,e]),V=(0,x.useCallback)(()=>{k&&t.getState().deployApp(g,k.appId,k.name,k.html)},[g,k]),H=(0,x.useCallback)(e=>{l(w,{prompt:e})},[w]);return h?j?(0,S.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4`,children:[(0,S.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:j}),(0,S.jsx)(`button`,{type:`button`,onClick:I,className:`text-body-medium-default text-[var(--primary-base)] underline`,children:e(`libraryDetailPage.backToLibrary`)})]}):k?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{ref:O,className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,S.jsx)(C,{enabled:E}),(0,S.jsx)(u,{appId:k.appId,appName:k.name,html:k.html,assistantId:g,onClose:I,onNavigateAppRoute:L,...b(k.origin)?{}:{onEdit:z,onShare:B,isSharing:N,onDeploy:V,isDeploying:D},enableFullscreen:!0})]}),(0,S.jsx)(v,{assistantId:g,onStartConversation:H})]}):(0,S.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,S.jsx)(_,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):null}export{w as LibraryDetailPage};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$t as t,Ci as n,Dr as r,Eb as i,Lg as a,Nt as o,Px as s,Qa as c,Vd as l,Wa as u,Wx as d,Yp as f,_c as p,aa as m,bd as h,dr as g,et as _,fr as v,gx as y,ia as b,li as x,vc as S,wx as C,yd as w}from"./app-DVwAB8n7.js";import{Zn as T,er as E,j as D}from"./vendor-Bb38ZAP8.js";import{d as O,f as k,t as A,x as j}from"./react-B9IgSVeK.js";import{$n as M,Bt as N,Fa as P,Qr as F,Sr as I,Vt as L,_t as R,k as z,kt as B,ni as ee,nr as V,zr as H}from"./icons-QG1KAFmx.js";import{t as U}from"./deploy-dialogs-CveUjjv7.js";import{n as W,r as G,t as te}from"./use-app-delete--tLzs8qO.js";import{t as ne}from"./intelligence-layout-slots-store-N3obF-c5.js";import{t as K}from"./app-types-CjoGEGYN.js";var q=e(j(),1),J=A();function Y(e){return e===1?`1 word`:`${e} words`}function re({document:e,onOpen:t}){return(0,J.jsxs)(`div`,{className:`group relative flex flex-col gap-2`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:u(`relative flex w-full cursor-pointer flex-col items-center justify-center gap-2 overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-base)]`,`aspect-[16/10]`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:[(0,J.jsx)(H,{size:34,className:`text-[var(--content-tertiary)]`}),(0,J.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Y(e.wordCount)})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.title}),(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:o(new Date(e.updatedAt))})]})]})}function ie({onNewConversation:e}){let{t}=D(`library`);return(0,J.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4 py-24`,children:[(0,J.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,J.jsx)(V,{size:32,className:`text-[var(--content-tertiary)]`})}),(0,J.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:t(`libraryEmptyState.heading`)}),(0,J.jsx)(`p`,{className:`max-w-md text-center text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:t(`libraryEmptyState.body`)}),e?(0,J.jsx)(d,{variant:`primary`,size:`regular`,onClick:e,children:t(`libraryEmptyState.newConversation`)}):null]})}function X({app:e,assistantId:r,isPinned:i,onOpen:a,onPin:s,onDelete:c,onDeploy:l,justImported:d,onAnimationEnd:p}){let{t:m}=D(`library`),h=K(e.origin),_=h?void 0:c,y=h?void 0:l,b=(0,q.useCallback)(()=>f(r,e.id,e.updatedAt),[r,e.id,e.updatedAt]),x=W(r,e,{exported:m(`libraryAppCard.exported`),failed:m(`libraryAppCard.shareFailed`)}),[S,C]=(0,q.useState)(!1),[w,T]=(0,q.useState)(!1),E=(0,q.useCallback)(()=>T(!0),[]),{deployedUrl:O}=v(r,e.id,{enabled:w&&y!=null}),k=(0,q.useCallback)(()=>{O!=null&&g(O)},[O]);return(0,J.jsx)(n,{trailingActions:[{id:`pin`,label:m(i?`libraryAppCard.unpin`:`libraryAppCard.pin`),icon:i?L:N,onSelect:()=>s(e)},..._?[{id:`delete`,label:m(`libraryAppCard.delete`),icon:z,variant:`destructive`,onSelect:()=>_(e)}]:[]],className:`rounded-xl`,children:(0,J.jsxs)(`div`,{"data-reveal-row":``,className:u(`relative flex flex-col gap-2`,d&&`animate-[card-entrance_400ms_ease-out]`),onAnimationEnd:d?p:void 0,onPointerEnter:E,children:[(0,J.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),className:u(`relative w-full cursor-pointer overflow-hidden rounded-xl`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:(0,J.jsx)(t,{name:e.name,icon:e.icon,loadHtml:b})}),(0,J.jsx)(`div`,{"data-reveal":``,className:`absolute right-2 top-2 z-20`,children:(0,J.jsx)(Z,{appName:e.name,isPinned:i,open:S,onOpenChange:e=>{e&&E(),C(e)},onPin:()=>s(e),onDelete:_?()=>_(e):void 0,onShare:h?void 0:x,onDeploy:y,deployedUrl:O,onCopyDeployedLink:k})}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>a(e.id),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)] max-md:text-body-medium-lighter max-md:text-[color:var(--content-secondary)]`,children:e.name}),(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)] max-md:hidden`,children:o(new Date(e.createdAt))})]})]})})}function Z({appName:e,isPinned:t,open:n,onOpenChange:r,onPin:i,onDelete:a,onShare:o,onDeploy:s,deployedUrl:c,onCopyDeployedLink:l}){let{t:u}=D(`library`),f=c!=null&&c!==``&&l!=null,p=u(`libraryAppCard.actionsTitle`,{appName:e});return(0,J.jsxs)(y.Root,{open:n,onOpenChange:r,children:[(0,J.jsx)(y.Trigger,{asChild:!0,children:(0,J.jsx)(d,{variant:`primary`,size:`compact`,iconOnly:(0,J.jsx)(F,{}),"aria-label":p,onClick:e=>e.stopPropagation()})}),(0,J.jsxs)(y.Content,{title:p,children:[(0,J.jsx)(y.Item,{icon:t?L:N,label:u(t?`libraryAppCard.unpin`:`libraryAppCard.pin`),onSelect:i}),o?(0,J.jsx)(y.Item,{icon:P,label:u(`libraryAppCard.share`),description:u(`libraryAppCard.shareSub`),onSelect:o}):null,s&&f?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(y.Item,{icon:M,label:u(`libraryAppCard.deployed`),description:(0,J.jsx)(`span`,{className:`break-all`,children:c}),trailing:u(`libraryAppCard.copyLink`),onSelect:()=>l?.()}),(0,J.jsx)(y.Item,{icon:B,label:u(`libraryAppCard.redeploy`),description:u(`libraryAppCard.redeploySub`),onSelect:s})]}):s?(0,J.jsx)(y.Item,{icon:I,label:u(`libraryAppCard.deploy`),description:u(`libraryAppCard.deploySub`),onSelect:s}):null,a?(0,J.jsx)(y.Item,{icon:z,label:u(`libraryAppCard.delete`),tone:`destructive`,onSelect:a}):null]})]})}function Q({title:e,apps:t,assistantId:n,pinnedAppIds:r,lastImportedAppId:i,onOpen:a,onPin:o,onDelete:s,onDeploy:c,onAnimationEnd:l}){return t.length===0?null:(0,J.jsxs)(`section`,{children:[(0,J.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)] max-md:sr-only`,children:e}),(0,J.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6 [--swipe-item-surface:var(--surface-base)] max-md:[--swipe-item-surface:var(--surface-overlay)]`,children:t.map(e=>(0,J.jsx)(X,{app:e,assistantId:n,isPinned:r.has(e.id),onOpen:a,onPin:o,onDelete:s,justImported:e.id===i,onAnimationEnd:l,onDeploy:c?()=>c(e.id):void 0},e.id))})]})}var $=(e,t)=>t.updatedAt-e.updatedAt||t.createdAt-e.createdAt;function ae(e){let{pinnedAppIds:t}=x(e),{data:n=[],isLoading:r,error:i}=T({...w({path:{assistant_id:e}}),select:e=>e.apps}),{data:a=[],isLoading:o,error:s}=T({...l({path:{assistant_id:e}}),select:e=>e.documents}),c=r||o,u=i&&s?i instanceof Error?i.message:`Failed to load library`:null,[d,f]=(0,q.useState)(``),p=(0,q.useMemo)(()=>{if(!d.trim())return n;let e=d.toLowerCase();return n.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[n,d]);return{apps:n,documents:a,filteredApps:p,pinnedApps:(0,q.useMemo)(()=>p.filter(e=>t.has(e.id)).sort($),[p,t]),recentApps:(0,q.useMemo)(()=>p.filter(e=>!t.has(e.id)).sort($),[p,t]),filteredDocuments:(0,q.useMemo)(()=>{if(!d.trim())return a;let e=d.toLowerCase();return a.filter(t=>t.title.toLowerCase().includes(e))},[a,d]),searchText:d,setSearchText:f,loading:c,error:u}}async function oe(e,t){let{data:n,error:r,response:i}=await a({path:{assistant_id:e},body:t,bodySerializer:e=>e,headers:{"Content-Type":`application/octet-stream`},throwOnError:!1});if(!i||!i.ok){let e=(r&&typeof r==`object`&&`message`in r?r.message:null)??`Failed to import app.`;throw Error(e)}return n}function se({assistantId:e,assistantName:t,onNewConversation:n,onOpenDocument:i,onOpenApp:a}){let{t:o}=D(`library`),l=S(),u=E(),{togglePin:p,pinnedAppIds:m}=x(e),g=r.use.isDeploying(),{apps:_,documents:v,filteredApps:y,pinnedApps:b,recentApps:w,filteredDocuments:T,searchText:O,setSearchText:k,loading:A,error:j}=ae(e),{pendingDelete:M,isDeleting:N,requestDelete:P,confirmDelete:F,cancelDelete:I}=te(e),[L]=(0,q.useState)(()=>c()?void 0:`.vellum`),z=(0,q.useRef)(null),[B,V]=(0,q.useState)(!1),H=(0,q.useCallback)(async t=>{let n=t.target.files?.[0];if(!(!n||B)){V(!0);try{let t=await oe(e,n);await u.invalidateQueries({queryKey:h({path:{assistant_id:e}})}),C.success(o(`libraryView.imported`,{name:t.name})),a(t.appId)}catch(e){C.error(e instanceof Error?e.message:o(`libraryView.importFailed`))}finally{V(!1),z.current&&(z.current.value=``)}}},[e,B,u,a,o]),W=(0,q.useCallback)(async t=>{if(g)return;let n=_.find(e=>e.id===t)?.name??`this app`;try{let i=await f(e,t);r.getState().deployApp(e,t,n,i)}catch{r.getState().deployApp(e,t,n,``)}},[e,g,_]),K=(0,q.useCallback)(e=>p(e.id),[p]),Y=ne.use.setHeaderTrailing(),X=!A&&!j;if((0,q.useEffect)(()=>{if(!X){Y(null);return}let e=B?(0,J.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,J.jsx)(ee,{"aria-hidden":!0});return Y(l?(0,J.jsx)(d,{variant:`ghost`,iconOnly:e,"aria-label":o(`libraryView.import`),tooltip:o(`libraryView.import`),className:`rounded-full max-md:bg-[var(--surface-active)]`,onClick:()=>z.current?.click(),disabled:B}):(0,J.jsxs)(d,{variant:`outlined`,size:`regular`,onClick:()=>z.current?.click(),disabled:B,children:[e,(0,J.jsx)(`span`,{className:`ml-1.5`,children:o(`libraryView.import`)})]})),()=>{Y(null)}},[l,X,B,Y,o]),A)return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,J.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`,role:`status`,"aria-label":o(`libraryView.loadingAria`)})});if(j)return(0,J.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4`,children:[(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:j}),(0,J.jsx)(`button`,{type:`button`,className:`rounded-lg bg-[var(--primary-base)] px-4 py-2 text-body-medium-default text-[var(--content-inset)] transition-colors hover:bg-[var(--primary-hover)]`,onClick:()=>window.location.reload(),children:o(`libraryView.retry`)})]});let Z=_.length===0&&v.length===0;return(0,J.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,J.jsx)(`input`,{ref:z,type:`file`,accept:L,className:`hidden`,onChange:H}),Z?(0,J.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,J.jsx)(ie,{onNewConversation:n?()=>n():void 0})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`mb-6 shrink-0`,children:(0,J.jsx)(s,{fullWidth:!0,type:`text`,placeholder:o(`libraryView.searchPlaceholder`),value:O,onChange:e=>k(e.target.value),leftIcon:(0,J.jsx)(R,{size:16})})}),(0,J.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:y.length===0&&T.length===0?(0,J.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16`,children:[(0,J.jsx)(R,{size:32,className:`mb-4 text-[var(--content-tertiary)]`}),(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:o(`libraryView.noMatches`,{query:O})})]}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,J.jsx)(Q,{title:o(`libraryView.pinned`),apps:b,assistantId:e,pinnedAppIds:m,onOpen:a,onPin:K,onDelete:P,onDeploy:W}),(0,J.jsx)(Q,{title:o(`libraryView.recents`),apps:w,assistantId:e,pinnedAppIds:m,onOpen:a,onPin:K,onDelete:P,onDeploy:W}),T.length>0?(0,J.jsxs)(`section`,{children:[(0,J.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:o(`libraryView.documents`)}),(0,J.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:T.map(e=>(0,J.jsx)(re,{document:e,onOpen:e=>{i&&i(e)}},e.surfaceId))})]}):null]})}),(0,J.jsx)(U,{assistantId:e,assistantName:t,onStartConversation:n}),(0,J.jsx)(G,{app:M,isDeleting:N,onConfirm:F,onCancel:I})]})]})}function ce(){let e=_(),t=k(),n=O();return(0,J.jsx)(se,{assistantId:e,onNewConversation:(0,q.useCallback)(e=>{p(t,{prompt:e})},[t]),onOpenDocument:(0,q.useCallback)(e=>{t(m(e,n.pathname),{state:b(n,e)})},[t,n]),onOpenApp:(0,q.useCallback)(e=>{t(i.library.app(e))},[t])})}export{ce as LibraryPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Dr as t,Eb as n,Ha as r,Ig as i,Jp as a,Nt as o,Px as s,Qt as c,Vd as l,Wx as u,Xa as d,_c as f,dr as p,et as m,fr as h,gc as g,gx as _,na as v,ra as y,si as b,vd as x,wx as S,xi as C,yd as w}from"./app-Tg6YU_tZ.js";import{Zn as T,er as E,j as D}from"./vendor-DYOeoIwg.js";import{d as O,f as k,t as A,x as j}from"./react-B9IgSVeK.js";import{$n as M,Bt as N,Fa as P,Qr as F,Sr as I,Vt as L,_t as R,k as z,kt as B,ni as ee,nr as V,zr as H}from"./icons-QG1KAFmx.js";import{t as U}from"./deploy-dialogs-C0gFbHA2.js";import{n as W,r as G,t as te}from"./use-app-delete-C6E5CTp4.js";import{t as ne}from"./intelligence-layout-slots-store-nrEU1pdD.js";import{t as K}from"./app-types-2kvircdH.js";var q=e(j(),1),J=A();function Y(e){return e===1?`1 word`:`${e} words`}function re({document:e,onOpen:t}){return(0,J.jsxs)(`div`,{className:`group relative flex flex-col gap-2`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:r(`relative flex w-full cursor-pointer flex-col items-center justify-center gap-2 overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-base)]`,`aspect-[16/10]`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:[(0,J.jsx)(H,{size:34,className:`text-[var(--content-tertiary)]`}),(0,J.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Y(e.wordCount)})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.title}),(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:o(new Date(e.updatedAt))})]})]})}function ie({onNewConversation:e}){let{t}=D(`library`);return(0,J.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4 py-24`,children:[(0,J.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,J.jsx)(V,{size:32,className:`text-[var(--content-tertiary)]`})}),(0,J.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:t(`libraryEmptyState.heading`)}),(0,J.jsx)(`p`,{className:`max-w-md text-center text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:t(`libraryEmptyState.body`)}),e?(0,J.jsx)(u,{variant:`primary`,size:`regular`,onClick:e,children:t(`libraryEmptyState.newConversation`)}):null]})}function X({app:e,assistantId:t,isPinned:n,onOpen:i,onPin:s,onDelete:l,onDeploy:u,justImported:d,onAnimationEnd:f}){let{t:m}=D(`library`),g=K(e.origin),_=g?void 0:l,v=g?void 0:u,y=(0,q.useCallback)(()=>a(t,e.id,e.updatedAt),[t,e.id,e.updatedAt]),b=W(t,e,{exported:m(`libraryAppCard.exported`),failed:m(`libraryAppCard.shareFailed`)}),[x,S]=(0,q.useState)(!1),[w,T]=(0,q.useState)(!1),E=(0,q.useCallback)(()=>T(!0),[]),{deployedUrl:O}=h(t,e.id,{enabled:w&&v!=null}),k=(0,q.useCallback)(()=>{O!=null&&p(O)},[O]);return(0,J.jsx)(C,{trailingActions:[{id:`pin`,label:m(n?`libraryAppCard.unpin`:`libraryAppCard.pin`),icon:n?L:N,onSelect:()=>s(e)},..._?[{id:`delete`,label:m(`libraryAppCard.delete`),icon:z,variant:`destructive`,onSelect:()=>_(e)}]:[]],className:`rounded-xl`,children:(0,J.jsxs)(`div`,{"data-reveal-row":``,className:r(`relative flex flex-col gap-2`,d&&`animate-[card-entrance_400ms_ease-out]`),onAnimationEnd:d?f:void 0,onPointerEnter:E,children:[(0,J.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),className:r(`relative w-full cursor-pointer overflow-hidden rounded-xl`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:(0,J.jsx)(c,{name:e.name,icon:e.icon,loadHtml:y})}),(0,J.jsx)(`div`,{"data-reveal":``,className:`absolute right-2 top-2 z-20`,children:(0,J.jsx)(Z,{appName:e.name,isPinned:n,open:x,onOpenChange:e=>{e&&E(),S(e)},onPin:()=>s(e),onDelete:_?()=>_(e):void 0,onShare:g?void 0:b,onDeploy:v,deployedUrl:O,onCopyDeployedLink:k})}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>i(e.id),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)] max-md:text-body-medium-lighter max-md:text-[color:var(--content-secondary)]`,children:e.name}),(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)] max-md:hidden`,children:o(new Date(e.createdAt))})]})]})})}function Z({appName:e,isPinned:t,open:n,onOpenChange:r,onPin:i,onDelete:a,onShare:o,onDeploy:s,deployedUrl:c,onCopyDeployedLink:l}){let{t:d}=D(`library`),f=c!=null&&c!==``&&l!=null,p=d(`libraryAppCard.actionsTitle`,{appName:e});return(0,J.jsxs)(_.Root,{open:n,onOpenChange:r,children:[(0,J.jsx)(_.Trigger,{asChild:!0,children:(0,J.jsx)(u,{variant:`primary`,size:`compact`,iconOnly:(0,J.jsx)(F,{}),"aria-label":p,onClick:e=>e.stopPropagation()})}),(0,J.jsxs)(_.Content,{title:p,children:[(0,J.jsx)(_.Item,{icon:t?L:N,label:d(t?`libraryAppCard.unpin`:`libraryAppCard.pin`),onSelect:i}),o?(0,J.jsx)(_.Item,{icon:P,label:d(`libraryAppCard.share`),description:d(`libraryAppCard.shareSub`),onSelect:o}):null,s&&f?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(_.Item,{icon:M,label:d(`libraryAppCard.deployed`),description:(0,J.jsx)(`span`,{className:`break-all`,children:c}),trailing:d(`libraryAppCard.copyLink`),onSelect:()=>l?.()}),(0,J.jsx)(_.Item,{icon:B,label:d(`libraryAppCard.redeploy`),description:d(`libraryAppCard.redeploySub`),onSelect:s})]}):s?(0,J.jsx)(_.Item,{icon:I,label:d(`libraryAppCard.deploy`),description:d(`libraryAppCard.deploySub`),onSelect:s}):null,a?(0,J.jsx)(_.Item,{icon:z,label:d(`libraryAppCard.delete`),tone:`destructive`,onSelect:a}):null]})]})}function Q({title:e,apps:t,assistantId:n,pinnedAppIds:r,lastImportedAppId:i,onOpen:a,onPin:o,onDelete:s,onDeploy:c,onAnimationEnd:l}){return t.length===0?null:(0,J.jsxs)(`section`,{children:[(0,J.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)] max-md:sr-only`,children:e}),(0,J.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6 [--swipe-item-surface:var(--surface-base)] max-md:[--swipe-item-surface:var(--surface-overlay)]`,children:t.map(e=>(0,J.jsx)(X,{app:e,assistantId:n,isPinned:r.has(e.id),onOpen:a,onPin:o,onDelete:s,justImported:e.id===i,onAnimationEnd:l,onDeploy:c?()=>c(e.id):void 0},e.id))})]})}var $=(e,t)=>t.updatedAt-e.updatedAt||t.createdAt-e.createdAt;function ae(e){let{pinnedAppIds:t}=b(e),{data:n=[],isLoading:r,error:i}=T({...x({path:{assistant_id:e}}),select:e=>e.apps}),{data:a=[],isLoading:o,error:s}=T({...l({path:{assistant_id:e}}),select:e=>e.documents}),c=r||o,u=i&&s?i instanceof Error?i.message:`Failed to load library`:null,[d,f]=(0,q.useState)(``),p=(0,q.useMemo)(()=>{if(!d.trim())return n;let e=d.toLowerCase();return n.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[n,d]);return{apps:n,documents:a,filteredApps:p,pinnedApps:(0,q.useMemo)(()=>p.filter(e=>t.has(e.id)).sort($),[p,t]),recentApps:(0,q.useMemo)(()=>p.filter(e=>!t.has(e.id)).sort($),[p,t]),filteredDocuments:(0,q.useMemo)(()=>{if(!d.trim())return a;let e=d.toLowerCase();return a.filter(t=>t.title.toLowerCase().includes(e))},[a,d]),searchText:d,setSearchText:f,loading:c,error:u}}async function oe(e,t){let{data:n,error:r,response:a}=await i({path:{assistant_id:e},body:t,bodySerializer:e=>e,headers:{"Content-Type":`application/octet-stream`},throwOnError:!1});if(!a||!a.ok){let e=(r&&typeof r==`object`&&`message`in r?r.message:null)??`Failed to import app.`;throw Error(e)}return n}function se({assistantId:e,assistantName:n,onNewConversation:r,onOpenDocument:i,onOpenApp:o}){let{t:c}=D(`library`),l=f(),p=E(),{togglePin:m,pinnedAppIds:h}=b(e),g=t.use.isDeploying(),{apps:_,documents:v,filteredApps:y,pinnedApps:x,recentApps:C,filteredDocuments:T,searchText:O,setSearchText:k,loading:A,error:j}=ae(e),{pendingDelete:M,isDeleting:N,requestDelete:P,confirmDelete:F,cancelDelete:I}=te(e),[L]=(0,q.useState)(()=>d()?void 0:`.vellum`),z=(0,q.useRef)(null),[B,V]=(0,q.useState)(!1),H=(0,q.useCallback)(async t=>{let n=t.target.files?.[0];if(!(!n||B)){V(!0);try{let t=await oe(e,n);await p.invalidateQueries({queryKey:w({path:{assistant_id:e}})}),S.success(c(`libraryView.imported`,{name:t.name})),o(t.appId)}catch(e){S.error(e instanceof Error?e.message:c(`libraryView.importFailed`))}finally{V(!1),z.current&&(z.current.value=``)}}},[e,B,p,o,c]),W=(0,q.useCallback)(async n=>{if(g)return;let r=_.find(e=>e.id===n)?.name??`this app`;try{let i=await a(e,n);t.getState().deployApp(e,n,r,i)}catch{t.getState().deployApp(e,n,r,``)}},[e,g,_]),K=(0,q.useCallback)(e=>m(e.id),[m]),Y=ne.use.setHeaderTrailing(),X=!A&&!j;if((0,q.useEffect)(()=>{if(!X){Y(null);return}let e=B?(0,J.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,J.jsx)(ee,{"aria-hidden":!0});return Y(l?(0,J.jsx)(u,{variant:`ghost`,iconOnly:e,"aria-label":c(`libraryView.import`),tooltip:c(`libraryView.import`),className:`rounded-full max-md:bg-[var(--surface-active)]`,onClick:()=>z.current?.click(),disabled:B}):(0,J.jsxs)(u,{variant:`outlined`,size:`regular`,onClick:()=>z.current?.click(),disabled:B,children:[e,(0,J.jsx)(`span`,{className:`ml-1.5`,children:c(`libraryView.import`)})]})),()=>{Y(null)}},[l,X,B,Y,c]),A)return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,J.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`,role:`status`,"aria-label":c(`libraryView.loadingAria`)})});if(j)return(0,J.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4`,children:[(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:j}),(0,J.jsx)(`button`,{type:`button`,className:`rounded-lg bg-[var(--primary-base)] px-4 py-2 text-body-medium-default text-[var(--content-inset)] transition-colors hover:bg-[var(--primary-hover)]`,onClick:()=>window.location.reload(),children:c(`libraryView.retry`)})]});let Z=_.length===0&&v.length===0;return(0,J.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,J.jsx)(`input`,{ref:z,type:`file`,accept:L,className:`hidden`,onChange:H}),Z?(0,J.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,J.jsx)(ie,{onNewConversation:r?()=>r():void 0})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`mb-6 shrink-0`,children:(0,J.jsx)(s,{fullWidth:!0,type:`text`,placeholder:c(`libraryView.searchPlaceholder`),value:O,onChange:e=>k(e.target.value),leftIcon:(0,J.jsx)(R,{size:16})})}),(0,J.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:y.length===0&&T.length===0?(0,J.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16`,children:[(0,J.jsx)(R,{size:32,className:`mb-4 text-[var(--content-tertiary)]`}),(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:c(`libraryView.noMatches`,{query:O})})]}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,J.jsx)(Q,{title:c(`libraryView.pinned`),apps:x,assistantId:e,pinnedAppIds:h,onOpen:o,onPin:K,onDelete:P,onDeploy:W}),(0,J.jsx)(Q,{title:c(`libraryView.recents`),apps:C,assistantId:e,pinnedAppIds:h,onOpen:o,onPin:K,onDelete:P,onDeploy:W}),T.length>0?(0,J.jsxs)(`section`,{children:[(0,J.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:c(`libraryView.documents`)}),(0,J.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:T.map(e=>(0,J.jsx)(re,{document:e,onOpen:e=>{i&&i(e)}},e.surfaceId))})]}):null]})}),(0,J.jsx)(U,{assistantId:e,assistantName:n,onStartConversation:r}),(0,J.jsx)(G,{app:M,isDeleting:N,onConfirm:F,onCancel:I})]})]})}function ce(){let e=m(),t=k(),r=O();return(0,J.jsx)(se,{assistantId:e,onNewConversation:(0,q.useCallback)(e=>{g(t,{prompt:e})},[t]),onOpenDocument:(0,q.useCallback)(e=>{t(y(e,r.pathname),{state:v(r,e)})},[t,r]),onOpenApp:(0,q.useCallback)(e=>{t(n.library.app(e))},[t])})}export{ce as LibraryPage};
@@ -0,0 +1 @@
1
+ import{Ly as e}from"./app-Tg6YU_tZ.js";export{e as markLockfileAssistantOnboarded};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Eb as t,Fb as n,Nv as r,Wx as i,_s as a,bs as o,nv as s,rv as c,vs as l,ys as u}from"./app-DVwAB8n7.js";import{j as d}from"./vendor-Bb38ZAP8.js";import{d as f,t as p,x as m}from"./react-B9IgSVeK.js";import{n as h,r as g,t as _}from"./auth-welcome-screen-B2tyrMPg.js";import{n as v,t as y}from"./use-return-to-short-circuit-uUCP2mmo.js";var b=e(m(),1),x=p();function S({returnTo:e}){let{t}=d(`account`),[r,c]=(0,b.useState)(null),[f,p]=(0,b.useState)(!1),m=async()=>{c(null),p(!0);try{await s({returnTo:e??null})}catch(e){if(l(e)){p(!1);return}n(e,{context:`native_login`,tags:{authError:u(e)??`unclassified`}}),c(t(o(e),{community:a})),p(!1)}};return(0,x.jsx)(g,{animateAvatarWaveIn:!0,fillsViewport:!0,children:(0,x.jsx)(h,{error:r,children:(0,x.jsx)(i,{type:`button`,variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{m()},disabled:f,children:t(`loginPage.signIn`)})})})}function C({returnTo:e}){let{t:n}=d(`account`),{search:i}=f(),a=r(e?`${t.account.signup}?returnTo=${encodeURIComponent(e)}`:t.account.signup,i);return(0,x.jsx)(_,{returnTo:e,errorContext:`web_login`,fillsViewport:!0,secondary:{label:n(`loginPage.signUp`),href:a}})}function w(){let e=c(),t=y();return t.kind===`wait`?(0,x.jsx)(g,{animateAvatarWaveIn:!0,fillsViewport:!0,children:(0,x.jsx)(v,{})}):t.kind===`redirect`?t.node:e?(0,x.jsx)(S,{returnTo:t.returnTo}):(0,x.jsx)(C,{returnTo:t.returnTo})}export{w as LoginPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Eb as t,Fb as n,Nv as r,Wx as i,_s as a,gs as o,nv as s,rv as c,vs as l,ys as u}from"./app-Tg6YU_tZ.js";import{j as d}from"./vendor-DYOeoIwg.js";import{d as f,t as p,x as m}from"./react-B9IgSVeK.js";import{n as h,r as g,t as _}from"./auth-welcome-screen-D2mxoZEG.js";import{n as v,t as y}from"./use-return-to-short-circuit-dsa2YMci.js";var b=e(m(),1),x=p();function S({returnTo:e}){let{t}=d(`account`),[r,c]=(0,b.useState)(null),[f,p]=(0,b.useState)(!1),m=async()=>{c(null),p(!0);try{await s({returnTo:e??null})}catch(e){if(a(e)){p(!1);return}n(e,{context:`native_login`,tags:{authError:l(e)??`unclassified`}}),c(t(u(e),{community:o})),p(!1)}};return(0,x.jsx)(g,{animateAvatarWaveIn:!0,fillsViewport:!0,children:(0,x.jsx)(h,{error:r,children:(0,x.jsx)(i,{type:`button`,variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{m()},disabled:f,children:t(`loginPage.signIn`)})})})}function C({returnTo:e}){let{t:n}=d(`account`),{search:i}=f(),a=r(e?`${t.account.signup}?returnTo=${encodeURIComponent(e)}`:t.account.signup,i);return(0,x.jsx)(_,{returnTo:e,errorContext:`web_login`,fillsViewport:!0,secondary:{label:n(`loginPage.signUp`),href:a}})}function w(){let e=c(),t=y();return t.kind===`wait`?(0,x.jsx)(g,{animateAvatarWaveIn:!0,fillsViewport:!0,children:(0,x.jsx)(v,{})}):t.kind===`redirect`?t.node:e?(0,x.jsx)(S,{returnTo:t.returnTo}):(0,x.jsx)(C,{returnTo:t.returnTo})}export{w as LoginPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{As as t,Eb as n,Tp as r,jv as i}from"./app-Tg6YU_tZ.js";import{j as a}from"./vendor-DYOeoIwg.js";import{_ as o,t as s,x as c}from"./react-B9IgSVeK.js";import{r as l,t as u}from"./account-shell-CbiWTAQP.js";var d=e(c(),1),f=s();function p(){let{t:e}=a(`account`),[s]=o(),c=r.use.logout(),p=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{if(p.current)return;p.current=!0;let e=i(s.get(`returnTo`),n.account.login),r=e.startsWith(`http`)||e===n.account.login?e:`${n.account.login}?returnTo=${encodeURIComponent(e)}`,a=!1;return c().then(()=>{a||t(r)},()=>{a||t(r)}),()=>{a=!0}},[c,s]),(0,f.jsx)(u,{children:(0,f.jsx)(l,{title:e(`logoutPage.title`)})})}export{p as LogoutPage};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Eb as t,xp as n}from"./app-DVwAB8n7.js";import{d as r,i,t as a,x as o}from"./react-B9IgSVeK.js";import{Ja as s,zn as c}from"./icons-QG1KAFmx.js";import{n as l,t as u}from"./sidebar-tree-CbUtC4FM.js";var d=s(`monitor-cog`,[[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m14.305 7.53.923-.382`,key:`1mlnsw`}],[`path`,{d:`m15.228 4.852-.923-.383`,key:`82mpwg`}],[`path`,{d:`m16.852 3.228-.383-.924`,key:`ln4sir`}],[`path`,{d:`m16.852 8.772-.383.923`,key:`1dejw0`}],[`path`,{d:`m19.148 3.228.383-.924`,key:`192kgf`}],[`path`,{d:`m19.53 9.696-.382-.924`,key:`fiavlr`}],[`path`,{d:`m20.772 4.852.924-.383`,key:`1j8mgp`}],[`path`,{d:`m20.772 7.148.924.383`,key:`zix9be`}],[`path`,{d:`M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7`,key:`1tnzv8`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}]]),f=e(o(),1),p=[{id:`emails`,label:`Emails`,href:t.logs.emails,icon:c},{id:`system-events`,label:`System Events`,href:t.logs.systemEvents,icon:d}],m=a();function h(){let e=n({platformHostedOnly:!0}),a=n(),{pathname:o}=r(),s=(0,f.useMemo)(()=>p.filter(t=>!(t.id===`system-events`&&e===`gated`||t.id===`emails`&&a===`gated`)),[e,a]),c=(0,f.useMemo)(()=>{let e=p.find(e=>o===e.href||o.startsWith(e.href+`/`));return e?e.label:o===t.logs.root?p[0]?.label??`Logs & Usage`:`Logs & Usage`},[o]);return(0,m.jsx)(l,{backHref:t.assistant,sidebar:(0,m.jsx)(u,{items:s,indexPath:t.logs.root}),title:c,menuRoute:t.logs.root,children:(0,m.jsx)(i,{})})}export{h as LogsLayout};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Eb as t,Sp as n}from"./app-Tg6YU_tZ.js";import{d as r,i,t as a,x as o}from"./react-B9IgSVeK.js";import{Ja as s,zn as c}from"./icons-QG1KAFmx.js";import{n as l,t as u}from"./sidebar-tree-C-XVAOgc.js";var d=s(`monitor-cog`,[[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m14.305 7.53.923-.382`,key:`1mlnsw`}],[`path`,{d:`m15.228 4.852-.923-.383`,key:`82mpwg`}],[`path`,{d:`m16.852 3.228-.383-.924`,key:`ln4sir`}],[`path`,{d:`m16.852 8.772-.383.923`,key:`1dejw0`}],[`path`,{d:`m19.148 3.228.383-.924`,key:`192kgf`}],[`path`,{d:`m19.53 9.696-.382-.924`,key:`fiavlr`}],[`path`,{d:`m20.772 4.852.924-.383`,key:`1j8mgp`}],[`path`,{d:`m20.772 7.148.924.383`,key:`zix9be`}],[`path`,{d:`M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7`,key:`1tnzv8`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}]]),f=e(o(),1),p=[{id:`emails`,label:`Emails`,href:t.logs.emails,icon:c},{id:`system-events`,label:`System Events`,href:t.logs.systemEvents,icon:d}],m=a();function h(){let e=n({platformHostedOnly:!0}),a=n(),{pathname:o}=r(),s=(0,f.useMemo)(()=>p.filter(t=>!(t.id===`system-events`&&e===`gated`||t.id===`emails`&&a===`gated`)),[e,a]),c=(0,f.useMemo)(()=>{let e=p.find(e=>o===e.href||o.startsWith(e.href+`/`));return e?e.label:o===t.logs.root?p[0]?.label??`Logs & Usage`:`Logs & Usage`},[o]);return(0,m.jsx)(l,{backHref:t.assistant,sidebar:(0,m.jsx)(u,{items:s,indexPath:t.logs.root}),title:c,menuRoute:t.logs.root,children:(0,m.jsx)(i,{})})}export{h as LogsLayout};
@@ -0,0 +1 @@
1
+ import{Dn as e,sr as t,wn as n}from"./app-Tg6YU_tZ.js";import{j as r}from"./vendor-DYOeoIwg.js";import{t as i}from"./react-B9IgSVeK.js";import{t as a}from"./preview-error-BlHGLqgj.js";import{t as o}from"./use-truncated-blob-text-BArL-keL.js";var s=i(),c=512*1024;function l({blob:i,filename:l}){let{t:u}=r(`chat`),{text:d,truncated:f,decodeFailed:p}=o(i,c);return p?(0,s.jsx)(a,{filename:l}):d===null?(0,s.jsx)(t,{}):(0,s.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,s.jsx)(n,{content:d}),f&&(0,s.jsx)(e,{children:u(`previewTruncationNotice.markdown`)})]})}export{l as MarkdownPreview};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Rp as t,or as n,sr as r}from"./app-DVwAB8n7.js";import{t as i,x as a}from"./react-B9IgSVeK.js";var o=e(a(),1),s=i(),c=`nodownload noplaybackrate`;function l({blob:e,filename:i,kind:a}){let l=n(e,(0,o.useMemo)(()=>t({sniffedMime:null,serverMime:e.type.length>0?e.type:null,filename:i}).mime,[e,i]));return l===null?(0,s.jsx)(r,{}):a===`image`?(0,s.jsx)(`div`,{className:`flex justify-center`,children:(0,s.jsx)(`img`,{src:l,alt:i,className:`h-auto max-w-full rounded-lg border border-[var(--border-element)]`})}):a===`audio`?(0,s.jsx)(`audio`,{src:l,controls:!0,controlsList:c,preload:`metadata`,"aria-label":i,className:`w-full`}):(0,s.jsx)(`video`,{src:l,controls:!0,controlsList:c,playsInline:!0,preload:`metadata`,"aria-label":i,className:`max-w-full rounded-lg border border-[var(--border-element)]`})}export{l as MediaPreview};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{or as t,sr as n,zp as r}from"./app-Tg6YU_tZ.js";import{t as i,x as a}from"./react-B9IgSVeK.js";var o=e(a(),1),s=i(),c=`nodownload noplaybackrate`;function l({blob:e,filename:i,kind:a}){let l=t(e,(0,o.useMemo)(()=>r({sniffedMime:null,serverMime:e.type.length>0?e.type:null,filename:i}).mime,[e,i]));return l===null?(0,s.jsx)(n,{}):a===`image`?(0,s.jsx)(`div`,{className:`flex justify-center`,children:(0,s.jsx)(`img`,{src:l,alt:i,className:`h-auto max-w-full rounded-lg border border-[var(--border-element)]`})}):a===`audio`?(0,s.jsx)(`audio`,{src:l,controls:!0,controlsList:c,preload:`metadata`,"aria-label":i,className:`w-full`}):(0,s.jsx)(`video`,{src:l,controls:!0,controlsList:c,playsInline:!0,preload:`metadata`,"aria-label":i,className:`max-w-full rounded-lg border border-[var(--border-element)]`})}export{l as MediaPreview};
@@ -1,2 +1,2 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Bb as t,Eb as n,Ex as r,Fx as i,Hb as a,Ko as o,Oa as s,Ox as c,Tn as l,Ux as u,Wx as d,_c as f,ad as p,ds as m,et as h,f_ as g,jp as _,l_ as v,ms as y,ps as b,wx as x,zb as ee}from"./app-DVwAB8n7.js";import{I as S,Xn as C,Zn as w,er as T,j as E}from"./vendor-Bb38ZAP8.js";import{f as D,t as te,x as O}from"./react-B9IgSVeK.js";import{An as k,Fn as A,Gi as j,It as M,Ki as N,Q as P,Tt as ne,Ui as F,_t as re,ht as I,i as L,kt as ie,n as ae,qn as oe,t as se,xn as R}from"./icons-QG1KAFmx.js";var z=e(O(),1),B={x:600,y:450},ce=`memory_tab_v1`,le=crypto.randomUUID();function V(e){typeof window>`u`||_()&&s([{type:`onboarding`,daemon_event_id:crypto.randomUUID(),recorded_at:Date.now(),screen:`memory`,session_id:le,step_name:e,funnel_version:ce}])}var H=Math.PI*(3-Math.sqrt(5)),U=7,W=2.4,ue=34,de=10;function fe(e){return Math.min(ue,U+W*Math.sqrt(e))}function pe(e){return e===`concept`||e===`skill`||e===`capability`||e===`pending`?e:`other`}function G(e){return e===`link`||e===`learned`?e:`other`}function me(e,t={}){let n=t.center??B,r=e.nodes,i=r.length;if(i===0)return{nodes:[],edges:[]};let a=new Map;r.forEach((e,t)=>a.set(e.id,t));let o=e.edges.filter(e=>e.source!==e.target&&a.has(e.source)&&a.has(e.target)),s=Array(i).fill(0),c=[];for(let e of o){let t=a.get(e.source),n=a.get(e.target);s[t]++,s[n]++,c.push([t,n])}let l=r.map((e,t)=>fe(s[t])),u=70+26*Math.sqrt(i),d=r.map((e,t)=>{let r=(t+.5)/i,a=Math.acos(1-2*r),o=t*H,s=u*Math.cbrt(r),c=Math.sin(a);return{x:n.x+s*c*Math.cos(o),y:n.y+s*c*Math.sin(o),z:s*Math.cos(a),vx:0,vy:0,vz:0}}),f=t.iterations??Math.max(90,Math.min(340,Math.round(46e3/i))),p=.011,m=.82,h=.5,g=1,_=1-.001**(1/f);for(let e=0;e<f;e++){for(let e=0;e<i;e++){let t=d[e];for(let n=e+1;n<i;n++){let r=d[n],i=t.x-r.x,a=t.y-r.y,o=t.z-r.z,s=i*i+a*a+o*o;s<.01&&(i=(e-n)*.1+.1,a=.1,o=.05,s=i*i+a*a+o*o);let c=Math.sqrt(s),l=6400/s,u=i/c*l,f=a/c*l,p=o/c*l;t.vx+=u,t.vy+=f,t.vz+=p,r.vx-=u,r.vy-=f,r.vz-=p}}for(let[e,t]of c){let n=d[e],r=d[t],i=r.x-n.x,a=r.y-n.y,o=r.z-n.z,s=Math.sqrt(i*i+a*a+o*o)||.01,c=.05*(s-140),l=i/s*c,u=a/s*c,f=o/s*c;n.vx+=l,n.vy+=u,n.vz+=f,r.vx-=l,r.vy-=u,r.vz-=f}for(let e=0;e<i;e++){let t=d[e];t.vx+=(n.x-t.x)*p,t.vy+=(n.y-t.y)*p,t.vz+=(0-t.z)*p,t.x+=t.vx*g*h,t.y+=t.vy*g*h,t.z+=t.vz*g*h,t.vx*=m,t.vy*=m,t.vz*=m}g*=1-_}for(let e=0;e<10;e++){let e=!1;for(let t=0;t<i;t++){let n=d[t];for(let r=t+1;r<i;r++){let i=d[r],a=i.x-n.x,o=i.y-n.y,s=i.z-n.z,c=Math.sqrt(a*a+o*o+s*s),u=l[t]+l[r]+de;if(c>=u)continue;c<.01&&(a=(r-t)*.1+.1,o=.1,s=.05,c=Math.sqrt(a*a+o*o+s*s));let f=(u-c)/2,p=a/c*f,m=o/c*f,h=s/c*f;n.x-=p,n.y-=m,n.z-=h,i.x+=p,i.y+=m,i.z+=h,e=!0}}if(!e)break}return{nodes:r.map((e,t)=>{let n={id:e.id,x:d[t].x,y:d[t].y,z:d[t].z,radius:l[t],label:e.label,kind:pe(e.kind),degree:s[t]};return e.summary&&(n.summary=e.summary),e.updatedAtMs!==void 0&&(n.updatedAtMs=e.updatedAtMs),n}),edges:o.map((e,t)=>{let n={id:`${e.source}__${e.target}__${t}`,fromId:e.source,toId:e.target,kind:G(e.kind),directed:e.directed??!1};return e.description&&(n.description=e.description),n})}}var K=te();function he({title:e,detail:t,action:n}){return(0,K.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,K.jsx)(`p`,{className:`max-w-sm text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null,n?(0,K.jsx)(`div`,{className:`mt-2`,children:n}):null]})}function q(){return S(`getMemoryGraphNode.failureMessage`,{ns:`intelligence`})}function J(e,n){return C({queryKey:[`memory-graph-node`,e,n],enabled:!!(e&&n),queryFn:async()=>{let{data:r,error:i,response:o}=await g({path:{assistant_id:e},query:{id:n??``},throwOnError:!1});if(t(o,i,q()),!o.ok)throw new ee(o.status,a(i,o,q()));return r??{found:!1}}})}var ge={concept:`#467CC8`,skill:`#DB4B77`,capability:`#0E9B8B`,pending:`#F1B21E`,other:`#8D99A5`},_e=[`#467CC8`,`#E86B40`,`#7A5AF5`,`#22B8CF`,`#3DB85E`,`#E9C91A`,`#E83F5B`,`#6ECF87`,`#F39B74`,`#F5C94E`],Y={concept:`conceptGraphConstants.nodeKind.concept`,skill:`conceptGraphConstants.nodeKind.skill`,capability:`conceptGraphConstants.nodeKind.capability`,pending:`conceptGraphConstants.nodeKind.pending`,other:`conceptGraphConstants.nodeKind.other`};function ve(e){return S(Y[e],{ns:`intelligence`})}var ye=`#F1B21E`;function be(e){if(e.length<=4)return e.map((e,t)=>({node:e,index:t}));let t=e.slice(-3).map((t,n)=>({node:t,index:e.length-3+n}));return[{node:e[0],index:0},`ellipsis`,...t]}function xe(e){return e?new Date(e).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}):null}var X=600;function Se(e){let t=e.slice(0,X),n=t.lastIndexOf(`
2
- `);return n>X/2?e.slice(0,n):t}function Ce({content:e}){let[t,n]=(0,z.useState)(!1),{t:r}=E(`intelligence`);return e.length<=X?(0,K.jsx)(l,{content:e}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(l,{content:t?e:Se(e)}),(0,K.jsx)(d,{variant:`ghost`,size:`compact`,className:`-ml-2 mt-1`,onClick:()=>n(e=>!e),rightIcon:t?(0,K.jsx)(F,{size:16,"aria-hidden":!0}):(0,K.jsx)(N,{size:16,"aria-hidden":!0}),children:r(t?`conceptDetailPanel.showLess`:`conceptDetailPanel.readFullNote`)})]})}function we({assistantId:e,node:t,trail:n,neighbors:r,onTravel:i,onCrumb:a,onClose:o,onOpenThread:s}){let{t:c}=E(`intelligence`),l=w(J(e,t.id)),u=l.data,f=xe(t.updatedAtMs),p=u?.title??t.label,m=be(n);return(0,z.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),o())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]),(0,K.jsxs)(`div`,{"data-graph-panel":!0,className:`absolute inset-0 z-20 flex justify-end`,onPointerDown:e=>e.stopPropagation(),onPointerMove:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),children:[(0,K.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 16%, transparent)`},onClick:o}),(0,K.jsxs)(`aside`,{className:`relative flex h-full min-h-0 w-full max-w-md flex-col overflow-hidden`,style:{backgroundColor:`var(--surface-lift)`,borderLeft:`1px solid var(--border-base)`},children:[n.length>1?(0,K.jsxs)(`nav`,{"aria-label":c(`conceptDetailPanel.trailAriaLabel`),className:`flex shrink-0 items-center gap-1 overflow-hidden border-b px-5 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,color:`var(--content-tertiary)`},children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(n.length-2),"aria-label":c(`conceptDetailPanel.backAriaLabel`),className:`-ml-1 mr-0.5 flex shrink-0 items-center rounded p-0.5 hover:bg-[color-mix(in_srgb,var(--content-tertiary)_14%,transparent)]`,style:{color:`var(--content-tertiary)`},children:(0,K.jsx)(j,{size:16,"aria-hidden":!0})}),m.map((e,t)=>(0,K.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[t>0?(0,K.jsx)(`span`,{"aria-hidden":!0,children:`›`}):null,e===`ellipsis`?(0,K.jsx)(`span`,{"aria-hidden":!0,children:`…`}):e.index===n.length-1?(0,K.jsx)(`span`,{"aria-current":`page`,className:`max-w-[9rem] truncate`,style:{color:`var(--content-default)`},children:e.node.label}):(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(e.index),className:`max-w-[8rem] truncate rounded hover:underline`,style:{color:`var(--content-tertiary)`},children:e.node.label})]},e===`ellipsis`?`ellipsis`:e.index))]}):null,(0,K.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-3 border-b px-5 py-4`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`h2`,{className:`truncate text-title-small`,style:{color:`var(--content-default)`},title:u?.title??t.label,children:u?.title??t.label}),f?(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.updated`,{date:f})}):null]}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(L,{"aria-hidden":!0}),onClick:o,"aria-label":c(`conceptDetailPanel.closeAriaLabel`),tintColor:`var(--content-tertiary)`})]}),(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,style:{touchAction:`pan-y`},children:[l.isLoading?(0,K.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,K.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):l.isError?(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.loadError`)}):u?.found&&u.content?.trim()?(0,K.jsx)(Ce,{content:u.content},t.id):(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.emptyContent`)}),r.length>0?(0,K.jsxs)(`section`,{className:`mt-6 border-t pt-4`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`mb-2 flex items-baseline justify-between gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.wiredTo`)}),(0,K.jsx)(`span`,{className:`text-body-small-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.connectionCount`,{count:r.length})})]}),(0,K.jsx)(`ul`,{className:`flex list-none flex-col gap-0.5`,children:r.map(e=>(0,K.jsx)(`li`,{children:(0,K.jsxs)(`button`,{type:`button`,onClick:()=>i({id:e.id,label:e.label}),className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-body-medium-default hover:bg-[color-mix(in_srgb,var(--content-tertiary)_12%,transparent)]`,style:{color:`var(--content-default)`},children:[(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e.kind===`learned`?ye:`var(--content-tertiary)`}}),(0,K.jsx)(`span`,{className:`truncate`,children:e.label})]})},e.id))})]}):null]}),s?(0,K.jsxs)(`footer`,{className:`flex shrink-0 gap-2 border-t px-5 py-3`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsx)(d,{variant:`outlined`,size:`regular`,className:`flex-1`,leftIcon:(0,K.jsx)(k,{size:16,"aria-hidden":!0}),onClick:()=>s(c(`conceptDetailPanel.askPrompt`,{title:p})),children:c(`conceptDetailPanel.askAboutThis`)}),(0,K.jsx)(d,{variant:`primary`,size:`regular`,className:`flex-1`,leftIcon:(0,K.jsx)(P,{size:16,"aria-hidden":!0}),onClick:()=>s(c(`conceptDetailPanel.refinePrompt`,{title:p})),children:c(`conceptDetailPanel.refine`)})]}):null]})]})}function Te({onDismiss:e}){let{t}=E(`intelligence`);return(0,K.jsxs)(`div`,{"data-graph-control":!0,className:`pointer-events-auto absolute left-1/2 top-4 z-10 flex w-[min(30rem,calc(100%-6rem))] -translate-x-1/2 items-start gap-3 rounded-xl px-4 py-3`,style:{backgroundColor:`var(--surface-lift)`,border:`1px solid var(--border-base)`,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.25)`},children:[(0,K.jsx)(`span`,{className:`mt-0.5 shrink-0`,style:{color:`var(--primary-base)`},"aria-hidden":!0,children:(0,K.jsx)(P,{size:18})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t(`conceptGraphIntroBanner.title`)}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-lighter`,style:{color:`var(--content-tertiary)`},children:t(`conceptGraphIntroBanner.description`)})]}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(L,{"aria-hidden":!0}),onClick:e,"aria-label":t(`conceptGraphIntroBanner.dismissAriaLabel`),tintColor:`var(--content-tertiary)`})]})}var Ee=8;function De({nodeKinds:e,coloredByTheme:t,themes:n,hasLinks:r,hasLearned:i,onToggleLink:a,onToggleLearned:o,linkActive:s,learnedActive:c}){let{t:l}=E(`intelligence`);return(0,K.jsxs)(`div`,{"data-graph-control":!0,className:`pointer-events-none absolute bottom-4 left-4 flex flex-col gap-1.5 rounded-lg px-3 py-2`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 78%, transparent)`,border:`1px solid var(--border-base)`},children:[e.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-full`,style:{backgroundColor:ge[e]}}),(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:ve(e)})]},e)),t&&(n&&n.length>0?(0,K.jsxs)(K.Fragment,{children:[n.slice(0,Ee).map((e,t)=>(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,K.jsx)(`span`,{className:`max-w-[9rem] truncate text-[11px]`,style:{color:`var(--content-tertiary)`},title:e.concepts?.join(` · `)??e.name,children:e.name})]},t)),n.length>Ee&&(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:l(`conceptGraphLegend.moreThemes`,{count:n.length-Ee})})]}):(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:l(`conceptGraphLegend.coloredByTheme`)})),(e.length>0||t)&&(r||i)&&(0,K.jsx)(`div`,{className:`mt-0.5 border-t pt-1.5`,style:{borderColor:`var(--border-base)`}}),r&&(0,K.jsx)(Oe,{swatchStyle:{borderTop:`2px solid var(--content-tertiary)`},label:l(`conceptGraphLegend.link`),onToggle:a,active:s}),i&&(0,K.jsx)(Oe,{swatchStyle:{borderTop:`2px dashed #F1B21E`},label:l(`conceptGraphLegend.learned`),onToggle:o,active:c})]})}function Oe({swatchStyle:e,label:t,onToggle:n,active:r}){let i=(0,K.jsx)(`span`,{className:`inline-block h-0 w-4`,style:e}),a=(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:t});return n?(0,K.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":r,className:`pointer-events-auto flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 transition-opacity`,style:{opacity:r===!1?.4:1},children:[i,a]}):(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i,a]})}var Z=8;function ke(e,t){let n=e.length;if(n===0)return new Map;let r=new Map;e.forEach((e,t)=>r.set(e.id,t));let i=e.map(()=>[]);for(let e of t){let t=r.get(e.fromId),n=r.get(e.toId);t===void 0||n===void 0||t===n||(i[t].push(n),i[n].push(t))}let a=e.map((e,t)=>t);for(let e=0;e<Z;e++)for(let e=0;e<n;e++){let t=i[e];if(t.length===0)continue;let n=new Map;for(let e of t)n.set(a[e],(n.get(a[e])??0)+1);let r=a[e],o=-1;for(let[e,t]of n)(t>o||t===o&&e<r)&&(r=e,o=t);a[e]=r}let o=new Map,s=new Map;return e.forEach((e,t)=>{let n=a[t],r=o.get(n);r===void 0&&(r=o.size,o.set(n,r)),s.set(e.id,r)}),s}function Q(){return S(`memoryUnavailable.prompts.v2`,{ns:`intelligence`})}function Ae(){return S(`memoryUnavailable.prompts.v1`,{ns:`intelligence`})}function je(){return S(`memoryUnavailable.prompts.enable`,{ns:`intelligence`})}function Me(){return{title:S(`memoryUnavailable.statusError.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.statusError.detail`,{ns:`intelligence`}),action:`retry`}}function Ne(e){return e===`off`?{title:S(`memoryUnavailable.off.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.off.detail`,{ns:`intelligence`}),action:`settings`,prompt:je()}:e===`v1`||e===`v2`?{title:S(`memoryUnavailable.legacy.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.legacy.detail`,{ns:`intelligence`}),action:`upgrade`,prompt:e===`v1`?Ae():Q()}:{title:S(`memoryUnavailable.unknown.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.unknown.detail`,{ns:`intelligence`}),action:`none`}}function Pe({assistantId:e,onOpenThread:t}){let{t:r}=E(`intelligence`),i=D(),a=T(),s=w(b(e));(0,z.useEffect)(()=>{m(a,e)},[a,e]);let c=o(`memoryOptOut`),l=p.use.settingsDeveloperNav(),u=c&&l===!0;if(s.isLoading)return null;let f=s.data?.kind===`ready`?s.data.tier:void 0,h=s.isError?Me():Ne(f),g=h.prompt,_=null;return h.action===`upgrade`&&t&&g?_=(0,K.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,K.jsx)(P,{}),onClick:()=>{V(`upgrade_v3_clicked`),t(g)},children:r(`memoryUpgradePrompt.upgradeMemory`)}):h.action===`retry`?_=(0,K.jsx)(d,{variant:`outlined`,size:`compact`,leftIcon:(0,K.jsx)(ie,{}),onClick:()=>{s.refetch()},children:r(`memoryUpgradePrompt.tryAgain`)}):h.action===`settings`&&u?_=(0,K.jsx)(d,{variant:`outlined`,size:`compact`,leftIcon:(0,K.jsx)(I,{}),onClick:()=>i(`${n.settings.developer}?tab=memory`),children:r(`memoryUpgradePrompt.memorySettings`)}):h.action===`settings`&&t&&g&&(_=(0,K.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,K.jsx)(P,{}),onClick:()=>{V(`enable_memory_clicked`),t(g)},children:r(`memoryUpgradePrompt.turnMemoryOn`)})),(0,K.jsx)(he,{title:h.title,detail:h.detail,action:_})}function Fe({value:e,onChange:t}){let{t:n}=E(`intelligence`),r=[{value:`all`,label:n(`recencyLens.all`)},{value:`month`,label:n(`recencyLens.month`)},{value:`week`,label:n(`recencyLens.week`)}];return(0,K.jsx)(c,{ariaLabel:n(`recencyLens.ariaLabel`),items:r,value:e,onChange:t,className:`!w-auto [&>*]:!flex-none`})}var Ie=`vellum:memoryGraph:introDismissed:`;function Le(e){return`${Ie}${e}`}function $(e){if(!e)return!0;try{return window.localStorage.getItem(Le(e))===`1`}catch{return!0}}function Re(e){let[t,n]=(0,z.useState)(()=>$(e));return(0,z.useEffect)(()=>{n($(e))},[e]),[t,(0,z.useCallback)(()=>{n(!0);try{window.localStorage.setItem(Le(e),`1`)}catch{}},[e])]}var ze=[`concept`,`skill`,`capability`,`pending`,`other`],Be=.13,Ve=2600,He=.006,Ue=1.15,We=3,Ge=.32,Ke=.45,qe=3,Je=4,Ye=1440*60*1e3,Xe=14*Ye,Ze=12,Qe=2*Ye,$e=80,et=340,tt=.12,nt=.05,rt=.03,it=12,at=2600;function ot(e){let t=getComputedStyle(e);return{content:t.getPropertyValue(`--content-default`).trim()||`#e5e7eb`,tertiary:t.getPropertyValue(`--content-tertiary`).trim()||`#8792a0`}}function st(e){return e.kind===`learned`?`Learned association`:e.description??`Linked concepts`}function ct(e,t,n){return t==null?!1:e==null||n-e>t}function lt(e,t){let n=t?e.get(t):void 0;return e=>t!=null&&(e===t||(n?.has(e)??!1))}function ut({assistantId:e,className:t,isFullscreen:n,onToggleFullscreen:r,onOpenThread:i,headerAction:a,handleRef:o}){let{t:s}=E(`intelligence`),c=(0,z.useRef)(null),l=(0,z.useRef)(null),u=w(y(e)),f=u.data?.kind===`ready`?u.data.graph:null,p=(0,z.useMemo)(()=>f?me(f):{nodes:[],edges:[]},[f]),m=u.data?.kind===`ready`&&p.nodes.length>0,h=(0,z.useMemo)(()=>ke(p.nodes,p.edges),[p.nodes,p.edges]),g=(0,z.useMemo)(()=>{let e=new Map;for(let t of p.nodes){let n=h.get(t.id);if(n==null||t.degree===0)continue;let r=e.get(n);r?r.push(t):e.set(n,[t])}return[...e.entries()].map(([e,t])=>{let n=[...t].sort((e,t)=>t.degree-e.degree||(e.id<t.id?-1:1)).slice(0,3);return{hubId:n[0].id,color:_e[e%_e.length],name:n[0].label,concepts:n.map(e=>e.label),size:t.length}}).sort((e,t)=>t.size-e.size)},[h,p.nodes]),_=(0,z.useMemo)(()=>new Set(g.map(e=>e.hubId)),[g]),v=(0,z.useMemo)(()=>{let e=new Map,t=(t,n)=>{let r=e.get(t);r||(r=new Set,e.set(t,r)),r.add(n)};for(let e of p.edges)t(e.fromId,e.toId),t(e.toId,e.fromId);return e},[p.edges]),b=(0,z.useMemo)(()=>{if(p.nodes.length===0)return 1;let e=p.nodes.map(e=>{let t=e.x-B.x,n=e.y-B.y;return Math.sqrt(t*t+n*n+e.z*e.z)+e.radius}).sort((e,t)=>e-t),t=Math.min(e.length-1,Math.floor(e.length*.92));return Math.max(1,e[t])},[p.nodes]),x=(0,z.useRef)({yaw:.5,pitch:.32,zoom:1,hoveredId:null,dragging:!1,moved:!1,lastX:0,lastY:0,lastInteractAt:-1/0,dirty:!0}),ee=(0,z.useRef)([]),S=(0,z.useRef)([]),C=(0,z.useRef)({content:`#e5e7eb`,tertiary:`#8792a0`}),T=(0,z.useRef)(null),D=(0,z.useRef)(!1),te=(0,z.useRef)(null),O=(0,z.useRef)(null),[k,j]=(0,z.useState)(null),[M,N]=(0,z.useState)(null),[P,F]=(0,z.useState)([]),I=P.at(-1)??null,ie=(0,z.useCallback)(e=>{V(`node_opened`),F(t=>[...t,e])},[]),oe=(0,z.useRef)(null);(0,z.useEffect)(()=>{oe.current=I?.id??null,x.current.dirty=!0},[I?.id]);let[ce,le]=Re(e),[H,U]=(0,z.useState)(``),[W,ue]=(0,z.useState)(!1),de=(0,z.useRef)(null);(0,z.useEffect)(()=>{W&&de.current?.focus()},[W]);let fe=(0,z.useRef)(!1),pe=H.trim().toLowerCase(),G=(0,z.useMemo)(()=>{if(!pe)return null;let e=new Set;for(let t of p.nodes)t.label.toLowerCase().includes(pe)&&e.add(t.id);return e},[pe,p.nodes]),q=(0,z.useRef)({active:!1,matches:null});(0,z.useEffect)(()=>{q.current={active:!!G,matches:G},x.current.dirty=!0},[G]),(0,z.useEffect)(()=>{H.trim()||(fe.current=!1)},[H]);let J=(0,z.useMemo)(()=>!G||G.size===0?[]:p.nodes.filter(e=>G.has(e.id)).sort((e,t)=>t.degree-e.degree).slice(0,8),[G,p.nodes]),[Y,ve]=(0,z.useState)(`all`),be=(0,z.useRef)(null);(0,z.useEffect)(()=>{be.current=Y===`week`?7*Ye:Y===`month`?30*Ye:null,x.current.dirty=!0},[Y]);let xe=(0,z.useMemo)(()=>p.nodes.some(e=>e.updatedAtMs!=null),[p.nodes]);(0,z.useEffect)(()=>{!xe&&Y!==`all`&&ve(`all`)},[xe,Y]);let[X,Se]=(0,z.useState)({link:!0,learned:!0}),Ce=(0,z.useRef)(X);(0,z.useEffect)(()=>{Ce.current=X,x.current.dirty=!0},[X]),(0,z.useEffect)(()=>{U(``),ve(`all`),Se({link:!0,learned:!0}),F([]),fe.current=!1},[e]);let Ee=(0,z.useCallback)(()=>{let e=x.current;e.yaw=.5,e.pitch=.32,e.zoom=1,e.lastInteractAt=-1/0,e.dirty=!0,j(null)},[]),Oe=(0,z.useCallback)(e=>{let t=x.current;t.zoom=Math.max(Ke,Math.min(qe,t.zoom*e)),t.lastInteractAt=performance.now(),t.dirty=!0},[]),Z=(0,z.useCallback)(e=>{T.current=e,x.current.lastInteractAt=performance.now(),x.current.dirty=!0},[]),Q=(0,z.useCallback)(e=>{ie(e),Z(e.id)},[ie,Z]),Ae=(0,z.useCallback)(e=>{te.current={id:e,start:performance.now()},Z(e),window.setTimeout(()=>{x.current.dirty=!0},at+60)},[Z]),je=(0,z.useCallback)(e=>{p.nodes.some(t=>t.id===e)?Ae(e):O.current=e},[p.nodes,Ae]);(0,z.useEffect)(()=>{let e=O.current;e&&p.nodes.some(t=>t.id===e)&&(O.current=null,Ae(e))},[p.nodes,Ae]),(0,z.useImperativeHandle)(o,()=>({focusNode:je}),[je]);let Me=(0,z.useCallback)(()=>{F([]),U(``),j(null),T.current=null,D.current=!0},[]),Ne=(0,z.useCallback)(e=>{U(``);let t=P.slice(0,e+1);F(t);let n=t.at(-1);n?Z(n.id):j(null)},[P,Z]),Ie=(0,z.useCallback)(e=>{U(``),Q(e)},[Q]),Le=(0,z.useMemo)(()=>{let e=I?.id;if(!e)return[];let t=v.get(e);if(!t||t.size===0)return[];let n=new Map(p.nodes.map(e=>[e.id,e.label])),r=new Map;for(let t of p.edges)t.fromId===e?r.set(t.toId,t.kind):t.toId===e&&r.set(t.fromId,t.kind);let i=[];for(let e of t){let t=n.get(e);t!=null&&i.push({id:e,label:t,kind:r.get(e)})}return i.sort((e,t)=>e.label.localeCompare(t.label)),i},[I?.id,v,p.nodes,p.edges]);(0,z.useEffect)(()=>{if(!m)return;let e=l.current,t=c.current;if(!e||!t)return;let n=e.getContext(`2d`);if(!n)return;let r=p.nodes,i=p.edges,a=h,o=_,s=v,u=new Set(r.map(e=>e.id)),d=b,f=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;C.current=ot(t);let g=Math.min(window.devicePixelRatio||1,2),y=0,w=0,E=()=>{let n=t.getBoundingClientRect();y=n.width,w=n.height,g=Math.min(window.devicePixelRatio||1,2),e.width=Math.max(1,Math.round(y*g)),e.height=Math.max(1,Math.round(w*g)),e.style.width=`${y}px`,e.style.height=`${w}px`,C.current=ot(t),x.current.dirty=!0};E();let O=new ResizeObserver(E);O.observe(t);let k=new MutationObserver(()=>{C.current=ot(t),x.current.dirty=!0});k.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`,`class`,`style`]});let A=0,j=0,M=e=>{let t=j?Math.min(.05,(e-j)/1e3):0;j=e;let c=x.current,l=C.current,p=Date.now(),m=T.current;if(!c.dragging&&e-c.lastInteractAt>Ve&&!f&&!m&&(c.yaw+=Be*t),m){let e=r.find(e=>e.id===m);if(!e)T.current=null;else{let t=e.x-B.x,n=e.y-B.y,r=e.z,i=-Math.atan2(t,r),a=Math.hypot(t,r),o=Math.max(-Ue,Math.min(Ue,Math.atan2(n,a))),s=Math.min(qe,1.6),l=f?1:.15,u=i-c.yaw;u=Math.atan2(Math.sin(u),Math.cos(u)),c.yaw+=u*l,c.pitch+=(o-c.pitch)*l,c.zoom+=(s-c.zoom)*l,c.dirty=!0,Math.abs(u)<.01&&Math.abs(o-c.pitch)<.01&&Math.abs(s-c.zoom)<.02&&(T.current=null)}}if(D.current&&!c.dragging){let e=f?1:.15;c.pitch+=(.32-c.pitch)*e,c.zoom+=(1-c.zoom)*e,c.dirty=!0,Math.abs(.32-c.pitch)<.01&&Math.abs(1-c.zoom)<.02&&(D.current=!1)}if(f&&!c.dirty){A=requestAnimationFrame(M);return}c.dirty=!1;let h=Math.cos(c.yaw),_=Math.sin(c.yaw),v=Math.cos(c.pitch),b=Math.sin(c.pitch),E=We*d,O=Math.min(y,w)*.88/(2*d)*c.zoom,k=y/2,N=w/2;n.setTransform(g,0,0,g,0,0),n.clearRect(0,0,y,w);let P=c.hoveredId,ne=P?s.get(P):void 0,F=e=>!P||e===P||(ne?.has(e)??!1),re=q.current,I=re.active,L=e=>!I||(re.matches?.has(e)??!1),ie=be.current,ae=e=>ct(e.updatedAtMs,ie,p),se=Ce.current,R=oe.current,z=R!=null&&u.has(R),ce=lt(s,z?R:null),le=r.length<=$e?1:Math.max(tt,1-(r.length-$e)/(et-$e)*(1-tt)),V=Array(r.length);for(let e=0;e<r.length;e++){let t=r[e],n=t.x-B.x,i=t.y-B.y,a=t.z,o=n*h+a*_,s=-n*_+a*h,c=i*v-s*b,l=i*b+s*v,u=E/(E-l);V[e]={node:t,sx:k+o*O*u,sy:N+c*O*u,sr:Math.max(1.2,t.radius*O*u),depth:Math.max(0,Math.min(1,(l+d)/(2*d)))}}let H=V.map((e,t)=>t).sort((e,t)=>V[e].depth-V[t].depth),U=new Map;for(let e of V)U.set(e.node.id,e);let W=[];n.lineCap=`round`;for(let e of i){let t=U.get(e.fromId),r=U.get(e.toId);if(!t||!r)continue;let i=e.kind===`learned`,a=R!=null&&(e.fromId===R||e.toId===R);if(!a&&(i?!se.learned:!se.link))continue;let o=I&&(!L(e.fromId)||!L(e.toId))||!a&&(ae(t.node)||ae(r.node)),s=P!=null&&(e.fromId===P||e.toId===P),c=(t.depth+r.depth)/2;!o&&(!z||a)&&W.push({ax:t.sx,ay:t.sy,bx:r.sx,by:r.sy,kind:e.kind,description:e.description,depth:c});let u=(i?.34:.28)*(.4+.6*c),d=i?u*le:u,f;f=o?.03:z?a?.9:rt:P==null?d:s?.9:F(e.fromId)&&F(e.toId)?u:.05,n.globalAlpha=f,n.strokeStyle=i?ye:l.tertiary,n.lineWidth=(s||z&&a?2:1)*(.6+.6*c),n.setLineDash(i?[4,4]:[]),n.beginPath(),n.moveTo(t.sx,t.sy),n.lineTo(r.sx,r.sy),n.stroke()}n.setLineDash([]);for(let t of H){let r=V[t],i=r.node,o=i.kind===`concept`?_e[(a.get(i.id)??0)%_e.length]:ge[i.kind],s=I&&!L(i.id),c=ce(i.id),l=s||ae(i)&&!c,u=z?c&&!l:!l&&F(i.id),d=i.id===P,m=Ge+(1-Ge)*r.depth,h=z&&!c?m*nt:l?m*.08:u?m:m*.18,g=(d?16:i.degree>=Je?8:4)*r.depth,_=i.updatedAtMs;if(_){let n=p-_,i=Math.max(0,1-n/Xe);if(i>0){let a=i*Ze;!f&&n<Qe&&(a*=.55+.45*Math.sin(e/420+t*1.7)),g+=a*r.depth}}n.shadowColor=o,n.shadowBlur=u?g:0;let v=i.kind===`pending`;n.globalAlpha=h*(v?.3:.55),n.fillStyle=o,n.beginPath(),n.arc(r.sx,r.sy,r.sr,0,Math.PI*2),n.fill(),n.shadowBlur=0,n.globalAlpha=h,n.lineWidth=d?2.5:1.4,n.strokeStyle=o,n.setLineDash(v?[3,3]:[]),n.stroke(),n.setLineDash([]);let y=te.current;if(y&&y.id===i.id){let t=e-y.start;if(t>at)te.current=null;else if(f)n.globalAlpha=.7,n.lineWidth=1.5,n.beginPath(),n.arc(r.sx,r.sy,r.sr+7,0,Math.PI*2),n.stroke();else for(let e=0;e<3;e++){let i=(t-e*320)/1100;i<=0||i>=1||(n.globalAlpha=(1-i)*.8,n.lineWidth=1.5,n.beginPath(),n.arc(r.sx,r.sy,r.sr+i*46*r.depth,0,Math.PI*2),n.stroke())}}}n.shadowBlur=0,n.textAlign=`center`,n.textBaseline=`top`,n.font=`11px ui-sans-serif, system-ui, sans-serif`;for(let e of H){let t=V[e],r=t.node,i=ce(r.id);if(I&&!L(r.id)||ae(r)&&!i||!(z?i:I?t.depth>.3:P==null?o.has(r.id)||r.degree>=Je&&t.depth>.55:F(r.id)))continue;n.globalAlpha=(r.id===P||r.id===R?1:.85)*(.4+.6*t.depth),n.fillStyle=l.content;let a=r.label.length>22?`${r.label.slice(0,21)}…`:r.label;n.fillText(a,t.sx,t.sy+t.sr+3)}n.globalAlpha=1,ee.current=V.map(e=>({id:e.node.id,sx:e.sx,sy:e.sy,sr:e.sr,depth:e.depth,updatedAtMs:e.node.updatedAtMs})),S.current=W,A=requestAnimationFrame(M)};return A=requestAnimationFrame(M),()=>{cancelAnimationFrame(A),O.disconnect(),k.disconnect()}},[m,p,v,b,h,_]);let $=(0,z.useCallback)((e,t)=>{let n=q.current,r=be.current,i=lt(v,oe.current),a=Date.now(),o=null,s=-1;for(let c of ee.current){if(n.active&&!(n.matches?.has(c.id)??!1)||!i(c.id)&&ct(c.updatedAtMs,r,a))continue;let l=e-c.sx,u=t-c.sy;l*l+u*u<=(c.sr+5)*(c.sr+5)&&c.depth>s&&(o=c.id,s=c.depth)}return o},[v]),ut=(0,z.useCallback)((e,t)=>{let n=null,r=1/0,i=-1;for(let a of S.current){let o=a.bx-a.ax,s=a.by-a.ay,c=o*o+s*s,l=0;c>0&&(l=((e-a.ax)*o+(t-a.ay)*s)/c,l=Math.max(0,Math.min(1,l)));let u=e-(a.ax+l*o),d=t-(a.ay+l*s),f=Math.sqrt(u*u+d*d);f>5||(f<r||f===r&&a.depth>i)&&(n={kind:a.kind,description:a.description},r=f,i=a.depth)}return n},[]),dt=e=>{let t=c.current.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},ft=(0,z.useCallback)(e=>{if(e.button!==0||e.target.closest(`[data-graph-control]`))return;let t=x.current;T.current=null,t.dragging=!0,t.moved=!1,t.lastX=e.clientX,t.lastY=e.clientY,t.lastInteractAt=performance.now(),e.currentTarget.setPointerCapture(e.pointerId)},[]),pt=(0,z.useCallback)(e=>{let t=x.current;if(t.dragging){let n=e.clientX-t.lastX,r=e.clientY-t.lastY;(Math.abs(n)>2||Math.abs(r)>2)&&(t.moved=!0),t.yaw+=n*He,t.pitch=Math.max(-Ue,Math.min(Ue,t.pitch+r*He)),t.lastX=e.clientX,t.lastY=e.clientY,t.lastInteractAt=performance.now(),t.dirty=!0;return}let{x:n,y:r}=dt(e),i=$(n,r);if(i!==t.hoveredId&&(t.hoveredId=i,t.dirty=!0),i)N(null);else{let e=ut(n,r);N(e?st(e):null)}},[$,ut]),mt=(0,z.useCallback)(e=>{let t=x.current;if(!t.dragging)return;t.dragging=!1,t.lastInteractAt=performance.now(),t.dirty=!0;let n=e.currentTarget;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),!t.moved){let{x:t,y:n}=dt(e),r=$(t,n);if(r){let e=p.nodes.find(e=>e.id===r);e&&Q({id:e.id,label:e.label,updatedAtMs:e.updatedAtMs})}else j(null)}},[$,p.nodes,Q]),ht=(0,z.useCallback)(()=>{let e=x.current;N(null),!(e.dragging||e.hoveredId==null)&&(e.hoveredId=null,e.dirty=!0,j(null))},[]);(0,z.useEffect)(()=>{let e=c.current;if(!e||!m)return;let t=e=>{if(e.target.closest?.(`[data-graph-panel]`))return;e.preventDefault();let t=x.current;t.zoom=Math.max(Ke,Math.min(qe,t.zoom*(1-e.deltaY/500))),t.lastInteractAt=performance.now(),t.dirty=!0};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[m]);let gt=(0,z.useMemo)(()=>{let e=new Set(p.nodes.map(e=>e.kind));return ze.filter(t=>e.has(t))},[p.nodes]),_t=(0,z.useMemo)(()=>p.edges.some(e=>e.kind===`learned`),[p.edges]),vt=(0,z.useMemo)(()=>p.edges.some(e=>e.kind!==`learned`),[p.edges]);(0,z.useEffect)(()=>{!(vt&&_t)&&(!X.link||!X.learned)&&Se({link:!0,learned:!0})},[vt,_t,X]);let yt=u.data?.kind===`ready`&&!ce,bt=p.nodes.length,xt=p.edges.length,St=new Set(h.values()).size,Ct=(e,t)=>`${e} ${t}${e===1?``:`s`}`,wt=yt?null:k??M,Tt=m&&(p.nodes.length>it||!!H),Et=!!(r||a)||m,Dt;return Dt=u.isLoading?(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,K.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):u.isError?(0,K.jsx)(he,{title:s(`conceptGraphView.loadErrorTitle`),detail:s(`conceptGraphView.loadErrorDetail`)}):u.data?.kind===`unsupported`?(0,K.jsx)(Pe,{assistantId:e,onOpenThread:i}):m?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`canvas`,{ref:l,className:`absolute inset-0 h-full w-full`}),(p.nodes.length>it||Y!==`all`)&&xe?(0,K.jsx)(`div`,{"data-graph-control":!0,className:`absolute left-4 top-4 z-10`,children:(0,K.jsx)(Fe,{value:Y,onChange:ve})}):null,(0,K.jsx)(De,{nodeKinds:gt.filter(e=>e!==`concept`),coloredByTheme:gt.includes(`concept`),themes:g,hasLinks:vt,hasLearned:_t,...vt&&_t?{onToggleLink:()=>Se(e=>({...e,link:!e.link})),onToggleLearned:()=>Se(e=>({...e,learned:!e.learned})),linkActive:X.link,learnedActive:X.learned}:{}}),(0,K.jsx)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 text-[11px]`,style:{color:`var(--content-tertiary)`},children:s(`conceptGraphView.dragToRotateHint`)}),f?.truncated?(0,K.jsx)(`div`,{className:`pointer-events-none absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full px-3 py-1 text-[11px]`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-tertiary)`},children:s(`conceptGraphView.truncatedNotice`,{count:p.nodes.length})}):null,(0,K.jsxs)(`div`,{"data-graph-control":!0,className:`absolute right-4 top-4 flex flex-col gap-1`,children:[(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(se,{}),onClick:()=>Oe(1.25),"aria-label":s(`conceptGraphView.zoomInAriaLabel`),tooltip:s(`conceptGraphView.zoomInAriaLabel`)}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(ae,{}),onClick:()=>Oe(.8),"aria-label":s(`conceptGraphView.zoomOutAriaLabel`),tooltip:s(`conceptGraphView.zoomOutAriaLabel`)}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(ne,{}),onClick:Ee,"aria-label":s(`conceptGraphView.resetViewAriaLabel`),tooltip:s(`conceptGraphView.resetViewAriaLabel`)})]})]}):(0,K.jsx)(he,{title:s(`conceptGraphView.emptyTitle`),detail:s(`conceptGraphView.emptyDetail`)}),(0,K.jsxs)(`div`,{className:`@container flex select-none flex-col overflow-hidden rounded-xl ${t??``}`,style:{backgroundColor:`var(--surface-base)`},children:[Et?(0,K.jsxs)(`div`,{className:`flex h-12 flex-none items-center gap-2 px-3`,style:{borderBottom:`1px solid var(--border-base)`},children:[r?(0,K.jsx)(d,{variant:`ghost`,iconOnly:n?(0,K.jsx)(R,{}):(0,K.jsx)(A,{}),onClick:r,"aria-label":s(n?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`),tooltip:s(n?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`)}):null,Tt?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(re,{}),onClick:()=>ue(!0),"aria-label":s(`conceptGraphView.searchConceptsAriaLabel`),tooltip:s(`conceptGraphView.searchConceptsAriaLabel`),className:W?`hidden`:`@2xl:hidden`}),(0,K.jsxs)(`div`,{className:`relative ${W?``:`hidden @2xl:block`}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-full px-2.5 py-1`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`},children:[(0,K.jsx)(re,{size:14,"aria-hidden":!0,style:{color:`var(--content-tertiary)`}}),(0,K.jsx)(`input`,{ref:de,type:`text`,value:H,onChange:e=>{let t=e.target.value;t.trim()&&!fe.current&&(V(`search`),fe.current=!0),U(t)},onKeyDown:e=>{e.key===`Escape`?(H||W)&&(e.preventDefault(),e.stopPropagation(),U(``),ue(!1)):e.key===`Enter`&&J.length>0&&(e.preventDefault(),Z(J[0].id))},placeholder:s(`conceptGraphView.searchConceptsPlaceholder`),"aria-label":s(`conceptGraphView.searchConceptsAriaLabel`),className:`w-36 bg-transparent text-[12px] outline-none placeholder:text-[var(--content-tertiary)]`,style:{color:`var(--content-default)`}}),H?(0,K.jsx)(`span`,{className:`text-[11px] tabular-nums`,style:{color:`var(--content-tertiary)`},children:G?.size??0}):null,H||W?(0,K.jsx)(`button`,{type:`button`,onClick:()=>{U(``),ue(!1)},"aria-label":s(`conceptGraphView.clearSearchAriaLabel`),className:`flex items-center`,style:{color:`var(--content-tertiary)`},children:(0,K.jsx)(L,{size:13})}):null]}),H&&J.length>0?(0,K.jsx)(`ul`,{className:`absolute left-0 top-full z-30 mt-1.5 flex max-h-56 w-52 list-none flex-col overflow-y-auto rounded-xl py-1`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 92%, transparent)`,border:`1px solid var(--border-base)`},children:J.map(e=>(0,K.jsx)(`li`,{children:(0,K.jsx)(`button`,{type:`button`,onClick:()=>{Q({id:e.id,label:e.label,updatedAtMs:e.updatedAtMs}),U(``),ue(!1)},className:`block w-full truncate px-3 py-1 text-left text-[12px] hover:bg-[color-mix(in_srgb,var(--content-tertiary)_14%,transparent)]`,style:{color:`var(--content-default)`},children:e.label})},e.id))}):null]})]}):null,(0,K.jsx)(`div`,{className:`pointer-events-none mx-auto min-w-0`,children:wt?(0,K.jsx)(`div`,{className:`truncate rounded-full px-3 py-1 text-[12px]`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-default)`},children:wt}):m&&!yt&&!W?(0,K.jsxs)(`div`,{className:`rounded-full px-3 py-1 text-[11px] tabular-nums`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-tertiary)`},children:[(0,K.jsxs)(`span`,{className:`@max-md:hidden`,children:[Ct(bt,`neuron`),` · `,Ct(xt,`synapse`),` ·`,` `,Ct(St,`lobe`)]}),(0,K.jsxs)(`span`,{className:`hidden @max-md:inline`,children:[bt,` · `,xt,` · `,St]})]}):null}),a?(0,K.jsx)(`div`,{className:`flex-none`,children:a}):null]}):null,(0,K.jsxs)(`div`,{ref:c,className:`relative min-h-0 flex-1`,style:{backgroundImage:`radial-gradient(circle at center, color-mix(in srgb, var(--content-tertiary) 8%, transparent), transparent 62%)`,touchAction:`none`,cursor:m?`grab`:`default`},onPointerDown:m?ft:void 0,onPointerMove:m?pt:void 0,onPointerUp:m?mt:void 0,onPointerCancel:m?mt:void 0,onPointerLeave:m?ht:void 0,children:[yt?(0,K.jsx)(Te,{onDismiss:le}):null,Dt,m&&I?(0,K.jsx)(we,{assistantId:e,node:I,trail:P,neighbors:Le,onTravel:Ie,onCrumb:Ne,onClose:Me,onOpenThread:i}):null]})]})}async function dt(e,t){let{data:n}=await v({path:{assistant_id:e},body:{content:t},throwOnError:!0});return n}function ft({open:e,onOpenChange:t,assistantId:n,onCreated:a}){let{t:o}=E(`intelligence`),s=T(),[c,l]=(0,z.useState)(``),[f,p]=(0,z.useState)(!1),m=(0,z.useCallback)(async()=>{let e=c.trim();if(e){p(!0);try{let r=await dt(n,e);if(!r.success){x.error(r.message||o(`createMemoryModal.saveError`));return}x.success(r.pendingNodeId?o(`createMemoryModal.savedFoundToast`):o(`createMemoryModal.savedPendingToast`)),l(``),t(!1),a?.(r.pendingNodeId),await Promise.all([s.invalidateQueries({queryKey:y(n).queryKey}),s.invalidateQueries({queryKey:b(n).queryKey})])}catch(e){let t=e instanceof Error?e.message:o(`createMemoryModal.createError`);x.error(t)}finally{p(!1)}}},[n,c,t,a,s,o]);return(0,K.jsx)(r.Root,{open:e,onOpenChange:t,children:(0,K.jsxs)(r.Content,{size:`sm`,children:[(0,K.jsx)(r.Header,{children:(0,K.jsx)(r.Title,{children:o(`createMemoryModal.title`)})}),(0,K.jsx)(r.Body,{children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,K.jsx)(i,{label:o(`createMemoryModal.contentLabel`),placeholder:o(`createMemoryModal.contentPlaceholder`),value:c,onChange:e=>l(e.target.value),disabled:f,rows:3,fullWidth:!0}),(0,K.jsx)(u,{as:`p`,variant:`body-medium-lighter`,className:`text-(--content-secondary)`,children:o(`createMemoryModal.helperText`)})]})}),(0,K.jsxs)(r.Footer,{children:[(0,K.jsx)(r.Close,{asChild:!0,children:(0,K.jsx)(d,{variant:`outlined`,disabled:f,children:o(`createMemoryModal.cancel`)})}),(0,K.jsx)(d,{variant:`primary`,onClick:m,disabled:f||!c.trim(),leftIcon:f?(0,K.jsx)(oe,{className:`animate-spin`}):void 0,children:o(f?`createMemoryModal.creating`:`createMemoryModal.create`)})]})]})})}function pt({onOpenThread:e}){let{t}=E(`intelligence`),n=h(),[r,i]=(0,z.useState)(!1),a=(0,z.useRef)(null),o=w(y(n)),s=w(b(n)),c=o.data?.kind===`ready`&&s.data?.kind===`ready`,l=(0,z.useRef)(!1);return(0,z.useEffect)(()=>{l.current||(l.current=!0,V(`opened`))},[]),(0,K.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[(0,K.jsx)(ut,{assistantId:n,className:`h-full w-full`,onOpenThread:e,handleRef:a,headerAction:c?(0,K.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,K.jsx)(M,{}),onClick:()=>i(!0),children:t(`memoryPage.createMemory`)}):void 0}),c?(0,K.jsx)(ft,{open:r,onOpenChange:i,assistantId:n,onCreated:e=>{e&&a.current?.focusNode(e)}}):null]})}function mt(){let e=D();return(0,K.jsx)(pt,{onOpenThread:t=>{V(`chat_from_node`),f(e,{prompt:t})}},h())}export{mt as MemoryPageRoute};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Bb as t,Ea as n,Eb as r,Ex as i,Fx as a,Hb as o,Mp as s,Ox as c,Ux as l,Wo as u,Wx as d,et as f,f_ as p,fs as m,gc as h,id as g,l_ as _,ps as v,us as y,wn as b,wx as x,zb as ee}from"./app-Tg6YU_tZ.js";import{I as S,Xn as C,Zn as w,er as T,j as E}from"./vendor-DYOeoIwg.js";import{f as D,t as te,x as O}from"./react-B9IgSVeK.js";import{An as k,Fn as A,Gi as j,It as M,Ki as N,Q as P,Tt as ne,Ui as F,_t as re,ht as I,i as L,kt as ie,n as ae,qn as oe,t as se,xn as R}from"./icons-QG1KAFmx.js";var z=e(O(),1),B={x:600,y:450},ce=`memory_tab_v1`,le=crypto.randomUUID();function V(e){typeof window>`u`||s()&&n([{type:`onboarding`,daemon_event_id:crypto.randomUUID(),recorded_at:Date.now(),screen:`memory`,session_id:le,step_name:e,funnel_version:ce}])}var H=Math.PI*(3-Math.sqrt(5)),U=7,W=2.4,ue=34,de=10;function fe(e){return Math.min(ue,U+W*Math.sqrt(e))}function pe(e){return e===`concept`||e===`skill`||e===`capability`||e===`pending`?e:`other`}function G(e){return e===`link`||e===`learned`?e:`other`}function me(e,t={}){let n=t.center??B,r=e.nodes,i=r.length;if(i===0)return{nodes:[],edges:[]};let a=new Map;r.forEach((e,t)=>a.set(e.id,t));let o=e.edges.filter(e=>e.source!==e.target&&a.has(e.source)&&a.has(e.target)),s=Array(i).fill(0),c=[];for(let e of o){let t=a.get(e.source),n=a.get(e.target);s[t]++,s[n]++,c.push([t,n])}let l=r.map((e,t)=>fe(s[t])),u=70+26*Math.sqrt(i),d=r.map((e,t)=>{let r=(t+.5)/i,a=Math.acos(1-2*r),o=t*H,s=u*Math.cbrt(r),c=Math.sin(a);return{x:n.x+s*c*Math.cos(o),y:n.y+s*c*Math.sin(o),z:s*Math.cos(a),vx:0,vy:0,vz:0}}),f=t.iterations??Math.max(90,Math.min(340,Math.round(46e3/i))),p=.011,m=.82,h=.5,g=1,_=1-.001**(1/f);for(let e=0;e<f;e++){for(let e=0;e<i;e++){let t=d[e];for(let n=e+1;n<i;n++){let r=d[n],i=t.x-r.x,a=t.y-r.y,o=t.z-r.z,s=i*i+a*a+o*o;s<.01&&(i=(e-n)*.1+.1,a=.1,o=.05,s=i*i+a*a+o*o);let c=Math.sqrt(s),l=6400/s,u=i/c*l,f=a/c*l,p=o/c*l;t.vx+=u,t.vy+=f,t.vz+=p,r.vx-=u,r.vy-=f,r.vz-=p}}for(let[e,t]of c){let n=d[e],r=d[t],i=r.x-n.x,a=r.y-n.y,o=r.z-n.z,s=Math.sqrt(i*i+a*a+o*o)||.01,c=.05*(s-140),l=i/s*c,u=a/s*c,f=o/s*c;n.vx+=l,n.vy+=u,n.vz+=f,r.vx-=l,r.vy-=u,r.vz-=f}for(let e=0;e<i;e++){let t=d[e];t.vx+=(n.x-t.x)*p,t.vy+=(n.y-t.y)*p,t.vz+=(0-t.z)*p,t.x+=t.vx*g*h,t.y+=t.vy*g*h,t.z+=t.vz*g*h,t.vx*=m,t.vy*=m,t.vz*=m}g*=1-_}for(let e=0;e<10;e++){let e=!1;for(let t=0;t<i;t++){let n=d[t];for(let r=t+1;r<i;r++){let i=d[r],a=i.x-n.x,o=i.y-n.y,s=i.z-n.z,c=Math.sqrt(a*a+o*o+s*s),u=l[t]+l[r]+de;if(c>=u)continue;c<.01&&(a=(r-t)*.1+.1,o=.1,s=.05,c=Math.sqrt(a*a+o*o+s*s));let f=(u-c)/2,p=a/c*f,m=o/c*f,h=s/c*f;n.x-=p,n.y-=m,n.z-=h,i.x+=p,i.y+=m,i.z+=h,e=!0}}if(!e)break}return{nodes:r.map((e,t)=>{let n={id:e.id,x:d[t].x,y:d[t].y,z:d[t].z,radius:l[t],label:e.label,kind:pe(e.kind),degree:s[t]};return e.summary&&(n.summary=e.summary),e.updatedAtMs!==void 0&&(n.updatedAtMs=e.updatedAtMs),n}),edges:o.map((e,t)=>{let n={id:`${e.source}__${e.target}__${t}`,fromId:e.source,toId:e.target,kind:G(e.kind),directed:e.directed??!1};return e.description&&(n.description=e.description),n})}}var K=te();function he({title:e,detail:t,action:n}){return(0,K.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,K.jsx)(`p`,{className:`max-w-sm text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null,n?(0,K.jsx)(`div`,{className:`mt-2`,children:n}):null]})}function q(){return S(`getMemoryGraphNode.failureMessage`,{ns:`intelligence`})}function J(e,n){return C({queryKey:[`memory-graph-node`,e,n],enabled:!!(e&&n),queryFn:async()=>{let{data:r,error:i,response:a}=await p({path:{assistant_id:e},query:{id:n??``},throwOnError:!1});if(t(a,i,q()),!a.ok)throw new ee(a.status,o(i,a,q()));return r??{found:!1}}})}var ge={concept:`#467CC8`,skill:`#DB4B77`,capability:`#0E9B8B`,pending:`#F1B21E`,other:`#8D99A5`},_e=[`#467CC8`,`#E86B40`,`#7A5AF5`,`#22B8CF`,`#3DB85E`,`#E9C91A`,`#E83F5B`,`#6ECF87`,`#F39B74`,`#F5C94E`],Y={concept:`conceptGraphConstants.nodeKind.concept`,skill:`conceptGraphConstants.nodeKind.skill`,capability:`conceptGraphConstants.nodeKind.capability`,pending:`conceptGraphConstants.nodeKind.pending`,other:`conceptGraphConstants.nodeKind.other`};function ve(e){return S(Y[e],{ns:`intelligence`})}var ye=`#F1B21E`;function be(e){if(e.length<=4)return e.map((e,t)=>({node:e,index:t}));let t=e.slice(-3).map((t,n)=>({node:t,index:e.length-3+n}));return[{node:e[0],index:0},`ellipsis`,...t]}function xe(e){return e?new Date(e).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}):null}var X=600;function Se(e){let t=e.slice(0,X),n=t.lastIndexOf(`
2
+ `);return n>X/2?e.slice(0,n):t}function Ce({content:e}){let[t,n]=(0,z.useState)(!1),{t:r}=E(`intelligence`);return e.length<=X?(0,K.jsx)(b,{content:e}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(b,{content:t?e:Se(e)}),(0,K.jsx)(d,{variant:`ghost`,size:`compact`,className:`-ml-2 mt-1`,onClick:()=>n(e=>!e),rightIcon:t?(0,K.jsx)(F,{size:16,"aria-hidden":!0}):(0,K.jsx)(N,{size:16,"aria-hidden":!0}),children:r(t?`conceptDetailPanel.showLess`:`conceptDetailPanel.readFullNote`)})]})}function we({assistantId:e,node:t,trail:n,neighbors:r,onTravel:i,onCrumb:a,onClose:o,onOpenThread:s}){let{t:c}=E(`intelligence`),l=w(J(e,t.id)),u=l.data,f=xe(t.updatedAtMs),p=u?.title??t.label,m=be(n);return(0,z.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),o())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]),(0,K.jsxs)(`div`,{"data-graph-panel":!0,className:`absolute inset-0 z-20 flex justify-end`,onPointerDown:e=>e.stopPropagation(),onPointerMove:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),children:[(0,K.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 16%, transparent)`},onClick:o}),(0,K.jsxs)(`aside`,{className:`relative flex h-full min-h-0 w-full max-w-md flex-col overflow-hidden`,style:{backgroundColor:`var(--surface-lift)`,borderLeft:`1px solid var(--border-base)`},children:[n.length>1?(0,K.jsxs)(`nav`,{"aria-label":c(`conceptDetailPanel.trailAriaLabel`),className:`flex shrink-0 items-center gap-1 overflow-hidden border-b px-5 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,color:`var(--content-tertiary)`},children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(n.length-2),"aria-label":c(`conceptDetailPanel.backAriaLabel`),className:`-ml-1 mr-0.5 flex shrink-0 items-center rounded p-0.5 hover:bg-[color-mix(in_srgb,var(--content-tertiary)_14%,transparent)]`,style:{color:`var(--content-tertiary)`},children:(0,K.jsx)(j,{size:16,"aria-hidden":!0})}),m.map((e,t)=>(0,K.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[t>0?(0,K.jsx)(`span`,{"aria-hidden":!0,children:`›`}):null,e===`ellipsis`?(0,K.jsx)(`span`,{"aria-hidden":!0,children:`…`}):e.index===n.length-1?(0,K.jsx)(`span`,{"aria-current":`page`,className:`max-w-[9rem] truncate`,style:{color:`var(--content-default)`},children:e.node.label}):(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(e.index),className:`max-w-[8rem] truncate rounded hover:underline`,style:{color:`var(--content-tertiary)`},children:e.node.label})]},e===`ellipsis`?`ellipsis`:e.index))]}):null,(0,K.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-3 border-b px-5 py-4`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`h2`,{className:`truncate text-title-small`,style:{color:`var(--content-default)`},title:u?.title??t.label,children:u?.title??t.label}),f?(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.updated`,{date:f})}):null]}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(L,{"aria-hidden":!0}),onClick:o,"aria-label":c(`conceptDetailPanel.closeAriaLabel`),tintColor:`var(--content-tertiary)`})]}),(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,style:{touchAction:`pan-y`},children:[l.isLoading?(0,K.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,K.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):l.isError?(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.loadError`)}):u?.found&&u.content?.trim()?(0,K.jsx)(Ce,{content:u.content},t.id):(0,K.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.emptyContent`)}),r.length>0?(0,K.jsxs)(`section`,{className:`mt-6 border-t pt-4`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsxs)(`div`,{className:`mb-2 flex items-baseline justify-between gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.wiredTo`)}),(0,K.jsx)(`span`,{className:`text-body-small-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:c(`conceptDetailPanel.connectionCount`,{count:r.length})})]}),(0,K.jsx)(`ul`,{className:`flex list-none flex-col gap-0.5`,children:r.map(e=>(0,K.jsx)(`li`,{children:(0,K.jsxs)(`button`,{type:`button`,onClick:()=>i({id:e.id,label:e.label}),className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-body-medium-default hover:bg-[color-mix(in_srgb,var(--content-tertiary)_12%,transparent)]`,style:{color:`var(--content-default)`},children:[(0,K.jsx)(`span`,{"aria-hidden":!0,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e.kind===`learned`?ye:`var(--content-tertiary)`}}),(0,K.jsx)(`span`,{className:`truncate`,children:e.label})]})},e.id))})]}):null]}),s?(0,K.jsxs)(`footer`,{className:`flex shrink-0 gap-2 border-t px-5 py-3`,style:{borderColor:`var(--border-base)`},children:[(0,K.jsx)(d,{variant:`outlined`,size:`regular`,className:`flex-1`,leftIcon:(0,K.jsx)(k,{size:16,"aria-hidden":!0}),onClick:()=>s(c(`conceptDetailPanel.askPrompt`,{title:p})),children:c(`conceptDetailPanel.askAboutThis`)}),(0,K.jsx)(d,{variant:`primary`,size:`regular`,className:`flex-1`,leftIcon:(0,K.jsx)(P,{size:16,"aria-hidden":!0}),onClick:()=>s(c(`conceptDetailPanel.refinePrompt`,{title:p})),children:c(`conceptDetailPanel.refine`)})]}):null]})]})}function Te({onDismiss:e}){let{t}=E(`intelligence`);return(0,K.jsxs)(`div`,{"data-graph-control":!0,className:`pointer-events-auto absolute left-1/2 top-4 z-10 flex w-[min(30rem,calc(100%-6rem))] -translate-x-1/2 items-start gap-3 rounded-xl px-4 py-3`,style:{backgroundColor:`var(--surface-lift)`,border:`1px solid var(--border-base)`,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.25)`},children:[(0,K.jsx)(`span`,{className:`mt-0.5 shrink-0`,style:{color:`var(--primary-base)`},"aria-hidden":!0,children:(0,K.jsx)(P,{size:18})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t(`conceptGraphIntroBanner.title`)}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-lighter`,style:{color:`var(--content-tertiary)`},children:t(`conceptGraphIntroBanner.description`)})]}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(L,{"aria-hidden":!0}),onClick:e,"aria-label":t(`conceptGraphIntroBanner.dismissAriaLabel`),tintColor:`var(--content-tertiary)`})]})}var Ee=8;function De({nodeKinds:e,coloredByTheme:t,themes:n,hasLinks:r,hasLearned:i,onToggleLink:a,onToggleLearned:o,linkActive:s,learnedActive:c}){let{t:l}=E(`intelligence`);return(0,K.jsxs)(`div`,{"data-graph-control":!0,className:`pointer-events-none absolute bottom-4 left-4 flex flex-col gap-1.5 rounded-lg px-3 py-2`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 78%, transparent)`,border:`1px solid var(--border-base)`},children:[e.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-full`,style:{backgroundColor:ge[e]}}),(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:ve(e)})]},e)),t&&(n&&n.length>0?(0,K.jsxs)(K.Fragment,{children:[n.slice(0,Ee).map((e,t)=>(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,K.jsx)(`span`,{className:`max-w-[9rem] truncate text-[11px]`,style:{color:`var(--content-tertiary)`},title:e.concepts?.join(` · `)??e.name,children:e.name})]},t)),n.length>Ee&&(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:l(`conceptGraphLegend.moreThemes`,{count:n.length-Ee})})]}):(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:l(`conceptGraphLegend.coloredByTheme`)})),(e.length>0||t)&&(r||i)&&(0,K.jsx)(`div`,{className:`mt-0.5 border-t pt-1.5`,style:{borderColor:`var(--border-base)`}}),r&&(0,K.jsx)(Oe,{swatchStyle:{borderTop:`2px solid var(--content-tertiary)`},label:l(`conceptGraphLegend.link`),onToggle:a,active:s}),i&&(0,K.jsx)(Oe,{swatchStyle:{borderTop:`2px dashed #F1B21E`},label:l(`conceptGraphLegend.learned`),onToggle:o,active:c})]})}function Oe({swatchStyle:e,label:t,onToggle:n,active:r}){let i=(0,K.jsx)(`span`,{className:`inline-block h-0 w-4`,style:e}),a=(0,K.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:t});return n?(0,K.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":r,className:`pointer-events-auto flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 transition-opacity`,style:{opacity:r===!1?.4:1},children:[i,a]}):(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i,a]})}var Z=8;function ke(e,t){let n=e.length;if(n===0)return new Map;let r=new Map;e.forEach((e,t)=>r.set(e.id,t));let i=e.map(()=>[]);for(let e of t){let t=r.get(e.fromId),n=r.get(e.toId);t===void 0||n===void 0||t===n||(i[t].push(n),i[n].push(t))}let a=e.map((e,t)=>t);for(let e=0;e<Z;e++)for(let e=0;e<n;e++){let t=i[e];if(t.length===0)continue;let n=new Map;for(let e of t)n.set(a[e],(n.get(a[e])??0)+1);let r=a[e],o=-1;for(let[e,t]of n)(t>o||t===o&&e<r)&&(r=e,o=t);a[e]=r}let o=new Map,s=new Map;return e.forEach((e,t)=>{let n=a[t],r=o.get(n);r===void 0&&(r=o.size,o.set(n,r)),s.set(e.id,r)}),s}function Q(){return S(`memoryUnavailable.prompts.v2`,{ns:`intelligence`})}function Ae(){return S(`memoryUnavailable.prompts.v1`,{ns:`intelligence`})}function je(){return S(`memoryUnavailable.prompts.enable`,{ns:`intelligence`})}function Me(){return{title:S(`memoryUnavailable.statusError.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.statusError.detail`,{ns:`intelligence`}),action:`retry`}}function Ne(e){return e===`off`?{title:S(`memoryUnavailable.off.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.off.detail`,{ns:`intelligence`}),action:`settings`,prompt:je()}:e===`v1`||e===`v2`?{title:S(`memoryUnavailable.legacy.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.legacy.detail`,{ns:`intelligence`}),action:`upgrade`,prompt:e===`v1`?Ae():Q()}:{title:S(`memoryUnavailable.unknown.title`,{ns:`intelligence`}),detail:S(`memoryUnavailable.unknown.detail`,{ns:`intelligence`}),action:`none`}}function Pe({assistantId:e,onOpenThread:t}){let{t:n}=E(`intelligence`),i=D(),a=T(),o=w(m(e));(0,z.useEffect)(()=>{y(a,e)},[a,e]);let s=u(`memoryOptOut`),c=g.use.settingsDeveloperNav(),l=s&&c===!0;if(o.isLoading)return null;let f=o.data?.kind===`ready`?o.data.tier:void 0,p=o.isError?Me():Ne(f),h=p.prompt,_=null;return p.action===`upgrade`&&t&&h?_=(0,K.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,K.jsx)(P,{}),onClick:()=>{V(`upgrade_v3_clicked`),t(h)},children:n(`memoryUpgradePrompt.upgradeMemory`)}):p.action===`retry`?_=(0,K.jsx)(d,{variant:`outlined`,size:`compact`,leftIcon:(0,K.jsx)(ie,{}),onClick:()=>{o.refetch()},children:n(`memoryUpgradePrompt.tryAgain`)}):p.action===`settings`&&l?_=(0,K.jsx)(d,{variant:`outlined`,size:`compact`,leftIcon:(0,K.jsx)(I,{}),onClick:()=>i(`${r.settings.developer}?tab=memory`),children:n(`memoryUpgradePrompt.memorySettings`)}):p.action===`settings`&&t&&h&&(_=(0,K.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,K.jsx)(P,{}),onClick:()=>{V(`enable_memory_clicked`),t(h)},children:n(`memoryUpgradePrompt.turnMemoryOn`)})),(0,K.jsx)(he,{title:p.title,detail:p.detail,action:_})}function Fe({value:e,onChange:t}){let{t:n}=E(`intelligence`),r=[{value:`all`,label:n(`recencyLens.all`)},{value:`month`,label:n(`recencyLens.month`)},{value:`week`,label:n(`recencyLens.week`)}];return(0,K.jsx)(c,{ariaLabel:n(`recencyLens.ariaLabel`),items:r,value:e,onChange:t,className:`!w-auto [&>*]:!flex-none`})}var Ie=`vellum:memoryGraph:introDismissed:`;function Le(e){return`${Ie}${e}`}function $(e){if(!e)return!0;try{return window.localStorage.getItem(Le(e))===`1`}catch{return!0}}function Re(e){let[t,n]=(0,z.useState)(()=>$(e));return(0,z.useEffect)(()=>{n($(e))},[e]),[t,(0,z.useCallback)(()=>{n(!0);try{window.localStorage.setItem(Le(e),`1`)}catch{}},[e])]}var ze=[`concept`,`skill`,`capability`,`pending`,`other`],Be=.13,Ve=2600,He=.006,Ue=1.15,We=3,Ge=.32,Ke=.45,qe=3,Je=4,Ye=1440*60*1e3,Xe=14*Ye,Ze=12,Qe=2*Ye,$e=80,et=340,tt=.12,nt=.05,rt=.03,it=12,at=2600;function ot(e){let t=getComputedStyle(e);return{content:t.getPropertyValue(`--content-default`).trim()||`#e5e7eb`,tertiary:t.getPropertyValue(`--content-tertiary`).trim()||`#8792a0`}}function st(e){return e.kind===`learned`?`Learned association`:e.description??`Linked concepts`}function ct(e,t,n){return t==null?!1:e==null||n-e>t}function lt(e,t){let n=t?e.get(t):void 0;return e=>t!=null&&(e===t||(n?.has(e)??!1))}function ut({assistantId:e,className:t,isFullscreen:n,onToggleFullscreen:r,onOpenThread:i,headerAction:a,handleRef:o}){let{t:s}=E(`intelligence`),c=(0,z.useRef)(null),l=(0,z.useRef)(null),u=w(v(e)),f=u.data?.kind===`ready`?u.data.graph:null,p=(0,z.useMemo)(()=>f?me(f):{nodes:[],edges:[]},[f]),m=u.data?.kind===`ready`&&p.nodes.length>0,h=(0,z.useMemo)(()=>ke(p.nodes,p.edges),[p.nodes,p.edges]),g=(0,z.useMemo)(()=>{let e=new Map;for(let t of p.nodes){let n=h.get(t.id);if(n==null||t.degree===0)continue;let r=e.get(n);r?r.push(t):e.set(n,[t])}return[...e.entries()].map(([e,t])=>{let n=[...t].sort((e,t)=>t.degree-e.degree||(e.id<t.id?-1:1)).slice(0,3);return{hubId:n[0].id,color:_e[e%_e.length],name:n[0].label,concepts:n.map(e=>e.label),size:t.length}}).sort((e,t)=>t.size-e.size)},[h,p.nodes]),_=(0,z.useMemo)(()=>new Set(g.map(e=>e.hubId)),[g]),y=(0,z.useMemo)(()=>{let e=new Map,t=(t,n)=>{let r=e.get(t);r||(r=new Set,e.set(t,r)),r.add(n)};for(let e of p.edges)t(e.fromId,e.toId),t(e.toId,e.fromId);return e},[p.edges]),b=(0,z.useMemo)(()=>{if(p.nodes.length===0)return 1;let e=p.nodes.map(e=>{let t=e.x-B.x,n=e.y-B.y;return Math.sqrt(t*t+n*n+e.z*e.z)+e.radius}).sort((e,t)=>e-t),t=Math.min(e.length-1,Math.floor(e.length*.92));return Math.max(1,e[t])},[p.nodes]),x=(0,z.useRef)({yaw:.5,pitch:.32,zoom:1,hoveredId:null,dragging:!1,moved:!1,lastX:0,lastY:0,lastInteractAt:-1/0,dirty:!0}),ee=(0,z.useRef)([]),S=(0,z.useRef)([]),C=(0,z.useRef)({content:`#e5e7eb`,tertiary:`#8792a0`}),T=(0,z.useRef)(null),D=(0,z.useRef)(!1),te=(0,z.useRef)(null),O=(0,z.useRef)(null),[k,j]=(0,z.useState)(null),[M,N]=(0,z.useState)(null),[P,F]=(0,z.useState)([]),I=P.at(-1)??null,ie=(0,z.useCallback)(e=>{V(`node_opened`),F(t=>[...t,e])},[]),oe=(0,z.useRef)(null);(0,z.useEffect)(()=>{oe.current=I?.id??null,x.current.dirty=!0},[I?.id]);let[ce,le]=Re(e),[H,U]=(0,z.useState)(``),[W,ue]=(0,z.useState)(!1),de=(0,z.useRef)(null);(0,z.useEffect)(()=>{W&&de.current?.focus()},[W]);let fe=(0,z.useRef)(!1),pe=H.trim().toLowerCase(),G=(0,z.useMemo)(()=>{if(!pe)return null;let e=new Set;for(let t of p.nodes)t.label.toLowerCase().includes(pe)&&e.add(t.id);return e},[pe,p.nodes]),q=(0,z.useRef)({active:!1,matches:null});(0,z.useEffect)(()=>{q.current={active:!!G,matches:G},x.current.dirty=!0},[G]),(0,z.useEffect)(()=>{H.trim()||(fe.current=!1)},[H]);let J=(0,z.useMemo)(()=>!G||G.size===0?[]:p.nodes.filter(e=>G.has(e.id)).sort((e,t)=>t.degree-e.degree).slice(0,8),[G,p.nodes]),[Y,ve]=(0,z.useState)(`all`),be=(0,z.useRef)(null);(0,z.useEffect)(()=>{be.current=Y===`week`?7*Ye:Y===`month`?30*Ye:null,x.current.dirty=!0},[Y]);let xe=(0,z.useMemo)(()=>p.nodes.some(e=>e.updatedAtMs!=null),[p.nodes]);(0,z.useEffect)(()=>{!xe&&Y!==`all`&&ve(`all`)},[xe,Y]);let[X,Se]=(0,z.useState)({link:!0,learned:!0}),Ce=(0,z.useRef)(X);(0,z.useEffect)(()=>{Ce.current=X,x.current.dirty=!0},[X]),(0,z.useEffect)(()=>{U(``),ve(`all`),Se({link:!0,learned:!0}),F([]),fe.current=!1},[e]);let Ee=(0,z.useCallback)(()=>{let e=x.current;e.yaw=.5,e.pitch=.32,e.zoom=1,e.lastInteractAt=-1/0,e.dirty=!0,j(null)},[]),Oe=(0,z.useCallback)(e=>{let t=x.current;t.zoom=Math.max(Ke,Math.min(qe,t.zoom*e)),t.lastInteractAt=performance.now(),t.dirty=!0},[]),Z=(0,z.useCallback)(e=>{T.current=e,x.current.lastInteractAt=performance.now(),x.current.dirty=!0},[]),Q=(0,z.useCallback)(e=>{ie(e),Z(e.id)},[ie,Z]),Ae=(0,z.useCallback)(e=>{te.current={id:e,start:performance.now()},Z(e),window.setTimeout(()=>{x.current.dirty=!0},at+60)},[Z]),je=(0,z.useCallback)(e=>{p.nodes.some(t=>t.id===e)?Ae(e):O.current=e},[p.nodes,Ae]);(0,z.useEffect)(()=>{let e=O.current;e&&p.nodes.some(t=>t.id===e)&&(O.current=null,Ae(e))},[p.nodes,Ae]),(0,z.useImperativeHandle)(o,()=>({focusNode:je}),[je]);let Me=(0,z.useCallback)(()=>{F([]),U(``),j(null),T.current=null,D.current=!0},[]),Ne=(0,z.useCallback)(e=>{U(``);let t=P.slice(0,e+1);F(t);let n=t.at(-1);n?Z(n.id):j(null)},[P,Z]),Ie=(0,z.useCallback)(e=>{U(``),Q(e)},[Q]),Le=(0,z.useMemo)(()=>{let e=I?.id;if(!e)return[];let t=y.get(e);if(!t||t.size===0)return[];let n=new Map(p.nodes.map(e=>[e.id,e.label])),r=new Map;for(let t of p.edges)t.fromId===e?r.set(t.toId,t.kind):t.toId===e&&r.set(t.fromId,t.kind);let i=[];for(let e of t){let t=n.get(e);t!=null&&i.push({id:e,label:t,kind:r.get(e)})}return i.sort((e,t)=>e.label.localeCompare(t.label)),i},[I?.id,y,p.nodes,p.edges]);(0,z.useEffect)(()=>{if(!m)return;let e=l.current,t=c.current;if(!e||!t)return;let n=e.getContext(`2d`);if(!n)return;let r=p.nodes,i=p.edges,a=h,o=_,s=y,u=new Set(r.map(e=>e.id)),d=b,f=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;C.current=ot(t);let g=Math.min(window.devicePixelRatio||1,2),v=0,w=0,E=()=>{let n=t.getBoundingClientRect();v=n.width,w=n.height,g=Math.min(window.devicePixelRatio||1,2),e.width=Math.max(1,Math.round(v*g)),e.height=Math.max(1,Math.round(w*g)),e.style.width=`${v}px`,e.style.height=`${w}px`,C.current=ot(t),x.current.dirty=!0};E();let O=new ResizeObserver(E);O.observe(t);let k=new MutationObserver(()=>{C.current=ot(t),x.current.dirty=!0});k.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`,`class`,`style`]});let A=0,j=0,M=e=>{let t=j?Math.min(.05,(e-j)/1e3):0;j=e;let c=x.current,l=C.current,p=Date.now(),m=T.current;if(!c.dragging&&e-c.lastInteractAt>Ve&&!f&&!m&&(c.yaw+=Be*t),m){let e=r.find(e=>e.id===m);if(!e)T.current=null;else{let t=e.x-B.x,n=e.y-B.y,r=e.z,i=-Math.atan2(t,r),a=Math.hypot(t,r),o=Math.max(-Ue,Math.min(Ue,Math.atan2(n,a))),s=Math.min(qe,1.6),l=f?1:.15,u=i-c.yaw;u=Math.atan2(Math.sin(u),Math.cos(u)),c.yaw+=u*l,c.pitch+=(o-c.pitch)*l,c.zoom+=(s-c.zoom)*l,c.dirty=!0,Math.abs(u)<.01&&Math.abs(o-c.pitch)<.01&&Math.abs(s-c.zoom)<.02&&(T.current=null)}}if(D.current&&!c.dragging){let e=f?1:.15;c.pitch+=(.32-c.pitch)*e,c.zoom+=(1-c.zoom)*e,c.dirty=!0,Math.abs(.32-c.pitch)<.01&&Math.abs(1-c.zoom)<.02&&(D.current=!1)}if(f&&!c.dirty){A=requestAnimationFrame(M);return}c.dirty=!1;let h=Math.cos(c.yaw),_=Math.sin(c.yaw),y=Math.cos(c.pitch),b=Math.sin(c.pitch),E=We*d,O=Math.min(v,w)*.88/(2*d)*c.zoom,k=v/2,N=w/2;n.setTransform(g,0,0,g,0,0),n.clearRect(0,0,v,w);let P=c.hoveredId,ne=P?s.get(P):void 0,F=e=>!P||e===P||(ne?.has(e)??!1),re=q.current,I=re.active,L=e=>!I||(re.matches?.has(e)??!1),ie=be.current,ae=e=>ct(e.updatedAtMs,ie,p),se=Ce.current,R=oe.current,z=R!=null&&u.has(R),ce=lt(s,z?R:null),le=r.length<=$e?1:Math.max(tt,1-(r.length-$e)/(et-$e)*(1-tt)),V=Array(r.length);for(let e=0;e<r.length;e++){let t=r[e],n=t.x-B.x,i=t.y-B.y,a=t.z,o=n*h+a*_,s=-n*_+a*h,c=i*y-s*b,l=i*b+s*y,u=E/(E-l);V[e]={node:t,sx:k+o*O*u,sy:N+c*O*u,sr:Math.max(1.2,t.radius*O*u),depth:Math.max(0,Math.min(1,(l+d)/(2*d)))}}let H=V.map((e,t)=>t).sort((e,t)=>V[e].depth-V[t].depth),U=new Map;for(let e of V)U.set(e.node.id,e);let W=[];n.lineCap=`round`;for(let e of i){let t=U.get(e.fromId),r=U.get(e.toId);if(!t||!r)continue;let i=e.kind===`learned`,a=R!=null&&(e.fromId===R||e.toId===R);if(!a&&(i?!se.learned:!se.link))continue;let o=I&&(!L(e.fromId)||!L(e.toId))||!a&&(ae(t.node)||ae(r.node)),s=P!=null&&(e.fromId===P||e.toId===P),c=(t.depth+r.depth)/2;!o&&(!z||a)&&W.push({ax:t.sx,ay:t.sy,bx:r.sx,by:r.sy,kind:e.kind,description:e.description,depth:c});let u=(i?.34:.28)*(.4+.6*c),d=i?u*le:u,f;f=o?.03:z?a?.9:rt:P==null?d:s?.9:F(e.fromId)&&F(e.toId)?u:.05,n.globalAlpha=f,n.strokeStyle=i?ye:l.tertiary,n.lineWidth=(s||z&&a?2:1)*(.6+.6*c),n.setLineDash(i?[4,4]:[]),n.beginPath(),n.moveTo(t.sx,t.sy),n.lineTo(r.sx,r.sy),n.stroke()}n.setLineDash([]);for(let t of H){let r=V[t],i=r.node,o=i.kind===`concept`?_e[(a.get(i.id)??0)%_e.length]:ge[i.kind],s=I&&!L(i.id),c=ce(i.id),l=s||ae(i)&&!c,u=z?c&&!l:!l&&F(i.id),d=i.id===P,m=Ge+(1-Ge)*r.depth,h=z&&!c?m*nt:l?m*.08:u?m:m*.18,g=(d?16:i.degree>=Je?8:4)*r.depth,_=i.updatedAtMs;if(_){let n=p-_,i=Math.max(0,1-n/Xe);if(i>0){let a=i*Ze;!f&&n<Qe&&(a*=.55+.45*Math.sin(e/420+t*1.7)),g+=a*r.depth}}n.shadowColor=o,n.shadowBlur=u?g:0;let v=i.kind===`pending`;n.globalAlpha=h*(v?.3:.55),n.fillStyle=o,n.beginPath(),n.arc(r.sx,r.sy,r.sr,0,Math.PI*2),n.fill(),n.shadowBlur=0,n.globalAlpha=h,n.lineWidth=d?2.5:1.4,n.strokeStyle=o,n.setLineDash(v?[3,3]:[]),n.stroke(),n.setLineDash([]);let y=te.current;if(y&&y.id===i.id){let t=e-y.start;if(t>at)te.current=null;else if(f)n.globalAlpha=.7,n.lineWidth=1.5,n.beginPath(),n.arc(r.sx,r.sy,r.sr+7,0,Math.PI*2),n.stroke();else for(let e=0;e<3;e++){let i=(t-e*320)/1100;i<=0||i>=1||(n.globalAlpha=(1-i)*.8,n.lineWidth=1.5,n.beginPath(),n.arc(r.sx,r.sy,r.sr+i*46*r.depth,0,Math.PI*2),n.stroke())}}}n.shadowBlur=0,n.textAlign=`center`,n.textBaseline=`top`,n.font=`11px ui-sans-serif, system-ui, sans-serif`;for(let e of H){let t=V[e],r=t.node,i=ce(r.id);if(I&&!L(r.id)||ae(r)&&!i||!(z?i:I?t.depth>.3:P==null?o.has(r.id)||r.degree>=Je&&t.depth>.55:F(r.id)))continue;n.globalAlpha=(r.id===P||r.id===R?1:.85)*(.4+.6*t.depth),n.fillStyle=l.content;let a=r.label.length>22?`${r.label.slice(0,21)}…`:r.label;n.fillText(a,t.sx,t.sy+t.sr+3)}n.globalAlpha=1,ee.current=V.map(e=>({id:e.node.id,sx:e.sx,sy:e.sy,sr:e.sr,depth:e.depth,updatedAtMs:e.node.updatedAtMs})),S.current=W,A=requestAnimationFrame(M)};return A=requestAnimationFrame(M),()=>{cancelAnimationFrame(A),O.disconnect(),k.disconnect()}},[m,p,y,b,h,_]);let $=(0,z.useCallback)((e,t)=>{let n=q.current,r=be.current,i=lt(y,oe.current),a=Date.now(),o=null,s=-1;for(let c of ee.current){if(n.active&&!(n.matches?.has(c.id)??!1)||!i(c.id)&&ct(c.updatedAtMs,r,a))continue;let l=e-c.sx,u=t-c.sy;l*l+u*u<=(c.sr+5)*(c.sr+5)&&c.depth>s&&(o=c.id,s=c.depth)}return o},[y]),ut=(0,z.useCallback)((e,t)=>{let n=null,r=1/0,i=-1;for(let a of S.current){let o=a.bx-a.ax,s=a.by-a.ay,c=o*o+s*s,l=0;c>0&&(l=((e-a.ax)*o+(t-a.ay)*s)/c,l=Math.max(0,Math.min(1,l)));let u=e-(a.ax+l*o),d=t-(a.ay+l*s),f=Math.sqrt(u*u+d*d);f>5||(f<r||f===r&&a.depth>i)&&(n={kind:a.kind,description:a.description},r=f,i=a.depth)}return n},[]),dt=e=>{let t=c.current.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},ft=(0,z.useCallback)(e=>{if(e.button!==0||e.target.closest(`[data-graph-control]`))return;let t=x.current;T.current=null,t.dragging=!0,t.moved=!1,t.lastX=e.clientX,t.lastY=e.clientY,t.lastInteractAt=performance.now(),e.currentTarget.setPointerCapture(e.pointerId)},[]),pt=(0,z.useCallback)(e=>{let t=x.current;if(t.dragging){let n=e.clientX-t.lastX,r=e.clientY-t.lastY;(Math.abs(n)>2||Math.abs(r)>2)&&(t.moved=!0),t.yaw+=n*He,t.pitch=Math.max(-Ue,Math.min(Ue,t.pitch+r*He)),t.lastX=e.clientX,t.lastY=e.clientY,t.lastInteractAt=performance.now(),t.dirty=!0;return}let{x:n,y:r}=dt(e),i=$(n,r);if(i!==t.hoveredId&&(t.hoveredId=i,t.dirty=!0),i)N(null);else{let e=ut(n,r);N(e?st(e):null)}},[$,ut]),mt=(0,z.useCallback)(e=>{let t=x.current;if(!t.dragging)return;t.dragging=!1,t.lastInteractAt=performance.now(),t.dirty=!0;let n=e.currentTarget;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),!t.moved){let{x:t,y:n}=dt(e),r=$(t,n);if(r){let e=p.nodes.find(e=>e.id===r);e&&Q({id:e.id,label:e.label,updatedAtMs:e.updatedAtMs})}else j(null)}},[$,p.nodes,Q]),ht=(0,z.useCallback)(()=>{let e=x.current;N(null),!(e.dragging||e.hoveredId==null)&&(e.hoveredId=null,e.dirty=!0,j(null))},[]);(0,z.useEffect)(()=>{let e=c.current;if(!e||!m)return;let t=e=>{if(e.target.closest?.(`[data-graph-panel]`))return;e.preventDefault();let t=x.current;t.zoom=Math.max(Ke,Math.min(qe,t.zoom*(1-e.deltaY/500))),t.lastInteractAt=performance.now(),t.dirty=!0};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[m]);let gt=(0,z.useMemo)(()=>{let e=new Set(p.nodes.map(e=>e.kind));return ze.filter(t=>e.has(t))},[p.nodes]),_t=(0,z.useMemo)(()=>p.edges.some(e=>e.kind===`learned`),[p.edges]),vt=(0,z.useMemo)(()=>p.edges.some(e=>e.kind!==`learned`),[p.edges]);(0,z.useEffect)(()=>{!(vt&&_t)&&(!X.link||!X.learned)&&Se({link:!0,learned:!0})},[vt,_t,X]);let yt=u.data?.kind===`ready`&&!ce,bt=p.nodes.length,xt=p.edges.length,St=new Set(h.values()).size,Ct=(e,t)=>`${e} ${t}${e===1?``:`s`}`,wt=yt?null:k??M,Tt=m&&(p.nodes.length>it||!!H),Et=!!(r||a)||m,Dt;return Dt=u.isLoading?(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,K.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):u.isError?(0,K.jsx)(he,{title:s(`conceptGraphView.loadErrorTitle`),detail:s(`conceptGraphView.loadErrorDetail`)}):u.data?.kind===`unsupported`?(0,K.jsx)(Pe,{assistantId:e,onOpenThread:i}):m?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`canvas`,{ref:l,className:`absolute inset-0 h-full w-full`}),(p.nodes.length>it||Y!==`all`)&&xe?(0,K.jsx)(`div`,{"data-graph-control":!0,className:`absolute left-4 top-4 z-10`,children:(0,K.jsx)(Fe,{value:Y,onChange:ve})}):null,(0,K.jsx)(De,{nodeKinds:gt.filter(e=>e!==`concept`),coloredByTheme:gt.includes(`concept`),themes:g,hasLinks:vt,hasLearned:_t,...vt&&_t?{onToggleLink:()=>Se(e=>({...e,link:!e.link})),onToggleLearned:()=>Se(e=>({...e,learned:!e.learned})),linkActive:X.link,learnedActive:X.learned}:{}}),(0,K.jsx)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 text-[11px]`,style:{color:`var(--content-tertiary)`},children:s(`conceptGraphView.dragToRotateHint`)}),f?.truncated?(0,K.jsx)(`div`,{className:`pointer-events-none absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full px-3 py-1 text-[11px]`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-tertiary)`},children:s(`conceptGraphView.truncatedNotice`,{count:p.nodes.length})}):null,(0,K.jsxs)(`div`,{"data-graph-control":!0,className:`absolute right-4 top-4 flex flex-col gap-1`,children:[(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(se,{}),onClick:()=>Oe(1.25),"aria-label":s(`conceptGraphView.zoomInAriaLabel`),tooltip:s(`conceptGraphView.zoomInAriaLabel`)}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(ae,{}),onClick:()=>Oe(.8),"aria-label":s(`conceptGraphView.zoomOutAriaLabel`),tooltip:s(`conceptGraphView.zoomOutAriaLabel`)}),(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(ne,{}),onClick:Ee,"aria-label":s(`conceptGraphView.resetViewAriaLabel`),tooltip:s(`conceptGraphView.resetViewAriaLabel`)})]})]}):(0,K.jsx)(he,{title:s(`conceptGraphView.emptyTitle`),detail:s(`conceptGraphView.emptyDetail`)}),(0,K.jsxs)(`div`,{className:`@container flex select-none flex-col overflow-hidden rounded-xl ${t??``}`,style:{backgroundColor:`var(--surface-base)`},children:[Et?(0,K.jsxs)(`div`,{className:`flex h-12 flex-none items-center gap-2 px-3`,style:{borderBottom:`1px solid var(--border-base)`},children:[r?(0,K.jsx)(d,{variant:`ghost`,iconOnly:n?(0,K.jsx)(R,{}):(0,K.jsx)(A,{}),onClick:r,"aria-label":s(n?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`),tooltip:s(n?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`)}):null,Tt?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(d,{variant:`ghost`,iconOnly:(0,K.jsx)(re,{}),onClick:()=>ue(!0),"aria-label":s(`conceptGraphView.searchConceptsAriaLabel`),tooltip:s(`conceptGraphView.searchConceptsAriaLabel`),className:W?`hidden`:`@2xl:hidden`}),(0,K.jsxs)(`div`,{className:`relative ${W?``:`hidden @2xl:block`}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-full px-2.5 py-1`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`},children:[(0,K.jsx)(re,{size:14,"aria-hidden":!0,style:{color:`var(--content-tertiary)`}}),(0,K.jsx)(`input`,{ref:de,type:`text`,value:H,onChange:e=>{let t=e.target.value;t.trim()&&!fe.current&&(V(`search`),fe.current=!0),U(t)},onKeyDown:e=>{e.key===`Escape`?(H||W)&&(e.preventDefault(),e.stopPropagation(),U(``),ue(!1)):e.key===`Enter`&&J.length>0&&(e.preventDefault(),Z(J[0].id))},placeholder:s(`conceptGraphView.searchConceptsPlaceholder`),"aria-label":s(`conceptGraphView.searchConceptsAriaLabel`),className:`w-36 bg-transparent text-[12px] outline-none placeholder:text-[var(--content-tertiary)]`,style:{color:`var(--content-default)`}}),H?(0,K.jsx)(`span`,{className:`text-[11px] tabular-nums`,style:{color:`var(--content-tertiary)`},children:G?.size??0}):null,H||W?(0,K.jsx)(`button`,{type:`button`,onClick:()=>{U(``),ue(!1)},"aria-label":s(`conceptGraphView.clearSearchAriaLabel`),className:`flex items-center`,style:{color:`var(--content-tertiary)`},children:(0,K.jsx)(L,{size:13})}):null]}),H&&J.length>0?(0,K.jsx)(`ul`,{className:`absolute left-0 top-full z-30 mt-1.5 flex max-h-56 w-52 list-none flex-col overflow-y-auto rounded-xl py-1`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 92%, transparent)`,border:`1px solid var(--border-base)`},children:J.map(e=>(0,K.jsx)(`li`,{children:(0,K.jsx)(`button`,{type:`button`,onClick:()=>{Q({id:e.id,label:e.label,updatedAtMs:e.updatedAtMs}),U(``),ue(!1)},className:`block w-full truncate px-3 py-1 text-left text-[12px] hover:bg-[color-mix(in_srgb,var(--content-tertiary)_14%,transparent)]`,style:{color:`var(--content-default)`},children:e.label})},e.id))}):null]})]}):null,(0,K.jsx)(`div`,{className:`pointer-events-none mx-auto min-w-0`,children:wt?(0,K.jsx)(`div`,{className:`truncate rounded-full px-3 py-1 text-[12px]`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-default)`},children:wt}):m&&!yt&&!W?(0,K.jsxs)(`div`,{className:`rounded-full px-3 py-1 text-[11px] tabular-nums`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-tertiary)`},children:[(0,K.jsxs)(`span`,{className:`@max-md:hidden`,children:[Ct(bt,`neuron`),` · `,Ct(xt,`synapse`),` ·`,` `,Ct(St,`lobe`)]}),(0,K.jsxs)(`span`,{className:`hidden @max-md:inline`,children:[bt,` · `,xt,` · `,St]})]}):null}),a?(0,K.jsx)(`div`,{className:`flex-none`,children:a}):null]}):null,(0,K.jsxs)(`div`,{ref:c,className:`relative min-h-0 flex-1`,style:{backgroundImage:`radial-gradient(circle at center, color-mix(in srgb, var(--content-tertiary) 8%, transparent), transparent 62%)`,touchAction:`none`,cursor:m?`grab`:`default`},onPointerDown:m?ft:void 0,onPointerMove:m?pt:void 0,onPointerUp:m?mt:void 0,onPointerCancel:m?mt:void 0,onPointerLeave:m?ht:void 0,children:[yt?(0,K.jsx)(Te,{onDismiss:le}):null,Dt,m&&I?(0,K.jsx)(we,{assistantId:e,node:I,trail:P,neighbors:Le,onTravel:Ie,onCrumb:Ne,onClose:Me,onOpenThread:i}):null]})]})}async function dt(e,t){let{data:n}=await _({path:{assistant_id:e},body:{content:t},throwOnError:!0});return n}function ft({open:e,onOpenChange:t,assistantId:n,onCreated:r}){let{t:o}=E(`intelligence`),s=T(),[c,u]=(0,z.useState)(``),[f,p]=(0,z.useState)(!1),h=(0,z.useCallback)(async()=>{let e=c.trim();if(e){p(!0);try{let i=await dt(n,e);if(!i.success){x.error(i.message||o(`createMemoryModal.saveError`));return}x.success(i.pendingNodeId?o(`createMemoryModal.savedFoundToast`):o(`createMemoryModal.savedPendingToast`)),u(``),t(!1),r?.(i.pendingNodeId),await Promise.all([s.invalidateQueries({queryKey:v(n).queryKey}),s.invalidateQueries({queryKey:m(n).queryKey})])}catch(e){let t=e instanceof Error?e.message:o(`createMemoryModal.createError`);x.error(t)}finally{p(!1)}}},[n,c,t,r,s,o]);return(0,K.jsx)(i.Root,{open:e,onOpenChange:t,children:(0,K.jsxs)(i.Content,{size:`sm`,children:[(0,K.jsx)(i.Header,{children:(0,K.jsx)(i.Title,{children:o(`createMemoryModal.title`)})}),(0,K.jsx)(i.Body,{children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,K.jsx)(a,{label:o(`createMemoryModal.contentLabel`),placeholder:o(`createMemoryModal.contentPlaceholder`),value:c,onChange:e=>u(e.target.value),disabled:f,rows:3,fullWidth:!0}),(0,K.jsx)(l,{as:`p`,variant:`body-medium-lighter`,className:`text-(--content-secondary)`,children:o(`createMemoryModal.helperText`)})]})}),(0,K.jsxs)(i.Footer,{children:[(0,K.jsx)(i.Close,{asChild:!0,children:(0,K.jsx)(d,{variant:`outlined`,disabled:f,children:o(`createMemoryModal.cancel`)})}),(0,K.jsx)(d,{variant:`primary`,onClick:h,disabled:f||!c.trim(),leftIcon:f?(0,K.jsx)(oe,{className:`animate-spin`}):void 0,children:o(f?`createMemoryModal.creating`:`createMemoryModal.create`)})]})]})})}function pt({onOpenThread:e}){let{t}=E(`intelligence`),n=f(),[r,i]=(0,z.useState)(!1),a=(0,z.useRef)(null),o=w(v(n)),s=w(m(n)),c=o.data?.kind===`ready`&&s.data?.kind===`ready`,l=(0,z.useRef)(!1);return(0,z.useEffect)(()=>{l.current||(l.current=!0,V(`opened`))},[]),(0,K.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[(0,K.jsx)(ut,{assistantId:n,className:`h-full w-full`,onOpenThread:e,handleRef:a,headerAction:c?(0,K.jsx)(d,{variant:`primary`,size:`compact`,leftIcon:(0,K.jsx)(M,{}),onClick:()=>i(!0),children:t(`memoryPage.createMemory`)}):void 0}),c?(0,K.jsx)(ft,{open:r,onOpenChange:i,assistantId:n,onCreated:e=>{e&&a.current?.focusNode(e)}}):null]})}function mt(){let e=D();return(0,K.jsx)(pt,{onOpenThread:t=>{V(`chat_from_node`),h(e,{prompt:t})}},f())}export{mt as MemoryPageRoute};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Hx as t,Ii as n,Md as r,af as i,d_ as a,et as o,if as s,jg as c,kp as l}from"./app-DVwAB8n7.js";import{I as u,Jn as d,N as f,Zn as p,j as m}from"./vendor-Bb38ZAP8.js";import{t as h,x as g}from"./react-B9IgSVeK.js";var _=e(g(),1),v=class extends Error{status;constructor(e,t){super(t),this.name=`SimulateMemoryRouterError`,this.status=e}};async function y(e,t,n){let{data:r,response:i}=await a({path:{assistant_id:e},body:t,signal:n,throwOnError:!1}),o=i?await i.clone().text().catch(()=>``):``;if(!i||!i.ok)throw new v(i?.status??0,o||i?.statusText||`Failed to simulate memory router`);if(!r)throw new v(i.status,`Empty response from memory router simulator endpoint`);return{response:r,rawRequest:JSON.stringify(t,null,2),rawResponse:b(o)}}function b(e){if(e.length===0)return e;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function x(e){return d({mutationFn:async t=>{if(!e)throw new v(0,`Missing assistantId`);return y(e,t)}})}function S(e){return p({...r({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4})}function C(e){return p({...i({path:{assistant_id:e}}),enabled:!!e,staleTime:1440*60*1e3})}function ee(e){return p({...s({path:{assistant_id:e}}),enabled:!!e,staleTime:1/0})}var w=h();function T(){let{t:e}=m(`chat`),t=n(),r=l(),i=c.use.memoryRouterPlayground();return r?(0,w.jsx)($,{children:e(`memoryRouterPlaygroundPage.loading`)}):!t||!i?(0,w.jsx)($,{children:e(`memoryRouterPlaygroundPage.notAvailable`)}):(0,w.jsx)(D,{})}var E={tier1:``,tier2:``,batch:``,profile:``,customPrompt:``};function D(){let{t:e}=m(`chat`),t=o(),n=x(t),r=x(t),i=S(t),a=C(t),s=ee(t),[c,l]=(0,_.useState)(``),[u,d]=(0,_.useState)([{assistantMessage:``,userMessage:``}]),[f,p]=(0,_.useState)(!1);(0,_.useEffect)(()=>{if(f)return;let e=s.data?.nowText;typeof e==`string`&&c===``&&l(e)},[s.data?.nowText,c,f]);let[h,g]=(0,_.useState)(E),[v,y]=(0,_.useState)(E),[b,T]=(0,_.useState)(null),[D,k]=(0,_.useState)(null),M=u[u.length-1].userMessage,P=t=>{let i=t===`A`?h:v,a=t===`A`?T:k,o=t===`A`?n:r;a(null);let s;try{s=O(i)}catch(t){a(t instanceof Error?t.message:e(`memoryRouterPlaygroundPage.invalidOverrideInput`));return}let l=i.profile.trim().length>0?i.profile:void 0,d=i.customPrompt.trim().length>0?i.customPrompt:void 0,f=u.map((e,t)=>t===u.length-1?{...e,userMessage:e.userMessage.trim()}:e);o.mutate({recentTurnPairs:f,nowText:c,...s?{configOverrides:s}:{},...l===void 0?{}:{profileOverride:l},...d===void 0?{}:{routerPromptOverride:d}})},F=()=>{P(`A`),P(`B`)},I=M.trim().length>0,L=I&&!n.isPending,z=I&&!r.isPending;return(0,w.jsx)(`div`,{className:`flex h-full min-h-0 flex-col overflow-y-auto`,children:(0,w.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1280px] flex-col gap-6 p-6`,children:[(0,w.jsx)(A,{}),(0,w.jsx)(j,{nowText:c,onNowTextChange:e=>{p(!0),l(e)},onReloadNowText:()=>{let e=s.data?.nowText;typeof e==`string`&&(l(e),p(!1))},nowTextLoading:s.isLoading,pairs:u,onPairsChange:d}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,w.jsx)(N,{paneId:`A`,overrides:h,onChange:g,onRun:()=>P(`A`),canRun:L,isRunning:n.isPending,profiles:i.data?.profiles??[],activeProfile:i.data?.activeProfile??null,defaultPromptTemplate:a.data?.template??``}),(0,w.jsx)(N,{paneId:`B`,overrides:v,onChange:y,onRun:()=>P(`B`),canRun:z,isRunning:r.isPending,profiles:i.data?.profiles??[],activeProfile:i.data?.activeProfile??null,defaultPromptTemplate:a.data?.template??``})]}),(0,w.jsx)(`div`,{className:`flex justify-end`,children:(0,w.jsx)(te,{onClick:F,disabled:!I||n.isPending||r.isPending,isRunning:n.isPending||r.isPending})}),(0,w.jsx)(ne,{visible:n.data!==void 0&&r.data!==void 0}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,w.jsx)(R,{paneId:`A`,userMessage:M,mutation:n,otherResult:r.data?.response,validation:b}),(0,w.jsx)(R,{paneId:`B`,userMessage:M,mutation:r,otherResult:n.data?.response,validation:D})]})]})})}function O(e){let t={...k(`tier1_size`,e.tier1),...k(`tier2_size`,e.tier2),...k(`batch_size`,e.batch)};return Object.keys(t).length===0?void 0:t}function k(e,t){let n=t.trim();if(n===``)return{};if(n===`null`)return{[e]:null};let r=Number(n);if(!Number.isInteger(r)||r<1)throw Error(u(`chat:memoryRouterPlaygroundPage.overrideMustBePositiveInteger`,{fieldName:e,value:n}));return{[e]:r}}function A(){let{t:e}=m(`chat`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`h1`,{className:`text-body-large-default`,style:{color:`var(--content-default)`},children:e(`memoryRouterPlaygroundPage.title`)}),(0,w.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:(0,w.jsx)(f,{ns:`chat`,i18nKey:`memoryRouterPlaygroundPage.description`,components:{code:(0,w.jsx)(`code`,{})}})})]})}function j({nowText:e,onNowTextChange:n,onReloadNowText:r,nowTextLoading:i,pairs:a,onPairsChange:o}){let{t:s}=m(`chat`),c=(e,t)=>{o(a.map((n,r)=>r===e?{...n,...t}:n))},l=()=>{o([{assistantMessage:``,userMessage:``},...a])},u=e=>{e!==a.length-1&&o(a.filter((t,n)=>n!==e))};return(0,w.jsx)(t,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:s(`memoryRouterPlaygroundPage.conversationalContextTitle`)}),(0,w.jsx)(M,{id:`memory-router-playground-now`,label:s(`memoryRouterPlaygroundPage.nowBlockLabel`),value:e,onChange:n,rows:6,monospace:!0,placeholder:s(i?`memoryRouterPlaygroundPage.nowLoadingPlaceholder`:`memoryRouterPlaygroundPage.nowDefaultPlaceholder`),trailing:(0,w.jsx)(`button`,{type:`button`,onClick:r,disabled:i,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:i?`not-allowed`:`pointer`},children:s(`memoryRouterPlaygroundPage.reloadNowButton`)})}),(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:s(`memoryRouterPlaygroundPage.recentPairsLabel`)}),(0,w.jsx)(`button`,{type:`button`,onClick:l,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:`pointer`},children:s(`memoryRouterPlaygroundPage.addOlderPairButton`)})]}),a.map((e,t)=>{let n=t===a.length-1;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md border p-3`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`},children:[(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsxs)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:[s(`memoryRouterPlaygroundPage.pairLabel`,{index:t+1,total:a.length}),n?s(`memoryRouterPlaygroundPage.pairMostRecentSuffix`):``]}),!n&&(0,w.jsx)(`button`,{type:`button`,onClick:()=>u(t),className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`transparent`,color:`var(--system-negative-strong)`,border:`none`,cursor:`pointer`},children:s(`memoryRouterPlaygroundPage.removeButton`)})]}),(0,w.jsx)(M,{id:`memory-router-playground-pair-${t}-assistant`,label:s(`memoryRouterPlaygroundPage.assistantReplyLabel`),value:e.assistantMessage,onChange:e=>c(t,{assistantMessage:e}),rows:3,placeholder:t===0&&a.length===1?s(`memoryRouterPlaygroundPage.firstTurnAssistantPlaceholder`):s(`memoryRouterPlaygroundPage.assistantReplyPlaceholder`)}),(0,w.jsx)(M,{id:`memory-router-playground-pair-${t}-user`,label:s(n?`memoryRouterPlaygroundPage.justArrivedUserLabel`:`memoryRouterPlaygroundPage.userMessageLabel`),value:e.userMessage,onChange:e=>c(t,{userMessage:e}),rows:3,placeholder:s(n?`memoryRouterPlaygroundPage.lastUserPlaceholder`:`memoryRouterPlaygroundPage.userMessagePlaceholder`),required:n})]},t)})]})})}function M({id:e,label:t,value:n,onChange:r,rows:i,placeholder:a,monospace:o,trailing:s,required:c}){return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsxs)(`label`,{htmlFor:e,className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:[t,c?` *`:``]}),s]}),(0,w.jsx)(`textarea`,{id:e,value:n,onChange:e=>r(e.target.value),rows:i,placeholder:a,className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,resize:`vertical`,...o?{fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`}:{}}})]})}function N({paneId:e,overrides:n,onChange:r,onRun:i,canRun:a,isRunning:o,profiles:s,activeProfile:c,defaultPromptTemplate:l}){let{t:u}=m(`chat`);return(0,w.jsx)(t,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,w.jsx)(`div`,{className:`text-body-medium-default`,style:{color:X(e)},children:u(`memoryRouterPlaygroundPage.configTitle`,{paneId:e})}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:[(0,w.jsx)(I,{paneId:e,label:`tier1_size`,value:n.tier1,onChange:e=>r({...n,tier1:e})}),(0,w.jsx)(I,{paneId:e,label:`tier2_size`,value:n.tier2,onChange:e=>r({...n,tier2:e})}),(0,w.jsx)(I,{paneId:e,label:`batch_size`,value:n.batch,onChange:e=>r({...n,batch:e})})]}),(0,w.jsx)(F,{paneId:e,value:n.profile,onChange:e=>r({...n,profile:e}),profiles:s,activeProfile:c}),(0,w.jsx)(P,{paneId:e,value:n.customPrompt,onChange:e=>r({...n,customPrompt:e}),defaultTemplate:l}),(0,w.jsx)(`div`,{className:`flex justify-end`,children:(0,w.jsx)(`button`,{type:`button`,onClick:i,disabled:!a,className:`rounded-md px-4 py-2 text-body-medium-default transition-colors`,style:{background:a?`var(--system-positive-strong)`:`var(--surface-overlay)`,color:a?`var(--content-on-positive)`:`var(--content-disabled)`,border:`none`,cursor:a?`pointer`:`not-allowed`},children:o?u(`memoryRouterPlaygroundPage.running`):u(`memoryRouterPlaygroundPage.runPane`,{paneId:e})})})]})})}function P({paneId:e,value:t,onChange:n,defaultTemplate:r}){let{t:i}=m(`chat`),[a,o]=(0,_.useState)(!1),s=`memory-router-playground-${e}-prompt`,c=t.trim().length>0;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`text-label-medium-default`,style:{color:`var(--content-secondary)`,background:`transparent`,border:`none`,padding:0,cursor:`pointer`,textAlign:`left`},children:[a?`▾`:`▸`,` `,i(`memoryRouterPlaygroundPage.systemPrompt`),` `,(0,w.jsxs)(`span`,{style:{color:`var(--content-tertiary)`},children:[`(`,i(c?`memoryRouterPlaygroundPage.promptModeCustom`:`memoryRouterPlaygroundPage.promptModeBundled`),`)`]})]}),a&&(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`button`,{type:`button`,onClick:()=>n(r),disabled:r.length===0,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:r.length===0?`not-allowed`:`pointer`},children:i(`memoryRouterPlaygroundPage.loadDefault`)}),(0,w.jsx)(`button`,{type:`button`,onClick:()=>n(``),disabled:!c,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:c?`pointer`:`not-allowed`},children:i(`memoryRouterPlaygroundPage.reset`)})]})]}),a&&(0,w.jsx)(`textarea`,{id:s,value:t,onChange:e=>n(e.target.value),rows:12,placeholder:i(`memoryRouterPlaygroundPage.customPromptPlaceholder`),className:`rounded-md border px-3 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,resize:`vertical`,minHeight:`120px`}})]})}function F({paneId:e,value:t,onChange:n,profiles:r,activeProfile:i}){let{t:a}=m(`chat`),o=`memory-router-playground-${e}-profile`,s=i!==null&&i.length>0?a(`memoryRouterPlaygroundPage.inheritActiveWithProfile`,{profile:i}):a(`memoryRouterPlaygroundPage.inheritActive`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`label`,{htmlFor:o,className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:a(`memoryRouterPlaygroundPage.llmProfilesOverride`)}),(0,w.jsxs)(`select`,{id:o,value:t,onChange:e=>n(e.target.value),className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`},children:[(0,w.jsx)(`option`,{value:``,children:s}),r.map(e=>(0,w.jsx)(`option`,{value:e,children:e},e))]})]})}function I({paneId:e,label:t,value:n,onChange:r}){let{t:i}=m(`chat`),a=`memory-router-playground-${e}-${t}`;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`label`,{htmlFor:a,className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:t}),(0,w.jsx)(`input`,{id:a,value:n,onChange:e=>r(e.target.value),placeholder:i(`memoryRouterPlaygroundPage.inheritPlaceholder`),className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`}})]})}function te({onClick:e,disabled:t,isRunning:n}){let{t:r}=m(`chat`);return(0,w.jsx)(`button`,{type:`button`,onClick:e,disabled:t,className:`rounded-md px-4 py-2 text-body-medium-default transition-colors`,style:{background:t?`var(--surface-overlay)`:`var(--primary-base)`,color:t?`var(--content-disabled)`:`var(--content-on-primary)`,border:`none`,cursor:t?`not-allowed`:`pointer`},children:r(n?`memoryRouterPlaygroundPage.running`:`memoryRouterPlaygroundPage.runBoth`)})}function ne({visible:e}){let{t}=m(`chat`);return e?(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 rounded-md px-4 py-2 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`},children:[(0,w.jsx)(L,{marker:`●`,markerColor:`var(--content-default)`,label:t(`memoryRouterPlaygroundPage.legendInBoth`)}),(0,w.jsx)(L,{marker:`◆`,markerColor:X(`A`),label:t(`memoryRouterPlaygroundPage.legendAOnly`)}),(0,w.jsx)(L,{marker:`◇`,markerColor:X(`B`),label:t(`memoryRouterPlaygroundPage.legendBOnly`)})]}):null}function L({marker:e,markerColor:t,label:n}){return(0,w.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(`span`,{style:{color:t},children:e}),(0,w.jsx)(`span`,{children:n})]})}function R({paneId:e,userMessage:t,mutation:n,otherResult:r,validation:i}){let{t:a}=m(`chat`),o=n.data;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsx)(V,{paneId:e}),i!==null&&(0,w.jsx)(Q,{message:i}),n.isError&&(0,w.jsx)(Q,{message:n.error instanceof Error?n.error.message:a(`memoryRouterPlaygroundPage.failedToRunSimulation`)}),o!==void 0&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(H,{paneId:e,userMessage:t,result:o.response,otherResult:r}),(0,w.jsx)(z,{paneId:e,rawRequest:o.rawRequest,rawResponse:o.rawResponse})]})]})}function z({paneId:e,rawRequest:n,rawResponse:r}){let{t:i}=m(`chat`),[a,o]=(0,_.useState)(!1);return(0,w.jsx)(t,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`text-label-medium-default`,style:{color:`var(--content-secondary)`,background:`transparent`,border:`none`,padding:0,cursor:`pointer`,textAlign:`left`},children:[a?`▾`:`▸`,` `,i(`memoryRouterPlaygroundPage.rawApiExchange`)]}),a&&(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsx)(B,{label:i(`memoryRouterPlaygroundPage.requestLabel`,{paneId:e}),body:n}),(0,w.jsx)(B,{label:i(`memoryRouterPlaygroundPage.responseLabel`,{paneId:e}),body:r})]})]})})}function B({label:e,body:t}){let{t:n}=m(`chat`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,w.jsx)(`pre`,{className:`overflow-auto rounded-md border px-3 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,maxHeight:`320px`,whiteSpace:`pre`},children:t.length===0?n(`memoryRouterPlaygroundPage.empty`):t})]})}function V({paneId:e}){let{t}=m(`chat`);return(0,w.jsx)(`div`,{className:`text-body-medium-default`,style:{color:X(e)},children:t(`memoryRouterPlaygroundPage.paneTitle`,{paneId:e})})}function H({paneId:e,userMessage:t,result:n,otherResult:r}){let{t:i}=m(`chat`),a=(0,_.useMemo)(()=>U(n,r),[n,r]),o=(0,_.useMemo)(()=>q(n),[n]);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,w.jsx)(G,{result:n,userMessage:t,otherResult:r,counts:(0,_.useMemo)(()=>W(a),[a])}),(0,w.jsx)(K,{result:n}),n.failureReason!==null&&(0,w.jsx)(Q,{message:i(`memoryRouterPlaygroundPage.routerFailure`,{reason:n.failureReason})}),o.length===0?(0,w.jsx)(ae,{}):o.map(t=>(0,w.jsx)(ie,{paneId:e,source:t.source,slugs:t.slugs,scores:n.scores,diff:a},t.source))]})}function U(e,t){let n=new Map;if(t===void 0){for(let t of e.selectedSlugs)n.set(t,`both`);return n}let r=new Set(t.selectedSlugs);for(let t of e.selectedSlugs)n.set(t,r.has(t)?`both`:`only-here`);return n}function W(e){let t=0,n=0;for(let r of e.values())r===`both`?t++:n++;return{total:e.size,shared:t,unique:n}}function G({result:e,userMessage:n,otherResult:r,counts:i}){let{t:a}=m(`chat`),o=[{label:a(`memoryRouterPlaygroundPage.summaryUserMessageLabel`),value:n},{label:a(`memoryRouterPlaygroundPage.totalCandidatePagesLabel`),value:e.totalCandidatePages.toLocaleString()},{label:a(`memoryRouterPlaygroundPage.selectedLabel`),value:a(`memoryRouterPlaygroundPage.selectedValue`,{count:e.selectedSlugs.length,maxPageIds:e.effectiveConfig.max_page_ids})}];return r!==void 0&&o.push({label:a(`memoryRouterPlaygroundPage.diffLabel`),value:a(`memoryRouterPlaygroundPage.diffValue`,{shared:i.shared,unique:i.unique})}),(0,w.jsx)(t,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:a(`memoryRouterPlaygroundPage.summary`)}),(0,w.jsx)(Z,{rows:o})]})})}function K({result:e}){let{t:n}=m(`chat`),r=[`tier1_size`,`tier2_size`,`batch_size`,`max_page_ids`].map(t=>{let r=e.effectiveConfig[t],i=e.overrides[t];return{label:t,value:`${r===null?n(`memoryRouterPlaygroundPage.nullValue`):String(r)}${i===void 0?``:n(`memoryRouterPlaygroundPage.overrideSuffix`)}`}});return r.push({label:n(`memoryRouterPlaygroundPage.llmProfilesOverride`),value:e.profileOverride===null?n(`memoryRouterPlaygroundPage.inheritActive`):`${e.profileOverride}${n(`memoryRouterPlaygroundPage.overrideSuffix`)}`}),r.push({label:n(`memoryRouterPlaygroundPage.systemPromptConfigLabel`),value:e.routerPromptOverridden?n(`memoryRouterPlaygroundPage.promptModeCustom`):n(`memoryRouterPlaygroundPage.promptModeBundled`)}),(0,w.jsx)(t,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:n(`memoryRouterPlaygroundPage.effectiveConfig`)}),(0,w.jsx)(Z,{rows:r})]})})}function q(e){let t=new Map;for(let n of e.selectedSlugs){let r=e.sourceBySlug[n];if(r===void 0)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return[...t.keys()].sort((e,t)=>J(e)-J(t)).map(e=>({source:e,slugs:t.get(e)}))}function J(e){return e===`tier1`?0:e===`tier2`?1:e.startsWith(`tier3:`)?2+Number(e.slice(6)):2**53-1}function Y(e,t){return e===`tier1`?t(`memoryRouterPlaygroundPage.tier1Label`):e===`tier2`?t(`memoryRouterPlaygroundPage.tier2Label`):e.startsWith(`tier3:`)?t(`memoryRouterPlaygroundPage.tier3Label`,{batch:e.slice(6)}):e}function X(e){return e===`A`?`var(--system-mid-strong)`:`var(--primary-base)`}function re(e,t){return t===`both`?{color:`var(--content-default)`,marker:`●`}:{color:X(e),marker:e===`A`?`◆`:`◇`}}function ie({paneId:e,source:n,slugs:r,scores:i,diff:a}){let{t:o}=m(`chat`);return(0,w.jsx)(t,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:Y(n,o)}),(0,w.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:o(`memoryRouterPlaygroundPage.pageCount`,{count:r.length})})]}),(0,w.jsx)(`ul`,{className:`flex flex-col gap-1`,children:r.map(t=>{let{color:r,marker:s}=re(e,a.get(t)??`only-here`);return(0,w.jsxs)(`li`,{className:`flex items-baseline justify-between gap-3`,children:[(0,w.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[(0,w.jsx)(`span`,{style:{color:r},children:s}),(0,w.jsx)(`code`,{className:`text-body-medium-default`,style:{color:r},children:t})]}),n===`tier2`&&(0,w.jsx)(`span`,{className:`tabular-nums text-label-medium-default`,style:{color:`var(--content-secondary)`},children:o(`memoryRouterPlaygroundPage.emaScore`,{score:(i[t]??0).toFixed(3)})})]},t)})})]})})}function ae(){let{t:e}=m(`chat`);return(0,w.jsx)(t,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e(`memoryRouterPlaygroundPage.noPagesSelected`)}),(0,w.jsx)(`span`,{className:`text-body-small-lighter`,style:{color:`var(--content-secondary)`},children:e(`memoryRouterPlaygroundPage.emptySelectionHint`)})]})})}function Z({rows:e}){return(0,w.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(({label:e,value:t})=>(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,w.jsx)(`span`,{className:`shrink-0 text-label-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,w.jsx)(`span`,{className:`text-right text-body-medium-lighter`,style:{color:`var(--content-default)`},children:t})]},e))})}function Q({message:e}){return(0,w.jsx)(`div`,{className:`rounded-md px-4 py-3 text-body-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--system-negative-strong)`},children:e})}function $({children:e}){return(0,w.jsx)(`div`,{className:`flex h-full w-full items-center justify-center p-8 text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})}export{T as MemoryRouterPlaygroundPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ag as t,Ap as n,Hx as r,Pi as i,af as a,d_ as o,et as s,if as c,jd as l}from"./app-Tg6YU_tZ.js";import{I as u,Jn as d,N as f,Zn as p,j as m}from"./vendor-DYOeoIwg.js";import{t as h,x as g}from"./react-B9IgSVeK.js";var _=e(g(),1),v=class extends Error{status;constructor(e,t){super(t),this.name=`SimulateMemoryRouterError`,this.status=e}};async function y(e,t,n){let{data:r,response:i}=await o({path:{assistant_id:e},body:t,signal:n,throwOnError:!1}),a=i?await i.clone().text().catch(()=>``):``;if(!i||!i.ok)throw new v(i?.status??0,a||i?.statusText||`Failed to simulate memory router`);if(!r)throw new v(i.status,`Empty response from memory router simulator endpoint`);return{response:r,rawRequest:JSON.stringify(t,null,2),rawResponse:b(a)}}function b(e){if(e.length===0)return e;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function x(e){return d({mutationFn:async t=>{if(!e)throw new v(0,`Missing assistantId`);return y(e,t)}})}function S(e){return p({...l({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4})}function C(e){return p({...a({path:{assistant_id:e}}),enabled:!!e,staleTime:1440*60*1e3})}function ee(e){return p({...c({path:{assistant_id:e}}),enabled:!!e,staleTime:1/0})}var w=h();function T(){let{t:e}=m(`chat`),r=i(),a=n(),o=t.use.memoryRouterPlayground();return a?(0,w.jsx)($,{children:e(`memoryRouterPlaygroundPage.loading`)}):!r||!o?(0,w.jsx)($,{children:e(`memoryRouterPlaygroundPage.notAvailable`)}):(0,w.jsx)(D,{})}var E={tier1:``,tier2:``,batch:``,profile:``,customPrompt:``};function D(){let{t:e}=m(`chat`),t=s(),n=x(t),r=x(t),i=S(t),a=C(t),o=ee(t),[c,l]=(0,_.useState)(``),[u,d]=(0,_.useState)([{assistantMessage:``,userMessage:``}]),[f,p]=(0,_.useState)(!1);(0,_.useEffect)(()=>{if(f)return;let e=o.data?.nowText;typeof e==`string`&&c===``&&l(e)},[o.data?.nowText,c,f]);let[h,g]=(0,_.useState)(E),[v,y]=(0,_.useState)(E),[b,T]=(0,_.useState)(null),[D,k]=(0,_.useState)(null),M=u[u.length-1].userMessage,P=t=>{let i=t===`A`?h:v,a=t===`A`?T:k,o=t===`A`?n:r;a(null);let s;try{s=O(i)}catch(t){a(t instanceof Error?t.message:e(`memoryRouterPlaygroundPage.invalidOverrideInput`));return}let l=i.profile.trim().length>0?i.profile:void 0,d=i.customPrompt.trim().length>0?i.customPrompt:void 0,f=u.map((e,t)=>t===u.length-1?{...e,userMessage:e.userMessage.trim()}:e);o.mutate({recentTurnPairs:f,nowText:c,...s?{configOverrides:s}:{},...l===void 0?{}:{profileOverride:l},...d===void 0?{}:{routerPromptOverride:d}})},F=()=>{P(`A`),P(`B`)},I=M.trim().length>0,L=I&&!n.isPending,z=I&&!r.isPending;return(0,w.jsx)(`div`,{className:`flex h-full min-h-0 flex-col overflow-y-auto`,children:(0,w.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1280px] flex-col gap-6 p-6`,children:[(0,w.jsx)(A,{}),(0,w.jsx)(j,{nowText:c,onNowTextChange:e=>{p(!0),l(e)},onReloadNowText:()=>{let e=o.data?.nowText;typeof e==`string`&&(l(e),p(!1))},nowTextLoading:o.isLoading,pairs:u,onPairsChange:d}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,w.jsx)(N,{paneId:`A`,overrides:h,onChange:g,onRun:()=>P(`A`),canRun:L,isRunning:n.isPending,profiles:i.data?.profiles??[],activeProfile:i.data?.activeProfile??null,defaultPromptTemplate:a.data?.template??``}),(0,w.jsx)(N,{paneId:`B`,overrides:v,onChange:y,onRun:()=>P(`B`),canRun:z,isRunning:r.isPending,profiles:i.data?.profiles??[],activeProfile:i.data?.activeProfile??null,defaultPromptTemplate:a.data?.template??``})]}),(0,w.jsx)(`div`,{className:`flex justify-end`,children:(0,w.jsx)(te,{onClick:F,disabled:!I||n.isPending||r.isPending,isRunning:n.isPending||r.isPending})}),(0,w.jsx)(ne,{visible:n.data!==void 0&&r.data!==void 0}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,w.jsx)(R,{paneId:`A`,userMessage:M,mutation:n,otherResult:r.data?.response,validation:b}),(0,w.jsx)(R,{paneId:`B`,userMessage:M,mutation:r,otherResult:n.data?.response,validation:D})]})]})})}function O(e){let t={...k(`tier1_size`,e.tier1),...k(`tier2_size`,e.tier2),...k(`batch_size`,e.batch)};return Object.keys(t).length===0?void 0:t}function k(e,t){let n=t.trim();if(n===``)return{};if(n===`null`)return{[e]:null};let r=Number(n);if(!Number.isInteger(r)||r<1)throw Error(u(`chat:memoryRouterPlaygroundPage.overrideMustBePositiveInteger`,{fieldName:e,value:n}));return{[e]:r}}function A(){let{t:e}=m(`chat`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`h1`,{className:`text-body-large-default`,style:{color:`var(--content-default)`},children:e(`memoryRouterPlaygroundPage.title`)}),(0,w.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:(0,w.jsx)(f,{ns:`chat`,i18nKey:`memoryRouterPlaygroundPage.description`,components:{code:(0,w.jsx)(`code`,{})}})})]})}function j({nowText:e,onNowTextChange:t,onReloadNowText:n,nowTextLoading:i,pairs:a,onPairsChange:o}){let{t:s}=m(`chat`),c=(e,t)=>{o(a.map((n,r)=>r===e?{...n,...t}:n))},l=()=>{o([{assistantMessage:``,userMessage:``},...a])},u=e=>{e!==a.length-1&&o(a.filter((t,n)=>n!==e))};return(0,w.jsx)(r,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:s(`memoryRouterPlaygroundPage.conversationalContextTitle`)}),(0,w.jsx)(M,{id:`memory-router-playground-now`,label:s(`memoryRouterPlaygroundPage.nowBlockLabel`),value:e,onChange:t,rows:6,monospace:!0,placeholder:s(i?`memoryRouterPlaygroundPage.nowLoadingPlaceholder`:`memoryRouterPlaygroundPage.nowDefaultPlaceholder`),trailing:(0,w.jsx)(`button`,{type:`button`,onClick:n,disabled:i,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:i?`not-allowed`:`pointer`},children:s(`memoryRouterPlaygroundPage.reloadNowButton`)})}),(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:s(`memoryRouterPlaygroundPage.recentPairsLabel`)}),(0,w.jsx)(`button`,{type:`button`,onClick:l,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:`pointer`},children:s(`memoryRouterPlaygroundPage.addOlderPairButton`)})]}),a.map((e,t)=>{let n=t===a.length-1;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md border p-3`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`},children:[(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsxs)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:[s(`memoryRouterPlaygroundPage.pairLabel`,{index:t+1,total:a.length}),n?s(`memoryRouterPlaygroundPage.pairMostRecentSuffix`):``]}),!n&&(0,w.jsx)(`button`,{type:`button`,onClick:()=>u(t),className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`transparent`,color:`var(--system-negative-strong)`,border:`none`,cursor:`pointer`},children:s(`memoryRouterPlaygroundPage.removeButton`)})]}),(0,w.jsx)(M,{id:`memory-router-playground-pair-${t}-assistant`,label:s(`memoryRouterPlaygroundPage.assistantReplyLabel`),value:e.assistantMessage,onChange:e=>c(t,{assistantMessage:e}),rows:3,placeholder:t===0&&a.length===1?s(`memoryRouterPlaygroundPage.firstTurnAssistantPlaceholder`):s(`memoryRouterPlaygroundPage.assistantReplyPlaceholder`)}),(0,w.jsx)(M,{id:`memory-router-playground-pair-${t}-user`,label:s(n?`memoryRouterPlaygroundPage.justArrivedUserLabel`:`memoryRouterPlaygroundPage.userMessageLabel`),value:e.userMessage,onChange:e=>c(t,{userMessage:e}),rows:3,placeholder:s(n?`memoryRouterPlaygroundPage.lastUserPlaceholder`:`memoryRouterPlaygroundPage.userMessagePlaceholder`),required:n})]},t)})]})})}function M({id:e,label:t,value:n,onChange:r,rows:i,placeholder:a,monospace:o,trailing:s,required:c}){return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsxs)(`label`,{htmlFor:e,className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:[t,c?` *`:``]}),s]}),(0,w.jsx)(`textarea`,{id:e,value:n,onChange:e=>r(e.target.value),rows:i,placeholder:a,className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,resize:`vertical`,...o?{fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`}:{}}})]})}function N({paneId:e,overrides:t,onChange:n,onRun:i,canRun:a,isRunning:o,profiles:s,activeProfile:c,defaultPromptTemplate:l}){let{t:u}=m(`chat`);return(0,w.jsx)(r,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,w.jsx)(`div`,{className:`text-body-medium-default`,style:{color:X(e)},children:u(`memoryRouterPlaygroundPage.configTitle`,{paneId:e})}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:[(0,w.jsx)(I,{paneId:e,label:`tier1_size`,value:t.tier1,onChange:e=>n({...t,tier1:e})}),(0,w.jsx)(I,{paneId:e,label:`tier2_size`,value:t.tier2,onChange:e=>n({...t,tier2:e})}),(0,w.jsx)(I,{paneId:e,label:`batch_size`,value:t.batch,onChange:e=>n({...t,batch:e})})]}),(0,w.jsx)(F,{paneId:e,value:t.profile,onChange:e=>n({...t,profile:e}),profiles:s,activeProfile:c}),(0,w.jsx)(P,{paneId:e,value:t.customPrompt,onChange:e=>n({...t,customPrompt:e}),defaultTemplate:l}),(0,w.jsx)(`div`,{className:`flex justify-end`,children:(0,w.jsx)(`button`,{type:`button`,onClick:i,disabled:!a,className:`rounded-md px-4 py-2 text-body-medium-default transition-colors`,style:{background:a?`var(--system-positive-strong)`:`var(--surface-overlay)`,color:a?`var(--content-on-positive)`:`var(--content-disabled)`,border:`none`,cursor:a?`pointer`:`not-allowed`},children:o?u(`memoryRouterPlaygroundPage.running`):u(`memoryRouterPlaygroundPage.runPane`,{paneId:e})})})]})})}function P({paneId:e,value:t,onChange:n,defaultTemplate:r}){let{t:i}=m(`chat`),[a,o]=(0,_.useState)(!1),s=`memory-router-playground-${e}-prompt`,c=t.trim().length>0;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`text-label-medium-default`,style:{color:`var(--content-secondary)`,background:`transparent`,border:`none`,padding:0,cursor:`pointer`,textAlign:`left`},children:[a?`▾`:`▸`,` `,i(`memoryRouterPlaygroundPage.systemPrompt`),` `,(0,w.jsxs)(`span`,{style:{color:`var(--content-tertiary)`},children:[`(`,i(c?`memoryRouterPlaygroundPage.promptModeCustom`:`memoryRouterPlaygroundPage.promptModeBundled`),`)`]})]}),a&&(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`button`,{type:`button`,onClick:()=>n(r),disabled:r.length===0,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:r.length===0?`not-allowed`:`pointer`},children:i(`memoryRouterPlaygroundPage.loadDefault`)}),(0,w.jsx)(`button`,{type:`button`,onClick:()=>n(``),disabled:!c,className:`rounded px-2 py-1 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:c?`pointer`:`not-allowed`},children:i(`memoryRouterPlaygroundPage.reset`)})]})]}),a&&(0,w.jsx)(`textarea`,{id:s,value:t,onChange:e=>n(e.target.value),rows:12,placeholder:i(`memoryRouterPlaygroundPage.customPromptPlaceholder`),className:`rounded-md border px-3 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,resize:`vertical`,minHeight:`120px`}})]})}function F({paneId:e,value:t,onChange:n,profiles:r,activeProfile:i}){let{t:a}=m(`chat`),o=`memory-router-playground-${e}-profile`,s=i!==null&&i.length>0?a(`memoryRouterPlaygroundPage.inheritActiveWithProfile`,{profile:i}):a(`memoryRouterPlaygroundPage.inheritActive`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`label`,{htmlFor:o,className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:a(`memoryRouterPlaygroundPage.llmProfilesOverride`)}),(0,w.jsxs)(`select`,{id:o,value:t,onChange:e=>n(e.target.value),className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`},children:[(0,w.jsx)(`option`,{value:``,children:s}),r.map(e=>(0,w.jsx)(`option`,{value:e,children:e},e))]})]})}function I({paneId:e,label:t,value:n,onChange:r}){let{t:i}=m(`chat`),a=`memory-router-playground-${e}-${t}`;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`label`,{htmlFor:a,className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:t}),(0,w.jsx)(`input`,{id:a,value:n,onChange:e=>r(e.target.value),placeholder:i(`memoryRouterPlaygroundPage.inheritPlaceholder`),className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`}})]})}function te({onClick:e,disabled:t,isRunning:n}){let{t:r}=m(`chat`);return(0,w.jsx)(`button`,{type:`button`,onClick:e,disabled:t,className:`rounded-md px-4 py-2 text-body-medium-default transition-colors`,style:{background:t?`var(--surface-overlay)`:`var(--primary-base)`,color:t?`var(--content-disabled)`:`var(--content-on-primary)`,border:`none`,cursor:t?`not-allowed`:`pointer`},children:r(n?`memoryRouterPlaygroundPage.running`:`memoryRouterPlaygroundPage.runBoth`)})}function ne({visible:e}){let{t}=m(`chat`);return e?(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 rounded-md px-4 py-2 text-label-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`},children:[(0,w.jsx)(L,{marker:`●`,markerColor:`var(--content-default)`,label:t(`memoryRouterPlaygroundPage.legendInBoth`)}),(0,w.jsx)(L,{marker:`◆`,markerColor:X(`A`),label:t(`memoryRouterPlaygroundPage.legendAOnly`)}),(0,w.jsx)(L,{marker:`◇`,markerColor:X(`B`),label:t(`memoryRouterPlaygroundPage.legendBOnly`)})]}):null}function L({marker:e,markerColor:t,label:n}){return(0,w.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(`span`,{style:{color:t},children:e}),(0,w.jsx)(`span`,{children:n})]})}function R({paneId:e,userMessage:t,mutation:n,otherResult:r,validation:i}){let{t:a}=m(`chat`),o=n.data;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsx)(V,{paneId:e}),i!==null&&(0,w.jsx)(Q,{message:i}),n.isError&&(0,w.jsx)(Q,{message:n.error instanceof Error?n.error.message:a(`memoryRouterPlaygroundPage.failedToRunSimulation`)}),o!==void 0&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(H,{paneId:e,userMessage:t,result:o.response,otherResult:r}),(0,w.jsx)(z,{paneId:e,rawRequest:o.rawRequest,rawResponse:o.rawResponse})]})]})}function z({paneId:e,rawRequest:t,rawResponse:n}){let{t:i}=m(`chat`),[a,o]=(0,_.useState)(!1);return(0,w.jsx)(r,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`text-label-medium-default`,style:{color:`var(--content-secondary)`,background:`transparent`,border:`none`,padding:0,cursor:`pointer`,textAlign:`left`},children:[a?`▾`:`▸`,` `,i(`memoryRouterPlaygroundPage.rawApiExchange`)]}),a&&(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsx)(B,{label:i(`memoryRouterPlaygroundPage.requestLabel`,{paneId:e}),body:t}),(0,w.jsx)(B,{label:i(`memoryRouterPlaygroundPage.responseLabel`,{paneId:e}),body:n})]})]})})}function B({label:e,body:t}){let{t:n}=m(`chat`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,w.jsx)(`pre`,{className:`overflow-auto rounded-md border px-3 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,maxHeight:`320px`,whiteSpace:`pre`},children:t.length===0?n(`memoryRouterPlaygroundPage.empty`):t})]})}function V({paneId:e}){let{t}=m(`chat`);return(0,w.jsx)(`div`,{className:`text-body-medium-default`,style:{color:X(e)},children:t(`memoryRouterPlaygroundPage.paneTitle`,{paneId:e})})}function H({paneId:e,userMessage:t,result:n,otherResult:r}){let{t:i}=m(`chat`),a=(0,_.useMemo)(()=>U(n,r),[n,r]),o=(0,_.useMemo)(()=>q(n),[n]);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,w.jsx)(G,{result:n,userMessage:t,otherResult:r,counts:(0,_.useMemo)(()=>W(a),[a])}),(0,w.jsx)(K,{result:n}),n.failureReason!==null&&(0,w.jsx)(Q,{message:i(`memoryRouterPlaygroundPage.routerFailure`,{reason:n.failureReason})}),o.length===0?(0,w.jsx)(ae,{}):o.map(t=>(0,w.jsx)(ie,{paneId:e,source:t.source,slugs:t.slugs,scores:n.scores,diff:a},t.source))]})}function U(e,t){let n=new Map;if(t===void 0){for(let t of e.selectedSlugs)n.set(t,`both`);return n}let r=new Set(t.selectedSlugs);for(let t of e.selectedSlugs)n.set(t,r.has(t)?`both`:`only-here`);return n}function W(e){let t=0,n=0;for(let r of e.values())r===`both`?t++:n++;return{total:e.size,shared:t,unique:n}}function G({result:e,userMessage:t,otherResult:n,counts:i}){let{t:a}=m(`chat`),o=[{label:a(`memoryRouterPlaygroundPage.summaryUserMessageLabel`),value:t},{label:a(`memoryRouterPlaygroundPage.totalCandidatePagesLabel`),value:e.totalCandidatePages.toLocaleString()},{label:a(`memoryRouterPlaygroundPage.selectedLabel`),value:a(`memoryRouterPlaygroundPage.selectedValue`,{count:e.selectedSlugs.length,maxPageIds:e.effectiveConfig.max_page_ids})}];return n!==void 0&&o.push({label:a(`memoryRouterPlaygroundPage.diffLabel`),value:a(`memoryRouterPlaygroundPage.diffValue`,{shared:i.shared,unique:i.unique})}),(0,w.jsx)(r,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:a(`memoryRouterPlaygroundPage.summary`)}),(0,w.jsx)(Z,{rows:o})]})})}function K({result:e}){let{t}=m(`chat`),n=[`tier1_size`,`tier2_size`,`batch_size`,`max_page_ids`].map(n=>{let r=e.effectiveConfig[n],i=e.overrides[n];return{label:n,value:`${r===null?t(`memoryRouterPlaygroundPage.nullValue`):String(r)}${i===void 0?``:t(`memoryRouterPlaygroundPage.overrideSuffix`)}`}});return n.push({label:t(`memoryRouterPlaygroundPage.llmProfilesOverride`),value:e.profileOverride===null?t(`memoryRouterPlaygroundPage.inheritActive`):`${e.profileOverride}${t(`memoryRouterPlaygroundPage.overrideSuffix`)}`}),n.push({label:t(`memoryRouterPlaygroundPage.systemPromptConfigLabel`),value:e.routerPromptOverridden?t(`memoryRouterPlaygroundPage.promptModeCustom`):t(`memoryRouterPlaygroundPage.promptModeBundled`)}),(0,w.jsx)(r,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t(`memoryRouterPlaygroundPage.effectiveConfig`)}),(0,w.jsx)(Z,{rows:n})]})})}function q(e){let t=new Map;for(let n of e.selectedSlugs){let r=e.sourceBySlug[n];if(r===void 0)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return[...t.keys()].sort((e,t)=>J(e)-J(t)).map(e=>({source:e,slugs:t.get(e)}))}function J(e){return e===`tier1`?0:e===`tier2`?1:e.startsWith(`tier3:`)?2+Number(e.slice(6)):2**53-1}function Y(e,t){return e===`tier1`?t(`memoryRouterPlaygroundPage.tier1Label`):e===`tier2`?t(`memoryRouterPlaygroundPage.tier2Label`):e.startsWith(`tier3:`)?t(`memoryRouterPlaygroundPage.tier3Label`,{batch:e.slice(6)}):e}function X(e){return e===`A`?`var(--system-mid-strong)`:`var(--primary-base)`}function re(e,t){return t===`both`?{color:`var(--content-default)`,marker:`●`}:{color:X(e),marker:e===`A`?`◆`:`◇`}}function ie({paneId:e,source:t,slugs:n,scores:i,diff:a}){let{t:o}=m(`chat`);return(0,w.jsx)(r,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:Y(t,o)}),(0,w.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-secondary)`},children:o(`memoryRouterPlaygroundPage.pageCount`,{count:n.length})})]}),(0,w.jsx)(`ul`,{className:`flex flex-col gap-1`,children:n.map(n=>{let{color:r,marker:s}=re(e,a.get(n)??`only-here`);return(0,w.jsxs)(`li`,{className:`flex items-baseline justify-between gap-3`,children:[(0,w.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[(0,w.jsx)(`span`,{style:{color:r},children:s}),(0,w.jsx)(`code`,{className:`text-body-medium-default`,style:{color:r},children:n})]}),t===`tier2`&&(0,w.jsx)(`span`,{className:`tabular-nums text-label-medium-default`,style:{color:`var(--content-secondary)`},children:o(`memoryRouterPlaygroundPage.emaScore`,{score:(i[n]??0).toFixed(3)})})]},n)})})]})})}function ae(){let{t:e}=m(`chat`);return(0,w.jsx)(r,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e(`memoryRouterPlaygroundPage.noPagesSelected`)}),(0,w.jsx)(`span`,{className:`text-body-small-lighter`,style:{color:`var(--content-secondary)`},children:e(`memoryRouterPlaygroundPage.emptySelectionHint`)})]})})}function Z({rows:e}){return(0,w.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(({label:e,value:t})=>(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,w.jsx)(`span`,{className:`shrink-0 text-label-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,w.jsx)(`span`,{className:`text-right text-body-medium-lighter`,style:{color:`var(--content-default)`},children:t})]},e))})}function Q({message:e}){return(0,w.jsx)(`div`,{className:`rounded-md px-4 py-3 text-body-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--system-negative-strong)`},children:e})}function $({children:e}){return(0,w.jsx)(`div`,{className:`flex h-full w-full items-center justify-center p-8 text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})}export{T as MemoryRouterPlaygroundPage};
@@ -1 +1 @@
1
- import{Jn as e,Lt as t,Xn as n,Zn as r}from"./app-DVwAB8n7.js";import{j as i}from"./vendor-Bb38ZAP8.js";import{t as a}from"./react-B9IgSVeK.js";import{rn as o}from"./icons-QG1KAFmx.js";import{t as s}from"./use-transcript-message-by-id-vZ9vFhLM.js";var c=[];function l(e){let t=s(e);return t?t.attachments??c:null}var u=a();function d({payload:a,onClose:s}){let{t:c}=i(`chat`),{displayAttachments:d,renderSquare:f,previewModal:p}=t({attachments:l(a.messageId)??a.attachments,assistantId:a.assistantId});return(0,u.jsxs)(e,{Glyph:o,titleNode:(0,u.jsx)(r,{title:c(`messageFilesPanel.title`),count:d.length}),closeLabel:c(`messageFilesPanel.closeAria`),onClose:s,children:[d.length===0?(0,u.jsx)(n,{children:c(`messageFilesPanel.empty`)}):(0,u.jsx)(`div`,{className:`flex flex-wrap items-start gap-3`,children:d.map((e,t)=>f(e,t))}),p]})}export{d as MessageFilesPanel};
1
+ import{It as e,Jn as t,Xn as n,Zn as r}from"./app-Tg6YU_tZ.js";import{j as i}from"./vendor-DYOeoIwg.js";import{t as a}from"./react-B9IgSVeK.js";import{rn as o}from"./icons-QG1KAFmx.js";import{t as s}from"./use-transcript-message-by-id-Bnbe06RA.js";var c=[];function l(e){let t=s(e);return t?t.attachments??c:null}var u=a();function d({payload:a,onClose:s}){let{t:c}=i(`chat`),{displayAttachments:d,renderSquare:f,previewModal:p}=e({attachments:l(a.messageId)??a.attachments,assistantId:a.assistantId});return(0,u.jsxs)(t,{Glyph:o,titleNode:(0,u.jsx)(r,{title:c(`messageFilesPanel.title`),count:d.length}),closeLabel:c(`messageFilesPanel.closeAria`),onClose:s,children:[d.length===0?(0,u.jsx)(n,{children:c(`messageFilesPanel.empty`)}):(0,u.jsx)(`div`,{className:`flex flex-wrap items-start gap-3`,children:d.map((e,t)=>f(e,t))}),p]})}export{d as MessageFilesPanel};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ux as t,qx as n}from"./app-DVwAB8n7.js";import{f as r}from"./vendor-Bb38ZAP8.js";import{t as i,x as a}from"./react-B9IgSVeK.js";import{Ja as o}from"./icons-QG1KAFmx.js";var s=o(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),c=e(a(),1),l=i();function u(e){if(e>=1e6){let t=e/1e6;return`${t%1==0?t.toFixed(0):t.toFixed(1)}M`}if(e>=1e3){let t=e/1e3;return`${t%1==0?t.toFixed(0):t.toFixed(1)}K`}return e.toLocaleString()}function d(e){let t=r(),[n,i]=(0,c.useState)(e),a=(0,c.useRef)(e),o=(0,c.useRef)(e),s=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(o.current=e,t){cancelAnimationFrame(s.current),s.current=0,a.current=e,i(e);return}if(a.current===e||s.current)return;let n=performance.now(),r=a.current,c=e=>{let t=o.current,l=Math.min((e-n)/300,1),u=1-(1-l)**3;a.current=l>=1?t:r+(t-r)*u,i(a.current),l<1?s.current=requestAnimationFrame(c):s.current=0};s.current=requestAnimationFrame(c)},[e,t]),(0,c.useEffect)(()=>()=>cancelAnimationFrame(s.current),[]),n}function f({icon:e,value:r,label:i,valueTitle:a}){return(0,l.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] px-3 py-3`,children:[(0,l.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:e}),(0,l.jsxs)(`div`,{className:`min-w-0`,children:[(0,l.jsx)(t,{variant:`title-small`,title:a||void 0,className:n(`block text-[var(--content-default)]`,a&&`-mb-1 truncate pb-1`),children:r}),(0,l.jsx)(t,{variant:`body-small-default`,className:`block text-[var(--content-secondary)]`,children:i})]})]})}function p({icon:e,label:t,target:n,format:r}){return(0,l.jsx)(f,{icon:e,label:t,value:r(d(n))})}export{s as i,f as n,u as r,p as t};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ux as t,qx as n}from"./app-Tg6YU_tZ.js";import{f as r}from"./vendor-DYOeoIwg.js";import{t as i,x as a}from"./react-B9IgSVeK.js";import{Ja as o}from"./icons-QG1KAFmx.js";var s=o(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),c=e(a(),1),l=i();function u(e){if(e>=1e6){let t=e/1e6;return`${t%1==0?t.toFixed(0):t.toFixed(1)}M`}if(e>=1e3){let t=e/1e3;return`${t%1==0?t.toFixed(0):t.toFixed(1)}K`}return e.toLocaleString()}function d(e){let t=r(),[n,i]=(0,c.useState)(e),a=(0,c.useRef)(e),o=(0,c.useRef)(e),s=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(o.current=e,t){cancelAnimationFrame(s.current),s.current=0,a.current=e,i(e);return}if(a.current===e||s.current)return;let n=performance.now(),r=a.current,c=e=>{let t=o.current,l=Math.min((e-n)/300,1),u=1-(1-l)**3;a.current=l>=1?t:r+(t-r)*u,i(a.current),l<1?s.current=requestAnimationFrame(c):s.current=0};s.current=requestAnimationFrame(c)},[e,t]),(0,c.useEffect)(()=>()=>cancelAnimationFrame(s.current),[]),n}function f({icon:e,value:r,label:i,valueTitle:a}){return(0,l.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] px-3 py-3`,children:[(0,l.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:e}),(0,l.jsxs)(`div`,{className:`min-w-0`,children:[(0,l.jsx)(t,{variant:`title-small`,title:a||void 0,className:n(`block text-[var(--content-default)]`,a&&`-mb-1 truncate pb-1`),children:r}),(0,l.jsx)(t,{variant:`body-small-default`,className:`block text-[var(--content-secondary)]`,children:i})]})]})}function p({icon:e,label:t,target:n,format:r}){return(0,l.jsx)(f,{icon:e,label:t,value:r(d(n))})}export{s as i,f as n,u as r,p as t};
@@ -0,0 +1 @@
1
+ import{st as e}from"./app-Tg6YU_tZ.js";export{e as filesFromNativePaths};