@vellumai/web 0.11.4-staging.1 → 0.11.4-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 (343) hide show
  1. package/README.md +0 -8
  2. package/dist/assets/{BundleConfirmPage-BbdN3tFL.js → BundleConfirmPage-Blq6GhVG.js} +1 -1
  3. package/dist/assets/{Trans-Ch_EPHgV.js → Trans-CPcWO-v6.js} +1 -1
  4. package/dist/assets/{about-page-B-1ST2gv.js → about-page-CTTTxSzr.js} +1 -1
  5. package/dist/assets/{access-DgWVDTc-.js → access-wabdRUmQ.js} +1 -1
  6. package/dist/assets/{account-page-Bjw-Whl-.js → account-page-DINYg3Rl.js} +1 -1
  7. package/dist/assets/{account-shell-7DXx2oD4.js → account-shell-DQFZ4C79.js} +1 -1
  8. package/dist/assets/{acp-run-actions-D3BHB3kZ.js → acp-run-actions-CkYR2vBH.js} +1 -1
  9. package/dist/assets/{acp-run-detail-panel-CMV1hamc.js → acp-run-detail-panel-Dt_Dcegh.js} +4 -4
  10. package/dist/assets/{acp-run-store-DpbMRWeI.js → acp-run-store-k9Syb04D.js} +1 -1
  11. package/dist/assets/activity-steps-panel-B9N9npP8.js +1 -0
  12. package/dist/assets/{add-credential-modal-CAorWf5a.js → add-credential-modal-Bn2SkYV8.js} +1 -1
  13. package/dist/assets/{add-credits-modal-NK9YUVin.js → add-credits-modal-lFCQGz49.js} +1 -1
  14. package/dist/assets/ai-page-DuZ_jor4.js +1 -0
  15. package/dist/assets/{api-xbjYCkk-.js → api-C72Ea0va.js} +1 -1
  16. package/dist/assets/{api-asaDrkTi.js → api-Dppu0jIX.js} +1 -1
  17. package/dist/assets/{api-key-screen-BLsynLtR.js → api-key-screen-CbIBGdOH.js} +1 -1
  18. package/dist/assets/{app-card-oG9LxSg9.js → app-card-BrtrF2PU.js} +1 -1
  19. package/dist/assets/{assistant-status-panel-CdJKE_VM.js → assistant-status-panel-DUB7x8Cv.js} +1 -1
  20. package/dist/assets/{auth-store-BDMYc7te.js → auth-store-B9pHhreb.js} +2 -2
  21. package/dist/assets/{avatar-random-cVA-5Ukx.js → avatar-random-Ux7JUtwk.js} +1 -1
  22. package/dist/assets/{background-task-actions-Cf2kEaWh.js → background-task-actions-D3TOUuY8.js} +1 -1
  23. package/dist/assets/{background-task-detail-panel-DWGWcjjS.js → background-task-detail-panel-nHViOVhW.js} +1 -1
  24. package/dist/assets/{background-task-store-eQZGVUDr.js → background-task-store-r1LOGfBn.js} +1 -1
  25. package/dist/assets/{billing-page-scyDxDPK.js → billing-page-BtPUFL3X.js} +3 -3
  26. package/dist/assets/{bookmarks-page-JMPRm3As.js → bookmarks-page-BA7-0dXF.js} +1 -1
  27. package/dist/assets/{browser-CZ10MkOr.js → browser-DwONNRIj.js} +2 -2
  28. package/dist/assets/{build-state-DdpPjDMZ.js → build-state-bnyw3m5Y.js} +1 -1
  29. package/dist/assets/channels-page-route-Da6XgpGs.js +9 -0
  30. package/dist/assets/{chat-sgiUoK1u.js → chat-BfpNzA77.js} +1 -1
  31. package/dist/assets/chat-DRdXDFUk.js +3 -0
  32. package/dist/assets/{chat-avatar-B1G491hG.js → chat-avatar-RM6-aunH.js} +1 -1
  33. package/dist/assets/chat-markdown-message-DWQZLyLI.js +1 -0
  34. package/dist/assets/{checkout-continuation-ChMQkpyi.js → checkout-continuation-B34WX6T6.js} +1 -1
  35. package/dist/assets/{checkout-page-Cpk90EXc.js → checkout-page-ZxCMmuwz.js} +1 -1
  36. package/dist/assets/checkout-return-target-CpckAKDY.js +1 -0
  37. package/dist/assets/{client-perf-C4GkD7vz.js → client-perf-Daz5cYUH.js} +1 -1
  38. package/dist/assets/command-palette-C6h4Ip2u.js +1 -0
  39. package/dist/assets/{command-palette-window-page-BP9A8L2v.js → command-palette-window-page-BKbM5K6f.js} +1 -1
  40. package/dist/assets/{companion-surface-page-B0hbyF1T.js → companion-surface-page-BbU9Hj0z.js} +1 -1
  41. package/dist/assets/{composer-settings-BMKJP4Ik.js → composer-settings-DYfbHO-e.js} +1 -1
  42. package/dist/assets/{connect-page-DKFPwsN0.js → connect-page-DxRMNc2U.js} +1 -1
  43. package/dist/assets/{consent-controls-hAYNW2he.js → consent-controls-Dz0ScMsh.js} +1 -1
  44. package/dist/assets/contacts-page-route-C-7wKpdG.js +1 -0
  45. package/dist/assets/{conversation-cache-DY3GhyFA.js → conversation-cache-ztu3M4pz.js} +1 -1
  46. package/dist/assets/{conversation-list-fetchers-CVKv5BpN.js → conversation-list-fetchers-eA7yZMEu.js} +1 -1
  47. package/dist/assets/{conversation-navigation-Bw3eQBGU.js → conversation-navigation-tCTlvwgs.js} +1 -1
  48. package/dist/assets/{conversation-queries-7BVaya69.js → conversation-queries-DkkuIyRB.js} +1 -1
  49. package/dist/assets/{credential-entry-page-BxNWgyvZ.js → credential-entry-page-DqEK_3ve.js} +1 -1
  50. package/dist/assets/credentials-page-Nx8MKxw7.js +1 -0
  51. package/dist/assets/{csv-preview-Ba7nV5mb.js → csv-preview-DfyT2oPn.js} +1 -1
  52. package/dist/assets/{daily-reset-time-i6mZWgVc.js → daily-reset-time-B28vdbVK.js} +1 -1
  53. package/dist/assets/debug-page-F58Vngs5.js +4 -0
  54. package/dist/assets/{deploy-dialogs-CG-65xs0.js → deploy-dialogs-Dr5UW72X.js} +1 -1
  55. package/dist/assets/{deploy-store-eps_MrT7.js → deploy-store-BAIpED5W.js} +1 -1
  56. package/dist/assets/{detail-card-CC0br9gQ.js → detail-card-BvBqhvvy.js} +1 -1
  57. package/dist/assets/{detail-drawer-BpdqER__.js → detail-drawer-zQohjzAF.js} +1 -1
  58. package/dist/assets/{detail-shell-Bmyv2wPh.js → detail-shell-6omiDynS.js} +1 -1
  59. package/dist/assets/developer-page-BgkajhCF.js +1 -0
  60. package/dist/assets/{diagnostics-CeLo0IQo.js → diagnostics-B6s70M5A.js} +1 -1
  61. package/dist/assets/{doctor-handoff-store-D1gIUvVD.js → doctor-handoff-store-DbvChP6h.js} +1 -1
  62. package/dist/assets/{document-viewer-container-Bywwxt6G.js → document-viewer-container-CiSaZjGT.js} +2 -2
  63. package/dist/assets/{document-viewer-page-qJKfO2Qb.js → document-viewer-page-B41ybONf.js} +1 -1
  64. package/dist/assets/{emails-page-B0--yw62.js → emails-page-zqESuC5i.js} +1 -1
  65. package/dist/assets/{esm-CoB42w1C.js → esm-BAZfwa77.js} +2 -2
  66. package/dist/assets/{esm-DyAueRRL.js → esm-BpO8b4iY.js} +2 -2
  67. package/dist/assets/esm-C-oF6bck.js +2 -0
  68. package/dist/assets/{esm-BbX6z_Bm.js → esm-CuIRAuen.js} +2 -2
  69. package/dist/assets/{esm-_vI9--3B.js → esm-CyDcfaYH.js} +2 -2
  70. package/dist/assets/{esm-BKg0nbmu.js → esm-D7eT5n3U.js} +2 -2
  71. package/dist/assets/{esm-B4xcxzQN.js → esm-tXi8GsTV.js} +2 -2
  72. package/dist/assets/eye-bbox-BR5NO1BX.js +1 -0
  73. package/dist/assets/file-editor-B2BJsOt0.js +1 -0
  74. package/dist/assets/file-markdown-EG3aJEi8.js +2 -0
  75. package/dist/assets/first-run-scope-mN3YhjgX.js +1 -0
  76. package/dist/assets/{funnel-events-BddkbWqn.js → funnel-events-CH_O9aTg.js} +1 -1
  77. package/dist/assets/general-page-C6eGuDih.js +1 -0
  78. package/dist/assets/{haptics-DafZDCxm.js → haptics-BhuZvnto.js} +2 -2
  79. package/dist/assets/{hatching-screen-BKfkDhPr.js → hatching-screen-Ceyfxgc-.js} +1 -1
  80. package/dist/assets/{home-page-route-B6vQYv0r.js → home-page-route-DdXLgyeu.js} +1 -1
  81. package/dist/assets/{home-tool-permission-card-IF0-aLrT.js → home-tool-permission-card-NAxzVd1l.js} +1 -1
  82. package/dist/assets/{hosting-screen-BJ5SfJoU.js → hosting-screen-D05jZjLX.js} +1 -1
  83. package/dist/assets/{i18n-zb2mgr1B.js → i18n-BR-AyG5b.js} +2 -2
  84. package/dist/assets/identity-page-route-BlKLitBM.js +7 -0
  85. package/dist/assets/{index-xicEUutS.js → index-CKyw1JVb.js} +3 -3
  86. package/dist/assets/index-DJ5ObIDJ.css +2 -0
  87. package/dist/assets/{ingest-B9D2Cyin.js → ingest-BwYkhorN.js} +1 -1
  88. package/dist/assets/inspect-page-m1poii66.js +9 -0
  89. package/dist/assets/integrations-page-Duhjka1l.js +1 -0
  90. package/dist/assets/{intelligence-layout-BESJ3-1s.js → intelligence-layout-ld1yOf08.js} +1 -1
  91. package/dist/assets/{invalidate-memory-queries-CS15Vuec.js → invalidate-memory-queries-YJf2XJ5P.js} +1 -1
  92. package/dist/assets/{invalidate-plugin-queries-DvUskShG.js → invalidate-plugin-queries-CySCFK8G.js} +1 -1
  93. package/dist/assets/latest-assistant-text-CDrxmzc0.js +24 -0
  94. package/dist/assets/{library-detail-page-BBfYWKvm.js → library-detail-page-v5CrGIps.js} +1 -1
  95. package/dist/assets/{library-page-BgbT6zej.js → library-page-BUnsZHzU.js} +1 -1
  96. package/dist/assets/{local-runtime-upgrade-SQQhJhOk.js → local-runtime-upgrade-Bwp6_dxW.js} +1 -1
  97. package/dist/assets/{login-flow-CTw5lXLx.js → login-flow-imrf1-ub.js} +1 -1
  98. package/dist/assets/{login-page-D2GAHcR7.js → login-page-C8owPhpB.js} +1 -1
  99. package/dist/assets/{logout-page-Cukoglve.js → logout-page-DfY78j6S.js} +1 -1
  100. package/dist/assets/{logs-layout-B4KDB9Sb.js → logs-layout-Dox-b2zq.js} +1 -1
  101. package/dist/assets/{media-preview-DjetaJpN.js → media-preview-6mD4wHKW.js} +1 -1
  102. package/dist/assets/{memory-page-route-Bnyvrbhn.js → memory-page-route-Cen_nGPc.js} +1 -1
  103. package/dist/assets/{memory-router-playground-page-8M60K9iJ.js → memory-router-playground-page-BvNM2MJO.js} +1 -1
  104. package/dist/assets/{message-files-panel-Cwlkr5w4.js → message-files-panel-CECqngl9.js} +1 -1
  105. package/dist/assets/{messages-D0PQ2X1S.js → messages-ctx0P03F.js} +1 -1
  106. package/dist/assets/{metric-card-SnROKwaj.js → metric-card-CRmU_rxS.js} +1 -1
  107. package/dist/assets/{multi-activity-group-CenHDhpe.js → multi-activity-group-DuW4ziR3.js} +1 -1
  108. package/dist/assets/native-anchor-BE-YHt8Q.js +1 -0
  109. package/dist/assets/native-deep-link-DliAfHU5.js +2 -0
  110. package/dist/assets/{native-file-DWbiI8L-.js → native-file-B9kJgftd.js} +2 -2
  111. package/dist/assets/{navigation-resolver-jn3fW9IN.js → navigation-resolver-CDeIpFuD.js} +1 -1
  112. package/dist/assets/{not-found-CRrNNxgD.js → not-found-mMT3d6dm.js} +1 -1
  113. package/dist/assets/{notifications-D7I0R0Np.js → notifications-Dx3P9a9Q.js} +1 -1
  114. package/dist/assets/{notifications-page-D6Llk4Q-.js → notifications-page-COU3Z3YY.js} +1 -1
  115. package/dist/assets/{oauth-complete-page-E47i6-KO.js → oauth-complete-page-D5uYsl41.js} +1 -1
  116. package/dist/assets/{oauth-connection-utils-BnF9kIoa.js → oauth-connection-utils-SS0qmAK4.js} +1 -1
  117. package/dist/assets/{oauth-popup-complete-page-Be9bz47B.js → oauth-popup-complete-page-BLw62jns.js} +1 -1
  118. package/dist/assets/open-workspace-file-DFo0Oq0o.js +2 -0
  119. package/dist/assets/{operational-status-DswnmGh5.js → operational-status-BsKLhv9Z.js} +1 -1
  120. package/dist/assets/{page-shell-CUz7vDVT.js → page-shell-DD_mHkHn.js} +1 -1
  121. package/dist/assets/{pairing-page-B93qLwkU.js → pairing-page-CI_qOlWo.js} +1 -1
  122. package/dist/assets/{pdf-file-preview-aTyWAALx.js → pdf-file-preview-5NsoLZLI.js} +1 -1
  123. package/dist/assets/{pdf-preview-CFuSHh-t.js → pdf-preview-DEWKJD0r.js} +2 -2
  124. package/dist/assets/{personality-page-Do1Q8mUB.js → personality-page-CI8jnXQp.js} +1 -1
  125. package/dist/assets/{plans-page-CxRb_Kby.js → plans-page-BlxaE-cv.js} +1 -1
  126. package/dist/assets/{platform-detection-BIfuAgU8.js → platform-detection-D4gxJctC.js} +1 -1
  127. package/dist/assets/{platform-login-notice-CaNQOYUj.js → platform-login-notice-CM-AbOQ7.js} +1 -1
  128. package/dist/assets/{platform-loopback-page-205CvkDI.js → platform-loopback-page-BLNuk6f2.js} +1 -1
  129. package/dist/assets/{preview-error-CdFTgKSI.js → preview-error-B-1p750d.js} +1 -1
  130. package/dist/assets/{privacy-page-Beg9rE7-.js → privacy-page-0K-bsvKl.js} +1 -1
  131. package/dist/assets/{privacy-screen-EFJ-aTdl.js → privacy-screen-DgDOXFfw.js} +1 -1
  132. package/dist/assets/profile-pickers-DBCSE_FG.js +1 -0
  133. package/dist/assets/{provider-callback-page-BKDWiQis.js → provider-callback-page-BN9NQV7v.js} +1 -1
  134. package/dist/assets/{provider-signup-page-CsCS7GAV.js → provider-signup-page-CTwmzSoF.js} +1 -1
  135. package/dist/assets/{provisioning-targets-CSwI177z.js → provisioning-targets-CFe7Jgy1.js} +1 -1
  136. package/dist/assets/{push-registration-CVotM2hK.js → push-registration-CIhXf1CF.js} +2 -2
  137. package/dist/assets/{remove-from-device-dialog-BGul1xBz.js → remove-from-device-dialog-DSScuMVd.js} +1 -1
  138. package/dist/assets/{research-mock-page-DDwmtrZR.js → research-mock-page-bhSrGrBh.js} +1 -1
  139. package/dist/assets/research-onboarding-route-CKyfP6oo.js +50 -0
  140. package/dist/assets/{research-results-view-DDjp2hBc.js → research-results-view-7psD5IrG.js} +1 -1
  141. package/dist/assets/{retire-confirm-dialog-Cz64ywTF.js → retire-confirm-dialog-BD1rkM8j.js} +1 -1
  142. package/dist/assets/{review-terms-screen-Bros6R87.js → review-terms-screen-XIGeusDw.js} +1 -1
  143. package/dist/assets/routes-lLsbgbrj.js +24 -0
  144. package/dist/assets/{runtime-upgrade-banner-WHzYN73y.js → runtime-upgrade-banner-BeO8tW05.js} +2 -2
  145. package/dist/assets/{sandbox-bridge-ajRoXgYL.js → sandbox-bridge-BismgxxG.js} +1 -1
  146. package/dist/assets/{schedules-DjkLl0OP.js → schedules-DVJx5NG9.js} +1 -1
  147. package/dist/assets/schedules-page-DRr8EB5D.js +1 -0
  148. package/dist/assets/{select-assistant-screen-CALuntMj.js → select-assistant-screen-Cbta9HDV.js} +1 -1
  149. package/dist/assets/{self-hosted-servers-CsywZANM.js → self-hosted-servers-omz1yNrQ.js} +1 -1
  150. package/dist/assets/{setting-row-JYdvkVjj.js → setting-row-BgrWOMW9.js} +1 -1
  151. package/dist/assets/settings-DKVDS49I.js +1 -0
  152. package/dist/assets/{settings-divider-gaQk2Yl5.js → settings-divider-HtBTQzlA.js} +1 -1
  153. package/dist/assets/{settings-layout-vTkMzpIY.js → settings-layout-BdUaFkyr.js} +1 -1
  154. package/dist/assets/{settings-navigation-Dp0sDZAh.js → settings-navigation-vp8wtiyE.js} +1 -1
  155. package/dist/assets/{share-feedback-modal-DiQP_cCZ.js → share-feedback-modal-D9fAEU5y.js} +2 -2
  156. package/dist/assets/{sidebar-tree-CSPhTnBf.js → sidebar-tree-9BVzkS4K.js} +1 -1
  157. package/dist/assets/{signup-page-B2mbu3qd.js → signup-page-lzOszv4S.js} +1 -1
  158. package/dist/assets/{site-favicon-dST102dp.js → site-favicon-BvIzxzVw.js} +1 -1
  159. package/dist/assets/{skill-detail-page-BZO12fh5.js → skill-detail-page-BdSINra9.js} +2 -2
  160. package/dist/assets/skill-detail-panel-88oHOdSH.js +1 -0
  161. package/dist/assets/{skills-DdBQ-tNs.js → skills-HuNDpwX2.js} +1 -1
  162. package/dist/assets/{sounds-page-sGA-Nc8o.js → sounds-page-CeZjxvIu.js} +1 -1
  163. package/dist/assets/{src-DjIqxQVd.js → src-njXJqrpo.js} +3 -3
  164. package/dist/assets/{start-screen-DeVoGKX1.js → start-screen-B1dP4bbA.js} +1 -1
  165. package/dist/assets/status-badge-pill-BuiIFTz-.js +1 -0
  166. package/dist/assets/stt-language-picker-modal-BK_1xcYe.js +1 -0
  167. package/dist/assets/subagent-detail-panel-CkxNHVOv.js +4 -0
  168. package/dist/assets/{subagent-store-ChHk8ZsH.js → subagent-store-B0Ftpguk.js} +1 -1
  169. package/dist/assets/{superpowers-page-Dk3g_Of2.js → superpowers-page-B_1_d4LI.js} +1 -1
  170. package/dist/assets/{system-events-page-XYxGo8gh.js → system-events-page-BBVNKwBJ.js} +1 -1
  171. package/dist/assets/{telegram-setup-wizard-DgdjP2o8.js → telegram-setup-wizard-D_Vwl3_I.js} +1 -1
  172. package/dist/assets/{text-preview-BJRoXOON.js → text-preview-BIeJHE0-.js} +1 -1
  173. package/dist/assets/{theme-stage-page-DPIsJBUJ.js → theme-stage-page-gWlI1Nzt.js} +1 -1
  174. package/dist/assets/{tiptap-document-editor-Cjd5FCBm.js → tiptap-document-editor-BunsgiVU.js} +1 -1
  175. package/dist/assets/toggle-ibKLySIy.js +1 -0
  176. package/dist/assets/{tool-detail-panel-CeDWOdH-.js → tool-detail-panel-DhzIzJ1Y.js} +2 -2
  177. package/dist/assets/{upgrade-cancel-page-D24RCdAz.js → upgrade-cancel-page-BiXIXlae.js} +1 -1
  178. package/dist/assets/{upgrade-success-page-A6d7PRGt.js → upgrade-success-page-C3ptzfvo.js} +1 -1
  179. package/dist/assets/{use-assistant-capability-CYKqSbfq.js → use-assistant-capability-B55Ji4gD.js} +1 -1
  180. package/dist/assets/use-assistant-identity-details-0JMOrf_F.js +1 -0
  181. package/dist/assets/{use-attachment-preview-DvVweDZY.js → use-attachment-preview-jmFGN8h6.js} +2 -2
  182. package/dist/assets/{use-attachment-squares-ELH7PQrT.js → use-attachment-squares-BSKsILdv.js} +1 -1
  183. package/dist/assets/{use-bookmarks-B4g9FKC7.js → use-bookmarks-gJWrPT2g.js} +1 -1
  184. package/dist/assets/{use-checkout-dismiss-refresh-CkeQGnJ0.js → use-checkout-dismiss-refresh-vVysV2xK.js} +1 -1
  185. package/dist/assets/{use-command-palette-sections-D0RCkx0m.js → use-command-palette-sections-BFV15eUp.js} +1 -1
  186. package/dist/assets/{use-copy-to-clipboard-oZUc3_ey.js → use-copy-to-clipboard-BeG7f_tZ.js} +1 -1
  187. package/dist/assets/{use-edge-swipe-Bde-t-dW.js → use-edge-swipe-BxVxJfNS.js} +1 -1
  188. package/dist/assets/use-edge-swipe-back-DpMHlX97.js +2 -0
  189. package/dist/assets/{use-edit-app-BZv0JIfX.js → use-edit-app-BlsO9Zav.js} +1 -1
  190. package/dist/assets/use-element-size-DeouS2c2.js +1 -0
  191. package/dist/assets/use-invite-link-dialog-TjRVy1GF.js +1 -0
  192. package/dist/assets/{use-is-org-ready-CWNhmJ2b.js → use-is-org-ready-DyYOTCvQ.js} +1 -1
  193. package/dist/assets/{use-onboarding-login-Zjbfg9rl.js → use-onboarding-login-DMUDDVUi.js} +1 -1
  194. package/dist/assets/{use-platform-assistant-id-Bafo85js.js → use-platform-assistant-id-BE6AIost.js} +1 -1
  195. package/dist/assets/{use-platform-gate-DzpdjzIz.js → use-platform-gate-zft2-meL.js} +1 -1
  196. package/dist/assets/{use-return-to-short-circuit-pEcvMXUl.js → use-return-to-short-circuit-LcamIc_k.js} +1 -1
  197. package/dist/assets/use-side-list-room-C1msxm__.js +1 -0
  198. package/dist/assets/{use-skill-actions-CeeCY9Uf.js → use-skill-actions-oBpczwnY.js} +1 -1
  199. package/dist/assets/use-sticky-profiles-D6xRVCOS.js +1 -0
  200. package/dist/assets/use-stt-language-selection-D7DxP7Eo.js +1 -0
  201. package/dist/assets/{use-subagent-card-data-BIb6t3HE.js → use-subagent-card-data-DOp8Etmj.js} +1 -1
  202. package/dist/assets/use-touch-mobile-CXJ4hTiW.js +1 -0
  203. package/dist/assets/{use-transcript-message-by-id-DUV4woMl.js → use-transcript-message-by-id-D5hHvanI.js} +1 -1
  204. package/dist/assets/{use-transcript-messages-BLtVYqAv.js → use-transcript-messages-BL55GFRr.js} +1 -1
  205. package/dist/assets/{use-voice-sample-preview-BY_J5WVl.js → use-voice-sample-preview-CLWX7j-h.js} +1 -1
  206. package/dist/assets/{useTranslation-Dn8TOHE6.js → useTranslation-DxUSOwQs.js} +1 -1
  207. package/dist/assets/{viewer-store-D3KM2E2N.js → viewer-store-DWY4BtGj.js} +1 -1
  208. package/dist/assets/voice-page-C3q84Y4H.js +1 -0
  209. package/dist/assets/{voice-providers-note-BLOdThkh.js → voice-providers-note-CuMBTzti.js} +1 -1
  210. package/dist/assets/{web-D8nAsA9l.js → web-S8v4qZ8W.js} +1 -1
  211. package/dist/assets/{web-5yJbtoui.js → web-zM0OZM8V.js} +1 -1
  212. package/dist/assets/{welcome-screen-U_A3pIDj.js → welcome-screen-Cy46Bw63.js} +1 -1
  213. package/dist/assets/workflow-detail-panel-CM1Jep4m.js +1 -0
  214. package/dist/assets/{workflow-store-Dgz97WCS.js → workflow-store-Bpg1fqWU.js} +1 -1
  215. package/dist/assets/workspace-page-eCfV4q3_.js +1 -0
  216. package/dist/assets/{workspace-tree-query-C6kx2Bkh.js → workspace-tree-query-BfWSVQB5.js} +1 -1
  217. package/dist/index.html +109 -108
  218. package/package.json +1 -1
  219. package/dist/assets/activity-steps-panel-DEgGLFtM.js +0 -1
  220. package/dist/assets/ai-page--36Riirz.js +0 -1
  221. package/dist/assets/channels-page-route-CoHtlp77.js +0 -9
  222. package/dist/assets/chat-5s_HqBzL.js +0 -3
  223. package/dist/assets/chat-markdown-message-Btoc6C1G.js +0 -1
  224. package/dist/assets/checkout-return-target-CYf9SBig.js +0 -1
  225. package/dist/assets/command-palette-D79Jq26W.js +0 -1
  226. package/dist/assets/contacts-page-route-9Y1S_HAN.js +0 -1
  227. package/dist/assets/credentials-page-BVg_keF0.js +0 -1
  228. package/dist/assets/debug-page-4N-Zj-ts.js +0 -4
  229. package/dist/assets/developer-page-CQS354Wk.js +0 -1
  230. package/dist/assets/esm-b7JWOeNl.js +0 -2
  231. package/dist/assets/file-editor-CSWBRXC5.js +0 -1
  232. package/dist/assets/file-markdown-CyzsCI8p.js +0 -2
  233. package/dist/assets/first-run-scope-Cc45jqTq.js +0 -1
  234. package/dist/assets/general-page-C3gmPYF3.js +0 -1
  235. package/dist/assets/identity-page-route-D7kzw3D3.js +0 -7
  236. package/dist/assets/index-BPNYOrwT.css +0 -2
  237. package/dist/assets/inspect-page-EDi2BOrZ.js +0 -9
  238. package/dist/assets/integrations-page-DC4dbZvc.js +0 -1
  239. package/dist/assets/latest-assistant-text-Bhqw0WEB.js +0 -24
  240. package/dist/assets/mobile-sidebar-drawer-CA_YsRi_.js +0 -1
  241. package/dist/assets/native-anchor-txt0veYo.js +0 -1
  242. package/dist/assets/native-deep-link-EZIezcy9.js +0 -1
  243. package/dist/assets/open-workspace-file-D2FXjNVn.js +0 -2
  244. package/dist/assets/profile-pickers-CKLILvRc.js +0 -1
  245. package/dist/assets/research-onboarding-route-BviJKsoz.js +0 -50
  246. package/dist/assets/routes-Q2DdFIGG.js +0 -24
  247. package/dist/assets/schedules-page-Bodkcg3J.js +0 -1
  248. package/dist/assets/settings-DGaRub9k.js +0 -1
  249. package/dist/assets/skill-detail-panel-CEepQHmY.js +0 -1
  250. package/dist/assets/status-badge-pill-DxtUb8z3.js +0 -1
  251. package/dist/assets/stt-language-picker-modal-CihIASi8.js +0 -1
  252. package/dist/assets/subagent-detail-panel-C9Y7dfKo.js +0 -4
  253. package/dist/assets/toggle-C-v4x7_A.js +0 -1
  254. package/dist/assets/use-assistant-identity-details-BVjzLgp6.js +0 -1
  255. package/dist/assets/use-edge-swipe-back-BWEVQPEJ.js +0 -2
  256. package/dist/assets/use-element-size-G76uplCp.js +0 -1
  257. package/dist/assets/use-invite-link-dialog-DgDcqWMz.js +0 -1
  258. package/dist/assets/use-sticky-profiles-BN2tBekP.js +0 -1
  259. package/dist/assets/use-touch-mobile-JVxY9M-0.js +0 -1
  260. package/dist/assets/voice-list-uy2Kwdwg.js +0 -1
  261. package/dist/assets/voice-page-Bi7r475U.js +0 -1
  262. package/dist/assets/workflow-detail-panel-fguePScg.js +0 -1
  263. package/dist/assets/workspace-page-Cp11wrja.js +0 -1
  264. /package/dist/assets/{a2a-invite-B5XOcUL6.js → a2a-invite-BNCOmr8h.js} +0 -0
  265. /package/dist/assets/{account-IaNiNsKu.js → account-CtIKBm9p.js} +0 -0
  266. /package/dist/assets/{android-consumption-only-eY-NLtwG.js → android-consumption-only-CwC2kibz.js} +0 -0
  267. /package/dist/assets/{animated-avatar-D9mX2duB.js → animated-avatar--_W54iT9.js} +0 -0
  268. /package/dist/assets/{app-info-xT5AH6o4.js → app-info-DFgKdE7W.js} +0 -0
  269. /package/dist/assets/{app-types-B4-pVNnY.js → app-types-BY00pXhT.js} +0 -0
  270. /package/dist/assets/{apple-logo-CVMvoWvp.js → apple-logo-Biu93CTa.js} +0 -0
  271. /package/dist/assets/{archive-redirect-page-CfCci8ho.js → archive-redirect-page-bx5xRoCl.js} +0 -0
  272. /package/dist/assets/{avatar-renderer-khj83dWw.js → avatar-renderer-Bja-CJEM.js} +0 -0
  273. /package/dist/assets/{avatar-subagent-B68bxt0O.js → avatar-subagent-C1J2pUFc.js} +0 -0
  274. /package/dist/assets/{avatar-tone-CQWYpANf.js → avatar-tone-CTq4cNAY.js} +0 -0
  275. /package/dist/assets/{billing-redirect-page-XcpsfvIl.js → billing-redirect-page-Dp-j37M1.js} +0 -0
  276. /package/dist/assets/{build.umd-Bg-JE3PW.js → build.umd-CKImEzO1.js} +0 -0
  277. /package/dist/assets/{channels-DkTY8D9c.js → channels-C4uOLymq.js} +0 -0
  278. /package/dist/assets/{common-XXvgM1Lv.js → common-CPxc0tHz.js} +0 -0
  279. /package/dist/assets/{community-page-CB9oMqgC.js → community-page-D1uzvBFw.js} +0 -0
  280. /package/dist/assets/{contacts-gateway-D0hHW9dI.js → contacts-gateway-Dp40T_dj.js} +0 -0
  281. /package/dist/assets/{contacts-Dnxb4zeF.js → contacts-pvrehYPe.js} +0 -0
  282. /package/dist/assets/{copy-to-clipboard-SOu7HUET.js → copy-to-clipboard-DRZUoOti.js} +0 -0
  283. /package/dist/assets/{credential-requests-DvnleKK2.js → credential-requests-BsmEdX7t.js} +0 -0
  284. /package/dist/assets/{danger-zone-redirect-page-BIYa_At7.js → danger-zone-redirect-page-DY3LtITR.js} +0 -0
  285. /package/dist/assets/{definitions-BLBMbDPd.js → definitions-BNyfuzue.js} +0 -0
  286. /package/dist/assets/{definitions-BLHO5zVb.js → definitions-DMGv-AVM.js} +0 -0
  287. /package/dist/assets/{devices-redirect-page-DJtEpVr7.js → devices-redirect-page-BXqfVWSd.js} +0 -0
  288. /package/dist/assets/{dictation-overlay-page-DLZGCPP_.js → dictation-overlay-page-DR63_PvH.js} +0 -0
  289. /package/dist/assets/{diff-rows-C_ARHWq3.js → diff-rows-ZG9FwscH.js} +0 -0
  290. /package/dist/assets/{edit-chat-session-CcwN_rea.js → edit-chat-session-B38z6oPP.js} +0 -0
  291. /package/dist/assets/{emoji-catalog-data-BGlYkVas.js → emoji-catalog-data-Dqyvj5Ne.js} +0 -0
  292. /package/dist/assets/{environment-store-CR6vnG9G.js → environment-store-DCU3hheH.js} +0 -0
  293. /package/dist/assets/{esm-DgDCYysh.js → esm-Bbh10TA1.js} +0 -0
  294. /package/dist/assets/{esm-BYiovSCx.js → esm-C0OhtIaa.js} +0 -0
  295. /package/dist/assets/{format-date-Cl5z8sZt.js → format-date-mZFhGVxR.js} +0 -0
  296. /package/dist/assets/{format-file-size-B3w8pfkS.js → format-file-size-D7QcCVUg.js} +0 -0
  297. /package/dist/assets/{home-CF1B7GqE.js → home-CoA1W6RA.js} +0 -0
  298. /package/dist/assets/{intelligence-Dcw50PsN.js → intelligence-Bpz4mQfO.js} +0 -0
  299. /package/dist/assets/{keyboard-shortcuts-redirect-page-BSNa3QLh.js → keyboard-shortcuts-redirect-page-BUEUuL5W.js} +0 -0
  300. /package/dist/assets/{library-CCXCwc6z.js → library-CxAscKuj.js} +0 -0
  301. /package/dist/assets/{link-click-BhQuhukA.js → link-click-c4p6nI2M.js} +0 -0
  302. /package/dist/assets/{logs-nlP1em1X.js → logs-BlQUbg5S.js} +0 -0
  303. /package/dist/assets/{machine-sizes-Bx2eSjOW.js → machine-sizes-D5IsW7GE.js} +0 -0
  304. /package/dist/assets/{onboarding-C6ZFK4YA.js → onboarding-C-LQqXEa.js} +0 -0
  305. /package/dist/assets/{onboarding-step-layout-CFCN1Nnk.js → onboarding-step-layout-Cksqlmsb.js} +0 -0
  306. /package/dist/assets/{optimistic-lifecycle-EXwQgNvb.js → optimistic-lifecycle-DIWfvuIw.js} +0 -0
  307. /package/dist/assets/{page-empty-state-DRbcD4aa.js → page-empty-state-Df3EP_DE.js} +0 -0
  308. /package/dist/assets/{password-reset-page-Cmbeaggq.js → password-reset-page-0k2eeyou.js} +0 -0
  309. /package/dist/assets/{pdf-BUxbm1S7.js → pdf-CpDfklza.js} +0 -0
  310. /package/dist/assets/{plugin-attribution-B_3pbh6m.js → plugin-attribution-TebhIznA.js} +0 -0
  311. /package/dist/assets/{plugin-detail-page-C0zaBBon.js → plugin-detail-page-N3j9G0yc.js} +0 -0
  312. /package/dist/assets/{plugins-page-BuN35WCX.js → plugins-page-BPSPELgG.js} +0 -0
  313. /package/dist/assets/{preview-skeleton-BLpm3j7s.js → preview-skeleton-BreSI6Ln.js} +0 -0
  314. /package/dist/assets/{profile-metadata-BxP0WOpJ.js → profile-metadata-DAXhAdlI.js} +0 -0
  315. /package/dist/assets/{provider-key-CzUfGGE_.js → provider-key-CR8jz-eM.js} +0 -0
  316. /package/dist/assets/{quick-input-page-DYc7eXbP.js → quick-input-page-Mw2f8F3_.js} +0 -0
  317. /package/dist/assets/{radio-card-nav-BOpJqAoO.js → radio-card-nav-BubfTKOh.js} +0 -0
  318. /package/dist/assets/{remote-web-COoOfi7K.js → remote-web-Di_UF41i.js} +0 -0
  319. /package/dist/assets/{schedules-DhrUSTxo.js → schedules-BaUXJBRS.js} +0 -0
  320. /package/dist/assets/{schedules-630osdOz.js → schedules-JL1Laub-.js} +0 -0
  321. /package/dist/assets/{security-redirect-page-D9_08zix.js → security-redirect-page-Ce11_hfW.js} +0 -0
  322. /package/dist/assets/{signup-shell-BLq9UcAD.js → signup-shell-XnqyIHQa.js} +0 -0
  323. /package/dist/assets/{skill-icon-BEzVeada.js → skill-icon-xO9VGnPV.js} +0 -0
  324. /package/dist/assets/{skills-page-CpajWLSk.js → skills-page-bnp9x1iR.js} +0 -0
  325. /package/dist/assets/{system-events-redirect-page-CdqIVW5m.js → system-events-redirect-page-W8knAadR.js} +0 -0
  326. /package/dist/assets/{terminal-B8-uO_zb.js → terminal-B4go-vP8.js} +0 -0
  327. /package/dist/assets/{three-dot-indicator-BFNMvd3i.js → three-dot-indicator-BhUevb3V.js} +0 -0
  328. /package/dist/assets/{usage-redirect-page-Bk755PQU.js → usage-redirect-page-DXcbB81p.js} +0 -0
  329. /package/dist/assets/{use-active-assistant-id-Cgt1z2rZ.js → use-active-assistant-id-Btl1-4sB.js} +0 -0
  330. /package/dist/assets/{use-local-file-info-CowxNLsG.js → use-local-file-info-Dz017Fii.js} +0 -0
  331. /package/dist/assets/{use-skill-detail-files-2agjQ-pp.js → use-skill-detail-files-Bzwall4_.js} +0 -0
  332. /package/dist/assets/{use-supports-credentials-settings-BBUFotal.js → use-supports-credentials-settings-D9oEIOk9.js} +0 -0
  333. /package/dist/assets/{weather-forecast-display-BMFPvW83.js → weather-forecast-display-BRi0CN73.js} +0 -0
  334. /package/dist/assets/{web-DT7CHk3X.js → web-Bc0yxcTg.js} +0 -0
  335. /package/dist/assets/{web-CnTPI_xz.js → web-DUcCWo6-.js} +0 -0
  336. /package/dist/assets/{web-CpFPB7iN.js → web-DnUU5XRV.js} +0 -0
  337. /package/dist/assets/{web-DfzBW3mJ.js → web-DoWs0tX8.js} +0 -0
  338. /package/dist/assets/{web-BXqKHeFH.js → web-DprnafKw.js} +0 -0
  339. /package/dist/assets/{web-fHk-S0Kt.js → web-bVuMezJ9.js} +0 -0
  340. /package/dist/assets/{web-D2fHQj5v.js → web-xXRFVuHp.js} +0 -0
  341. /package/dist/assets/{workspace-CCzLdd4F.js → workspace-B3DIYRpz.js} +0 -0
  342. /package/dist/assets/{xterm-CfcAttTO.js → xterm-5SK_xX72.js} +0 -0
  343. /package/dist/assets/{xterm-addon-fit-CmOTEB5O.js → xterm-addon-fit-Bov_2YwK.js} +0 -0
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-_vI9--3B.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-D8V9YSOm.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./capture-error-Cdvvw9J5.js";import{t}from"./preload-helper-Cv2QeVDK.js";import{t as n}from"./is-electron-BSK3AUxG.js";import{w as r}from"./platform-detection-BIfuAgU8.js";import{t as i}from"./dist-D8V9YSOm.js";function a(t,n){if(!r())return()=>void 0;let i=null,a=!1;return n().then(e=>{if(a){e.remove();return}i=e}).catch(n=>{e(n,{context:t,level:`warning`})}),()=>{a=!0,i?.remove()}}var o=async(e,r)=>{if(n()){window.open(e,`_blank`);return}if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-_vI9--3B.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));await n.open({url:e,presentationStyle:`popover`})}catch{r(e)}else r(e)},s=e=>o(e,e=>{window.location.href=e}),c=async e=>{if(n())return window.open(e,`_blank`),!0;if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-_vI9--3B.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return await n.open({url:e,presentationStyle:`popover`}),!0}catch{}return window.open(e,`_blank`)!==null},l=e=>o(e,e=>{window.open(e,`_blank`,`noopener,noreferrer`)}),u=e=>a(`capacitor_browser_finished`,async()=>{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-_vI9--3B.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return n.addListener(`browserFinished`,e)});export{a,c as i,s as n,u as r,l as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-CyDcfaYH.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-D8V9YSOm.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./capture-error-Cdvvw9J5.js";import{t}from"./preload-helper-Cv2QeVDK.js";import{t as n}from"./is-electron-BSK3AUxG.js";import{w as r}from"./platform-detection-D4gxJctC.js";import{t as i}from"./dist-D8V9YSOm.js";function a(t,n){if(!r())return()=>void 0;let i=null,a=!1;return n().then(e=>{if(a){e.remove();return}i=e}).catch(n=>{e(n,{context:t,level:`warning`})}),()=>{a=!0,i?.remove()}}var o=async(e,r)=>{if(n()){window.open(e,`_blank`);return}if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-CyDcfaYH.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));await n.open({url:e,presentationStyle:`popover`})}catch{r(e)}else r(e)},s=e=>o(e,e=>{window.location.href=e}),c=async e=>{if(n())return window.open(e,`_blank`),!0;if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-CyDcfaYH.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return await n.open({url:e,presentationStyle:`popover`}),!0}catch{}return window.open(e,`_blank`)!==null},l=e=>o(e,e=>{window.open(e,`_blank`,`noopener,noreferrer`)}),u=e=>a(`capacitor_browser_finished`,async()=>{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-CyDcfaYH.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return n.addListener(`browserFinished`,e)});export{a,c as i,s as n,u as r,l as t};
@@ -1 +1 @@
1
- import{Q as e,_ as t,b as n,x as r}from"./local-mode-DP-5m-kS.js";import{n as i,t as a}from"./resolved-assistants-store-BuqctGKE.js";import{$ as o,at as s,n as c,st as l}from"./auth-store-BDMYc7te.js";import{l as u}from"./remote-gateway-session-DxuSBHli.js";import{a as d,i as f,n as p,r as m,s as h}from"./prefs-Bxlc7g3M.js";function g(e){let t=o();return(t==null?e:a(e,t)).some(e=>e.isPlatformHosted)}function _(a){let{sessionStatus:o,platformSession:_}=c.getState(),{assistants:v,assistantsHydrated:y}=i.getState(),b=r();return{isLocalClient:t(),isPlatformDisabled:n(),isRemoteGateway:b,remoteGatewayPublicPathPrefix:b?u():``,isGatewayAuth:e(),hasAssistants:v.length>0,hasPlatformHostedAssistant:g(v),sessionSettled:l(o),isAuthenticated:s(o),platformSession:_,tosAccepted:h(),privacyConsent:d(),analyticsConsentCurrent:p(),diagnosticsConsentCurrent:f(),consentHydrated:m(),assistantsHydrated:y,...a}}export{_ as t};
1
+ import{Q as e,_ as t,b as n,x as r}from"./local-mode-DP-5m-kS.js";import{n as i,t as a}from"./resolved-assistants-store-BuqctGKE.js";import{$ as o,at as s,n as c,st as l}from"./auth-store-B9pHhreb.js";import{l as u}from"./remote-gateway-session-DxuSBHli.js";import{a as d,i as f,n as p,r as m,s as h}from"./prefs-Bxlc7g3M.js";function g(e){let t=o();return(t==null?e:a(e,t)).some(e=>e.isPlatformHosted)}function _(a){let{sessionStatus:o,platformSession:_}=c.getState(),{assistants:v,assistantsHydrated:y}=i.getState(),b=r();return{isLocalClient:t(),isPlatformDisabled:n(),isRemoteGateway:b,remoteGatewayPublicPathPrefix:b?u():``,isGatewayAuth:e(),hasAssistants:v.length>0,hasPlatformHostedAssistant:g(v),sessionSettled:l(o),isAuthenticated:s(o),platformSession:_,tosAccepted:h(),privacyConsent:d(),analyticsConsentCurrent:p(),diagnosticsConsentCurrent:f(),consentHydrated:m(),assistantsHydrated:y,...a}}export{_ as t};
@@ -0,0 +1,9 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{d as r,h as i,p as a,t as o}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./useQuery-Bz-fbQ-m.js";import{t as l}from"./useMutation-CXGTrp4W.js";import{t as u}from"./jsx-runtime-D3ZM-ToX.js";import{t as d}from"./cn-DFWryB3N.js";import{t as f}from"./typography-BeUa5Fd-.js";import{t as p}from"./card-q0GJX1HZ.js";import{J as m,R as h,c as g,i as _,q as v,s as y}from"./src-njXJqrpo.js";import{C as b,D as x,S,_ as C,b as w,c as T,d as E,g as D,h as O,l as k,o as A,p as j,u as M,v as ee,x as te,y as N}from"./use-save-twilio-credentials-COzAERtv.js";import{t as P}from"./chevron-down-B_6pb9kS.js";import{t as F}from"./circle-check-big-BRKMTxhd.js";import{o as I,r as L,t as ne,u as R}from"./threshold-presets-Bm9FqtVb.js";import{t as z}from"./message-square-UW8LcsnU.js";import{t as B}from"./plug-CQDevvb-.js";import{t as V}from"./search-DbyaO8rG.js";import{t as H}from"./notice-C9v3KOP3.js";import{t as U}from"./tag-D0oiSRye.js";import{t as W}from"./input-BG94bPcH.js";import{t as re}from"./confirm-dialog-DNaRfy4W.js";import{t as ie}from"./select-B86W_Hs8.js";import"./i18n-BR-AyG5b.js";import{t as ae}from"./Trans-CPcWO-v6.js";import{t as G}from"./useTranslation-DxUSOwQs.js";import{t as oe}from"./assistant-identity-store-DTP7xfNP.js";import{i as se}from"./utils-1ZnEn_W1.js";import{d as ce}from"./routes-C293MsBG.js";import{s as le}from"./react-query.gen-vkBavCkI.js";import{r as ue}from"./conversation-navigation-tCTlvwgs.js";import{l as de,o as fe,s as pe}from"./sdk.gen-CUWXKhFV.js";import{t as me}from"./assistant-feature-flag-store-j3wC3wtf.js";import{t as he}from"./public-asset-C2ociEGf.js";import{t as ge}from"./use-active-assistant-id-Btl1-4sB.js";import{n as _e,t as ve}from"./telegram-setup-wizard-D_Vwl3_I.js";import{n as ye,t as be}from"./index-CKyw1JVb.js";import{t as xe}from"./detail-card-BvBqhvvy.js";import{n as Se,r as Ce,t as we}from"./use-side-list-room-C1msxm__.js";import{a as Te,c as K,d as Ee,f as De,i as Oe,n as ke,o as Ae,r as je,s as Me,t as Ne,u as Pe}from"./use-invite-link-dialog-TjRVy1GF.js";var q=e(t(),1);function Fe(){let{channelId:e}=a(),t=r();return{selected:e,select:(0,q.useCallback)(e=>{t(`/assistant/channels/${encodeURIComponent(e)}`,{replace:!0})},[t])}}var Ie={slack:{labelKey:`channelMeta.slack.label`,disconnectMessageKey:`channelMeta.slack.disconnectMessage`,hasTrustFloorControl:!1},telegram:{labelKey:`channelMeta.telegram.label`,disconnectMessageKey:`channelMeta.telegram.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.telegram.disconnectedPitch`},phone:{labelKey:`channelMeta.phone.label`,disconnectMessageKey:`channelMeta.phone.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.phone.disconnectedPitch`}},J=u();function Le({channels:e,pluginChannels:t=[],selectedKey:n,onSelect:r}){return(0,J.jsx)(p.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsx)(p.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e.map(e=>(0,J.jsx)(Re,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key)),t.map(e=>(0,J.jsx)(ze,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key))]})})})}function Re({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=j(e.key),a=r?`Connected`:`Not connected`;return(0,J.jsx)(h,{asChild:!0,active:t,"aria-label":`${i}, ${a}`,children:(0,J.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsx)(M,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,J.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,J.jsx)(U,{tone:r?`positive`:`neutral`,children:a})})]})})}function ze({channel:e,selected:t,onClick:n}){let{t:r}=G(`channels`);return(0,J.jsx)(h,{asChild:!0,active:t,"aria-label":r(`channelAdapterList.pluginChannelAria`,{channel:e.label}),children:(0,J.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsx)(E,{icon:e.icon,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:e.label}),(0,J.jsx)(B,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`})]})})}function Be({icon:e,title:t,description:n,action:r,className:i}){return(0,J.jsxs)(`div`,{className:d(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,J.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-xl bg-[var(--surface-sunken)] text-[var(--content-tertiary)]`,children:e}):null,(0,J.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,J.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,J.jsx)(`div`,{className:`mt-1`,children:r}):null]})}function Ve({assistantDisplayName:e,policy:t,saving:n=!1,loading:r=!1,error:i=!1,onChange:a}){let{t:o}=G(`channels`),s=t??`trusted_contacts`,c=De(e),l=Pe.map(e=>({value:e,label:Ee[e],tooltip:c[e]}));return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:o(`channelTrustFloor.heading`,{assistant:e})}),r?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:o(`channelTrustFloor.loading`)}):i?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:o(`channelTrustFloor.loadFailed`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{style:{maxWidth:280},children:(0,J.jsx)(ie,{value:s,onChange:a,options:l,disabled:n,"aria-label":o(`channelTrustFloor.selectAria`,{assistant:e})})}),(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:c[s]}),s===`trusted_contacts`?(0,J.jsx)(H,{tone:`info`,className:`max-w-lg`,children:o(`channelTrustFloor.trustedContactsNotice`,{assistant:e})}):null]})]})}function He({address:e,pending:t,onDisconnect:r}){let{t:i}=G(`channels`);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(U,{tone:`positive`,leftIcon:(0,J.jsx)(F,{}),children:i(`connectionCard.connected`)}),e?(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(n,{type:`button`,variant:`danger`,onClick:r,disabled:!r||t,children:i(t?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}function Ue({children:e}){let{t}=G(`channels`);return(0,J.jsxs)(p.Root,{children:[(0,J.jsx)(p.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:he(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,J.jsx)(f,{as:`span`,variant:`body-medium-default`,children:t(`slackChannelCard.setupHeading`)})]})}),(0,J.jsx)(p.Body,{children:e})]})}ne.map(e=>e.riskThreshold);var We=[`none`,`low`];function Y(e){if(e!==void 0)return e===`none`?`none`:`low`}var X={none:{label:L(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:L(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:L(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:L(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},Z=[`trusted_contact`,`unverified_contact`,`unknown`];function Ge(e,t){let n={};for(let r of e){if(r.selector.scope!==`channel`||r.selector.adapter!==t)continue;let e=r.selector.channelExternalId;e&&(r.contactType===`trusted_contact`||!(e in n))&&(n[e]=r.threshold)}return n}function Ke(e,t,n){return n===`channels`?e.selector.scope===`adapter`&&e.selector.adapter===t:e.selector.scope===`channel_type`&&e.selector.adapter===t&&e.selector.channelType===`dm`}function qe(e,t,n){let r;for(let i of e)Ke(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var Je=`__default__`;function Ye({color:e}){return(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function Xe({tier:e,defaultTier:t,disabled:n,onTierChange:r,onReset:i,"aria-label":a}){let{t:o}=G(`channels`),s=Y(e??t??void 0),c=Y(t??void 0)??null,l=We.map(e=>({value:e,label:X[e].label,icon:(0,J.jsx)(Ye,{color:X[e].dotColor}),suffix:e===c?(0,J.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:o(`tierPicker.defaultSuffix`)}):void 0,tooltip:X[e].sublabel}));return l.unshift({value:Je,label:`Default`,icon:(0,J.jsx)(Ye,{color:`transparent`}),tooltip:`follows the default level`}),(0,J.jsx)(ie,{value:s??``,onChange:e=>{e===Je||e===c?i():r(e)},options:l,placeholder:o(`tierPicker.defaultPlaceholder`),disabled:n,size:`compact`,menuAlign:`end`,"aria-label":a})}function Q(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function Ze(e){return e.filter(e=>Q(e)!==`dm`)}function Qe(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||Q(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function $e(e){let t={public:0,private:0,dm:0};for(let n of e)t[Q(n)]+=1;return t}function et(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var tt=[{value:null,labelKey:`slackChannelList.filterAll`},{value:`public`,labelKey:`slackChannelList.filterPublic`},{value:`private`,labelKey:`slackChannelList.filterPrivate`}],nt={public:x,private:R},rt=100,it=new Set;function at({assistantDisplayName:e,slackHandle:t,channels:n,loading:r=!1,error:i=!1,tierOverrides:a,defaultTier:o=null,accessControlsSupported:s=!0,tierOverridesLoading:c=!1,tierOverridesError:l=!1,pendingChannelIds:u=it,onTierChange:p,onTierReset:m}){let{t:h}=G(`channels`),[_,v]=(0,q.useState)(``),[y,b]=(0,q.useState)(null),S=(0,q.useMemo)(()=>Ze(n??[]),[n]),C=(0,q.useMemo)(()=>Qe(S,_,y),[S,_,y]),w=(0,q.useMemo)(()=>$e(S),[S]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,J.jsx)(f,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ae,{i18nKey:`slackChannelList.presenceHint`,ns:`channels`,values:{handle:t??`@${e}`,assistant:e},components:{invite:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`}),remove:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`})}})}),r?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:h(`slackChannelList.loading`)}):i?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:h(`slackChannelList.loadFailed`)}):S.length===0?(0,J.jsx)(Be,{icon:(0,J.jsx)(x,{className:`h-6 w-6`}),title:h(`slackChannelList.emptyTitle`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,J.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,J.jsx)(W,{type:`search`,value:_,onChange:e=>v(e.target.value),placeholder:h(`slackChannelList.searchPlaceholder`),"aria-label":h(`slackChannelList.searchAria`),leftIcon:(0,J.jsx)(V,{className:`h-4 w-4`}),fullWidth:!0})}),(0,J.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":h(`slackChannelList.filterGroupAria`),children:tt.map(({value:e,labelKey:t})=>{let n=y===e,r=e===null?S.length:w[e];return(0,J.jsx)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>b(e),className:d(`inline-flex h-6 items-center rounded-full px-2.5 text-body-small-emphasised leading-none transition-colors`,n?`bg-[var(--content-default)] text-[var(--surface-base)]`:`bg-[var(--tag-bg-neutral)] text-[color:var(--content-secondary)] hover:text-[color:var(--content-default)]`),children:h(t,{count:r})},e??`all`)})})]}),C.length===0?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:h(`slackChannelList.noMatches`)}):C.length>rt?(0,J.jsx)(`div`,{className:`h-96`,children:(0,J.jsx)(g,{items:C,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,J.jsx)(ot,{channel:t,pending:u.has(t.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[t.id],onTierChange:e=>p?.(t.id,e),onReset:()=>m?.(t.id)}),className:`h-full`})}):(0,J.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:C.map(e=>(0,J.jsx)(ot,{channel:e,pending:u.has(e.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[e.id],onTierChange:t=>p?.(e.id,t),onReset:()=>m?.(e.id)},e.id))})]})]})}function ot({channel:e,pending:t,overridesLoading:n,overridesError:r,defaultTier:i,accessControls:a,tierOverride:o,onTierChange:s,onReset:c}){let{t:l}=G(`channels`),u=Q(e);if(u===`dm`)return null;let d=nt[u],f=et(e),p=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return a?(0,J.jsx)(_,{className:p,leading:(0,J.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:f??void 0,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)(Xe,{tier:o,defaultTier:i,disabled:t||n||r,onTierChange:s,onReset:c,"aria-label":l(`slackChannelList.accessAria`,{channel:e.name})})})}):(0,J.jsx)(_,{className:p,leading:(0,J.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:f==null?void 0:(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:f})})}function st(e){return e===`none`?`Asks before every action, even a web search.`:`Asks before anything beyond looking things up and saving files in its own workspace.`}function ct({defaultTier:e}){let{t}=G(`channels`),n=Y(e??void 0)??null;return(0,J.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,J.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...We].reverse().map(e=>{let r=X[e];return(0,J.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(Ye,{color:r.dotColor}),(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,children:r.label}),e===n?(0,J.jsx)(f,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:t(`slackChannelTierLegend.defaultMarker`)}):null]}),(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:st(e)})]},e)})})})}var lt=[{bucket:`channels`,icon:x,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:z,title:`Direct messages`,description:`One-on-one DMs`}];function ut({assistantName:e,globalDefaultTier:t,bucketTiers:n,loading:r,error:i,pendingBuckets:a,onBucketChange:s,onBucketReset:c}){let{t:l}=G(`channels`);return(0,J.jsxs)(p.Root,{children:[(0,J.jsx)(p.Header,{children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[l(`slackChannelTypeDefaults.heading`),(0,J.jsx)(f,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ae,{i18nKey:`slackChannelTypeDefaults.subtitle`,ns:`channels`,values:{assistant:e},components:{trustRules:(0,J.jsx)(o,{to:ce.settings.privacy,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`})}})})]})}),(0,J.jsx)(p.Body,{className:`py-1`,children:lt.map(({bucket:e,icon:o,title:u,description:d})=>{let f=e===`dm`?n?.channels??t:t;return(0,J.jsx)(_,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,J.jsx)(o,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:u,subtitle:d,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)(Xe,{tier:n?.[e],defaultTier:f,disabled:r||i||a.has(e),onTierChange:t=>s(e,t),onReset:()=>c(e),"aria-label":l(`slackChannelTypeDefaults.bucketAria`,{bucket:u})})})},e)})}),(0,J.jsx)(p.Footer,{className:`p-0`,children:(0,J.jsx)(ct,{defaultTier:t})})]})}var dt=`0.11.0`;function ft(){return se(dt)}var pt=new Set([404,501]);function mt(e){let t=be(e);return t!==void 0&&pt.has(t)}function ht(e,t,n){return Z.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function gt(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function _t(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function vt(e,t,n){let r=_t(e,t);return Z.map(e=>({selector:r,contactType:e,threshold:n}))}function yt({assistantId:e,adapter:t}){let n=s(),r=ft()&&!!e,i=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,q.useMemo)(()=>b(i),[i]),o=(0,q.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),u=c({...S(i),enabled:r}),d=u.data?.cells,f=(0,q.useMemo)(()=>d?Ge(d,t):void 0,[d,t]),p=(0,q.useMemo)(()=>d?{channels:qe(d,t,`channels`),dm:qe(d,t,`dm`)}:void 0,[d,t]),m=c({queryKey:o,queryFn:async()=>{let{data:e}=await de({...i,body:{adapter:t,contactType:`trusted_contact`},throwOnError:!0});return e.resolved?.threshold??null},enabled:r,retry:!1,staleTime:3e4}),h=(e,t)=>{let r=n.getQueryData(a),i=Date.now();return n.setQueryData(a,n=>({cells:[...(n?.cells??[]).filter(t=>!e(t)),...t.map(e=>({...e,updatedAt:i}))]})),{previous:r}},g=l({mutationFn:async({channelExternalId:e,tier:n})=>{await Promise.all(ht(t,e,n).map(e=>pe({...i,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>h(n=>gt(n,t,e),ht(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),_=l({mutationFn:async({channelExternalId:e})=>{await Promise.all(Z.map(n=>fe({...i,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:n},throwOnError:!0})))},onMutate:({channelExternalId:e})=>h(n=>gt(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),v=l({mutationFn:async({bucket:e,tier:n})=>{await Promise.all(vt(t,e,n).map(e=>pe({...i,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>h(n=>Ke(n,t,e),vt(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),y=l({mutationFn:async({bucket:e})=>{let n=_t(t,e);await Promise.all(Z.map(e=>fe({...i,body:{selector:n,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>h(n=>Ke(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),x=(0,q.useMemo)(()=>{let e=new Set;return g.isPending&&g.variables&&e.add(g.variables.channelExternalId),_.isPending&&_.variables&&e.add(_.variables.channelExternalId),e},[g.isPending,g.variables,_.isPending,_.variables]),C=(0,q.useMemo)(()=>{let e=new Set;return v.isPending&&v.variables&&e.add(v.variables.bucket),y.isPending&&y.variables&&e.add(y.variables.bucket),e},[v.isPending,v.variables,y.isPending,y.variables]);return!r||u.isError&&mt(u.error)?{supported:!1,tierOverrides:void 0,defaultCellTier:void 0,bucketTiers:void 0,pendingChannelIds:new Set,pendingBuckets:new Set,isLoading:!1,isError:!1,onTierChange:void 0,onTierReset:void 0,onBucketChange:void 0,onBucketReset:void 0}:{supported:!0,tierOverrides:f,defaultCellTier:m.data,bucketTiers:p,pendingChannelIds:x,pendingBuckets:C,isLoading:u.isPending,isError:u.isError,onTierChange:(e,t)=>g.mutate({channelExternalId:e,tier:t}),onTierReset:e=>{f?.[e]!==void 0&&_.mutate({channelExternalId:e})},onBucketChange:(e,t)=>v.mutate({bucket:e,tier:t}),onBucketReset:e=>{p?.[e]!==void 0&&y.mutate({bucket:e})}}}function bt({assistantId:e,assistantDisplayName:t,slackHandle:n}){let{t:r}=G(`channels`),i=c({...A(e),enabled:!!e,select:e=>e.channels}),a=yt({assistantId:e,adapter:`slack`}),o=c({queryKey:[`thresholds`,e],queryFn:()=>I(e),enabled:a.supported&&!!e,staleTime:3e4}).data?.interactive??null,s=a.defaultCellTier===void 0?null:a.defaultCellTier??o,l=(0,J.jsx)(at,{assistantDisplayName:t,slackHandle:n,accessControlsSupported:a.supported,defaultTier:s,channels:i.data,loading:i.isPending,error:i.isError,tierOverrides:a.tierOverrides,tierOverridesLoading:a.isLoading,tierOverridesError:a.isError,pendingChannelIds:a.pendingChannelIds,onTierChange:a.onTierChange,onTierReset:a.onTierReset});return!a.supported||!a.onBucketChange||!a.onBucketReset?(0,J.jsx)(p.Root,{noPadding:!0,clipContents:!0,children:l}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[a.isError?(0,J.jsx)(H,{tone:`error`,children:r(`slackChannelSection.overridesLoadFailed`)}):null,(0,J.jsx)(ut,{assistantName:t,globalDefaultTier:o,bucketTiers:a.bucketTiers,loading:a.isLoading,error:a.isError,pendingBuckets:a.pendingBuckets,onBucketChange:a.onBucketChange,onBucketReset:a.onBucketReset}),(0,J.jsx)(p.Root,{noPadding:!0,clipContents:!0,children:(0,J.jsx)(y.Root,{type:`single`,collapsible:!0,children:(0,J.jsxs)(y.Item,{value:`per-channel-overrides`,children:[(0,J.jsxs)(y.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,children:r(`slackChannelSection.perChannelOverrides`)}),(0,J.jsx)(P,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,J.jsx)(y.Content,{className:`border-[var(--border-base)] data-[state=open]:border-t`,children:l})]})})})]})}function xt({slackHandle:e,disconnectPending:t=!1,onDisconnect:r,children:i}){let{t:a}=G(`channels`);return(0,J.jsxs)(p.Root,{children:[(0,J.jsx)(p.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:he(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,J.jsx)(f,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,J.jsx)(U,{tone:`positive`,leftIcon:(0,J.jsx)(F,{}),children:a(`connectionCard.connected`)}),(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(n,{type:`button`,variant:`ghost`,onClick:r,disabled:!r||t,children:a(t?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}),(0,J.jsx)(p.Body,{children:i})]})}function St({threadMode:e,threadModePending:t=!1,onThreadModeChange:n}){let{t:r}=G(`channels`);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:r(`slackThreadBehavior.heading`)}),(0,J.jsxs)(m,{value:e??`mention_then_thread`,onValueChange:e=>n?.(e),disabled:t||!n,"aria-label":r(`slackThreadBehavior.selectAria`),children:[(0,J.jsx)(v,{value:`mention_only`,label:r(`slackThreadBehavior.mentionsOnly`),helperText:r(`slackThreadBehavior.mentionsOnlyHelp`)}),(0,J.jsx)(v,{value:`mention_then_thread`,label:r(`slackThreadBehavior.followThreads`),helperText:r(`slackThreadBehavior.followThreadsHelp`)})]})]})}function Ct({onSave:e}){let{t}=G(`channels`),[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(``),[s,c]=(0,q.useState)(!1),[l,u]=(0,q.useState)(null),d=r.trim().length>0&&a.trim().length>0&&!s;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(W,{label:t(`twilioCredentialEntry.accountSid`),type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:s,fullWidth:!0}),(0,J.jsx)(W,{label:t(`twilioCredentialEntry.authToken`),type:`password`,value:a,onChange:e=>o(e.target.value),placeholder:t(`twilioCredentialEntry.authTokenPlaceholder`),disabled:s,fullWidth:!0}),l?(0,J.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:l}):null,(0,J.jsx)(`div`,{children:(0,J.jsx)(n,{type:`button`,onClick:async()=>{if(!(!e||!d)){c(!0),u(null);try{await e(r.trim(),a.trim()),i(``),o(``)}catch(e){u(e instanceof Error?e.message:`Failed to save`)}finally{c(!1)}}},disabled:!d,children:t(s?`twilioCredentialEntry.saving`:`twilioCredentialEntry.save`)})})]})}function wt({channel:e,assistantId:t,assistantName:r,assistantDisplayName:i,pending:a,initialManualEntry:o=!1,onSetup:s,onDisconnect:c,onSaveTelegramToken:l,telegramSaveStatus:u,telegramSaveError:d,onSaveSlackConfig:f,slackSaveStatus:p,slackSaveError:m,slackThreadMode:h,slackThreadModePending:g=!1,onSlackThreadModeChange:_,onSaveTwilioCredentials:v,policy:y,policySaving:b=!1,policyLoading:x=!1,policyError:S=!1,onPolicyChange:C}){let{t:w}=G(`channels`),T=e.status===`ready`,E=e.status===`incomplete`,[D,O]=(0,q.useState)(o);if(e.key===`slack`)return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[T?(0,J.jsx)(xt,{slackHandle:e.address,disconnectPending:a,onDisconnect:c,children:(0,J.jsx)(St,{threadMode:h,threadModePending:g,onThreadModeChange:_})}):(0,J.jsx)(Ue,{children:(0,J.jsx)(_e,{assistantName:r,onSave:f,saveStatus:p,saveError:m})}),T?(0,J.jsx)(bt,{assistantId:t,assistantDisplayName:i,slackHandle:e.address}):null]});let k=Ie[e.key];return(0,J.jsx)(`div`,{className:`flex flex-col gap-4`,children:T?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(He,{address:e.address,pending:a,onDisconnect:c}),k.hasTrustFloorControl&&C?(0,J.jsx)(Ve,{assistantDisplayName:i,policy:y,saving:b,loading:x,error:S,onChange:C}):null]}):D?e.key===`telegram`?(0,J.jsx)(ve,{assistantName:r,saveStatus:u,saveError:d,onSave:l}):(0,J.jsx)(Ct,{onSave:v}):(0,J.jsx)(Be,{icon:(0,J.jsx)(M,{channelId:e.key,className:`h-6 w-6`}),title:w(E?`channelPanel.incompleteTitle`:`channelPanel.disconnectedTitle`,{channel:j(e.key)}),description:E?e.warning??w(`channelPanel.incompleteDescription`,{channel:j(e.key)}):k.disconnectedPitchKey?w(k.disconnectedPitchKey,{assistant:i}):void 0,action:(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,J.jsx)(n,{type:`button`,variant:`outlined`,onClick:s,disabled:!s||a,children:w(a?`channelPanel.opening`:E?`channelPanel.finishSetup`:`channelPanel.setUp`)}),(0,J.jsx)(n,{type:`button`,variant:`link`,onClick:()=>O(!0),children:w(`channelPanel.connectManually`)})]})})})}var Tt=new Set([404,501]),Et=new Set([401,403]);function Dt(e){let t=be(e);return t!==void 0&&Tt.has(t)?`unsupported`:t!==void 0&&Et.has(t)?`forbidden`:`unreadable`}function Ot(e,t,n){let r=e===`unreadable`?t:n;return r?r instanceof Error&&r.message?r.message:`Something went wrong`:null}function kt(e,t){let n=s(),r={assistant_id:e},i=c({...N({path:r}),enabled:!!e,retry:ye}),a=()=>n.invalidateQueries({queryKey:w({path:r})}),o=l({...ee(),onSuccess:a}),u=l({...te(),onSuccess:a}),d=i.data?.sources?.find(e=>e.source===t),f;f=i.isError?Dt(i.error):i.isPending?`loading`:d?d.state:`none`;let p=Ot(f,i.error,o.error??u.error);return{status:f,paths:d?.routes?.map(e=>({path:e.publicPath,approvalGoverned:e.signer!==`vellum`,deliversInbound:e.deliversInbound===!0}))??[],deciding:o.isPending||u.isPending,approve:()=>{d?.digest&&o.mutate({path:{...r,source:t},body:{digest:d.digest}})},revoke:()=>u.mutate({path:{...r,source:t}}),error:p}}var At=`plugin`;function jt(e){let t=s(),n=Te(),r=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,q.useMemo)(()=>C(r),[r]),a=c({...D(r),enabled:n&&!!e,select:Me}),o=l({mutationFn:t=>Ae(e,At,t),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:K(`Failed to save channel policy`)}),u=(0,q.useCallback)(e=>{o.mutate(e)},[o]);return n?{policy:a.data?.find(e=>e.channelType===At)?.policy,isLoading:a.isPending,isError:a.isError,isSaving:o.isPending,onChange:u}:{policy:void 0,isLoading:!1,isError:!1,isSaving:!1,onChange:void 0}}function Mt({channel:e,assistantId:t,assistantDisplayName:i}){let{t:a}=G(`channels`),o=r(),s=kt(t,e.plugin),c=jt(t);return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-center`,children:[(0,J.jsx)(E,{icon:e.icon,className:`h-8 w-8 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`h3`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e.label}),e.description?(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e.description}):null,(0,J.jsx)(Nt,{channel:e,ingress:s}),c.onChange?(0,J.jsx)(`div`,{className:`w-full max-w-[420px] text-left`,children:(0,J.jsx)(Ve,{assistantDisplayName:i,policy:c.policy,saving:c.isSaving,loading:c.isLoading,error:c.isError,onChange:c.onChange})}):null,(0,J.jsx)(n,{onClick:()=>o(`/assistant/plugins/${e.plugin}`),variant:`outlined`,children:a(`pluginChannelPanel.openPluginPage`)})]})}function Nt({channel:e,ingress:t}){let{t:n}=G(`channels`);switch(t.status){case`loading`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressLoading`,{channel:e.label})});case`unsupported`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressUnsupported`)});case`forbidden`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressForbidden`)});case`unreadable`:return(0,J.jsxs)($,{children:[n(`pluginChannelPanel.ingressUnreadable`,{channel:e.label}),t.error?` ${t.error}`:``]});case`none`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressNone`,{channel:e.label})});case`pending`:case`approved`:return(0,J.jsx)(Pt,{channel:e,ingress:t})}}function Pt({channel:e,ingress:t}){let{t:r}=G(`channels`),i=t.status===`approved`,a=t.paths.filter(e=>e.approvalGoverned),o=t.paths.filter(e=>!e.approvalGoverned),s=a.some(e=>e.deliversInbound);return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,J.jsx)(U,{tone:i?`positive`:`neutral`,children:r(i?`pluginChannelPanel.ingressApprovedTag`:`pluginChannelPanel.ingressPendingTag`)}),a.length>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)($,{children:r(i?`pluginChannelPanel.approvedAddresses`:`pluginChannelPanel.pendingAddresses`,{channel:e.label})}),(0,J.jsx)(Ft,{paths:a}),s?(0,J.jsx)($,{children:r(`pluginChannelPanel.deliversInbound`,{channel:e.label})}):null]}):null,o.length>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)($,{children:r(`pluginChannelPanel.ungovernedAddresses`)}),(0,J.jsx)(Ft,{paths:o})]}):null,(0,J.jsx)(n,{onClick:i?t.revoke:t.approve,disabled:t.deciding,variant:i?`outlined`:`primary`,children:r(i?`pluginChannelPanel.revokeIngress`:`pluginChannelPanel.approveIngress`)}),t.error?(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--system-negative-strong)`},children:t.error}):null]})}function $({children:e}){return(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}function Ft({paths:e}){return(0,J.jsx)(`ul`,{className:`flex flex-col gap-1`,children:e.map(e=>(0,J.jsx)(`li`,{className:`font-mono text-body-small-default`,style:{color:`var(--content-secondary)`},children:e.path},e.path))})}var It={no_one:{title:`Block all messages?`,message:`Setting this channel to “No one” hard-denies every inbound message, including messages from you.
2
+
3
+ You can reverse this at any time.`,confirmLabel:`Block all`,destructive:!0},any_contact:{title:`Allow any contact?`,message:`“Any contact” admits every matched contact in this channel (including pending, unverified ones), not just your verified contacts.
4
+
5
+ Best for channels consisting of only people you already trust.`,confirmLabel:`Allow any contact`},strangers:{title:`Allow strangers?`,message:`Are you sure you want to allow strangers to contact your assistant through this channel?
6
+
7
+ Doing so could cost you money and open you up to security and privacy vulnerabilities.
8
+
9
+ Enable with extreme caution.`,confirmLabel:`Allow strangers`,destructive:!0}};function Lt({assistantId:e,assistantName:t,channels:n,pluginChannels:r=[],pendingChannelKey:i=null,slackThreadMode:a,slackThreadModePending:o=!1,channelPolicies:s,policySavingKey:c=null,policiesLoading:l=!1,policiesError:u=!1,onChannelPolicyChange:d,onSetup:f,onDisconnect:p,onSaveTelegramToken:m,telegramSaveStatus:h,telegramSaveError:g,onSaveSlackConfig:_,slackSaveStatus:v,slackSaveError:y,onSlackThreadModeChange:b,onSaveTwilioCredentials:x,initialChannel:S=null}){let{t:C}=G(`channels`),{selected:w,select:T}=Fe(),[E,D]=(0,q.useState)(null),[k,A]=(0,q.useState)(null),{paneRef:j,hasRoomForList:M,drawerOpen:ee,openDrawer:te,closeDrawer:N}=we(),[P]=(0,q.useState)(S);(0,q.useEffect)(()=>{P&&T(P)},[P,T]);let F=O(t),I=E?Ie[E]:null,L=k?It[k.policy]:null,ne=(e,t)=>{if(It[t]){A({channelKey:e,policy:t});return}d?.(e,t)},R=e=>{T(e),N()},z=r.find(e=>e.key===w),B=z?void 0:n.find(e=>e.key===w)??n[0];if(!B&&!z)return null;let V=z?z.key:B.key,H=z?(0,J.jsx)(Mt,{channel:z,assistantId:e,assistantDisplayName:F},z.key):(0,J.jsx)(wt,{channel:B,assistantId:e,assistantName:t,assistantDisplayName:F,pending:i===B.key,initialManualEntry:P===B.key,onSetup:f?()=>f(B.key,B.status===`incomplete`):void 0,onDisconnect:p?()=>D(B.key):void 0,onSaveTelegramToken:m,telegramSaveStatus:h,telegramSaveError:g,onSaveSlackConfig:_,slackSaveStatus:v,slackSaveError:y,slackThreadMode:a,slackThreadModePending:o,onSlackThreadModeChange:b,onSaveTwilioCredentials:x,policy:s?.[B.key],policySaving:c===B.key,policyLoading:l,policyError:u,onPolicyChange:d?e=>ne(B.key,e):void 0},B.key);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{ref:j,className:`flex min-h-0 flex-1 overflow-hidden ${M?`flex-row gap-6`:`flex-col gap-4`}`,children:[M?(0,J.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,J.jsx)(Le,{channels:n,pluginChannels:r,selectedKey:V,onSelect:R})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(Ce,{onClick:te})}),(0,J.jsx)(Se,{open:ee,onClose:N,title:C(`assistantChannelsList.drawerTitle`),children:(0,J.jsx)(Le,{channels:n,pluginChannels:r,selectedKey:V,onSelect:R})})]}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:V===`slack`?H:(0,J.jsx)(xe,{children:H})})]}),(0,J.jsx)(re,{open:E!==null,title:C(`assistantChannelsList.disconnectTitle`,{channel:I?C(I.labelKey):``}),message:I?C(I.disconnectMessageKey):``,confirmLabel:C(`assistantChannelsList.disconnectConfirm`),destructive:!0,onConfirm:()=>{E&&p&&p(E),D(null)},onCancel:()=>D(null)}),(0,J.jsx)(re,{open:k!==null,title:L?.title??``,message:L?.message??``,confirmLabel:L?.confirmLabel??C(`assistantChannelsList.confirmFallback`),destructive:L?.destructive??!1,onConfirm:()=>{k&&d?.(k.channelKey,k.policy),A(null)},onCancel:()=>A(null)})]})}var Rt=`plugin:`;function zt(e){let{data:t}=c({...le({path:{assistant_id:e}}),enabled:!!e,select:e=>e.channels.filter(e=>e.source?.startsWith(Rt)).map(e=>({plugin:e.id,key:k(e.id),label:e.label,description:e.subtitle,icon:e.icon}))});return t??[]}function Bt(){let[e,t]=i(),n=e.get(`setup`),r=n&&T(n)?n:null;return(0,q.useEffect)(()=>{r&&t(e=>(e.delete(`setup`),e),{replace:!0})},[r,t]),r}function Vt({assistantId:e,onStartSetupConversation:t}){let n=me.use.a2aChannel(),r=oe.use.name(),i=Bt(),a=Ne(e),o=O(r),s=ke({assistantId:e,onStartSetupConversation:t});return(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-hidden`,children:[(0,J.jsx)(Lt,{assistantId:e,assistantName:o,initialChannel:i,pluginChannels:zt(e),...s}),n?(0,J.jsx)(je,{onClick:a.open}):null,(0,J.jsx)(Oe,{open:a.isOpen,assistantId:e,onClose:a.close})]})}function Ht(){let e=r(),t=ge();return(0,J.jsx)(Vt,{assistantId:t,onStartSetupConversation:t=>{ue(e,{prompt:t})}},t)}export{Ht as ChannelsPageRoute};
@@ -1 +1 @@
1
- import"./api-asaDrkTi.js";function e(e){return e.previewStartedAt??e.startedAt??void 0}function t(e){return!e.isError&&e.result===void 0&&e.completedAt==null}function n(e){return!e.isError&&!t(e)}function r(e){return e?.webUrl??e?.appUrl}var i=[`choice`,`oauth_connect`,`form`,`confirmation`,`file_upload`,`task_preferences`];function a(e){return e.completed?!1:Array.isArray(e.actions)&&e.actions.length>0||i.includes(e.surfaceType)}var o=new Set([`ui_show`,`ui_update`,`app_open`,`app_create`,`app_update`,`app_refresh`]);function s(e,t){if(e.toolCallId){let r=t?.find(t=>t.id===e.toolCallId);return r?n(r):!0}let r;for(let e of t??[])o.has(e.name)&&(r=e);return r?n(r):!0}function c(e){if(e.surfaceType===`dynamic_page`){let t=e.data;return t?.appId||t?.preview?`inline`:e.display}return`inline`}function l(e,t){if(!e.toolCalls?.length)return e;let n=!1,r=new Map,i=e.toolCalls.map(e=>{let i=t(e);return i!==e&&(n=!0),r.set(i.id,i),i});if(!n)return e;let a=e.contentBlocks?.map(e=>{if(e.type!==`tool_use`)return e;let t=e.toolCall.id;if(t===void 0)return e;let n=r.get(t);return n===void 0||n===e.toolCall?e:{...e,toolCall:n}});return{...e,toolCalls:i,contentBlocks:a}}var u=`acp_claude_oauth_missing`,d=`Claude Code is now connected. Continue with the task I asked for: re-run the Claude Code spawn that failed for lack of a valid token.`,f={rate_limit_exceeded:`Too many requests. Please wait a moment and try again.`,invalid_api_key:`The API key for this provider is invalid or expired. Check your API key in Settings → Models & Services.`},p=new Set(`conversation_list_invalidated,conversation_title_updated,notification_intent,navigate_settings,open_conversation,identity_changed,avatar_updated,sync_changed,disk_pressure_status_changed,app_files_changed,home_feed_updated,relationship_state_updated,contact_request,subagent_spawned,subagent_status_changed,subagent_event,acp_session_spawned,acp_session_update,acp_session_usage,acp_session_completed,acp_session_error,acp_auth_required,background_tool_started,background_tool_completed,service_group_update_starting,service_group_update_progress,service_group_update_complete,memory_recalled,memory_status,bookmark.created,bookmark.deleted,contacts_changed,skills_state_changed,host_ui_snapshot_request,host_ui_snapshot_cancel,host_browser_cancel,assistant_status,model_info,schedule_conversation_created,heartbeat_alert,heartbeat_conversation_created,client_settings_update,config_changed,sounds_config_updated,oauth_connect_result,show_platform_login,platform_disconnected,notification_conversation_created,recording_start,recording_stop,recording_pause,recording_resume`.split(`,`));function m(e){return!p.has(e.type)}function h(e){let t=-1;for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.role===`assistant`)return t>n;r.role===`user`&&r.queueStatus!==`queued`&&(t=n)}return t!==-1}function g(e){for(let t of e)if(t.surfaces){for(let e of t.surfaces)if(a(e))return!0}return!1}function _(e){return!!e?.some(e=>e.role===`assistant`)}function v({previousConversationId:e,nextConversationId:t,onboardingDraftConversationId:n,autoGreetPending:r,assistantMessagePresent:i}){return e==null||t==null||e===t?!1:!(r&&!i&&e===n)}var y={"not-allowed":`Microphone access was blocked.`,"service-not-allowed":`Microphone access was blocked.`,"not-allowed-permanent":`Microphone access is blocked. Allow microphone access in system or browser settings, then try again.`,"audio-capture":`No microphone detected. Connect a microphone and try again.`,network:`Speech recognition couldn’t reach its service. Check your network and try again.`,aborted:`Recording was interrupted. Try again.`,"stt-not-configured":`Speech-to-text isn’t set up for this assistant. Open Settings → Voice to choose a provider.`,"stt-audio-rejected":`We couldn’t transcribe that recording. Try recording again or speaking more clearly.`,"stt-rate-limited":`Too many transcription requests. Please wait a moment and try again.`,"stt-auth-failed":`The speech-to-text provider rejected the assistant’s credentials. Update the API key in Settings → Voice.`,"stt-provider-error":`The speech-to-text provider is having trouble right now. Try again in a moment.`,"stt-unavailable":`Speech-to-text is temporarily unavailable. Try again in a moment.`,"stt-timeout":`Transcription took too long. Try a shorter recording.`,"native-stt-no-transcript":`macOS dictation didn’t return a transcript. Make sure Dictation is turned on in System Settings → Keyboard → Dictation, then try again.`,"dictation-automation-denied":`Dictation needs Automation permission to paste into other apps.`,"dictation-paste-blocked":`This app doesn't accept dictation; copy and paste manually.`};function b(e){return y[e]??`Voice input failed (${e}). Try again or type your message.`}var x=new Set([`not-allowed`,`service-not-allowed`]);function S(e){return e!==null&&x.has(e)}function C(e){return e===`not-allowed-permanent`}function w(e){return e===`dictation-automation-denied`}var T=new Set([`heartbeat`,`task`,`auto-analysis`]);function E(e){return e.source!==void 0&&T.has(e.source)}function D(e,t,n,r){let i=e[t],a=i.toolCalls[n],o=[...e];return o[t]=l(i,e=>e.id===a.id?{...e,pendingConfirmation:r}:e),{updatedMessages:o,attachedToolCallId:a.id}}function O(e,n){let{toolUseId:r,...i}=n,a=i;if(r)for(let t=e.length-1;t>=0;t--){let n=e[t];if(!n?.toolCalls?.length)continue;let i=n.toolCalls.findIndex(e=>e.id===r);if(i!==-1)return D(e,t,i,a)}for(let n=e.length-1;n>=0;n--){let r=e[n];if(!(r?.role!==`assistant`||!r.toolCalls?.length)){for(let i=r.toolCalls.length-1;i>=0;i--){let o=r.toolCalls[i];if(o&&t(o))return D(e,n,i,a)}break}}return{updatedMessages:e,attachedToolCallId:void 0}}function k(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.pendingConfirmation)return{...t.pendingConfirmation,toolUseId:t.id}}}return null}function A(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.pendingQuestion)return{requestId:t.pendingQuestion.requestId,entries:t.pendingQuestion.entries,toolUseId:t.id}}}return null}function j(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.id){if(t.errorCode===`acp_claude_oauth_missing`)return{toolUseId:t.id};if(t.errorCode===`acp_claude_auth_required`)return{toolUseId:t.id,reason:`auth_required`}}}}return null}function M(e,t){if(!e)return t;for(let t of[`command`,`cmd`,`path`,`file`,`url`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim()}for(let t of Object.values(e))if(typeof t==`string`&&t.trim())return t.trim();try{let t=JSON.stringify(e);return t.length>120?t.slice(0,117)+`...`:t}catch{return t}}function N(e){return{toolName:e.name,riskLevel:e.riskLevel,riskReason:e.riskReason,input:e.input??{},allowlistOptions:e.riskAllowlistOptions??[],scopeOptions:e.scopeOptions??[],directoryScopeOptions:e.riskDirectoryScopeOptions??[],matchedTrustRuleId:e.matchedTrustRuleId}}var P=60,F=24,I=6e4;function L(e){let t=Math.floor((Date.now()-e)/I);if(t<1)return`just now`;if(t<P)return`${t}m ago`;let n=Math.floor(t/P);return n<F?`${n}h ago`:`${Math.floor(n/F)}d ago`}export{c as C,t as D,r as E,e as O,i as S,s as T,E as _,k as a,d as b,b as c,h as d,m as f,v as g,w as h,j as i,g as l,C as m,O as n,A as o,S as p,M as r,L as s,f as t,_ as u,N as v,a as w,l as x,u as y};
1
+ import"./api-Dppu0jIX.js";function e(e){return e.previewStartedAt??e.startedAt??void 0}function t(e){return!e.isError&&e.result===void 0&&e.completedAt==null}function n(e){return!e.isError&&!t(e)}function r(e){return e?.webUrl??e?.appUrl}var i=[`choice`,`oauth_connect`,`form`,`confirmation`,`file_upload`,`task_preferences`];function a(e){return e.completed?!1:Array.isArray(e.actions)&&e.actions.length>0||i.includes(e.surfaceType)}var o=new Set([`ui_show`,`ui_update`,`app_open`,`app_create`,`app_update`,`app_refresh`]);function s(e,t){if(e.toolCallId){let r=t?.find(t=>t.id===e.toolCallId);return r?n(r):!0}let r;for(let e of t??[])o.has(e.name)&&(r=e);return r?n(r):!0}function c(e){if(e.surfaceType===`dynamic_page`){let t=e.data;return t?.appId||t?.preview?`inline`:e.display}return`inline`}function l(e,t){if(!e.toolCalls?.length)return e;let n=!1,r=new Map,i=e.toolCalls.map(e=>{let i=t(e);return i!==e&&(n=!0),r.set(i.id,i),i});if(!n)return e;let a=e.contentBlocks?.map(e=>{if(e.type!==`tool_use`)return e;let t=e.toolCall.id;if(t===void 0)return e;let n=r.get(t);return n===void 0||n===e.toolCall?e:{...e,toolCall:n}});return{...e,toolCalls:i,contentBlocks:a}}var u=`acp_claude_oauth_missing`,d=`Claude Code is now connected. Continue with the task I asked for: re-run the Claude Code spawn that failed for lack of a valid token.`,f={rate_limit_exceeded:`Too many requests. Please wait a moment and try again.`,invalid_api_key:`The API key for this provider is invalid or expired. Check your API key in Settings → Models & Services.`},p=new Set(`conversation_list_invalidated,conversation_title_updated,notification_intent,navigate_settings,open_conversation,identity_changed,avatar_updated,sync_changed,disk_pressure_status_changed,app_files_changed,home_feed_updated,relationship_state_updated,contact_request,subagent_spawned,subagent_status_changed,subagent_event,acp_session_spawned,acp_session_update,acp_session_usage,acp_session_completed,acp_session_error,acp_auth_required,background_tool_started,background_tool_completed,service_group_update_starting,service_group_update_progress,service_group_update_complete,memory_recalled,memory_status,bookmark.created,bookmark.deleted,contacts_changed,skills_state_changed,host_ui_snapshot_request,host_ui_snapshot_cancel,host_browser_cancel,assistant_status,model_info,schedule_conversation_created,heartbeat_alert,heartbeat_conversation_created,client_settings_update,config_changed,sounds_config_updated,oauth_connect_result,show_platform_login,platform_disconnected,notification_conversation_created,recording_start,recording_stop,recording_pause,recording_resume`.split(`,`));function m(e){return!p.has(e.type)}function h(e){let t=-1;for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.role===`assistant`)return t>n;r.role===`user`&&r.queueStatus!==`queued`&&(t=n)}return t!==-1}function g(e){for(let t of e)if(t.surfaces){for(let e of t.surfaces)if(a(e))return!0}return!1}function _(e){return!!e?.some(e=>e.role===`assistant`)}function v({previousConversationId:e,nextConversationId:t,onboardingDraftConversationId:n,autoGreetPending:r,assistantMessagePresent:i}){return e==null||t==null||e===t?!1:!(r&&!i&&e===n)}var y={"not-allowed":`Microphone access was blocked.`,"service-not-allowed":`Microphone access was blocked.`,"not-allowed-permanent":`Microphone access is blocked. Allow microphone access in system or browser settings, then try again.`,"audio-capture":`No microphone detected. Connect a microphone and try again.`,network:`Speech recognition couldn’t reach its service. Check your network and try again.`,aborted:`Recording was interrupted. Try again.`,"stt-not-configured":`Speech-to-text isn’t set up for this assistant. Open Settings → Voice to choose a provider.`,"stt-audio-rejected":`We couldn’t transcribe that recording. Try recording again or speaking more clearly.`,"stt-rate-limited":`Too many transcription requests. Please wait a moment and try again.`,"stt-auth-failed":`The speech-to-text provider rejected the assistant’s credentials. Update the API key in Settings → Voice.`,"stt-provider-error":`The speech-to-text provider is having trouble right now. Try again in a moment.`,"stt-unavailable":`Speech-to-text is temporarily unavailable. Try again in a moment.`,"stt-timeout":`Transcription took too long. Try a shorter recording.`,"native-stt-no-transcript":`macOS dictation didn’t return a transcript. Make sure Dictation is turned on in System Settings → Keyboard → Dictation, then try again.`,"dictation-automation-denied":`Dictation needs Automation permission to paste into other apps.`,"dictation-paste-blocked":`This app doesn't accept dictation; copy and paste manually.`};function b(e){return y[e]??`Voice input failed (${e}). Try again or type your message.`}var x=new Set([`not-allowed`,`service-not-allowed`]);function S(e){return e!==null&&x.has(e)}function C(e){return e===`not-allowed-permanent`}function w(e){return e===`dictation-automation-denied`}var T=new Set([`heartbeat`,`task`,`auto-analysis`]);function E(e){return e.source!==void 0&&T.has(e.source)}function D(e,t,n,r){let i=e[t],a=i.toolCalls[n],o=[...e];return o[t]=l(i,e=>e.id===a.id?{...e,pendingConfirmation:r}:e),{updatedMessages:o,attachedToolCallId:a.id}}function O(e,n){let{toolUseId:r,...i}=n,a=i;if(r)for(let t=e.length-1;t>=0;t--){let n=e[t];if(!n?.toolCalls?.length)continue;let i=n.toolCalls.findIndex(e=>e.id===r);if(i!==-1)return D(e,t,i,a)}for(let n=e.length-1;n>=0;n--){let r=e[n];if(!(r?.role!==`assistant`||!r.toolCalls?.length)){for(let i=r.toolCalls.length-1;i>=0;i--){let o=r.toolCalls[i];if(o&&t(o))return D(e,n,i,a)}break}}return{updatedMessages:e,attachedToolCallId:void 0}}function k(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.pendingConfirmation)return{...t.pendingConfirmation,toolUseId:t.id}}}return null}function A(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.pendingQuestion)return{requestId:t.pendingQuestion.requestId,entries:t.pendingQuestion.entries,toolUseId:t.id}}}return null}function j(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.id){if(t.errorCode===`acp_claude_oauth_missing`)return{toolUseId:t.id};if(t.errorCode===`acp_claude_auth_required`)return{toolUseId:t.id,reason:`auth_required`}}}}return null}function M(e,t){if(!e)return t;for(let t of[`command`,`cmd`,`path`,`file`,`url`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim()}for(let t of Object.values(e))if(typeof t==`string`&&t.trim())return t.trim();try{let t=JSON.stringify(e);return t.length>120?t.slice(0,117)+`...`:t}catch{return t}}function N(e){return{toolName:e.name,riskLevel:e.riskLevel,riskReason:e.riskReason,input:e.input??{},allowlistOptions:e.riskAllowlistOptions??[],scopeOptions:e.scopeOptions??[],directoryScopeOptions:e.riskDirectoryScopeOptions??[],matchedTrustRuleId:e.matchedTrustRuleId}}var P=60,F=24,I=6e4;function L(e){let t=Math.floor((Date.now()-e)/I);if(t<1)return`just now`;if(t<P)return`${t}m ago`;let n=Math.floor(t/P);return n<F?`${n}h ago`:`${Math.floor(n/F)}d ago`}export{c as C,t as D,r as E,e as O,i as S,s as T,E as _,k as a,d as b,b as c,h as d,m as f,v as g,w as h,j as i,g as l,C as m,O as n,A as o,S as p,M as r,L as s,f as t,_ as u,N as v,a as w,l as x,u as y};
@@ -0,0 +1,3 @@
1
+ var e={backAria:`Volver a todos los pasos`,backTooltip:`Todos los pasos`},t={title:`Añadir al chat`,closeAriaLabel:`Cerrar`,camera:`Cámara`,gallery:`Buscar en la galería`,files:`Archivos`},n={description:`Dónde {count, plural, one {cayó # punto de corte de caché} other {cayeron # puntos de corte de caché}} en el prefijo de esta solicitud, y qué segmentos se leyeron frente a los que se volvieron a crear.`,estimatedTokens:`≈ {count} tokens`,fullMissBody:`Todos los segmentos se volvieron a crear en este turno. Compara con el turno anterior en la diferencia de caché de arriba para encontrar el bloque que cambió.`,fullMissTitle:`Fallo total de caché`,loadError:`No se pudo cargar la carga de la solicitud para mapear los puntos de corte de caché.`,loading:`Cargando la carga de la solicitud para mapear los puntos de corte de caché…`,noBreakpoints:`Esta solicitud no tenía puntos de corte de caché: la caché del prompt estaba desactivada para la llamada.`,splitEstimatedNote:` La división leído/creado se atribuye por tamaño de segmento; el proveedor solo informa los totales.`,statusCreated:`Vuelto a crear`,statusRead:`Leído de la caché`,statusUnknown:`En caché`,title:`Puntos de corte de caché`,tokenEstimateNote:`Los recuentos de tokens se estiman a partir de la longitud del texto.`},r={changedLabel:`Cambiado`,changedMessageFallback:`un mensaje`,chipMessages:`Mensajes`,chipModel:`Modelo`,chipSettings:`Configuración`,chipSystem:`Sistema`,chipTools:`Herramientas`,currentModelFallback:`este modelo`,description:`Qué cambió desde la solicitud del turno anterior: el bloque que volvió a crear la caché del prompt.`,diffAnyway:`Comparar de todos modos ({lineCount} líneas)`,diffLabel:`{label} diff`,diffLargeDefault:`El texto cambiado es grande, así que no se compara por defecto.`,diffStillTooLarge:`Sigue siendo demasiado grande para comparar aquí (más de {maxLines} líneas). Abre la pestaña Raw para ver la carga completa.`,diffTooLarge:`El texto cambiado es demasiado grande para comparar aquí. Abre la pestaña Raw para ver la carga completa.`,loadPreviousCallError:`No se pudo cargar la llamada anterior para comparar.`,loadingPreviousCall:`Cargando la llamada anterior para comparar…`,messageStatsAppended:`{count} añadido(s)`,messageStatsLeading:`Mensajes iniciales: {parts}`,messageStatsRemoved:`{count} eliminado(s)`,messageStatsShared:`{count} compartido(s)`,previousModelFallback:`el modelo anterior`,previousPromptUnavailable:`El prompt de la llamada anterior no está disponible para comparar.`,showLess:`Mostrar menos`,showMoreDiffLines:`Mostrar {count} línea(s) de diferencia más`,statusMessagesEarlierBody:`{label} #{index} difiere del turno anterior, así que todo lo que estaba en caché después se vuelve a procesar en este turno.`,statusMessagesEarlierTitle:`Un mensaje anterior cambió`,statusMessagesHistoryBody:`Faltan {removedCount} mensaje(s) anterior(es) en este turno (probablemente por compactación del historial), así que el prefijo de mensajes en caché ya no coincide.`,statusMessagesHistoryTitle:`Historial de mensajes cambiado`,statusModelBody:`Este turno usó {current}, pero el turno anterior usó {previous}. Un modelo distinto no puede reutilizar la caché del prompt anterior, así que todo el prompt se vuelve a crear.`,statusModelTitle:`Modelo cambiado`,statusPrefixUnchangedBodyAppended:`El prefijo en caché coincide con el turno anterior y se añadieron {count} mensaje(s) nuevo(s). Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedBodyIdentical:`El prefijo en caché es idéntico al del turno anterior. Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedTitle:`Prefijo del prompt sin cambios`,statusSettingsBody:`Solo la configuración de la solicitud (p. ej., temperatura) difiere del turno anterior. En la mayoría de proveedores, esto por sí solo no invalida la caché del prompt.`,statusSettingsTitle:`Configuración de la solicitud cambiada`,statusSystemBody:`Parte del prompt del sistema cambió desde el turno anterior. El contenido volátil aquí (una marca de tiempo, memoria o un bloque por turno) vuelve a crear la caché en cada turno.`,statusSystemTitle:`Prompt del sistema cambiado`,statusToolsBody:`El conjunto de herramientas o sus definiciones difieren del turno anterior. Las herramientas están al inicio del prefijo en caché, así que cualquier cambio aquí vuelve a crear la caché antes de llegar al prompt del sistema y a los mensajes.`,statusToolsTitle:`Definiciones de herramientas cambiadas`,title:`Diferencia de caché`,unchangedLines:`⋯ {count} línea(s) sin cambios`},i={barAriaLabel:`Desglose de la caché del prompt de {total} tokens: {segments} ({percent} en caché).`,barSegment:`{count} {label}`,cached:`en caché`,description:`Cuánto del prompt de esta llamada se sirvió desde la caché del prompt.`,segmentCreated:`Vuelto a crear`,segmentFresh:`Entrada nueva`,segmentRead:`Leído de la caché`,statusFullMissBody:`Ninguna parte del prompt de esta llamada se leyó de la caché.`,statusFullMissReCreatedSuffix:` Se escribieron {count} tokens en la caché en este turno, pero no se reutilizó ninguno; esto suele significar que el prefijo en caché cambió desde el turno anterior.`,statusFullMissTitle:`Fallo total de caché`,statusHealthyBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché.`,statusHealthyTitle:`Reutilización saludable de la caché`,statusPartialBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché; el resto se volvió a procesar en este turno.`,statusPartialTitle:`Reutilización parcial de la caché`,title:`Estado de la caché`,unavailableNote:`Esta llamada no informó del uso de la caché del prompt.`,unavailableNoteForProvider:`Esta llamada no informó del uso de la caché del prompt para {provider}.`},a={callCount:`{count, plural, one {# llamada LLM} other {# llamadas LLM}}`,callLabel:`Llamada {number}`,compaction:`Compactación`,cost:`Costo`,empty:`No hay llamadas LLM registradas.`,failed:`Fallida`,latest:`Más reciente`,navAriaLabel:`Llamadas LLM`,syntheticAgentLoopError:`Error del bucle del agente`,syntheticAgentLoopErrorWithReason:`Error del bucle del agente · {reason}`,syntheticYield:`Rendimiento · la compactación no cupo en el siguiente paso`,unrecognizedCall:`Llamada no reconocida`},o={addToChat:`Añadir al chat`,askAssistantPlaceholder:`Pregunta a {assistantName}`,disclaimer:`Vellum usa modelos de IA externos y puede cometer errores`},s={compactedMessages:`{count} compactados`,compactedPreserved:`Compactados / preservados`,contextTokens:`Tokens de contexto`,duration:`Duración`,durationMs:`{count} ms`,emptyBody:`Una compactación se atribuye a la llamada que se ejecutó justo después. Si esperas una aquí, verifica que la conversación superó su presupuesto de contexto justo antes de esta llamada.`,emptyTitle:`Ninguna compactación está asociada a esta llamada`,eventIndex:` · {index} de {totalCount}`,hideSummaryText:`Ocultar texto del resumen`,loadFailedDefault:`No se pudo cargar la compactación.`,loadFailedTitle:`Error al cargar`,loading:`Cargando compactación…`,messageRange:`{before} → {after}`,messages:`Mensajes`,outcomeCompacted:`Compactado`,outcomeFailed:`Compactación fallida`,outcomeFailedDetail:`La llamada del resumidor falló, por lo que el contexto quedó intacto.`,outcomeNoChange:`Sin cambios`,outcomeUnavailable:`Resultado no disponible`,outcomeUnavailableDetail:`No se registraron métricas detalladas antes/después para esta compactación.`,preservedMessages:`{count} preservados`,reductionRatio:`{ratio}× más pequeño`,retry:`Reintentar`,showSummaryText:`Mostrar texto del resumen`,summarizerUsage:`{input} entrada / {output} salida`,summaryCost:`Costo del resumen`,summaryModel:`Modelo de resumen`,tokenRange:`{before} → {after}`,tokenRangeWithReduction:`{before} → {after} ({reduction})`,trigger:`Disparador`},c={ariaLabel:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}}`,ariaLabelUnseen:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}} (cambios sin ver)`,heading:`Recursos`,label:`{count, plural, one {# recurso} other {# recursos}}`},l={copied:`Copiado`,copyFailed:`No se pudo copiar al portapapeles.`},u={tooltip:`Detener`},d={cancel:`Cancelar`,close:`Cerrar`,defaultError:`No se pudieron exportar los datos del inspector.`,descriptionDone:`La descarga debería haber comenzado automáticamente.`,descriptionError:`Algo salió mal al recopilar la exportación.`,descriptionRunning:`Recopilando cargas del proveedor y contexto normalizado. Esto puede tardar un momento en conversaciones largas.`,done:`Listo`,progressAriaLabel:`Progreso de exportación`,retry:`Reintentar`,statusDone:`Listo`,statusPackaging:`Empaquetando ZIP…`,statusProgress:`{completed} de {total} llamadas`,titleDone:`Exportación completa`,titleError:`Error al exportar`,titleRunning:`Exportando datos del inspector`},f={accessDenied:`El inspector está disponible para el personal de Vellum o cuando la marca de desarrollador settings-developer-nav está habilitada.`,allMessages:`Todos los mensajes`,back:`Volver`,backToConversationAria:`Volver a la conversación`,chooseCall:`Elige una llamada de la barra lateral para inspeccionar su contexto.`,conversationScopeSubtitle:`Mostrando cada llamada LLM registrada en esta conversación.`,detailLoadFailed:`No se pudo cargar el contexto normalizado de esta llamada.`,emptyBodyConversation:`Ningún mensaje de la conversación fue producido por una llamada LLM o los registros de solicitud fueron recortados por retención.`,emptyBodyMessage:`Este mensaje no fue producido por una llamada LLM o sus registros de solicitud fueron recortados por retención.`,emptyTitleConversation:`No hay llamadas LLM registradas para esta conversación.`,emptyTitleMessage:`No hay llamadas LLM registradas para este mensaje.`,enableLogging:`Habilitar registro`,enableLoggingFailed:`No se pudo habilitar el registro`,enableLoggingFailedWithMessage:`No se pudo habilitar el registro ({message})`,enabling:`Habilitando…`,exportFailed:`No se pudieron exportar los datos del inspector`,exportZip:`Exportar ZIP`,exportZipAria:`Exportar datos del inspector como ZIP`,exporting:`Exportando…`,filterToMessage:`Filtrar por mensaje:`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,loadContextFailed:`No se pudo cargar el contexto LLM.`,loadFailedTitle:`Error al cargar`,loading:`Cargando…`,loggingDisabledBody:`Las cargas útiles de solicitud y respuesta no se están registrando, así que no hay nada que inspeccionar. Habilita el registro para capturar futuras llamadas LLM.`,loggingDisabledTitle:`El registro de solicitudes LLM está desactivado`,loggingEnabledToast:`Registro de solicitudes LLM habilitado`,messageOptionDeepLink:`Mensaje {messageId}`,messageOptionNoText:`{index}. (sin texto)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Reintentar`,scopedToOneMessage:`Limitado a un mensaje · `,scopedToTurn:`Limitado al turno {index} de {count} · `,title:`Inspector de contexto LLM`},p={chipCode:`Código`,chipProvider:`Proveedor`,chipRequestId:`ID de solicitud`,chipStatus:`Estado`,chipType:`Tipo`,chipUpstreamCode:`Código ascendente`,chipUpstreamParam:`Parámetro ascendente`,chipUpstreamType:`Tipo ascendente`,noResponse:`El proveedor rechazó esta llamada y no devolvió respuesta.`,title:`Llamada fallida`},m={addOlderPairButton:`+ Añadir par más antiguo`,assistantReplyLabel:`[assistant]: respuesta`,assistantReplyPlaceholder:`Respuesta del asistente que precedió al mensaje del usuario de abajo.`,configTitle:`Configuración {paneId}`,conversationalContextTitle:`Contexto conversacional (compartido por ambos paneles)`,customPromptPlaceholder:`Prompt del sistema del enrutador personalizado. Marcadores de posición disponibles:
2
+ '{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
3
+ Déjalo en blanco para usar la plantilla incluida. "Cargar predeterminado" rellena el área de texto con el cuerpo incluido para editar.`,description:`Ejecuta en seco el enrutador v4 con anulaciones personalizadas de nivel/lote. Solo lectura: no se escriben filas en <code>memory_v2_injection_events</code> ni en <code>memory_v2_activation_logs</code>, y no se modifica el estado de activación. Deja una anulación en blanco para heredar el valor de configuración activo; escribe <code>null</code> para desactivar explícitamente un nivel.`,diffLabel:`Diferencia`,diffValue:`{shared} compartidas · {unique} exclusivas de este panel`,effectiveConfig:`Configuración efectiva`,emaScore:`EMA {score}`,empty:`(vacío)`,emptySelectionHint:`El enrutador devolvió una selección vacía. Prueba una consulta más específica o relaja los valores de anulación.`,failedToRunSimulation:`No se pudo ejecutar la simulación`,firstTurnAssistantPlaceholder:`Déjalo en blanco para un escenario de primer turno.`,inheritActive:`heredar activo`,inheritActiveWithProfile:`heredar activo ({profile})`,inheritPlaceholder:`heredar`,invalidOverrideInput:`Entrada de anulación no válida`,justArrivedUserLabel:`[user]: mensaje recién llegado`,lastUserPlaceholder:`p. ej. qué deberíamos lanzar después`,legendAOnly:`solo A`,legendBOnly:`solo B`,legendInBoth:`en ambos`,llmProfilesOverride:`anulación de llm.profiles`,loadDefault:`Cargar predeterminado`,loading:`Cargando…`,noPagesSelected:`No se seleccionaron páginas`,notAvailable:`El patio de pruebas del enrutador de memoria no está disponible.`,nowBlockLabel:`bloque '<now>'`,nowDefaultPlaceholder:`Rellenado con el NOW.md activo. Edita para probar estados alternativos.`,nowLoadingPlaceholder:`Cargando NOW.md actual…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} debe ser un entero positivo o 'null' (se obtuvo "{value}")`,overrideSuffix:` (anulación)`,pageCount:`{count, plural, one {# página} other {# páginas}}`,pairLabel:`Par {index} de {total}`,pairMostRecentSuffix:` · más reciente`,paneTitle:`Panel {paneId}`,promptModeBundled:`incluido`,promptModeCustom:`personalizado`,rawApiExchange:`Intercambio de API sin procesar`,recentPairsLabel:`Pares recientes (asistente, usuario) · más antiguos primero`,reloadNowButton:`Recargar NOW.md activo`,removeButton:`Eliminar`,requestLabel:`Solicitud (panel {paneId})`,reset:`Restablecer`,responseLabel:`Respuesta (panel {paneId})`,routerFailure:`Fallo del enrutador: {reason}`,runBoth:`Ejecutar ambos`,runPane:`Ejecutar {paneId}`,running:`Ejecutando…`,selectedLabel:`Seleccionadas`,selectedValue:`{count} (max_page_ids activo: {maxPageIds})`,summary:`Resumen`,summaryUserMessageLabel:`Mensaje del usuario`,systemPrompt:`Prompt del sistema`,systemPromptConfigLabel:`prompt del sistema`,tier1Label:`nivel 1`,tier2Label:`nivel 2`,tier3Label:`nivel 3 · b{batch}`,title:`Patio de pruebas del enrutador de memoria`,totalCandidatePagesLabel:`Total de páginas candidatas`,userMessageLabel:`[user]: mensaje`,userMessagePlaceholder:`Mensaje del usuario.`},h={afterMergeLabel:`Tras la fusión`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (propio)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (bruto {raw})`,breakdownScaledRaw:`{scaled} (bruto {raw})`,breakdownSource:`fuente`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`estado`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Arrastradas: {count}`,conceptActivationsSubtitle:"Ordenadas por activación final. Las entradas de habilidades aparecen con el prefijo `skills/`; expande una fila para ver el desglose de activación.",conceptActivationsTitle:`Activaciones de conceptos ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (decaimiento)`,configEpsilon:`epsilon`,configHops:`saltos`,configKSharpening:`k (agudización)`,configSubtitle:`Pesos de activación y umbrales de selección.`,configTitle:`Configuración`,configTopK:`top_k`,copyAriaLabel:`Copiar al portapapeles`,copyAriaLabelCopied:`Copiado`,copyButtonCopied:`Copiado`,copyButtonCopy:`Copiar`,copyErrorMessage:`No se pudo copiar al portapapeles.`,copyTitle:`Copiar`,copyTitleCopied:`¡Copiado!`,corePill:`Núcleo: {count}`,degradationTitle:`Degradación`,fallbackSourcesLabel:`Fuentes de respaldo`,hybridSearchLabel:`Búsqueda híbrida`,inContextPill:`En contexto: {count}`,injectedMemoryContextTitle:`Contexto de memoria inyectado`,injectedPill:`Inyectados: {count}`,injectedTokensLabel:`Tokens inyectados`,latencyMs:`{ms} ms`,loading:`Cargando…`,loggedMemorySelectionSubtitle:`Renderizado desde la selección v3, no inyectado en este turno.`,loggedMemorySelectionTitle:`Selección de memoria registrada`,memoryDisabledDefaultReason:`La recuperación de memoria se desactivó para este turno.`,memoryDisabledTitle:`Memoria desactivada`,missingValue:`-`,modelLabel:`Modelo`,no:`No`,noDataBody:`La información de recuperación de memoria no está disponible para este mensaje.`,noDataTitle:`Sin datos de memoria`,noEntriesRanked:`No hay entradas clasificadas.`,noPagesSelected:`No hay páginas seleccionadas.`,notInjectedPill:`No inyectados: {count}`,pageContentLabel:`contenido de la página`,pageNotFound:`Página no encontrada en disco. El slug puede hacer referencia a una entrada obsoleta de Qdrant.`,pillMemoryV2:`Memoria V2`,pillMemoryV3:`Memoria V3`,pillRecallV1:`Recuperación (v1)`,pinnedChip:`fijada`,pinnedPill:`Fijadas: {count}`,providerLabel:`Proveedor`,queryContextSubtitle:`El texto incrustado como vector de búsqueda para la recuperación semántica.`,queryContextTitle:`Contexto de consulta`,reasonLabel:`Motivo`,retrievalFunnelSubtitle:`Cómo se filtraron las memorias desde la búsqueda semántica hasta la inyección.`,retrievalFunnelTitle:`Embudo de recuperación`,searchDetailsTitle:`Detalles de búsqueda`,selectedLabel:`Seleccionadas`,selectedPagesSubtitle:`Páginas que v3 seleccionó, etiquetadas por el carril que las mostró y la sección coincidente (cuando un carril de búsqueda mostró una).`,selectedPagesTitle:`Páginas seleccionadas ({count})`,selectedPill:`Seleccionadas: {count}`,semanticHitsLabel:`Coincidencias semánticas`,semanticUnavailableLabel:`Semántica no disponible`,sparseDenseOnly:`Solo densos`,sparseUsed:`Usados`,sparseVectorsLabel:`Vectores dispersos`,statusActive:`Activo`,statusDegraded:`Degradado`,statusLabel:`Estado`,statusSubtitle:`Proveedor, modelo y latencia de esta recuperación.`,statusTitle:`Estado`,tier1Label:`Nivel 1`,tier2Label:`Nivel 2`,topCandidatesSubtitle:`{count, plural, one {# candidato clasificado por puntuación final.} other {# candidatos clasificados por puntuación final.}}`,topCandidatesTitle:`Mejores candidatos`,totalLatencyLabel:`Latencia total`,turnLevelRecallBody:`La recuperación de memoria se ejecuta una vez por turno. Estos datos se aplican a todas las llamadas LLM de este mensaje.`,turnLevelRecallTitle:`Recuperación por turno`,turnPill:`Turno {turn}`,unavailable:`No disponible`,unknown:`Desconocido`,v2StatusInContext:`En contexto`,v2StatusInjected:`Inyectado`,v2StatusNotInjected:`No inyectado`,v2StatusPageMissing:`Página no encontrada`,v2TurnBody:`Paso de memoria por activación en cascada que clasifica conceptos y habilidades para este turno.`,v2TurnTitle:`Memoria - turno {turn} ({mode})`,v3LiveInjectionBody:`v3 es la fuente de memoria en vivo en este turno: el bloque de abajo se inyectó en el contexto (v2 suprimido).`,v3LiveInjectionTitle:`Memoria V3 - inyección en vivo`,v3LoggedSelectionBody:`v3 no es la fuente de memoria en vivo para este asistente: estas selecciones se registraron pero no se inyectaron en este turno; la memoria del turno provino de v2.`,v3LoggedSelectionTitle:`Memoria V3 - selección registrada (no inyectada)`,v3SourceCarried:`arrastrada`,v3SourceCore:`núcleo`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`aguja`,yes:`Sí`},g={callOfTotal:`Llamada {number} de {total}`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,selectCallAria:`Seleccionar una llamada LLM para inspeccionar`,sheetTitle:`Seleccionar una llamada`},_={cacheTokensLabel:`Tokens de caché`,conversationSubtitle:`Totales acumulados de cada llamada LLM con precio hasta ahora.`,conversationTitle:`Conversación`,createdLabel:`Creado`,durationLabel:`Duración`,estimatedCostLabel:`Costo estimado`,failedStatus:`Fallido`,firstTokenKindLabel:`Tipo de primer token`,firstTokenLatencySubtitle:`Dónde se fue el tiempo hasta el primer token de este turno, medido por el asistente.`,firstTokenLatencyTitle:`Latencia del primer token`,inputTokensLabel:`Tokens de entrada`,latencyMs:`{ms} ms`,loopExitReasonLabel:`Motivo de salida del bucle`,modelLabel:`Modelo`,normalizedMetadataSubtitle:`Proveedor, modelo, marcas de tiempo y recuentos de uso.`,normalizedMetadataTitle:`Metadatos normalizados`,normalizedSummaryUnavailableSubtitle:`Esta llamada aún tiene cargas útiles de solicitud y respuesta sin procesar.`,normalizedSummaryUnavailableTitle:`Resumen normalizado no disponible`,otherLabel:`Otro`,outputTokensLabel:`Tokens de salida`,providerLabel:`Proveedor`,requestMessagesLabel:`Mensajes de solicitud`,statusLabel:`Estado`,stopReasonLabel:`Motivo de parada`,toolCallsLabel:`Llamadas a herramientas`,toolsAvailableLabel:`Herramientas disponibles`,totalCostSoFarLabel:`Costo total hasta ahora`,totalToFirstTokenLabel:`Total hasta el primer token`,usageSubtitle:`Recuentos de tokens y llamadas normalizados por la ruta del asistente.`,usageTitle:`Uso`},v={colors:{green:`Verde`,orange:`Naranja`,pink:`Rosa`,purple:`Morado`,teal:`Turquesa`,yellow:`Amarillo`},noColor:`Sin color`},y={availableTools:`Herramientas disponibles`,bannerNoSections:`Esta llamada aún no tiene secciones de prompt normalizadas.`,bannerSectionsCount:`{count, plural, one {# sección de solicitud normalizada mostrada en el orden devuelto por la ruta del asistente.} other {# secciones de solicitud normalizadas mostradas en el orden devuelto por la ruta del asistente.}}`,collapseAll:`Contraer todo`,copyAriaLabel:`Copiar {title}`,emptyBody:`Esta llamada no tiene secciones de prompt normalizadas. Usa la pestaña Raw para inspeccionar la carga útil completa de la solicitud.`,emptyTitle:`Sin secciones de prompt normalizadas`,expandAll:`Expandir todo`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`No hay contenido disponible.`,promptSectionsTitle:`Secciones del prompt`},b={copyRequestPayloadAriaLabel:`Copiar carga de la solicitud`,copyResponsePayloadAriaLabel:`Copiar carga de la respuesta`,downloadFailedToast:`No se pudo descargar la carga.`,downloadRequestPayloadAriaLabel:`Descargar carga de la solicitud`,downloadResponsePayloadAriaLabel:`Descargar carga de la respuesta`,loadErrorTitle:`No se pudieron cargar las cargas sin procesar`,loading:`Cargando cargas sin procesar…`,payloadRequestFailed:`La solicitud de la carga falló. Inténtalo de nuevo.`,request:`Solicitud`,requestPayload:`Carga de la solicitud`,response:`Respuesta`,responsePayload:`Carga de la respuesta`,retry:`Reintentar`},x={argumentsPreview:`Vista previa de argumentos`,copySectionAria:`Copiar contenido de la sección`,kindAssistantText:`Texto del asistente`,kindFunctionResponse:`Respuesta de función`,kindReasoning:`Razonamiento`,kindToolCall:`Llamada de herramienta`,kindToolResult:`Resultado de herramienta`,modeResultOnly:`Respuesta solo de resultado`,modeTextOnly:`Respuesta solo de texto`,modeToolCalling:`Respuesta con llamada de herramienta`,noArgumentsPreview:`No hay vista previa de argumentos estructurados disponible para esta llamada de herramienta.`,noAssistantText:`No se capturó texto del asistente para esta sección.`,noSectionsFallback:`Esta respuesta no tiene secciones renderizadas. Las cargas útiles sin procesar siguen disponibles en la pestaña Raw, y cualquier metadato de respuesta normalizado se mostrará cuando esté presente.`,rawTabHint:`¿Necesitas la carga útil completa del proveedor? Abre la pestaña Raw para el JSON de solicitud y respuesta.`,responseMetadata:`Metadatos de respuesta`,sectionTitle:`Sección {number}`,sectionUnavailable:`Renderizado de sección no disponible`,stopReasonChip:`Motivo de parada: {reason}`,toolChip:`Herramienta: {name}`},S={message:`No se pudieron cargar tus conversaciones.`,retry:`Reintentar`},C={actionsAria:`Acciones de habilidad`,moreTooltip:`Más`},w={callLink:`Llamada {number}`,emptyBody:`Esta pestaña enumera cada llamada de herramienta <code>skill_load</code> en la conversación. No se detectó ninguna en las llamadas LLM capturadas.`,emptyTitle:`No se cargaron habilidades en esta conversación`,loadCount:`{count, plural, one {1 carga} other {# cargas}}`,summaryStats:`{uniqueCount, plural, one {# habilidad única} other {# habilidades únicas}} · {totalLoads, plural, one {# llamada de carga} other {# llamadas de carga}}`,summaryTitle:`Habilidades cargadas en esta conversación`},T={defaultValue:`predeterminado: {value}`,inputSchema:`Esquema de entrada`,intro:`{count, plural, one {# herramienta enviada con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.} other {# herramientas enviadas con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.}}`,noInputSchema:`Sin esquema de entrada: esta herramienta no acepta entrada estructurada.`,required:`obligatorio`,settings:`Configuración`},E={activityStepsPanel:e,addToChatSheet:t,cacheBreakpointMapCard:n,cacheDiffCard:r,cacheHealthCard:i,callRail:a,chatComposer:o,compactionTab:s,conversationAssets:c,copyButton:l,detailPanelStopButton:u,exportProgressModal:d,inspectPage:f,llmCallErrorCard:p,memoryRouterPlaygroundPage:m,memoryTab:h,mobileCallSelector:g,overviewTab:_,pinnedAppColorSwatches:v,promptTab:y,rawTab:b,responseTab:x,sidebarConversationError:S,skillDetailPanel:C,skillsTab:w,toolDefinitionsContent:T};export{e as activityStepsPanel,t as addToChatSheet,n as cacheBreakpointMapCard,r as cacheDiffCard,i as cacheHealthCard,a as callRail,o as chatComposer,s as compactionTab,c as conversationAssets,l as copyButton,E as default,u as detailPanelStopButton,d as exportProgressModal,f as inspectPage,p as llmCallErrorCard,m as memoryRouterPlaygroundPage,h as memoryTab,g as mobileCallSelector,_ as overviewTab,v as pinnedAppColorSwatches,y as promptTab,b as rawTab,x as responseTab,S as sidebarConversationError,C as skillDetailPanel,w as skillsTab,T as toolDefinitionsContent};
@@ -1 +1 @@
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"./sound-manager-CTd-DV3i.js";import{t as i}from"./proxy-Do-Khsj0.js";import{t as a}from"./use-reduced-motion-D2PbFfB8.js";import{t as o}from"./animated-avatar-D9mX2duB.js";var s=e(t(),1),c=n();function l({components:e,traits:t,customImageUrl:n,size:l=28,className:u,interactive:d=!1,isAssistantBusy:f=!1,originAnchor:p=!1}){let m=a(),[h,g]=(0,s.useState)(!1),_=p?{"data-voice-origin":``}:{},v=(0,s.useCallback)(()=>{r().play(`character_poke`),!m&&(g(!0),window.setTimeout(()=>g(!1),360))},[m]),y=d?v:void 0,b=(0,s.useMemo)(()=>{if(t)return t;if(!e)return null;let n=e.bodyShapes[0],r=e.eyeStyles[0],i=e.colors[0];return!n||!r||!i?null:{bodyShape:n.id,eyeStyle:r.id,color:i.id}},[t,e]),x=!!e&&!!b&&(!!t||!n),S={width:l,height:l,flexShrink:0,cursor:d?`pointer`:void 0,transformOrigin:`center`,position:`relative`},C=m?{duration:0}:{type:`spring`,visualDuration:.3,bounce:.5},w=m?{scale:1,opacity:1}:{scale:.6,opacity:0},T={scale:h?1.15:1,opacity:1};return x?(0,c.jsx)(i.div,{..._,className:u,style:S,onClick:y,initial:w,animate:T,transition:C,children:(0,c.jsx)(o,{components:e,traits:b,size:l,isAssistantBusy:f})}):n?(0,c.jsx)(i.div,{..._,onClick:y,initial:w,animate:T,transition:C,style:{cursor:d?`pointer`:void 0,transformOrigin:`center`,position:`relative`,width:l,height:l,flexShrink:0},children:(0,c.jsx)(`img`,{src:n,alt:`Assistant avatar`,width:l,height:l,className:`rounded-full object-cover ${u??``}`,style:{width:l,height:l,flexShrink:0}})}):(0,c.jsx)(i.div,{..._,className:`flex items-center justify-center rounded-full bg-[var(--primary-base)] text-[var(--content-inset)] ${u??``}`,style:{...S,fontSize:l*.45},onClick:y,initial:w,animate:T,transition:C,children:`V`})}var u=(0,s.memo)(l);export{u as t};
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"./sound-manager-CTd-DV3i.js";import{t as i}from"./proxy-Do-Khsj0.js";import{t as a}from"./use-reduced-motion-D2PbFfB8.js";import{t as o}from"./animated-avatar--_W54iT9.js";var s=e(t(),1),c=n();function l({components:e,traits:t,customImageUrl:n,size:l=28,className:u,interactive:d=!1,isAssistantBusy:f=!1,originAnchor:p=!1}){let m=a(),[h,g]=(0,s.useState)(!1),_=p?{"data-voice-origin":``}:{},v=(0,s.useCallback)(()=>{r().play(`character_poke`),!m&&(g(!0),window.setTimeout(()=>g(!1),360))},[m]),y=d?v:void 0,b=(0,s.useMemo)(()=>{if(t)return t;if(!e)return null;let n=e.bodyShapes[0],r=e.eyeStyles[0],i=e.colors[0];return!n||!r||!i?null:{bodyShape:n.id,eyeStyle:r.id,color:i.id}},[t,e]),x=!!e&&!!b&&(!!t||!n),S={width:l,height:l,flexShrink:0,cursor:d?`pointer`:void 0,transformOrigin:`center`,position:`relative`},C=m?{duration:0}:{type:`spring`,visualDuration:.3,bounce:.5},w=m?{scale:1,opacity:1}:{scale:.6,opacity:0},T={scale:h?1.15:1,opacity:1};return x?(0,c.jsx)(i.div,{..._,className:u,style:S,onClick:y,initial:w,animate:T,transition:C,children:(0,c.jsx)(o,{components:e,traits:b,size:l,isAssistantBusy:f})}):n?(0,c.jsx)(i.div,{..._,onClick:y,initial:w,animate:T,transition:C,style:{cursor:d?`pointer`:void 0,transformOrigin:`center`,position:`relative`,width:l,height:l,flexShrink:0},children:(0,c.jsx)(`img`,{src:n,alt:`Assistant avatar`,width:l,height:l,className:`rounded-full object-cover ${u??``}`,style:{width:l,height:l,flexShrink:0}})}):(0,c.jsx)(i.div,{..._,className:`flex items-center justify-center rounded-full bg-[var(--primary-base)] text-[var(--content-inset)] ${u??``}`,style:{...S,fontSize:l*.45},onClick:y,initial:w,animate:T,transition:C,children:`V`})}var u=(0,s.memo)(l);export{u as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./cn-DFWryB3N.js";import{t as s}from"./typography-BeUa5Fd-.js";import{S as c,et as l,f as u,p as d}from"./src-njXJqrpo.js";import{t as f}from"./createLucideIcon-C_IfoPaZ.js";import{t as p}from"./archive-Cp86wmG1.js";import{t as m}from"./check-CNBoUiyR.js";import{t as h}from"./menu-Gu_6PRrL.js";import{a as g,c as _,l as v,o as y,s as b,t as x,u as ee}from"./use-attachment-preview-jmFGN8h6.js";import{t as S}from"./download-Bld7ch1X.js";import{t as te}from"./ellipsis-Dm3PecnW.js";import{t as C}from"./external-link-D65yhWAV.js";import{t as ne}from"./eye-off-DFGH3cWw.js";import{t as re}from"./eye-DO1vbwRG.js";import{t as ie}from"./file-text-Ha6XXdS_.js";import{t as ae}from"./file-7EmuTJEW.js";import{t as w}from"./key-round-BeLlbSFj.js";import{t as oe}from"./loader-circle-oY5laABh.js";import{n as T}from"./toast-BrKo5b4d.js";import{t as se}from"./skeleton-CzdJByjE.js";import{n as ce}from"./resolved-assistants-store-BuqctGKE.js";import{l as le,pt as ue}from"./sdk.gen-Br55zhZN.js";import{t as de}from"./dist-D8V9YSOm.js";import{r as fe}from"./use-is-org-ready-DyYOTCvQ.js";import{n as pe}from"./browser-DwONNRIj.js";import{t as E}from"./conversation-store-BnS0mmz7.js";import{i as D}from"./viewer-store-DWY4BtGj.js";import{t as me}from"./open-workspace-file-DFo0Oq0o.js";import{a as he,i as ge,n as _e,o as O,r as ve,s as ye,t as k}from"./workspace-path-links-ORUgKDWB.js";import{a as be,n as xe,o as Se}from"./pdf-preview-DEWKJD0r.js";import{t as Ce}from"./copy-to-clipboard-DRZUoOti.js";import{a as we,i as Te,s as Ee}from"./use-local-file-info-Dz017Fii.js";import{n as De,r as Oe}from"./workspace-tree-query-BfWSVQB5.js";import{t as ke}from"./native-anchor-BE-YHt8Q.js";var A=f(`panel-right`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),Ae=f(`picture-in-picture-2`,[[`path`,{d:`M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4`,key:`daa4of`}],[`rect`,{width:`10`,height:`7`,x:`12`,y:`13`,rx:`2`,key:`1nb8gs`}]]),j=e(n(),1),je=`width=500,height=600`;function M(e){if(!e)return null;let t;try{let n=typeof window>`u`?`http://localhost`:window.location.origin;t=new URL(e,n)}catch{return null}return t.protocol!==`https:`&&t.protocol!==`http:`?null:t}function N(e){let t=M(e);if(!t)return!1;let n=t.pathname.toLowerCase();return t.searchParams.get(`response_type`)===`code`&&t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)||t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)&&/oauth|authorize|auth/.test(n)}function Me(e){if(typeof window>`u`)return null;let t=M(e);return!t||t.origin!==window.location.origin?null:`${t.pathname}${t.search}${t.hash}`}function P(e){return M(e)?.href??null}function F(e){if(!N(e))return!1;if(de.isNativePlatform()){let t=P(e);return t?(pe(t),!0):!1}let t=window.open(e,`_blank`,je);return t===null?!1:(t.focus(),!0)}function Ne(e){return F(e)}function I(e){if(F(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function Pe(e,t){let n=Me(e);if(n)return t.push(n),{kind:`routed`};let r=P(e);return r?t.isNative?(pe(r),{kind:`opened`}):I(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}var L=a(),Fe=new Set([`md`,`markdown`]),Ie=new Map([[`csv`,`csv`],[`tsv`,`csv`],[`txt`,`text`],[`log`,`text`],[`json`,`text`],[`yaml`,`text`],[`yml`,`text`],[`xml`,`text`],[`pdf`,`pdf`],[`png`,`image`],[`jpg`,`image`],[`jpeg`,`image`],[`gif`,`image`],[`webp`,`image`],[`svg`,`image`],[`avif`,`image`],[`mp3`,`audio`],[`wav`,`audio`],[`m4a`,`audio`],[`ogg`,`audio`],[`flac`,`audio`],[`mp4`,`video`],[`mov`,`video`],[`webm`,`video`],[`m4v`,`video`]]);function R(e){let t=e.lastIndexOf(`.`);return t<=0?null:e.slice(t+1).toLowerCase()}function Le(e){let t=R(e);return t!==null&&Fe.has(t)}function Re(e){let t=R(e);return t===null?null:Ie.get(t)??null}function ze(e){return Re(e)??`unsupported`}function z(e,t,n){return t?Le(e)?n?{mode:`document`,assistantId:t,conversationId:n}:{mode:`workspace`}:{mode:`preview`,assistantId:t,previewKind:ze(e)}:{mode:`workspace`}}function Be(e,t,n){return z(e,t,n).mode!==`workspace`}function Ve(e,t,n){return e===`document`&&t!==null&&t.workspacePath===n}function He(e){let t=D.use.mainView(),n=D.use.openedDocumentState();return e===null?!1:Ve(t,n,e)}function Ue(e,t,n){return We(e,t)===n}function We(e,t){return e!==`document`||t?.source!==`document`?null:t.surfaceId}function Ge(e){return Ue(D.use.mainView(),D.use.openedDocumentState(),e)}function Ke(e,t,n,r){let i=z(t,n,r);if(i.mode===`document`){D.getState().loadWorkspaceFileDocument(i.assistantId,e,i.conversationId);return}if(i.mode===`preview`){D.getState().openWorkspaceFilePreview(e,i.previewKind);return}me(e)}function B(e,t,n,r){let i=D.getState();if(Be(t,n,r)&&Ve(i.mainView,i.openedDocumentState,e)){i.closeDocument();return}Ke(e,t,n,r)}var qe={image:_,video:b,audio:v,pdf:g,code:ee,archive:p,spreadsheet:y,document:ie,text:ie,file:ae};function Je(e,t){return e===`file`?xe(``,t):e}function V(e){return Ee({sniffedMime:null,serverMime:null,filename:e}).kind}function H({kind:e,filename:t,className:n}){let r=qe[Je(e,t)];return(0,L.jsx)(r,{className:n,"aria-hidden":!0})}var Ye=100*1024*1024,Xe=25*1024*1024;function Ze(e){switch(e){case`image`:case`audio`:case`video`:return Ye;default:return Xe}}var Qe=1500,U=`inline-flex max-w-full min-w-0 items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1 align-middle text-[0.85em] leading-tight text-[var(--content-secondary)]`,W=`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`;function $e({type:e,service:t,field:n,assistantId:r,neutralized:i}){let a=ce.use.activeAssistantId(),o=r===void 0?a:r,[s,c]=(0,j.useState)(null),[u,d]=(0,j.useState)(!1),[f,p]=(0,j.useState)(!1),h=(0,j.useRef)(null),g=(0,j.useRef)(0),_=e??`Secret`,v=t!==void 0&&n!==void 0&&o!=null,y=v?`${t}:${n}`:_,b=(0,j.useCallback)(()=>{g.current++,c(null),d(!1),p(!1),h.current&&=(clearTimeout(h.current),null)},[]),x=(0,j.useCallback)(async()=>{if(!v)return;let e=++g.current;d(!0);try{let{data:r}=await ue({path:{assistant_id:o},body:{service:t,field:n},throwOnError:!0});g.current===e&&c(r.value)}catch{g.current===e&&T.error(`Couldn't reveal ${y}.`)}finally{g.current===e&&d(!1)}},[v,o,t,n,y]),ee=(0,j.useCallback)(()=>{s!=null&&Ce(s,{errorMessage:`Couldn't copy. Reveal and copy manually.`,onCopied:()=>{p(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>p(!1),Qe)}})},[s]);if(i)return(0,L.jsxs)(`span`,{className:U,title:`Redaction marker — not verified by the assistant`,children:[(0,L.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`truncate`,children:`Redacted`})]});if(!v)return(0,L.jsxs)(`span`,{className:U,title:`Redacted — this value is not linked to a stored credential`,children:[(0,L.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`truncate`,children:_})]});let S=s!==null;return(0,L.jsxs)(`span`,{className:U,children:[(0,L.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),S?(0,L.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[var(--content-default)]`,children:s}):(0,L.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:u,"aria-label":`Reveal value for ${y}`,title:`${_} · click to reveal`,className:`min-w-0 select-none truncate rounded-sm text-left blur-[3px] transition-[filter] hover:blur-[2px] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:y}),u?(0,L.jsx)(oe,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):S?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`button`,{type:`button`,onClick:ee,"aria-label":`Copy value for ${y}`,title:`Copy value`,className:W,children:f?(0,L.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,L.jsx)(l,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,L.jsx)(`button`,{type:`button`,onClick:b,"aria-label":`Hide value for ${y}`,title:`Hide value`,className:W,children:(0,L.jsx)(ne,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,L.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:u,"aria-label":`Reveal value for ${y}`,title:`Click to reveal`,className:W,children:(0,L.jsx)(re,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})}var et=`redacted`;function tt(e){try{return decodeURIComponent(e)}catch{return}}function nt(){return RegExp(`〔${et}:([^:\u3014\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function rt(){return RegExp(`〔\\u2060${et}:([^:\\u3014\\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function it(e){let[,t,n,r]=e;if(n!==void 0&&r!==void 0){let e=tt(n),i=tt(r);if(e!==void 0&&i!==void 0)return{type:t,service:e,field:i}}return{type:t}}var G=`redacted-credential`,at=new Set([`pre`,`code`,`style`,`script`,`a`]);function ot(e){return e.type===`element`}function st(e){let t=[],n=nt(),r;for(;(r=n.exec(e))!==null;){let e=it(r);t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:G,properties:{type:e.type,...e.service!==void 0&&e.field!==void 0?{service:e.service,field:e.field}:{}},children:[]}})}let i=rt();for(;(r=i.exec(e))!==null;)t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:G,properties:{neutralized:!0},children:[]}});if(t.length===0)return;t.sort((e,t)=>e.index-t.index);let a=[],o=0;for(let n of t)n.index>o&&a.push({type:`text`,value:e.slice(o,n.index)}),a.push(n.element),o=n.index+n.length;return o<e.length&&a.push({type:`text`,value:e.slice(o)}),a}function ct(e){if(ot(e)&&at.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){ct(n);continue}let r=n.value;if(!r.includes(`〔`))continue;let i=st(r);i&&t.splice(e,1,...i)}}function lt(){return e=>{ct(e)}}var ut=new Set([`pre`,`code`,`style`,`script`]),dt=5,ft=.4,pt=`stream-word-fade`;function mt(e){return e.type===`element`}function ht(e){if(mt(e)&&ut.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){ht(n);continue}let r=n.value.match(/\S+|\s+/g);if(!r||r.length===1&&/^\s+$/.test(r[0]))continue;let i=r.map(e=>/^\s+$/.test(e)?{type:`text`,value:e}:{type:`element`,tagName:`span`,properties:{className:[pt]},children:[{type:`text`,value:e}]});t.splice(e,1,...i)}}function gt(e,t){if(mt(e)){let n=e.properties?.className;if(Array.isArray(n)&&n.includes(pt)){t.push(e);return}}if(e.children)for(let n of e.children)gt(n,t)}function _t(e){let t=e?.caughtUp??!1;return e=>{if(ht(e),t)return;let n=[];gt(e,n);let r=Math.min(dt,n.length);for(let e=0;e<r;e++){let t=n[n.length-1-e],r=(ft+(1-ft)*((e+1)/(dt+1))).toFixed(3);t.properties={...t.properties,style:`opacity:${r}`}}}}var vt=new Set([`pre`,`a`,`style`,`script`]);function yt(e){return e.type===`element`}function bt(e){if(e.children.length!==1)return;let t=e.children[0];return t.type===`text`?t.value:void 0}function xt(e){let t=e.children;if(t){for(let e of t)if(yt(e)&&!vt.has(e.tagName)){if(e.tagName===`code`){let t=bt(e),n=t===void 0?null:he(t);n!==null&&t!==void 0&&(e.tagName=k,e.properties={...e.properties,path:n,raw:t},e.children=[]);continue}xt(e)}}}function St(){return e=>{xt(e)}}var Ct=15e3,wt=1e4,Tt=9e4;function Et({path:e,raw:t,assistantId:n,onOpen:r}){let a=t??e??``,o=fe(),s=!!(e&&n&&r&&o),[c]=(0,j.useState)(()=>Date.now()+Tt),{data:l}=i({...De({assistantId:n??``,path:e?ye(e):``}),enabled:s,staleTime:Ct,retry:!1,refetchInterval:t=>Date.now()>=c||(t.state.data?.entries.some(t=>t.type===`file`&&t.path===e)??!1)?!1:wt});return!(0,j.useMemo)(()=>e!=null&&(l?.entries.some(t=>t.type===`file`&&t.path===e)??!1),[l,e])||!e||!r?(0,L.jsx)(`code`,{className:u,children:a}):(0,L.jsx)(`button`,{type:`button`,onClick:()=>r(ge(e),O(e)),className:`${u} cursor-pointer text-[var(--system-positive-strong)] underline decoration-dotted underline-offset-2 hover:opacity-80`,title:`Open ${e}`,children:a})}var Dt=/^[a-zA-Z][a-zA-Z0-9+.-]*:/;function Ot(e){try{return decodeURIComponent(e)}catch{return null}}function kt(e){return(e.split(`#`,1)[0]??``).split(`?`,1)[0]??``}function At(e){let t=Ot(kt(e));if(t===null)return null;let n=t.trim();if(n.length===0||n.length>512||n.includes(`\0`))return null;let r;if(n.startsWith(`/`)){let e=n.lastIndexOf(_e);if(e===-1)return null;r=n.slice(e+_e.length)}else r=n.startsWith(`./`)?n.slice(2):n;return ve(r)?r:null}function jt(e){let t=kt(e.trim()).split(`/`).pop()??``;return Ot(t)??t}function K(e){if(e==null)return{kind:`other`};let t=e.trim();if(t.length===0||t.startsWith(`#`))return{kind:`other`};if(t.startsWith(`//`))return{kind:`web`};let n=Dt.exec(t)?.[0];if(n){let e=n.slice(0,-1).toLowerCase();return e===`vellum`?{kind:`vellum`}:e===`http`||e===`https`?{kind:`web`}:{kind:`other`}}if(!(t.startsWith(`/`)||t.startsWith(`./`)||t.includes(`/`)))return{kind:`other`};let r=At(t);return{kind:`local-file`,workspacePath:r,filename:r?O(r):jt(t)}}function q({workspacePath:e,filename:t,assistantId:n,disabled:i,onPictureInPicture:a,className:s}){let c=i===!0||e===null,l=(0,j.useCallback)(()=>{e!==null&&me(e)},[e]),u=(0,j.useCallback)(async()=>{if(!(e===null||!n))try{await Oe({assistantId:n,path:e,filename:t})}catch{T.error(`Failed to download file`,{description:t})}},[n,t,e]);return(0,L.jsxs)(h.Root,{children:[(0,L.jsx)(h.Trigger,{asChild:!0,children:(0,L.jsx)(r,{variant:`ghost`,size:`compact`,expandOnMobile:!1,iconOnly:(0,L.jsx)(te,{}),"aria-label":`File actions`,className:o(`shrink-0`,s),onClick:e=>e.stopPropagation(),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&e.stopPropagation()}})}),(0,L.jsxs)(h.Content,{align:`end`,sideOffset:4,children:[(0,L.jsx)(h.Item,{leftIcon:(0,L.jsx)(C,{size:14}),disabled:c,onSelect:l,className:`whitespace-nowrap`,children:`Go to file`}),a!==void 0&&(0,L.jsx)(h.Item,{leftIcon:(0,L.jsx)(Ae,{size:14}),onSelect:a,className:`whitespace-nowrap`,children:`Picture in Picture`}),(0,L.jsx)(h.Item,{leftIcon:(0,L.jsx)(S,{size:14}),disabled:c||!n,onSelect:()=>void u(),className:`whitespace-nowrap`,children:`Download`})]})]})}var Mt=[`opacity-0 transition-opacity`,`group-hover/local-file-card:opacity-100`,`group-focus-visible/local-file-card:opacity-100`,`[@media(pointer:coarse)]:opacity-100`].join(` `);function Nt(e){return e===`workspace`?{label:`Open in workspace`,Icon:C}:e===`preview`?{label:`Open preview`,Icon:A}:{label:`Open in editor`,Icon:A}}var Pt={workspace:`workspace`,document:`editor`,preview:`preview`};function Ft(e,t,n){return e===`missing`?`File not found`:e===`unavailable`?`File isn't available here`:n===t?null:n}function J({displayName:e,filename:t,sizeBytes:n,kind:r,state:i,workspacePath:a,assistantId:c}){let l=E.use.activeConversationId(),u=i===`ready`,d=u&&a!==null,{mode:f}=z(t,c,l),p=f!==`workspace`,m=He(d?a:null)&&p,h=Ft(i,e,t),{label:g,Icon:_}=Nt(f),v=m?`Close ${Pt[f]} for ${t}`:`Open ${t}`,y=()=>{d&&B(a,t,c,l)};return(0,L.jsxs)(`span`,{role:d?`button`:void 0,tabIndex:d?0:void 0,"aria-label":d?v:void 0,"aria-expanded":d&&p?m:void 0,title:t,onClick:d?y:void 0,onKeyDown:d?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),y())}:void 0,className:o(`group/local-file-card my-2 flex w-full max-w-md items-center gap-2.5 rounded-lg border p-2 transition-colors`,m?`border-[var(--border-active)] bg-[var(--surface-active)]`:`border-[var(--border-element)] bg-[var(--surface-lift)]`,d&&`cursor-pointer`),children:[(0,L.jsx)(`span`,{className:o(`flex h-9 w-9 shrink-0 items-center justify-center rounded-md`,m?`bg-[var(--surface-lift)]`:`bg-[var(--surface-sunken)]`,u?`text-[var(--content-secondary)]`:`text-[var(--content-disabled)]`),children:(0,L.jsx)(H,{kind:r,filename:t,className:`h-4 w-4`})}),(0,L.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,L.jsx)(s,{as:`span`,variant:`body-small-default`,className:o(`truncate`,m?`text-[var(--content-emphasised)]`:`text-[var(--content-default)]`),children:Se(e,40)}),h!==null&&(0,L.jsx)(s,{as:`span`,variant:`label-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:h})]}),d&&!m&&(0,L.jsxs)(`span`,{"aria-hidden":`true`,className:o(`flex shrink-0 items-center gap-1`,Mt,`text-[var(--content-tertiary)]`),children:[(0,L.jsx)(_,{className:`h-3.5 w-3.5`}),(0,L.jsx)(s,{as:`span`,variant:`label-small-default`,className:`whitespace-nowrap`,children:g})]}),n!==null&&(0,L.jsx)(s,{as:`span`,variant:`label-small-default`,className:`shrink-0 text-[var(--content-disabled)]`,children:be(n)}),(0,L.jsx)(q,{workspacePath:a,filename:t,assistantId:c,disabled:!u})]})}var It=`vellum://workspace/`;function Lt(e){let t=e.trim().split(`/`).pop()??``;try{return decodeURIComponent(t)}catch{return t}}function Rt(e){return e.split(`/`).map(e=>{try{return decodeURIComponent(e)}catch{return e}}).join(`/`)}function Y(e){let t=e.trim();if(t.startsWith(It)){let e=Rt(t.slice(19));return{workspacePath:ve(e)?e:null,filename:O(e)}}let n=K(t);return n.kind===`local-file`?{workspacePath:n.workspacePath,filename:n.filename}:{workspacePath:null,filename:Lt(t)}}var zt=`max-h-[400px] max-w-full rounded-lg border border-[var(--border-element)] object-contain`,Bt=[`pointer-events-none absolute right-2 top-2 rounded-md bg-[var(--surface-lift)] opacity-0 transition-opacity`,`group-hover/local-media:pointer-events-auto group-hover/local-media:opacity-100`,`group-focus-within/local-media:pointer-events-auto group-focus-within/local-media:opacity-100`,`[@media(pointer:coarse)]:pointer-events-auto [@media(pointer:coarse)]:opacity-100`].join(` `);function Vt(){return typeof document<`u`&&`pictureInPictureEnabled`in document&&document.pictureInPictureEnabled}function Ht({children:e,menu:t}){return(0,L.jsxs)(`span`,{className:`group/local-media relative my-2 inline-block max-w-full align-top`,children:[e,(0,L.jsx)(`span`,{className:Bt,children:t})]})}function Ut({href:e,alt:t,assistantId:n}){let r=(0,j.useMemo)(()=>Y(e),[e]),i=Te(r.workspacePath,n),[a,o]=(0,j.useState)(null),s=(0,j.useRef)(null),c=(0,j.useCallback)(async()=>{let e=s.current;if(e!==null){if(document.pictureInPictureElement===e){try{await document.exitPictureInPicture()}catch{}return}e.disablePictureInPicture=!1;try{await e.requestPictureInPicture()}catch{e.disablePictureInPicture=!0,T.error(`Picture in Picture isn't available`);return}e.addEventListener(`leavepictureinpicture`,()=>{e.disablePictureInPicture=!0},{once:!0})}},[]),l=i.status===`ready`?i:null,u=l?.filename??r.filename,d=l?.kind??V(u),f=l?.sizeBytes??null,p=l!==null&&(d===`image`||d===`video`||d===`audio`)&&!(f!==null&&f>104857600)&&a!==e,{url:m,isError:h}=we({workspacePath:r.workspacePath,mime:l?.mime??null,enabled:p,assistantId:n}),g=t.trim().length>0?t:u,_=g.length>0?g:u,v=(0,L.jsx)(q,{workspacePath:r.workspacePath,filename:u,assistantId:n}),y=(0,L.jsx)(se,{as:`span`,role:`status`,"aria-label":`Loading ${_}`,className:`my-2 inline-block h-7 w-40 rounded-lg align-middle`});if(n===void 0)return(0,L.jsx)(J,{displayName:g,filename:u,sizeBytes:null,kind:d,state:`ready`,workspacePath:r.workspacePath,assistantId:n});if(i.status===`loading`)return y;if(i.status===`unavailable`)return(0,L.jsx)(J,{displayName:g,filename:u,sizeBytes:null,kind:d,state:i.reason===`missing`?`missing`:`unavailable`,workspacePath:r.workspacePath,assistantId:n});let b=(0,L.jsx)(J,{displayName:g,filename:u,sizeBytes:f,kind:d,state:`ready`,workspacePath:r.workspacePath,assistantId:n});return!p||h?b:m===null?y:d===`image`?(0,L.jsx)(Ht,{menu:v,children:(0,L.jsx)(`img`,{src:m,alt:t,onError:()=>o(e),className:zt})}):d===`video`?(0,L.jsx)(Ht,{menu:(0,L.jsx)(q,{workspacePath:r.workspacePath,filename:u,assistantId:n,onPictureInPicture:Vt()?()=>void c():void 0}),children:(0,L.jsx)(`video`,{ref:s,src:m,controls:!0,controlsList:`nodownload noplaybackrate`,disablePictureInPicture:!0,playsInline:!0,preload:`metadata`,"aria-label":_,className:zt})}):d===`audio`?(0,L.jsxs)(`span`,{className:`my-2 flex w-full max-w-md items-center gap-2`,children:[(0,L.jsx)(`audio`,{src:m,controls:!0,controlsList:`nodownload noplaybackrate`,preload:`metadata`,"aria-label":_,className:`min-w-0 flex-1`}),v]}):b}function X({href:e,workspacePath:t,assistantId:n,children:r,onActivate:i}){let a=E.use.activeConversationId(),o=t===null?Lt(e):O(t);return(0,L.jsxs)(`a`,{href:e,onClick:e=>{if(e.preventDefault(),i){i();return}if(t===null){T.error(`This file isn't available here`);return}B(t,o,n,a)},className:`inline-flex items-baseline gap-1 cursor-pointer text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[(0,L.jsx)(H,{kind:V(o),filename:o,className:`h-3.5 w-3.5 shrink-0 self-center`}),r]})}function Z(e){return e!=null&&(e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`))}function Wt(e){return Z(e)?e:c(e)}function Gt({href:e,children:t}){let n=N(e),r=/^https?:\/\//i.test(e??``);return(0,L.jsxs)(`a`,{href:e,target:`_blank`,rel:n?void 0:`noopener noreferrer`,onClick:t=>{if(Ne(e)){t.preventDefault();return}ke(t,e)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[t,r?(0,L.jsx)(C,{"aria-hidden":!0,className:`ml-0.5 inline h-3.5 w-3.5 shrink-0 align-[-0.125em]`}):null]})}function Q(e){return typeof e==`string`?e:typeof e==`number`?String(e):Array.isArray(e)?e.map(Q).join(``):(0,j.isValidElement)(e)?Q(e.props.children):``}var Kt=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-element)] object-contain`;function $({alt:e}){return(0,L.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Image failed to load`,e?` (${e})`:``]})}function qt({src:e,alt:t}){let[n,r]=(0,j.useState)(!1);return n?(0,L.jsx)($,{alt:t}):(0,L.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:Kt})}function Jt(e){try{return decodeURIComponent(e)}catch{return e}}function Yt(e,t){let n=Jt(e.split(`/`).pop()??``),r=t?.find(e=>e.filename===n);if(!r)return;let i=r.mimeType;if(!(i===void 0||!i.startsWith(`image/`)))return r}function Xt({attachment:e,alt:n,assistantId:r,onOpenPreview:i}){let[a,o]=(0,j.useState)(null),[s,c]=(0,j.useState)(!1);if((0,j.useEffect)(()=>{if(!r||e.id.startsWith(`rehydrated:`))return;let n=!1;return(async()=>{try{let{data:t,error:i}=await le({path:{assistant_id:r,id:e.id},parseAs:`blob`,throwOnError:!1});if(n)return;if(i||!(t instanceof Blob)){c(!0);return}o(URL.createObjectURL(t))}catch(e){n||(c(!0),t(e,{context:`WorkspaceInlineImage`,bestEffort:!0}))}})(),()=>{n=!0,o(e=>(e&&URL.revokeObjectURL(e),null))}},[e,r]),s)return(0,L.jsx)($,{alt:n||e.filename});if(!a)return(0,L.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Loading image…`,n?` (${n})`:``]});let l=(0,L.jsx)(`img`,{src:a,alt:n,className:Kt});return i?(0,L.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`cursor-zoom-in appearance-none border-0 bg-transparent p-0`,"aria-label":n?`Expand image: ${n}`:`Expand image`,children:l}):l}var Zt=(0,j.memo)(function({content:e,className:t,hardLineBreaks:n,onVellumLinkClick:r,attachments:i,assistantId:a,streamWordFade:o,redactedCredentialChips:s,workspacePathLinks:c}){let{openPreview:l,previewModal:u}=x(a,i),f=E.use.activeConversationId(),p=(0,j.useCallback)((e,t)=>{let{workspacePath:n,filename:i}=Y(e);if(a&&n!==null){B(n,i,a,f);return}r?.(e,t)},[a,f,r]),m=(0,j.useCallback)(({href:e,children:t})=>{if(e!=null&&Z(e)){let{workspacePath:n}=Y(e);return(0,L.jsx)(X,{href:e,workspacePath:n,assistantId:a??void 0,onActivate:r&&!(a&&n!==null)?()=>r(e,Q(t)):void 0,children:t})}let n=K(e);if(e!=null&&n.kind===`local-file`){let{workspacePath:i}=n;return(0,L.jsx)(X,{href:e,workspacePath:i,assistantId:a??void 0,onActivate:r&&i!==null&&!a?()=>r(ge(i),Q(t)):void 0,children:t})}return(0,L.jsx)(Gt,{href:e,children:t})},[r,a]),h=(0,j.useMemo)(()=>[...s?[lt]:[],...c&&r?[St]:[],...o?[[_t,{caughtUp:o===`caughtUp`}]]:[]],[s,o,c,r]),g=(0,j.useMemo)(()=>({src:e,alt:t})=>{let n=(0,L.jsx)(Ut,{href:e,alt:t,assistantId:a??void 0});if(Z(e)){let r=Yt(e,i);return r?(0,L.jsx)(Xt,{attachment:r,alt:t,assistantId:a,onOpenPreview:l}):n}return K(e).kind===`local-file`?n:e.length===0?(0,L.jsx)($,{alt:t}):(0,L.jsx)(qt,{src:e,alt:t})},[i,a,l]),_=(0,j.useMemo)(()=>({[G]:e=>(0,L.jsx)($e,{...e,assistantId:a},`${a??``}\u0000${e.service??``}\u0000${e.field??``}`),[k]:e=>(0,L.jsx)(Et,{...e,assistantId:a,onOpen:r?p:void 0})}),[a,r,p]);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(d,{content:e,className:t,hardLineBreaks:n,linkComponent:m,imageComponent:g,urlTransform:Wt,extraRehypePlugins:h,extraComponents:s||c&&r?_:void 0}),u]})});export{Ue as a,Pe as c,V as i,I as l,Ze as n,We as o,H as r,Ge as s,Zt as t};
@@ -1 +1 @@
1
- import{t as e}from"./client-feature-flag-store-B9Bz0uyL.js";import{z as t}from"./platform-detection-BIfuAgU8.js";function n(){let t=e.use.marketingPricingTakeover(),n=e.use.hydrated();return t?`enabled`:n?`disabled`:`pending`}var r=`continue`;function i(e,n){return t(e.get(r),n)}export{i as n,n as r,r as t};
1
+ import{t as e}from"./client-feature-flag-store-B9Bz0uyL.js";import{z as t}from"./platform-detection-D4gxJctC.js";function n(){let t=e.use.marketingPricingTakeover(),n=e.use.hydrated();return t?`enabled`:n?`disabled`:`pending`}var r=`continue`;function i(e,n){return t(e.get(r),n)}export{i as n,n as r,r 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-DSjqKLvM.js";import{d as r,h as i,t as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useMutation-CXGTrp4W.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./loader-circle-oY5laABh.js";import{l as u,tt as d,u as f}from"./auth-store-BDMYc7te.js";import{F as p,P as m,R as h,p as g}from"./platform-detection-BIfuAgU8.js";import{d as _}from"./routes-C293MsBG.js";import{a as v}from"./use-platform-gate-DzpdjzIz.js";import{i as y}from"./use-is-org-ready-CWNhmJ2b.js";import{n as b}from"./browser-CZ10MkOr.js";import{mt as x}from"./react-query.gen-CqLxrlpP.js";import{t as S}from"./checkout-return-target-CYf9SBig.js";import{n as C,r as w}from"./checkout-continuation-ChMQkpyi.js";var T=e(t(),1),E=c();function D(){p(),f()}function O(){let e=r(),[t]=i(),c=t.get(`package`)??``,f=(0,T.useMemo)(()=>c?null:m(t),[c,t]),p=v(),g=y(),O=w(),k=C(t,_.plans),A=k===_.plans?`View plans`:`Continue setup`,j=o(),{mutateAsync:M}=s(x()),[N,P]=(0,T.useState)(!1),[F,I]=(0,T.useState)(!1),L=(0,T.useRef)(`idle`),R=(0,T.useCallback)(async()=>{L.current=`running`,P(!1),I(!1);let t=S();try{let n=await M({body:f?{target_plan_id:`pro`,confirm:!0,machine_tier:f.machineTier,storage_tier:f.storageTier,credit_tier:f.creditTier,return_target:t}:{target_plan_id:`pro`,package:c,confirm:!0,return_target:t}});if(L.current!==`running`)return;if(n.status===`redirect`&&n.checkout_url){L.current=`handed_off`,h(f?{kind:`custom`,machineTier:f.machineTier,storageTier:f.storageTier,creditTier:f.creditTier}:{kind:`package`,packageKey:c}),u(j),I(t===`native`),b(n.checkout_url);return}L.current=`settled`,D(),e(k===_.plans&&c?_.plansForPackage(c):k,{replace:!0})}catch{if(L.current!==`running`)return;L.current=`settled`,P(!0)}},[k,f,M,e,c,j]),z=(0,T.useCallback)(()=>{if(g===`ready`){R();return}L.current=`idle`,P(!1),I(!1),g===`unavailable`&&d.getState().fetchOrganizations()},[g,R]);return(0,T.useEffect)(()=>{if(!c&&!f||p===`disabled`||p===`gated`||O===`disabled`){if(L.current===`handed_off`)return;L.current=`settled`,D(),e(k,{replace:!0});return}if(!(O!==`enabled`||p!==`full`||L.current!==`idle`)&&g!==`resolving`){if(g===`unavailable`){L.current=`settled`,P(!0);return}R()}},[k,f,p,e,g,c,R,O]),N?(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,E.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`We couldn’t start your checkout. Please try again.`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,E.jsx)(n,{onClick:z,children:`Try again`}),(0,E.jsx)(a,{to:k,onClick:D,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):F?(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,E.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`Checkout opened in your browser. Finish there to complete your upgrade.`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,E.jsx)(n,{onClick:z,children:`Reopen checkout`}),(0,E.jsx)(a,{to:k,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-3`,children:[(0,E.jsx)(l,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Preparing checkout`}),(0,E.jsx)(`p`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Preparing checkout…`})]})}function k(){let e=r(),[t]=i(),n=C(t,_.settings.usageBilling);return(0,T.useEffect)(()=>{D(),e(n,{replace:!0})},[e,n]),null}function A(){return g()?(0,E.jsx)(k,{}):(0,E.jsx)(O,{})}export{A as CheckoutPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{d as r,h as i,t as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useMutation-CXGTrp4W.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./loader-circle-oY5laABh.js";import{l as u,tt as d,u as f}from"./auth-store-B9pHhreb.js";import{F as p,P as m,R as h,p as g}from"./platform-detection-D4gxJctC.js";import{d as _}from"./routes-C293MsBG.js";import{a as v}from"./use-platform-gate-zft2-meL.js";import{i as y}from"./use-is-org-ready-DyYOTCvQ.js";import{n as b}from"./browser-DwONNRIj.js";import{mt as x}from"./react-query.gen-CqLxrlpP.js";import{t as S}from"./checkout-return-target-CpckAKDY.js";import{n as C,r as w}from"./checkout-continuation-B34WX6T6.js";var T=e(t(),1),E=c();function D(){p(),f()}function O(){let e=r(),[t]=i(),c=t.get(`package`)??``,f=(0,T.useMemo)(()=>c?null:m(t),[c,t]),p=v(),g=y(),O=w(),k=C(t,_.plans),A=k===_.plans?`View plans`:`Continue setup`,j=o(),{mutateAsync:M}=s(x()),[N,P]=(0,T.useState)(!1),[F,I]=(0,T.useState)(!1),L=(0,T.useRef)(`idle`),R=(0,T.useCallback)(async()=>{L.current=`running`,P(!1),I(!1);let t=S();try{let n=await M({body:f?{target_plan_id:`pro`,confirm:!0,machine_tier:f.machineTier,storage_tier:f.storageTier,credit_tier:f.creditTier,return_target:t}:{target_plan_id:`pro`,package:c,confirm:!0,return_target:t}});if(L.current!==`running`)return;if(n.status===`redirect`&&n.checkout_url){L.current=`handed_off`,h(f?{kind:`custom`,machineTier:f.machineTier,storageTier:f.storageTier,creditTier:f.creditTier}:{kind:`package`,packageKey:c}),u(j),I(t===`native`),b(n.checkout_url);return}L.current=`settled`,D(),e(k===_.plans&&c?_.plansForPackage(c):k,{replace:!0})}catch{if(L.current!==`running`)return;L.current=`settled`,P(!0)}},[k,f,M,e,c,j]),z=(0,T.useCallback)(()=>{if(g===`ready`){R();return}L.current=`idle`,P(!1),I(!1),g===`unavailable`&&d.getState().fetchOrganizations()},[g,R]);return(0,T.useEffect)(()=>{if(!c&&!f||p===`disabled`||p===`gated`||O===`disabled`){if(L.current===`handed_off`)return;L.current=`settled`,D(),e(k,{replace:!0});return}if(!(O!==`enabled`||p!==`full`||L.current!==`idle`)&&g!==`resolving`){if(g===`unavailable`){L.current=`settled`,P(!0);return}R()}},[k,f,p,e,g,c,R,O]),N?(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,E.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`We couldn’t start your checkout. Please try again.`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,E.jsx)(n,{onClick:z,children:`Try again`}),(0,E.jsx)(a,{to:k,onClick:D,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):F?(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,E.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`Checkout opened in your browser. Finish there to complete your upgrade.`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,E.jsx)(n,{onClick:z,children:`Reopen checkout`}),(0,E.jsx)(a,{to:k,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-3`,children:[(0,E.jsx)(l,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Preparing checkout`}),(0,E.jsx)(`p`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Preparing checkout…`})]})}function k(){let e=r(),[t]=i(),n=C(t,_.settings.usageBilling);return(0,T.useEffect)(()=>{D(),e(n,{replace:!0})},[e,n]),null}function A(){return g()?(0,E.jsx)(k,{}):(0,E.jsx)(O,{})}export{A as CheckoutPage};
@@ -0,0 +1 @@
1
+ import{r as e}from"./platform-detection-D4gxJctC.js";import{t}from"./dist-D8V9YSOm.js";function n(){return e()===`macos`||t.isNativePlatform()?`native`:`web`}export{n as t};
@@ -1 +1 @@
1
- import{c as e,n as t,s as n}from"./platform-detection-BIfuAgU8.js";import{t as r}from"./consent-9-XXaxZ9.js";import{i,t as a}from"./ingest-B9D2Cyin.js";var o=null;function s(){return o??=i(),o}var c=null;function l(e){c=e}function u(){return e()?`ios_native`:n()?`android_native`:`web`}function d(e,n,o){if(!(typeof window>`u`))try{if(!r())return;a([{type:`watchdog`,daemon_event_id:i(),recorded_at:Date.now(),check_name:e,value:Math.round(n),detail:{page_load_id:s(),surface:u(),os:t(),...c===null?{}:{boot_id:c},...o}}])}catch{}}export{l as n,d as t};
1
+ import{c as e,n as t,s as n}from"./platform-detection-D4gxJctC.js";import{t as r}from"./consent-9-XXaxZ9.js";import{i,t as a}from"./ingest-BwYkhorN.js";var o=null;function s(){return o??=i(),o}var c=null;function l(e){c=e}function u(){return e()?`ios_native`:n()?`android_native`:`web`}function d(e,n,o){if(!(typeof window>`u`))try{if(!r())return;a([{type:`watchdog`,daemon_event_id:i(),recorded_at:Date.now(),check_name:e,value:Math.round(n),detail:{page_load_id:s(),surface:u(),os:t(),...c===null?{}:{boot_id:c},...o}}])}catch{}}export{l as n,d as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{W as n,t as r}from"./button-DSjqKLvM.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-BeUa5Fd-.js";import{R as o}from"./src-njXJqrpo.js";import{t as s}from"./loader-circle-oY5laABh.js";import{t as c}from"./search-DbyaO8rG.js";import{t as l}from"./x-BY-Np61T.js";import{h as u}from"./platform-detection-D4gxJctC.js";import{n as d}from"./use-is-mobile-BONxmNg6.js";import{n as f}from"./pointer-DLKG188W.js";import{n as p,t as m}from"./proxy-Do-Khsj0.js";import{t as h}from"./AnimatePresence-wQN1d2rQ.js";import{t as g}from"./use-reduced-motion-D2PbFfB8.js";var _=e(t(),1),v=e(n(),1),y=i();function b(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function x(e,t){let n=[...new Set(t??[])].filter(e=>e.length>0).sort((e,t)=>t.length-e.length);if(n.length===0)return e;let r=n.map(b).join(`|`),i=RegExp(`(?<![\\p{L}\\p{N}])(?:${r})(?![\\p{L}\\p{N}])`,`giu`),a=[],o=0;for(let t of e.matchAll(i))a.push(e.slice(o,t.index)),a.push((0,y.jsx)(`span`,{className:`font-medium text-[var(--content-default)]`,children:t[0]},t.index)),o=t.index+t[0].length;return a.length===0?e:(a.push(e.slice(o)),(0,y.jsx)(y.Fragment,{children:a}))}function S({icon:e,title:t,subtitle:n,snippet:r,highlightTokens:i,shortcutHint:a,isSelected:s,onClick:c,surface:l=`overlay`}){let u=e;return l===`window`?(0,y.jsxs)(`button`,{type:`button`,role:`option`,"aria-current":s?`page`:void 0,"aria-selected":s,onClick:c,className:[`flex w-full items-center gap-3 rounded-md px-3 text-left text-sm font-medium outline-none transition-colors`,r?`py-1.5`:`h-10`,s?`bg-[var(--surface-active)] text-[var(--content-default)]`:`text-[var(--content-secondary)] hover:bg-[var(--surface-overlay)] hover:text-[var(--content-default)]`].join(` `),children:[u?(0,y.jsx)(u,{size:16,"aria-hidden":!0,className:s?`shrink-0 text-[var(--content-default)]`:`shrink-0 text-[var(--content-tertiary)]`}):null,(0,y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,y.jsx)(`span`,{className:`truncate`,children:t}),n?(0,y.jsx)(`span`,{className:`min-w-0 truncate text-xs text-[var(--content-tertiary)]`,children:n}):null,a?(0,y.jsx)(`span`,{className:`ml-auto shrink-0 text-xs text-[var(--content-tertiary)]`,children:a}):null]}),r?(0,y.jsx)(`span`,{className:`truncate text-xs font-normal text-[var(--content-tertiary)]`,children:x(r,i)}):null]})]}):(0,y.jsx)(o,{icon:e,label:(0,y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,y.jsx)(`span`,{className:`truncate`,children:t}),n?(0,y.jsx)(`span`,{className:`min-w-0 truncate text-[var(--content-tertiary)] text-body-small-default`,children:n}):null,a?(0,y.jsx)(`span`,{className:`ml-auto shrink-0 text-[var(--content-tertiary)] text-body-small-default`,children:a}):null]}),r?(0,y.jsx)(`span`,{className:`truncate text-[var(--content-tertiary)] text-body-small-default`,children:x(r,i)}):null]}),active:s,onSelect:c,className:r?`h-auto px-3 py-2`:`px-3 py-2`})}var C=`fixed inset-0 z-50 flex flex-col bg-[var(--surface-lift)]`,w={paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`,paddingLeft:`var(--safe-area-inset-left, env(safe-area-inset-left, 0px))`,paddingRight:`var(--safe-area-inset-right, env(safe-area-inset-right, 0px))`},T={...w,pointerEvents:`none`},E=({onKeyDown:e,children:t})=>{let n=p(),r=g(),i=(0,_.useRef)(null);return(0,_.useLayoutEffect)(()=>{if(n)return;let e=document.activeElement;e instanceof HTMLElement&&i.current?.contains(e)&&e.blur()},[n]),(0,y.jsx)(m.div,{ref:i,className:C,style:n?w:T,role:`dialog`,"aria-modal":n?!0:void 0,"aria-hidden":n?void 0:!0,"aria-label":`Search`,onKeyDown:e,initial:{y:`100%`,opacity:0},animate:{y:0,opacity:1},exit:{y:`100%`,opacity:0},transition:r?{duration:0}:{duration:.28,ease:[.16,1,.3,1]},children:t})},D=({isOpen:e,onClose:t,query:n,onQueryChange:i,highlightTokens:o,selectedIndex:p,sections:m,isSearching:g=!1,onItemSelect:b,onKeyDown:x,surface:T=`overlay`})=>{let D=d(),O=u(),k=f(),A=(0,_.useRef)(null),j=(0,_.useRef)(null),M=(0,_.useRef)(null);(0,_.useEffect)(()=>{if(e){let e=requestAnimationFrame(()=>{j.current?.focus()});return()=>cancelAnimationFrame(e)}},[e]),(0,_.useEffect)(()=>{if(!e||!M.current)return;let t=M.current.querySelector(`[aria-current='page']`);t&&t.scrollIntoView({block:`nearest`})},[e,p]);let N=(0,_.useCallback)(e=>{e.target===A.current&&t()},[t]),P=T===`window`,F=D&&!P,I=!k,L=O&&F;if(!e&&!L)return null;let R=0,z=(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[g?(0,y.jsx)(s,{size:16,"aria-hidden":!0,className:`shrink-0 animate-spin text-[var(--content-tertiary)]`}):(0,y.jsx)(c,{size:16,"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)]`}),(0,y.jsx)(`input`,{ref:j,type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Search conversations, memories…`,className:P?`min-w-0 flex-1 bg-transparent text-sm font-medium text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`:`min-w-0 flex-1 bg-transparent text-body-medium-lighter text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`,"aria-label":`Search`}),n?F?(0,y.jsx)(`button`,{type:`button`,className:`shrink-0 text-body-medium-lighter text-[var(--content-tertiary)]`,onClick:()=>i(``),"aria-label":`Clear search`,children:`Clear`}):P?(0,y.jsx)(`button`,{type:`button`,className:`flex size-7 shrink-0 items-center justify-center rounded-md text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-overlay)] hover:text-[var(--content-default)]`,"aria-label":`Clear search`,onClick:()=>i(``),children:(0,y.jsx)(l,{size:16,"aria-hidden":!0})}):(0,y.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,y.jsx)(l,{}),"aria-label":`Clear search`,onClick:()=>i(``),tintColor:`var(--content-tertiary)`}):I?(0,y.jsx)(`kbd`,{className:P?`shrink-0 rounded-md border border-[var(--border-base)] bg-[var(--surface-active)] px-1.5 py-0.5 text-xs font-medium text-[var(--content-secondary)]`:`shrink-0 rounded-md border border-[var(--border-base)] bg-[var(--surface-active)] px-1.5 py-0.5 text-label-small-default text-[var(--content-tertiary)]`,children:`⌘K`}):null,F?(0,y.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,y.jsx)(l,{}),expandOnMobile:!1,"aria-label":`Close search`,onClick:t,tintColor:`var(--content-tertiary)`}):null]}),B=(0,y.jsx)(`div`,{ref:M,className:F?`flex-1 overflow-y-auto overscroll-contain p-2`:`max-h-[360px] overflow-y-auto overscroll-contain p-2`,role:`listbox`,children:m.length===0?(0,y.jsx)(`div`,{className:`px-3 py-6 text-center`,children:(0,y.jsx)(a,{variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,children:g?`Searching…`:`No results`})}):m.map(e=>(0,y.jsxs)(`div`,{role:`group`,"aria-label":e.label,children:[(0,y.jsx)(a,{variant:`label-small-default`,as:`div`,className:P?`px-3 pb-1 pt-2 text-xs font-semibold text-[var(--content-tertiary)]`:`px-3 pb-1 pt-2 text-[var(--content-tertiary)] max-md:text-body-small-default`,children:e.label}),e.items.map(e=>{let t=R++;return(0,y.jsx)(S,{icon:e.icon,title:e.title,subtitle:e.subtitle,snippet:e.snippet,highlightTokens:o,shortcutHint:I?e.shortcutHint:void 0,isSelected:t===p,onClick:()=>b?.(e,t),surface:T},e.id)})]},e.id))});if(L)return(0,y.jsx)(h,{children:e?(0,y.jsxs)(E,{onKeyDown:x,children:[z,B]},`command-palette-sheet`):null});if(F)return(0,y.jsxs)(`div`,{className:C,role:`dialog`,"aria-modal":`true`,"aria-label":`Search`,onKeyDown:x,style:w,children:[z,B]});let V=(0,y.jsx)(`div`,{ref:A,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,className:T===`window`?`flex h-full w-full items-start justify-center bg-transparent p-3`:`fixed inset-0 z-50 flex items-start justify-center bg-black/40 pt-[15vh]`,onClick:N,onKeyDown:x,children:(0,y.jsxs)(`div`,{className:`flex w-full max-w-[560px] flex-col overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-base)] shadow-xl`,children:[z,B]})});return T===`window`?V:(0,v.createPortal)(V,document.body)};export{D as CommandPalette};
@@ -1 +1 @@
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{c as r,i,n as a,o,t as s}from"./use-command-palette-sections-D0RCkx0m.js";import{n as c}from"./resolved-assistants-store-BuqctGKE.js";import{Q as l,i as u,n as d,s as f}from"./auth-store-BDMYc7te.js";import{t as p}from"./use-app-theme-CODorJpK.js";import{i as m}from"./conversation-queries-7BVaya69.js";import{CommandPalette as h}from"./command-palette-D79Jq26W.js";var g=e(t(),1),_=n(),v=()=>void 0,y=e=>void 0,b=e=>{switch(e.id){case`action-new-conversation`:return{kind:`newConversation`};case`action-current-conversation`:return{kind:`currentConversation`};case`action-settings`:return{kind:`openSettings`};case`action-library`:return{kind:`openLibrary`};case`action-intelligence`:return{kind:`openIdentity`};default:return e.id.startsWith(`conv-`)?{kind:`openConversation`,conversationId:e.id.slice(5)}:e.id.startsWith(`search-conv-`)?{kind:`openConversation`,conversationId:e.id.slice(12)}:e.id.startsWith(`search-schedule-`)||e.id.startsWith(`search-contact-`)?{kind:`openIdentity`}:null}};function x(){let e=d.use.sessionStatus(),t=f(),n=u();p(),o(!t),r({sessionStatus:e,hasPlatformSession:n});let x=c.use.assistants(),S=c.use.activeAssistantId(),C=l(),w=(0,g.useMemo)(()=>{let e=C??S;if(!e)return null;let t=x.find(t=>t.id===e);return t?{id:t.id,name:t.name}:null},[C,S,x]),T=w?.id??null,{conversations:E}=m(T,!0),D=(0,g.useCallback)(e=>{let t=b(e);t&&i(t)},[]),{commandPalette:O,mergedSections:k,handleItemSelect:A}=s({assistantId:T,assistantName:w?.name,conversations:E,activeConversationId:void 0,startNewConversation:v,switchConversation:v,navigate:y,navigateToSettings:v,isOpen:!0,onClose:()=>{a()},onItemSelect:D});return(0,_.jsx)(`div`,{className:`h-screen w-screen bg-transparent`,children:(0,_.jsx)(h,{isOpen:!0,surface:`window`,onClose:O.close,query:O.query,onQueryChange:O.setQuery,highlightTokens:O.searchTokens,selectedIndex:O.selectedIndex,sections:k,isSearching:O.isSearching,onItemSelect:A,onKeyDown:O.handleKeyDown})})}export{x as CommandPaletteWindowPage};
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{c as r,i,n as a,o,t as s}from"./use-command-palette-sections-BFV15eUp.js";import{n as c}from"./resolved-assistants-store-BuqctGKE.js";import{Q as l,i as u,n as d,s as f}from"./auth-store-B9pHhreb.js";import{t as p}from"./use-app-theme-CODorJpK.js";import{i as m}from"./conversation-queries-DkkuIyRB.js";import{CommandPalette as h}from"./command-palette-C6h4Ip2u.js";var g=e(t(),1),_=n(),v=()=>void 0,y=e=>void 0,b=e=>{switch(e.id){case`action-new-conversation`:return{kind:`newConversation`};case`action-current-conversation`:return{kind:`currentConversation`};case`action-settings`:return{kind:`openSettings`};case`action-library`:return{kind:`openLibrary`};case`action-intelligence`:return{kind:`openIdentity`};default:return e.id.startsWith(`conv-`)?{kind:`openConversation`,conversationId:e.id.slice(5)}:e.id.startsWith(`search-conv-`)?{kind:`openConversation`,conversationId:e.id.slice(12)}:e.id.startsWith(`search-schedule-`)||e.id.startsWith(`search-contact-`)?{kind:`openIdentity`}:null}};function x(){let e=d.use.sessionStatus(),t=f(),n=u();p(),o(!t),r({sessionStatus:e,hasPlatformSession:n});let x=c.use.assistants(),S=c.use.activeAssistantId(),C=l(),w=(0,g.useMemo)(()=>{let e=C??S;if(!e)return null;let t=x.find(t=>t.id===e);return t?{id:t.id,name:t.name}:null},[C,S,x]),T=w?.id??null,{conversations:E}=m(T,!0),D=(0,g.useCallback)(e=>{let t=b(e);t&&i(t)},[]),{commandPalette:O,mergedSections:k,handleItemSelect:A}=s({assistantId:T,assistantName:w?.name,conversations:E,activeConversationId:void 0,startNewConversation:v,switchConversation:v,navigate:y,navigateToSettings:v,isOpen:!0,onClose:()=>{a()},onItemSelect:D});return(0,_.jsx)(`div`,{className:`h-screen w-screen bg-transparent`,children:(0,_.jsx)(h,{isOpen:!0,surface:`window`,onClose:O.close,query:O.query,onQueryChange:O.setQuery,highlightTokens:O.searchTokens,selectedIndex:O.selectedIndex,sections:k,isSearching:O.isSearching,onItemSelect:A,onKeyDown:O.handleKeyDown})})}export{x as CommandPaletteWindowPage};
@@ -1 +1 @@
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"./arrow-up-BNWtJ6NE.js";import{_ as i,c as a,d as o,f as s,g as c,h as l,l as u,m as d,n as f,o as p,p as m,s as h,v as g}from"./desktop-voice-activity-CHblqyyn.js";import{t as _}from"./check-CNBoUiyR.js";import{t as v}from"./mic-BuTY2uVU.js";import{t as y}from"./volume-2-DgWyCs5f.js";import{t as b}from"./x-BY-Np61T.js";import{t as x}from"./avatar-bundled-components-OjPlNcdB.js";import{t as S}from"./animated-avatar-D9mX2duB.js";var C=e(t(),1),w=n(),T=`#5eead4`,E=new Set([`transcribing`,`thinking`,`speaking`]),D=44,O=28,k=8,A={resting:D,hover:188,call:296,typing:360},j=360,M=220;function N({phase:e,turns:t=[],assistantName:n=`your assistant`,glow:r=!0,accentHex:i=T,avatarSrc:a,character:o,hovered:s=!1,onHoverStart:c,onHoverEnd:l,growth:u=`right`,rootRef:d,onSurfaceMouseDown:f,spotlight:p,onTalk:m,onType:h,onSubmit:g,onCancelTyping:_,onAvatarClick:v,call:y,onControl:b}){let x=e!==`resting`,S=e===`typing`,O=(0,C.useRef)(null),[M,N]=(0,C.useState)(null);(0,C.useLayoutEffect)(()=>{let e=O.current;if(!e)return;let t=()=>{N(e.scrollWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let z={width:S?j:D+(x?(M??A[e]-D)+k:0),...u===`left`?{right:`50%`,marginRight:-(D/2)}:{left:`50%`,marginLeft:-(D/2)},transform:S?`translateY(calc(-100% + ${D/2}px))`:`translateY(-50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,"--accent":i};return(0,w.jsxs)(`div`,{className:`absolute top-1/2 cursor-grab transition-[width] duration-300 will-change-[width] active:cursor-grabbing ${S?`flex flex-col rounded-[22px]`:`flex h-11 items-center rounded-full`} ${u===`left`&&!S?`flex-row-reverse`:``}`,style:z,onMouseLeave:l,onMouseDown:f,ref:d,children:[(0,w.jsx)(`span`,{className:`absolute inset-0 border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40 transition-opacity duration-200 ${S?`rounded-[22px]`:`rounded-full`}`,style:{opacity:+!!x},"aria-hidden":!0}),S&&t.length>0&&(0,w.jsx)(P,{turns:t}),(0,w.jsxs)(`div`,{className:`relative flex h-11 shrink-0 items-center`,children:[(0,w.jsx)(I,{glow:r&&!x,accentHex:i,avatarSrc:a,character:o,attentive:s,busy:y!==void 0&&E.has(y.phase),onMouseEnter:c,onClick:v}),S?(0,w.jsx)(F,{assistantName:n,onSubmit:g,onCancel:_}):(0,w.jsx)(`div`,{className:`relative flex min-w-0 items-center gap-1 overflow-hidden transition-opacity duration-200`,ref:O,inert:!x,style:{opacity:+!!x,transitionDelay:x?`120ms`:`0ms`},children:e===`call`?(0,w.jsx)(R,{call:y,onControl:b}):(0,w.jsx)(L,{spotlight:p,onTalk:m,onType:h})})]})]})}function P({turns:e}){let t=(0,C.useRef)(null);return(0,C.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,w.jsx)(`div`,{ref:t,className:`relative flex flex-col gap-1.5 overflow-y-auto px-3 pt-3 pb-1`,style:{maxHeight:M},children:e.map((e,t)=>{let n=e.role===`user`;return(0,w.jsx)(`div`,{className:`flex shrink-0 ${n?`justify-end`:`justify-start`}`,children:(0,w.jsx)(`p`,{className:`text-[12px] leading-[1.45] whitespace-pre-wrap ${n?`max-w-[80%] rounded-lg bg-white/[0.08] px-2.5 py-1.5 text-white/75`:`text-white/85`}`,children:e.text})},`${e.role}-${t}`)})})}function F({assistantName:e,onSubmit:t,onCancel:n}){let[i,a]=(0,C.useState)(``),o=(0,C.useRef)(null),s=i.trim();(0,C.useEffect)(()=>{o.current?.focus()},[]);let c=()=>{s!==``&&(a(``),t?.(s))};return(0,w.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1 pr-2`,children:[(0,w.jsx)(`input`,{ref:o,type:`text`,value:i,placeholder:`Message ${e}`,onChange:e=>{a(e.target.value)},onKeyDown:e=>{if(e.key===`Enter`){e.preventDefault(),c();return}e.key===`Escape`&&(e.preventDefault(),n?.())},onMouseDown:e=>{e.stopPropagation()},className:`min-w-0 flex-1 bg-transparent text-[12px] text-white/85 placeholder:text-white/40 focus:outline-none`}),(0,w.jsx)(`button`,{type:`button`,"aria-label":s===``?`Go back`:`Send`,title:s===``?`Go back`:`Send`,onClick:s===``?n:c,onMouseDown:e=>{e.stopPropagation()},className:`grid size-7 shrink-0 place-items-center rounded-full bg-white/10 text-white/85 transition-colors hover:bg-white/20`,children:s===``?(0,w.jsx)(b,{className:`size-3.5`,"aria-hidden":!0}):(0,w.jsx)(r,{className:`size-3.5`,"aria-hidden":!0})})]})}function I({glow:e,accentHex:t,avatarSrc:n,character:r,busy:i=!1,attentive:a=!1,onMouseEnter:o,onClick:s}){return(0,w.jsxs)(`div`,{className:`relative grid size-11 shrink-0 place-items-center`,onMouseEnter:o,onClick:s,children:[e&&(0,w.jsx)(`span`,{className:`absolute size-10 animate-pulse rounded-full blur-lg`,style:{background:t,opacity:.4},"aria-hidden":!0}),r===void 0?n===void 0?(0,w.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:t},"aria-hidden":!0}):(0,w.jsx)(`img`,{src:n,alt:``,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`}):(0,w.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,w.jsx)(S,{components:x,traits:r,size:O,isAssistantBusy:i,attentive:a})})]})}function L({spotlight:e,onTalk:t,onType:n}){return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(V,{icon:(0,w.jsx)(g,{className:`size-4`}),label:`Talk`,showLabel:!0,active:e===`talk`,onClick:t}),(0,w.jsx)(V,{icon:(0,w.jsx)(i,{className:`size-4`}),label:`Type`,showLabel:!0,active:e===`type`,onClick:n})]})}function R({call:e,onControl:t}){if(e!==void 0&&e.approvalRequestId!==``)return(0,w.jsx)(z,{detail:e.detail,requestId:e.approvalRequestId,onControl:t});let n=e===void 0?`Listening`:e.detail||e.label,r=e?.muted??!1,i=e?.outputMuted??!1;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:n}),(0,w.jsx)(`span`,{className:`ml-1 shrink-0 font-mono text-[11px] tabular-nums text-white/60`,children:(0,w.jsx)(B,{startedAt:e?.startedAt})}),(0,w.jsx)(V,{icon:r?(0,w.jsx)(c,{className:`size-4`}):(0,w.jsx)(v,{className:`size-4`}),label:r?`Unmute microphone`:`Mute microphone`,onClick:()=>{t?.(r?`unmuteMicrophone`:`muteMicrophone`)}}),(0,w.jsx)(V,{icon:i?(0,w.jsx)(l,{className:`size-4`}):(0,w.jsx)(y,{className:`size-4`}),label:i?`Unmute assistant`:`Mute assistant`,onClick:()=>{t?.(i?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),(0,w.jsx)(V,{icon:(0,w.jsx)(b,{className:`size-4`,strokeWidth:2.5}),label:`End session`,tone:`negative`,onClick:()=>{t?.(`endSession`)}})]})}function z({detail:e,requestId:t,onControl:n}){return(0,w.jsxs)(w.Fragment,{children:[e!==``&&(0,w.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:e}),(0,w.jsx)(V,{icon:(0,w.jsx)(_,{className:`size-4`}),label:`Allow`,showLabel:!0,tone:`positive`,onClick:()=>{n?.(`approveRequest`,t)}}),(0,w.jsx)(V,{icon:(0,w.jsx)(b,{className:`size-4`}),label:`Deny`,showLabel:!0,tone:`negative`,onClick:()=>{n?.(`denyRequest`,t)}})]})}function B({startedAt:e}){let[t,n]=(0,C.useState)(()=>Date.now());if((0,C.useEffect)(()=>{if(e===void 0)return;let t=setInterval(()=>{n(Date.now())},1e3);return()=>{clearInterval(t)}},[e]),e===void 0)return(0,w.jsx)(w.Fragment,{children:`0:14`});let r=Math.max(0,Math.floor((t-e)/1e3));return(0,w.jsx)(w.Fragment,{children:`${Math.floor(r/60)}:${String(r%60).padStart(2,`0`)}`})}function V({icon:e,label:t,tone:n,showLabel:r=!1,active:i=!1,onClick:a}){return(0,w.jsxs)(`button`,{type:`button`,"aria-label":t,title:t,onClick:a,onMouseDown:e=>{e.stopPropagation()},className:`flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2 text-[12px] transition-colors hover:bg-white/15 ${i?`bg-white/15`:``} ${n===`negative`?`text-[#ff6b6b]`:n===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,r&&(0,w.jsx)(`span`,{children:t})]})}var H=3;function U(){let[e,t]=(0,C.useState)(`right`),[n,r]=(0,C.useState)(),[i,c]=(0,C.useState)(),[l,g]=(0,C.useState)(null),[_,v]=(0,C.useState)([]),[y,b]=(0,C.useState)(``),[x,S]=(0,C.useState)(!1),[T,E]=(0,C.useState)(!1),[D,O]=(0,C.useState)(!1),k=(0,C.useRef)(!1),A=(0,C.useRef)(null),j=(0,C.useRef)(null),M=(0,C.useRef)(null),P=(0,C.useRef)(!1);(0,C.useEffect)(()=>{let e=e=>{t(e.growth),r(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),c(e.character),g(e.call),v(e.turns),b(e.assistantName)},n=d(e);return h().then(t=>{t&&e(t)}),n},[]),(0,C.useEffect)(()=>()=>{o(!1),u(!1)},[]),(0,C.useEffect)(()=>{u(T)},[T]);let F=e=>{k.current!==e&&(k.current=e,o(e))};return(0,w.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:e=>{if(j.current!==null){let{x:t,y:n}=j.current;a(e.screenX-t,e.screenY-n),j.current={x:e.screenX,y:e.screenY};let r=M.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>H&&(P.current=!0);return}let t=A.current;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX>=n.left&&e.clientX<=n.right&&e.clientY>=n.top&&e.clientY<=n.bottom;S(r),F(r)},onMouseUp:()=>{j.current=null},onMouseLeave:()=>{j.current=null,S(!1),F(!1)},children:(0,w.jsx)(N,{phase:T?`typing`:l===null?x?`hover`:`resting`:`call`,growth:e,avatarSrc:n,character:i,hovered:x,accentHex:l!==null&&/^#[0-9a-f]{6}$/i.test(l.accentHex)?l.accentHex:void 0,turns:D?_:[],assistantName:y===``?void 0:y,call:l??void 0,rootRef:A,onSurfaceMouseDown:e=>{j.current={x:e.screenX,y:e.screenY},M.current={x:e.screenX,y:e.screenY},P.current=!1},onAvatarClick:()=>{P.current||p()},onTalk:s,onType:()=>{E(!0)},onSubmit:e=>{D||(v([]),O(!0)),m(e,!D)},onCancelTyping:()=>{E(!1),S(!1),F(!1),O(!1)},onControl:(e,t)=>{f(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{U as CompanionSurfacePage};
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"./arrow-up-BNWtJ6NE.js";import{_ as i,c as a,d as o,f as s,g as c,h as l,l as u,m as d,n as f,o as p,p as m,s as h,v as g}from"./desktop-voice-activity-CHblqyyn.js";import{t as _}from"./check-CNBoUiyR.js";import{t as v}from"./mic-BuTY2uVU.js";import{t as y}from"./volume-2-DgWyCs5f.js";import{t as b}from"./x-BY-Np61T.js";import{t as x}from"./avatar-bundled-components-OjPlNcdB.js";import{t as S}from"./animated-avatar--_W54iT9.js";var C=e(t(),1),w=n(),T=`#5eead4`,E=new Set([`transcribing`,`thinking`,`speaking`]),D=44,O=28,k=8,A={resting:D,hover:188,call:296,typing:360},j=360,M=220;function N({phase:e,turns:t=[],assistantName:n=`your assistant`,glow:r=!0,accentHex:i=T,avatarSrc:a,character:o,hovered:s=!1,onHoverStart:c,onHoverEnd:l,growth:u=`right`,rootRef:d,onSurfaceMouseDown:f,spotlight:p,onTalk:m,onType:h,onSubmit:g,onCancelTyping:_,onAvatarClick:v,call:y,onControl:b}){let x=e!==`resting`,S=e===`typing`,O=(0,C.useRef)(null),[M,N]=(0,C.useState)(null);(0,C.useLayoutEffect)(()=>{let e=O.current;if(!e)return;let t=()=>{N(e.scrollWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let z={width:S?j:D+(x?(M??A[e]-D)+k:0),...u===`left`?{right:`50%`,marginRight:-(D/2)}:{left:`50%`,marginLeft:-(D/2)},transform:S?`translateY(calc(-100% + ${D/2}px))`:`translateY(-50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,"--accent":i};return(0,w.jsxs)(`div`,{className:`absolute top-1/2 cursor-grab transition-[width] duration-300 will-change-[width] active:cursor-grabbing ${S?`flex flex-col rounded-[22px]`:`flex h-11 items-center rounded-full`} ${u===`left`&&!S?`flex-row-reverse`:``}`,style:z,onMouseLeave:l,onMouseDown:f,ref:d,children:[(0,w.jsx)(`span`,{className:`absolute inset-0 border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40 transition-opacity duration-200 ${S?`rounded-[22px]`:`rounded-full`}`,style:{opacity:+!!x},"aria-hidden":!0}),S&&t.length>0&&(0,w.jsx)(P,{turns:t}),(0,w.jsxs)(`div`,{className:`relative flex h-11 shrink-0 items-center`,children:[(0,w.jsx)(I,{glow:r&&!x,accentHex:i,avatarSrc:a,character:o,attentive:s,busy:y!==void 0&&E.has(y.phase),onMouseEnter:c,onClick:v}),S?(0,w.jsx)(F,{assistantName:n,onSubmit:g,onCancel:_}):(0,w.jsx)(`div`,{className:`relative flex min-w-0 items-center gap-1 overflow-hidden transition-opacity duration-200`,ref:O,inert:!x,style:{opacity:+!!x,transitionDelay:x?`120ms`:`0ms`},children:e===`call`?(0,w.jsx)(R,{call:y,onControl:b}):(0,w.jsx)(L,{spotlight:p,onTalk:m,onType:h})})]})]})}function P({turns:e}){let t=(0,C.useRef)(null);return(0,C.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,w.jsx)(`div`,{ref:t,className:`relative flex flex-col gap-1.5 overflow-y-auto px-3 pt-3 pb-1`,style:{maxHeight:M},children:e.map((e,t)=>{let n=e.role===`user`;return(0,w.jsx)(`div`,{className:`flex shrink-0 ${n?`justify-end`:`justify-start`}`,children:(0,w.jsx)(`p`,{className:`text-[12px] leading-[1.45] whitespace-pre-wrap ${n?`max-w-[80%] rounded-lg bg-white/[0.08] px-2.5 py-1.5 text-white/75`:`text-white/85`}`,children:e.text})},`${e.role}-${t}`)})})}function F({assistantName:e,onSubmit:t,onCancel:n}){let[i,a]=(0,C.useState)(``),o=(0,C.useRef)(null),s=i.trim();(0,C.useEffect)(()=>{o.current?.focus()},[]);let c=()=>{s!==``&&(a(``),t?.(s))};return(0,w.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1 pr-2`,children:[(0,w.jsx)(`input`,{ref:o,type:`text`,value:i,placeholder:`Message ${e}`,onChange:e=>{a(e.target.value)},onKeyDown:e=>{if(e.key===`Enter`){e.preventDefault(),c();return}e.key===`Escape`&&(e.preventDefault(),n?.())},onMouseDown:e=>{e.stopPropagation()},className:`min-w-0 flex-1 bg-transparent text-[12px] text-white/85 placeholder:text-white/40 focus:outline-none`}),(0,w.jsx)(`button`,{type:`button`,"aria-label":s===``?`Go back`:`Send`,title:s===``?`Go back`:`Send`,onClick:s===``?n:c,onMouseDown:e=>{e.stopPropagation()},className:`grid size-7 shrink-0 place-items-center rounded-full bg-white/10 text-white/85 transition-colors hover:bg-white/20`,children:s===``?(0,w.jsx)(b,{className:`size-3.5`,"aria-hidden":!0}):(0,w.jsx)(r,{className:`size-3.5`,"aria-hidden":!0})})]})}function I({glow:e,accentHex:t,avatarSrc:n,character:r,busy:i=!1,attentive:a=!1,onMouseEnter:o,onClick:s}){return(0,w.jsxs)(`div`,{className:`relative grid size-11 shrink-0 place-items-center`,onMouseEnter:o,onClick:s,children:[e&&(0,w.jsx)(`span`,{className:`absolute size-10 animate-pulse rounded-full blur-lg`,style:{background:t,opacity:.4},"aria-hidden":!0}),r===void 0?n===void 0?(0,w.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:t},"aria-hidden":!0}):(0,w.jsx)(`img`,{src:n,alt:``,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`}):(0,w.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,w.jsx)(S,{components:x,traits:r,size:O,isAssistantBusy:i,attentive:a})})]})}function L({spotlight:e,onTalk:t,onType:n}){return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(V,{icon:(0,w.jsx)(g,{className:`size-4`}),label:`Talk`,showLabel:!0,active:e===`talk`,onClick:t}),(0,w.jsx)(V,{icon:(0,w.jsx)(i,{className:`size-4`}),label:`Type`,showLabel:!0,active:e===`type`,onClick:n})]})}function R({call:e,onControl:t}){if(e!==void 0&&e.approvalRequestId!==``)return(0,w.jsx)(z,{detail:e.detail,requestId:e.approvalRequestId,onControl:t});let n=e===void 0?`Listening`:e.detail||e.label,r=e?.muted??!1,i=e?.outputMuted??!1;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:n}),(0,w.jsx)(`span`,{className:`ml-1 shrink-0 font-mono text-[11px] tabular-nums text-white/60`,children:(0,w.jsx)(B,{startedAt:e?.startedAt})}),(0,w.jsx)(V,{icon:r?(0,w.jsx)(c,{className:`size-4`}):(0,w.jsx)(v,{className:`size-4`}),label:r?`Unmute microphone`:`Mute microphone`,onClick:()=>{t?.(r?`unmuteMicrophone`:`muteMicrophone`)}}),(0,w.jsx)(V,{icon:i?(0,w.jsx)(l,{className:`size-4`}):(0,w.jsx)(y,{className:`size-4`}),label:i?`Unmute assistant`:`Mute assistant`,onClick:()=>{t?.(i?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),(0,w.jsx)(V,{icon:(0,w.jsx)(b,{className:`size-4`,strokeWidth:2.5}),label:`End session`,tone:`negative`,onClick:()=>{t?.(`endSession`)}})]})}function z({detail:e,requestId:t,onControl:n}){return(0,w.jsxs)(w.Fragment,{children:[e!==``&&(0,w.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:e}),(0,w.jsx)(V,{icon:(0,w.jsx)(_,{className:`size-4`}),label:`Allow`,showLabel:!0,tone:`positive`,onClick:()=>{n?.(`approveRequest`,t)}}),(0,w.jsx)(V,{icon:(0,w.jsx)(b,{className:`size-4`}),label:`Deny`,showLabel:!0,tone:`negative`,onClick:()=>{n?.(`denyRequest`,t)}})]})}function B({startedAt:e}){let[t,n]=(0,C.useState)(()=>Date.now());if((0,C.useEffect)(()=>{if(e===void 0)return;let t=setInterval(()=>{n(Date.now())},1e3);return()=>{clearInterval(t)}},[e]),e===void 0)return(0,w.jsx)(w.Fragment,{children:`0:14`});let r=Math.max(0,Math.floor((t-e)/1e3));return(0,w.jsx)(w.Fragment,{children:`${Math.floor(r/60)}:${String(r%60).padStart(2,`0`)}`})}function V({icon:e,label:t,tone:n,showLabel:r=!1,active:i=!1,onClick:a}){return(0,w.jsxs)(`button`,{type:`button`,"aria-label":t,title:t,onClick:a,onMouseDown:e=>{e.stopPropagation()},className:`flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2 text-[12px] transition-colors hover:bg-white/15 ${i?`bg-white/15`:``} ${n===`negative`?`text-[#ff6b6b]`:n===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,r&&(0,w.jsx)(`span`,{children:t})]})}var H=3;function U(){let[e,t]=(0,C.useState)(`right`),[n,r]=(0,C.useState)(),[i,c]=(0,C.useState)(),[l,g]=(0,C.useState)(null),[_,v]=(0,C.useState)([]),[y,b]=(0,C.useState)(``),[x,S]=(0,C.useState)(!1),[T,E]=(0,C.useState)(!1),[D,O]=(0,C.useState)(!1),k=(0,C.useRef)(!1),A=(0,C.useRef)(null),j=(0,C.useRef)(null),M=(0,C.useRef)(null),P=(0,C.useRef)(!1);(0,C.useEffect)(()=>{let e=e=>{t(e.growth),r(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),c(e.character),g(e.call),v(e.turns),b(e.assistantName)},n=d(e);return h().then(t=>{t&&e(t)}),n},[]),(0,C.useEffect)(()=>()=>{o(!1),u(!1)},[]),(0,C.useEffect)(()=>{u(T)},[T]);let F=e=>{k.current!==e&&(k.current=e,o(e))};return(0,w.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:e=>{if(j.current!==null){let{x:t,y:n}=j.current;a(e.screenX-t,e.screenY-n),j.current={x:e.screenX,y:e.screenY};let r=M.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>H&&(P.current=!0);return}let t=A.current;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX>=n.left&&e.clientX<=n.right&&e.clientY>=n.top&&e.clientY<=n.bottom;S(r),F(r)},onMouseUp:()=>{j.current=null},onMouseLeave:()=>{j.current=null,S(!1),F(!1)},children:(0,w.jsx)(N,{phase:T?`typing`:l===null?x?`hover`:`resting`:`call`,growth:e,avatarSrc:n,character:i,hovered:x,accentHex:l!==null&&/^#[0-9a-f]{6}$/i.test(l.accentHex)?l.accentHex:void 0,turns:D?_:[],assistantName:y===``?void 0:y,call:l??void 0,rootRef:A,onSurfaceMouseDown:e=>{j.current={x:e.screenX,y:e.screenY},M.current={x:e.screenX,y:e.screenY},P.current=!1},onAvatarClick:()=>{P.current||p()},onTalk:s,onType:()=>{E(!0)},onSubmit:e=>{D||(v([]),O(!0)),m(e,!D)},onCancelTyping:()=>{E(!1),S(!1),F(!1),O(!1)},onControl:(e,t)=>{f(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{U as CompanionSurfacePage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{c as t,r as n,s as r,t as i}from"./local-settings-Bx7FsNo5.js";import{s as a}from"./device-settings-DZvv4pnY.js";import{t as o}from"./capture-error-Cdvvw9J5.js";import{t as s}from"./react-BFJW0bSv.js";import{t as c}from"./button-DSjqKLvM.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import"./src-DjIqxQVd.js";import{t as u}from"./createLucideIcon-C_IfoPaZ.js";import{t as d}from"./checkbox-DyHMOWN6.js";import{t as f}from"./triangle-alert-C5SOfs-q.js";import{t as p}from"./notice-C9v3KOP3.js";import{t as m}from"./modal-Bt1DPFgW.js";import{i as h,t as g}from"./api-xbjYCkk-.js";import{t as _}from"./client-feature-flag-store-B9Bz0uyL.js";import{i as v,t as y}from"./dist-D8V9YSOm.js";import{a as b,i as x}from"./typed-storage-DjhDRFKz.js";import{n as S,r as C,t as ee}from"./theme-preferences-eO-_-Yel.js";import{t as w}from"./use-bus-subscription-CBlDL_ew.js";import{o as te}from"./funnel-events-BddkbWqn.js";var T=u(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),ne=u(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]),E=e(s(),1),D=`NativeLaunchScreen`,O=v(D);function k(e){return e===`velvet`?`dark`:e}function A(){return y.isNativePlatform()&&y.getPlatform()===`android`&&y.isPluginAvailable(D)}async function j(e){if(A())try{await O.ready({theme:k(e)})}catch(e){o(e,{context:`native_launch_screen_ready`,bestEffort:!0})}}async function re(e){if(A())try{await O.setTheme({theme:k(e)})}catch(e){o(e,{context:`native_launch_screen_theme_sync`,bestEffort:!0})}}function ie(){return _.use.stringFlags().proactiveTips??`off`}function ae(e){return e===`on`}function M(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function oe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&M(t.dismissedAt)&&M(t.lastShownAt)}function se(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))oe(r)&&(n[e]=r);return n}function ce(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var N=x({key:`device:tips:records`,scope:`device`,parse:se,serialize:JSON.stringify,fallback:{}}),le=x({key:`device:tips:enabled`,scope:`device`,parse:b,serialize:String,fallback:!0}),P=x({key:`device:tips:first_seen_at`,scope:`device`,parse:ce,serialize:String,fallback:0});function ue(){P.load()===0&&P.save(Date.now())}function de(e,t){let n=N.load(),r=n[e];N.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function F(e,t){let n=N.load(),r=n[e];N.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var I=`proactive-tips-v1`,L={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function R(e,t,n){te({stepName:t,stepIndex:L[t]},{funnelVersion:I,screen:e,variant:n})}function z(){let e=_.use.velvet(),[t,n]=(0,E.useState)(()=>S({velvetEnabled:e}));return(0,E.useEffect)(()=>{n(S({velvetEnabled:e}))},[e]),(0,E.useEffect)(()=>a(`theme`,()=>{n(S({velvetEnabled:e}))}),[e]),(0,E.useEffect)(()=>{ee(t)},[t]),{theme:t,setThemePreference:e=>{n(e),C(e),re(e)}}}var B=6e4;function V(e){return!!(e?.enabled&&e.effectivelyLocked)}function H(e){return V(e)?e.acknowledged&&!e.overrideActive:!1}function U(e){return!!(e&&V(e)&&!e.acknowledged&&!e.overrideActive)}function fe(e){return!!(e?.enabled&&e.state===`warning`)}function pe(e){return U(e)?`acknowledgement-required`:H(e)?`cleanup`:fe(e)?`warning`:`inactive`}function me({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:U(n)?`acknowledgement-required`:null}function he(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function ge(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function _e(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var W={assistantId:null,status:null,hasResolvedStatus:!1};function ve(e,t){return e instanceof Error?e:Error(t)}function ye({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=B}){let[i,a]=(0,E.useState)(W),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(null),u=(0,E.useRef)(e),d=(0,E.useRef)(t),f=(0,E.useRef)(0),p=(0,E.useRef)(0);(0,E.useLayoutEffect)(()=>{u.current=e,d.current=t}),(0,E.useEffect)(()=>{f.current+=1,a(W),l(null),s(!1)},[e,t]);let m=(0,E.useCallback)((e,t)=>d.current&&u.current===e&&f.current===t,[]),_=(0,E.useCallback)((e,t,n,r)=>{m(e,r)&&a(r=>r.assistantId===e&&r.hasResolvedStatus===n&&ge(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[m]),v=(0,E.useCallback)(()=>{f.current+=1,a(W)},[]),y=(0,E.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current,i=p.current+1;p.current=i;try{let e=await h(n);if(p.current!==i)return;if(!e.ok){_(n,null,!1,r);return}_(n,e.data.status,!0,r)}catch{if(p.current!==i)return;_(n,null,!1,r)}},[e,_,v,t]);(0,E.useEffect)(()=>{if(!t||!e)return;y();let n=window.setInterval(()=>{y()},r);return()=>{window.clearInterval(n)}},[e,r,t,y,n]),w(`app.resume`,()=>{y()});let b=(0,E.useCallback)(n=>{if(!t||!e){v();return}let r=f.current+1;f.current=r,s(!1),l(null),_(e,n,!0,r)},[e,_,v,t]);w(`sse.event`,e=>{let t=e.message;t.type===`disk_pressure_status_changed`&&b(t.status)});let x=(0,E.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current+1;f.current=r,s(!0),l(null);try{let e=await g(n);if(!e.ok)throw Error(`Failed to acknowledge assistant disk pressure.`);if(!m(n,r))return;let t=f.current+1;f.current=t,_(n,e.data.status,!0,t),s(!1)}catch(e){m(n,r)&&l(ve(e,`Failed to acknowledge assistant disk pressure.`))}finally{m(n,r)&&s(!1)}},[e,_,v,t,m]),S=t&&i.assistantId===e?i.status:null,C=!!(t&&e&&i.assistantId===e&&i.hasResolvedStatus);return{status:S,mode:(0,E.useMemo)(()=>pe(S),[S]),hasResolvedStatus:C,isAcknowledging:o,acknowledgeError:c,acknowledge:x,applyStatusEvent:b,refresh:y}}var G=l();function be(e){let{status:t,mode:n,isAcknowledging:r=!1,acknowledgeError:i,onAcknowledge:a,onDismissWarning:o,onReviewWorkspaceData:s,onUpgradeStorage:l}=e,[u,h]=(0,E.useState)(!1),[g,_]=(0,E.useState)(!1),v=_e(t);if(n===`warning`){let e=t.usagePercent??0;return(0,G.jsx)(p,{tone:`warning`,title:`Your storage is almost full`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:o?()=>o(g):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:l?`Free up space or add more storage to avoid interruptions.`:`Free up space to avoid interruptions.`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[s&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:s,children:`Manage Storage`}),l&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`}),o?(0,G.jsx)(d,{className:`ml-auto`,checked:g,onCheckedChange:e=>_(e===!0),label:`Don't show again`,"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,G.jsx)(p,{tone:`warning`,title:`Cleanup mode is active`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:`Prompt your assistant to free up space before it runs out and enters a locked state.`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[s&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:s,children:`Manage Storage`}),l&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`})]})]})})}let y=t.usagePercent??0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(p,{tone:`error`,title:`Storage is critically low`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${y}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:`Your assistant will enter a locked state if it runs out of storage.`}),i?(0,G.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:i}):null,(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,G.jsx)(c,{variant:`primary`,size:`compact`,onClick:()=>h(!0),children:`Review`})})]})}),(0,G.jsx)(m.Root,{open:u,onOpenChange:e=>{e||h(!1)},children:(0,G.jsxs)(m.Content,{size:`sm`,children:[(0,G.jsx)(m.Header,{icon:f,children:(0,G.jsx)(m.Title,{children:`Storage is critically low`})}),(0,G.jsx)(m.Body,{children:(0,G.jsx)(m.Description,{children:`Your assistant will enter a locked state if it runs out of storage. You should either prompt your assistant to free up space or increase your storage.`})}),(0,G.jsxs)(m.Footer,{children:[l&&(0,G.jsx)(c,{variant:`outlined`,onClick:()=>{h(!1),l()},children:`Upgrade`}),(0,G.jsx)(c,{variant:`primary`,disabled:r,onClick:()=>{a(),h(!1)},children:r?`Acknowledging...`:`Acknowledge`})]})]})})]})}var xe=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`,K=`ai.vellum.assistant`,Se=`https://play.google.com/store/apps/details?id=${K}`,q={ios:{downloaded:`app.iosNudge.downloaded`,bannerDismissed:`app.iosNudge.bannerDismissed`,assistantTurnsSeen:`app.iosNudge.assistantTurnsSeen`},android:{downloaded:`app.androidNudge.downloaded`,bannerDismissed:`app.androidNudge.bannerDismissed`,assistantTurnsSeen:`app.androidNudge.assistantTurnsSeen`}};function Ce(){let e=(void 0)?.trim();if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`&&t.hostname===`play.google.com`&&t.pathname===`/store/apps/details`&&t.searchParams.get(`id`)===K?Se:null}catch(e){if(e instanceof TypeError)return null;throw e}}function J(e){return e===`ios`?`iOS`:`Android`}function Y(e){if(e===`ios`)return{platform:e,appName:J(e),storeUrl:xe};let t=Ce();return t?{platform:e,appName:J(e),storeUrl:t}:null}function we(e){return i(q[e].downloaded,!1)}function X(e){r(q[e].downloaded,!0)}function Te(e){return i(q[e].bannerDismissed,!1)}function Z(e){r(q[e].bannerDismissed,!0)}function Q(e){return Math.max(0,n(q[e].assistantTurnsSeen,0))}function Ee(e,n=1){n<=0||t(q[e].assistantTurnsSeen,Q(e)+n)}function $(e){let t=Y(e);return t?(window.open(t.storeUrl,`_blank`,`noopener,noreferrer`),!0):!1}function De(e){let[t,n]=(0,E.useState)(!1),[r,i]=(0,E.useState)(!1),a=Y(e)!==null;(0,E.useEffect)(()=>{n(we(e)),i(Te(e))},[e]);let o=(0,E.useCallback)(()=>{$(e)&&(X(e),n(!0))},[e]),s=(0,E.useCallback)(()=>{Z(e),i(!0)},[e]);return(0,E.useMemo)(()=>({bannerShouldShow:a&&!t&&!r,handleDownload:o,handleBannerDismiss:s}),[a,t,r,o,s])}var Oe=x({key:`device:cmd_enter_to_send`,scope:`device`,parse:b,serialize:String,fallback:!1}),ke=x({key:`device:show_context_window_indicator`,scope:`device`,parse:b,serialize:String,fallback:!1});export{ie as C,T as E,ae as S,ne as T,F as _,Ee as a,le as b,De as c,ye as d,he as f,ue as g,R as h,Y as i,X as l,z as m,ke as n,$ as o,me as p,J as r,Q as s,Oe as t,be as u,de as v,j as w,P as x,N as y};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{c as t,r as n,s as r,t as i}from"./local-settings-Bx7FsNo5.js";import{s as a}from"./device-settings-DZvv4pnY.js";import{t as o}from"./capture-error-Cdvvw9J5.js";import{t as s}from"./react-BFJW0bSv.js";import{t as c}from"./button-DSjqKLvM.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import"./src-njXJqrpo.js";import{t as u}from"./createLucideIcon-C_IfoPaZ.js";import{t as d}from"./checkbox-DyHMOWN6.js";import{t as f}from"./triangle-alert-C5SOfs-q.js";import{t as p}from"./notice-C9v3KOP3.js";import{t as m}from"./modal-Bt1DPFgW.js";import{i as h,t as g}from"./api-C72Ea0va.js";import{t as _}from"./client-feature-flag-store-B9Bz0uyL.js";import{i as v,t as y}from"./dist-D8V9YSOm.js";import{a as b,i as x}from"./typed-storage-DjhDRFKz.js";import{n as S,r as C,t as ee}from"./theme-preferences-eO-_-Yel.js";import{t as w}from"./use-bus-subscription-CBlDL_ew.js";import{o as te}from"./funnel-events-CH_O9aTg.js";var T=u(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),ne=u(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]),E=e(s(),1),D=`NativeLaunchScreen`,O=v(D);function k(e){return e===`velvet`?`dark`:e}function A(){return y.isNativePlatform()&&y.getPlatform()===`android`&&y.isPluginAvailable(D)}async function j(e){if(A())try{await O.ready({theme:k(e)})}catch(e){o(e,{context:`native_launch_screen_ready`,bestEffort:!0})}}async function re(e){if(A())try{await O.setTheme({theme:k(e)})}catch(e){o(e,{context:`native_launch_screen_theme_sync`,bestEffort:!0})}}function ie(){return _.use.stringFlags().proactiveTips??`off`}function ae(e){return e===`on`}function M(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function oe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&M(t.dismissedAt)&&M(t.lastShownAt)}function se(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))oe(r)&&(n[e]=r);return n}function ce(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var N=x({key:`device:tips:records`,scope:`device`,parse:se,serialize:JSON.stringify,fallback:{}}),le=x({key:`device:tips:enabled`,scope:`device`,parse:b,serialize:String,fallback:!0}),P=x({key:`device:tips:first_seen_at`,scope:`device`,parse:ce,serialize:String,fallback:0});function ue(){P.load()===0&&P.save(Date.now())}function de(e,t){let n=N.load(),r=n[e];N.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function F(e,t){let n=N.load(),r=n[e];N.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var I=`proactive-tips-v1`,L={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function R(e,t,n){te({stepName:t,stepIndex:L[t]},{funnelVersion:I,screen:e,variant:n})}function z(){let e=_.use.velvet(),[t,n]=(0,E.useState)(()=>S({velvetEnabled:e}));return(0,E.useEffect)(()=>{n(S({velvetEnabled:e}))},[e]),(0,E.useEffect)(()=>a(`theme`,()=>{n(S({velvetEnabled:e}))}),[e]),(0,E.useEffect)(()=>{ee(t)},[t]),{theme:t,setThemePreference:e=>{n(e),C(e),re(e)}}}var B=6e4;function V(e){return!!(e?.enabled&&e.effectivelyLocked)}function H(e){return V(e)?e.acknowledged&&!e.overrideActive:!1}function U(e){return!!(e&&V(e)&&!e.acknowledged&&!e.overrideActive)}function fe(e){return!!(e?.enabled&&e.state===`warning`)}function pe(e){return U(e)?`acknowledgement-required`:H(e)?`cleanup`:fe(e)?`warning`:`inactive`}function me({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:U(n)?`acknowledgement-required`:null}function he(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function ge(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function _e(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var W={assistantId:null,status:null,hasResolvedStatus:!1};function ve(e,t){return e instanceof Error?e:Error(t)}function ye({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=B}){let[i,a]=(0,E.useState)(W),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(null),u=(0,E.useRef)(e),d=(0,E.useRef)(t),f=(0,E.useRef)(0),p=(0,E.useRef)(0);(0,E.useLayoutEffect)(()=>{u.current=e,d.current=t}),(0,E.useEffect)(()=>{f.current+=1,a(W),l(null),s(!1)},[e,t]);let m=(0,E.useCallback)((e,t)=>d.current&&u.current===e&&f.current===t,[]),_=(0,E.useCallback)((e,t,n,r)=>{m(e,r)&&a(r=>r.assistantId===e&&r.hasResolvedStatus===n&&ge(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[m]),v=(0,E.useCallback)(()=>{f.current+=1,a(W)},[]),y=(0,E.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current,i=p.current+1;p.current=i;try{let e=await h(n);if(p.current!==i)return;if(!e.ok){_(n,null,!1,r);return}_(n,e.data.status,!0,r)}catch{if(p.current!==i)return;_(n,null,!1,r)}},[e,_,v,t]);(0,E.useEffect)(()=>{if(!t||!e)return;y();let n=window.setInterval(()=>{y()},r);return()=>{window.clearInterval(n)}},[e,r,t,y,n]),w(`app.resume`,()=>{y()});let b=(0,E.useCallback)(n=>{if(!t||!e){v();return}let r=f.current+1;f.current=r,s(!1),l(null),_(e,n,!0,r)},[e,_,v,t]);w(`sse.event`,e=>{let t=e.message;t.type===`disk_pressure_status_changed`&&b(t.status)});let x=(0,E.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current+1;f.current=r,s(!0),l(null);try{let e=await g(n);if(!e.ok)throw Error(`Failed to acknowledge assistant disk pressure.`);if(!m(n,r))return;let t=f.current+1;f.current=t,_(n,e.data.status,!0,t),s(!1)}catch(e){m(n,r)&&l(ve(e,`Failed to acknowledge assistant disk pressure.`))}finally{m(n,r)&&s(!1)}},[e,_,v,t,m]),S=t&&i.assistantId===e?i.status:null,C=!!(t&&e&&i.assistantId===e&&i.hasResolvedStatus);return{status:S,mode:(0,E.useMemo)(()=>pe(S),[S]),hasResolvedStatus:C,isAcknowledging:o,acknowledgeError:c,acknowledge:x,applyStatusEvent:b,refresh:y}}var G=l();function be(e){let{status:t,mode:n,isAcknowledging:r=!1,acknowledgeError:i,onAcknowledge:a,onDismissWarning:o,onReviewWorkspaceData:s,onUpgradeStorage:l}=e,[u,h]=(0,E.useState)(!1),[g,_]=(0,E.useState)(!1),v=_e(t);if(n===`warning`){let e=t.usagePercent??0;return(0,G.jsx)(p,{tone:`warning`,title:`Your storage is almost full`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:o?()=>o(g):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:l?`Free up space or add more storage to avoid interruptions.`:`Free up space to avoid interruptions.`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[s&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:s,children:`Manage Storage`}),l&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`}),o?(0,G.jsx)(d,{className:`ml-auto`,checked:g,onCheckedChange:e=>_(e===!0),label:`Don't show again`,"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,G.jsx)(p,{tone:`warning`,title:`Cleanup mode is active`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:`Prompt your assistant to free up space before it runs out and enters a locked state.`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[s&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:s,children:`Manage Storage`}),l&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`})]})]})})}let y=t.usagePercent??0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(p,{tone:`error`,title:`Storage is critically low`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${y}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:`Your assistant will enter a locked state if it runs out of storage.`}),i?(0,G.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:i}):null,(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,G.jsx)(c,{variant:`primary`,size:`compact`,onClick:()=>h(!0),children:`Review`})})]})}),(0,G.jsx)(m.Root,{open:u,onOpenChange:e=>{e||h(!1)},children:(0,G.jsxs)(m.Content,{size:`sm`,children:[(0,G.jsx)(m.Header,{icon:f,children:(0,G.jsx)(m.Title,{children:`Storage is critically low`})}),(0,G.jsx)(m.Body,{children:(0,G.jsx)(m.Description,{children:`Your assistant will enter a locked state if it runs out of storage. You should either prompt your assistant to free up space or increase your storage.`})}),(0,G.jsxs)(m.Footer,{children:[l&&(0,G.jsx)(c,{variant:`outlined`,onClick:()=>{h(!1),l()},children:`Upgrade`}),(0,G.jsx)(c,{variant:`primary`,disabled:r,onClick:()=>{a(),h(!1)},children:r?`Acknowledging...`:`Acknowledge`})]})]})})]})}var xe=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`,K=`ai.vellum.assistant`,Se=`https://play.google.com/store/apps/details?id=${K}`,q={ios:{downloaded:`app.iosNudge.downloaded`,bannerDismissed:`app.iosNudge.bannerDismissed`,assistantTurnsSeen:`app.iosNudge.assistantTurnsSeen`},android:{downloaded:`app.androidNudge.downloaded`,bannerDismissed:`app.androidNudge.bannerDismissed`,assistantTurnsSeen:`app.androidNudge.assistantTurnsSeen`}};function Ce(){let e=(void 0)?.trim();if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`&&t.hostname===`play.google.com`&&t.pathname===`/store/apps/details`&&t.searchParams.get(`id`)===K?Se:null}catch(e){if(e instanceof TypeError)return null;throw e}}function J(e){return e===`ios`?`iOS`:`Android`}function Y(e){if(e===`ios`)return{platform:e,appName:J(e),storeUrl:xe};let t=Ce();return t?{platform:e,appName:J(e),storeUrl:t}:null}function we(e){return i(q[e].downloaded,!1)}function X(e){r(q[e].downloaded,!0)}function Te(e){return i(q[e].bannerDismissed,!1)}function Z(e){r(q[e].bannerDismissed,!0)}function Q(e){return Math.max(0,n(q[e].assistantTurnsSeen,0))}function Ee(e,n=1){n<=0||t(q[e].assistantTurnsSeen,Q(e)+n)}function $(e){let t=Y(e);return t?(window.open(t.storeUrl,`_blank`,`noopener,noreferrer`),!0):!1}function De(e){let[t,n]=(0,E.useState)(!1),[r,i]=(0,E.useState)(!1),a=Y(e)!==null;(0,E.useEffect)(()=>{n(we(e)),i(Te(e))},[e]);let o=(0,E.useCallback)(()=>{$(e)&&(X(e),n(!0))},[e]),s=(0,E.useCallback)(()=>{Z(e),i(!0)},[e]);return(0,E.useMemo)(()=>({bannerShouldShow:a&&!t&&!r,handleDownload:o,handleBannerDismiss:s}),[a,t,r,o,s])}var Oe=x({key:`device:cmd_enter_to_send`,scope:`device`,parse:b,serialize:String,fallback:!1}),ke=x({key:`device:show_context_window_indicator`,scope:`device`,parse:b,serialize:String,fallback:!1});export{ie as C,T as E,ae as S,ne as T,F as _,Ee as a,le as b,De as c,ye as d,he as f,ue as g,R as h,Y as i,X as l,z as m,ke as n,$ as o,me as p,J as r,Q as s,Oe as t,be as u,de as v,j as w,P as x,N 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-DSjqKLvM.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./card-q0GJX1HZ.js";import{t as u}from"./link-2-CA1w44Gq.js";import{t as d}from"./loader-circle-oY5laABh.js";import{t as f}from"./triangle-alert-C5SOfs-q.js";import{n as p}from"./toast-BrKo5b4d.js";import"./i18n-zb2mgr1B.js";import{t as m}from"./useTranslation-Dn8TOHE6.js";import{d as h}from"./routes-C293MsBG.js";import{t as g}from"./use-active-assistant-id-Cgt1z2rZ.js";import{n as _}from"./a2a-invite-B5XOcUL6.js";import{r as v}from"./contacts-gateway-D0hHW9dI.js";var y=e(t(),1),b=s();function x(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function S(e){switch(e){case`expired`:case`not_found`:return`connectPage.errorExpired`;case`already_redeemed_by_other`:return`connectPage.errorAlreadyRedeemed`;case`sender_not_found`:return`connectPage.errorSenderNotFound`;case`not_platform_managed`:return`connectPage.errorNotPlatformManaged`;default:return null}}function C(){return(0,b.jsx)(w,{assistantId:g()})}function w({assistantId:e}){let{t}=m(`contacts`),s=r(),g=a(),[C]=i(),w=(0,y.useMemo)(()=>_(C),[C]),T=o({mutationFn:()=>{if(!w)throw Error(`Invalid invite link`);return v(e,{senderAssistantId:w.senderAssistantId,token:w.token})},onSuccess:e=>{e.success&&(g.invalidateQueries({predicate:e=>x(e.queryKey)}),e.alreadyConnected?p(t(`connectPage.alreadyConnected`)):p(t(`connectPage.connected`)),s(h.contacts.root))}}),E=(0,y.useCallback)(()=>{s(h.contacts.root)},[s]),D=(0,y.useCallback)(()=>{T.mutate()},[T]),O=(0,y.useMemo)(()=>{if(T.isError)return T.error instanceof Error?T.error.message:t(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?t(e):T.data.error||t(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,t]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(l,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(u,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,b.jsx)(c,{variant:`title-small`,children:t(`connectPage.title`)})]}),(0,b.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t(`connectPage.body`)}),O&&(0,b.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--surface-negative-subtle)`,color:`var(--system-negative-strong)`},children:[(0,b.jsx)(f,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(c,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(n,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(d,{className:`h-4 w-4 animate-spin`}),t(`actions.connecting`)]}):t(`actions.connect`)}),(0,b.jsx)(n,{variant:`outlined`,onClick:E,disabled:T.isPending,children:t(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(l,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(f,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(c,{variant:`title-small`,children:t(`connectPage.invalidTitle`)})]}),(0,b.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(n,{variant:`primary`,onClick:E,children:t(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./card-q0GJX1HZ.js";import{t as u}from"./link-2-CA1w44Gq.js";import{t as d}from"./loader-circle-oY5laABh.js";import{t as f}from"./triangle-alert-C5SOfs-q.js";import{n as p}from"./toast-BrKo5b4d.js";import"./i18n-BR-AyG5b.js";import{t as m}from"./useTranslation-DxUSOwQs.js";import{d as h}from"./routes-C293MsBG.js";import{t as g}from"./use-active-assistant-id-Btl1-4sB.js";import{n as _}from"./a2a-invite-BNCOmr8h.js";import{r as v}from"./contacts-gateway-Dp40T_dj.js";var y=e(t(),1),b=s();function x(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function S(e){switch(e){case`expired`:case`not_found`:return`connectPage.errorExpired`;case`already_redeemed_by_other`:return`connectPage.errorAlreadyRedeemed`;case`sender_not_found`:return`connectPage.errorSenderNotFound`;case`not_platform_managed`:return`connectPage.errorNotPlatformManaged`;default:return null}}function C(){return(0,b.jsx)(w,{assistantId:g()})}function w({assistantId:e}){let{t}=m(`contacts`),s=r(),g=a(),[C]=i(),w=(0,y.useMemo)(()=>_(C),[C]),T=o({mutationFn:()=>{if(!w)throw Error(`Invalid invite link`);return v(e,{senderAssistantId:w.senderAssistantId,token:w.token})},onSuccess:e=>{e.success&&(g.invalidateQueries({predicate:e=>x(e.queryKey)}),e.alreadyConnected?p(t(`connectPage.alreadyConnected`)):p(t(`connectPage.connected`)),s(h.contacts.root))}}),E=(0,y.useCallback)(()=>{s(h.contacts.root)},[s]),D=(0,y.useCallback)(()=>{T.mutate()},[T]),O=(0,y.useMemo)(()=>{if(T.isError)return T.error instanceof Error?T.error.message:t(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?t(e):T.data.error||t(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,t]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(l,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(u,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,b.jsx)(c,{variant:`title-small`,children:t(`connectPage.title`)})]}),(0,b.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t(`connectPage.body`)}),O&&(0,b.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--surface-negative-subtle)`,color:`var(--system-negative-strong)`},children:[(0,b.jsx)(f,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(c,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(n,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(d,{className:`h-4 w-4 animate-spin`}),t(`actions.connecting`)]}):t(`actions.connect`)}),(0,b.jsx)(n,{variant:`outlined`,onClick:E,disabled:T.isPending,children:t(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(l,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(f,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(c,{variant:`title-small`,children:t(`connectPage.invalidTitle`)})]}),(0,b.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(n,{variant:`primary`,onClick:E,children:t(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./card-q0GJX1HZ.js";import{t as n}from"./checkbox-DyHMOWN6.js";import"./i18n-zb2mgr1B.js";import{t as r}from"./Trans-Ch_EPHgV.js";import{t as i}from"./useTranslation-Dn8TOHE6.js";import{d as a,u as o}from"./routes-C293MsBG.js";import{t as s}from"./setting-row-JYdvkVjj.js";var c=e(),l=[`[&_button[data-state=checked]]:bg-[var(--primary-base)]`,`[&_svg]:text-[var(--content-inset)]`,`[&_button[data-state=unchecked]]:bg-[var(--surface-base)]`,`[&_button[data-state=unchecked]]:border-[var(--border-element)]`].join(` `),u=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,d={privacy:{href:a.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:a.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:e,checked:t,onChange:i}){let a=d[e];return(0,c.jsx)(n,{checked:t,onCheckedChange:e=>i(e===!0),label:(0,c.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,c.jsx)(r,{i18nKey:`consentControls.agreeTo`,ns:`onboarding`,values:{policy:a.text},components:{link:(0,c.jsx)(`a`,{href:o(a.href),target:`_blank`,rel:`noreferrer`,className:`underline`})}})}),"aria-label":a.aria,className:l})}function p(){return(0,c.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function m({notes:e}){let{t}=i(`onboarding`);return!e||e.length===0?null:(0,c.jsxs)(`div`,{className:`rounded-r-md border-l-2 border-[var(--content-secondary)] bg-[var(--surface-base)] py-3 pl-3.5 pr-3.5`,children:[(0,c.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:t(`consentControls.whatsChanged`)}),e.length===1?(0,c.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,c.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,c.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,c.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,c.jsx)(`span`,{children:e})]},e))})]})}function h({electron:e,showAnalytics:n=!0,showDiagnostics:r=!0,shareAnalytics:a,shareDiagnostics:o,onShareAnalyticsChange:l,onShareDiagnosticsChange:d,className:f,style:m}){let{t:h}=i(`onboarding`);return(0,c.jsxs)(`section`,{className:f,style:m,children:[(0,c.jsx)(`p`,{className:u,children:h(`consentControls.privacyPreferences`)}),(0,c.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[n&&(0,c.jsx)(s,{label:h(`consentControls.analyticsLabel`),helperText:h(`consentControls.analyticsHelp`),checked:a,onChange:l}),n&&r&&(0,c.jsx)(p,{}),r&&(0,c.jsx)(s,{label:h(`consentControls.diagnosticsLabel`),helperText:h(`consentControls.diagnosticsHelp`),checked:o,onChange:d})]})})]})}function g({electron:e,showPrivacy:n=!0,showTos:r=!0,privacyConsent:a,tosAccepted:o,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:h,style:g}){let{t:_}=i(`onboarding`);return(0,c.jsxs)(`section`,{className:h,style:g,children:[(0,c.jsx)(`p`,{className:u,children:_(`consentControls.agreements`)}),(0,c.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3.5`:`gap-4`}`,children:[n&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:d}),(0,c.jsx)(f,{kind:`privacy`,checked:a,onChange:s})]}),r&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:p}),(0,c.jsx)(f,{kind:`tos`,checked:o,onChange:l})]})]})})]})}export{h as n,g as t};
1
+ import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./card-q0GJX1HZ.js";import{t as n}from"./checkbox-DyHMOWN6.js";import"./i18n-BR-AyG5b.js";import{t as r}from"./Trans-CPcWO-v6.js";import{t as i}from"./useTranslation-DxUSOwQs.js";import{d as a,u as o}from"./routes-C293MsBG.js";import{t as s}from"./setting-row-BgrWOMW9.js";var c=e(),l=[`[&_button[data-state=checked]]:bg-[var(--primary-base)]`,`[&_svg]:text-[var(--content-inset)]`,`[&_button[data-state=unchecked]]:bg-[var(--surface-base)]`,`[&_button[data-state=unchecked]]:border-[var(--border-element)]`].join(` `),u=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,d={privacy:{href:a.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:a.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:e,checked:t,onChange:i}){let a=d[e];return(0,c.jsx)(n,{checked:t,onCheckedChange:e=>i(e===!0),label:(0,c.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,c.jsx)(r,{i18nKey:`consentControls.agreeTo`,ns:`onboarding`,values:{policy:a.text},components:{link:(0,c.jsx)(`a`,{href:o(a.href),target:`_blank`,rel:`noreferrer`,className:`underline`})}})}),"aria-label":a.aria,className:l})}function p(){return(0,c.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function m({notes:e}){let{t}=i(`onboarding`);return!e||e.length===0?null:(0,c.jsxs)(`div`,{className:`rounded-r-md border-l-2 border-[var(--content-secondary)] bg-[var(--surface-base)] py-3 pl-3.5 pr-3.5`,children:[(0,c.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:t(`consentControls.whatsChanged`)}),e.length===1?(0,c.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,c.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,c.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,c.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,c.jsx)(`span`,{children:e})]},e))})]})}function h({electron:e,showAnalytics:n=!0,showDiagnostics:r=!0,shareAnalytics:a,shareDiagnostics:o,onShareAnalyticsChange:l,onShareDiagnosticsChange:d,className:f,style:m}){let{t:h}=i(`onboarding`);return(0,c.jsxs)(`section`,{className:f,style:m,children:[(0,c.jsx)(`p`,{className:u,children:h(`consentControls.privacyPreferences`)}),(0,c.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[n&&(0,c.jsx)(s,{label:h(`consentControls.analyticsLabel`),helperText:h(`consentControls.analyticsHelp`),checked:a,onChange:l}),n&&r&&(0,c.jsx)(p,{}),r&&(0,c.jsx)(s,{label:h(`consentControls.diagnosticsLabel`),helperText:h(`consentControls.diagnosticsHelp`),checked:o,onChange:d})]})})]})}function g({electron:e,showPrivacy:n=!0,showTos:r=!0,privacyConsent:a,tosAccepted:o,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:h,style:g}){let{t:_}=i(`onboarding`);return(0,c.jsxs)(`section`,{className:h,style:g,children:[(0,c.jsx)(`p`,{className:u,children:_(`consentControls.agreements`)}),(0,c.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3.5`:`gap-4`}`,children:[n&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:d}),(0,c.jsx)(f,{kind:`privacy`,checked:a,onChange:s})]}),r&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:p}),(0,c.jsx)(f,{kind:`tos`,checked:o,onChange:l})]})]})})]})}export{h as n,g as t};