@vellumai/web 0.11.0-staging.1 → 0.11.0-staging.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 (148) hide show
  1. package/dist/assets/access-DS79PSR3.js +1 -0
  2. package/dist/assets/{account-page-BQkbkIBf.js → account-page-D3ERiewh.js} +1 -1
  3. package/dist/assets/{acp-run-actions-BWR9i8MT.js → acp-run-actions-BH8wuBAL.js} +1 -1
  4. package/dist/assets/{acp-run-detail-panel-np07jHCY.js → acp-run-detail-panel-dqVK6rPq.js} +1 -1
  5. package/dist/assets/{activity-steps-panel-DA5HdB61.js → activity-steps-panel-xxl2hu3E.js} +1 -1
  6. package/dist/assets/{add-credential-modal-rP3DdyDH.js → add-credential-modal-CY_--m8L.js} +1 -1
  7. package/dist/assets/{ai-page-eBXLZw6t.js → ai-page-B02NwVRu.js} +1 -1
  8. package/dist/assets/{api-CI6Y6DLb.js → api-C3QSs67k.js} +1 -1
  9. package/dist/assets/{api-BlN0EOWF.js → api-LG8zI3nK.js} +1 -1
  10. package/dist/assets/{api-key-screen-B6aLgYrf.js → api-key-screen-CvBdN6Ae.js} +1 -1
  11. package/dist/assets/{app-card-A7PMnlAT.js → app-card-CAaFL1oB.js} +1 -1
  12. package/dist/assets/{assistant-feature-flag-store-DV5Zr1c4.js → assistant-feature-flag-store-CAdgpPiS.js} +1 -1
  13. package/dist/assets/{assistant-status-panel-CxMEVjFY.js → assistant-status-panel-BTnD-jhG.js} +1 -1
  14. package/dist/assets/{auth-store-BW4V6iLb.js → auth-store-5qq59BAN.js} +1 -1
  15. package/dist/assets/{avatar-random-BiEMZGl7.js → avatar-random-BMSYTcJK.js} +1 -1
  16. package/dist/assets/{background-task-actions-Y-aaTGGd.js → background-task-actions-DmP5s0oO.js} +1 -1
  17. package/dist/assets/{background-task-detail-panel-CGAeD1Ym.js → background-task-detail-panel-BCYAElGc.js} +1 -1
  18. package/dist/assets/{billing-page-5GkNMPN6.js → billing-page-B5j5TW_S.js} +1 -1
  19. package/dist/assets/{bookmarks-page-B1-9GBEx.js → bookmarks-page-D_Jr-a4Q.js} +1 -1
  20. package/dist/assets/build-state-m0LQ5Iis.js +1 -0
  21. package/dist/assets/{channels-page-route-BLy5uT8z.js → channels-page-route-BYP9SOw5.js} +1 -1
  22. package/dist/assets/{chat-avatar-DQx81apI.js → chat-avatar-CvEA6z0H.js} +1 -1
  23. package/dist/assets/{chat-markdown-message-CdM44BjA.js → chat-markdown-message-rxPKNeTx.js} +1 -1
  24. package/dist/assets/{checkout-continuation-DIMnSvv3.js → checkout-continuation-U3Pd2nxi.js} +1 -1
  25. package/dist/assets/{checkout-page-BZQpdPLT.js → checkout-page-C5_9GbP-.js} +1 -1
  26. package/dist/assets/{client-feature-flag-store-BDrcV52r.js → client-feature-flag-store-CMncoan8.js} +1 -1
  27. package/dist/assets/{command-palette-window-page-DAC710zo.js → command-palette-window-page-gq0zowBe.js} +1 -1
  28. package/dist/assets/{contacts-page-route-BF8J2JDt.js → contacts-page-route-DNoCUXE7.js} +1 -1
  29. package/dist/assets/{conversation-cache-DU44A0zv.js → conversation-cache-DKvwwWNo.js} +1 -1
  30. package/dist/assets/{conversation-list-fetchers-DLZho4T7.js → conversation-list-fetchers-DM-Y61u5.js} +1 -1
  31. package/dist/assets/conversation-navigation-DsN0hcpL.js +1 -0
  32. package/dist/assets/{conversation-queries-Bvh4bAZ6.js → conversation-queries-CWvK6RLK.js} +1 -1
  33. package/dist/assets/{credentials-page-DzlUvhn4.js → credentials-page-BsJFuOc9.js} +1 -1
  34. package/dist/assets/{debug-page-TgklOyxq.js → debug-page-BziypDgA.js} +1 -1
  35. package/dist/assets/{deploy-dialogs-Day3_9Lh.js → deploy-dialogs-DZSd5o9b.js} +1 -1
  36. package/dist/assets/{deploy-store-Brp7LoZ_.js → deploy-store-D6snB1j5.js} +1 -1
  37. package/dist/assets/{developer-page-BobJIDnJ.js → developer-page-QMFEIyBS.js} +1 -1
  38. package/dist/assets/{document-viewer-container-BIS1iPUz.js → document-viewer-container-B7TEDeV0.js} +1 -1
  39. package/dist/assets/{document-viewer-page-CcGTGI8C.js → document-viewer-page-3Eq8L562.js} +1 -1
  40. package/dist/assets/{emails-page-CbAcUM70.js → emails-page-Wr4wPSYl.js} +1 -1
  41. package/dist/assets/{eye-bbox-DU39FEUp.js → eye-bbox-C_V87iLg.js} +1 -1
  42. package/dist/assets/feature-flag-catalog-I9-eJQP_.js +1 -0
  43. package/dist/assets/{first-run-scope-DKYDP-Kz.js → first-run-scope-CL5YbC3b.js} +1 -1
  44. package/dist/assets/{general-page-CtfWmXZi.js → general-page-lbkufqHg.js} +1 -1
  45. package/dist/assets/{get-memory-stats-DMSpgqW_.js → get-memory-stats-BCYSpBF6.js} +1 -1
  46. package/dist/assets/hatching-screen-D81diZoa.js +1 -0
  47. package/dist/assets/{home-page-route-BV2GBxZi.js → home-page-route-CHe8eoLz.js} +1 -1
  48. package/dist/assets/{hosting-screen-CTtZrpXi.js → hosting-screen-D9atAksQ.js} +1 -1
  49. package/dist/assets/{identity-page-route-DsU3eoey.js → identity-page-route-CK3YsXCN.js} +1 -1
  50. package/dist/assets/{index-DMFNBbtE.js → index-0f48hi7h.js} +1 -1
  51. package/dist/assets/{inspect-page-BcTmA6nR.js → inspect-page-COwvbHtX.js} +1 -1
  52. package/dist/assets/{installed-plugins-query-C29LGAEV.js → installed-plugins-query-Cgek0q7G.js} +1 -1
  53. package/dist/assets/{integrations-page-CTST1yxp.js → integrations-page-CJOBwxXp.js} +1 -1
  54. package/dist/assets/{invalidate-plugin-queries-DamxiwYv.js → invalidate-plugin-queries-C3NTXkCX.js} +1 -1
  55. package/dist/assets/{latest-assistant-text-C0pZSmc9.js → latest-assistant-text-DOepZ_Io.js} +2 -2
  56. package/dist/assets/{library-detail-page-CI4p4bVi.js → library-detail-page-DVwI94NZ.js} +1 -1
  57. package/dist/assets/{library-page-SAKHIHZb.js → library-page-CNA794WY.js} +1 -1
  58. package/dist/assets/{local-runtime-upgrade-CoFpjlw3.js → local-runtime-upgrade-Bqn3d7Q7.js} +1 -1
  59. package/dist/assets/{login-flow-B4pa-3II.js → login-flow-CD9tyuFG.js} +1 -1
  60. package/dist/assets/{login-page-CVnwfJ3R.js → login-page-BNStrcnU.js} +1 -1
  61. package/dist/assets/{logout-page-km3RHlGI.js → logout-page-CpFeuLA_.js} +1 -1
  62. package/dist/assets/{logs-layout-D4Ubybh3.js → logs-layout-BUiPeZ4I.js} +1 -1
  63. package/dist/assets/{memory-page-route-JRgoyHnC.js → memory-page-route-C0cBV7HD.js} +1 -1
  64. package/dist/assets/{memory-router-playground-page-DvbF6E2-.js → memory-router-playground-page-D4UIq8mw.js} +1 -1
  65. package/dist/assets/{messages-Coz9buJR.js → messages-CFcAW4iz.js} +2 -2
  66. package/dist/assets/navigation-resolver-DPJxzx0h.js +1 -0
  67. package/dist/assets/{notifications-page-CWtQZnHw.js → notifications-page-ClfcJeLf.js} +1 -1
  68. package/dist/assets/{open-workspace-file-DNaU5wg2.js → open-workspace-file-DtK3a84K.js} +2 -2
  69. package/dist/assets/{page-empty-state-L-3_3LSi.js → page-empty-state-DT-tC1u6.js} +1 -1
  70. package/dist/assets/{personality-page-B621HU2-.js → personality-page-BJpW3UXD.js} +1 -1
  71. package/dist/assets/{plans-page-DAVt4mwm.js → plans-page-BDKqdYNM.js} +1 -1
  72. package/dist/assets/{platform-login-notice-BaCrIk0m.js → platform-login-notice-CdYiKsE8.js} +1 -1
  73. package/dist/assets/{platform-loopback-page-jBGJSmyh.js → platform-loopback-page-D0gXCm2S.js} +1 -1
  74. package/dist/assets/{privacy-page-DZEcN0PF.js → privacy-page-B0QN4qZO.js} +1 -1
  75. package/dist/assets/privacy-screen-vp4uUpm6.js +1 -0
  76. package/dist/assets/{provider-callback-page-BeDYWdc_.js → provider-callback-page-BH6DES7c.js} +1 -1
  77. package/dist/assets/{provider-key-1rLTitmu.js → provider-key-D2Nsf9zh.js} +1 -1
  78. package/dist/assets/{provider-signup-page-CVKaVhiB.js → provider-signup-page-BAPcG_iJ.js} +1 -1
  79. package/dist/assets/{react-query.gen-r3I6j8-1.js → react-query.gen-C5c1Acuq.js} +1 -1
  80. package/dist/assets/{research-onboarding-route-DwRSK3R4.js → research-onboarding-route-CFL3q__m.js} +2 -2
  81. package/dist/assets/{retire-confirm-dialog-BuS97P1t.js → retire-confirm-dialog-CsSY2-T8.js} +1 -1
  82. package/dist/assets/{review-terms-screen-CTNEkesk.js → review-terms-screen-BhyRQBjl.js} +1 -1
  83. package/dist/assets/{risk-DmicWnoH.js → risk-CdT92Vqr.js} +1 -1
  84. package/dist/assets/{routes-Bzk5oLRb.js → routes-CaP5Tqj7.js} +14 -14
  85. package/dist/assets/{runtime-upgrade-banner-DPMpuefs.js → runtime-upgrade-banner-DPqzKtZU.js} +1 -1
  86. package/dist/assets/{schedules-DIpn4jGl.js → schedules-6hzhR_C_.js} +1 -1
  87. package/dist/assets/{schedules-page-A9pwMmex.js → schedules-page-DVnUeaoB.js} +1 -1
  88. package/dist/assets/{sdk.gen-BVAVE6A_.js → sdk.gen-BHZ0fJla.js} +1 -1
  89. package/dist/assets/{select-assistant-screen-BPXqMOtp.js → select-assistant-screen-CVV3iqMy.js} +1 -1
  90. package/dist/assets/{settings-layout-CrOIplp2.js → settings-layout-B_4PKJr9.js} +1 -1
  91. package/dist/assets/{settings-navigation-Ccol_TOM.js → settings-navigation-CSG7jiyJ.js} +1 -1
  92. package/dist/assets/{share-feedback-modal-IyuFKIAE.js → share-feedback-modal-BoWCg4KH.js} +1 -1
  93. package/dist/assets/{sidebar-tree-_HwQiPki.js → sidebar-tree-C_PPNHe5.js} +1 -1
  94. package/dist/assets/{signup-page-D44Im_Pf.js → signup-page-D0S_8XYw.js} +1 -1
  95. package/dist/assets/{site-favicon-DzmWythg.js → site-favicon-BB1pYWLF.js} +1 -1
  96. package/dist/assets/{skill-detail-page-HW_A5KMG.js → skill-detail-page-CTobyK6L.js} +1 -1
  97. package/dist/assets/{skill-detail-panel-CrwVImjM.js → skill-detail-panel-CNzionF7.js} +1 -1
  98. package/dist/assets/{skills-Djg056es.js → skills-Cum1XWT2.js} +1 -1
  99. package/dist/assets/{sound-manager-DlaDOZ8r.js → sound-manager-Bx-OcMAz.js} +1 -1
  100. package/dist/assets/{sounds-page-CtII5pFQ.js → sounds-page-C45-RF4i.js} +1 -1
  101. package/dist/assets/{subagent-detail-panel-tuHcbKyo.js → subagent-detail-panel-DyyMdaNO.js} +1 -1
  102. package/dist/assets/subagent-store-MDi6lBXs.js +3 -0
  103. package/dist/assets/{superpowers-page-f4EChE6q.js → superpowers-page-CaLzK5D-.js} +1 -1
  104. package/dist/assets/{system-events-page-oxkNLamU.js → system-events-page-DXAU01ZO.js} +1 -1
  105. package/dist/assets/{theme-stage-page-5wL3M-2c.js → theme-stage-page-BDTCmutO.js} +1 -1
  106. package/dist/assets/{tool-detail-panel-BqhEUAMJ.js → tool-detail-panel-DFrWEWKG.js} +1 -1
  107. package/dist/assets/{transcript-message-body-shared-D3uxHQt5.js → transcript-message-body-shared-D9_d2c2X.js} +1 -1
  108. package/dist/assets/{upgrade-cancel-page-BRA25NVC.js → upgrade-cancel-page-eiJEAvFz.js} +1 -1
  109. package/dist/assets/{upgrade-success-page-BlZDEVkm.js → upgrade-success-page-Cb1Gl4MM.js} +1 -1
  110. package/dist/assets/{use-app-theme-CGie3Dma.js → use-app-theme-Dg8A6vPA.js} +1 -1
  111. package/dist/assets/{use-assistant-avatar-IcRIy2-c.js → use-assistant-avatar-bwLHcMz4.js} +1 -1
  112. package/dist/assets/{use-assistant-capability-C8pZDYlr.js → use-assistant-capability-CDS7GbSO.js} +1 -1
  113. package/dist/assets/{use-assistant-identity-details-CE6-JkNE.js → use-assistant-identity-details-9JRWxXTQ.js} +1 -1
  114. package/dist/assets/{use-bookmarks-CIhaNp5_.js → use-bookmarks-CK-nOiT-.js} +1 -1
  115. package/dist/assets/{use-checkout-dismiss-refresh-BpmG1OQ0.js → use-checkout-dismiss-refresh-CqGR_OsB.js} +1 -1
  116. package/dist/assets/{use-command-palette-sections-CXU-OW-6.js → use-command-palette-sections-CkpUaAKs.js} +1 -1
  117. package/dist/assets/{use-edit-app-CYK9-rGD.js → use-edit-app-B_Nequzs.js} +1 -1
  118. package/dist/assets/{use-invite-link-dialog-DdiGDpLS.js → use-invite-link-dialog-CPPOduk8.js} +1 -1
  119. package/dist/assets/{use-ios-app-nudge-t0SIn8xv.js → use-ios-app-nudge-B-ojl-b1.js} +1 -1
  120. package/dist/assets/{use-is-org-ready-D0q2NIZU.js → use-is-org-ready-C5xlYywh.js} +1 -1
  121. package/dist/assets/{use-onboarding-login-BmYpiSIt.js → use-onboarding-login-DI5gvqEG.js} +1 -1
  122. package/dist/assets/{use-platform-assistant-id-Cm5BfOD8.js → use-platform-assistant-id-DOsSt6k1.js} +1 -1
  123. package/dist/assets/{use-platform-gate-bFyCaLbM.js → use-platform-gate-C65D14xY.js} +1 -1
  124. package/dist/assets/{use-save-twilio-credentials-Bm-WW_5V.js → use-save-twilio-credentials-c9xG9RPK.js} +1 -1
  125. package/dist/assets/{use-skill-actions-C4J1lG_r.js → use-skill-actions-BAAx1Eia.js} +1 -1
  126. package/dist/assets/{use-skill-detail-files-BKtCag3o.js → use-skill-detail-files-BvOKvY0-.js} +1 -1
  127. package/dist/assets/{use-sticky-profiles-mC9bd8xU.js → use-sticky-profiles-CdWX0mgI.js} +1 -1
  128. package/dist/assets/{use-subagent-card-data-Dp1wCoRB.js → use-subagent-card-data-DHuNtSy9.js} +1 -1
  129. package/dist/assets/{utils-BCDvGOqU.js → utils-B0rBxtYP.js} +1 -1
  130. package/dist/assets/{viewer-store-Ct0SDE-n.js → viewer-store-DLk-jp8U.js} +1 -1
  131. package/dist/assets/{voice-list-IdN1mqlX.js → voice-list-CW8mzaHU.js} +1 -1
  132. package/dist/assets/{voice-page-CxWJ-zo7.js → voice-page-0zsCIOdT.js} +1 -1
  133. package/dist/assets/{voice-picker-modal-BHRanF0C.js → voice-picker-modal-PdsZwrsV.js} +1 -1
  134. package/dist/assets/{welcome-screen-jOvMiW_R.js → welcome-screen-DwOAZpZS.js} +1 -1
  135. package/dist/assets/{workflow-store-CMNMu-fc.js → workflow-store-lM7yKbUo.js} +1 -1
  136. package/dist/assets/workspace-page-D4NvhCv1.js +1 -0
  137. package/dist/assets/{workspace-tree-query-COH0vdQ-.js → workspace-tree-query-B1A-efgV.js} +1 -1
  138. package/dist/index.html +61 -61
  139. package/package.json +1 -1
  140. package/dist/assets/access-CHoOc28F.js +0 -1
  141. package/dist/assets/build-state-DaLynPsy.js +0 -1
  142. package/dist/assets/conversation-navigation-Bo95jhXQ.js +0 -1
  143. package/dist/assets/feature-flag-catalog-TjLF99gJ.js +0 -1
  144. package/dist/assets/hatching-screen-Btkqf3MF.js +0 -1
  145. package/dist/assets/navigation-resolver-D4jPigYv.js +0 -1
  146. package/dist/assets/privacy-screen-DXkQbNvk.js +0 -1
  147. package/dist/assets/subagent-store-CQKOOAm6.js +0 -3
  148. package/dist/assets/workspace-page-BZBNul96.js +0 -1
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./local-settings-C-dW2vkq.js";import{t as r}from"./react-BFJW0bSv.js";import{F as i,t as a}from"./button-Dy5001j6.js";import{l as o,m as s,u as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./useMutation-CXGTrp4W.js";import{t as f}from"./jsx-runtime-D3ZM-ToX.js";import{t as p}from"./card-DRIctGVs.js";import{t as m}from"./createLucideIcon-CAM1RhH8.js";import{t as h}from"./arrow-down-to-line-Bh_5sIPp.js";import{t as g}from"./arrow-left-C2ylPLHq.js";import{a as _,i as v,n as y,o as b,r as x,s as S,t as ee}from"./use-skill-actions-C4J1lG_r.js";import{t as C}from"./brain-BIzJCPA6.js";import{n as w,t as T}from"./settings-CfuLzwIw.js";import{t as E}from"./check-sC49_hjU.js";import{n as D,r as O,t as te}from"./invalidate-plugin-queries-DamxiwYv.js";import{t as k}from"./circle-check-big-DSsDH5_6.js";import{t as ne}from"./cloud-off-BCBGTmt0.js";import{t as re}from"./code-qafFA0_-.js";import{t as ie}from"./download-CywcQLB2.js";import{t as A}from"./external-link-CS0aVYGt.js";import{t as j}from"./globe-CMtjL_s_.js";import{t as ae}from"./hard-drive-DWFPKcXI.js";import{t as M}from"./heart-789ajxtB.js";import{t as N}from"./layout-grid-DA_CfD6d.js";import{t as oe}from"./link-2-BKL8QWRX.js";import{t as P}from"./loader-circle-XREx3i4W.js";import{t as se}from"./mail-CMdPNysl.js";import{t as ce}from"./message-circle-BsH7vHtN.js";import{t as le}from"./mic-xmDFUbCL.js";import{t as ue}from"./puzzle-BVC3TGko.js";import{t as de}from"./search-BVW-n8to.js";import{t as fe}from"./sparkles-Ccrj7hxd.js";import{t as pe}from"./terminal-CdCI6wMV.js";import{t as F}from"./trash-2-L5LNgw9o.js";import{t as me}from"./triangle-alert-CQfiAg_t.js";import{t as he}from"./user-_zNqL48O.js";import{t as ge}from"./x-JBAsSOmg.js";import{n as I,t as _e}from"./installed-plugins-query-C29LGAEV.js";import"./src-te3YTBG-.js";import{t as L}from"./tag-NXcyiTkK.js";import{t as ve}from"./popover-BRpYVASI.js";import{t as ye}from"./input-hw3el2GJ.js";import{t as be}from"./toggle-lfnhEAcN.js";import{n as R,t as xe}from"./panel-item-CrtoJCrd.js";import{n as z}from"./toast-LgLp4obE.js";import{t as Se}from"./confirm-dialog-UYFm4osC.js";import{t as Ce}from"./file-markdown-DaflJFk7.js";import{Bn as we,Ln as B,Rn as Te,Un as Ee}from"./sdk.gen-BVAVE6A_.js";import{St as De,an as Oe,at as ke,ct as Ae,in as je,rn as Me,rt as Ne,st as Pe,xt as Fe}from"./react-query.gen-r3I6j8-1.js";import{t as Ie}from"./assistant-identity-store-DIyVo8LV.js";import{r as V}from"./utils-CnB60ZJN.js";import{u as Le}from"./routes-D9sNqB_o.js";import{n as Re}from"./use-is-mobile-BlQuzI5Z.js";import{t as H}from"./misc-CuYswARt.js";import{t as ze}from"./plugins-surface-B43Op43l.js";import{t as U}from"./use-active-assistant-id-CldxA_-M.js";import{n as Be,r as Ve}from"./skills-Djg056es.js";var He=m(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),Ue=m(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),W=e(r(),1),G=f(),We={sm:`h-7 w-7`,md:`h-8 w-8 text-3xl`};function K({external:e=!1,icon:t,iconSrc:n,size:r=`sm`,className:i}){let[a,o]=(0,W.useState)(!1);(0,W.useEffect)(()=>{o(!1)},[n]);let s=t||(e?`📦`:`🧩`),c=!!n&&!a;return(0,G.jsx)(`span`,{className:H(`flex shrink-0 items-center justify-center`,We[r],i),children:c?(0,G.jsx)(`img`,{src:n,alt:``,"aria-hidden":!0,loading:`lazy`,className:`h-full w-full object-contain`,onError:()=>o(!0)}):s})}var Ge=e=>`Remove "${e}" from this assistant?`,Ke=e=>`"${e}" has local edits that will be overwritten by the upgrade. Continue?`,qe=`Upgrade anyway`,Je=`Failed to install plugin. Please try again.`,Ye=`Failed to remove plugin. Please try again.`,Xe=`Failed to upgrade plugin. Please try again.`,Ze=`Failed to update plugin. Please try again.`;function Qe(e,t){let n=e.map(e=>({name:e.name,description:e.description??void 0,status:`installed`,external:void 0,version:e.version??void 0,path:e.path,issues:e.issues,enabled:e.enabled,icon:e.icon,hasIcon:e.hasIcon,iconVersion:e.iconVersion})),r=new Set(n.map(e=>e.name)),i=t.filter(e=>!r.has(e.name)).map(e=>({name:e.name,description:e.description,status:`available`,external:!0,path:e.path}));return[...n,...i]}function $e(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description].some(e=>e?.toLowerCase().includes(n)):!0}function et(e){return[...e].sort((e,t)=>{let n=e.status===`installed`;return n===(t.status===`installed`)?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):n?-1:1})}function tt(e,t){switch(t){case`all`:return e;case`available`:return e.filter(e=>e.status===`available`);case`installed`:return e.filter(e=>e.status===`installed`);case`active`:return e.filter(e=>e.status===`installed`&&e.enabled!==!1);case`off`:return e.filter(e=>e.status===`installed`&&e.enabled===!1)}}function nt(e){return e?e.slice(0,7):`unknown`}function q({plugin:e,surfaces:t=null,className:n}){let r=[{label:`Source`,value:e.source?.kind===`github`?e.source.repo:`Local`,href:(e.source?.kind===`github`?`https://github.com/${e.source.repo}`:null)??void 0}];return e.homepage&&r.push({label:`Homepage`,value:e.homepage,href:e.homepage}),e.license&&r.push({label:`License`,value:e.license}),t&&(t.skills.length>0&&r.push({label:`Skills`,value:String(t.skills.length)}),t.hooks.length>0&&r.push({label:`Hooks`,value:String(t.hooks.length)}),t.tools.length>0&&r.push({label:`Tools`,value:String(t.tools.length)})),(0,G.jsx)(`dl`,{className:H(`mb-5 grid gap-x-6 gap-y-2 border-b pb-5 sm:grid-cols-[max-content_1fr]`,n),style:{borderColor:`var(--border-base)`},children:r.map(e=>(0,G.jsxs)(`div`,{className:`contents`,children:[(0,G.jsx)(`dt`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.label}),(0,G.jsx)(`dd`,{className:`min-w-0 truncate text-body-small-default`,style:{color:`var(--content-secondary)`},children:e.href?(0,G.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 underline`,style:{color:`var(--primary-base, #60a5fa)`},children:[e.value,(0,G.jsx)(A,{className:`h-3 w-3`,"aria-hidden":!0})]}):e.value})]},e.label))})}function rt({plugin:e,drift:t,onInstall:n,onRemove:r,onUpgrade:i,isInstalling:o,isRemoving:s,isUpgrading:c,hasLocalEdits:l,enabled:u,onToggle:d,isToggling:f}){let[p,m]=(0,W.useState)(!1),[g,_]=(0,W.useState)(!1),v=e.installed??!1,y=e.artifact??null,b=t?.status===`update-available`,x=b?`Upgrade ${nt(t?.local?.commit??null)} → ${nt(t?.remote?.commit??null)}`:void 0;return(0,G.jsxs)(G.Fragment,{children:[v?(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 md:flex-nowrap md:shrink-0`,children:[u!==void 0&&d?(0,G.jsx)(be,{label:`Auto-include in chat`,checked:u,onChange:()=>d(),disabled:f}):null,y?(0,G.jsx)(a,{asChild:!0,leftIcon:(0,G.jsx)(ie,{"aria-hidden":!0}),children:(0,G.jsx)(`a`,{href:y.url,download:!0,children:y.label??`Download`})}):null,b?(0,G.jsx)(a,{type:`button`,onClick:()=>{if(l){_(!0);return}i()},disabled:c,title:x,leftIcon:c?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(O,{"aria-hidden":!0}),children:`Upgrade`}):null,(0,G.jsx)(a,{type:`button`,variant:`dangerOutline`,onClick:()=>m(!0),disabled:s,leftIcon:s?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(F,{"aria-hidden":!0}),children:`Remove`})]}):(0,G.jsx)(a,{type:`button`,onClick:n,disabled:o,leftIcon:o?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(h,{"aria-hidden":!0}),children:`Install`}),(0,G.jsx)(Se,{open:p,title:`Remove plugin`,message:Ge(e.name),confirmLabel:`Remove`,destructive:!0,onConfirm:()=>{m(!1),r()},onCancel:()=>m(!1)}),(0,G.jsx)(Se,{open:g,title:`Upgrade plugin`,message:Ke(e.name),confirmLabel:qe,destructive:!0,onConfirm:()=>{_(!1),i()},onCancel:()=>_(!1)})]})}function it(){return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function J(){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,G.jsx)(me,{className:`h-6 w-6`,"aria-hidden":!0}),(0,G.jsx)(`p`,{className:`text-body-medium-default`,children:`We couldn't load this plugin.`}),(0,G.jsx)(`p`,{className:`text-body-small-default`,children:`It may not exist, or your assistant may be on an older build.`})]})}function at({isInstallError:e,isRemoveError:t,isUpgradeError:n}){let r=e?Je:t?Ye:n?Xe:null;return r?(0,G.jsxs)(`div`,{className:`mb-3 flex items-center gap-2 rounded px-3 py-2 text-body-small-default`,style:{backgroundColor:`var(--surface-secondary)`,color:`var(--content-warning, var(--content-tertiary))`},role:`alert`,children:[(0,G.jsx)(me,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),r]}):null}function ot({external:e,className:t}){let n=e?{label:`External`,icon:j}:{label:`Local`,icon:ae};return(0,G.jsx)(L,{tone:`neutral`,leftIcon:(0,W.createElement)(n.icon),className:t,children:n.label})}function Y({onClick:e,isUpgrading:t=!1}={}){let n=(0,G.jsx)(L,{tone:`warning`,leftIcon:(0,W.createElement)(t?P:O,{className:t?`animate-spin`:void 0}),className:`shrink-0`,children:`Update available`});return e?(0,G.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e()},disabled:t,"aria-label":`Upgrade plugin`,className:`shrink-0 rounded-[6px] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:cursor-not-allowed`,children:n}):n}var st=300*1e3;function X({assistantId:e,name:t,enabled:n=!0}){return u({...ke({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t&&n,staleTime:st,retry:!1})}function ct(e){let t=e?.local?.localChanges;return!!t&&t?.clean===!1}function lt(e,t,n){let r=l(),i=n?.onRemoved,a=u({...Ne({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t}),o=X({assistantId:e,name:t,enabled:a.data?.installed??!1}).data,s=(0,W.useCallback)(()=>te(r,e,t),[e,t,r]),c=Oe({onSuccess:()=>{s(),z.success(`Installed ${t||`plugin`}`)}}),d=Me({onSuccess:()=>{s(),i?.()}}),f=je({onSuccess:e=>{s(),z.success(e.outcome===`already-up-to-date`?`${t||`Plugin`} is already up to date`:`Upgraded ${t||`plugin`} to ${nt(e.toCommit)}`)}});return{plugin:a.data??null,drift:o,isLoading:a.isLoading,isError:a.isError,install:()=>{c.mutate({path:{assistant_id:e},body:{name:t}})},remove:()=>{d.mutate({path:{assistant_id:e,name:t}})},upgrade:()=>{f.mutate({path:{assistant_id:e,name:t},body:{}})},isInstalling:c.isPending,isRemoving:d.isPending,isUpgrading:f.isPending,isInstallError:c.isError,isRemoveError:d.isError,isUpgradeError:f.isError,hasLocalEdits:ct(o)}}var ut=`0.10.5`;function dt(){return V(ut)}function Z(e,t,n,r){let i=dt(),{data:a}=u({queryKey:[`pluginIcon`,e,t,r],queryFn:async()=>{let{data:n,error:r}=await we({path:{assistant_id:e,name:t},parseAs:`blob`,throwOnError:!1});if(r||!(n instanceof Blob))throw Error(`Failed to load plugin icon`);return n},enabled:!!(i&&n&&r),staleTime:1/0,retry:!1}),[o,s]=(0,W.useState)(void 0);return(0,W.useEffect)(()=>{if(!a){s(void 0);return}let e=URL.createObjectURL(a);return s(e),()=>{URL.revokeObjectURL(e)}},[a]),o}function ft(e){let t=l(),n={queryKey:Pe({path:{assistant_id:e}})},r=(e,r)=>{t.setQueriesData(n,t=>t&&{...t,plugins:t.plugins.map(t=>t.name===e?{...t,enabled:r}:t)})},i=d({mutationFn:async({name:t,nextEnabled:n})=>{let r=await(n?Te({path:{assistant_id:e,name:t},throwOnError:!1}):B({path:{assistant_id:e,name:t},throwOnError:!1})),i=r.response?.status;if(r.response?.ok||i===409)return r;throw Error(`Plugin toggle failed (${i??`network error`})`)},onMutate:async({name:e,nextEnabled:i})=>{await t.cancelQueries(n),r(e,i)},onError:(e,{name:t,nextEnabled:n})=>{r(t,!n),z.error(Ze)},onSettled:(n,r,i)=>{te(t,e,i.name)}});return{toggle:(e,t)=>{i.mutate({name:e,nextEnabled:t})},togglingName:i.isPending?i.variables?.name??null:null}}function pt({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=lt(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=ft(e),C=Z(e,t,o?.hasIcon,o?.iconVersion);return(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col`,children:[(0,G.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,G.jsx)(a,{type:`button`,variant:`ghost`,iconOnly:(0,G.jsx)(g,{"aria-hidden":!0}),"aria-label":`Back to plugins`,onClick:n}),(0,G.jsx)(Q,{name:t,plugin:o,externalHint:r,iconSrc:C,drift:s,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t})]}),(v||y||b)&&(0,G.jsx)(at,{isInstallError:v,isRemoveError:y,isUpgradeError:b}),(0,G.jsx)(p.Root,{asChild:!0,children:(0,G.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:c?(0,G.jsx)(it,{}):l||!o?(0,G.jsx)(J,{}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(q,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,G.jsx)(Ce,{content:o.readme}):(0,G.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})]})}function Q({name:e,plugin:t,externalHint:n,iconSrc:r,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}){let h=t?.source?.kind===`github`,g=t?h:n,_=i?.status===`update-available`;return(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[g===void 0?(0,G.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,G.jsx)(K,{external:g,icon:t?.icon??void 0,iconSrc:r,size:`md`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,G.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t?.name??e}),t?.version?(0,G.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,t?(0,G.jsx)(ot,{external:h}):null,_?(0,G.jsx)(Y,{}):null]}),t?.description?(0,G.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}):null]})]}),t?(0,G.jsx)(rt,{plugin:t,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}):null]})}var mt=e(i(),1);function ht({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=lt(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=ft(e),[C,w]=(0,W.useState)(null);(0,W.useEffect)(()=>{w(document.getElementById(`viewport-overlays`))},[]);let T=o?.source?.kind===`github`,E=o?T:r,D=s?.status===`update-available`,O=o?.name??t,te=Z(e,t,o?.hasIcon,o?.iconVersion),k=(0,G.jsxs)(`div`,{className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(a,{variant:`ghost`,iconOnly:(0,G.jsx)(g,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to plugins`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:O}),(0,G.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0 touch-mobile:h-10 touch-mobile:w-10`})]}),(0,G.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[E===void 0?(0,G.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,G.jsx)(K,{external:E,icon:o?.icon??void 0,iconSrc:te,size:`md`}),(0,G.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:O})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[D?(0,G.jsx)(Y,{}):null,o?(0,G.jsx)(ot,{external:T}):null]})]}),o?.description?(0,G.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:o.description}):null]}),o?(0,G.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:(0,G.jsx)(rt,{plugin:o,drift:s,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x})}):null,(v||y||b)&&(0,G.jsx)(`div`,{className:`mt-3`,children:(0,G.jsx)(at,{isInstallError:v,isRemoveError:y,isUpgradeError:b})}),(0,G.jsx)(p.Root,{asChild:!0,noPadding:!0,children:(0,G.jsx)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:(0,G.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:c?(0,G.jsx)(it,{}):l||!o?(0,G.jsx)(J,{}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(q,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,G.jsx)(Ce,{content:o.readme}):(0,G.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})})]});return C?(0,mt.createPortal)(k,C):k}function gt({assistantId:e,item:t,drift:n,onSelect:r,onInstall:i,onRemove:o,onUpgrade:s,isInstalling:c=!1,isRemoving:l=!1,isUpgrading:u=!1}){let d=t.status===`available`,f=n?.status===`update-available`,m=t.enabled!==void 0,g=t.enabled===!1,_=Z(e,t.name,t.hasIcon,t.iconVersion);return(0,G.jsx)(p.Root,{asChild:!0,children:(0,G.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,G.jsx)(K,{size:`sm`,external:t.external,icon:t.icon,iconSrc:_,className:g?`opacity-50`:void 0}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:g?`var(--content-tertiary)`:`var(--content-emphasised)`},children:t.name}),t.version?(0,G.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,(0,G.jsx)(L,{tone:`neutral`,leftIcon:(0,G.jsx)(ue,{"aria-hidden":!0}),children:`Plugin`}),f?(0,G.jsx)(Y,{onClick:s,isUpgrading:u}):null]}),(0,G.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description??`No description provided.`}),t.issues&&t.issues.length>0?(0,G.jsxs)(`p`,{className:`mt-1 truncate text-body-small-default`,style:{color:`var(--content-warning, var(--content-tertiary))`},title:t.issues.join(`; `),children:[t.issues[0],t.issues.length>1?` (+${t.issues.length-1} more)`:``]}):null]}),d?c?(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),i?.()},disabled:!i,"aria-label":`Install plugin`,expandOnMobile:!1}):(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[m?(0,G.jsx)(L,{tone:t.enabled?`positive`:`neutral`,children:t.enabled?`Enabled`:`Disabled`}):null,(0,G.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:l?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(F,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),o?.()},disabled:l||u||!o,"aria-label":`Remove plugin`,expandOnMobile:!1})]})]})})}var _t={mail:se,calendar:w,"message-circle":ce,globe:j,zap:I,code:re,mic:le,"shopping-cart":D,palette:Ue,heart:M,settings:T,"link-2":oe};function vt(e){return _t[e]}function yt({selected:e,onSelect:t,counts:n,totalCount:r,showCounts:i,categories:a,ariaLabel:o=`Skill categories`}){let s=[...a].sort((e,t)=>e.label.localeCompare(t.label));return(0,G.jsxs)(`nav`,{className:`flex flex-col gap-1`,"aria-label":o,children:[(0,G.jsx)(bt,{icon:N,label:`All`,count:r,isActive:e===null,showCount:i,onClick:()=>t(null)}),s.map(r=>(0,G.jsx)(bt,{icon:vt(r.icon)??N,label:r.label,count:n[r.slug]??0,isActive:e===r.slug,showCount:i,onClick:()=>t(r.slug)},r.slug))]})}function bt({icon:e,label:t,count:n,isActive:r,showCount:i,onClick:o}){return(0,G.jsxs)(a,{variant:`ghost`,onClick:o,"aria-pressed":r,className:`h-auto justify-between gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left hover:bg-[var(--ghost-hover)]`,style:{backgroundColor:r?`var(--surface-active)`:void 0,color:r?`var(--content-default)`:`var(--content-secondary)`},children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2.5`,children:[(0,G.jsx)(e,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),(0,G.jsx)(`span`,{className:`text-body-medium-default`,children:t})]}),i&&(0,G.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:n})]})}function xt({skill:e,onSelect:t,onInstall:n,onRemove:r,isInstalling:i=!1,isRemoving:o=!1}){let s=x(e),c=Be(e);return(0,G.jsx)(p.Root,{asChild:!0,children:(0,G.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:t,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,G.jsx)(`div`,{className:`flex shrink-0 items-center justify-center text-[28px] leading-none`,children:(0,G.jsx)(b,{skill:e,className:`h-7 w-7`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:e.name}),(0,G.jsx)(_,{origin:e.origin})]}),(0,G.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.description})]}),s?i?(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),n?.()},disabled:!n,"aria-label":`Install skill`,expandOnMobile:!1}):(0,G.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:o?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(F,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),r?.()},disabled:!c||o||!r,"aria-label":c?`Remove skill`:`Bundled skill cannot be removed`,title:c?void 0:`Bundled skills cannot be removed`,expandOnMobile:!1})]})})}var St=[{value:`all`,label:`All`,icon:N},{value:`installed`,label:`Installed`,icon:k},{value:`available`,label:`Available`,icon:h}],Ct=[{value:`skills`,label:`Skills`,icon:I},{value:`plugins`,label:`Plugins`,icon:ue}],wt=[{value:`vellum`,label:`Vellum`,icon:S},{value:`clawhub`,label:`Clawhub`,icon:j},{value:`skillssh`,label:`skills.sh`,icon:pe},{value:`custom`,label:`Custom`,icon:he},{value:`assistant-memory`,label:`Assistant's Memory`,icon:C}];function Tt({search:e,onSearchChange:t,filter:n,onFilterChange:r,isSearching:i,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(ye,{type:`search`,value:e,onChange:e=>{t(e.target.value)},placeholder:`Search superpowers`,"aria-label":`Search superpowers`,leftIcon:(0,G.jsx)(de,{className:`h-4 w-4`,"aria-hidden":!0}),rightIcon:i?(0,G.jsx)(P,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):void 0,fullWidth:!0,wrapperClassName:`flex-1`}),(0,G.jsx)(Et,{filter:n,onFilterChange:r,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d})]})}function Et(e){let t=Re(),[n,r]=(0,W.useState)(!1),i=(0,G.jsx)(a,{type:`button`,variant:`outlined`,iconOnly:(0,G.jsx)(He,{"aria-hidden":!0}),"aria-label":`Filter superpowers`,"aria-haspopup":t?`dialog`:`listbox`,"aria-expanded":n,tintColor:`var(--primary-base)`});if(t)return(0,G.jsx)(Dt,{...e,open:n,onOpenChange:r,trigger:i});let o=t=>{e.onFilterChange(t),r(!1)};return(0,G.jsxs)(ve.Root,{open:n,onOpenChange:r,children:[(0,G.jsx)(ve.Trigger,{asChild:!0,children:i}),(0,G.jsx)(ve.Content,{align:`end`,sideOffset:4,className:`w-44 overflow-hidden p-0`,children:(0,G.jsxs)(`ul`,{role:`listbox`,children:[(0,G.jsx)(kt,{label:`Status`,options:St,selected:e.filter,onSelect:o}),e.pluginsSupported&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,G.jsx)(kt,{label:`Type`,options:Ct,selected:e.filter,onSelect:o})]}),(0,G.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,G.jsx)(kt,{label:`Source`,options:wt,selected:e.filter,onSelect:o})]})})]})}function Dt({filter:e,onFilterChange:t,categories:n,category:r,onCategoryChange:i,counts:o,totalCount:s,showCounts:c,pluginsSupported:l,open:u,onOpenChange:d,trigger:f}){let p=[...n].sort((e,t)=>e.label.localeCompare(t.label));return(0,G.jsxs)(R.Root,{open:u,onOpenChange:d,children:[(0,G.jsx)(R.Trigger,{asChild:!0,children:f}),(0,G.jsxs)(R.Content,{className:`max-h-[85dvh]`,"aria-describedby":void 0,children:[(0,G.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mb-3 h-1 w-9 shrink-0 rounded-full bg-[var(--border-element)]`}),(0,G.jsx)(R.Header,{children:(0,G.jsx)(R.Title,{children:`Filters`})}),(0,G.jsxs)(R.Body,{className:`flex flex-col gap-3 pt-2`,children:[(0,G.jsx)(Ot,{label:`Status`,children:St.map(n=>(0,G.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),l&&(0,G.jsx)(Ot,{label:`Type`,children:Ct.map(n=>(0,G.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,G.jsx)(Ot,{label:`Source`,children:wt.map(n=>(0,G.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,G.jsxs)(Ot,{label:`Categories`,children:[(0,G.jsx)($,{icon:N,label:`All`,active:r===null,badge:c?s:void 0,onSelect:()=>i(null)}),p.map(e=>(0,G.jsx)($,{icon:vt(e.icon)??N,label:e.label,active:r===e.slug,badge:c?o[e.slug]??0:void 0,onSelect:()=>i(e.slug)},e.slug))]})]}),(0,G.jsx)(R.Footer,{children:(0,G.jsx)(a,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>d(!1),children:`Done`})})]})]})}function Ot({label:e,children:t}){return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),t]})}function $({icon:e,label:t,active:n,badge:r,onSelect:i}){return(0,G.jsx)(xe,{icon:e,label:t,active:n,activeVariant:`branded`,badge:r,trailingAction:n&&r==null?(0,G.jsx)(E,{className:`h-4 w-4 text-[var(--primary-base)]`,"aria-hidden":!0}):void 0,onSelect:i})}function kt({label:e,options:t,selected:n,onSelect:r}){return(0,G.jsxs)(`li`,{children:[(0,G.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),(0,G.jsx)(`ul`,{children:t.map(e=>{let t=e.icon,i=n===e.value;return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(e.value),role:`option`,"aria-selected":i,className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:i?`var(--primary-base)`:`var(--content-default)`},children:[(0,G.jsx)(t,{className:`h-4 w-4`,"aria-hidden":!0}),(0,G.jsx)(`span`,{className:`flex-1`,children:e.label}),i&&(0,G.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0})]})},e.value)})})]})}var At=300*1e3,jt=[],Mt=[];async function Nt(e,t,n){let r=await Ee({path:{assistant_id:e},query:{q:void 0,category:t},signal:n,throwOnError:!1});if(r.response?.status===404)return{plugins:[]};if(!r.response?.ok)throw Error(`Failed to load plugins`);return r.data??{plugins:[]}}function Pt(e,t){let[n,r]=(0,W.useState)({assistantId:e,latched:!1}),i=n.assistantId===e?n.latched:!1;return n.assistantId!==e&&r({assistantId:e,latched:!1}),(0,W.useEffect)(()=>{t&&r(t=>t.assistantId===e&&t.latched?t:{assistantId:e,latched:!0})},[e,t]),i||t}function Ft(e,t=null,n=!0){let r=t??void 0,i=u({queryKey:Pe({path:{assistant_id:e},query:{q:void 0,category:r}}),queryFn:({signal:t})=>Nt(e,r,t),enabled:!!e&&n,staleTime:At}),a=u({..._e(e),enabled:!!e&&n&&t!==null}),o=u({...Ae({path:{assistant_id:e},query:{q:void 0}}),enabled:!!e&&n,staleTime:At}),s=(0,W.useMemo)(()=>{let e=t===null?i.data?.plugins:a.data?.plugins??i.data?.plugins;return new Set((e??jt).map(e=>e.name))},[t,a.data?.plugins,i.data?.plugins]),c=(0,W.useMemo)(()=>{let e=i.data?.plugins??jt,n=o.data?.matches??Mt;return et(Qe(e,(t===null?n:n.filter(e=>(e.category??`system`)===t)).filter(e=>!s.has(e.name))))},[i.data?.plugins,o.data?.matches,t,s]),d=t===null?i.data:a.data,f=Pt(e,d?.categoryCounts!==void 0),p=Pt(e,(d?.plugins??jt).some(e=>e.enabled!==void 0)),m=l(),h=(0,W.useRef)(null);return(0,W.useEffect)(()=>{if(h.current===e||!o.isSuccess)return;let t=d?.plugins;if(!t?.length)return;let n=new Map((o.data?.matches??Mt).map(e=>[e.name,e.category]));t.some(e=>{let t=n.get(e.name);return t!=null&&t!==`system`&&(e.category??`system`)===`system`})&&(h.current=e,m.invalidateQueries({queryKey:Pe({path:{assistant_id:e},query:{q:void 0}})}))},[e,o.isSuccess,o.data?.matches,d?.plugins,m]),{items:c,isLoading:i.isLoading,catalogLoading:o.isLoading,isError:i.isError,isFetching:i.isFetching||o.isFetching,catalogError:o.isError,categorySupported:f,pluginToggleSupported:p,installedCategoryCounts:d?.categoryCounts,installedPlugins:d?.plugins??jt,installedTotal:d?.totalCount,catalogMatches:o.data?.matches??Mt,unfilteredInstalledNames:s}}function It(e){return u({...Fe({path:{assistant_id:e}}),select:e=>e.categories,staleTime:300*1e3})}var Lt=new Set([`all`,`installed`,`available`,`skills`,`plugins`,`vellum`,`clawhub`,`skillssh`,`custom`,`assistant-memory`]);function Rt(e){let t=e.get(`filter`),n=e.get(`category`);return{q:e.get(`q`)??``,filter:Vt(t)?t:`all`,category:n||null}}function zt(e,t){let n=new URLSearchParams(e);return t.q!==void 0&&Bt(n,`q`,t.q.trim()||null),t.filter!==void 0&&Bt(n,`filter`,t.filter===`all`?null:t.filter),t.category!==void 0&&Bt(n,`category`,t.category),n}function Bt(e,t,n){n===null?e.delete(t):e.set(t,n)}function Vt(e){return e!==null&&Lt.has(e)}function Ht(e){switch(e){case`installed`:return{kind:`installed`};case`available`:return{kind:`available`};case`vellum`:case`clawhub`:case`skillssh`:case`custom`:case`assistant-memory`:return{origin:e};default:return{}}}function Ut(e){return e!==`plugins`}function Wt(e){return e===`all`||e===`installed`||e===`available`||e===`plugins`}function Gt(e){switch(e){case`installed`:return`installed`;case`available`:return`available`;default:return`all`}}function Kt(e,t){let[n,r]=(0,W.useState)(e);return(0,W.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>clearTimeout(n)},[e,t]),n}var qt=300,Jt=`vellum:superpowers:tipDismissed`;function Yt(e){return[...e].sort((e,t)=>e.installed===t.installed?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):e.installed?-1:1)}function Xt({assistantId:e}){let r=c(),i=o(),a=l(),d=Re(),f=Ie.use.version(),p=ze(),[m,h]=s(),{q:g,filter:_,category:y}=(0,W.useMemo)(()=>Rt(m),[m]),b=m.get(`plugin`),x=(0,W.useCallback)(e=>{h(t=>zt(t,e),{replace:!0})},[h]),S=m.get(`success`),C=(0,W.useRef)(!1);(0,W.useEffect)(()=>{S!==`true`||C.current||(C.current=!0,b&&z.success(`Installed ${b}`),h(e=>{let t=new URLSearchParams(e);return t.delete(`success`),t},{replace:!0}))},[S,b,h]);let[w,T]=(0,W.useState)(g),E=Kt(w.trim(),qt),D=(0,W.useRef)(g);(0,W.useEffect)(()=>{if(g!==D.current&&(D.current=g,g!==w.trim())){T(g);return}E!==g&&E===w.trim()&&(D.current=E,x({q:E}))},[E,g,w,x]);let O=(0,W.useCallback)(e=>x({filter:e}),[x]),k=(0,W.useCallback)(e=>x({category:e}),[x]),[ne,re]=(0,W.useState)(()=>n(Jt,!1)),ie=(0,W.useCallback)(()=>{re(!0),t(Jt,!0)},[]),A=!p&&_===`plugins`?`all`:_,j=Ut(A),ae=p&&Wt(A),M=Gt(A),{handleInstall:N,handleRemove:oe,isInstallingSkill:P,isRemovingSkill:se,skillPendingRemoval:ce,confirmRemove:le,cancelRemove:ue}=ee(e),{data:de=[]}=It(e),{origin:fe,kind:pe}=(0,W.useMemo)(()=>Ht(A),[A]),F=u({...De({path:{assistant_id:e},query:{include:`catalog`,origin:fe,kind:pe,q:E||void 0,category:y??void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j}),me=u({...De({path:{assistant_id:e},query:{include:`catalog`,origin:fe,kind:pe,q:E||void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j&&y!==null}),{items:he,isLoading:ge,catalogLoading:I,isError:_e,isFetching:L,catalogError:ve,categorySupported:ye,installedCategoryCounts:be,installedPlugins:R,installedTotal:xe,catalogMatches:Ce,unfilteredInstalledNames:we}=Ft(e,y,p),B=ae&&(y===null||ye),Te=(0,W.useCallback)(t=>te(a,e,t),[e,a]),[Ee,ke]=(0,W.useState)(null),[Ae,Ne]=(0,W.useState)(null),[Pe,Fe]=(0,W.useState)(null),[V,H]=(0,W.useState)(null),[U,Be]=(0,W.useState)(null),He=Oe({onMutate:e=>ke(e.body.name),onSuccess:(e,t)=>z.success(`Installed ${t.body.name}`),onError:()=>z.error(Je),onSettled:(e,t,n)=>{ke(null),Te(n.body.name)}}),Ue=Me({onMutate:e=>Ne(e.path.name),onSuccess:(e,t)=>z.success(`Removed ${t.path.name}`),onError:()=>z.error(Ye),onSettled:(e,t,n)=>{Ne(null),Te(n.path.name)}}),We=je({onMutate:e=>Fe(e.path.name),onSuccess:(e,t)=>z.success(e.outcome===`already-up-to-date`?`${t.path.name} is already up to date`:`Upgraded ${t.path.name} to ${nt(e.toCommit)}`),onError:()=>z.error(Xe),onSettled:(e,t,n)=>{Fe(null),Te(n.path.name)}}),K=(0,W.useCallback)(e=>h(t=>{let n=new URLSearchParams(t);return n.set(`plugin`,e.name),n}),[h]),Ze=(0,W.useCallback)(()=>h(e=>{let t=new URLSearchParams(e);return t.delete(`plugin`),t},{replace:!0}),[h]),Qe=(0,W.useCallback)(t=>{He.mutate({path:{assistant_id:e},body:{name:t.name}})},[e,He]),et=(0,W.useCallback)(()=>{V&&(Ue.mutate({path:{assistant_id:e,name:V.name}}),H(null))},[e,V,Ue]),q=(0,W.useCallback)(t=>{We.mutate({path:{assistant_id:e,name:t},body:{}})},[e,We]),rt=(0,W.useCallback)(()=>{U&&(q(U.name),Be(null))},[U,q]),it=(0,W.useCallback)((e,t)=>{if(ct(t)){Be(e);return}q(e.name)},[q]),J=(0,W.useMemo)(()=>j?F.data?.skills??[]:[],[j,F.data?.skills]),at=(0,W.useMemo)(()=>B?tt(he,M).filter(e=>$e(e,E)):[],[B,he,M,E]),ot=(0,W.useMemo)(()=>Yt([...J.map(e=>({type:`skill`,key:`skill:${e.id}`,name:e.name,installed:v(e),skill:e})),...at.map(e=>({type:`plugin`,key:`plugin:${e.name}`,name:e.name,installed:e.status===`installed`,item:e}))]),[J,at]),Y=y===null?F.data:me.data,st=Zt(j,Y?.skills??J,Y?.categoryCounts,Y?.totalCount),X=Qt(ae&&ye,be,R,xe,Ce,we,M),{counts:lt,totalCount:ut}=(0,W.useMemo)(()=>{let e={...st.counts};for(let[t,n]of Object.entries(X.counts))e[t]=(e[t]??0)+n;return{counts:e,totalCount:st.totalCount+X.totalCount}},[st,X]),dt=j&&F.isLoading,Z=j&&F.isError,ft=B&&ge,Q=B&&_e,mt=(Z||!j)&&(Q||!B)&&(Z||Q),_t=dt||ft,vt=!!E&&(j&&F.isFetching||B&&L&&!ge),bt=w.trim().length>0;if(b&&!p&&f===null)return null;if(b&&p){let t=he.find(e=>e.name===b),n={assistantId:e,name:b,externalHint:t?.external,enabled:t?.enabled,onBack:Ze};return d?(0,G.jsx)(ht,{...n}):(0,G.jsx)(pt,{...n})}let St=(0,G.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:_t?(0,G.jsx)(nn,{}):mt?(0,G.jsx)(rn,{}):ot.length===0?B&&I&&M!==`installed`?(0,G.jsx)(nn,{}):(0,G.jsx)(an,{filter:A,category:y}):(0,G.jsx)(`ul`,{className:`flex flex-col gap-2`,children:ot.map(t=>(0,G.jsx)(`li`,{children:t.type===`skill`?(0,G.jsx)(xt,{skill:t.skill,onSelect:()=>r(Le.skills.detail(t.skill.id),{state:{listSearch:i.search}}),onInstall:()=>N(t.skill),onRemove:()=>oe(t.skill),isInstalling:P(t.skill),isRemoving:se(t.skill)}):t.installed?(0,G.jsx)($t,{assistantId:e,item:t.item,onSelect:()=>K(t.item),onRemove:()=>H(t.item),onUpgrade:e=>it(t.item,e),isRemoving:Ae===t.item.name,isUpgrading:Pe===t.item.name}):(0,G.jsx)(gt,{assistantId:e,item:t.item,onSelect:()=>K(t.item),onInstall:()=>Qe(t.item),isInstalling:Ee===t.item.name})},t.key))})});return(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-4`,children:[!ne&&(0,G.jsx)(en,{onDismiss:ie}),(0,G.jsx)(Tt,{search:w,onSearchChange:T,filter:A,onFilterChange:O,isSearching:vt,categories:de,category:y,onCategoryChange:k,counts:lt,totalCount:ut,showCounts:!bt,pluginsSupported:p}),!_t&&!mt&&Z?(0,G.jsx)(tn,{text:`Skills are temporarily unavailable. Plugins are still listed below.`}):null,!_t&&!mt&&Q?(0,G.jsx)(tn,{text:`Plugins are temporarily unavailable. Skills are still listed below.`}):null,B&&ve&&!ft&&!Q?(0,G.jsx)(tn,{text:`Plugin catalog browsing is temporarily unavailable. Installed plugins are still listed below.`}):null,(0,G.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-6`,children:[(0,G.jsx)(`aside`,{className:`hidden w-56 shrink-0 overflow-y-auto sm:block`,children:(0,G.jsx)(yt,{ariaLabel:`Superpower categories`,selected:y,onSelect:k,counts:lt,totalCount:ut,showCounts:!bt,categories:de})}),St]}),(0,G.jsx)(Ve,{skillName:ce?.name??null,onConfirm:le,onCancel:ue}),(0,G.jsx)(Se,{open:V!==null,title:`Remove plugin`,message:V?Ge(V.name):``,confirmLabel:`Remove`,destructive:!0,onConfirm:et,onCancel:()=>H(null)}),(0,G.jsx)(Se,{open:U!==null,title:`Upgrade plugin`,message:U?Ke(U.name):``,confirmLabel:qe,destructive:!0,onConfirm:rt,onCancel:()=>Be(null)})]})}function Zt(e,t,n,r){return(0,W.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};if(n&&Object.keys(n).length>0)return{counts:n,totalCount:r??t.length};let i={};for(let e of t){let t=e.category??`system`;i[t]=(i[t]??0)+1}return{counts:i,totalCount:r??t.length}},[e,t,n,r])}function Qt(e,t,n,r,i,a,o){return(0,W.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};let s={},c=o!==`available`,l=o===`all`||o===`available`;if(c)if(t&&Object.keys(t).length>0)Object.assign(s,t);else for(let e of n){let t=e.category??`system`;s[t]=(s[t]??0)+1}let u=0;if(l)for(let e of i){if(a.has(e.name))continue;let t=e.category??`system`;s[t]=(s[t]??0)+1,u+=1}let d=r??n.length;return{counts:s,totalCount:(c?d:0)+u}},[e,t,n,r,i,a,o])}function $t({assistantId:e,item:t,onSelect:n,onRemove:r,onUpgrade:i,isRemoving:a,isUpgrading:o}){let s=X({assistantId:e,name:t.name}).data;return(0,G.jsx)(gt,{assistantId:e,item:t,drift:s,onSelect:n,onRemove:r,onUpgrade:()=>i(s),isRemoving:a,isUpgrading:o})}function en({onDismiss:e}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,G.jsx)(fe,{className:`h-4 w-4 shrink-0`,style:{color:`var(--primary-base)`}}),(0,G.jsx)(`p`,{className:`flex-1`,children:`Create a new custom skill by describing what you want in chat, or install plugins to extend your assistant.`}),(0,G.jsx)(a,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,G.jsx)(ge,{"aria-hidden":!0}),onClick:e,"aria-label":`Dismiss tip`,tintColor:`var(--content-tertiary)`,expandOnMobile:!1})]})}function tn({text:e}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,G.jsx)(ne,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0}),(0,G.jsx)(`p`,{className:`flex-1`,children:e})]})}function nn(){return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function rn(){return(0,G.jsx)(p.Root,{children:(0,G.jsxs)(p.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,G.jsx)(me,{className:`mb-3 h-8 w-8`,style:{color:`var(--system-danger)`},"aria-hidden":!0}),(0,G.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Failed to load superpowers`}),(0,G.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Something went wrong. Try refreshing the page.`})]})})}function an({filter:e,category:t}){let{title:n,subtitle:r,Icon:i}=on(e,t);return(0,G.jsx)(y,{icon:i,title:n,subtitle:r})}function on(e,t){if(t)return{title:`Nothing in this category`,subtitle:`Try selecting a different category or clearing the filter.`,Icon:N};switch(e){case`installed`:return{title:`No Superpowers Installed`,subtitle:`Ask your assistant in chat to search for and install new skills and plugins.`,Icon:I};case`available`:return{title:`Nothing Left to Install`,subtitle:`All available skills and plugins are installed.`,Icon:k};case`skills`:return{title:`No Skills Found`,subtitle:`Ask your assistant in chat to search for and install new skills.`,Icon:I};case`plugins`:return{title:`No Plugins Found`,subtitle:`Browse the catalog to install plugins that extend your assistant.`,Icon:ue};case`vellum`:return{title:`No Vellum Skills`,subtitle:`No bundled Vellum skills found.`,Icon:I};case`clawhub`:return{title:`No Clawhub Skills`,subtitle:`No Clawhub skills found. Try searching the catalog.`,Icon:I};case`skillssh`:return{title:`No skills.sh Skills`,subtitle:`No skills.sh skills found. Try searching the catalog.`,Icon:I};case`custom`:return{title:`No Custom Skills`,subtitle:`Create a custom skill by describing what you want in chat.`,Icon:I};case`assistant-memory`:return{title:`No Skills From Memory`,subtitle:`Skills your assistant authors from past conversations will appear here.`,Icon:I};default:return{title:`No Superpowers Available`,subtitle:`Check your connection to the Vellum catalog.`,Icon:ne}}}function sn(){return(0,G.jsx)(Xt,{assistantId:U()})}export{sn as SuperpowersPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./local-settings-C-dW2vkq.js";import{t as r}from"./react-BFJW0bSv.js";import{F as i,t as a}from"./button-Dy5001j6.js";import{l as o,m as s,u as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./useMutation-CXGTrp4W.js";import{t as f}from"./jsx-runtime-D3ZM-ToX.js";import{t as p}from"./card-DRIctGVs.js";import{t as m}from"./createLucideIcon-CAM1RhH8.js";import{t as h}from"./arrow-down-to-line-Bh_5sIPp.js";import{t as g}from"./arrow-left-C2ylPLHq.js";import{a as _,i as v,n as y,o as b,r as x,s as S,t as ee}from"./use-skill-actions-BAAx1Eia.js";import{t as C}from"./brain-BIzJCPA6.js";import{n as w,t as T}from"./settings-CfuLzwIw.js";import{t as E}from"./check-sC49_hjU.js";import{n as D,r as O,t as te}from"./invalidate-plugin-queries-C3NTXkCX.js";import{t as k}from"./circle-check-big-DSsDH5_6.js";import{t as ne}from"./cloud-off-BCBGTmt0.js";import{t as re}from"./code-qafFA0_-.js";import{t as ie}from"./download-CywcQLB2.js";import{t as A}from"./external-link-CS0aVYGt.js";import{t as j}from"./globe-CMtjL_s_.js";import{t as ae}from"./hard-drive-DWFPKcXI.js";import{t as M}from"./heart-789ajxtB.js";import{t as N}from"./layout-grid-DA_CfD6d.js";import{t as oe}from"./link-2-BKL8QWRX.js";import{t as P}from"./loader-circle-XREx3i4W.js";import{t as se}from"./mail-CMdPNysl.js";import{t as ce}from"./message-circle-BsH7vHtN.js";import{t as le}from"./mic-xmDFUbCL.js";import{t as ue}from"./puzzle-BVC3TGko.js";import{t as de}from"./search-BVW-n8to.js";import{t as fe}from"./sparkles-Ccrj7hxd.js";import{t as pe}from"./terminal-CdCI6wMV.js";import{t as F}from"./trash-2-L5LNgw9o.js";import{t as me}from"./triangle-alert-CQfiAg_t.js";import{t as he}from"./user-_zNqL48O.js";import{t as ge}from"./x-JBAsSOmg.js";import{n as I,t as _e}from"./installed-plugins-query-Cgek0q7G.js";import"./src-te3YTBG-.js";import{t as L}from"./tag-NXcyiTkK.js";import{t as ve}from"./popover-BRpYVASI.js";import{t as ye}from"./input-hw3el2GJ.js";import{t as be}from"./toggle-lfnhEAcN.js";import{n as R,t as xe}from"./panel-item-CrtoJCrd.js";import{n as z}from"./toast-LgLp4obE.js";import{t as Se}from"./confirm-dialog-UYFm4osC.js";import{t as Ce}from"./file-markdown-DaflJFk7.js";import{Bn as we,Ln as B,Rn as Te,Un as Ee}from"./sdk.gen-BHZ0fJla.js";import{St as De,an as Oe,at as ke,ct as Ae,in as je,rn as Me,rt as Ne,st as Pe,xt as Fe}from"./react-query.gen-C5c1Acuq.js";import{t as Ie}from"./assistant-identity-store-DIyVo8LV.js";import{r as V}from"./utils-CnB60ZJN.js";import{u as Le}from"./routes-D9sNqB_o.js";import{n as Re}from"./use-is-mobile-BlQuzI5Z.js";import{t as H}from"./misc-CuYswARt.js";import{t as ze}from"./plugins-surface-B43Op43l.js";import{t as U}from"./use-active-assistant-id-CldxA_-M.js";import{n as Be,r as Ve}from"./skills-Cum1XWT2.js";var He=m(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),Ue=m(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),W=e(r(),1),G=f(),We={sm:`h-7 w-7`,md:`h-8 w-8 text-3xl`};function K({external:e=!1,icon:t,iconSrc:n,size:r=`sm`,className:i}){let[a,o]=(0,W.useState)(!1);(0,W.useEffect)(()=>{o(!1)},[n]);let s=t||(e?`📦`:`🧩`),c=!!n&&!a;return(0,G.jsx)(`span`,{className:H(`flex shrink-0 items-center justify-center`,We[r],i),children:c?(0,G.jsx)(`img`,{src:n,alt:``,"aria-hidden":!0,loading:`lazy`,className:`h-full w-full object-contain`,onError:()=>o(!0)}):s})}var Ge=e=>`Remove "${e}" from this assistant?`,Ke=e=>`"${e}" has local edits that will be overwritten by the upgrade. Continue?`,qe=`Upgrade anyway`,Je=`Failed to install plugin. Please try again.`,Ye=`Failed to remove plugin. Please try again.`,Xe=`Failed to upgrade plugin. Please try again.`,Ze=`Failed to update plugin. Please try again.`;function Qe(e,t){let n=e.map(e=>({name:e.name,description:e.description??void 0,status:`installed`,external:void 0,version:e.version??void 0,path:e.path,issues:e.issues,enabled:e.enabled,icon:e.icon,hasIcon:e.hasIcon,iconVersion:e.iconVersion})),r=new Set(n.map(e=>e.name)),i=t.filter(e=>!r.has(e.name)).map(e=>({name:e.name,description:e.description,status:`available`,external:!0,path:e.path}));return[...n,...i]}function $e(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description].some(e=>e?.toLowerCase().includes(n)):!0}function et(e){return[...e].sort((e,t)=>{let n=e.status===`installed`;return n===(t.status===`installed`)?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):n?-1:1})}function tt(e,t){switch(t){case`all`:return e;case`available`:return e.filter(e=>e.status===`available`);case`installed`:return e.filter(e=>e.status===`installed`);case`active`:return e.filter(e=>e.status===`installed`&&e.enabled!==!1);case`off`:return e.filter(e=>e.status===`installed`&&e.enabled===!1)}}function nt(e){return e?e.slice(0,7):`unknown`}function q({plugin:e,surfaces:t=null,className:n}){let r=[{label:`Source`,value:e.source?.kind===`github`?e.source.repo:`Local`,href:(e.source?.kind===`github`?`https://github.com/${e.source.repo}`:null)??void 0}];return e.homepage&&r.push({label:`Homepage`,value:e.homepage,href:e.homepage}),e.license&&r.push({label:`License`,value:e.license}),t&&(t.skills.length>0&&r.push({label:`Skills`,value:String(t.skills.length)}),t.hooks.length>0&&r.push({label:`Hooks`,value:String(t.hooks.length)}),t.tools.length>0&&r.push({label:`Tools`,value:String(t.tools.length)})),(0,G.jsx)(`dl`,{className:H(`mb-5 grid gap-x-6 gap-y-2 border-b pb-5 sm:grid-cols-[max-content_1fr]`,n),style:{borderColor:`var(--border-base)`},children:r.map(e=>(0,G.jsxs)(`div`,{className:`contents`,children:[(0,G.jsx)(`dt`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.label}),(0,G.jsx)(`dd`,{className:`min-w-0 truncate text-body-small-default`,style:{color:`var(--content-secondary)`},children:e.href?(0,G.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 underline`,style:{color:`var(--primary-base, #60a5fa)`},children:[e.value,(0,G.jsx)(A,{className:`h-3 w-3`,"aria-hidden":!0})]}):e.value})]},e.label))})}function rt({plugin:e,drift:t,onInstall:n,onRemove:r,onUpgrade:i,isInstalling:o,isRemoving:s,isUpgrading:c,hasLocalEdits:l,enabled:u,onToggle:d,isToggling:f}){let[p,m]=(0,W.useState)(!1),[g,_]=(0,W.useState)(!1),v=e.installed??!1,y=e.artifact??null,b=t?.status===`update-available`,x=b?`Upgrade ${nt(t?.local?.commit??null)} → ${nt(t?.remote?.commit??null)}`:void 0;return(0,G.jsxs)(G.Fragment,{children:[v?(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 md:flex-nowrap md:shrink-0`,children:[u!==void 0&&d?(0,G.jsx)(be,{label:`Auto-include in chat`,checked:u,onChange:()=>d(),disabled:f}):null,y?(0,G.jsx)(a,{asChild:!0,leftIcon:(0,G.jsx)(ie,{"aria-hidden":!0}),children:(0,G.jsx)(`a`,{href:y.url,download:!0,children:y.label??`Download`})}):null,b?(0,G.jsx)(a,{type:`button`,onClick:()=>{if(l){_(!0);return}i()},disabled:c,title:x,leftIcon:c?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(O,{"aria-hidden":!0}),children:`Upgrade`}):null,(0,G.jsx)(a,{type:`button`,variant:`dangerOutline`,onClick:()=>m(!0),disabled:s,leftIcon:s?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(F,{"aria-hidden":!0}),children:`Remove`})]}):(0,G.jsx)(a,{type:`button`,onClick:n,disabled:o,leftIcon:o?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(h,{"aria-hidden":!0}),children:`Install`}),(0,G.jsx)(Se,{open:p,title:`Remove plugin`,message:Ge(e.name),confirmLabel:`Remove`,destructive:!0,onConfirm:()=>{m(!1),r()},onCancel:()=>m(!1)}),(0,G.jsx)(Se,{open:g,title:`Upgrade plugin`,message:Ke(e.name),confirmLabel:qe,destructive:!0,onConfirm:()=>{_(!1),i()},onCancel:()=>_(!1)})]})}function it(){return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function J(){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,G.jsx)(me,{className:`h-6 w-6`,"aria-hidden":!0}),(0,G.jsx)(`p`,{className:`text-body-medium-default`,children:`We couldn't load this plugin.`}),(0,G.jsx)(`p`,{className:`text-body-small-default`,children:`It may not exist, or your assistant may be on an older build.`})]})}function at({isInstallError:e,isRemoveError:t,isUpgradeError:n}){let r=e?Je:t?Ye:n?Xe:null;return r?(0,G.jsxs)(`div`,{className:`mb-3 flex items-center gap-2 rounded px-3 py-2 text-body-small-default`,style:{backgroundColor:`var(--surface-secondary)`,color:`var(--content-warning, var(--content-tertiary))`},role:`alert`,children:[(0,G.jsx)(me,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),r]}):null}function ot({external:e,className:t}){let n=e?{label:`External`,icon:j}:{label:`Local`,icon:ae};return(0,G.jsx)(L,{tone:`neutral`,leftIcon:(0,W.createElement)(n.icon),className:t,children:n.label})}function Y({onClick:e,isUpgrading:t=!1}={}){let n=(0,G.jsx)(L,{tone:`warning`,leftIcon:(0,W.createElement)(t?P:O,{className:t?`animate-spin`:void 0}),className:`shrink-0`,children:`Update available`});return e?(0,G.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e()},disabled:t,"aria-label":`Upgrade plugin`,className:`shrink-0 rounded-[6px] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:cursor-not-allowed`,children:n}):n}var st=300*1e3;function X({assistantId:e,name:t,enabled:n=!0}){return u({...ke({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t&&n,staleTime:st,retry:!1})}function ct(e){let t=e?.local?.localChanges;return!!t&&t?.clean===!1}function lt(e,t,n){let r=l(),i=n?.onRemoved,a=u({...Ne({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t}),o=X({assistantId:e,name:t,enabled:a.data?.installed??!1}).data,s=(0,W.useCallback)(()=>te(r,e,t),[e,t,r]),c=Oe({onSuccess:()=>{s(),z.success(`Installed ${t||`plugin`}`)}}),d=Me({onSuccess:()=>{s(),i?.()}}),f=je({onSuccess:e=>{s(),z.success(e.outcome===`already-up-to-date`?`${t||`Plugin`} is already up to date`:`Upgraded ${t||`plugin`} to ${nt(e.toCommit)}`)}});return{plugin:a.data??null,drift:o,isLoading:a.isLoading,isError:a.isError,install:()=>{c.mutate({path:{assistant_id:e},body:{name:t}})},remove:()=>{d.mutate({path:{assistant_id:e,name:t}})},upgrade:()=>{f.mutate({path:{assistant_id:e,name:t},body:{}})},isInstalling:c.isPending,isRemoving:d.isPending,isUpgrading:f.isPending,isInstallError:c.isError,isRemoveError:d.isError,isUpgradeError:f.isError,hasLocalEdits:ct(o)}}var ut=`0.10.5`;function dt(){return V(ut)}function Z(e,t,n,r){let i=dt(),{data:a}=u({queryKey:[`pluginIcon`,e,t,r],queryFn:async()=>{let{data:n,error:r}=await we({path:{assistant_id:e,name:t},parseAs:`blob`,throwOnError:!1});if(r||!(n instanceof Blob))throw Error(`Failed to load plugin icon`);return n},enabled:!!(i&&n&&r),staleTime:1/0,retry:!1}),[o,s]=(0,W.useState)(void 0);return(0,W.useEffect)(()=>{if(!a){s(void 0);return}let e=URL.createObjectURL(a);return s(e),()=>{URL.revokeObjectURL(e)}},[a]),o}function ft(e){let t=l(),n={queryKey:Pe({path:{assistant_id:e}})},r=(e,r)=>{t.setQueriesData(n,t=>t&&{...t,plugins:t.plugins.map(t=>t.name===e?{...t,enabled:r}:t)})},i=d({mutationFn:async({name:t,nextEnabled:n})=>{let r=await(n?Te({path:{assistant_id:e,name:t},throwOnError:!1}):B({path:{assistant_id:e,name:t},throwOnError:!1})),i=r.response?.status;if(r.response?.ok||i===409)return r;throw Error(`Plugin toggle failed (${i??`network error`})`)},onMutate:async({name:e,nextEnabled:i})=>{await t.cancelQueries(n),r(e,i)},onError:(e,{name:t,nextEnabled:n})=>{r(t,!n),z.error(Ze)},onSettled:(n,r,i)=>{te(t,e,i.name)}});return{toggle:(e,t)=>{i.mutate({name:e,nextEnabled:t})},togglingName:i.isPending?i.variables?.name??null:null}}function pt({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=lt(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=ft(e),C=Z(e,t,o?.hasIcon,o?.iconVersion);return(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col`,children:[(0,G.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,G.jsx)(a,{type:`button`,variant:`ghost`,iconOnly:(0,G.jsx)(g,{"aria-hidden":!0}),"aria-label":`Back to plugins`,onClick:n}),(0,G.jsx)(Q,{name:t,plugin:o,externalHint:r,iconSrc:C,drift:s,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t})]}),(v||y||b)&&(0,G.jsx)(at,{isInstallError:v,isRemoveError:y,isUpgradeError:b}),(0,G.jsx)(p.Root,{asChild:!0,children:(0,G.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:c?(0,G.jsx)(it,{}):l||!o?(0,G.jsx)(J,{}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(q,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,G.jsx)(Ce,{content:o.readme}):(0,G.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})]})}function Q({name:e,plugin:t,externalHint:n,iconSrc:r,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}){let h=t?.source?.kind===`github`,g=t?h:n,_=i?.status===`update-available`;return(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[g===void 0?(0,G.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,G.jsx)(K,{external:g,icon:t?.icon??void 0,iconSrc:r,size:`md`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,G.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t?.name??e}),t?.version?(0,G.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,t?(0,G.jsx)(ot,{external:h}):null,_?(0,G.jsx)(Y,{}):null]}),t?.description?(0,G.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}):null]})]}),t?(0,G.jsx)(rt,{plugin:t,drift:i,onInstall:a,onRemove:o,onUpgrade:s,isInstalling:c,isRemoving:l,isUpgrading:u,hasLocalEdits:d,enabled:f,onToggle:p,isToggling:m}):null]})}var mt=e(i(),1);function ht({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=lt(e,t,{onRemoved:n}),{toggle:S,togglingName:ee}=ft(e),[C,w]=(0,W.useState)(null);(0,W.useEffect)(()=>{w(document.getElementById(`viewport-overlays`))},[]);let T=o?.source?.kind===`github`,E=o?T:r,D=s?.status===`update-available`,O=o?.name??t,te=Z(e,t,o?.hasIcon,o?.iconVersion),k=(0,G.jsxs)(`div`,{className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(a,{variant:`ghost`,iconOnly:(0,G.jsx)(g,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to plugins`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:O}),(0,G.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0 touch-mobile:h-10 touch-mobile:w-10`})]}),(0,G.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[E===void 0?(0,G.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,G.jsx)(K,{external:E,icon:o?.icon??void 0,iconSrc:te,size:`md`}),(0,G.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:O})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[D?(0,G.jsx)(Y,{}):null,o?(0,G.jsx)(ot,{external:T}):null]})]}),o?.description?(0,G.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:o.description}):null]}),o?(0,G.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:(0,G.jsx)(rt,{plugin:o,drift:s,enabled:i,onToggle:()=>S(t,!i),isToggling:ee===t,onInstall:u,onRemove:d,onUpgrade:f,isInstalling:m,isRemoving:h,isUpgrading:_,hasLocalEdits:x})}):null,(v||y||b)&&(0,G.jsx)(`div`,{className:`mt-3`,children:(0,G.jsx)(at,{isInstallError:v,isRemoveError:y,isUpgradeError:b})}),(0,G.jsx)(p.Root,{asChild:!0,noPadding:!0,children:(0,G.jsx)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:(0,G.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:c?(0,G.jsx)(it,{}):l||!o?(0,G.jsx)(J,{}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(q,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,G.jsx)(Ce,{content:o.readme}):(0,G.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})})]});return C?(0,mt.createPortal)(k,C):k}function gt({assistantId:e,item:t,drift:n,onSelect:r,onInstall:i,onRemove:o,onUpgrade:s,isInstalling:c=!1,isRemoving:l=!1,isUpgrading:u=!1}){let d=t.status===`available`,f=n?.status===`update-available`,m=t.enabled!==void 0,g=t.enabled===!1,_=Z(e,t.name,t.hasIcon,t.iconVersion);return(0,G.jsx)(p.Root,{asChild:!0,children:(0,G.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,G.jsx)(K,{size:`sm`,external:t.external,icon:t.icon,iconSrc:_,className:g?`opacity-50`:void 0}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:g?`var(--content-tertiary)`:`var(--content-emphasised)`},children:t.name}),t.version?(0,G.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,(0,G.jsx)(L,{tone:`neutral`,leftIcon:(0,G.jsx)(ue,{"aria-hidden":!0}),children:`Plugin`}),f?(0,G.jsx)(Y,{onClick:s,isUpgrading:u}):null]}),(0,G.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description??`No description provided.`}),t.issues&&t.issues.length>0?(0,G.jsxs)(`p`,{className:`mt-1 truncate text-body-small-default`,style:{color:`var(--content-warning, var(--content-tertiary))`},title:t.issues.join(`; `),children:[t.issues[0],t.issues.length>1?` (+${t.issues.length-1} more)`:``]}):null]}),d?c?(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),i?.()},disabled:!i,"aria-label":`Install plugin`,expandOnMobile:!1}):(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[m?(0,G.jsx)(L,{tone:t.enabled?`positive`:`neutral`,children:t.enabled?`Enabled`:`Disabled`}):null,(0,G.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:l?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(F,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),o?.()},disabled:l||u||!o,"aria-label":`Remove plugin`,expandOnMobile:!1})]})]})})}var _t={mail:se,calendar:w,"message-circle":ce,globe:j,zap:I,code:re,mic:le,"shopping-cart":D,palette:Ue,heart:M,settings:T,"link-2":oe};function vt(e){return _t[e]}function yt({selected:e,onSelect:t,counts:n,totalCount:r,showCounts:i,categories:a,ariaLabel:o=`Skill categories`}){let s=[...a].sort((e,t)=>e.label.localeCompare(t.label));return(0,G.jsxs)(`nav`,{className:`flex flex-col gap-1`,"aria-label":o,children:[(0,G.jsx)(bt,{icon:N,label:`All`,count:r,isActive:e===null,showCount:i,onClick:()=>t(null)}),s.map(r=>(0,G.jsx)(bt,{icon:vt(r.icon)??N,label:r.label,count:n[r.slug]??0,isActive:e===r.slug,showCount:i,onClick:()=>t(r.slug)},r.slug))]})}function bt({icon:e,label:t,count:n,isActive:r,showCount:i,onClick:o}){return(0,G.jsxs)(a,{variant:`ghost`,onClick:o,"aria-pressed":r,className:`h-auto justify-between gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left hover:bg-[var(--ghost-hover)]`,style:{backgroundColor:r?`var(--surface-active)`:void 0,color:r?`var(--content-default)`:`var(--content-secondary)`},children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2.5`,children:[(0,G.jsx)(e,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),(0,G.jsx)(`span`,{className:`text-body-medium-default`,children:t})]}),i&&(0,G.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:n})]})}function xt({skill:e,onSelect:t,onInstall:n,onRemove:r,isInstalling:i=!1,isRemoving:o=!1}){let s=x(e),c=Be(e);return(0,G.jsx)(p.Root,{asChild:!0,children:(0,G.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:t,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,G.jsx)(`div`,{className:`flex shrink-0 items-center justify-center text-[28px] leading-none`,children:(0,G.jsx)(b,{skill:e,className:`h-7 w-7`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:e.name}),(0,G.jsx)(_,{origin:e.origin})]}),(0,G.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.description})]}),s?i?(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,G.jsx)(a,{type:`button`,iconOnly:(0,G.jsx)(h,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),n?.()},disabled:!n,"aria-label":`Install skill`,expandOnMobile:!1}):(0,G.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:o?(0,G.jsx)(P,{className:`animate-spin`,"aria-hidden":!0}):(0,G.jsx)(F,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),r?.()},disabled:!c||o||!r,"aria-label":c?`Remove skill`:`Bundled skill cannot be removed`,title:c?void 0:`Bundled skills cannot be removed`,expandOnMobile:!1})]})})}var St=[{value:`all`,label:`All`,icon:N},{value:`installed`,label:`Installed`,icon:k},{value:`available`,label:`Available`,icon:h}],Ct=[{value:`skills`,label:`Skills`,icon:I},{value:`plugins`,label:`Plugins`,icon:ue}],wt=[{value:`vellum`,label:`Vellum`,icon:S},{value:`clawhub`,label:`Clawhub`,icon:j},{value:`skillssh`,label:`skills.sh`,icon:pe},{value:`custom`,label:`Custom`,icon:he},{value:`assistant-memory`,label:`Assistant's Memory`,icon:C}];function Tt({search:e,onSearchChange:t,filter:n,onFilterChange:r,isSearching:i,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(ye,{type:`search`,value:e,onChange:e=>{t(e.target.value)},placeholder:`Search superpowers`,"aria-label":`Search superpowers`,leftIcon:(0,G.jsx)(de,{className:`h-4 w-4`,"aria-hidden":!0}),rightIcon:i?(0,G.jsx)(P,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):void 0,fullWidth:!0,wrapperClassName:`flex-1`}),(0,G.jsx)(Et,{filter:n,onFilterChange:r,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginsSupported:d})]})}function Et(e){let t=Re(),[n,r]=(0,W.useState)(!1),i=(0,G.jsx)(a,{type:`button`,variant:`outlined`,iconOnly:(0,G.jsx)(He,{"aria-hidden":!0}),"aria-label":`Filter superpowers`,"aria-haspopup":t?`dialog`:`listbox`,"aria-expanded":n,tintColor:`var(--primary-base)`});if(t)return(0,G.jsx)(Dt,{...e,open:n,onOpenChange:r,trigger:i});let o=t=>{e.onFilterChange(t),r(!1)};return(0,G.jsxs)(ve.Root,{open:n,onOpenChange:r,children:[(0,G.jsx)(ve.Trigger,{asChild:!0,children:i}),(0,G.jsx)(ve.Content,{align:`end`,sideOffset:4,className:`w-44 overflow-hidden p-0`,children:(0,G.jsxs)(`ul`,{role:`listbox`,children:[(0,G.jsx)(kt,{label:`Status`,options:St,selected:e.filter,onSelect:o}),e.pluginsSupported&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,G.jsx)(kt,{label:`Type`,options:Ct,selected:e.filter,onSelect:o})]}),(0,G.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,G.jsx)(kt,{label:`Source`,options:wt,selected:e.filter,onSelect:o})]})})]})}function Dt({filter:e,onFilterChange:t,categories:n,category:r,onCategoryChange:i,counts:o,totalCount:s,showCounts:c,pluginsSupported:l,open:u,onOpenChange:d,trigger:f}){let p=[...n].sort((e,t)=>e.label.localeCompare(t.label));return(0,G.jsxs)(R.Root,{open:u,onOpenChange:d,children:[(0,G.jsx)(R.Trigger,{asChild:!0,children:f}),(0,G.jsxs)(R.Content,{className:`max-h-[85dvh]`,"aria-describedby":void 0,children:[(0,G.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mb-3 h-1 w-9 shrink-0 rounded-full bg-[var(--border-element)]`}),(0,G.jsx)(R.Header,{children:(0,G.jsx)(R.Title,{children:`Filters`})}),(0,G.jsxs)(R.Body,{className:`flex flex-col gap-3 pt-2`,children:[(0,G.jsx)(Ot,{label:`Status`,children:St.map(n=>(0,G.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),l&&(0,G.jsx)(Ot,{label:`Type`,children:Ct.map(n=>(0,G.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,G.jsx)(Ot,{label:`Source`,children:wt.map(n=>(0,G.jsx)($,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),(0,G.jsxs)(Ot,{label:`Categories`,children:[(0,G.jsx)($,{icon:N,label:`All`,active:r===null,badge:c?s:void 0,onSelect:()=>i(null)}),p.map(e=>(0,G.jsx)($,{icon:vt(e.icon)??N,label:e.label,active:r===e.slug,badge:c?o[e.slug]??0:void 0,onSelect:()=>i(e.slug)},e.slug))]})]}),(0,G.jsx)(R.Footer,{children:(0,G.jsx)(a,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>d(!1),children:`Done`})})]})]})}function Ot({label:e,children:t}){return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),t]})}function $({icon:e,label:t,active:n,badge:r,onSelect:i}){return(0,G.jsx)(xe,{icon:e,label:t,active:n,activeVariant:`branded`,badge:r,trailingAction:n&&r==null?(0,G.jsx)(E,{className:`h-4 w-4 text-[var(--primary-base)]`,"aria-hidden":!0}):void 0,onSelect:i})}function kt({label:e,options:t,selected:n,onSelect:r}){return(0,G.jsxs)(`li`,{children:[(0,G.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),(0,G.jsx)(`ul`,{children:t.map(e=>{let t=e.icon,i=n===e.value;return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(e.value),role:`option`,"aria-selected":i,className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:i?`var(--primary-base)`:`var(--content-default)`},children:[(0,G.jsx)(t,{className:`h-4 w-4`,"aria-hidden":!0}),(0,G.jsx)(`span`,{className:`flex-1`,children:e.label}),i&&(0,G.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0})]})},e.value)})})]})}var At=300*1e3,jt=[],Mt=[];async function Nt(e,t,n){let r=await Ee({path:{assistant_id:e},query:{q:void 0,category:t},signal:n,throwOnError:!1});if(r.response?.status===404)return{plugins:[]};if(!r.response?.ok)throw Error(`Failed to load plugins`);return r.data??{plugins:[]}}function Pt(e,t){let[n,r]=(0,W.useState)({assistantId:e,latched:!1}),i=n.assistantId===e?n.latched:!1;return n.assistantId!==e&&r({assistantId:e,latched:!1}),(0,W.useEffect)(()=>{t&&r(t=>t.assistantId===e&&t.latched?t:{assistantId:e,latched:!0})},[e,t]),i||t}function Ft(e,t=null,n=!0){let r=t??void 0,i=u({queryKey:Pe({path:{assistant_id:e},query:{q:void 0,category:r}}),queryFn:({signal:t})=>Nt(e,r,t),enabled:!!e&&n,staleTime:At}),a=u({..._e(e),enabled:!!e&&n&&t!==null}),o=u({...Ae({path:{assistant_id:e},query:{q:void 0}}),enabled:!!e&&n,staleTime:At}),s=(0,W.useMemo)(()=>{let e=t===null?i.data?.plugins:a.data?.plugins??i.data?.plugins;return new Set((e??jt).map(e=>e.name))},[t,a.data?.plugins,i.data?.plugins]),c=(0,W.useMemo)(()=>{let e=i.data?.plugins??jt,n=o.data?.matches??Mt;return et(Qe(e,(t===null?n:n.filter(e=>(e.category??`system`)===t)).filter(e=>!s.has(e.name))))},[i.data?.plugins,o.data?.matches,t,s]),d=t===null?i.data:a.data,f=Pt(e,d?.categoryCounts!==void 0),p=Pt(e,(d?.plugins??jt).some(e=>e.enabled!==void 0)),m=l(),h=(0,W.useRef)(null);return(0,W.useEffect)(()=>{if(h.current===e||!o.isSuccess)return;let t=d?.plugins;if(!t?.length)return;let n=new Map((o.data?.matches??Mt).map(e=>[e.name,e.category]));t.some(e=>{let t=n.get(e.name);return t!=null&&t!==`system`&&(e.category??`system`)===`system`})&&(h.current=e,m.invalidateQueries({queryKey:Pe({path:{assistant_id:e},query:{q:void 0}})}))},[e,o.isSuccess,o.data?.matches,d?.plugins,m]),{items:c,isLoading:i.isLoading,catalogLoading:o.isLoading,isError:i.isError,isFetching:i.isFetching||o.isFetching,catalogError:o.isError,categorySupported:f,pluginToggleSupported:p,installedCategoryCounts:d?.categoryCounts,installedPlugins:d?.plugins??jt,installedTotal:d?.totalCount,catalogMatches:o.data?.matches??Mt,unfilteredInstalledNames:s}}function It(e){return u({...Fe({path:{assistant_id:e}}),select:e=>e.categories,staleTime:300*1e3})}var Lt=new Set([`all`,`installed`,`available`,`skills`,`plugins`,`vellum`,`clawhub`,`skillssh`,`custom`,`assistant-memory`]);function Rt(e){let t=e.get(`filter`),n=e.get(`category`);return{q:e.get(`q`)??``,filter:Vt(t)?t:`all`,category:n||null}}function zt(e,t){let n=new URLSearchParams(e);return t.q!==void 0&&Bt(n,`q`,t.q.trim()||null),t.filter!==void 0&&Bt(n,`filter`,t.filter===`all`?null:t.filter),t.category!==void 0&&Bt(n,`category`,t.category),n}function Bt(e,t,n){n===null?e.delete(t):e.set(t,n)}function Vt(e){return e!==null&&Lt.has(e)}function Ht(e){switch(e){case`installed`:return{kind:`installed`};case`available`:return{kind:`available`};case`vellum`:case`clawhub`:case`skillssh`:case`custom`:case`assistant-memory`:return{origin:e};default:return{}}}function Ut(e){return e!==`plugins`}function Wt(e){return e===`all`||e===`installed`||e===`available`||e===`plugins`}function Gt(e){switch(e){case`installed`:return`installed`;case`available`:return`available`;default:return`all`}}function Kt(e,t){let[n,r]=(0,W.useState)(e);return(0,W.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>clearTimeout(n)},[e,t]),n}var qt=300,Jt=`vellum:superpowers:tipDismissed`;function Yt(e){return[...e].sort((e,t)=>e.installed===t.installed?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):e.installed?-1:1)}function Xt({assistantId:e}){let r=c(),i=o(),a=l(),d=Re(),f=Ie.use.version(),p=ze(),[m,h]=s(),{q:g,filter:_,category:y}=(0,W.useMemo)(()=>Rt(m),[m]),b=m.get(`plugin`),x=(0,W.useCallback)(e=>{h(t=>zt(t,e),{replace:!0})},[h]),S=m.get(`success`),C=(0,W.useRef)(!1);(0,W.useEffect)(()=>{S!==`true`||C.current||(C.current=!0,b&&z.success(`Installed ${b}`),h(e=>{let t=new URLSearchParams(e);return t.delete(`success`),t},{replace:!0}))},[S,b,h]);let[w,T]=(0,W.useState)(g),E=Kt(w.trim(),qt),D=(0,W.useRef)(g);(0,W.useEffect)(()=>{if(g!==D.current&&(D.current=g,g!==w.trim())){T(g);return}E!==g&&E===w.trim()&&(D.current=E,x({q:E}))},[E,g,w,x]);let O=(0,W.useCallback)(e=>x({filter:e}),[x]),k=(0,W.useCallback)(e=>x({category:e}),[x]),[ne,re]=(0,W.useState)(()=>n(Jt,!1)),ie=(0,W.useCallback)(()=>{re(!0),t(Jt,!0)},[]),A=!p&&_===`plugins`?`all`:_,j=Ut(A),ae=p&&Wt(A),M=Gt(A),{handleInstall:N,handleRemove:oe,isInstallingSkill:P,isRemovingSkill:se,skillPendingRemoval:ce,confirmRemove:le,cancelRemove:ue}=ee(e),{data:de=[]}=It(e),{origin:fe,kind:pe}=(0,W.useMemo)(()=>Ht(A),[A]),F=u({...De({path:{assistant_id:e},query:{include:`catalog`,origin:fe,kind:pe,q:E||void 0,category:y??void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j}),me=u({...De({path:{assistant_id:e},query:{include:`catalog`,origin:fe,kind:pe,q:E||void 0}}),select:e=>({skills:e.skills,categoryCounts:e.categoryCounts,totalCount:e.totalCount}),enabled:!!e&&j&&y!==null}),{items:he,isLoading:ge,catalogLoading:I,isError:_e,isFetching:L,catalogError:ve,categorySupported:ye,installedCategoryCounts:be,installedPlugins:R,installedTotal:xe,catalogMatches:Ce,unfilteredInstalledNames:we}=Ft(e,y,p),B=ae&&(y===null||ye),Te=(0,W.useCallback)(t=>te(a,e,t),[e,a]),[Ee,ke]=(0,W.useState)(null),[Ae,Ne]=(0,W.useState)(null),[Pe,Fe]=(0,W.useState)(null),[V,H]=(0,W.useState)(null),[U,Be]=(0,W.useState)(null),He=Oe({onMutate:e=>ke(e.body.name),onSuccess:(e,t)=>z.success(`Installed ${t.body.name}`),onError:()=>z.error(Je),onSettled:(e,t,n)=>{ke(null),Te(n.body.name)}}),Ue=Me({onMutate:e=>Ne(e.path.name),onSuccess:(e,t)=>z.success(`Removed ${t.path.name}`),onError:()=>z.error(Ye),onSettled:(e,t,n)=>{Ne(null),Te(n.path.name)}}),We=je({onMutate:e=>Fe(e.path.name),onSuccess:(e,t)=>z.success(e.outcome===`already-up-to-date`?`${t.path.name} is already up to date`:`Upgraded ${t.path.name} to ${nt(e.toCommit)}`),onError:()=>z.error(Xe),onSettled:(e,t,n)=>{Fe(null),Te(n.path.name)}}),K=(0,W.useCallback)(e=>h(t=>{let n=new URLSearchParams(t);return n.set(`plugin`,e.name),n}),[h]),Ze=(0,W.useCallback)(()=>h(e=>{let t=new URLSearchParams(e);return t.delete(`plugin`),t},{replace:!0}),[h]),Qe=(0,W.useCallback)(t=>{He.mutate({path:{assistant_id:e},body:{name:t.name}})},[e,He]),et=(0,W.useCallback)(()=>{V&&(Ue.mutate({path:{assistant_id:e,name:V.name}}),H(null))},[e,V,Ue]),q=(0,W.useCallback)(t=>{We.mutate({path:{assistant_id:e,name:t},body:{}})},[e,We]),rt=(0,W.useCallback)(()=>{U&&(q(U.name),Be(null))},[U,q]),it=(0,W.useCallback)((e,t)=>{if(ct(t)){Be(e);return}q(e.name)},[q]),J=(0,W.useMemo)(()=>j?F.data?.skills??[]:[],[j,F.data?.skills]),at=(0,W.useMemo)(()=>B?tt(he,M).filter(e=>$e(e,E)):[],[B,he,M,E]),ot=(0,W.useMemo)(()=>Yt([...J.map(e=>({type:`skill`,key:`skill:${e.id}`,name:e.name,installed:v(e),skill:e})),...at.map(e=>({type:`plugin`,key:`plugin:${e.name}`,name:e.name,installed:e.status===`installed`,item:e}))]),[J,at]),Y=y===null?F.data:me.data,st=Zt(j,Y?.skills??J,Y?.categoryCounts,Y?.totalCount),X=Qt(ae&&ye,be,R,xe,Ce,we,M),{counts:lt,totalCount:ut}=(0,W.useMemo)(()=>{let e={...st.counts};for(let[t,n]of Object.entries(X.counts))e[t]=(e[t]??0)+n;return{counts:e,totalCount:st.totalCount+X.totalCount}},[st,X]),dt=j&&F.isLoading,Z=j&&F.isError,ft=B&&ge,Q=B&&_e,mt=(Z||!j)&&(Q||!B)&&(Z||Q),_t=dt||ft,vt=!!E&&(j&&F.isFetching||B&&L&&!ge),bt=w.trim().length>0;if(b&&!p&&f===null)return null;if(b&&p){let t=he.find(e=>e.name===b),n={assistantId:e,name:b,externalHint:t?.external,enabled:t?.enabled,onBack:Ze};return d?(0,G.jsx)(ht,{...n}):(0,G.jsx)(pt,{...n})}let St=(0,G.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:_t?(0,G.jsx)(nn,{}):mt?(0,G.jsx)(rn,{}):ot.length===0?B&&I&&M!==`installed`?(0,G.jsx)(nn,{}):(0,G.jsx)(an,{filter:A,category:y}):(0,G.jsx)(`ul`,{className:`flex flex-col gap-2`,children:ot.map(t=>(0,G.jsx)(`li`,{children:t.type===`skill`?(0,G.jsx)(xt,{skill:t.skill,onSelect:()=>r(Le.skills.detail(t.skill.id),{state:{listSearch:i.search}}),onInstall:()=>N(t.skill),onRemove:()=>oe(t.skill),isInstalling:P(t.skill),isRemoving:se(t.skill)}):t.installed?(0,G.jsx)($t,{assistantId:e,item:t.item,onSelect:()=>K(t.item),onRemove:()=>H(t.item),onUpgrade:e=>it(t.item,e),isRemoving:Ae===t.item.name,isUpgrading:Pe===t.item.name}):(0,G.jsx)(gt,{assistantId:e,item:t.item,onSelect:()=>K(t.item),onInstall:()=>Qe(t.item),isInstalling:Ee===t.item.name})},t.key))})});return(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-4`,children:[!ne&&(0,G.jsx)(en,{onDismiss:ie}),(0,G.jsx)(Tt,{search:w,onSearchChange:T,filter:A,onFilterChange:O,isSearching:vt,categories:de,category:y,onCategoryChange:k,counts:lt,totalCount:ut,showCounts:!bt,pluginsSupported:p}),!_t&&!mt&&Z?(0,G.jsx)(tn,{text:`Skills are temporarily unavailable. Plugins are still listed below.`}):null,!_t&&!mt&&Q?(0,G.jsx)(tn,{text:`Plugins are temporarily unavailable. Skills are still listed below.`}):null,B&&ve&&!ft&&!Q?(0,G.jsx)(tn,{text:`Plugin catalog browsing is temporarily unavailable. Installed plugins are still listed below.`}):null,(0,G.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-6`,children:[(0,G.jsx)(`aside`,{className:`hidden w-56 shrink-0 overflow-y-auto sm:block`,children:(0,G.jsx)(yt,{ariaLabel:`Superpower categories`,selected:y,onSelect:k,counts:lt,totalCount:ut,showCounts:!bt,categories:de})}),St]}),(0,G.jsx)(Ve,{skillName:ce?.name??null,onConfirm:le,onCancel:ue}),(0,G.jsx)(Se,{open:V!==null,title:`Remove plugin`,message:V?Ge(V.name):``,confirmLabel:`Remove`,destructive:!0,onConfirm:et,onCancel:()=>H(null)}),(0,G.jsx)(Se,{open:U!==null,title:`Upgrade plugin`,message:U?Ke(U.name):``,confirmLabel:qe,destructive:!0,onConfirm:rt,onCancel:()=>Be(null)})]})}function Zt(e,t,n,r){return(0,W.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};if(n&&Object.keys(n).length>0)return{counts:n,totalCount:r??t.length};let i={};for(let e of t){let t=e.category??`system`;i[t]=(i[t]??0)+1}return{counts:i,totalCount:r??t.length}},[e,t,n,r])}function Qt(e,t,n,r,i,a,o){return(0,W.useMemo)(()=>{if(!e)return{counts:{},totalCount:0};let s={},c=o!==`available`,l=o===`all`||o===`available`;if(c)if(t&&Object.keys(t).length>0)Object.assign(s,t);else for(let e of n){let t=e.category??`system`;s[t]=(s[t]??0)+1}let u=0;if(l)for(let e of i){if(a.has(e.name))continue;let t=e.category??`system`;s[t]=(s[t]??0)+1,u+=1}let d=r??n.length;return{counts:s,totalCount:(c?d:0)+u}},[e,t,n,r,i,a,o])}function $t({assistantId:e,item:t,onSelect:n,onRemove:r,onUpgrade:i,isRemoving:a,isUpgrading:o}){let s=X({assistantId:e,name:t.name}).data;return(0,G.jsx)(gt,{assistantId:e,item:t,drift:s,onSelect:n,onRemove:r,onUpgrade:()=>i(s),isRemoving:a,isUpgrading:o})}function en({onDismiss:e}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,G.jsx)(fe,{className:`h-4 w-4 shrink-0`,style:{color:`var(--primary-base)`}}),(0,G.jsx)(`p`,{className:`flex-1`,children:`Create a new custom skill by describing what you want in chat, or install plugins to extend your assistant.`}),(0,G.jsx)(a,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,G.jsx)(ge,{"aria-hidden":!0}),onClick:e,"aria-label":`Dismiss tip`,tintColor:`var(--content-tertiary)`,expandOnMobile:!1})]})}function tn({text:e}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,G.jsx)(ne,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0}),(0,G.jsx)(`p`,{className:`flex-1`,children:e})]})}function nn(){return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(P,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function rn(){return(0,G.jsx)(p.Root,{children:(0,G.jsxs)(p.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,G.jsx)(me,{className:`mb-3 h-8 w-8`,style:{color:`var(--system-danger)`},"aria-hidden":!0}),(0,G.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Failed to load superpowers`}),(0,G.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Something went wrong. Try refreshing the page.`})]})})}function an({filter:e,category:t}){let{title:n,subtitle:r,Icon:i}=on(e,t);return(0,G.jsx)(y,{icon:i,title:n,subtitle:r})}function on(e,t){if(t)return{title:`Nothing in this category`,subtitle:`Try selecting a different category or clearing the filter.`,Icon:N};switch(e){case`installed`:return{title:`No Superpowers Installed`,subtitle:`Ask your assistant in chat to search for and install new skills and plugins.`,Icon:I};case`available`:return{title:`Nothing Left to Install`,subtitle:`All available skills and plugins are installed.`,Icon:k};case`skills`:return{title:`No Skills Found`,subtitle:`Ask your assistant in chat to search for and install new skills.`,Icon:I};case`plugins`:return{title:`No Plugins Found`,subtitle:`Browse the catalog to install plugins that extend your assistant.`,Icon:ue};case`vellum`:return{title:`No Vellum Skills`,subtitle:`No bundled Vellum skills found.`,Icon:I};case`clawhub`:return{title:`No Clawhub Skills`,subtitle:`No Clawhub skills found. Try searching the catalog.`,Icon:I};case`skillssh`:return{title:`No skills.sh Skills`,subtitle:`No skills.sh skills found. Try searching the catalog.`,Icon:I};case`custom`:return{title:`No Custom Skills`,subtitle:`Create a custom skill by describing what you want in chat.`,Icon:I};case`assistant-memory`:return{title:`No Skills From Memory`,subtitle:`Skills your assistant authors from past conversations will appear here.`,Icon:I};default:return{title:`No Superpowers Available`,subtitle:`Check your connection to the Vellum catalog.`,Icon:ne}}}function sn(){return(0,G.jsx)(Xt,{assistantId:U()})}export{sn as SuperpowersPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./useInfiniteQuery-Dk8q0n49.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./chevron-down-B5A-0g8A.js";import{t as o}from"./circle-check-big-DSsDH5_6.js";import{t as s}from"./circle-x-17dBxF06.js";import{t as c}from"./clock-BYTc0Ds9.js";import{t as l}from"./loader-circle-XREx3i4W.js";import{t as u}from"./triangle-alert-CQfiAg_t.js";import{t as d}from"./notice-BMK7xqUw.js";import"./src-te3YTBG-.js";import{t as f}from"./tag-NXcyiTkK.js";import{u as p}from"./routes-D9sNqB_o.js";import{i as m,t as h}from"./use-platform-gate-bFyCaLbM.js";import{M as g}from"./react-query.gen-BC3STDmV.js";import{t as _}from"./platform-login-notice-BaCrIk0m.js";import{t as v}from"./use-active-assistant-id-CldxA_-M.js";var y=e(t(),1),b=i();function x(e){switch(e){case`lifecycle`:return`Lifecycle`;case`upgrade`:return`Upgrade`;case`rollback`:return`Rollback`;case`crash`:return`Crash`;case`idle_sleep`:return`Idle Sleep`;case`wake`:return`Wake`;case`profiler`:return`Profiler`;case`other`:return`Other`;default:return e}}function S(e){switch(e){case`started`:return`Started`;case`succeeded`:return`Succeeded`;case`failed`:return`Failed`;case`in_progress`:return`In Progress`;default:return e}}function C(e){return e===`succeeded`}function w(e){return e===`failed`}function T(e){return new Date(e).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){if(e.type!==`idle_sleep`)return!1;let t=e.details?.idle_timeout_seconds;return typeof t==`number`&&t>=21600}function D(e,t){switch(e){case`wake`:return`positive`;case`rollback`:return`warning`;case`crash`:return`negative`;case`idle_sleep`:return t&&E(t)?`warning`:`neutral`;default:return`neutral`}}function O({type:e,event:t}){return(0,b.jsx)(f,{tone:D(e,t),children:x(e)})}function k({status:e}){let t=S(e);return C(e)?(0,b.jsx)(f,{tone:`positive`,leftIcon:(0,b.jsx)(o,{}),children:t}):w(e)?(0,b.jsx)(f,{tone:`negative`,leftIcon:(0,b.jsx)(s,{}),children:t}):(0,b.jsx)(f,{tone:`neutral`,children:t})}function A({event:e}){let[t,n]=(0,y.useState)(!1),r=e.details!==null&&e.details!==void 0&&Object.keys(e.details).length>0;return(0,b.jsxs)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,b.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between`,children:[(0,b.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.display_text}),(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,b.jsx)(O,{type:e.type,event:e}),(0,b.jsx)(k,{status:e.event_status}),E(e)&&(0,b.jsx)(f,{tone:`warning`,leftIcon:(0,b.jsx)(u,{className:`h-3 w-3`}),children:`Long sleep`})]})]}),(0,b.jsxs)(`div`,{className:`text-body-small-default flex shrink-0 items-center gap-1.5`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(c,{className:`h-3 w-3`}),(0,b.jsx)(`span`,{children:T(e.occurred_at)})]})]}),r&&(0,b.jsxs)(`div`,{className:`mt-2`,children:[(0,b.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`text-body-small-default flex items-center gap-1`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(a,{className:`h-3 w-3 transition-transform ${t?`rotate-180`:``}`}),t?`Hide details`:`Show details`]}),t&&(0,b.jsx)(`pre`,{className:`mt-2 overflow-x-auto rounded-md p-3 text-body-small-default`,style:{background:`var(--surface-base)`,color:`var(--content-default)`},children:JSON.stringify(e.details,null,2)})]})]})}function j({assistantId:e}){let{data:t,isLoading:n,isError:i,isFetchingNextPage:a,hasNextPage:o,fetchNextPage:s}=r({...g({path:{assistant_id:e}}),initialPageParam:0,getNextPageParam:(e,t)=>{if(e.next)return t.reduce((e,t)=>e+t.results.length,0)}}),c=t?.pages.flatMap(e=>e.results)??[];return(0,b.jsxs)(`div`,{className:`space-y-4`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Lifecycle events for your assistant from the last 30 days, newest first.`}),n?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading system events...`]}):i?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--system-negative-strong)`},children:[(0,b.jsx)(u,{className:`h-4 w-4 shrink-0`}),`Failed to load system events. Please refresh and try again.`]}):c.length===0?(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No system events recorded in the last 30 days.`}):(0,b.jsxs)(`div`,{className:`space-y-2`,children:[c.map(e=>(0,b.jsx)(A,{event:e},e.id)),o&&(0,b.jsx)(`div`,{className:`pt-2 text-center`,children:(0,b.jsx)(`button`,{type:`button`,onClick:()=>s(),disabled:a,className:`text-body-medium-default flex w-full items-center justify-center gap-2 rounded-md border px-4 py-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50`,style:{borderColor:`var(--border-element)`,color:`var(--content-secondary)`},children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading older events...`]}):`Load older events`})})]})]})}function M(){let e=m({platformHostedOnly:!0}),t=h(),r=v();return e===`gated`?(0,b.jsx)(n,{replace:!0,to:p.logs.root}):e===`disabled`?(0,b.jsx)(_,{children:`Log in to the Vellum platform to view system events.`}):t?(0,b.jsx)(j,{assistantId:r}):(0,b.jsx)(d,{tone:`warning`,children:`System events aren't available for the current assistant.`})}export{M as SystemEventsPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./useInfiniteQuery-Dk8q0n49.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./chevron-down-B5A-0g8A.js";import{t as o}from"./circle-check-big-DSsDH5_6.js";import{t as s}from"./circle-x-17dBxF06.js";import{t as c}from"./clock-BYTc0Ds9.js";import{t as l}from"./loader-circle-XREx3i4W.js";import{t as u}from"./triangle-alert-CQfiAg_t.js";import{t as d}from"./notice-BMK7xqUw.js";import"./src-te3YTBG-.js";import{t as f}from"./tag-NXcyiTkK.js";import{u as p}from"./routes-D9sNqB_o.js";import{i as m,t as h}from"./use-platform-gate-C65D14xY.js";import{M as g}from"./react-query.gen-BC3STDmV.js";import{t as _}from"./platform-login-notice-CdYiKsE8.js";import{t as v}from"./use-active-assistant-id-CldxA_-M.js";var y=e(t(),1),b=i();function x(e){switch(e){case`lifecycle`:return`Lifecycle`;case`upgrade`:return`Upgrade`;case`rollback`:return`Rollback`;case`crash`:return`Crash`;case`idle_sleep`:return`Idle Sleep`;case`wake`:return`Wake`;case`profiler`:return`Profiler`;case`other`:return`Other`;default:return e}}function S(e){switch(e){case`started`:return`Started`;case`succeeded`:return`Succeeded`;case`failed`:return`Failed`;case`in_progress`:return`In Progress`;default:return e}}function C(e){return e===`succeeded`}function w(e){return e===`failed`}function T(e){return new Date(e).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){if(e.type!==`idle_sleep`)return!1;let t=e.details?.idle_timeout_seconds;return typeof t==`number`&&t>=21600}function D(e,t){switch(e){case`wake`:return`positive`;case`rollback`:return`warning`;case`crash`:return`negative`;case`idle_sleep`:return t&&E(t)?`warning`:`neutral`;default:return`neutral`}}function O({type:e,event:t}){return(0,b.jsx)(f,{tone:D(e,t),children:x(e)})}function k({status:e}){let t=S(e);return C(e)?(0,b.jsx)(f,{tone:`positive`,leftIcon:(0,b.jsx)(o,{}),children:t}):w(e)?(0,b.jsx)(f,{tone:`negative`,leftIcon:(0,b.jsx)(s,{}),children:t}):(0,b.jsx)(f,{tone:`neutral`,children:t})}function A({event:e}){let[t,n]=(0,y.useState)(!1),r=e.details!==null&&e.details!==void 0&&Object.keys(e.details).length>0;return(0,b.jsxs)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,b.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between`,children:[(0,b.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.display_text}),(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,b.jsx)(O,{type:e.type,event:e}),(0,b.jsx)(k,{status:e.event_status}),E(e)&&(0,b.jsx)(f,{tone:`warning`,leftIcon:(0,b.jsx)(u,{className:`h-3 w-3`}),children:`Long sleep`})]})]}),(0,b.jsxs)(`div`,{className:`text-body-small-default flex shrink-0 items-center gap-1.5`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(c,{className:`h-3 w-3`}),(0,b.jsx)(`span`,{children:T(e.occurred_at)})]})]}),r&&(0,b.jsxs)(`div`,{className:`mt-2`,children:[(0,b.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`text-body-small-default flex items-center gap-1`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(a,{className:`h-3 w-3 transition-transform ${t?`rotate-180`:``}`}),t?`Hide details`:`Show details`]}),t&&(0,b.jsx)(`pre`,{className:`mt-2 overflow-x-auto rounded-md p-3 text-body-small-default`,style:{background:`var(--surface-base)`,color:`var(--content-default)`},children:JSON.stringify(e.details,null,2)})]})]})}function j({assistantId:e}){let{data:t,isLoading:n,isError:i,isFetchingNextPage:a,hasNextPage:o,fetchNextPage:s}=r({...g({path:{assistant_id:e}}),initialPageParam:0,getNextPageParam:(e,t)=>{if(e.next)return t.reduce((e,t)=>e+t.results.length,0)}}),c=t?.pages.flatMap(e=>e.results)??[];return(0,b.jsxs)(`div`,{className:`space-y-4`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Lifecycle events for your assistant from the last 30 days, newest first.`}),n?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--content-tertiary)`},children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading system events...`]}):i?(0,b.jsxs)(`div`,{className:`text-body-medium-lighter flex items-center gap-2`,style:{color:`var(--system-negative-strong)`},children:[(0,b.jsx)(u,{className:`h-4 w-4 shrink-0`}),`Failed to load system events. Please refresh and try again.`]}):c.length===0?(0,b.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No system events recorded in the last 30 days.`}):(0,b.jsxs)(`div`,{className:`space-y-2`,children:[c.map(e=>(0,b.jsx)(A,{event:e},e.id)),o&&(0,b.jsx)(`div`,{className:`pt-2 text-center`,children:(0,b.jsx)(`button`,{type:`button`,onClick:()=>s(),disabled:a,className:`text-body-medium-default flex w-full items-center justify-center gap-2 rounded-md border px-4 py-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50`,style:{borderColor:`var(--border-element)`,color:`var(--content-secondary)`},children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),`Loading older events...`]}):`Load older events`})})]})]})}function M(){let e=m({platformHostedOnly:!0}),t=h(),r=v();return e===`gated`?(0,b.jsx)(n,{replace:!0,to:p.logs.root}):e===`disabled`?(0,b.jsx)(_,{children:`Log in to the Vellum platform to view system events.`}):t?(0,b.jsx)(j,{assistantId:r}):(0,b.jsx)(d,{tone:`warning`,children:`System events aren't available for the current assistant.`})}export{M as SystemEventsPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{f as r,m as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./card-DRIctGVs.js";import"./src-te3YTBG-.js";import{n as s,t as c}from"./input-hw3el2GJ.js";import{t as l}from"./use-app-theme-CGie3Dma.js";import{t as u}from"./workspace-theme-tokens-DNNwX-XS.js";var d=e(t(),1),f=a(),p=`__THEME_STAGE_READY__`;function m(e){return e===`chat`?`chat`:`sampler`}function h(e){if(e)try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return;let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}catch{return}}var g=`w-[720px]`;function _({children:e}){return(0,f.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-[var(--content-tertiary)]`,children:e})}function v(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,f.jsx)(_,{children:`Text`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-default)]`,children:`Primary text — the main reading surface of the app.`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-secondary)]`,children:`Secondary text — supporting copy and descriptions.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Tertiary text — captions, labels, and placeholders.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-quiet)]`,children:`Quiet text — metadata and timestamps.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-faint)]`,children:`Faint text — the last legible step of the ramp.`})]})}function y(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Buttons`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(n,{children:`Primary`}),(0,f.jsx)(n,{variant:`outlined`,children:`Secondary`}),(0,f.jsx)(n,{disabled:!0,children:`Disabled`})]})]})}function b(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Accent`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md bg-[var(--primary-base)] px-4 py-2 text-sm font-medium text-[var(--content-inset)]`,children:`Accent fill`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-active)] px-4 py-2 text-sm text-[var(--content-default)]`,children:`Active border`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-hover)]`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-active)]`})]})]})}function x(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Surfaces and borders`}),(0,f.jsx)(o,{elevated:!0,children:(0,f.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`Raised card`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-secondary)]`,children:`Elevated surfaces sit above panels and the page background.`}),(0,f.jsx)(`div`,{className:`border-t border-[var(--border-subtle)] pt-2 text-sm text-[var(--content-tertiary)]`,children:`Subtle divider above this line.`})]})}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-base)] bg-[var(--surface-overlay)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Overlay surface`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-element)] bg-[var(--surface-active)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Active surface`})]})]})}function S(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Inputs`}),(0,f.jsx)(c,{fullWidth:!0,placeholder:`A placeholder in an empty field`,readOnly:!0}),(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:2,value:`Text someone has already typed into a field.`})]})}function C({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-end`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-end`,children:(0,f.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--user-bubble-bg,var(--surface-lift))] px-4 py-3 text-[var(--user-bubble-text,var(--content-default))] flex flex-col gap-2`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px]`,children:e})})})})}function w({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-start`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-start`,children:(0,f.jsx)(`div`,{className:`w-full text-[var(--content-default)]`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px] w-full`,children:e})})})})}function T(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,f.jsx)(_,{children:`Messages`}),(0,f.jsx)(C,{children:`A message from the user, in its bubble.`}),(0,f.jsx)(w,{children:`A reply from the assistant, rendered full-width on the page surface.`})]})}function E(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-sampler`,className:`${g} flex min-h-[1080px] flex-col gap-6 bg-[var(--background)] p-8`,children:[(0,f.jsx)(`div`,{className:`text-lg font-semibold text-[var(--content-default)]`,children:`Theme sampler`}),(0,f.jsx)(v,{}),(0,f.jsx)(b,{}),(0,f.jsx)(y,{}),(0,f.jsx)(x,{}),(0,f.jsx)(S,{}),(0,f.jsx)(T,{})]})}function D(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-chat`,className:`${g} flex h-[760px] flex-col bg-[var(--background)]`,children:[(0,f.jsx)(`div`,{className:`flex items-center border-b border-[var(--border-base)] bg-[var(--surface-overlay)] px-5 py-3`,children:(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`New conversation`})}),(0,f.jsxs)(`div`,{className:`flex flex-1 flex-col justify-end gap-4 overflow-hidden px-5 py-4`,children:[(0,f.jsx)(C,{children:`Can you summarize the quarterly report before tomorrow's meeting?`}),(0,f.jsx)(w,{children:`Done — the summary is ready. Revenue grew steadily, the two flagged risks from last quarter are resolved, and I pulled the three charts worth showing into a separate page.`}),(0,f.jsx)(C,{children:`Perfect. Send it to the team in the morning.`}),(0,f.jsx)(w,{children:`Scheduled for 9am. I'll include the charts and a one-paragraph version for anyone skimming on their phone.`})]}),(0,f.jsxs)(`div`,{className:`flex items-end gap-2 border-t border-[var(--border-base)] px-5 py-4`,children:[(0,f.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:1,placeholder:`Message your assistant`})}),(0,f.jsx)(n,{children:`Send`})]})]})}function O(){let e=r(),[t]=i(),n=m(e.view),a=t.get(`tokens`),o=(0,d.useMemo)(()=>h(a),[a]);return l(),(0,d.useEffect)(()=>(u(o),()=>{u(void 0)}),[o]),(0,d.useEffect)(()=>{let e=!1;return document.title=`theme-stage`,(document.fonts?.ready??Promise.resolve()).then(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e||(document.title=p)})})}),()=>{e=!0}},[n,o]),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`style`,{children:`* { transition: none !important; animation: none !important; caret-color: transparent !important; } html, body { background: var(--background); }`}),n===`chat`?(0,f.jsx)(D,{}):(0,f.jsx)(E,{})]})}export{O as ThemeStagePage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{f as r,m as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./card-DRIctGVs.js";import"./src-te3YTBG-.js";import{n as s,t as c}from"./input-hw3el2GJ.js";import{t as l}from"./use-app-theme-Dg8A6vPA.js";import{t as u}from"./workspace-theme-tokens-DNNwX-XS.js";var d=e(t(),1),f=a(),p=`__THEME_STAGE_READY__`;function m(e){return e===`chat`?`chat`:`sampler`}function h(e){if(e)try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return;let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}catch{return}}var g=`w-[720px]`;function _({children:e}){return(0,f.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-[var(--content-tertiary)]`,children:e})}function v(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,f.jsx)(_,{children:`Text`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-default)]`,children:`Primary text — the main reading surface of the app.`}),(0,f.jsx)(`div`,{className:`text-[15px] text-[var(--content-secondary)]`,children:`Secondary text — supporting copy and descriptions.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Tertiary text — captions, labels, and placeholders.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-quiet)]`,children:`Quiet text — metadata and timestamps.`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-faint)]`,children:`Faint text — the last legible step of the ramp.`})]})}function y(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Buttons`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(n,{children:`Primary`}),(0,f.jsx)(n,{variant:`outlined`,children:`Secondary`}),(0,f.jsx)(n,{disabled:!0,children:`Disabled`})]})]})}function b(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Accent`}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md bg-[var(--primary-base)] px-4 py-2 text-sm font-medium text-[var(--content-inset)]`,children:`Accent fill`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-active)] px-4 py-2 text-sm text-[var(--content-default)]`,children:`Active border`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-hover)]`}),(0,f.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-[var(--primary-active)]`})]})]})}function x(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Surfaces and borders`}),(0,f.jsx)(o,{elevated:!0,children:(0,f.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`Raised card`}),(0,f.jsx)(`div`,{className:`text-sm text-[var(--content-secondary)]`,children:`Elevated surfaces sit above panels and the page background.`}),(0,f.jsx)(`div`,{className:`border-t border-[var(--border-subtle)] pt-2 text-sm text-[var(--content-tertiary)]`,children:`Subtle divider above this line.`})]})}),(0,f.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-base)] bg-[var(--surface-overlay)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Overlay surface`}),(0,f.jsx)(`div`,{className:`rounded-md border border-[var(--border-element)] bg-[var(--surface-active)] px-3 py-2 text-sm text-[var(--content-secondary)]`,children:`Active surface`})]})]})}function S(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsx)(_,{children:`Inputs`}),(0,f.jsx)(c,{fullWidth:!0,placeholder:`A placeholder in an empty field`,readOnly:!0}),(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:2,value:`Text someone has already typed into a field.`})]})}function C({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-end`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-end`,children:(0,f.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--user-bubble-bg,var(--surface-lift))] px-4 py-3 text-[var(--user-bubble-text,var(--content-default))] flex flex-col gap-2`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px]`,children:e})})})})}function w({children:e}){return(0,f.jsx)(`div`,{className:`group/msg flex justify-start`,children:(0,f.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 items-start`,children:(0,f.jsx)(`div`,{className:`w-full text-[var(--content-default)]`,children:(0,f.jsx)(`div`,{className:`break-words text-[15px] w-full`,children:e})})})})}function T(){return(0,f.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,f.jsx)(_,{children:`Messages`}),(0,f.jsx)(C,{children:`A message from the user, in its bubble.`}),(0,f.jsx)(w,{children:`A reply from the assistant, rendered full-width on the page surface.`})]})}function E(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-sampler`,className:`${g} flex min-h-[1080px] flex-col gap-6 bg-[var(--background)] p-8`,children:[(0,f.jsx)(`div`,{className:`text-lg font-semibold text-[var(--content-default)]`,children:`Theme sampler`}),(0,f.jsx)(v,{}),(0,f.jsx)(b,{}),(0,f.jsx)(y,{}),(0,f.jsx)(x,{}),(0,f.jsx)(S,{}),(0,f.jsx)(T,{})]})}function D(){return(0,f.jsxs)(`div`,{"data-testid":`theme-stage-chat`,className:`${g} flex h-[760px] flex-col bg-[var(--background)]`,children:[(0,f.jsx)(`div`,{className:`flex items-center border-b border-[var(--border-base)] bg-[var(--surface-overlay)] px-5 py-3`,children:(0,f.jsx)(`div`,{className:`text-[15px] font-medium text-[var(--content-default)]`,children:`New conversation`})}),(0,f.jsxs)(`div`,{className:`flex flex-1 flex-col justify-end gap-4 overflow-hidden px-5 py-4`,children:[(0,f.jsx)(C,{children:`Can you summarize the quarterly report before tomorrow's meeting?`}),(0,f.jsx)(w,{children:`Done — the summary is ready. Revenue grew steadily, the two flagged risks from last quarter are resolved, and I pulled the three charts worth showing into a separate page.`}),(0,f.jsx)(C,{children:`Perfect. Send it to the team in the morning.`}),(0,f.jsx)(w,{children:`Scheduled for 9am. I'll include the charts and a one-paragraph version for anyone skimming on their phone.`})]}),(0,f.jsxs)(`div`,{className:`flex items-end gap-2 border-t border-[var(--border-base)] px-5 py-4`,children:[(0,f.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,f.jsx)(s,{fullWidth:!0,readOnly:!0,rows:1,placeholder:`Message your assistant`})}),(0,f.jsx)(n,{children:`Send`})]})]})}function O(){let e=r(),[t]=i(),n=m(e.view),a=t.get(`tokens`),o=(0,d.useMemo)(()=>h(a),[a]);return l(),(0,d.useEffect)(()=>(u(o),()=>{u(void 0)}),[o]),(0,d.useEffect)(()=>{let e=!1;return document.title=`theme-stage`,(document.fonts?.ready??Promise.resolve()).then(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e||(document.title=p)})})}),()=>{e=!0}},[n,o]),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`style`,{children:`* { transition: none !important; animation: none !important; caret-color: transparent !important; } html, body { background: var(--background); }`}),n===`chat`?(0,f.jsx)(D,{}):(0,f.jsx)(E,{})]})}export{O as ThemeStagePage};
@@ -1,2 +1,2 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./typography-DEI9Ra9z.js";import{H as i,S as a,_t as o,a as s,b as c,gt as l,h as u,ht as d,i as f,l as p,vt as m}from"./risk-DmicWnoH.js";import{t as h}from"./brain-BIzJCPA6.js";import{t as g}from"./check-sC49_hjU.js";import{t as _}from"./code-qafFA0_-.js";import{o as v}from"./list-row-B1wPb2Au.js";import{t as y}from"./file-text-Br730Q4B.js";import{t as b}from"./globe-CMtjL_s_.js";import{t as x}from"./monitor-B1y28fS1.js";import{t as S}from"./sparkles-Ccrj7hxd.js";import{t as C}from"./user-plus-oiIr9ey8.js";import"./src-te3YTBG-.js";import{t as w}from"./chat-markdown-message-CdM44BjA.js";import{D as T}from"./chat-CDFCY8f0.js";import{t as E}from"./misc-CuYswARt.js";import{t as D}from"./detail-shell-Cyqr5FXJ.js";var O=e(t(),1),k=n();function A({level:e,className:t,onClick:n}){if(!e)return null;let{bg:i,text:a,label:o}=f(e),s=E(`inline-flex items-center justify-center rounded-[100px] px-[6px] pt-[2px] pb-[3px]`,i,t);return n?(0,k.jsx)(`button`,{type:`button`,"data-testid":`risk-badge`,"data-risk-level":e,className:E(s,`cursor-pointer hover:opacity-80`),onClick:e=>{e.stopPropagation(),n()},children:(0,k.jsx)(r,{variant:`label-medium-default`,className:a,children:o})}):(0,k.jsx)(`span`,{"data-testid":`risk-badge`,"data-risk-level":e,className:s,children:(0,k.jsx)(r,{variant:`label-medium-default`,className:a,children:o})})}function j(e,t,n){let r=a();return(0,O.useMemo)(()=>{if(!e||t==null)return null;let a=r.find(t=>i(t).includes(e));if(!a)return null;let o=p(a.contentBlocks??[],{splitInlineThinking:a.role!==`user`})[t];if(!o||o.type!==`activity`)return null;let s=o.items.flatMap(e=>e.type===`thinking`&&e.thinking?[e.thinking]:[]);return n==null?s.join(`
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./typography-DEI9Ra9z.js";import{H as i,S as a,_t as o,a as s,b as c,gt as l,h as u,ht as d,i as f,l as p,vt as m}from"./risk-CdT92Vqr.js";import{t as h}from"./brain-BIzJCPA6.js";import{t as g}from"./check-sC49_hjU.js";import{t as _}from"./code-qafFA0_-.js";import{o as v}from"./list-row-B1wPb2Au.js";import{t as y}from"./file-text-Br730Q4B.js";import{t as b}from"./globe-CMtjL_s_.js";import{t as x}from"./monitor-B1y28fS1.js";import{t as S}from"./sparkles-Ccrj7hxd.js";import{t as C}from"./user-plus-oiIr9ey8.js";import"./src-te3YTBG-.js";import{t as w}from"./chat-markdown-message-rxPKNeTx.js";import{D as T}from"./chat-CDFCY8f0.js";import{t as E}from"./misc-CuYswARt.js";import{t as D}from"./detail-shell-Cyqr5FXJ.js";var O=e(t(),1),k=n();function A({level:e,className:t,onClick:n}){if(!e)return null;let{bg:i,text:a,label:o}=f(e),s=E(`inline-flex items-center justify-center rounded-[100px] px-[6px] pt-[2px] pb-[3px]`,i,t);return n?(0,k.jsx)(`button`,{type:`button`,"data-testid":`risk-badge`,"data-risk-level":e,className:E(s,`cursor-pointer hover:opacity-80`),onClick:e=>{e.stopPropagation(),n()},children:(0,k.jsx)(r,{variant:`label-medium-default`,className:a,children:o})}):(0,k.jsx)(`span`,{"data-testid":`risk-badge`,"data-risk-level":e,className:s,children:(0,k.jsx)(r,{variant:`label-medium-default`,className:a,children:o})})}function j(e,t,n){let r=a();return(0,O.useMemo)(()=>{if(!e||t==null)return null;let a=r.find(t=>i(t).includes(e));if(!a)return null;let o=p(a.contentBlocks??[],{splitInlineThinking:a.role!==`user`})[t];if(!o||o.type!==`activity`)return null;let s=o.items.flatMap(e=>e.type===`thinking`&&e.thinking?[e.thinking]:[]);return n==null?s.join(`
2
2
  `):s[n]??null},[r,e,t,n])}function M(e){let t=a();return(0,O.useMemo)(()=>{if(!e)return null;for(let n of t){let t=n.toolCalls?.find(t=>t.id===e);if(t)return t}return null},[t,e])}var N={code:_,terminal:d,file:y,globe:b,pen:o,monitor:x,plug:l,sparkle:S,"user-plus":C,bolt:m,brain:h},P=1500;function F({text:e}){let[t,n]=(0,O.useState)(!1),r=(0,O.useRef)(null);return(0,O.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]),(0,k.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(e),n(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),P)},"aria-label":t?`Copied`:`Copy`,className:`absolute right-2 top-2 flex items-center gap-1 rounded p-1 text-label-small-default text-[var(--content-tertiary)] transition-colors hover:bg-[var(--ghost-hover)] hover:text-[var(--content-default)]`,children:[t?(0,k.jsx)(g,{className:`h-3.5 w-3.5`}):(0,k.jsx)(v,{className:`h-3.5 w-3.5`}),t?`Copied`:null]})}function I({text:e}){return(0,k.jsxs)(`div`,{className:`relative`,children:[(0,k.jsx)(`pre`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 font-mono text-xs whitespace-pre-wrap break-words text-[var(--content-default)]`,children:e}),(0,k.jsx)(F,{text:e})]})}function L({children:e,className:t=`mb-1.5`}){return(0,k.jsx)(r,{variant:`label-small-default`,as:`div`,className:`uppercase tracking-wider text-[var(--content-tertiary)] ${t}`,children:e})}function R({detail:e,onClose:t}){let n=j(e.messageId,e.thinkingGroupIndex,e.thinkingItemIndex);return(0,k.jsx)(D,{Glyph:h,title:e.title,closeLabel:`Close tool details`,onClose:t,children:(0,k.jsx)(w,{content:n??e.thinkingText??``,hardLineBreaks:!0})})}function z({detail:e}){let t=M(e.toolCallId),n=t?.result??e.result,i=t?.streamedOutput??e.streamedOutput,a=n!==void 0&&n!==``,o=t?T(t):e.status===`running`,l=!!i,u=JSON.stringify(e.input,null,2),d=t?.riskLevel??e.riskLevel,f=s(d);return(0,k.jsxs)(k.Fragment,{children:[d&&(0,k.jsxs)(`div`,{className:`mb-5`,children:[(0,k.jsx)(L,{children:`Risk Level`}),(0,k.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,k.jsx)(A,{level:d}),f&&(0,k.jsx)(r,{variant:`body-small-default`,as:`p`,className:`mt-1.5 text-[var(--content-secondary)]`,children:f})]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(r,{variant:`body-medium-default`,as:`div`,className:`text-[var(--content-default)]`,children:c(e.toolName)}),e.activity&&(0,k.jsx)(r,{variant:`body-small-default`,as:`p`,className:`mt-0.5 text-[var(--content-secondary)]`,children:e.activity}),(0,k.jsx)(`div`,{className:`mt-2`,children:(0,k.jsx)(I,{text:u})})]}),(a||o)&&(0,k.jsxs)(`div`,{className:`mt-5`,children:[(0,k.jsx)(L,{children:`Output`}),a?(0,k.jsx)(I,{text:n}):l?(0,k.jsx)(I,{text:i}):(0,k.jsx)(r,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Running…`})]})]})}function B({detail:e,onClose:t}){if(e.kind===`thinking`)return(0,k.jsx)(R,{detail:e,onClose:t});let{iconName:n}=u(e.toolName,e.input);return(0,k.jsx)(D,{Glyph:N[n]??m,title:e.activity||e.title,closeLabel:`Close tool details`,onClose:t,children:(0,k.jsx)(z,{detail:e})})}export{I as CodeBlock,L as SectionLabel,z as ToolDetailBody,B as ToolDetailPanel,j as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{t as r}from"./preload-helper-Cv2QeVDK.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-CJf7MmLX.js";import{t as o}from"./typography-DEI9Ra9z.js";import{t as s}from"./createLucideIcon-CAM1RhH8.js";import{_ as c,d as l,f as u,g as d,m as f,n as p,ot as m,p as h,r as g,s as ee,t as _,u as v,v as y,w as b,x,y as S}from"./risk-DmicWnoH.js";import{t as C}from"./brain-BIzJCPA6.js";import{t as w}from"./chevron-down-B5A-0g8A.js";import{t as T}from"./chevron-right-HU6H84S0.js";import{t as E}from"./chevron-up-2Qqarz0p.js";import{t as D}from"./circle-alert-DVCpoZrc.js";import{t as O}from"./circle-check-CjGnAahM.js";import{t as k}from"./circle-x-17dBxF06.js";import{t as A}from"./file-plus-C3SBA8ll.js";import{t as j}from"./file-text-Br730Q4B.js";import{t as M}from"./globe-CMtjL_s_.js";import{t as N}from"./loader-circle-XREx3i4W.js";import{t as te}from"./pencil-D38YNe2r.js";import{t as P}from"./search-BVW-n8to.js";import{t as F}from"./terminal-CdCI6wMV.js";import{t as ne}from"./triangle-alert-CQfiAg_t.js";import{t as I}from"./wrench-0WW0zkkG.js";import{t as re}from"./x-JBAsSOmg.js";import"./src-te3YTBG-.js";import{n as ie,r as L,t as ae}from"./viewer-store-Ct0SDE-n.js";import{t as oe}from"./subagent-store-CQKOOAm6.js";import{D as se,O as ce}from"./chat-CDFCY8f0.js";import{t as R}from"./misc-CuYswARt.js";import{t as z}from"./proxy-D7UPVac3.js";import{t as B}from"./AnimatePresence-DPfyu3ET.js";import{t as V}from"./use-reduced-motion-W1fCe3vS.js";import{C as H,S as le,g as ue,n as de,r as fe,t as pe,v as me,y as he}from"./site-favicon-DzmWythg.js";import"./three-dot-indicator-BMvKQ_On.js";var U=s(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),W=s(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),G=s(`compass`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z`,key:`9ktpf1`}]]),K=e(t(),1),q=i(),ge=`a, button, [role="button"], input, textarea, select`;function _e(e){return!!e?.closest(ge)}function ve(e,t){let n=(e&&e.length>0?e:t).charAt(0);return n?n.toUpperCase():``}function ye({faviconUrl:e,title:t,domain:n,className:r}){let[i,s]=(0,K.useState)(!1);(0,K.useEffect)(()=>{s(!1)},[e]);let c=!!e&&!i,l=ve(n,t);return(0,q.jsxs)(`span`,{className:a(`inline-flex items-center gap-1 px-[10px] py-[6px]`,`rounded-[var(--radius-pill)] bg-[var(--surface-base)] max-w-full`,r),children:[(0,q.jsx)(`span`,{"aria-hidden":`true`,className:a(`inline-flex items-center justify-center`,`h-[14px] w-[14px] rounded-[var(--radius-sm)] overflow-hidden shrink-0`,`bg-[var(--surface-overlay)]`),children:c?(0,q.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>s(!0)}):(0,q.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-default)]`,children:l})}),(0,q.jsx)(o,{variant:`body-small-default`,className:`truncate max-w-[200px] text-[var(--content-default)]`,children:t})]})}function be({items:e,minDwellMs:t=500}){let n=V(),[r,i]=(0,K.useState)(0),a=Math.max(e.length-1,0);if((0,K.useEffect)(()=>{if(r>=a)return;let e=setTimeout(()=>i(e=>Math.min(e+1,a)),t);return()=>clearTimeout(e)},[r,a,t]),e.length===0)return null;let o=n?{duration:0}:{duration:.35,ease:[.16,1,.3,1]},s=n?{opacity:0}:{y:-28,opacity:0},c=n?{opacity:1}:{y:0,opacity:1},l=n?{opacity:0}:{y:28,opacity:0};if(e.length===1){let t=e[0];return(0,q.jsx)(`div`,{className:`relative overflow-hidden h-[28px] max-w-full`,children:(0,q.jsx)(`div`,{className:`absolute inset-0 flex items-center`,children:(0,q.jsx)(ye,{faviconUrl:t.faviconUrl,title:t.title,domain:t.domain})})})}let u=Math.min(r,a),d=e[u],f=`${u}:${d.domain??``}:${d.title}`;return(0,q.jsx)(`div`,{className:`relative overflow-hidden h-[28px] max-w-full`,children:(0,q.jsx)(B,{initial:!1,mode:`popLayout`,children:(0,q.jsx)(z.div,{initial:s,animate:c,exit:l,transition:o,className:`absolute inset-0 flex items-center`,children:(0,q.jsx)(ye,{faviconUrl:d.faviconUrl,title:d.title,domain:d.domain})},f)})})}function xe(e){let t=L.use.toggleToolDetail(),n=L.use.activeToolDetail(),r=e.variant===`web`?e.carouselItems:void 0,i=(0,K.useMemo)(()=>r&&r.length>0?(0,q.jsx)(be,{items:r}):null,[r]);if(e.variant===`web`){let{info:t,carouselItems:n,state:r,step:a,expanded:o,onExpandChange:s}=e,c=r===`error`,l=n.at(-1),u=o?E:w;return(0,q.jsxs)(`div`,{className:`flex flex-col items-start`,children:[(0,q.jsxs)(`button`,{type:`button`,"data-testid":`inline-web-link`,"aria-expanded":o,"aria-label":`Web Search`,onClick:()=>s(!o),className:R(`group inline-flex items-center gap-2 -mx-1.5 px-1.5 py-1 rounded-md text-left text-[13px] font-medium transition-colors cursor-pointer`,`focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,`text-[var(--content-secondary)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,c&&`text-[var(--system-negative-strong)]`),children:[(0,q.jsx)(`span`,{className:R(`inline-flex shrink-0 items-center text-[var(--content-tertiary)]`,c&&`text-[var(--system-negative-strong)]`),children:(0,q.jsx)(M,{className:`size-4 shrink-0`,"aria-hidden":!0})}),r===`loading`?(0,q.jsx)(H,{"data-testid":`inline-web-loading`,className:`shrink-0`,children:`Web Search`}):(0,q.jsx)(`span`,{className:`shrink-0`,children:`Web Search`}),(0,q.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)]`,children:`|`}),r===`loading`&&i?(0,q.jsx)(`span`,{className:`inline-flex w-[220px] min-w-0 items-center`,children:i}):l&&(l.faviconUrl||l.domain||l.title)?(0,q.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[(0,q.jsx)(pe,{faviconUrl:l.faviconUrl,domain:l.domain,title:t,className:`shrink-0`}),(0,q.jsx)(`span`,{className:`min-w-0 max-w-[280px] truncate text-[var(--content-default)]`,children:t})]}):(0,q.jsx)(`span`,{className:`min-w-0 max-w-[280px] truncate text-[var(--content-default)]`,children:t}),(0,q.jsx)(u,{className:`size-3.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),o&&a!=null?(0,q.jsx)(`div`,{className:`pl-6`,children:a.kind===`web_search_error`?(0,q.jsx)(de,{step:a}):(0,q.jsx)(fe,{step:a})}):null]})}let a;if(e.variant===`thinking`){let{content:r,isStreaming:i=!1,messageId:o,groupIndex:s}=e;if(!r&&!i)return null;a={dataTestId:`thought-process-link`,ariaLabel:`View thinking`,label:`Thinking`,shimmerLabel:i,tone:`default`,active:n?.kind===`thinking`&&ie(n,{messageId:o,thinkingGroupIndex:s,thinkingText:r}),onClick:()=>t({kind:`thinking`,toolCallId:``,toolName:``,title:`Thought process`,activity:``,input:{},status:`completed`,thinkingText:r,messageId:o,thinkingGroupIndex:s})}}else{let{toolCall:r}=e,{activity:i,info:o,title:s}=f(r),c=i||o||s,l=!!r.isError||r.confirmationDecision===`denied`||r.confirmationDecision===`timed_out`;a={dataTestId:`inline-tool-link`,ariaLabel:`View details: ${c}`,label:c,tone:l?`error`:`default`,active:n!=null&&n.kind!==`thinking`&&n.toolCallId===r.id,onClick:()=>t(he(r))}}let o=a.tone===`error`;return(0,q.jsxs)(`button`,{type:`button`,"data-testid":a.dataTestId,"data-active":a.active?`true`:`false`,"aria-label":a.ariaLabel,onClick:a.onClick,className:R(`group inline-flex items-center gap-2 -mx-1.5 px-1.5 py-1 rounded-md text-left text-[13px] font-medium transition-colors cursor-pointer`,`focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,a.active?`bg-[var(--surface-active)] text-[var(--content-default)]`:`text-[var(--content-secondary)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,o&&`text-[var(--system-negative-strong)]`),children:[(0,q.jsx)(`span`,{className:`min-w-0 max-w-[min(520px,calc(100vw-8rem))] truncate`,children:a.shimmerLabel?(0,q.jsx)(H,{"data-testid":`thought-process-loading`,children:a.label}):a.label}),(0,q.jsx)(T,{className:`size-3.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0})]})}function Se({size:e=8}){return(0,q.jsx)(`span`,{"aria-hidden":`true`,className:`busy-indicator inline-block shrink-0 rounded-full`,style:{width:e,height:e,backgroundColor:`var(--primary-base)`}})}function Ce(e){if(e===void 0)return;let t=new Date(e),n=new Date,r=t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate(),i=t.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`,second:`2-digit`});return r?`Started ${i}`:`Started ${t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}, ${i}`}function we(e){return e<60?`${e.toFixed(1)}s`:`${Math.floor(e/60)}m ${Math.floor(e%60)}s`}function J(e){let t=Math.floor(e);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function Te(e,t,n,r=`step`){let[i,a]=(0,K.useState)(Date.now);if((0,K.useEffect)(()=>{if(e===void 0||t)return;let n=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(n)},[e,t]),e===void 0)return null;if(r===`step`)return t?n===void 0?null:we((n-e)/1e3):J(Math.max(0,i-e)/1e3);if(t&&n!==void 0){let t=(n-e)/1e3;return t<5?null:J(t)}if(!t){let t=(i-e)/1e3;return t<5?null:J(t)}return null}var Ee={terminal:(0,q.jsx)(F,{className:`h-3.5 w-3.5`}),"file-text":(0,q.jsx)(j,{className:`h-3.5 w-3.5`}),"file-plus":(0,q.jsx)(A,{className:`h-3.5 w-3.5`}),pencil:(0,q.jsx)(te,{className:`h-3.5 w-3.5`}),search:(0,q.jsx)(P,{className:`h-3.5 w-3.5`}),globe:(0,q.jsx)(M,{className:`h-3.5 w-3.5`}),compass:(0,q.jsx)(G,{className:`h-3.5 w-3.5`}),camera:(0,q.jsx)(U,{className:`h-3.5 w-3.5`}),wrench:(0,q.jsx)(I,{className:`h-3.5 w-3.5`})};function De(e,t=``){return Ee[y(e,t)]??(0,q.jsx)(I,{className:`h-3.5 w-3.5`})}function Oe({isRunning:e,isError:t}){return e?(0,q.jsx)(`span`,{className:`flex h-4 w-4 shrink-0 items-center justify-center`,children:(0,q.jsx)(Se,{size:6})}):t?(0,q.jsx)(k,{className:`h-4 w-4 text-[var(--system-negative-strong)] shrink-0`}):(0,q.jsx)(O,{className:`h-4 w-4 text-[var(--system-positive-strong)] shrink-0`})}function ke({toolCall:e,isSubmitting:t,onSubmit:r,onAllowAndCreateRule:i}){let[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),l=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!s)return;let e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]);let u=e.pendingConfirmation;if(!u)return null;let f=!!u.input,p=(u.allowlistOptions?.length??0)>0,m=e.input?.activity??e.input?.reason,h=typeof m==`string`&&m.trim()||u.title||S(e.name,d(e.name,e.input)),g=u.description||u.riskReason||null;return(0,q.jsxs)(`div`,{"data-testid":`inline-confirmation-card`,className:`flex w-full flex-col gap-4 rounded-xl bg-[var(--surface-overlay)] p-3`,children:[(0,q.jsxs)(`div`,{className:`flex w-full flex-col gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-[12px] font-medium text-[var(--content-secondary)]`,children:[(0,q.jsx)(`span`,{className:`shrink-0 whitespace-nowrap`,children:`Confirmation required`}),h?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{"aria-hidden":!0,className:`size-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}),(0,q.jsx)(`span`,{className:`min-w-0 truncate`,children:h})]}):null]}),g&&(0,q.jsx)(`p`,{className:`w-full text-body-medium-default text-[var(--content-default)]`,children:g})]}),(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[p&&i?(0,q.jsxs)(`div`,{ref:l,className:`relative flex`,children:[(0,q.jsxs)(n,{variant:`primary`,disabled:t,onClick:()=>r?.(`allow`),className:`rounded-r-none`,children:[t&&(0,q.jsx)(N,{className:`h-3.5 w-3.5 animate-spin`}),`Allow`]}),(0,q.jsx)(`span`,{"aria-hidden":!0,className:`h-5 w-px self-center bg-[var(--content-inset)] opacity-20`}),(0,q.jsx)(n,{variant:`primary`,disabled:t,onClick:()=>c(e=>!e),className:`rounded-l-none px-1.5`,"aria-label":`More allow options`,"aria-haspopup":`menu`,"aria-expanded":s,children:(0,q.jsx)(w,{className:`h-3.5 w-3.5`})}),s&&(0,q.jsx)(`div`,{className:`absolute left-0 top-full z-10 mt-1 min-w-[180px] rounded-md border border-[var(--border-base)] bg-[var(--surface-lift)] py-1 shadow-lg`,children:(0,q.jsx)(`button`,{type:`button`,onClick:()=>{c(!1),i()},className:`flex w-full items-center px-3 py-2 text-body-small-default text-[var(--content-default)] transition-colors hover:bg-[var(--ghost-hover)]`,children:`Allow & Create Rule`})})]}):(0,q.jsxs)(n,{variant:`primary`,disabled:t,onClick:()=>r?.(`allow`),children:[t&&(0,q.jsx)(N,{className:`h-3.5 w-3.5 animate-spin`}),`Allow`]}),(0,q.jsx)(n,{variant:`danger`,disabled:t,onClick:()=>r?.(`deny`),children:`Deny`})]}),f&&(0,q.jsxs)(`div`,{className:`flex w-full flex-col gap-3`,children:[(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-base)]`}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>o(!a),className:`flex items-center gap-1 self-start text-[11px] font-medium text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,children:[a?`Hide Details`:`Show Details`,(0,q.jsx)(w,{className:`size-2.5 transition-transform ${a?`rotate-180`:``}`})]}),a&&u.input&&(0,q.jsx)(`div`,{className:`max-h-[220px] overflow-y-auto rounded bg-[var(--surface-base)] p-2`,children:(0,q.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default text-[var(--content-secondary)]`,children:JSON.stringify(u.input,null,2)})})]})]})}function Ae({toolCall:e,onOpenRuleEditor:t,onConfirmationSubmit:n,onAllowAndCreateRule:r,embedded:i=!1}){let a=b(t=>t.expandedToolCallIds.has(e.id)),o=(0,K.useCallback)(t=>{b.getState().setExpandedToolCallId(e.id,t)},[e.id]),[s,l]=(0,K.useState)(!1),u=!!e.isError,f=!u&&e.result===void 0&&e.completedAt==null,m=!!e.pendingConfirmation,h=ce(e),v=Te(h,!f,e.completedAt),y=Ce(h),x=Te(e.startedAt,!f,e.completedAt),C=d(e.name,e.input),D=e.input?.activity??e.input?.reason,O=(typeof D==`string`&&D.trim()?D.trim():null)??(f?c(e.name,C):S(e.name,C)),k=m||!f&&(e.result!==void 0||Object.keys(e.input).length>0),A=(0,K.useRef)(!1);(0,K.useEffect)(()=>{let t=A.current;A.current=!!e.pendingConfirmation,e.pendingConfirmation&&!t&&o(!0)},[e.pendingConfirmation,o]);let j=(0,K.useCallback)(async t=>{if(n){l(!0);try{await n(t,e)}finally{l(!1)}}},[n,e]),M=(0,K.useCallback)(async()=>{if(r){l(!0);try{await r(e)}finally{l(!1)}}},[r,e]),N=(0,K.useCallback)(()=>{e.result!==void 0&&navigator.clipboard.writeText(e.result)},[e.result]),te=f?`Running 1 step`:u?`Failed 1 step`:`Completed 1 step`,P=(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 py-2 ${i?`pl-6 pr-3 text-body-small-default`:``}`,children:[(0,q.jsx)(Oe,{isRunning:f,isError:u}),!i&&De(e.name,C),(0,q.jsx)(`span`,{className:`min-w-0 truncate text-[var(--content-secondary)]`,children:O}),e.riskLevel&&!f&&!m&&(()=>{let{displayLevel:n,inherentRisk:r}=_(e.approvalReason,e.riskLevel),a=g(n),o=n===`workspace`,s=!o&&!ee(e.approvalMode,e.riskLevel,e.riskThreshold)?p(e.approvalReason):null,c;return c=o?`Workspace · Inherent risk: ${r?r.charAt(0).toUpperCase()+r.slice(1):`Unknown`}`:s?`${a.label} ${s}`:a.label,(0,q.jsxs)(`button`,{type:`button`,onClick:n=>{n.stopPropagation(),t?.({toolName:e.name,riskLevel:e.riskLevel,riskReason:e.riskReason,input:e.input,allowlistOptions:e.riskAllowlistOptions??[],scopeOptions:e.scopeOptions??[],directoryScopeOptions:e.riskDirectoryScopeOptions??[],matchedTrustRuleId:e.matchedTrustRuleId})},className:`${i?``:`ml-auto `}max-w-[45%] shrink-0 truncate rounded-full px-2 py-0.5 text-[11px] font-medium leading-tight ${a.bg} ${a.text} ${a.border??``} ${t?`cursor-pointer hover:opacity-80`:`cursor-default`}`,title:c,children:[(0,q.jsx)(`span`,{className:`sm:hidden`,children:a.label}),(0,q.jsx)(`span`,{className:`hidden sm:inline`,children:o?a.label:c})]})})(),i&&(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[v&&(0,q.jsx)(`span`,{className:`text-label-small-default`,title:y,children:v}),k&&(a?(0,q.jsx)(w,{className:`h-3.5 w-3.5`}):(0,q.jsx)(T,{className:`h-3.5 w-3.5`}))]})]}),F=(0,q.jsxs)(q.Fragment,{children:[m&&(0,q.jsx)(ke,{toolCall:e,isSubmitting:s,onSubmit:j,onAllowAndCreateRule:M}),!m&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`mt-2.5`,children:[(0,q.jsx)(`div`,{className:`mb-1.5 text-label-small-default uppercase tracking-wider text-[var(--content-tertiary)]`,children:`Technical Details`}),(0,q.jsx)(`div`,{className:`text-[var(--content-secondary)]`,children:`Tool Name`}),(0,q.jsx)(`div`,{className:`text-[var(--content-secondary)]`,children:e.name.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}),y&&(0,q.jsx)(`div`,{className:`mt-0.5 text-[var(--content-tertiary)]`,children:y}),x&&(0,q.jsxs)(`div`,{className:`mt-0.5`,children:[(0,q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-default)]`,children:`Tool latency:`}),` `,(0,q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:x})]}),Object.entries(e.input).map(([e,t])=>(0,q.jsxs)(`div`,{className:`mt-0.5`,children:[(0,q.jsxs)(`span`,{className:`text-label-medium-default text-[var(--content-default)]`,children:[e,`:`]}),` `,(0,q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:typeof t==`string`?t.length>200?t.slice(0,200)+`...`:t:JSON.stringify(t)})]},e))]}),e.result!==void 0&&(0,q.jsxs)(`div`,{className:`mt-3`,children:[(0,q.jsx)(`div`,{className:`mb-1.5 text-label-small-default uppercase tracking-wider text-[var(--content-tertiary)]`,children:`Output`}),(0,q.jsxs)(`div`,{className:`relative rounded-md border p-3 ${u?`border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)]`:`border-[var(--border-element)] bg-[var(--surface-base)]`}`,children:[(0,q.jsx)(`pre`,{className:`whitespace-pre-wrap break-words text-body-small-default max-h-60 overflow-y-auto pr-8 ${u?`text-[var(--system-negative-strong)]`:`text-[var(--content-default)]`}`,children:e.result.length>2e3?e.result.slice(0,2e3)+`...`:e.result}),(0,q.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),N()},className:`absolute right-2 top-2 rounded p-1 text-[var(--content-tertiary)] hover:bg-[var(--ghost-hover)] hover:text-[var(--content-default)]`,title:`Copy output`,children:(0,q.jsx)(W,{className:`h-4 w-4`})})]})]})]})]});return i?(0,q.jsxs)(`div`,{className:`w-full`,children:[(0,q.jsx)(`div`,{role:`button`,tabIndex:k?0:void 0,onClick:()=>{k&&o(!a)},onKeyDown:e=>{k&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),o(!a))},className:`w-full ${k?`cursor-pointer`:`cursor-default`}`,children:P}),a&&k&&(m?(0,q.jsx)(`div`,{className:`px-3 pt-1 pb-2`,children:(0,q.jsx)(ke,{toolCall:e,isSubmitting:s,onSubmit:j,onAllowAndCreateRule:M})}):(0,q.jsx)(`div`,{className:`pl-6 pr-3 pb-2 text-label-medium-default`,children:F}))]}):(0,q.jsxs)(`div`,{className:`my-1 w-full`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{k&&o(!a)},className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-body-medium-default transition-colors ${u?`bg-[var(--system-negative-weak)]`:`bg-[var(--surface-base)]`} ${k?`cursor-pointer hover:bg-[var(--surface-active)]`:`cursor-default`} ${a?`rounded-b-none`:``}`,children:[(0,q.jsx)(Oe,{isRunning:f,isError:u}),(0,q.jsx)(`span`,{className:u?`text-[var(--system-negative-strong)]`:`text-[var(--content-default)]`,children:te}),(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[v&&(0,q.jsx)(`span`,{className:`text-label-small-default text-[var(--content-tertiary)]`,title:y,children:v}),k&&(a?(0,q.jsx)(E,{className:`h-4 w-4`}):(0,q.jsx)(w,{className:`h-4 w-4`}))]})]}),a&&k&&(0,q.jsxs)(`div`,{className:`rounded-b-lg border-t px-3 pb-3 text-label-medium-default ${u?`border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)]`:`border-[var(--border-element)] bg-[var(--surface-base)]`}`,children:[P,F]})]})}function je({state:e,testId:t}){switch(e){case`loading`:return null;case`complete`:return(0,q.jsx)(O,{"data-testid":t,"aria-hidden":`true`,"data-state":`complete`,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-positive-strong)]`});case`warning`:return(0,q.jsx)(ne,{"data-testid":t,"aria-hidden":`true`,"data-state":`warning`,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-mid-strong)]`});default:return(0,q.jsx)(D,{"data-testid":t,"aria-hidden":`true`,"data-state":e,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-negative-strong)]`})}}function Me({state:e,leadingIcon:t,currentStepTitle:r,currentStepInfo:i,headerAnimationKey:a,hideStatusIndicator:s=!1,headerActive:c=!1,stepCount:l,defaultExpanded:u=!1,expanded:d,onExpandChange:f,disableExpand:p=!1,bare:m=!1,children:h,"data-testid":g=`tool-progress-card-shell`,statusIndicatorTestId:ee=`tool-progress-card-status-indicator`,headerActionSlot:_,onHeaderClick:v,headerAriaLabel:y}){let[b,x]=(0,K.useState)(u),S=d!==void 0,C=S?d:b,w=V(),T=()=>{if(v){v();return}if(p)return;let e=!C;S||x(e),f?.(e)},E=w?{duration:0}:{duration:.25,ease:[.16,1,.3,1]};return(0,q.jsxs)(`div`,{"data-testid":g,className:m?`flex w-full flex-col`:`flex w-full flex-col rounded-[var(--radius-lg)] border-b border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(()=>{let u=(0,q.jsxs)(`span`,{className:m?`flex min-w-0 items-center gap-1`:`flex min-w-0 flex-1 items-center gap-1`,children:[s||e===`loading`?null:(0,q.jsx)(B,{mode:`wait`,initial:!1,children:(0,q.jsx)(z.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:w?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`inline-flex shrink-0`,children:(0,q.jsx)(je,{state:e,testId:ee})},e)}),t?(0,q.jsx)(`span`,{className:`mx-1 flex shrink-0 items-center`,children:t}):null,(0,q.jsx)(le,{currentStepTitle:r,currentStepInfo:i,animationKey:a,bypassDwell:e!==`loading`,shimmer:e===`loading`,inline:m})]}),d=l&&!l.startsWith(`0 `)&&!l.startsWith(`1 `)?(0,q.jsx)(`span`,{"data-testid":`tool-progress-card-step-count-pill`,className:`flex shrink-0 items-center rounded-[var(--radius-pill)] bg-[var(--surface-overlay)] px-[6px] py-[4px]`,children:(0,q.jsx)(o,{variant:`body-small-default`,className:`text-[var(--content-emphasised)]`,children:l})}):null,f={variant:`ghost`,size:`compact`,"aria-expanded":v?void 0:C,"aria-label":y??(C?`Collapse steps`:`Expand steps`),onClick:T,disabled:!v&&p};return _?(0,q.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,q.jsx)(n,{...f,className:`h-auto min-w-0 flex-1 justify-start gap-2 p-3 ${C?`rounded-tl-[var(--radius-lg)] rounded-b-none`:`rounded-l-[var(--radius-lg)]`}`,children:u}),(0,q.jsxs)(`div`,{"data-testid":`tool-progress-card-action-slot`,className:`flex shrink-0 items-center gap-2 pr-3`,children:[_,d]})]}):(0,q.jsxs)(n,{...f,className:m?`h-auto w-fit min-w-0 max-w-[calc(100%+0.375rem)] justify-start gap-2 rounded-md border-0 px-1.5 py-1.5 -ml-1.5 hover:bg-[var(--surface-hover)]${C||c?` bg-[var(--surface-hover)]`:``}`:`h-auto w-full min-w-0 justify-between gap-2 p-3 ${C?`rounded-t-[var(--radius-lg)] rounded-b-none`:`rounded-[var(--radius-lg)]`}`,children:[u,d]})})(),(0,q.jsx)(B,{initial:!1,children:C&&h!=null?(0,q.jsx)(z.div,{initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:E,className:`overflow-hidden`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[m?null:(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--surface-base)]`}),h]})},`expanded-body`):null})]})}function Ne(e){let[t,n]=(0,K.useState)(()=>Date.now());return(0,K.useEffect)(()=>{if(!e)return;n(Date.now());let t=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(t)},[e]),e?t:void 0}function Pe(e){return ue(e,m.use.liveWebActivity(),Ne(me(e)))}var Fe=80;function Ie(e){return e.map(e=>({kind:`toolCall`,toolCall:e}))}function Le(e){let t=0,n=0;for(let r of e)r.kind!==`thinking`&&(t+=1,(r.kind===`tool_error`||r.kind===`web_search_error`||r.kind===`tool`&&(r.status===`error`||r.status===`denied`))&&(n+=1));return{total:t,failed:n}}function Re(e,t){if(e===`loading`||e===`complete`)return e;let{total:n,failed:r}=Le(t);return r>0&&r<n?`warning`:`error`}function ze(e,t,n){if(e===`loading`)return t&&t!==`<1s`?`Working for ${t}`:`Working`;if(t)return`Worked for ${t}`;switch(e){case`warning`:return`${n} ${n===1?`tool`:`tools`} failed`;case`error`:case`denied`:return`Failed`;default:return`Completed`}}function Be(e){let{toolCalls:t}=e,n=t.some(e=>!!e.pendingConfirmation),r=(0,K.useMemo)(()=>e.items??Ie(t),[e.items,t]),i=Pe(r),a=Ue(t[0]?.id??null);return n?(0,q.jsx)(Ge,{...e}):i.steps.length===0?null:t.length===1&&t[0].name===`web_search`?(0,q.jsx)(Ve,{toolCalls:t,cardData:i,expanded:a.value,onExpandChange:a.onChange}):(0,q.jsx)(He,{...e,cardData:i,effectiveItems:r})}function Ve({toolCalls:e,cardData:t,expanded:n,onExpandChange:r}){let i=e.some(e=>se(e))?`loading`:t.state===`error`||t.state===`denied`?`error`:`complete`,a=t.steps.find(e=>e.kind===`web_search`||e.kind===`web_search_error`)??null;return(0,q.jsx)(xe,{variant:`web`,info:t.currentStepInfo,carouselItems:t.carouselItems,state:i,step:a,expanded:n,onExpandChange:r})}function He({toolCalls:e,cardData:t,effectiveItems:n,onOpenRuleEditor:r,unknownNudgeToolCallIds:i,onDismissUnknownNudge:a,messageId:s,groupIndex:c}){let l=L.use.toggleActivitySteps(),u=L.use.mainView(),d=L.use.activeActivitySteps(),f=Re(t.state,t.steps),p=(0,K.useMemo)(()=>({messageId:s,groupIndex:c,items:n,toolCalls:e}),[s,c,n,e]),m=u===`activity-steps`&&d!=null&&ae(d,p),h=(0,K.useMemo)(()=>t.currentStepKind===`thinking`?(0,q.jsxs)(`span`,{className:`flex w-full min-w-0 items-center gap-1`,children:[(0,q.jsx)(C,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,q.jsx)(o,{variant:`body-small-default`,className:`min-w-0 flex-1 truncate text-left leading-[16px] text-[var(--content-tertiary)]`,children:x(t.currentStepInfo,Fe)})]}):t.currentStepInfo,[t.currentStepKind,t.currentStepInfo]),g=i&&r?e.filter(e=>i.has(e.id)):[];return(0,q.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,q.jsx)(Me,{bare:!0,hideStatusIndicator:!0,state:f,currentStepTitle:t.currentStepTitle,currentStepInfo:h,stepCount:t.stepCount,onHeaderClick:()=>l(p),headerAriaLabel:`View steps`,headerActive:m}),g.map(e=>(0,q.jsx)(We,{toolCall:e,onOpenRuleEditor:r,onDismiss:a},e.id))]})}function Ue(e){return{value:b(t=>e==null?void 0:t.expandedCardIds.get(e))??!1,onChange:(0,K.useCallback)(t=>{e!=null&&b.getState().setExpandedCardId(e,t)},[e])}}function We({toolCall:e,onOpenRuleEditor:t,onDismiss:n}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-1 pl-6 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,q.jsx)(`span`,{children:`This command wasn't recognized.`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>t({toolName:e.name,riskLevel:e.riskLevel,riskReason:e.riskReason,input:e.input??{},allowlistOptions:e.riskAllowlistOptions??[],scopeOptions:e.scopeOptions??[],directoryScopeOptions:e.riskDirectoryScopeOptions??[]}),className:`font-medium text-[var(--content-default)] underline underline-offset-2 hover:text-[var(--content-secondary)]`,children:`Create a rule`}),(0,q.jsx)(`span`,{children:`to classify it for next time.`}),n&&(0,q.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:()=>n(e.id),className:`ml-1 text-[var(--content-disabled)] hover:text-[var(--content-tertiary)]`,children:(0,q.jsx)(re,{className:`h-3.5 w-3.5`})})]})}function Ge({toolCalls:e,onOpenRuleEditor:t,onConfirmationSubmit:n,onAllowAndCreateRule:r,unknownNudgeToolCallIds:i,onDismissUnknownNudge:a}){return(0,q.jsx)(`div`,{className:`my-1 w-full`,children:(0,q.jsx)(`div`,{className:`space-y-0 rounded-lg bg-[var(--surface-overlay)]`,children:e.map(e=>(0,q.jsxs)(K.Fragment,{children:[(0,q.jsx)(Ae,{toolCall:e,onOpenRuleEditor:t,embedded:!0,...e.pendingConfirmation?{onConfirmationSubmit:n,onAllowAndCreateRule:r}:{}}),i?.has(e.id)&&t&&(0,q.jsx)(We,{toolCall:e,onOpenRuleEditor:t,onDismiss:a})]},e.id))})})}var Ke=/:([\w+-]+)$/,qe=[],Je=()=>qe,Y=null,X=null,Z=null;function Ye(){return Y&&X?Promise.resolve():Z||(Z=r(()=>import(`./emoji-catalog-data-BCc1YNMR.js`).then(e=>{Y=e.searchEmoji;let t=new Map(e.EMOJI_CATALOG.map(e=>[e.shortcode,e.emoji]));X=e=>t.get(e)}),[]),Z)}function Xe(){let[e,t]=(0,K.useState)(()=>Y??Je);return(0,K.useEffect)(()=>{if(Y)return;let e=!1;return Ye().then(()=>{!e&&Y&&t(()=>Y)}),()=>{e=!0}},[]),e}var Ze=()=>void 0;function Qe(){let[e,t]=(0,K.useState)(()=>X??Ze);return(0,K.useEffect)(()=>{if(X)return;let e=!1;return Ye().then(()=>{!e&&X&&t(()=>X)}),()=>{e=!0}},[]),e}function $e(e){if(h(e)&&!(typeof e.result!=`string`||!e.result))try{let t=JSON.parse(e.result);return typeof t.subagentId==`string`?t.subagentId:void 0}catch{return}}function et(e,t){return e.size===0?oe:e.get(t.id)??oe}function tt(e,t,n,r){let i=e.filter(h);if(i.length===0)return[];let a=[];for(let e of i){let i=n.get(e.id);if(i&&!r.has(i)){a.push(i),r.add(i);continue}let o=$e(e);if(o){a.push(o),r.add(o);continue}let s=t.find(e=>!r.has(e.subagentId));s&&(a.push(s.subagentId),r.add(s.subagentId))}return a}function nt(e){if(!u(e)||typeof e.result!=`string`||!e.result)return null;try{let t=JSON.parse(e.result);return typeof t.runId==`string`?t.runId:null}catch{return null}}function Q(e,t){return u(e)?t.get(e.id)??nt(e):null}function rt(e,t,n){let r=[];for(let i of e){if(!u(i))continue;let e=t.get(i.id);if(e&&!n.has(e)){r.push(e),n.add(e);continue}let a=nt(i);a&&!n.has(a)&&(r.push(a),n.add(a))}return r}function it(e,t){let n=new Set;for(let r of e){let e=Q(r,t.byToolUseId);if(e!==null){if(t.byId[e]!==void 0){n.add(e);continue}t.notFoundRunIds.has(e)||t.hydrationFailedRunIds.has(e)||n.add(e)}}return n}function at(e){if(!v(e)||typeof e.result!=`string`||!e.result)return null;try{let t=JSON.parse(e.result);return typeof t.acpSessionId==`string`?t.acpSessionId:null}catch{return null}}function ot(e){if(l(e)&&!(typeof e.result!=`string`||!e.result))try{let t=JSON.parse(e.result);return t.backgrounded===!0&&typeof t.id==`string`?t.id:void 0}catch{return}}function st(e,t){let n=[];for(let r of e){if(!l(r))continue;let e=ot(r);e&&!t.has(e)&&(n.push(e),t.add(e))}return n}function ct(e,t){return v(e)?t.get(e.id)??at(e):null}function lt(e,t,n){let r=[];for(let i of e){if(!v(i))continue;let e=t.get(i.id);if(e&&!n.has(e)){r.push(e),n.add(e);continue}let a=at(i);a&&!n.has(a)&&(r.push(a),n.add(a))}return r}function ut(e,t){return e===`assistant`?$(t)??`Assistant`:`User`}function $(...e){for(let t of e){let e=t?.trim();if(e)return e}}function dt(e,t){if(!e.slackMessage)return null;let n=e.slackMessage.sender;return $(n?.displayName,n?.name,n?.username,n?.externalUserId)??ut(e.role,t)}function ft(e){return _e(e)}function pt({message:e,assistantDisplayName:t}){let n=dt(e,t);return n?(0,q.jsx)(`div`,{"data-testid":`slack-message-attribution`,className:`inline-flex items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:(0,q.jsx)(`span`,{children:n})}):null}function mt({message:e}){let t=Qe(),n=e.slackMessage?.reaction;if(!n)return null;let r=t(n.emoji)??`:${n.emoji}:`,i=n.actorDisplayName??e.slackMessage?.sender?.displayName??e.slackMessage?.sender?.name,a=n.op===`added`?`reacted`:`removed reaction`;return(0,q.jsxs)(`div`,{"data-testid":`slack-reaction-line`,className:`flex items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,q.jsx)(`span`,{className:`text-base`,children:r}),i&&(0,q.jsx)(`span`,{children:i}),(0,q.jsx)(`span`,{children:a})]})}export{G as C,_e as S,U as T,Le as _,ot as a,Se as b,lt as c,rt as d,Q as f,ze as g,Be as h,it as i,st as l,Xe as m,mt as n,ft as o,Ke as p,ct as r,et as s,pt as t,tt as u,Re as v,W as w,xe as x,Pe as y};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{t as r}from"./preload-helper-Cv2QeVDK.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-CJf7MmLX.js";import{t as o}from"./typography-DEI9Ra9z.js";import{t as s}from"./createLucideIcon-CAM1RhH8.js";import{_ as c,d as l,f as u,g as d,m as f,n as p,ot as m,p as h,r as g,s as ee,t as _,u as v,v as y,w as b,x,y as S}from"./risk-CdT92Vqr.js";import{t as C}from"./brain-BIzJCPA6.js";import{t as w}from"./chevron-down-B5A-0g8A.js";import{t as T}from"./chevron-right-HU6H84S0.js";import{t as E}from"./chevron-up-2Qqarz0p.js";import{t as D}from"./circle-alert-DVCpoZrc.js";import{t as O}from"./circle-check-CjGnAahM.js";import{t as k}from"./circle-x-17dBxF06.js";import{t as A}from"./file-plus-C3SBA8ll.js";import{t as j}from"./file-text-Br730Q4B.js";import{t as M}from"./globe-CMtjL_s_.js";import{t as N}from"./loader-circle-XREx3i4W.js";import{t as te}from"./pencil-D38YNe2r.js";import{t as P}from"./search-BVW-n8to.js";import{t as F}from"./terminal-CdCI6wMV.js";import{t as ne}from"./triangle-alert-CQfiAg_t.js";import{t as I}from"./wrench-0WW0zkkG.js";import{t as re}from"./x-JBAsSOmg.js";import"./src-te3YTBG-.js";import{n as ie,r as L,t as ae}from"./viewer-store-DLk-jp8U.js";import{t as oe}from"./subagent-store-MDi6lBXs.js";import{D as se,O as ce}from"./chat-CDFCY8f0.js";import{t as R}from"./misc-CuYswARt.js";import{t as z}from"./proxy-D7UPVac3.js";import{t as B}from"./AnimatePresence-DPfyu3ET.js";import{t as V}from"./use-reduced-motion-W1fCe3vS.js";import{C as H,S as le,g as ue,n as de,r as fe,t as pe,v as me,y as he}from"./site-favicon-BB1pYWLF.js";import"./three-dot-indicator-BMvKQ_On.js";var U=s(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),W=s(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),G=s(`compass`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z`,key:`9ktpf1`}]]),K=e(t(),1),q=i(),ge=`a, button, [role="button"], input, textarea, select`;function _e(e){return!!e?.closest(ge)}function ve(e,t){let n=(e&&e.length>0?e:t).charAt(0);return n?n.toUpperCase():``}function ye({faviconUrl:e,title:t,domain:n,className:r}){let[i,s]=(0,K.useState)(!1);(0,K.useEffect)(()=>{s(!1)},[e]);let c=!!e&&!i,l=ve(n,t);return(0,q.jsxs)(`span`,{className:a(`inline-flex items-center gap-1 px-[10px] py-[6px]`,`rounded-[var(--radius-pill)] bg-[var(--surface-base)] max-w-full`,r),children:[(0,q.jsx)(`span`,{"aria-hidden":`true`,className:a(`inline-flex items-center justify-center`,`h-[14px] w-[14px] rounded-[var(--radius-sm)] overflow-hidden shrink-0`,`bg-[var(--surface-overlay)]`),children:c?(0,q.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>s(!0)}):(0,q.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-default)]`,children:l})}),(0,q.jsx)(o,{variant:`body-small-default`,className:`truncate max-w-[200px] text-[var(--content-default)]`,children:t})]})}function be({items:e,minDwellMs:t=500}){let n=V(),[r,i]=(0,K.useState)(0),a=Math.max(e.length-1,0);if((0,K.useEffect)(()=>{if(r>=a)return;let e=setTimeout(()=>i(e=>Math.min(e+1,a)),t);return()=>clearTimeout(e)},[r,a,t]),e.length===0)return null;let o=n?{duration:0}:{duration:.35,ease:[.16,1,.3,1]},s=n?{opacity:0}:{y:-28,opacity:0},c=n?{opacity:1}:{y:0,opacity:1},l=n?{opacity:0}:{y:28,opacity:0};if(e.length===1){let t=e[0];return(0,q.jsx)(`div`,{className:`relative overflow-hidden h-[28px] max-w-full`,children:(0,q.jsx)(`div`,{className:`absolute inset-0 flex items-center`,children:(0,q.jsx)(ye,{faviconUrl:t.faviconUrl,title:t.title,domain:t.domain})})})}let u=Math.min(r,a),d=e[u],f=`${u}:${d.domain??``}:${d.title}`;return(0,q.jsx)(`div`,{className:`relative overflow-hidden h-[28px] max-w-full`,children:(0,q.jsx)(B,{initial:!1,mode:`popLayout`,children:(0,q.jsx)(z.div,{initial:s,animate:c,exit:l,transition:o,className:`absolute inset-0 flex items-center`,children:(0,q.jsx)(ye,{faviconUrl:d.faviconUrl,title:d.title,domain:d.domain})},f)})})}function xe(e){let t=L.use.toggleToolDetail(),n=L.use.activeToolDetail(),r=e.variant===`web`?e.carouselItems:void 0,i=(0,K.useMemo)(()=>r&&r.length>0?(0,q.jsx)(be,{items:r}):null,[r]);if(e.variant===`web`){let{info:t,carouselItems:n,state:r,step:a,expanded:o,onExpandChange:s}=e,c=r===`error`,l=n.at(-1),u=o?E:w;return(0,q.jsxs)(`div`,{className:`flex flex-col items-start`,children:[(0,q.jsxs)(`button`,{type:`button`,"data-testid":`inline-web-link`,"aria-expanded":o,"aria-label":`Web Search`,onClick:()=>s(!o),className:R(`group inline-flex items-center gap-2 -mx-1.5 px-1.5 py-1 rounded-md text-left text-[13px] font-medium transition-colors cursor-pointer`,`focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,`text-[var(--content-secondary)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,c&&`text-[var(--system-negative-strong)]`),children:[(0,q.jsx)(`span`,{className:R(`inline-flex shrink-0 items-center text-[var(--content-tertiary)]`,c&&`text-[var(--system-negative-strong)]`),children:(0,q.jsx)(M,{className:`size-4 shrink-0`,"aria-hidden":!0})}),r===`loading`?(0,q.jsx)(H,{"data-testid":`inline-web-loading`,className:`shrink-0`,children:`Web Search`}):(0,q.jsx)(`span`,{className:`shrink-0`,children:`Web Search`}),(0,q.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)]`,children:`|`}),r===`loading`&&i?(0,q.jsx)(`span`,{className:`inline-flex w-[220px] min-w-0 items-center`,children:i}):l&&(l.faviconUrl||l.domain||l.title)?(0,q.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[(0,q.jsx)(pe,{faviconUrl:l.faviconUrl,domain:l.domain,title:t,className:`shrink-0`}),(0,q.jsx)(`span`,{className:`min-w-0 max-w-[280px] truncate text-[var(--content-default)]`,children:t})]}):(0,q.jsx)(`span`,{className:`min-w-0 max-w-[280px] truncate text-[var(--content-default)]`,children:t}),(0,q.jsx)(u,{className:`size-3.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),o&&a!=null?(0,q.jsx)(`div`,{className:`pl-6`,children:a.kind===`web_search_error`?(0,q.jsx)(de,{step:a}):(0,q.jsx)(fe,{step:a})}):null]})}let a;if(e.variant===`thinking`){let{content:r,isStreaming:i=!1,messageId:o,groupIndex:s}=e;if(!r&&!i)return null;a={dataTestId:`thought-process-link`,ariaLabel:`View thinking`,label:`Thinking`,shimmerLabel:i,tone:`default`,active:n?.kind===`thinking`&&ie(n,{messageId:o,thinkingGroupIndex:s,thinkingText:r}),onClick:()=>t({kind:`thinking`,toolCallId:``,toolName:``,title:`Thought process`,activity:``,input:{},status:`completed`,thinkingText:r,messageId:o,thinkingGroupIndex:s})}}else{let{toolCall:r}=e,{activity:i,info:o,title:s}=f(r),c=i||o||s,l=!!r.isError||r.confirmationDecision===`denied`||r.confirmationDecision===`timed_out`;a={dataTestId:`inline-tool-link`,ariaLabel:`View details: ${c}`,label:c,tone:l?`error`:`default`,active:n!=null&&n.kind!==`thinking`&&n.toolCallId===r.id,onClick:()=>t(he(r))}}let o=a.tone===`error`;return(0,q.jsxs)(`button`,{type:`button`,"data-testid":a.dataTestId,"data-active":a.active?`true`:`false`,"aria-label":a.ariaLabel,onClick:a.onClick,className:R(`group inline-flex items-center gap-2 -mx-1.5 px-1.5 py-1 rounded-md text-left text-[13px] font-medium transition-colors cursor-pointer`,`focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,a.active?`bg-[var(--surface-active)] text-[var(--content-default)]`:`text-[var(--content-secondary)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,o&&`text-[var(--system-negative-strong)]`),children:[(0,q.jsx)(`span`,{className:`min-w-0 max-w-[min(520px,calc(100vw-8rem))] truncate`,children:a.shimmerLabel?(0,q.jsx)(H,{"data-testid":`thought-process-loading`,children:a.label}):a.label}),(0,q.jsx)(T,{className:`size-3.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0})]})}function Se({size:e=8}){return(0,q.jsx)(`span`,{"aria-hidden":`true`,className:`busy-indicator inline-block shrink-0 rounded-full`,style:{width:e,height:e,backgroundColor:`var(--primary-base)`}})}function Ce(e){if(e===void 0)return;let t=new Date(e),n=new Date,r=t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate(),i=t.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`,second:`2-digit`});return r?`Started ${i}`:`Started ${t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}, ${i}`}function we(e){return e<60?`${e.toFixed(1)}s`:`${Math.floor(e/60)}m ${Math.floor(e%60)}s`}function J(e){let t=Math.floor(e);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function Te(e,t,n,r=`step`){let[i,a]=(0,K.useState)(Date.now);if((0,K.useEffect)(()=>{if(e===void 0||t)return;let n=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(n)},[e,t]),e===void 0)return null;if(r===`step`)return t?n===void 0?null:we((n-e)/1e3):J(Math.max(0,i-e)/1e3);if(t&&n!==void 0){let t=(n-e)/1e3;return t<5?null:J(t)}if(!t){let t=(i-e)/1e3;return t<5?null:J(t)}return null}var Ee={terminal:(0,q.jsx)(F,{className:`h-3.5 w-3.5`}),"file-text":(0,q.jsx)(j,{className:`h-3.5 w-3.5`}),"file-plus":(0,q.jsx)(A,{className:`h-3.5 w-3.5`}),pencil:(0,q.jsx)(te,{className:`h-3.5 w-3.5`}),search:(0,q.jsx)(P,{className:`h-3.5 w-3.5`}),globe:(0,q.jsx)(M,{className:`h-3.5 w-3.5`}),compass:(0,q.jsx)(G,{className:`h-3.5 w-3.5`}),camera:(0,q.jsx)(U,{className:`h-3.5 w-3.5`}),wrench:(0,q.jsx)(I,{className:`h-3.5 w-3.5`})};function De(e,t=``){return Ee[y(e,t)]??(0,q.jsx)(I,{className:`h-3.5 w-3.5`})}function Oe({isRunning:e,isError:t}){return e?(0,q.jsx)(`span`,{className:`flex h-4 w-4 shrink-0 items-center justify-center`,children:(0,q.jsx)(Se,{size:6})}):t?(0,q.jsx)(k,{className:`h-4 w-4 text-[var(--system-negative-strong)] shrink-0`}):(0,q.jsx)(O,{className:`h-4 w-4 text-[var(--system-positive-strong)] shrink-0`})}function ke({toolCall:e,isSubmitting:t,onSubmit:r,onAllowAndCreateRule:i}){let[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),l=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(!s)return;let e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]);let u=e.pendingConfirmation;if(!u)return null;let f=!!u.input,p=(u.allowlistOptions?.length??0)>0,m=e.input?.activity??e.input?.reason,h=typeof m==`string`&&m.trim()||u.title||S(e.name,d(e.name,e.input)),g=u.description||u.riskReason||null;return(0,q.jsxs)(`div`,{"data-testid":`inline-confirmation-card`,className:`flex w-full flex-col gap-4 rounded-xl bg-[var(--surface-overlay)] p-3`,children:[(0,q.jsxs)(`div`,{className:`flex w-full flex-col gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-[12px] font-medium text-[var(--content-secondary)]`,children:[(0,q.jsx)(`span`,{className:`shrink-0 whitespace-nowrap`,children:`Confirmation required`}),h?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{"aria-hidden":!0,className:`size-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}),(0,q.jsx)(`span`,{className:`min-w-0 truncate`,children:h})]}):null]}),g&&(0,q.jsx)(`p`,{className:`w-full text-body-medium-default text-[var(--content-default)]`,children:g})]}),(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[p&&i?(0,q.jsxs)(`div`,{ref:l,className:`relative flex`,children:[(0,q.jsxs)(n,{variant:`primary`,disabled:t,onClick:()=>r?.(`allow`),className:`rounded-r-none`,children:[t&&(0,q.jsx)(N,{className:`h-3.5 w-3.5 animate-spin`}),`Allow`]}),(0,q.jsx)(`span`,{"aria-hidden":!0,className:`h-5 w-px self-center bg-[var(--content-inset)] opacity-20`}),(0,q.jsx)(n,{variant:`primary`,disabled:t,onClick:()=>c(e=>!e),className:`rounded-l-none px-1.5`,"aria-label":`More allow options`,"aria-haspopup":`menu`,"aria-expanded":s,children:(0,q.jsx)(w,{className:`h-3.5 w-3.5`})}),s&&(0,q.jsx)(`div`,{className:`absolute left-0 top-full z-10 mt-1 min-w-[180px] rounded-md border border-[var(--border-base)] bg-[var(--surface-lift)] py-1 shadow-lg`,children:(0,q.jsx)(`button`,{type:`button`,onClick:()=>{c(!1),i()},className:`flex w-full items-center px-3 py-2 text-body-small-default text-[var(--content-default)] transition-colors hover:bg-[var(--ghost-hover)]`,children:`Allow & Create Rule`})})]}):(0,q.jsxs)(n,{variant:`primary`,disabled:t,onClick:()=>r?.(`allow`),children:[t&&(0,q.jsx)(N,{className:`h-3.5 w-3.5 animate-spin`}),`Allow`]}),(0,q.jsx)(n,{variant:`danger`,disabled:t,onClick:()=>r?.(`deny`),children:`Deny`})]}),f&&(0,q.jsxs)(`div`,{className:`flex w-full flex-col gap-3`,children:[(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-base)]`}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>o(!a),className:`flex items-center gap-1 self-start text-[11px] font-medium text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,children:[a?`Hide Details`:`Show Details`,(0,q.jsx)(w,{className:`size-2.5 transition-transform ${a?`rotate-180`:``}`})]}),a&&u.input&&(0,q.jsx)(`div`,{className:`max-h-[220px] overflow-y-auto rounded bg-[var(--surface-base)] p-2`,children:(0,q.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default text-[var(--content-secondary)]`,children:JSON.stringify(u.input,null,2)})})]})]})}function Ae({toolCall:e,onOpenRuleEditor:t,onConfirmationSubmit:n,onAllowAndCreateRule:r,embedded:i=!1}){let a=b(t=>t.expandedToolCallIds.has(e.id)),o=(0,K.useCallback)(t=>{b.getState().setExpandedToolCallId(e.id,t)},[e.id]),[s,l]=(0,K.useState)(!1),u=!!e.isError,f=!u&&e.result===void 0&&e.completedAt==null,m=!!e.pendingConfirmation,h=ce(e),v=Te(h,!f,e.completedAt),y=Ce(h),x=Te(e.startedAt,!f,e.completedAt),C=d(e.name,e.input),D=e.input?.activity??e.input?.reason,O=(typeof D==`string`&&D.trim()?D.trim():null)??(f?c(e.name,C):S(e.name,C)),k=m||!f&&(e.result!==void 0||Object.keys(e.input).length>0),A=(0,K.useRef)(!1);(0,K.useEffect)(()=>{let t=A.current;A.current=!!e.pendingConfirmation,e.pendingConfirmation&&!t&&o(!0)},[e.pendingConfirmation,o]);let j=(0,K.useCallback)(async t=>{if(n){l(!0);try{await n(t,e)}finally{l(!1)}}},[n,e]),M=(0,K.useCallback)(async()=>{if(r){l(!0);try{await r(e)}finally{l(!1)}}},[r,e]),N=(0,K.useCallback)(()=>{e.result!==void 0&&navigator.clipboard.writeText(e.result)},[e.result]),te=f?`Running 1 step`:u?`Failed 1 step`:`Completed 1 step`,P=(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 py-2 ${i?`pl-6 pr-3 text-body-small-default`:``}`,children:[(0,q.jsx)(Oe,{isRunning:f,isError:u}),!i&&De(e.name,C),(0,q.jsx)(`span`,{className:`min-w-0 truncate text-[var(--content-secondary)]`,children:O}),e.riskLevel&&!f&&!m&&(()=>{let{displayLevel:n,inherentRisk:r}=_(e.approvalReason,e.riskLevel),a=g(n),o=n===`workspace`,s=!o&&!ee(e.approvalMode,e.riskLevel,e.riskThreshold)?p(e.approvalReason):null,c;return c=o?`Workspace · Inherent risk: ${r?r.charAt(0).toUpperCase()+r.slice(1):`Unknown`}`:s?`${a.label} ${s}`:a.label,(0,q.jsxs)(`button`,{type:`button`,onClick:n=>{n.stopPropagation(),t?.({toolName:e.name,riskLevel:e.riskLevel,riskReason:e.riskReason,input:e.input,allowlistOptions:e.riskAllowlistOptions??[],scopeOptions:e.scopeOptions??[],directoryScopeOptions:e.riskDirectoryScopeOptions??[],matchedTrustRuleId:e.matchedTrustRuleId})},className:`${i?``:`ml-auto `}max-w-[45%] shrink-0 truncate rounded-full px-2 py-0.5 text-[11px] font-medium leading-tight ${a.bg} ${a.text} ${a.border??``} ${t?`cursor-pointer hover:opacity-80`:`cursor-default`}`,title:c,children:[(0,q.jsx)(`span`,{className:`sm:hidden`,children:a.label}),(0,q.jsx)(`span`,{className:`hidden sm:inline`,children:o?a.label:c})]})})(),i&&(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[v&&(0,q.jsx)(`span`,{className:`text-label-small-default`,title:y,children:v}),k&&(a?(0,q.jsx)(w,{className:`h-3.5 w-3.5`}):(0,q.jsx)(T,{className:`h-3.5 w-3.5`}))]})]}),F=(0,q.jsxs)(q.Fragment,{children:[m&&(0,q.jsx)(ke,{toolCall:e,isSubmitting:s,onSubmit:j,onAllowAndCreateRule:M}),!m&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`mt-2.5`,children:[(0,q.jsx)(`div`,{className:`mb-1.5 text-label-small-default uppercase tracking-wider text-[var(--content-tertiary)]`,children:`Technical Details`}),(0,q.jsx)(`div`,{className:`text-[var(--content-secondary)]`,children:`Tool Name`}),(0,q.jsx)(`div`,{className:`text-[var(--content-secondary)]`,children:e.name.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}),y&&(0,q.jsx)(`div`,{className:`mt-0.5 text-[var(--content-tertiary)]`,children:y}),x&&(0,q.jsxs)(`div`,{className:`mt-0.5`,children:[(0,q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-default)]`,children:`Tool latency:`}),` `,(0,q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:x})]}),Object.entries(e.input).map(([e,t])=>(0,q.jsxs)(`div`,{className:`mt-0.5`,children:[(0,q.jsxs)(`span`,{className:`text-label-medium-default text-[var(--content-default)]`,children:[e,`:`]}),` `,(0,q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:typeof t==`string`?t.length>200?t.slice(0,200)+`...`:t:JSON.stringify(t)})]},e))]}),e.result!==void 0&&(0,q.jsxs)(`div`,{className:`mt-3`,children:[(0,q.jsx)(`div`,{className:`mb-1.5 text-label-small-default uppercase tracking-wider text-[var(--content-tertiary)]`,children:`Output`}),(0,q.jsxs)(`div`,{className:`relative rounded-md border p-3 ${u?`border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)]`:`border-[var(--border-element)] bg-[var(--surface-base)]`}`,children:[(0,q.jsx)(`pre`,{className:`whitespace-pre-wrap break-words text-body-small-default max-h-60 overflow-y-auto pr-8 ${u?`text-[var(--system-negative-strong)]`:`text-[var(--content-default)]`}`,children:e.result.length>2e3?e.result.slice(0,2e3)+`...`:e.result}),(0,q.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),N()},className:`absolute right-2 top-2 rounded p-1 text-[var(--content-tertiary)] hover:bg-[var(--ghost-hover)] hover:text-[var(--content-default)]`,title:`Copy output`,children:(0,q.jsx)(W,{className:`h-4 w-4`})})]})]})]})]});return i?(0,q.jsxs)(`div`,{className:`w-full`,children:[(0,q.jsx)(`div`,{role:`button`,tabIndex:k?0:void 0,onClick:()=>{k&&o(!a)},onKeyDown:e=>{k&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),o(!a))},className:`w-full ${k?`cursor-pointer`:`cursor-default`}`,children:P}),a&&k&&(m?(0,q.jsx)(`div`,{className:`px-3 pt-1 pb-2`,children:(0,q.jsx)(ke,{toolCall:e,isSubmitting:s,onSubmit:j,onAllowAndCreateRule:M})}):(0,q.jsx)(`div`,{className:`pl-6 pr-3 pb-2 text-label-medium-default`,children:F}))]}):(0,q.jsxs)(`div`,{className:`my-1 w-full`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>{k&&o(!a)},className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-body-medium-default transition-colors ${u?`bg-[var(--system-negative-weak)]`:`bg-[var(--surface-base)]`} ${k?`cursor-pointer hover:bg-[var(--surface-active)]`:`cursor-default`} ${a?`rounded-b-none`:``}`,children:[(0,q.jsx)(Oe,{isRunning:f,isError:u}),(0,q.jsx)(`span`,{className:u?`text-[var(--system-negative-strong)]`:`text-[var(--content-default)]`,children:te}),(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[v&&(0,q.jsx)(`span`,{className:`text-label-small-default text-[var(--content-tertiary)]`,title:y,children:v}),k&&(a?(0,q.jsx)(E,{className:`h-4 w-4`}):(0,q.jsx)(w,{className:`h-4 w-4`}))]})]}),a&&k&&(0,q.jsxs)(`div`,{className:`rounded-b-lg border-t px-3 pb-3 text-label-medium-default ${u?`border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)]`:`border-[var(--border-element)] bg-[var(--surface-base)]`}`,children:[P,F]})]})}function je({state:e,testId:t}){switch(e){case`loading`:return null;case`complete`:return(0,q.jsx)(O,{"data-testid":t,"aria-hidden":`true`,"data-state":`complete`,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-positive-strong)]`});case`warning`:return(0,q.jsx)(ne,{"data-testid":t,"aria-hidden":`true`,"data-state":`warning`,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-mid-strong)]`});default:return(0,q.jsx)(D,{"data-testid":t,"aria-hidden":`true`,"data-state":e,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-negative-strong)]`})}}function Me({state:e,leadingIcon:t,currentStepTitle:r,currentStepInfo:i,headerAnimationKey:a,hideStatusIndicator:s=!1,headerActive:c=!1,stepCount:l,defaultExpanded:u=!1,expanded:d,onExpandChange:f,disableExpand:p=!1,bare:m=!1,children:h,"data-testid":g=`tool-progress-card-shell`,statusIndicatorTestId:ee=`tool-progress-card-status-indicator`,headerActionSlot:_,onHeaderClick:v,headerAriaLabel:y}){let[b,x]=(0,K.useState)(u),S=d!==void 0,C=S?d:b,w=V(),T=()=>{if(v){v();return}if(p)return;let e=!C;S||x(e),f?.(e)},E=w?{duration:0}:{duration:.25,ease:[.16,1,.3,1]};return(0,q.jsxs)(`div`,{"data-testid":g,className:m?`flex w-full flex-col`:`flex w-full flex-col rounded-[var(--radius-lg)] border-b border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(()=>{let u=(0,q.jsxs)(`span`,{className:m?`flex min-w-0 items-center gap-1`:`flex min-w-0 flex-1 items-center gap-1`,children:[s||e===`loading`?null:(0,q.jsx)(B,{mode:`wait`,initial:!1,children:(0,q.jsx)(z.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:w?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`inline-flex shrink-0`,children:(0,q.jsx)(je,{state:e,testId:ee})},e)}),t?(0,q.jsx)(`span`,{className:`mx-1 flex shrink-0 items-center`,children:t}):null,(0,q.jsx)(le,{currentStepTitle:r,currentStepInfo:i,animationKey:a,bypassDwell:e!==`loading`,shimmer:e===`loading`,inline:m})]}),d=l&&!l.startsWith(`0 `)&&!l.startsWith(`1 `)?(0,q.jsx)(`span`,{"data-testid":`tool-progress-card-step-count-pill`,className:`flex shrink-0 items-center rounded-[var(--radius-pill)] bg-[var(--surface-overlay)] px-[6px] py-[4px]`,children:(0,q.jsx)(o,{variant:`body-small-default`,className:`text-[var(--content-emphasised)]`,children:l})}):null,f={variant:`ghost`,size:`compact`,"aria-expanded":v?void 0:C,"aria-label":y??(C?`Collapse steps`:`Expand steps`),onClick:T,disabled:!v&&p};return _?(0,q.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,q.jsx)(n,{...f,className:`h-auto min-w-0 flex-1 justify-start gap-2 p-3 ${C?`rounded-tl-[var(--radius-lg)] rounded-b-none`:`rounded-l-[var(--radius-lg)]`}`,children:u}),(0,q.jsxs)(`div`,{"data-testid":`tool-progress-card-action-slot`,className:`flex shrink-0 items-center gap-2 pr-3`,children:[_,d]})]}):(0,q.jsxs)(n,{...f,className:m?`h-auto w-fit min-w-0 max-w-[calc(100%+0.375rem)] justify-start gap-2 rounded-md border-0 px-1.5 py-1.5 -ml-1.5 hover:bg-[var(--surface-hover)]${C||c?` bg-[var(--surface-hover)]`:``}`:`h-auto w-full min-w-0 justify-between gap-2 p-3 ${C?`rounded-t-[var(--radius-lg)] rounded-b-none`:`rounded-[var(--radius-lg)]`}`,children:[u,d]})})(),(0,q.jsx)(B,{initial:!1,children:C&&h!=null?(0,q.jsx)(z.div,{initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:E,className:`overflow-hidden`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[m?null:(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--surface-base)]`}),h]})},`expanded-body`):null})]})}function Ne(e){let[t,n]=(0,K.useState)(()=>Date.now());return(0,K.useEffect)(()=>{if(!e)return;n(Date.now());let t=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(t)},[e]),e?t:void 0}function Pe(e){return ue(e,m.use.liveWebActivity(),Ne(me(e)))}var Fe=80;function Ie(e){return e.map(e=>({kind:`toolCall`,toolCall:e}))}function Le(e){let t=0,n=0;for(let r of e)r.kind!==`thinking`&&(t+=1,(r.kind===`tool_error`||r.kind===`web_search_error`||r.kind===`tool`&&(r.status===`error`||r.status===`denied`))&&(n+=1));return{total:t,failed:n}}function Re(e,t){if(e===`loading`||e===`complete`)return e;let{total:n,failed:r}=Le(t);return r>0&&r<n?`warning`:`error`}function ze(e,t,n){if(e===`loading`)return t&&t!==`<1s`?`Working for ${t}`:`Working`;if(t)return`Worked for ${t}`;switch(e){case`warning`:return`${n} ${n===1?`tool`:`tools`} failed`;case`error`:case`denied`:return`Failed`;default:return`Completed`}}function Be(e){let{toolCalls:t}=e,n=t.some(e=>!!e.pendingConfirmation),r=(0,K.useMemo)(()=>e.items??Ie(t),[e.items,t]),i=Pe(r),a=Ue(t[0]?.id??null);return n?(0,q.jsx)(Ge,{...e}):i.steps.length===0?null:t.length===1&&t[0].name===`web_search`?(0,q.jsx)(Ve,{toolCalls:t,cardData:i,expanded:a.value,onExpandChange:a.onChange}):(0,q.jsx)(He,{...e,cardData:i,effectiveItems:r})}function Ve({toolCalls:e,cardData:t,expanded:n,onExpandChange:r}){let i=e.some(e=>se(e))?`loading`:t.state===`error`||t.state===`denied`?`error`:`complete`,a=t.steps.find(e=>e.kind===`web_search`||e.kind===`web_search_error`)??null;return(0,q.jsx)(xe,{variant:`web`,info:t.currentStepInfo,carouselItems:t.carouselItems,state:i,step:a,expanded:n,onExpandChange:r})}function He({toolCalls:e,cardData:t,effectiveItems:n,onOpenRuleEditor:r,unknownNudgeToolCallIds:i,onDismissUnknownNudge:a,messageId:s,groupIndex:c}){let l=L.use.toggleActivitySteps(),u=L.use.mainView(),d=L.use.activeActivitySteps(),f=Re(t.state,t.steps),p=(0,K.useMemo)(()=>({messageId:s,groupIndex:c,items:n,toolCalls:e}),[s,c,n,e]),m=u===`activity-steps`&&d!=null&&ae(d,p),h=(0,K.useMemo)(()=>t.currentStepKind===`thinking`?(0,q.jsxs)(`span`,{className:`flex w-full min-w-0 items-center gap-1`,children:[(0,q.jsx)(C,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,q.jsx)(o,{variant:`body-small-default`,className:`min-w-0 flex-1 truncate text-left leading-[16px] text-[var(--content-tertiary)]`,children:x(t.currentStepInfo,Fe)})]}):t.currentStepInfo,[t.currentStepKind,t.currentStepInfo]),g=i&&r?e.filter(e=>i.has(e.id)):[];return(0,q.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,q.jsx)(Me,{bare:!0,hideStatusIndicator:!0,state:f,currentStepTitle:t.currentStepTitle,currentStepInfo:h,stepCount:t.stepCount,onHeaderClick:()=>l(p),headerAriaLabel:`View steps`,headerActive:m}),g.map(e=>(0,q.jsx)(We,{toolCall:e,onOpenRuleEditor:r,onDismiss:a},e.id))]})}function Ue(e){return{value:b(t=>e==null?void 0:t.expandedCardIds.get(e))??!1,onChange:(0,K.useCallback)(t=>{e!=null&&b.getState().setExpandedCardId(e,t)},[e])}}function We({toolCall:e,onOpenRuleEditor:t,onDismiss:n}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-1 pl-6 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,q.jsx)(`span`,{children:`This command wasn't recognized.`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>t({toolName:e.name,riskLevel:e.riskLevel,riskReason:e.riskReason,input:e.input??{},allowlistOptions:e.riskAllowlistOptions??[],scopeOptions:e.scopeOptions??[],directoryScopeOptions:e.riskDirectoryScopeOptions??[]}),className:`font-medium text-[var(--content-default)] underline underline-offset-2 hover:text-[var(--content-secondary)]`,children:`Create a rule`}),(0,q.jsx)(`span`,{children:`to classify it for next time.`}),n&&(0,q.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:()=>n(e.id),className:`ml-1 text-[var(--content-disabled)] hover:text-[var(--content-tertiary)]`,children:(0,q.jsx)(re,{className:`h-3.5 w-3.5`})})]})}function Ge({toolCalls:e,onOpenRuleEditor:t,onConfirmationSubmit:n,onAllowAndCreateRule:r,unknownNudgeToolCallIds:i,onDismissUnknownNudge:a}){return(0,q.jsx)(`div`,{className:`my-1 w-full`,children:(0,q.jsx)(`div`,{className:`space-y-0 rounded-lg bg-[var(--surface-overlay)]`,children:e.map(e=>(0,q.jsxs)(K.Fragment,{children:[(0,q.jsx)(Ae,{toolCall:e,onOpenRuleEditor:t,embedded:!0,...e.pendingConfirmation?{onConfirmationSubmit:n,onAllowAndCreateRule:r}:{}}),i?.has(e.id)&&t&&(0,q.jsx)(We,{toolCall:e,onOpenRuleEditor:t,onDismiss:a})]},e.id))})})}var Ke=/:([\w+-]+)$/,qe=[],Je=()=>qe,Y=null,X=null,Z=null;function Ye(){return Y&&X?Promise.resolve():Z||(Z=r(()=>import(`./emoji-catalog-data-BCc1YNMR.js`).then(e=>{Y=e.searchEmoji;let t=new Map(e.EMOJI_CATALOG.map(e=>[e.shortcode,e.emoji]));X=e=>t.get(e)}),[]),Z)}function Xe(){let[e,t]=(0,K.useState)(()=>Y??Je);return(0,K.useEffect)(()=>{if(Y)return;let e=!1;return Ye().then(()=>{!e&&Y&&t(()=>Y)}),()=>{e=!0}},[]),e}var Ze=()=>void 0;function Qe(){let[e,t]=(0,K.useState)(()=>X??Ze);return(0,K.useEffect)(()=>{if(X)return;let e=!1;return Ye().then(()=>{!e&&X&&t(()=>X)}),()=>{e=!0}},[]),e}function $e(e){if(h(e)&&!(typeof e.result!=`string`||!e.result))try{let t=JSON.parse(e.result);return typeof t.subagentId==`string`?t.subagentId:void 0}catch{return}}function et(e,t){return e.size===0?oe:e.get(t.id)??oe}function tt(e,t,n,r){let i=e.filter(h);if(i.length===0)return[];let a=[];for(let e of i){let i=n.get(e.id);if(i&&!r.has(i)){a.push(i),r.add(i);continue}let o=$e(e);if(o){a.push(o),r.add(o);continue}let s=t.find(e=>!r.has(e.subagentId));s&&(a.push(s.subagentId),r.add(s.subagentId))}return a}function nt(e){if(!u(e)||typeof e.result!=`string`||!e.result)return null;try{let t=JSON.parse(e.result);return typeof t.runId==`string`?t.runId:null}catch{return null}}function Q(e,t){return u(e)?t.get(e.id)??nt(e):null}function rt(e,t,n){let r=[];for(let i of e){if(!u(i))continue;let e=t.get(i.id);if(e&&!n.has(e)){r.push(e),n.add(e);continue}let a=nt(i);a&&!n.has(a)&&(r.push(a),n.add(a))}return r}function it(e,t){let n=new Set;for(let r of e){let e=Q(r,t.byToolUseId);if(e!==null){if(t.byId[e]!==void 0){n.add(e);continue}t.notFoundRunIds.has(e)||t.hydrationFailedRunIds.has(e)||n.add(e)}}return n}function at(e){if(!v(e)||typeof e.result!=`string`||!e.result)return null;try{let t=JSON.parse(e.result);return typeof t.acpSessionId==`string`?t.acpSessionId:null}catch{return null}}function ot(e){if(l(e)&&!(typeof e.result!=`string`||!e.result))try{let t=JSON.parse(e.result);return t.backgrounded===!0&&typeof t.id==`string`?t.id:void 0}catch{return}}function st(e,t){let n=[];for(let r of e){if(!l(r))continue;let e=ot(r);e&&!t.has(e)&&(n.push(e),t.add(e))}return n}function ct(e,t){return v(e)?t.get(e.id)??at(e):null}function lt(e,t,n){let r=[];for(let i of e){if(!v(i))continue;let e=t.get(i.id);if(e&&!n.has(e)){r.push(e),n.add(e);continue}let a=at(i);a&&!n.has(a)&&(r.push(a),n.add(a))}return r}function ut(e,t){return e===`assistant`?$(t)??`Assistant`:`User`}function $(...e){for(let t of e){let e=t?.trim();if(e)return e}}function dt(e,t){if(!e.slackMessage)return null;let n=e.slackMessage.sender;return $(n?.displayName,n?.name,n?.username,n?.externalUserId)??ut(e.role,t)}function ft(e){return _e(e)}function pt({message:e,assistantDisplayName:t}){let n=dt(e,t);return n?(0,q.jsx)(`div`,{"data-testid":`slack-message-attribution`,className:`inline-flex items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:(0,q.jsx)(`span`,{children:n})}):null}function mt({message:e}){let t=Qe(),n=e.slackMessage?.reaction;if(!n)return null;let r=t(n.emoji)??`:${n.emoji}:`,i=n.actorDisplayName??e.slackMessage?.sender?.displayName??e.slackMessage?.sender?.name,a=n.op===`added`?`reacted`:`removed reaction`;return(0,q.jsxs)(`div`,{"data-testid":`slack-reaction-line`,className:`flex items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,q.jsx)(`span`,{className:`text-base`,children:r}),i&&(0,q.jsx)(`span`,{children:i}),(0,q.jsx)(`span`,{children:a})]})}export{G as C,_e as S,U as T,Le as _,ot as a,Se as b,lt as c,rt as d,Q as f,ze as g,Be as h,it as i,st as l,Xe as m,mt as n,ft as o,Ke as p,ct as r,et as s,pt as t,tt as u,Re as v,W as w,xe as x,Pe as y};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./typography-DEI9Ra9z.js";import{t as s}from"./card-DRIctGVs.js";import{t as c}from"./notice-BMK7xqUw.js";import{n as l}from"./toast-LgLp4obE.js";import{u}from"./routes-D9sNqB_o.js";import{i as d,r as f,t as p}from"./use-platform-gate-bFyCaLbM.js";import{t as m}from"./platform-login-notice-BaCrIk0m.js";var h=e(t(),1),g=a();function _(){let e=d({platformHostedOnly:!0}),t=p(),a=f(),_=i();return(0,h.useEffect)(()=>{t&&(l.info(`Upgrade canceled. No changes to your plan.`,{id:`pro-upgrade-cancel`}),_(u.settings.usageBilling,{replace:!0}))},[_,t]),e===`gated`?(0,g.jsx)(r,{replace:!0,to:u.settings.general}):e===`disabled`?(0,g.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,g.jsx)(m,{children:`Log in to the Vellum platform to manage billing and usage.`})}):!t&&!a?(0,g.jsxs)(`div`,{className:`max-w-4xl space-y-6`,children:[(0,g.jsx)(c,{tone:`warning`,children:`Billing isn't available for the current assistant state.`}),(0,g.jsx)(`div`,{className:`flex justify-end`,children:(0,g.jsx)(n,{variant:`primary`,onClick:()=>_(u.settings.usageBilling,{replace:!0}),children:`Return to billing`})})]}):(0,g.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,g.jsxs)(s,{padding:`lg`,children:[(0,g.jsx)(o,{as:`h1`,variant:`title-large`,children:`Upgrade canceled`}),(0,g.jsx)(o,{as:`p`,variant:`body-medium-default`,className:`mt-2`,children:`Returning you to billing settings…`})]})})}export{_ as UpgradeCancelPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./typography-DEI9Ra9z.js";import{t as s}from"./card-DRIctGVs.js";import{t as c}from"./notice-BMK7xqUw.js";import{n as l}from"./toast-LgLp4obE.js";import{u}from"./routes-D9sNqB_o.js";import{i as d,r as f,t as p}from"./use-platform-gate-C65D14xY.js";import{t as m}from"./platform-login-notice-CdYiKsE8.js";var h=e(t(),1),g=a();function _(){let e=d({platformHostedOnly:!0}),t=p(),a=f(),_=i();return(0,h.useEffect)(()=>{t&&(l.info(`Upgrade canceled. No changes to your plan.`,{id:`pro-upgrade-cancel`}),_(u.settings.usageBilling,{replace:!0}))},[_,t]),e===`gated`?(0,g.jsx)(r,{replace:!0,to:u.settings.general}):e===`disabled`?(0,g.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,g.jsx)(m,{children:`Log in to the Vellum platform to manage billing and usage.`})}):!t&&!a?(0,g.jsxs)(`div`,{className:`max-w-4xl space-y-6`,children:[(0,g.jsx)(c,{tone:`warning`,children:`Billing isn't available for the current assistant state.`}),(0,g.jsx)(`div`,{className:`flex justify-end`,children:(0,g.jsx)(n,{variant:`primary`,onClick:()=>_(u.settings.usageBilling,{replace:!0}),children:`Return to billing`})})]}):(0,g.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,g.jsxs)(s,{padding:`lg`,children:[(0,g.jsx)(o,{as:`h1`,variant:`title-large`,children:`Upgrade canceled`}),(0,g.jsx)(o,{as:`p`,variant:`body-medium-default`,className:`mt-2`,children:`Returning you to billing settings…`})]})})}export{_ as UpgradeCancelPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./card-DRIctGVs.js";import{t as u}from"./circle-alert-DVCpoZrc.js";import{t as d}from"./circle-check-CjGnAahM.js";import{t as f}from"./loader-circle-XREx3i4W.js";import{t as p}from"./notice-BMK7xqUw.js";import{u as m}from"./routes-D9sNqB_o.js";import{i as h,r as g,t as _}from"./use-platform-gate-bFyCaLbM.js";import{lt as v,ut as y}from"./react-query.gen-BC3STDmV.js";import{t as b}from"./platform-login-notice-BaCrIk0m.js";var x=e(t(),1),S=s(),C=1e3,w=1e4,T=2500;function E(){let e=h({platformHostedOnly:!0}),t=_(),s=g(),c=e===`full`&&t,u=i(),d=a(),[f,E]=(0,x.useState)(!1);(0,x.useEffect)(()=>{d.invalidateQueries({queryKey:y()})},[d]);let{data:j,isError:M}=o({...v(),enabled:c,refetchInterval:e=>e.state.data?.plan_id===`pro`||f?!1:C,refetchIntervalInBackground:!1}),N=c?j:void 0,P=c?M:!1;(0,x.useEffect)(()=>{if(!c)return;let e=setTimeout(()=>E(!0),w);return()=>clearTimeout(e)},[c]);let F=N?.plan_id===`pro`;(0,x.useEffect)(()=>{if(!F)return;let e=setTimeout(()=>{u(m.settings.usageBilling,{replace:!0})},T);return()=>clearTimeout(e)},[F,u]);let I=()=>u(m.settings.usageBilling,{replace:!0});return e===`gated`?(0,S.jsx)(r,{replace:!0,to:m.settings.general}):e===`disabled`?(0,S.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,S.jsx)(b,{children:`Log in to the Vellum platform to manage billing and usage.`})}):!c&&!s?(0,S.jsxs)(`div`,{className:`max-w-4xl space-y-6`,children:[(0,S.jsx)(p,{tone:`warning`,children:`We can't confirm your upgrade for the current assistant. Return to billing to retry.`}),(0,S.jsx)(`div`,{className:`flex justify-end`,children:(0,S.jsx)(n,{variant:`primary`,"data-testid":`upgrade-success-go-to-billing`,onClick:I,children:`Go to billing`})})]}):(0,S.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,S.jsxs)(l,{padding:`lg`,children:[F?(0,S.jsx)(O,{}):P?(0,S.jsx)(A,{}):f?(0,S.jsx)(k,{}):(0,S.jsx)(D,{}),(F||P||f)&&(0,S.jsx)(`div`,{className:`mt-4 flex justify-end`,children:(0,S.jsx)(n,{variant:F||P?`primary`:`outlined`,"data-testid":`upgrade-success-go-to-billing`,onClick:I,children:`Go to billing`})})]})})}function D(){return(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-6 text-center`,children:[(0,S.jsx)(f,{className:`h-6 w-6 animate-spin text-[var(--content-secondary)]`,"aria-hidden":`true`}),(0,S.jsx)(c,{variant:`title-small`,as:`h1`,children:`Finalizing your upgrade…`}),(0,S.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`Stripe is confirming your subscription. This usually takes a few seconds.`})]})}function O(){return(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-6 text-center`,children:[(0,S.jsx)(d,{className:`h-8 w-8 text-[var(--system-positive-strong)]`,"aria-hidden":`true`}),(0,S.jsx)(c,{variant:`title-small`,as:`h1`,children:`Welcome to Pro`}),(0,S.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`Your Pro plan is active. You'll be redirected back to billing in a moment.`})]})}function k(){return(0,S.jsx)(p,{tone:`warning`,children:`We're processing your upgrade — refresh in a moment to see your new plan.`})}function A(){return(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-6 text-center`,children:[(0,S.jsx)(u,{className:`h-8 w-8 text-[var(--system-negative-strong)]`,"aria-hidden":`true`}),(0,S.jsx)(c,{variant:`title-small`,as:`h1`,children:`Couldn't reach billing`}),(0,S.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`We hit a problem checking your subscription. Your upgrade may still be processing — return to billing to refresh.`})]})}export{E as UpgradeSuccessPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./card-DRIctGVs.js";import{t as u}from"./circle-alert-DVCpoZrc.js";import{t as d}from"./circle-check-CjGnAahM.js";import{t as f}from"./loader-circle-XREx3i4W.js";import{t as p}from"./notice-BMK7xqUw.js";import{u as m}from"./routes-D9sNqB_o.js";import{i as h,r as g,t as _}from"./use-platform-gate-C65D14xY.js";import{lt as v,ut as y}from"./react-query.gen-BC3STDmV.js";import{t as b}from"./platform-login-notice-CdYiKsE8.js";var x=e(t(),1),S=s(),C=1e3,w=1e4,T=2500;function E(){let e=h({platformHostedOnly:!0}),t=_(),s=g(),c=e===`full`&&t,u=i(),d=a(),[f,E]=(0,x.useState)(!1);(0,x.useEffect)(()=>{d.invalidateQueries({queryKey:y()})},[d]);let{data:j,isError:M}=o({...v(),enabled:c,refetchInterval:e=>e.state.data?.plan_id===`pro`||f?!1:C,refetchIntervalInBackground:!1}),N=c?j:void 0,P=c?M:!1;(0,x.useEffect)(()=>{if(!c)return;let e=setTimeout(()=>E(!0),w);return()=>clearTimeout(e)},[c]);let F=N?.plan_id===`pro`;(0,x.useEffect)(()=>{if(!F)return;let e=setTimeout(()=>{u(m.settings.usageBilling,{replace:!0})},T);return()=>clearTimeout(e)},[F,u]);let I=()=>u(m.settings.usageBilling,{replace:!0});return e===`gated`?(0,S.jsx)(r,{replace:!0,to:m.settings.general}):e===`disabled`?(0,S.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,S.jsx)(b,{children:`Log in to the Vellum platform to manage billing and usage.`})}):!c&&!s?(0,S.jsxs)(`div`,{className:`max-w-4xl space-y-6`,children:[(0,S.jsx)(p,{tone:`warning`,children:`We can't confirm your upgrade for the current assistant. Return to billing to retry.`}),(0,S.jsx)(`div`,{className:`flex justify-end`,children:(0,S.jsx)(n,{variant:`primary`,"data-testid":`upgrade-success-go-to-billing`,onClick:I,children:`Go to billing`})})]}):(0,S.jsx)(`div`,{className:`max-w-4xl space-y-6`,children:(0,S.jsxs)(l,{padding:`lg`,children:[F?(0,S.jsx)(O,{}):P?(0,S.jsx)(A,{}):f?(0,S.jsx)(k,{}):(0,S.jsx)(D,{}),(F||P||f)&&(0,S.jsx)(`div`,{className:`mt-4 flex justify-end`,children:(0,S.jsx)(n,{variant:F||P?`primary`:`outlined`,"data-testid":`upgrade-success-go-to-billing`,onClick:I,children:`Go to billing`})})]})})}function D(){return(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-6 text-center`,children:[(0,S.jsx)(f,{className:`h-6 w-6 animate-spin text-[var(--content-secondary)]`,"aria-hidden":`true`}),(0,S.jsx)(c,{variant:`title-small`,as:`h1`,children:`Finalizing your upgrade…`}),(0,S.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`Stripe is confirming your subscription. This usually takes a few seconds.`})]})}function O(){return(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-6 text-center`,children:[(0,S.jsx)(d,{className:`h-8 w-8 text-[var(--system-positive-strong)]`,"aria-hidden":`true`}),(0,S.jsx)(c,{variant:`title-small`,as:`h1`,children:`Welcome to Pro`}),(0,S.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`Your Pro plan is active. You'll be redirected back to billing in a moment.`})]})}function k(){return(0,S.jsx)(p,{tone:`warning`,children:`We're processing your upgrade — refresh in a moment to see your new plan.`})}function A(){return(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-6 text-center`,children:[(0,S.jsx)(u,{className:`h-8 w-8 text-[var(--system-negative-strong)]`,"aria-hidden":`true`}),(0,S.jsx)(c,{variant:`title-small`,as:`h1`,children:`Couldn't reach billing`}),(0,S.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`We hit a problem checking your subscription. Your upgrade may still be processing — return to billing to refresh.`})]})}export{E as UpgradeSuccessPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./client-feature-flag-store-BDrcV52r.js";import{n as r,t as i}from"./theme-preferences-Bb2pPRXa.js";var a=e(t(),1);function o(){let e=n.use.velvet();(0,a.useEffect)(()=>{i(r({velvetEnabled:e}));let t=window.matchMedia(`(prefers-color-scheme: dark)`),n=()=>{let t=r({velvetEnabled:e});t===`system`&&i(t)};return t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[e])}export{o as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./client-feature-flag-store-CMncoan8.js";import{n as r,t as i}from"./theme-preferences-Bb2pPRXa.js";var a=e(t(),1);function o(){let e=n.use.velvet();(0,a.useEffect)(()=>{i(r({velvetEnabled:e}));let t=window.matchMedia(`(prefers-color-scheme: dark)`),n=()=>{let t=r({velvetEnabled:e});t===`system`&&i(t)};return t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[e])}export{o as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{Fr as i,Hr as a,Ir as o,Lr as s,d as c,f as l,m as u,p as d}from"./sdk.gen-BVAVE6A_.js";import{i as f,r as p,t as m}from"./utils-CnB60ZJN.js";import{n as h}from"./api-errors-CFiCT7Ap.js";var g=e(t(),1),_=`0.8.7`;function v(){return m(_)}function y(){return p(_)}async function b(){return await f(),v()}function x(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.bodyShape==`string`&&typeof t.eyeStyle==`string`&&typeof t.color==`string`}function S(e){return e===`character`||e===`image`||e===`none`}function C(e){return e===`builder`||e===`upload`||e===`ai`}function w(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.updatedAt==`string`&&typeof t.etag==`string`}function T(e){if(typeof e!=`object`||!e)return!1;let t=e;return S(t.kind)&&(t.traits===null||x(t.traits))&&(t.source===null||C(t.source))&&(t.image===null||w(t.image))}async function E(e){try{let{data:t,error:n,response:r}=await u({path:{assistant_id:e},throwOnError:!1});return h(r,n,`Failed to fetch avatar state`),!r.ok||!T(t)?null:t}catch{return null}}async function D(e){try{let{data:t,error:n,response:r}=await c({path:{assistant_id:e},throwOnError:!1});return h(r,n,`Failed to fetch character components`),!r.ok||!t?null:t}catch{return null}}async function O(e){try{let{data:t,error:n,response:r}=await s({path:{assistant_id:e},query:{path:`data/avatar/character-traits.json`},throwOnError:!1});if(h(r,n,`Failed to fetch character traits`),!r.ok||!t)return null;let i=JSON.parse(t.content);return x(i)?i:null}catch{return null}}async function k(e,t){try{let{error:n,response:r}=await d({path:{assistant_id:e},body:t,throwOnError:!1});return h(r,n,`Failed to save character traits`),r.ok}catch{return!1}}async function A(e,t){try{let n=await t.arrayBuffer(),r=btoa(new Uint8Array(n).reduce((e,t)=>e+String.fromCharCode(t),``));if(!await b())return j(e,r);let{error:i,response:a}=await l({path:{assistant_id:e},body:{content:r,encoding:`base64`},throwOnError:!1});return h(a,i,`Failed to upload avatar image`),a.ok}catch{return!1}}async function j(e,t){let{error:n,response:r}=await a({path:{assistant_id:e},body:{path:`data/avatar/avatar-image.png`,content:t,encoding:`base64`},throwOnError:!1});return h(r,n,`Failed to upload avatar image`),r.ok?(await i({path:{assistant_id:e},body:{path:`data/avatar/character-traits.json`},throwOnError:!1}),!0):!1}async function M(e){try{let{data:t,error:n,response:r}=await o({path:{assistant_id:e},query:{path:`data/avatar/avatar-image.png`},parseAs:`blob`,throwOnError:!1});return h(r,n,`Failed to fetch avatar image`),!r.ok||!t?null:URL.createObjectURL(t)}catch{return null}}var N=`assistantAvatar`;function P(e){return[N,e]}var F=new Map;async function I(e){let t=await E(e);if(t===null)throw Error(`Failed to fetch avatar state`);return t.kind===`character`?{traits:t.traits,imageUrl:null}:t.kind===`image`?{traits:null,imageUrl:await M(e)}:{traits:null,imageUrl:null}}async function L(e){let t=await M(e);return{traits:t?null:await O(e),imageUrl:t}}function R(e){let t=n(),i=y(),{data:a,isLoading:o}=r({queryKey:[...P(e??``),i],queryFn:async()=>{let t=e,[n,{traits:r,imageUrl:a}]=await Promise.all([D(t),i?I(t):L(t)]);if(!n&&!a)throw Error(`Failed to fetch character components`);let o=F.get(t);return o&&o!==a&&URL.revokeObjectURL(o),a?F.set(t,a):F.delete(t),{components:n,traits:r,customImageUrl:a}},enabled:!!e,staleTime:1/0,structuralSharing:!1,retry:1}),s=(0,g.useCallback)(()=>{e&&t.invalidateQueries({queryKey:P(e)})},[e,t]);return{components:a?.components??null,traits:a?.traits??null,customImageUrl:a?.customImageUrl??null,isLoading:o,invalidate:s}}export{k as a,O as i,R as n,A as o,D as r,P as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{Ir as i,Lr as a,Rr as o,Ur as s,d as c,f as l,m as u,p as d}from"./sdk.gen-BHZ0fJla.js";import{i as f,r as p,t as m}from"./utils-CnB60ZJN.js";import{n as h}from"./api-errors-CFiCT7Ap.js";var g=e(t(),1),_=`0.8.7`;function v(){return m(_)}function y(){return p(_)}async function b(){return await f(),v()}function x(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.bodyShape==`string`&&typeof t.eyeStyle==`string`&&typeof t.color==`string`}function S(e){return e===`character`||e===`image`||e===`none`}function C(e){return e===`builder`||e===`upload`||e===`ai`}function w(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.updatedAt==`string`&&typeof t.etag==`string`}function T(e){if(typeof e!=`object`||!e)return!1;let t=e;return S(t.kind)&&(t.traits===null||x(t.traits))&&(t.source===null||C(t.source))&&(t.image===null||w(t.image))}async function E(e){try{let{data:t,error:n,response:r}=await u({path:{assistant_id:e},throwOnError:!1});return h(r,n,`Failed to fetch avatar state`),!r.ok||!T(t)?null:t}catch{return null}}async function D(e){try{let{data:t,error:n,response:r}=await c({path:{assistant_id:e},throwOnError:!1});return h(r,n,`Failed to fetch character components`),!r.ok||!t?null:t}catch{return null}}async function O(e){try{let{data:t,error:n,response:r}=await o({path:{assistant_id:e},query:{path:`data/avatar/character-traits.json`},throwOnError:!1});if(h(r,n,`Failed to fetch character traits`),!r.ok||!t)return null;let i=JSON.parse(t.content);return x(i)?i:null}catch{return null}}async function k(e,t){try{let{error:n,response:r}=await d({path:{assistant_id:e},body:t,throwOnError:!1});return h(r,n,`Failed to save character traits`),r.ok}catch{return!1}}async function A(e,t){try{let n=await t.arrayBuffer(),r=btoa(new Uint8Array(n).reduce((e,t)=>e+String.fromCharCode(t),``));if(!await b())return j(e,r);let{error:i,response:a}=await l({path:{assistant_id:e},body:{content:r,encoding:`base64`},throwOnError:!1});return h(a,i,`Failed to upload avatar image`),a.ok}catch{return!1}}async function j(e,t){let{error:n,response:r}=await s({path:{assistant_id:e},body:{path:`data/avatar/avatar-image.png`,content:t,encoding:`base64`},throwOnError:!1});return h(r,n,`Failed to upload avatar image`),r.ok?(await i({path:{assistant_id:e},body:{path:`data/avatar/character-traits.json`},throwOnError:!1}),!0):!1}async function M(e){try{let{data:t,error:n,response:r}=await a({path:{assistant_id:e},query:{path:`data/avatar/avatar-image.png`},parseAs:`blob`,throwOnError:!1});return h(r,n,`Failed to fetch avatar image`),!r.ok||!t?null:URL.createObjectURL(t)}catch{return null}}var N=`assistantAvatar`;function P(e){return[N,e]}var F=new Map;async function I(e){let t=await E(e);if(t===null)throw Error(`Failed to fetch avatar state`);return t.kind===`character`?{traits:t.traits,imageUrl:null}:t.kind===`image`?{traits:null,imageUrl:await M(e)}:{traits:null,imageUrl:null}}async function L(e){let t=await M(e);return{traits:t?null:await O(e),imageUrl:t}}function R(e){let t=n(),i=y(),{data:a,isLoading:o}=r({queryKey:[...P(e??``),i],queryFn:async()=>{let t=e,[n,{traits:r,imageUrl:a}]=await Promise.all([D(t),i?I(t):L(t)]);if(!n&&!a)throw Error(`Failed to fetch character components`);let o=F.get(t);return o&&o!==a&&URL.revokeObjectURL(o),a?F.set(t,a):F.delete(t),{components:n,traits:r,customImageUrl:a}},enabled:!!e,staleTime:1/0,structuralSharing:!1,retry:1}),s=(0,g.useCallback)(()=>{e&&t.invalidateQueries({queryKey:P(e)})},[e,t]);return{components:a?.components??null,traits:a?.traits??null,customImageUrl:a?.customImageUrl??null,isLoading:o,invalidate:s}}export{k as a,O as i,R as n,A as o,D as r,P as t};
@@ -1 +1 @@
1
- import{t as e}from"./useQuery-Bz-fbQ-m.js";import{n as t}from"./resolved-assistants-store-Dw5UuGyB.js";import{a as n}from"./api-BlN0EOWF.js";function r(r){let i=t.use.activeAssistantId(),{data:a=!1}=e({queryKey:[`assistant-capability`,r,i],enabled:i!=null,queryFn:async()=>{if(!i)return!1;let e=await n(i);return e.ok&&e.data.capabilities?.[r]===!0},retry:!1,staleTime:6e4});return a}export{r as t};
1
+ import{t as e}from"./useQuery-Bz-fbQ-m.js";import{n as t}from"./resolved-assistants-store-Dw5UuGyB.js";import{a as n}from"./api-LG8zI3nK.js";function r(r){let i=t.use.activeAssistantId(),{data:a=!1}=e({queryKey:[`assistant-capability`,r,i],enabled:i!=null,queryFn:async()=>{if(!i)return!1;let e=await n(i);return e.ok&&e.data.capabilities?.[r]===!0},retry:!1,staleTime:6e4});return a}export{r as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-CJf7MmLX.js";import"./src-te3YTBG-.js";import{V as o,bn as s,tt as c,xn as l}from"./sdk.gen-BVAVE6A_.js";import{r as u}from"./api-BlN0EOWF.js";import{n as d,r as f,t as p}from"./eye-bbox-DU39FEUp.js";import{t as m}from"./proxy-D7UPVac3.js";import{t as h}from"./use-reduced-motion-W1fCe3vS.js";import{i as g}from"./avatar-tone-BKwvoDSj.js";import{l as _,n as v,t as y}from"./latest-assistant-text-C0pZSmc9.js";var b=e(n(),1),x=i(),S=.25,C=.46,w=.3,T=.85,E=.4,D=14,O=8;function k({components:e,traits:t,stage:n,entrance:r=!1,entranceDelay:i=0}){let a=h(),{w:o,h:s}=n,[c,l]=(0,b.useState)({x:0,y:0});(0,b.useEffect)(()=>{if(a)return;let e=e=>{l({x:(e.clientX/window.innerWidth-.5)*2,y:(e.clientY/window.innerHeight-.5)*2})};return window.addEventListener(`mousemove`,e),()=>window.removeEventListener(`mousemove`,e)},[a]);let u=r&&!a,[f,g]=(0,b.useState)(!1),[_,v]=(0,b.useState)(!r);(0,b.useEffect)(()=>{if(a||!_)return;let e=!1,t,n=n=>{e||(g(!0),t=setTimeout(()=>{e||(g(!1),t=setTimeout(n,140))},140))},i=()=>{t=setTimeout(()=>n(i),2500+Math.random()*4e3)};return r?n(()=>n(i)):i(),()=>{e=!0,clearTimeout(t)}},[a,_,r]);let y=(0,b.useMemo)(()=>{let n=e.eyeStyles.find(e=>e.id===t.eyeStyle);return n?{paths:n.paths,bbox:d(n.paths.map(e=>p(e.svgPath)))}:null},[e,t.eyeStyle]);if(!y||o===0||s===0)return null;let k=o*T,A=Math.min(Math.min(o,s)*w,k*y.bbox.h/y.bbox.w),j=A*y.bbox.w/y.bbox.h,M=(o-j)/2,N=s-(1-S)*A,P=E*s-(N+A/2),F=(C-S)*A,I=y.bbox.x+y.bbox.w/2,L=y.bbox.y+y.bbox.h/2;return(0,x.jsx)(m.div,{"aria-hidden":`true`,className:`pointer-events-none absolute z-[2]`,style:{left:M,top:N,width:j,height:A,transformOrigin:`center`},initial:u?{y:P,scale:.35}:!1,animate:u?{y:[P,F,0],scale:[.35,1,1]}:{y:0,scale:1},transition:u?{duration:1,delay:i,times:[0,.7,1],ease:`easeInOut`}:{duration:0},onAnimationComplete:()=>v(!0),children:(0,x.jsx)(`div`,{style:{transform:`translate(${c.x*D}px, ${c.y*O}px)`,transition:`transform 0.5s cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,x.jsx)(`svg`,{viewBox:`${y.bbox.x} ${y.bbox.y} ${y.bbox.w} ${y.bbox.h}`,width:j,height:A,style:{overflow:`visible`,display:`block`},children:(0,x.jsx)(`g`,{style:{transform:f?`scaleY(0.1)`:`scaleY(1)`,transformOrigin:`${I}px ${L}px`,transition:`transform 0.14s ease-in-out`},children:y.paths.map((e,t)=>(0,x.jsx)(`path`,{d:e.svgPath,fill:e.color},t))})})})})}var A=w*(1-S),j=`#17191C`,M=24,N=.2,P=96,F=160,I=(0,b.createContext)(null);function L(){let e=(0,b.useContext)(I);if(!e)throw Error(`useAssistantStage must be used inside <AssistantStage>`);return e}function R(e,t){return!e||!t?null:e.colors.find(e=>e.id===t.color)?.hex??null}function z({components:e,traits:t,customImageUrl:n,entrance:r=!1,children:i,className:o}){let{ref:s,size:c}=v(),l=R(e,t)??j,u=g(l),d=!!(e&&t),f=!d&&!!n,p=Math.round(Math.min(F,Math.max(P,Math.min(c.w,c.h)*N))),m=c.h-p-M,h=d?Math.round(A*Math.min(c.w,c.h))+16:f?p+M+16:24;return(0,x.jsxs)(`div`,{ref:s,className:a(`relative flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg border border-[var(--border-base)]`,o),style:{backgroundColor:l,color:u.fg},children:[d&&e&&t&&(0,x.jsx)(k,{components:e,traits:t,stage:c,entrance:r}),f&&n&&(0,x.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute z-[2] overflow-hidden rounded-full ring-4 ring-white/25`,style:{left:(c.w-p)/2,top:m,width:p,height:p},children:(0,x.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`,draggable:!1})}),(0,x.jsx)(I.Provider,{value:{stage:c,tone:u,bottomReserve:h},children:(0,x.jsx)(`div`,{className:`relative z-10 flex min-h-0 flex-1 flex-col`,children:i})})]})}var B=[{id:`companion-coworker`,left:`Companion`,right:`Coworker`},{id:`genz-boomer`,left:`Gen Z`,right:`Baby Boomer`},{id:`execute-collaborate`,left:`Independent`,right:`Collaborative`},{id:`playful-serious`,left:`Playful`,right:`Serious`},{id:`polite-unfiltered`,left:`Polite`,right:`Unfiltered`}],V=50,H=1500,U=12e4,W=e=>new Promise(t=>setTimeout(t,e));async function G({assistantId:e,content:n,title:r,context:i}){let a,u=!1;try{let t=await c({path:{assistant_id:e},body:{conversationType:`standard`,title:r},throwOnError:!1});if(a=t.data?.id,!t.response?.ok||!a)return!1;let i={conversationId:a,content:n,sourceChannel:`vellum`,interface:`vellum`,clientMessageId:crypto.randomUUID()};if(!(await l({path:{assistant_id:e},body:i,throwOnError:!1})).response?.ok)return!1;let o=Date.now()+U,d=``,f=0,p=!1;for(;Date.now()<o;){await W(H);let t=await s({path:{assistant_id:e},query:{conversationId:a},throwOnError:!1}),n=y(t.data?.messages??[]);if(n&&(f=n===d?f+1:0,d=n),t.data?.processing===!0&&(p=!0),_({processing:t.data?.processing,sawProcessing:p,hasReply:n.length>0,stableReads:f})){u=!0;break}}}catch(e){t(e,{context:i})}finally{if(a)try{await o({path:{assistant_id:e,id:a},throwOnError:!1})}catch(e){t(e,{context:`${i}_archive`})}}return u}function K(e){return[`assistant-identity-details`,e]}function q(e){return r({queryKey:K(e),queryFn:async()=>{let[t,n]=await Promise.all([f(e),u(e).catch(()=>({ok:!1,status:0,error:{}}))]);return{identity:t,createdAt:n.ok?n.data.created:null}}})}export{V as a,L as c,B as i,q as n,z as o,G as r,R as s,K as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-CJf7MmLX.js";import"./src-te3YTBG-.js";import{V as o,bn as s,tt as c,xn as l}from"./sdk.gen-BHZ0fJla.js";import{r as u}from"./api-LG8zI3nK.js";import{n as d,r as f,t as p}from"./eye-bbox-C_V87iLg.js";import{t as m}from"./proxy-D7UPVac3.js";import{t as h}from"./use-reduced-motion-W1fCe3vS.js";import{i as g}from"./avatar-tone-BKwvoDSj.js";import{l as _,n as v,t as y}from"./latest-assistant-text-DOepZ_Io.js";var b=e(n(),1),x=i(),S=.25,C=.46,w=.3,T=.85,E=.4,D=14,O=8;function k({components:e,traits:t,stage:n,entrance:r=!1,entranceDelay:i=0}){let a=h(),{w:o,h:s}=n,[c,l]=(0,b.useState)({x:0,y:0});(0,b.useEffect)(()=>{if(a)return;let e=e=>{l({x:(e.clientX/window.innerWidth-.5)*2,y:(e.clientY/window.innerHeight-.5)*2})};return window.addEventListener(`mousemove`,e),()=>window.removeEventListener(`mousemove`,e)},[a]);let u=r&&!a,[f,g]=(0,b.useState)(!1),[_,v]=(0,b.useState)(!r);(0,b.useEffect)(()=>{if(a||!_)return;let e=!1,t,n=n=>{e||(g(!0),t=setTimeout(()=>{e||(g(!1),t=setTimeout(n,140))},140))},i=()=>{t=setTimeout(()=>n(i),2500+Math.random()*4e3)};return r?n(()=>n(i)):i(),()=>{e=!0,clearTimeout(t)}},[a,_,r]);let y=(0,b.useMemo)(()=>{let n=e.eyeStyles.find(e=>e.id===t.eyeStyle);return n?{paths:n.paths,bbox:d(n.paths.map(e=>p(e.svgPath)))}:null},[e,t.eyeStyle]);if(!y||o===0||s===0)return null;let k=o*T,A=Math.min(Math.min(o,s)*w,k*y.bbox.h/y.bbox.w),j=A*y.bbox.w/y.bbox.h,M=(o-j)/2,N=s-(1-S)*A,P=E*s-(N+A/2),F=(C-S)*A,I=y.bbox.x+y.bbox.w/2,L=y.bbox.y+y.bbox.h/2;return(0,x.jsx)(m.div,{"aria-hidden":`true`,className:`pointer-events-none absolute z-[2]`,style:{left:M,top:N,width:j,height:A,transformOrigin:`center`},initial:u?{y:P,scale:.35}:!1,animate:u?{y:[P,F,0],scale:[.35,1,1]}:{y:0,scale:1},transition:u?{duration:1,delay:i,times:[0,.7,1],ease:`easeInOut`}:{duration:0},onAnimationComplete:()=>v(!0),children:(0,x.jsx)(`div`,{style:{transform:`translate(${c.x*D}px, ${c.y*O}px)`,transition:`transform 0.5s cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,x.jsx)(`svg`,{viewBox:`${y.bbox.x} ${y.bbox.y} ${y.bbox.w} ${y.bbox.h}`,width:j,height:A,style:{overflow:`visible`,display:`block`},children:(0,x.jsx)(`g`,{style:{transform:f?`scaleY(0.1)`:`scaleY(1)`,transformOrigin:`${I}px ${L}px`,transition:`transform 0.14s ease-in-out`},children:y.paths.map((e,t)=>(0,x.jsx)(`path`,{d:e.svgPath,fill:e.color},t))})})})})}var A=w*(1-S),j=`#17191C`,M=24,N=.2,P=96,F=160,I=(0,b.createContext)(null);function L(){let e=(0,b.useContext)(I);if(!e)throw Error(`useAssistantStage must be used inside <AssistantStage>`);return e}function R(e,t){return!e||!t?null:e.colors.find(e=>e.id===t.color)?.hex??null}function z({components:e,traits:t,customImageUrl:n,entrance:r=!1,children:i,className:o}){let{ref:s,size:c}=v(),l=R(e,t)??j,u=g(l),d=!!(e&&t),f=!d&&!!n,p=Math.round(Math.min(F,Math.max(P,Math.min(c.w,c.h)*N))),m=c.h-p-M,h=d?Math.round(A*Math.min(c.w,c.h))+16:f?p+M+16:24;return(0,x.jsxs)(`div`,{ref:s,className:a(`relative flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg border border-[var(--border-base)]`,o),style:{backgroundColor:l,color:u.fg},children:[d&&e&&t&&(0,x.jsx)(k,{components:e,traits:t,stage:c,entrance:r}),f&&n&&(0,x.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute z-[2] overflow-hidden rounded-full ring-4 ring-white/25`,style:{left:(c.w-p)/2,top:m,width:p,height:p},children:(0,x.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`,draggable:!1})}),(0,x.jsx)(I.Provider,{value:{stage:c,tone:u,bottomReserve:h},children:(0,x.jsx)(`div`,{className:`relative z-10 flex min-h-0 flex-1 flex-col`,children:i})})]})}var B=[{id:`companion-coworker`,left:`Companion`,right:`Coworker`},{id:`genz-boomer`,left:`Gen Z`,right:`Baby Boomer`},{id:`execute-collaborate`,left:`Independent`,right:`Collaborative`},{id:`playful-serious`,left:`Playful`,right:`Serious`},{id:`polite-unfiltered`,left:`Polite`,right:`Unfiltered`}],V=50,H=1500,U=12e4,W=e=>new Promise(t=>setTimeout(t,e));async function G({assistantId:e,content:n,title:r,context:i}){let a,u=!1;try{let t=await c({path:{assistant_id:e},body:{conversationType:`standard`,title:r},throwOnError:!1});if(a=t.data?.id,!t.response?.ok||!a)return!1;let i={conversationId:a,content:n,sourceChannel:`vellum`,interface:`vellum`,clientMessageId:crypto.randomUUID()};if(!(await l({path:{assistant_id:e},body:i,throwOnError:!1})).response?.ok)return!1;let o=Date.now()+U,d=``,f=0,p=!1;for(;Date.now()<o;){await W(H);let t=await s({path:{assistant_id:e},query:{conversationId:a},throwOnError:!1}),n=y(t.data?.messages??[]);if(n&&(f=n===d?f+1:0,d=n),t.data?.processing===!0&&(p=!0),_({processing:t.data?.processing,sawProcessing:p,hasReply:n.length>0,stableReads:f})){u=!0;break}}}catch(e){t(e,{context:i})}finally{if(a)try{await o({path:{assistant_id:e,id:a},throwOnError:!1})}catch(e){t(e,{context:`${i}_archive`})}}return u}function K(e){return[`assistant-identity-details`,e]}function q(e){return r({queryKey:K(e),queryFn:async()=>{let[t,n]=await Promise.all([f(e),u(e).catch(()=>({ok:!1,status:0,error:{}}))]);return{identity:t,createdAt:n.ok?n.data.created:null}}})}export{V as a,L as c,B as i,q as n,z as o,G as r,R as s,K as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./use-supports-bookmarks-C3J7FtDn.js";import"./src-te3YTBG-.js";import{n as o}from"./toast-LgLp4obE.js";import{n as s}from"./resolved-assistants-store-Dw5UuGyB.js";import{S as c,b as l}from"./sdk.gen-BVAVE6A_.js";import{i as u,r as d}from"./react-query.gen-r3I6j8-1.js";var f=e(n(),1),p=[];function m(){let e=s.use.activeAssistantId();return{assistantId:e,enabled:a(e)&&!!e}}function h(){let{assistantId:e,enabled:t}=m(),n=i({...d({path:{assistant_id:e??``}}),enabled:t});return{bookmarks:n.data?.bookmarks??p,isLoading:n.isLoading,isError:n.isError,refetch:()=>{n.refetch()}}}function g(e){let{assistantId:t,enabled:n}=m();return i({...d({path:{assistant_id:t??``}}),enabled:n,select:t=>e?t.bookmarks.some(t=>t.messageId===e):!1}).data??!1}function _(e,t){return a(s.use.activeAssistantId())&&!!t&&!!e.id&&!e.isOptimistic}function v(){let e=s.use.activeAssistantId(),n=r();return(0,f.useCallback)(async(r,i,a)=>{if(!e)return;let s=u({path:{assistant_id:e}});await n.cancelQueries({queryKey:s});let d=n.getQueryData(s);n.setQueryData(s,e=>{let t=e?.bookmarks??[];if(a)return{bookmarks:t.filter(e=>e.messageId!==r)};if(t.some(e=>e.messageId===r))return e;let n=Date.now();return{bookmarks:[{id:`optimistic-${r}`,messageId:r,conversationId:i,conversationTitle:null,messagePreview:``,messageRole:``,messageCreatedAt:n,createdAt:n},...t]}});try{a?await l({path:{assistant_id:e,messageId:r},throwOnError:!0}):await c({path:{assistant_id:e},body:{messageId:r,conversationId:i},throwOnError:!0})}catch(e){d!==void 0&&n.setQueryData(s,d),t(e,{context:`bookmark_toggle`}),o.error(a?`Failed to remove bookmark.`:`Failed to bookmark message.`)}finally{n.invalidateQueries({queryKey:s})}},[e,n])}export{g as i,h as n,_ as r,v as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./use-supports-bookmarks-C3J7FtDn.js";import"./src-te3YTBG-.js";import{n as o}from"./toast-LgLp4obE.js";import{n as s}from"./resolved-assistants-store-Dw5UuGyB.js";import{S as c,b as l}from"./sdk.gen-BHZ0fJla.js";import{i as u,r as d}from"./react-query.gen-C5c1Acuq.js";var f=e(n(),1),p=[];function m(){let e=s.use.activeAssistantId();return{assistantId:e,enabled:a(e)&&!!e}}function h(){let{assistantId:e,enabled:t}=m(),n=i({...d({path:{assistant_id:e??``}}),enabled:t});return{bookmarks:n.data?.bookmarks??p,isLoading:n.isLoading,isError:n.isError,refetch:()=>{n.refetch()}}}function g(e){let{assistantId:t,enabled:n}=m();return i({...d({path:{assistant_id:t??``}}),enabled:n,select:t=>e?t.bookmarks.some(t=>t.messageId===e):!1}).data??!1}function _(e,t){return a(s.use.activeAssistantId())&&!!t&&!!e.id&&!e.isOptimistic}function v(){let e=s.use.activeAssistantId(),n=r();return(0,f.useCallback)(async(r,i,a)=>{if(!e)return;let s=u({path:{assistant_id:e}});await n.cancelQueries({queryKey:s});let d=n.getQueryData(s);n.setQueryData(s,e=>{let t=e?.bookmarks??[];if(a)return{bookmarks:t.filter(e=>e.messageId!==r)};if(t.some(e=>e.messageId===r))return e;let n=Date.now();return{bookmarks:[{id:`optimistic-${r}`,messageId:r,conversationId:i,conversationTitle:null,messagePreview:``,messageRole:``,messageCreatedAt:n,createdAt:n},...t]}});try{a?await l({path:{assistant_id:e,messageId:r},throwOnError:!0}):await c({path:{assistant_id:e},body:{messageId:r,conversationId:i},throwOnError:!0})}catch(e){d!==void 0&&n.setQueryData(s,d),t(e,{context:`bookmark_toggle`}),o.error(a?`Failed to remove bookmark.`:`Failed to bookmark message.`)}finally{n.invalidateQueries({queryKey:s})}},[e,n])}export{g as i,h as n,_ as r,v as t};